@northflank/cli 0.10.10 → 0.10.11
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 a0G(N,G){const S=a0N();return a0G=function(U,K){U=U-0x166;let r=S[U];return r;},a0G(N,G);}(function(N,G){const R=a0G,S=N();while(!![]){try{const U=parseInt(R(0x177))/0x1+parseInt(R(0x18f))/0x2*(parseInt(R(0x16d))/0x3)+parseInt(R(0x17c))/0x4*(-parseInt(R(0x172))/0x5)+parseInt(R(0x199))/0x6*(parseInt(R(0x17f))/0x7)+parseInt(R(0x19d))/0x8+parseInt(R(0x190))/0x9+-parseInt(R(0x16b))/0xa;if(U===G)break;else S['push'](S['shift']());}catch(K){S['push'](S['shift']());}}}(a0N,0x29b08));import{warning}from'./utils.js';const defaultPaginationPageSize=0x64,getProjects=N=>async G=>{const w=a0G,S=await N[w(0x175)][w(0x197)]({'options':{'per_page':defaultPaginationPageSize,'cursor':G?.[w(0x16f)]}});return{'elements':S[w(0x185)][w(0x197)][w(0x196)](U=>U['id']),'nextPageCursor':S[w(0x17e)]?.['cursor']};},getServices=(N,G)=>async S=>{const q=a0G,U=await N['list'][q(0x17d)]({'parameters':{'projectId':G},'options':{'per_page':defaultPaginationPageSize,'cursor':S?.['nextPageCursor']}});return{'elements':U[q(0x185)]['services'][q(0x196)](K=>K['id']),'nextPageCursor':U[q(0x17e)]?.[q(0x191)]};},getAddons=(N,G)=>async S=>{const F=a0G,U=await N[F(0x175)][F(0x178)]({'parameters':{'projectId':G},'options':{'per_page':defaultPaginationPageSize,'cursor':S?.[F(0x16f)]}});return{'elements':U[F(0x185)][F(0x178)][F(0x196)](K=>K['id']),'nextPageCursor':U[F(0x17e)]?.['cursor']};},getAddonBackups=(N,G,S)=>async U=>{const m=a0G,K=await N[m(0x193)][m(0x16e)][m(0x167)]({'parameters':{'projectId':G,'addonId':S},'options':{'per_page':defaultPaginationPageSize,'cursor':U?.[m(0x16f)]}});return{'elements':K['data'][m(0x167)][m(0x196)](r=>r['id']),'nextPageCursor':K[m(0x17e)]?.['cursor']};};export async function fetchResourceList(N,G,S,U,K,r){const s=a0G,L=undefined;try{if(N===s(0x188)){const V=await G[s(0x175)][s(0x183)]({}),a=V['data']['plans'][s(0x196)](x=>x?.[s(0x180)]??x?.['id']);return{'choices':a,'defaultValue':L};}if(N===s(0x186)&&!S?.[s(0x198)](s(0x18b))){const x=await G[s(0x175)]['regions']({}),b=x[s(0x185)][s(0x181)][s(0x196)](f=>f?.[s(0x180)]??f?.['id']);return{'choices':b,'defaultValue':L};}if(N==='projectId'){const f=await getProjects(G),{elements:n,nextPageCursor:D}=await f();return{'choices':n,'defaultValue':L,'pagination':{'nextPageCursor':D,'loadMore':f}};}if(N===s(0x174)){const g=await G[s(0x175)]['registryCredentials']({}),z=g['data'][s(0x174)][s(0x196)](v=>v['id']);return{'choices':z,'defaultValue':L};}const I=K?.['projectId'],d=N===s(0x18d)||N==='id'&&r?.['includes'](s(0x19a));if(I!==undefined&&d){const v=await getServices(G,I),{elements:E,nextPageCursor:W}=await v();return{'choices':E,'defaultValue':L,'pagination':{'nextPageCursor':W,'loadMore':v}};}const Y=S?.[s(0x198)]('addon');if(Y){const Z=async B=>{const H=s,j=await G['get']['addon']['types']({});return j[H(0x185)]['addonTypes']?.[H(0x196)](i=>i[H(0x173)])[H(0x166)](i=>i[H(0x173)]===B);};if(N===s(0x173)){const B=await G['get']['addon'][s(0x16c)]({}),j=B[s(0x185)]['addonTypes']?.[s(0x196)](i=>i['type']);return{'choices':j,'defaultValue':L};}if(N===s(0x171)&&U?.[s(0x173)]!==undefined){const i=(await Z(U[s(0x173)]))?.[s(0x179)],l=i!==undefined?[s(0x18a),...i]:undefined;return{'choices':l,'defaultValue':L};}if(N===s(0x194)&&U?.[s(0x173)]!==undefined){const k=(await Z(U[s(0x173)]))?.['resources']?.[s(0x194)];return{'choices':k?.[s(0x187)],'defaultValue':k?.[s(0x18c)]};}if(N==='replicas'&&U?.[s(0x173)]!==undefined){const h=(await Z(U[s(0x173)]))?.['resources']?.[s(0x182)];return{'choices':h?.[s(0x187)],'defaultValue':h?.[s(0x18c)]};}}if(N===s(0x192)&&K?.[s(0x18e)]!==undefined){const O=await getAddons(G,K?.['projectId']),{elements:J,nextPageCursor:t}=await O();return{'choices':J,'defaultValue':L,'pagination':{'nextPageCursor':t,'loadMore':O}};}if(N===s(0x168)&&K?.[s(0x18e)]!==undefined&&U?.[s(0x195)]?.['addonId']!==undefined){const P=await getAddonBackups(G,K?.[s(0x18e)],U?.['source']?.[s(0x192)]),{elements:y,nextPageCursor:c}=await P();return{'choices':y,'defaultValue':L,'pagination':{'nextPageCursor':c,'loadMore':P}};}const u=K?.[s(0x192)]??U?.[s(0x16a)]?.[s(0x192)];if(S?.[s(0x169)]('')===s(0x184)&&N===s(0x171)&&K?.[s(0x18e)]!==undefined&&u!==undefined){const {upgradeTo:M}=(await G[s(0x193)][s(0x16e)]['version']({'parameters':{'addonId':u,'projectId':K?.[s(0x18e)]}}))[s(0x185)];if(M===undefined||M['length']<=0x0){warning(s(0x19c));throw new Error();}return{'choices':M[s(0x196)](X=>X['version']),'defaultValue':L};}if(N===s(0x170)){const X=await G[s(0x175)][s(0x189)]({}),o=X[s(0x185)]['templates'][s(0x196)](p=>p?.['id']);return{'choices':o,'defaultValue':L};}if((S?.['includes']('secretLink')||S?.[s(0x198)](s(0x17a)))&&N===s(0x17b)&&u!==undefined&&K?.[s(0x18e)]!==undefined){const p=(await G['get'][s(0x16e)][s(0x174)]({'parameters':{'addonId':u,'projectId':K?.[s(0x18e)]}}))[s(0x185)];return{'choices':[...Object[s(0x176)](p?.['envs'])??[],...Object[s(0x176)](p?.[s(0x19b)])??[]]};}}catch(C){}return{'choices':undefined,'defaultValue':L};}function a0N(){const A=['default','serviceId','projectId','2UYNqMu','2923029LXfLaz','cursor','addonId','get','storage','source','map','projects','includes','477924ZgRGHY','owningObject','secrets','No\x20available\x20versions\x20to\x20upgrade\x20to.','2331032FbwbqZ','find','backups','backupId','join','addonDependencies','8527070LkIVJV','types','976227STuviS','addon','nextPageCursor','templateId','version','30Ylahey','type','credentials','list','keys','225752yTvsIy','addons','versions','secret','keyName','202108TOCZwQ','services','pagination','14lnhImh','internalId','regions','replicas','plans','updateaddonversion','data','region','options','deploymentPlan','templates','latest','logSink'];a0N=function(){return A;};return a0N();}
|
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 a1N8=a1G;(function(N,G){const N7=a1G,S=N();while(!![]){try{const U=-parseInt(N7(0x142))/0x1+-parseInt(N7(0x163))/0x2+-parseInt(N7(0x146))/0x3*(-parseInt(N7(0x147))/0x4)+parseInt(N7(0x1a5))/0x5*(-parseInt(N7(0x132))/0x6)+parseInt(N7(0x17b))/0x7+-parseInt(N7(0x1a8))/0x8+parseInt(N7(0x112))/0x9;if(U===G)break;else S['push'](S['shift']());}catch(K){S['push'](S['shift']());}}}(a1N,0xdf4ab));import{ApiClient,ApiClientFileContextProvider,GetApiEndpointPaginated}from'@northflank/js-client';import{Command}from'commander';import a1S from'fs';import a1U from'chalk';import{CliContext}from'./context/contextCommands.js';function a1N(){const Nn=['replace','askForAddon','quiet','serviceId','templates','/docs/v1/api/','method','Northflank\x20cli\x20version:\x20','split','9724494mpWkMF','yml','=>\x20running\x20command\x20with:\x20','OPTIONAL:\x20','resourceTagId','job','plan','backupId','path','projectId','askForBuild','askForSubdomain','toUpperCase','toString','service','contexts','1580196npIfAC','dmn','repo','boolean','647553RYNXjV','24sREYxf','restores','secretId','json','addons','secret','get','getLogsCommand','join','commands','there\x20are\x20more\x20rows,\x20load?','logs','backupDestinationId',',\x20-','requiredPermissions','output','getMetricsCommand','yaml','helpOption','custom-columns=','domainId','cursor','file','.json','\x0a>\x20Token\x20permissions\x20required:\x20','length','query','Update\x20Northflank\x20','3515832nQCaKT',',\x20NF\x20error\x20id:\x20','askForSecret','backup-destination','bind','addonId','northflank','subdomainId','-f,\x20--file\x20<file-path>','alias','logSinkId','endpoints','retrievePayloadViaInteractiveCli','description','docsTagsPath','find','askForSubdomainPath','loadAll','pipelineId','url','plans','prj','VERBOSE:\x20HTTP_PROXY\x20or\x20HTTPS_PROXY\x20environment\x20variable\x20set:\x20tunnelling\x20traffic\x20through\x20HTTP\x20proxy.','forEach','7859306DZbIJF','clearLine','askForCredentials','uploadCmd','askGeneric','getCurrentProjectName','Options\x20\x27loadAll\x27\x20can\x20not\x20be\x20combined\x20with\x20\x27page\x27\x20or\x20\x27cursor\x27','-v,\x20--version','error','Manage\x20your\x20Northflank\x20resources\x20from\x20the\x20command\x20line','\x20--','credentialId','repos','some','askForTag','list','includes','helpCommand','runId','contextProvider','resource','aliases','branches','subdomain','stdout','credential','.yaml','Documentation:\x20','invoice','parse','parseAsync','filter','project','VERBOSE:\x20Using\x20endpoint\x20->\x20','isPaginatedEndpoint','templateRunId','paginationArgs','addCommand','sort','type','utf-8','hasNextPage','5XyarUt','endsWith','askForJobRun','12355792nJksbg','vol','getOwnPropertyNames','../package.json','VERBOSE:\x20Request\x20body\x20->\x20','brn','opt','entries','host','opts','portFwdCmd','buildId','askForProject','all','Unknown\x20input\x20format.\x20Not\x20valid\x20json\x20and\x20not\x20valid\x20yaml.','clusterId','green','defaults','Failed\x20to\x20validate\x20input\x20(incorrect\x20format):\x20','--verbose','rgn','data','pagination','File\x20does\x20not\x20exist:\x20','askForPipeline','option','runs','pop','Unknown\x20input\x20file\x20type:\x20','inv','request','map','version','verbose','deleteWarningPrompt','startsWith','stringify','rawResponse','page','getNextPage','body','API\x20request\x20failed\x0a\x09Message:\x20','volume','help\x20[command]','after','askForVolume','login','statusText','domain','Get\x20information\x20about\x20Northflank\x20','toLowerCase','enablePositionalOptions','askForAddonBackup','load','backup','argv','downloadCmd','italic','Display\x20help\x20for\x20command','-i,\x20--input\x20<resource-def>','askForService','askConfirm','keys','moveCursor','subdomainPath','45000666dHTCGV','Expecting\x20resource\x20input\x20with\x20\x27--input\x27\x20or\x20\x27--file\x27\x20argument','log','getCurrentJobName','tpl','default','message','addon','concat','askForJob','name','delete','\x20Northflank\x20resources','askForTemplate','Error\x20occured\x20while\x20trying\x20to\x20run\x20command,\x20error:\x20','existsSync','action','region','count','backups','nonInteractiveEndpoint','volumeId','templateId'];a1N=function(){return Nn;};return a1N();}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 a1r from'js-yaml';import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta['url']),__dirname=dirname(__filename),pgk=JSON['parse'](readFileSync(join(__dirname,a1N8(0x1ab)),a1N8(0x1a3)));export const getProgram=N=>{const N9=a1N8,G=new Command(N9(0x169));G[N9(0x170)](N9(0x184)),G[N9(0x104)](!![]),G[N9(0xf1)](N9(0x130)+a1U['underline'](pgk['version']),N9(0x182),'Print\x20the\x20current\x20version\x20of\x20the\x20Northflank\x20cli');const S=new ApiClient(N,{'throwErrorOnHttpErrorCode':![],'customUserAgent':customUserAgent,'agent':agent}),U=new CliContext(S,agent),K=new CliPortForward(N,agent),r=new CliExec(N,agent),L=new CliFileCopy(N,agent),I=new CliLogs(N,agent),d=new CliMetrics(N,agent);return G[N9(0x1a0)](K[N9(0x1b2)]),G[N9(0x1a0)](r['execCmd']),G['addCommand'](L[N9(0x109)]),G[N9(0x1a0)](L[N9(0x17e)]),G['addCommand'](U[N9(0xff)]),G[N9(0x1a0)](U[N9(0x141)]),generateCommands(S,S[N9(0x16e)],G,I,d),G[N9(0x1a0)](getCommandOverview(G)),G[N9(0x18c)](N9(0xfc),N9(0x10b)),G[N9(0x159)](undefined,N9(0x10b)),G;};((async()=>{const NN=a1N8;try{const N=new ApiClientFileContextProvider();await checkUpdate(N);const G=getProgram(N);await G[NN(0x199)](process['argv']);}catch(S){error(NN(0x120)+S[NN(0x118)]),process[NN(0x108)][NN(0x172)](U=>U===NN(0xe4))&&console['log'](S),process['exitCode']=0x1;}})());function isListCommand(N){const NG=a1N8,G=[['get',NG(0x119),NG(0x125)],[NG(0x14d),NG(0x137),NG(0xeb)]];return N[NG(0x172)](S=>S===NG(0x18a))||G[NG(0x188)](S=>isEqual(N,S));}function a1G(N,G){const S=a1N();return a1G=function(U,K){U=U-0xe3;let r=S[U];return r;},a1G(N,G);}function generateCommands(N,G,S,U,K,r=a1K[a1N8(0x1b9)],L=[]){const NS=a1N8,I=new InquirerHelper(new ApiClient(N[NS(0x18e)],{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':agent}));function d(a,x){return a['required']!==![]&&x===undefined;}function Y(a,x){const NU=NS,{opt:b,name:e}=a,f=b[NU(0x117)],n=d(b,f),D=Z=>Z[NU(0x160)]>0x1?'--'+Z:'-'+Z,g=b?.[NU(0x16c)],z=g?Array['isArray'](g)?'-'+g?.['map'](Z=>D(Z))[NU(0x14f)](NU(0x154))+',':''+D(g):'',v=n?'':NU(0x135),E=typeof b['type']===NU(0x145)||b[NU(0x1a2)]===NU(0x145)?z+NU(0x185)+e:z+NU(0x185)+e+'\x20<'+e['toUpperCase']()+'>',W=v+b[NU(0x170)];x[NU(0xea)](E['trim'](),W,f);}function u(a,x){const NK=NS;if(x[NK(0x150)][NK(0x188)](b=>b[NK(0x11c)]()===NK(0x152)))return;isEqual(a,[NK(0x14d),NK(0x140)])&&(x['addCommand'](U[NK(0x14e)](NK(0x140))),x[NK(0x1a0)](K[NK(0x157)](NK(0x140))),x[NK(0x1a0)](U['getLogsCommand'](NK(0x140),!![])),x[NK(0x1a0)](K[NK(0x157)](NK(0x140),!![]))),isEqual(a,[NK(0x14d),'job'])&&(x['addCommand'](U['getLogsCommand'](NK(0x137))),x['addCommand'](K[NK(0x157)](NK(0x137))),x[NK(0x1a0)](U['getLogsCommand'](NK(0x137),!![])),x['addCommand'](K[NK(0x157)](NK(0x137),!![]))),isEqual(a,[NK(0x14d),NK(0x119)])&&(x['addCommand'](U['getLogsCommand'](NK(0x119))),x['addCommand'](K[NK(0x157)](NK(0x119)))),isEqual(a,[NK(0x14d),NK(0x119),NK(0x107)])&&x[NK(0x1a0)](U[NK(0x14e)](NK(0x119),![],!![])),isEqual(a,[NK(0x14d),NK(0x119),NK(0x148)])&&x[NK(0x1a0)](U[NK(0x14e)]('addon',![],!![],!![]));}return Object[NS(0x1aa)](r)[NS(0x17a)](a=>{const Nr=NS,x=G[a],b=r[a],e=L[Nr(0x11a)]([a]);function f(j,i){const NL=Nr,l=Object['getOwnPropertyNames'](j||{});l[NL(0xf0)](k=>{return{'name':k,'opt':j[k]};})[NL(0x1a1)]((k,h)=>!d(k[NL(0x1ae)])?!d(h[NL(0x1ae)])?0x0:0x1:-0x1)[NL(0x17a)](k=>{Y(k,i);});}function n(j,i){const NI=Nr,l=[[NI(0x19b),'projects',NI(0x178)],[NI(0x140),'services','svc'],['credentials',NI(0x194),'cred'],['addon',NI(0x14b),'adn'],[NI(0x137),'jobs'],[NI(0x138),NI(0x177),'pln'],[NI(0x123),'regions',NI(0xe5)],[NI(0x101),'domains',NI(0x143)],[NI(0x14c),'secrets','scrt'],['volumes',NI(0xfb),NI(0x1a9)],[NI(0x191),'branch',NI(0x1ad)],[NI(0x197),'invoices',NI(0xee)],['template',NI(0x12d),NI(0x116)],[NI(0x187),'repository','repositories',NI(0x144)],[NI(0x166),'backup-destinations'],['tag','tags']],k=l[NI(0x172)](h=>h[NI(0x18b)](i));if(k!==undefined)j[NI(0x190)](k['filter'](h=>h!==i));}async function D(j){const Nd=Nr,i={},{contextProvider:l}=N,k=e[Nd(0x18b)](Nd(0x11d)),h=j['noDefaults']===!![];async function O(J,t,P){const NY=Nd;if(has(b['opt']?.[NY(0x13a)]??{},J)){const y=!h&&!k&&P?P():undefined,c=j[J]||y||await t();set(i,J,c);}}return await asyncSequential(Object[Nd(0x1af)](b['opt']?.[Nd(0x13a)]??{}),async([J,t])=>{const Nu=Nd,P=i?.['projectId'],y=i?.[Nu(0x128)];switch(J){case'projectId':return await O(Nu(0x13b),I[Nu(0x1b4)][Nu(0x167)](I),l[Nu(0x180)][Nu(0x167)](l));case Nu(0x12c):return await O(Nu(0x12c),I[Nu(0x10d)](P)[Nu(0x167)](I),l['getCurrentServiceName'][Nu(0x167)](l));case'addonId':return await O(Nu(0x168),I[Nu(0x12a)](P)[Nu(0x167)](I));case'jobId':return await O('jobId',I[Nu(0x11b)](P)[Nu(0x167)](I),l[Nu(0x115)]['bind'](l));case Nu(0x18d):return await O(Nu(0x18d),I[Nu(0x1a7)](i['jobId'],P,![])[Nu(0x167)](I));case'secretId':return await O(Nu(0x149),I[Nu(0x165)](P)[Nu(0x167)](I));case Nu(0x101):case Nu(0x15b):return await O('domain',I['askForDomain'][Nu(0x167)](I));case Nu(0x186):return await O(Nu(0x186),I[Nu(0x17d)][Nu(0x167)](I));case Nu(0x127):return await O(Nu(0x127),I[Nu(0xfe)](P)[Nu(0x167)](I));case Nu(0x192):return await O('subdomain',I['askForSubdomain'](i['domain'])[Nu(0x167)](I));case'subdomainId':return await O(Nu(0x16a),I[Nu(0x13d)](i[Nu(0x15b)])['bind'](I));case Nu(0x111):return await O('subdomainPath',I[Nu(0x173)](i['domain'],i[Nu(0x192)]??i['subdomainId'])[Nu(0x167)](I));case'backupId':return await O(Nu(0x139),I[Nu(0x105)](P,i[Nu(0x168)])[Nu(0x167)](I));case Nu(0x1b3):return await O(Nu(0x1b3),I[Nu(0x13c)](P,i[Nu(0x12c)],i['jobId'])[Nu(0x167)](I));case Nu(0x128):return await O('templateId',I[Nu(0x11f)]()[Nu(0x167)](I));case Nu(0x19e):return await O('templateRunId',I['askForTemplateRun'](y)[Nu(0x167)](I));case Nu(0x16d):return await O(Nu(0x16d),I['askForLogSink']()[Nu(0x167)](I));case'pipelineId':return await O(Nu(0x175),I[Nu(0xe9)](P)[Nu(0x167)](I));case'resourceTagId':return await O(Nu(0x136),I[Nu(0x189)]()[Nu(0x167)](I));case Nu(0x153):return await O(Nu(0x153),I['askForBackupDestination']()[Nu(0x167)](I));case Nu(0x1b7):return await O(Nu(0x1b7),I['askForClusterId']()[Nu(0x167)](I));default:return await O(J,I[Nu(0x17f)](J,t?.['description'])[Nu(0x167)](I));}}),i;}async function g(j){const NV=Nr,i={},l=b[NV(0x1ae)]?.[NV(0x19d)]?a1K['paginationArgs']:{},k={...b[NV(0x1ae)]?.['query']??{},...l},h=Object[NV(0x10f)](k)[NV(0x19a)](O=>O!==NV(0x174));return await asyncSequential(h,async O=>{if(j[O]!==undefined)return set(i,O,j[O]);}),i;}function z(){const Na=Nr;switch(e[0x0]){case Na(0x14d):return Na(0x102)+(e[0x1]||'resource')+'s';case'update':return Na(0x162)+(e[0x1]||Na(0x18f))+'\x20properties';default:return upperFirst(a)+Na(0x11e);}}function v(j,i){const Nx=Nr;if(!i){const c=getCommand()[Nx(0x11c)](kebabCase(a))[Nx(0x170)](z());return n(c,a),c;}const l=j?.[Nx(0x155)]?a1U[Nx(0x10a)](Nx(0x15f)+j[Nx(0x155)]):'',k=N[Nx(0x18e)]['getCurrentContext'](),h=k!==undefined&&b?.['opt']?.[Nx(0x171)]!==undefined,O=k?.[Nx(0x1b0)][Nx(0x129)]('api.',''),J=h?Nx(0x196)+O+Nx(0x12e)+b?.['opt']?.['docsTagsPath']:'',t=j?.['description']||'',P=getCommand(!![])['name'](kebabCase(a))['description'](t)['addHelpText'](Nx(0xfd),[l,J][Nx(0x14f)]('\x0a'));n(P,a);(b[Nx(0x1ae)]?.[Nx(0xf9)]||b[Nx(0x1ae)]?.[Nx(0x126)])&&(P[Nx(0xea)](Nx(0x16b),'File\x20to\x20load\x20resource\x20json\x20from'),P[Nx(0xea)](Nx(0x10c),'JSON-formatted\x20resource\x20definition,\x20takes\x20precedence\x20over\x20\x22--file\x22'));f(b[Nx(0x1ae)]?.['path'],P),f(b['opt']?.[Nx(0x161)],P);const y=b[Nx(0x1ae)]?.[Nx(0x19d)];return y&&f(a1K[Nx(0x19f)],P),f(b[Nx(0x1ae)]?.['base'],P),P[Nx(0x122)](async()=>{const Nb=Nx;assertContextExisting(N);const M=P[Nb(0x1b1)]();M?.[Nb(0xf2)]&&proxyEnvsSet&&warning(Nb(0x179));const X=M[Nb(0xf7)]!==undefined||M[Nb(0x15c)]!==undefined;if(M['loadAll']===!![]&&X)throw new Error(Nb(0x181));const o=M?.['output'],p=o==='json',C=o==='yaml'||o===Nb(0x133),R=await D(M);I['setPathVars'](R);const w=await g(M),q=Object[Nb(0x10f)](b[Nb(0x1ae)]?.[Nb(0x13a)]??{})[Nb(0xf0)](A=>A+'='+a1U[Nb(0x1b8)](R[A]))[Nb(0x14f)](',\x20');if(q[Nb(0x160)]>0x0&&!p&&!C){const A=Nb(0x134)+q;console[Nb(0x114)](A);}const F=b[Nb(0x1ae)]?.[Nb(0xf9)]||b[Nb(0x1ae)]?.['nonInteractiveEndpoint']?await V(M,b,e):undefined;if(!M['force']&&e[Nb(0x18b)](Nb(0x11d))&&!await I[Nb(0xf3)]()){warning('Resource\x20was\x20not\x20deleted.');return;}const m=y&&(M['loadAll']||(M['output']===Nb(0x14a)||M[Nb(0x156)]===Nb(0x158))&&!X);let s=m&&x instanceof GetApiEndpointPaginated?await x[Nb(0x1b5)]({'parameters':R,'options':w,'data':F}):await x['call']({'parameters':R,'options':{...w},'data':F});if(M?.[Nb(0xf2)]){const Q=s[Nb(0xef)];console[Nb(0x114)](Nb(0x19c)+Q[Nb(0x12f)][Nb(0x13e)]()+':'+Q[Nb(0x176)]);if(F!==undefined)console['log'](Nb(0x1ac)+F);}if(s[Nb(0x183)]){const {details:T,id:N0,message:N1,status:N2}=s[Nb(0x183)],N3=T?'\x0a\x09details\x20:'+JSON[Nb(0xf5)](T):'',N4=N0?Nb(0x164)+N0:'',N5='(HTTP\x20status\x20code:\x20'+N2+N4+')';throw new Error(Nb(0xfa)+N1+'\x20'+N5+N3);}let H=0x0;printCallResult(M,p,s[Nb(0xe6)],C,e,o,![],H,s[Nb(0xf6)][Nb(0x100)]);if(!M[Nb(0x12b)]&&!m&&!X&&s['pagination']?.[Nb(0x1a4)])while(s[Nb(0xe7)]?.[Nb(0x1a4)]){const N6=await I[Nb(0x10e)](Nb(0x151));if(N6)process['stdout'][Nb(0x110)](0x0,-0x1),process[Nb(0x193)][Nb(0x17c)](0x1),H+=s[Nb(0xe7)][Nb(0x124)],s=await s['pagination'][Nb(0xf8)](),printCallResult(M,p,s[Nb(0xe6)],C,e,o,!![],H,s[Nb(0xf6)][Nb(0x100)]);else return;}}),P;}const E=has(b,Nr(0x1ae)),W=x,Z=v(W,E);u(e,Z),S['addCommand'](Z);const B=omit(b,Nr(0x1ae));Object[Nr(0x10f)](B)[Nr(0x160)]>0x0&&generateCommands(N,x,Z,U,K,B,e);});async function V(a,x,b){const Ne=NS,{input:f,file:n}=a;if(f!==undefined)try{return JSON[Ne(0x198)](f);}catch(D){try{return a1r[Ne(0x106)](f);}catch(g){throw new Error(Ne(0x1b6));}}if(n!==undefined){if(!a1S[Ne(0x121)](n))throw new Error(Ne(0xe8)+n);const z=a1S['readFileSync'](n)[Ne(0x13f)]();let v;try{if(isString(z)){if(a[Ne(0x15d)][Ne(0x1a6)](Ne(0x15e)))v=JSON['parse'](z);else{if(a['file'][Ne(0x1a6)](Ne(0x195))||a['file'][Ne(0x1a6)](Ne(0x133)))v=a1r[Ne(0x106)](z);else throw new Error(Ne(0xed)+a[Ne(0x15d)][Ne(0x131)]('.')[Ne(0xec)]());}}else v=z;return v;}catch(E){throw new Error(Ne(0xe3)+E['message']);}}if(x?.[Ne(0x1ae)]?.[Ne(0x126)])throw new Error(Ne(0x113));return await I[Ne(0x16f)](x,{'cmdPath':b,'skipValidation':a['skipValidation']});}}const printCallResult=(N,G,S,U,K,r,L,I,d)=>{const Nf=a1N8;if(!N?.[Nf(0x12b)]){if(G)handleJsonOutput(N?.[Nf(0x156)],S);else{if(U)handleYamlOutput(N?.[Nf(0x156)],S);else{if(isListCommand(K)){const Y=r?.[Nf(0xf4)](Nf(0x15a))?r[Nf(0x129)]('custom-columns=','')['split'](',')[Nf(0xf0)](b=>b[Nf(0x103)]()):undefined,u=K[K[Nf(0x160)]-0x1],V=''+u+(u[Nf(0x1a6)]('s')?'':'s'),a=upperFirst(V),x=has(S,V)?S[V]:S;printAsTable(x,a,Y,L,I);}else console[Nf(0x114)](consoleFormat(S,d));}}}};
|
|
@@ -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 a2Z=a2G;function a2G(N,G){const S=a2N();return a2G=function(U,K){U=U-0xec;let r=S[U];return r;},a2G(N,G);}function a2N(){const s=['Bearer\x20','tokenPrompt','Remove\x20a\x20context','browserLogin','prompt','removeContext','host\x20url\x20for\x20this\x20context','agent','alias','getCurrentContext','loadContextWrapper','4434dXpNbs','Local\x20context\x20name\x20to\x20remove.','--all','clearLine','tokenInternalId','/v1/login','Change\x20the\x20default\x20service\x20in\x20the\x20current\x20local\x20context','option','apiClient','getCurrentBaseUrl','askForContext','\x27\x20successfully\x20updated.','Token\x20for\x20current\x20context\x20\x27','useContext','length','-n,\x20--name\x20[NAME]','italic','addCommand','Change\x20current\x20context\x20to\x20context\x20identified\x20by\x20this\x20name','use','replace','close','Contexts','Display\x20full\x20URL\x20to\x20allow\x20opening\x20the\x20link\x20manually','10pDbPfq','login','GET','message','Local\x20context\x20\x27','startLogin','Change\x20the\x20default\x20project\x20in\x20the\x20current\x20local\x20context','delete','getCurrentName','Token\x20for\x20this\x20context.\x20When\x20set,\x20browser\x20login\x20is\x20not\x20used','getProjectName','project','Use\x20browser\x20login\x20but\x20only\x20print\x20URL\x20which\x20can\x20be\x20used\x20to\x20login','moveCursor','Choose\x20the\x20context\x20to\x20','contexts','-t,\x20--token\x20[TOKEN]','https://','contextAvailable','Use\x20manual\x20login\x20with\x20API\x20token','browser\x20login','useJobId','Shows\x20full\x20context\x20information\x20(including\x20tokens)','No\x20context\x20available.\x20Please\x20use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','\x0a\x20\x20Token\x20ID:\x09\x09','Use\x20project\x20with\x20id:','getInfo','Use\x20service\x20with\x20id:','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','getCurrentToken','221326dLMJrr','tokenLogin','Error\x20occured\x20during\x20browser\x20login:\x20','Failed\x20to\x20login\x20with\x20the\x20provided\x20token,\x20make\x20sure\x20to\x20use\x20a\x20valid\x20token\x20and\x20host.','loginPrompt',',\x20added\x20context\x20with\x20name\x20','Name\x20for\x20login\x20context','3100980wPZcyj','sort','roleInternalId','Change\x20the\x20default\x20job\x20in\x20the\x20current\x20local\x20context','catch','--token-login',':\x20\x0a\x20\x20Name:\x09\x09\x09','contextProvider','Override\x20existing\x20contexts\x20(this\x20will\x20remove\x20project\x20and\x20service\x20context)','log','Failed\x20to\x20login\x20with\x20the\x20provided\x20token.\x20Token\x20was\x20not\x20changed','job','defaultBaseUrl','dir','list','stdout','override','1675496CgsGOk','List\x20all\x20available\x20contexts','name','27YGIkyl','set-token','addContext','useProjectId','Shows\x20detailed\x20information\x20about\x20current\x20context','\x0a\x20\x20Default\x20Project:\x09','\x20(current)','--host\x20[HOST]','Changed\x20current\x20context\x20to\x20','121900YPmfKl','askForJob','Token\x20for\x20this\x20context','getCurrentProjectName','sanitiseHostname','search-list','description','\x0aSuccessfully\x20logged\x20in\x20using\x20','service','Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09','246824UycTIo','use\x20from\x20now\x20on','updateToken','current','--do-not-open-browser','autologin-','1100898cRcgNP','No\x20context\x20available.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','remove','fullUrl','token\x20login','timeout','map','test','https://api.northflank.com','2590KiacZf','Project\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','verifyToken','No\x20project\x20in\x20current\x20context.\x20Please\x20set\x20project\x20before\x20setting\x20a\x20project-scoped\x20resource','all','valueOf','action','Switch\x20between\x20your\x20local\x20contexts','Retrieve\x20and\x20update\x20local\x20context\x20settings.','Current\x20token\x20info','Job\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','Update\x20token\x20for\x20current\x20context','Use\x20job\x20with\x20id:','host','apiTokenLogin','show','token'];a2N=function(){return s;};return a2N();}(function(N,G){const W=a2G,S=N();while(!![]){try{const U=-parseInt(W(0x169))/0x1+parseInt(W(0x145))/0x2+-parseInt(W(0x179))/0x3+parseInt(W(0x173))/0x4*(parseInt(W(0x127))/0x5)+-parseInt(W(0x10f))/0x6*(parseInt(W(0xf3))/0x7)+-parseInt(W(0x15d))/0x8+-parseInt(W(0x160))/0x9*(-parseInt(W(0x14c))/0xa);if(U===G)break;else S['push'](S['shift']());}catch(K){S['push'](S['shift']());}}}(a2N,0x2f07c));import{ProxyAgent}from'proxy-agent';import a2S from'chalk';import{error,getCommand,retry,success,warning,decodeJwtPayload}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';import{printAsTable}from'../formatting/console-format-helpers.js';import{NorthflankApiBrowserLogin}from'../login/browser-login.js';import a2U from'node-fetch';import{set}from'lodash-es';import a2K from'inquirer';export class CliContext{['agent'];[a2Z(0x158)];[a2Z(0x117)];['contexts'];[a2Z(0x128)];constructor(N,G=undefined,S=a2Z(0xf2)){const B=a2Z;this['agent']=G,this[B(0x158)]=S,this['apiClient']=N;const U=new InquirerHelper(N);this[B(0x128)]=getCommand()[B(0x15f)]('login')['description']('Connect\x20the\x20CLI\x20to\x20your\x20Northflank\x20account.')[B(0x116)](B(0x151),B(0x13a),![])[B(0x116)](B(0x177),B(0x133),![])[B(0x116)](B(0x11e),B(0x14b))[B(0x116)]('-t,\x20--token\x20[TOKEN]',B(0x130))['option'](B(0x167),B(0x10a),this[B(0x158)])['option']('--override',B(0x154),![])[B(0xf9)](async x=>{const j=B;set(x,'host',this[j(0x16d)](x['host']));const b=x[j(0x146)]||x[j(0x103)]!==undefined,{name:f,host:n,token:D,override:g}=b?await this[j(0x101)](x,U):await this['browserLogin'](x,U);try{await this['apiClient'][j(0x153)][j(0x162)]({'name':f,'host':n,'token':D},g);}catch(z){error(z[j(0x12a)]);return;}if(!await this[j(0xf5)]())error(j(0x148)),await this[j(0x117)][j(0x153)][j(0x109)](f);else{const v=b?j(0xee):j(0x13b),E=j(0x170)+v+j(0x14a)+a2S[j(0x11f)](f)+'\x20(api\x20host:\x20'+n+')';success(E);}}),this[B(0x136)]=getCommand()[B(0x15f)]('context')[B(0x16f)](B(0xfb))[B(0x10c)](B(0x136))[B(0x10c)]('ctx');const K=getCommand()['name'](B(0x15a))['name']('ls')['description'](B(0x15e))['option'](B(0x111),B(0x13d))[B(0xf9)](async x=>{const i=B;console[i(0x155)](N[i(0x153)][i(0x141)]());const b=N[i(0x153)]['loadContextWrapper']();if(x[i(0xf7)]===!![]){console[i(0x159)](b);return;}const e=b[i(0x176)],f=b[i(0x136)][i(0x14d)]((n,D)=>n[i(0x15f)]===e?-0x1:D[i(0x15f)]===e?0x1:0x0)[i(0xf0)](n=>{const l=i,D=e===n[l(0x15f)]?l(0x166):'';return{'Name':''+n[l(0x15f)]+D,'Host':n['host'],'Default\x20Project':n[l(0x132)]||'-','Default\x20Service':n[l(0x171)]||'-'};});printAsTable(f,i(0x125));}),r=getCommand()[B(0x15f)](B(0x102))[B(0x16f)](B(0x164))['action'](async()=>{const k=B;console[k(0x155)](N[k(0x153)][k(0x141)]());const x=N[k(0x153)]['getCurrentContext']();if(x===undefined){console[k(0x155)]('No\x20current\x20context\x20set.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20one\x20or\x20\x27northflank\x20context\x20use\x27\x20to\x20select\x20an\x20existing\x20one.');return;}const b=decodeJwtPayload(x['token']),e=x[k(0x100)];console[k(0x155)](a2S['bold'](k(0xfc))+k(0x152)+x['name']+'\x0a\x20\x20Host:\x09\x09\x09'+e+k(0x165)+(x[k(0x132)]||'-')+'\x0a\x20\x20Default\x20Service:\x09'+(x['service']||'-')+k(0x13f)+(b?.[k(0x113)]||'-')+'\x0a\x20\x20Token\x20Role\x20ID:\x09'+(b?.[k(0x14e)]||'-')+k(0x143));}),L=getCommand();L[B(0x15f)](B(0x122))[B(0x16f)](B(0xfa))[B(0x116)]('-n,\x20--name\x20[NAME]',B(0x121))[B(0xf9)](async x=>{const h=B,b=x?.[h(0x15f)]||await this[h(0x119)](h(0x122));await this[h(0x117)][h(0x153)][h(0x11c)](b),success(h(0x168)+b);});const I='-i,\x20--id\x20[ID]',d=getCommand()['name'](B(0x132))[B(0x16f)](B(0x12d))[B(0x116)](I,B(0xf4))[B(0xf9)](async x=>{const O=B,b=x?.['id']||await U['askForProject']();await this['apiClient'][O(0x153)][O(0x163)](b),console[O(0x155)](O(0x140),b);}),Y=getCommand()[B(0x15f)]('service')[B(0x16f)](B(0x115))['option'](I,'Service\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context')[B(0xf9)](async x=>{const J=B,b=x?.['id']||await U['askForService'](this[J(0x131)]())();console['log'](J(0x142),b),await this[J(0x117)][J(0x153)]['useServiceId'](b);}),u=getCommand()[B(0x15f)](B(0x157))[B(0x16f)](B(0x14f))[B(0x116)](I,B(0xfd))['action'](async x=>{const t=B,b=x?.['id']||await U[t(0x16a)](this[t(0x131)]())();console[t(0x155)](t(0xff),b),await this['apiClient'][t(0x153)][t(0x13c)](b);});L['addCommand'](d),L[B(0x120)](u),L[B(0x120)](Y);const V=getCommand()[B(0x15f)](B(0xec))[B(0x10c)](B(0x12e))['alias']('rm')['description'](B(0x106))['option'](I,B(0x110))['action'](async x=>{const P=B,b=x?.['id']||await this[P(0x119)](P(0xec)),e=this[P(0x117)][P(0x153)][P(0x10d)]()?.[P(0x15f)];await this[P(0x117)][P(0x153)][P(0x109)](b),success(P(0x12b)+b+'\x27\x20successfully\x20removed.');if(!this[P(0x139)]()){warning(P(0x17a));return;}if(e===b){const f=x?.[P(0x15f)]||await this[P(0x119)](P(0x174));await this[P(0x117)]['contextProvider'][P(0x11c)](f),success(P(0x168)+f);}}),a=getCommand()['name']('update-token')[B(0x10c)](B(0x161))[B(0x16f)](B(0xfe))[B(0x116)](B(0x137),B(0x16b))['action'](async x=>{const y=B,{contextProvider:b}=this['apiClient'],e=x?.[y(0x103)]||await U[y(0x105)](),f=b[y(0x144)]();await b[y(0x175)](e);if(await this[y(0xf5)]())success(y(0x11b)+b[y(0x12f)]()+y(0x11a));else{if(f)await b[y(0x175)](f);error(y(0x156));}});this[B(0x136)]['addCommand'](K),this['contexts'][B(0x120)](r),this[B(0x136)][B(0x120)](L),this[B(0x136)][B(0x120)](V),this['contexts'][B(0x120)](a);}async[a2Z(0x107)](N,G){const c=a2Z,S=!N['doNotOpenBrowser'],U=N['host']??this[c(0x158)],K=new NorthflankApiBrowserLogin(U,S,this[c(0x10b)]);let r;K['on']('browser-opened',({url:Y})=>{const M=c;if(S){const u=Y[M(0x123)](/sessionToken=.*/,'sessionToken=********');console['log']('Follow\x20the\x20steps\x20displayed\x20on\x20the\x20page\x20opened\x20in\x20the\x20browser\x20(URL\x20opened:\x20'+u+')'),r=a2K[M(0x108)]([{'type':'confirm','name':M(0xed),'message':M(0x126),'default':![]}]),r['then'](V=>{const X=M;process['stdout'][X(0x134)](0x0,-0x1),process[X(0x15b)][X(0x112)](0x1),V[X(0xed)]&&console[X(0x155)](X(0x172)+Y+'\x20');});}else console[M(0x155)](M(0x172)+Y+'\x20');});const {token:L,contextName:I}=await K[c(0x12c)]()[c(0x150)](async Y=>{const o=c;error(o(0x147)+Y[o(0x12a)]+'.\x20Using\x20fallback.');const u=await this[o(0x101)](N,G);return{'token':u[o(0x103)],'contextName':u[o(0x15f)]};})['finally'](()=>{const p=c;if(r)r['ui'][p(0x124)]();}),d=N[c(0x15f)]??I??c(0x178)+new Date()[c(0xf8)]();return{'name':d,'token':L,'host':U,'override':N[c(0x15c)]??![]};}['sanitiseHostname']=N=>{const C=a2Z;let G=N;return!/^https?:\/\//i[C(0xf1)](G)&&(G=C(0x138)+G),G=G[C(0x123)](/\/+$/,''),G;};async[a2Z(0x101)](N,G){const R=a2Z,S=this['apiClient']['contextProvider']['loadContextWrapper']()[R(0x136)],{name:U,token:K,host:r,override:L}=await G[R(0x149)](N,S);return{'name':U,'token':K,'host':r,'override':L};}['getProjectName'](){const w=a2Z,N=this[w(0x117)][w(0x153)][w(0x16c)]();if(N===undefined)throw new Error(w(0xf6));return N;}async[a2Z(0x119)](N){const q=a2Z;if(!this[q(0x139)]())throw new Error(q(0x13e));const G=this['apiClient'][q(0x153)][q(0x10e)]()[q(0x136)][q(0xf0)](U=>U[q(0x15f)]),S=G[q(0x11d)]>0x4?q(0x16e):'list';return(await a2K[q(0x108)]([{'type':S,'name':q(0x15f),'message':q(0x135)+N+':','choices':G}]))[q(0x15f)];}[a2Z(0x139)](){const F=a2Z;return this[F(0x117)][F(0x153)][F(0x10e)]()[F(0x136)][F(0x11d)]>0x0;}async[a2Z(0xf5)](){const m=a2Z;try{const N=this['apiClient'][m(0x153)][m(0x118)](),G=this[m(0x117)][m(0x153)]['getCurrentToken'](),S=N+m(0x114),U={'Authorization':m(0x104)+G},K=new ProxyAgent(),r=await retry(0x3)(async()=>a2U(S,{'method':m(0x129),'signal':AbortSignal[m(0xef)](0xbb8),'headers':U,'agent':K}));if(r['ok'])return!![];return![];}catch(L){return![];}}}
|
package/dist/copy/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a3B=a3G;function a3G(N,G){const S=a3N();return a3G=function(U,K){U=U-0xd9;let r=S[U];return r;},a3G(N,G);}(function(N,G){const Z=a3G,S=N();while(!![]){try{const U=-parseInt(Z(0x112))/0x1*(parseInt(Z(0x10d))/0x2)+-parseInt(Z(0xf1))/0x3+-parseInt(Z(0x109))/0x4+parseInt(Z(0xe8))/0x5*(-parseInt(Z(0xe3))/0x6)+parseInt(Z(0x110))/0x7+-parseInt(Z(0xfa))/0x8*(-parseInt(Z(0xdd))/0x9)+-parseInt(Z(0x10e))/0xa*(-parseInt(Z(0x106))/0xb);if(U===G)break;else S['push'](S['shift']());}catch(K){S['push'](S['shift']());}}}(a3N,0xe3633));import{ApiClient,CopyType}from'@northflank/js-client';import{assertContextExisting,customUserAgent,getCommand,success}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';function a3N(){const y=['\x27\x20to\x20container\x20directory\x20\x27','8QlqlWs','-dir','\x20directory:\x20\x20\x20\x20\x20northflank\x20','\x20(random\x20container\x20will\x20be\x20chosen\x20if\x20not\x20specified)','askForJob','\x20files\x20','upload','Id\x20[NAME]','action','File\x20and\x20directory\x20download\x20for\x20Northflank\x20job.','service','\x20is\x20required\x20for\x20','6369lIdXYt','askForProject','download','497020ELmuoI','option','description','getCurrentServiceName','259282flxguJ','23670RVLhwT','\x20files','5564832cyTAwU','downloadCmd','1PEHFSm','current\x20working','user\x20home','Project\x20for\x20','files','\x20single\x20file:\x20\x20\x20northflank\x20','askForPath','getCurrentProjectName','Uploaded\x20file\x20from\x20\x27','slice','ed-file.txt\x0a\x20\x20','Uploaded\x20all\x20directory\x20contents\x20from\x20\x27','alias','addCommand','\x27remotePath\x27','.\x20If\x20the\x20','5204358ooyLeJ','FILE_UPLOAD','prompt','apiClient','uploadCmd','\x27localPath\x27','7617786itFKeR','File\x20and\x20directory\x20upload\x20for\x20Northflank\x20service.','\x20to\x20','--project\x20--projectId\x20[NAME]','\x20file\x20--localPath\x20my_directory/my-file.txt\x20--remotePath\x20/home/my-','5kCGyqw','File\x20and\x20directory\x20download\x20for\x20Northflank\x20services\x20and\x20jobs.','job','--noDefaults','name','File\x20and\x20directory\x20download\x20for\x20Northflank\x20service.','remote','Remote\x20file\x20or\x20directory','\x20--','866475YGTGWN','input','logCopyResult','\x20the\x20specified\x20','\x20file\x20--localPath\x20my_directory\x20--remotePath\x20/home/','file','ensureRelevantPathIsSet','localPath'];a3N=function(){return y;};return a3N();}import{capitalize}from'lodash-es';import a3S from'inquirer';export class CliFileCopy{['downloadCmd'];[a3B(0xe1)];[a3B(0xe0)];['getStandardCopyCommand']=(N,G)=>{const j=a3B,S=capitalize(G),U=G===j(0x100)?j(0xee):'local',K=G===j(0x100)?j(0x114):j(0x113),r=G===j(0x100)?'to':'from';return getCommand(!![])[j(0xec)](j(0xf6))[j(0x10b)](S+j(0xff)+r+j(0xf4)+N+j(0xdc)+U+'Path\x20is\x20not\x20specified,\x20the\x20'+K+'\x20directory\x20is\x20used.\x20If\x20the\x20directory\x20for\x20'+U+'Path\x20does\x20not\x20exist,\x20it\x20will\x20be\x20created.\x0aExamples:\x0a\x20\x20'+S+j(0x117)+G+'\x20'+N+j(0xe7)+G+j(0x11c)+S+j(0xfc)+G+'\x20'+N+j(0xf5)+G+j(0xfb))['option'](j(0xe6),j(0x115)+G)[j(0x10a)]('--'+N+j(0xf0)+N+j(0x101),N['charAt'](0x0)['toUpperCase']()+N[j(0x11b)](0x1)+j(0xe5)+G+j(0x10f))[j(0x10a)]('--container\x20--containerId\x20[NAME]','Container\x20used\x20to\x20'+G+j(0xfd))[j(0x10a)]('--local\x20--localPath\x20[LOCALPATH]','Local\x20file\x20or\x20directory')[j(0x10a)]('--remote\x20--remotePath\x20[REMOTEPATH]',j(0xef))[j(0x10a)](j(0xeb),'Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.',![]);};constructor(N,G){const i=a3B;this[i(0xe0)]=new ApiClient(N,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':G});const S=new InquirerHelper(this['apiClient']);this[i(0x111)]=getCommand()['name'](i(0x108))[i(0xd9)]('dl')[i(0x10b)](i(0xe9)),this[i(0xe1)]=getCommand()[i(0xec)](i(0x100))[i(0xd9)]('ul')[i(0x10b)]('File\x20and\x20directory\x20upload\x20for\x20Northflank\x20services\x20and\x20jobs.');const U=getCommand()[i(0xec)]('service')[i(0x10b)](i(0xed)),K=getCommand()[i(0xec)](i(0x104))['description'](i(0xe4)),r=getCommand()['name']('job')['description'](i(0x103)),L=getCommand()[i(0xec)](i(0xea))[i(0x10b)]('File\x20and\x20directory\x20upload\x20for\x20Northflank\x20job.'),I=Y=>{const l=i;return this['getStandardCopyCommand'](l(0x104),Y)[l(0x102)](async u=>{const k=l,{projectId:V,serviceId:a,containerId:x,noDefaults:b,quiet:e}=u;assertContextExisting(this[k(0xe0)]);const f=b?undefined:N[k(0x119)](),n=V||f||await S[k(0x107)](),D=b?undefined:N[k(0x10c)](),g=a||D||await S['askForService'](n)(),{remotePath:z,localPath:v}=await this['ensureRelevantPathIsSet'](Y,u),E={'projectId':n,'serviceId':g},W=await this[k(0xe0)][Y]['service'][k(0x116)](E,{'containerName':x,'localPath':v,'remotePath':z});this[k(0xf3)](W,e);});},d=Y=>{const h=i;return this['getStandardCopyCommand'](h(0xea),Y)[h(0x102)](async u=>{const O=h,{projectId:V,jobId:a,containerId:x,noDefaults:b,quiet:e}=u;assertContextExisting(this[O(0xe0)]);const f=b?undefined:N['getCurrentProjectName'](),n=V||f||await S[O(0x107)](),D=a||await S[O(0xfe)](n)(),{remotePath:g,localPath:z}=await this[O(0xf7)](Y,u),v={'projectId':n,'jobId':D},E=await this[O(0xe0)][Y][O(0xea)][O(0x116)](v,{'containerName':x,'localPath':z,'remotePath':g});this[O(0xf3)](E,e);});};U['addCommand'](I(i(0x108))),r[i(0xda)](d(i(0x108))),K[i(0xda)](I(i(0x100))),L[i(0xda)](d('upload')),this[i(0x111)]['addCommand'](U),this[i(0x111)][i(0xda)](r),this[i(0xe1)]['addCommand'](K),this[i(0xe1)][i(0xda)](L);}['logCopyResult']=(N,G)=>{const J=a3B;if(G)return;const {sourceDirectory:S,targetDirectory:U,sourceFile:K,targetFile:r}=N;switch(N['type']){case CopyType['DIRECTORY_DOWNLOAD']:{success('Downloaded\x20all\x20directory\x20contents\x20from\x20\x27'+S+'\x27\x20to\x20local\x20directory\x20\x27'+U+'\x27');break;}case CopyType['FILE_DOWNLOAD']:{success('Downloaded\x20file\x20\x27'+S+'/'+K+'\x27\x20to\x20\x27'+U+'/'+r+'\x27');break;}case CopyType['DIRECTORY_UPLOAD']:{success(J(0x11d)+S+J(0xf9)+U+'\x27');break;}case CopyType[J(0xde)]:{success(J(0x11a)+S+'/'+K+'\x27\x20to\x20\x27'+U+'/'+r+'\x27');break;}}};[a3B(0xf7)]=async(N,G)=>{const t=a3B,S=N===t(0x108)&&G['remotePath']===undefined?await this['askForPath'](t(0xdb),t(0x108)):G['remotePath'],U=N===t(0x100)&&G[t(0xf8)]===undefined?await this[t(0x118)](t(0xe2),'upload'):G[t(0xf8)];return{'localPath':U,'remotePath':S};};[a3B(0x118)]=async(N,G)=>{const P=a3B,S=N+P(0x105)+G+'s.\x20Please\x20enter\x20a\x20path:';return(await a3S[P(0xdf)]([{'type':P(0xf2),'name':P(0xec),'message':S}]))[P(0xec)];};}
|