create-mugnavo 0.4.1 → 0.5.0

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.
Files changed (2) hide show
  1. package/dist/index.mjs +9 -9
  2. package/package.json +11 -9
package/dist/index.mjs CHANGED
@@ -3,17 +3,17 @@ import{t as e}from"./rolldown-runtime-Dh0vTgs_.mjs";import{createRequire as t}fr
3
3
  `),u=!1;for(let e=0;e<l.length;e++){let t=l[e];if(r+=t,u)u=!1;else if(u=t>=`\ud800`&&t<=`\udbff`,u)continue;if(t===`\x1B`||t===`›`){Oe.lastIndex=e+1;let t=Oe.exec(l)?.groups;if(t?.code!==void 0){let e=Number.parseFloat(t.code);i=e===39?void 0:e}else t?.uri!==void 0&&(a=t.uri.length===0?void 0:t.uri)}if(l[e+1]===`
4
4
  `){a&&(r+=je(``));let e=i?ke(i):void 0;i&&e&&(r+=Ae(e))}else t===`
5
5
  `&&(i&&ke(i)&&(r+=Ae(i)),a&&(r+=je(a)))}return r},Fe=/\r?\n/;function O(e,t,n){return String(e).normalize().split(Fe).map(e=>Pe(e,t,n)).join(`
