@arkenv/cli 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,87 +1,118 @@
1
1
  #!/usr/bin/env node
2
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let l=require(`node:child_process`),u=require(`node:path`);u=c(u,1);let d=require(`node:util`),f=require(`node:process`);f=c(f,1);let p=require(`node:readline`);p=c(p,1);let m=require(`node:tty`),h=require(`node:fs`);h=c(h,1);let g=require(`node:fs/promises`);g=c(g,1);let _=require(`jsonc-parser`),v=require(`dedent`);v=c(v,1);const y=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return t=>{let n=0;for(e.lastIndex=0;e.test(t);)n+=1;return t.length-n}})(),b=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,x=e=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141,S=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,ee=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,te=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/uy,ne=/\t{1,1000}/y,C=/[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/uy,w=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,re=/\p{M}+/gu,ie={limit:1/0,ellipsis:``},T=(e,t={},n={})=>{let r=t.limit??1/0,i=t.ellipsis??``,a=t?.ellipsisWidth??(i?T(i,ie,n).width:0),o=n.controlWidth??0,s=n.tabWidth??8,c=n.emojiWidth??2,l=n.regularWidth??1,u=n.wideWidth??2,d=[[w,l],[S,0],[ee,o],[ne,s],[C,c],[te,u]],f=0,p=0,m=e.length,h=0,g=!1,_=m,v=Math.max(0,r-a),E=0,D=0,O=0,k=0;outer:for(;;){if(D>E||p>=m&&p>f){let t=e.slice(E,D)||e.slice(f,p);h=0;for(let e of t.replaceAll(re,``)){let t=e.codePointAt(0)||0;if(k=b(t)?2:x(t)?u:l,O+k>v&&(_=Math.min(_,Math.max(E,f)+h)),O+k>r){g=!0;break outer}h+=e.length,O+=k}E=D=0}if(p>=m)break outer;for(let t=0,n=d.length;t<n;t++){let[n,i]=d[t];if(n.lastIndex=p,n.test(e)){if(h=n===te?y(e.slice(p,n.lastIndex)):n===C?1:n.lastIndex-p,k=h*i,O+k>v&&(_=Math.min(_,p+Math.floor((v-O)/i))),O+k>r){g=!0;break outer}O+=k,E=f,D=p,p=f=n.lastIndex;continue outer}}p+=1}return{width:g?v:O,index:g?_:m,truncated:g,ellipsed:g&&r>=a}},E={limit:1/0,ellipsis:``,ellipsisWidth:0},D=(e,t={})=>T(e,E,t).width,O=`]8;;`,k=RegExp(`(?:\\[(?<code>\\d+)m|\\${O}(?<uri>.*))`,`y`),ae=e=>{if(e>=30&&e<=37||e>=90&&e<=97)return 39;if(e>=40&&e<=47||e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0},oe=e=>`[${e}m`,se=e=>`${O}${e}`,A=(e,t,n)=>{let r=t[Symbol.iterator](),i=!1,a=!1,o=e.at(-1),s=o===void 0?0:D(o),c=r.next(),l=r.next(),u=0;for(;!c.done;){let o=c.value,d=D(o);s+d<=n?e[e.length-1]+=o:(e.push(o),s=0),(o===`\x1B`||o===`›`)&&(i=!0,a=t.startsWith(O,u+1)),i?a?o===`\x07`&&(i=!1,a=!1):o===`m`&&(i=!1):(s+=d,s===n&&!l.done&&(e.push(``),s=0)),c=l,l=r.next(),u+=o.length}o=e.at(-1),!s&&o!==void 0&&o.length&&e.length>1&&(e[e.length-2]+=e.pop())},ce=e=>{let t=e.split(` `),n=t.length;for(;n&&!D(t[n-1]);)n--;return n===t.length?e:t.slice(0,n).join(` `)+t.slice(n).join(``)},le=(e,t,n={})=>{if(n.trim!==!1&&e.trim()===``)return``;let r=``,i,a,o=e.split(` `),s=[``],c=0;for(let e=0;e<o.length;e++){let r=o[e];if(n.trim!==!1){let e=s.at(-1)??``,t=e.trimStart();e.length!==t.length&&(s[s.length-1]=t,c=D(t))}e!==0&&(c>=t&&(n.wordWrap===!1||n.trim===!1)&&(s.push(``),c=0),(c||n.trim===!1)&&(s[s.length-1]+=` `,c++));let i=D(r);if(n.hard&&i>t){let e=t-c,n=1+Math.floor((i-e-1)/t);Math.floor((i-1)/t)<n&&s.push(``),A(s,r,t),c=D(s.at(-1)??``);continue}if(c+i>t&&c&&i){if(n.wordWrap===!1&&c<t){A(s,r,t),c=D(s.at(-1)??``);continue}s.push(``),c=0}if(c+i>t&&n.wordWrap===!1){A(s,r,t),c=D(s.at(-1)??``);continue}s[s.length-1]+=r,c+=i}n.trim!==!1&&(s=s.map(e=>ce(e)));let l=s.join(`
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===`›`){k.lastIndex=e+1;let t=k.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
- `){a&&(r+=se(``));let e=i?ae(i):void 0;i&&e&&(r+=oe(e))}else t===`
5
- `&&(i&&ae(i)&&(r+=oe(i)),a&&(r+=se(a)))}return r},ue=/\r?\n/;function j(e,t,n){return String(e).normalize().split(ue).map(e=>le(e,t,n)).join(`
6
- `)}var M=o(((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 N(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?N(a,t<0?-1:1,n):a}const P={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 de(e,t){if(typeof e==`string`)return P.aliases.get(e)===t;for(let n of e)if(n!==void 0&&de(n,t))return!0;return!1}function fe(e,t){if(e===t)return;let n=e.split(`
2
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let l=require(`node:util`),u=require(`node:process`);u=c(u,1);let d=require(`node:readline`);d=c(d,1);let f=require(`node:tty`),p=require(`node:fs`);p=c(p,1);let m=require(`node:path`);m=c(m,1);let h=require(`node:child_process`),g=require(`dedent`);g=c(g,1);let _=require(`node:fs/promises`);_=c(_,1);let v=require(`magicast`),y=require(`jsonc-parser`);const b=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return t=>{let n=0;for(e.lastIndex=0;e.test(t);)n+=1;return t.length-n}})(),x=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,S=e=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141,ee=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,te=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,C=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/uy,ne=/\t{1,1000}/y,w=/[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/uy,re=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,ie=/\p{M}+/gu,T={limit:1/0,ellipsis:``},ae=(e,t={},n={})=>{let r=t.limit??1/0,i=t.ellipsis??``,a=t?.ellipsisWidth??(i?ae(i,T,n).width:0),o=n.controlWidth??0,s=n.tabWidth??8,c=n.emojiWidth??2,l=n.regularWidth??1,u=n.wideWidth??2,d=[[re,l],[ee,0],[te,o],[ne,s],[w,c],[C,u]],f=0,p=0,m=e.length,h=0,g=!1,_=m,v=Math.max(0,r-a),y=0,E=0,D=0,O=0;outer:for(;;){if(E>y||p>=m&&p>f){let t=e.slice(y,E)||e.slice(f,p);h=0;for(let e of t.replaceAll(ie,``)){let t=e.codePointAt(0)||0;if(O=x(t)?2:S(t)?u:l,D+O>v&&(_=Math.min(_,Math.max(y,f)+h)),D+O>r){g=!0;break outer}h+=e.length,D+=O}y=E=0}if(p>=m)break outer;for(let t=0,n=d.length;t<n;t++){let[n,i]=d[t];if(n.lastIndex=p,n.test(e)){if(h=n===C?b(e.slice(p,n.lastIndex)):n===w?1:n.lastIndex-p,O=h*i,D+O>v&&(_=Math.min(_,p+Math.floor((v-D)/i))),D+O>r){g=!0;break outer}D+=O,y=f,E=p,p=f=n.lastIndex;continue outer}}p+=1}return{width:g?v:D,index:g?_:m,truncated:g,ellipsed:g&&r>=a}},E={limit:1/0,ellipsis:``,ellipsisWidth:0},D=(e,t={})=>ae(e,E,t).width,O=`]8;;`,oe=RegExp(`(?:\\[(?<code>\\d+)m|\\${O}(?<uri>.*))`,`y`),se=e=>{if(e>=30&&e<=37||e>=90&&e<=97)return 39;if(e>=40&&e<=47||e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0},ce=e=>`[${e}m`,le=e=>`${O}${e}`,k=(e,t,n)=>{let r=t[Symbol.iterator](),i=!1,a=!1,o=e.at(-1),s=o===void 0?0:D(o),c=r.next(),l=r.next(),u=0;for(;!c.done;){let o=c.value,d=D(o);s+d<=n?e[e.length-1]+=o:(e.push(o),s=0),(o===`\x1B`||o===`›`)&&(i=!0,a=t.startsWith(O,u+1)),i?a?o===`\x07`&&(i=!1,a=!1):o===`m`&&(i=!1):(s+=d,s===n&&!l.done&&(e.push(``),s=0)),c=l,l=r.next(),u+=o.length}o=e.at(-1),!s&&o!==void 0&&o.length&&e.length>1&&(e[e.length-2]+=e.pop())},ue=e=>{let t=e.split(` `),n=t.length;for(;n&&!D(t[n-1]);)n--;return n===t.length?e:t.slice(0,n).join(` `)+t.slice(n).join(``)},de=(e,t,n={})=>{if(n.trim!==!1&&e.trim()===``)return``;let r=``,i,a,o=e.split(` `),s=[``],c=0;for(let e=0;e<o.length;e++){let r=o[e];if(n.trim!==!1){let e=s.at(-1)??``,t=e.trimStart();e.length!==t.length&&(s[s.length-1]=t,c=D(t))}e!==0&&(c>=t&&(n.wordWrap===!1||n.trim===!1)&&(s.push(``),c=0),(c||n.trim===!1)&&(s[s.length-1]+=` `,c++));let i=D(r);if(n.hard&&i>t){let e=t-c,n=1+Math.floor((i-e-1)/t);Math.floor((i-1)/t)<n&&s.push(``),k(s,r,t),c=D(s.at(-1)??``);continue}if(c+i>t&&c&&i){if(n.wordWrap===!1&&c<t){k(s,r,t),c=D(s.at(-1)??``);continue}s.push(``),c=0}if(c+i>t&&n.wordWrap===!1){k(s,r,t),c=D(s.at(-1)??``);continue}s[s.length-1]+=r,c+=i}n.trim!==!1&&(s=s.map(e=>ue(e)));let l=s.join(`
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
+ `){a&&(r+=le(``));let e=i?se(i):void 0;i&&e&&(r+=ce(e))}else t===`
5
+ `&&(i&&se(i)&&(r+=ce(i)),a&&(r+=le(a)))}return r},fe=/\r?\n/;function A(e,t,n){return String(e).normalize().split(fe).map(e=>de(e,t,n)).join(`
6
+ `)}var j=o(((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 M(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?M(a,t<0?-1:1,n):a}const N={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 P(e,t){if(typeof e==`string`)return N.aliases.get(e)===t;for(let n of e)if(n!==void 0&&P(n,t))return!0;return!1}function pe(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 pe=globalThis.process.platform.startsWith(`win`),me=Symbol(`clack:cancel`);function F(e){return e===me}function I(e,t){let n=e;n.isTTY&&n.setRawMode(t)}function he({input:e=f.stdin,output:t=f.stdout,overwrite:n=!0,hideCursor:r=!0}={}){let i=p.createInterface({input:e,output:t,prompt:``,tabSize:1});p.emitKeypressEvents(e,i),e instanceof m.ReadStream&&e.isTTY&&e.setRawMode(!0);let a=(i,{name:o,sequence:s})=>{if(de([String(i),o,s],`cancel`)){r&&t.write(M.cursor.show),process.exit(0);return}if(!n)return;let c=o===`return`?0:-1,l=o===`return`?-1:0;p.moveCursor(t,c,l,()=>{p.clearLine(t,1,()=>{e.once(`keypress`,a)})})};return r&&t.write(M.cursor.hide),e.once(`keypress`,a),()=>{e.off(`keypress`,a),r&&t.write(M.cursor.show),e instanceof m.ReadStream&&e.isTTY&&!pe&&e.setRawMode(!1),i.terminal=!1,i.close()}}const L=e=>`columns`in e&&typeof e.columns==`number`?e.columns:80,ge=e=>`rows`in e&&typeof e.rows==`number`?e.rows:20;function R(e,t,n,r=n,i){return j(t,L(e??f.stdout)-n.length,{hard:!0,trim:!1}).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 me=globalThis.process.platform.startsWith(`win`),F=Symbol(`clack:cancel`);function I(e){return e===F}function L(e,t){let n=e;n.isTTY&&n.setRawMode(t)}function he({input:e=u.stdin,output:t=u.stdout,overwrite:n=!0,hideCursor:r=!0}={}){let i=d.createInterface({input:e,output:t,prompt:``,tabSize:1});d.emitKeypressEvents(e,i),e instanceof f.ReadStream&&e.isTTY&&e.setRawMode(!0);let a=(i,{name:o,sequence:s})=>{if(P([String(i),o,s],`cancel`)){r&&t.write(j.cursor.show),process.exit(0);return}if(!n)return;let c=o===`return`?0:-1,l=o===`return`?-1:0;d.moveCursor(t,c,l,()=>{d.clearLine(t,1,()=>{e.once(`keypress`,a)})})};return r&&t.write(j.cursor.hide),e.once(`keypress`,a),()=>{e.off(`keypress`,a),r&&t.write(j.cursor.show),e instanceof f.ReadStream&&e.isTTY&&!me&&e.setRawMode(!1),i.terminal=!1,i.close()}}const R=e=>`columns`in e&&typeof e.columns==`number`?e.columns:80,ge=e=>`rows`in e&&typeof e.rows==`number`?e.rows:20;function z(e,t,n,r=n,i){return A(t,R(e??u.stdout)-n.length,{hard:!0,trim:!1}).split(`
9
9
  `).map((e,t)=>{let a=i?i(e,t):e;return`${t===0?r:n}${a}`}).join(`
10
- `)}let z=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=f.stdin,output:r=f.stdout,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(me);this._abortSignal.addEventListener(`abort`,()=>{this.state=`cancel`,this.close()},{once:!0})}this.rl=p.default.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),I(this.input,!0),this.output.on(`resize`,this.render),this.render(),this.once(`submit`,()=>{this.output.write(M.cursor.show),this.output.off(`resize`,this.render),I(this.input,!1),e(this.value)}),this.once(`cancel`,()=>{this.output.write(M.cursor.show),this.output.off(`resize`,this.render),I(this.input,!1),e(me)})})}_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&&P.aliases.has(t.name)&&this.emit(`cursor`,P.aliases.get(t.name)),P.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`)}de([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
- `),I(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let e=j(this._prevFrame,process.stdout.columns,{hard:!0,trim:!1}).split(`
12
- `).length-1;this.output.write(M.cursor.move(-999,e*-1))}render(){let e=j(this._render(this)??``,process.stdout.columns,{hard:!0,trim:!1});if(e!==this._prevFrame){if(this.state===`initial`)this.output.write(M.cursor.hide);else{let t=fe(this._prevFrame,e),n=ge(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(M.cursor.move(0,a-i)),this.output.write(M.erase.lines(1));let t=e.split(`
13
- `);this.output.write(t[a]),this._prevFrame=e,this.output.write(M.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(M.cursor.move(0,e))}this.output.write(M.erase.down());let t=e.split(`
10
+ `)}let B=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=u.stdin,output:r=u.stdout,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(F);this._abortSignal.addEventListener(`abort`,()=>{this.state=`cancel`,this.close()},{once:!0})}this.rl=d.default.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),L(this.input,!0),this.output.on(`resize`,this.render),this.render(),this.once(`submit`,()=>{this.output.write(j.cursor.show),this.output.off(`resize`,this.render),L(this.input,!1),e(this.value)}),this.once(`cancel`,()=>{this.output.write(j.cursor.show),this.output.off(`resize`,this.render),L(this.input,!1),e(F)})})}_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&&N.aliases.has(t.name)&&this.emit(`cursor`,N.aliases.get(t.name)),N.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`)}P([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
+ `),L(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let e=A(this._prevFrame,process.stdout.columns,{hard:!0,trim:!1}).split(`
12
+ `).length-1;this.output.write(j.cursor.move(-999,e*-1))}render(){let e=A(this._render(this)??``,process.stdout.columns,{hard:!0,trim:!1});if(e!==this._prevFrame){if(this.state===`initial`)this.output.write(j.cursor.hide);else{let t=pe(this._prevFrame,e),n=ge(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(j.cursor.move(0,a-i)),this.output.write(j.erase.lines(1));let t=e.split(`
13
+ `);this.output.write(t[a]),this._prevFrame=e,this.output.write(j.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(j.cursor.move(0,e))}this.output.write(j.erase.down());let t=e.split(`
14
14
  `).slice(a);this.output.write(t.join(`
15
- `)),this._prevFrame=e;return}}this.output.write(M.erase.down())}this.output.write(e),this.state===`initial`&&(this.state=`active`),this._prevFrame=e}}};var _e=class extends z{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(M.cursor.move(0,-1)),this.value=e,this.state=`submit`,this.close()}),this.on(`cursor`,()=>{this.value=!this.value})}},ve=class extends z{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?N(n,1,this.options):n,this.changeValue(),this.on(`cursor`,e=>{switch(e){case`left`:case`up`:this.cursor=N(this.cursor,-1,this.options);break;case`down`:case`right`:this.cursor=N(this.cursor,1,this.options);break}this.changeValue()})}},ye=class extends z{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}${(0,d.styleText)(`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 be(){return f.default.platform===`win32`?!!f.default.env.CI||!!f.default.env.WT_SESSION||!!f.default.env.TERMINUS_SUBLIME||f.default.env.ConEmuTask===`{cmd::Cmder}`||f.default.env.TERM_PROGRAM===`Terminus-Sublime`||f.default.env.TERM_PROGRAM===`vscode`||f.default.env.TERM===`xterm-256color`||f.default.env.TERM===`alacritty`||f.default.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`:f.default.env.TERM!==`linux`}const B=be(),xe=()=>process.env.CI===`true`,V=(e,t)=>B?e:t,Se=V(`◆`,`*`),Ce=V(`■`,`x`),we=V(`▲`,`x`),H=V(`◇`,`o`),U=V(`│`,`|`),W=V(`└`,`—`),G=V(`●`,`>`),K=V(`○`,` `),Te=V(`●`,`•`),Ee=V(`◆`,`*`),De=V(`▲`,`!`),Oe=V(`■`,`x`),ke=e=>{switch(e){case`initial`:case`active`:return(0,d.styleText)(`cyan`,Se);case`cancel`:return(0,d.styleText)(`red`,Ce);case`error`:return(0,d.styleText)(`yellow`,we);case`submit`:return(0,d.styleText)(`green`,H)}},Ae=e=>{switch(e){case`initial`:case`active`:return(0,d.styleText)(`cyan`,U);case`cancel`:return(0,d.styleText)(`red`,U);case`error`:return(0,d.styleText)(`yellow`,U);case`submit`:return(0,d.styleText)(`green`,U)}},je=(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}},Me=({cursor:e,options:t,style:n,output:r=process.stdout,maxItems:i=1/0,columnPadding:a=0,rowPadding:o=4})=>{let s=L(r)-a,c=ge(r),l=(0,d.styleText)(`dim`,`...`),u=Math.max(c-o,0),f=Math.max(Math.min(i,u),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=j(n(t[r],r===e),s,{hard:!0,trim:!1}).split(`
16
- `);_.push(i),v+=i.length}if(v>u){let t=0,n=0,r=v,i=e-y,a=(e,t)=>je(_,r,e,t,u);m?({lineCount:r,removals:t}=a(0,i),r>u&&({lineCount:r,removals:n}=a(i+1,_.length))):({lineCount:r,removals:n}=a(i+1,_.length),r>u&&({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(l);for(let e of _)for(let t of e)x.push(t);return h&&x.push(l),x},q=e=>{let t=e.active??`Yes`,n=e.inactive??`No`;return new _e({active:t,inactive:n,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue??!0,render(){let r=e.withGuide??P.withGuide,i=`${ke(this.state)} `,a=r?`${(0,d.styleText)(`gray`,U)} `:``,o=R(e.output,e.message,a,i),s=`${r?`${(0,d.styleText)(`gray`,U)}
15
+ `)),this._prevFrame=e;return}}this.output.write(j.erase.down())}this.output.write(e),this.state===`initial`&&(this.state=`active`),this._prevFrame=e}}};var _e=class extends B{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(j.cursor.move(0,-1)),this.value=e,this.state=`submit`,this.close()}),this.on(`cursor`,()=>{this.value=!this.value})}},ve=class extends B{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?M(n,1,this.options):n,this.changeValue(),this.on(`cursor`,e=>{switch(e){case`left`:case`up`:this.cursor=M(this.cursor,-1,this.options);break;case`down`:case`right`:this.cursor=M(this.cursor,1,this.options);break}this.changeValue()})}},ye=class extends B{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}${(0,l.styleText)(`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 be(){return u.default.platform===`win32`?!!u.default.env.CI||!!u.default.env.WT_SESSION||!!u.default.env.TERMINUS_SUBLIME||u.default.env.ConEmuTask===`{cmd::Cmder}`||u.default.env.TERM_PROGRAM===`Terminus-Sublime`||u.default.env.TERM_PROGRAM===`vscode`||u.default.env.TERM===`xterm-256color`||u.default.env.TERM===`alacritty`||u.default.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`:u.default.env.TERM!==`linux`}const V=be(),xe=()=>process.env.CI===`true`,H=(e,t)=>V?e:t,Se=H(`◆`,`*`),Ce=H(`■`,`x`),we=H(`▲`,`x`),U=H(`◇`,`o`),W=H(`│`,`|`),G=H(`└`,`—`),Te=H(`●`,`>`),K=H(`○`,` `),Ee=H(`─`,`-`),De=H(`╮`,`+`),Oe=H(`├`,`+`),ke=H(`╯`,`+`),Ae=H(`╰`,`+`),je=H(`●`,`•`),Me=H(`◆`,`*`),Ne=H(`▲`,`!`),Pe=H(`■`,`x`),Fe=e=>{switch(e){case`initial`:case`active`:return(0,l.styleText)(`cyan`,Se);case`cancel`:return(0,l.styleText)(`red`,Ce);case`error`:return(0,l.styleText)(`yellow`,we);case`submit`:return(0,l.styleText)(`green`,U)}},Ie=e=>{switch(e){case`initial`:case`active`:return(0,l.styleText)(`cyan`,W);case`cancel`:return(0,l.styleText)(`red`,W);case`error`:return(0,l.styleText)(`yellow`,W);case`submit`:return(0,l.styleText)(`green`,W)}},Le=(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}},Re=({cursor:e,options:t,style:n,output:r=process.stdout,maxItems:i=1/0,columnPadding:a=0,rowPadding:o=4})=>{let s=R(r)-a,c=ge(r),u=(0,l.styleText)(`dim`,`...`),d=Math.max(c-o,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=A(n(t[r],r===e),s,{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)=>Le(_,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},q=e=>{let t=e.active??`Yes`,n=e.inactive??`No`;return new _e({active:t,inactive:n,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue??!0,render(){let r=e.withGuide??N.withGuide,i=`${Fe(this.state)} `,a=r?`${(0,l.styleText)(`gray`,W)} `:``,o=z(e.output,e.message,a,i),s=`${r?`${(0,l.styleText)(`gray`,W)}
17
17
  `:``}${o}
18
- `,c=this.value?t:n;switch(this.state){case`submit`:return`${s}${r?`${(0,d.styleText)(`gray`,U)} `:``}${(0,d.styleText)(`dim`,c)}`;case`cancel`:return`${s}${r?`${(0,d.styleText)(`gray`,U)} `:``}${(0,d.styleText)([`strikethrough`,`dim`],c)}${r?`
19
- ${(0,d.styleText)(`gray`,U)}`:``}`;default:{let i=r?`${(0,d.styleText)(`cyan`,U)} `:``,a=r?(0,d.styleText)(`cyan`,W):``;return`${s}${i}${this.value?`${(0,d.styleText)(`green`,G)} ${t}`:`${(0,d.styleText)(`dim`,K)} ${(0,d.styleText)(`dim`,t)}`}${e.vertical?r?`
20
- ${(0,d.styleText)(`cyan`,U)} `:`
21
- `:` ${(0,d.styleText)(`dim`,`/`)} `}${this.value?`${(0,d.styleText)(`dim`,K)} ${(0,d.styleText)(`dim`,n)}`:`${(0,d.styleText)(`green`,G)} ${n}`}
18
+ `,c=this.value?t:n;switch(this.state){case`submit`:return`${s}${r?`${(0,l.styleText)(`gray`,W)} `:``}${(0,l.styleText)(`dim`,c)}`;case`cancel`:return`${s}${r?`${(0,l.styleText)(`gray`,W)} `:``}${(0,l.styleText)([`strikethrough`,`dim`],c)}${r?`
19
+ ${(0,l.styleText)(`gray`,W)}`:``}`;default:{let i=r?`${(0,l.styleText)(`cyan`,W)} `:``,a=r?(0,l.styleText)(`cyan`,G):``;return`${s}${i}${this.value?`${(0,l.styleText)(`green`,Te)} ${t}`:`${(0,l.styleText)(`dim`,K)} ${(0,l.styleText)(`dim`,t)}`}${e.vertical?r?`
20
+ ${(0,l.styleText)(`cyan`,W)} `:`
21
+ `:` ${(0,l.styleText)(`dim`,`/`)} `}${this.value?`${(0,l.styleText)(`dim`,K)} ${(0,l.styleText)(`dim`,n)}`:`${(0,l.styleText)(`green`,Te)} ${n}`}
22
22
  ${a}
23
- `}}}}).prompt()},Ne=async(e,t)=>{let n={},r=Object.keys(e);for(let i of r){let r=e[i],a=await r({results:n})?.catch(e=>{throw e});if(typeof t?.onCancel==`function`&&F(a)){n[i]=`canceled`,t.onCancel({results:n});continue}n[i]=a}return n},J={message:(e=[],{symbol:t=(0,d.styleText)(`gray`,U),secondarySymbol:n=(0,d.styleText)(`gray`,U),output:r=process.stdout,spacing:i=1,withGuide:a}={})=>{let o=[],s=a??P.withGuide,c=s?n:``,l=s?`${t} `:``,u=s?`${n} `:``;for(let e=0;e<i;e++)o.push(c);let f=Array.isArray(e)?e:e.split(`
24
- `);if(f.length>0){let[e,...r]=f;e.length>0?o.push(`${l}${e}`):o.push(s?t:``);for(let e of r)e.length>0?o.push(`${u}${e}`):o.push(s?n:``)}r.write(`${o.join(`
23
+ `}}}}).prompt()},ze=async(e,t)=>{let n={},r=Object.keys(e);for(let i of r){let r=e[i],a=await r({results:n})?.catch(e=>{throw e});if(typeof t?.onCancel==`function`&&I(a)){n[i]=`canceled`,t.onCancel({results:n});continue}n[i]=a}return n},J={message:(e=[],{symbol:t=(0,l.styleText)(`gray`,W),secondarySymbol:n=(0,l.styleText)(`gray`,W),output:r=process.stdout,spacing:i=1,withGuide:a}={})=>{let o=[],s=a??N.withGuide,c=s?n:``,u=s?`${t} `:``,d=s?`${n} `:``;for(let e=0;e<i;e++)o.push(c);let f=Array.isArray(e)?e:e.split(`
24
+ `);if(f.length>0){let[e,...r]=f;e.length>0?o.push(`${u}${e}`):o.push(s?t:``);for(let e of r)e.length>0?o.push(`${d}${e}`):o.push(s?n:``)}r.write(`${o.join(`
25
25
  `)}
26
- `)},info:(e,t)=>{J.message(e,{...t,symbol:(0,d.styleText)(`blue`,Te)})},success:(e,t)=>{J.message(e,{...t,symbol:(0,d.styleText)(`green`,Ee)})},step:(e,t)=>{J.message(e,{...t,symbol:(0,d.styleText)(`green`,H)})},warn:(e,t)=>{J.message(e,{...t,symbol:(0,d.styleText)(`yellow`,De)})},warning:(e,t)=>{J.warn(e,t)},error:(e,t)=>{J.message(e,{...t,symbol:(0,d.styleText)(`red`,Oe)})}},Y=(e=``,t)=>{let n=t?.output??process.stdout,r=t?.withGuide??P.withGuide?`${(0,d.styleText)(`gray`,W)} `:``;n.write(`${r}${(0,d.styleText)(`red`,e)}
26
+ `)},info:(e,t)=>{J.message(e,{...t,symbol:(0,l.styleText)(`blue`,je)})},success:(e,t)=>{J.message(e,{...t,symbol:(0,l.styleText)(`green`,Me)})},step:(e,t)=>{J.message(e,{...t,symbol:(0,l.styleText)(`green`,U)})},warn:(e,t)=>{J.message(e,{...t,symbol:(0,l.styleText)(`yellow`,Ne)})},warning:(e,t)=>{J.warn(e,t)},error:(e,t)=>{J.message(e,{...t,symbol:(0,l.styleText)(`red`,Pe)})}},Y=(e=``,t)=>{let n=t?.output??process.stdout,r=t?.withGuide??N.withGuide?`${(0,l.styleText)(`gray`,G)} `:``;n.write(`${r}${(0,l.styleText)(`red`,e)}
27
27
 
28
- `)},Pe=(e=``,t)=>{let n=t?.output??process.stdout,r=t?.withGuide??P.withGuide?`${(0,d.styleText)(`gray`,U)}
29
- ${(0,d.styleText)(`gray`,W)} `:``;n.write(`${r}${e}
28
+ `)},Be=(e=``,t)=>{let n=t?.output??process.stdout,r=t?.withGuide??N.withGuide?`${(0,l.styleText)(`gray`,W)}
29
+ ${(0,l.styleText)(`gray`,G)} `:``;n.write(`${r}${e}
30
30
 
31
- `)},Fe=e=>(0,d.styleText)(`magenta`,e),Ie=({indicator:e=`dots`,onCancel:t,output:n=process.stdout,cancelMessage:r,errorMessage:i,frames:a=B?[`◒`,`◐`,`◓`,`◑`]:[`•`,`o`,`O`,`0`],delay:o=B?80:120,signal:s,...c}={})=>{let l=xe(),u,f,p=!1,m=!1,h=``,g,_=performance.now(),v=L(n),y=c?.styleFrame??Fe,b=e=>{let n=e>1?i??P.messages.error:r??P.messages.cancel;m=e===1,p&&(T(n,e),m&&typeof t==`function`&&t())},x=()=>b(2),S=()=>b(1),ee=()=>{process.on(`uncaughtExceptionMonitor`,x),process.on(`unhandledRejection`,x),process.on(`SIGINT`,S),process.on(`SIGTERM`,S),process.on(`exit`,b),s&&s.addEventListener(`abort`,S)},te=()=>{process.removeListener(`uncaughtExceptionMonitor`,x),process.removeListener(`unhandledRejection`,x),process.removeListener(`SIGINT`,S),process.removeListener(`SIGTERM`,S),process.removeListener(`exit`,b),s&&s.removeEventListener(`abort`,S)},ne=()=>{if(g===void 0)return;l&&n.write(`
32
- `);let e=j(g,v,{hard:!0,trim:!1}).split(`
33
- `);e.length>1&&n.write(M.cursor.up(e.length-1)),n.write(M.cursor.to(0)),n.write(M.erase.down())},C=e=>e.replace(/\.+$/,``),w=e=>{let t=(performance.now()-e)/1e3,n=Math.floor(t/60),r=Math.floor(t%60);return n>0?`[${n}m ${r}s]`:`[${r}s]`},re=c.withGuide??P.withGuide,ie=(t=``)=>{p=!0,u=he({output:n}),h=C(t),_=performance.now(),re&&n.write(`${(0,d.styleText)(`gray`,U)}
34
- `);let r=0,i=0;ee(),f=setInterval(()=>{if(l&&h===g)return;ne(),g=h;let t=y(a[r]),o;if(l)o=`${t} ${h}...`;else if(e===`timer`)o=`${t} ${h} ${w(_)}`;else{let e=`.`.repeat(Math.floor(i)).slice(0,3);o=`${t} ${h}${e}`}let s=j(o,v,{hard:!0,trim:!1});n.write(s),r=r+1<a.length?r+1:0,i=i<4?i+.125:0},o)},T=(t=``,r=0,i=!1)=>{if(!p)return;p=!1,clearInterval(f),ne();let a=r===0?(0,d.styleText)(`green`,H):r===1?(0,d.styleText)(`red`,Ce):(0,d.styleText)(`red`,we);h=t??h,i||(e===`timer`?n.write(`${a} ${h} ${w(_)}
31
+ `)},Ve=e=>(0,l.styleText)(`dim`,e),He=(e,t,n)=>{let r={hard:!0,trim:!1},i=A(e,t,r).split(`
32
+ `),a=i.reduce((e,t)=>Math.max(D(t),e),0);return A(e,t-(i.map(n).reduce((e,t)=>Math.max(D(t),e),0)-a),r)},Ue=(e=``,t=``,n)=>{let r=n?.output??u.default.stdout,i=n?.withGuide??N.withGuide,a=n?.format??Ve,o=[``,...He(e,R(r)-6,a).split(`
33
+ `).map(a),``],s=D(t),c=Math.max(o.reduce((e,t)=>{let n=D(t);return n>e?n:e},0),s)+2,d=o.map(e=>`${(0,l.styleText)(`gray`,W)} ${e}${` `.repeat(c-D(e))}${(0,l.styleText)(`gray`,W)}`).join(`
34
+ `),f=i?`${(0,l.styleText)(`gray`,W)}
35
+ `:``,p=i?Oe:Ae;r.write(`${f}${(0,l.styleText)(`green`,U)} ${(0,l.styleText)(`reset`,t)} ${(0,l.styleText)(`gray`,Ee.repeat(Math.max(c-s-1,1))+De)}
36
+ ${d}
37
+ ${(0,l.styleText)(`gray`,p+Ee.repeat(c+2)+ke)}
38
+ `)},We=e=>(0,l.styleText)(`magenta`,e),Ge=({indicator:e=`dots`,onCancel:t,output:n=process.stdout,cancelMessage:r,errorMessage:i,frames:a=V?[`◒`,`◐`,`◓`,`◑`]:[`•`,`o`,`O`,`0`],delay:o=V?80:120,signal:s,...c}={})=>{let u=xe(),d,f,p=!1,m=!1,h=``,g,_=performance.now(),v=R(n),y=c?.styleFrame??We,b=e=>{let n=e>1?i??N.messages.error:r??N.messages.cancel;m=e===1,p&&(T(n,e),m&&typeof t==`function`&&t())},x=()=>b(2),S=()=>b(1),ee=()=>{process.on(`uncaughtExceptionMonitor`,x),process.on(`unhandledRejection`,x),process.on(`SIGINT`,S),process.on(`SIGTERM`,S),process.on(`exit`,b),s&&s.addEventListener(`abort`,S)},te=()=>{process.removeListener(`uncaughtExceptionMonitor`,x),process.removeListener(`unhandledRejection`,x),process.removeListener(`SIGINT`,S),process.removeListener(`SIGTERM`,S),process.removeListener(`exit`,b),s&&s.removeEventListener(`abort`,S)},C=()=>{if(g===void 0)return;u&&n.write(`
39
+ `);let e=A(g,v,{hard:!0,trim:!1}).split(`
40
+ `);e.length>1&&n.write(j.cursor.up(e.length-1)),n.write(j.cursor.to(0)),n.write(j.erase.down())},ne=e=>e.replace(/\.+$/,``),w=e=>{let t=(performance.now()-e)/1e3,n=Math.floor(t/60),r=Math.floor(t%60);return n>0?`[${n}m ${r}s]`:`[${r}s]`},re=c.withGuide??N.withGuide,ie=(t=``)=>{p=!0,d=he({output:n}),h=ne(t),_=performance.now(),re&&n.write(`${(0,l.styleText)(`gray`,W)}
41
+ `);let r=0,i=0;ee(),f=setInterval(()=>{if(u&&h===g)return;C(),g=h;let t=y(a[r]),o;if(u)o=`${t} ${h}...`;else if(e===`timer`)o=`${t} ${h} ${w(_)}`;else{let e=`.`.repeat(Math.floor(i)).slice(0,3);o=`${t} ${h}${e}`}let s=A(o,v,{hard:!0,trim:!1});n.write(s),r=r+1<a.length?r+1:0,i=i<4?i+.125:0},o)},T=(t=``,r=0,i=!1)=>{if(!p)return;p=!1,clearInterval(f),C();let a=r===0?(0,l.styleText)(`green`,U):r===1?(0,l.styleText)(`red`,Ce):(0,l.styleText)(`red`,we);h=t??h,i||(e===`timer`?n.write(`${a} ${h} ${w(_)}
35
42
  `):n.write(`${a} ${h}
36
- `)),te(),u()};return{start:ie,stop:(e=``)=>T(e,0),message:(e=``)=>{h=C(e??h)},cancel:(e=``)=>T(e,1),error:(e=``)=>T(e,2),clear:()=>T(``,0,!0),get isCancelled(){return m}}},X=(e,t)=>e.includes(`
43
+ `)),te(),d()};return{start:ie,stop:(e=``)=>T(e,0),message:(e=``)=>{h=ne(e??h)},cancel:(e=``)=>T(e,1),error:(e=``)=>T(e,2),clear:()=>T(``,0,!0),get isCancelled(){return m}}},X=(e,t)=>e.includes(`
37
44
  `)?e.split(`
38
45
  `).map(e=>t(e)).join(`
39
- `):t(e),Le=e=>{let t=(e,t)=>{let n=e.label??String(e.value);switch(t){case`disabled`:return`${(0,d.styleText)(`gray`,K)} ${X(n,e=>(0,d.styleText)(`gray`,e))}${e.hint?` ${(0,d.styleText)(`dim`,`(${e.hint??`disabled`})`)}`:``}`;case`selected`:return`${X(n,e=>(0,d.styleText)(`dim`,e))}`;case`active`:return`${(0,d.styleText)(`green`,G)} ${n}${e.hint?` ${(0,d.styleText)(`dim`,`(${e.hint})`)}`:``}`;case`cancelled`:return`${X(n,e=>(0,d.styleText)([`strikethrough`,`dim`],e))}`;default:return`${(0,d.styleText)(`dim`,K)} ${X(n,e=>(0,d.styleText)(`dim`,e))}`}};return new ve({options:e.options,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue,render(){let n=e.withGuide??P.withGuide,r=`${ke(this.state)} `,i=`${Ae(this.state)} `,a=R(e.output,e.message,i,r),o=`${n?`${(0,d.styleText)(`gray`,U)}
46
+ `):t(e),Ke=e=>{let t=(e,t)=>{let n=e.label??String(e.value);switch(t){case`disabled`:return`${(0,l.styleText)(`gray`,K)} ${X(n,e=>(0,l.styleText)(`gray`,e))}${e.hint?` ${(0,l.styleText)(`dim`,`(${e.hint??`disabled`})`)}`:``}`;case`selected`:return`${X(n,e=>(0,l.styleText)(`dim`,e))}`;case`active`:return`${(0,l.styleText)(`green`,Te)} ${n}${e.hint?` ${(0,l.styleText)(`dim`,`(${e.hint})`)}`:``}`;case`cancelled`:return`${X(n,e=>(0,l.styleText)([`strikethrough`,`dim`],e))}`;default:return`${(0,l.styleText)(`dim`,K)} ${X(n,e=>(0,l.styleText)(`dim`,e))}`}};return new ve({options:e.options,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue,render(){let n=e.withGuide??N.withGuide,r=`${Fe(this.state)} `,i=`${Ie(this.state)} `,a=z(e.output,e.message,i,r),o=`${n?`${(0,l.styleText)(`gray`,W)}
40
47
  `:``}${a}
41
- `;switch(this.state){case`submit`:{let r=n?`${(0,d.styleText)(`gray`,U)} `:``;return`${o}${R(e.output,t(this.options[this.cursor],`selected`),r)}`}case`cancel`:{let r=n?`${(0,d.styleText)(`gray`,U)} `:``;return`${o}${R(e.output,t(this.options[this.cursor],`cancelled`),r)}${n?`
42
- ${(0,d.styleText)(`gray`,U)}`:``}`}default:{let r=n?`${(0,d.styleText)(`cyan`,U)} `:``,i=n?(0,d.styleText)(`cyan`,W):``,a=o.split(`
43
- `).length,s=n?2:1;return`${o}${r}${Me({output:e.output,cursor:this.cursor,options:this.options,maxItems:e.maxItems,columnPadding:r.length,rowPadding:a+s,style:(e,n)=>t(e,e.disabled?`disabled`:n?`active`:`inactive`)}).join(`
48
+ `;switch(this.state){case`submit`:{let r=n?`${(0,l.styleText)(`gray`,W)} `:``;return`${o}${z(e.output,t(this.options[this.cursor],`selected`),r)}`}case`cancel`:{let r=n?`${(0,l.styleText)(`gray`,W)} `:``;return`${o}${z(e.output,t(this.options[this.cursor],`cancelled`),r)}${n?`
49
+ ${(0,l.styleText)(`gray`,W)}`:``}`}default:{let r=n?`${(0,l.styleText)(`cyan`,W)} `:``,i=n?(0,l.styleText)(`cyan`,G):``,a=o.split(`
50
+ `).length,s=n?2:1;return`${o}${r}${Re({output:e.output,cursor:this.cursor,options:this.options,maxItems:e.maxItems,columnPadding:r.length,rowPadding:a+s,style:(e,n)=>t(e,e.disabled?`disabled`:n?`active`:`inactive`)}).join(`
44
51
  ${r}`)}
45
52
  ${i}
46
- `}}}}).prompt()},Re=`${(0,d.styleText)(`gray`,U)} `,Z={message:async(e,{symbol:t=(0,d.styleText)(`gray`,U)}={})=>{process.stdout.write(`${(0,d.styleText)(`gray`,U)}
53
+ `}}}}).prompt()},qe=`${(0,l.styleText)(`gray`,W)} `,Z={message:async(e,{symbol:t=(0,l.styleText)(`gray`,W)}={})=>{process.stdout.write(`${(0,l.styleText)(`gray`,W)}
47
54
  ${t} `);let n=3;for await(let t of e){t=t.replace(/\n/g,`
48
- ${Re}`),t.includes(`
49
- `)&&(n=3+(0,d.stripVTControlCharacters)(t.slice(t.lastIndexOf(`
50
- `))).length);let e=(0,d.stripVTControlCharacters)(t).length;n+e<process.stdout.columns?(n+=e,process.stdout.write(t)):(process.stdout.write(`
51
- ${Re}${t.trimStart()}`),n=3+(0,d.stripVTControlCharacters)(t.trimStart()).length)}process.stdout.write(`
52
- `)},info:e=>Z.message(e,{symbol:(0,d.styleText)(`blue`,Te)}),success:e=>Z.message(e,{symbol:(0,d.styleText)(`green`,Ee)}),step:e=>Z.message(e,{symbol:(0,d.styleText)(`green`,H)}),warn:e=>Z.message(e,{symbol:(0,d.styleText)(`yellow`,De)}),warning:e=>Z.warn(e),error:e=>Z.message(e,{symbol:(0,d.styleText)(`red`,Oe)})},ze=e=>new ye({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,output:e.output,signal:e.signal,input:e.input,render(){let t=e?.withGuide??P.withGuide,n=`${`${t?`${(0,d.styleText)(`gray`,U)}
53
- `:``}${ke(this.state)} `}${e.message}
54
- `,r=e.placeholder?(0,d.styleText)(`inverse`,e.placeholder[0])+(0,d.styleText)(`dim`,e.placeholder.slice(1)):(0,d.styleText)([`inverse`,`hidden`],`_`),i=this.userInput?this.userInputWithCursor:r,a=this.value??``;switch(this.state){case`error`:{let e=this.error?` ${(0,d.styleText)(`yellow`,this.error)}`:``,r=t?`${(0,d.styleText)(`yellow`,U)} `:``,a=t?(0,d.styleText)(`yellow`,W):``;return`${n.trim()}
55
+ ${qe}`),t.includes(`
56
+ `)&&(n=3+(0,l.stripVTControlCharacters)(t.slice(t.lastIndexOf(`
57
+ `))).length);let e=(0,l.stripVTControlCharacters)(t).length;n+e<process.stdout.columns?(n+=e,process.stdout.write(t)):(process.stdout.write(`
58
+ ${qe}${t.trimStart()}`),n=3+(0,l.stripVTControlCharacters)(t.trimStart()).length)}process.stdout.write(`
59
+ `)},info:e=>Z.message(e,{symbol:(0,l.styleText)(`blue`,je)}),success:e=>Z.message(e,{symbol:(0,l.styleText)(`green`,Me)}),step:e=>Z.message(e,{symbol:(0,l.styleText)(`green`,U)}),warn:e=>Z.message(e,{symbol:(0,l.styleText)(`yellow`,Ne)}),warning:e=>Z.warn(e),error:e=>Z.message(e,{symbol:(0,l.styleText)(`red`,Pe)})},Je=e=>new ye({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,output:e.output,signal:e.signal,input:e.input,render(){let t=e?.withGuide??N.withGuide,n=`${`${t?`${(0,l.styleText)(`gray`,W)}
60
+ `:``}${Fe(this.state)} `}${e.message}
61
+ `,r=e.placeholder?(0,l.styleText)(`inverse`,e.placeholder[0])+(0,l.styleText)(`dim`,e.placeholder.slice(1)):(0,l.styleText)([`inverse`,`hidden`],`_`),i=this.userInput?this.userInputWithCursor:r,a=this.value??``;switch(this.state){case`error`:{let e=this.error?` ${(0,l.styleText)(`yellow`,this.error)}`:``,r=t?`${(0,l.styleText)(`yellow`,W)} `:``,a=t?(0,l.styleText)(`yellow`,G):``;return`${n.trim()}
55
62
  ${r}${i}
56
63
  ${a}${e}
57
- `}case`submit`:{let e=a?` ${(0,d.styleText)(`dim`,a)}`:``;return`${n}${t?(0,d.styleText)(`gray`,U):``}${e}`}case`cancel`:{let e=a?` ${(0,d.styleText)([`strikethrough`,`dim`],a)}`:``,r=t?(0,d.styleText)(`gray`,U):``;return`${n}${r}${e}${a.trim()?`
58
- ${r}`:``}`}default:return`${n}${t?`${(0,d.styleText)(`cyan`,U)} `:``}${i}
59
- ${t?(0,d.styleText)(`cyan`,W):``}
60
- `}}}).prompt();var Q=c(o(((e,t)=>{let n=process||{},r=n.argv||[],i=n.env||{},a=!(i.NO_COLOR||r.includes(`--no-color`))&&(!!i.FORCE_COLOR||r.includes(`--color`)||n.platform===`win32`||(n.stdout||{}).isTTY&&i.TERM!==`dumb`||!!i.CI),o=(e,t,n=e)=>r=>{let i=``+r,a=i.indexOf(t,e.length);return~a?e+s(i,t,n,a)+t:e+i+t},s=(e,t,n,r)=>{let i=``,a=0;do i+=e.substring(a,r)+n,a=r+t.length,r=e.indexOf(t,a);while(~r);return i+e.substring(a)},c=(e=a)=>{let t=e?o:()=>String;return{isColorSupported:e,reset:t(`\x1B[0m`,`\x1B[0m`),bold:t(`\x1B[1m`,`\x1B[22m`,`\x1B[22m\x1B[1m`),dim:t(`\x1B[2m`,`\x1B[22m`,`\x1B[22m\x1B[2m`),italic:t(`\x1B[3m`,`\x1B[23m`),underline:t(`\x1B[4m`,`\x1B[24m`),inverse:t(`\x1B[7m`,`\x1B[27m`),hidden:t(`\x1B[8m`,`\x1B[28m`),strikethrough:t(`\x1B[9m`,`\x1B[29m`),black:t(`\x1B[30m`,`\x1B[39m`),red:t(`\x1B[31m`,`\x1B[39m`),green:t(`\x1B[32m`,`\x1B[39m`),yellow:t(`\x1B[33m`,`\x1B[39m`),blue:t(`\x1B[34m`,`\x1B[39m`),magenta:t(`\x1B[35m`,`\x1B[39m`),cyan:t(`\x1B[36m`,`\x1B[39m`),white:t(`\x1B[37m`,`\x1B[39m`),gray:t(`\x1B[90m`,`\x1B[39m`),bgBlack:t(`\x1B[40m`,`\x1B[49m`),bgRed:t(`\x1B[41m`,`\x1B[49m`),bgGreen:t(`\x1B[42m`,`\x1B[49m`),bgYellow:t(`\x1B[43m`,`\x1B[49m`),bgBlue:t(`\x1B[44m`,`\x1B[49m`),bgMagenta:t(`\x1B[45m`,`\x1B[49m`),bgCyan:t(`\x1B[46m`,`\x1B[49m`),bgWhite:t(`\x1B[47m`,`\x1B[49m`),blackBright:t(`\x1B[90m`,`\x1B[39m`),redBright:t(`\x1B[91m`,`\x1B[39m`),greenBright:t(`\x1B[92m`,`\x1B[39m`),yellowBright:t(`\x1B[93m`,`\x1B[39m`),blueBright:t(`\x1B[94m`,`\x1B[39m`),magentaBright:t(`\x1B[95m`,`\x1B[39m`),cyanBright:t(`\x1B[96m`,`\x1B[39m`),whiteBright:t(`\x1B[97m`,`\x1B[39m`),bgBlackBright:t(`\x1B[100m`,`\x1B[49m`),bgRedBright:t(`\x1B[101m`,`\x1B[49m`),bgGreenBright:t(`\x1B[102m`,`\x1B[49m`),bgYellowBright:t(`\x1B[103m`,`\x1B[49m`),bgBlueBright:t(`\x1B[104m`,`\x1B[49m`),bgMagentaBright:t(`\x1B[105m`,`\x1B[49m`),bgCyanBright:t(`\x1B[106m`,`\x1B[49m`),bgWhiteBright:t(`\x1B[107m`,`\x1B[49m`)}};t.exports=c(),t.exports.createColors=c}))(),1),Be=`0.0.4`;function Ve(e){let t=[],n=e.split(/\r?\n/);for(let e of n){let n=e.trim();if(!n||n.startsWith(`#`))continue;let r=n.match(/^([A-Z_][A-Z0-9_]*)\s*=/i);r?.[1]&&t.push(r[1])}return Array.from(new Set(t))}async function He(){let e=u.default.join(process.cwd(),`.env.example`);try{let t=Ve(await g.default.readFile(e,`utf-8`));return t.length>0?t:null}catch{return null}}const $=e=>Q.default.cyan(e),Ue=Q.default.blue(`⛯`);async function We(e,t=!1){let n=await He();if(t)return{path:`./src/env.ts`,validator:`arktype`,framework:e?.framework||`node`,language:`ts`,overwrite:!0,envKeys:n||void 0};let r=await Ne({overwrite:async()=>{let e=`./src/env.ts`;if(h.default.existsSync(u.default.resolve(process.cwd(),e))){let t=await q({message:Q.default.yellow(`An existing ArkEnv configuration was found at ${$(e)}. Do you want to overwrite it?`),initialValue:!1,active:`Yes (override my configuration)`,inactive:`No (abort)`});return F(t)&&(Y(`Operation cancelled.`),process.exit(0)),t||(Y(`Operation cancelled.`),process.exit(0)),t}return!0},framework:()=>Le({message:`Select your framework or runtime:`,initialValue:e?.framework,options:[{value:`vite`,label:`Vite${e?.framework===`vite`?` (Detected)`:``}`},{value:`bun`,label:`Bun${e?.framework===`bun`?` (Detected)`:``}`},{value:`node`,label:`Node.js${e?.framework===`node`?` (Detected)`:``}`}]}),validator:()=>Le({message:`Select your preferred validator library:`,options:[{value:`arktype`,label:`ArkType (Recommended)`,hint:`TypeScript's 1:1 validator, optimized from editor to runtime`},{value:`zod`,label:`Zod`,hint:`TypeScript-first schema validation with static type inference`},{value:`valibot`,label:`Valibot`,hint:`The modular and type safe schema library`}]}),useEnvExample:async()=>n?q({message:`Detected ${Q.default.cyan(`.env.example`)} with ${n.length} keys. Use them for your schema?`,active:`Yes (Recommended)`,initialValue:!0}):!1,useDefaultPath:()=>q({message:`Use default config path (./src/env.ts)?`,initialValue:!0,active:`Yes (Recommended)`,inactive:`No, let me customize it`}),path:({results:e})=>{if(!e.useDefaultPath)return ze({message:`Where should we create the ArkEnv config?`,placeholder:`./src/env.ts`,initialValue:`./src/env.ts`})}},{onCancel:()=>{Y(`Operation cancelled.`),process.exit(0)}});return F(r)&&(Y(`Operation cancelled.`),process.exit(0)),{path:r.path||`./src/env.ts`,validator:r.validator,framework:r.framework,language:`ts`,overwrite:r.overwrite,envKeys:r.useEnvExample?n:void 0}}const Ge=(e,t)=>{let n=e?.length?e.map(e=>`\t\t${e}: "string",`).join(`
61
- `):` NODE_ENV: "'development' | 'production' | 'test'",
62
- PORT: "number.port",`;return t===`vite`?v.default`
63
- import { type } from "arkenv";
64
-
65
- /**
66
- * Environment variable schema.
67
- * In Vite, use \`@arkenv/vite-plugin\` to validate these at build-time
68
- * and provide typesafety for \`import.meta.env\`.
69
- */
70
- export const Env = type({
71
- ${n}
64
+ `}case`submit`:{let e=a?` ${(0,l.styleText)(`dim`,a)}`:``;return`${n}${t?(0,l.styleText)(`gray`,W):``}${e}`}case`cancel`:{let e=a?` ${(0,l.styleText)([`strikethrough`,`dim`],a)}`:``,r=t?(0,l.styleText)(`gray`,W):``;return`${n}${r}${e}${a.trim()?`
65
+ ${r}`:``}`}default:return`${n}${t?`${(0,l.styleText)(`cyan`,W)} `:``}${i}
66
+ ${t?(0,l.styleText)(`cyan`,G):``}
67
+ `}}}).prompt();var Q=c(o(((e,t)=>{let n=process||{},r=n.argv||[],i=n.env||{},a=!(i.NO_COLOR||r.includes(`--no-color`))&&(!!i.FORCE_COLOR||r.includes(`--color`)||n.platform===`win32`||(n.stdout||{}).isTTY&&i.TERM!==`dumb`||!!i.CI),o=(e,t,n=e)=>r=>{let i=``+r,a=i.indexOf(t,e.length);return~a?e+s(i,t,n,a)+t:e+i+t},s=(e,t,n,r)=>{let i=``,a=0;do i+=e.substring(a,r)+n,a=r+t.length,r=e.indexOf(t,a);while(~r);return i+e.substring(a)},c=(e=a)=>{let t=e?o:()=>String;return{isColorSupported:e,reset:t(`\x1B[0m`,`\x1B[0m`),bold:t(`\x1B[1m`,`\x1B[22m`,`\x1B[22m\x1B[1m`),dim:t(`\x1B[2m`,`\x1B[22m`,`\x1B[22m\x1B[2m`),italic:t(`\x1B[3m`,`\x1B[23m`),underline:t(`\x1B[4m`,`\x1B[24m`),inverse:t(`\x1B[7m`,`\x1B[27m`),hidden:t(`\x1B[8m`,`\x1B[28m`),strikethrough:t(`\x1B[9m`,`\x1B[29m`),black:t(`\x1B[30m`,`\x1B[39m`),red:t(`\x1B[31m`,`\x1B[39m`),green:t(`\x1B[32m`,`\x1B[39m`),yellow:t(`\x1B[33m`,`\x1B[39m`),blue:t(`\x1B[34m`,`\x1B[39m`),magenta:t(`\x1B[35m`,`\x1B[39m`),cyan:t(`\x1B[36m`,`\x1B[39m`),white:t(`\x1B[37m`,`\x1B[39m`),gray:t(`\x1B[90m`,`\x1B[39m`),bgBlack:t(`\x1B[40m`,`\x1B[49m`),bgRed:t(`\x1B[41m`,`\x1B[49m`),bgGreen:t(`\x1B[42m`,`\x1B[49m`),bgYellow:t(`\x1B[43m`,`\x1B[49m`),bgBlue:t(`\x1B[44m`,`\x1B[49m`),bgMagenta:t(`\x1B[45m`,`\x1B[49m`),bgCyan:t(`\x1B[46m`,`\x1B[49m`),bgWhite:t(`\x1B[47m`,`\x1B[49m`),blackBright:t(`\x1B[90m`,`\x1B[39m`),redBright:t(`\x1B[91m`,`\x1B[39m`),greenBright:t(`\x1B[92m`,`\x1B[39m`),yellowBright:t(`\x1B[93m`,`\x1B[39m`),blueBright:t(`\x1B[94m`,`\x1B[39m`),magentaBright:t(`\x1B[95m`,`\x1B[39m`),cyanBright:t(`\x1B[96m`,`\x1B[39m`),whiteBright:t(`\x1B[97m`,`\x1B[39m`),bgBlackBright:t(`\x1B[100m`,`\x1B[49m`),bgRedBright:t(`\x1B[101m`,`\x1B[49m`),bgGreenBright:t(`\x1B[102m`,`\x1B[49m`),bgYellowBright:t(`\x1B[103m`,`\x1B[49m`),bgBlueBright:t(`\x1B[104m`,`\x1B[49m`),bgMagentaBright:t(`\x1B[105m`,`\x1B[49m`),bgCyanBright:t(`\x1B[106m`,`\x1B[49m`),bgWhiteBright:t(`\x1B[107m`,`\x1B[49m`)}};t.exports=c(),t.exports.createColors=c}))(),1),Ye=class{constructor(e){this.options=e,this.originalStdoutWrite=process.stdout.write}format(e){return this.options.isQuiet?e.replace(/\x1B\[[0-9;]*[JKmsu]/g,``):e}write(e,t=`stdout`){let n=this.format(e);this.options.isJson||t===`stderr`?process.stderr.write(`${n}\n`):process.stdout.write(`${n}\n`)}info(e){this.write(Q.default.blue(`ℹ ${e}`))}warn(e){this.write(Q.default.yellow(`⚠ ${e}`),`stderr`)}error(e){this.write(Q.default.red(`✘ ${e}`),`stderr`)}success(e){this.write(Q.default.green(`✔ ${e}`))}step(e){this.write(`○ ${e}`)}note(e,t){this.options.isQuiet||this.options.isJson?this.write(Q.default.dim(`○ ${t?`${t}: `:``}${e}`)):Ue(e,t)}log(e){this.write(e)}spinner(){return this.options.isQuiet||this.options.isJson?{start:e=>this.write(Q.default.dim(`○ ${e}...`)),stop:e=>this.write(Q.default.green(`✔ ${e}`)),message:e=>this.write(Q.default.dim(`○ ${e}...`))}:Ge()}json(e){process.stdout.write(`${JSON.stringify(e,null,2)}\n`)}get stdio(){return this.options.isJson?[process.stdin,process.stderr,process.stderr]:`inherit`}interactiveStdout(e){!this.options.isJson||this.options.isYes||(e?process.stdout.write=process.stderr.write.bind(process.stderr):process.stdout.write=this.originalStdoutWrite)}cancel(e){this.options.isJson?this.json({status:`error`,message:e}):Y(e),process.exit(0)}fatal(e,t){this.options.isJson?this.json({status:`error`,details:{message:e,error:t instanceof Error?t.message:t?String(t):void 0}}):(this.error(e),t&&this.log(Q.default.red(t instanceof Error?t.stack:String(t)))),process.exit(1)}finish(e,t){this.options.isJson?this.json({status:`success`,message:e,details:t}):Be(e)}},Xe=class{constructor(e){this.args=e.slice(2),this.command=this.args[0],this.isYes=this.args.includes(`--yes`)||this.args.includes(`-y`),this.isQuiet=this.args.includes(`--quiet`)||this.args.includes(`-q`),this.isJson=this.args.includes(`--json`)||this.args.includes(`-j`),this.isAgent=this.args.includes(`--agent`)||this.args.includes(`-a`),this.helpRequested=this.args.includes(`--help`)||this.args.includes(`-h`),this.isAgent&&(this.isYes=!0,this.isQuiet=!0,this.isJson=!0),this.logger=new Ye({isQuiet:this.isQuiet,isJson:this.isJson,isYes:this.isYes})}},Ze=`0.0.6`,Qe=class{constructor(e){this.cli=e}async run(){let{logger:e}=this.cli;e.log(`ArkEnv CLI v${Ze}`),e.log(`\n${Q.default.bold(`Usage:`)}`),e.log(` arkenv init Set up ArkEnv in your project`),e.log(`\n${Q.default.bold(`Options:`)}`),e.log(` --yes, -y Skip prompts and use defaults (also passed to skill processes)`),e.log(` --agent, -a Agent mode: --yes --quiet --json`),e.log(` --quiet, -q Quiet mode: Suppress output, capture logs on failure`),e.log(` --json, -j Output structured JSON to stdout`),e.log(` --help, -h Show this help message`)}};async function $e(e){let t=process.cwd();for(let n of e){let e=m.default.join(t,n);try{return await _.default.access(e),e}catch{}}return null}async function et(){return $e([`vite.config.ts`,`vite.config.js`,`vite.config.mts`,`vite.config.mjs`])}async function tt(){return $e([`bunfig.toml`,`bun.setup.ts`,`bun.setup.js`])}async function nt(e,t){try{let n=await(0,v.loadFile)(e),r=(0,v.generateCode)(n).code,i=n.exports.default;if(i&&typeof i==`object`&&`$type`in i&&i.$type===`function-call`&&(i.$callee||i.$name||JSON.stringify(i))===`defineConfig`&&(i=i.$args[0]),!i||typeof i!=`object`)return{success:!1,error:`Could not find default export in Vite config`};if(i.plugins||=[],Array.isArray(i.plugins))if(!(r.includes(`arkenvVitePlugin`)||r.includes(`arkenvPlugin`)))n.imports.$add({from:`@arkenv/vite-plugin`,local:`arkenvVitePlugin`,imported:`default`}),t&&n.imports.$add({from:t,imported:`Env`}),i.plugins.push(`__ARK_PLUGIN_PLACEHOLDER__`);else return{success:!0};else return{success:!1,error:`The 'plugins' property in ${m.default.basename(e)} is not an array.`};let a=(0,v.generateCode)(n,{format:(0,v.detectCodeFormat)(r)}).code,o=t?`arkenvVitePlugin(Env)`:`arkenvVitePlugin()`;return a=a.replace(/['"]__ARK_PLUGIN_PLACEHOLDER__['"]/g,o),await _.default.writeFile(e,a,`utf-8`),{success:!0}}catch(t){let n=t instanceof Error?t.message:String(t);return{success:!1,error:`Failed to parse ${m.default.basename(e)}: ${n}`}}}async function rt(e){return e?.endsWith(`bunfig.toml`)?{success:!0,instructions:g.default`
68
+ [preload]
69
+ preload = ["./bun.setup.ts"]
70
+ `}:e?.endsWith(`bun.setup.ts`)||e?.endsWith(`bun.setup.js`)?{success:!0,instructions:g.default`
71
+ import arkenv from "@arkenv/bun-plugin";
72
+
73
+ Bun.build({
74
+ // ... other config
75
+ plugins: [arkenv],
76
+ });
77
+ `}:{success:!0,instructions:g.default`
78
+ To complete Bun integration, add the following to your setup/preload file:
79
+
80
+ import arkenv from "@arkenv/bun-plugin";
81
+
82
+ Bun.build({
83
+ // ... other config
84
+ plugins: [arkenv],
72
85
  });
73
- `:t===`bun`?v.default`
74
- import { type } from "arkenv";
75
-
76
- /**
77
- * Environment variable schema.
78
- * In Bun, use \`@arkenv/bun-plugin\` to validate these at build-time
79
- * and provide typesafety for \`process.env\`.
80
- */
81
- export const Env = type({
86
+
87
+ If you don't have a setup file, create one (e.g., bun.setup.ts) and add it to your bunfig.toml:
88
+
89
+ [preload]
90
+ preload = ["./bun.setup.ts"]
91
+ `}}function it(e){let t=[],n=e.split(/\r?\n/);for(let e of n){let n=e.trim();if(!n||n.startsWith(`#`))continue;let r=n.match(/^([A-Z_][A-Z0-9_]*)\s*=/i);r?.[1]&&t.push(r[1])}return Array.from(new Set(t))}async function at(){let e=m.default.join(process.cwd(),`.env.example`);try{let t=it(await _.default.readFile(e,`utf-8`));return t.length>0?t:null}catch{return null}}const $=e=>Q.default.cyan(e),ot=Q.default.blue(`⛯`);async function st(e,t=!1,n=!1){let r=await at();if(t){let t=e?.framework||`node`,n;if(t===`vite`||t===`bun`){let e=t===`vite`?`vite-env.d.ts`:`bun-env.d.ts`,r=m.default.dirname(m.default.resolve(process.cwd(),`./src/env.ts`)),i=m.default.join(r,e);n=p.default.existsSync(i)?`append`:`overwrite`}return{path:`./src/env.ts`,validator:`arktype`,framework:t,language:`ts`,overwriteEnvSchemaFile:!0,envDtsHandling:n,installTypeDefinitions:t!==`node`,envKeys:r||void 0,installSkill:!1}}let i=await ze({overwriteEnvSchemaFile:async()=>{let e=`./src/env.ts`;if(p.default.existsSync(m.default.resolve(process.cwd(),e))){let t=await q({message:Q.default.yellow(`An existing ArkEnv configuration was found at ${$(e)}. Do you want to overwrite it?`),initialValue:!1,active:`Yes (override my configuration)`,inactive:`No (abort)`});return I(t)&&(Y(`Operation cancelled.`),process.exit(0)),t||(Y(`Operation cancelled.`),process.exit(0)),t}return!0},framework:()=>Ke({message:`Select your framework or runtime:`,initialValue:e?.framework,options:[{value:`vite`,label:`Vite${e?.framework===`vite`?` (Detected)`:``}`},{value:`bun`,label:`Bun${e?.framework===`bun`?` (Detected)`:``}`},{value:`node`,label:`Node.js${e?.framework===`node`?` (Detected)`:``}`}]}),useDefaultPath:()=>q({message:`Use default config path (./src/env.ts)?`,initialValue:!0,active:`Yes (Recommended)`,inactive:`No, let me customize it`}),path:async({results:e})=>e.useDefaultPath?`./src/env.ts`:Je({message:`Where should we create the ArkEnv config?`,placeholder:`./src/env.ts`,initialValue:`./src/env.ts`}),installTypeDefinitions:async({results:e})=>{if(e.framework===`vite`||e.framework===`bun`){let t=e.framework===`vite`?`vite-env.d.ts`:`bun-env.d.ts`,n=m.default.dirname(m.default.resolve(process.cwd(),e.path||`./src/env.ts`)),r=m.default.join(n,t);return p.default.existsSync(r)?!0:q({message:`Establish ${$(t)} for typesafe environment variables?`,initialValue:!0,active:`Yes (Recommended)`,inactive:`No`})}return!0},envDtsHandling:async({results:e})=>{if(!e.installTypeDefinitions||e.framework!==`vite`&&e.framework!==`bun`)return`skip`;let t=e.framework===`vite`?`vite-env.d.ts`:`bun-env.d.ts`,n=m.default.dirname(m.default.resolve(process.cwd(),e.path||`./src/env.ts`)),r=m.default.join(n,t);if(p.default.existsSync(r)){let e=await Ke({message:`Found existing ${$(t)}. How should we handle ArkEnv types?`,options:[{value:`append`,label:`Append types safely`,hint:`Recommended`},{value:`overwrite`,label:`Overwrite entirely`,hint:`Destructive`},{value:`skip`,label:`Skip`}]});return I(e)&&(Y(`Operation cancelled.`),process.exit(0)),e}return`overwrite`},validator:()=>Ke({message:`Select your preferred validator library:`,options:[{value:`arktype`,label:`ArkType (Recommended)`,hint:`TypeScript's 1:1 validator, optimized from editor to runtime`},{value:`zod`,label:`Zod`,hint:`TypeScript-first schema validation with static type inference`},{value:`valibot`,label:`Valibot`,hint:`The modular and type safe schema library`}]}),useEnvExample:async()=>r?q({message:`Detected ${Q.default.cyan(`.env.example`)} with ${r.length} keys. Use them for your schema?`,active:`Yes (Recommended)`,initialValue:!0}):!1,installSkill:()=>{if(!n)return q({message:`Would you like to install the ArkEnv agent skill?`,initialValue:!0,active:`Yes (Recommended)`,inactive:`No`})}},{onCancel:()=>{Y(`Operation cancelled.`),process.exit(0)}});return I(i)&&(Y(`Operation cancelled.`),process.exit(0)),{path:i.path||`./src/env.ts`,validator:i.validator,framework:i.framework,language:`ts`,overwriteEnvSchemaFile:i.overwriteEnvSchemaFile,envDtsHandling:i.envDtsHandling,installTypeDefinitions:i.installTypeDefinitions,envKeys:i.useEnvExample?r:void 0,installSkill:i.installSkill}}const ct=(e,t)=>{let n=e?.length?e.map(e=>`\t\t${e}: "string = ''",`).join(`
92
+ `):` NODE_ENV: "'development' | 'production' | 'test' = 'development'",
93
+ PORT: "number.port = 3000",`;return t===`vite`?g.default`
94
+ import { type } from "arkenv";
95
+
96
+ /**
97
+ * Environment variable schema.
98
+ * In Vite, use \`@arkenv/vite-plugin\` to validate these at build-time
99
+ * and provide typesafety for \`import.meta.env\`.
100
+ */
101
+ export const Env = type({
82
102
  ${n}
83
- });
84
- `:v.default`
103
+ });
104
+ `:t===`bun`?g.default`
105
+ import { type } from "arkenv";
106
+
107
+ /**
108
+ * Environment variable schema.
109
+ * In Bun, use \`@arkenv/bun-plugin\` to validate these at build-time
110
+ * and provide typesafety for \`process.env\`.
111
+ */
112
+ export const Env = type({
113
+ ${n}
114
+ });
115
+ `:g.default`
85
116
  import arkenv, { type } from "arkenv";
86
117
 
87
118
  export const Env = type({
@@ -89,31 +120,54 @@ ${n}
89
120
  });
90
121
 
91
122
  export const env = arkenv(Env);
92
- `},Ke=(e,t)=>{let n=e?.length?e.map(e=>`\t\t${e}: v.string(),`).join(`
93
- `):` NODE_ENV: v.picklist(["development", "production", "test"]),
94
- PORT: v.pipe(v.string(), v.transform(Number), v.number(), v.minValue(1)),`;return t===`vite`?v.default`
95
- import * as v from "valibot";
96
-
97
- /**
98
- * Environment variable schema.
99
- * In Vite, use \`@arkenv/vite-plugin\` to validate these at build-time
100
- * and provide typesafety for \`import.meta.env\`.
101
- */
102
- export const Env = v.object({
123
+ `},lt=e=>g.default`
124
+ /// <reference types="vite/client" />
125
+
126
+ type ImportMetaEnvAugmented =
127
+ import("@arkenv/vite-plugin").ImportMetaEnvAugmented<
128
+ typeof import("./${m.default.basename(e).replace(/\.(ts|js|tsx|jsx)$/,``)}").Env
129
+ >;
130
+
131
+ interface ImportMetaEnv extends ImportMetaEnvAugmented {}
132
+
133
+ interface ImportMeta {
134
+ readonly env: ImportMetaEnv;
135
+ }
136
+ `,ut=e=>g.default`
137
+ /// <reference types="bun-types" />
138
+
139
+ type ProcessEnvAugmented = import("@arkenv/bun-plugin").ProcessEnvAugmented<
140
+ typeof import("./${m.default.basename(e).replace(/\.(ts|js|tsx|jsx)$/,``)}").Env
141
+ >;
142
+
143
+ declare namespace NodeJS {
144
+ interface ProcessEnv extends ProcessEnvAugmented {}
145
+ }
146
+ `,dt=(e,t)=>{let n=e?.length?e.map(e=>`\t\t${e}: v.optional(v.string(), ""),`).join(`
147
+ `):` NODE_ENV: v.optional(v.picklist(["development", "production", "test"]), "development"),
148
+ PORT: v.optional(v.pipe(v.string(), v.transform(Number), v.number(), v.integer(), v.minValue(1), v.maxValue(65535)), 3000),`;return t===`vite`?g.default`
149
+ import * as v from "valibot";
150
+
151
+ /**
152
+ * Environment variable schema.
153
+ * In Vite, use \`@arkenv/vite-plugin\` to validate these at build-time
154
+ * and provide typesafety for \`import.meta.env\`.
155
+ */
156
+ export const Env = v.object({
103
157
  ${n}
104
- });
105
- `:t===`bun`?v.default`
106
- import * as v from "valibot";
107
-
108
- /**
109
- * Environment variable schema.
110
- * In Bun, use \`@arkenv/bun-plugin\` to validate these at build-time
111
- * and provide typesafety for \`process.env\`.
112
- */
113
- export const Env = v.object({
158
+ });
159
+ `:t===`bun`?g.default`
160
+ import * as v from "valibot";
161
+
162
+ /**
163
+ * Environment variable schema.
164
+ * In Bun, use \`@arkenv/bun-plugin\` to validate these at build-time
165
+ * and provide typesafety for \`process.env\`.
166
+ */
167
+ export const Env = v.object({
114
168
  ${n}
115
- });
116
- `:v.default`
169
+ });
170
+ `:g.default`
117
171
  import arkenv from "arkenv/standard";
118
172
  import * as v from "valibot";
119
173
 
@@ -122,31 +176,31 @@ ${n}
122
176
  });
123
177
 
124
178
  export const env = arkenv(Env);
125
- `},qe=(e,t)=>{let n=e?.length?e.map(e=>`\t\t${e}: z.string(),`).join(`
126
- `):` NODE_ENV: z.enum(["development", "production", "test"]),
127
- PORT: z.coerce.number().positive(),`;return t===`vite`?v.default`
128
- import { z } from "zod";
129
-
130
- /**
131
- * Environment variable schema.
132
- * In Vite, use \`@arkenv/vite-plugin\` to validate these at build-time
133
- * and provide typesafety for \`import.meta.env\`.
134
- */
135
- export const Env = z.object({
179
+ `},ft=(e,t)=>{let n=e?.length?e.map(e=>`\t\t${e}: z.string().default(""),`).join(`
180
+ `):` NODE_ENV: z.enum(["development", "production", "test"]).default("development"),
181
+ PORT: z.coerce.number().int().min(1).max(65535).default(3000),`;return t===`vite`?g.default`
182
+ import { z } from "zod";
183
+
184
+ /**
185
+ * Environment variable schema.
186
+ * In Vite, use \`@arkenv/vite-plugin\` to validate these at build-time
187
+ * and provide typesafety for \`import.meta.env\`.
188
+ */
189
+ export const Env = z.object({
136
190
  ${n}
137
- });
138
- `:t===`bun`?v.default`
139
- import { z } from "zod";
140
-
141
- /**
142
- * Environment variable schema.
143
- * In Bun, use \`@arkenv/bun-plugin\` to validate these at build-time
144
- * and provide typesafety for \`process.env\`.
145
- */
146
- export const Env = z.object({
191
+ });
192
+ `:t===`bun`?g.default`
193
+ import { z } from "zod";
194
+
195
+ /**
196
+ * Environment variable schema.
197
+ * In Bun, use \`@arkenv/bun-plugin\` to validate these at build-time
198
+ * and provide typesafety for \`process.env\`.
199
+ */
200
+ export const Env = z.object({
147
201
  ${n}
148
- });
149
- `:v.default`
202
+ });
203
+ `:g.default`
150
204
  import arkenv from "arkenv/standard";
151
205
  import { z } from "zod";
152
206
 
@@ -155,9 +209,12 @@ ${n}
155
209
  });
156
210
 
157
211
  export const env = arkenv(Env);
158
- `};function Je(e){let{validator:t,envKeys:n,framework:r}=e;switch(t){case`arktype`:return Ge(n,r)+`
159
- `;case`zod`:return qe(n,r)+`
160
- `;case`valibot`:return Ke(n,r)+`
161
- `;default:throw Error(`Unsupported validator: ${t}`)}}async function Ye(e){let t=u.default.resolve(process.cwd(),e.path),n=u.default.dirname(t);await g.default.mkdir(n,{recursive:!0});let r=Je(e);if((0,h.existsSync)(t)){if(e.overwrite===!1)return{tsConfigResult:{status:`already_strict`}};if(e.overwrite===void 0){let e=await q({message:`File ${u.default.basename(t)} already exists. Overwrite?`,initialValue:!1});if(F(e)&&(Y(`Operation cancelled.`),process.exit(0)),!e)return{tsConfigResult:{status:`already_strict`}}}await g.default.writeFile(t,r,`utf-8`)}else await g.default.writeFile(t,r,`utf-8`);let i={status:`already_strict`};e.shouldUpdateTsConfig&&(i=await $e());let a=await tt(),o=[`arkenv`,e.validator];e.framework===`vite`&&o.push(`@arkenv/vite-plugin`),e.framework===`bun`&&o.push(`@arkenv/bun-plugin`);let s=nt(a,o);return{tsConfigResult:i,installCmd:s,packageManager:a}}function Xe(e){switch(e){case`pnpm`:return`pnpm dlx`;case`yarn`:return`yarn dlx`;case`bun`:return`bunx`;default:return`npx`}}async function Ze(){let e=[`tsconfig.app.json`,`tsconfig.json`,`tsconfig.base.json`,`tsconfig.node.json`],t=process.cwd();for(;t!==u.default.parse(t).root;){for(let n of e){let e=u.default.join(t,n);try{return await g.default.access(e),e}catch{}}t=u.default.dirname(t)}return null}async function Qe(){let e=await Ze();if(!e)return{status:`not_found`};let t=u.default.basename(e);try{return(0,_.parse)(await g.default.readFile(e,`utf-8`))?.compilerOptions?.strict===!0?{status:`strict`,file:t}:{status:`not_strict`,file:t}}catch{return{status:`not_found`}}}async function $e(){let e=await Ze();if(!e)return{status:`not_found`};let t=u.default.basename(e);try{let n=await g.default.readFile(e,`utf-8`);if((0,_.parse)(n)?.compilerOptions?.strict===!0)return{status:`already_strict`,file:t};let r=(0,_.applyEdits)(n,(0,_.modify)(n,[`compilerOptions`,`strict`],!0,{formattingOptions:{insertSpaces:!0,tabSize:2}}));return await g.default.writeFile(e,r,`utf-8`),{status:`updated`,file:t}}catch{return{status:`error`,file:t}}}async function et(){try{let e=u.default.join(process.cwd(),`package.json`),t=await g.default.readFile(e,`utf-8`),n=JSON.parse(t),r={...n.dependencies,...n.devDependencies};if(r.vite)return`vite`;if(r[`@types/bun`]||r.bun)return`bun`}catch{}try{return await g.default.access(u.default.join(process.cwd(),`vite.config.ts`)),`vite`}catch{}try{return await g.default.access(u.default.join(process.cwd(),`vite.config.js`)),`vite`}catch{}return`bun`in process.versions?`bun`:`node`}async function tt(){let e=process.env.npm_config_user_agent?.toString()||``;if(e.includes(`pnpm`))return`pnpm`;if(e.includes(`yarn`))return`yarn`;if(e.includes(`bun`))return`bun`;if(e.includes(`npm`))return`npm`;let t=process.cwd();for(;t!==u.default.parse(t).root;){try{let e=u.default.join(t,`package.json`),n=await g.default.readFile(e,`utf-8`),r=JSON.parse(n);if(r.packageManager){if(r.packageManager.startsWith(`pnpm`))return`pnpm`;if(r.packageManager.startsWith(`yarn`))return`yarn`;if(r.packageManager.startsWith(`bun`))return`bun`}}catch{}let e=await g.default.readdir(t);if(e.includes(`pnpm-lock.yaml`))return`pnpm`;if(e.includes(`yarn.lock`))return`yarn`;if(e.includes(`bun.lockb`))return`bun`;if(e.includes(`package-lock.json`))return`npm`;t=u.default.dirname(t)}return`npm`}function nt(e,t){switch(e){case`pnpm`:return`pnpm add ${t.join(` `)}`;case`yarn`:return`yarn add ${t.join(` `)}`;case`bun`:return`bun add ${t.join(` `)}`;default:return`npm install ${t.join(` `)}`}}async function rt(){let e=process.argv.slice(2),t=e[0],n=e.includes(`--help`)||e.includes(`-h`),r=e.includes(`--yes`)||e.includes(`-y`),i=()=>{console.log(`${Ue} ${Q.default.cyan(`ArkEnv CLI v${Be}`)}`),console.log(`
162
- Usage:`),console.log(` arkenv init Set up ArkEnv in your project`),console.log(`
163
- Options:`),console.log(` --yes, -y Skip prompts and use recommended defaults`),console.log(` --help, -h Show this help message`)};n&&(i(),process.exit(0)),t!==`init`&&(console.error(t?Q.default.red(`Unknown command: ${t}`):Q.default.red(`Missing command.`)),i(),process.exit(1));let a=!1,o=await Qe();if(o.status===`not_strict`)if(r)a=!0;else{J.warn(Q.default.yellow(`⚠ TypeScript strict mode is not enabled in your ${$(o.file)}.`));let e=await q({message:`ArkEnv requires ${Q.default.dim(`strict`)} mode in your ${$(o.file)}. Would you like to enable it now?`,initialValue:!0,active:`Yes (Recommended)`,inactive:`No`});F(e)&&(Y(`Operation cancelled.`),process.exit(0)),e&&(a=!0)}let s=await We({framework:await et()},r);s||(Y(`Operation cancelled.`),process.exit(0));let c=Ie();c.start(`Scaffolding ArkEnv configuration...`);try{let{tsConfigResult:e,installCmd:t,packageManager:n}=await Ye({...s,shouldUpdateTsConfig:a});c.stop(`Configuration scaffolded!`),t&&(J.step(`Installing dependencies with ${n}...`),await new Promise((e,n)=>{let r=(0,l.spawn)(t,{stdio:`inherit`,shell:!0});r.on(`close`,t=>{t===0?e():n(Error(`Installation failed with code ${t}`))}),r.on(`error`,n)})),e.status===`updated`?J.info(Q.default.blue(`ℹ Enforced strict: true in your ${$(e.file)}`)):e.status===`error`&&J.warn(Q.default.yellow(`⚠ Could not automatically update ${$(e.file||`tsconfig.json`)}. Please ensure 'strict: true' is set manually.`));let r=u.default.relative(process.cwd(),u.default.resolve(s.path)),i=r.startsWith(`.`)?r:`./${r}`,o=i.replace(/\.(ts|js|tsx|jsx)$/,``);J.step(`1. Check ${$(i)} and adapt it to your needs. Review your schema to refine types (e.g., ${$(`number`)}, ${$(`boolean`)}, etc.).`),J.step(`2. Import and use your environment variables: ${$(`import { env } from "${o}"`)} → ${$(`env.VAR_NAME`)}`);let d=Xe(n);J.step(`3. Install the ArkEnv Agent Skill for AI assistance: ${$(`${d} skills add yamcodes/arkenv`)}`),Pe(`${Ue} ${Q.default.dim(`Happy coding!`)}`)}catch(e){c.stop(`Scaffolding failed.`),J.error(String(e)),process.exit(1)}}rt(),process.on(`unhandledRejection`,e=>{J.error(String(e)),process.exit(1)});
212
+ `};function pt(e){let{validator:t,envKeys:n,framework:r}=e;switch(t){case`arktype`:return`${ct(n,r)}\n`;case`zod`:return`${ft(n,r)}\n`;case`valibot`:return`${dt(n,r)}\n`;default:throw Error(`Unsupported validator: ${t}`)}}async function mt(e){let t=m.default.resolve(process.cwd(),e.path),n=m.default.dirname(t);await _.default.mkdir(n,{recursive:!0});let r=await xt(),i=[`arkenv`,e.validator];e.framework===`vite`&&i.push(`@arkenv/vite-plugin`),e.framework===`bun`&&i.push(`@arkenv/bun-plugin`);let a=St(r,i),o=pt(e);if((0,p.existsSync)(t)){if(e.overwriteEnvSchemaFile===!1)return{tsConfigResult:{status:`already_strict`},packageManager:r,installCmd:void 0,typeDefinitionResult:{status:`none`}};if(e.overwriteEnvSchemaFile===void 0){let e=await q({message:`File ${m.default.basename(t)} already exists. Overwrite?`,initialValue:!1});if(I(e)&&(Y(`Operation cancelled.`),process.exit(0)),!e)return{tsConfigResult:{status:`already_strict`},packageManager:r,installCmd:void 0,typeDefinitionResult:{status:`none`}}}await _.default.writeFile(t,o,`utf-8`)}else await _.default.writeFile(t,o,`utf-8`);let s={status:`already_strict`};e.shouldUpdateTsConfig&&(s=await yt());let c={status:`none`};return(e.framework===`vite`||e.framework===`bun`)&&e.installTypeDefinitions!==!1&&(c=await ht(e,n)),{tsConfigResult:s,installCmd:a,packageManager:r,typeDefinitionResult:c}}async function ht(e,t){let n=e.framework===`vite`?`vite-env.d.ts`:`bun-env.d.ts`,r=m.default.join(t,n),i=m.default.resolve(process.cwd(),e.path);if(e.envDtsHandling===`skip`)return{status:`skipped`,file:n};if(e.envDtsHandling===`append`||!e.envDtsHandling&&(0,p.existsSync)(r)){let{safeAppend:t}=await Promise.resolve().then(()=>require(`./injection-IfQN68XB.cjs`));return{status:await t(r,i,e.framework)?`appended`:`skipped`,file:n}}let a=e.framework===`vite`?lt(e.path):ut(e.path),o=(0,p.existsSync)(r);return await _.default.writeFile(r,a,`utf-8`),{status:o?`overwritten`:`created`,file:n}}function gt(e){switch(e){case`pnpm`:return`pnpm dlx`;case`yarn`:return`yarn dlx`;case`bun`:return`bunx`;default:return`npx`}}async function _t(){let e=[`tsconfig.app.json`,`tsconfig.json`,`tsconfig.base.json`,`tsconfig.node.json`],t=process.cwd();for(;t!==m.default.parse(t).root;){for(let n of e){let e=m.default.join(t,n);try{return await _.default.access(e),e}catch{}}t=m.default.dirname(t)}return null}async function vt(){let e=await _t();if(!e)return{status:`not_found`};let t=m.default.basename(e);try{return(0,y.parse)(await _.default.readFile(e,`utf-8`))?.compilerOptions?.strict===!0?{status:`strict`,file:t}:{status:`not_strict`,file:t}}catch{return{status:`not_found`}}}async function yt(){let e=await _t();if(!e)return{status:`not_found`};let t=m.default.basename(e);try{let n=await _.default.readFile(e,`utf-8`);if((0,y.parse)(n)?.compilerOptions?.strict===!0)return{status:`already_strict`,file:t};let r=(0,y.applyEdits)(n,(0,y.modify)(n,[`compilerOptions`,`strict`],!0,{formattingOptions:{insertSpaces:!0,tabSize:2}}));return await _.default.writeFile(e,r,`utf-8`),{status:`updated`,file:t}}catch{return{status:`error`,file:t}}}async function bt(){try{let e=m.default.join(process.cwd(),`package.json`),t=await _.default.readFile(e,`utf-8`),n=JSON.parse(t),r={...n.dependencies,...n.devDependencies};if(r.vite)return`vite`;if(r[`@types/bun`]||r.bun)return`bun`}catch{}try{return await _.default.access(m.default.join(process.cwd(),`vite.config.ts`)),`vite`}catch{}try{return await _.default.access(m.default.join(process.cwd(),`vite.config.js`)),`vite`}catch{}return`bun`in process.versions?`bun`:`node`}async function xt(){let e=process.env.npm_config_user_agent?.toString()||``;if(e.includes(`pnpm`))return`pnpm`;if(e.includes(`yarn`))return`yarn`;if(e.includes(`bun`))return`bun`;if(e.includes(`npm`))return`npm`;let t=process.cwd();for(;t!==m.default.parse(t).root;){try{let e=m.default.join(t,`package.json`),n=await _.default.readFile(e,`utf-8`),r=JSON.parse(n);if(r.packageManager){if(r.packageManager.startsWith(`pnpm`))return`pnpm`;if(r.packageManager.startsWith(`yarn`))return`yarn`;if(r.packageManager.startsWith(`bun`))return`bun`}}catch{}let e=await _.default.readdir(t);if(e.includes(`pnpm-lock.yaml`))return`pnpm`;if(e.includes(`yarn.lock`))return`yarn`;if(e.includes(`bun.lockb`))return`bun`;if(e.includes(`package-lock.json`))return`npm`;t=m.default.dirname(t)}return`npm`}function St(e,t){switch(e){case`pnpm`:return`pnpm add ${t.join(` `)}`;case`yarn`:return`yarn add ${t.join(` `)}`;case`bun`:return`bun add ${t.join(` `)}`;default:return`npm install ${t.join(` `)}`}}var Ct=class{constructor(e){this.cli=e}async run(){let{logger:e,isYes:t}=this.cli;e.interactiveStdout(!0);let n=!1,r=null;try{let i=await vt();if(i.status===`not_strict`)if(t)n=!0;else{e.warn(`TypeScript strict mode is not enabled in your ${$(i.file)}.`);let t=await q({message:`ArkEnv requires ${Q.default.dim(`strict`)} mode in your ${$(i.file)}. Would you like to enable it now?`,initialValue:!0,active:`Yes (Recommended)`,inactive:`No`});I(t)&&e.cancel(`Operation cancelled.`),t&&(n=!0)}r=await st({framework:await bt()},t,this.cli.isAgent)}finally{e.interactiveStdout(!1)}if(!r){e.cancel(`Operation cancelled.`);return}let i=e.spinner();i.start(`Scaffolding ArkEnv configuration...`);try{let{tsConfigResult:t,installCmd:a,packageManager:o,typeDefinitionResult:s}=await mt({...r,shouldUpdateTsConfig:n});i.stop(`Configuration scaffolded!`),a&&process.env.SKIP_INSTALL!==`true`&&(e.step(`Installing dependencies with ${o}...`),await this.execute(a)),t.status===`updated`?e.info(`Enforced strict: true in your ${$(t.file)}`):t.status===`error`&&e.warn(`Could not automatically update ${$(t.file||`tsconfig.json`)}. Please ensure 'strict: true' is set manually.`),s.status===`created`?e.info(`Created ${$(s.file)} for typesafe environment variables.`):s.status===`overwritten`?e.info(`Updated ${$(s.file)} for typesafe environment variables.`):s.status===`appended`&&e.info(`Appended ArkEnv types to ${$(s.file)}.`);let c=m.default.relative(process.cwd(),m.default.resolve(r.path)),l=c.startsWith(`.`)?c:`./${c}`,u=l.replace(/\.(ts|js|tsx|jsx)$/,``);if(r.framework===`vite`){let t=await et();if(t){e.step(`Bootstrapping Vite plugin...`);let n=await nt(t,u);n.success?e.info(`Updated ${$(m.default.basename(t))}`):(e.warn(`Could not automatically update ${$(m.default.basename(t))}: ${n.error}`),e.info(`Please add '@arkenv/vite-plugin' manually.`))}else e.info(`No Vite config found — please add '@arkenv/vite-plugin' to your Vite config manually.`)}else if(r.framework===`bun`){let t=await rt(await tt());t.success&&t.instructions?e.info(t.instructions):t.success||e.error(t.error||`Bun bootstrap failed`)}let d=gt(o),f=this.cli.isYes?` --yes`:``,p=!1;if(r.installSkill&&process.env.SKIP_INSTALL!==`true`){e.step(`Installing ArkEnv agent skill...`);try{await this.execute(`${d} skills add yamcodes/arkenv${f}`),p=!0}catch(t){e.warn(`Failed to install ArkEnv AI skill: ${t.message}`)}}let h=`2. Import and use: ${$(`import { env } from "${u}"`)}`;r.framework===`vite`?h=`2. Access via ${$(`import.meta.env.YOUR_VAR`)}`:r.framework===`bun`&&(h=`2. Access via ${$(`process.env.YOUR_VAR`)}`),p?e.note(g.default`
213
+ Inside your AI assistant (e.g. Claude Code), use:
214
+ ${Q.default.cyan(`/arkenv`)} - automatically refine your schema and configure integrations.
215
+ `,`Next steps`):e.note(g.default`
216
+ 1. Check ${$(l)} and refine your environment schema.
217
+ ${h}
218
+ 3. (Recommended) Install the AI skill: ${$(`${d} skills add yamcodes/arkenv`)}
219
+ Then run ${Q.default.cyan(`/arkenv`)} inside your AI assistant to finish.
220
+ `,`Next steps`),e.finish(`${ot} ArkEnv scaffolding complete. ${Q.default.dim(`Happy coding!`)}`,{path:l,framework:r.framework,validator:r.validator,packageManager:o,tsConfigUpdated:t.status===`updated`,skillInstalled:p})}catch(t){i.stop(`Scaffolding failed.`),e.fatal(`Scaffolding failed.`,t)}}async execute(e){let{logger:t,isQuiet:n}=this.cli,r=n?`pipe`:t.stdio;return new Promise((t,i)=>{let a=(0,h.spawn)(e,[],{stdio:r,shell:!0}),o=``,s=``,c=1e4;n&&(a.stdout?.on(`data`,e=>{o=(o+e.toString()).slice(-c)}),a.stderr?.on(`data`,e=>{s=(s+e.toString()).slice(-c)})),a.on(`close`,(e,r)=>{if(e===0)t();else{let t=e===null?`Command terminated by signal ${r}`:`Command failed with code ${e}`;n&&(o&&(t+=`\n${Q.default.dim(`STDOUT:`)}\n${o}`),s&&(t+=`\n${Q.default.red(`STDERR:`)}\n${s}`)),i(Error(t))}}),a.on(`error`,i)})}};async function wt(){let e=new Xe(process.argv);e.helpRequested&&(await new Qe(e).run(),process.exit(0)),e.command!==`init`&&(e.command?e.logger.error(`Unknown command: ${e.command}`):e.logger.error(`Missing command.`),await new Qe(e).run(),process.exit(1));try{await new Ct(e).run()}catch(t){e.logger.fatal(`An unexpected error occurred`,t)}}wt(),process.on(`unhandledRejection`,e=>{new Xe(process.argv).logger.fatal(`Unhandled rejection`,e)}),exports.t=c;
@@ -0,0 +1,21 @@
1
+ const e=require(`./index.cjs`);let t=require(`node:path`);t=e.t(t,1);let n=require(`dedent`);n=e.t(n,1);let r=require(`node:fs/promises`);r=e.t(r,1);const i=`// @arkenv-types`;async function a(e,n,a){try{let c=await r.default.readFile(e,`utf-8`);if(c.includes(i))return!1;let l=t.default.dirname(e),u=t.default.relative(l,n).replace(/\.(ts|js|tsx|jsx)$/,``).split(t.default.sep).join(`/`),d=u.startsWith(`.`)?u:`./${u}`,f=a===`vite`?o(d):s(d),p=c.endsWith(`
2
+ `)?``:`
3
+ `;return await r.default.appendFile(e,`${p}\n${i}\n${f}\n`,`utf-8`),!0}catch(t){return console.error(`Failed to append to ${e}:`,t),!1}}function o(e){return n.default`
4
+ type ImportMetaEnvAugmented = import("@arkenv/vite-plugin").ImportMetaEnvAugmented<
5
+ typeof import("${e}").Env
6
+ >;
7
+
8
+ interface ImportMetaEnv extends ImportMetaEnvAugmented {}
9
+
10
+ interface ImportMeta {
11
+ readonly env: ImportMetaEnv;
12
+ }
13
+ `}function s(e){return n.default`
14
+ type ProcessEnvAugmented = import("@arkenv/bun-plugin").ProcessEnvAugmented<
15
+ typeof import("${e}").Env
16
+ >;
17
+
18
+ declare namespace NodeJS {
19
+ interface ProcessEnv extends ProcessEnvAugmented {}
20
+ }
21
+ `}exports.safeAppend=a;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@arkenv/cli",
3
3
  "type": "module",
4
- "version": "0.0.4",
4
+ "version": "0.0.6",
5
5
  "description": "Interactive CLI for scaffolding ArkEnv projects",
6
6
  "bin": {
7
7
  "arkenv": "./dist/index.cjs"
@@ -37,6 +37,7 @@
37
37
  "@clack/prompts": "^1.3.0",
38
38
  "dedent": "^1.7.2",
39
39
  "jsonc-parser": "^3.3.1",
40
+ "magicast": "^0.5.2",
40
41
  "picocolors": "^1.1.1"
41
42
  },
42
43
  "devDependencies": {
@@ -49,6 +50,7 @@
49
50
  "start": "node ./dist/index.cjs init",
50
51
  "dev": "tsdown --watch",
51
52
  "test": "vitest",
52
- "test:run": "vitest run"
53
+ "test:run": "vitest run",
54
+ "typecheck": "tsc --noEmit"
53
55
  }
54
56
  }