@junobuild/cli-tools 0.10.2-next-2026-03-09 → 0.10.2-next-2026-03-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.
@@ -25,7 +25,7 @@ const require = topLevelCreateRequire(resolve(process.cwd(), '.juno-pseudo-requi
25
25
  `),console.log("\u{1F194} ",Number(s)),console.log("\u23F3 ",Object.keys(m)[0]??m),Uc(d)&&(u.stop(),console.log("\u274C Hash undefined. This is unexpected."),process.exit(1)),console.log("\u{1F512} ",Lc(d)),{sha256:d}}catch(l){throw u.stop(),l}},{sha256:r}=await o();return a?(await(async()=>{console.log("");let u=pt("Committing proposal...").start();try{await zc({proposal:{proposal_id:s,sha256:r},cdn:i}),u.stop(),console.log(`\u{1F3AF} Change #${s} applied.`)}catch(l){throw u.stop(),l}})(),{proposalId:s}):{proposalId:s}};var Cn=e=>{let i=e>=1e3?"megabyte":"kilobyte";return new Intl.NumberFormat("en",{style:"unit",unit:i}).format(e/(i==="megabyte"?1e6:1e3))};var Sn=ge(kn(),1);var Tn=Sn.default;import*as vi from"tty";var{env:pe={},argv:On=[],platform:Gc=""}=typeof process>"u"?{}:process,$c="NO_COLOR"in pe||On.includes("--no-color"),Hc="FORCE_COLOR"in pe||On.includes("--color"),Kc=Gc==="win32",Pn=pe.TERM==="dumb",Yc=vi&&vi.isatty&&vi.isatty(1)&&pe.TERM&&!Pn,Vc="CI"in pe&&("GITHUB_ACTIONS"in pe||"GITLAB_CI"in pe||"CIRCLECI"in pe),Jc=!$c&&(Hc||Kc&&!Pn||Yc||Vc),jn=(e,i,t,a,n=i.substring(0,e)+a,s=i.substring(e+t.length),o=s.indexOf(t))=>n+(o<0?s:jn(o,s,t,a)),Zc=(e,i,t,a,n)=>e<0?t+i+a:t+jn(e,i,a,n)+a,Xc=(e,i,t=e,a=e.length+1)=>n=>n||!(n===""||n===void 0)?Zc((""+n).indexOf(i,a),n,e,i,t):"",b=(e,i,t)=>Xc(`\x1B[${e}m`,`\x1B[${i}m`,t),Bn={reset:b(0,0),bold:b(1,22,"\x1B[22m\x1B[1m"),dim:b(2,22,"\x1B[22m\x1B[2m"),italic:b(3,23),underline:b(4,24),inverse:b(7,27),hidden:b(8,28),strikethrough:b(9,29),black:b(30,39),red:b(31,39),green:b(32,39),yellow:b(33,39),blue:b(34,39),magenta:b(35,39),cyan:b(36,39),white:b(37,39),gray:b(90,39),bgBlack:b(40,49),bgRed:b(41,49),bgGreen:b(42,49),bgYellow:b(43,49),bgBlue:b(44,49),bgMagenta:b(45,49),bgCyan:b(46,49),bgWhite:b(47,49),blackBright:b(90,39),redBright:b(91,39),greenBright:b(92,39),yellowBright:b(93,39),blueBright:b(94,39),magentaBright:b(95,39),cyanBright:b(96,39),whiteBright:b(97,39),bgBlackBright:b(100,49),bgRedBright:b(101,49),bgGreenBright:b(102,49),bgYellowBright:b(103,49),bgBlueBright:b(104,49),bgMagentaBright:b(105,49),bgCyanBright:b(106,49),bgWhiteBright:b(107,49)},lt=({useColor:e=Jc}={})=>e?Bn:Object.keys(Bn).reduce((i,t)=>({...i,[t]:String}),{}),{reset:Of,bold:Pf,dim:jf,italic:Rf,underline:If,inverse:_f,hidden:Uf,strikethrough:Lf,black:zf,red:Mf,green:Nf,yellow:Wf,blue:qf,magenta:Gf,cyan:$f,white:Hf,gray:Kf,bgBlack:Yf,bgRed:Vf,bgGreen:Jf,bgYellow:Zf,bgBlue:Xf,bgMagenta:Qf,bgCyan:ex,bgWhite:ix,blackBright:tx,redBright:ax,greenBright:nx,yellowBright:sx,blueBright:ox,magentaBright:rx,cyanBright:cx,whiteBright:px,bgBlackBright:ux,bgRedBright:lx,bgGreenBright:mx,bgYellowBright:dx,bgBlueBright:fx,bgMagentaBright:xx,bgCyanBright:hx,bgWhiteBright:gx}=lt();var Us=ge(In(),1);import{format as yu}from"util";import{EOL as ie}from"os";import{StringDecoder as Cu}from"string_decoder";import{Writable as Au}from"stream";import{randomUUID as ku}from"crypto";var Ts="\x1B[",Bs={CURSOR_HIDE:Ts+"?25l",CURSOR_SHOW:Ts+"?25h"},It=(function(e){return e.FORCE_UNICODE="LISTR_FORCE_UNICODE",e.FORCE_TTY="LISTR_FORCE_TTY",e.DISABLE_COLOR="NO_COLOR",e.FORCE_COLOR="FORCE_COLOR",e})({}),Ze=(function(e){return e.WILL_RETRY="WILL_RETRY",e.WILL_ROLLBACK="WILL_ROLLBACK",e.HAS_FAILED_TO_ROLLBACK="HAS_FAILED_TO_ROLLBACK",e.HAS_FAILED="HAS_FAILED",e.HAS_FAILED_WITHOUT_ERROR="HAS_FAILED_WITHOUT_ERROR",e})({}),ue=(function(e){return e.SHOULD_REFRESH_RENDER="SHOUD_REFRESH_RENDER",e})({}),Xe=(function(e){return e.PRIMARY="PRIMARY",e.SECONDARY="SECONDARY",e.SILENT="SILENT",e})({}),F=(function(e){return e.TITLE="TITLE",e.STATE="STATE",e.ENABLED="ENABLED",e.SUBTASK="SUBTASK",e.PROMPT="PROMPT",e.OUTPUT="OUTPUT",e.MESSAGE="MESSAGE",e.CLOSED="CLOSED",e})({}),E=(function(e){return e.WAITING="WAITING",e.STARTED="STARTED",e.COMPLETED="COMPLETED",e.FAILED="FAILED",e.SKIPPED="SKIPPED",e.ROLLING_BACK="ROLLING_BACK",e.ROLLED_BACK="ROLLED_BACK",e.RETRY="RETRY",e.PAUSED="PAUSED",e.PROMPT="PROMPT",e.PROMPT_COMPLETED="PROMPT_COMPLETED",e.PROMPT_FAILED="PROMPT_FAILED",e})({}),Ls=class{emitter=new Tn;emit(e,i){this.emitter.emit(e,i)}on(e,i){this.emitter.addListener(e,i)}once(e,i){this.emitter.once(e,i)}off(e,i){this.emitter.off(e,i)}complete(){this.emitter.removeAllListeners()}};function Su(e){return!!e&&typeof e=="object"&&typeof e.subscribe=="function"}function Tu(e){return!!e&&typeof e=="object"&&e.readable===!0&&typeof e.read=="function"&&typeof e.on=="function"}function zs(){return!!process.env[It.FORCE_UNICODE]||process.platform!=="win32"||!!process.env.CI||!!process.env.WT_SESSION||process.env.TERM_PROGRAM==="vscode"||process.env.TERM==="xterm-256color"||process.env.TERM==="alacritty"}var Bu="(?:\\u001b|\\u009b)\\[[\\=><~/#&.:=?%@~_-]*[0-9]*[\\a-ln-tqyz=><~/#&.:=?%@~_-]+",Ou=/\u0007/;function ei(e){return String(e).replace(new RegExp(Bu,"gmi"),"").replace(new RegExp(Ou,"gmi"),"").trim()}var S=lt();function Os(e,i){return e.replace(/^(?!\s*$)/gm," ".repeat(i))}var Ms={warning:"\u26A0",cross:"\u2716",arrowDown:"\u2193",tick:"\u2714",arrowRight:"\u2192",pointer:"\u276F",checkboxOn:"\u2612",arrowLeft:"\u2190",squareSmallFilled:"\u25FC",pointerSmall:"\u203A"},Pu={...Ms,warning:"\u203C",cross:"\xD7",tick:"\u221A",pointer:">",checkboxOn:"[\xD7]",squareSmallFilled:"\u25A0"},P=zs()?Ms:Pu;function Qe(e,...i){return yu(String(e),...i)}var D=(function(e){return e.STARTED="STARTED",e.COMPLETED="COMPLETED",e.FAILED="FAILED",e.SKIPPED="SKIPPED",e.OUTPUT="OUTPUT",e.TITLE="TITLE",e.ROLLBACK="ROLLBACK",e.RETRY="RETRY",e.PROMPT="PROMPT",e.PAUSED="PAUSED",e})({}),Pi={icon:{[D.STARTED]:P.pointer,[D.FAILED]:P.cross,[D.SKIPPED]:P.arrowDown,[D.COMPLETED]:P.tick,[D.OUTPUT]:P.pointerSmall,[D.TITLE]:P.arrowRight,[D.RETRY]:P.warning,[D.ROLLBACK]:P.arrowLeft,[D.PAUSED]:P.squareSmallFilled},color:{[D.STARTED]:S.yellow,[D.FAILED]:S.red,[D.SKIPPED]:S.yellow,[D.COMPLETED]:S.green,[D.RETRY]:S.yellowBright,[D.ROLLBACK]:S.redBright,[D.PAUSED]:S.yellowBright}},Ns=[D.RETRY,D.ROLLBACK,D.FAILED],ji=class{process;constructor(e){this.options=e,this.options={useIcons:!0,toStderr:[],...e??{}},this.options.fields??={},this.options.fields.prefix??=[],this.options.fields.suffix??=[],this.process=this.options.processOutput??new ju}log(e,i,t){let a=this.format(e,i,t);if(this.options.toStderr.includes(e)){this.process.toStderr(a);return}this.process.toStdout(a)}toStdout(e,i,t=!0){this.process.toStdout(this.format(null,e,i),t)}toStderr(e,i,t=!0){this.process.toStderr(this.format(null,e,i),t)}wrap(e,i){return e&&this.applyFormat(`[${e}]`,i)}splat(...e){let i=e.shift()??"";return e.length===0?i:Qe(i,e)}suffix(e,...i){return i.filter(Boolean).forEach(t=>{if(e+=this.spacing(e),typeof t=="string")e+=this.wrap(t);else if(typeof t=="object"){if(t.args??=[],typeof t.condition=="function"?!t.condition(...t.args):!(t.condition??!0))return e;e+=this.wrap(typeof t.field=="function"?t.field(...t.args):t.field,{format:t?.format(...t.args)})}}),e}prefix(e,...i){return i.filter(Boolean).forEach(t=>{if(e=this.spacing(e)+e,typeof t=="string")e=this.wrap(t)+e;else if(typeof t=="object"){if(t.args??=[],typeof t.condition=="function"?!t.condition(...t.args):!(t.condition??!0))return e;e=this.wrap(typeof t.field=="function"?t.field(...t.args):t.field,{format:t?.format()})+e}}),e}fields(e,i){return this.options?.fields?.prefix&&(e=this.prefix(e,...this.options.fields.prefix)),i?.prefix&&(e=this.prefix(e,...i.prefix)),i?.suffix&&(e=this.suffix(e,...i.suffix)),this.options?.fields?.suffix&&(e=this.suffix(e,...this.options.fields.suffix)),e}icon(e,i){if(!e)return null;if(!i){let a=this.options.icon?.[e];i=typeof a=="function"?a():a}let t=this.options.color?.[e];return i&&t&&(i=t(i)),i}format(e,i,t){return Array.isArray(i)||(i=[i]),i=this.splat(i.shift(),...i).toString().split(ie).filter(a=>!a||a.trim()!=="").map(a=>this.style(e,this.fields(a,{prefix:Array.isArray(t?.prefix)?t.prefix:[t?.prefix],suffix:Array.isArray(t?.suffix)?t.suffix:[t?.suffix]}))).join(ie),i}style(e,i){if(!e||!i)return i;let t=this.icon(e,!this.options.useIcons&&this.wrap(e));return t&&(i=t+" "+i),i}applyFormat(e,i){return i?.format?i.format(e):e}spacing(e){return typeof e>"u"||e.trim()===""?"":" "}},_t=class{buffer=[];decoder=new Cu;constructor(e){this.options=e}get all(){return this.buffer}get last(){return this.buffer.at(-1)}get length(){return this.buffer.length}write(e,...i){let t=i[i.length-1];return this.buffer.push({time:Date.now(),stream:this.options?.stream,entry:this.decoder.write(typeof e=="string"?Buffer.from(e,typeof i[0]=="string"?i[0]:void 0):Buffer.from(e))}),this.options?.limit&&(this.buffer=this.buffer.slice(-this.options.limit)),typeof t=="function"&&t(),!0}reset(){this.buffer=[]}},Ps=class{method;buffer;constructor(e){this.stream=e,this.method=e.write,this.buffer=new _t({stream:e})}get out(){return Object.assign({},this.stream,{write:this.write.bind(this)})}hijack(){this.stream.write=this.buffer.write.bind(this.buffer)}release(){this.stream.write=this.method;let e=[...this.buffer.all];return this.buffer.reset(),e}write(...e){return this.method.apply(this.stream,e)}},ju=class{stream;active;constructor(e,i,t){this.options=t,this.stream={stdout:new Ps(e??process.stdout),stderr:new Ps(i??process.stderr)},this.options={dump:["stdout","stderr"],leaveEmptyLine:!0,...t}}get stdout(){return this.stream.stdout.out}get stderr(){return this.stream.stderr.out}hijack(){if(this.active)throw new Error("ProcessOutput has been already hijacked!");this.stream.stdout.write(Bs.CURSOR_HIDE),Object.values(this.stream).forEach(e=>e.hijack()),this.active=!0}release(){let e=Object.entries(this.stream).map(([i,t])=>({name:i,buffer:t.release()})).filter(i=>this.options.dump.includes(i.name)).flatMap(i=>i.buffer).sort((i,t)=>i.time-t.time).map(i=>({...i,entry:ei(i.entry)})).filter(i=>i.entry);e.length>0&&(this.options.leaveEmptyLine&&this.stdout.write(ie),e.forEach(i=>{(i.stream??this.stdout).write(i.entry+ie)})),this.stream.stdout.write(Bs.CURSOR_SHOW),this.active=!1}toStdout(e,i=!0){return i&&(e=e+ie),this.stream.stdout.write(e)}toStderr(e,i=!0){return i&&(e=e+ie),this.stream.stderr.write(e)}};function Ru(e){let i=new Au;return i.rows=1/0,i.columns=1/0,i.write=t=>(e(t.toString()),!0),i}var Iu=class{spinner=zs()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["-","\\","|","/"];id;spinnerPosition=0;spin(){this.spinnerPosition=++this.spinnerPosition%this.spinner.length}fetch(){return this.spinner[this.spinnerPosition]}isRunning(){return!!this.id}start(e,i=100){this.id=setInterval(()=>{this.spin(),e&&e()},i)}stop(){clearInterval(this.id)}},v=(function(e){return e.SKIPPED_WITH_COLLAPSE="SKIPPED_WITH_COLLAPSE",e.SKIPPED_WITHOUT_COLLAPSE="SKIPPED_WITHOUT_COLLAPSE",e.OUTPUT="OUTPUT",e.OUTPUT_WITH_BOTTOMBAR="OUTPUT_WITH_BOTTOMBAR",e.PENDING="PENDING",e.COMPLETED="COMPLETED",e.COMPLETED_WITH_FAILED_SUBTASKS="COMPLETED_WITH_FAILED_SUBTASKS",e.COMPLETED_WITH_FAILED_SISTER_TASKS="COMPLETED_WITH_SISTER_TASKS_FAILED",e.RETRY="RETRY",e.ROLLING_BACK="ROLLING_BACK",e.ROLLED_BACK="ROLLED_BACK",e.FAILED="FAILED",e.FAILED_WITH_FAILED_SUBTASKS="FAILED_WITH_SUBTASKS",e.WAITING="WAITING",e.PAUSED="PAUSED",e})({}),js={icon:{[v.SKIPPED_WITH_COLLAPSE]:P.arrowDown,[v.SKIPPED_WITHOUT_COLLAPSE]:P.warning,[v.OUTPUT]:P.pointerSmall,[v.OUTPUT_WITH_BOTTOMBAR]:P.pointerSmall,[v.PENDING]:P.pointer,[v.COMPLETED]:P.tick,[v.COMPLETED_WITH_FAILED_SUBTASKS]:P.warning,[v.COMPLETED_WITH_FAILED_SISTER_TASKS]:P.squareSmallFilled,[v.RETRY]:P.warning,[v.ROLLING_BACK]:P.warning,[v.ROLLED_BACK]:P.arrowLeft,[v.FAILED]:P.cross,[v.FAILED_WITH_FAILED_SUBTASKS]:P.pointer,[v.WAITING]:P.squareSmallFilled,[v.PAUSED]:P.squareSmallFilled},color:{[v.SKIPPED_WITH_COLLAPSE]:S.yellow,[v.SKIPPED_WITHOUT_COLLAPSE]:S.yellow,[v.PENDING]:S.yellow,[v.COMPLETED]:S.green,[v.COMPLETED_WITH_FAILED_SUBTASKS]:S.yellow,[v.COMPLETED_WITH_FAILED_SISTER_TASKS]:S.red,[v.RETRY]:S.yellowBright,[v.ROLLING_BACK]:S.redBright,[v.ROLLED_BACK]:S.redBright,[v.FAILED]:S.red,[v.FAILED_WITH_FAILED_SUBTASKS]:S.red,[v.WAITING]:S.dim,[v.PAUSED]:S.yellowBright}};function _u(e){let i=Math.floor(e/1e3),t=Math.floor(i/60),a;return i===0&&t===0&&(a=`0.${Math.floor(e/100)}s`),i>0&&(a=`${i%60}s`),t>0&&(a=`${t}m${a}`),a}var Mt={condition:!0,field:_u,format:()=>S.dim};var Uu=class Ut{static nonTTY=!1;static rendererOptions={indentation:2,clearOutput:!1,showSubtasks:!0,collapseSubtasks:!0,collapseSkips:!0,showSkipMessage:!0,suffixSkips:!1,collapseErrors:!0,showErrorMessage:!0,suffixRetries:!0,lazy:!1,removeEmptyLines:!0,formatOutput:"wrap",pausedTimer:{...Mt,format:()=>S.yellowBright}};static rendererTaskOptions={outputBar:!0};prompt;activePrompt;spinner;logger;updater;truncate;wrap;buffer={output:new Map,bottom:new Map};cache={render:new Map,rendererOptions:new Map,rendererTaskOptions:new Map};constructor(i,t,a){this.tasks=i,this.options=t,this.events=a,this.options={...Ut.rendererOptions,...this.options,icon:{...js.icon,...t?.icon??{}},color:{...js.color,...t?.color??{}}},this.spinner=this.options.spinner??new Iu,this.logger=this.options.logger??new ji({useIcons:!0,toStderr:[]}),this.logger.options.icon=this.options.icon,this.logger.options.color=this.options.color}async render(){let{createLogUpdate:i}=await Promise.resolve().then(()=>(ys(),Es)),{default:t}=await Promise.resolve().then(()=>(Ss(),ks)),{default:a}=await Promise.resolve().then(()=>(kt(),xs));this.updater=i(this.logger.process.stdout),this.truncate=t,this.wrap=a,this.logger.process.hijack(),this.options?.lazy||this.spinner.start(()=>{this.update()}),this.events.on(ue.SHOULD_REFRESH_RENDER,()=>{this.update()})}update(){this.updater(this.create())}end(){this.spinner.stop(),this.updater.clear(),this.updater.done(),this.options.clearOutput||this.logger.process.toStdout(this.create({prompt:!1})),this.logger.process.release()}create(i){i={tasks:!0,bottomBar:!0,prompt:!0,...i};let t=[],a=this.renderer(this.tasks),n=this.renderBottomBar(),s=this.renderPrompt();return i.tasks&&a.length>0&&t.push(...a),i.bottomBar&&n.length>0&&(t.length>0&&t.push(""),t.push(...n)),i.prompt&&s.length>0&&(t.length>0&&t.push(""),t.push(...s)),t.join(ie)}style(i,t=!1){let a=this.cache.rendererOptions.get(i.id);if(i.isSkipped()){if(t||a.collapseSkips)return this.logger.icon(v.SKIPPED_WITH_COLLAPSE);if(a.collapseSkips===!1)return this.logger.icon(v.SKIPPED_WITHOUT_COLLAPSE)}if(t)return this.shouldOutputToBottomBar(i)?this.logger.icon(v.OUTPUT_WITH_BOTTOMBAR):this.logger.icon(v.OUTPUT);if(i.hasSubtasks()){if(i.isStarted()||i.isPrompt()&&a.showSubtasks!==!1&&!i.subtasks.every(n=>!n.hasTitle()))return this.logger.icon(v.PENDING);if(i.isCompleted()&&i.subtasks.some(n=>n.hasFailed()))return this.logger.icon(v.COMPLETED_WITH_FAILED_SUBTASKS);if(i.hasFailed())return this.logger.icon(v.FAILED_WITH_FAILED_SUBTASKS)}return i.isStarted()||i.isPrompt()?this.logger.icon(v.PENDING,!this.options?.lazy&&this.spinner.fetch()):i.isCompleted()?this.logger.icon(v.COMPLETED):i.isRetrying()?this.logger.icon(v.RETRY,!this.options?.lazy&&this.spinner.fetch()):i.isRollingBack()?this.logger.icon(v.ROLLING_BACK,!this.options?.lazy&&this.spinner.fetch()):i.hasRolledBack()?this.logger.icon(v.ROLLED_BACK):i.hasFailed()?this.logger.icon(v.FAILED):i.isPaused()?this.logger.icon(v.PAUSED):this.logger.icon(v.WAITING)}format(i,t,a){if(i.trim()==="")return[];t&&(i=t+" "+i);let n,s=(process.stdout.columns??80)-a*this.options.indentation-2;switch(this.options.formatOutput){case"truncate":n=i.split(ie).map((o,r)=>this.truncate(this.indent(o,r),s));break;case"wrap":n=this.wrap(i,s,{hard:!0,trim:!1}).split(ie).map((o,r)=>this.indent(o,r));break;default:throw new Is("Format option for the renderer is wrong.")}return this.options.removeEmptyLines&&(n=n.filter(Boolean)),n.map(o=>Os(o,a*this.options.indentation))}shouldOutputToOutputBar(i){let t=this.cache.rendererTaskOptions.get(i.id).outputBar;return typeof t=="number"&&t!==0||typeof t=="boolean"&&t!==!1}shouldOutputToBottomBar(i){let t=this.cache.rendererTaskOptions.get(i.id).bottomBar;return typeof t=="number"&&t!==0||typeof t=="boolean"&&t!==!1||!i.hasTitle()}renderer(i,t=0){return i.flatMap(a=>{if(!a.isEnabled())return[];if(this.cache.render.has(a.id))return this.cache.render.get(a.id);this.calculate(a),this.setupBuffer(a);let n=this.cache.rendererOptions.get(a.id),s=this.cache.rendererTaskOptions.get(a.id),o=[];if(a.isPrompt()){if(this.activePrompt&&this.activePrompt!==a.id)throw new Is("Only one prompt can be active at the given time, please re-evaluate your task design.");this.activePrompt||(a.on(F.PROMPT,r=>{let c=ei(r);c&&(this.prompt=c)}),a.on(F.STATE,r=>{(r===E.PROMPT_COMPLETED||a.hasFinalized()||a.hasReset())&&(this.prompt=null,this.activePrompt=null,a.off(F.PROMPT))}),this.activePrompt=a.id)}if(a.hasTitle()&&(i.some(r=>r.hasFailed())&&!a.hasFailed()&&a.options.exitOnError!==!1&&!(a.isCompleted()||a.isSkipped())?o.push(...this.format(a.title,this.logger.icon(v.COMPLETED_WITH_FAILED_SISTER_TASKS),t)):a.hasFailed()&&n.collapseErrors?o.push(...this.format(!a.hasSubtasks()&&a.message.error&&n.showErrorMessage?a.message.error:a.title,this.style(a),t)):a.isSkipped()&&n.collapseSkips?o.push(...this.format(this.logger.suffix(a.message.skip&&n.showSkipMessage?a.message.skip:a.title,{field:D.SKIPPED,condition:n.suffixSkips,format:()=>S.dim}),this.style(a),t)):a.isRetrying()?o.push(...this.format(this.logger.suffix(a.title,{field:`${D.RETRY}:${a.message.retry.count}`,format:()=>S.yellow,condition:n.suffixRetries}),this.style(a),t)):a.isCompleted()&&a.hasTitle()&&Se(s.timer?.condition,a.message.duration)?o.push(...this.format(this.logger.suffix(a?.title,{...s.timer,args:[a.message.duration]}),this.style(a),t)):a.isPaused()?o.push(...this.format(this.logger.suffix(a.title,{...n.pausedTimer,args:[a.message.paused-Date.now()]}),this.style(a),t)):o.push(...this.format(a.title,this.style(a),t))),(!a.hasSubtasks()||!n.showSubtasks)&&(a.hasFailed()&&n.collapseErrors===!1&&(n.showErrorMessage||!n.showSubtasks)?o.push(...this.dump(a,t,D.FAILED)):a.isSkipped()&&n.collapseSkips===!1&&(n.showSkipMessage||!n.showSubtasks)&&o.push(...this.dump(a,t,D.SKIPPED))),(a.isPending()||s.persistentOutput)&&o.push(...this.renderOutputBar(a,t)),n.showSubtasks!==!1&&a.hasSubtasks()&&(a.isPending()||a.hasFinalized()&&!a.hasTitle()||a.isCompleted()&&n.collapseSubtasks===!1&&!a.subtasks.some(r=>this.cache.rendererOptions.get(r.id)?.collapseSubtasks===!0)||a.subtasks.some(r=>this.cache.rendererOptions.get(r.id)?.collapseSubtasks===!1)||a.subtasks.some(r=>r.hasFailed())||a.subtasks.some(r=>r.hasRolledBack()))){let r=a.hasTitle()?t+1:t,c=this.renderer(a.subtasks,r);o.push(...c)}return a.hasFinalized()&&(s.persistentOutput||(this.buffer.bottom.delete(a.id),this.buffer.output.delete(a.id))),a.isClosed()&&(this.cache.render.set(a.id,o),this.reset(a)),o})}renderOutputBar(i,t){let a=this.buffer.output.get(i.id);return a?a.all.flatMap(n=>this.dump(i,t,D.OUTPUT,n.entry)):[]}renderBottomBar(){return this.buffer.bottom.size===0?[]:Array.from(this.buffer.bottom.values()).flatMap(i=>i.all).sort((i,t)=>i.time-t.time).map(i=>i.entry)}renderPrompt(){return this.prompt?[this.prompt]:[]}calculate(i){if(this.cache.rendererOptions.has(i.id)&&this.cache.rendererTaskOptions.has(i.id))return;let t={...this.options,...i.rendererOptions};this.cache.rendererOptions.set(i.id,t),this.cache.rendererTaskOptions.set(i.id,{...Ut.rendererTaskOptions,timer:t.timer,...i.rendererTaskOptions})}setupBuffer(i){if(this.buffer.bottom.has(i.id)||this.buffer.output.has(i.id))return;let t=this.cache.rendererTaskOptions.get(i.id);this.shouldOutputToBottomBar(i)&&!this.buffer.bottom.has(i.id)?(this.buffer.bottom.set(i.id,new _t({limit:typeof t.bottomBar=="number"?t.bottomBar:1})),i.on(F.OUTPUT,a=>{let n=this.dump(i,-1,D.OUTPUT,a);this.buffer.bottom.get(i.id).write(n.join(ie))}),i.on(F.STATE,a=>{a===(E.RETRY||E.ROLLING_BACK)&&this.buffer.bottom.delete(i.id)})):this.shouldOutputToOutputBar(i)&&!this.buffer.output.has(i.id)&&(this.buffer.output.set(i.id,new _t({limit:typeof t.outputBar=="number"?t.outputBar:1})),i.on(F.OUTPUT,a=>{this.buffer.output.get(i.id).write(a)}),i.on(F.STATE,a=>{a===(E.RETRY||E.ROLLING_BACK)&&this.buffer.output.delete(i.id)}))}reset(i){this.cache.rendererOptions.delete(i.id),this.cache.rendererTaskOptions.delete(i.id),this.buffer.output.delete(i.id)}dump(i,t,a=D.OUTPUT,n){if(!n)switch(a){case D.OUTPUT:n=i.output;break;case D.SKIPPED:n=i.message.skip;break;case D.FAILED:n=i.message.error;break}return i.hasTitle()&&a===D.FAILED&&n===i.title||typeof n!="string"?[]:(a===D.OUTPUT&&(n=ei(n)),this.format(n,this.style(i,!0),t+1))}indent(i,t){return t>0?Os(i.trimEnd(),this.options.indentation):i.trimEnd()}},Lu=class{static nonTTY=!0;static rendererOptions;static rendererTaskOptions;constructor(e,i){this.tasks=e,this.options=i}render(){}end(){}},zu=class Lt{static nonTTY=!0;static rendererOptions={pausedTimer:{...Mt,field:i=>`${D.PAUSED}:${i}`,format:()=>S.yellowBright}};static rendererTaskOptions={};logger;cache={rendererOptions:new Map,rendererTaskOptions:new Map};constructor(i,t){this.tasks=i,this.options=t,this.options={...Lt.rendererOptions,...t,icon:{...Pi.icon,...t?.icon??{}},color:{...Pi.color,...t?.color??{}}},this.logger=this.options.logger??new ji({useIcons:!0,toStderr:Ns}),this.logger.options.icon=this.options.icon,this.logger.options.color=this.options.color,this.options.timestamp&&this.logger.options.fields.prefix.unshift(this.options.timestamp)}end(){}render(){this.renderer(this.tasks)}renderer(i){i.forEach(t=>{this.calculate(t),t.once(F.CLOSED,()=>{this.reset(t)});let a=this.cache.rendererOptions.get(t.id),n=this.cache.rendererTaskOptions.get(t.id);t.on(F.SUBTASK,s=>{this.renderer(s)}),t.on(F.STATE,s=>{if(t.hasTitle())if(s===E.STARTED)this.logger.log(D.STARTED,t.title);else if(s===E.COMPLETED){let o=n?.timer;this.logger.log(D.COMPLETED,t.title,o&&{suffix:{...o,condition:!!t.message?.duration&&o.condition,args:[t.message.duration]}})}else s===E.PROMPT?(this.logger.process.hijack(),t.on(F.PROMPT,o=>{this.logger.process.toStderr(o,!1)})):s===E.PROMPT_COMPLETED&&(t.off(F.PROMPT),this.logger.process.release())}),t.on(F.OUTPUT,s=>{this.logger.log(D.OUTPUT,s)}),t.on(F.MESSAGE,s=>{if(s.error)this.logger.log(D.FAILED,t.title,{suffix:{field:`${D.FAILED}: ${s.error}`,format:()=>S.red}});else if(s.skip)this.logger.log(D.SKIPPED,t.title,{suffix:{field:`${D.SKIPPED}: ${s.skip}`,format:()=>S.yellow}});else if(s.rollback)this.logger.log(D.ROLLBACK,t.title,{suffix:{field:`${D.ROLLBACK}: ${s.rollback}`,format:()=>S.red}});else if(s.retry)this.logger.log(D.RETRY,t.title,{suffix:{field:`${D.RETRY}:${s.retry.count}`,format:()=>S.red}});else if(s.paused){let o=a?.pausedTimer;this.logger.log(D.PAUSED,t.title,o&&{suffix:{...o,condition:!!s?.paused&&o.condition,args:[s.paused-Date.now()]}})}})})}calculate(i){if(this.cache.rendererOptions.has(i.id)&&this.cache.rendererTaskOptions.has(i.id))return;let t={...this.options,...i.rendererOptions};this.cache.rendererOptions.set(i.id,t),this.cache.rendererTaskOptions.set(i.id,{...Lt.rendererTaskOptions,timer:t.timer,...i.rendererTaskOptions})}reset(i){this.cache.rendererOptions.delete(i.id),this.cache.rendererTaskOptions.delete(i.id)}},Mu=class{constructor(e){this.options=e}serialize(e,i,t){return JSON.stringify(this.generate(e,i,t))}generate(e,i,t){let a={event:e,data:i};if(typeof this.options?.task!="boolean"){let n=Object.fromEntries(this.options.task.map(s=>{let o=t[s];return typeof o=="function"?[s,o.call(t)]:[s,o]}));Object.keys(t).length>0&&(a.task=n)}return a}},Nu=class Ws{static nonTTY=!0;static rendererOptions={subtasks:!0,state:Object.values(E),output:!0,prompt:!0,title:!0,messages:["skip","error","retry","rollback","paused"],messagesToStderr:["error","rollback","retry"],task:["hasRolledBack","isRollingBack","isCompleted","isSkipped","hasFinalized","hasSubtasks","title","hasReset","hasTitle","isPrompt","isPaused","isPending","isSkipped","isStarted","hasFailed","isEnabled","isRetrying","path"]};static rendererTaskOptions;logger;serializer;constructor(i,t){this.tasks=i,this.options=t,this.options={...Ws.rendererOptions,...this.options},this.logger=this.options.logger??new ji({useIcons:!1}),this.serializer=new Mu(this.options)}render(){this.renderer(this.tasks)}end(){}renderer(i){i.forEach(t=>{this.options.subtasks&&t.on(F.SUBTASK,a=>{this.renderer(a)}),this.options.state&&t.on(F.STATE,a=>{this.logger.toStdout(this.serializer.serialize(F.STATE,a,t))}),this.options.output&&t.on(F.OUTPUT,a=>{this.logger.toStdout(this.serializer.serialize(F.OUTPUT,a,t))}),this.options.prompt&&t.on(F.PROMPT,a=>{this.logger.toStdout(this.serializer.serialize(F.PROMPT,a,t))}),this.options.title&&t.on(F.TITLE,a=>{this.logger.toStdout(this.serializer.serialize(F.TITLE,a,t))}),t.on(F.MESSAGE,a=>{let n=Object.fromEntries(Object.entries(a).map(([s,o])=>{if(this.options.messages.includes(s))return[s,o]}).filter(Boolean));if(Object.keys(n).length>0){let s=this.serializer.serialize(F.MESSAGE,n,t);this.options.messagesToStderr.some(o=>Object.keys(n).includes(o))?this.logger.toStderr(s):this.logger.toStdout(s)}})})}},Wu=class zt{static nonTTY=!0;static rendererOptions={logTitleChange:!1,pausedTimer:{...Mt,format:()=>S.yellowBright}};static rendererTaskOptions;logger;cache={rendererOptions:new Map,rendererTaskOptions:new Map};constructor(i,t){this.tasks=i,this.options=t,this.options={...zt.rendererOptions,...this.options,icon:{...Pi.icon,...t?.icon??{}},color:{...Pi.color,...t?.color??{}}},this.logger=this.options.logger??new ji({useIcons:!1,toStderr:Ns}),this.logger.options.icon=this.options.icon,this.logger.options.color=this.options.color,this.options.timestamp&&this.logger.options.fields.prefix.unshift(this.options.timestamp)}render(){this.renderer(this.tasks)}end(){}renderer(i){i.forEach(t=>{this.calculate(t),t.once(F.CLOSED,()=>{this.reset(t)});let a=this.cache.rendererOptions.get(t.id),n=this.cache.rendererTaskOptions.get(t.id);t.on(F.SUBTASK,s=>{this.renderer(s)}),t.on(F.STATE,s=>{if(t.hasTitle()){if(s===E.STARTED)this.logger.log(D.STARTED,t.title);else if(s===E.COMPLETED){let o=n.timer;this.logger.log(D.COMPLETED,t.title,o&&{suffix:{...o,condition:!!t.message?.duration&&o.condition,args:[t.message.duration]}})}}}),t.on(F.OUTPUT,s=>{this.logger.log(D.OUTPUT,s)}),t.on(F.PROMPT,s=>{let o=ei(s);o&&this.logger.log(D.PROMPT,o)}),this.options?.logTitleChange!==!1&&t.on(F.TITLE,s=>{this.logger.log(D.TITLE,s)}),t.on(F.MESSAGE,s=>{if(s?.error)this.logger.log(D.FAILED,s.error);else if(s?.skip)this.logger.log(D.SKIPPED,s.skip);else if(s?.rollback)this.logger.log(D.ROLLBACK,s.rollback);else if(s?.retry)this.logger.log(D.RETRY,t.title,{suffix:s.retry.count.toString()});else if(s?.paused){let o=a?.pausedTimer;this.logger.log(D.PAUSED,t.title,o&&{suffix:{...o,condition:!!s?.paused&&o.condition,args:[s.paused-Date.now()]}})}})})}calculate(i){if(this.cache.rendererOptions.has(i.id)&&this.cache.rendererTaskOptions.has(i.id))return;let t={...this.options,...i.rendererOptions};this.cache.rendererOptions.set(i.id,t),this.cache.rendererTaskOptions.set(i.id,{...zt.rendererTaskOptions,timer:t.timer,...i.rendererTaskOptions})}reset(i){this.cache.rendererOptions.delete(i.id),this.cache.rendererTaskOptions.delete(i.id)}},Rt={default:Uu,simple:zu,verbose:Wu,test:Nu,silent:Lu};function qu(e){return process.stdout.isTTY===!0||e.nonTTY===!0}function Oi(e){return typeof e=="string"?Rt[e]??Rt.default:typeof e=="function"?e:Rt.default}function Gu(e){if(Se(e?.silentRendererCondition))return{renderer:Oi("silent"),selection:Xe.SILENT};let i={renderer:Oi(e.renderer),options:e.rendererOptions,selection:Xe.PRIMARY};return!qu(i.renderer)||Se(e?.fallbackRendererCondition)?{renderer:Oi(e.fallbackRenderer),options:e.fallbackRendererOptions,selection:Xe.SECONDARY}:i}function Se(e,...i){return typeof e=="function"?e(...i):e}var $u=(0,Us.default)({circles:!0});function Rs(e){return $u(e)}var Hu=class{concurrency;count;queue;constructor(e){this.concurrency=e.concurrency,this.count=0,this.queue=new Set}add(e){return this.count<this.concurrency?this.run(e):new Promise(i=>{let t=()=>i(this.run(e));this.queue.add(t)})}flush(){for(let e of this.queue){if(this.count>=this.concurrency)break;this.queue.delete(e),e()}}run(e){this.count++;let i=e(),t=()=>{this.count--,this.flush()};return i.then(t,()=>{this.queue.clear()}),i}};function Ku(e){return new Promise(i=>{setTimeout(i,e)})}var Yu=class extends Error{path;ctx;constructor(e,i,t){super(e.message),this.error=e,this.type=i,this.task=t,this.name="ListrError",this.path=t.path,t?.options.collectErrors==="full"&&(this.task=Rs(t),this.ctx=Rs(t.listr.ctx)),this.stack=e?.stack}},Is=class extends Error{},Vu=class extends Error{},Ju=class{constructor(e){this.task=e}get title(){return this.task.title}set title(e){e=Array.isArray(e)?e:[e],this.task.title$=Qe(e.shift(),...e)}get output(){return this.task.output}set output(e){e=Array.isArray(e)?e:[e],this.task.output$=Qe(e.shift(),...e)}set promptOutput(e){this.task.promptOutput$=e}newListr(e,i){let t;return typeof e=="function"?t=e(this):t=e,new Te(t,i,this.task)}report(e,i){this.task.options.collectErrors!==!1&&this.task.listr.errors.push(new Yu(e,i,this.task)),this.task.message$={error:e.message??this.task?.title}}skip(e,...i){this.task.state$=E.SKIPPED,e&&(this.task.message$={skip:e?Qe(e,...i):this.task?.title})}isRetrying(){return this.task.isRetrying()?this.task.retry:{count:0}}prompt(e){return this.task.prompt?this.task.prompt:new e(this.task,this)}stdout(e){return Ru(i=>{e===F.PROMPT?this.promptOutput=i:this.output=i})}run(e){return this.task.run(e,this)}},Zu=class extends Ls{},Xu=class extends Zu{id=ku();state=E.WAITING;subtasks;title;initialTitle;output;retry;message={};prompt;parent;enabled;taskFn;closed;constructor(e,i,t,a,n){if(super(),this.listr=e,this.task=i,this.options=t,this.rendererOptions=a,this.rendererTaskOptions=n,i.title){let s=Array.isArray(i?.title)?i.title:[i.title];this.title=Qe(s.shift(),...s),this.initialTitle=this.title}this.taskFn=i.task,this.parent=e.parentTask}set state$(e){if(this.state=e,this.emit(F.STATE,e),this.hasSubtasks()&&this.hasFailed())for(let i of this.subtasks)i.state===E.STARTED&&(i.state$=E.FAILED);this.listr.events.emit(ue.SHOULD_REFRESH_RENDER)}set output$(e){this.output=e,this.emit(F.OUTPUT,e),this.listr.events.emit(ue.SHOULD_REFRESH_RENDER)}set promptOutput$(e){this.emit(F.PROMPT,e),ei(e)&&this.listr.events.emit(ue.SHOULD_REFRESH_RENDER)}set message$(e){this.message={...this.message,...e},this.emit(F.MESSAGE,e),this.listr.events.emit(ue.SHOULD_REFRESH_RENDER)}set title$(e){this.title=e,this.emit(F.TITLE,e),this.listr.events.emit(ue.SHOULD_REFRESH_RENDER)}get path(){return[...this.listr.path,this.initialTitle]}async check(e){return this.state===E.WAITING&&(this.enabled=await Se(this.task?.enabled??!0,e),this.emit(F.ENABLED,this.enabled),this.listr.events.emit(ue.SHOULD_REFRESH_RENDER)),this.enabled}hasSubtasks(){return this.subtasks?.length>0}hasFinalized(){return this.isCompleted()||this.hasFailed()||this.isSkipped()||this.hasRolledBack()}isPending(){return this.isStarted()||this.isPrompt()||this.hasReset()}isStarted(){return this.state===E.STARTED}isSkipped(){return this.state===E.SKIPPED}isCompleted(){return this.state===E.COMPLETED}hasFailed(){return this.state===E.FAILED}isRollingBack(){return this.state===E.ROLLING_BACK}hasRolledBack(){return this.state===E.ROLLED_BACK}isRetrying(){return this.state===E.RETRY}hasReset(){return this.state===E.RETRY||this.state===E.ROLLING_BACK}isEnabled(){return this.enabled}hasTitle(){return typeof this?.title=="string"}isPrompt(){return this.state===E.PROMPT}isPaused(){return this.state===E.PAUSED}isClosed(){return this.closed}async pause(e){let i=this.state;this.state$=E.PAUSED,this.message$={paused:Date.now()+e},await Ku(e),this.state$=i,this.message$={paused:null}}async run(e,i){let t=s=>(s instanceof Te?(s.options={...this.options,...s.options},s.rendererClass=Oi("silent"),this.subtasks=s.tasks,s.errors=this.listr.errors,this.emit(F.SUBTASK,this.subtasks),s=s.run(e)):s instanceof Promise?s=s.then(t):Tu(s)?s=new Promise((o,r)=>{s.on("data",c=>{this.output$=c.toString()}),s.on("error",c=>r(c)),s.on("end",()=>o(null))}):Su(s)&&(s=new Promise((o,r)=>{s.subscribe({next:c=>{this.output$=c},error:r,complete:o})})),s),a=Date.now();this.state$=E.STARTED;let n=await Se(this.task?.skip??!1,e);if(n){typeof n=="string"?this.message$={skip:n}:this.hasTitle()?this.message$={skip:this.title}:this.message$={skip:"Skipped task without a title."},this.state$=E.SKIPPED;return}try{let s=typeof this.task?.retry=="number"&&this.task.retry>0?this.task.retry+1:typeof this.task?.retry=="object"&&this.task.retry.tries>0?this.task.retry.tries+1:1,o=typeof this.task.retry=="object"&&this.task.retry.delay;for(let r=1;r<=s;r++)try{await t(this.taskFn(e,i));break}catch(c){if(r!==s)this.retry={count:r,error:c},this.message$={retry:this.retry},this.title$=this.initialTitle,this.output=void 0,i.report(c,Ze.WILL_RETRY),this.state$=E.RETRY,o&&await this.pause(o);else throw c}(this.isStarted()||this.isRetrying())&&(this.message$={duration:Date.now()-a},this.state$=E.COMPLETED)}catch(s){if(this.prompt instanceof Vu&&(s=this.prompt),this.task?.rollback){i.report(s,Ze.WILL_ROLLBACK);try{this.state$=E.ROLLING_BACK,await this.task.rollback(e,i),this.message$={rollback:this.title},this.state$=E.ROLLED_BACK}catch(o){throw this.state$=E.FAILED,i.report(o,Ze.HAS_FAILED_TO_ROLLBACK),this.close(),o}if(this.listr.options?.exitAfterRollback!==!1)throw this.close(),s}else{if(this.state$=E.FAILED,this.listr.options.exitOnError!==!1&&await Se(this.task?.exitOnError,e)!==!1)throw i.report(s,Ze.HAS_FAILED),this.close(),s;this.hasSubtasks()||i.report(s,Ze.HAS_FAILED_WITHOUT_ERROR)}}finally{this.close()}}close(){this.emit(F.CLOSED),this.listr.events.emit(ue.SHOULD_REFRESH_RENDER),this.complete()}},_s=class extends Ls{},Te=class{tasks=[];errors=[];ctx;events;path=[];rendererClass;rendererClassOptions;rendererSelection;boundSignalHandler;concurrency;renderer;constructor(e,i,t){this.task=e,this.options=i,this.parentTask=t,this.options={concurrent:!1,renderer:"default",fallbackRenderer:"simple",exitOnError:!0,exitAfterRollback:!0,collectErrors:!1,registerSignalListeners:!0,...this.parentTask?.options??{},...i},this.options.concurrent===!0?this.options.concurrent=1/0:typeof this.options.concurrent!="number"&&(this.options.concurrent=1),this.concurrency=new Hu({concurrency:this.options.concurrent}),t&&(this.path=[...t.listr.path,t.title],this.errors=t.listr.errors),this.parentTask?.listr.events instanceof _s?this.events=this.parentTask.listr.events:this.events=new _s,(this.options?.forceTTY||process.env[It.FORCE_TTY])&&(process.stdout.isTTY=!0,process.stderr.isTTY=!0),this.options?.forceUnicode&&(process.env[It.FORCE_UNICODE]="1");let a=Gu({renderer:this.options.renderer,rendererOptions:this.options.rendererOptions,fallbackRenderer:this.options.fallbackRenderer,fallbackRendererOptions:this.options.fallbackRendererOptions,fallbackRendererCondition:this.options?.fallbackRendererCondition,silentRendererCondition:this.options?.silentRendererCondition});this.rendererClass=a.renderer,this.rendererClassOptions=a.options,this.rendererSelection=a.selection,this.add(e??[]),this.options.registerSignalListeners&&(this.boundSignalHandler=this.signalHandler.bind(this),process.once("SIGINT",this.boundSignalHandler).setMaxListeners(0))}isRoot(){return!this.parentTask}isSubtask(){return!!this.parentTask}add(e){this.tasks.push(...this.generate(e))}async run(e){this.renderer||(this.renderer=new this.rendererClass(this.tasks,this.rendererClassOptions,this.events)),await this.renderer.render(),this.ctx=this.options?.ctx??e??{};try{await Promise.all(this.tasks.map(i=>i.check(this.ctx))),await Promise.all(this.tasks.map(i=>this.concurrency.add(()=>this.runTask(i)))),this.renderer.end(),this.removeSignalHandler()}catch(i){if(this.options.exitOnError!==!1)throw this.renderer.end(i),this.removeSignalHandler(),i}return this.ctx}generate(e){return e=Array.isArray(e)?e:[e],e.map(i=>{let t;return this.rendererSelection===Xe.PRIMARY?t=i.rendererOptions:this.rendererSelection===Xe.SECONDARY&&(t=i.fallbackRendererOptions),new Xu(this,i,this.options,this.rendererClassOptions,t)})}async runTask(e){if(await e.check(this.ctx))return new Ju(e).run(this.ctx)}signalHandler(){this.tasks?.forEach(async e=>{e.isPending()&&(e.state$=E.FAILED)}),this.isRoot()&&(this.renderer?.end(new Error("Interrupted.")),process.exit(127))}removeSignalHandler(){this.boundSignalHandler&&process.removeListener("SIGINT",this.boundSignalHandler)}};import{relative as al}from"node:path";import{nonNullish as Gs,notEmptyString as $s}from"@dfinity/utils";import{readFile as il}from"node:fs/promises";import{basename as tl}from"node:path";import{isNullish as Qu,nonNullish as el}from"@dfinity/utils";var qs=e=>e.reduce(([i,t],a)=>[[...i,...el(a.file.alternateFile)?[a]:[]],[...t,...Qu(a.file.alternateFile)?[a]:[]]],[[],[]]);var Ri=async({file:e,fullPath:i,collection:t,filePath:a,token:n,description:s})=>({filename:tl(a),fullPath:i,data:new Blob([await il(e.file)]),collection:t,headers:[...e.mime===void 0?[]:[["Content-Type",e.mime]]],encoding:e.encoding,...Gs(n)&&$s(n)&&{token:n},...Gs(s)&&$s(s)&&{description:s}}),Ii=async({files:e,uploadFiles:i})=>{let[t,a]=qs(e);await i({groupFiles:t,step:"alternate"}),await i({groupFiles:a,step:"source"})};var Hs=async({uploadFiles:e,collection:i,...t})=>{await nl({upload:async({files:n,progress:s})=>{await sl({collection:i,files:n,uploadFiles:e,progress:s})},...t})},nl=async({files:e,sourceAbsolutePath:i,upload:t,batchSize:a})=>{await Ii({files:e,uploadFiles:async({groupFiles:s,step:o})=>{let r=Math.ceil(s.length/a);for(let c=0;c<s.length;c+=a){let u=s.slice(c,c+a),l=()=>{let y;return{promise:new Promise(M=>y=M),resolve:y}},p=u.map(y=>({...y,...l()})),m=l(),d=l(),f=p.map(({file:y,promise:T})=>({title:`Uploading ${al(i,y.file)}`,task:async()=>await T})),h=`[${Math.floor(c/a)+1}/${r}]`,w=o==="alternate"?"\u2728":"\u{1F4E6}",A=new Te([{title:`${w} Initializing ${h}`,task:async()=>await m.promise},{title:`${w} Uploading ${h}`,task:(y,T)=>T.newListr(f,{concurrent:!0})},{title:`${w} Committing ${h}`,task:async()=>await d.promise}],{concurrent:!1}).run();await t({files:u,progress:{onUploadedFileChunks:y=>{p.find(M=>M.paths.fullPath===y)?.resolve?.()},onInitiatedBatch:()=>m.resolve?.(),onCommittedBatch:()=>d.resolve?.()}}),await A}}})},sl=async({uploadFiles:e,files:i,collection:t,progress:a})=>{let n=await Promise.all(i.map(async({file:s,paths:o})=>await Ri({collection:t,...o,file:s})));await e({files:n,progress:a})};import{relative as ol}from"node:path";var Ks=async({uploadFile:e,collection:i,...t})=>{await rl({upload:async({file:n,paths:s})=>{await cl({collection:i,...s,file:n,uploadFile:e})},...t})},rl=async({files:e,sourceAbsolutePath:i,upload:t,batchSize:a})=>{await Ii({files:e,uploadFiles:async({groupFiles:s,step:o})=>{for(let r=0;r<s.length;r+=a){let c=s.slice(r,r+a);await new Te(c.map(({file:l,paths:p})=>({title:`${o==="alternate"?"\u2728":"\u{1F4E6}"} Uploading ${ol(i,l.file)}`,task:async()=>await t({file:l,paths:p})})),{concurrent:!0}).run()}}})},cl=async({uploadFile:e,...i})=>{let t=await Ri(i);await e(t)};var ii=async({upload:e,files:i,...t})=>{if("uploadFiles"in e){await Hs({uploadFiles:e.uploadFiles,files:i,...t}),Ys({files:i});return}await Ks({uploadFile:e.uploadFile,files:i,...t}),Ys({files:i})},Ys=({files:e})=>{let{count:i,size:t}=e.reduce(({count:a,size:n},{paths:s})=>({count:a+1,size:n+vn(s.filePath)}),{count:0,size:0});console.log(`
26
26
  \u2714 ${i} files uploaded (total: ${Cn(t)})`)};var _i=async({deploy:{upload:e,files:i,sourceAbsolutePath:t,collection:a,batchSize:n},proposal:{proposalType:s,autoCommit:o,...r}})=>{let c=async l=>{if("uploadFiles"in e){await ii({files:i,sourceAbsolutePath:t,collection:a,batchSize:n,upload:{uploadFiles:d=>e.uploadFiles({...d,proposalId:l})}});return}await ii({files:i,sourceAbsolutePath:t,collection:a,batchSize:n,upload:{uploadFile:m=>e.uploadFile({...m,proposalId:l})}})},{proposalId:u}=await yn({...r,autoCommit:o,proposalType:s,executeChanges:c});return o?{result:"deployed",files:i.map(l=>l.file),proposalId:u}:{result:"submitted",files:i.map(l=>l.file),proposalId:u}};var z0=async({config:{predeploy:e}})=>{await Ni(e)},M0=async({config:{postdeploy:e}})=>{await Ni(e)},N0=async({params:e,upload:i})=>{let t=await Vs(e);if(t.result==="skipped")return{result:"skipped"};let{files:a,sourceAbsolutePath:n}=t,o={files:Js({files:a,sourceAbsolutePath:n}),sourceAbsolutePath:n,batchSize:e.uploadBatchSize??Oe};return await ii({...o,collection:Li,upload:i}),console.log(`
27
27
  \u{1F680} Deploy complete!`),{result:"deployed",files:a}},W0=async({deploy:{params:e,upload:i},proposal:{clearAssets:t,...a}})=>{let n=await Vs(e);if(n.result==="skipped")return{result:"skipped"};let{sourceAbsolutePath:s}=n,o=Js(n),r=await _i({deploy:{upload:i,files:o,sourceAbsolutePath:s,collection:Li,batchSize:e.uploadBatchSize??Oe},proposal:{...a,proposalType:{AssetsUpgrade:{clear_existing_assets:ul(t)}}}});return r.result==="deployed"&&console.log(`
28
- \u{1F680} Deploy complete!`),r},Vs=async({assertMemory:e,...i})=>{let t=ll("Preparing deploy...").start();try{let{files:a,sourceAbsolutePath:n}=await En(i);return a.length===0?(t.stop(),console.log(""),console.log("\u26A0\uFE0F No file changes detected. Upload skipped."),{result:"skipped"}):(pl(e)&&(t.text="Asserting memory..."),await e?.(),t.stop(),{result:"to-deploy",files:a,sourceAbsolutePath:n})}catch(a){throw t.stop(),a}},Js=({files:e,sourceAbsolutePath:i})=>{let t=a=>{let n=a.alternateFile??a.file;return{fullPath:gi({file:n,sourceAbsolutePath:i}),filePath:n}};return e.map(a=>({file:a,paths:t(a)}))};import{isNullish as ml}from"@dfinity/utils";import{generateFunctions as dl}from"@junobuild/did-tools";import{writeFile as fl}from"node:fs/promises";import{relative as xl}from"node:path";var V0=async({outfileJs:e,outfileRs:i,...t})=>{let a=await hl(t);if(a.status==="error")return a;let{result:{code:n,...s}}=a,o=await gl({code:n,outfileRs:i}),r=await Dl({code:n,outfileJs:e});return{status:"success",result:{build:{...s,...r},generate:o}}},hl=async({infile:e,banner:i})=>{let{metafile:t,errors:a,warnings:n,version:s,outputFiles:o}=await Gt({infile:e,banner:i}),r=n.map(({text:p})=>p),c=a.map(({text:p})=>p);if(c.length>0)return{status:"error",errors:c,warnings:r};let u=Object.entries(t.outputs);if(u.length===0)return{status:"error",errors:["Unexpected: No metafile resulting from the build was found."]};let l=o?.[0]?.contents;return ml(l)?{status:"error",errors:["Unexpected: No script build for the functions."]}:{status:"success",result:{output:u[0],version:s,code:l}}},gl=async({code:e,outfileRs:i})=>await dl({code:e,outputFile:i}),Dl=async({code:e,outfileJs:i})=>(await fl(i,e),{outputPath:xl(process.cwd(),i)});import{toNullable as Nt}from"@dfinity/utils";var eg=async({publish:{assertMemory:e,filePath:i,fullPath:t,upload:a,...n},proposal:{version:s,...o}})=>{await e?.();let c=await _i({deploy:{...n,upload:a,files:[{file:{file:i},paths:{filePath:i,fullPath:t}}],collection:Jt,batchSize:Oe},proposal:{...o,proposalType:{SegmentsDeployment:{satellite_version:Nt(s),orbiter:Nt(),mission_control_version:Nt()}}}});return c.result==="deployed"&&console.log(`
28
+ \u{1F680} Deploy complete!`),r},Vs=async({assertMemory:e,...i})=>{let t=ll("Preparing deploy...").start();try{let{files:a,sourceAbsolutePath:n}=await En(i);return a.length===0?(t.stop(),console.log(""),console.log("\u26A0\uFE0F No file changes detected. Upload skipped."),{result:"skipped"}):(pl(e)&&(t.text="Asserting memory..."),await e?.(),t.stop(),{result:"to-deploy",files:a,sourceAbsolutePath:n})}catch(a){throw t.stop(),a}},Js=({files:e,sourceAbsolutePath:i})=>{let t=a=>{let n=a.alternateFile??a.file;return{fullPath:gi({file:n,sourceAbsolutePath:i}),filePath:n}};return e.map(a=>({file:a,paths:t(a)}))};import{isNullish as ml}from"@dfinity/utils";import{generateFunctions as dl}from"@junobuild/functions-tools";import{writeFile as fl}from"node:fs/promises";import{relative as xl}from"node:path";var V0=async({outfileJs:e,outfileRs:i,...t})=>{let a=await hl(t);if(a.status==="error")return a;let{result:{code:n,...s}}=a,o=await gl({code:n,outfileRs:i}),r=await Dl({code:n,outfileJs:e});return{status:"success",result:{build:{...s,...r},generate:o}}},hl=async({infile:e,banner:i})=>{let{metafile:t,errors:a,warnings:n,version:s,outputFiles:o}=await Gt({infile:e,banner:i}),r=n.map(({text:p})=>p),c=a.map(({text:p})=>p);if(c.length>0)return{status:"error",errors:c,warnings:r};let u=Object.entries(t.outputs);if(u.length===0)return{status:"error",errors:["Unexpected: No metafile resulting from the build was found."]};let l=o?.[0]?.contents;return ml(l)?{status:"error",errors:["Unexpected: No script build for the functions."]}:{status:"success",result:{output:u[0],version:s,code:l}}},gl=async({code:e,outfileRs:i})=>await dl({code:e,outputFile:i}),Dl=async({code:e,outfileJs:i})=>(await fl(i,e),{outputPath:xl(process.cwd(),i)});import{toNullable as Nt}from"@dfinity/utils";var eg=async({publish:{assertMemory:e,filePath:i,fullPath:t,upload:a,...n},proposal:{version:s,...o}})=>{await e?.();let c=await _i({deploy:{...n,upload:a,files:[{file:{file:i},paths:{filePath:i,fullPath:t}}],collection:Jt,batchSize:Oe},proposal:{...o,proposalType:{SegmentsDeployment:{satellite_version:Nt(s),orbiter:Nt(),mission_control_version:Nt()}}}});return c.result==="deployed"&&console.log(`
29
29
  \u{1F4E1} Satellite WASM published to CDN.`),c};var tg=({args:e,options:i})=>e?.find(t=>i.includes(t))!==void 0,ag=({args:e,option:i})=>{let t=(e??[]).findIndex(a=>a===i);if(t!==-1)return e?.[t+1]};import{nonNullish as Zs}from"@dfinity/utils";import{get as vl}from"http";import{get as bl}from"https";var Fl=async e=>await new Promise((i,t)=>{((typeof e=="string"?URL.parse(e)?.protocol:e.protocol)==="http:"?vl:bl)(e,async s=>{Zs(s.statusCode)&&Zs(s.headers.location)&&[301,302].includes(s.statusCode)&&await Fl(s.headers.location).then(i,t);let o=[];s.on("data",r=>o.push(r)),s.on("end",()=>{i(Buffer.concat(o))}),s.on("error",t)})});import{readFile as wl}from"node:fs/promises";var ug=async({packageJsonPath:e})=>{let i=await wl(e,"utf-8"),{dependencies:t,version:a,juno:n,name:s}=JSON.parse(i);return{name:s,version:a,dependencies:t,juno:n}};import{isNullish as El,nonNullish as yl}from"@dfinity/utils";var dg=(e,i)=>{(El(e)||e==="")&&(yl(i)&&console.error(i),process.exit(1))};export{Jt as COLLECTION_CDN_RELEASES,Li as COLLECTION_DAPP,Yt as DEPLOY_DEFAULT_ENCODING,Kt as DEPLOY_DEFAULT_IGNORE,ne as DEPLOY_DEFAULT_PRECOMPRESS,Ht as DEPLOY_DEFAULT_SOURCE,Vt as IGNORE_OS_FILES,Oe as UPLOAD_DEFAULT_BATCH_SIZE,dg as assertAnswerCtrlC,Qd as brotliFile,V0 as buildAndGenerateFunctions,Gt as buildFunctions,Sl as buildScript,hn as compressFiles,N0 as deploy,W0 as deployWithProposal,Fl as downloadFromURL,ia as execute,of as fileExists,vn as fileSizeInBytes,ct as files,Cn as formatBytes,Zd as gunzipFile,Xd as gzipFile,tg as hasArgs,ef as isGzip,ag as nextArg,M0 as postDeploy,z0 as preDeploy,eg as publishSatelliteWasmWithProposal,ug as readPackageJson,Ml as spawn};
30
30
  /*! Bundled license information:
31
31