6
- `)}var k=fe(((e,t)=>{let n={to(e,t){return t?`[${t+1};${e+1}H`:`[${e+1}G`},move(e,t){let n=``;return e<0?n+=`[${-e}D`:e>0&&(n+=`[${e}C`),t<0?n+=`[${-t}A`:t>0&&(n+=`[${t}B`),n},up:(e=1)=>`[${e}A`,down:(e=1)=>`[${e}B`,forward:(e=1)=>`[${e}C`,backward:(e=1)=>`[${e}D`,nextLine:(e=1)=>`\x1B[E`.repeat(e),prevLine:(e=1)=>`\x1B[F`.repeat(e),left:`\x1B[G`,hide:`\x1B[?25l`,show:`\x1B[?25h`,save:`\x1B7`,restore:`\x1B8`};t.exports={cursor:n,scroll:{up:(e=1)=>`\x1B[S`.repeat(e),down:(e=1)=>`\x1B[T`.repeat(e)},erase:{screen:`\x1B[2J`,up:(e=1)=>`\x1B[1J`.repeat(e),down:(e=1)=>`\x1B[J`.repeat(e),line:`\x1B[2K`,lineEnd:`\x1B[K`,lineStart:`\x1B[1K`,lines(e){let t=``;for(let r=0;r<e;r++)t+=this.line+(r<e-1?n.up():``);return e&&(t+=n.left),t}},beep:`\x07`}}))();function Ie(e,t,n){if(!n.some(e=>!e.disabled))return e;let r=e+t,i=Math.max(n.length-1,0),a=r<0?i:r>i?0:r;return n[a].disabled?Ie(a,t<0?-1:1,n):a}const A={actions:new Set([`up`,`down`,`left`,`right`,`space`,`enter`,`cancel`]),aliases:new Map([[`k`,`up`],[`j`,`down`],[`h`,`left`],[`l`,`right`],[``,`cancel`],[`escape`,`cancel`]]),messages:{cancel:`Canceled`,error:`Something went wrong`},withGuide:!0,date:{monthNames:[...[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]],messages:{required:`Please enter a valid date`,invalidMonth:`There are only 12 months in a year`,invalidDay:(e,t)=>`There are only ${e} days in ${t}`,afterMin:e=>`Date must be on or after ${e.toISOString().slice(0,10)}`,beforeMax:e=>`Date must be on or before ${e.toISOString().slice(0,10)}`}}};function Le(e,t){if(typeof e==`string`)return A.aliases.get(e)===t;for(let n of e)if(n!==void 0&&Le(n,t))return!0;return!1}function Re(e,t){if(e===t)return;let n=e.split(`
6
+ `)}var k=fe(((e,t)=>{let n={to(e,t){return t?`[${t+1};${e+1}H`:`[${e+1}G`},move(e,t){let n=``;return e<0?n+=`[${-e}D`:e>0&&(n+=`[${e}C`),t<0?n+=`[${-t}A`:t>0&&(n+=`[${t}B`),n},up:(e=1)=>`[${e}A`,down:(e=1)=>`[${e}B`,forward:(e=1)=>`[${e}C`,backward:(e=1)=>`[${e}D`,nextLine:(e=1)=>`\x1B[E`.repeat(e),prevLine:(e=1)=>`\x1B[F`.repeat(e),left:`\x1B[G`,hide:`\x1B[?25l`,show:`\x1B[?25h`,save:`\x1B7`,restore:`\x1B8`};t.exports={cursor:n,scroll:{up:(e=1)=>`\x1B[S`.repeat(e),down:(e=1)=>`\x1B[T`.repeat(e)},erase:{screen:`\x1B[2J`,up:(e=1)=>`\x1B[1J`.repeat(e),down:(e=1)=>`\x1B[J`.repeat(e),line:`\x1B[2K`,lineEnd:`\x1B[K`,lineStart:`\x1B[1K`,lines(e){let t=``;for(let r=0;r<e;r++)t+=this.line+(r<e-1?n.up():``);return e&&(t+=n.left),t}},beep:`\x07`}}))();function Ie(e,t,n){if(!n.some(e=>!e.disabled))return e;let r=e+t,i=Math.max(n.length-1,0),a=r<0?i:r>i?0:r;return n[a].disabled?Ie(a,t<0?-1:1,n):a}const A={actions:new Set([`up`,`down`,`left`,`right`,`space`,`enter`,`cancel`]),aliases:new Map([[`k`,`up`],[`j`,`down`],[`h`,`left`],[`l`,`right`],[``,`cancel`],[`escape`,`cancel`]]),messages:{cancel:`Canceled`,error:`Something went wrong`},withGuide:!0,date:{monthNames:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],messages:{required:`Please enter a valid date`,invalidMonth:`There are only 12 months in a year`,invalidDay:(e,t)=>`There are only ${e} days in ${t}`,afterMin:e=>`Date must be on or after ${e.toISOString().slice(0,10)}`,beforeMax:e=>`Date must be on or before ${e.toISOString().slice(0,10)}`}}};function Le(e,t){if(typeof e==`string`)return A.aliases.get(e)===t;for(let n of e)if(n!==void 0&&Le(n,t))return!0;return!1}function Re(e,t){if(e===t)return;let n=e.split(`
7
7
  `),r=t.split(`
8
- `),i=Math.max(n.length,r.length),a=[];for(let e=0;e<i;e++)n[e]!==r[e]&&a.push(e);return{lines:a,numLinesBefore:n.length,numLinesAfter:r.length,numLines:i}}const ze=globalThis.process.platform.startsWith(`win`),Be=Symbol(`clack:cancel`);function Ve(e){return e===Be}function He(e,t){let n=e;n.isTTY&&n.setRawMode(t)}function Ue({input:e=c,output:t=l,overwrite:n=!0,hideCursor:r=!0}={}){let i=u.createInterface({input:e,output:t,prompt:``,tabSize:1});u.emitKeypressEvents(e,i),e instanceof f&&e.isTTY&&e.setRawMode(!0);let a=(i,{name:o,sequence:s})=>{if(Le([String(i),o,s],`cancel`)){r&&t.write(k.cursor.show),process.exit(0);return}if(!n)return;let c=o===`return`?0:-1,l=o===`return`?-1:0;u.moveCursor(t,c,l,()=>{u.clearLine(t,1,()=>{e.once(`keypress`,a)})})};return r&&t.write(k.cursor.hide),e.once(`keypress`,a),()=>{e.off(`keypress`,a),r&&t.write(k.cursor.show),e instanceof f&&e.isTTY&&!ze&&e.setRawMode(!1),i.terminal=!1,i.close()}}const j=e=>`columns`in e&&typeof e.columns==`number`?e.columns:80,We=e=>`rows`in e&&typeof e.rows==`number`?e.rows:20;function Ge(e,t,n,r=n,i){return O(t,j(e??l)-n.length,{hard:!0,trim:!1}).split(`
9
- `).map((e,t)=>{let a=i?i(e,t):e;return`${t===0?r:n}${a}`}).join(`
8
+ `),i=Math.max(n.length,r.length),a=[];for(let e=0;e<i;e++)n[e]!==r[e]&&a.push(e);return{lines:a,numLinesBefore:n.length,numLinesAfter:r.length,numLines:i}}const ze=globalThis.process.platform.startsWith(`win`),Be=Symbol(`clack:cancel`);function Ve(e){return e===Be}function He(e,t){let n=e;n.isTTY&&n.setRawMode(t)}function Ue({input:e=c,output:t=l,overwrite:n=!0,hideCursor:r=!0}={}){let i=u.createInterface({input:e,output:t,prompt:``,tabSize:1});u.emitKeypressEvents(e,i),e instanceof f&&e.isTTY&&e.setRawMode(!0);let a=(i,{name:o,sequence:s})=>{if(Le([String(i),o,s],`cancel`)){r&&t.write(k.cursor.show),process.exit(0);return}if(!n)return;let c=o===`return`?0:-1,l=o===`return`?-1:0;u.moveCursor(t,c,l,()=>{u.clearLine(t,1,()=>{e.once(`keypress`,a)})})};return r&&t.write(k.cursor.hide),e.once(`keypress`,a),()=>{e.off(`keypress`,a),r&&t.write(k.cursor.show),e instanceof f&&e.isTTY&&!ze&&e.setRawMode(!1),i.terminal=!1,i.close()}}const j=e=>`columns`in e&&typeof e.columns==`number`?e.columns:80,We=e=>`rows`in e&&typeof e.rows==`number`?e.rows:20;function Ge(e,t,n,r=n,i=n,a){return O(t,j(e??l)-n.length,{hard:!0,trim:!1}).split(`
9
+ `).map((e,t,o)=>{let s=a?a(e,t):e;return t===0?`${r}${s}`:t===o.length-1?`${i}${s}`:`${n}${s}`}).join(`
10
10
  `)}let Ke=class{input;output;_abortSignal;rl;opts;_render;_track=!1;_prevFrame=``;_subscribers=new Map;_cursor=0;state=`initial`;error=``;value;userInput=``;constructor(e,t=!0){let{input:n=c,output:r=l,render:i,signal:a,...o}=e;this.opts=o,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=i.bind(this),this._track=t,this._abortSignal=a,this.input=n,this.output=r}unsubscribe(){this._subscribers.clear()}setSubscriber(e,t){let n=this._subscribers.get(e)??[];n.push(t),this._subscribers.set(e,n)}on(e,t){this.setSubscriber(e,{cb:t})}once(e,t){this.setSubscriber(e,{cb:t,once:!0})}emit(e,...t){let n=this._subscribers.get(e)??[],r=[];for(let e of n)e.cb(...t),e.once&&r.push(()=>n.splice(n.indexOf(e),1));for(let e of r)e()}prompt(){return new Promise(e=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state=`cancel`,this.close(),e(Be);this._abortSignal.addEventListener(`abort`,()=>{this.state=`cancel`,this.close()},{once:!0})}this.rl=d.createInterface({input:this.input,tabSize:2,prompt:``,escapeCodeTimeout:50,terminal:!0}),this.rl.prompt(),this.opts.initialUserInput!==void 0&&this._setUserInput(this.opts.initialUserInput,!0),this.input.on(`keypress`,this.onKeypress),He(this.input,!0),this.output.on(`resize`,this.render),this.render(),this.once(`submit`,()=>{this.output.write(k.cursor.show),this.output.off(`resize`,this.render),He(this.input,!1),e(this.value)}),this.once(`cancel`,()=>{this.output.write(k.cursor.show),this.output.off(`resize`,this.render),He(this.input,!1),e(Be)})})}_isActionKey(e,t){return e===` `}_shouldSubmit(e,t){return!0}_setValue(e){this.value=e,this.emit(`value`,this.value)}_setUserInput(e,t){this.userInput=e??``,this.emit(`userInput`,this.userInput),t&&this._track&&this.rl&&(this.rl.write(this.userInput),this._cursor=this.rl.cursor)}_clearUserInput(){this.rl?.write(null,{ctrl:!0,name:`u`}),this._setUserInput(``)}onKeypress(e,t){if(this._track&&t.name!==`return`&&(t.name&&this._isActionKey(e,t)&&this.rl?.write(null,{ctrl:!0,name:`h`}),this._cursor=this.rl?.cursor??0,this._setUserInput(this.rl?.line)),this.state===`error`&&(this.state=`active`),t?.name&&(!this._track&&A.aliases.has(t.name)&&this.emit(`cursor`,A.aliases.get(t.name)),A.actions.has(t.name)&&this.emit(`cursor`,t.name)),e&&(e.toLowerCase()===`y`||e.toLowerCase()===`n`)&&this.emit(`confirm`,e.toLowerCase()===`y`),this.emit(`key`,e?.toLowerCase(),t),t?.name===`return`&&this._shouldSubmit(e,t)){if(this.opts.validate){let e=this.opts.validate(this.value);e&&(this.error=e instanceof Error?e.message:e,this.state=`error`,this.rl?.write(this.userInput))}this.state!==`error`&&(this.state=`submit`)}Le([e,t?.name,t?.sequence],`cancel`)&&(this.state=`cancel`),(this.state===`submit`||this.state===`cancel`)&&this.emit(`finalize`),this.render(),(this.state===`submit`||this.state===`cancel`)&&this.close()}close(){this.input.unpipe(),this.input.removeListener(`keypress`,this.onKeypress),this.output.write(`
11
11
  `),He(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let e=O(this._prevFrame,process.stdout.columns,{hard:!0,trim:!1}).split(`
12
12
  `).length-1;this.output.write(k.cursor.move(-999,e*-1))}render(){let e=O(this._render(this)??``,process.stdout.columns,{hard:!0,trim:!1});if(e!==this._prevFrame){if(this.state===`initial`)this.output.write(k.cursor.hide);else{let t=Re(this._prevFrame,e),n=We(this.output);if(this.restoreCursor(),t){let r=Math.max(0,t.numLinesAfter-n),i=Math.max(0,t.numLinesBefore-n),a=t.lines.find(e=>e>=r);if(a===void 0){this._prevFrame=e;return}if(t.lines.length===1){this.output.write(k.cursor.move(0,a-i)),this.output.write(k.erase.lines(1));let t=e.split(`
13
13
  `);this.output.write(t[a]),this._prevFrame=e,this.output.write(k.cursor.move(0,t.length-a-1));return}else if(t.lines.length>1){if(r<i)a=r;else{let e=a-i;e>0&&this.output.write(k.cursor.move(0,e))}this.output.write(k.erase.down());let t=e.split(`
14
14
  `).slice(a);this.output.write(t.join(`
15
- `)),this._prevFrame=e;return}}this.output.write(k.erase.down())}this.output.write(e),this.state===`initial`&&(this.state=`active`),this._prevFrame=e}}};var qe=class extends Ke{get cursor(){return+!this.value}get _value(){return this.cursor===0}constructor(e){super(e,!1),this.value=!!e.initialValue,this.on(`userInput`,()=>{this.value=this._value}),this.on(`confirm`,e=>{this.output.write(k.cursor.move(0,-1)),this.value=e,this.state=`submit`,this.close()}),this.on(`cursor`,()=>{this.value=!this.value})}},Je=class extends Ke{options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(e){super(e,!1),this.options=e.options;let t=this.options.findIndex(({value:t})=>t===e.initialValue),n=t===-1?0:t;this.cursor=this.options[n].disabled?Ie(n,1,this.options):n,this.changeValue(),this.on(`cursor`,e=>{switch(e){case`left`:case`up`:this.cursor=Ie(this.cursor,-1,this.options);break;case`down`:case`right`:this.cursor=Ie(this.cursor,1,this.options);break}this.changeValue()})}},Ye=class extends Ke{get userInputWithCursor(){if(this.state===`submit`)return this.userInput;let e=this.userInput;if(this.cursor>=e.length)return`${this.userInput}\u2588`;let t=e.slice(0,this.cursor),[n,...r]=e.slice(this.cursor);return`${t}${a(`inverse`,n)}${r.join(``)}`}get cursor(){return this._cursor}constructor(e){super({...e,initialUserInput:e.initialUserInput??e.initialValue}),this.on(`userInput`,e=>{this._setValue(e)}),this.on(`finalize`,()=>{this.value||=e.defaultValue,this.value===void 0&&(this.value=``)})}};function Xe(){return o.platform===`win32`?!!o.env.CI||!!o.env.WT_SESSION||!!o.env.TERMINUS_SUBLIME||o.env.ConEmuTask===`{cmd::Cmder}`||o.env.TERM_PROGRAM===`Terminus-Sublime`||o.env.TERM_PROGRAM===`vscode`||o.env.TERM===`xterm-256color`||o.env.TERM===`alacritty`||o.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`:o.env.TERM!==`linux`}const Ze=Xe(),Qe=()=>process.env.CI===`true`,$e=e=>e.isTTY===!0,M=(e,t)=>Ze?e:t,et=M(`◆`,`*`),tt=M(`■`,`x`),nt=M(`▲`,`x`),N=M(`◇`,`o`),P=M(`│`,`|`),F=M(`└`,`—`),rt=M(`●`,`>`),it=M(`○`,` `),at=M(`─`,`-`),ot=M(`╮`,`+`),st=M(`├`,`+`),ct=M(`╯`,`+`),lt=M(`╰`,`+`),ut=M(`●`,`•`),dt=M(`◆`,`*`),ft=M(`▲`,`!`),pt=M(`■`,`x`),mt=e=>{switch(e){case`initial`:case`active`:return a(`cyan`,et);case`cancel`:return a(`red`,tt);case`error`:return a(`yellow`,nt);case`submit`:return a(`green`,N)}},ht=e=>{switch(e){case`initial`:case`active`:return a(`cyan`,P);case`cancel`:return a(`red`,P);case`error`:return a(`yellow`,P);case`submit`:return a(`green`,P)}},gt=(e,t,n,r,i)=>{let a=t,o=0;for(let t=n;t<r;t++){let n=e[t];if(a-=n.length,o++,a<=i)break}return{lineCount:a,removals:o}},_t=({cursor:e,options:t,style:n,output:r=process.stdout,maxItems:i=1/0,columnPadding:o=0,rowPadding:s=4})=>{let c=j(r)-o,l=We(r),u=a(`dim`,`...`),d=Math.max(l-s,0),f=Math.max(Math.min(i,d),5),p=0;e>=f-3&&(p=Math.max(Math.min(e-f+3,t.length-f),0));let m=f<t.length&&p>0,h=f<t.length&&p+f<t.length,g=Math.min(p+f,t.length),_=[],v=0;m&&v++,h&&v++;let y=p+ +!!m,b=g-+!!h;for(let r=y;r<b;r++){let i=O(n(t[r],r===e),c,{hard:!0,trim:!1}).split(`
16
- `);_.push(i),v+=i.length}if(v>d){let t=0,n=0,r=v,i=e-y,a=(e,t)=>gt(_,r,e,t,d);m?({lineCount:r,removals:t}=a(0,i),r>d&&({lineCount:r,removals:n}=a(i+1,_.length))):({lineCount:r,removals:n}=a(i+1,_.length),r>d&&({lineCount:r,removals:t}=a(0,i))),t>0&&(m=!0,_.splice(0,t)),n>0&&(h=!0,_.splice(_.length-n,n))}let x=[];m&&x.push(u);for(let e of _)for(let t of e)x.push(t);return h&&x.push(u),x},vt=e=>{let t=e.active??`Yes`,n=e.inactive??`No`;return new qe({active:t,inactive:n,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue??!0,render(){let r=e.withGuide??A.withGuide,i=`${mt(this.state)} `,o=r?`${a(`gray`,P)} `:``,s=Ge(e.output,e.message,o,i),c=`${r?`${a(`gray`,P)}
15
+ `)),this._prevFrame=e;return}}this.output.write(k.erase.down())}this.output.write(e),this.state===`initial`&&(this.state=`active`),this._prevFrame=e}}};var qe=class extends Ke{get cursor(){return+!this.value}get _value(){return this.cursor===0}constructor(e){super(e,!1),this.value=!!e.initialValue,this.on(`userInput`,()=>{this.value=this._value}),this.on(`confirm`,e=>{this.output.write(k.cursor.move(0,-1)),this.value=e,this.state=`submit`,this.close()}),this.on(`cursor`,()=>{this.value=!this.value})}},Je=class extends Ke{options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(e){super(e,!1),this.options=e.options;let t=this.options.findIndex(({value:t})=>t===e.initialValue),n=t===-1?0:t;this.cursor=this.options[n].disabled?Ie(n,1,this.options):n,this.changeValue(),this.on(`cursor`,e=>{switch(e){case`left`:case`up`:this.cursor=Ie(this.cursor,-1,this.options);break;case`down`:case`right`:this.cursor=Ie(this.cursor,1,this.options);break}this.changeValue()})}},Ye=class extends Ke{get userInputWithCursor(){if(this.state===`submit`)return this.userInput;let e=this.userInput;if(this.cursor>=e.length)return`${this.userInput}\u2588`;let t=e.slice(0,this.cursor),[n,...r]=e.slice(this.cursor);return`${t}${a(`inverse`,n)}${r.join(``)}`}get cursor(){return this._cursor}constructor(e){super({...e,initialUserInput:e.initialUserInput??e.initialValue}),this.on(`userInput`,e=>{this._setValue(e)}),this.on(`finalize`,()=>{this.value||=e.defaultValue,this.value===void 0&&(this.value=``)})}};function Xe(){return o.platform===`win32`?!!o.env.CI||!!o.env.WT_SESSION||!!o.env.TERMINUS_SUBLIME||o.env.ConEmuTask===`{cmd::Cmder}`||o.env.TERM_PROGRAM===`Terminus-Sublime`||o.env.TERM_PROGRAM===`vscode`||o.env.TERM===`xterm-256color`||o.env.TERM===`alacritty`||o.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`:o.env.TERM!==`linux`}const Ze=Xe(),Qe=()=>process.env.CI===`true`,$e=e=>e.isTTY===!0,M=(e,t)=>Ze?e:t,et=M(`◆`,`*`),tt=M(`■`,`x`),nt=M(`▲`,`x`),N=M(`◇`,`o`),P=M(`│`,`|`),F=M(`└`,`—`),rt=M(`●`,`>`),it=M(`○`,` `),at=M(`─`,`-`),ot=M(`╮`,`+`),st=M(`├`,`+`),ct=M(`╯`,`+`),lt=M(`╰`,`+`),ut=M(`●`,`•`),dt=M(`◆`,`*`),ft=M(`▲`,`!`),pt=M(`■`,`x`),mt=e=>{switch(e){case`initial`:case`active`:return a(`cyan`,et);case`cancel`:return a(`red`,tt);case`error`:return a(`yellow`,nt);case`submit`:return a(`green`,N)}},ht=e=>{switch(e){case`initial`:case`active`:return a(`cyan`,P);case`cancel`:return a(`red`,P);case`error`:return a(`yellow`,P);case`submit`:return a(`green`,P)}},gt=(e,t,n,r,i,a=!1)=>{let o=t,s=0;if(a)for(let t=r-1;t>=n&&(o-=e[t].length,s++,!(o<=i));t--);else for(let t=n;t<r&&(o-=e[t].length,s++,!(o<=i));t++);return{lineCount:o,removals:s}},_t=({cursor:e,options:t,style:n,output:r=process.stdout,maxItems:i=1/0,columnPadding:o=0,rowPadding:s=4})=>{let c=j(r)-o,l=We(r),u=a(`dim`,`...`),d=Math.max(l-s,0),f=Math.max(Math.min(i,d),5),p=0;e>=f-3&&(p=Math.max(Math.min(e-f+3,t.length-f),0));let m=f<t.length&&p>0,h=f<t.length&&p+f<t.length,g=Math.min(p+f,t.length),_=[],v=0;m&&v++,h&&v++;let y=p+ +!!m,b=g-+!!h;for(let r=y;r<b;r++){let i=O(n(t[r],r===e),c,{hard:!0,trim:!1}).split(`
16
+ `);_.push(i),v+=i.length}if(v>d){let t=0,n=0,r=v,i=e-y,a=d,o=()=>gt(_,r,0,i,a),s=()=>gt(_,r,i+1,_.length,a,!0);m?({lineCount:r,removals:t}=o(),r>a&&(h||--a,{lineCount:r,removals:n}=s())):(h||--a,{lineCount:r,removals:n}=s(),r>a&&(--a,{lineCount:r,removals:t}=o())),t>0&&(m=!0,_.splice(0,t)),n>0&&(h=!0,_.splice(_.length-n,n))}let x=[];m&&x.push(u);for(let e of _)for(let t of e)x.push(t);return h&&x.push(u),x},vt=e=>{let t=e.active??`Yes`,n=e.inactive??`No`;return new qe({active:t,inactive:n,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue??!0,render(){let r=e.withGuide??A.withGuide,i=`${mt(this.state)} `,o=r?`${a(`gray`,P)} `:``,s=Ge(e.output,e.message,o,i),c=`${r?`${a(`gray`,P)}
17
17
  `:``}${s}
18
18
  `,l=this.value?t:n;switch(this.state){case`submit`:return`${c}${r?`${a(`gray`,P)} `:``}${a(`dim`,l)}`;case`cancel`:return`${c}${r?`${a(`gray`,P)} `:``}${a([`strikethrough`,`dim`],l)}${r?`
19
19
  ${a(`gray`,P)}`:``}`;default:{let i=r?`${a(`cyan`,P)} `:``,o=r?a(`cyan`,F):``;return`${c}${i}${this.value?`${a(`green`,rt)} ${t}`:`${a(`dim`,it)} ${a(`dim`,t)}`}${e.vertical?r?`
@@ -82,11 +82,11 @@ ${t?a(`cyan`,F):``}
82
82
  `)}catch(e){console.error(e)}}const an=/^no[-A-Z]/;async function on(e,t){let n=await B(e.meta||{}),r=Yt(await B(e.args||{})),i=await B(t?.meta||{}),a=`${i.name?`${i.name} `:``}`+(n.name||process.argv[1]),o=[],s=[],c=[],l=[];for(let e of r)if(e.type===`positional`){let t=e.name.toUpperCase(),n=e.required!==!1&&e.default===void 0;s.push([H(t+sn(e)),cn(e,n)]),l.push(n?`<${t}>`:`[${t}]`)}else{let t=e.required===!0&&e.default===void 0,n=[...(e.alias||[]).map(e=>`-${e}`),`--${e.name}`].join(`, `)+sn(e);if(o.push([H(n),cn(e,t)]),e.type===`boolean`&&(e.default===!0||e.negativeDescription)&&!an.test(e.name)){let n=[...(e.alias||[]).map(e=>`--no-${e}`),`--no-${e.name}`].join(`, `);o.push([H(n),[e.negativeDescription,t?Kt(`(Required)`):``].filter(Boolean).join(` `)])}t&&l.push(`--${e.name}`+sn(e))}if(e.subCommands){let t=[],n=await B(e.subCommands);for(let[e,r]of Object.entries(n)){let n=await B((await B(r))?.meta);if(n?.hidden)continue;let i=z(n?.alias),a=[e,...i].join(`, `);c.push([H(a),n?.description||``]),t.push(e,...i)}l.push(t.join(`|`))}let u=[],d=n.version||i.version;u.push(Kt(`${n.description} (${a+(d?` v${d}`:``)})`),``);let f=o.length>0||s.length>0;return u.push(`${qt(Gt(`USAGE`))} ${H(`${a}${f?` [OPTIONS]`:``} ${l.join(` `)}`)}`,``),s.length>0&&(u.push(qt(Gt(`ARGUMENTS`)),``),u.push(Vt(s,` `)),u.push(``)),o.length>0&&(u.push(qt(Gt(`OPTIONS`)),``),u.push(Vt(o,` `)),u.push(``)),c.length>0&&(u.push(qt(Gt(`COMMANDS`)),``),u.push(Vt(c,` `)),u.push(``,`Use ${H(`${a} <command> --help`)} for more information about a command.`)),u.filter(e=>typeof e==`string`).join(`
83
83
  `)}function sn(e){let t=e.valueHint?`=<${e.valueHint}>`:``,n=t||`=<${Bt(e.name)}>`;return!e.type||e.type===`positional`||e.type===`boolean`?t:e.type===`enum`&&e.options?.length?`=<${e.options.join(`|`)}>`:n}function cn(e,t){let n=t?Kt(`(Required)`):``,r=e.default===void 0?``:Kt(`(Default: ${e.default})`);return[e.description,n,r].filter(Boolean).join(` `)}async function ln(e,t={}){let n=t.rawArgs||process.argv.slice(2),r=t.showUsage||rn;try{let t=await un(e);if(t.help.length>0&&n.some(e=>t.help.includes(e)))await r(...await $t(e,n)),process.exit(0);else if(n.length===1&&t.version.includes(n[0])){let t=typeof e.meta==`function`?await e.meta():await e.meta;if(!t?.version)throw new V(`No version specified`,`E_NO_VERSION`);console.log(t.version)}else await Qt(e,{rawArgs:n})}catch(t){t instanceof V?(await r(...await $t(e,n)),console.error(t.message)):console.error(t,`
84
84
  `),process.exit(1)}}async function un(e){let t=await B(e.args||{}),n=new Set,r=new Set;for(let[e,i]of Object.entries(t)){n.add(e);for(let e of z(i.alias))r.add(e)}return{help:dn(`help`,`h`,n,r),version:dn(`version`,`v`,n,r)}}function dn(e,t,n,r){return n.has(e)||r.has(e)?[]:n.has(t)||r.has(t)?[`--${e}`]:[`--${e}`,`-${t}`]}var fn=pe({a:()=>W,n:()=>Sn,r:()=>xn,t:()=>Zn});const pn=/^[A-Za-z]:\//;function U(e=``){return e&&e.replace(/\\/g,`/`).replace(pn,e=>e.toUpperCase())}const mn=/^[/\\]{2}/,hn=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,gn=/^[A-Za-z]:$/,_n=function(e){if(e.length===0)return`.`;e=U(e);let t=e.match(mn),n=G(e),r=e[e.length-1]===`/`;return e=bn(e,!n),e.length===0?n?`/`:r?`./`:`.`:(r&&(e+=`/`),gn.test(e)&&(e+=`/`),t?n?`//${e}`:`//./${e}`:n&&!G(e)?`/${e}`:e)},vn=function(...e){let t=``;for(let n of e)if(n)if(t.length>0){let e=t[t.length-1]===`/`,r=n[0]===`/`;e&&r?t+=n.slice(1):t+=e||r?n:`/${n}`}else t+=n;return _n(t)};function yn(){return typeof process<`u`&&typeof process.cwd==`function`?process.cwd().replace(/\\/g,`/`):`/`}const W=function(...e){e=e.map(e=>U(e));let t=``,n=!1;for(let r=e.length-1;r>=-1&&!n;r--){let i=r>=0?e[r]:yn();!i||i.length===0||(t=`${i}/${t}`,n=G(i))}return t=bn(t,!n),n&&!G(t)?`/${t}`:t.length>0?t:`.`};function bn(e,t){let n=``,r=0,i=-1,a=0,o=null;for(let s=0;s<=e.length;++s){if(s<e.length)o=e[s];else if(o===`/`)break;else o=`/`;if(o===`/`){if(!(i===s-1||a===1))if(a===2){if(n.length<2||r!==2||n[n.length-1]!==`.`||n[n.length-2]!==`.`){if(n.length>2){let e=n.lastIndexOf(`/`);e===-1?(n=``,r=0):(n=n.slice(0,e),r=n.length-1-n.lastIndexOf(`/`)),i=s,a=0;continue}else if(n.length>0){n=``,r=0,i=s,a=0;continue}}t&&(n+=n.length>0?`/..`:`..`,r=2)}else n.length>0?n+=`/${e.slice(i+1,s)}`:n=e.slice(i+1,s),r=s-i-1;i=s,a=0}else o===`.`&&a!==-1?++a:a=-1}return n}const G=function(e){return hn.test(e)},xn=function(e){let t=U(e).replace(/\/$/,``).split(`/`).slice(0,-1);return t.length===1&&gn.test(t[0])&&(t[0]+=`/`),t.join(`/`)||(G(e)?`/`:`.`)},Sn=function(e,t){let n=U(e).split(`/`),r=``;for(let e=n.length-1;e>=0;e--){let t=n[e];if(t){r=t;break}}return t&&r.endsWith(t)?r.slice(0,-t.length):r};globalThis.process?.platform;var K=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),q=t(import.meta.url);const Cn=/^path$/i,wn={key:`PATH`,value:``};function Tn(e){for(let t in e){if(!Object.prototype.hasOwnProperty.call(e,t)||!Cn.test(t))continue;let n=e[t];return n?{key:t,value:n}:wn}return wn}function En(e,t){let n=t.value.split(y),r=[],i=e,a;do r.push(ee(i,`node_modules`,`.bin`)),a=i,i=b(i);while(i!==a);let o=r.concat(n).join(y);return{key:t.key,value:o}}function Dn(e,t){let n={...process.env,...t},r=En(e,Tn(n));return n[r.key]=r.value,n}const On=e=>{let t=e.length,n=new ie,r=()=>{--t===0&&n.emit(`end`)};for(let t of e)t.pipe(n,{end:!1}),t.on(`end`,r);return n};var kn=K(((e,t)=>{t.exports=a,a.sync=o;var n=q(`fs`);function r(e,t){var n=t.pathExt===void 0?process.env.PATHEXT:t.pathExt;if(!n||(n=n.split(`;`),n.indexOf(``)!==-1))return!0;for(var r=0;r<n.length;r++){var i=n[r].toLowerCase();if(i&&e.substr(-i.length).toLowerCase()===i)return!0}return!1}function i(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:r(t,n)}function a(e,t,r){n.stat(e,function(n,a){r(n,n?!1:i(a,e,t))})}function o(e,t){return i(n.statSync(e),e,t)}})),An=K(((e,t)=>{t.exports=r,r.sync=i;var n=q(`fs`);function r(e,t,r){n.stat(e,function(e,n){r(e,e?!1:a(n,t))})}function i(e,t){return a(n.statSync(e),t)}function a(e,t){return e.isFile()&&o(e,t)}function o(e,t){var n=e.mode,r=e.uid,i=e.gid,a=t.uid===void 0?process.getuid&&process.getuid():t.uid,o=t.gid===void 0?process.getgid&&process.getgid():t.gid,s=64,c=8,l=1,u=s|c;return n&l||n&c&&i===o||n&s&&r===a||n&u&&a===0}})),jn=K(((e,t)=>{q(`fs`);var n=process.platform===`win32`||global.TESTING_WINDOWS?kn():An();t.exports=r,r.sync=i;function r(e,t,i){if(typeof t==`function`&&(i=t,t={}),!i){if(typeof Promise!=`function`)throw TypeError(`callback not provided`);return new Promise(function(n,i){r(e,t||{},function(e,t){e?i(e):n(t)})})}n(e,t||{},function(e,n){e&&(e.code===`EACCES`||t&&t.ignoreErrors)&&(e=null,n=!1),i(e,n)})}function i(e,t){try{return n.sync(e,t||{})}catch(e){if(t&&t.ignoreErrors||e.code===`EACCES`)return!1;throw e}}})),Mn=K(((e,t)=>{let n=process.platform===`win32`||process.env.OSTYPE===`cygwin`||process.env.OSTYPE===`msys`,r=q(`path`),i=n?`;`:`:`,a=jn(),o=e=>Object.assign(Error(`not found: ${e}`),{code:`ENOENT`}),s=(e,t)=>{let r=t.colon||i,a=e.match(/\//)||n&&e.match(/\\/)?[``]:[...n?[process.cwd()]:[],...(t.path||process.env.PATH||``).split(r)],o=n?t.pathExt||process.env.PATHEXT||`.EXE;.CMD;.BAT;.COM`:``,s=n?o.split(r):[``];return n&&e.indexOf(`.`)!==-1&&s[0]!==``&&s.unshift(``),{pathEnv:a,pathExt:s,pathExtExe:o}},c=(e,t,n)=>{typeof t==`function`&&(n=t,t={}),t||={};let{pathEnv:i,pathExt:c,pathExtExe:l}=s(e,t),u=[],d=n=>new Promise((a,s)=>{if(n===i.length)return t.all&&u.length?a(u):s(o(e));let c=i[n],l=/^".*"$/.test(c)?c.slice(1,-1):c,d=r.join(l,e);a(f(!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d,n,0))}),f=(e,n,r)=>new Promise((i,o)=>{if(r===c.length)return i(d(n+1));let s=c[r];a(e+s,{pathExt:l},(a,o)=>{if(!a&&o)if(t.all)u.push(e+s);else return i(e+s);return i(f(e,n,r+1))})});return n?d(0).then(e=>n(null,e),n):d(0)};t.exports=c,c.sync=(e,t)=>{t||={};let{pathEnv:n,pathExt:i,pathExtExe:c}=s(e,t),l=[];for(let o=0;o<n.length;o++){let s=n[o],u=/^".*"$/.test(s)?s.slice(1,-1):s,d=r.join(u,e),f=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;for(let e=0;e<i.length;e++){let n=f+i[e];try{if(a.sync(n,{pathExt:c}))if(t.all)l.push(n);else return n}catch{}}}if(t.all&&l.length)return l;if(t.nothrow)return null;throw o(e)}})),Nn=K(((e,t)=>{let n=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)===`win32`?Object.keys(t).reverse().find(e=>e.toUpperCase()===`PATH`)||`Path`:`PATH`};t.exports=n,t.exports.default=n})),Pn=K(((e,t)=>{let n=q(`path`),r=Mn(),i=Nn();function a(e,t){let a=e.options.env||process.env,o=process.cwd(),s=e.options.cwd!=null,c=s&&process.chdir!==void 0&&!process.chdir.disabled;if(c)try{process.chdir(e.options.cwd)}catch{}let l;try{l=r.sync(e.command,{path:a[i({env:a})],pathExt:t?n.delimiter:void 0})}catch{}finally{c&&process.chdir(o)}return l&&=n.resolve(s?e.options.cwd:``,l),l}function o(e){return a(e)||a(e,!0)}t.exports=o})),Fn=K(((e,t)=>{let n=/([()\][%!^"`<>&|;, *?])/g;function r(e){return e=e.replace(n,`^$1`),e}function i(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,`$1$1\\"`),e=e.replace(/(?=(\\+?)?)\1$/,`$1$1`),e=`"${e}"`,e=e.replace(n,`^$1`),t&&(e=e.replace(n,`^$1`)),e}t.exports.command=r,t.exports.argument=i})),In=K(((e,t)=>{t.exports=/^#!(.*)/})),Ln=K(((e,t)=>{let n=In();t.exports=(e=``)=>{let t=e.match(n);if(!t)return null;let[r,i]=t[0].replace(/#! ?/,``).split(` `),a=r.split(`/`).pop();return a===`env`?i:i?`${a} ${i}`:a}})),Rn=K(((e,t)=>{let n=q(`fs`),r=Ln();function i(e){let t=Buffer.alloc(150),i;try{i=n.openSync(e,`r`),n.readSync(i,t,0,150,0),n.closeSync(i)}catch{}return r(t.toString())}t.exports=i})),zn=K(((e,t)=>{let n=q(`path`),r=Pn(),i=Fn(),a=Rn(),o=process.platform===`win32`,s=/\.(?:com|exe)$/i,c=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function l(e){e.file=r(e);let t=e.file&&a(e.file);return t?(e.args.unshift(e.file),e.command=t,r(e)):e.file}function u(e){if(!o)return e;let t=l(e),r=!s.test(t);if(e.options.forceShell||r){let r=c.test(t);e.command=n.normalize(e.command),e.command=i.command(e.command),e.args=e.args.map(e=>i.argument(e,r)),e.args=[`/d`,`/s`,`/c`,`"${[e.command].concat(e.args).join(` `)}"`],e.command=process.env.comspec||`cmd.exe`,e.options.windowsVerbatimArguments=!0}return e}function d(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:u(r)}t.exports=d})),Bn=K(((e,t)=>{let n=process.platform===`win32`;function r(e,t){return Object.assign(Error(`${t} ${e.command} ENOENT`),{code:`ENOENT`,errno:`ENOENT`,syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function i(e,t){if(!n)return;let r=e.emit;e.emit=function(n,i){if(n===`exit`){let n=a(i,t);if(n)return r.call(e,`error`,n)}return r.apply(e,arguments)}}function a(e,t){return n&&e===1&&!t.file?r(t.original,`spawn`):null}function o(e,t){return n&&e===1&&!t.file?r(t.original,`spawnSync`):null}t.exports={hookChildProcess:i,verifyENOENT:a,verifyENOENTSync:o,notFoundError:r}})),Vn=K(((e,t)=>{let n=q(`child_process`),r=zn(),i=Bn();function a(e,t,a){let o=r(e,t,a),s=n.spawn(o.command,o.args,o.options);return i.hookChildProcess(s,o),s}function o(e,t,a){let o=r(e,t,a),s=n.spawnSync(o.command,o.args,o.options);return s.error=s.error||i.verifyENOENTSync(s.status,o),s}t.exports=a,t.exports.spawn=a,t.exports.sync=o,t.exports._parse=r,t.exports._enoent=i}))(),Hn=class extends Error{result;output;get exitCode(){if(this.result.exitCode!==null)return this.result.exitCode}constructor(e,t){super(`Process exited with non-zero status (${e.exitCode})`),this.result=e,this.output=t}};const Un={timeout:void 0,persist:!1},Wn={windowsHide:!0};function Gn(e,t){return{command:S(e),args:t??[]}}function Kn(e){let t=new AbortController;for(let n of e){if(n.aborted)return t.abort(),n;n.addEventListener(`abort`,()=>{t.abort(n.reason)},{signal:t.signal})}return t.signal}async function qn(e){let t=``;for await(let n of e)t+=n.toString();return t}var Jn=class{_process;_aborted=!1;_options;_command;_args;_resolveClose;_processClosed;_thrownError;get process(){return this._process}get pid(){return this._process?.pid}get exitCode(){if(this._process&&this._process.exitCode!==null)return this._process.exitCode}constructor(e,t,n){this._options={...Un,...n},this._command=e,this._args=t??[],this._processClosed=new Promise(e=>{this._resolveClose=e})}kill(e){return this._process?.kill(e)===!0}get aborted(){return this._aborted}get killed(){return this._process?.killed===!0}pipe(e,t,n){return Xn(e,t,{...n,stdin:this})}async*[Symbol.asyncIterator](){let e=this._process;if(!e)return;let t=[];this._streamErr&&t.push(this._streamErr),this._streamOut&&t.push(this._streamOut);let n=On(t),r=d.createInterface({input:n});for await(let e of r)yield e.toString();if(await this._processClosed,e.removeAllListeners(),this._thrownError)throw this._thrownError;if(this._options?.throwOnError&&this.exitCode!==0&&this.exitCode!==void 0)throw new Hn(this)}async _waitForOutput(){let e=this._process;if(!e)throw Error(`No process was started`);let[t,n]=await Promise.all([this._streamOut?qn(this._streamOut):``,this._streamErr?qn(this._streamErr):``]);if(await this._processClosed,this._options?.stdin&&await this._options.stdin,e.removeAllListeners(),this._thrownError)throw this._thrownError;let r={stderr:n,stdout:t,exitCode:this.exitCode};if(this._options.throwOnError&&this.exitCode!==0&&this.exitCode!==void 0)throw new Hn(this,r);return r}then(e,t){return this._waitForOutput().then(e,t)}_streamOut;_streamErr;spawn(){let e=s(),t=this._options,n={...Wn,...t.nodeOptions},r=[];this._resetState(),t.timeout!==void 0&&r.push(AbortSignal.timeout(t.timeout)),t.signal!==void 0&&r.push(t.signal),t.persist===!0&&(n.detached=!0),r.length>0&&(n.signal=Kn(r)),n.env=Dn(e,n.env);let{command:i,args:a}=Gn(this._command,this._args),o=(0,Vn._parse)(i,a,n),c=se(o.command,o.args,o.options);if(c.stderr&&(this._streamErr=c.stderr),c.stdout&&(this._streamOut=c.stdout),this._process=c,c.once(`error`,this._onError),c.once(`close`,this._onClose),t.stdin!==void 0&&c.stdin&&t.stdin.process){let{stdout:e}=t.stdin.process;e&&e.pipe(c.stdin)}}_resetState(){this._aborted=!1,this._processClosed=new Promise(e=>{this._resolveClose=e}),this._thrownError=void 0}_onError=e=>{if(e.name===`AbortError`&&(!(e.cause instanceof Error)||e.cause.name!==`TimeoutError`)){this._aborted=!0;return}this._thrownError=e};_onClose=()=>{this._resolveClose&&this._resolveClose()}};const Yn=(e,t,n)=>{let r=new Jn(e,t,n);return r.spawn(),r},Xn=Yn;var Zn=e({detectPackageManager:()=>ir,installDependencies:()=>ar,packageManagers:()=>J});async function Qn(e,t,n={}){let r=_n(e).split(`/`);for(;r.length>0;){let e=await t(r.join(`/`)||`/`);if(e||!n.includeParentDirs)return e;r.pop()}}function $n(e){let t;return()=>(t===void 0&&(t=e().then(e=>(t=e,t))),t)}const er=$n(async()=>{if(globalThis.process?.versions?.webcontainer)return!1;try{let{exitCode:e}=await Yn(`corepack`,[`--version`]);return e===0}catch{return!1}});async function tr(e,t,n={}){let r=e!==`npm`&&e!==`bun`&&e!==`deno`&&n.corepack!==!1&&await er()?[`corepack`,[e,...t]]:[e,t],{exitCode:i,stdout:a,stderr:o}=await Yn(r[0],r[1],{nodeOptions:{cwd:W(n.cwd||process.cwd()),env:n.env,stdio:n.silent?`pipe`:`inherit`}});if(i!==0)throw Error(`\`${r.flat().join(` `)}\` failed.${n.silent?[``,a,o].join(`
85
- `):``}`)}async function nr(e={}){let t=e.cwd||process.cwd(),n={...process.env,...e.env},r=(typeof e.packageManager==`string`?J.find(t=>t.name===e.packageManager):e.packageManager)||await ir(e.cwd||process.cwd());if(!r)throw Error(`No package manager auto-detected.`);return{cwd:t,env:n,silent:e.silent??!1,packageManager:r,dev:e.dev??!1,workspace:e.workspace,global:e.global??!1,dry:e.dry??!1,corepack:e.corepack??!0}}function rr(e){let[t,n]=(e||``).split(`@`),[r,i]=n?.split(`+`)||[];if(t&&t!==`-`&&/^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/.test(t))return{name:t,version:r,buildMeta:i};let a=(t||``).replace(/\W+/g,``);return{name:a,version:r,buildMeta:i,warnings:[`Abnormal characters found in \`packageManager\` field, sanitizing from \`${t}\` to \`${a}\``]}}const J=[{name:`npm`,command:`npm`,lockFile:`package-lock.json`},{name:`pnpm`,command:`pnpm`,lockFile:`pnpm-lock.yaml`,files:[`pnpm-workspace.yaml`]},{name:`bun`,command:`bun`,lockFile:[`bun.lockb`,`bun.lock`]},{name:`yarn`,command:`yarn`,lockFile:`yarn.lock`,files:[`.yarnrc.yml`]},{name:`deno`,command:`deno`,lockFile:`deno.lock`,files:[`deno.json`]}];async function ir(e,t={}){let n=await Qn(W(e||`.`),async e=>{if(!t.ignorePackageJSON){let t=vn(e,`package.json`);if(h(t)){let e=JSON.parse(await w(t,`utf8`));if(e?.packageManager){let{name:t,version:n=`0.0.0`,buildMeta:r,warnings:i}=rr(e.packageManager);if(t){let e=n.split(`.`)[0],a=J.find(n=>n.name===t&&n.majorVersion===e)||J.find(e=>e.name===t);return{name:t,command:t,version:n,majorVersion:e,buildMeta:r,warnings:i,files:a?.files,lockFile:a?.lockFile}}}}if(h(vn(e,`deno.json`)))return J.find(e=>e.name===`deno`)}if(!t.ignoreLockFile){for(let t of J)if([t.lockFile,t.files].flat().filter(Boolean).some(t=>h(W(e,t))))return{...t}}},{includeParentDirs:t.includeParentDirs??!0});if(!n&&!t.ignoreArgv){let e=process.argv[1];if(e){for(let t of J)if(RegExp(`[/\\\\]\\.?${t.command}`).test(e))return t}}return n}async function ar(e={}){let t=await nr(e),n=e.frozenLockFile?{npm:[`ci`],yarn:[`install`,`--immutable`],bun:[`install`,`--frozen-lockfile`],pnpm:[`install`,`--frozen-lockfile`],deno:[`install`,`--frozen`]}[t.packageManager.name]:[`install`];return e.ignoreWorkspace&&t.packageManager.name===`pnpm`&&n.push(`--ignore-workspace`),t.dry||await tr(t.packageManager.command,n,{cwd:t.cwd,silent:t.silent,corepack:t.corepack}),{exec:{command:t.packageManager.command,args:n}}}async function or(e,t,n={}){let i=t+`.json`,a=JSON.parse(await w(i,`utf8`).catch(()=>`{}`)),o=(await X(e,{method:`HEAD`,headers:n.headers}).catch(()=>void 0))?.headers.get(`etag`);if(a.etag===o&&h(t))return;typeof o==`string`&&(a.etag=o);let s=await X(e,{headers:n.headers});if(s.status>=400)throw Error(`Failed to download ${e}: ${s.status} ${s.statusText}`);let c=m(t);await r(oe)(s.body,c),await E(i,JSON.stringify(a),`utf8`)}const sr=/^(?<repo>[-\w.]+\/[-\w.]+)(?<subdir>[^#]+)?(?<ref>#[-\w./@]+)?/,cr=/^(?<repo>[-\w.]+(?:\/[-\w.]+)+?)(?:::(?<subdir>[^#]*))?(?<ref>#[-\w./@]+)?$/;function lr(e,t){let n=t?.expandRepo||e.includes(`::`),r=e.match(n?cr:sr)?.groups||{},i=n?r.subdir?`/`+r.subdir:`/`:r.subdir||`/`;return{repo:r.repo||``,subdir:i,ref:r.ref?r.ref.slice(1):`main`}}function Y(...e){process.env.DEBUG&&console.debug(`[giget]`,...e)}async function X(e,t={}){t.headers?.[`sec-fetch-mode`]&&(t.mode=t.headers[`sec-fetch-mode`]);let n=await fetch(e,{...t,headers:dr(t.headers)}).catch(t=>{throw Error(`Failed to download ${e}: ${t}`,{cause:t})});if(t.validateStatus&&n.status>=400)throw Error(`Failed to fetch ${e}: ${n.status} ${n.statusText}`);return n}function ur(){let e=process.env.XDG_CACHE_HOME?W(process.env.XDG_CACHE_HOME,`giget`):W(le(),`.cache/giget`);if(process.platform===`win32`){let t=W(ue(),`giget`);if(!h(t)&&h(e))try{_(e,t)}catch{}return t}return e}function dr(e={}){let t={};for(let[n,r]of Object.entries(e))r&&(t[n.toLowerCase()]=r);return t}const fr=(e,t)=>{let n=pr(e);return{name:n.name,version:n.subdir?`${n.version||`default`}-${n.subdir.replaceAll(`/`,`-`)}`:n.version,tar:({auth:e}={})=>mr(n,e??t.auth)}};function pr(e,t={}){let n=t.cwd??process.cwd(),r=e.replace(/#.*$/,``),i;if(/^[./]/.test(e))r=W(n,r);else if(/^https?:\/\//.test(r)){let e=/^(https?:\/\/[^/]+)\/([\w.-]+\/[\w.-]+?)(?:\.git)?(?:\/(.+))?$/.exec(r);if(e){let[,t,n,a]=e;r=`${t}/${n}`,a&&(i=a)}}else if(r.includes(`@`)){let e=/^(.*?:[\w.-]+\/[\w.-]+?)(?:\.git)?(?:\/(.+))?$/.exec(r);if(e){let[,t,n]=e;r=t,n&&(i=n)}}else{let e={"github:":`https://github.com/`,"gh:":`https://github.com/`,"gitlab:":`https://gitlab.com/`,"bitbucket:":`https://bitbucket.org/`,"sourcehut:":`https://git.sr.ht/~`},t=/^(.+?:)/.exec(r)?.at(1);t&&e[t]?r=r.replace(t,e[t]):t||(r=`${(process.env.GIGET_GIT_HOST||`https://github.com/`).replace(/\/$/,``)}/${r}`);let n=/^(https?:\/\/[^/]+\/~?[\w.-]+\/[\w.-]+?)(?:\.git)?(?:\/(.+))?$/.exec(r);if(n){let[,e,t]=n;r=e,t&&(i=t)}}let a=r.replace(/^https?:\/\//,``).replace(/^.+@/,``).replace(/(\.git)?(#.*)?$/,``).replace(/^\W+/,``).replaceAll(/[:/]/g,`-`),[o,s]=/#(.+)$/.exec(e)?.at(1)?.split(`:`)??[],c=o||void 0,l=s||i;return{uri:r,name:a,...c&&{version:c},...l&&{subdir:l}}}async function mr(e,t){let n=await ne(x(ue(),`giget-git-`));if(t&&/[\r\n]/.test(t))throw Error(`Auth token must not contain newline characters`);let r={...process.env,GIT_TERMINAL_PROMPT:`0`};t&&(r.GIT_CONFIG_COUNT=`1`,r.GIT_CONFIG_KEY_0=`http.extraHeader`,r.GIT_CONFIG_VALUE_0=`Authorization: Bearer ${t}`);let i={env:r,timeout:6e4},a=_r(),o=e=>gr(e,i,a),s=e=>gr(e,{...i,cwd:n},a);try{let t=[`clone`,`--progress`,`--depth`,`1`];e.subdir&&t.push(`--filter=blob:none`,`--sparse`,`--no-checkout`),e.version&&t.push(`--branch`,e.version),t.push(`--`,e.uri,n);try{a.update(`Cloning...`),await o(t),a.update(`Cloned.`)}catch(t){if(!e.version)throw t;Y(`Shallow clone failed, falling back to full clone:`,t),a.update(`Shallow clone failed, cloning...`),await T(n,{recursive:!0,force:!0}),await C(n,{recursive:!0}),await s([`init`]),await s([`remote`,`add`,`origin`,e.uri]),await s([`fetch`,`origin`]),await s([`checkout`,e.version]),a.update(`Fetched.`)}e.subdir&&(a.update(`Sparse checkout ${e.subdir}...`),await s([`sparse-checkout`,`set`,e.subdir]),await s([`checkout`])),a.update(`Packing...`);let r=e.subdir?x(n,e.subdir):n,{create:i}=await import(`./tar-Bd_UMghg.mjs`).then(e=>e.t);a.done();let c=i({gzip:!0,cwd:r,filter:e=>!e.startsWith(`.git/`)&&e!==`.git`&&!e.startsWith(`./.git/`)&&e!==`./.git`},[`.`]).pipe(new ie),l=!1,u=()=>{l||(l=!0,T(n,{recursive:!0,force:!0}))};return c.on(`end`,u),c.on(`error`,u),c.on(`close`,u),c}catch(e){throw a.done(),await T(n,{recursive:!0,force:!0}),e}}const hr=[`⠋`,`⠙`,`⠹`,`⠸`,`⠼`,`⠴`,`⠦`,`⠧`,`⠇`,`⠏`];function gr(e,t,n){return new Promise((r,i)=>{let a=se(`git`,e,{...t,stdio:[`ignore`,`pipe`,`pipe`]});a.stdout.resume();let o=``;a.stderr?.on(`data`,e=>{let t=e.toString();for(let e of t.split(/[\r\n]/)){let t=e.trim();t&&(o=t)}n&&n.update(o)}),a.on(`close`,t=>{t===0?r(o):i(Error(`git ${e[0]} exited with code ${t}. Is git installed?`))}),a.on(`error`,e=>{e.code===`ENOENT`?i(Error(`git is not installed or not found in PATH`)):i(e)})})}function _r(){if(!process.stderr.isTTY)return{update(e){},done(){}};let e=``,t=0,n=()=>{let n=hr[t%hr.length];t++,process.stderr.write(`\x1B[2K\r\x1B[2m${n} ${e}\x1B[0m`)},r=setInterval(n,80);return{update(t){e=t,n()},done(){clearInterval(r),process.stderr.write(`\x1B[2K\r`)}}}const vr=async(e,t)=>{if(e.endsWith(`.json`))return await yr(e,t);let n=new URL(e),r=Sn(n.pathname);try{let i=await X(n.href,{method:`HEAD`,validateStatus:!0,headers:{authorization:t.auth?`Bearer ${t.auth}`:void 0}});if((i.headers.get(`content-type`)||``).includes(`application/json`))return await yr(e,t);let a=i.headers.get(`content-disposition`)?.match(/filename="?(.+)"?/)?.[1];a&&(r=a.split(`.`)[0])}catch(e){Y(`Failed to fetch HEAD for ${n.href}:`,e)}return{name:`${r}-${n.href.slice(0,8)}`,version:``,subdir:``,tar:n.href,defaultDir:r,headers:{Authorization:t.auth?`Bearer ${t.auth}`:void 0}}},yr=async(e,t)=>{let n=await(await X(e,{validateStatus:!0,headers:{authorization:t.auth?`Bearer ${t.auth}`:void 0}})).json();if(!n.tar||!n.name)throw Error(`Invalid template info from ${e}. name or tar fields are missing!`);return n},br=(e,t)=>{let n=lr(e),r=process.env.GIGET_GITHUB_URL||`https://api.github.com`;return{name:n.repo.replace(`/`,`-`),version:n.ref,subdir:n.subdir,headers:{Authorization:t.auth?`Bearer ${t.auth}`:void 0,Accept:`application/vnd.github+json`,"X-GitHub-Api-Version":`2022-11-28`},url:`${r.replace(`api.github.com`,`github.com`)}/${n.repo}/tree/${n.ref}${n.subdir}`,tar:`${r}/repos/${n.repo}/tarball/${n.ref}`}},xr={http:vr,https:vr,git:fr,github:br,gh:br,gitlab:(e,t)=>{let n=lr(e,{expandRepo:!0}),r=process.env.GIGET_GITLAB_URL||`https://gitlab.com`;return{name:n.repo.replace(`/`,`-`),version:n.ref,subdir:n.subdir,headers:{authorization:t.auth?`Bearer ${t.auth}`:void 0,"sec-fetch-mode":`same-origin`},url:`${r}/${n.repo}/tree/${n.ref}${n.subdir}`,tar:`${r}/${n.repo}/-/archive/${n.ref}.tar.gz`}},bitbucket:(e,t)=>{let n=lr(e);return{name:n.repo.replace(`/`,`-`),version:n.ref,subdir:n.subdir,headers:{authorization:t.auth?`Bearer ${t.auth}`:void 0},url:`https://bitbucket.com/${n.repo}/src/${n.ref}${n.subdir}`,tar:`https://bitbucket.org/${n.repo}/get/${n.ref}.tar.gz`}},sourcehut:(e,t)=>{let n=lr(e);return{name:n.repo.replace(`/`,`-`),version:n.ref,subdir:n.subdir,headers:{authorization:t.auth?`Bearer ${t.auth}`:void 0},url:`https://git.sr.ht/~${n.repo}/tree/${n.ref}/item${n.subdir}`,tar:`https://git.sr.ht/~${n.repo}/archive/${n.ref}.tar.gz`}}},Sr=(e=`https://raw.githubusercontent.com/unjs/giget/main/templates`,t={})=>(async n=>{let r=Date.now(),i=`${e}/${n}.json`,a=await X(i,{headers:{authorization:t.auth?`Bearer ${t.auth}`:void 0}});if(a.status>=400)throw Error(`Failed to download ${n} template info from ${i}: ${a.status} ${a.statusText}`);let o=await a.json();if(!o.tar||!o.name)throw Error(`Invalid template info from ${i}. name or tar fields are missing!`);return Y(`Fetched ${n} template info from ${i} in ${Date.now()-r}ms`),o}),Cr=/^([\w+-.]+):/;async function wr(e,t={}){t.registry=process.env.GIGET_REGISTRY??t.registry,t.auth=process.env.GIGET_AUTH??t.auth;let n=t.registry===!1?void 0:Sr(t.registry,{auth:t.auth}),r=t.provider||(n?`registry`:`github`),i=e,a=e.match(Cr);a&&(r=a[1],i=e.slice(a[0].length),(r===`http`||r===`https`)&&(i=e)),r.endsWith(`+git`)&&(i=`${r.slice(0,-4)}:${i}`,r=`git`);let o=t.providers?.[r]||xr[r]||n;if(!o)throw Error(`Unsupported provider: ${r}`);let s=await Promise.resolve().then(()=>o(i,{auth:t.auth})).catch(e=>{throw Error(`Failed to download template from ${r}: ${e.message}`)});if(!s)throw Error(`Failed to resolve template from ${r}`);s.name=(s.name||`template`).replace(/[^\da-z-]/gi,`-`),s.defaultDir=(s.defaultDir||s.name).replace(/[^\da-z-]/gi,`-`);let c=W(W(ur(),r,s.name),(s.version||s.name)+`.tar.gz`);if(t.preferOffline&&h(c)&&(t.offline=!0),!t.offline){await C(xn(c),{recursive:!0});let e=Date.now();if(typeof s.tar==`function`){let e=s.tar;await(async()=>{let n=await e({auth:t.auth});await ce(n instanceof ae?n:ae.fromWeb(n),m(c))})().catch(e=>{if(!h(c))throw e;Y(`Download error. Using cached version:`,e),t.offline=!0})}else await or(s.tar,c,{headers:{Authorization:t.auth?`Bearer ${t.auth}`:void 0,...dr(s.headers)}}).catch(e=>{if(!h(c))throw e;Y(`Download error. Using cached version:`,e),t.offline=!0});Y(`Downloaded to ${c} in ${Date.now()-e}ms`)}if(!h(c))throw Error(`Tarball not found: ${c} (offline: ${t.offline})`);let l=W(W(t.cwd||`.`),t.dir||s.defaultDir);if(t.forceClean&&await T(l,{recursive:!0,force:!0}),!t.force&&h(l)&&g(l).length>0)throw Error(`Destination ${l} already exists.`);await C(l,{recursive:!0});let u=Date.now(),d=s.subdir?.replace(/^\//,``)||``,{extract:f}=await import(`./tar-Bd_UMghg.mjs`).then(e=>e.t);if(await f({file:c,cwd:l,onReadEntry(e){e.path=e.path.split(`/`).splice(1).join(`/`),d&&(e.path.startsWith(d+`/`)?e.path=e.path.slice(d.length):e.path=``)}}),Y(`Extracted to ${l} in ${Date.now()-u}ms`),t.install){Y(`Installing dependencies...`);let{installDependencies:e}=await Promise.resolve().then(()=>fn).then(e=>e.t);await e({cwd:l,silent:t.silent,...typeof t.install==`object`?t.install:{}})}return{...s,source:i,dir:l}}function Tr(e){return e}const Er=Tr([`default`,`monorepo`]),Dr=Tr([`pnpm`,`npm`,`bun`,`yarn`,`deno`]),Or={name:{type:`positional`,description:`Project name`,required:!1},template:{type:`enum`,description:`Template to use`,options:Er,required:!1,alias:[`t`]},install:{type:`boolean`,description:`Install dependencies`,required:!1,alias:[`i`]},packageManager:{type:`enum`,description:`Package manager to use`,options:Dr,required:!1,alias:[`p`]}};var Z=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),Q=t(import.meta.url);const kr=/^path$/i,Ar={key:`PATH`,value:``};function jr(e){for(let t in e){if(!Object.prototype.hasOwnProperty.call(e,t)||!kr.test(t))continue;let n=e[t];return n?{key:t,value:n}:Ar}return Ar}function Mr(e,t){let n=t.value.split(y),r=[],i=e,a;do r.push(ee(i,`node_modules`,`.bin`)),a=i,i=b(i);while(i!==a);r.push(b(process.execPath));let o=r.concat(n).join(y);return{key:t.key,value:o}}function Nr(e,t){let n={...process.env,...t},r=Mr(e,jr(n));return n[r.key]=r.value,n}const Pr=e=>{let t=e.length,n=new ie,r=()=>{--t===0&&n.end()};for(let t of e)ce(t,n,{end:!1}).then(r).catch(r);return n};var Fr=Z(((e,t)=>{t.exports=a,a.sync=o;var n=Q(`fs`);function r(e,t){var n=t.pathExt===void 0?process.env.PATHEXT:t.pathExt;if(!n||(n=n.split(`;`),n.indexOf(``)!==-1))return!0;for(var r=0;r<n.length;r++){var i=n[r].toLowerCase();if(i&&e.substr(-i.length).toLowerCase()===i)return!0}return!1}function i(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:r(t,n)}function a(e,t,r){n.stat(e,function(n,a){r(n,n?!1:i(a,e,t))})}function o(e,t){return i(n.statSync(e),e,t)}})),Ir=Z(((e,t)=>{t.exports=r,r.sync=i;var n=Q(`fs`);function r(e,t,r){n.stat(e,function(e,n){r(e,e?!1:a(n,t))})}function i(e,t){return a(n.statSync(e),t)}function a(e,t){return e.isFile()&&o(e,t)}function o(e,t){var n=e.mode,r=e.uid,i=e.gid,a=t.uid===void 0?process.getuid&&process.getuid():t.uid,o=t.gid===void 0?process.getgid&&process.getgid():t.gid,s=64,c=8,l=1,u=s|c;return n&l||n&c&&i===o||n&s&&r===a||n&u&&a===0}})),Lr=Z(((e,t)=>{Q(`fs`);var n=process.platform===`win32`||global.TESTING_WINDOWS?Fr():Ir();t.exports=r,r.sync=i;function r(e,t,i){if(typeof t==`function`&&(i=t,t={}),!i){if(typeof Promise!=`function`)throw TypeError(`callback not provided`);return new Promise(function(n,i){r(e,t||{},function(e,t){e?i(e):n(t)})})}n(e,t||{},function(e,n){e&&(e.code===`EACCES`||t&&t.ignoreErrors)&&(e=null,n=!1),i(e,n)})}function i(e,t){try{return n.sync(e,t||{})}catch(e){if(t&&t.ignoreErrors||e.code===`EACCES`)return!1;throw e}}})),Rr=Z(((e,t)=>{let n=process.platform===`win32`||process.env.OSTYPE===`cygwin`||process.env.OSTYPE===`msys`,r=Q(`path`),i=n?`;`:`:`,a=Lr(),o=e=>Object.assign(Error(`not found: ${e}`),{code:`ENOENT`}),s=(e,t)=>{let r=t.colon||i,a=e.match(/\//)||n&&e.match(/\\/)?[``]:[...n?[process.cwd()]:[],...(t.path||process.env.PATH||``).split(r)],o=n?t.pathExt||process.env.PATHEXT||`.EXE;.CMD;.BAT;.COM`:``,s=n?o.split(r):[``];return n&&e.indexOf(`.`)!==-1&&s[0]!==``&&s.unshift(``),{pathEnv:a,pathExt:s,pathExtExe:o}},c=(e,t,n)=>{typeof t==`function`&&(n=t,t={}),t||={};let{pathEnv:i,pathExt:c,pathExtExe:l}=s(e,t),u=[],d=n=>new Promise((a,s)=>{if(n===i.length)return t.all&&u.length?a(u):s(o(e));let c=i[n],l=/^".*"$/.test(c)?c.slice(1,-1):c,d=r.join(l,e);a(f(!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d,n,0))}),f=(e,n,r)=>new Promise((i,o)=>{if(r===c.length)return i(d(n+1));let s=c[r];a(e+s,{pathExt:l},(a,o)=>{if(!a&&o)if(t.all)u.push(e+s);else return i(e+s);return i(f(e,n,r+1))})});return n?d(0).then(e=>n(null,e),n):d(0)};t.exports=c,c.sync=(e,t)=>{t||={};let{pathEnv:n,pathExt:i,pathExtExe:c}=s(e,t),l=[];for(let o=0;o<n.length;o++){let s=n[o],u=/^".*"$/.test(s)?s.slice(1,-1):s,d=r.join(u,e),f=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;for(let e=0;e<i.length;e++){let n=f+i[e];try{if(a.sync(n,{pathExt:c}))if(t.all)l.push(n);else return n}catch{}}}if(t.all&&l.length)return l;if(t.nothrow)return null;throw o(e)}})),zr=Z(((e,t)=>{let n=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)===`win32`?Object.keys(t).reverse().find(e=>e.toUpperCase()===`PATH`)||`Path`:`PATH`};t.exports=n,t.exports.default=n})),Br=Z(((e,t)=>{let n=Q(`path`),r=Rr(),i=zr();function a(e,t){let a=e.options.env||process.env,o=process.cwd(),s=e.options.cwd!=null,c=s&&process.chdir!==void 0&&!process.chdir.disabled;if(c)try{process.chdir(e.options.cwd)}catch{}let l;try{l=r.sync(e.command,{path:a[i({env:a})],pathExt:t?n.delimiter:void 0})}catch{}finally{c&&process.chdir(o)}return l&&=n.resolve(s?e.options.cwd:``,l),l}function o(e){return a(e)||a(e,!0)}t.exports=o})),Vr=Z(((e,t)=>{let n=/([()\][%!^"`<>&|;, *?])/g;function r(e){return e=e.replace(n,`^$1`),e}function i(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,`$1$1\\"`),e=e.replace(/(?=(\\+?)?)\1$/,`$1$1`),e=`"${e}"`,e=e.replace(n,`^$1`),t&&(e=e.replace(n,`^$1`)),e}t.exports.command=r,t.exports.argument=i})),Hr=Z(((e,t)=>{t.exports=/^#!(.*)/})),Ur=Z(((e,t)=>{let n=Hr();t.exports=(e=``)=>{let t=e.match(n);if(!t)return null;let[r,i]=t[0].replace(/#! ?/,``).split(` `),a=r.split(`/`).pop();return a===`env`?i:i?`${a} ${i}`:a}})),Wr=Z(((e,t)=>{let n=Q(`fs`),r=Ur();function i(e){let t=Buffer.alloc(150),i;try{i=n.openSync(e,`r`),n.readSync(i,t,0,150,0),n.closeSync(i)}catch{}return r(t.toString())}t.exports=i})),Gr=Z(((e,t)=>{let n=Q(`path`),r=Br(),i=Vr(),a=Wr(),o=process.platform===`win32`,s=/\.(?:com|exe)$/i,c=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function l(e){e.file=r(e);let t=e.file&&a(e.file);return t?(e.args.unshift(e.file),e.command=t,r(e)):e.file}function u(e){if(!o)return e;let t=l(e),r=!s.test(t);if(e.options.forceShell||r){let r=c.test(t);e.command=n.normalize(e.command),e.command=i.command(e.command),e.args=e.args.map(e=>i.argument(e,r)),e.args=[`/d`,`/s`,`/c`,`"${[e.command].concat(e.args).join(` `)}"`],e.command=process.env.comspec||`cmd.exe`,e.options.windowsVerbatimArguments=!0}return e}function d(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:u(r)}t.exports=d})),Kr=Z(((e,t)=>{let n=process.platform===`win32`;function r(e,t){return Object.assign(Error(`${t} ${e.command} ENOENT`),{code:`ENOENT`,errno:`ENOENT`,syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function i(e,t){if(!n)return;let r=e.emit;e.emit=function(n,i){if(n===`exit`){let n=a(i,t);if(n)return r.call(e,`error`,n)}return r.apply(e,arguments)}}function a(e,t){return n&&e===1&&!t.file?r(t.original,`spawn`):null}function o(e,t){return n&&e===1&&!t.file?r(t.original,`spawnSync`):null}t.exports={hookChildProcess:i,verifyENOENT:a,verifyENOENTSync:o,notFoundError:r}})),qr=Z(((e,t)=>{let n=Q(`child_process`),r=Gr(),i=Kr();function a(e,t,a){let o=r(e,t,a),s=n.spawn(o.command,o.args,o.options);return i.hookChildProcess(s,o),s}function o(e,t,a){let o=r(e,t,a),s=n.spawnSync(o.command,o.args,o.options);return s.error=s.error||i.verifyENOENTSync(s.status,o),s}t.exports=a,t.exports.spawn=a,t.exports.sync=o,t.exports._parse=r,t.exports._enoent=i}))(),Jr=class extends Error{get exitCode(){if(this.result.exitCode!==null)return this.result.exitCode}constructor(e,t){super(`Process exited with non-zero status (${e.exitCode})`),this.result=e,this.output=t}};const Yr={timeout:void 0,persist:!1},Xr={windowsHide:!0};function Zr(e){let t=new AbortController;for(let n of e){if(n.aborted)return t.abort(),n;n.addEventListener(`abort`,()=>{t.abort(n.reason)},{signal:t.signal})}return t.signal}async function Qr(e){let t=``;try{for await(let n of e)t+=n.toString()}catch{}return t}var $r=class{_process;_aborted=!1;_options;_command;_args;_resolveClose;_processClosed;_thrownError;get process(){return this._process}get pid(){return this._process?.pid}get exitCode(){if(this._process&&this._process.exitCode!==null)return this._process.exitCode}constructor(e,t,n){this._options={...Yr,...n},this._command=e,this._args=t??[],this._processClosed=new Promise(e=>{this._resolveClose=e})}kill(e){return this._process?.kill(e)===!0}get aborted(){return this._aborted}get killed(){return this._process?.killed===!0}pipe(e,t,n){return ei(e,t,{...n,stdin:this})}async*[Symbol.asyncIterator](){let e=this._process;if(!e)return;let t=[];this._streamErr&&t.push(this._streamErr),this._streamOut&&t.push(this._streamOut);let n=Pr(t),r=d.createInterface({input:n});for await(let e of r)yield e.toString();if(await this._processClosed,e.removeAllListeners(),this._thrownError)throw this._thrownError;if(this._options?.throwOnError&&this.exitCode!==0&&this.exitCode!==void 0)throw new Jr(this)}async _waitForOutput(){let e=this._process;if(!e)throw Error(`No process was started`);let[t,n]=await Promise.all([this._streamOut?Qr(this._streamOut):``,this._streamErr?Qr(this._streamErr):``]);await this._processClosed;let{stdin:r}=this._options;if(r&&typeof r!=`string`&&await r,e.removeAllListeners(),this._thrownError)throw this._thrownError;let i={stderr:n,stdout:t,exitCode:this.exitCode};if(this._options.throwOnError&&this.exitCode!==0&&this.exitCode!==void 0)throw new Jr(this,i);return i}then(e,t){return this._waitForOutput().then(e,t)}_streamOut;_streamErr;spawn(){let e=s(),t=this._options,n={...Xr,...t.nodeOptions},r=[];this._resetState(),t.timeout!==void 0&&r.push(AbortSignal.timeout(t.timeout)),t.signal!==void 0&&r.push(t.signal),t.persist===!0&&(n.detached=!0),r.length>0&&(n.signal=Zr(r)),n.env=Nr(e,n.env);let i=(0,qr._parse)(this._command,this._args,n),a=se(i.command,i.args,i.options);if(a.stderr&&(this._streamErr=a.stderr),a.stdout&&(this._streamOut=a.stdout),this._process=a,a.once(`error`,this._onError),a.once(`close`,this._onClose),a.stdin){let{stdin:e}=t;typeof e==`string`?a.stdin.end(e):e?.process?.stdout?.pipe(a.stdin)}}_resetState(){this._aborted=!1,this._processClosed=new Promise(e=>{this._resolveClose=e}),this._thrownError=void 0}_onError=e=>{if(e.name===`AbortError`&&(!(e.cause instanceof Error)||e.cause.name!==`TimeoutError`)){this._aborted=!0;return}this._thrownError=e};_onClose=()=>{this._resolveClose&&this._resolveClose()}};const $=(e,t,n)=>{let r=new $r(e,t,n);return r.spawn(),r},ei=$;function ti(){let e=process.env.npm_config_user_agent??``;return e.startsWith(`pnpm/`)?`pnpm`:e.startsWith(`yarn/`)?`yarn`:e.startsWith(`bun/`)?`bun`:e.startsWith(`deno/`)?`deno`:`npm`}async function ni(){try{return await $(`pnpm`,[`--version`],{throwOnError:!0}),!0}catch{return!1}}async function ri(e){await $(`git`,[`init`],{throwOnError:!1,nodeOptions:{cwd:e,stdio:`inherit`}})}async function ii(e,t){let n=kt({title:`Installing dependencies with ${t}...`,limit:5,retainLog:!1}),r=wt();r.start();let i=[`install`];t===`npm`&&i.push(`--legacy-peer-deps`);let a=$(t,i,{throwOnError:!1,nodeOptions:{cwd:e}});for await(let e of a){let t=e.trim();t&&n.message(t)}let o=await a;return r.stop(),o.exitCode===0?(n.success(`Dependencies installed`),!0):(n.error(`Dependency installation failed. You can run \`${t} install\` manually.`),!1)}function ai(e){return e===`npm`?`npm run dev`:e===`deno`?`deno task dev`:`${e} dev`}const oi=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/;function si(e){for(let t of e){let e=t.codePointAt(0);if(e!==void 0&&(e<=31||`<>:"|?*`.includes(t)))return!0}return!1}function ci(e){let t=e.trim();if(t.length===0)return`Project name is required`;if(t!==`.`){if(t.includes(`/`)||t.includes(`\\`))return`Project name cannot contain path separators`;if(si(t))return`Project name contains invalid characters`;if(t===`..`)return`Project name cannot be ..`;if(t.startsWith(`.`))return`Project name cannot start with a period`;if(t.endsWith(`.`)||t.endsWith(`-`))return`Project name cannot end with a period or hyphen`;if(t.length>214)return`Project name must be 214 characters or fewer`;if(!oi.test(t))return`Use letters, numbers, periods, underscores, or hyphens`}}function li(e,t){return typeof t==`string`&&e.includes(t)}async function ui(e){let t;try{t=await re(e)}catch(e){if(e&&typeof e==`object`&&`code`in e&&e.code===`ENOENT`)return;throw e}if(t.length>0)return`Directory must be empty.`}async function di(){let e=await At({message:`Project name:`,placeholder:`my-project`,defaultValue:`my-project`,validate(e){if(typeof e==`string`)return ci(e)}});if(Ve(e)){L(`Operation cancelled.`);return}return e}async function fi(){let e=await Et({message:`Select a template:`,options:[{value:`default`,label:`Default`,hint:`minimal TanStarter template`},{value:`monorepo`,label:`Monorepo (beta)`,hint:`TanStarter via Vite+ with pnpm`}]});if(Ve(e)){L(`Operation cancelled.`);return}return e}async function pi(){let e=await vt({message:`Install dependencies after scaffolding?`,initialValue:!0});if(Ve(e)){L(`Operation cancelled.`);return}return e}async function mi(e){let t=await Et({message:`Select a package manager:`,options:[{value:`pnpm`,label:`pnpm (Recommended)`},{value:`npm`,label:`npm`},{value:`bun`,label:`bun`},{value:`yarn`,label:`yarn`},{value:`deno`,label:`deno`}],initialValue:e});if(Ve(t)){L(`Operation cancelled.`);return}return t}async function hi(e){let t=e.name,n=e.template,r=e.install,i=e.packageManager,a=await ni()?`pnpm`:ti();if(!t&&(t=await di(),!t))return;t=String(t).trim();let o=await ui(t===`.`?process.cwd():x(process.cwd(),t));if(o){L(o);return}let s=ci(t);if(s){L(s);return}if(!(!n&&(n=await fi(),!n))&&!(r===void 0&&(r=await pi(),r===void 0))&&!(r&&!i&&(i=await mi(a),!i))&&!(!li(Er,n)||typeof r!=`boolean`)&&!(i!==void 0&&!li(Dr,i)))return{projectName:t,template:n,install:r,selectedPackageManager:i,preferredPackageManager:a}}const gi={default:{source:`github:mugnavo/tanstarter`,homeUrl:`https://github.com/mugnavo/tanstarter`},monorepo:{source:`github:mugnavo/tanstarter-plus`,homeUrl:`https://github.com/mugnavo/tanstarter-plus`}};function _i(e){return gi[e]}function vi(e,t){if(!t)return"This project was scaffolded with [`create-mugnavo`](https://github.com/mugnavo/create-mugnavo).";let n=_i(e);return`This project was scaffolded with \`create-mugnavo\` from commit [\`${t.slice(0,7)}\`](${`${n.homeUrl}/tree/${t}`}). See the [template changelog](${`${n.homeUrl}/compare/${t}...main`}) for newer changes.`}function yi(e,t,n){if(!n)return!1;let r=e.findIndex(e=>e.trim()===`## Issue watchlist`);if(r===-1)return!1;let i=e.findIndex((e,t)=>t>r&&e.startsWith(`## `)),a=i===-1?e.length:i,o=`${_i(t).homeUrl}/compare/${n}...main`;if(e.slice(r+1,a).some(e=>e.includes(o)))return!1;let s=r+1;for(;s<a&&e[s]?.trim()===``;)s+=1;return e.splice(s,0,`- [Template changelog](${o}) - Track template updates since this project was created.`),!0}function bi(e,t){return t===`.`?v(ee(e))||`app`:t}async function xi(e){await T(x(e,`LICENSE`),{force:!0})}async function Si(e,t){if(t===`default`){await te(x(e,`.env.example`),x(e,`.env`),p.COPYFILE_EXCL);return}if(t===`monorepo`){await te(x(e,`apps`,`web`,`.env.example`),x(e,`apps`,`web`,`.env`),p.COPYFILE_EXCL);return}}async function Ci(e,t){let n=x(e,`package.json`),r=JSON.parse(await w(n,`utf8`));r.name=bi(e,t),await E(n,`${JSON.stringify(r,null,2)}\n`)}async function wi(e,t,n,r){let i=x(e,`README.md`),a=bi(e,n),o=await w(i,`utf8`),s=o.includes(`\r
85
+ `):``}`)}async function nr(e={}){let t=e.cwd||process.cwd(),n={...process.env,...e.env},r=(typeof e.packageManager==`string`?J.find(t=>t.name===e.packageManager):e.packageManager)||await ir(e.cwd||process.cwd());if(!r)throw Error(`No package manager auto-detected.`);return{cwd:t,env:n,silent:e.silent??!1,packageManager:r,dev:e.dev??!1,workspace:e.workspace,global:e.global??!1,dry:e.dry??!1,corepack:e.corepack??!0}}function rr(e){let[t,n]=(e||``).split(`@`),[r,i]=n?.split(`+`)||[];if(t&&t!==`-`&&/^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/.test(t))return{name:t,version:r,buildMeta:i};let a=(t||``).replace(/\W+/g,``);return{name:a,version:r,buildMeta:i,warnings:[`Abnormal characters found in \`packageManager\` field, sanitizing from \`${t}\` to \`${a}\``]}}const J=[{name:`npm`,command:`npm`,lockFile:`package-lock.json`},{name:`pnpm`,command:`pnpm`,lockFile:`pnpm-lock.yaml`,files:[`pnpm-workspace.yaml`]},{name:`bun`,command:`bun`,lockFile:[`bun.lockb`,`bun.lock`]},{name:`yarn`,command:`yarn`,lockFile:`yarn.lock`,files:[`.yarnrc.yml`]},{name:`deno`,command:`deno`,lockFile:`deno.lock`,files:[`deno.json`]}];async function ir(e,t={}){let n=await Qn(W(e||`.`),async e=>{if(!t.ignorePackageJSON){let t=vn(e,`package.json`);if(h(t)){let e=JSON.parse(await w(t,`utf8`));if(e?.packageManager){let{name:t,version:n=`0.0.0`,buildMeta:r,warnings:i}=rr(e.packageManager);if(t){let e=n.split(`.`)[0],a=J.find(n=>n.name===t&&n.majorVersion===e)||J.find(e=>e.name===t);return{name:t,command:t,version:n,majorVersion:e,buildMeta:r,warnings:i,files:a?.files,lockFile:a?.lockFile}}}}if(h(vn(e,`deno.json`)))return J.find(e=>e.name===`deno`)}if(!t.ignoreLockFile){for(let t of J)if([t.lockFile,t.files].flat().filter(Boolean).some(t=>h(W(e,t))))return{...t}}},{includeParentDirs:t.includeParentDirs??!0});if(!n&&!t.ignoreArgv){let e=process.argv[1];if(e){for(let t of J)if(RegExp(`[/\\\\]\\.?${t.command}`).test(e))return t}}return n}async function ar(e={}){let t=await nr(e),n=e.frozenLockFile?{npm:[`ci`],yarn:[`install`,`--immutable`],bun:[`install`,`--frozen-lockfile`],pnpm:[`install`,`--frozen-lockfile`],deno:[`install`,`--frozen`]}[t.packageManager.name]:[`install`];return e.ignoreWorkspace&&t.packageManager.name===`pnpm`&&n.push(`--ignore-workspace`),t.dry||await tr(t.packageManager.command,n,{cwd:t.cwd,silent:t.silent,corepack:t.corepack}),{exec:{command:t.packageManager.command,args:n}}}async function or(e,t,n={}){let i=t+`.json`,a=JSON.parse(await w(i,`utf8`).catch(()=>`{}`)),o=(await X(e,{method:`HEAD`,headers:n.headers}).catch(()=>void 0))?.headers.get(`etag`);if(a.etag===o&&h(t))return;typeof o==`string`&&(a.etag=o);let s=await X(e,{headers:n.headers});if(s.status>=400)throw Error(`Failed to download ${e}: ${s.status} ${s.statusText}`);let c=m(t);await r(oe)(s.body,c),await E(i,JSON.stringify(a),`utf8`)}const sr=/^(?<repo>[-\w.]+\/[-\w.]+)(?<subdir>[^#]+)?(?<ref>#[-\w./@]+)?/,cr=/^(?<repo>[-\w.]+(?:\/[-\w.]+)+?)(?:::(?<subdir>[^#]*))?(?<ref>#[-\w./@]+)?$/;function lr(e,t){let n=t?.expandRepo||e.includes(`::`),r=e.match(n?cr:sr)?.groups||{},i=n?r.subdir?`/`+r.subdir:`/`:r.subdir||`/`;return{repo:r.repo||``,subdir:i,ref:r.ref?r.ref.slice(1):`main`}}function Y(...e){process.env.DEBUG&&console.debug(`[giget]`,...e)}async function X(e,t={}){t.headers?.[`sec-fetch-mode`]&&(t.mode=t.headers[`sec-fetch-mode`]);let n=await fetch(e,{...t,headers:dr(t.headers)}).catch(t=>{throw Error(`Failed to download ${e}: ${t}`,{cause:t})});if(t.validateStatus&&n.status>=400)throw Error(`Failed to fetch ${e}: ${n.status} ${n.statusText}`);return n}function ur(){let e=process.env.XDG_CACHE_HOME?W(process.env.XDG_CACHE_HOME,`giget`):W(le(),`.cache/giget`);if(process.platform===`win32`){let t=W(ue(),`giget`);if(!h(t)&&h(e))try{_(e,t)}catch{}return t}return e}function dr(e={}){let t={};for(let[n,r]of Object.entries(e))r&&(t[n.toLowerCase()]=r);return t}const fr=(e,t)=>{let n=pr(e);return{name:n.name,version:n.subdir?`${n.version||`default`}-${n.subdir.replaceAll(`/`,`-`)}`:n.version,tar:({auth:e}={})=>mr(n,e??t.auth)}};function pr(e,t={}){let n=t.cwd??process.cwd(),r=e.replace(/#.*$/,``),i;if(/^[./]/.test(e))r=W(n,r);else if(/^https?:\/\//.test(r)){let e=/^(https?:\/\/[^/]+)\/([\w.-]+\/[\w.-]+?)(?:\.git)?(?:\/(.+))?$/.exec(r);if(e){let[,t,n,a]=e;r=`${t}/${n}`,a&&(i=a)}}else if(r.includes(`@`)){let e=/^(.*?:[\w.-]+\/[\w.-]+?)(?:\.git)?(?:\/(.+))?$/.exec(r);if(e){let[,t,n]=e;r=t,n&&(i=n)}}else{let e={"github:":`https://github.com/`,"gh:":`https://github.com/`,"gitlab:":`https://gitlab.com/`,"bitbucket:":`https://bitbucket.org/`,"sourcehut:":`https://git.sr.ht/~`},t=/^(.+?:)/.exec(r)?.at(1);t&&e[t]?r=r.replace(t,e[t]):t||(r=`${(process.env.GIGET_GIT_HOST||`https://github.com/`).replace(/\/$/,``)}/${r}`);let n=/^(https?:\/\/[^/]+\/~?[\w.-]+\/[\w.-]+?)(?:\.git)?(?:\/(.+))?$/.exec(r);if(n){let[,e,t]=n;r=e,t&&(i=t)}}let a=r.replace(/^https?:\/\//,``).replace(/^.+@/,``).replace(/(\.git)?(#.*)?$/,``).replace(/^\W+/,``).replaceAll(/[:/]/g,`-`),[o,s]=/#(.+)$/.exec(e)?.at(1)?.split(`:`)??[],c=o||void 0,l=s||i;return{uri:r,name:a,...c&&{version:c},...l&&{subdir:l}}}async function mr(e,t){let n=await ne(x(ue(),`giget-git-`));if(t&&/[\r\n]/.test(t))throw Error(`Auth token must not contain newline characters`);let r={...process.env,GIT_TERMINAL_PROMPT:`0`};t&&(r.GIT_CONFIG_COUNT=`1`,r.GIT_CONFIG_KEY_0=`http.extraHeader`,r.GIT_CONFIG_VALUE_0=`Authorization: Bearer ${t}`);let i={env:r,timeout:6e4},a=_r(),o=e=>gr(e,i,a),s=e=>gr(e,{...i,cwd:n},a);try{let t=[`clone`,`--progress`,`--depth`,`1`];e.subdir&&t.push(`--filter=blob:none`,`--sparse`,`--no-checkout`),e.version&&t.push(`--branch`,e.version),t.push(`--`,e.uri,n);try{a.update(`Cloning...`),await o(t),a.update(`Cloned.`)}catch(t){if(!e.version)throw t;Y(`Shallow clone failed, falling back to full clone:`,t),a.update(`Shallow clone failed, cloning...`),await T(n,{recursive:!0,force:!0}),await C(n,{recursive:!0}),await s([`init`]),await s([`remote`,`add`,`origin`,e.uri]),await s([`fetch`,`origin`]),await s([`checkout`,e.version]),a.update(`Fetched.`)}e.subdir&&(a.update(`Sparse checkout ${e.subdir}...`),await s([`sparse-checkout`,`set`,e.subdir]),await s([`checkout`])),a.update(`Packing...`);let r=e.subdir?x(n,e.subdir):n,{create:i}=await import(`./tar-Bd_UMghg.mjs`).then(e=>e.t);a.done();let c=i({gzip:!0,cwd:r,filter:e=>!e.startsWith(`.git/`)&&e!==`.git`&&!e.startsWith(`./.git/`)&&e!==`./.git`},[`.`]).pipe(new ie),l=!1,u=()=>{l||(l=!0,T(n,{recursive:!0,force:!0}))};return c.on(`end`,u),c.on(`error`,u),c.on(`close`,u),c}catch(e){throw a.done(),await T(n,{recursive:!0,force:!0}),e}}const hr=[`⠋`,`⠙`,`⠹`,`⠸`,`⠼`,`⠴`,`⠦`,`⠧`,`⠇`,`⠏`];function gr(e,t,n){return new Promise((r,i)=>{let a=se(`git`,e,{...t,stdio:[`ignore`,`pipe`,`pipe`]});a.stdout.resume();let o=``;a.stderr?.on(`data`,e=>{let t=e.toString();for(let e of t.split(/[\r\n]/)){let t=e.trim();t&&(o=t)}n&&n.update(o)}),a.on(`close`,t=>{t===0?r(o):i(Error(`git ${e[0]} exited with code ${t}. Is git installed?`))}),a.on(`error`,e=>{e.code===`ENOENT`?i(Error(`git is not installed or not found in PATH`)):i(e)})})}function _r(){if(!process.stderr.isTTY)return{update(e){},done(){}};let e=``,t=0,n=()=>{let n=hr[t%hr.length];t++,process.stderr.write(`\x1B[2K\r\x1B[2m${n} ${e}\x1B[0m`)},r=setInterval(n,80);return{update(t){e=t,n()},done(){clearInterval(r),process.stderr.write(`\x1B[2K\r`)}}}const vr=async(e,t)=>{if(e.endsWith(`.json`))return await yr(e,t);let n=new URL(e),r=Sn(n.pathname);try{let i=await X(n.href,{method:`HEAD`,validateStatus:!0,headers:{authorization:t.auth?`Bearer ${t.auth}`:void 0}});if((i.headers.get(`content-type`)||``).includes(`application/json`))return await yr(e,t);let a=i.headers.get(`content-disposition`)?.match(/filename="?(.+)"?/)?.[1];a&&(r=a.split(`.`)[0])}catch(e){Y(`Failed to fetch HEAD for ${n.href}:`,e)}return{name:`${r}-${n.href.slice(0,8)}`,version:``,subdir:``,tar:n.href,defaultDir:r,headers:{Authorization:t.auth?`Bearer ${t.auth}`:void 0}}},yr=async(e,t)=>{let n=await(await X(e,{validateStatus:!0,headers:{authorization:t.auth?`Bearer ${t.auth}`:void 0}})).json();if(!n.tar||!n.name)throw Error(`Invalid template info from ${e}. name or tar fields are missing!`);return n},br=(e,t)=>{let n=lr(e),r=process.env.GIGET_GITHUB_URL||`https://api.github.com`;return{name:n.repo.replace(`/`,`-`),version:n.ref,subdir:n.subdir,headers:{Authorization:t.auth?`Bearer ${t.auth}`:void 0,Accept:`application/vnd.github+json`,"X-GitHub-Api-Version":`2022-11-28`},url:`${r.replace(`api.github.com`,`github.com`)}/${n.repo}/tree/${n.ref}${n.subdir}`,tar:`${r}/repos/${n.repo}/tarball/${n.ref}`}},xr={http:vr,https:vr,git:fr,github:br,gh:br,gitlab:(e,t)=>{let n=lr(e,{expandRepo:!0}),r=process.env.GIGET_GITLAB_URL||`https://gitlab.com`;return{name:n.repo.replace(`/`,`-`),version:n.ref,subdir:n.subdir,headers:{authorization:t.auth?`Bearer ${t.auth}`:void 0,"sec-fetch-mode":`same-origin`},url:`${r}/${n.repo}/tree/${n.ref}${n.subdir}`,tar:`${r}/${n.repo}/-/archive/${n.ref}.tar.gz`}},bitbucket:(e,t)=>{let n=lr(e);return{name:n.repo.replace(`/`,`-`),version:n.ref,subdir:n.subdir,headers:{authorization:t.auth?`Bearer ${t.auth}`:void 0},url:`https://bitbucket.com/${n.repo}/src/${n.ref}${n.subdir}`,tar:`https://bitbucket.org/${n.repo}/get/${n.ref}.tar.gz`}},sourcehut:(e,t)=>{let n=lr(e);return{name:n.repo.replace(`/`,`-`),version:n.ref,subdir:n.subdir,headers:{authorization:t.auth?`Bearer ${t.auth}`:void 0},url:`https://git.sr.ht/~${n.repo}/tree/${n.ref}/item${n.subdir}`,tar:`https://git.sr.ht/~${n.repo}/archive/${n.ref}.tar.gz`}}},Sr=(e=`https://raw.githubusercontent.com/unjs/giget/main/templates`,t={})=>(async n=>{let r=Date.now(),i=`${e}/${n}.json`,a=await X(i,{headers:{authorization:t.auth?`Bearer ${t.auth}`:void 0}});if(a.status>=400)throw Error(`Failed to download ${n} template info from ${i}: ${a.status} ${a.statusText}`);let o=await a.json();if(!o.tar||!o.name)throw Error(`Invalid template info from ${i}. name or tar fields are missing!`);return Y(`Fetched ${n} template info from ${i} in ${Date.now()-r}ms`),o}),Cr=/^([\w+-.]+):/;async function wr(e,t={}){t.registry=process.env.GIGET_REGISTRY??t.registry,t.auth=process.env.GIGET_AUTH??t.auth;let n=t.registry===!1?void 0:Sr(t.registry,{auth:t.auth}),r=t.provider||(n?`registry`:`github`),i=e,a=e.match(Cr);a&&(r=a[1],i=e.slice(a[0].length),(r===`http`||r===`https`)&&(i=e)),r.endsWith(`+git`)&&(i=`${r.slice(0,-4)}:${i}`,r=`git`);let o=t.providers?.[r]||xr[r]||n;if(!o)throw Error(`Unsupported provider: ${r}`);let s=await Promise.resolve().then(()=>o(i,{auth:t.auth})).catch(e=>{throw Error(`Failed to download template from ${r}: ${e.message}`)});if(!s)throw Error(`Failed to resolve template from ${r}`);s.name=(s.name||`template`).replace(/[^\da-z-]/gi,`-`),s.defaultDir=(s.defaultDir||s.name).replace(/[^\da-z-]/gi,`-`);let c=W(W(ur(),r,s.name),(s.version||s.name)+`.tar.gz`);if(t.preferOffline&&h(c)&&(t.offline=!0),!t.offline){await C(xn(c),{recursive:!0});let e=Date.now();if(typeof s.tar==`function`){let e=s.tar;await(async()=>{let n=await e({auth:t.auth});await ce(n instanceof ae?n:ae.fromWeb(n),m(c))})().catch(e=>{if(!h(c))throw e;Y(`Download error. Using cached version:`,e),t.offline=!0})}else await or(s.tar,c,{headers:{Authorization:t.auth?`Bearer ${t.auth}`:void 0,...dr(s.headers)}}).catch(e=>{if(!h(c))throw e;Y(`Download error. Using cached version:`,e),t.offline=!0});Y(`Downloaded to ${c} in ${Date.now()-e}ms`)}if(!h(c))throw Error(`Tarball not found: ${c} (offline: ${t.offline})`);let l=W(W(t.cwd||`.`),t.dir||s.defaultDir);if(t.forceClean&&await T(l,{recursive:!0,force:!0}),!t.force&&h(l)&&g(l).length>0)throw Error(`Destination ${l} already exists.`);await C(l,{recursive:!0});let u=Date.now(),d=s.subdir?.replace(/^\//,``)||``,{extract:f}=await import(`./tar-Bd_UMghg.mjs`).then(e=>e.t);if(await f({file:c,cwd:l,onReadEntry(e){e.path=e.path.split(`/`).splice(1).join(`/`),d&&(e.path.startsWith(d+`/`)?e.path=e.path.slice(d.length):e.path=``)}}),Y(`Extracted to ${l} in ${Date.now()-u}ms`),t.install){Y(`Installing dependencies...`);let{installDependencies:e}=await Promise.resolve().then(()=>fn).then(e=>e.t);await e({cwd:l,silent:t.silent,...typeof t.install==`object`?t.install:{}})}return{...s,source:i,dir:l}}function Tr(e){return e}const Er=Tr([`default`,`monorepo`]),Dr={name:{type:`positional`,description:`Project name`,required:!1},template:{type:`enum`,description:`Template to use`,options:Er,required:!1,alias:[`t`]},install:{type:`boolean`,description:`Install dependencies`,required:!1,alias:[`i`]}};var Z=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),Q=t(import.meta.url);const Or=/^path$/i,kr={key:`PATH`,value:``};function Ar(e){for(let t in e){if(!Object.prototype.hasOwnProperty.call(e,t)||!Or.test(t))continue;let n=e[t];return n?{key:t,value:n}:kr}return kr}function jr(e,t){let n=t.value.split(y),r=[],i=e,a;do r.push(ee(i,`node_modules`,`.bin`)),a=i,i=b(i);while(i!==a);r.push(b(process.execPath));let o=r.concat(n).join(y);return{key:t.key,value:o}}function Mr(e,t){let n={...process.env,...t},r=jr(e,Ar(n));return n[r.key]=r.value,n}const Nr=e=>{let t=e.length,n=new ie,r=()=>{--t===0&&n.end()};for(let t of e)ce(t,n,{end:!1}).then(r).catch(r);return n};var Pr=Z(((e,t)=>{t.exports=a,a.sync=o;var n=Q(`fs`);function r(e,t){var n=t.pathExt===void 0?process.env.PATHEXT:t.pathExt;if(!n||(n=n.split(`;`),n.indexOf(``)!==-1))return!0;for(var r=0;r<n.length;r++){var i=n[r].toLowerCase();if(i&&e.substr(-i.length).toLowerCase()===i)return!0}return!1}function i(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:r(t,n)}function a(e,t,r){n.stat(e,function(n,a){r(n,n?!1:i(a,e,t))})}function o(e,t){return i(n.statSync(e),e,t)}})),Fr=Z(((e,t)=>{t.exports=r,r.sync=i;var n=Q(`fs`);function r(e,t,r){n.stat(e,function(e,n){r(e,e?!1:a(n,t))})}function i(e,t){return a(n.statSync(e),t)}function a(e,t){return e.isFile()&&o(e,t)}function o(e,t){var n=e.mode,r=e.uid,i=e.gid,a=t.uid===void 0?process.getuid&&process.getuid():t.uid,o=t.gid===void 0?process.getgid&&process.getgid():t.gid,s=64,c=8,l=1,u=s|c;return n&l||n&c&&i===o||n&s&&r===a||n&u&&a===0}})),Ir=Z(((e,t)=>{Q(`fs`);var n=process.platform===`win32`||global.TESTING_WINDOWS?Pr():Fr();t.exports=r,r.sync=i;function r(e,t,i){if(typeof t==`function`&&(i=t,t={}),!i){if(typeof Promise!=`function`)throw TypeError(`callback not provided`);return new Promise(function(n,i){r(e,t||{},function(e,t){e?i(e):n(t)})})}n(e,t||{},function(e,n){e&&(e.code===`EACCES`||t&&t.ignoreErrors)&&(e=null,n=!1),i(e,n)})}function i(e,t){try{return n.sync(e,t||{})}catch(e){if(t&&t.ignoreErrors||e.code===`EACCES`)return!1;throw e}}})),Lr=Z(((e,t)=>{let n=process.platform===`win32`||process.env.OSTYPE===`cygwin`||process.env.OSTYPE===`msys`,r=Q(`path`),i=n?`;`:`:`,a=Ir(),o=e=>Object.assign(Error(`not found: ${e}`),{code:`ENOENT`}),s=(e,t)=>{let r=t.colon||i,a=e.match(/\//)||n&&e.match(/\\/)?[``]:[...n?[process.cwd()]:[],...(t.path||process.env.PATH||``).split(r)],o=n?t.pathExt||process.env.PATHEXT||`.EXE;.CMD;.BAT;.COM`:``,s=n?o.split(r):[``];return n&&e.indexOf(`.`)!==-1&&s[0]!==``&&s.unshift(``),{pathEnv:a,pathExt:s,pathExtExe:o}},c=(e,t,n)=>{typeof t==`function`&&(n=t,t={}),t||={};let{pathEnv:i,pathExt:c,pathExtExe:l}=s(e,t),u=[],d=n=>new Promise((a,s)=>{if(n===i.length)return t.all&&u.length?a(u):s(o(e));let c=i[n],l=/^".*"$/.test(c)?c.slice(1,-1):c,d=r.join(l,e);a(f(!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d,n,0))}),f=(e,n,r)=>new Promise((i,o)=>{if(r===c.length)return i(d(n+1));let s=c[r];a(e+s,{pathExt:l},(a,o)=>{if(!a&&o)if(t.all)u.push(e+s);else return i(e+s);return i(f(e,n,r+1))})});return n?d(0).then(e=>n(null,e),n):d(0)};t.exports=c,c.sync=(e,t)=>{t||={};let{pathEnv:n,pathExt:i,pathExtExe:c}=s(e,t),l=[];for(let o=0;o<n.length;o++){let s=n[o],u=/^".*"$/.test(s)?s.slice(1,-1):s,d=r.join(u,e),f=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;for(let e=0;e<i.length;e++){let n=f+i[e];try{if(a.sync(n,{pathExt:c}))if(t.all)l.push(n);else return n}catch{}}}if(t.all&&l.length)return l;if(t.nothrow)return null;throw o(e)}})),Rr=Z(((e,t)=>{let n=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)===`win32`?Object.keys(t).reverse().find(e=>e.toUpperCase()===`PATH`)||`Path`:`PATH`};t.exports=n,t.exports.default=n})),zr=Z(((e,t)=>{let n=Q(`path`),r=Lr(),i=Rr();function a(e,t){let a=e.options.env||process.env,o=process.cwd(),s=e.options.cwd!=null,c=s&&process.chdir!==void 0&&!process.chdir.disabled;if(c)try{process.chdir(e.options.cwd)}catch{}let l;try{l=r.sync(e.command,{path:a[i({env:a})],pathExt:t?n.delimiter:void 0})}catch{}finally{c&&process.chdir(o)}return l&&=n.resolve(s?e.options.cwd:``,l),l}function o(e){return a(e)||a(e,!0)}t.exports=o})),Br=Z(((e,t)=>{let n=/([()\][%!^"`<>&|;, *?])/g;function r(e){return e=e.replace(n,`^$1`),e}function i(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,`$1$1\\"`),e=e.replace(/(?=(\\+?)?)\1$/,`$1$1`),e=`"${e}"`,e=e.replace(n,`^$1`),t&&(e=e.replace(n,`^$1`)),e}t.exports.command=r,t.exports.argument=i})),Vr=Z(((e,t)=>{t.exports=/^#!(.*)/})),Hr=Z(((e,t)=>{let n=Vr();t.exports=(e=``)=>{let t=e.match(n);if(!t)return null;let[r,i]=t[0].replace(/#! ?/,``).split(` `),a=r.split(`/`).pop();return a===`env`?i:i?`${a} ${i}`:a}})),Ur=Z(((e,t)=>{let n=Q(`fs`),r=Hr();function i(e){let t=Buffer.alloc(150),i;try{i=n.openSync(e,`r`),n.readSync(i,t,0,150,0),n.closeSync(i)}catch{}return r(t.toString())}t.exports=i})),Wr=Z(((e,t)=>{let n=Q(`path`),r=zr(),i=Br(),a=Ur(),o=process.platform===`win32`,s=/\.(?:com|exe)$/i,c=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function l(e){e.file=r(e);let t=e.file&&a(e.file);return t?(e.args.unshift(e.file),e.command=t,r(e)):e.file}function u(e){if(!o)return e;let t=l(e),r=!s.test(t);if(e.options.forceShell||r){let r=c.test(t);e.command=n.normalize(e.command),e.command=i.command(e.command),e.args=e.args.map(e=>i.argument(e,r)),e.args=[`/d`,`/s`,`/c`,`"${[e.command].concat(e.args).join(` `)}"`],e.command=process.env.comspec||`cmd.exe`,e.options.windowsVerbatimArguments=!0}return e}function d(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:u(r)}t.exports=d})),Gr=Z(((e,t)=>{let n=process.platform===`win32`;function r(e,t){return Object.assign(Error(`${t} ${e.command} ENOENT`),{code:`ENOENT`,errno:`ENOENT`,syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function i(e,t){if(!n)return;let r=e.emit;e.emit=function(n,i){if(n===`exit`){let n=a(i,t);if(n)return r.call(e,`error`,n)}return r.apply(e,arguments)}}function a(e,t){return n&&e===1&&!t.file?r(t.original,`spawn`):null}function o(e,t){return n&&e===1&&!t.file?r(t.original,`spawnSync`):null}t.exports={hookChildProcess:i,verifyENOENT:a,verifyENOENTSync:o,notFoundError:r}})),Kr=Z(((e,t)=>{let n=Q(`child_process`),r=Wr(),i=Gr();function a(e,t,a){let o=r(e,t,a),s=n.spawn(o.command,o.args,o.options);return i.hookChildProcess(s,o),s}function o(e,t,a){let o=r(e,t,a),s=n.spawnSync(o.command,o.args,o.options);return s.error=s.error||i.verifyENOENTSync(s.status,o),s}t.exports=a,t.exports.spawn=a,t.exports.sync=o,t.exports._parse=r,t.exports._enoent=i}))(),qr=class extends Error{get exitCode(){if(this.result.exitCode!==null)return this.result.exitCode}constructor(e,t){super(`Process exited with non-zero status (${e.exitCode})`),this.result=e,this.output=t}};const Jr={timeout:void 0,persist:!1},Yr={windowsHide:!0};function Xr(e){let t=new AbortController;for(let n of e){if(n.aborted)return t.abort(),n;n.addEventListener(`abort`,()=>{t.abort(n.reason)},{signal:t.signal})}return t.signal}async function Zr(e){let t=``;try{for await(let n of e)t+=n.toString()}catch{}return t}var Qr=class{_process;_aborted=!1;_options;_command;_args;_resolveClose;_processClosed;_thrownError;get process(){return this._process}get pid(){return this._process?.pid}get exitCode(){if(this._process&&this._process.exitCode!==null)return this._process.exitCode}constructor(e,t,n){this._options={...Jr,...n},this._command=e,this._args=t??[],this._processClosed=new Promise(e=>{this._resolveClose=e})}kill(e){return this._process?.kill(e)===!0}get aborted(){return this._aborted}get killed(){return this._process?.killed===!0}pipe(e,t,n){return $r(e,t,{...n,stdin:this})}async*[Symbol.asyncIterator](){let e=this._process;if(!e)return;let t=[];this._streamErr&&t.push(this._streamErr),this._streamOut&&t.push(this._streamOut);let n=Nr(t),r=d.createInterface({input:n});for await(let e of r)yield e.toString();if(await this._processClosed,e.removeAllListeners(),this._thrownError)throw this._thrownError;if(this._options?.throwOnError&&this.exitCode!==0&&this.exitCode!==void 0)throw new qr(this)}async _waitForOutput(){let e=this._process;if(!e)throw Error(`No process was started`);let[t,n]=await Promise.all([this._streamOut?Zr(this._streamOut):``,this._streamErr?Zr(this._streamErr):``]);await this._processClosed;let{stdin:r}=this._options;if(r&&typeof r!=`string`&&await r,e.removeAllListeners(),this._thrownError)throw this._thrownError;let i={stderr:n,stdout:t,exitCode:this.exitCode};if(this._options.throwOnError&&this.exitCode!==0&&this.exitCode!==void 0)throw new qr(this,i);return i}then(e,t){return this._waitForOutput().then(e,t)}_streamOut;_streamErr;spawn(){let e=s(),t=this._options,n={...Yr,...t.nodeOptions},r=[];this._resetState(),t.timeout!==void 0&&r.push(AbortSignal.timeout(t.timeout)),t.signal!==void 0&&r.push(t.signal),t.persist===!0&&(n.detached=!0),r.length>0&&(n.signal=Xr(r)),n.env=Mr(e,n.env);let i=(0,Kr._parse)(this._command,this._args,n),a=se(i.command,i.args,i.options);if(a.stderr&&(this._streamErr=a.stderr),a.stdout&&(this._streamOut=a.stdout),this._process=a,a.once(`error`,this._onError),a.once(`close`,this._onClose),a.stdin){let{stdin:e}=t;typeof e==`string`?a.stdin.end(e):e?.process?.stdout?.pipe(a.stdin)}}_resetState(){this._aborted=!1,this._processClosed=new Promise(e=>{this._resolveClose=e}),this._thrownError=void 0}_onError=e=>{if(e.name===`AbortError`&&(!(e.cause instanceof Error)||e.cause.name!==`TimeoutError`)){this._aborted=!0;return}this._thrownError=e};_onClose=()=>{this._resolveClose&&this._resolveClose()}};const $=(e,t,n)=>{let r=new Qr(e,t,n);return r.spawn(),r},$r=$;function ei(){let e=process.env.npm_config_user_agent??``;return e.startsWith(`pnpm/`)?`pnpm`:e.startsWith(`yarn/`)?`yarn`:e.startsWith(`bun/`)?`bun`:e.startsWith(`deno/`)?`deno`:`npm`}async function ti(){try{return await $(`pnpm`,[`--version`],{throwOnError:!0}),!0}catch{return!1}}async function ni(e){await $(`git`,[`init`],{throwOnError:!1,nodeOptions:{cwd:e,stdio:`inherit`}})}async function ri(e,t){let n=kt({title:`Installing dependencies with ${t}...`,limit:5,retainLog:!1}),r=wt();r.start();let i=[`install`];t===`npm`&&i.push(`--legacy-peer-deps`);let a=$(t,i,{throwOnError:!1,nodeOptions:{cwd:e}});for await(let e of a){let t=e.trim();t&&n.message(t)}let o=await a;return r.stop(),o.exitCode===0?(n.success(`Dependencies installed`),!0):(n.error(`Dependency installation failed. You can run \`${t} install\` manually.`),!1)}function ii(e){return e===`npm`?`npm run dev`:e===`deno`?`deno task dev`:`${e} dev`}const ai=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/;function oi(e){for(let t of e){let e=t.codePointAt(0);if(e!==void 0&&(e<=31||`<>:"|?*`.includes(t)))return!0}return!1}function si(e){let t=e.trim();if(t.length===0)return`Project name is required`;if(t!==`.`){if(t.includes(`/`)||t.includes(`\\`))return`Project name cannot contain path separators`;if(oi(t))return`Project name contains invalid characters`;if(t===`..`)return`Project name cannot be ..`;if(t.startsWith(`.`))return`Project name cannot start with a period`;if(t.endsWith(`.`)||t.endsWith(`-`))return`Project name cannot end with a period or hyphen`;if(t.length>214)return`Project name must be 214 characters or fewer`;if(!ai.test(t))return`Use letters, numbers, periods, underscores, or hyphens`}}function ci(e,t){return typeof t==`string`&&e.includes(t)}async function li(e){let t;try{t=await re(e)}catch(e){if(e&&typeof e==`object`&&`code`in e&&e.code===`ENOENT`)return;throw e}if(t.length>0)return`Directory must be empty.`}async function ui(){let e=await At({message:`Project name:`,placeholder:`my-project`,defaultValue:`my-project`,validate(e){if(typeof e==`string`)return si(e)}});if(Ve(e)){L(`Operation cancelled.`);return}return e}async function di(){let e=await Et({message:`Select a template:`,options:[{value:`default`,label:`Default`,hint:`minimal TanStarter template`},{value:`monorepo`,label:`Monorepo (beta)`,hint:`TanStarter via Vite+ with pnpm`}]});if(Ve(e)){L(`Operation cancelled.`);return}return e}async function fi(){let e=await vt({message:`Install dependencies after scaffolding?`,initialValue:!0});if(Ve(e)){L(`Operation cancelled.`);return}return e}async function pi(e){let t=e.name,n=e.template,r=e.install,i=await ti()?`pnpm`:ei();if(!t&&(t=await ui(),!t))return;t=String(t).trim();let a=await li(t===`.`?process.cwd():x(process.cwd(),t));if(a){L(a);return}let o=si(t);if(o){L(o);return}if(!(!n&&(n=await di(),!n))&&!(r===void 0&&i===`pnpm`&&(r=await fi(),r===void 0))&&!(!ci(Er,n)||typeof r!=`boolean`))return{projectName:t,template:n,install:r,selectedPackageManager:void 0,preferredPackageManager:i}}const mi={default:{source:`github:mugnavo/tanstarter`,homeUrl:`https://github.com/mugnavo/tanstarter`},monorepo:{source:`github:mugnavo/tanstarter-plus`,homeUrl:`https://github.com/mugnavo/tanstarter-plus`}};function hi(e){return mi[e]}function gi(e,t){if(!t)return"This project was scaffolded with [`create-mugnavo`](https://github.com/mugnavo/create-mugnavo).";let n=hi(e);return`This project was scaffolded with \`create-mugnavo\` from commit [\`${t.slice(0,7)}\`](${`${n.homeUrl}/tree/${t}`}). See the [template changelog](${`${n.homeUrl}/compare/${t}...main`}) for newer changes.`}function _i(e,t,n){if(!n)return!1;let r=e.findIndex(e=>e.trim()===`## Issue watchlist`);if(r===-1)return!1;let i=e.findIndex((e,t)=>t>r&&e.startsWith(`## `)),a=i===-1?e.length:i,o=`${hi(t).homeUrl}/compare/${n}...main`;if(e.slice(r+1,a).some(e=>e.includes(o)))return!1;let s=r+1;for(;s<a&&e[s]?.trim()===``;)s+=1;return e.splice(s,0,`- [Template changelog](${o}) - Track template updates since this project was created.`),!0}function vi(e,t){return t===`.`?v(ee(e))||`app`:t}async function yi(e){await T(x(e,`LICENSE`),{force:!0})}async function bi(e,t){if(t===`default`){await te(x(e,`.env.example`),x(e,`.env`),p.COPYFILE_EXCL);return}if(t===`monorepo`){await te(x(e,`apps`,`web`,`.env.example`),x(e,`apps`,`web`,`.env`),p.COPYFILE_EXCL);return}}async function xi(e,t){let n=x(e,`package.json`),r=JSON.parse(await w(n,`utf8`));r.name=vi(e,t),await E(n,`${JSON.stringify(r,null,2)}\n`)}async function Si(e,t,n,r){let i=x(e,`README.md`),a=vi(e,n),o=await w(i,`utf8`),s=o.includes(`\r
86
86
  `)?`\r
87
87
  `:`
88
- `,c=o.split(/\r?\n/),l=c.findIndex(e=>e.startsWith(`# `));l===-1?c.length>0&&(c[0]=`# ${a}`):c[l]=`# ${a}`,Ti(c,[{marker:`<!-- scaffold:description -->`,replacementContent:vi(t,r),skipEmptyLinesAfterMarker:!0}]),yi(c,t,r);let u=c.join(s);u!==o&&await E(i,u)}function Ti(e,t){let n=!1;for(let{marker:r,replacementContent:i,skipEmptyLinesAfterMarker:a}of t){let t=e.findIndex(e=>e.trim()===r);if(t===-1)continue;let o=t+1;if(a)for(;e[o]!==void 0&&e[o]?.trim()===``;)o+=1;let s=e[o];if(s===void 0){e.splice(t,1),n=!0;continue}let c=`${s.match(/^\s*/)?.[0]??``}${i}`;e.splice(t,o-t+1,c),n=!0}return n}async function Ei(e,t){let n=await w(e,`utf8`),r=n.includes(`\r
88
+ `,c=o.split(/\r?\n/),l=c.findIndex(e=>e.startsWith(`# `));l===-1?c.length>0&&(c[0]=`# ${a}`):c[l]=`# ${a}`,Ci(c,[{marker:`<!-- scaffold:description -->`,replacementContent:gi(t,r),skipEmptyLinesAfterMarker:!0}]),_i(c,t,r);let u=c.join(s);u!==o&&await E(i,u)}function Ci(e,t){let n=!1;for(let{marker:r,replacementContent:i,skipEmptyLinesAfterMarker:a}of t){let t=e.findIndex(e=>e.trim()===r);if(t===-1)continue;let o=t+1;if(a)for(;e[o]!==void 0&&e[o]?.trim()===``;)o+=1;let s=e[o];if(s===void 0){e.splice(t,1),n=!0;continue}let c=`${s.match(/^\s*/)?.[0]??``}${i}`;e.splice(t,o-t+1,c),n=!0}return n}async function wi(e,t){let n=await w(e,`utf8`),r=n.includes(`\r
89
89
  `)?`\r
90
90
  `:`
91
- `,i=n.split(/\r?\n/);Ti(i,t)&&await E(e,i.join(r))}async function Di(e,t,n){let r=bi(e,n);await Ei(t===`default`?x(e,`src`,`routes`,`__root.tsx`):x(e,`apps`,`web`,`src`,`routes`,`__root.tsx`),[{marker:`// scaffold:title`,replacementContent:`title: ${JSON.stringify(r)},`},{marker:`// scaffold:description`,replacementContent:`content: "A TanStack Start project scaffolded with create-mugnavo.",`}])}async function Oi(e,t,n,r){await Promise.allSettled([xi(e),Si(e,t),Ci(e,n),wi(e,t,n,r),Di(e,t,n)])}function ki(e){return new URL(e).pathname.replace(/^\/|\/$/g,``)}async function Ai(e){try{let t=ki(e.homeUrl),n=await fetch(`https://api.github.com/repos/${t}/commits/main`,{headers:{accept:`application/vnd.github+json`,"user-agent":`create-mugnavo`},signal:AbortSignal.timeout(5e3)});if(!n.ok)throw Error(`GitHub API request failed with status ${n.status}`);let r=await n.json();if(!r.sha)throw Error(`GitHub API response did not include commit metadata`);return r.sha}catch{return}}function ji(e,t,n,r){let i=[];return e!==`.`&&i.push(`cd ${e}`),t||i.push(`${n} install${n===`npm`?` --legacy-peer-deps`:``}`),i.push(r,``,`See README.md for next steps`),i.join(`
92
- `)}ln(Zt({meta:{name:`create-mugnavo`,version:`0.4.1`,description:`Create a project using Mugnavo templates.`},args:Or,async run({args:e}){let t=await hi(e);if(!t)return;let{projectName:n,template:r,install:i,selectedPackageManager:a,preferredPackageManager:o}=t,s=wt();try{let e=_i(r),t=Ai(e);s.start(`Cloning project...`);let{dir:c,source:l}=await wr(e.source,{dir:n,force:!0,forceClean:!0});await Oi(c,r,n,await t);let u=a||o;s.stop(`Project cloned from ${l}`),await ri(c),i&&(await ii(c,u)||(i=!1)),St(`${ji(n,i,u,ai(u))}\n${e.homeUrl}`,`Next steps`),yt(`All set. Happy coding! 🚀`)}catch(e){s.stop(),yt(`Failed to download template. Please try again later.`),console.error(e);return}}}));export{};
91
+ `,i=n.split(/\r?\n/);Ci(i,t)&&await E(e,i.join(r))}async function Ti(e,t,n){let r=vi(e,n);await wi(t===`default`?x(e,`src`,`routes`,`__root.tsx`):x(e,`apps`,`web`,`src`,`routes`,`__root.tsx`),[{marker:`// scaffold:title`,replacementContent:`title: ${JSON.stringify(r)},`},{marker:`// scaffold:description`,replacementContent:`content: "A TanStack Start project scaffolded with create-mugnavo.",`}])}async function Ei(e,t,n,r){await Promise.allSettled([yi(e),bi(e,t),xi(e,n),Si(e,t,n,r),Ti(e,t,n)])}function Di(e){return new URL(e).pathname.replace(/^\/|\/$/g,``)}async function Oi(e){try{let t=Di(e.homeUrl),n=await fetch(`https://api.github.com/repos/${t}/commits/main`,{headers:{accept:`application/vnd.github+json`,"user-agent":`create-mugnavo`},signal:AbortSignal.timeout(5e3)});if(!n.ok)throw Error(`GitHub API request failed with status ${n.status}`);let r=await n.json();if(!r.sha)throw Error(`GitHub API response did not include commit metadata`);return r.sha}catch{return}}function ki(e,t,n,r){let i=[];return e!==`.`&&i.push(`cd ${e}`),t||i.push(`${n} install${n===`npm`?` --legacy-peer-deps`:``}`),i.push(r,``,`See README.md for next steps`),i.join(`
92
+ `)}ln(Zt({meta:{name:`create-mugnavo`,version:`0.5.0`,description:`Create a project using Mugnavo templates.`},args:Dr,async run({args:e}){let t=await pi(e);if(!t)return;let{projectName:n,template:r,install:i,selectedPackageManager:a,preferredPackageManager:o}=t,s=wt();try{let e=hi(r),t=Oi(e);s.start(`Cloning project...`);let{dir:c,source:l}=await wr(e.source,{dir:n,force:!0,forceClean:!0});await Ei(c,r,n,await t);let u=a||o;s.stop(`Project cloned from ${l}`),await ni(c),i&&(await ri(c,u)||(i=!1)),St(`${ki(n,i,u,ii(u))}\n${e.homeUrl}`,`Next steps`),yt(`All set. Happy coding! 🚀`)}catch(e){s.stop(),yt(`Failed to download template. Please try again later.`),console.error(e);return}}}));export{};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-mugnavo",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "Create a project using Mugnavo templates.",
5
5
  "homepage": "https://github.com/mugnavo/create-mugnavo#readme",
6
6
  "bugs": {
@@ -12,24 +12,23 @@
12
12
  "type": "git",
13
13
  "url": "git+https://github.com/mugnavo/create-mugnavo.git"
14
14
  },
15
- "bin": "./dist/index.mjs",
16
15
  "files": [
17
16
  "dist"
18
17
  ],
19
18
  "type": "module",
20
19
  "devDependencies": {
21
- "@clack/prompts": "^1.3.0",
22
- "@types/node": "^24.12.2",
23
- "bumpp": "^11.0.1",
20
+ "@clack/prompts": "^1.4.0",
21
+ "@types/node": "^24.12.4",
22
+ "bumpp": "^11.1.0",
24
23
  "citty": "^0.2.2",
25
24
  "giget": "^3.2.0",
26
- "oxfmt": "^0.47.0",
27
- "oxlint": "^1.62.0",
25
+ "oxfmt": "^0.49.0",
26
+ "oxlint": "^1.64.0",
28
27
  "oxlint-tsgolint": "^0.22.1",
29
28
  "tinyexec": "^1.1.2",
30
- "tsdown": "^0.21.10",
29
+ "tsdown": "^0.22.0",
31
30
  "typescript": "^6.0.3",
32
- "vitest": "^4.1.5"
31
+ "vitest": "^4.1.6"
33
32
  },
34
33
  "engines": {
35
34
  "node": ">=24"
@@ -44,5 +43,8 @@
44
43
  "check": "pnpm run format && pnpm run lint",
45
44
  "deps": "pnpm dlx taze@latest -Ilw",
46
45
  "test": "vitest"
46
+ },
47
+ "bin": {
48
+ "create-mugnavo": "./dist/index.mjs"
47
49
  }
48
50
  }