@northflank/cli 0.10.10 → 0.10.12
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 -1
package/dist/api-helpers.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
(function(X,j){const D=a0j,V=X();while(!![]){try{const H=-parseInt(D(0x173))/0x1*(parseInt(D(0x168))/0x2)+parseInt(D(0x179))/0x3+parseInt(D(0x174))/0x4+parseInt(D(0x144))/0x5*(-parseInt(D(0x14b))/0x6)+-parseInt(D(0x177))/0x7+-parseInt(D(0x156))/0x8+parseInt(D(0x15b))/0x9;if(H===j)break;else V['push'](V['shift']());}catch(O){V['push'](V['shift']());}}}(a0X,0x2b489));import{warning}from'./utils.js';const defaultPaginationPageSize=0x64,getProjects=X=>async j=>{const Y=a0j,V=await X[Y(0x167)][Y(0x170)]({'options':{'per_page':defaultPaginationPageSize,'cursor':j?.[Y(0x176)]}});return{'elements':V['data'][Y(0x170)][Y(0x17a)](H=>H['id']),'nextPageCursor':V[Y(0x14a)]?.[Y(0x175)]};},getServices=(X,j)=>async V=>{const u=a0j,H=await X['list']['services']({'parameters':{'projectId':j},'options':{'per_page':defaultPaginationPageSize,'cursor':V?.['nextPageCursor']}});return{'elements':H[u(0x146)][u(0x160)][u(0x17a)](O=>O['id']),'nextPageCursor':H[u(0x14a)]?.['cursor']};},getAddons=(X,j)=>async V=>{const Q=a0j,H=await X[Q(0x167)][Q(0x16a)]({'parameters':{'projectId':j},'options':{'per_page':defaultPaginationPageSize,'cursor':V?.[Q(0x176)]}});return{'elements':H['data'][Q(0x16a)]['map'](O=>O['id']),'nextPageCursor':H['pagination']?.[Q(0x175)]};},getAddonBackups=(X,j,V)=>async H=>{const f=a0j,O=await X[f(0x162)][f(0x163)][f(0x15f)]({'parameters':{'projectId':j,'addonId':V},'options':{'per_page':defaultPaginationPageSize,'cursor':H?.[f(0x176)]}});return{'elements':O[f(0x146)]['backups'][f(0x17a)](F=>F['id']),'nextPageCursor':O[f(0x14a)]?.['cursor']};};function a0j(X,j){const V=a0X();return a0j=function(H,O){H=H-0x144;let F=V[H];return F;},a0j(X,j);}export async function fetchResourceList(X,j,V,H,O,F){const z=a0j,h=undefined;try{if(X===z(0x164)){const s=await j[z(0x167)][z(0x150)]({}),S=s[z(0x146)]['plans']['map'](y=>y?.[z(0x153)]??y?.['id']);return{'choices':S,'defaultValue':h};}if(X===z(0x14f)&&!V?.[z(0x17b)]('logSink')){const y=await j[z(0x167)][z(0x145)]({}),A=y[z(0x146)][z(0x145)][z(0x17a)](l=>l?.[z(0x153)]??l?.['id']);return{'choices':A,'defaultValue':h};}if(X==='projectId'){const l=await getProjects(j),{elements:T,nextPageCursor:W}=await l();return{'choices':T,'defaultValue':h,'pagination':{'nextPageCursor':W,'loadMore':l}};}if(X===z(0x165)){const v=await j[z(0x167)][z(0x15e)]({}),G=v[z(0x146)][z(0x165)][z(0x17a)](d=>d['id']);return{'choices':G,'defaultValue':h};}const P=O?.[z(0x158)],o=X===z(0x172)||X==='id'&&F?.[z(0x17b)](z(0x149));if(P!==undefined&&o){const d=await getServices(j,P),{elements:x,nextPageCursor:M}=await d();return{'choices':x,'defaultValue':h,'pagination':{'nextPageCursor':M,'loadMore':d}};}const C=V?.[z(0x17b)](z(0x163));if(C){const g=async J=>{const U=z,b=await j[U(0x162)]['addon']['types']({});return b[U(0x146)][U(0x157)]?.[U(0x17a)](E=>E['type'])[U(0x14d)](E=>E[U(0x16e)]===J);};if(X==='type'){const J=await j[z(0x162)][z(0x163)]['types']({}),b=J[z(0x146)][z(0x157)]?.[z(0x17a)](E=>E[z(0x16e)]);return{'choices':b,'defaultValue':h};}if(X==='version'&&H?.[z(0x16e)]!==undefined){const E=(await g(H[z(0x16e)]))?.[z(0x154)],t=E!==undefined?[z(0x152),...E]:undefined;return{'choices':t,'defaultValue':h};}if(X===z(0x147)&&H?.[z(0x16e)]!==undefined){const Z=(await g(H['type']))?.[z(0x151)]?.[z(0x147)];return{'choices':Z?.[z(0x166)],'defaultValue':Z?.[z(0x15d)]};}if(X==='replicas'&&H?.[z(0x16e)]!==undefined){const w=(await g(H['type']))?.[z(0x151)]?.['replicas'];return{'choices':w?.[z(0x166)],'defaultValue':w?.[z(0x15d)]};}}if(X===z(0x16d)&&O?.[z(0x158)]!==undefined){const N=await getAddons(j,O?.[z(0x158)]),{elements:p,nextPageCursor:m}=await N();return{'choices':p,'defaultValue':h,'pagination':{'nextPageCursor':m,'loadMore':N}};}if(X===z(0x14e)&&O?.[z(0x158)]!==undefined&&H?.['source']?.['addonId']!==undefined){const k=await getAddonBackups(j,O?.[z(0x158)],H?.[z(0x16b)]?.[z(0x16d)]),{elements:I,nextPageCursor:K}=await k();return{'choices':I,'defaultValue':h,'pagination':{'nextPageCursor':K,'loadMore':k}};}const B=O?.[z(0x16d)]??H?.[z(0x171)]?.[z(0x16d)];if(V?.['join']('')===z(0x161)&&X===z(0x16f)&&O?.[z(0x158)]!==undefined&&B!==undefined){const {upgradeTo:L}=(await j[z(0x162)][z(0x163)][z(0x16f)]({'parameters':{'addonId':B,'projectId':O?.[z(0x158)]}}))[z(0x146)];if(L===undefined||L[z(0x16c)]<=0x0){warning(z(0x155));throw new Error();}return{'choices':L[z(0x17a)](a=>a[z(0x16f)]),'defaultValue':h};}if(X===z(0x15a)){const a=await j[z(0x167)][z(0x178)]({}),r=a[z(0x146)][z(0x178)][z(0x17a)](R=>R?.['id']);return{'choices':r,'defaultValue':h};}if((V?.[z(0x17b)](z(0x169))||V?.[z(0x17b)](z(0x148)))&&X===z(0x14c)&&B!==undefined&&O?.[z(0x158)]!==undefined){const R=(await j[z(0x162)][z(0x163)][z(0x165)]({'parameters':{'addonId':B,'projectId':O?.[z(0x158)]}}))['data'];return{'choices':[...Object[z(0x159)](R?.['envs'])??[],...Object[z(0x159)](R?.[z(0x15c)])??[]]};}}catch(n){}return{'choices':undefined,'defaultValue':h};}function a0X(){const q=['deploymentPlan','credentials','options','list','166454HNlWQI','secretLink','addons','source','length','addonId','type','version','projects','addonDependencies','serviceId','3EqgAnX','1110804FuVevw','cursor','nextPageCursor','1393266NnJHUK','templates','291153dqKxPZ','map','includes','8765smOfGH','regions','data','storage','secret','owningObject','pagination','708xAieTb','keyName','find','backupId','region','plans','resources','latest','internalId','versions','No\x20available\x20versions\x20to\x20upgrade\x20to.','1349136TCFPZz','addonTypes','projectId','keys','templateId','5640768nnJlGF','secrets','default','registryCredentials','backups','services','updateaddonversion','get','addon'];a0X=function(){return q;};return a0X();}
|
package/dist/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --no-deprecation
|
|
2
|
-
const a1O8=a1R;(function(O,R){const O7=a1R,M=O();while(!![]){try{const i=parseInt(O7(0x252))/0x1*(-parseInt(O7(0x251))/0x2)+parseInt(O7(0x264))/0x3*(parseInt(O7(0x20a))/0x4)+parseInt(O7(0x1ed))/0x5+-parseInt(O7(0x1d1))/0x6*(parseInt(O7(0x1db))/0x7)+parseInt(O7(0x222))/0x8+parseInt(O7(0x283))/0x9*(parseInt(O7(0x242))/0xa)+parseInt(O7(0x27c))/0xb*(-parseInt(O7(0x1ea))/0xc);if(i===R)break;else M['push'](M['shift']());}catch(K){M['push'](M['shift']());}}}(a1O,0x9385e));import{ApiClient,ApiClientFileContextProvider,GetApiEndpointPaginated}from'@northflank/js-client';import{Command}from'commander';import a1M from'fs';import a1i from'chalk';import{CliContext}from'./context/contextCommands.js';import{agent,assertContextExisting,asyncSequential,checkUpdate,customUserAgent,error,getCommand,proxyEnvsSet,warning}from'./utils.js';import*as a1K from'./defaults.js';import{InquirerHelper}from'./inquirer-helper.js';import{consoleFormat,handleJsonOutput,handleYamlOutput,printAsTable}from'./formatting/console-format-helpers.js';import{getCommandOverview}from'./formatting/command-overview.js';import{CliPortForward}from'./port-forward/index.js';import{CliExec}from'./exec/index.js';import{CliLogs}from'./logs/index.js';import{CliMetrics}from'./metrics/index.js';import{CliFileCopy}from'./copy/index.js';import{isEqual,has,set,kebabCase,upperFirst,isString,omit}from'lodash-es';import a1U from'js-yaml';import{readFileSync}from'fs';function a1R(O,R){const M=a1O();return a1R=function(i,K){i=i-0x1d0;let U=M[i];return U;},a1R(O,R);}import{fileURLToPath}from'url';import{dirname,join}from'path';function a1O(){const Ot=['(HTTP\x20status\x20code:\x20','runId','name','57576QUzVGd','toUpperCase','entries','5267775tOgxab','filter','Documentation:\x20','askForLogSink','\x20properties','argv','stdout','green','resourceTagId','helpOption','regions','askForAddonBackup','bind','\x0a>\x20Token\x20permissions\x20required:\x20','askForBackupDestination','some','invoices','project','templates','contextProvider','Get\x20information\x20about\x20Northflank\x20','login','Print\x20the\x20current\x20version\x20of\x20the\x20Northflank\x20cli','askForJobRun','update','templateId','secret','logSinkId','pln','5172IzXYcO','credentials','templateRunId','askForTemplate','Update\x20Northflank\x20','italic','branches','vol','repos','custom-columns=','toString','addonId','inv','prj','includes','output','tpl','verbose','underline','map','scrt','File\x20does\x20not\x20exist:\x20','API\x20request\x20failed\x0a\x09Message:\x20','tags','2611160tphWJe','endsWith','yml','docsTagsPath','askForDomain','nonInteractiveEndpoint','askGeneric','/docs/v1/api/','Unknown\x20input\x20format.\x20Not\x20valid\x20json\x20and\x20not\x20valid\x20yaml.','base','retrievePayloadViaInteractiveCli','tag','join','opts','getOwnPropertyNames','service',',\x20NF\x20error\x20id:\x20','askForVolume','noDefaults','option','-f,\x20--file\x20<file-path>','subdomainPath','getNextPage','forEach','json','../package.json','body','Northflank\x20cli\x20version:\x20','runs','askForClusterId','repositories','job','8194220XhqQiu','VERBOSE:\x20HTTP_PROXY\x20or\x20HTTPS_PROXY\x20environment\x20variable\x20set:\x20tunnelling\x20traffic\x20through\x20HTTP\x20proxy.','domains','askForService','yaml','after','page','repo','replace','isPaginatedEndpoint','logs','request','askForTemplateRun','length','path','204434AgWZWg','3tElYpq','api.','exitCode','contexts','domain','getLogsCommand','region','utf-8','deleteWarningPrompt','.json','required','delete','startsWith','loadAll','getCurrentServiceName','readFileSync','rawResponse','Error\x20occured\x20while\x20trying\x20to\x20run\x20command,\x20error:\x20','2073OAhidF','portFwdCmd','-i,\x20--input\x20<resource-def>','concat','VERBOSE:\x20Using\x20endpoint\x20->\x20','existsSync','Options\x20\x27loadAll\x27\x20can\x20not\x20be\x20combined\x20with\x20\x27page\x27\x20or\x20\x27cursor\x27','brn','pagination','hasNextPage','backup','quiet','branch',',\x20-','endpoints','northflank','invoice','help\x20[command]','addon','data','aliases','stringify','domainId','-v,\x20--version','2596aIuRBr','getCurrentJobName','url','askConfirm','description','subdomain','host','9tcmfwH','pipelineId','query','askForProject','getCurrentProjectName','message','statusText','boolean','plan','resource','OPTIONAL:\x20','\x20--','askForSecret','backupDestinationId','buildId','Display\x20help\x20for\x20command','projectId','error','rgn','getCurrentContext','Expecting\x20resource\x20input\x20with\x20\x27--input\x27\x20or\x20\x27--file\x27\x20argument','subdomainId','credentialId','moveCursor','askForAddon','backupId','addCommand','find','secrets','downloadCmd','version','askForSubdomainPath','credential','Resource\x20was\x20not\x20deleted.','--verbose','load','action','secretId','template','isArray','backup-destinations','12JQEcAG','toLowerCase','dmn','\x0a\x09details\x20:','file','Manage\x20your\x20Northflank\x20resources\x20from\x20the\x20command\x20line','all','get','execCmd','count','3673607NYAdQM','volumeId','clusterId','enablePositionalOptions','type','log','getMetricsCommand','opt','serviceId','jobId','keys','\x20Northflank\x20resources'];a1O=function(){return Ot;};return a1O();}const __filename=fileURLToPath(import.meta[a1O8(0x27e)]),__dirname=dirname(__filename),pgk=JSON['parse'](readFileSync(join(__dirname,a1O8(0x23b)),a1O8(0x259)));export const getProgram=O=>{const O9=a1O8,R=new Command(O9(0x273));R[O9(0x280)](O9(0x1d6)),R[O9(0x1de)](!![]),R['version'](O9(0x23d)+a1i[O9(0x21c)](pgk[O9(0x2a1)]),O9(0x27b),O9(0x203));const M=new ApiClient(O,{'throwErrorOnHttpErrorCode':![],'customUserAgent':customUserAgent,'agent':agent}),i=new CliContext(M,agent),K=new CliPortForward(O,agent),U=new CliExec(O,agent),x=new CliFileCopy(O,agent),S=new CliLogs(O,agent),p=new CliMetrics(O,agent);return R[O9(0x29d)](K[O9(0x265)]),R[O9(0x29d)](U[O9(0x1d9)]),R[O9(0x29d)](x[O9(0x2a0)]),R[O9(0x29d)](x['uploadCmd']),R[O9(0x29d)](i[O9(0x202)]),R[O9(0x29d)](i[O9(0x255)]),generateCommands(M,M[O9(0x272)],R,S,p),R['addCommand'](getCommandOverview(R)),R['helpCommand'](O9(0x275),O9(0x292)),R[O9(0x1f6)](undefined,O9(0x292)),R;};((async()=>{const OO=a1O8;try{const O=new ApiClientFileContextProvider();await checkUpdate(O);const R=getProgram(O);await R['parseAsync'](process[OO(0x1f2)]);}catch(M){error(OO(0x263)+M[OO(0x288)]),process[OO(0x1f2)]['find'](i=>i===OO(0x2a5))&&console[OO(0x1e0)](M),process[OO(0x254)]=0x1;}})());function isListCommand(O){const OR=a1O8,R=[[OR(0x1d8),OR(0x276),'backups'],[OR(0x1d8),'job',OR(0x23e)]];return O[OR(0x29e)](M=>M==='list')||R['some'](M=>isEqual(O,M));}function generateCommands(O,R,M,i,K,U=a1K['defaults'],x=[]){const OM=a1O8,S=new InquirerHelper(new ApiClient(O[OM(0x200)],{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':agent}));function p(r,n){const Oi=OM;return r[Oi(0x25c)]!==![]&&n===undefined;}function c(r,n){const OK=OM,{opt:Q,name:L}=r,A=Q['default'],h=p(Q,A),t=H=>H['length']>0x1?'--'+H:'-'+H,G=Q?.['alias'],s=G?Array[OK(0x2aa)](G)?'-'+G?.[OK(0x21d)](H=>t(H))[OK(0x22e)](OK(0x271))+',':''+t(G):'',y=h?'':OK(0x28d),C=typeof Q['type']===OK(0x28a)||Q[OK(0x1df)]===OK(0x28a)?s+OK(0x28e)+L:s+'\x20--'+L+'\x20<'+L[OK(0x1eb)]()+'>',d=y+Q[OK(0x280)];n[OK(0x235)](C['trim'](),d,A);}function l(r,n){const OU=OM;if(n['commands'][OU(0x1fc)](Q=>Q['name']()===OU(0x24c)))return;isEqual(r,[OU(0x1d8),'service'])&&(n[OU(0x29d)](i[OU(0x257)](OU(0x231))),n[OU(0x29d)](K[OU(0x1e1)](OU(0x231))),n[OU(0x29d)](i[OU(0x257)](OU(0x231),!![])),n['addCommand'](K[OU(0x1e1)](OU(0x231),!![]))),isEqual(r,[OU(0x1d8),OU(0x241)])&&(n[OU(0x29d)](i[OU(0x257)](OU(0x241))),n['addCommand'](K[OU(0x1e1)](OU(0x241))),n[OU(0x29d)](i[OU(0x257)](OU(0x241),!![])),n[OU(0x29d)](K[OU(0x1e1)](OU(0x241),!![]))),isEqual(r,[OU(0x1d8),OU(0x276)])&&(n['addCommand'](i['getLogsCommand'](OU(0x276))),n['addCommand'](K['getMetricsCommand'](OU(0x276)))),isEqual(r,[OU(0x1d8),OU(0x276),OU(0x26e)])&&n['addCommand'](i[OU(0x257)]('addon',![],!![])),isEqual(r,['get',OU(0x276),'restores'])&&n[OU(0x29d)](i[OU(0x257)]('addon',![],!![],!![]));}return Object[OM(0x230)](U)[OM(0x239)](r=>{const Ox=OM,n=R[r],Q=U[r],L=x[Ox(0x267)]([r]);function A(I,k){const OS=Ox,q=Object[OS(0x230)](I||{});q[OS(0x21d)](j=>{return{'name':j,'opt':I[j]};})['sort']((j,D)=>!p(j['opt'])?!p(D[OS(0x1e2)])?0x0:0x1:-0x1)[OS(0x239)](j=>{c(j,k);});}function h(I,k){const Op=Ox,q=[[Op(0x1fe),'projects',Op(0x217)],[Op(0x231),'services','svc'],[Op(0x20b),Op(0x2a3),'cred'],[Op(0x276),'addons','adn'],[Op(0x241),'jobs'],[Op(0x28b),'plans',Op(0x209)],[Op(0x258),Op(0x1f7),Op(0x295)],[Op(0x256),Op(0x244),Op(0x1d3)],[Op(0x207),Op(0x29f),Op(0x21e)],['volumes','volume',Op(0x211)],[Op(0x210),Op(0x270),Op(0x26b)],[Op(0x274),Op(0x1fd),Op(0x216)],[Op(0x2a9),Op(0x1ff),Op(0x21a)],[Op(0x212),'repository',Op(0x240),Op(0x249)],['backup-destination',Op(0x1d0)],[Op(0x22d),Op(0x221)]],j=q['find'](D=>D[Op(0x218)](k));if(j!==undefined)I[Op(0x278)](j[Op(0x1ee)](D=>D!==k));}async function t(I){const Oc=Ox,k={},{contextProvider:q}=O,j=L[Oc(0x218)]('delete'),D=I[Oc(0x234)]===!![];async function Y(N,z,E){const Ol=Oc;if(has(Q[Ol(0x1e2)]?.['path']??{},N)){const T=!D&&!j&&E?E():undefined,W=I[N]||T||await z();set(k,N,W);}}return await asyncSequential(Object[Oc(0x1ec)](Q[Oc(0x1e2)]?.[Oc(0x250)]??{}),async([N,z])=>{const Ou=Oc,E=k?.[Ou(0x293)],T=k?.[Ou(0x206)];switch(N){case'projectId':return await Y('projectId',S[Ou(0x286)][Ou(0x1f9)](S),q[Ou(0x287)][Ou(0x1f9)](q));case Ou(0x1e3):return await Y('serviceId',S[Ou(0x245)](E)[Ou(0x1f9)](S),q[Ou(0x260)][Ou(0x1f9)](q));case'addonId':return await Y('addonId',S[Ou(0x29b)](E)['bind'](S));case Ou(0x1e4):return await Y(Ou(0x1e4),S['askForJob'](E)[Ou(0x1f9)](S),q[Ou(0x27d)][Ou(0x1f9)](q));case Ou(0x1e8):return await Y(Ou(0x1e8),S[Ou(0x204)](k[Ou(0x1e4)],E,![])[Ou(0x1f9)](S));case Ou(0x2a8):return await Y(Ou(0x2a8),S[Ou(0x28f)](E)[Ou(0x1f9)](S));case Ou(0x256):case'domainId':return await Y('domain',S[Ou(0x226)][Ou(0x1f9)](S));case Ou(0x299):return await Y(Ou(0x299),S['askForCredentials'][Ou(0x1f9)](S));case'volumeId':return await Y(Ou(0x1dc),S[Ou(0x233)](E)[Ou(0x1f9)](S));case'subdomain':return await Y(Ou(0x281),S['askForSubdomain'](k[Ou(0x256)])[Ou(0x1f9)](S));case Ou(0x298):return await Y(Ou(0x298),S['askForSubdomain'](k[Ou(0x27a)])[Ou(0x1f9)](S));case'subdomainPath':return await Y(Ou(0x237),S[Ou(0x2a2)](k[Ou(0x256)],k[Ou(0x281)]??k[Ou(0x298)])[Ou(0x1f9)](S));case Ou(0x29c):return await Y(Ou(0x29c),S[Ou(0x1f8)](E,k[Ou(0x215)])[Ou(0x1f9)](S));case'buildId':return await Y(Ou(0x291),S['askForBuild'](E,k[Ou(0x1e3)],k[Ou(0x1e4)])[Ou(0x1f9)](S));case Ou(0x206):return await Y(Ou(0x206),S[Ou(0x20d)]()['bind'](S));case Ou(0x20c):return await Y(Ou(0x20c),S[Ou(0x24e)](T)[Ou(0x1f9)](S));case Ou(0x208):return await Y(Ou(0x208),S[Ou(0x1f0)]()[Ou(0x1f9)](S));case Ou(0x284):return await Y(Ou(0x284),S['askForPipeline'](E)[Ou(0x1f9)](S));case Ou(0x1f5):return await Y(Ou(0x1f5),S['askForTag']()[Ou(0x1f9)](S));case Ou(0x290):return await Y(Ou(0x290),S[Ou(0x1fb)]()[Ou(0x1f9)](S));case Ou(0x1dd):return await Y(Ou(0x1dd),S[Ou(0x23f)]()[Ou(0x1f9)](S));default:return await Y(N,S[Ou(0x228)](N,z?.['description'])[Ou(0x1f9)](S));}}),k;}async function G(I){const Or=Ox,k={},q=Q[Or(0x1e2)]?.['isPaginatedEndpoint']?a1K['paginationArgs']:{},j={...Q['opt']?.['query']??{},...q},D=Object[Or(0x1e5)](j)[Or(0x1ee)](Y=>Y!==Or(0x25f));return await asyncSequential(D,async Y=>{if(I[Y]!==undefined)return set(k,Y,I[Y]);}),k;}function s(){const On=Ox;switch(L[0x0]){case'get':return On(0x201)+(L[0x1]||'resource')+'s';case On(0x205):return On(0x20e)+(L[0x1]||On(0x28c))+On(0x1f1);default:return upperFirst(r)+On(0x1e6);}}function y(I,k){const OQ=Ox;if(!k){const W=getCommand()['name'](kebabCase(r))[OQ(0x280)](s());return h(W,r),W;}const q=I?.['requiredPermissions']?a1i[OQ(0x20f)](OQ(0x1fa)+I['requiredPermissions']):'',j=O['contextProvider'][OQ(0x296)](),D=j!==undefined&&Q?.['opt']?.[OQ(0x225)]!==undefined,Y=j?.[OQ(0x282)][OQ(0x24a)](OQ(0x253),''),N=D?OQ(0x1ef)+Y+OQ(0x229)+Q?.['opt']?.[OQ(0x225)]:'',z=I?.[OQ(0x280)]||'',E=getCommand(!![])[OQ(0x1e9)](kebabCase(r))[OQ(0x280)](z)['addHelpText'](OQ(0x247),[q,N][OQ(0x22e)]('\x0a'));h(E,r);(Q[OQ(0x1e2)]?.[OQ(0x23c)]||Q[OQ(0x1e2)]?.[OQ(0x227)])&&(E[OQ(0x235)](OQ(0x236),'File\x20to\x20load\x20resource\x20json\x20from'),E[OQ(0x235)](OQ(0x266),'JSON-formatted\x20resource\x20definition,\x20takes\x20precedence\x20over\x20\x22--file\x22'));A(Q[OQ(0x1e2)]?.[OQ(0x250)],E),A(Q[OQ(0x1e2)]?.[OQ(0x285)],E);const T=Q[OQ(0x1e2)]?.[OQ(0x24b)];return T&&A(a1K['paginationArgs'],E),A(Q[OQ(0x1e2)]?.[OQ(0x22b)],E),E[OQ(0x2a7)](async()=>{const OL=OQ;assertContextExisting(O);const F=E[OL(0x22f)]();F?.['verbose']&&proxyEnvsSet&&warning(OL(0x243));const m=F[OL(0x248)]!==undefined||F['cursor']!==undefined;if(F['loadAll']===!![]&&m)throw new Error(OL(0x26a));const w=F?.[OL(0x219)],e=w===OL(0x23a),B=w===OL(0x246)||w===OL(0x224),V=await t(F);S['setPathVars'](V);const v=await G(F),g=Object[OL(0x1e5)](Q[OL(0x1e2)]?.[OL(0x250)]??{})[OL(0x21d)](X=>X+'='+a1i[OL(0x1f4)](V[X]))[OL(0x22e)](',\x20');if(g[OL(0x24f)]>0x0&&!e&&!B){const X='=>\x20running\x20command\x20with:\x20'+g;console[OL(0x1e0)](X);}const P=Q[OL(0x1e2)]?.[OL(0x23c)]||Q[OL(0x1e2)]?.['nonInteractiveEndpoint']?await u(F,Q,L):undefined;if(!F['force']&&L[OL(0x218)](OL(0x25d))&&!await S[OL(0x25a)]()){warning(OL(0x2a4));return;}const Z=T&&(F['loadAll']||(F['output']===OL(0x23a)||F[OL(0x219)]===OL(0x246))&&!m);let o=Z&&n instanceof GetApiEndpointPaginated?await n[OL(0x1d7)]({'parameters':V,'options':v,'data':P}):await n['call']({'parameters':V,'options':{...v},'data':P});if(F?.[OL(0x21b)]){const a=o[OL(0x24d)];console[OL(0x1e0)](OL(0x268)+a['method']['toUpperCase']()+':'+a[OL(0x27e)]);if(P!==undefined)console[OL(0x1e0)]('VERBOSE:\x20Request\x20body\x20->\x20'+P);}if(o[OL(0x294)]){const {details:f,id:O0,message:O1,status:O2}=o[OL(0x294)],O3=f?OL(0x1d4)+JSON[OL(0x279)](f):'',O4=O0?OL(0x232)+O0:'',O5=OL(0x1e7)+O2+O4+')';throw new Error(OL(0x220)+O1+'\x20'+O5+O3);}let J=0x0;printCallResult(F,e,o[OL(0x277)],B,L,w,![],J,o[OL(0x262)]['statusText']);if(!F[OL(0x26f)]&&!Z&&!m&&o[OL(0x26c)]?.[OL(0x26d)])while(o[OL(0x26c)]?.[OL(0x26d)]){const O6=await S[OL(0x27f)]('there\x20are\x20more\x20rows,\x20load?');if(O6)process[OL(0x1f3)][OL(0x29a)](0x0,-0x1),process['stdout']['clearLine'](0x1),J+=o[OL(0x26c)][OL(0x1da)],o=await o[OL(0x26c)][OL(0x238)](),printCallResult(F,e,o[OL(0x277)],B,L,w,!![],J,o['rawResponse'][OL(0x289)]);else return;}}),E;}const C=has(Q,Ox(0x1e2)),d=n,H=y(d,C);l(L,H),M['addCommand'](H);const b=omit(Q,Ox(0x1e2));Object[Ox(0x1e5)](b)[Ox(0x24f)]>0x0&&generateCommands(O,n,H,i,K,b,L);});async function u(r,n,Q){const OA=OM,{input:L,file:A}=r;if(L!==undefined)try{return JSON['parse'](L);}catch(h){try{return a1U[OA(0x2a6)](L);}catch(t){throw new Error(OA(0x22a));}}if(A!==undefined){if(!a1M[OA(0x269)](A))throw new Error(OA(0x21f)+A);const G=a1M[OA(0x261)](A)[OA(0x214)]();let s;try{if(isString(G)){if(r[OA(0x1d5)][OA(0x223)](OA(0x25b)))s=JSON['parse'](G);else{if(r[OA(0x1d5)][OA(0x223)]('.yaml')||r[OA(0x1d5)][OA(0x223)](OA(0x224)))s=a1U[OA(0x2a6)](G);else throw new Error('Unknown\x20input\x20file\x20type:\x20'+r[OA(0x1d5)]['split']('.')['pop']());}}else s=G;return s;}catch(y){throw new Error('Failed\x20to\x20validate\x20input\x20(incorrect\x20format):\x20'+y['message']);}}if(n?.[OA(0x1e2)]?.[OA(0x227)])throw new Error(OA(0x297));return await S[OA(0x22c)](n,{'cmdPath':Q,'skipValidation':r['skipValidation']});}}const printCallResult=(O,R,M,i,K,U,x,S,p)=>{const Oh=a1O8;if(!O?.[Oh(0x26f)]){if(R)handleJsonOutput(O?.[Oh(0x219)],M);else{if(i)handleYamlOutput(O?.[Oh(0x219)],M);else{if(isListCommand(K)){const c=U?.[Oh(0x25e)]('custom-columns=')?U['replace'](Oh(0x213),'')['split'](',')[Oh(0x21d)](Q=>Q[Oh(0x1d2)]()):undefined,l=K[K[Oh(0x24f)]-0x1],u=''+l+(l[Oh(0x223)]('s')?'':'s'),r=upperFirst(u),n=has(M,u)?M[u]:M;printAsTable(n,r,c,x,S);}else console[Oh(0x1e0)](consoleFormat(M,p));}}}};
|
|
2
|
+
const a1X8=a1j;(function(X,j){const X7=a1j,V=X();while(!![]){try{const H=parseInt(X7(0x2a2))/0x1+parseInt(X7(0x258))/0x2+parseInt(X7(0x245))/0x3+parseInt(X7(0x1f8))/0x4+parseInt(X7(0x284))/0x5*(parseInt(X7(0x28d))/0x6)+parseInt(X7(0x29f))/0x7*(-parseInt(X7(0x1f3))/0x8)+-parseInt(X7(0x1f0))/0x9;if(H===j)break;else V['push'](V['shift']());}catch(O){V['push'](V['shift']());}}}(a1X,0x52e11));import{ApiClient,ApiClientFileContextProvider,GetApiEndpointPaginated}from'@northflank/js-client';import{Command}from'commander';import a1V from'fs';import a1H from'chalk';import{CliContext}from'./context/contextCommands.js';import{agent,assertContextExisting,asyncSequential,checkUpdate,customUserAgent,error,getCommand,proxyEnvsSet,warning}from'./utils.js';import*as a1O 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';function a1X(){const XW=['--verbose','branches','restores','load','pipelineId','utf-8','askForAddon','type','join','action','addon','=>\x20running\x20command\x20with:\x20','yaml','buildId','help\x20[command]','VERBOSE:\x20Using\x20endpoint\x20->\x20','pop',',\x20NF\x20error\x20id:\x20','../package.json','tag','file','loadAll','askForLogSink','OPTIONAL:\x20','all','region','dmn','\x0a\x09details\x20:','custom-columns=','noDefaults','Unknown\x20input\x20file\x20type:\x20','existsSync','name','getMetricsCommand','askForClusterId','opt','2027910RQgVXT','askForTemplateRun','\x20properties','adn','toUpperCase','VERBOSE:\x20HTTP_PROXY\x20or\x20HTTPS_PROXY\x20environment\x20variable\x20set:\x20tunnelling\x20traffic\x20through\x20HTTP\x20proxy.','Display\x20help\x20for\x20command','repo','askForSubdomain','File\x20to\x20load\x20resource\x20json\x20from','project','secrets','parse','subdomainId','version','vol','templateId','pln','data','79562wmqUXw','force','green','concat','call','opts','getCurrentProjectName','moveCursor','credentials','askForJob','portFwdCmd','endpoints','startsWith','login','split','svc','askForBackupDestination','output','projectId','deleteWarningPrompt','File\x20does\x20not\x20exist:\x20','askForBuild','sort','Documentation:\x20','keys','subdomainPath','API\x20request\x20failed\x0a\x09Message:\x20','url','downloadCmd','argv','toLowerCase','stdout','error','backupId','askForCredentials','isPaginatedEndpoint','getCurrentJobName','list','getCurrentServiceName','cursor','boolean','askGeneric','branch','volumeId','770GirBPB','option','repositories','inv','\x20--','-f,\x20--file\x20<file-path>','Failed\x20to\x20validate\x20input\x20(incorrect\x20format):\x20','alias','endsWith','24954svyXZP','secretId','stringify','getOwnPropertyNames','path','secret','map','bind','docsTagsPath','askForAddonBackup','trim','toString','execCmd','Northflank\x20cli\x20version:\x20','askForVolume','readFileSync','description','plan','7irlDis','JSON-formatted\x20resource\x20definition,\x20takes\x20precedence\x20over\x20\x22--file\x22','count','370540yiDmQo','rgn','logs','Error\x20occured\x20while\x20trying\x20to\x20run\x20command,\x20error:\x20','invoice','askForProject','base','job','get','askForTemplate','length','backup-destination','paginationArgs','Unknown\x20input\x20format.\x20Not\x20valid\x20json\x20and\x20not\x20valid\x20yaml.','hasNextPage','request','clearLine','credential','(HTTP\x20status\x20code:\x20','there\x20are\x20more\x20rows,\x20load?','projects','tags','jobId','some','quiet',',\x20-','page','credentialId','askForPipeline','backupDestinationId','enablePositionalOptions','logSinkId','aliases','helpCommand','statusText','Update\x20Northflank\x20','plans','italic','askForSecret','subdomain','nonInteractiveEndpoint','contextProvider','body','addCommand','runs','volumes','13322853WBIeyj','VERBOSE:\x20Request\x20body\x20->\x20','askForJobRun','3357776oUUXXv','repos','includes','isArray','service','2050940PUjozq','backups','rawResponse','regions','\x0a>\x20Token\x20permissions\x20required:\x20','resourceTagId','addHelpText','update','/docs/v1/api/','exitCode','addonId','underline','log','Print\x20the\x20current\x20version\x20of\x20the\x20Northflank\x20cli','domainId','query','Get\x20information\x20about\x20Northflank\x20','cred','serviceId','askForTag','brn','skipValidation','askForDomain','pagination','backup','askForSubdomainPath','template','Options\x20\x27loadAll\x27\x20can\x20not\x20be\x20combined\x20with\x20\x27page\x27\x20or\x20\x27cursor\x27','getLogsCommand','domain','jobs','yml','find','templates','clusterId','Resource\x20was\x20not\x20deleted.','method','required','uploadCmd','json','defaults'];a1X=function(){return XW;};return a1X();}import{CliExec}from'./exec/index.js';function a1j(X,j){const V=a1X();return a1j=function(H,O){H=H-0x1c7;let F=V[H];return F;},a1j(X,j);}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 a1F from'js-yaml';import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta[a1X8(0x273)]),__dirname=dirname(__filename),pgk=JSON['parse'](readFileSync(join(__dirname,a1X8(0x233)),a1X8(0x226)));export const getProgram=X=>{const X9=a1X8,j=new Command('northflank');j['description']('Manage\x20your\x20Northflank\x20resources\x20from\x20the\x20command\x20line'),j[X9(0x1e0)](!![]),j['version'](X9(0x29a)+a1H[X9(0x203)](pgk[X9(0x253)]),'-v,\x20--version',X9(0x205));const V=new ApiClient(X,{'throwErrorOnHttpErrorCode':![],'customUserAgent':customUserAgent,'agent':agent}),H=new CliContext(V,agent),O=new CliPortForward(X,agent),F=new CliExec(X,agent),h=new CliFileCopy(X,agent),P=new CliLogs(X,agent),o=new CliMetrics(X,agent);return j['addCommand'](O[X9(0x262)]),j[X9(0x1ed)](F[X9(0x299)]),j[X9(0x1ed)](h[X9(0x274)]),j[X9(0x1ed)](h[X9(0x21e)]),j['addCommand'](H[X9(0x265)]),j['addCommand'](H['contexts']),generateCommands(V,V[X9(0x263)],j,P,o),j[X9(0x1ed)](getCommandOverview(j)),j[X9(0x1e3)](X9(0x22f),'Display\x20help\x20for\x20command'),j['helpOption'](undefined,X9(0x24b)),j;};((async()=>{const XX=a1X8;try{const X=new ApiClientFileContextProvider();await checkUpdate(X);const j=getProgram(X);await j['parseAsync'](process[XX(0x275)]);}catch(V){error(XX(0x2a5)+V['message']),process['argv'][XX(0x218)](H=>H===XX(0x221))&&console[XX(0x204)](V),process[XX(0x201)]=0x1;}})());function isListCommand(X){const Xj=a1X8,j=[[Xj(0x1ca),Xj(0x22b),Xj(0x1f9)],[Xj(0x1ca),Xj(0x1c9),Xj(0x1ee)]];return X['find'](V=>V===Xj(0x27d))||j[Xj(0x1d9)](V=>isEqual(X,V));}function generateCommands(X,j,V,H,O,F=a1O[a1X8(0x220)],h=[]){const XV=a1X8,P=new InquirerHelper(new ApiClient(X[XV(0x1eb)],{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':agent}));function o(S,y){const XH=XV;return S[XH(0x21d)]!==![]&&y===undefined;}function C(S,y){const XO=XV,{opt:e,name:A}=S,l=e['default'],T=o(e,l),W=g=>g['length']>0x1?'--'+g:'-'+g,v=e?.[XO(0x28b)],G=v?Array[XO(0x1f6)](v)?'-'+v?.[XO(0x293)](g=>W(g))[XO(0x229)](XO(0x1db))+',':''+W(v):'',d=T?'':XO(0x238),x=typeof e[XO(0x228)]===XO(0x280)||e['type']===XO(0x280)?G+'\x20--'+A:G+XO(0x288)+A+'\x20<'+A[XO(0x249)]()+'>',M=d+e['description'];y[XO(0x285)](x[XO(0x297)](),M,l);}function B(S,y){const XF=XV;if(y['commands'][XF(0x1d9)](e=>e[XF(0x241)]()===XF(0x2a4)))return;isEqual(S,['get',XF(0x1f7)])&&(y[XF(0x1ed)](H['getLogsCommand'](XF(0x1f7))),y[XF(0x1ed)](O[XF(0x242)](XF(0x1f7))),y[XF(0x1ed)](H[XF(0x214)](XF(0x1f7),!![])),y[XF(0x1ed)](O[XF(0x242)](XF(0x1f7),!![]))),isEqual(S,[XF(0x1ca),XF(0x1c9)])&&(y[XF(0x1ed)](H['getLogsCommand'](XF(0x1c9))),y[XF(0x1ed)](O['getMetricsCommand'](XF(0x1c9))),y[XF(0x1ed)](H[XF(0x214)](XF(0x1c9),!![])),y[XF(0x1ed)](O[XF(0x242)](XF(0x1c9),!![]))),isEqual(S,[XF(0x1ca),'addon'])&&(y['addCommand'](H[XF(0x214)](XF(0x22b))),y['addCommand'](O[XF(0x242)](XF(0x22b)))),isEqual(S,[XF(0x1ca),'addon',XF(0x210)])&&y['addCommand'](H['getLogsCommand'](XF(0x22b),![],!![])),isEqual(S,[XF(0x1ca),XF(0x22b),XF(0x223)])&&y[XF(0x1ed)](H[XF(0x214)](XF(0x22b),![],!![],!![]));}return Object[XV(0x290)](F)['forEach'](S=>{const Xh=XV,y=j[S],e=F[S],A=h[Xh(0x25b)]([S]);function l(b,E){const XP=Xh,t=Object[XP(0x290)](b||{});t['map'](Z=>{return{'name':Z,'opt':b[Z]};})[XP(0x26e)]((Z,w)=>!o(Z[XP(0x244)])?!o(w[XP(0x244)])?0x0:0x1:-0x1)['forEach'](Z=>{C(Z,E);});}function T(b,E){const Xo=Xh,t=[[Xo(0x24f),Xo(0x1d6),'prj'],[Xo(0x1f7),'services',Xo(0x267)],[Xo(0x260),Xo(0x1d3),Xo(0x209)],[Xo(0x22b),'addons',Xo(0x248)],['job',Xo(0x216)],[Xo(0x29e),Xo(0x1e6),Xo(0x256)],[Xo(0x23a),Xo(0x1fb),Xo(0x2a3)],[Xo(0x215),'domains',Xo(0x23b)],[Xo(0x292),Xo(0x250),'scrt'],[Xo(0x1ef),'volume',Xo(0x254)],[Xo(0x222),Xo(0x282),Xo(0x20c)],[Xo(0x2a6),'invoices',Xo(0x287)],[Xo(0x212),Xo(0x219),'tpl'],[Xo(0x1f4),'repository',Xo(0x286),Xo(0x24c)],[Xo(0x1cd),'backup-destinations'],[Xo(0x234),Xo(0x1d7)]],Z=t['find'](w=>w['includes'](E));if(Z!==undefined)b[Xo(0x1e2)](Z['filter'](w=>w!==E));}async function W(b){const XC=Xh,E={},{contextProvider:t}=X,Z=A[XC(0x1f5)]('delete'),w=b[XC(0x23e)]===!![];async function N(p,m,k){const XB=XC;if(has(e['opt']?.[XB(0x291)]??{},p)){const I=!w&&!Z&&k?k():undefined,K=b[p]||I||await m();set(E,p,K);}}return await asyncSequential(Object['entries'](e[XC(0x244)]?.[XC(0x291)]??{}),async([p,m])=>{const Xs=XC,k=E?.[Xs(0x26a)],I=E?.[Xs(0x255)];switch(p){case Xs(0x26a):return await N('projectId',P[Xs(0x1c7)][Xs(0x294)](P),t[Xs(0x25e)]['bind'](t));case Xs(0x20a):return await N(Xs(0x20a),P['askForService'](k)[Xs(0x294)](P),t[Xs(0x27e)][Xs(0x294)](t));case Xs(0x202):return await N(Xs(0x202),P[Xs(0x227)](k)[Xs(0x294)](P));case Xs(0x1d8):return await N(Xs(0x1d8),P[Xs(0x261)](k)[Xs(0x294)](P),t[Xs(0x27c)]['bind'](t));case'runId':return await N('runId',P[Xs(0x1f2)](E[Xs(0x1d8)],k,![])[Xs(0x294)](P));case'secretId':return await N(Xs(0x28e),P[Xs(0x1e8)](k)['bind'](P));case Xs(0x215):case Xs(0x206):return await N(Xs(0x215),P[Xs(0x20e)][Xs(0x294)](P));case'credentialId':return await N(Xs(0x1dd),P[Xs(0x27a)][Xs(0x294)](P));case Xs(0x283):return await N(Xs(0x283),P[Xs(0x29b)](k)['bind'](P));case'subdomain':return await N(Xs(0x1e9),P['askForSubdomain'](E[Xs(0x215)])['bind'](P));case Xs(0x252):return await N(Xs(0x252),P[Xs(0x24d)](E[Xs(0x206)])[Xs(0x294)](P));case Xs(0x271):return await N(Xs(0x271),P[Xs(0x211)](E['domain'],E[Xs(0x1e9)]??E[Xs(0x252)])[Xs(0x294)](P));case Xs(0x279):return await N('backupId',P[Xs(0x296)](k,E[Xs(0x202)])[Xs(0x294)](P));case Xs(0x22e):return await N('buildId',P[Xs(0x26d)](k,E[Xs(0x20a)],E[Xs(0x1d8)])[Xs(0x294)](P));case Xs(0x255):return await N('templateId',P[Xs(0x1cb)]()[Xs(0x294)](P));case'templateRunId':return await N('templateRunId',P[Xs(0x246)](I)[Xs(0x294)](P));case'logSinkId':return await N(Xs(0x1e1),P[Xs(0x237)]()[Xs(0x294)](P));case Xs(0x225):return await N(Xs(0x225),P[Xs(0x1de)](k)[Xs(0x294)](P));case'resourceTagId':return await N(Xs(0x1fd),P[Xs(0x20b)]()['bind'](P));case Xs(0x1df):return await N(Xs(0x1df),P[Xs(0x268)]()[Xs(0x294)](P));case Xs(0x21a):return await N(Xs(0x21a),P[Xs(0x243)]()['bind'](P));default:return await N(p,P[Xs(0x281)](p,m?.[Xs(0x29d)])[Xs(0x294)](P));}}),E;}async function v(b){const XS=Xh,E={},t=e[XS(0x244)]?.[XS(0x27b)]?a1O[XS(0x1ce)]:{},Z={...e[XS(0x244)]?.[XS(0x207)]??{},...t},w=Object[XS(0x270)](Z)['filter'](N=>N!==XS(0x236));return await asyncSequential(w,async N=>{if(b[N]!==undefined)return set(E,N,b[N]);}),E;}function G(){const Xy=Xh;switch(A[0x0]){case Xy(0x1ca):return Xy(0x208)+(A[0x1]||'resource')+'s';case Xy(0x1ff):return Xy(0x1e5)+(A[0x1]||'resource')+Xy(0x247);default:return upperFirst(S)+'\x20Northflank\x20resources';}}function d(b,E){const Xe=Xh;if(!E){const K=getCommand()[Xe(0x241)](kebabCase(S))[Xe(0x29d)](G());return T(K,S),K;}const t=b?.['requiredPermissions']?a1H[Xe(0x1e7)](Xe(0x1fc)+b['requiredPermissions']):'',Z=X['contextProvider']['getCurrentContext'](),w=Z!==undefined&&e?.[Xe(0x244)]?.[Xe(0x295)]!==undefined,N=Z?.['host']['replace']('api.',''),p=w?Xe(0x26f)+N+Xe(0x200)+e?.[Xe(0x244)]?.[Xe(0x295)]:'',m=b?.[Xe(0x29d)]||'',k=getCommand(!![])[Xe(0x241)](kebabCase(S))[Xe(0x29d)](m)[Xe(0x1fe)]('after',[t,p][Xe(0x229)]('\x0a'));T(k,S);(e['opt']?.[Xe(0x1ec)]||e[Xe(0x244)]?.[Xe(0x1ea)])&&(k[Xe(0x285)](Xe(0x289),Xe(0x24e)),k['option']('-i,\x20--input\x20<resource-def>',Xe(0x2a0)));l(e[Xe(0x244)]?.[Xe(0x291)],k),l(e[Xe(0x244)]?.[Xe(0x207)],k);const I=e[Xe(0x244)]?.[Xe(0x27b)];return I&&l(a1O[Xe(0x1ce)],k),l(e[Xe(0x244)]?.[Xe(0x1c8)],k),k[Xe(0x22a)](async()=>{const XA=Xe;assertContextExisting(X);const L=k[XA(0x25d)]();L?.['verbose']&&proxyEnvsSet&&warning(XA(0x24a));const a=L[XA(0x1dc)]!==undefined||L[XA(0x27f)]!==undefined;if(L['loadAll']===!![]&&a)throw new Error(XA(0x213));const r=L?.['output'],R=r==='json',n=r===XA(0x22d)||r===XA(0x217),D=await W(L);P['setPathVars'](D);const Y=await v(L),u=Object[XA(0x270)](e[XA(0x244)]?.[XA(0x291)]??{})['map'](q=>q+'='+a1H[XA(0x25a)](D[q]))['join'](',\x20');if(u[XA(0x1cc)]>0x0&&!R&&!n){const q=XA(0x22c)+u;console[XA(0x204)](q);}const Q=e[XA(0x244)]?.[XA(0x1ec)]||e[XA(0x244)]?.[XA(0x1ea)]?await s(L,e,A):undefined;if(!L[XA(0x259)]&&A[XA(0x1f5)]('delete')&&!await P[XA(0x26b)]()){warning(XA(0x21b));return;}const f=I&&(L[XA(0x236)]||(L[XA(0x269)]===XA(0x21f)||L[XA(0x269)]===XA(0x22d))&&!a);let z=f&&y instanceof GetApiEndpointPaginated?await y[XA(0x239)]({'parameters':D,'options':Y,'data':Q}):await y[XA(0x25c)]({'parameters':D,'options':{...Y},'data':Q});if(L?.['verbose']){const c=z[XA(0x1d1)];console[XA(0x204)](XA(0x230)+c[XA(0x21c)]['toUpperCase']()+':'+c[XA(0x273)]);if(Q!==undefined)console[XA(0x204)](XA(0x1f1)+Q);}if(z[XA(0x278)]){const {details:i,id:X0,message:X1,status:X2}=z[XA(0x278)],X3=i?XA(0x23c)+JSON[XA(0x28f)](i):'',X4=X0?XA(0x232)+X0:'',X5=XA(0x1d4)+X2+X4+')';throw new Error(XA(0x272)+X1+'\x20'+X5+X3);}let U=0x0;printCallResult(L,R,z[XA(0x257)],n,A,r,![],U,z[XA(0x1fa)]['statusText']);if(!L[XA(0x1da)]&&!f&&!a&&z[XA(0x20f)]?.[XA(0x1d0)])while(z['pagination']?.[XA(0x1d0)]){const X6=await P['askConfirm'](XA(0x1d5));if(X6)process[XA(0x277)][XA(0x25f)](0x0,-0x1),process[XA(0x277)][XA(0x1d2)](0x1),U+=z[XA(0x20f)][XA(0x2a1)],z=await z['pagination']['getNextPage'](),printCallResult(L,R,z['data'],n,A,r,!![],U,z[XA(0x1fa)][XA(0x1e4)]);else return;}}),k;}const x=has(e,Xh(0x244)),M=y,g=d(M,x);B(A,g),V[Xh(0x1ed)](g);const J=omit(e,'opt');Object[Xh(0x270)](J)['length']>0x0&&generateCommands(X,y,g,H,O,J,A);});async function s(S,y,A){const Xl=XV,{input:l,file:T}=S;if(l!==undefined)try{return JSON[Xl(0x251)](l);}catch(W){try{return a1F[Xl(0x224)](l);}catch(v){throw new Error(Xl(0x1cf));}}if(T!==undefined){if(!a1V[Xl(0x240)](T))throw new Error(Xl(0x26c)+T);const G=a1V[Xl(0x29c)](T)[Xl(0x298)]();let x;try{if(isString(G)){if(S[Xl(0x235)][Xl(0x28c)]('.json'))x=JSON['parse'](G);else{if(S[Xl(0x235)][Xl(0x28c)]('.yaml')||S['file']['endsWith'](Xl(0x217)))x=a1F[Xl(0x224)](G);else throw new Error(Xl(0x23f)+S[Xl(0x235)]['split']('.')[Xl(0x231)]());}}else x=G;return x;}catch(M){throw new Error(Xl(0x28a)+M['message']);}}if(y?.['opt']?.[Xl(0x1ea)])throw new Error('Expecting\x20resource\x20input\x20with\x20\x27--input\x27\x20or\x20\x27--file\x27\x20argument');return await P['retrievePayloadViaInteractiveCli'](y,{'cmdPath':A,'skipValidation':S[Xl(0x20d)]});}}const printCallResult=(X,j,V,H,O,F,h,P,o)=>{const XT=a1X8;if(!X?.[XT(0x1da)]){if(j)handleJsonOutput(X?.[XT(0x269)],V);else{if(H)handleYamlOutput(X?.[XT(0x269)],V);else{if(isListCommand(O)){const C=F?.[XT(0x264)](XT(0x23d))?F['replace'](XT(0x23d),'')[XT(0x266)](',')[XT(0x293)](e=>e[XT(0x276)]()):undefined,B=O[O[XT(0x1cc)]-0x1],s=''+B+(B[XT(0x28c)]('s')?'':'s'),S=upperFirst(s),y=has(V,s)?V[s]:V;printAsTable(y,S,C,h,P);}else console['log'](consoleFormat(V,o));}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a2d=a2R;(function(O,R){const C=a2R,M=O();while(!![]){try{const i=parseInt(C(0x1e9))/0x1+parseInt(C(0x1ec))/0x2*(-parseInt(C(0x233))/0x3)+-parseInt(C(0x232))/0x4+-parseInt(C(0x24e))/0x5+parseInt(C(0x21f))/0x6+parseInt(C(0x239))/0x7*(parseInt(C(0x214))/0x8)+parseInt(C(0x1ef))/0x9*(parseInt(C(0x24a))/0xa);if(i===R)break;else M['push'](M['shift']());}catch(K){M['push'](M['shift']());}}}(a2O,0x643af));import{ProxyAgent}from'proxy-agent';import a2M from'chalk';import{error,getCommand,retry,success,warning,decodeJwtPayload}from'../utils.js';function a2R(O,R){const M=a2O();return a2R=function(i,K){i=i-0x1d7;let U=M[i];return U;},a2R(O,R);}import{InquirerHelper}from'../inquirer-helper.js';import{printAsTable}from'../formatting/console-format-helpers.js';import{NorthflankApiBrowserLogin}from'../login/browser-login.js';import a2i from'node-fetch';import{set}from'lodash-es';import a2K from'inquirer';export class CliContext{[a2d(0x217)];[a2d(0x227)];[a2d(0x25b)];[a2d(0x21a)];[a2d(0x21e)];constructor(O,R=undefined,M='https://api.northflank.com'){const H=a2d;this[H(0x217)]=R,this[H(0x227)]=M,this[H(0x25b)]=O;const i=new InquirerHelper(O);this[H(0x21e)]=getCommand()[H(0x249)]('login')[H(0x259)]('Connect\x20the\x20CLI\x20to\x20your\x20Northflank\x20account.')['option'](H(0x22c),H(0x1f9),![])['option']('--do-not-open-browser',H(0x1fe),![])[H(0x20c)]('-n,\x20--name\x20[NAME]',H(0x1e2))[H(0x20c)](H(0x200),H(0x240))[H(0x20c)]('--host\x20[HOST]',H(0x1e1),this['defaultBaseUrl'])[H(0x20c)](H(0x1fd),H(0x23b),![])['action'](async n=>{const b=H;set(n,'host',this['sanitiseHostname'](n[b(0x236)]));const Q=n[b(0x237)]||n[b(0x1f5)]!==undefined,{name:L,host:A,token:h,override:t}=Q?await this[b(0x1e7)](n,i):await this[b(0x1e4)](n,i);try{await this[b(0x25b)]['contextProvider'][b(0x22a)]({'name':L,'host':A,'token':h},t);}catch(G){error(G[b(0x22b)]);return;}if(!await this[b(0x1fc)]())error('Failed\x20to\x20login\x20with\x20the\x20provided\x20token,\x20make\x20sure\x20to\x20use\x20a\x20valid\x20token\x20and\x20host.'),await this[b(0x25b)][b(0x1d9)][b(0x1e5)](L);else{const s=Q?b(0x25d):b(0x24c),y=b(0x22e)+s+',\x20added\x20context\x20with\x20name\x20'+a2M[b(0x202)](L)+b(0x248)+A+')';success(y);}}),this[H(0x21a)]=getCommand()[H(0x249)](H(0x203))['description'](H(0x20d))[H(0x256)]('contexts')['alias'](H(0x1f4));const K=getCommand()[H(0x249)]('list')['name']('ls')['description'](H(0x1f6))[H(0x20c)](H(0x20a),H(0x1ee))[H(0x23c)](async n=>{const I=H;console[I(0x1d8)](O[I(0x1d9)][I(0x245)]());const Q=O['contextProvider'][I(0x1fb)]();if(n[I(0x242)]===!![]){console[I(0x251)](Q);return;}const L=Q[I(0x254)],A=Q[I(0x21a)][I(0x24d)]((h,t)=>h['name']===L?-0x1:t[I(0x249)]===L?0x1:0x0)['map'](h=>{const k=I,t=L===h[k(0x249)]?'\x20(current)':'';return{'Name':''+h[k(0x249)]+t,'Host':h['host'],'Default\x20Project':h[k(0x1de)]||'-','Default\x20Service':h['service']||'-'};});printAsTable(A,I(0x215));}),U=getCommand()[H(0x249)](H(0x1f2))[H(0x259)]('Shows\x20detailed\x20information\x20about\x20current\x20context')[H(0x23c)](async()=>{const q=H;console[q(0x1d8)](O[q(0x1d9)][q(0x245)]());const n=O[q(0x1d9)][q(0x224)]();if(n===undefined){console[q(0x1d8)](q(0x21b));return;}const Q=decodeJwtPayload(n[q(0x1f5)]),L=n[q(0x236)];console['log'](a2M[q(0x223)](q(0x21c))+q(0x252)+n[q(0x249)]+q(0x1f1)+L+'\x0a\x20\x20Default\x20Project:\x09'+(n['project']||'-')+q(0x1fa)+(n['service']||'-')+q(0x255)+(Q?.[q(0x226)]||'-')+q(0x247)+(Q?.[q(0x1da)]||'-')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20');}),x=getCommand();x[H(0x249)](H(0x222))[H(0x259)](H(0x1e3))[H(0x20c)]('-n,\x20--name\x20[NAME]','Change\x20current\x20context\x20to\x20context\x20identified\x20by\x20this\x20name')['action'](async n=>{const j=H,Q=n?.[j(0x249)]||await this[j(0x23e)](j(0x222));await this[j(0x25b)][j(0x1d9)][j(0x241)](Q),success(j(0x1dc)+Q);});const S=H(0x205),p=getCommand()['name']('project')[H(0x259)](H(0x1f3))[H(0x20c)](S,H(0x25e))['action'](async n=>{const D=H,Q=n?.['id']||await i[D(0x22f)]();await this[D(0x25b)][D(0x1d9)][D(0x25c)](Q),console['log'](D(0x21d),Q);}),c=getCommand()[H(0x249)](H(0x20b))['description'](H(0x1d7))['option'](S,H(0x228))[H(0x23c)](async n=>{const Y=H,Q=n?.['id']||await i['askForService'](this[Y(0x253)]())();console['log'](Y(0x229),Q),await this['apiClient'][Y(0x1d9)][Y(0x1ea)](Q);}),l=getCommand()[H(0x249)](H(0x1ff))[H(0x259)](H(0x1eb))['option'](S,'Job\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context')['action'](async n=>{const N=H,Q=n?.['id']||await i[N(0x1e6)](this[N(0x253)]())();console['log'](N(0x218),Q),await this[N(0x25b)][N(0x1d9)][N(0x22d)](Q);});x[H(0x23a)](p),x[H(0x23a)](l),x[H(0x23a)](c);const u=getCommand()[H(0x249)]('remove')[H(0x256)]('delete')[H(0x256)]('rm')[H(0x259)](H(0x23f))[H(0x20c)](S,'Local\x20context\x20name\x20to\x20remove.')[H(0x23c)](async n=>{const z=H,Q=n?.['id']||await this[z(0x23e)]('remove'),L=this[z(0x25b)][z(0x1d9)]['getCurrentContext']()?.['name'];await this['apiClient'][z(0x1d9)]['removeContext'](Q),success(z(0x258)+Q+z(0x221));if(!this[z(0x206)]()){warning(z(0x207));return;}if(L===Q){const A=n?.['name']||await this[z(0x23e)](z(0x23d));await this[z(0x25b)][z(0x1d9)]['useContext'](A),success('Changed\x20current\x20context\x20to\x20'+A);}}),r=getCommand()[H(0x249)](H(0x234))[H(0x256)]('set-token')[H(0x259)]('Update\x20token\x20for\x20current\x20context')[H(0x20c)](H(0x200),H(0x231))[H(0x23c)](async n=>{const E=H,{contextProvider:Q}=this[E(0x25b)],L=n?.[E(0x1f5)]||await i[E(0x238)](),A=Q[E(0x1e8)]();await Q['updateToken'](L);if(await this[E(0x1fc)]())success(E(0x210)+Q[E(0x20e)]()+E(0x24f));else{if(A)await Q['updateToken'](A);error('Failed\x20to\x20login\x20with\x20the\x20provided\x20token.\x20Token\x20was\x20not\x20changed');}});this[H(0x21a)]['addCommand'](K),this['contexts'][H(0x23a)](U),this[H(0x21a)][H(0x23a)](x),this[H(0x21a)]['addCommand'](u),this[H(0x21a)][H(0x23a)](r);}async[a2d(0x1e4)](O,R){const T=a2d,M=!O[T(0x208)],i=O['host']??this[T(0x227)],K=new NorthflankApiBrowserLogin(i,M,this[T(0x217)]);let U;K['on']('browser-opened',({url:c})=>{const W=T;if(M){const l=c[W(0x213)](/sessionToken=.*/,'sessionToken=********');console[W(0x1d8)]('Follow\x20the\x20steps\x20displayed\x20on\x20the\x20page\x20opened\x20in\x20the\x20browser\x20(URL\x20opened:\x20'+l+')'),U=a2K[W(0x209)]([{'type':W(0x1f0),'name':W(0x204),'message':'Display\x20full\x20URL\x20to\x20allow\x20opening\x20the\x20link\x20manually','default':![]}]),U['then'](u=>{const F=W;process[F(0x230)]['moveCursor'](0x0,-0x1),process[F(0x230)][F(0x25a)](0x1),u[F(0x204)]&&console[F(0x1d8)](F(0x1f7)+c+'\x20');});}else console['log']('Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09'+c+'\x20');});const {token:x,contextName:S}=await K[T(0x24b)]()[T(0x20f)](async c=>{const m=T;error(m(0x246)+c[m(0x22b)]+m(0x244));const l=await this[m(0x1e7)](O,R);return{'token':l[m(0x1f5)],'contextName':l['name']};})[T(0x1ed)](()=>{if(U)U['ui']['close']();}),p=O['name']??S??T(0x250)+new Date()[T(0x1db)]();return{'name':p,'token':x,'host':i,'override':O[T(0x1dd)]??![]};}[a2d(0x1f8)]=O=>{const w=a2d;let R=O;return!/^https?:\/\//i[w(0x212)](R)&&(R=w(0x243)+R),R=R['replace'](/\/+$/,''),R;};async['apiTokenLogin'](O,R){const e=a2d,M=this[e(0x25b)][e(0x1d9)]['loadContextWrapper']()['contexts'],{name:i,token:K,host:U,override:x}=await R[e(0x225)](O,M);return{'name':i,'token':K,'host':U,'override':x};}[a2d(0x253)](){const B=a2d,O=this[B(0x25b)][B(0x1d9)]['getCurrentProjectName']();if(O===undefined)throw new Error(B(0x1df));return O;}async[a2d(0x23e)](O){const V=a2d;if(!this[V(0x206)]())throw new Error(V(0x201));const R=this[V(0x25b)][V(0x1d9)]['loadContextWrapper']()[V(0x21a)][V(0x219)](i=>i[V(0x249)]),M=R[V(0x1e0)]>0x4?'search-list':'list';return(await a2K[V(0x209)]([{'type':M,'name':V(0x249),'message':V(0x235)+O+':','choices':R}]))['name'];}[a2d(0x206)](){const v=a2d;return this[v(0x25b)]['contextProvider'][v(0x1fb)]()[v(0x21a)][v(0x1e0)]>0x0;}async[a2d(0x1fc)](){const g=a2d;try{const O=this[g(0x25b)][g(0x1d9)][g(0x257)](),R=this['apiClient']['contextProvider'][g(0x1e8)](),M=O+g(0x216),i={'Authorization':'Bearer\x20'+R},K=new ProxyAgent(),U=await retry(0x3)(async()=>a2i(M,{'method':g(0x211),'signal':AbortSignal[g(0x220)](0xbb8),'headers':i,'agent':K}));if(U['ok'])return!![];return![];}catch(x){return![];}}}function a2O(){const P=['host','tokenLogin','tokenPrompt','10871inZGbG','addCommand','Override\x20existing\x20contexts\x20(this\x20will\x20remove\x20project\x20and\x20service\x20context)','action','use\x20from\x20now\x20on','askForContext','Remove\x20a\x20context','Token\x20for\x20this\x20context.\x20When\x20set,\x20browser\x20login\x20is\x20not\x20used','useContext','all','https://','.\x20Using\x20fallback.','getInfo','Error\x20occured\x20during\x20browser\x20login:\x20','\x0a\x20\x20Token\x20Role\x20ID:\x09','\x20(api\x20host:\x20','name','9050830eZXZIW','startLogin','browser\x20login','sort','3006080cVtmVE','\x27\x20successfully\x20updated.','autologin-','dir',':\x20\x0a\x20\x20Name:\x09\x09\x09','getProjectName','current','\x0a\x20\x20Token\x20ID:\x09\x09','alias','getCurrentBaseUrl','Local\x20context\x20\x27','description','clearLine','apiClient','useProjectId','token\x20login','Project\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','Change\x20the\x20default\x20service\x20in\x20the\x20current\x20local\x20context','log','contextProvider','roleInternalId','valueOf','Changed\x20current\x20context\x20to\x20','override','project','No\x20project\x20in\x20current\x20context.\x20Please\x20set\x20project\x20before\x20setting\x20a\x20project-scoped\x20resource','length','host\x20url\x20for\x20this\x20context','Name\x20for\x20login\x20context','Switch\x20between\x20your\x20local\x20contexts','browserLogin','removeContext','askForJob','apiTokenLogin','getCurrentToken','801021CZddvJ','useServiceId','Change\x20the\x20default\x20job\x20in\x20the\x20current\x20local\x20context','200834OBsosM','finally','Shows\x20full\x20context\x20information\x20(including\x20tokens)','9YSKsGj','confirm','\x0a\x20\x20Host:\x09\x09\x09','show','Change\x20the\x20default\x20project\x20in\x20the\x20current\x20local\x20context','ctx','token','List\x20all\x20available\x20contexts','Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09','sanitiseHostname','Use\x20manual\x20login\x20with\x20API\x20token','\x0a\x20\x20Default\x20Service:\x09','loadContextWrapper','verifyToken','--override','Use\x20browser\x20login\x20but\x20only\x20print\x20URL\x20which\x20can\x20be\x20used\x20to\x20login','job','-t,\x20--token\x20[TOKEN]','No\x20context\x20available.\x20Please\x20use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','italic','context','fullUrl','-i,\x20--id\x20[ID]','contextAvailable','No\x20context\x20available.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','doNotOpenBrowser','prompt','--all','service','option','Retrieve\x20and\x20update\x20local\x20context\x20settings.','getCurrentName','catch','Token\x20for\x20current\x20context\x20\x27','GET','test','replace','2824FtbaJJ','Contexts','/v1/login','agent','Use\x20job\x20with\x20id:','map','contexts','No\x20current\x20context\x20set.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20one\x20or\x20\x27northflank\x20context\x20use\x27\x20to\x20select\x20an\x20existing\x20one.','Current\x20token\x20info','Use\x20project\x20with\x20id:','login','845682cfHCxt','timeout','\x27\x20successfully\x20removed.','use','bold','getCurrentContext','loginPrompt','tokenInternalId','defaultBaseUrl','Service\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','Use\x20service\x20with\x20id:','addContext','message','--token-login','useJobId','\x0aSuccessfully\x20logged\x20in\x20using\x20','askForProject','stdout','Token\x20for\x20this\x20context','2722328MYATRn','21pkYLyR','update-token','Choose\x20the\x20context\x20to\x20'];a2O=function(){return P;};return a2O();}
|
|
1
|
+
const a2g=a2j;(function(X,j){const M=a2j,V=X();while(!![]){try{const H=parseInt(M(0x109))/0x1*(-parseInt(M(0x112))/0x2)+-parseInt(M(0xb5))/0x3*(-parseInt(M(0x103))/0x4)+-parseInt(M(0x13c))/0x5+-parseInt(M(0xf6))/0x6+-parseInt(M(0xed))/0x7+parseInt(M(0x10c))/0x8*(-parseInt(M(0x133))/0x9)+-parseInt(M(0xeb))/0xa*(-parseInt(M(0xfb))/0xb);if(H===j)break;else V['push'](V['shift']());}catch(O){V['push'](V['shift']());}}}(a2X,0x7dafb));import{ProxyAgent}from'proxy-agent';import a2V 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 a2H from'node-fetch';import{set}from'lodash-es';import a2O from'inquirer';function a2j(X,j){const V=a2X();return a2j=function(H,O){H=H-0xb3;let F=V[H];return F;},a2j(X,j);}function a2X(){const z=['Contexts','contextAvailable','\x0a\x20\x20Host:\x09\x09\x09','Shows\x20full\x20context\x20information\x20(including\x20tokens)','test','--host\x20[HOST]','loadContextWrapper','No\x20context\x20available.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','set-token','https://api.northflank.com','Job\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','useJobId','apiClient','all','host','delete','update-token','removeContext','List\x20all\x20available\x20contexts','-i,\x20--id\x20[ID]','Change\x20the\x20default\x20job\x20in\x20the\x20current\x20local\x20context','getCurrentBaseUrl','197217VGeBcZ','project','Local\x20context\x20\x27','\x0a\x20\x20Token\x20ID:\x09\x09','\x20(current)','contexts','useContext','current','catch','4144235BnnhZX','override','tokenLogin','Use\x20project\x20with\x20id:','action','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','330SgFJAW','getProjectName','\x27\x20successfully\x20updated.','browser-opened','Use\x20browser\x20login\x20but\x20only\x20print\x20URL\x20which\x20can\x20be\x20used\x20to\x20login','Switch\x20between\x20your\x20local\x20contexts','close','Failed\x20to\x20login\x20with\x20the\x20provided\x20token,\x20make\x20sure\x20to\x20use\x20a\x20valid\x20token\x20and\x20host.','Choose\x20the\x20context\x20to\x20','getCurrentName','addCommand','\x20(api\x20host:\x20','Token\x20for\x20this\x20context.\x20When\x20set,\x20browser\x20login\x20is\x20not\x20used','Failed\x20to\x20login\x20with\x20the\x20provided\x20token.\x20Token\x20was\x20not\x20changed','--all','fullUrl','token\x20login','--override','No\x20context\x20available.\x20Please\x20use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','Retrieve\x20and\x20update\x20local\x20context\x20settings.','agent','.\x20Using\x20fallback.','then','useServiceId','dir','valueOf','finally','Project\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','remove','description','option','log','stdout','search-list',':\x20\x0a\x20\x20Name:\x09\x09\x09','Use\x20job\x20with\x20id:','browserLogin','Update\x20token\x20for\x20current\x20context','alias','service','getCurrentProjectName','Change\x20the\x20default\x20project\x20in\x20the\x20current\x20local\x20context','Name\x20for\x20login\x20context','Use\x20service\x20with\x20id:','askForContext','\x0a\x20\x20Token\x20Role\x20ID:\x09','browser\x20login','name','Local\x20context\x20name\x20to\x20remove.','tokenPrompt','Change\x20the\x20default\x20service\x20in\x20the\x20current\x20local\x20context','updateToken','list','moveCursor','1940kozRVC','-n,\x20--name\x20[NAME]','2433984ITFnui','\x0a\x20\x20Default\x20Project:\x09','getInfo','--do-not-open-browser','askForService','use\x20from\x20now\x20on','getCurrentToken','/v1/login','Connect\x20the\x20CLI\x20to\x20your\x20Northflank\x20account.','1594806aiiXzp','Display\x20full\x20URL\x20to\x20allow\x20opening\x20the\x20link\x20manually',',\x20added\x20context\x20with\x20name\x20','Bearer\x20','No\x20current\x20context\x20set.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20one\x20or\x20\x27northflank\x20context\x20use\x27\x20to\x20select\x20an\x20existing\x20one.','74965IGKwoC','Changed\x20current\x20context\x20to\x20','replace','Follow\x20the\x20steps\x20displayed\x20on\x20the\x20page\x20opened\x20in\x20the\x20browser\x20(URL\x20opened:\x20','login','Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09','Use\x20manual\x20login\x20with\x20API\x20token','sort','26904QsyPIh','confirm','token','\x0a\x20\x20Default\x20Service:\x09','length','startLogin','11nmoAQa','autologin-','askForProject','16MPkpNC','No\x20project\x20in\x20current\x20context.\x20Please\x20set\x20project\x20before\x20setting\x20a\x20project-scoped\x20resource','contextProvider','defaultBaseUrl','-t,\x20--token\x20[TOKEN]','loginPrompt','11086QynLEd','sanitiseHostname','bold','host\x20url\x20for\x20this\x20context','https://','message','Remove\x20a\x20context','job','apiTokenLogin','Error\x20occured\x20during\x20browser\x20login:\x20','verifyToken'];a2X=function(){return z;};return a2X();}export class CliContext{[a2g(0xc9)];['defaultBaseUrl'];[a2g(0x129)];[a2g(0x138)];[a2g(0xff)];constructor(X,j=undefined,V=a2g(0x126)){const J=a2g;this['agent']=j,this[J(0x10f)]=V,this['apiClient']=X;const H=new InquirerHelper(X);this[J(0xff)]=getCommand()['name'](J(0xff))[J(0xd2)](J(0xf5))[J(0xd3)]('--token-login',J(0x101),![])['option'](J(0xf0),J(0xb9),![])['option'](J(0xec),J(0xdf))[J(0xd3)](J(0x110),J(0xc1))[J(0xd3)](J(0x122),J(0x115),this['defaultBaseUrl'])[J(0xd3)](J(0xc6),'Override\x20existing\x20contexts\x20(this\x20will\x20remove\x20project\x20and\x20service\x20context)',![])[J(0xb3)](async y=>{const b=J;set(y,b(0x12b),this[b(0x113)](y[b(0x12b)]));const A=y[b(0x13e)]||y['token']!==undefined,{name:l,host:T,token:W,override:v}=A?await this[b(0x11a)](y,H):await this[b(0xd9)](y,H);try{await this['apiClient'][b(0x10e)]['addContext']({'name':l,'host':T,'token':W},v);}catch(G){error(G[b(0x117)]);return;}if(!await this['verifyToken']())error(b(0xbc)),await this['apiClient']['contextProvider'][b(0x12e)](l);else{const d=A?b(0xc5):b(0xe3),x='\x0aSuccessfully\x20logged\x20in\x20using\x20'+d+b(0xf8)+a2V['italic'](l)+b(0xc0)+T+')';success(x);}}),this[J(0x138)]=getCommand()[J(0xe4)]('context')['description'](J(0xc8))[J(0xdb)]('contexts')[J(0xdb)]('ctx');const O=getCommand()[J(0xe4)](J(0xe9))['name']('ls')[J(0xd2)](J(0x12f))[J(0xd3)](J(0xc3),J(0x120))[J(0xb3)](async y=>{const E=J;console['log'](X[E(0x10e)][E(0xef)]());const e=X['contextProvider'][E(0x123)]();if(y[E(0x12a)]===!![]){console[E(0xcd)](e);return;}const A=e[E(0x13a)],l=e[E(0x138)][E(0x102)]((T,W)=>T['name']===A?-0x1:W[E(0xe4)]===A?0x1:0x0)['map'](T=>{const t=E,W=A===T['name']?t(0x137):'';return{'Name':''+T[t(0xe4)]+W,'Host':T[t(0x12b)],'Default\x20Project':T[t(0x134)]||'-','Default\x20Service':T[t(0xdc)]||'-'};});printAsTable(l,E(0x11d));}),F=getCommand()[J(0xe4)]('show')['description']('Shows\x20detailed\x20information\x20about\x20current\x20context')[J(0xb3)](async()=>{const Z=J;console[Z(0xd4)](X[Z(0x10e)]['getInfo']());const y=X[Z(0x10e)]['getCurrentContext']();if(y===undefined){console[Z(0xd4)](Z(0xfa));return;}const e=decodeJwtPayload(y[Z(0x105)]),A=y[Z(0x12b)];console[Z(0xd4)](a2V[Z(0x114)]('Current\x20token\x20info')+Z(0xd7)+y[Z(0xe4)]+Z(0x11f)+A+Z(0xee)+(y[Z(0x134)]||'-')+Z(0x106)+(y['service']||'-')+Z(0x136)+(e?.['tokenInternalId']||'-')+Z(0xe2)+(e?.['roleInternalId']||'-')+Z(0xb4));}),h=getCommand();h[J(0xe4)]('use')['description'](J(0xba))[J(0xd3)](J(0xec),'Change\x20current\x20context\x20to\x20context\x20identified\x20by\x20this\x20name')[J(0xb3)](async y=>{const w=J,e=y?.[w(0xe4)]||await this['askForContext']('use');await this[w(0x129)][w(0x10e)]['useContext'](e),success(w(0xfc)+e);});const P=J(0x130),o=getCommand()['name'](J(0x134))[J(0xd2)](J(0xde))[J(0xd3)](P,J(0xd0))[J(0xb3)](async y=>{const N=J,e=y?.['id']||await H[N(0x10b)]();await this[N(0x129)][N(0x10e)]['useProjectId'](e),console[N(0xd4)](N(0x13f),e);}),C=getCommand()[J(0xe4)]('service')['description'](J(0xe7))[J(0xd3)](P,'Service\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context')[J(0xb3)](async y=>{const p=J,e=y?.['id']||await H[p(0xf1)](this[p(0xb6)]())();console[p(0xd4)](p(0xe0),e),await this[p(0x129)][p(0x10e)][p(0xcc)](e);}),B=getCommand()[J(0xe4)](J(0x119))[J(0xd2)](J(0x131))['option'](P,J(0x127))[J(0xb3)](async y=>{const m=J,e=y?.['id']||await H['askForJob'](this['getProjectName']())();console['log'](m(0xd8),e),await this[m(0x129)]['contextProvider'][m(0x128)](e);});h[J(0xbf)](o),h[J(0xbf)](B),h[J(0xbf)](C);const s=getCommand()[J(0xe4)](J(0xd1))[J(0xdb)](J(0x12c))['alias']('rm')[J(0xd2)](J(0x118))['option'](P,J(0xe5))[J(0xb3)](async y=>{const k=J,e=y?.['id']||await this[k(0xe1)](k(0xd1)),A=this[k(0x129)][k(0x10e)]['getCurrentContext']()?.['name'];await this['apiClient'][k(0x10e)][k(0x12e)](e),success(k(0x135)+e+'\x27\x20successfully\x20removed.');if(!this[k(0x11e)]()){warning(k(0x124));return;}if(A===e){const l=y?.[k(0xe4)]||await this[k(0xe1)](k(0xf2));await this[k(0x129)]['contextProvider'][k(0x139)](l),success(k(0xfc)+l);}}),S=getCommand()[J(0xe4)](J(0x12d))[J(0xdb)](J(0x125))[J(0xd2)](J(0xda))[J(0xd3)](J(0x110),'Token\x20for\x20this\x20context')['action'](async y=>{const I=J,{contextProvider:e}=this[I(0x129)],A=y?.[I(0x105)]||await H[I(0xe6)](),l=e['getCurrentToken']();await e['updateToken'](A);if(await this[I(0x11c)]())success('Token\x20for\x20current\x20context\x20\x27'+e[I(0xbe)]()+I(0xb7));else{if(l)await e[I(0xe8)](l);error(I(0xc2));}});this[J(0x138)][J(0xbf)](O),this[J(0x138)][J(0xbf)](F),this[J(0x138)][J(0xbf)](h),this[J(0x138)]['addCommand'](s),this[J(0x138)][J(0xbf)](S);}async[a2g(0xd9)](X,j){const K=a2g,V=!X['doNotOpenBrowser'],H=X[K(0x12b)]??this[K(0x10f)],O=new NorthflankApiBrowserLogin(H,V,this[K(0xc9)]);let F;O['on'](K(0xb8),({url:C})=>{const L=K;if(V){const B=C[L(0xfd)](/sessionToken=.*/,'sessionToken=********');console['log'](L(0xfe)+B+')'),F=a2O['prompt']([{'type':L(0x104),'name':L(0xc4),'message':L(0xf7),'default':![]}]),F[L(0xcb)](s=>{const a=L;process['stdout'][a(0xea)](0x0,-0x1),process[a(0xd5)]['clearLine'](0x1),s[a(0xc4)]&&console[a(0xd4)]('Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09'+C+'\x20');});}else console[L(0xd4)](L(0x100)+C+'\x20');});const {token:h,contextName:P}=await O[K(0x108)]()[K(0x13b)](async C=>{const r=K;error(r(0x11b)+C[r(0x117)]+r(0xca));const B=await this['apiTokenLogin'](X,j);return{'token':B[r(0x105)],'contextName':B[r(0xe4)]};})[K(0xcf)](()=>{const R=K;if(F)F['ui'][R(0xbb)]();}),o=X[K(0xe4)]??P??K(0x10a)+new Date()[K(0xce)]();return{'name':o,'token':h,'host':H,'override':X[K(0x13d)]??![]};}[a2g(0x113)]=X=>{const n=a2g;let j=X;return!/^https?:\/\//i[n(0x121)](j)&&(j=n(0x116)+j),j=j[n(0xfd)](/\/+$/,''),j;};async['apiTokenLogin'](X,j){const D=a2g,V=this['apiClient']['contextProvider'][D(0x123)]()[D(0x138)],{name:H,token:O,host:F,override:h}=await j[D(0x111)](X,V);return{'name':H,'token':O,'host':F,'override':h};}[a2g(0xb6)](){const Y=a2g,X=this[Y(0x129)]['contextProvider'][Y(0xdd)]();if(X===undefined)throw new Error(Y(0x10d));return X;}async[a2g(0xe1)](X){const u=a2g;if(!this[u(0x11e)]())throw new Error(u(0xc7));const j=this['apiClient'][u(0x10e)][u(0x123)]()[u(0x138)]['map'](H=>H['name']),V=j[u(0x107)]>0x4?u(0xd6):u(0xe9);return(await a2O['prompt']([{'type':V,'name':u(0xe4),'message':u(0xbd)+X+':','choices':j}]))[u(0xe4)];}[a2g(0x11e)](){const Q=a2g;return this[Q(0x129)][Q(0x10e)]['loadContextWrapper']()['contexts'][Q(0x107)]>0x0;}async['verifyToken'](){const f=a2g;try{const X=this[f(0x129)]['contextProvider'][f(0x132)](),j=this['apiClient'][f(0x10e)][f(0xf3)](),V=X+f(0xf4),H={'Authorization':f(0xf9)+j},O=new ProxyAgent(),F=await retry(0x3)(async()=>a2H(V,{'method':'GET','signal':AbortSignal['timeout'](0xbb8),'headers':H,'agent':O}));if(F['ok'])return!![];return![];}catch(h){return![];}}}
|
package/dist/copy/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a3J=a3j;(function(X,j){const g=a3j,V=X();while(!![]){try{const H=-parseInt(g(0x1e1))/0x1*(-parseInt(g(0x201))/0x2)+-parseInt(g(0x20a))/0x3+parseInt(g(0x1ed))/0x4*(-parseInt(g(0x204))/0x5)+parseInt(g(0x21d))/0x6+-parseInt(g(0x1d6))/0x7+parseInt(g(0x1e2))/0x8*(parseInt(g(0x1ea))/0x9)+-parseInt(g(0x215))/0xa;if(H===j)break;else V['push'](V['shift']());}catch(O){V['push'](V['shift']());}}}(a3X,0xb32bd));import{ApiClient,CopyType}from'@northflank/js-client';import{assertContextExisting,customUserAgent,getCommand,success}from'../utils.js';function a3X(){const I=['download','570573xoBSeM','File\x20and\x20directory\x20download\x20for\x20Northflank\x20service.','alias','4SaLWkq','--project\x20--projectId\x20[NAME]','\x27\x20to\x20container\x20directory\x20\x27','upload','askForProject','prompt','.\x20If\x20the\x20','DIRECTORY_DOWNLOAD','Downloaded\x20file\x20\x27','\x27\x20to\x20\x27','logCopyResult','File\x20and\x20directory\x20upload\x20for\x20Northflank\x20services\x20and\x20jobs.','from','Uploaded\x20file\x20from\x20\x27','File\x20and\x20directory\x20download\x20for\x20Northflank\x20services\x20and\x20jobs.','type','s.\x20Please\x20enter\x20a\x20path:','FILE_UPLOAD','option','File\x20and\x20directory\x20download\x20for\x20Northflank\x20job.','323166fEjtSP','\x20single\x20file:\x20\x20\x20northflank\x20','remotePath','34405ckvMQg','--container\x20--containerId\x20[NAME]','askForService','localPath','\x20the\x20specified\x20','\x20files','1661346xhmxEV','toUpperCase','\x20directory\x20is\x20used.\x20If\x20the\x20directory\x20for\x20','FILE_DOWNLOAD','\x20files\x20','files','service','--remote\x20--remotePath\x20[REMOTEPATH]','\x20to\x20','\x27localPath\x27','remote','541280iufTNc','Downloaded\x20all\x20directory\x20contents\x20from\x20\x27','getStandardCopyCommand','description','local','File\x20and\x20directory\x20upload\x20for\x20Northflank\x20service.','ed-file.txt\x0a\x20\x20','askForPath','4243362xXhTOE','slice','job','Local\x20file\x20or\x20directory','-dir','name','askForJob','\x27\x20to\x20local\x20directory\x20\x27','\x27remotePath\x27','2410065hGIjtD','uploadCmd','ensureRelevantPathIsSet','current\x20working','action','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','apiClient','Remote\x20file\x20or\x20directory','Path\x20is\x20not\x20specified,\x20the\x20','downloadCmd','\x20file\x20--localPath\x20my_directory/my-file.txt\x20--remotePath\x20/home/my-','1BtRqXc','104eLbpQY','--noDefaults','addCommand','Project\x20for\x20','Id\x20[NAME]','DIRECTORY_UPLOAD','getCurrentProjectName'];a3X=function(){return I;};return a3X();}import{InquirerHelper}from'../inquirer-helper.js';import{capitalize}from'lodash-es';function a3j(X,j){const V=a3X();return a3j=function(H,O){H=H-0x1d0;let F=V[H];return F;},a3j(X,j);}import a3V from'inquirer';export class CliFileCopy{[a3J(0x1df)];[a3J(0x1d7)];['apiClient'];['getStandardCopyCommand']=(X,j)=>{const b=a3J,V=capitalize(j),H=j===b(0x1f0)?b(0x214):b(0x219),O=j===b(0x1f0)?'user\x20home':b(0x1d9),F=j===b(0x1f0)?'to':b(0x1f9);return getCommand(!![])[b(0x1d2)]('file')[b(0x218)](V+b(0x20e)+F+b(0x208)+X+b(0x1f3)+H+b(0x1de)+O+b(0x20c)+H+'Path\x20does\x20not\x20exist,\x20it\x20will\x20be\x20created.\x0aExamples:\x0a\x20\x20'+V+b(0x202)+j+'\x20'+X+b(0x1e0)+j+b(0x21b)+V+'\x20directory:\x20\x20\x20\x20\x20northflank\x20'+j+'\x20'+X+'\x20file\x20--localPath\x20my_directory\x20--remotePath\x20/home/'+j+b(0x1d1))[b(0x1ff)](b(0x1ee),b(0x1e5)+j)['option']('--'+X+'\x20--'+X+b(0x1e6),X['charAt'](0x0)[b(0x20b)]()+X[b(0x21e)](0x1)+b(0x212)+j+b(0x209))[b(0x1ff)](b(0x205),'Container\x20used\x20to\x20'+j+'\x20(random\x20container\x20will\x20be\x20chosen\x20if\x20not\x20specified)')[b(0x1ff)]('--local\x20--localPath\x20[LOCALPATH]',b(0x1d0))[b(0x1ff)](b(0x211),b(0x1dd))[b(0x1ff)](b(0x1e3),b(0x1db),![]);};constructor(X,j){const E=a3J;this[E(0x1dc)]=new ApiClient(X,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':j});const V=new InquirerHelper(this[E(0x1dc)]);this['downloadCmd']=getCommand()[E(0x1d2)](E(0x1e9))[E(0x1ec)]('dl')[E(0x218)](E(0x1fb)),this[E(0x1d7)]=getCommand()['name'](E(0x1f0))['alias']('ul')['description'](E(0x1f8));const H=getCommand()[E(0x1d2)](E(0x210))['description'](E(0x1eb)),O=getCommand()[E(0x1d2)]('service')['description'](E(0x21a)),F=getCommand()['name']('job')[E(0x218)](E(0x200)),h=getCommand()[E(0x1d2)]('job')[E(0x218)]('File\x20and\x20directory\x20upload\x20for\x20Northflank\x20job.'),P=C=>{const t=E;return this[t(0x217)](t(0x210),C)[t(0x1da)](async B=>{const Z=t,{projectId:s,serviceId:S,containerId:y,noDefaults:e,quiet:A}=B;assertContextExisting(this['apiClient']);const l=e?undefined:X[Z(0x1e8)](),T=s||l||await V[Z(0x1f1)](),W=e?undefined:X['getCurrentServiceName'](),v=S||W||await V[Z(0x206)](T)(),{remotePath:G,localPath:d}=await this[Z(0x1d8)](C,B),x={'projectId':T,'serviceId':v},M=await this[Z(0x1dc)][C][Z(0x210)][Z(0x20f)](x,{'containerName':y,'localPath':d,'remotePath':G});this[Z(0x1f7)](M,A);});},o=C=>{const w=E;return this[w(0x217)](w(0x21f),C)[w(0x1da)](async B=>{const N=w,{projectId:s,jobId:S,containerId:y,noDefaults:e,quiet:A}=B;assertContextExisting(this['apiClient']);const l=e?undefined:X['getCurrentProjectName'](),T=s||l||await V['askForProject'](),W=S||await V[N(0x1d3)](T)(),{remotePath:v,localPath:G}=await this[N(0x1d8)](C,B),d={'projectId':T,'jobId':W},x=await this[N(0x1dc)][C]['job'][N(0x20f)](d,{'containerName':y,'localPath':G,'remotePath':v});this[N(0x1f7)](x,A);});};H[E(0x1e4)](P('download')),F[E(0x1e4)](o(E(0x1e9))),O[E(0x1e4)](P(E(0x1f0))),h[E(0x1e4)](o('upload')),this[E(0x1df)][E(0x1e4)](H),this[E(0x1df)]['addCommand'](F),this[E(0x1d7)][E(0x1e4)](O),this[E(0x1d7)][E(0x1e4)](h);}[a3J(0x1f7)]=(X,j)=>{const p=a3J;if(j)return;const {sourceDirectory:V,targetDirectory:H,sourceFile:O,targetFile:F}=X;switch(X[p(0x1fc)]){case CopyType[p(0x1f4)]:{success(p(0x216)+V+p(0x1d4)+H+'\x27');break;}case CopyType[p(0x20d)]:{success(p(0x1f5)+V+'/'+O+p(0x1f6)+H+'/'+F+'\x27');break;}case CopyType[p(0x1e7)]:{success('Uploaded\x20all\x20directory\x20contents\x20from\x20\x27'+V+p(0x1ef)+H+'\x27');break;}case CopyType[p(0x1fe)]:{success(p(0x1fa)+V+'/'+O+p(0x1f6)+H+'/'+F+'\x27');break;}}};[a3J(0x1d8)]=async(X,j)=>{const m=a3J,V=X===m(0x1e9)&&j[m(0x203)]===undefined?await this[m(0x21c)](m(0x1d5),m(0x1e9)):j['remotePath'],H=X===m(0x1f0)&&j[m(0x207)]===undefined?await this[m(0x21c)](m(0x213),m(0x1f0)):j[m(0x207)];return{'localPath':H,'remotePath':V};};['askForPath']=async(X,j)=>{const k=a3J,V=X+'\x20is\x20required\x20for\x20'+j+k(0x1fd);return(await a3V[k(0x1f2)]([{'type':'input','name':'name','message':V}]))[k(0x1d2)];};}
|