@datadog/create-apps 0.2.0 → 0.2.2

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/bin.js CHANGED
@@ -10,17 +10,17 @@ ${this.candidates.map(({usage:r})=>`$ ${r}`).join(`
10
10
  `)}`}else if(this.candidates.length===1){let[{usage:o}]=this.candidates;this.message=`Command not found; did you mean:
11
11
 
12
12
  $ ${o}
13
- ${Tn(t)}`}else this.message=`Command not found; did you mean one of:
13
+ ${On(t)}`}else this.message=`Command not found; did you mean one of:
14
14
 
15
15
  ${this.candidates.map(({usage:o},r)=>`${`${r}.`.padStart(4)} ${o}`).join(`
16
16
  `)}
17
17
 
18
- ${Tn(t)}`}},Pn=class extends Error{constructor(t,n){super(),this.input=t,this.usages=n,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives:
18
+ ${On(t)}`}},Pn=class extends Error{constructor(t,n){super(),this.input=t,this.usages=n,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives:
19
19
 
20
20
  ${this.usages.map((o,r)=>`${`${r}.`.padStart(4)} ${o}`).join(`
21
21
  `)}
22
22
 
23
- ${Tn(t)}`}},Tn=e=>`While running ${e.filter(t=>t!==Xo.SpecialToken.EndOfInput&&t!==Xo.SpecialToken.EndOfPartialInput).map(t=>{let n=JSON.stringify(t);return t.match(/\s/)||t.length===0||n!==`"${t}"`?n:t}).join(" ")}`;Ye.AmbiguousSyntaxError=Pn;Ye.UnknownSyntaxError=Sn;Ye.UsageError=Bn});var In=x(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});var _o=80,On=Array(_o).fill("\u2501");for(let e=0;e<=24;++e)On[On.length-e]=`\x1B[38;5;${232+e}m\u2501`;var gs={header:e=>`\x1B[1m\u2501\u2501\u2501 ${e}${e.length<_o-5?` ${On.slice(e.length+5).join("")}`:":"}\x1B[0m`,bold:e=>`\x1B[1m${e}\x1B[22m`,error:e=>`\x1B[31m\x1B[1m${e}\x1B[22m\x1B[39m`,code:e=>`\x1B[36m${e}\x1B[39m`},ms={header:e=>e,bold:e=>e,error:e=>e,code:e=>e};function As(e){let t=e.split(`
23
+ ${On(t)}`}},On=e=>`While running ${e.filter(t=>t!==Xo.SpecialToken.EndOfInput&&t!==Xo.SpecialToken.EndOfPartialInput).map(t=>{let n=JSON.stringify(t);return t.match(/\s/)||t.length===0||n!==`"${t}"`?n:t}).join(" ")}`;Ye.AmbiguousSyntaxError=Pn;Ye.UnknownSyntaxError=Sn;Ye.UsageError=Bn});var In=x(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});var _o=80,Tn=Array(_o).fill("\u2501");for(let e=0;e<=24;++e)Tn[Tn.length-e]=`\x1B[38;5;${232+e}m\u2501`;var gs={header:e=>`\x1B[1m\u2501\u2501\u2501 ${e}${e.length<_o-5?` ${Tn.slice(e.length+5).join("")}`:":"}\x1B[0m`,bold:e=>`\x1B[1m${e}\x1B[22m`,error:e=>`\x1B[31m\x1B[1m${e}\x1B[22m\x1B[39m`,code:e=>`\x1B[36m${e}\x1B[39m`},ms={header:e=>e,bold:e=>e,error:e=>e,code:e=>e};function As(e){let t=e.split(`
24
24
  `),n=t.filter(r=>r.match(/\S/)),o=n.length>0?n.reduce((r,i)=>Math.min(r,i.length-i.trimStart().length),Number.MAX_VALUE):0;return t.map(r=>r.slice(o).trimRight()).join(`
25
25
  `)}function ys(e,{format:t,paragraphs:n}){return e=e.replace(/\r\n?/g,`
26
26
  `),e=As(e),e=e.replace(/^\n+|\n+$/g,""),e=e.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2
@@ -30,15 +30,15 @@ ${Tn(t)}`}},Tn=e=>`While running ${e.filter(t=>t!==Xo.SpecialToken.EndOfInput&&t
30
30
  `)}).join(`
31
31
 
32
32
  `)),e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(o,r,i)=>t.code(r+i+r)),e=e.replace(/(\*\*)((?:.|[\n])*?)\1/g,(o,r,i)=>t.bold(r+i+r)),e?`${e}
33
- `:""}Qe.formatMarkdownish=ys;Qe.richFormat=gs;Qe.textFormat=ms});var ie=x(ge=>{"use strict";Object.defineProperty(ge,"__esModule",{value:!0});var $o=yt(),er=Symbol("clipanion/isOption");function Fs(e){return{...e,[er]:!0}}function Es(e,t){return typeof e>"u"?[e,t]:typeof e=="object"&&e!==null&&!Array.isArray(e)?[void 0,e]:[e,t]}function Rn(e,{mergeName:t=!1}={}){let n=e.match(/^([^:]+): (.*)$/m);if(!n)return"validation failed";let[,o,r]=n;return t&&(r=r[0].toLowerCase()+r.slice(1)),r=o!=="."||!t?`${o.replace(/^\.(\[|$)/,"$1")}: ${r}`:`: ${r}`,r}function tr(e,t){return t.length===1?new $o.UsageError(`${e}${Rn(t[0],{mergeName:!0})}`):new $o.UsageError(`${e}:
33
+ `:""}Qe.formatMarkdownish=ys;Qe.richFormat=gs;Qe.textFormat=ms});var ie=x(ge=>{"use strict";Object.defineProperty(ge,"__esModule",{value:!0});var $o=yt(),er=Symbol("clipanion/isOption");function Fs(e){return{...e,[er]:!0}}function bs(e,t){return typeof e>"u"?[e,t]:typeof e=="object"&&e!==null&&!Array.isArray(e)?[void 0,e]:[e,t]}function Rn(e,{mergeName:t=!1}={}){let n=e.match(/^([^:]+): (.*)$/m);if(!n)return"validation failed";let[,o,r]=n;return t&&(r=r[0].toLowerCase()+r.slice(1)),r=o!=="."||!t?`${o.replace(/^\.(\[|$)/,"$1")}: ${r}`:`: ${r}`,r}function tr(e,t){return t.length===1?new $o.UsageError(`${e}${Rn(t[0],{mergeName:!0})}`):new $o.UsageError(`${e}:
34
34
  ${t.map(n=>`
35
- - ${Rn(n)}`).join("")}`)}function bs(e,t,n){if(typeof n>"u")return t;let o=[],r=[],i=s=>{let u=t;return t=s,i.bind(null,u)};if(!n(t,{errors:o,coercions:r,coercion:i}))throw tr(`Invalid value for ${e}`,o);for(let[,s]of r)s();return t}ge.applyValidator=bs;ge.cleanValidationError=Rn;ge.formatError=tr;ge.isOptionSymbol=er;ge.makeCommandOption=Fs;ge.rerouteArguments=Es});var cr=x(g=>{"use strict";Object.defineProperty(g,"__esModule",{value:!0});var ws=/^[a-zA-Z_][a-zA-Z0-9_]*$/;function v(e){return e===null?"null":e===void 0?"undefined":e===""?"an empty string":typeof e=="symbol"?`<${e.toString()}>`:Array.isArray(e)?"an array":JSON.stringify(e)}function Te(e,t){if(e.length===0)return"nothing";if(e.length===1)return v(e[0]);let n=e.slice(0,-1),o=e[e.length-1],r=e.length>2?`, ${t} `:` ${t} `;return`${n.map(i=>v(i)).join(", ")}${r}${v(o)}`}function me(e,t){var n,o,r;return typeof t=="number"?`${(n=e?.p)!==null&&n!==void 0?n:"."}[${t}]`:ws.test(t)?`${(o=e?.p)!==null&&o!==void 0?o:""}.${t}`:`${(r=e?.p)!==null&&r!==void 0?r:"."}[${JSON.stringify(t)}]`}function Nn(e,t,n){return e===1?t:n}var Cs=/^#[0-9a-f]{6}$/i,vs=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,ks=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,xs=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,nr=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/;function m({errors:e,p:t}={},n){return e?.push(`${t??"."}: ${n}`),!1}function Bs(e,t){return n=>{e[t]=n}}function _(e,t){return n=>{let o=e[t];return e[t]=n,_(e,t).bind(null,o)}}function We(e,t,n){let o=()=>(e(n()),r),r=()=>(e(t),o);return o}function jn(){return F({test:(e,t)=>!0})}function or(e){return F({test:(t,n)=>t!==e?m(n,`Expected ${v(e)} (got ${v(t)})`):!0})}function rr(){return F({test:(e,t)=>typeof e!="string"?m(t,`Expected a string (got ${v(e)})`):!0})}function Ss(e){let t=Array.isArray(e)?e:Object.values(e),n=t.every(r=>typeof r=="string"||typeof r=="number"),o=new Set(t);return o.size===1?or([...o][0]):F({test:(r,i)=>o.has(r)?!0:n?m(i,`Expected one of ${Te(t,"or")} (got ${v(r)})`):m(i,`Expected a valid enumeration value (got ${v(r)})`)})}var Ps=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]);function Ts(){return F({test:(e,t)=>{var n;if(typeof e!="boolean"){if(typeof t?.coercions<"u"){if(typeof t?.coercion>"u")return m(t,"Unbound coercion result");let o=Ps.get(e);if(typeof o<"u")return t.coercions.push([(n=t.p)!==null&&n!==void 0?n:".",t.coercion.bind(null,o)]),!0}return m(t,`Expected a boolean (got ${v(e)})`)}return!0}})}function Os(){return F({test:(e,t)=>{var n;if(typeof e!="number"){if(typeof t?.coercions<"u"){if(typeof t?.coercion>"u")return m(t,"Unbound coercion result");let o;if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{}if(typeof r=="number")if(JSON.stringify(r)===e)o=r;else return m(t,`Received a number that can't be safely represented by the runtime (${e})`)}if(typeof o<"u")return t.coercions.push([(n=t.p)!==null&&n!==void 0?n:".",t.coercion.bind(null,o)]),!0}return m(t,`Expected a number (got ${v(e)})`)}return!0}})}function Is(e){return F({test:(t,n)=>{var o;if(typeof n?.coercions>"u")return m(n,"The isPayload predicate can only be used with coercion enabled");if(typeof n.coercion>"u")return m(n,"Unbound coercion result");if(typeof t!="string")return m(n,`Expected a string (got ${v(t)})`);let r;try{r=JSON.parse(t)}catch{return m(n,`Expected a JSON string (got ${v(t)})`)}let i={value:r};return e(r,Object.assign(Object.assign({},n),{coercion:_(i,"value")}))?(n.coercions.push([(o=n.p)!==null&&o!==void 0?o:".",n.coercion.bind(null,i.value)]),!0):!1}})}function Rs(){return F({test:(e,t)=>{var n;if(!(e instanceof Date)){if(typeof t?.coercions<"u"){if(typeof t?.coercion>"u")return m(t,"Unbound coercion result");let o;if(typeof e=="string"&&nr.test(e))o=new Date(e);else{let r;if(typeof e=="string"){let i;try{i=JSON.parse(e)}catch{}typeof i=="number"&&(r=i)}else typeof e=="number"&&(r=e);if(typeof r<"u")if(Number.isSafeInteger(r)||!Number.isSafeInteger(r*1e3))o=new Date(r*1e3);else return m(t,`Received a timestamp that can't be safely represented by the runtime (${e})`)}if(typeof o<"u")return t.coercions.push([(n=t.p)!==null&&n!==void 0?n:".",t.coercion.bind(null,o)]),!0}return m(t,`Expected a date (got ${v(e)})`)}return!0}})}function Ft(e,{delimiter:t}={}){return F({test:(n,o)=>{var r;let i=n;if(typeof n=="string"&&typeof t<"u"&&typeof o?.coercions<"u"){if(typeof o?.coercion>"u")return m(o,"Unbound coercion result");n=n.split(t)}if(!Array.isArray(n))return m(o,`Expected an array (got ${v(n)})`);let a=!0;for(let s=0,u=n.length;s<u&&(a=e(n[s],Object.assign(Object.assign({},o),{p:me(o,s),coercion:_(n,s)}))&&a,!(!a&&o?.errors==null));++s);return n!==i&&o.coercions.push([(r=o.p)!==null&&r!==void 0?r:".",o.coercion.bind(null,n)]),a}})}function Ns(e,{delimiter:t}={}){let n=Ft(e,{delimiter:t});return F({test:(o,r)=>{var i,a;if(Object.getPrototypeOf(o).toString()==="[object Set]")if(typeof r?.coercions<"u"){if(typeof r?.coercion>"u")return m(r,"Unbound coercion result");let s=[...o],u=[...o];if(!n(u,Object.assign(Object.assign({},r),{coercion:void 0})))return!1;let c=()=>u.some((p,d)=>p!==s[d])?new Set(u):o;return r.coercions.push([(i=r.p)!==null&&i!==void 0?i:".",We(r.coercion,o,c)]),!0}else{let s=!0;for(let u of o)if(s=e(u,Object.assign({},r))&&s,!s&&r?.errors==null)break;return s}if(typeof r?.coercions<"u"){if(typeof r?.coercion>"u")return m(r,"Unbound coercion result");let s={value:o};return n(o,Object.assign(Object.assign({},r),{coercion:_(s,"value")}))?(r.coercions.push([(a=r.p)!==null&&a!==void 0?a:".",We(r.coercion,o,()=>new Set(s.value))]),!0):!1}return m(r,`Expected a set (got ${v(o)})`)}})}function js(e,t){let n=Ft(Et([e,t])),o=bt(t,{keys:e});return F({test:(r,i)=>{var a,s,u;if(Object.getPrototypeOf(r).toString()==="[object Map]")if(typeof i?.coercions<"u"){if(typeof i?.coercion>"u")return m(i,"Unbound coercion result");let c=[...r],p=[...r];if(!n(p,Object.assign(Object.assign({},i),{coercion:void 0})))return!1;let d=()=>p.some((l,f)=>l[0]!==c[f][0]||l[1]!==c[f][1])?new Map(p):r;return i.coercions.push([(a=i.p)!==null&&a!==void 0?a:".",We(i.coercion,r,d)]),!0}else{let c=!0;for(let[p,d]of r)if(c=e(p,Object.assign({},i))&&c,!c&&i?.errors==null||(c=t(d,Object.assign(Object.assign({},i),{p:me(i,p)}))&&c,!c&&i?.errors==null))break;return c}if(typeof i?.coercions<"u"){if(typeof i?.coercion>"u")return m(i,"Unbound coercion result");let c={value:r};return Array.isArray(r)?n(r,Object.assign(Object.assign({},i),{coercion:void 0}))?(i.coercions.push([(s=i.p)!==null&&s!==void 0?s:".",We(i.coercion,r,()=>new Map(c.value))]),!0):!1:o(r,Object.assign(Object.assign({},i),{coercion:_(c,"value")}))?(i.coercions.push([(u=i.p)!==null&&u!==void 0?u:".",We(i.coercion,r,()=>new Map(Object.entries(c.value)))]),!0):!1}return m(i,`Expected a map (got ${v(r)})`)}})}function Et(e,{delimiter:t}={}){let n=ar(e.length);return F({test:(o,r)=>{var i;if(typeof o=="string"&&typeof t<"u"&&typeof r?.coercions<"u"){if(typeof r?.coercion>"u")return m(r,"Unbound coercion result");o=o.split(t),r.coercions.push([(i=r.p)!==null&&i!==void 0?i:".",r.coercion.bind(null,o)])}if(!Array.isArray(o))return m(r,`Expected a tuple (got ${v(o)})`);let a=n(o,Object.assign({},r));for(let s=0,u=o.length;s<u&&s<e.length&&(a=e[s](o[s],Object.assign(Object.assign({},r),{p:me(r,s),coercion:_(o,s)}))&&a,!(!a&&r?.errors==null));++s);return a}})}function bt(e,{keys:t=null}={}){let n=Ft(Et([t??rr(),e]));return F({test:(o,r)=>{var i;if(Array.isArray(o)&&typeof r?.coercions<"u")return typeof r?.coercion>"u"?m(r,"Unbound coercion result"):n(o,Object.assign(Object.assign({},r),{coercion:void 0}))?(o=Object.fromEntries(o),r.coercions.push([(i=r.p)!==null&&i!==void 0?i:".",r.coercion.bind(null,o)]),!0):!1;if(typeof o!="object"||o===null)return m(r,`Expected an object (got ${v(o)})`);let a=Object.keys(o),s=!0;for(let u=0,c=a.length;u<c&&(s||r?.errors!=null);++u){let p=a[u],d=o[p];if(p==="__proto__"||p==="constructor"){s=m(Object.assign(Object.assign({},r),{p:me(r,p)}),"Unsafe property name");continue}if(t!==null&&!t(p,r)){s=!1;continue}if(!e(d,Object.assign(Object.assign({},r),{p:me(r,p),coercion:_(o,p)}))){s=!1;continue}}return s}})}function Ms(e,t={}){return bt(e,t)}function ir(e,{extra:t=null}={}){let n=Object.keys(e),o=F({test:(r,i)=>{if(typeof r!="object"||r===null)return m(i,`Expected an object (got ${v(r)})`);let a=new Set([...n,...Object.keys(r)]),s={},u=!0;for(let c of a){if(c==="constructor"||c==="__proto__")u=m(Object.assign(Object.assign({},i),{p:me(i,c)}),"Unsafe property name");else{let p=Object.prototype.hasOwnProperty.call(e,c)?e[c]:void 0,d=Object.prototype.hasOwnProperty.call(r,c)?r[c]:void 0;typeof p<"u"?u=p(d,Object.assign(Object.assign({},i),{p:me(i,c),coercion:_(r,c)}))&&u:t===null?u=m(Object.assign(Object.assign({},i),{p:me(i,c)}),`Extraneous property (got ${v(d)})`):Object.defineProperty(s,c,{enumerable:!0,get:()=>d,set:Bs(r,c)})}if(!u&&i?.errors==null)break}return t!==null&&(u||i?.errors!=null)&&(u=t(s,i)&&u),u}});return Object.assign(o,{properties:e})}function Ls(e){return ir(e,{extra:bt(jn())})}var Gs=e=>F({test:(t,n)=>t instanceof e?!0:m(n,`Expected an instance of ${e.name} (got ${v(t)})`)}),Hs=(e,{exclusive:t=!1}={})=>F({test:(n,o)=>{var r,i,a;let s=[],u=typeof o?.errors<"u"?[]:void 0;for(let c=0,p=e.length;c<p;++c){let d=typeof o?.errors<"u"?[]:void 0,l=typeof o?.coercions<"u"?[]:void 0;if(e[c](n,Object.assign(Object.assign({},o),{errors:d,coercions:l,p:`${(r=o?.p)!==null&&r!==void 0?r:"."}#${c+1}`}))){if(s.push([`#${c+1}`,l]),!t)break}else u?.push(d[0])}if(s.length===1){let[,c]=s[0];return typeof c<"u"&&((i=o?.coercions)===null||i===void 0||i.push(...c)),!0}return s.length>1?m(o,`Expected to match exactly a single predicate (matched ${s.join(", ")})`):(a=o?.errors)===null||a===void 0||a.push(...u),!1}});function sr(e){return()=>e}function F({test:e}){return sr(e)()}var Ae=class extends Error{constructor({errors:t}={}){let n="Type mismatch";if(t&&t.length>0){n+=`
35
+ - ${Rn(n)}`).join("")}`)}function Es(e,t,n){if(typeof n>"u")return t;let o=[],r=[],i=s=>{let u=t;return t=s,i.bind(null,u)};if(!n(t,{errors:o,coercions:r,coercion:i}))throw tr(`Invalid value for ${e}`,o);for(let[,s]of r)s();return t}ge.applyValidator=Es;ge.cleanValidationError=Rn;ge.formatError=tr;ge.isOptionSymbol=er;ge.makeCommandOption=Fs;ge.rerouteArguments=bs});var cr=x(g=>{"use strict";Object.defineProperty(g,"__esModule",{value:!0});var ws=/^[a-zA-Z_][a-zA-Z0-9_]*$/;function v(e){return e===null?"null":e===void 0?"undefined":e===""?"an empty string":typeof e=="symbol"?`<${e.toString()}>`:Array.isArray(e)?"an array":JSON.stringify(e)}function Oe(e,t){if(e.length===0)return"nothing";if(e.length===1)return v(e[0]);let n=e.slice(0,-1),o=e[e.length-1],r=e.length>2?`, ${t} `:` ${t} `;return`${n.map(i=>v(i)).join(", ")}${r}${v(o)}`}function me(e,t){var n,o,r;return typeof t=="number"?`${(n=e?.p)!==null&&n!==void 0?n:"."}[${t}]`:ws.test(t)?`${(o=e?.p)!==null&&o!==void 0?o:""}.${t}`:`${(r=e?.p)!==null&&r!==void 0?r:"."}[${JSON.stringify(t)}]`}function Nn(e,t,n){return e===1?t:n}var Cs=/^#[0-9a-f]{6}$/i,vs=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,ks=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,xs=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,nr=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/;function m({errors:e,p:t}={},n){return e?.push(`${t??"."}: ${n}`),!1}function Bs(e,t){return n=>{e[t]=n}}function _(e,t){return n=>{let o=e[t];return e[t]=n,_(e,t).bind(null,o)}}function We(e,t,n){let o=()=>(e(n()),r),r=()=>(e(t),o);return o}function jn(){return F({test:(e,t)=>!0})}function or(e){return F({test:(t,n)=>t!==e?m(n,`Expected ${v(e)} (got ${v(t)})`):!0})}function rr(){return F({test:(e,t)=>typeof e!="string"?m(t,`Expected a string (got ${v(e)})`):!0})}function Ss(e){let t=Array.isArray(e)?e:Object.values(e),n=t.every(r=>typeof r=="string"||typeof r=="number"),o=new Set(t);return o.size===1?or([...o][0]):F({test:(r,i)=>o.has(r)?!0:n?m(i,`Expected one of ${Oe(t,"or")} (got ${v(r)})`):m(i,`Expected a valid enumeration value (got ${v(r)})`)})}var Ps=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]);function Os(){return F({test:(e,t)=>{var n;if(typeof e!="boolean"){if(typeof t?.coercions<"u"){if(typeof t?.coercion>"u")return m(t,"Unbound coercion result");let o=Ps.get(e);if(typeof o<"u")return t.coercions.push([(n=t.p)!==null&&n!==void 0?n:".",t.coercion.bind(null,o)]),!0}return m(t,`Expected a boolean (got ${v(e)})`)}return!0}})}function Ts(){return F({test:(e,t)=>{var n;if(typeof e!="number"){if(typeof t?.coercions<"u"){if(typeof t?.coercion>"u")return m(t,"Unbound coercion result");let o;if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{}if(typeof r=="number")if(JSON.stringify(r)===e)o=r;else return m(t,`Received a number that can't be safely represented by the runtime (${e})`)}if(typeof o<"u")return t.coercions.push([(n=t.p)!==null&&n!==void 0?n:".",t.coercion.bind(null,o)]),!0}return m(t,`Expected a number (got ${v(e)})`)}return!0}})}function Is(e){return F({test:(t,n)=>{var o;if(typeof n?.coercions>"u")return m(n,"The isPayload predicate can only be used with coercion enabled");if(typeof n.coercion>"u")return m(n,"Unbound coercion result");if(typeof t!="string")return m(n,`Expected a string (got ${v(t)})`);let r;try{r=JSON.parse(t)}catch{return m(n,`Expected a JSON string (got ${v(t)})`)}let i={value:r};return e(r,Object.assign(Object.assign({},n),{coercion:_(i,"value")}))?(n.coercions.push([(o=n.p)!==null&&o!==void 0?o:".",n.coercion.bind(null,i.value)]),!0):!1}})}function Rs(){return F({test:(e,t)=>{var n;if(!(e instanceof Date)){if(typeof t?.coercions<"u"){if(typeof t?.coercion>"u")return m(t,"Unbound coercion result");let o;if(typeof e=="string"&&nr.test(e))o=new Date(e);else{let r;if(typeof e=="string"){let i;try{i=JSON.parse(e)}catch{}typeof i=="number"&&(r=i)}else typeof e=="number"&&(r=e);if(typeof r<"u")if(Number.isSafeInteger(r)||!Number.isSafeInteger(r*1e3))o=new Date(r*1e3);else return m(t,`Received a timestamp that can't be safely represented by the runtime (${e})`)}if(typeof o<"u")return t.coercions.push([(n=t.p)!==null&&n!==void 0?n:".",t.coercion.bind(null,o)]),!0}return m(t,`Expected a date (got ${v(e)})`)}return!0}})}function Ft(e,{delimiter:t}={}){return F({test:(n,o)=>{var r;let i=n;if(typeof n=="string"&&typeof t<"u"&&typeof o?.coercions<"u"){if(typeof o?.coercion>"u")return m(o,"Unbound coercion result");n=n.split(t)}if(!Array.isArray(n))return m(o,`Expected an array (got ${v(n)})`);let a=!0;for(let s=0,u=n.length;s<u&&(a=e(n[s],Object.assign(Object.assign({},o),{p:me(o,s),coercion:_(n,s)}))&&a,!(!a&&o?.errors==null));++s);return n!==i&&o.coercions.push([(r=o.p)!==null&&r!==void 0?r:".",o.coercion.bind(null,n)]),a}})}function Ns(e,{delimiter:t}={}){let n=Ft(e,{delimiter:t});return F({test:(o,r)=>{var i,a;if(Object.getPrototypeOf(o).toString()==="[object Set]")if(typeof r?.coercions<"u"){if(typeof r?.coercion>"u")return m(r,"Unbound coercion result");let s=[...o],u=[...o];if(!n(u,Object.assign(Object.assign({},r),{coercion:void 0})))return!1;let c=()=>u.some((p,d)=>p!==s[d])?new Set(u):o;return r.coercions.push([(i=r.p)!==null&&i!==void 0?i:".",We(r.coercion,o,c)]),!0}else{let s=!0;for(let u of o)if(s=e(u,Object.assign({},r))&&s,!s&&r?.errors==null)break;return s}if(typeof r?.coercions<"u"){if(typeof r?.coercion>"u")return m(r,"Unbound coercion result");let s={value:o};return n(o,Object.assign(Object.assign({},r),{coercion:_(s,"value")}))?(r.coercions.push([(a=r.p)!==null&&a!==void 0?a:".",We(r.coercion,o,()=>new Set(s.value))]),!0):!1}return m(r,`Expected a set (got ${v(o)})`)}})}function js(e,t){let n=Ft(bt([e,t])),o=Et(t,{keys:e});return F({test:(r,i)=>{var a,s,u;if(Object.getPrototypeOf(r).toString()==="[object Map]")if(typeof i?.coercions<"u"){if(typeof i?.coercion>"u")return m(i,"Unbound coercion result");let c=[...r],p=[...r];if(!n(p,Object.assign(Object.assign({},i),{coercion:void 0})))return!1;let d=()=>p.some((l,f)=>l[0]!==c[f][0]||l[1]!==c[f][1])?new Map(p):r;return i.coercions.push([(a=i.p)!==null&&a!==void 0?a:".",We(i.coercion,r,d)]),!0}else{let c=!0;for(let[p,d]of r)if(c=e(p,Object.assign({},i))&&c,!c&&i?.errors==null||(c=t(d,Object.assign(Object.assign({},i),{p:me(i,p)}))&&c,!c&&i?.errors==null))break;return c}if(typeof i?.coercions<"u"){if(typeof i?.coercion>"u")return m(i,"Unbound coercion result");let c={value:r};return Array.isArray(r)?n(r,Object.assign(Object.assign({},i),{coercion:void 0}))?(i.coercions.push([(s=i.p)!==null&&s!==void 0?s:".",We(i.coercion,r,()=>new Map(c.value))]),!0):!1:o(r,Object.assign(Object.assign({},i),{coercion:_(c,"value")}))?(i.coercions.push([(u=i.p)!==null&&u!==void 0?u:".",We(i.coercion,r,()=>new Map(Object.entries(c.value)))]),!0):!1}return m(i,`Expected a map (got ${v(r)})`)}})}function bt(e,{delimiter:t}={}){let n=ar(e.length);return F({test:(o,r)=>{var i;if(typeof o=="string"&&typeof t<"u"&&typeof r?.coercions<"u"){if(typeof r?.coercion>"u")return m(r,"Unbound coercion result");o=o.split(t),r.coercions.push([(i=r.p)!==null&&i!==void 0?i:".",r.coercion.bind(null,o)])}if(!Array.isArray(o))return m(r,`Expected a tuple (got ${v(o)})`);let a=n(o,Object.assign({},r));for(let s=0,u=o.length;s<u&&s<e.length&&(a=e[s](o[s],Object.assign(Object.assign({},r),{p:me(r,s),coercion:_(o,s)}))&&a,!(!a&&r?.errors==null));++s);return a}})}function Et(e,{keys:t=null}={}){let n=Ft(bt([t??rr(),e]));return F({test:(o,r)=>{var i;if(Array.isArray(o)&&typeof r?.coercions<"u")return typeof r?.coercion>"u"?m(r,"Unbound coercion result"):n(o,Object.assign(Object.assign({},r),{coercion:void 0}))?(o=Object.fromEntries(o),r.coercions.push([(i=r.p)!==null&&i!==void 0?i:".",r.coercion.bind(null,o)]),!0):!1;if(typeof o!="object"||o===null)return m(r,`Expected an object (got ${v(o)})`);let a=Object.keys(o),s=!0;for(let u=0,c=a.length;u<c&&(s||r?.errors!=null);++u){let p=a[u],d=o[p];if(p==="__proto__"||p==="constructor"){s=m(Object.assign(Object.assign({},r),{p:me(r,p)}),"Unsafe property name");continue}if(t!==null&&!t(p,r)){s=!1;continue}if(!e(d,Object.assign(Object.assign({},r),{p:me(r,p),coercion:_(o,p)}))){s=!1;continue}}return s}})}function Ms(e,t={}){return Et(e,t)}function ir(e,{extra:t=null}={}){let n=Object.keys(e),o=F({test:(r,i)=>{if(typeof r!="object"||r===null)return m(i,`Expected an object (got ${v(r)})`);let a=new Set([...n,...Object.keys(r)]),s={},u=!0;for(let c of a){if(c==="constructor"||c==="__proto__")u=m(Object.assign(Object.assign({},i),{p:me(i,c)}),"Unsafe property name");else{let p=Object.prototype.hasOwnProperty.call(e,c)?e[c]:void 0,d=Object.prototype.hasOwnProperty.call(r,c)?r[c]:void 0;typeof p<"u"?u=p(d,Object.assign(Object.assign({},i),{p:me(i,c),coercion:_(r,c)}))&&u:t===null?u=m(Object.assign(Object.assign({},i),{p:me(i,c)}),`Extraneous property (got ${v(d)})`):Object.defineProperty(s,c,{enumerable:!0,get:()=>d,set:Bs(r,c)})}if(!u&&i?.errors==null)break}return t!==null&&(u||i?.errors!=null)&&(u=t(s,i)&&u),u}});return Object.assign(o,{properties:e})}function Ls(e){return ir(e,{extra:Et(jn())})}var Gs=e=>F({test:(t,n)=>t instanceof e?!0:m(n,`Expected an instance of ${e.name} (got ${v(t)})`)}),Hs=(e,{exclusive:t=!1}={})=>F({test:(n,o)=>{var r,i,a;let s=[],u=typeof o?.errors<"u"?[]:void 0;for(let c=0,p=e.length;c<p;++c){let d=typeof o?.errors<"u"?[]:void 0,l=typeof o?.coercions<"u"?[]:void 0;if(e[c](n,Object.assign(Object.assign({},o),{errors:d,coercions:l,p:`${(r=o?.p)!==null&&r!==void 0?r:"."}#${c+1}`}))){if(s.push([`#${c+1}`,l]),!t)break}else u?.push(d[0])}if(s.length===1){let[,c]=s[0];return typeof c<"u"&&((i=o?.coercions)===null||i===void 0||i.push(...c)),!0}return s.length>1?m(o,`Expected to match exactly a single predicate (matched ${s.join(", ")})`):(a=o?.errors)===null||a===void 0||a.push(...u),!1}});function sr(e){return()=>e}function F({test:e}){return sr(e)()}var Ae=class extends Error{constructor({errors:t}={}){let n="Type mismatch";if(t&&t.length>0){n+=`
36
36
  `;for(let o of t)n+=`
37
- - ${o}`}super(n)}};function Us(e,t){if(!t(e))throw new Ae}function zs(e,t){let n=[];if(!t(e,{errors:n}))throw new Ae({errors:n})}function qs(e,t){}function Ks(e,t,{coerce:n=!1,errors:o,throw:r}={}){let i=o?[]:void 0;if(!n){if(t(e,{errors:i}))return r?e:{value:e,errors:void 0};if(r)throw new Ae({errors:i});return{value:void 0,errors:i??!0}}let a={value:e},s=_(a,"value"),u=[];if(!t(e,{errors:i,coercion:s,coercions:u})){if(r)throw new Ae({errors:i});return{value:void 0,errors:i??!0}}for(let[,c]of u)c();return r?a.value:{value:a.value,errors:void 0}}function Ys(e,t){let n=Et(e);return((...o)=>{if(!n(o))throw new Ae;return t(...o)})}function Qs(e){return F({test:(t,n)=>t.length>=e?!0:m(n,`Expected to have a length of at least ${e} elements (got ${t.length})`)})}function Ws(e){return F({test:(t,n)=>t.length<=e?!0:m(n,`Expected to have a length of at most ${e} elements (got ${t.length})`)})}function ar(e){return F({test:(t,n)=>t.length!==e?m(n,`Expected to have a length of exactly ${e} elements (got ${t.length})`):!0})}function Vs({map:e}={}){return F({test:(t,n)=>{let o=new Set,r=new Set;for(let i=0,a=t.length;i<a;++i){let s=t[i],u=typeof e<"u"?e(s):s;if(o.has(u)){if(r.has(u))continue;m(n,`Expected to contain unique elements; got a duplicate with ${v(t)}`),r.add(u)}else o.add(u)}return r.size===0}})}function Zs(){return F({test:(e,t)=>e<=0?!0:m(t,`Expected to be negative (got ${e})`)})}function Js(){return F({test:(e,t)=>e>=0?!0:m(t,`Expected to be positive (got ${e})`)})}function Xs(e){return F({test:(t,n)=>t>=e?!0:m(n,`Expected to be at least ${e} (got ${t})`)})}function _s(e){return F({test:(t,n)=>t<=e?!0:m(n,`Expected to be at most ${e} (got ${t})`)})}function $s(e,t){return F({test:(n,o)=>n>=e&&n<=t?!0:m(o,`Expected to be in the [${e}; ${t}] range (got ${n})`)})}function ea(e,t){return F({test:(n,o)=>n>=e&&n<t?!0:m(o,`Expected to be in the [${e}; ${t}[ range (got ${n})`)})}function ta({unsafe:e=!1}={}){return F({test:(t,n)=>t!==Math.round(t)?m(n,`Expected to be an integer (got ${t})`):!e&&!Number.isSafeInteger(t)?m(n,`Expected to be a safe integer (got ${t})`):!0})}function na(e){return F({test:(t,n)=>e.test(t)?!0:m(n,`Expected to match the pattern ${e.toString()} (got ${v(t)})`)})}function oa(){return F({test:(e,t)=>e!==e.toLowerCase()?m(t,`Expected to be all-lowercase (got ${e})`):!0})}function ra(){return F({test:(e,t)=>e!==e.toUpperCase()?m(t,`Expected to be all-uppercase (got ${e})`):!0})}function ia(){return F({test:(e,t)=>xs.test(e)?!0:m(t,`Expected to be a valid UUID v4 (got ${v(e)})`)})}function sa(){return F({test:(e,t)=>nr.test(e)?!0:m(t,`Expected to be a valid ISO 8601 date string (got ${v(e)})`)})}function aa({alpha:e=!1}){return F({test:(t,n)=>(e?Cs.test(t):vs.test(t))?!0:m(n,`Expected to be a valid hexadecimal color string (got ${v(t)})`)})}function ua(){return F({test:(e,t)=>ks.test(e)?!0:m(t,`Expected to be a valid base 64 string (got ${v(e)})`)})}function ca(e=jn()){return F({test:(t,n)=>{let o;try{o=JSON.parse(t)}catch{return m(n,`Expected to be a valid JSON string (got ${v(t)})`)}return e(o,n)}})}function ur(e,...t){let n=Array.isArray(t[0])?t[0]:t;return F({test:(o,r)=>{var i,a;let s={value:o},u=typeof r?.coercions<"u"?_(s,"value"):void 0,c=typeof r?.coercions<"u"?[]:void 0;if(!e(o,Object.assign(Object.assign({},r),{coercion:u,coercions:c})))return!1;let p=[];if(typeof c<"u")for(let[,d]of c)p.push(d());try{if(typeof r?.coercions<"u"){if(s.value!==o){if(typeof r?.coercion>"u")return m(r,"Unbound coercion result");r.coercions.push([(i=r.p)!==null&&i!==void 0?i:".",r.coercion.bind(null,s.value)])}(a=r?.coercions)===null||a===void 0||a.push(...c)}return n.every(d=>d(s.value,r))}finally{for(let d of p)d()}}})}function da(e,...t){let n=Array.isArray(t[0])?t[0]:t;return ur(e,n)}function pa(e){return F({test:(t,n)=>typeof t>"u"?!0:e(t,n)})}function la(e){return F({test:(t,n)=>t===null?!0:e(t,n)})}var wt={missing:(e,t)=>e.has(t),undefined:(e,t,n)=>e.has(t)&&typeof n[t]<"u",nil:(e,t,n)=>e.has(t)&&n[t]!=null,falsy:(e,t,n)=>e.has(t)&&!!n[t]};function fa(e,t){var n;let o=new Set(e),r=wt[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return F({test:(i,a)=>{let s=new Set(Object.keys(i)),u=[];for(let c of o)r(s,c,i)||u.push(c);return u.length>0?m(a,`Missing required ${Nn(u.length,"property","properties")} ${Te(u,"and")}`):!0}})}function Da(e,t){var n;let o=new Set(e),r=wt[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return F({test:(i,a)=>Object.keys(i).some(c=>r(o,c,i))?!0:m(a,`Missing at least one property from ${Te(Array.from(o),"or")}`)})}function ha(e,t){var n;let o=new Set(e),r=wt[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return F({test:(i,a)=>{let s=new Set(Object.keys(i)),u=[];for(let c of o)r(s,c,i)&&u.push(c);return u.length>0?m(a,`Forbidden ${Nn(u.length,"property","properties")} ${Te(u,"and")}`):!0}})}function ga(e,t){var n;let o=new Set(e),r=wt[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return F({test:(i,a)=>{let s=new Set(Object.keys(i)),u=[];for(let c of o)r(s,c,i)&&u.push(c);return u.length>1?m(a,`Mutually exclusive properties ${Te(u,"and")}`):!0}})}(function(e){e.Forbids="Forbids",e.Requires="Requires"})(g.KeyRelationship||(g.KeyRelationship={}));var ma={[g.KeyRelationship.Forbids]:{expect:!1,message:"forbids using"},[g.KeyRelationship.Requires]:{expect:!0,message:"requires using"}};function Aa(e,t,n,{ignore:o=[]}={}){let r=new Set(o),i=new Set(n),a=ma[t],s=t===g.KeyRelationship.Forbids?"or":"and";return F({test:(u,c)=>{let p=new Set(Object.keys(u));if(!p.has(e)||r.has(u[e]))return!0;let d=[];for(let l of i)(p.has(l)&&!r.has(u[l]))!==a.expect&&d.push(l);return d.length>=1?m(c,`Property "${e}" ${a.message} ${Nn(d.length,"property","properties")} ${Te(d,s)}`):!0}})}g.TypeAssertionError=Ae;g.applyCascade=da;g.as=Ks;g.assert=Us;g.assertWithErrors=zs;g.cascade=ur;g.fn=Ys;g.hasAtLeastOneKey=Da;g.hasExactLength=ar;g.hasForbiddenKeys=ha;g.hasKeyRelationship=Aa;g.hasMaxLength=Ws;g.hasMinLength=Qs;g.hasMutuallyExclusiveKeys=ga;g.hasRequiredKeys=fa;g.hasUniqueItems=Vs;g.isArray=Ft;g.isAtLeast=Xs;g.isAtMost=_s;g.isBase64=ua;g.isBoolean=Ts;g.isDate=Rs;g.isDict=Ms;g.isEnum=Ss;g.isHexColor=aa;g.isISO8601=sa;g.isInExclusiveRange=ea;g.isInInclusiveRange=$s;g.isInstanceOf=Gs;g.isInteger=ta;g.isJSON=ca;g.isLiteral=or;g.isLowerCase=oa;g.isMap=js;g.isNegative=Zs;g.isNullable=la;g.isNumber=Os;g.isObject=ir;g.isOneOf=Hs;g.isOptional=pa;g.isPartial=Ls;g.isPayload=Is;g.isPositive=Js;g.isRecord=bt;g.isSet=Ns;g.isString=rr;g.isTuple=Et;g.isUUID4=ia;g.isUnknown=jn;g.isUpperCase=ra;g.makeTrait=sr;g.makeValidator=F;g.matchesRegExp=na;g.softAssert=qs});var ye=x(Mn=>{"use strict";Object.defineProperty(Mn,"__esModule",{value:!0});var dr=ie();function ya(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if(n!=="default"){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,Object.freeze(t)}var Ve=class{constructor(){this.help=!1}static Usage(t){return t}async catch(t){throw t}async validateAndExecute(){let n=this.constructor.schema;if(Array.isArray(n)){let{isDict:r,isUnknown:i,applyCascade:a}=await Promise.resolve().then(function(){return ya(cr())}),s=a(r(i()),n),u=[],c=[];if(!s(this,{errors:u,coercions:c}))throw dr.formatError("Invalid option schema",u);for(let[,d]of c)d()}else if(n!=null)throw new Error("Invalid command schema");let o=await this.execute();return typeof o<"u"?o:0}};Ve.isOption=dr.isOptionSymbol;Ve.Default=[];Mn.Command=Ve});var Bt=x(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});var h=At(),kt=yt();function L(e){h.IS_DEBUG&&console.log(e)}var pr={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:h.HELP_COMMAND_INDEX,tokens:[]};function Gn(){let e={nodes:[]};for(let t=0;t<h.NodeType.CustomNode;++t)e.nodes.push(G());return e}function lr(e){let t=Gn(),n=[],o=t.nodes.length;for(let r of e){n.push(o);for(let i=0;i<r.nodes.length;++i)Hn(i)||t.nodes.push(Fr(r.nodes[i],o));o+=r.nodes.length-h.NodeType.CustomNode+1}for(let r of n)Ce(t,h.NodeType.InitialNode,r);return t}function z(e,t){return e.nodes.push(t),e.nodes.length-1}function fr(e){let t=new Set,n=o=>{if(t.has(o))return;t.add(o);let r=e.nodes[o];for(let a of Object.values(r.statics))for(let{to:s}of a)n(s);for(let[,{to:a}]of r.dynamics)n(a);for(let{to:a}of r.shortcuts)n(a);let i=new Set(r.shortcuts.map(({to:a})=>a));for(;r.shortcuts.length>0;){let{to:a}=r.shortcuts.shift(),s=e.nodes[a];for(let[u,c]of Object.entries(s.statics)){let p=Object.prototype.hasOwnProperty.call(r.statics,u)?r.statics[u]:r.statics[u]=[];for(let d of c)p.some(({to:l})=>d.to===l)||p.push(d)}for(let[u,c]of s.dynamics)r.dynamics.some(([p,{to:d}])=>u===p&&c.to===d)||r.dynamics.push([u,c]);for(let u of s.shortcuts)i.has(u.to)||(r.shortcuts.push(u),i.add(u.to))}};n(h.NodeType.InitialNode)}function Dr(e,{prefix:t=""}={}){if(h.IS_DEBUG){L(`${t}Nodes are:`);for(let n=0;n<e.nodes.length;++n)L(`${t} ${n}: ${JSON.stringify(e.nodes[n])}`)}}function hr(e,t,n=!1){L(`Running a vm on ${JSON.stringify(t)}`);let o=[{node:h.NodeType.InitialNode,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null,tokens:[]}}];Dr(e,{prefix:" "});let r=[h.SpecialToken.StartOfInput,...t];for(let i=0;i<r.length;++i){let a=r[i],s=a===h.SpecialToken.EndOfInput||a===h.SpecialToken.EndOfPartialInput,u=i-1;L(` Processing ${JSON.stringify(a)}`);let c=[];for(let{node:p,state:d}of o){L(` Current node is ${p}`);let l=e.nodes[p];if(p===h.NodeType.ErrorNode){c.push({node:p,state:d});continue}console.assert(l.shortcuts.length===0,"Shortcuts should have been eliminated by now");let f=Object.prototype.hasOwnProperty.call(l.statics,a);if(!n||i<r.length-1||f)if(f){let D=l.statics[a];for(let{to:A,reducer:y}of D)c.push({node:A,state:typeof y<"u"?Ze(vt,y,d,a,u):d}),L(` Static transition to ${A} found`)}else L(" No static transition found");else{let D=!1;for(let A of Object.keys(l.statics))if(A.startsWith(a)){if(a===A)for(let{to:y,reducer:E}of l.statics[A])c.push({node:y,state:typeof E<"u"?Ze(vt,E,d,a,u):d}),L(` Static transition to ${y} found`);else for(let{to:y}of l.statics[A])c.push({node:y,state:{...d,remainder:A.slice(a.length)}}),L(` Static transition to ${y} found (partial match)`);D=!0}D||L(" No partial static transition found")}if(!s)for(let[D,{to:A,reducer:y}]of l.dynamics)Ze(Er,D,d,a,u)&&(c.push({node:A,state:typeof y<"u"?Ze(vt,y,d,a,u):d}),L(` Dynamic transition to ${A} found (via ${D})`))}if(c.length===0&&s&&t.length===1)return[{node:h.NodeType.InitialNode,state:pr}];if(c.length===0)throw new kt.UnknownSyntaxError(t,o.filter(({node:p})=>p!==h.NodeType.ErrorNode).map(({state:p})=>({usage:p.candidateUsage,reason:null})));if(c.every(({node:p})=>p===h.NodeType.ErrorNode))throw new kt.UnknownSyntaxError(t,c.map(({state:p})=>({usage:p.candidateUsage,reason:p.errorMessage})));o=gr(c)}if(o.length>0){L(" Results:");for(let i of o)L(` - ${i.node} -> ${JSON.stringify(i.state)}`)}else L(" No results");return o}function Fa(e,t,{endToken:n=h.SpecialToken.EndOfInput}={}){let o=hr(e,[...t,n]);return mr(t,o.map(({state:r})=>r))}function gr(e){let t=0;for(let{state:n}of e)n.path.length>t&&(t=n.path.length);return e.filter(({state:n})=>n.path.length===t)}function mr(e,t){let n=t.filter(d=>d.selectedIndex!==null);if(n.length===0)throw new Error;let o=n.filter(d=>d.selectedIndex===h.HELP_COMMAND_INDEX||d.requiredOptions.every(l=>l.some(f=>d.options.find(D=>D.name===f))));if(o.length===0)throw new kt.UnknownSyntaxError(e,n.map(d=>({usage:d.candidateUsage,reason:null})));let r=0;for(let d of o)d.path.length>r&&(r=d.path.length);let i=o.filter(d=>d.path.length===r),a=d=>d.positionals.filter(({extra:l})=>!l).length+d.options.length,s=i.map(d=>({state:d,positionalCount:a(d)})),u=0;for(let{positionalCount:d}of s)d>u&&(u=d);let c=s.filter(({positionalCount:d})=>d===u).map(({state:d})=>d),p=Ar(c);if(p.length>1)throw new kt.AmbiguousSyntaxError(e,p.map(d=>d.candidateUsage));return p[0]}function Ar(e){let t=[],n=[];for(let o of e)o.selectedIndex===h.HELP_COMMAND_INDEX?n.push(o):t.push(o);return n.length>0&&t.push({...pr,path:yr(...n.map(o=>o.path)),options:n.reduce((o,r)=>o.concat(r.options),[])}),t}function yr(e,t,...n){return t===void 0?Array.from(e):yr(e.filter((o,r)=>o===t[r]),...n)}function G(){return{dynamics:[],shortcuts:[],statics:{}}}function Hn(e){return e===h.NodeType.SuccessNode||e===h.NodeType.ErrorNode}function Ct(e,t=0){return{to:Hn(e.to)?e.to:e.to>=h.NodeType.CustomNode?e.to+t-h.NodeType.CustomNode+1:e.to+t,reducer:e.reducer}}function Fr(e,t=0){let n=G();for(let[o,r]of e.dynamics)n.dynamics.push([o,Ct(r,t)]);for(let o of e.shortcuts)n.shortcuts.push(Ct(o,t));for(let[o,r]of Object.entries(e.statics))n.statics[o]=r.map(i=>Ct(i,t));return n}function R(e,t,n,o,r){e.nodes[t].dynamics.push([n,{to:o,reducer:r}])}function Ce(e,t,n,o){e.nodes[t].shortcuts.push({to:n,reducer:o})}function j(e,t,n,o,r){(Object.prototype.hasOwnProperty.call(e.nodes[t].statics,n)?e.nodes[t].statics[n]:e.nodes[t].statics[n]=[]).push({to:o,reducer:r})}function Ze(e,t,n,o,r){if(Array.isArray(t)){let[i,...a]=t;return e[i](n,o,r,...a)}else return e[t](n,o,r)}var Er={always:()=>!0,isOptionLike:(e,t)=>!e.ignoreOptions&&t!=="-"&&t.startsWith("-"),isNotOptionLike:(e,t)=>e.ignoreOptions||t==="-"||!t.startsWith("-"),isOption:(e,t,n,o)=>!e.ignoreOptions&&t===o,isBatchOption:(e,t,n,o)=>!e.ignoreOptions&&h.BATCH_REGEX.test(t)&&[...t.slice(1)].every(r=>o.has(`-${r}`)),isBoundOption:(e,t,n,o,r)=>{let i=t.match(h.BINDING_REGEX);return!e.ignoreOptions&&!!i&&h.OPTION_REGEX.test(i[1])&&o.has(i[1])&&r.filter(a=>a.nameSet.includes(i[1])).every(a=>a.allowBinding)},isNegatedOption:(e,t,n,o)=>!e.ignoreOptions&&t===`--no-${o.slice(2)}`,isHelp:(e,t)=>!e.ignoreOptions&&h.HELP_REGEX.test(t),isUnsupportedOption:(e,t,n,o)=>!e.ignoreOptions&&t.startsWith("-")&&h.OPTION_REGEX.test(t)&&!o.has(t),isInvalidOption:(e,t)=>!e.ignoreOptions&&t.startsWith("-")&&!h.OPTION_REGEX.test(t)},vt={setCandidateState:(e,t,n,o)=>({...e,...o}),setSelectedIndex:(e,t,n,o)=>({...e,selectedIndex:o}),pushBatch:(e,t,n,o)=>{let r=e.options.slice(),i=e.tokens.slice();for(let a=1;a<t.length;++a){let s=o.get(`-${t[a]}`),u=a===1?[0,2]:[a,a+1];r.push({name:s,value:!0}),i.push({segmentIndex:n,type:"option",option:s,slice:u})}return{...e,options:r,tokens:i}},pushBound:(e,t,n)=>{let[,o,r]=t.match(h.BINDING_REGEX),i=e.options.concat({name:o,value:r}),a=e.tokens.concat([{segmentIndex:n,type:"option",slice:[0,o.length],option:o},{segmentIndex:n,type:"assign",slice:[o.length,o.length+1]},{segmentIndex:n,type:"value",slice:[o.length+1,o.length+r.length+1]}]);return{...e,options:i,tokens:a}},pushPath:(e,t,n)=>{let o=e.path.concat(t),r=e.tokens.concat({segmentIndex:n,type:"path"});return{...e,path:o,tokens:r}},pushPositional:(e,t,n)=>{let o=e.positionals.concat({value:t,extra:!1}),r=e.tokens.concat({segmentIndex:n,type:"positional"});return{...e,positionals:o,tokens:r}},pushExtra:(e,t,n)=>{let o=e.positionals.concat({value:t,extra:!0}),r=e.tokens.concat({segmentIndex:n,type:"positional"});return{...e,positionals:o,tokens:r}},pushExtraNoLimits:(e,t,n)=>{let o=e.positionals.concat({value:t,extra:$}),r=e.tokens.concat({segmentIndex:n,type:"positional"});return{...e,positionals:o,tokens:r}},pushTrue:(e,t,n,o)=>{let r=e.options.concat({name:o,value:!0}),i=e.tokens.concat({segmentIndex:n,type:"option",option:o});return{...e,options:r,tokens:i}},pushFalse:(e,t,n,o)=>{let r=e.options.concat({name:o,value:!1}),i=e.tokens.concat({segmentIndex:n,type:"option",option:o});return{...e,options:r,tokens:i}},pushUndefined:(e,t,n,o)=>{let r=e.options.concat({name:t,value:void 0}),i=e.tokens.concat({segmentIndex:n,type:"option",option:t});return{...e,options:r,tokens:i}},pushStringValue:(e,t,n)=>{var o;let r=e.options[e.options.length-1],i=e.options.slice(),a=e.tokens.concat({segmentIndex:n,type:"value"});return r.value=((o=r.value)!==null&&o!==void 0?o:[]).concat([t]),{...e,options:i,tokens:a}},setStringValue:(e,t,n)=>{let o=e.options[e.options.length-1],r=e.options.slice(),i=e.tokens.concat({segmentIndex:n,type:"value"});return o.value=t,{...e,options:r,tokens:i}},inhibateOptions:e=>({...e,ignoreOptions:!0}),useHelp:(e,t,n,o)=>{let[,,r]=t.match(h.HELP_REGEX);return typeof r<"u"?{...e,options:[{name:"-c",value:String(o)},{name:"-i",value:r}]}:{...e,options:[{name:"-c",value:String(o)}]}},setError:(e,t,n,o)=>t===h.SpecialToken.EndOfInput||t===h.SpecialToken.EndOfPartialInput?{...e,errorMessage:`${o}.`}:{...e,errorMessage:`${o} ("${t}").`},setOptionArityError:(e,t)=>{let n=e.options[e.options.length-1];return{...e,errorMessage:`Not enough arguments to option ${n.name}.`}}},$=Symbol(),xt=class{constructor(t,n){this.allOptionNames=new Map,this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=t,this.cliOpts=n}addPath(t){this.paths.push(t)}setArity({leading:t=this.arity.leading,trailing:n=this.arity.trailing,extra:o=this.arity.extra,proxy:r=this.arity.proxy}){Object.assign(this.arity,{leading:t,trailing:n,extra:o,proxy:r})}addPositional({name:t="arg",required:n=!0}={}){if(!n&&this.arity.extra===$)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!n&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!n&&this.arity.extra!==$?this.arity.extra.push(t):this.arity.extra!==$&&this.arity.extra.length===0?this.arity.leading.push(t):this.arity.trailing.push(t)}addRest({name:t="arg",required:n=0}={}){if(this.arity.extra===$)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let o=0;o<n;++o)this.addPositional({name:t});this.arity.extra=$}addProxy({required:t=0}={}){this.addRest({required:t}),this.arity.proxy=!0}addOption({names:t,description:n,arity:o=0,hidden:r=!1,required:i=!1,allowBinding:a=!0}){if(!a&&o>1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(o))throw new Error(`The arity must be an integer, got ${o}`);if(o<0)throw new Error(`The arity must be positive, got ${o}`);let s=t.reduce((u,c)=>c.length>u.length?c:u,"");for(let u of t)this.allOptionNames.set(u,s);this.options.push({preferredName:s,nameSet:t,description:n,arity:o,hidden:r,required:i,allowBinding:a})}setContext(t){this.context=t}usage({detailed:t=!0,inlineOptions:n=!0}={}){let o=[this.cliOpts.binaryName],r=[];if(this.paths.length>0&&o.push(...this.paths[0]),t){for(let{preferredName:a,nameSet:s,arity:u,hidden:c,description:p,required:d}of this.options){if(c)continue;let l=[];for(let D=0;D<u;++D)l.push(` #${D}`);let f=`${s.join(",")}${l.join("")}`;!n&&p?r.push({preferredName:a,nameSet:s,definition:f,description:p,required:d}):o.push(d?`<${f}>`:`[${f}]`)}o.push(...this.arity.leading.map(a=>`<${a}>`)),this.arity.extra===$?o.push("..."):o.push(...this.arity.extra.map(a=>`[${a}]`)),o.push(...this.arity.trailing.map(a=>`<${a}>`))}return{usage:o.join(" "),options:r}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let t=Gn(),n=h.NodeType.InitialNode,o=this.usage().usage,r=this.options.filter(s=>s.required).map(s=>s.nameSet);n=z(t,G()),j(t,h.NodeType.InitialNode,h.SpecialToken.StartOfInput,n,["setCandidateState",{candidateUsage:o,requiredOptions:r}]);let i=this.arity.proxy?"always":"isNotOptionLike",a=this.paths.length>0?this.paths:[[]];for(let s of a){let u=n;if(s.length>0){let l=z(t,G());Ce(t,u,l),this.registerOptions(t,l),u=l}for(let l=0;l<s.length;++l){let f=z(t,G());if(j(t,u,s[l],f,"pushPath"),u=f,l+1<s.length){let D=z(t,G());R(t,u,"isHelp",D,["useHelp",this.cliIndex]),j(t,D,h.SpecialToken.EndOfInput,h.NodeType.SuccessNode,["setSelectedIndex",h.HELP_COMMAND_INDEX])}}if(this.arity.leading.length>0||!this.arity.proxy){let l=z(t,G());R(t,u,"isHelp",l,["useHelp",this.cliIndex]),R(t,l,"always",l,"pushExtra"),j(t,l,h.SpecialToken.EndOfInput,h.NodeType.SuccessNode,["setSelectedIndex",h.HELP_COMMAND_INDEX]),this.registerOptions(t,u)}this.arity.leading.length>0&&(j(t,u,h.SpecialToken.EndOfInput,h.NodeType.ErrorNode,["setError","Not enough positional arguments"]),j(t,u,h.SpecialToken.EndOfPartialInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex]));let c=u;for(let l=0;l<this.arity.leading.length;++l){let f=z(t,G());(!this.arity.proxy||l+1!==this.arity.leading.length)&&this.registerOptions(t,f),(this.arity.trailing.length>0||l+1!==this.arity.leading.length)&&(j(t,f,h.SpecialToken.EndOfInput,h.NodeType.ErrorNode,["setError","Not enough positional arguments"]),j(t,f,h.SpecialToken.EndOfPartialInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex])),R(t,c,"isNotOptionLike",f,"pushPositional"),c=f}let p=c;if(this.arity.extra===$||this.arity.extra.length>0){let l=z(t,G());if(Ce(t,c,l),this.arity.extra===$){let f=z(t,G());this.arity.proxy||this.registerOptions(t,f),R(t,c,i,f,"pushExtraNoLimits"),R(t,f,i,f,"pushExtraNoLimits"),Ce(t,f,l)}else for(let f=0;f<this.arity.extra.length;++f){let D=z(t,G());(!this.arity.proxy||f>0)&&this.registerOptions(t,D),R(t,p,i,D,"pushExtra"),Ce(t,D,l),p=D}p=l}this.arity.trailing.length>0&&(j(t,p,h.SpecialToken.EndOfInput,h.NodeType.ErrorNode,["setError","Not enough positional arguments"]),j(t,p,h.SpecialToken.EndOfPartialInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex]));let d=p;for(let l=0;l<this.arity.trailing.length;++l){let f=z(t,G());this.arity.proxy||this.registerOptions(t,f),l+1<this.arity.trailing.length&&(j(t,f,h.SpecialToken.EndOfInput,h.NodeType.ErrorNode,["setError","Not enough positional arguments"]),j(t,f,h.SpecialToken.EndOfPartialInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex])),R(t,d,"isNotOptionLike",f,"pushPositional"),d=f}R(t,d,i,h.NodeType.ErrorNode,["setError","Extraneous positional argument"]),j(t,d,h.SpecialToken.EndOfInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex]),j(t,d,h.SpecialToken.EndOfPartialInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex])}return{machine:t,context:this.context}}registerOptions(t,n){R(t,n,["isOption","--"],n,"inhibateOptions"),R(t,n,["isBatchOption",this.allOptionNames],n,["pushBatch",this.allOptionNames]),R(t,n,["isBoundOption",this.allOptionNames,this.options],n,"pushBound"),R(t,n,["isUnsupportedOption",this.allOptionNames],h.NodeType.ErrorNode,["setError","Unsupported option name"]),R(t,n,["isInvalidOption"],h.NodeType.ErrorNode,["setError","Invalid option name"]);for(let o of this.options)if(o.arity===0)for(let r of o.nameSet)R(t,n,["isOption",r],n,["pushTrue",o.preferredName]),r.startsWith("--")&&!r.startsWith("--no-")&&R(t,n,["isNegatedOption",r],n,["pushFalse",o.preferredName]);else{let r=z(t,G());for(let i of o.nameSet)R(t,n,["isOption",i],r,["pushUndefined",o.preferredName]);for(let i=0;i<o.arity;++i){let a=z(t,G());j(t,r,h.SpecialToken.EndOfInput,h.NodeType.ErrorNode,"setOptionArityError"),j(t,r,h.SpecialToken.EndOfPartialInput,h.NodeType.ErrorNode,"setOptionArityError"),R(t,r,"isOptionLike",h.NodeType.ErrorNode,"setOptionArityError");let s=o.arity===1?"setStringValue":"pushStringValue";R(t,r,"isNotOptionLike",a,s),r=a}Ce(t,r,n)}}},Ln=class e{constructor({binaryName:t="..."}={}){this.builders=[],this.opts={binaryName:t}}static build(t,n={}){return new e(n).commands(t).compile()}getBuilderByIndex(t){if(!(t>=0&&t<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${t})`);return this.builders[t]}commands(t){for(let n of t)n(this.command());return this}command(){let t=new xt(this.builders.length,this.opts);return this.builders.push(t),t}compile(){let t=[],n=[];for(let r of this.builders){let{machine:i,context:a}=r.compile();t.push(i),n.push(a)}let o=lr(t);return fr(o),{machine:o,contexts:n,process:(r,{partial:i}={})=>{let a=i?h.SpecialToken.EndOfPartialInput:h.SpecialToken.EndOfInput;return Fa(o,r,{endToken:a})}}}};B.CliBuilder=Ln;B.CommandBuilder=xt;B.NoLimits=$;B.aggregateHelpStates=Ar;B.cloneNode=Fr;B.cloneTransition=Ct;B.debug=L;B.debugMachine=Dr;B.execute=Ze;B.injectNode=z;B.isTerminalNode=Hn;B.makeAnyOfMachine=lr;B.makeNode=G;B.makeStateMachine=Gn;B.reducers=vt;B.registerDynamic=R;B.registerShortcut=Ce;B.registerStatic=j;B.runMachineInternal=hr;B.selectBestState=mr;B.simplifyMachine=fr;B.tests=Er;B.trimSmallerBranches=gr});var wr=x(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});var Ea=require("tty");function ba(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var Un=ba(Ea);function wa(){return Un.default&&"getColorDepth"in Un.default.WriteStream.prototype?Un.default.WriteStream.prototype.getColorDepth():process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var br;function Ca(e){let t=br;if(typeof t>"u"){if(e.stdout===process.stdout&&e.stderr===process.stderr)return null;let{AsyncLocalStorage:n}=require("async_hooks");t=br=new n;let o=process.stdout._write;process.stdout._write=function(i,a,s){let u=t.getStore();return typeof u>"u"?o.call(this,i,a,s):u.stdout.write(i,a,s)};let r=process.stderr._write;process.stderr._write=function(i,a,s){let u=t.getStore();return typeof u>"u"?r.call(this,i,a,s):u.stderr.write(i,a,s)}}return n=>t.run(e,n)}St.getCaptureActivator=Ca;St.getDefaultColorDepth=wa});var Cr=x(qn=>{"use strict";Object.defineProperty(qn,"__esModule",{value:!0});var va=ye(),zn=class e extends va.Command{constructor(t){super(),this.contexts=t,this.commands=[]}static from(t,n){let o=new e(n);o.path=t.path;for(let r of t.options)switch(r.name){case"-c":o.commands.push(Number(r.value));break;case"-i":o.index=Number(r.value);break}return o}async execute(){let t=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index<t.length&&(t=[t[this.index]]),t.length===0)this.context.stdout.write(this.cli.usage());else if(t.length===1)this.context.stdout.write(this.cli.usage(this.contexts[t[0]].commandClass,{detailed:!0}));else if(t.length>1){this.context.stdout.write(`Multiple commands match your selection:
37
+ - ${o}`}super(n)}};function Us(e,t){if(!t(e))throw new Ae}function zs(e,t){let n=[];if(!t(e,{errors:n}))throw new Ae({errors:n})}function qs(e,t){}function Ks(e,t,{coerce:n=!1,errors:o,throw:r}={}){let i=o?[]:void 0;if(!n){if(t(e,{errors:i}))return r?e:{value:e,errors:void 0};if(r)throw new Ae({errors:i});return{value:void 0,errors:i??!0}}let a={value:e},s=_(a,"value"),u=[];if(!t(e,{errors:i,coercion:s,coercions:u})){if(r)throw new Ae({errors:i});return{value:void 0,errors:i??!0}}for(let[,c]of u)c();return r?a.value:{value:a.value,errors:void 0}}function Ys(e,t){let n=bt(e);return((...o)=>{if(!n(o))throw new Ae;return t(...o)})}function Qs(e){return F({test:(t,n)=>t.length>=e?!0:m(n,`Expected to have a length of at least ${e} elements (got ${t.length})`)})}function Ws(e){return F({test:(t,n)=>t.length<=e?!0:m(n,`Expected to have a length of at most ${e} elements (got ${t.length})`)})}function ar(e){return F({test:(t,n)=>t.length!==e?m(n,`Expected to have a length of exactly ${e} elements (got ${t.length})`):!0})}function Vs({map:e}={}){return F({test:(t,n)=>{let o=new Set,r=new Set;for(let i=0,a=t.length;i<a;++i){let s=t[i],u=typeof e<"u"?e(s):s;if(o.has(u)){if(r.has(u))continue;m(n,`Expected to contain unique elements; got a duplicate with ${v(t)}`),r.add(u)}else o.add(u)}return r.size===0}})}function Zs(){return F({test:(e,t)=>e<=0?!0:m(t,`Expected to be negative (got ${e})`)})}function Js(){return F({test:(e,t)=>e>=0?!0:m(t,`Expected to be positive (got ${e})`)})}function Xs(e){return F({test:(t,n)=>t>=e?!0:m(n,`Expected to be at least ${e} (got ${t})`)})}function _s(e){return F({test:(t,n)=>t<=e?!0:m(n,`Expected to be at most ${e} (got ${t})`)})}function $s(e,t){return F({test:(n,o)=>n>=e&&n<=t?!0:m(o,`Expected to be in the [${e}; ${t}] range (got ${n})`)})}function ea(e,t){return F({test:(n,o)=>n>=e&&n<t?!0:m(o,`Expected to be in the [${e}; ${t}[ range (got ${n})`)})}function ta({unsafe:e=!1}={}){return F({test:(t,n)=>t!==Math.round(t)?m(n,`Expected to be an integer (got ${t})`):!e&&!Number.isSafeInteger(t)?m(n,`Expected to be a safe integer (got ${t})`):!0})}function na(e){return F({test:(t,n)=>e.test(t)?!0:m(n,`Expected to match the pattern ${e.toString()} (got ${v(t)})`)})}function oa(){return F({test:(e,t)=>e!==e.toLowerCase()?m(t,`Expected to be all-lowercase (got ${e})`):!0})}function ra(){return F({test:(e,t)=>e!==e.toUpperCase()?m(t,`Expected to be all-uppercase (got ${e})`):!0})}function ia(){return F({test:(e,t)=>xs.test(e)?!0:m(t,`Expected to be a valid UUID v4 (got ${v(e)})`)})}function sa(){return F({test:(e,t)=>nr.test(e)?!0:m(t,`Expected to be a valid ISO 8601 date string (got ${v(e)})`)})}function aa({alpha:e=!1}){return F({test:(t,n)=>(e?Cs.test(t):vs.test(t))?!0:m(n,`Expected to be a valid hexadecimal color string (got ${v(t)})`)})}function ua(){return F({test:(e,t)=>ks.test(e)?!0:m(t,`Expected to be a valid base 64 string (got ${v(e)})`)})}function ca(e=jn()){return F({test:(t,n)=>{let o;try{o=JSON.parse(t)}catch{return m(n,`Expected to be a valid JSON string (got ${v(t)})`)}return e(o,n)}})}function ur(e,...t){let n=Array.isArray(t[0])?t[0]:t;return F({test:(o,r)=>{var i,a;let s={value:o},u=typeof r?.coercions<"u"?_(s,"value"):void 0,c=typeof r?.coercions<"u"?[]:void 0;if(!e(o,Object.assign(Object.assign({},r),{coercion:u,coercions:c})))return!1;let p=[];if(typeof c<"u")for(let[,d]of c)p.push(d());try{if(typeof r?.coercions<"u"){if(s.value!==o){if(typeof r?.coercion>"u")return m(r,"Unbound coercion result");r.coercions.push([(i=r.p)!==null&&i!==void 0?i:".",r.coercion.bind(null,s.value)])}(a=r?.coercions)===null||a===void 0||a.push(...c)}return n.every(d=>d(s.value,r))}finally{for(let d of p)d()}}})}function da(e,...t){let n=Array.isArray(t[0])?t[0]:t;return ur(e,n)}function pa(e){return F({test:(t,n)=>typeof t>"u"?!0:e(t,n)})}function la(e){return F({test:(t,n)=>t===null?!0:e(t,n)})}var wt={missing:(e,t)=>e.has(t),undefined:(e,t,n)=>e.has(t)&&typeof n[t]<"u",nil:(e,t,n)=>e.has(t)&&n[t]!=null,falsy:(e,t,n)=>e.has(t)&&!!n[t]};function fa(e,t){var n;let o=new Set(e),r=wt[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return F({test:(i,a)=>{let s=new Set(Object.keys(i)),u=[];for(let c of o)r(s,c,i)||u.push(c);return u.length>0?m(a,`Missing required ${Nn(u.length,"property","properties")} ${Oe(u,"and")}`):!0}})}function Da(e,t){var n;let o=new Set(e),r=wt[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return F({test:(i,a)=>Object.keys(i).some(c=>r(o,c,i))?!0:m(a,`Missing at least one property from ${Oe(Array.from(o),"or")}`)})}function ha(e,t){var n;let o=new Set(e),r=wt[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return F({test:(i,a)=>{let s=new Set(Object.keys(i)),u=[];for(let c of o)r(s,c,i)&&u.push(c);return u.length>0?m(a,`Forbidden ${Nn(u.length,"property","properties")} ${Oe(u,"and")}`):!0}})}function ga(e,t){var n;let o=new Set(e),r=wt[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return F({test:(i,a)=>{let s=new Set(Object.keys(i)),u=[];for(let c of o)r(s,c,i)&&u.push(c);return u.length>1?m(a,`Mutually exclusive properties ${Oe(u,"and")}`):!0}})}(function(e){e.Forbids="Forbids",e.Requires="Requires"})(g.KeyRelationship||(g.KeyRelationship={}));var ma={[g.KeyRelationship.Forbids]:{expect:!1,message:"forbids using"},[g.KeyRelationship.Requires]:{expect:!0,message:"requires using"}};function Aa(e,t,n,{ignore:o=[]}={}){let r=new Set(o),i=new Set(n),a=ma[t],s=t===g.KeyRelationship.Forbids?"or":"and";return F({test:(u,c)=>{let p=new Set(Object.keys(u));if(!p.has(e)||r.has(u[e]))return!0;let d=[];for(let l of i)(p.has(l)&&!r.has(u[l]))!==a.expect&&d.push(l);return d.length>=1?m(c,`Property "${e}" ${a.message} ${Nn(d.length,"property","properties")} ${Oe(d,s)}`):!0}})}g.TypeAssertionError=Ae;g.applyCascade=da;g.as=Ks;g.assert=Us;g.assertWithErrors=zs;g.cascade=ur;g.fn=Ys;g.hasAtLeastOneKey=Da;g.hasExactLength=ar;g.hasForbiddenKeys=ha;g.hasKeyRelationship=Aa;g.hasMaxLength=Ws;g.hasMinLength=Qs;g.hasMutuallyExclusiveKeys=ga;g.hasRequiredKeys=fa;g.hasUniqueItems=Vs;g.isArray=Ft;g.isAtLeast=Xs;g.isAtMost=_s;g.isBase64=ua;g.isBoolean=Os;g.isDate=Rs;g.isDict=Ms;g.isEnum=Ss;g.isHexColor=aa;g.isISO8601=sa;g.isInExclusiveRange=ea;g.isInInclusiveRange=$s;g.isInstanceOf=Gs;g.isInteger=ta;g.isJSON=ca;g.isLiteral=or;g.isLowerCase=oa;g.isMap=js;g.isNegative=Zs;g.isNullable=la;g.isNumber=Ts;g.isObject=ir;g.isOneOf=Hs;g.isOptional=pa;g.isPartial=Ls;g.isPayload=Is;g.isPositive=Js;g.isRecord=Et;g.isSet=Ns;g.isString=rr;g.isTuple=bt;g.isUUID4=ia;g.isUnknown=jn;g.isUpperCase=ra;g.makeTrait=sr;g.makeValidator=F;g.matchesRegExp=na;g.softAssert=qs});var ye=x(Mn=>{"use strict";Object.defineProperty(Mn,"__esModule",{value:!0});var dr=ie();function ya(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if(n!=="default"){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,Object.freeze(t)}var Ve=class{constructor(){this.help=!1}static Usage(t){return t}async catch(t){throw t}async validateAndExecute(){let n=this.constructor.schema;if(Array.isArray(n)){let{isDict:r,isUnknown:i,applyCascade:a}=await Promise.resolve().then(function(){return ya(cr())}),s=a(r(i()),n),u=[],c=[];if(!s(this,{errors:u,coercions:c}))throw dr.formatError("Invalid option schema",u);for(let[,d]of c)d()}else if(n!=null)throw new Error("Invalid command schema");let o=await this.execute();return typeof o<"u"?o:0}};Ve.isOption=dr.isOptionSymbol;Ve.Default=[];Mn.Command=Ve});var Bt=x(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});var h=At(),kt=yt();function L(e){h.IS_DEBUG&&console.log(e)}var pr={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:h.HELP_COMMAND_INDEX,tokens:[]};function Gn(){let e={nodes:[]};for(let t=0;t<h.NodeType.CustomNode;++t)e.nodes.push(G());return e}function lr(e){let t=Gn(),n=[],o=t.nodes.length;for(let r of e){n.push(o);for(let i=0;i<r.nodes.length;++i)Hn(i)||t.nodes.push(Fr(r.nodes[i],o));o+=r.nodes.length-h.NodeType.CustomNode+1}for(let r of n)Ce(t,h.NodeType.InitialNode,r);return t}function z(e,t){return e.nodes.push(t),e.nodes.length-1}function fr(e){let t=new Set,n=o=>{if(t.has(o))return;t.add(o);let r=e.nodes[o];for(let a of Object.values(r.statics))for(let{to:s}of a)n(s);for(let[,{to:a}]of r.dynamics)n(a);for(let{to:a}of r.shortcuts)n(a);let i=new Set(r.shortcuts.map(({to:a})=>a));for(;r.shortcuts.length>0;){let{to:a}=r.shortcuts.shift(),s=e.nodes[a];for(let[u,c]of Object.entries(s.statics)){let p=Object.prototype.hasOwnProperty.call(r.statics,u)?r.statics[u]:r.statics[u]=[];for(let d of c)p.some(({to:l})=>d.to===l)||p.push(d)}for(let[u,c]of s.dynamics)r.dynamics.some(([p,{to:d}])=>u===p&&c.to===d)||r.dynamics.push([u,c]);for(let u of s.shortcuts)i.has(u.to)||(r.shortcuts.push(u),i.add(u.to))}};n(h.NodeType.InitialNode)}function Dr(e,{prefix:t=""}={}){if(h.IS_DEBUG){L(`${t}Nodes are:`);for(let n=0;n<e.nodes.length;++n)L(`${t} ${n}: ${JSON.stringify(e.nodes[n])}`)}}function hr(e,t,n=!1){L(`Running a vm on ${JSON.stringify(t)}`);let o=[{node:h.NodeType.InitialNode,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null,tokens:[]}}];Dr(e,{prefix:" "});let r=[h.SpecialToken.StartOfInput,...t];for(let i=0;i<r.length;++i){let a=r[i],s=a===h.SpecialToken.EndOfInput||a===h.SpecialToken.EndOfPartialInput,u=i-1;L(` Processing ${JSON.stringify(a)}`);let c=[];for(let{node:p,state:d}of o){L(` Current node is ${p}`);let l=e.nodes[p];if(p===h.NodeType.ErrorNode){c.push({node:p,state:d});continue}console.assert(l.shortcuts.length===0,"Shortcuts should have been eliminated by now");let f=Object.prototype.hasOwnProperty.call(l.statics,a);if(!n||i<r.length-1||f)if(f){let D=l.statics[a];for(let{to:A,reducer:y}of D)c.push({node:A,state:typeof y<"u"?Ze(vt,y,d,a,u):d}),L(` Static transition to ${A} found`)}else L(" No static transition found");else{let D=!1;for(let A of Object.keys(l.statics))if(A.startsWith(a)){if(a===A)for(let{to:y,reducer:b}of l.statics[A])c.push({node:y,state:typeof b<"u"?Ze(vt,b,d,a,u):d}),L(` Static transition to ${y} found`);else for(let{to:y}of l.statics[A])c.push({node:y,state:{...d,remainder:A.slice(a.length)}}),L(` Static transition to ${y} found (partial match)`);D=!0}D||L(" No partial static transition found")}if(!s)for(let[D,{to:A,reducer:y}]of l.dynamics)Ze(br,D,d,a,u)&&(c.push({node:A,state:typeof y<"u"?Ze(vt,y,d,a,u):d}),L(` Dynamic transition to ${A} found (via ${D})`))}if(c.length===0&&s&&t.length===1)return[{node:h.NodeType.InitialNode,state:pr}];if(c.length===0)throw new kt.UnknownSyntaxError(t,o.filter(({node:p})=>p!==h.NodeType.ErrorNode).map(({state:p})=>({usage:p.candidateUsage,reason:null})));if(c.every(({node:p})=>p===h.NodeType.ErrorNode))throw new kt.UnknownSyntaxError(t,c.map(({state:p})=>({usage:p.candidateUsage,reason:p.errorMessage})));o=gr(c)}if(o.length>0){L(" Results:");for(let i of o)L(` - ${i.node} -> ${JSON.stringify(i.state)}`)}else L(" No results");return o}function Fa(e,t,{endToken:n=h.SpecialToken.EndOfInput}={}){let o=hr(e,[...t,n]);return mr(t,o.map(({state:r})=>r))}function gr(e){let t=0;for(let{state:n}of e)n.path.length>t&&(t=n.path.length);return e.filter(({state:n})=>n.path.length===t)}function mr(e,t){let n=t.filter(d=>d.selectedIndex!==null);if(n.length===0)throw new Error;let o=n.filter(d=>d.selectedIndex===h.HELP_COMMAND_INDEX||d.requiredOptions.every(l=>l.some(f=>d.options.find(D=>D.name===f))));if(o.length===0)throw new kt.UnknownSyntaxError(e,n.map(d=>({usage:d.candidateUsage,reason:null})));let r=0;for(let d of o)d.path.length>r&&(r=d.path.length);let i=o.filter(d=>d.path.length===r),a=d=>d.positionals.filter(({extra:l})=>!l).length+d.options.length,s=i.map(d=>({state:d,positionalCount:a(d)})),u=0;for(let{positionalCount:d}of s)d>u&&(u=d);let c=s.filter(({positionalCount:d})=>d===u).map(({state:d})=>d),p=Ar(c);if(p.length>1)throw new kt.AmbiguousSyntaxError(e,p.map(d=>d.candidateUsage));return p[0]}function Ar(e){let t=[],n=[];for(let o of e)o.selectedIndex===h.HELP_COMMAND_INDEX?n.push(o):t.push(o);return n.length>0&&t.push({...pr,path:yr(...n.map(o=>o.path)),options:n.reduce((o,r)=>o.concat(r.options),[])}),t}function yr(e,t,...n){return t===void 0?Array.from(e):yr(e.filter((o,r)=>o===t[r]),...n)}function G(){return{dynamics:[],shortcuts:[],statics:{}}}function Hn(e){return e===h.NodeType.SuccessNode||e===h.NodeType.ErrorNode}function Ct(e,t=0){return{to:Hn(e.to)?e.to:e.to>=h.NodeType.CustomNode?e.to+t-h.NodeType.CustomNode+1:e.to+t,reducer:e.reducer}}function Fr(e,t=0){let n=G();for(let[o,r]of e.dynamics)n.dynamics.push([o,Ct(r,t)]);for(let o of e.shortcuts)n.shortcuts.push(Ct(o,t));for(let[o,r]of Object.entries(e.statics))n.statics[o]=r.map(i=>Ct(i,t));return n}function R(e,t,n,o,r){e.nodes[t].dynamics.push([n,{to:o,reducer:r}])}function Ce(e,t,n,o){e.nodes[t].shortcuts.push({to:n,reducer:o})}function j(e,t,n,o,r){(Object.prototype.hasOwnProperty.call(e.nodes[t].statics,n)?e.nodes[t].statics[n]:e.nodes[t].statics[n]=[]).push({to:o,reducer:r})}function Ze(e,t,n,o,r){if(Array.isArray(t)){let[i,...a]=t;return e[i](n,o,r,...a)}else return e[t](n,o,r)}var br={always:()=>!0,isOptionLike:(e,t)=>!e.ignoreOptions&&t!=="-"&&t.startsWith("-"),isNotOptionLike:(e,t)=>e.ignoreOptions||t==="-"||!t.startsWith("-"),isOption:(e,t,n,o)=>!e.ignoreOptions&&t===o,isBatchOption:(e,t,n,o)=>!e.ignoreOptions&&h.BATCH_REGEX.test(t)&&[...t.slice(1)].every(r=>o.has(`-${r}`)),isBoundOption:(e,t,n,o,r)=>{let i=t.match(h.BINDING_REGEX);return!e.ignoreOptions&&!!i&&h.OPTION_REGEX.test(i[1])&&o.has(i[1])&&r.filter(a=>a.nameSet.includes(i[1])).every(a=>a.allowBinding)},isNegatedOption:(e,t,n,o)=>!e.ignoreOptions&&t===`--no-${o.slice(2)}`,isHelp:(e,t)=>!e.ignoreOptions&&h.HELP_REGEX.test(t),isUnsupportedOption:(e,t,n,o)=>!e.ignoreOptions&&t.startsWith("-")&&h.OPTION_REGEX.test(t)&&!o.has(t),isInvalidOption:(e,t)=>!e.ignoreOptions&&t.startsWith("-")&&!h.OPTION_REGEX.test(t)},vt={setCandidateState:(e,t,n,o)=>({...e,...o}),setSelectedIndex:(e,t,n,o)=>({...e,selectedIndex:o}),pushBatch:(e,t,n,o)=>{let r=e.options.slice(),i=e.tokens.slice();for(let a=1;a<t.length;++a){let s=o.get(`-${t[a]}`),u=a===1?[0,2]:[a,a+1];r.push({name:s,value:!0}),i.push({segmentIndex:n,type:"option",option:s,slice:u})}return{...e,options:r,tokens:i}},pushBound:(e,t,n)=>{let[,o,r]=t.match(h.BINDING_REGEX),i=e.options.concat({name:o,value:r}),a=e.tokens.concat([{segmentIndex:n,type:"option",slice:[0,o.length],option:o},{segmentIndex:n,type:"assign",slice:[o.length,o.length+1]},{segmentIndex:n,type:"value",slice:[o.length+1,o.length+r.length+1]}]);return{...e,options:i,tokens:a}},pushPath:(e,t,n)=>{let o=e.path.concat(t),r=e.tokens.concat({segmentIndex:n,type:"path"});return{...e,path:o,tokens:r}},pushPositional:(e,t,n)=>{let o=e.positionals.concat({value:t,extra:!1}),r=e.tokens.concat({segmentIndex:n,type:"positional"});return{...e,positionals:o,tokens:r}},pushExtra:(e,t,n)=>{let o=e.positionals.concat({value:t,extra:!0}),r=e.tokens.concat({segmentIndex:n,type:"positional"});return{...e,positionals:o,tokens:r}},pushExtraNoLimits:(e,t,n)=>{let o=e.positionals.concat({value:t,extra:$}),r=e.tokens.concat({segmentIndex:n,type:"positional"});return{...e,positionals:o,tokens:r}},pushTrue:(e,t,n,o)=>{let r=e.options.concat({name:o,value:!0}),i=e.tokens.concat({segmentIndex:n,type:"option",option:o});return{...e,options:r,tokens:i}},pushFalse:(e,t,n,o)=>{let r=e.options.concat({name:o,value:!1}),i=e.tokens.concat({segmentIndex:n,type:"option",option:o});return{...e,options:r,tokens:i}},pushUndefined:(e,t,n,o)=>{let r=e.options.concat({name:t,value:void 0}),i=e.tokens.concat({segmentIndex:n,type:"option",option:t});return{...e,options:r,tokens:i}},pushStringValue:(e,t,n)=>{var o;let r=e.options[e.options.length-1],i=e.options.slice(),a=e.tokens.concat({segmentIndex:n,type:"value"});return r.value=((o=r.value)!==null&&o!==void 0?o:[]).concat([t]),{...e,options:i,tokens:a}},setStringValue:(e,t,n)=>{let o=e.options[e.options.length-1],r=e.options.slice(),i=e.tokens.concat({segmentIndex:n,type:"value"});return o.value=t,{...e,options:r,tokens:i}},inhibateOptions:e=>({...e,ignoreOptions:!0}),useHelp:(e,t,n,o)=>{let[,,r]=t.match(h.HELP_REGEX);return typeof r<"u"?{...e,options:[{name:"-c",value:String(o)},{name:"-i",value:r}]}:{...e,options:[{name:"-c",value:String(o)}]}},setError:(e,t,n,o)=>t===h.SpecialToken.EndOfInput||t===h.SpecialToken.EndOfPartialInput?{...e,errorMessage:`${o}.`}:{...e,errorMessage:`${o} ("${t}").`},setOptionArityError:(e,t)=>{let n=e.options[e.options.length-1];return{...e,errorMessage:`Not enough arguments to option ${n.name}.`}}},$=Symbol(),xt=class{constructor(t,n){this.allOptionNames=new Map,this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=t,this.cliOpts=n}addPath(t){this.paths.push(t)}setArity({leading:t=this.arity.leading,trailing:n=this.arity.trailing,extra:o=this.arity.extra,proxy:r=this.arity.proxy}){Object.assign(this.arity,{leading:t,trailing:n,extra:o,proxy:r})}addPositional({name:t="arg",required:n=!0}={}){if(!n&&this.arity.extra===$)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!n&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!n&&this.arity.extra!==$?this.arity.extra.push(t):this.arity.extra!==$&&this.arity.extra.length===0?this.arity.leading.push(t):this.arity.trailing.push(t)}addRest({name:t="arg",required:n=0}={}){if(this.arity.extra===$)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let o=0;o<n;++o)this.addPositional({name:t});this.arity.extra=$}addProxy({required:t=0}={}){this.addRest({required:t}),this.arity.proxy=!0}addOption({names:t,description:n,arity:o=0,hidden:r=!1,required:i=!1,allowBinding:a=!0}){if(!a&&o>1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(o))throw new Error(`The arity must be an integer, got ${o}`);if(o<0)throw new Error(`The arity must be positive, got ${o}`);let s=t.reduce((u,c)=>c.length>u.length?c:u,"");for(let u of t)this.allOptionNames.set(u,s);this.options.push({preferredName:s,nameSet:t,description:n,arity:o,hidden:r,required:i,allowBinding:a})}setContext(t){this.context=t}usage({detailed:t=!0,inlineOptions:n=!0}={}){let o=[this.cliOpts.binaryName],r=[];if(this.paths.length>0&&o.push(...this.paths[0]),t){for(let{preferredName:a,nameSet:s,arity:u,hidden:c,description:p,required:d}of this.options){if(c)continue;let l=[];for(let D=0;D<u;++D)l.push(` #${D}`);let f=`${s.join(",")}${l.join("")}`;!n&&p?r.push({preferredName:a,nameSet:s,definition:f,description:p,required:d}):o.push(d?`<${f}>`:`[${f}]`)}o.push(...this.arity.leading.map(a=>`<${a}>`)),this.arity.extra===$?o.push("..."):o.push(...this.arity.extra.map(a=>`[${a}]`)),o.push(...this.arity.trailing.map(a=>`<${a}>`))}return{usage:o.join(" "),options:r}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let t=Gn(),n=h.NodeType.InitialNode,o=this.usage().usage,r=this.options.filter(s=>s.required).map(s=>s.nameSet);n=z(t,G()),j(t,h.NodeType.InitialNode,h.SpecialToken.StartOfInput,n,["setCandidateState",{candidateUsage:o,requiredOptions:r}]);let i=this.arity.proxy?"always":"isNotOptionLike",a=this.paths.length>0?this.paths:[[]];for(let s of a){let u=n;if(s.length>0){let l=z(t,G());Ce(t,u,l),this.registerOptions(t,l),u=l}for(let l=0;l<s.length;++l){let f=z(t,G());if(j(t,u,s[l],f,"pushPath"),u=f,l+1<s.length){let D=z(t,G());R(t,u,"isHelp",D,["useHelp",this.cliIndex]),j(t,D,h.SpecialToken.EndOfInput,h.NodeType.SuccessNode,["setSelectedIndex",h.HELP_COMMAND_INDEX])}}if(this.arity.leading.length>0||!this.arity.proxy){let l=z(t,G());R(t,u,"isHelp",l,["useHelp",this.cliIndex]),R(t,l,"always",l,"pushExtra"),j(t,l,h.SpecialToken.EndOfInput,h.NodeType.SuccessNode,["setSelectedIndex",h.HELP_COMMAND_INDEX]),this.registerOptions(t,u)}this.arity.leading.length>0&&(j(t,u,h.SpecialToken.EndOfInput,h.NodeType.ErrorNode,["setError","Not enough positional arguments"]),j(t,u,h.SpecialToken.EndOfPartialInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex]));let c=u;for(let l=0;l<this.arity.leading.length;++l){let f=z(t,G());(!this.arity.proxy||l+1!==this.arity.leading.length)&&this.registerOptions(t,f),(this.arity.trailing.length>0||l+1!==this.arity.leading.length)&&(j(t,f,h.SpecialToken.EndOfInput,h.NodeType.ErrorNode,["setError","Not enough positional arguments"]),j(t,f,h.SpecialToken.EndOfPartialInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex])),R(t,c,"isNotOptionLike",f,"pushPositional"),c=f}let p=c;if(this.arity.extra===$||this.arity.extra.length>0){let l=z(t,G());if(Ce(t,c,l),this.arity.extra===$){let f=z(t,G());this.arity.proxy||this.registerOptions(t,f),R(t,c,i,f,"pushExtraNoLimits"),R(t,f,i,f,"pushExtraNoLimits"),Ce(t,f,l)}else for(let f=0;f<this.arity.extra.length;++f){let D=z(t,G());(!this.arity.proxy||f>0)&&this.registerOptions(t,D),R(t,p,i,D,"pushExtra"),Ce(t,D,l),p=D}p=l}this.arity.trailing.length>0&&(j(t,p,h.SpecialToken.EndOfInput,h.NodeType.ErrorNode,["setError","Not enough positional arguments"]),j(t,p,h.SpecialToken.EndOfPartialInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex]));let d=p;for(let l=0;l<this.arity.trailing.length;++l){let f=z(t,G());this.arity.proxy||this.registerOptions(t,f),l+1<this.arity.trailing.length&&(j(t,f,h.SpecialToken.EndOfInput,h.NodeType.ErrorNode,["setError","Not enough positional arguments"]),j(t,f,h.SpecialToken.EndOfPartialInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex])),R(t,d,"isNotOptionLike",f,"pushPositional"),d=f}R(t,d,i,h.NodeType.ErrorNode,["setError","Extraneous positional argument"]),j(t,d,h.SpecialToken.EndOfInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex]),j(t,d,h.SpecialToken.EndOfPartialInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex])}return{machine:t,context:this.context}}registerOptions(t,n){R(t,n,["isOption","--"],n,"inhibateOptions"),R(t,n,["isBatchOption",this.allOptionNames],n,["pushBatch",this.allOptionNames]),R(t,n,["isBoundOption",this.allOptionNames,this.options],n,"pushBound"),R(t,n,["isUnsupportedOption",this.allOptionNames],h.NodeType.ErrorNode,["setError","Unsupported option name"]),R(t,n,["isInvalidOption"],h.NodeType.ErrorNode,["setError","Invalid option name"]);for(let o of this.options)if(o.arity===0)for(let r of o.nameSet)R(t,n,["isOption",r],n,["pushTrue",o.preferredName]),r.startsWith("--")&&!r.startsWith("--no-")&&R(t,n,["isNegatedOption",r],n,["pushFalse",o.preferredName]);else{let r=z(t,G());for(let i of o.nameSet)R(t,n,["isOption",i],r,["pushUndefined",o.preferredName]);for(let i=0;i<o.arity;++i){let a=z(t,G());j(t,r,h.SpecialToken.EndOfInput,h.NodeType.ErrorNode,"setOptionArityError"),j(t,r,h.SpecialToken.EndOfPartialInput,h.NodeType.ErrorNode,"setOptionArityError"),R(t,r,"isOptionLike",h.NodeType.ErrorNode,"setOptionArityError");let s=o.arity===1?"setStringValue":"pushStringValue";R(t,r,"isNotOptionLike",a,s),r=a}Ce(t,r,n)}}},Ln=class e{constructor({binaryName:t="..."}={}){this.builders=[],this.opts={binaryName:t}}static build(t,n={}){return new e(n).commands(t).compile()}getBuilderByIndex(t){if(!(t>=0&&t<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${t})`);return this.builders[t]}commands(t){for(let n of t)n(this.command());return this}command(){let t=new xt(this.builders.length,this.opts);return this.builders.push(t),t}compile(){let t=[],n=[];for(let r of this.builders){let{machine:i,context:a}=r.compile();t.push(i),n.push(a)}let o=lr(t);return fr(o),{machine:o,contexts:n,process:(r,{partial:i}={})=>{let a=i?h.SpecialToken.EndOfPartialInput:h.SpecialToken.EndOfInput;return Fa(o,r,{endToken:a})}}}};B.CliBuilder=Ln;B.CommandBuilder=xt;B.NoLimits=$;B.aggregateHelpStates=Ar;B.cloneNode=Fr;B.cloneTransition=Ct;B.debug=L;B.debugMachine=Dr;B.execute=Ze;B.injectNode=z;B.isTerminalNode=Hn;B.makeAnyOfMachine=lr;B.makeNode=G;B.makeStateMachine=Gn;B.reducers=vt;B.registerDynamic=R;B.registerShortcut=Ce;B.registerStatic=j;B.runMachineInternal=hr;B.selectBestState=mr;B.simplifyMachine=fr;B.tests=br;B.trimSmallerBranches=gr});var wr=x(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});var ba=require("tty");function Ea(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var Un=Ea(ba);function wa(){return Un.default&&"getColorDepth"in Un.default.WriteStream.prototype?Un.default.WriteStream.prototype.getColorDepth():process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var Er;function Ca(e){let t=Er;if(typeof t>"u"){if(e.stdout===process.stdout&&e.stderr===process.stderr)return null;let{AsyncLocalStorage:n}=require("async_hooks");t=Er=new n;let o=process.stdout._write;process.stdout._write=function(i,a,s){let u=t.getStore();return typeof u>"u"?o.call(this,i,a,s):u.stdout.write(i,a,s)};let r=process.stderr._write;process.stderr._write=function(i,a,s){let u=t.getStore();return typeof u>"u"?r.call(this,i,a,s):u.stderr.write(i,a,s)}}return n=>t.run(e,n)}St.getCaptureActivator=Ca;St.getDefaultColorDepth=wa});var Cr=x(qn=>{"use strict";Object.defineProperty(qn,"__esModule",{value:!0});var va=ye(),zn=class e extends va.Command{constructor(t){super(),this.contexts=t,this.commands=[]}static from(t,n){let o=new e(n);o.path=t.path;for(let r of t.options)switch(r.name){case"-c":o.commands.push(Number(r.value));break;case"-i":o.index=Number(r.value);break}return o}async execute(){let t=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index<t.length&&(t=[t[this.index]]),t.length===0)this.context.stdout.write(this.cli.usage());else if(t.length===1)this.context.stdout.write(this.cli.usage(this.contexts[t[0]].commandClass,{detailed:!0}));else if(t.length>1){this.context.stdout.write(`Multiple commands match your selection:
38
38
  `),this.context.stdout.write(`
39
39
  `);let n=0;for(let o of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[o].commandClass,{prefix:`${n++}. `.padStart(5)}));this.context.stdout.write(`
40
40
  `),this.context.stdout.write(`Run again with -h=<index> to see the longer details of any of those commands.
41
- `)}}};qn.HelpCommand=zn});var Sr=x(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});var ka=At(),xa=Bt(),q=In(),xr=wr(),Pt=ye(),Ba=Cr(),vr=Symbol("clipanion/errorCommand");async function Sa(...e){let{resolvedOptions:t,resolvedCommandClasses:n,resolvedArgv:o,resolvedContext:r}=Br(e);return Oe.from(n,t).runExit(o,r)}async function Pa(...e){let{resolvedOptions:t,resolvedCommandClasses:n,resolvedArgv:o,resolvedContext:r}=Br(e);return Oe.from(n,t).run(o,r)}function Br(e){let t,n,o,r;switch(typeof process<"u"&&typeof process.argv<"u"&&(o=process.argv.slice(2)),e.length){case 1:n=e[0];break;case 2:e[0]&&e[0].prototype instanceof Pt.Command||Array.isArray(e[0])?(n=e[0],Array.isArray(e[1])?o=e[1]:r=e[1]):(t=e[0],n=e[1]);break;case 3:Array.isArray(e[2])?(t=e[0],n=e[1],o=e[2]):e[0]&&e[0].prototype instanceof Pt.Command||Array.isArray(e[0])?(n=e[0],o=e[1],r=e[2]):(t=e[0],n=e[1],r=e[2]);break;default:t=e[0],n=e[1],o=e[2],r=e[3];break}if(typeof o>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:t,resolvedCommandClasses:n,resolvedArgv:o,resolvedContext:r}}var Oe=class e{constructor({binaryLabel:t,binaryName:n="...",binaryVersion:o,enableCapture:r=!1,enableColors:i}={}){this.registrations=new Map,this.builder=new xa.CliBuilder({binaryName:n}),this.binaryLabel=t,this.binaryName=n,this.binaryVersion=o,this.enableCapture=r,this.enableColors=i}static from(t,n={}){let o=new e(n),r=Array.isArray(t)?t:[t];for(let i of r)o.register(i);return o}register(t){var n;let o=new Map,r=new t;for(let u in r){let c=r[u];typeof c=="object"&&c!==null&&c[Pt.Command.isOption]&&o.set(u,c)}let i=this.builder.command(),a=i.cliIndex,s=(n=t.paths)!==null&&n!==void 0?n:r.paths;if(typeof s<"u")for(let u of s)i.addPath(u);this.registrations.set(t,{specs:o,builder:i,index:a});for(let[u,{definition:c}]of o.entries())c(i,u);i.setContext({commandClass:t})}process(t,n){let{input:o,context:r,partial:i}=typeof t=="object"&&Array.isArray(t)?{input:t,context:n}:t,{contexts:a,process:s}=this.builder.compile(),u=s(o,{partial:i}),c={...e.defaultContext,...r};switch(u.selectedIndex){case ka.HELP_COMMAND_INDEX:{let p=Ba.HelpCommand.from(u,a);return p.context=c,p.tokens=u.tokens,p}default:{let{commandClass:p}=a[u.selectedIndex],d=this.registrations.get(p);if(typeof d>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let l=new p;l.context=c,l.tokens=u.tokens,l.path=u.path;try{for(let[f,{transformer:D}]of d.specs.entries())l[f]=D(d.builder,f,u,c);return l}catch(f){throw f[vr]=l,f}}break}}async run(t,n){var o,r;let i,a={...e.defaultContext,...n},s=(o=this.enableColors)!==null&&o!==void 0?o:a.colorDepth>1;if(!Array.isArray(t))i=t;else try{i=this.process(t,a)}catch(p){return a.stdout.write(this.error(p,{colored:s})),1}if(i.help)return a.stdout.write(this.usage(i,{colored:s,detailed:!0})),0;i.context=a,i.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),definition:p=>this.definition(p),error:(p,d)=>this.error(p,d),format:p=>this.format(p),process:(p,d)=>this.process(p,{...a,...d}),run:(p,d)=>this.run(p,{...a,...d}),usage:(p,d)=>this.usage(p,d)};let u=this.enableCapture&&(r=xr.getCaptureActivator(a))!==null&&r!==void 0?r:kr,c;try{c=await u(()=>i.validateAndExecute().catch(p=>i.catch(p).then(()=>0)))}catch(p){return a.stdout.write(this.error(p,{colored:s,command:i})),1}return c}async runExit(t,n){process.exitCode=await this.run(t,n)}definition(t,{colored:n=!1}={}){if(!t.usage)return null;let{usage:o}=this.getUsageByRegistration(t,{detailed:!1}),{usage:r,options:i}=this.getUsageByRegistration(t,{detailed:!0,inlineOptions:!1}),a=typeof t.usage.category<"u"?q.formatMarkdownish(t.usage.category,{format:this.format(n),paragraphs:!1}):void 0,s=typeof t.usage.description<"u"?q.formatMarkdownish(t.usage.description,{format:this.format(n),paragraphs:!1}):void 0,u=typeof t.usage.details<"u"?q.formatMarkdownish(t.usage.details,{format:this.format(n),paragraphs:!0}):void 0,c=typeof t.usage.examples<"u"?t.usage.examples.map(([p,d])=>[q.formatMarkdownish(p,{format:this.format(n),paragraphs:!1}),d.replace(/\$0/g,this.binaryName)]):void 0;return{path:o,usage:r,category:a,description:s,details:u,examples:c,options:i}}definitions({colored:t=!1}={}){let n=[];for(let o of this.registrations.keys()){let r=this.definition(o,{colored:t});r&&n.push(r)}return n}usage(t=null,{colored:n,detailed:o=!1,prefix:r="$ "}={}){var i;if(t===null){for(let u of this.registrations.keys()){let c=u.paths,p=typeof u.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((i=c?.some(f=>f.length===0))!==null&&i!==void 0?i:!1))if(t){t=null;break}else t=u;else if(p){t=null;continue}}t&&(o=!0)}let a=t!==null&&t instanceof Pt.Command?t.constructor:t,s="";if(a)if(o){let{description:u="",details:c="",examples:p=[]}=a.usage||{};u!==""&&(s+=q.formatMarkdownish(u,{format:this.format(n),paragraphs:!1}).replace(/^./,f=>f.toUpperCase()),s+=`
41
+ `)}}};qn.HelpCommand=zn});var Sr=x(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});var ka=At(),xa=Bt(),q=In(),xr=wr(),Pt=ye(),Ba=Cr(),vr=Symbol("clipanion/errorCommand");async function Sa(...e){let{resolvedOptions:t,resolvedCommandClasses:n,resolvedArgv:o,resolvedContext:r}=Br(e);return Te.from(n,t).runExit(o,r)}async function Pa(...e){let{resolvedOptions:t,resolvedCommandClasses:n,resolvedArgv:o,resolvedContext:r}=Br(e);return Te.from(n,t).run(o,r)}function Br(e){let t,n,o,r;switch(typeof process<"u"&&typeof process.argv<"u"&&(o=process.argv.slice(2)),e.length){case 1:n=e[0];break;case 2:e[0]&&e[0].prototype instanceof Pt.Command||Array.isArray(e[0])?(n=e[0],Array.isArray(e[1])?o=e[1]:r=e[1]):(t=e[0],n=e[1]);break;case 3:Array.isArray(e[2])?(t=e[0],n=e[1],o=e[2]):e[0]&&e[0].prototype instanceof Pt.Command||Array.isArray(e[0])?(n=e[0],o=e[1],r=e[2]):(t=e[0],n=e[1],r=e[2]);break;default:t=e[0],n=e[1],o=e[2],r=e[3];break}if(typeof o>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:t,resolvedCommandClasses:n,resolvedArgv:o,resolvedContext:r}}var Te=class e{constructor({binaryLabel:t,binaryName:n="...",binaryVersion:o,enableCapture:r=!1,enableColors:i}={}){this.registrations=new Map,this.builder=new xa.CliBuilder({binaryName:n}),this.binaryLabel=t,this.binaryName=n,this.binaryVersion=o,this.enableCapture=r,this.enableColors=i}static from(t,n={}){let o=new e(n),r=Array.isArray(t)?t:[t];for(let i of r)o.register(i);return o}register(t){var n;let o=new Map,r=new t;for(let u in r){let c=r[u];typeof c=="object"&&c!==null&&c[Pt.Command.isOption]&&o.set(u,c)}let i=this.builder.command(),a=i.cliIndex,s=(n=t.paths)!==null&&n!==void 0?n:r.paths;if(typeof s<"u")for(let u of s)i.addPath(u);this.registrations.set(t,{specs:o,builder:i,index:a});for(let[u,{definition:c}]of o.entries())c(i,u);i.setContext({commandClass:t})}process(t,n){let{input:o,context:r,partial:i}=typeof t=="object"&&Array.isArray(t)?{input:t,context:n}:t,{contexts:a,process:s}=this.builder.compile(),u=s(o,{partial:i}),c={...e.defaultContext,...r};switch(u.selectedIndex){case ka.HELP_COMMAND_INDEX:{let p=Ba.HelpCommand.from(u,a);return p.context=c,p.tokens=u.tokens,p}default:{let{commandClass:p}=a[u.selectedIndex],d=this.registrations.get(p);if(typeof d>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let l=new p;l.context=c,l.tokens=u.tokens,l.path=u.path;try{for(let[f,{transformer:D}]of d.specs.entries())l[f]=D(d.builder,f,u,c);return l}catch(f){throw f[vr]=l,f}}break}}async run(t,n){var o,r;let i,a={...e.defaultContext,...n},s=(o=this.enableColors)!==null&&o!==void 0?o:a.colorDepth>1;if(!Array.isArray(t))i=t;else try{i=this.process(t,a)}catch(p){return a.stdout.write(this.error(p,{colored:s})),1}if(i.help)return a.stdout.write(this.usage(i,{colored:s,detailed:!0})),0;i.context=a,i.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),definition:p=>this.definition(p),error:(p,d)=>this.error(p,d),format:p=>this.format(p),process:(p,d)=>this.process(p,{...a,...d}),run:(p,d)=>this.run(p,{...a,...d}),usage:(p,d)=>this.usage(p,d)};let u=this.enableCapture&&(r=xr.getCaptureActivator(a))!==null&&r!==void 0?r:kr,c;try{c=await u(()=>i.validateAndExecute().catch(p=>i.catch(p).then(()=>0)))}catch(p){return a.stdout.write(this.error(p,{colored:s,command:i})),1}return c}async runExit(t,n){process.exitCode=await this.run(t,n)}definition(t,{colored:n=!1}={}){if(!t.usage)return null;let{usage:o}=this.getUsageByRegistration(t,{detailed:!1}),{usage:r,options:i}=this.getUsageByRegistration(t,{detailed:!0,inlineOptions:!1}),a=typeof t.usage.category<"u"?q.formatMarkdownish(t.usage.category,{format:this.format(n),paragraphs:!1}):void 0,s=typeof t.usage.description<"u"?q.formatMarkdownish(t.usage.description,{format:this.format(n),paragraphs:!1}):void 0,u=typeof t.usage.details<"u"?q.formatMarkdownish(t.usage.details,{format:this.format(n),paragraphs:!0}):void 0,c=typeof t.usage.examples<"u"?t.usage.examples.map(([p,d])=>[q.formatMarkdownish(p,{format:this.format(n),paragraphs:!1}),d.replace(/\$0/g,this.binaryName)]):void 0;return{path:o,usage:r,category:a,description:s,details:u,examples:c,options:i}}definitions({colored:t=!1}={}){let n=[];for(let o of this.registrations.keys()){let r=this.definition(o,{colored:t});r&&n.push(r)}return n}usage(t=null,{colored:n,detailed:o=!1,prefix:r="$ "}={}){var i;if(t===null){for(let u of this.registrations.keys()){let c=u.paths,p=typeof u.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((i=c?.some(f=>f.length===0))!==null&&i!==void 0?i:!1))if(t){t=null;break}else t=u;else if(p){t=null;continue}}t&&(o=!0)}let a=t!==null&&t instanceof Pt.Command?t.constructor:t,s="";if(a)if(o){let{description:u="",details:c="",examples:p=[]}=a.usage||{};u!==""&&(s+=q.formatMarkdownish(u,{format:this.format(n),paragraphs:!1}).replace(/^./,f=>f.toUpperCase()),s+=`
42
42
  `),(c!==""||p.length>0)&&(s+=`${this.format(n).header("Usage")}
43
43
  `,s+=`
44
44
  `);let{usage:d,options:l}=this.getUsageByRegistration(a,{inlineOptions:!1});if(s+=`${this.format(n).bold(r)}${d}
@@ -61,16 +61,16 @@ ${t.map(n=>`
61
61
  `):s+=`${this.format(n).bold(r)}${this.binaryName} <command>
62
62
  `;for(let l of c){let f=u.get(l).slice().sort((A,y)=>A.usage.localeCompare(y.usage,"en",{usage:"sort",caseFirst:"upper"})),D=l!==null?l.trim():"General commands";s+=`
63
63
  `,s+=`${this.format(n).header(`${D}`)}
64
- `;for(let{commandClass:A,usage:y}of f){let E=A.usage.description||"undocumented";s+=`
64
+ `;for(let{commandClass:A,usage:y}of f){let b=A.usage.description||"undocumented";s+=`
65
65
  `,s+=` ${this.format(n).bold(y)}
66
- `,s+=` ${q.formatMarkdownish(E,{format:this.format(n),paragraphs:!1})}`}}s+=`
66
+ `,s+=` ${q.formatMarkdownish(b,{format:this.format(n),paragraphs:!1})}`}}s+=`
67
67
  `,s+=q.formatMarkdownish("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(n),paragraphs:!0})}return s}error(t,n){var o,{colored:r,command:i=(o=t[vr])!==null&&o!==void 0?o:null}=n===void 0?{}:n;(!t||typeof t!="object"||!("stack"in t))&&(t=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(t)})`));let a="",s=t.name.replace(/([a-z])([A-Z])/g,"$1 $2");s==="Error"&&(s="Internal Error"),a+=`${this.format(r).error(s)}: ${t.message}
68
68
  `;let u=t.clipanion;return typeof u<"u"?u.type==="usage"&&(a+=`
69
69
  `,a+=this.usage(i)):t.stack&&(a+=`${t.stack.replace(/^.*\n/,"")}
70
- `),a}format(t){var n;return((n=t??this.enableColors)!==null&&n!==void 0?n:e.defaultContext.colorDepth>1)?q.richFormat:q.textFormat}getUsageByRegistration(t,n){let o=this.registrations.get(t);if(typeof o>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(o.index,n)}getUsageByIndex(t,n){return this.builder.getBuilderByIndex(t).usage(n)}};Oe.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:xr.getDefaultColorDepth()};function kr(e){return e()}Je.Cli=Oe;Je.run=Pa;Je.runExit=Sa});var Pr=x(Kn=>{"use strict";Object.defineProperty(Kn,"__esModule",{value:!0});var Ta=ye(),Tt=class extends Ta.Command{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)}
71
- `)}};Tt.paths=[["--clipanion=definitions"]];Kn.DefinitionsCommand=Tt});var Tr=x(Yn=>{"use strict";Object.defineProperty(Yn,"__esModule",{value:!0});var Oa=ye(),Ot=class extends Oa.Command{async execute(){this.context.stdout.write(this.cli.usage())}};Ot.paths=[["-h"],["--help"]];Yn.HelpCommand=Ot});var Wn=x(Qn=>{"use strict";Object.defineProperty(Qn,"__esModule",{value:!0});var Ia=ie();function Ra(e={}){return Ia.makeCommandOption({definition(t,n){var o;t.addProxy({name:(o=e.name)!==null&&o!==void 0?o:n,required:e.required})},transformer(t,n,o){return o.positionals.map(({value:r})=>r)}})}Qn.Proxy=Ra});var Or=x(Vn=>{"use strict";Object.defineProperty(Vn,"__esModule",{value:!0});var Na=ye(),ja=Wn(),It=class extends Na.Command{constructor(){super(...arguments),this.args=ja.Proxy()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)}
70
+ `),a}format(t){var n;return((n=t??this.enableColors)!==null&&n!==void 0?n:e.defaultContext.colorDepth>1)?q.richFormat:q.textFormat}getUsageByRegistration(t,n){let o=this.registrations.get(t);if(typeof o>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(o.index,n)}getUsageByIndex(t,n){return this.builder.getBuilderByIndex(t).usage(n)}};Te.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:xr.getDefaultColorDepth()};function kr(e){return e()}Je.Cli=Te;Je.run=Pa;Je.runExit=Sa});var Pr=x(Kn=>{"use strict";Object.defineProperty(Kn,"__esModule",{value:!0});var Oa=ye(),Ot=class extends Oa.Command{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)}
71
+ `)}};Ot.paths=[["--clipanion=definitions"]];Kn.DefinitionsCommand=Ot});var Or=x(Yn=>{"use strict";Object.defineProperty(Yn,"__esModule",{value:!0});var Ta=ye(),Tt=class extends Ta.Command{async execute(){this.context.stdout.write(this.cli.usage())}};Tt.paths=[["-h"],["--help"]];Yn.HelpCommand=Tt});var Wn=x(Qn=>{"use strict";Object.defineProperty(Qn,"__esModule",{value:!0});var Ia=ie();function Ra(e={}){return Ia.makeCommandOption({definition(t,n){var o;t.addProxy({name:(o=e.name)!==null&&o!==void 0?o:n,required:e.required})},transformer(t,n,o){return o.positionals.map(({value:r})=>r)}})}Qn.Proxy=Ra});var Tr=x(Vn=>{"use strict";Object.defineProperty(Vn,"__esModule",{value:!0});var Na=ye(),ja=Wn(),It=class extends Na.Command{constructor(){super(...arguments),this.args=ja.Proxy()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)}
72
72
  `)}};It.paths=[["--clipanion=tokens"]];Vn.TokensCommand=It});var Ir=x(Zn=>{"use strict";Object.defineProperty(Zn,"__esModule",{value:!0});var Ma=ye(),Rt=class extends Ma.Command{async execute(){var t;this.context.stdout.write(`${(t=this.cli.binaryVersion)!==null&&t!==void 0?t:"<unknown>"}
73
- `)}};Rt.paths=[["-v"],["--version"]];Zn.VersionCommand=Rt});var Rr=x(Ie=>{"use strict";Object.defineProperty(Ie,"__esModule",{value:!0});var La=Pr(),Ga=Tr(),Ha=Or(),Ua=Ir();Ie.DefinitionsCommand=La.DefinitionsCommand;Ie.HelpCommand=Ga.HelpCommand;Ie.TokensCommand=Ha.TokensCommand;Ie.VersionCommand=Ua.VersionCommand});var Nr=x(Xn=>{"use strict";Object.defineProperty(Xn,"__esModule",{value:!0});var Jn=ie();function za(e,t,n){let[o,r]=Jn.rerouteArguments(t,n??{}),{arity:i=1}=r,a=e.split(","),s=new Set(a);return Jn.makeCommandOption({definition(u){u.addOption({names:a,arity:i,hidden:r?.hidden,description:r?.description,required:r.required})},transformer(u,c,p){let d,l=typeof o<"u"?[...o]:void 0;for(let{name:f,value:D}of p.options)s.has(f)&&(d=f,l=l??[],l.push(D));return typeof l<"u"?Jn.applyValidator(d??c,l,r.validator):l}})}Xn.Array=za});var Mr=x(_n=>{"use strict";Object.defineProperty(_n,"__esModule",{value:!0});var jr=ie();function qa(e,t,n){let[o,r]=jr.rerouteArguments(t,n??{}),i=e.split(","),a=new Set(i);return jr.makeCommandOption({definition(s){s.addOption({names:i,allowBinding:!1,arity:0,hidden:r.hidden,description:r.description,required:r.required})},transformer(s,u,c){let p=o;for(let{name:d,value:l}of c.options)a.has(d)&&(p=l);return p}})}_n.Boolean=qa});var Gr=x($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});var Lr=ie();function Ka(e,t,n){let[o,r]=Lr.rerouteArguments(t,n??{}),i=e.split(","),a=new Set(i);return Lr.makeCommandOption({definition(s){s.addOption({names:i,allowBinding:!1,arity:0,hidden:r.hidden,description:r.description,required:r.required})},transformer(s,u,c){let p=o;for(let{name:d,value:l}of c.options)a.has(d)&&(p??(p=0),l?p+=1:p=0);return p}})}$n.Counter=Ka});var Hr=x(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});var Ya=Bt(),Qa=ie();function Wa(e={}){return Qa.makeCommandOption({definition(t,n){var o;t.addRest({name:(o=e.name)!==null&&o!==void 0?o:n,required:e.required})},transformer(t,n,o){let r=a=>{let s=o.positionals[a];return s.extra===Ya.NoLimits||s.extra===!1&&a<t.arity.leading.length},i=0;for(;i<o.positionals.length&&r(i);)i+=1;return o.positionals.splice(0,i).map(({value:a})=>a)}})}eo.Rest=Wa});var Ur=x(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});var Va=Bt(),Xe=ie();function Za(e,t,n){let[o,r]=Xe.rerouteArguments(t,n??{}),{arity:i=1}=r,a=e.split(","),s=new Set(a);return Xe.makeCommandOption({definition(u){u.addOption({names:a,arity:r.tolerateBoolean?0:i,hidden:r.hidden,description:r.description,required:r.required})},transformer(u,c,p,d){let l,f=o;typeof r.env<"u"&&d.env[r.env]&&(l=r.env,f=d.env[r.env]);for(let{name:D,value:A}of p.options)s.has(D)&&(l=D,f=A);return typeof f=="string"?Xe.applyValidator(l??c,f,r.validator):f}})}function Ja(e={}){let{required:t=!0}=e;return Xe.makeCommandOption({definition(n,o){var r;n.addPositional({name:(r=e.name)!==null&&r!==void 0?r:o,required:e.required})},transformer(n,o,r){var i;for(let a=0;a<r.positionals.length;++a){if(r.positionals[a].extra===Va.NoLimits||t&&r.positionals[a].extra===!0||!t&&r.positionals[a].extra===!1)continue;let[s]=r.positionals.splice(a,1);return Xe.applyValidator((i=e.name)!==null&&i!==void 0?i:o,s.value,e.validator)}}})}function Xa(e,...t){return typeof e=="string"?Za(e,...t):Ja(e)}to.String=Xa});var zr=x(H=>{"use strict";Object.defineProperty(H,"__esModule",{value:!0});var Re=ie(),_a=Wn(),$a=Nr(),eu=Mr(),tu=Gr(),nu=Hr(),ou=Ur();H.applyValidator=Re.applyValidator;H.cleanValidationError=Re.cleanValidationError;H.formatError=Re.formatError;H.isOptionSymbol=Re.isOptionSymbol;H.makeCommandOption=Re.makeCommandOption;H.rerouteArguments=Re.rerouteArguments;H.Proxy=_a.Proxy;H.Array=$a.Array;H.Boolean=eu.Boolean;H.Counter=tu.Counter;H.Rest=nu.Rest;H.String=ou.String});var oo=x(ee=>{"use strict";Object.defineProperty(ee,"__esModule",{value:!0});var ru=yt(),iu=In(),su=ye(),no=Sr(),au=Rr(),uu=zr();ee.UsageError=ru.UsageError;ee.formatMarkdownish=iu.formatMarkdownish;ee.Command=su.Command;ee.Cli=no.Cli;ee.run=no.run;ee.runExit=no.runExit;ee.Builtins=au;ee.Option=uu});var $r=x((up,_r)=>{"use strict";_r.exports=mu;function gu(e){let t={defaultWidth:0,output:process.stdout,tty:require("tty")};return e?(Object.keys(t).forEach(function(n){e[n]||(e[n]=t[n])}),e):t}function mu(e){let t=gu(e);if(t.output.getWindowSize)return t.output.getWindowSize()[0]||t.defaultWidth;if(t.tty.getWindowSize)return t.tty.getWindowSize()[1]||t.defaultWidth;if(t.output.columns)return t.output.columns;if(process.env.CLI_WIDTH){let n=parseInt(process.env.CLI_WIDTH,10);if(!isNaN(n)&&n!==0)return n}return t.defaultWidth}});var ii=x((gp,ri)=>{ri.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});var mi=x((Ip,gi)=>{var Ou=require("stream"),fo=class extends Ou{#n=null;constructor(t={}){super(t),this.writable=this.readable=!0,this.muted=!1,this.on("pipe",this._onpipe),this.replace=t.replace,this._prompt=t.prompt||null,this._hadControl=!1}#t(t,n){return this._dest?this._dest[t]:this._src?this._src[t]:n}#e(t,...n){typeof this._dest?.[t]=="function"&&this._dest[t](...n),typeof this._src?.[t]=="function"&&this._src[t](...n)}get isTTY(){return this.#n!==null?this.#n:this.#t("isTTY",!1)}set isTTY(t){this.#n=t}get rows(){return this.#t("rows")}get columns(){return this.#t("columns")}mute(){this.muted=!0}unmute(){this.muted=!1}_onpipe(t){this._src=t}pipe(t,n){return this._dest=t,super.pipe(t,n)}pause(){if(this._src)return this._src.pause()}resume(){if(this._src)return this._src.resume()}write(t){if(this.muted){if(!this.replace)return!0;if(t.match(/^\u001b/))return t.indexOf(this._prompt)===0&&(t=t.slice(this._prompt.length),t=t.replace(/./g,this.replace),t=this._prompt+t),this._hadControl=!0,this.emit("data",t);this._prompt&&this._hadControl&&t.indexOf(this._prompt)===0&&(this._hadControl=!1,this.emit("data",this._prompt),t=t.slice(this._prompt.length)),t=t.toString().replace(/./g,this.replace)}this.emit("data",t)}end(t){this.muted&&(t&&this.replace?t=t.toString().replace(/./g,this.replace):t=null),t&&this.emit("data",t),this.emit("end")}destroy(...t){return this.#e("destroy",...t)}destroySoon(...t){return this.#e("destroySoon",...t)}close(...t){return this.#e("close",...t)}};gi.exports=fo});var ht=M(oo());var _e=(e,t=[])=>e.name==="up"||t.includes("vim")&&e.name==="k"||t.includes("emacs")&&e.ctrl&&e.name==="p",Nt=(e,t=[])=>e.name==="down"||t.includes("vim")&&e.name==="j"||t.includes("emacs")&&e.ctrl&&e.name==="n";var $e=e=>e.name==="backspace",et=e=>e.name==="tab",ro=e=>"1234567890".includes(e.name),se=e=>e.name==="enter"||e.name==="return";var jt=class extends Error{name="AbortPromptError";message="Prompt was aborted";constructor(t){super(),this.cause=t?.cause}},Mt=class extends Error{name="CancelPromptError";message="Prompt was canceled"},tt=class extends Error{name="ExitPromptError"},Lt=class extends Error{name="HookError"},Ne=class extends Error{name="ValidationError"};var Qr=require("node:async_hooks");var Gt=require("node:async_hooks");var qr=new Gt.AsyncLocalStorage;function cu(e){return{rl:e,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}function Kr(e,t){let n=cu(e);return qr.run(n,()=>{function o(r){n.handleChange=()=>{n.index=0,r()},n.handleChange()}return t(o)})}function ve(){let e=qr.getStore();if(!e)throw new Lt("[Inquirer] Hook functions can only be called from within a prompt");return e}function io(){return ve().rl}function so(e){let t=(...n)=>{let o=ve(),r=!1,i=o.handleChange;o.handleChange=()=>{r=!0};let a=e(...n);return r&&i(),o.handleChange=i,a};return Gt.AsyncResource.bind(t)}function je(e){let t=ve(),{index:n}=t,o={get(){return t.hooks[n]},set(i){t.hooks[n]=i},initialized:n in t.hooks},r=e(o);return t.index++,r}function Yr(){ve().handleChange()}var ke={queue(e){let t=ve(),{index:n}=t;t.hooksEffect.push(()=>{t.hooksCleanup[n]?.();let o=e(io());if(o!=null&&typeof o!="function")throw new Ne("useEffect return value must be a cleanup function or nothing.");t.hooksCleanup[n]=o})},run(){let e=ve();so(()=>{e.hooksEffect.forEach(t=>{t()}),e.hooksEffect.length=0})()},clearAll(){let e=ve();e.hooksCleanup.forEach(t=>{t?.()}),e.hooksEffect.length=0,e.hooksCleanup.length=0}};function I(e){return je(t=>{let n=Qr.AsyncResource.bind(function(i){t.get()!==i&&(t.set(i),Yr())});if(t.initialized)return[t.get(),n];let o=typeof e=="function"?e():e;return t.set(o),[o,n]})}function ae(e,t){je(n=>{let o=n.get();(!Array.isArray(o)||t.some((i,a)=>!Object.is(i,o[a])))&&ke.queue(e),n.set(t)})}var Q=require("node:util");var V=M(require("node:process"),1);function du(){return V.default.platform!=="win32"?V.default.env.TERM!=="linux":!!V.default.env.WT_SESSION||!!V.default.env.TERMINUS_SUBLIME||V.default.env.ConEmuTask==="{cmd::Cmder}"||V.default.env.TERM_PROGRAM==="Terminus-Sublime"||V.default.env.TERM_PROGRAM==="vscode"||V.default.env.TERM==="xterm-256color"||V.default.env.TERM==="alacritty"||V.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Wr={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},Vr={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},pu={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},lu={...Wr,...Vr},fu={...Wr,...pu},Du=du(),hu=Du?lu:fu,Me=hu,Kd=Object.entries(Vr);var Zr={prefix:{idle:(0,Q.styleText)("blue","?"),done:(0,Q.styleText)("green",Me.tick)},spinner:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"].map(e=>(0,Q.styleText)("yellow",e))},style:{answer:e=>(0,Q.styleText)("cyan",e),message:e=>(0,Q.styleText)("bold",e),error:e=>(0,Q.styleText)("red",`> ${e}`),defaultAnswer:e=>(0,Q.styleText)("dim",`(${e})`),help:e=>(0,Q.styleText)("dim",e),highlight:e=>(0,Q.styleText)("cyan",e),key:e=>(0,Q.styleText)("cyan",(0,Q.styleText)("bold",`<${e}>`))}};function Jr(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function Xr(...e){let t={};for(let n of e)for(let[o,r]of Object.entries(n)){let i=t[o];t[o]=Jr(i)&&Jr(r)?Xr(i,r):r}return t}function Z(...e){let t=[Zr,...e.filter(n=>n!=null)];return Xr(...t)}function ue({status:e="idle",theme:t}){let[n,o]=I(!1),[r,i]=I(0),{prefix:a,spinner:s}=Z(t);return ae(()=>{if(e==="loading"){let c,p=-1,d=setTimeout(()=>{o(!0),c=setInterval(()=>{p=p+1,i(p%s.frames.length)},s.interval)},300);return()=>{clearTimeout(d),clearInterval(c)}}else o(!1)},[e]),n?s.frames[r]:typeof a=="string"?a:a[e==="loading"?"idle":e]??a.idle}function nt(e,t){return je(n=>{let o=n.get();if(!o||o.dependencies.length!==t.length||o.dependencies.some((r,i)=>r!==t[i])){let r=e();return n.set({value:r,dependencies:t}),r}return o.value})}function xe(e){return I({current:e})[0]}function ce(e){let t=xe(e);t.current=e,ae(n=>{let o=!1,r=so((i,a)=>{o||t.current(a,n)});return n.input.on("keypress",r),()=>{o=!0,n.input.removeListener("keypress",r)}},[])}var hi=M($r(),1);function ao({onlyFirst:e=!1}={}){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}var Au=ao();function ot(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(Au,"")}function ei(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function ti(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function ni(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}function yu(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function oi(e,{ambiguousAsWide:t=!1}={}){return yu(e),ti(e)||ni(e)||t&&ei(e)?2:1}var si=M(ii(),1),Fu=new Intl.Segmenter,Eu=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function Be(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:n=!0,countAnsiEscapeCodes:o=!1}=t;if(o||(e=ot(e)),e.length===0)return 0;let r=0,i={ambiguousAsWide:!n};for(let{segment:a}of Fu.segment(e)){let s=a.codePointAt(0);if(!(s<=31||s>=127&&s<=159)&&!(s>=8203&&s<=8207||s===65279)&&!(s>=768&&s<=879||s>=6832&&s<=6911||s>=7616&&s<=7679||s>=8400&&s<=8447||s>=65056&&s<=65071)&&!(s>=55296&&s<=57343)&&!(s>=65024&&s<=65039)&&!Eu.test(a)){if((0,si.default)().test(a)){r+=2;continue}r+=oi(s,i)}}return r}var ai=(e=0)=>t=>`\x1B[${t+e}m`,ui=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,ci=(e=0)=>(t,n,o)=>`\x1B[${38+e};2;${t};${n};${o}m`,S={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},Fp=Object.keys(S.modifier),bu=Object.keys(S.color),wu=Object.keys(S.bgColor),Ep=[...bu,...wu];function Cu(){let e=new Map;for(let[t,n]of Object.entries(S)){for(let[o,r]of Object.entries(n))S[o]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},n[o]=S[o],e.set(r[0],r[1]);Object.defineProperty(S,t,{value:n,enumerable:!1})}return Object.defineProperty(S,"codes",{value:e,enumerable:!1}),S.color.close="\x1B[39m",S.bgColor.close="\x1B[49m",S.color.ansi=ai(),S.color.ansi256=ui(),S.color.ansi16m=ci(),S.bgColor.ansi=ai(10),S.bgColor.ansi256=ui(10),S.bgColor.ansi16m=ci(10),Object.defineProperties(S,{rgbToAnsi256:{value:(t,n,o)=>t===n&&n===o?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(o/255*5),enumerable:!1},hexToRgb:{value:t=>{let n=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!n)return[0,0,0];let[o]=n;o.length===3&&(o=[...o].map(i=>i+i).join(""));let r=Number.parseInt(o,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:t=>S.rgbToAnsi256(...S.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value:t=>{if(t<8)return 30+t;if(t<16)return 90+(t-8);let n,o,r;if(t>=232)n=((t-232)*10+8)/255,o=n,r=n;else{t-=16;let s=t%36;n=Math.floor(t/36)/5,o=Math.floor(s/6)/5,r=s%6/5}let i=Math.max(n,o,r)*2;if(i===0)return 30;let a=30+(Math.round(r)<<2|Math.round(o)<<1|Math.round(n));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(t,n,o)=>S.ansi256ToAnsi(S.rgbToAnsi256(t,n,o)),enumerable:!1},hexToAnsi:{value:t=>S.ansi256ToAnsi(S.hexToAnsi256(t)),enumerable:!1}}),S}var vu=Cu(),di=vu;var Ut=new Set(["\x1B","\x9B"]),ku=39,co="\x07",fi="[",xu="]",Di="m",Ht=`${xu}8;;`,pi=e=>`${Ut.values().next().value}${fi}${e}${Di}`,li=e=>`${Ut.values().next().value}${Ht}${e}${co}`,Bu=e=>e.split(" ").map(t=>Be(t)),uo=(e,t,n)=>{let o=[...t],r=!1,i=!1,a=Be(ot(e.at(-1)));for(let[s,u]of o.entries()){let c=Be(u);if(a+c<=n?e[e.length-1]+=u:(e.push(u),a=0),Ut.has(u)&&(r=!0,i=o.slice(s+1,s+1+Ht.length).join("")===Ht),r){i?u===co&&(r=!1,i=!1):u===Di&&(r=!1);continue}a+=c,a===n&&s<o.length-1&&(e.push(""),a=0)}!a&&e.at(-1).length>0&&e.length>1&&(e[e.length-2]+=e.pop())},Su=e=>{let t=e.split(" "),n=t.length;for(;n>0&&!(Be(t[n-1])>0);)n--;return n===t.length?e:t.slice(0,n).join(" ")+t.slice(n).join("")},Pu=(e,t,n={})=>{if(n.trim!==!1&&e.trim()==="")return"";let o="",r,i,a=Bu(e),s=[""];for(let[d,l]of e.split(" ").entries()){n.trim!==!1&&(s[s.length-1]=s.at(-1).trimStart());let f=Be(s.at(-1));if(d!==0&&(f>=t&&(n.wordWrap===!1||n.trim===!1)&&(s.push(""),f=0),(f>0||n.trim===!1)&&(s[s.length-1]+=" ",f++)),n.hard&&a[d]>t){let D=t-f,A=1+Math.floor((a[d]-D-1)/t);Math.floor((a[d]-1)/t)<A&&s.push(""),uo(s,l,t);continue}if(f+a[d]>t&&f>0&&a[d]>0){if(n.wordWrap===!1&&f<t){uo(s,l,t);continue}s.push("")}if(f+a[d]>t&&n.wordWrap===!1){uo(s,l,t);continue}s[s.length-1]+=l}n.trim!==!1&&(s=s.map(d=>Su(d)));let u=s.join(`
73
+ `)}};Rt.paths=[["-v"],["--version"]];Zn.VersionCommand=Rt});var Rr=x(Ie=>{"use strict";Object.defineProperty(Ie,"__esModule",{value:!0});var La=Pr(),Ga=Or(),Ha=Tr(),Ua=Ir();Ie.DefinitionsCommand=La.DefinitionsCommand;Ie.HelpCommand=Ga.HelpCommand;Ie.TokensCommand=Ha.TokensCommand;Ie.VersionCommand=Ua.VersionCommand});var Nr=x(Xn=>{"use strict";Object.defineProperty(Xn,"__esModule",{value:!0});var Jn=ie();function za(e,t,n){let[o,r]=Jn.rerouteArguments(t,n??{}),{arity:i=1}=r,a=e.split(","),s=new Set(a);return Jn.makeCommandOption({definition(u){u.addOption({names:a,arity:i,hidden:r?.hidden,description:r?.description,required:r.required})},transformer(u,c,p){let d,l=typeof o<"u"?[...o]:void 0;for(let{name:f,value:D}of p.options)s.has(f)&&(d=f,l=l??[],l.push(D));return typeof l<"u"?Jn.applyValidator(d??c,l,r.validator):l}})}Xn.Array=za});var Mr=x(_n=>{"use strict";Object.defineProperty(_n,"__esModule",{value:!0});var jr=ie();function qa(e,t,n){let[o,r]=jr.rerouteArguments(t,n??{}),i=e.split(","),a=new Set(i);return jr.makeCommandOption({definition(s){s.addOption({names:i,allowBinding:!1,arity:0,hidden:r.hidden,description:r.description,required:r.required})},transformer(s,u,c){let p=o;for(let{name:d,value:l}of c.options)a.has(d)&&(p=l);return p}})}_n.Boolean=qa});var Gr=x($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});var Lr=ie();function Ka(e,t,n){let[o,r]=Lr.rerouteArguments(t,n??{}),i=e.split(","),a=new Set(i);return Lr.makeCommandOption({definition(s){s.addOption({names:i,allowBinding:!1,arity:0,hidden:r.hidden,description:r.description,required:r.required})},transformer(s,u,c){let p=o;for(let{name:d,value:l}of c.options)a.has(d)&&(p??(p=0),l?p+=1:p=0);return p}})}$n.Counter=Ka});var Hr=x(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});var Ya=Bt(),Qa=ie();function Wa(e={}){return Qa.makeCommandOption({definition(t,n){var o;t.addRest({name:(o=e.name)!==null&&o!==void 0?o:n,required:e.required})},transformer(t,n,o){let r=a=>{let s=o.positionals[a];return s.extra===Ya.NoLimits||s.extra===!1&&a<t.arity.leading.length},i=0;for(;i<o.positionals.length&&r(i);)i+=1;return o.positionals.splice(0,i).map(({value:a})=>a)}})}eo.Rest=Wa});var Ur=x(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});var Va=Bt(),Xe=ie();function Za(e,t,n){let[o,r]=Xe.rerouteArguments(t,n??{}),{arity:i=1}=r,a=e.split(","),s=new Set(a);return Xe.makeCommandOption({definition(u){u.addOption({names:a,arity:r.tolerateBoolean?0:i,hidden:r.hidden,description:r.description,required:r.required})},transformer(u,c,p,d){let l,f=o;typeof r.env<"u"&&d.env[r.env]&&(l=r.env,f=d.env[r.env]);for(let{name:D,value:A}of p.options)s.has(D)&&(l=D,f=A);return typeof f=="string"?Xe.applyValidator(l??c,f,r.validator):f}})}function Ja(e={}){let{required:t=!0}=e;return Xe.makeCommandOption({definition(n,o){var r;n.addPositional({name:(r=e.name)!==null&&r!==void 0?r:o,required:e.required})},transformer(n,o,r){var i;for(let a=0;a<r.positionals.length;++a){if(r.positionals[a].extra===Va.NoLimits||t&&r.positionals[a].extra===!0||!t&&r.positionals[a].extra===!1)continue;let[s]=r.positionals.splice(a,1);return Xe.applyValidator((i=e.name)!==null&&i!==void 0?i:o,s.value,e.validator)}}})}function Xa(e,...t){return typeof e=="string"?Za(e,...t):Ja(e)}to.String=Xa});var zr=x(H=>{"use strict";Object.defineProperty(H,"__esModule",{value:!0});var Re=ie(),_a=Wn(),$a=Nr(),eu=Mr(),tu=Gr(),nu=Hr(),ou=Ur();H.applyValidator=Re.applyValidator;H.cleanValidationError=Re.cleanValidationError;H.formatError=Re.formatError;H.isOptionSymbol=Re.isOptionSymbol;H.makeCommandOption=Re.makeCommandOption;H.rerouteArguments=Re.rerouteArguments;H.Proxy=_a.Proxy;H.Array=$a.Array;H.Boolean=eu.Boolean;H.Counter=tu.Counter;H.Rest=nu.Rest;H.String=ou.String});var oo=x(ee=>{"use strict";Object.defineProperty(ee,"__esModule",{value:!0});var ru=yt(),iu=In(),su=ye(),no=Sr(),au=Rr(),uu=zr();ee.UsageError=ru.UsageError;ee.formatMarkdownish=iu.formatMarkdownish;ee.Command=su.Command;ee.Cli=no.Cli;ee.run=no.run;ee.runExit=no.runExit;ee.Builtins=au;ee.Option=uu});var $r=x((up,_r)=>{"use strict";_r.exports=mu;function gu(e){let t={defaultWidth:0,output:process.stdout,tty:require("tty")};return e?(Object.keys(t).forEach(function(n){e[n]||(e[n]=t[n])}),e):t}function mu(e){let t=gu(e);if(t.output.getWindowSize)return t.output.getWindowSize()[0]||t.defaultWidth;if(t.tty.getWindowSize)return t.tty.getWindowSize()[1]||t.defaultWidth;if(t.output.columns)return t.output.columns;if(process.env.CLI_WIDTH){let n=parseInt(process.env.CLI_WIDTH,10);if(!isNaN(n)&&n!==0)return n}return t.defaultWidth}});var ii=x((gp,ri)=>{ri.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});var mi=x((Ip,gi)=>{var Tu=require("stream"),fo=class extends Tu{#n=null;constructor(t={}){super(t),this.writable=this.readable=!0,this.muted=!1,this.on("pipe",this._onpipe),this.replace=t.replace,this._prompt=t.prompt||null,this._hadControl=!1}#t(t,n){return this._dest?this._dest[t]:this._src?this._src[t]:n}#e(t,...n){typeof this._dest?.[t]=="function"&&this._dest[t](...n),typeof this._src?.[t]=="function"&&this._src[t](...n)}get isTTY(){return this.#n!==null?this.#n:this.#t("isTTY",!1)}set isTTY(t){this.#n=t}get rows(){return this.#t("rows")}get columns(){return this.#t("columns")}mute(){this.muted=!0}unmute(){this.muted=!1}_onpipe(t){this._src=t}pipe(t,n){return this._dest=t,super.pipe(t,n)}pause(){if(this._src)return this._src.pause()}resume(){if(this._src)return this._src.resume()}write(t){if(this.muted){if(!this.replace)return!0;if(t.match(/^\u001b/))return t.indexOf(this._prompt)===0&&(t=t.slice(this._prompt.length),t=t.replace(/./g,this.replace),t=this._prompt+t),this._hadControl=!0,this.emit("data",t);this._prompt&&this._hadControl&&t.indexOf(this._prompt)===0&&(this._hadControl=!1,this.emit("data",this._prompt),t=t.slice(this._prompt.length)),t=t.toString().replace(/./g,this.replace)}this.emit("data",t)}end(t){this.muted&&(t&&this.replace?t=t.toString().replace(/./g,this.replace):t=null),t&&this.emit("data",t),this.emit("end")}destroy(...t){return this.#e("destroy",...t)}destroySoon(...t){return this.#e("destroySoon",...t)}close(...t){return this.#e("close",...t)}};gi.exports=fo});var ht=M(oo());var _e=(e,t=[])=>e.name==="up"||t.includes("vim")&&e.name==="k"||t.includes("emacs")&&e.ctrl&&e.name==="p",Nt=(e,t=[])=>e.name==="down"||t.includes("vim")&&e.name==="j"||t.includes("emacs")&&e.ctrl&&e.name==="n";var $e=e=>e.name==="backspace",et=e=>e.name==="tab",ro=e=>"1234567890".includes(e.name),se=e=>e.name==="enter"||e.name==="return";var jt=class extends Error{name="AbortPromptError";message="Prompt was aborted";constructor(t){super(),this.cause=t?.cause}},Mt=class extends Error{name="CancelPromptError";message="Prompt was canceled"},tt=class extends Error{name="ExitPromptError"},Lt=class extends Error{name="HookError"},Ne=class extends Error{name="ValidationError"};var Qr=require("node:async_hooks");var Gt=require("node:async_hooks");var qr=new Gt.AsyncLocalStorage;function cu(e){return{rl:e,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}function Kr(e,t){let n=cu(e);return qr.run(n,()=>{function o(r){n.handleChange=()=>{n.index=0,r()},n.handleChange()}return t(o)})}function ve(){let e=qr.getStore();if(!e)throw new Lt("[Inquirer] Hook functions can only be called from within a prompt");return e}function io(){return ve().rl}function so(e){let t=(...n)=>{let o=ve(),r=!1,i=o.handleChange;o.handleChange=()=>{r=!0};let a=e(...n);return r&&i(),o.handleChange=i,a};return Gt.AsyncResource.bind(t)}function je(e){let t=ve(),{index:n}=t,o={get(){return t.hooks[n]},set(i){t.hooks[n]=i},initialized:n in t.hooks},r=e(o);return t.index++,r}function Yr(){ve().handleChange()}var ke={queue(e){let t=ve(),{index:n}=t;t.hooksEffect.push(()=>{t.hooksCleanup[n]?.();let o=e(io());if(o!=null&&typeof o!="function")throw new Ne("useEffect return value must be a cleanup function or nothing.");t.hooksCleanup[n]=o})},run(){let e=ve();so(()=>{e.hooksEffect.forEach(t=>{t()}),e.hooksEffect.length=0})()},clearAll(){let e=ve();e.hooksCleanup.forEach(t=>{t?.()}),e.hooksEffect.length=0,e.hooksCleanup.length=0}};function I(e){return je(t=>{let n=Qr.AsyncResource.bind(function(i){t.get()!==i&&(t.set(i),Yr())});if(t.initialized)return[t.get(),n];let o=typeof e=="function"?e():e;return t.set(o),[o,n]})}function ae(e,t){je(n=>{let o=n.get();(!Array.isArray(o)||t.some((i,a)=>!Object.is(i,o[a])))&&ke.queue(e),n.set(t)})}var Q=require("node:util");var V=M(require("node:process"),1);function du(){return V.default.platform!=="win32"?V.default.env.TERM!=="linux":!!V.default.env.WT_SESSION||!!V.default.env.TERMINUS_SUBLIME||V.default.env.ConEmuTask==="{cmd::Cmder}"||V.default.env.TERM_PROGRAM==="Terminus-Sublime"||V.default.env.TERM_PROGRAM==="vscode"||V.default.env.TERM==="xterm-256color"||V.default.env.TERM==="alacritty"||V.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Wr={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},Vr={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},pu={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},lu={...Wr,...Vr},fu={...Wr,...pu},Du=du(),hu=Du?lu:fu,Me=hu,Kd=Object.entries(Vr);var Zr={prefix:{idle:(0,Q.styleText)("blue","?"),done:(0,Q.styleText)("green",Me.tick)},spinner:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"].map(e=>(0,Q.styleText)("yellow",e))},style:{answer:e=>(0,Q.styleText)("cyan",e),message:e=>(0,Q.styleText)("bold",e),error:e=>(0,Q.styleText)("red",`> ${e}`),defaultAnswer:e=>(0,Q.styleText)("dim",`(${e})`),help:e=>(0,Q.styleText)("dim",e),highlight:e=>(0,Q.styleText)("cyan",e),key:e=>(0,Q.styleText)("cyan",(0,Q.styleText)("bold",`<${e}>`))}};function Jr(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function Xr(...e){let t={};for(let n of e)for(let[o,r]of Object.entries(n)){let i=t[o];t[o]=Jr(i)&&Jr(r)?Xr(i,r):r}return t}function Z(...e){let t=[Zr,...e.filter(n=>n!=null)];return Xr(...t)}function ue({status:e="idle",theme:t}){let[n,o]=I(!1),[r,i]=I(0),{prefix:a,spinner:s}=Z(t);return ae(()=>{if(e==="loading"){let c,p=-1,d=setTimeout(()=>{o(!0),c=setInterval(()=>{p=p+1,i(p%s.frames.length)},s.interval)},300);return()=>{clearTimeout(d),clearInterval(c)}}else o(!1)},[e]),n?s.frames[r]:typeof a=="string"?a:a[e==="loading"?"idle":e]??a.idle}function nt(e,t){return je(n=>{let o=n.get();if(!o||o.dependencies.length!==t.length||o.dependencies.some((r,i)=>r!==t[i])){let r=e();return n.set({value:r,dependencies:t}),r}return o.value})}function xe(e){return I({current:e})[0]}function ce(e){let t=xe(e);t.current=e,ae(n=>{let o=!1,r=so((i,a)=>{o||t.current(a,n)});return n.input.on("keypress",r),()=>{o=!0,n.input.removeListener("keypress",r)}},[])}var hi=M($r(),1);function ao({onlyFirst:e=!1}={}){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}var Au=ao();function ot(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(Au,"")}function ei(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function ti(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function ni(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}function yu(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function oi(e,{ambiguousAsWide:t=!1}={}){return yu(e),ti(e)||ni(e)||t&&ei(e)?2:1}var si=M(ii(),1),Fu=new Intl.Segmenter,bu=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function Be(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:n=!0,countAnsiEscapeCodes:o=!1}=t;if(o||(e=ot(e)),e.length===0)return 0;let r=0,i={ambiguousAsWide:!n};for(let{segment:a}of Fu.segment(e)){let s=a.codePointAt(0);if(!(s<=31||s>=127&&s<=159)&&!(s>=8203&&s<=8207||s===65279)&&!(s>=768&&s<=879||s>=6832&&s<=6911||s>=7616&&s<=7679||s>=8400&&s<=8447||s>=65056&&s<=65071)&&!(s>=55296&&s<=57343)&&!(s>=65024&&s<=65039)&&!bu.test(a)){if((0,si.default)().test(a)){r+=2;continue}r+=oi(s,i)}}return r}var ai=(e=0)=>t=>`\x1B[${t+e}m`,ui=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,ci=(e=0)=>(t,n,o)=>`\x1B[${38+e};2;${t};${n};${o}m`,S={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},Fp=Object.keys(S.modifier),Eu=Object.keys(S.color),wu=Object.keys(S.bgColor),bp=[...Eu,...wu];function Cu(){let e=new Map;for(let[t,n]of Object.entries(S)){for(let[o,r]of Object.entries(n))S[o]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},n[o]=S[o],e.set(r[0],r[1]);Object.defineProperty(S,t,{value:n,enumerable:!1})}return Object.defineProperty(S,"codes",{value:e,enumerable:!1}),S.color.close="\x1B[39m",S.bgColor.close="\x1B[49m",S.color.ansi=ai(),S.color.ansi256=ui(),S.color.ansi16m=ci(),S.bgColor.ansi=ai(10),S.bgColor.ansi256=ui(10),S.bgColor.ansi16m=ci(10),Object.defineProperties(S,{rgbToAnsi256:{value:(t,n,o)=>t===n&&n===o?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(o/255*5),enumerable:!1},hexToRgb:{value:t=>{let n=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!n)return[0,0,0];let[o]=n;o.length===3&&(o=[...o].map(i=>i+i).join(""));let r=Number.parseInt(o,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:t=>S.rgbToAnsi256(...S.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value:t=>{if(t<8)return 30+t;if(t<16)return 90+(t-8);let n,o,r;if(t>=232)n=((t-232)*10+8)/255,o=n,r=n;else{t-=16;let s=t%36;n=Math.floor(t/36)/5,o=Math.floor(s/6)/5,r=s%6/5}let i=Math.max(n,o,r)*2;if(i===0)return 30;let a=30+(Math.round(r)<<2|Math.round(o)<<1|Math.round(n));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(t,n,o)=>S.ansi256ToAnsi(S.rgbToAnsi256(t,n,o)),enumerable:!1},hexToAnsi:{value:t=>S.ansi256ToAnsi(S.hexToAnsi256(t)),enumerable:!1}}),S}var vu=Cu(),di=vu;var Ut=new Set(["\x1B","\x9B"]),ku=39,co="\x07",fi="[",xu="]",Di="m",Ht=`${xu}8;;`,pi=e=>`${Ut.values().next().value}${fi}${e}${Di}`,li=e=>`${Ut.values().next().value}${Ht}${e}${co}`,Bu=e=>e.split(" ").map(t=>Be(t)),uo=(e,t,n)=>{let o=[...t],r=!1,i=!1,a=Be(ot(e.at(-1)));for(let[s,u]of o.entries()){let c=Be(u);if(a+c<=n?e[e.length-1]+=u:(e.push(u),a=0),Ut.has(u)&&(r=!0,i=o.slice(s+1,s+1+Ht.length).join("")===Ht),r){i?u===co&&(r=!1,i=!1):u===Di&&(r=!1);continue}a+=c,a===n&&s<o.length-1&&(e.push(""),a=0)}!a&&e.at(-1).length>0&&e.length>1&&(e[e.length-2]+=e.pop())},Su=e=>{let t=e.split(" "),n=t.length;for(;n>0&&!(Be(t[n-1])>0);)n--;return n===t.length?e:t.slice(0,n).join(" ")+t.slice(n).join("")},Pu=(e,t,n={})=>{if(n.trim!==!1&&e.trim()==="")return"";let o="",r,i,a=Bu(e),s=[""];for(let[d,l]of e.split(" ").entries()){n.trim!==!1&&(s[s.length-1]=s.at(-1).trimStart());let f=Be(s.at(-1));if(d!==0&&(f>=t&&(n.wordWrap===!1||n.trim===!1)&&(s.push(""),f=0),(f>0||n.trim===!1)&&(s[s.length-1]+=" ",f++)),n.hard&&a[d]>t){let D=t-f,A=1+Math.floor((a[d]-D-1)/t);Math.floor((a[d]-1)/t)<A&&s.push(""),uo(s,l,t);continue}if(f+a[d]>t&&f>0&&a[d]>0){if(n.wordWrap===!1&&f<t){uo(s,l,t);continue}s.push("")}if(f+a[d]>t&&n.wordWrap===!1){uo(s,l,t);continue}s[s.length-1]+=l}n.trim!==!1&&(s=s.map(d=>Su(d)));let u=s.join(`
74
74
  `),c=[...u],p=0;for(let[d,l]of c.entries()){if(o+=l,Ut.has(l)){let{groups:D}=new RegExp(`(?:\\${fi}(?<code>\\d+)m|\\${Ht}(?<uri>.*)${co})`).exec(u.slice(p))||{groups:{}};if(D.code!==void 0){let A=Number.parseFloat(D.code);r=A===ku?void 0:A}else D.uri!==void 0&&(i=D.uri.length===0?void 0:D.uri)}let f=di.codes.get(Number(r));c[d+1]===`
75
75
  `?(i&&(o+=li("")),r&&f&&(o+=pi(f))):l===`
76
76
  `&&(r&&f&&(o+=pi(r)),i&&(o+=li(i))),p+=l.length}return o};function po(e,t,n){return String(e).normalize().replaceAll(`\r
@@ -80,15 +80,15 @@ ${t.map(n=>`
80
80
  `)}function rt(e,t){return e.split(`
81
81
  `).flatMap(n=>po(n,t,{trim:!1,hard:!0}).split(`
82
82
  `).map(o=>o.trimEnd())).join(`
83
- `)}function zt(){return(0,hi.default)({defaultWidth:80,output:io().output})}function Tu({active:e,renderedItems:t,pageSize:n,loop:o}){let r=xe({lastPointer:e,lastActive:void 0}),{lastPointer:i,lastActive:a}=r.current,s=Math.floor(n/2),u=t.reduce((d,l)=>d+l.length,0),c=t.slice(0,e).reduce((d,l)=>d+l.length,0),p=c;if(u>n)if(o)p=i,a!=null&&a<e&&e-a<n&&(p=Math.min(s,Math.abs(e-a)===1?Math.min(i+(t[a]?.length??0),Math.max(c,i)):i+e-a));else{let d=t.slice(e).reduce((l,f)=>l+f.length,0);p=d<n-s?n-d:Math.min(c,s)}return r.current.lastPointer=p,r.current.lastActive=e,p}function lo({items:e,active:t,renderItem:n,pageSize:o,loop:r=!0}){let i=zt(),a=E=>(E%e.length+e.length)%e.length,s=e.map((E,b)=>E==null?[]:rt(n({item:E,index:b,isActive:b===t}),i).split(`
84
- `)),u=s.reduce((E,b)=>E+b.length,0),c=E=>s[E]??[],p=Tu({active:t,renderedItems:s,pageSize:o,loop:r}),d=c(t).slice(0,o),l=p+d.length<=o?p:o-d.length,f=Array.from({length:o});f.splice(l,d.length,...d);let D=new Set([t]),A=l+d.length,y=a(t+1);for(;A<o&&!D.has(y)&&(r&&u>o?y!==t:y>t);){let b=c(y).slice(0,o-A);f.splice(A,b.length,...b),D.add(y),A+=b.length,y=a(y+1)}for(A=l-1,y=a(t-1);A>=0&&!D.has(y)&&(r&&u>o?y!==t:y<t);){let E=c(y),b=E.slice(Math.max(0,E.length-A-1));f.splice(A-b.length+1,b.length,...b),D.add(y),A-=b.length,y=a(y-1)}return f.filter(E=>typeof E=="string").join(`
85
- `)}var wi=M(require("node:readline"),1),Ci=require("node:async_hooks"),vi=M(mi(),1);var Se=[];Se.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Se.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Se.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var qt=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",Do=Symbol.for("signal-exit emitter"),ho=globalThis,Iu=Object.defineProperty.bind(Object),go=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(ho[Do])return ho[Do];Iu(ho,Do,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(t,n){this.listeners[t].push(n)}removeListener(t,n){let o=this.listeners[t],r=o.indexOf(n);r!==-1&&(r===0&&o.length===1?o.length=0:o.splice(r,1))}emit(t,n,o){if(this.emitted[t])return!1;this.emitted[t]=!0;let r=!1;for(let i of this.listeners[t])r=i(n,o)===!0||r;return t==="exit"&&(r=this.emit("afterExit",n,o)||r),r}},Kt=class{},Ru=e=>({onExit(t,n){return e.onExit(t,n)},load(){return e.load()},unload(){return e.unload()}}),mo=class extends Kt{onExit(){return()=>{}}load(){}unload(){}},Ao=class extends Kt{#n=yo.platform==="win32"?"SIGINT":"SIGHUP";#t=new go;#e;#i;#s;#r={};#o=!1;constructor(t){super(),this.#e=t,this.#r={};for(let n of Se)this.#r[n]=()=>{let o=this.#e.listeners(n),{count:r}=this.#t,i=t;if(typeof i.__signal_exit_emitter__=="object"&&typeof i.__signal_exit_emitter__.count=="number"&&(r+=i.__signal_exit_emitter__.count),o.length===r){this.unload();let a=this.#t.emit("exit",null,n),s=n==="SIGHUP"?this.#n:n;a||t.kill(t.pid,s)}};this.#s=t.reallyExit,this.#i=t.emit}onExit(t,n){if(!qt(this.#e))return()=>{};this.#o===!1&&this.load();let o=n?.alwaysLast?"afterExit":"exit";return this.#t.on(o,t),()=>{this.#t.removeListener(o,t),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#t.count+=1;for(let t of Se)try{let n=this.#r[t];n&&this.#e.on(t,n)}catch{}this.#e.emit=(t,...n)=>this.#u(t,...n),this.#e.reallyExit=t=>this.#a(t)}}unload(){this.#o&&(this.#o=!1,Se.forEach(t=>{let n=this.#r[t];if(!n)throw new Error("Listener not defined for signal: "+t);try{this.#e.removeListener(t,n)}catch{}}),this.#e.emit=this.#i,this.#e.reallyExit=this.#s,this.#t.count-=1)}#a(t){return qt(this.#e)?(this.#e.exitCode=t||0,this.#t.emit("exit",this.#e.exitCode,null),this.#s.call(this.#e,this.#e.exitCode)):0}#u(t,...n){let o=this.#i;if(t==="exit"&&qt(this.#e)){typeof n[0]=="number"&&(this.#e.exitCode=n[0]);let r=o.call(this.#e,t,...n);return this.#t.emit("exit",this.#e.exitCode,null),r}else return o.call(this.#e,t,...n)}},yo=globalThis.process,{onExit:Ai,load:jp,unload:Mp}=Ru(qt(yo)?new Ao(yo):new mo);var bi=require("node:util");var Yt="\x1B[?25l",Fi="\x1B[?25h",Fo=(e=1)=>e>0?`\x1B[${e}A`:"",Eo=(e=1)=>e>0?`\x1B[${e}B`:"",bo=(e,t)=>typeof t=="number"&&!Number.isNaN(t)?`\x1B[${t+1};${e+1}H`:`\x1B[${e+1}G`,yi="\x1B[2K",wo=e=>e>0?(yi+Fo(1)).repeat(e-1)+yi+"\x1B[G":"";var Ei=e=>e.split(`
83
+ `)}function zt(){return(0,hi.default)({defaultWidth:80,output:io().output})}function Ou({active:e,renderedItems:t,pageSize:n,loop:o}){let r=xe({lastPointer:e,lastActive:void 0}),{lastPointer:i,lastActive:a}=r.current,s=Math.floor(n/2),u=t.reduce((d,l)=>d+l.length,0),c=t.slice(0,e).reduce((d,l)=>d+l.length,0),p=c;if(u>n)if(o)p=i,a!=null&&a<e&&e-a<n&&(p=Math.min(s,Math.abs(e-a)===1?Math.min(i+(t[a]?.length??0),Math.max(c,i)):i+e-a));else{let d=t.slice(e).reduce((l,f)=>l+f.length,0);p=d<n-s?n-d:Math.min(c,s)}return r.current.lastPointer=p,r.current.lastActive=e,p}function lo({items:e,active:t,renderItem:n,pageSize:o,loop:r=!0}){let i=zt(),a=b=>(b%e.length+e.length)%e.length,s=e.map((b,E)=>b==null?[]:rt(n({item:b,index:E,isActive:E===t}),i).split(`
84
+ `)),u=s.reduce((b,E)=>b+E.length,0),c=b=>s[b]??[],p=Ou({active:t,renderedItems:s,pageSize:o,loop:r}),d=c(t).slice(0,o),l=p+d.length<=o?p:o-d.length,f=Array.from({length:o});f.splice(l,d.length,...d);let D=new Set([t]),A=l+d.length,y=a(t+1);for(;A<o&&!D.has(y)&&(r&&u>o?y!==t:y>t);){let E=c(y).slice(0,o-A);f.splice(A,E.length,...E),D.add(y),A+=E.length,y=a(y+1)}for(A=l-1,y=a(t-1);A>=0&&!D.has(y)&&(r&&u>o?y!==t:y<t);){let b=c(y),E=b.slice(Math.max(0,b.length-A-1));f.splice(A-E.length+1,E.length,...E),D.add(y),A-=E.length,y=a(y-1)}return f.filter(b=>typeof b=="string").join(`
85
+ `)}var wi=M(require("node:readline"),1),Ci=require("node:async_hooks"),vi=M(mi(),1);var Se=[];Se.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Se.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Se.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var qt=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",Do=Symbol.for("signal-exit emitter"),ho=globalThis,Iu=Object.defineProperty.bind(Object),go=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(ho[Do])return ho[Do];Iu(ho,Do,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(t,n){this.listeners[t].push(n)}removeListener(t,n){let o=this.listeners[t],r=o.indexOf(n);r!==-1&&(r===0&&o.length===1?o.length=0:o.splice(r,1))}emit(t,n,o){if(this.emitted[t])return!1;this.emitted[t]=!0;let r=!1;for(let i of this.listeners[t])r=i(n,o)===!0||r;return t==="exit"&&(r=this.emit("afterExit",n,o)||r),r}},Kt=class{},Ru=e=>({onExit(t,n){return e.onExit(t,n)},load(){return e.load()},unload(){return e.unload()}}),mo=class extends Kt{onExit(){return()=>{}}load(){}unload(){}},Ao=class extends Kt{#n=yo.platform==="win32"?"SIGINT":"SIGHUP";#t=new go;#e;#i;#s;#r={};#o=!1;constructor(t){super(),this.#e=t,this.#r={};for(let n of Se)this.#r[n]=()=>{let o=this.#e.listeners(n),{count:r}=this.#t,i=t;if(typeof i.__signal_exit_emitter__=="object"&&typeof i.__signal_exit_emitter__.count=="number"&&(r+=i.__signal_exit_emitter__.count),o.length===r){this.unload();let a=this.#t.emit("exit",null,n),s=n==="SIGHUP"?this.#n:n;a||t.kill(t.pid,s)}};this.#s=t.reallyExit,this.#i=t.emit}onExit(t,n){if(!qt(this.#e))return()=>{};this.#o===!1&&this.load();let o=n?.alwaysLast?"afterExit":"exit";return this.#t.on(o,t),()=>{this.#t.removeListener(o,t),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#t.count+=1;for(let t of Se)try{let n=this.#r[t];n&&this.#e.on(t,n)}catch{}this.#e.emit=(t,...n)=>this.#u(t,...n),this.#e.reallyExit=t=>this.#a(t)}}unload(){this.#o&&(this.#o=!1,Se.forEach(t=>{let n=this.#r[t];if(!n)throw new Error("Listener not defined for signal: "+t);try{this.#e.removeListener(t,n)}catch{}}),this.#e.emit=this.#i,this.#e.reallyExit=this.#s,this.#t.count-=1)}#a(t){return qt(this.#e)?(this.#e.exitCode=t||0,this.#t.emit("exit",this.#e.exitCode,null),this.#s.call(this.#e,this.#e.exitCode)):0}#u(t,...n){let o=this.#i;if(t==="exit"&&qt(this.#e)){typeof n[0]=="number"&&(this.#e.exitCode=n[0]);let r=o.call(this.#e,t,...n);return this.#t.emit("exit",this.#e.exitCode,null),r}else return o.call(this.#e,t,...n)}},yo=globalThis.process,{onExit:Ai,load:jp,unload:Mp}=Ru(qt(yo)?new Ao(yo):new mo);var Ei=require("node:util");var Yt="\x1B[?25l",Fi="\x1B[?25h",Fo=(e=1)=>e>0?`\x1B[${e}A`:"",bo=(e=1)=>e>0?`\x1B[${e}B`:"",Eo=(e,t)=>typeof t=="number"&&!Number.isNaN(t)?`\x1B[${t+1};${e+1}H`:`\x1B[${e+1}G`,yi="\x1B[2K",wo=e=>e>0?(yi+Fo(1)).repeat(e-1)+yi+"\x1B[G":"";var bi=e=>e.split(`
86
86
  `).length,Nu=e=>e.split(`
87
- `).pop()??"",it=class{height=0;extraLinesUnderPrompt=0;cursorPos;rl;constructor(t){this.rl=t,this.cursorPos=t.getCursorPos()}write(t){this.rl.output.unmute(),this.rl.output.write(t),this.rl.output.mute()}render(t,n=""){let o=Nu(t),r=(0,bi.stripVTControlCharacters)(o),i=r;this.rl.line.length>0&&(i=i.slice(0,-this.rl.line.length)),this.rl.setPrompt(i),this.cursorPos=this.rl.getCursorPos();let a=zt();t=rt(t,a),n=rt(n,a),r.length%a===0&&(t+=`
87
+ `).pop()??"",it=class{height=0;extraLinesUnderPrompt=0;cursorPos;rl;constructor(t){this.rl=t,this.cursorPos=t.getCursorPos()}write(t){this.rl.output.unmute(),this.rl.output.write(t),this.rl.output.mute()}render(t,n=""){let o=Nu(t),r=(0,Ei.stripVTControlCharacters)(o),i=r;this.rl.line.length>0&&(i=i.slice(0,-this.rl.line.length)),this.rl.setPrompt(i),this.cursorPos=this.rl.getCursorPos();let a=zt();t=rt(t,a),n=rt(n,a),r.length%a===0&&(t+=`
88
88
  `);let s=t+(n?`
89
- `+n:""),c=Math.floor(r.length/a)-this.cursorPos.rows+(n?Ei(n):0);c>0&&(s+=Fo(c)),s+=bo(this.cursorPos.cols),this.write(Eo(this.extraLinesUnderPrompt)+wo(this.height)+s),this.extraLinesUnderPrompt=c,this.height=Ei(s)}checkCursorPos(){let t=this.rl.getCursorPos();t.cols!==this.cursorPos.cols&&(this.write(bo(t.cols)),this.cursorPos=t)}done({clearContent:t}){this.rl.setPrompt("");let n=Eo(this.extraLinesUnderPrompt);n+=t?wo(this.height):`
90
- `,n+=Fi,this.write(n),this.rl.close()}};var Qt=class extends Promise{static withResolver(){let t,n;return{promise:new Promise((r,i)=>{t=r,n=i}),resolve:t,reject:n}}};function ju(){let e=Error.prepareStackTrace,t=[];try{Error.prepareStackTrace=(n,o)=>{let r=o.slice(1);return t=r,r},new Error().stack}catch{return t}return Error.prepareStackTrace=e,t}function de(e){let t=ju();return(o,r={})=>{let{input:i=process.stdin,signal:a}=r,s=new Set,u=new vi.default;u.pipe(r.output??process.stdout);let c=wi.createInterface({terminal:!0,input:i,output:u}),p=new it(c),{promise:d,resolve:l,reject:f}=Qt.withResolver(),D=()=>f(new Mt);if(a){let E=()=>f(new jt({cause:a.reason}));if(a.aborted)return E(),Object.assign(d,{cancel:D});a.addEventListener("abort",E),s.add(()=>a.removeEventListener("abort",E))}s.add(Ai((E,b)=>{f(new tt(`User force closed the prompt with ${E} ${b}`))}));let A=()=>f(new tt("User force closed the prompt with SIGINT"));c.on("SIGINT",A),s.add(()=>c.removeListener("SIGINT",A));let y=()=>p.checkCursorPos();return c.input.on("keypress",y),s.add(()=>c.input.removeListener("keypress",y)),Kr(c,E=>{let b=Ci.AsyncResource.bind(()=>ke.clearAll());return c.on("close",b),s.add(()=>c.removeListener("close",b)),E(()=>{try{let T=e(o,gt=>{setImmediate(()=>l(gt))});if(T===void 0){let gt=t[1]?.getFileName();throw new Error(`Prompt functions must return a string.
91
- at ${gt}`)}let[X,re]=typeof T=="string"?[T]:T;p.render(X,re),ke.run()}catch(T){f(T)}}),Object.assign(d.then(T=>(ke.clearAll(),T),T=>{throw ke.clearAll(),T}).finally(()=>{s.forEach(T=>T()),p.done({clearContent:!!r.clearPromptOnDone}),u.end()}).then(()=>d),{cancel:D})})}}var ki=require("node:util");var pe=class{separator=(0,ki.styleText)("dim",Array.from({length:15}).join(Me.line));type="separator";constructor(t){t&&(this.separator=t)}static isSeparator(t){return!!(t&&typeof t=="object"&&"type"in t&&t.type==="separator")}};function xi(e,t){let n=t!==!1;return/^(y|yes)/i.test(e)?n=!0:/^(n|no)/i.test(e)&&(n=!1),n}function Bi(e){return e?"Yes":"No"}var le=de((e,t)=>{let{transformer:n=Bi}=e,[o,r]=I("idle"),[i,a]=I(""),s=Z(e.theme),u=ue({status:o,theme:s});ce((l,f)=>{if(o==="idle")if(se(l)){let D=xi(i,e.default);a(n(D)),r("done"),t(D)}else if(et(l)){let D=Bi(!xi(i,e.default));f.clearLine(0),f.write(D),a(D)}else a(f.line)});let c=i,p="";o==="done"?c=s.style.answer(i):p=` ${s.style.defaultAnswer(e.default===!1?"y/N":"Y/n")}`;let d=s.style.message(e.message,o);return`${u} ${d}${p} ${c}`});var Mu={validationFailureMode:"keep"},te=de((e,t)=>{let{prefill:n="tab"}=e,o=Z(Mu,e.theme),[r,i]=I("idle"),[a="",s]=I(e.default),[u,c]=I(),[p,d]=I(""),l=ue({status:r,theme:o});async function f(b){let{required:T,pattern:X,patternError:re="Invalid input"}=e;return T&&!b?"You must provide a value":X&&!X.test(b)?re:typeof e.validate=="function"?await e.validate(b)||"You must provide a valid value":!0}ce(async(b,T)=>{if(r==="idle")if(se(b)){let X=p||a;i("loading");let re=await f(X);re===!0?(d(X),i("done"),t(X)):(o.validationFailureMode==="clear"?d(""):T.write(p),c(re),i("idle"))}else $e(b)&&!p?s(void 0):et(b)&&!p?(s(void 0),T.clearLine(0),T.write(a),d(a)):(d(T.line),c(void 0))}),ae(b=>{n==="editable"&&a&&(b.write(a),d(a))},[]);let D=o.style.message(e.message,r),A=p;typeof e.transformer=="function"?A=e.transformer(p,{isFinal:r==="done"}):r==="done"&&(A=o.style.answer(p));let y;a&&r!=="done"&&!p&&(y=o.style.defaultAnswer(a));let E="";return u&&(E=o.style.error(u)),[[l,D,y,A].filter(b=>b!==void 0).join(" "),E]});var Wt=de((e,t)=>{let{validate:n=()=>!0}=e,o=Z(e.theme),[r,i]=I("idle"),[a,s]=I(),[u,c]=I(""),p=ue({status:r,theme:o});ce(async(A,y)=>{if(r==="idle")if(se(A)){let E=u;i("loading");let b=await n(E);b===!0?(c(E),i("done"),t(E)):(y.write(u),s(b||"You must provide a valid value"),i("idle"))}else c(y.line),s(void 0)});let d=o.style.message(e.message,r),l="",f;e.mask?l=(typeof e.mask=="string"?e.mask:"*").repeat(u.length):r!=="done"&&(f=`${o.style.help("[input is masked]")}${Yt}`),r==="done"&&(l=o.style.answer(l));let D="";return a&&(D=o.style.error(a)),[[p,d,e.mask?l:f].join(" "),D]});var Ge=require("node:util");var Lu={icon:{cursor:Me.pointer},style:{disabled:e=>(0,Ge.styleText)("dim",`- ${e}`),description:e=>(0,Ge.styleText)("cyan",e),keysHelpTip:e=>e.map(([t,n])=>`${(0,Ge.styleText)("bold",t)} ${(0,Ge.styleText)("dim",n)}`).join((0,Ge.styleText)("dim"," \u2022 "))},indexMode:"hidden",keybindings:[]};function Le(e){return!pe.isSeparator(e)&&!e.disabled}function Gu(e){return e.map(t=>{if(pe.isSeparator(t))return t;if(typeof t!="object"||t===null||!("value"in t)){let r=String(t);return{value:t,name:r,short:r,disabled:!1}}let n=t.name??String(t.value),o={value:t.value,name:n,short:t.short??n,disabled:t.disabled??!1};return t.description&&(o.description=t.description),o})}var He=de((e,t)=>{let{loop:n=!0,pageSize:o=7}=e,r=Z(Lu,e.theme),{keybindings:i}=r,[a,s]=I("idle"),u=ue({status:a,theme:r}),c=xe(),p=!i.includes("vim"),d=nt(()=>Gu(e.choices),[e.choices]),l=nt(()=>{let O=d.findIndex(Le),K=d.findLastIndex(Le);if(O===-1)throw new Ne("[select prompt] No selectable choices. All choices are disabled.");return{first:O,last:K}},[d]),f=nt(()=>"default"in e?d.findIndex(O=>Le(O)&&O.value===e.default):-1,[e.default,d]),[D,A]=I(f===-1?l.first:f),y=d[D];ce((O,K)=>{if(clearTimeout(c.current),se(O))s("done"),t(y.value);else if(_e(O,i)||Nt(O,i)){if(K.clearLine(0),n||_e(O,i)&&D!==l.first||Nt(O,i)&&D!==l.last){let we=_e(O,i)?-1:1,U=D;do U=(U+we+d.length)%d.length;while(!Le(d[U]));A(U)}}else if(ro(O)&&!Number.isNaN(Number(K.line))){let we=Number(K.line)-1,U=-1,he=d.findIndex(Ke=>pe.isSeparator(Ke)?!1:(U++,U===we)),mt=d[he];mt!=null&&Le(mt)&&A(he),c.current=setTimeout(()=>{K.clearLine(0)},700)}else if($e(O))K.clearLine(0);else if(p){let we=K.line.toLowerCase(),U=d.findIndex(he=>pe.isSeparator(he)||!Le(he)?!1:he.name.toLowerCase().startsWith(we));U!==-1&&A(U),c.current=setTimeout(()=>{K.clearLine(0)},700)}}),ae(()=>()=>{clearTimeout(c.current)},[]);let E=r.style.message(e.message,a),b=r.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]),T=0,X=lo({items:d,active:D,renderItem({item:O,isActive:K,index:we}){if(pe.isSeparator(O))return T++,` ${O.separator}`;let U=r.indexMode==="number"?`${we+1-T}. `:"";if(O.disabled){let Ke=typeof O.disabled=="string"?O.disabled:"(disabled)";return r.style.disabled(`${U}${O.name} ${Ke}`)}let he=K?r.style.highlight:Ke=>Ke,mt=K?r.icon.cursor:" ";return he(`${mt} ${U}${O.name}`)},pageSize:o,loop:n});if(a==="done")return[u,E,r.style.answer(y.short)].filter(Boolean).join(" ");let{description:re}=y;return`${[[u,E].filter(Boolean).join(" "),X," ",re?r.style.description(re):"",b].filter(Boolean).join(`
89
+ `+n:""),c=Math.floor(r.length/a)-this.cursorPos.rows+(n?bi(n):0);c>0&&(s+=Fo(c)),s+=Eo(this.cursorPos.cols),this.write(bo(this.extraLinesUnderPrompt)+wo(this.height)+s),this.extraLinesUnderPrompt=c,this.height=bi(s)}checkCursorPos(){let t=this.rl.getCursorPos();t.cols!==this.cursorPos.cols&&(this.write(Eo(t.cols)),this.cursorPos=t)}done({clearContent:t}){this.rl.setPrompt("");let n=bo(this.extraLinesUnderPrompt);n+=t?wo(this.height):`
90
+ `,n+=Fi,this.write(n),this.rl.close()}};var Qt=class extends Promise{static withResolver(){let t,n;return{promise:new Promise((r,i)=>{t=r,n=i}),resolve:t,reject:n}}};function ju(){let e=Error.prepareStackTrace,t=[];try{Error.prepareStackTrace=(n,o)=>{let r=o.slice(1);return t=r,r},new Error().stack}catch{return t}return Error.prepareStackTrace=e,t}function de(e){let t=ju();return(o,r={})=>{let{input:i=process.stdin,signal:a}=r,s=new Set,u=new vi.default;u.pipe(r.output??process.stdout);let c=wi.createInterface({terminal:!0,input:i,output:u}),p=new it(c),{promise:d,resolve:l,reject:f}=Qt.withResolver(),D=()=>f(new Mt);if(a){let b=()=>f(new jt({cause:a.reason}));if(a.aborted)return b(),Object.assign(d,{cancel:D});a.addEventListener("abort",b),s.add(()=>a.removeEventListener("abort",b))}s.add(Ai((b,E)=>{f(new tt(`User force closed the prompt with ${b} ${E}`))}));let A=()=>f(new tt("User force closed the prompt with SIGINT"));c.on("SIGINT",A),s.add(()=>c.removeListener("SIGINT",A));let y=()=>p.checkCursorPos();return c.input.on("keypress",y),s.add(()=>c.input.removeListener("keypress",y)),Kr(c,b=>{let E=Ci.AsyncResource.bind(()=>ke.clearAll());return c.on("close",E),s.add(()=>c.removeListener("close",E)),b(()=>{try{let O=e(o,gt=>{setImmediate(()=>l(gt))});if(O===void 0){let gt=t[1]?.getFileName();throw new Error(`Prompt functions must return a string.
91
+ at ${gt}`)}let[X,re]=typeof O=="string"?[O]:O;p.render(X,re),ke.run()}catch(O){f(O)}}),Object.assign(d.then(O=>(ke.clearAll(),O),O=>{throw ke.clearAll(),O}).finally(()=>{s.forEach(O=>O()),p.done({clearContent:!!r.clearPromptOnDone}),u.end()}).then(()=>d),{cancel:D})})}}var ki=require("node:util");var pe=class{separator=(0,ki.styleText)("dim",Array.from({length:15}).join(Me.line));type="separator";constructor(t){t&&(this.separator=t)}static isSeparator(t){return!!(t&&typeof t=="object"&&"type"in t&&t.type==="separator")}};function xi(e,t){let n=t!==!1;return/^(y|yes)/i.test(e)?n=!0:/^(n|no)/i.test(e)&&(n=!1),n}function Bi(e){return e?"Yes":"No"}var le=de((e,t)=>{let{transformer:n=Bi}=e,[o,r]=I("idle"),[i,a]=I(""),s=Z(e.theme),u=ue({status:o,theme:s});ce((l,f)=>{if(o==="idle")if(se(l)){let D=xi(i,e.default);a(n(D)),r("done"),t(D)}else if(et(l)){let D=Bi(!xi(i,e.default));f.clearLine(0),f.write(D),a(D)}else a(f.line)});let c=i,p="";o==="done"?c=s.style.answer(i):p=` ${s.style.defaultAnswer(e.default===!1?"y/N":"Y/n")}`;let d=s.style.message(e.message,o);return`${u} ${d}${p} ${c}`});var Mu={validationFailureMode:"keep"},te=de((e,t)=>{let{prefill:n="tab"}=e,o=Z(Mu,e.theme),[r,i]=I("idle"),[a="",s]=I(e.default),[u,c]=I(),[p,d]=I(""),l=ue({status:r,theme:o});async function f(E){let{required:O,pattern:X,patternError:re="Invalid input"}=e;return O&&!E?"You must provide a value":X&&!X.test(E)?re:typeof e.validate=="function"?await e.validate(E)||"You must provide a valid value":!0}ce(async(E,O)=>{if(r==="idle")if(se(E)){let X=p||a;i("loading");let re=await f(X);re===!0?(d(X),i("done"),t(X)):(o.validationFailureMode==="clear"?d(""):O.write(p),c(re),i("idle"))}else $e(E)&&!p?s(void 0):et(E)&&!p?(s(void 0),O.clearLine(0),O.write(a),d(a)):(d(O.line),c(void 0))}),ae(E=>{n==="editable"&&a&&(E.write(a),d(a))},[]);let D=o.style.message(e.message,r),A=p;typeof e.transformer=="function"?A=e.transformer(p,{isFinal:r==="done"}):r==="done"&&(A=o.style.answer(p));let y;a&&r!=="done"&&!p&&(y=o.style.defaultAnswer(a));let b="";return u&&(b=o.style.error(u)),[[l,D,y,A].filter(E=>E!==void 0).join(" "),b]});var Wt=de((e,t)=>{let{validate:n=()=>!0}=e,o=Z(e.theme),[r,i]=I("idle"),[a,s]=I(),[u,c]=I(""),p=ue({status:r,theme:o});ce(async(A,y)=>{if(r==="idle")if(se(A)){let b=u;i("loading");let E=await n(b);E===!0?(c(b),i("done"),t(b)):(y.write(u),s(E||"You must provide a valid value"),i("idle"))}else c(y.line),s(void 0)});let d=o.style.message(e.message,r),l="",f;e.mask?l=(typeof e.mask=="string"?e.mask:"*").repeat(u.length):r!=="done"&&(f=`${o.style.help("[input is masked]")}${Yt}`),r==="done"&&(l=o.style.answer(l));let D="";return a&&(D=o.style.error(a)),[[p,d,e.mask?l:f].join(" "),D]});var Ge=require("node:util");var Lu={icon:{cursor:Me.pointer},style:{disabled:e=>(0,Ge.styleText)("dim",`- ${e}`),description:e=>(0,Ge.styleText)("cyan",e),keysHelpTip:e=>e.map(([t,n])=>`${(0,Ge.styleText)("bold",t)} ${(0,Ge.styleText)("dim",n)}`).join((0,Ge.styleText)("dim"," \u2022 "))},indexMode:"hidden",keybindings:[]};function Le(e){return!pe.isSeparator(e)&&!e.disabled}function Gu(e){return e.map(t=>{if(pe.isSeparator(t))return t;if(typeof t!="object"||t===null||!("value"in t)){let r=String(t);return{value:t,name:r,short:r,disabled:!1}}let n=t.name??String(t.value),o={value:t.value,name:n,short:t.short??n,disabled:t.disabled??!1};return t.description&&(o.description=t.description),o})}var He=de((e,t)=>{let{loop:n=!0,pageSize:o=7}=e,r=Z(Lu,e.theme),{keybindings:i}=r,[a,s]=I("idle"),u=ue({status:a,theme:r}),c=xe(),p=!i.includes("vim"),d=nt(()=>Gu(e.choices),[e.choices]),l=nt(()=>{let T=d.findIndex(Le),K=d.findLastIndex(Le);if(T===-1)throw new Ne("[select prompt] No selectable choices. All choices are disabled.");return{first:T,last:K}},[d]),f=nt(()=>"default"in e?d.findIndex(T=>Le(T)&&T.value===e.default):-1,[e.default,d]),[D,A]=I(f===-1?l.first:f),y=d[D];ce((T,K)=>{if(clearTimeout(c.current),se(T))s("done"),t(y.value);else if(_e(T,i)||Nt(T,i)){if(K.clearLine(0),n||_e(T,i)&&D!==l.first||Nt(T,i)&&D!==l.last){let we=_e(T,i)?-1:1,U=D;do U=(U+we+d.length)%d.length;while(!Le(d[U]));A(U)}}else if(ro(T)&&!Number.isNaN(Number(K.line))){let we=Number(K.line)-1,U=-1,he=d.findIndex(Ke=>pe.isSeparator(Ke)?!1:(U++,U===we)),mt=d[he];mt!=null&&Le(mt)&&A(he),c.current=setTimeout(()=>{K.clearLine(0)},700)}else if($e(T))K.clearLine(0);else if(p){let we=K.line.toLowerCase(),U=d.findIndex(he=>pe.isSeparator(he)||!Le(he)?!1:he.name.toLowerCase().startsWith(we));U!==-1&&A(U),c.current=setTimeout(()=>{K.clearLine(0)},700)}}),ae(()=>()=>{clearTimeout(c.current)},[]);let b=r.style.message(e.message,a),E=r.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]),O=0,X=lo({items:d,active:D,renderItem({item:T,isActive:K,index:we}){if(pe.isSeparator(T))return O++,` ${T.separator}`;let U=r.indexMode==="number"?`${we+1-O}. `:"";if(T.disabled){let Ke=typeof T.disabled=="string"?T.disabled:"(disabled)";return r.style.disabled(`${U}${T.name} ${Ke}`)}let he=K?r.style.highlight:Ke=>Ke,mt=K?r.icon.cursor:" ";return he(`${mt} ${U}${T.name}`)},pageSize:o,loop:n});if(a==="done")return[u,b,r.style.answer(y.short)].filter(Boolean).join(" ");let{description:re}=y;return`${[[u,b].filter(Boolean).join(" "),X," ",re?r.style.description(re):"",E].filter(Boolean).join(`
92
92
  `).trimEnd()}${Yt}`});var N=M(oo()),oe=M(require("node:path"));var Ue=require("node:util");var Fe=require("node:util"),fe=e=>(0,Fe.styleText)(["bgMagenta","white","bold"],e),w=e=>(0,Fe.styleText)(["dim"],e),Si=e=>(0,Fe.styleText)(["bold"],e),st=e=>(0,Fe.styleText)(["bold","green"],e),W=e=>(0,Fe.styleText)(["bold","red"],e),P=e=>(0,Fe.styleText)(["bold","cyan"],e),k=e=>(0,Fe.styleText)(["magentaBright","bold"],e);var Pi=`
93
93
  ${fe(" ")}
94
94
  ${fe(" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ")}
@@ -105,7 +105,7 @@ ${fe("
105
105
  ${P("\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551")}
106
106
  ${P("\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551")}
107
107
  ${P("\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D")}
108
- `;function Ti(e,t=2,n=1){let r=Math.max(...e.map(s=>(0,Ue.stripVTControlCharacters)(s).length))+t*2,i=`|${" ".repeat(r+2)}|`,a=[` .\xB7${"\xAF".repeat(r-4)}\xB7. `];for(let s=0;s<n-1;s++)a.push(i);for(let[s,u]of e.entries()){let c=(0,Ue.stripVTControlCharacters)(u).length,p=r-t-c,d=s===0?"/":s===e.length-1?"\\":"|",l=s===0?"\\":s===e.length-1?"/":"|";a.push(`${d}${" ".repeat(t)}${u}${" ".repeat(p)}${l}`)}for(let s=0;s<n-1;s++)a.push(i);return a.push(` \xB7.${"_".repeat(r-4)}.\xB7 `),a}var Oi=()=>{let e=["",P(" Good Bye!"),"\u{1F44B} until next time!",""],t=Ti(e);return Ii(t)},Vt=e=>{let t=[`${P(e.name)} is ready!`,"","Next steps:",` 1. ${st(`cd ${e.directory}`)}`,` 2. ${st("npx datadog-apps")} ${w("\u2014 see available commands")}`],n=Ti(t);return Ii(n)},Ii=e=>{let t=[` ${k("___")}`,` ${k("___ (DATADOG\\")}`,` ${k("/DATAD) __/O/_/___ \\DAT\\ADOG\\")}`,` ${k("/DATADOGDATADOGDATADOGDATA| \\ATA)")}`,k("(DATADOGD TADOGDATADOGDATAD\\ |TA/"),k("(DATADOGD) )ATADOGDATADOGDAT)"),` ${k("\\DATADOG) )DATADOGDATADOG\xAF\xAF\\")}`,` ${k("\\DATAD/ )OGDA/\xAF\xAF\xAFTADOGDA .|")}`,` ${k(" \xAF\xAF\xAF /DATADO .GDATADOGD\\")}`,` ${k("|DATADOGDATADOGDATADOGDATA\\")}`,` ${k("|DATADOGDATADOGDATADOG\xAF\xAF\xAF\xAFD)")}`,` ${k("\\DATADOGDATADOGDATADO\\__/DA)")}`,` ${k("\\DATADOGDATADOGDATADOGDATA) __.")}`,` ${k("\\DATADOG\\ \\DATADOG/ |A/ ____/TADOG|")}`,` ${k(")DATADOGD\\_ _/ATADOGDATADOGDAT|")}`,` ${k(")DATADO |OGDATADOGDATADOGDATADOG/|D|")}`,` ${k("/DATADOG |DATADOGDATADOGDA/\\TADO/ |A|")}`,` ${k("/DATADOGD |ATADOGDATADOGDA/ \\GD/ |T|")}`,` ${k("/D\\._ \xAF\\ATA |DATAD/\\DOGDAT/ \\/ |A|")}`,` ${k("/DATADOG\\ \\DA |TADO/ \\GD/ |D|")}`,` ${k("(DATADOGDA\\ \\| |TAD/ \\/ |O|")}`,` ${k("(DATADOGDAT\\ \\ |AD/ ___/DATADOG|")}`,` ${k("\\DATADOGDAT) |A| _/DATADOG/\xAF")}`,` ${k("\\DATADOGDA) |T/\xAF")}`,` ${k("\\DATADO/")}`,` ${k("\xAF\xAF\xAF")}`],n=e.length-3,o=12-e.length,r=[],a=36+Math.max(...e.map(s=>(0,Ue.stripVTControlCharacters)(s).length));for(let[s,u]of t.entries()){let c=s-o;if(c>=0&&c<e.length){let p=e[c]||"",d=a-((0,Ue.stripVTControlCharacters)(u).length+(0,Ue.stripVTControlCharacters)(p).length);c===n&&(p=p.replace(/^./,"< "),d-=1);let l=" ".repeat(d);r.push(`${u}${l}${p}`)}else r.push(u)}return`
108
+ `;function Oi(e,t=2,n=1){let r=Math.max(...e.map(s=>(0,Ue.stripVTControlCharacters)(s).length))+t*2,i=`|${" ".repeat(r+2)}|`,a=[` .\xB7${"\xAF".repeat(r-4)}\xB7. `];for(let s=0;s<n-1;s++)a.push(i);for(let[s,u]of e.entries()){let c=(0,Ue.stripVTControlCharacters)(u).length,p=r-t-c,d=s===0?"/":s===e.length-1?"\\":"|",l=s===0?"\\":s===e.length-1?"/":"|";a.push(`${d}${" ".repeat(t)}${u}${" ".repeat(p)}${l}`)}for(let s=0;s<n-1;s++)a.push(i);return a.push(` \xB7.${"_".repeat(r-4)}.\xB7 `),a}var Ti=()=>{let e=["",P(" Good Bye!"),"\u{1F44B} until next time!",""],t=Oi(e);return Ii(t)},Vt=e=>{let t=[`${P(e.name)} is ready!`,"","Next steps:",` 1. ${st(`cd ${e.directory}`)}`,` 2. ${st("npx datadog-apps")} ${w("\u2014 see available commands")}`],n=Oi(t);return Ii(n)},Ii=e=>{let t=[` ${k("___")}`,` ${k("___ (DATADOG\\")}`,` ${k("/DATAD) __/O/_/___ \\DAT\\ADOG\\")}`,` ${k("/DATADOGDATADOGDATADOGDATA| \\ATA)")}`,k("(DATADOGD TADOGDATADOGDATAD\\ |TA/"),k("(DATADOGD) )ATADOGDATADOGDAT)"),` ${k("\\DATADOG) )DATADOGDATADOG\xAF\xAF\\")}`,` ${k("\\DATAD/ )OGDA/\xAF\xAF\xAFTADOGDA .|")}`,` ${k(" \xAF\xAF\xAF /DATADO .GDATADOGD\\")}`,` ${k("|DATADOGDATADOGDATADOGDATA\\")}`,` ${k("|DATADOGDATADOGDATADOG\xAF\xAF\xAF\xAFD)")}`,` ${k("\\DATADOGDATADOGDATADO\\__/DA)")}`,` ${k("\\DATADOGDATADOGDATADOGDATA) __.")}`,` ${k("\\DATADOG\\ \\DATADOG/ |A/ ____/TADOG|")}`,` ${k(")DATADOGD\\_ _/ATADOGDATADOGDAT|")}`,` ${k(")DATADO |OGDATADOGDATADOGDATADOG/|D|")}`,` ${k("/DATADOG |DATADOGDATADOGDA/\\TADO/ |A|")}`,` ${k("/DATADOGD |ATADOGDATADOGDA/ \\GD/ |T|")}`,` ${k("/D\\._ \xAF\\ATA |DATAD/\\DOGDAT/ \\/ |A|")}`,` ${k("/DATADOG\\ \\DA |TADO/ \\GD/ |D|")}`,` ${k("(DATADOGDA\\ \\| |TAD/ \\/ |O|")}`,` ${k("(DATADOGDAT\\ \\ |AD/ ___/DATADOG|")}`,` ${k("\\DATADOGDAT) |A| _/DATADOG/\xAF")}`,` ${k("\\DATADOGDA) |T/\xAF")}`,` ${k("\\DATADO/")}`,` ${k("\xAF\xAF\xAF")}`],n=e.length-3,o=12-e.length,r=[],a=36+Math.max(...e.map(s=>(0,Ue.stripVTControlCharacters)(s).length));for(let[s,u]of t.entries()){let c=s-o;if(c>=0&&c<e.length){let p=e[c]||"",d=a-((0,Ue.stripVTControlCharacters)(u).length+(0,Ue.stripVTControlCharacters)(p).length);c===n&&(p=p.replace(/^./,"< "),d-=1);let l=" ".repeat(d);r.push(`${u}${l}${p}`)}else r.push(u)}return`
109
109
  ${r.join(`
110
110
  `)}
111
111
  `};function Ri(e){return e instanceof Error&&e.name==="ExitPromptError"||e instanceof Error&&e.message==="Operation cancelled by user"}function Ni(e){let t=e instanceof Error&&e.message.trim()!==""?e.message:String(e);console.error(),console.error(W(t))}var Li=require("node:child_process");var ji=require("node:child_process");function Mi(e){try{return(0,ji.execSync)("git rev-parse --is-inside-work-tree",{cwd:e,stdio:["ignore","pipe","ignore"],encoding:"utf-8"}).trim()==="true"}catch{return!1}}function Hu(e,t){let n=e.postScaffoldCommands;if(!n)return{commands:[],gitInitSkipped:!1};let o=n.setup??[],r=n.gitInit??[],i=r.length>0&&Mi(t);return{commands:i?[...o]:[...o,...r],gitInitSkipped:i}}function Co(e){let t=e.postScaffoldCommands?.setup??[],n=t.some(r=>r.trim().startsWith("npm install"))?t:["npm install",...t],o=n.includes("npm ci --ignore-scripts")?n:[...n,"npm ci --ignore-scripts"];return{name:e.name,description:e.description,postScaffoldCommands:{setup:o}}}async function at(e,t,n=!1,o=!1,r=!1){let{commands:i,gitInitSkipped:a}=Hu(t,e);if(r&&n)throw new Error("Workspace dependency installation and lockfile validation cannot be skipped.");if(i.length===0){a&&(console.log(),console.log(w(`Existing git repo detected at ${e} \u2014 skipping git setup commands.`)));return}if(console.log(),a&&console.log(w(`Existing git repo detected at ${e} \u2014 skipping git setup commands.`)),console.log("The following commands will be executed:"),i.forEach(d=>{console.log(` ${w("$")} ${d}`)}),console.log(),!(r||!n&&(o||await le({message:"Continue?",default:!0})))){console.log(w(`
@@ -113,8 +113,8 @@ Skipped post-scaffold commands. You can run them manually later.`));return}conso
113
113
  Failed to execute command: ${p}
114
114
  ${c}
115
115
  `)),console.error(W(`\u26A0\uFE0F Aborting post-scaffold commands.
116
- `)),console.log("Command execution status:"),i.forEach((d,l)=>{l<u?console.log(` \u2713 ${w(d)}`):console.log(l===u?` \u2717 ${W(d)}`:` - ${w(d)} ${w("(skipped)")}`)}),console.log(),console.log("You can run the remaining commands manually from your project directory:"),console.log(` ${w("cd")} ${e}`),i.slice(u).forEach(d=>{console.log(` ${w("$")} ${d}`)}),console.log(),r){let d=t.postScaffoldCommands?.setup?.length??0;if(u<d)throw new Error(`Post-scaffold command failed: ${p??"unknown command"} (${c})`)}}var vo=["datadoghq.com","us3.datadoghq.com","us5.datadoghq.com","datadoghq.eu","ddog-gov.com","us2.ddog-gov.com","ap1.datadoghq.com","ap2.datadoghq.com","uk1.datadoghq.com","datad0g.com"];var Uu=new Set(["api","app"]);function zu(e){return(e.trim().replace(/^[a-z][a-z0-9+.-]*:\/\//i,"").split(/[/?#]/)[0]??"").trim().toLowerCase()}function Zt(e){if(typeof e!="string"||e.length===0)return;let t=zu(e),n=vo.find(s=>s===t);if(n)return{site:n};let o=vo.filter(s=>t.endsWith(`.${s}`)),[r]=o;if(r===void 0)return;let i=r;for(let s of o)s.length>i.length&&(i=s);let a=t.slice(0,t.length-i.length-1);if(!(!a||!/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/.test(a)))return Uu.has(a)?{site:i}:{site:i,subdomain:a}}function ko(e){let t=Zt(e);if(t!==void 0)return t.subdomain?`${t.subdomain}.${t.site}`:t.site}var qu=new Set(["datad0g.com"]),Ku=vo.filter(e=>!qu.has(e));function Yu(){return Ku.join(", ")}function xo(e){return!e||!e.trim()?"The Datadog site cannot be empty.":Zt(e)!==void 0?!0:`"${e}" is not a known Datadog site. Known sites: ${Yu()}.`}var ut=M(require("node:fs")),J=M(require("node:path"));var Jt=M(require("node:fs")),ne=M(require("node:path")),Xt="apps",Qu="packages",Wu=/^[A-Za-z0-9._-]+$/;function _t(e){if(ne.default.isAbsolute(e)||e.includes("\\"))return!1;let t=e.split("/");return t[0]?.toLowerCase()===Qu?!1:t.every(n=>n!==""&&n!=="."&&n!==".."&&Wu.test(n))}function $t(e){let[t=""]=e.replace(/^@/,"").split("/");return t}function Gi(e){if(typeof e!="object"||e===null||!("datadogApps"in e))return null;let t=e.datadogApps;return typeof t!="object"||t===null?null:t}function Bo(e){try{let t=Jt.default.readFileSync(ne.default.join(e,"package.json"),"utf-8");return JSON.parse(t)}catch{return null}}function So(e){let t=ne.default.resolve(e);for(;;){let n=Bo(t),o=Gi(n);if(o)return{root:t,container:typeof o.container=="string"&&_t(o.container)?o.container:Xt};let r=ne.default.dirname(t);if(r===t)return null;t=r}}function Po(e){let t=Bo(e);if(typeof t=="object"&&t!==null&&"name"in t&&typeof t.name=="string"){let n=t.name.trim();return n===""?null:n}return null}function en(e){let t=Gi(Bo(e)),n=typeof t?.container=="string"&&_t(t.container)?t.container:Xt,o=ne.default.join(e,n),r;try{r=[...Jt.default.readdirSync(o)].sort()}catch{return}for(let i of r){let a=Vu(ne.default.join(o,i));if(a)return a}}function Vu(e){let t;try{t=JSON.parse(Jt.default.readFileSync(ne.default.join(e,"datadog-app.config.json"),"utf-8"))}catch{return}if(typeof t!="object"||t===null||!("datadogSite"in t))return;let n=t.datadogSite;return typeof n=="string"&&n.trim()!==""?n.trim():void 0}function To(e,t){let n=`${e}/${t}`,o=ne.default.relative(n,".").split(ne.default.sep).join("/");return{directory:n,rootRelativePath:o}}var Ee="datadoghq.com";function ze(e){return e?/^[a-z0-9][a-z0-9-]*$/.test(e)?!0:"Directory name must start with a lowercase letter or number and contain only lowercase letters, numbers, and hyphens.":"The directory name cannot be empty."}function tn(e){let t=e.trim();return t?/[{}<>`$]/.test(t)?"The app name cannot contain the characters {, }, <, >, `, or $.":!0:"The app name cannot be empty."}function Zu(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Hi(e){return e.split("-").filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}async function Ju(e,t){if(!ut.default.existsSync(e))return;if(t){console.log(w("Deleting directory.")),ut.default.rmSync(e,{force:!0,recursive:!0});return}if(console.log(),await le({message:`Directory ${P(e)} already exists. Overwrite?`,default:!1}))console.log(w("Deleting directory.")),ut.default.rmSync(e,{force:!0,recursive:!0});else throw console.log(w("Cancelled.")),new Error("Operation cancelled by user")}async function ct(e,t,n){if(n&&!t&&ut.default.existsSync(e))throw new Error(`Directory ${e} already exists. Use --overwrite to replace it.`);await Ju(e,t)}async function Ui(e,t,n="Enter the directory name for your app:",o=!1){let r;if(e){let s=J.default.basename(e);if(e!==s)throw new Error("Directory name must not include a path.");let u=ze(s);if(u!==!0)throw new Error(u);r=s}else r=await te({message:n,validate:s=>ze(s)});let i=J.default.basename(r),a=J.default.resolve(process.cwd(),r);return o||await ct(a,t),{name:i,directory:r}}async function Oo(e,t,n,o,r,i=process.cwd(),a=!1){let s,u;if(e){let l=J.default.basename(e);if(e!==l)throw new Error("Directory name must not include a path.");let f=ze(l);if(f!==!0)throw new Error(f);if(u=l,o!==void 0){let D=tn(o);if(D!==!0)throw new Error(D);s=o.trim()}else n?s=Hi(l):s=(await te({message:"Enter your app name:",default:Hi(l),validate:tn})).trim()}else{if(n)throw new Error("A directory name is required when using --yes. Pass it as a positional argument.");{if(o!==void 0){let f=tn(o);if(f!==!0)throw new Error(f);s=o.trim()}else s=(await te({message:"Enter your app name:",validate:tn})).trim();let l=Zu(s);u=await te({message:"Enter the directory name for your app:",default:l,validate:f=>ze(f)})}}let c=J.default.basename(u),p=J.default.resolve(i,u),d=Ee;if(r!==void 0){let l=xo(r);if(l!==!0)throw new Error(l);d=ko(r)??Ee}else if(!n){let l=await te({message:`Enter your Datadog site (e.g. datadoghq.com, datadoghq.eu, ap1.datadoghq.com).
117
- If your org has a custom subdomain (e.g. acme.datadoghq.com), use that instead:`,default:Ee,validate:xo});d=ko(l)??Ee}return a||await ct(p,t,n),{name:s,directoryName:c,directory:u,datadogSite:d,description:""}}async function Io(e,t,n,o,r,i,a,s=!1){let u=await Oo(e,o,r,i,a,J.default.join(t,n),s),{directory:c,rootRelativePath:p}=To(n,u.directoryName);return{...u,directory:c,appTargetPath:J.default.join(t,c),rootRelativePath:p}}async function zi(e,t,n,o,r="Enter a name:",i){let a;if(e){let p=J.default.basename(e),d=ze(p);if(d!==!0)throw new Error(d);a=p}else a=await te({message:r,validate:p=>ze(p)});let{directory:s,rootRelativePath:u}=To(n,a),c=J.default.join(t,s);return await ct(c,o,i),{name:a,directory:s,appTargetPath:c,rootRelativePath:u}}var pt=require("node:child_process"),Ro=M(require("node:path"));var Xu=/^[A-Za-z0-9_](?:[A-Za-z0-9_-]*[A-Za-z0-9_])?\/[A-Za-z0-9._-]+$/;function nn(e){let t=e.trim().match(/^(?:git@github\.com:|https:\/\/github\.com\/|ssh:\/\/git@github\.com\/)([^/]+)\/([^/]+?)(?:\.git)?\/?$/);if(!t)return null;let[,n,o]=t;return!n||!o?null:`${n}/${o}`}function on(e){return Xu.test(e)}function qi(){try{return(0,pt.execFileSync)("gh",["api","user","--jq",".login"],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()||null}catch{return null}}function dt(e,t,n){return(0,pt.execFileSync)(e,t,{cwd:n,encoding:"utf-8",stdio:["ignore","pipe","pipe"]}).trim()}function _u(e,t){if(!on(e))return`gh repo create ${e} --private --source=. --remote=origin --push`;try{let n=dt("git",["remote","get-url","origin"],t);if(nn(n)?.toLowerCase()===e.toLowerCase())return"git push --set-upstream origin HEAD"}catch{}return`gh repo create ${e} --private --source=. --remote=origin --push`}function $u(e,t){if(!on(e))return{published:!1,reason:`Invalid GitHub repository "${e}". Expected OWNER/REPO.`};try{let n=dt("git",["rev-parse","--show-toplevel"],t);if(Ro.default.resolve(n)!==Ro.default.resolve(t))return{published:!1,reason:`Refusing to publish because ${t} is inside the existing Git repository at ${n}.`};let o=null;try{o=dt("git",["remote","get-url","origin"],t)}catch{}return o!==null&&nn(o)?.toLowerCase()!==e.toLowerCase()?{published:!1,reason:`Refusing to replace the existing origin remote (${o}).`}:(dt("gh",["--version"],t),dt("gh",["auth","status","--hostname","github.com"],t),o===null?(0,pt.execFileSync)("gh",["repo","create",e,"--private","--source=.","--remote=origin","--push"],{cwd:t,stdio:"inherit"}):(0,pt.execFileSync)("git",["push","--set-upstream","origin","HEAD"],{cwd:t,stdio:"inherit"}),{published:!0})}catch(n){return{published:!1,reason:n instanceof Error?n.message:String(n)}}}function Ki(e){let t=$u(e.repository,e.targetPath);return console.log(),t.published?(console.log(P(`Published private GitHub repository ${e.repository} and set it as origin.`)),t):(console.error(W(`Could not publish ${e.repository}: ${t.reason}`)),console.log(w("Your local repository is still available. Retry with:")),console.log(w(` ${_u(e.repository,e.targetPath)}`)),t)}var jo=require("node:child_process");var ec=5e3;async function tc(e,t){let n=new AbortController,o=setTimeout(()=>n.abort(),ec);try{return await fetch(e,{headers:t,signal:n.signal})}finally{clearTimeout(o)}}async function Yi(e,t){let n=Zt(e);if(!n)return{apiKeyValid:null,apiKeyStatus:null,error:`"${e}" is not a recognized Datadog site; skipping validation.`};try{let o=await tc(`https://api.${n.site}/api/v1/validate`,{"DD-API-KEY":t}),r=o.status,i=r===200;return await o.body?.cancel().catch(()=>{}),{apiKeyValid:i,apiKeyStatus:r}}catch(o){return{apiKeyValid:null,apiKeyStatus:null,error:o instanceof Error?o.message:String(o)}}}var be="DATADOG_API_KEY",Pe="DATADOG_APP_KEY";function Wi(e){try{let t=(0,jo.execFileSync)("git",["remote","get-url","origin"],{cwd:e,encoding:"utf-8",stdio:["ignore","pipe","ignore"]});return nn(t)}catch{return null}}function Qi(e,t,n){(0,jo.execFileSync)("gh",["secret","set",e,"--repo",n.repository],{cwd:n.targetPath,input:t,stdio:["pipe","inherit","inherit"]})}function No(e){console.log(w("You can set them later \u2014 the deploy workflow needs both:")),console.log(w(` gh secret set ${be} --repo ${e}`)),console.log(w(` gh secret set ${Pe} --repo ${e}`)),console.log(w("Or add them under Settings \u2192 Secrets and variables \u2192 Actions in the repository."))}async function nc(e,t){console.log(w(`Checking the API key against ${e}...`));let{apiKeyValid:n,apiKeyStatus:o,error:r}=await Yi(e,t);if(r){console.log(w(`Could not verify the key right now (${r}) \u2014 continuing anyway.`));return}if(n){console.log(st(`\u2713 ${be} authenticates against ${e}.`));return}console.log(W(`\u26A0 ${be} did not validate against ${e} (HTTP ${o}) \u2014 double-check the value and that --site matches the org/site it was created in.`)),console.log(w(`Setting the secrets anyway \u2014 ${Pe} can't be pre-checked, and a scope problem on either key can still only surface at upload time.`))}async function Mo(e){if(!e.skipConfirm&&!await le({message:`Set the Datadog deploy secrets (${be} / ${Pe}) on ${e.repository} now?`,default:!1}))return No(e.repository),!1;console.log(w("Create these in Organization Settings, from the same Datadog site the app deploys to:")),console.log(w(` ${Pe}: a service-account-owned Application Key with the Actions API Access + Apps scopes`)),console.log(w(` ${be}: an organization API Key`));let t=await Wt({message:`Datadog API key (${be}):`,mask:!0}),n=await Wt({message:`Datadog application key (${Pe}):`,mask:!0}),o=t.trim(),r=n.trim();if(!o||!r)return console.log(W("Both keys are required; skipping secret setup.")),No(e.repository),!1;let i=e.site??en(e.targetPath)??Ee;await nc(i,o);try{return Qi(be,o,e),Qi(Pe,r,e),console.log(P(`Set ${be} and ${Pe} on ${e.repository}.`)),!0}catch(a){return console.error(W(`Could not set secrets: ${a instanceof Error?a.message:String(a)}`)),No(e.repository),!1}}var Wo=M(require("node:fs/promises")),Vo=M(require("node:path"));var rn={};C(rn,{contents:()=>rc,filepath:()=>oc});var oc="./src/App.tsx",rc=e=>`import { useQuery } from '@tanstack/react-query';
116
+ `)),console.log("Command execution status:"),i.forEach((d,l)=>{l<u?console.log(` \u2713 ${w(d)}`):console.log(l===u?` \u2717 ${W(d)}`:` - ${w(d)} ${w("(skipped)")}`)}),console.log(),console.log("You can run the remaining commands manually from your project directory:"),console.log(` ${w("cd")} ${e}`),i.slice(u).forEach(d=>{console.log(` ${w("$")} ${d}`)}),console.log(),r){let d=t.postScaffoldCommands?.setup?.length??0;if(u<d)throw new Error(`Post-scaffold command failed: ${p??"unknown command"} (${c})`)}}var vo=["datadoghq.com","us3.datadoghq.com","us5.datadoghq.com","datadoghq.eu","ddog-gov.com","us2.ddog-gov.com","ap1.datadoghq.com","ap2.datadoghq.com","uk1.datadoghq.com","datad0g.com"];var Uu=new Set(["api","app"]);function zu(e){return(e.trim().replace(/^[a-z][a-z0-9+.-]*:\/\//i,"").split(/[/?#]/)[0]??"").trim().toLowerCase()}function Zt(e){if(typeof e!="string"||e.length===0)return;let t=zu(e),n=vo.find(s=>s===t);if(n)return{site:n};let o=vo.filter(s=>t.endsWith(`.${s}`)),[r]=o;if(r===void 0)return;let i=r;for(let s of o)s.length>i.length&&(i=s);let a=t.slice(0,t.length-i.length-1);if(!(!a||!/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/.test(a)))return Uu.has(a)?{site:i}:{site:i,subdomain:a}}function ko(e){let t=Zt(e);if(t!==void 0)return t.subdomain?`${t.subdomain}.${t.site}`:t.site}var qu=new Set(["datad0g.com"]),Ku=vo.filter(e=>!qu.has(e));function Yu(){return Ku.join(", ")}function xo(e){return!e||!e.trim()?"The Datadog site cannot be empty.":Zt(e)!==void 0?!0:`"${e}" is not a known Datadog site. Known sites: ${Yu()}.`}var ut=M(require("node:fs")),J=M(require("node:path"));var Jt=M(require("node:fs")),ne=M(require("node:path")),Xt="apps",Qu="packages",Wu=/^[A-Za-z0-9._-]+$/;function _t(e){if(ne.default.isAbsolute(e)||e.includes("\\"))return!1;let t=e.split("/");return t[0]?.toLowerCase()===Qu?!1:t.every(n=>n!==""&&n!=="."&&n!==".."&&Wu.test(n))}function $t(e){let[t=""]=e.replace(/^@/,"").split("/");return t}function Gi(e){if(typeof e!="object"||e===null||!("datadogApps"in e))return null;let t=e.datadogApps;return typeof t!="object"||t===null?null:t}function Bo(e){try{let t=Jt.default.readFileSync(ne.default.join(e,"package.json"),"utf-8");return JSON.parse(t)}catch{return null}}function So(e){let t=ne.default.resolve(e);for(;;){let n=Bo(t),o=Gi(n);if(o)return{root:t,container:typeof o.container=="string"&&_t(o.container)?o.container:Xt};let r=ne.default.dirname(t);if(r===t)return null;t=r}}function Po(e){let t=Bo(e);if(typeof t=="object"&&t!==null&&"name"in t&&typeof t.name=="string"){let n=t.name.trim();return n===""?null:n}return null}function en(e){let t=Gi(Bo(e)),n=typeof t?.container=="string"&&_t(t.container)?t.container:Xt,o=ne.default.join(e,n),r;try{r=[...Jt.default.readdirSync(o)].sort()}catch{return}for(let i of r){let a=Vu(ne.default.join(o,i));if(a)return a}}function Vu(e){let t;try{t=JSON.parse(Jt.default.readFileSync(ne.default.join(e,"datadog-app.config.json"),"utf-8"))}catch{return}if(typeof t!="object"||t===null||!("datadogSite"in t))return;let n=t.datadogSite;return typeof n=="string"&&n.trim()!==""?n.trim():void 0}function Oo(e,t){let n=`${e}/${t}`,o=ne.default.relative(n,".").split(ne.default.sep).join("/");return{directory:n,rootRelativePath:o}}var be="datadoghq.com";function ze(e){return e?/^[a-z0-9][a-z0-9-]*$/.test(e)?!0:"Directory name must start with a lowercase letter or number and contain only lowercase letters, numbers, and hyphens.":"The directory name cannot be empty."}function tn(e){let t=e.trim();return t?/[{}<>`$]/.test(t)?"The app name cannot contain the characters {, }, <, >, `, or $.":!0:"The app name cannot be empty."}function Zu(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Hi(e){return e.split("-").filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}async function Ju(e,t){if(!ut.default.existsSync(e))return;if(t){console.log(w("Deleting directory.")),ut.default.rmSync(e,{force:!0,recursive:!0});return}if(console.log(),await le({message:`Directory ${P(e)} already exists. Overwrite?`,default:!1}))console.log(w("Deleting directory.")),ut.default.rmSync(e,{force:!0,recursive:!0});else throw console.log(w("Cancelled.")),new Error("Operation cancelled by user")}async function ct(e,t,n){if(n&&!t&&ut.default.existsSync(e))throw new Error(`Directory ${e} already exists. Use --overwrite to replace it.`);await Ju(e,t)}async function Ui(e,t,n="Enter the directory name for your app:",o=!1){let r;if(e){let s=J.default.basename(e);if(e!==s)throw new Error("Directory name must not include a path.");let u=ze(s);if(u!==!0)throw new Error(u);r=s}else r=await te({message:n,validate:s=>ze(s)});let i=J.default.basename(r),a=J.default.resolve(process.cwd(),r);return o||await ct(a,t),{name:i,directory:r}}async function To(e,t,n,o,r,i=process.cwd(),a=!1){let s,u;if(e){let l=J.default.basename(e);if(e!==l)throw new Error("Directory name must not include a path.");let f=ze(l);if(f!==!0)throw new Error(f);if(u=l,o!==void 0){let D=tn(o);if(D!==!0)throw new Error(D);s=o.trim()}else n?s=Hi(l):s=(await te({message:"Enter your app name:",default:Hi(l),validate:tn})).trim()}else{if(n)throw new Error("A directory name is required when using --yes. Pass it as a positional argument.");{if(o!==void 0){let f=tn(o);if(f!==!0)throw new Error(f);s=o.trim()}else s=(await te({message:"Enter your app name:",validate:tn})).trim();let l=Zu(s);u=await te({message:"Enter the directory name for your app:",default:l,validate:f=>ze(f)})}}let c=J.default.basename(u),p=J.default.resolve(i,u),d=be;if(r!==void 0){let l=xo(r);if(l!==!0)throw new Error(l);d=ko(r)??be}else if(!n){let l=await te({message:`Enter your Datadog site (e.g. datadoghq.com, datadoghq.eu, ap1.datadoghq.com).
117
+ If your org has a custom subdomain (e.g. acme.datadoghq.com), use that instead:`,default:be,validate:xo});d=ko(l)??be}return a||await ct(p,t,n),{name:s,directoryName:c,directory:u,datadogSite:d,description:""}}async function Io(e,t,n,o,r,i,a,s=!1){let u=await To(e,o,r,i,a,J.default.join(t,n),s),{directory:c,rootRelativePath:p}=Oo(n,u.directoryName);return{...u,directory:c,appTargetPath:J.default.join(t,c),rootRelativePath:p}}async function zi(e,t,n,o,r="Enter a name:",i){let a;if(e){let p=J.default.basename(e),d=ze(p);if(d!==!0)throw new Error(d);a=p}else a=await te({message:r,validate:p=>ze(p)});let{directory:s,rootRelativePath:u}=Oo(n,a),c=J.default.join(t,s);return await ct(c,o,i),{name:a,directory:s,appTargetPath:c,rootRelativePath:u}}var pt=require("node:child_process"),Ro=M(require("node:path"));var Xu=/^[A-Za-z0-9_](?:[A-Za-z0-9_-]*[A-Za-z0-9_])?\/[A-Za-z0-9._-]+$/;function nn(e){let t=e.trim().match(/^(?:git@github\.com:|https:\/\/github\.com\/|ssh:\/\/git@github\.com\/)([^/]+)\/([^/]+?)(?:\.git)?\/?$/);if(!t)return null;let[,n,o]=t;return!n||!o?null:`${n}/${o}`}function on(e){return Xu.test(e)}function qi(){try{return(0,pt.execFileSync)("gh",["api","user","--jq",".login"],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()||null}catch{return null}}function dt(e,t,n){return(0,pt.execFileSync)(e,t,{cwd:n,encoding:"utf-8",stdio:["ignore","pipe","pipe"]}).trim()}function _u(e,t){if(!on(e))return`gh repo create ${e} --private --source=. --remote=origin --push`;try{let n=dt("git",["remote","get-url","origin"],t);if(nn(n)?.toLowerCase()===e.toLowerCase())return"git push --set-upstream origin HEAD"}catch{}return`gh repo create ${e} --private --source=. --remote=origin --push`}function $u(e,t){if(!on(e))return{published:!1,reason:`Invalid GitHub repository "${e}". Expected OWNER/REPO.`};try{let n=dt("git",["rev-parse","--show-toplevel"],t);if(Ro.default.resolve(n)!==Ro.default.resolve(t))return{published:!1,reason:`Refusing to publish because ${t} is inside the existing Git repository at ${n}.`};let o=null;try{o=dt("git",["remote","get-url","origin"],t)}catch{}return o!==null&&nn(o)?.toLowerCase()!==e.toLowerCase()?{published:!1,reason:`Refusing to replace the existing origin remote (${o}).`}:(dt("gh",["--version"],t),dt("gh",["auth","status","--hostname","github.com"],t),o===null?(0,pt.execFileSync)("gh",["repo","create",e,"--private","--source=.","--remote=origin","--push"],{cwd:t,stdio:"inherit"}):(0,pt.execFileSync)("git",["push","--set-upstream","origin","HEAD"],{cwd:t,stdio:"inherit"}),{published:!0})}catch(n){return{published:!1,reason:n instanceof Error?n.message:String(n)}}}function Ki(e){let t=$u(e.repository,e.targetPath);return console.log(),t.published?(console.log(P(`Published private GitHub repository ${e.repository} and set it as origin.`)),t):(console.error(W(`Could not publish ${e.repository}: ${t.reason}`)),console.log(w("Your local repository is still available. Retry with:")),console.log(w(` ${_u(e.repository,e.targetPath)}`)),t)}var jo=require("node:child_process");var ec=5e3;async function tc(e,t){let n=new AbortController,o=setTimeout(()=>n.abort(),ec);try{return await fetch(e,{headers:t,signal:n.signal})}finally{clearTimeout(o)}}async function Yi(e,t){let n=Zt(e);if(!n)return{apiKeyValid:null,apiKeyStatus:null,error:`"${e}" is not a recognized Datadog site; skipping validation.`};try{let o=await tc(`https://api.${n.site}/api/v1/validate`,{"DD-API-KEY":t}),r=o.status,i=r===200;return await o.body?.cancel().catch(()=>{}),{apiKeyValid:i,apiKeyStatus:r}}catch(o){return{apiKeyValid:null,apiKeyStatus:null,error:o instanceof Error?o.message:String(o)}}}var Ee="DATADOG_API_KEY",Pe="DATADOG_APP_KEY";function Wi(e){try{let t=(0,jo.execFileSync)("git",["remote","get-url","origin"],{cwd:e,encoding:"utf-8",stdio:["ignore","pipe","ignore"]});return nn(t)}catch{return null}}function Qi(e,t,n){(0,jo.execFileSync)("gh",["secret","set",e,"--repo",n.repository],{cwd:n.targetPath,input:t,stdio:["pipe","inherit","inherit"]})}function No(e){console.log(w("You can set them later \u2014 the deploy workflow needs both:")),console.log(w(` gh secret set ${Ee} --repo ${e}`)),console.log(w(` gh secret set ${Pe} --repo ${e}`)),console.log(w("Or add them under Settings \u2192 Secrets and variables \u2192 Actions in the repository."))}async function nc(e,t){console.log(w(`Checking the API key against ${e}...`));let{apiKeyValid:n,apiKeyStatus:o,error:r}=await Yi(e,t);if(r){console.log(w(`Could not verify the key right now (${r}) \u2014 continuing anyway.`));return}if(n){console.log(st(`\u2713 ${Ee} authenticates against ${e}.`));return}console.log(W(`\u26A0 ${Ee} did not validate against ${e} (HTTP ${o}) \u2014 double-check the value and that --site matches the org/site it was created in.`)),console.log(w(`Setting the secrets anyway \u2014 ${Pe} can't be pre-checked, and a scope problem on either key can still only surface at upload time.`))}async function Mo(e){if(!e.skipConfirm&&!await le({message:`Set the Datadog deploy secrets (${Ee} / ${Pe}) on ${e.repository} now?`,default:!1}))return No(e.repository),!1;console.log(w("Create these in Organization Settings, from the same Datadog site the app deploys to:")),console.log(w(` ${Pe}: a service-account-owned Application Key with the Actions API Access + Apps scopes`)),console.log(w(` ${Ee}: an organization API Key`));let t=await Wt({message:`Datadog API key (${Ee}):`,mask:!0}),n=await Wt({message:`Datadog application key (${Pe}):`,mask:!0}),o=t.trim(),r=n.trim();if(!o||!r)return console.log(W("Both keys are required; skipping secret setup.")),No(e.repository),!1;let i=e.site??en(e.targetPath)??be;await nc(i,o);try{return Qi(Ee,o,e),Qi(Pe,r,e),console.log(P(`Set ${Ee} and ${Pe} on ${e.repository}.`)),!0}catch(a){return console.error(W(`Could not set secrets: ${a instanceof Error?a.message:String(a)}`)),No(e.repository),!1}}var Wo=M(require("node:fs/promises")),Vo=M(require("node:path"));var rn={};C(rn,{contents:()=>rc,filepath:()=>oc});var oc="./src/App.tsx",rc=e=>`import { useQuery } from '@tanstack/react-query';
118
118
  import { Button } from '@datadog/druids/form/Button';
119
119
  import { Grid } from '@datadog/druids/layout/Grid';
120
120
  import { GridItem } from '@datadog/druids/layout/GridItem';
@@ -282,7 +282,7 @@ The generated app wraps React in \`QueryClientProvider\` in \`src/main.tsx\`. Pr
282
282
 
283
283
  - For choosing between DDSQL and Action Catalog, configuring Connections, or querying app datastores, read \`docs/agents/data.md\`.
284
284
  - For triggering or polling a Workflow Automation workflow, read \`docs/agents/workflow-automation.md\`.
285
- `;var an={};C(an,{contents:()=>uc,filepath:()=>ac});var ac="./docs/agents/build-upload-auth.md",uc=e=>'# Build, Auth, And Upload\n\nThis scaffold uses npm. Prefer the scripts in `package.json` over ad hoc commands.\n\n## Scripts\n\n- `npm run dev` \u2014 start the dev server through `datadog-apps`, which resolves Datadog credentials for it.\n- `npm run build` \u2014 local production build. Does not upload anything.\n- `npm run upload` \u2014 build, upload, and publish the app live.\n- `npm run cli` \u2014 open the `datadog-apps` command menu (a plain command listing in non-interactive contexts).\n- `npm run typecheck` \u2014 TypeScript check without emitting files. Use this for credential-free validation.\n- `npm run lint` / `npm run lint:fix` \u2014 run ESLint.\n\n## App identity (do not change)\n\n- `id` in `datadog-app.config.json` is this app\'s permanent identity. It was generated once when the project was scaffolded.\n- Every upload updates the app that matches this identifier. **Never change it** \u2014 changing it makes the next upload create a brand-new duplicate app instead of updating the existing one.\n\n## Auth\n\nApps use **OAuth by default**. On first `npm run dev`, the `datadog-apps` CLI opens a browser window for Datadog login and stores the token on this machine in `credentials.json` \u2014 under `$DD_APPS_CONFIG_DIR` or `$DATADOG_APPS_CONFIG_DIR` if set, else `$XDG_CONFIG_HOME/datadog-apps` (when absolute), else `~/.config/datadog-apps`. Treat that file as a secret; `npx datadog-apps auth logout` revokes and clears it. No credentials needed in advance.\n\n**API key fallback** \u2014 use when OAuth isn\'t available (headless CI, restricted networks). The `datadog-apps` CLI reads credentials from the environment, not from `.env.local`, so export both keys before running `npm run dev`, `npm run build`, or `npm run upload`:\n\n```bash\nexport DD_API_KEY="<YOUR_API_KEY>"\nexport DD_APP_KEY="<YOUR_APPLICATION_KEY>"\n```\n\nKeys are at:\n- API keys: `https://app.datadoghq.com/organization-settings/api-keys`\n- Application keys: `https://app.datadoghq.com/organization-settings/application-keys` \u2014 the key needs **two scopes**: **Actions API Access** and **Apps**\n\nDo not ask users to paste key values into the conversation; point them at the pages above.\n\n## Non-US1 site\n\nSet `datadogSite` in `datadog-app.config.json` so local dev and uploads target the right site:\n\n```json\n{ "datadogSite": "<YOUR_DATADOG_SITE>" }\n```\n\n## Upload\n\nBuild, upload, and publish in one command:\n\n```bash\nnpm run upload\n```\n\nWith API keys (CI environments):\n\n```bash\nexport DD_API_KEY="<YOUR_API_KEY>"\nexport DD_APP_KEY="<YOUR_APPLICATION_KEY>"\nnpm run upload\n```\n\nA successful upload prints a Datadog URL for the app.\n\n**Older scaffolded projects** \u2014 if the `upload` script is missing, add it to `package.json` and install the CLI it runs:\n\n```json\n{ "scripts": { "upload": "npx datadog-apps upload" } }\n```\n\n```bash\nnpm install -D @datadog/apps-cli\n```\n\n## Troubleshooting\n\n**401 / missing authentication token / credentials not configured**\n\n- OAuth: if the browser window didn\'t open, the environment may not support it. Fall back to API keys.\n- API keys: verify `DD_API_KEY` and `DD_APP_KEY` are set and the application key has both **Actions API Access** and **Apps** scopes.\n- Check `datadogSite` in `datadog-app.config.json` matches the credentials\' Datadog site.\n\n**403 "you do not have access to this app" on upload**\n\nThe application key needs both scopes enabled \u2014 not just one:\n\n1. **Actions API Access** \u2014 required for backend function execution.\n2. **Apps** (or **App Builder**) \u2014 required for uploading and publishing.\n\nGo to `https://app.datadoghq.com/organization-settings/application-keys`, confirm both scopes, or create a new key with both.\n\n**Build succeeds but nothing goes live**\n\n- Use `npm run upload`, not `npm run build`, when the intent is to publish. `npm run build` builds locally and uploads nothing.\n- Confirm `dryRun` in `vite.config.ts` is not `true`.\n\n**Build fails with missing credentials**\n\n- `npm run build` is a local build and needs no credentials; if it fails, read the error from Vite or the Datadog Vite plugin.\n- For credential-free validation, prefer `npm run typecheck`.\n\n**Node or scaffolding errors**\n\n- Check `package.json` `engines.node` for the supported Node.js versions.\n- Use Volta, nvm, or fnm to switch versions. Prefer a current Node 22 release when debugging.\n\n**Datadog site mismatch**\n\n- Inspect `datadog-app.config.json` for the configured site and confirm CI uses the same value.\n';var un={};C(un,{contents:()=>dc,filepath:()=>cc});var cc="./docs/agents/cicd.md",dc=e=>e.workspace?"# CI/CD\n\nThis monorepo ships separate validation and deployment workflows:\n\n- `.github/workflows/validate-datadog-apps.yml` runs one job on every pull request for root installation, React dependency alignment, typechecking, linting, and production builds. Running on every pull request ensures a required validation check always reports a result.\n- `.github/workflows/deploy-datadog-apps.yml` runs only for pushes matching app or shared build paths. Its preparation job proceeds only on the repository's current default branch, validates the root lockfile and dependency alignment once, and detects directly changed apps. Shared packages, root build inputs, or a lockfile-only change select every app; a lockfile updated alongside direct app changes does not widen that app selection. Each selected app runs the root-installed `datadog-apps` CLI from that app's directory, with its own `datadog-app.config.json` and the Git commit as its version name. CI does not require an app-owned `upload` script.\n\nBoth workflows use `.github/scripts/validate-workspace.mjs` for dependency alignment.\n\nRe-deploying updates the existing Datadog App because each app keeps a stable identifier in `datadog-app.config.json`.\n\n## Required secrets\n\nStore `DATADOG_API_KEY` and `DATADOG_APP_KEY` as [encrypted secrets](https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions) in the repository or organization settings. The application key needs both **Actions API Access** and **Apps** scopes.\n\nFor non-US1 organizations, set `datadogSite` in each app's `datadog-app.config.json`; that file is the only place an app's site, identifier, and name live. The optional GitHub Actions variable `DD_SITE` overrides it for every app in the workspace - use it only when the whole workspace deploys elsewhere.\n":`# CI/CD
285
+ `;var an={};C(an,{contents:()=>uc,filepath:()=>ac});var ac="./docs/agents/build-upload-auth.md",uc=e=>'# Build, Auth, And Upload\n\nThis scaffold uses npm. Prefer the scripts in `package.json` over ad hoc commands.\n\n## Scripts\n\n- `npm run dev` \u2014 start the dev server through `datadog-apps`, which resolves Datadog credentials for it.\n- `npm run build` \u2014 local production build. Does not upload anything.\n- `npm run upload` \u2014 build, upload, and publish the app live.\n- `npm run cli` \u2014 open the `datadog-apps` command menu (a plain command listing in non-interactive contexts).\n- `npm run typecheck` \u2014 TypeScript check without emitting files. Use this for credential-free validation.\n- `npm run lint` / `npm run lint:fix` \u2014 run ESLint.\n\n## App identity (do not change)\n\n- `id` in `datadog-app.config.json` is this app\'s permanent identity. It was generated once when the project was scaffolded.\n- Every upload updates the app that matches this identifier. **Never change it** \u2014 changing it makes the next upload create a brand-new duplicate app instead of updating the existing one.\n\n## Auth\n\nApps use **OAuth by default**. On first `npm run dev`, the `datadog-apps` CLI opens a browser window for Datadog login and stores the token on this machine in `credentials.json` \u2014 under `$DD_APPS_CONFIG_DIR` or `$DATADOG_APPS_CONFIG_DIR` if set, else `$XDG_CONFIG_HOME/datadog-apps` (when absolute), else `~/.config/datadog-apps`. Treat that file as a secret; `npx datadog-apps auth logout` revokes and clears it. No credentials needed in advance.\n\n**API key fallback** \u2014 use when OAuth isn\'t available (headless CI, restricted networks). The `datadog-apps` CLI reads credentials from the environment, not from `.env.local`, so export both keys before running `npm run dev`, `npm run build`, or `npm run upload`:\n\n```bash\nexport DD_API_KEY="<YOUR_API_KEY>"\nexport DD_APP_KEY="<YOUR_APPLICATION_KEY>"\n```\n\nKeys are at:\n- API keys: `https://app.datadoghq.com/organization-settings/api-keys`\n- Application keys: `https://app.datadoghq.com/organization-settings/application-keys` \u2014 the key needs **two scopes**: **Actions API Access** and **Apps**\n\nDo not ask users to paste key values into the conversation; point them at the pages above.\n\n## Non-US1 site\n\nSet `datadogSite` in `datadog-app.config.json` so local dev and uploads target the right site:\n\n```json\n{ "datadogSite": "<YOUR_DATADOG_SITE>" }\n```\n\n## Upload\n\nBuild, upload, and publish in one command:\n\n```bash\nnpm run upload\n```\n\nWith API keys (CI environments):\n\n```bash\nexport DD_API_KEY="<YOUR_API_KEY>"\nexport DD_APP_KEY="<YOUR_APPLICATION_KEY>"\nnpm run upload\n```\n\nA successful upload prints a Datadog URL for the app.\n\n**Older scaffolded projects** \u2014 if the `upload` script is missing, add it to `package.json` and install the CLI it runs:\n\n```json\n{ "scripts": { "upload": "npx datadog-apps upload" } }\n```\n\n```bash\nnpm install -D @datadog/apps-cli\n```\n\n## Troubleshooting\n\n**401 / missing authentication token / credentials not configured**\n\n- OAuth: if the browser window didn\'t open, the environment may not support it. Fall back to API keys.\n- API keys: verify `DD_API_KEY` and `DD_APP_KEY` are set and the application key has both **Actions API Access** and **Apps** scopes.\n- Check `datadogSite` in `datadog-app.config.json` matches the credentials\' Datadog site.\n\n**403 "you do not have access to this app" on upload**\n\nThe application key needs both scopes enabled \u2014 not just one:\n\n1. **Actions API Access** \u2014 required for backend function execution.\n2. **Apps** (or **App Builder**) \u2014 required for uploading and publishing.\n\nGo to `https://app.datadoghq.com/organization-settings/application-keys`, confirm both scopes, or create a new key with both.\n\n**Build succeeds but nothing goes live**\n\n- Use `npm run upload`, not `npm run build`, when the intent is to publish. `npm run build` builds locally and uploads nothing.\n- Confirm `dryRun` in `vite.config.ts` is not `true`.\n\n**Build fails with missing credentials**\n\n- `npm run build` is a local build and needs no credentials; if it fails, read the error from Vite or the Datadog Vite plugin.\n- For credential-free validation, prefer `npm run typecheck`.\n\n**Node or scaffolding errors**\n\n- Check `package.json` `engines.node` for the supported Node.js versions.\n- Use Volta, nvm, or fnm to switch versions. Prefer a current Node 22 release when debugging.\n\n**Datadog site mismatch**\n\n- Inspect `datadog-app.config.json` for the configured site and confirm CI uses the same value.\n';var un={};C(un,{contents:()=>dc,filepath:()=>cc});var cc="./docs/agents/cicd.md",dc=e=>e.workspace?"# CI/CD\n\nThis monorepo ships separate validation and deployment workflows:\n\n- `.github/workflows/validate-datadog-apps.yml` runs one job on every pull request for root installation, React dependency alignment, typechecking, linting, and production builds. Running on every pull request ensures a required validation check always reports a result.\n- `.github/workflows/deploy-datadog-apps.yml` runs only for pushes matching app or shared build paths. Its preparation job proceeds only on the repository's current default branch, validates the root lockfile and dependency alignment once, and detects directly changed apps. Shared packages, root build inputs, or a lockfile-only change select every app; a lockfile updated alongside direct app changes does not widen that app selection. Each selected app installs from the root lockfile and runs `DataDog/apps-github-action` for that app's directory with the root-installed `datadog-apps` CLI, its own `datadog-app.config.json`, and the Git commit as its version name. The Action's own install is disabled with `install-command: 'true'` because `npm ci` inside a workspace app would replace the root install. CI does not require an app-owned `upload` script.\n\nBoth workflows use `.github/scripts/validate-workspace.mjs` for dependency alignment.\n\nRe-deploying updates the existing Datadog App because each app keeps a stable identifier in `datadog-app.config.json`.\n\n## Required secrets\n\nStore `DATADOG_API_KEY` and `DATADOG_APP_KEY` as [encrypted secrets](https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions) in the repository or organization settings. The application key needs both **Actions API Access** and **Apps** scopes.\n\nFor non-US1 organizations, set `datadogSite` in each app's `datadog-app.config.json`; that file is the only place an app's site, identifier, and name live. The optional GitHub Actions variable `DD_SITE` overrides it for every app in the workspace - use it only when the whole workspace deploys elsewhere.\n":`# CI/CD
286
286
 
287
287
  ## GitHub Actions
288
288
 
@@ -427,7 +427,7 @@ Frontend code imports backend functions like normal ES modules, but those import
427
427
  - Do not build app logic that depends on which of these transports handles a given call \u2014 the contract (async function in, structured-cloneable result out) is the same across all three.
428
428
 
429
429
  For backend implementation details, read \`backend-functions.md\`.
430
- `;var pn={};C(pn,{contents:()=>gc,filepath:()=>hc});var hc="./docs/agents/upgrading.md",gc=e=>'# Upgrading\n\n## Primary packages\n\n- `@datadog/vite-plugin`: Vite integration for local development, build, and deploy.\n- `@datadog/action-catalog`: typed Action Catalog client for backend functions.\n- `@datadog/apps-backend`: Datadog-provided helpers for backend function development.\n- `@datadog/apps-frontend`: Datadog-provided helpers and utils for apps, such as getting input context from the page!\n\nPreserve the existing package manager and lockfile style.\n\n## Before upgrading\n\nCheck release notes before changing versions:\n\n```bash\nnpm view @datadog/vite-plugin version repository.url homepage\nnpm view @datadog/action-catalog version repository.url homepage\nnpm view @datadog/apps-backend version repository.url homepage\nnpm view @datadog/apps-frontend version repository.url homepage\n```\n\nInspect the current app:\n\n```bash\nnpm outdated @datadog/vite-plugin @datadog/action-catalog @datadog/apps-backend @datadog/apps-frontend\nnpm ls @datadog/vite-plugin @datadog/action-catalog @datadog/apps-backend @datadog/apps-frontend\n```\n\n## Upgrade\n\n```bash\nnpm install @datadog/action-catalog@latest\nnpm install @datadog/apps-backend@latest\nnpm install @datadog/apps-frontend@latest\nnpm install -D @datadog/vite-plugin@latest\n```\n\nAfter upgrading, verify:\n\n- `datadog-app.config.json` app definition and configuration fields (`datadogSite`, `id`, `name`, `description`, `selfService`, `permissions`) and `vite.config.ts` Datadog plugin config.\n- `package.json` scripts \u2014 check for the `dev`, `build`, and `upload` scripts that run the `datadog-apps` CLI, and for `@datadog/apps-cli` in `devDependencies`.\n- Backend function imports from `@datadog/action-catalog/...`.\n- Frontend embedding and input imports from `@datadog/apps-frontend/...`.\n- Project-local instructions in `AGENTS.md`.\n\n## Compare against a fresh scaffold\n\nTo pull in changes from the latest scaffolder without guessing:\n\n```bash\ntmp_dir="$(mktemp -d)"\nnpm create @datadog/apps@latest -- "$tmp_dir/base-app" --template vite-react -y --skip-post-scaffold\ndiff -ru "$tmp_dir/base-app/package.json" package.json\ndiff -ru "$tmp_dir/base-app/datadog-app.config.json" datadog-app.config.json\ndiff -ru "$tmp_dir/base-app/vite.config.ts" vite.config.ts\ndiff -ru "$tmp_dir/base-app/src" src\n```\n\nPort only the specific changes needed. Do not replace the app wholesale.\n\n**Preserve your existing `id`** \u2014 the fresh scaffold generates a new random `id` in `datadog-app.config.json`. Do not copy it into your project; keep your existing `id` to avoid creating a duplicate app on the next upload.\n\n## Verify\n\n```bash\nnpm run typecheck\nnpm run lint\nnpm run build\n```\n';var ln={};C(ln,{contents:()=>Ac,filepath:()=>mc});var mc="./docs/agents/workflow-automation.md",Ac=e=>`# Workflow Automation
430
+ `;var pn={};C(pn,{contents:()=>gc,filepath:()=>hc});var hc="./docs/agents/upgrading.md",gc=e=>'# Upgrading\n\n## Primary packages\n\n- `@datadog/vite-plugin`: Vite integration for local development, build, and deploy.\n- `@datadog/action-catalog`: typed Action Catalog client for backend functions.\n- `@datadog/apps-backend`: Datadog-provided helpers for backend function development.\n- `@datadog/apps-frontend`: Datadog-provided helpers and utils for apps, such as getting input context from the page!\n\nPreserve the existing package manager and lockfile style.\n\n## Before upgrading\n\nCheck release notes before changing versions:\n\n```bash\nnpm view @datadog/vite-plugin version repository.url homepage\nnpm view @datadog/action-catalog version repository.url homepage\nnpm view @datadog/apps-backend version repository.url homepage\nnpm view @datadog/apps-frontend version repository.url homepage\n```\n\nInspect the current app:\n\n```bash\nnpm outdated @datadog/vite-plugin @datadog/action-catalog @datadog/apps-backend @datadog/apps-frontend\nnpm ls @datadog/vite-plugin @datadog/action-catalog @datadog/apps-backend @datadog/apps-frontend\n```\n\n## Upgrade\n\n```bash\nnpm install @datadog/action-catalog@latest\nnpm install @datadog/apps-backend@latest\nnpm install @datadog/apps-frontend@latest\nnpm install -D @datadog/vite-plugin@latest\n```\n\nAfter upgrading, verify:\n\n- `datadog-app.config.json` app definition and configuration fields (`datadogSite`, `id`, `name`, `description`, `selfService`, `permissions`, `tags`) and `vite.config.ts` Datadog plugin config.\n- `package.json` scripts \u2014 check for the `dev`, `build`, and `upload` scripts that run the `datadog-apps` CLI, and for `@datadog/apps-cli` in `devDependencies`.\n- Backend function imports from `@datadog/action-catalog/...`.\n- Frontend embedding and input imports from `@datadog/apps-frontend/...`.\n- Project-local instructions in `AGENTS.md`.\n\n## Compare against a fresh scaffold\n\nTo pull in changes from the latest scaffolder without guessing:\n\n```bash\ntmp_dir="$(mktemp -d)"\nnpm create @datadog/apps@latest -- "$tmp_dir/base-app" --template vite-react -y --skip-post-scaffold\ndiff -ru "$tmp_dir/base-app/package.json" package.json\ndiff -ru "$tmp_dir/base-app/datadog-app.config.json" datadog-app.config.json\ndiff -ru "$tmp_dir/base-app/vite.config.ts" vite.config.ts\ndiff -ru "$tmp_dir/base-app/src" src\n```\n\nPort only the specific changes needed. Do not replace the app wholesale.\n\n**Preserve your existing `id`** \u2014 the fresh scaffold generates a new random `id` in `datadog-app.config.json`. Do not copy it into your project; keep your existing `id` to avoid creating a duplicate app on the next upload.\n\n## Verify\n\n```bash\nnpm run typecheck\nnpm run lint\nnpm run build\n```\n';var ln={};C(ln,{contents:()=>Ac,filepath:()=>mc});var mc="./docs/agents/workflow-automation.md",Ac=e=>`# Workflow Automation
431
431
 
432
432
  Use this when a backend function needs to trigger a Datadog Workflow Automation workflow and poll for the result.
433
433
 
@@ -603,6 +603,7 @@ Storybook stories are not required for this app right now \u2014 skip them unles
603
603
  ## Rules
604
604
  - Keep secret-dependent work and privileged API calls in backend functions.
605
605
  - Never hardcode API keys, app keys, or OAuth tokens.
606
+ - Each upload adds the \`tags\` in \`datadog-app.config.json\` to the app, plus \`surface:<surface id>\` tags the build adds for embedding inputs the app uses. Uploads never remove tags: removing one from the config leaves it on the app until someone removes it in the App Builder UI. Add a \`surface:\` tag yourself (for example \`surface:datadog.dashboard\`) when the app is meant for a surface whose inputs it doesn't read.
606
607
  - Prefer the generated npm scripts; this workspace uses npm.
607
608
  - For any workspace, dependency, lockfile, or pull-request change, follow \`Required lockfile gate before opening or updating a PR\` in ${t}/AGENTS.md. That root section is the source of truth; do not create an app-local lockfile.
608
609
  `}return`# ${e.name}
@@ -627,6 +628,8 @@ This app uses the published \`@datadog/druids\` package. In scaffolded apps, imp
627
628
  - The scaffold wraps the app in \`DatadogAppProvider\` from \`@datadog/apps-frontend/embedding/react\` at the React root. Keep that setup in place if you restructure the root; every \`@datadog/apps-frontend\` hook must be called below it.
628
629
  - Read host-provided inputs with \`useDatadogAppInput\` from \`@datadog/apps-frontend/inputs/react\`, passing input schemas such as \`datadogTheme\` from \`@datadog/apps-frontend/inputs/schema\`. For details, read \`docs/agents/runtime-context.md\`.
629
630
 
631
+ - The DatadogAppProvider syncs all of your url parameters (\`?<param>=<value>\`) and all fragment identifier / anchor (\`#<value>\`) into the datadog url. Use these to allow for deep-linking of your apps at any state where its correct and best practice to do so.
632
+
630
633
  ## Read relevant guides
631
634
 
632
635
  - For embedded Datadog app context, routing, navigation, browser storage, or parent-page constraints, read \`docs/agents/runtime-context.md\`.
@@ -642,6 +645,7 @@ This app uses the published \`@datadog/druids\` package. In scaffolded apps, imp
642
645
  - Route every external network request through a backend function that calls the generic HTTP action from \`@datadog/action-catalog/http/http\`. Never call \`fetch\` or use Node.js networking APIs to contact external services directly, including from a backend function.
643
646
  - Do not hardcode API keys, app keys, OAuth tokens, passwords, or third-party credentials.
644
647
  - Set the \`name\` and \`description\` fields in \`datadog-app.config.json\` to concise, user-facing values that describe the app.
648
+ - Each upload adds the \`tags\` in \`datadog-app.config.json\` to the app, plus \`surface:<surface id>\` tags the build adds for embedding inputs the app uses. Uploads never remove tags: removing one from the config leaves it on the app until someone removes it in the App Builder UI. Add a \`surface:\` tag yourself (for example \`surface:datadog.dashboard\`) when the app is meant for a surface whose inputs it doesn't read.
645
649
  - Prefer the generated npm scripts in \`package.json\`; this scaffold uses npm.
646
650
  - Never change \`id\` in \`datadog-app.config.json\`. It is this app's permanent identity, not the app's UUID from App Builder \u2014 changing it makes the next upload create a duplicate app.
647
651
  - Before inventing package imports or component props, inspect installed package exports and TypeScript definitions.
@@ -654,8 +658,8 @@ This app uses the published \`@datadog/druids\` package. In scaffolded apps, imp
654
658
  - Use Datadog MCP tools when available for Datadog-specific lookup, diagnostics, or API-backed workflows.
655
659
 
656
660
  Primary docs: https://docs.datadoghq.com/actions/datadog_apps/
657
- `};var lt={};C(lt,{contents:()=>bc,filepath:()=>Ec});var Ec="./CLAUDE.md",bc=e=>`@AGENTS.md
658
- `;var Dn={};C(Dn,{contents:()=>vc,filepath:()=>wc});var Vi=require("node:crypto"),wc="./datadog-app.config.json",Cc=/^([0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/,vc=e=>{let t=e.identifier?.trim();if(t&&!Cc.test(t))throw new Error(`Invalid --identifier "${e.identifier}": must be a lowercase 32-character hex string or a lowercase UUID.`);let n=t||(0,Vi.createHash)("md5").update(`${Math.random().toString()}:${e.name}`).digest("hex"),o={$schema:"https://unpkg.com/@datadog/create-apps/dist/datadog-app.config.schema.json",datadogSite:e.datadogSite,id:n,name:e.name};return`${JSON.stringify(o,null,2)}
661
+ `};var lt={};C(lt,{contents:()=>Ec,filepath:()=>bc});var bc="./CLAUDE.md",Ec=e=>`@AGENTS.md
662
+ `;var Dn={};C(Dn,{contents:()=>vc,filepath:()=>wc});var Vi=require("node:crypto"),wc="./datadog-app.config.json",Cc=/^([0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/,vc=e=>{let t=e.identifier?.trim();if(t&&!Cc.test(t))throw new Error(`Invalid --identifier "${e.identifier}": must be a lowercase 32-character hex string or a lowercase UUID.`);let n=t||(0,Vi.randomUUID)(),o={$schema:"https://unpkg.com/@datadog/create-apps/dist/datadog-app.config.schema.json",datadogSite:e.datadogSite,id:n,name:e.name,tags:[]};return`${JSON.stringify(o,null,2)}
659
663
  `};var hn={};C(hn,{contents:()=>xc,filepath:()=>kc});var kc="./eslint.config.mjs",xc=e=>`import js from '@eslint/js';
660
664
  import { defineConfig, globalIgnores } from 'eslint/config';
661
665
  import reactHooks from 'eslint-plugin-react-hooks';
@@ -679,7 +683,7 @@ export default defineConfig([
679
683
  },
680
684
  },
681
685
  ]);
682
- `;var gn={};C(gn,{contents:()=>Sc,filepath:()=>Bc});var Bc="./public/favicon.ico",Sc=e=>Buffer.from("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o0l2/6RLeP+mT3v/8uXr///////9/P3///////jx9f+tXIX/oUVz/6VMeP+fQXD/mjdp/5k1Z/+cOmv/oEJx/6RKd/+nUHz/qFN+/6hSff+nT3v/pUx4/6NIdv+iRnT/okZ0/6NIdf+kSnf/pEp3/6RKd/+kSnf/pEt4/6JHdf+oUn3/mjdo/82btP//////+PL1///////48vX//////8qWsP+eP2//pUx5/9m0x//kydb/0KG5/8KGpP+xZIv/pUx4/507bP+ZNWf/mjdo/54+bv+iRnT/pk56/6hSff+pU37/pk56/6RKd/+kSnf/pEp3/6RLd/+jSHX/pk56/54+bv+9fJ3//fz9//38/P////////////z5+///////0KK5/5o3aP+qVoD/6dTf/8mVr//Uqr//5MnW/+vY4f/s2uP/5s7a/9q1x//KlrD/uXWX/6pXgf+gQnH/mjdp/5k1Z/+fP2//pEp3/6RKd/+kSnf/o0h2/6ZOev+gQXD/uneZ///////9+/z///////79/f///////Pr7///////BhaP/o0h1/7Fkiv/w4un/okd1/5cxZP+cOWv/oUNy/61chP+9fZ3/z5+3/96+zv/p1N//7t3l/+vY4f/hxNL/06e9/7p2mP+kSnf/pEp3/6RLeP+iR3X/p1B8/5w7bP/WrsL///////v4+f////////////37/P//////8ubs/7VskP/37/P/vX2d///////evs7/okZ0/6xag/+mT3v/pEt3/508bf+ZNWf/mjZo/58/b/+oU37/uHKV/8WNqf/dvc3/8OHo/6VLeP+kS3f/pEt3/6NHdf+nT3v/nj1u/8SLp///////+/b4////////////+/f5///////DiKX/1q3C//v4+v+/gaD///////7+/v+8epv/mTVn/6BBcP+dPG3/pk96/6lUfv+oU33/p1B8/6FEcv+gQnH/li9j/6dQfP/lzNj/okVz/6VNef+kSnf/pEp3/6RJdv+lS3j/o0h2/+jS3f///////Pn6//7+/v//////2LLF/8SKp///////5s7a/8iRrP///////fz8//Pn7P+yZoz/woak/+HD0v+zaI3/nj5u/6NJdv+hRHL/pk56/6pWgP+hRXP/vXyd/+XM2f+ePm7/p097/6RKd/+kSnf/pEl2/6RLeP+jSHX/pk16/+jR3P//////7dzl/928zf/fv8//+vX4///////evs7/zZy0///////69vj///////79/f/9+/z//////+bO2v+gQ3H/p1F8/6ZPev+cO2z/pEp3/5s4af+/f5//4cPS/5s5av+oUX3/pEp3/6RKd/+kSnf/o0l2/6RLeP+jSXb/oEJx/928zf///////Pn6///////48fT//////9Sqv//WrsL///////v2+f///////v3+//79/f/58/b//////8OIpv+cOmv/nj5u/8KGpP++fZ3/lS1h/8yZsv/bt8n/mjZo/6hTfv+kSnf/pEp3/6RKd/+kS3f/o0l2/6RKd/+mTnr/nTxs/969zf//////+/j6//v4+v//////yZSv/927zP//////+vT3//37/P/7+Pn///////79/v//////8+ft/7Bjif/atsn//////+fP2/+VLGH/06i+/9Sqv/+aNmj/qVN+/6RKd/+kSnf/pEp3/6RKd/+kS3j/o0h2/6RKd/+kS3j/pEt3//Tq7///////+/f5///////Hj6v/7Nni///////8+fv////////////9+/z//Pn6//7+/v/9/Pz//Pn7///////69vj//////6xbhP/Uq8D/0KK5/5k0Zv+pU37/pEp3/6RKd/+kSnf/pEp3/6RKd/+kS3j/okd1/6ZOev+eP27/37/P///////69fj//////7Rqj//dvMz///////Pn7f/cusz/3LrL//nz9v////////7///79/f/79vj/+/f5//n09///////1q7C/9u3yf/Jla//mjVn/6hTff+kSnf/pEp3/6RKd/+kSnf/pEp3/6RLd/+jR3X/pk96/59AcP/nz9v///////37/P///v7/4sbU/82btP+oU37/qlaA/7Bjiv+tXIT/qFJ9/+fQ3P/9+/z//fv8/////////////v39///////27PH/8+ju/7t4mv+ePm7/pk97/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0h2/6ZOev+hRXP/rFqD//r19////////v7+///////48fX/zJu0/9Onvf/37/P///7+///////nz9v/p1F8/7l0lv/Mm7T/ypaw/9u4yv/r1+H/+PH1//79/v//////s2iN/6BDcf+lTXn/pEp3/6RKd/+kSnf/pEp3/6NJdv+lS3j/oURz/6tZgv/u3ub///////78/f//////+PH0/9Sqv//w4un///////79/f/9/Pz/+/f5///////z5+3/69jh///////Jk67/lzBk/6NJdv+nUXz/tGuP/8KGpP+pVH//o0d1/6VLeP+kSnf/pEp3/6RKd/+jSXb/pUx5/6FEc/+zaY7/8+ft///+/v/+/v7////////////79/n//Pr7///////7+Pn//vz9///////+/f7///////Hj6v/dvM3///////Hj6v+mT3v/pk96/6JHdf+gQnH/nj5u/6NIdf+kSnf/pEp3/6RKd/+kSnf/pEt4/6JHdf+nUHz/nDxs/8yas///////+/f5///////+/v7////////////9/P3//vz9/////////////fv8///////Vq8D/mjdp/5QrYP/WrsL/+/f5/6VMeP+jSXb/pEt3/6VNef+nT3v/pEt4/6RKd/+kSnf/pEp3/6RKd/+kS3f/o0h1/6ZPe/+ePm7/3r7O///////8+fr///////7+/v///////vz9//z6+//9/Pz//vz9///////9/P3//////+HD0v/ChaT/sGGJ/8iSrf/16/D/okZ0/6ZNef+jSHb/o0h2/6NHdf+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0l2/6VMeP/y5ev///////38/P/+/f7////////////////////////////+/v7//////////////////v7+///////79/n//////82ctP+dPW3/p1B7/6NHdf+kS3f/pEt3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6NJdv+lTXn/pEp3/9u4yf/du8z/8eTr///////+/P3///////ny9f/Qobj/5cvY//v3+f///////v7+///////8+fv/+fT3///////n0Nv/okV0/6VMeP+jSXb/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RLd/+jSHX/pk56/58/b/+wY4r/1azB/75/n/+dPGz/3r7O////////////27jK/5YuYv+ePW7/y5iy///////8+fr////////////8+fr//Pn6/7JmjP+gQ3H/pk56/6NIdv+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kS3f/o0h1/6ZPev+fP2//v4Cg///+/v/79vn//////82btP+yZ43///////7+/v/y5uz/s2iN/5o3af/WrcL///////z6+////////fz9/7JmjP++f57/sWWL/54+bv+mTnr/o0l2/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6NIdv+mTnr/n0Fw/7Vskf/+/P3//v7+//nz9v//////7t7m/8KFo////////Pn6///////48vX/5s3Z//jx9f///////Pn6///////n0Nz/nTxs/9KlvP+nUHv/pk56/6RLeP+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0h2/6ZNev+gQ3L/58/b///////9+/z//vz9///////q1uD/0KO6///////8+fr///////38/f///////fz9//7+/v/+/f7///////ny9v/+/v7/yZSu/5s5av+gQ3L/o0h1/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+jSXb/pUx4/6NIdv/t2+T////////////8+fr//////+HD0v/jx9X///////r1+P///////v7+//79/f/+/v7////////////9/Pz//////9m0x/+ZNGf/sGKJ/8OIpf+iR3T/pUx4/6RJdv+kSnf/pEp3/6RKd/+kSnf/pEp3/6NHdf+nUHv/nT1t/9Gkuv//////+vb4///+////////3bzN//fw9P///////v39//38/f/9+/z//v39//z5+//8+Pn//fz8//78/f/o0dz/yZOu/6pWgP/69ff/7Nnj/6FDcv+mTnr/o0h2/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6NJdv+lTHj/pk56/+bO2v///////fz9//jx9P/s2uP/9u3x/9Wswf/v3+f///////7+/v////////////79/v//////9ezw///////PoLj/3LrL///////Gjqr/nj9v/6dPe/+jR3X/pEt4/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0l2/6VMeP+gQ3L/r2CH/+nT3v/9/P3//////+fR3P+mT3r/nTxs/6FEcv/Dh6X/7dzl/+LG1P/Uqr//y5ix/+nU3////////fz8/8mUr///////8OLp/6ZOev+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEl2/6VMeP+iR3X/n0Fw/7dvk//LmLH/qFN+/6FEc/+oU37/pEp3/59Ab/+kS3j/oUVz/508bf+dPG3/n0Bw/+nT3v/9/P3/5s3a//38/f+xZYv/oENy/6VNef+jSHb/pEt3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0l2/6RLeP+mTnr/oEJx/5w6a/+jSXb/pUx4/6JGdP+kSnf/pk56/6RLeP+mTXn/pk56/6hTfv+iRnT/q1mC/+TJ1v/lzNn/smWL/59AcP+mTnr/o0h1/6RLd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0l2/6NIdv+mTXn/p1F8/6RKd/+jSXb/pEt4/6RKd/+jSHX/o0l2/6NIdv+iSHX/oUZ0/6RLeP+iR3T/n0Jw/6BCcf+hRHL/pk16/6NIdv+kS3f/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAEAAAACAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo0h1/aZOev2ePm79tWyQ/fv4+f39/P39uniZ/aJHdf21bZH9qFR+/aFGdP2eP279nTxs/Z09bf2gQ3L9pEt3/aRKd/2jSXb9qFJ9/e7f5v38+vv9/////ceRrP2wY4n91q3B/cWNqf3Qo7r9x5Gs/cGEov24dJb9rV2F/aNIdv2nUHz9nDpr/dGjuv3////9+vb4/f79/v3Kl7H93LvL/dGlu/2TKl/9oUVz/axag/27eJr9v4Gg/dSrwP21bZH9pUx4/aFEcv2zaY79+fP2/fz6+/3hxtT96dTf/eLH1P3+/f39y5my/c6ft/2iR3X9nDts/ZEmXP28e5z9t3CT/aNIdv2lTXn9n0Bv/bRrkP3v4ej9/Pv7/fPp7v3evs79/////fn09v3////9xIqn/bNojv27eZr9wIOh/bRqj/2kS3f9okd1/adRfP2cPGz9unaY/f////3p1N7948nW/f////3x5ev9/////fXt8f3+/f7959Hc/cKIpf2vYYj9pEp3/aNIdv2kTHj9oERy/axbhP3////99/Dz/cuZsv3Mm7T9zJqz/dewxP3v4Of9+vb4/f////3n0dz9pEp3/aRKd/2jSXb9pEt3/aNIdf3hw9L9/////fbu8v3u3ub9+/j6/f////3nz9v959Db/bRqj/26eJn9woek/aJHdf2iR3X9pk97/Zw7bP3Qo7n9/////fr2+P3////9/v7+/fz7/P3+//79t3GU/dq2yP2+f579lS5i/aFEc/2jSHX9okd0/adRfP2dPW392bTG/f////38+vv9/f39/fz6+/3////9/fz8/fLm7P3kytf9qliB/aRLeP2nUHv9o0l2/aVMeP2hRHP9p1J9/du5yv3Gjqr9/////d28zP2pVX/9/v39/fz6+/327vL9xY2p/Z0+bv2kS3j9oUVz/aRLd/2kSnf9pk56/eXM2f3////93LrL/enV3/38+vv93LvM/f38/P3+/f39y5my/aVMeP2gQ3L9pUx4/aNJdv2kSnf9oEJx/bNojf39/P39+/n6/evZ4v369ff9/////f////38+vv9/////dexxP22cJP9sWSK/Z9BcP2lTXn9o0l2/aVNef2gQ3L92rfJ/f////3t3OX92LLF/fHk6v37+Pn99/Dz/f7+/v3Uq8D97+Ho/a1chP2hRXP9pUx4/aNJdv2kSnf9pEp3/aJHdP3FjKj9uXSW/ZcyZP2pVX/9tGqP/aVOev3buMr9+fT2/b19nf2ePm79pk96/aJHdf2kS3f9pEp3/aRKd/2kS3f9nDxs/Z9CcP2oUnz9okd1/aFEcv2gQ3L9pEt4/a1dhf2fQnD9pk56/aNIdv2kSnf9pEp3/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","base64");var mn={};C(mn,{contents:()=>Tc,filepath:()=>Pc});var Pc="./src/getGreeting.backend.ts",Tc=e=>"export async function getGreeting(name: string) {\n return `Hello, ${name}! This greeting ran as a backend function.`;\n}\n";var An={};C(An,{contents:()=>Ic,filepath:()=>Oc});var Oc="./.gitignore",Ic=e=>`logs
686
+ `;var gn={};C(gn,{contents:()=>Sc,filepath:()=>Bc});var Bc="./public/favicon.ico",Sc=e=>Buffer.from("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o0l2/6RLeP+mT3v/8uXr///////9/P3///////jx9f+tXIX/oUVz/6VMeP+fQXD/mjdp/5k1Z/+cOmv/oEJx/6RKd/+nUHz/qFN+/6hSff+nT3v/pUx4/6NIdv+iRnT/okZ0/6NIdf+kSnf/pEp3/6RKd/+kSnf/pEt4/6JHdf+oUn3/mjdo/82btP//////+PL1///////48vX//////8qWsP+eP2//pUx5/9m0x//kydb/0KG5/8KGpP+xZIv/pUx4/507bP+ZNWf/mjdo/54+bv+iRnT/pk56/6hSff+pU37/pk56/6RKd/+kSnf/pEp3/6RLd/+jSHX/pk56/54+bv+9fJ3//fz9//38/P////////////z5+///////0KK5/5o3aP+qVoD/6dTf/8mVr//Uqr//5MnW/+vY4f/s2uP/5s7a/9q1x//KlrD/uXWX/6pXgf+gQnH/mjdp/5k1Z/+fP2//pEp3/6RKd/+kSnf/o0h2/6ZOev+gQXD/uneZ///////9+/z///////79/f///////Pr7///////BhaP/o0h1/7Fkiv/w4un/okd1/5cxZP+cOWv/oUNy/61chP+9fZ3/z5+3/96+zv/p1N//7t3l/+vY4f/hxNL/06e9/7p2mP+kSnf/pEp3/6RLeP+iR3X/p1B8/5w7bP/WrsL///////v4+f////////////37/P//////8ubs/7VskP/37/P/vX2d///////evs7/okZ0/6xag/+mT3v/pEt3/508bf+ZNWf/mjZo/58/b/+oU37/uHKV/8WNqf/dvc3/8OHo/6VLeP+kS3f/pEt3/6NHdf+nT3v/nj1u/8SLp///////+/b4////////////+/f5///////DiKX/1q3C//v4+v+/gaD///////7+/v+8epv/mTVn/6BBcP+dPG3/pk96/6lUfv+oU33/p1B8/6FEcv+gQnH/li9j/6dQfP/lzNj/okVz/6VNef+kSnf/pEp3/6RJdv+lS3j/o0h2/+jS3f///////Pn6//7+/v//////2LLF/8SKp///////5s7a/8iRrP///////fz8//Pn7P+yZoz/woak/+HD0v+zaI3/nj5u/6NJdv+hRHL/pk56/6pWgP+hRXP/vXyd/+XM2f+ePm7/p097/6RKd/+kSnf/pEl2/6RLeP+jSHX/pk16/+jR3P//////7dzl/928zf/fv8//+vX4///////evs7/zZy0///////69vj///////79/f/9+/z//////+bO2v+gQ3H/p1F8/6ZPev+cO2z/pEp3/5s4af+/f5//4cPS/5s5av+oUX3/pEp3/6RKd/+kSnf/o0l2/6RLeP+jSXb/oEJx/928zf///////Pn6///////48fT//////9Sqv//WrsL///////v2+f///////v3+//79/f/58/b//////8OIpv+cOmv/nj5u/8KGpP++fZ3/lS1h/8yZsv/bt8n/mjZo/6hTfv+kSnf/pEp3/6RKd/+kS3f/o0l2/6RKd/+mTnr/nTxs/969zf//////+/j6//v4+v//////yZSv/927zP//////+vT3//37/P/7+Pn///////79/v//////8+ft/7Bjif/atsn//////+fP2/+VLGH/06i+/9Sqv/+aNmj/qVN+/6RKd/+kSnf/pEp3/6RKd/+kS3j/o0h2/6RKd/+kS3j/pEt3//Tq7///////+/f5///////Hj6v/7Nni///////8+fv////////////9+/z//Pn6//7+/v/9/Pz//Pn7///////69vj//////6xbhP/Uq8D/0KK5/5k0Zv+pU37/pEp3/6RKd/+kSnf/pEp3/6RKd/+kS3j/okd1/6ZOev+eP27/37/P///////69fj//////7Rqj//dvMz///////Pn7f/cusz/3LrL//nz9v////////7///79/f/79vj/+/f5//n09///////1q7C/9u3yf/Jla//mjVn/6hTff+kSnf/pEp3/6RKd/+kSnf/pEp3/6RLd/+jR3X/pk96/59AcP/nz9v///////37/P///v7/4sbU/82btP+oU37/qlaA/7Bjiv+tXIT/qFJ9/+fQ3P/9+/z//fv8/////////////v39///////27PH/8+ju/7t4mv+ePm7/pk97/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0h2/6ZOev+hRXP/rFqD//r19////////v7+///////48fX/zJu0/9Onvf/37/P///7+///////nz9v/p1F8/7l0lv/Mm7T/ypaw/9u4yv/r1+H/+PH1//79/v//////s2iN/6BDcf+lTXn/pEp3/6RKd/+kSnf/pEp3/6NJdv+lS3j/oURz/6tZgv/u3ub///////78/f//////+PH0/9Sqv//w4un///////79/f/9/Pz/+/f5///////z5+3/69jh///////Jk67/lzBk/6NJdv+nUXz/tGuP/8KGpP+pVH//o0d1/6VLeP+kSnf/pEp3/6RKd/+jSXb/pUx5/6FEc/+zaY7/8+ft///+/v/+/v7////////////79/n//Pr7///////7+Pn//vz9///////+/f7///////Hj6v/dvM3///////Hj6v+mT3v/pk96/6JHdf+gQnH/nj5u/6NIdf+kSnf/pEp3/6RKd/+kSnf/pEt4/6JHdf+nUHz/nDxs/8yas///////+/f5///////+/v7////////////9/P3//vz9/////////////fv8///////Vq8D/mjdp/5QrYP/WrsL/+/f5/6VMeP+jSXb/pEt3/6VNef+nT3v/pEt4/6RKd/+kSnf/pEp3/6RKd/+kS3f/o0h1/6ZPe/+ePm7/3r7O///////8+fr///////7+/v///////vz9//z6+//9/Pz//vz9///////9/P3//////+HD0v/ChaT/sGGJ/8iSrf/16/D/okZ0/6ZNef+jSHb/o0h2/6NHdf+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0l2/6VMeP/y5ev///////38/P/+/f7////////////////////////////+/v7//////////////////v7+///////79/n//////82ctP+dPW3/p1B7/6NHdf+kS3f/pEt3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6NJdv+lTXn/pEp3/9u4yf/du8z/8eTr///////+/P3///////ny9f/Qobj/5cvY//v3+f///////v7+///////8+fv/+fT3///////n0Nv/okV0/6VMeP+jSXb/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RLd/+jSHX/pk56/58/b/+wY4r/1azB/75/n/+dPGz/3r7O////////////27jK/5YuYv+ePW7/y5iy///////8+fr////////////8+fr//Pn6/7JmjP+gQ3H/pk56/6NIdv+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kS3f/o0h1/6ZPev+fP2//v4Cg///+/v/79vn//////82btP+yZ43///////7+/v/y5uz/s2iN/5o3af/WrcL///////z6+////////fz9/7JmjP++f57/sWWL/54+bv+mTnr/o0l2/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6NIdv+mTnr/n0Fw/7Vskf/+/P3//v7+//nz9v//////7t7m/8KFo////////Pn6///////48vX/5s3Z//jx9f///////Pn6///////n0Nz/nTxs/9KlvP+nUHv/pk56/6RLeP+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0h2/6ZNev+gQ3L/58/b///////9+/z//vz9///////q1uD/0KO6///////8+fr///////38/f///////fz9//7+/v/+/f7///////ny9v/+/v7/yZSu/5s5av+gQ3L/o0h1/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+jSXb/pUx4/6NIdv/t2+T////////////8+fr//////+HD0v/jx9X///////r1+P///////v7+//79/f/+/v7////////////9/Pz//////9m0x/+ZNGf/sGKJ/8OIpf+iR3T/pUx4/6RJdv+kSnf/pEp3/6RKd/+kSnf/pEp3/6NHdf+nUHv/nT1t/9Gkuv//////+vb4///+////////3bzN//fw9P///////v39//38/f/9+/z//v39//z5+//8+Pn//fz8//78/f/o0dz/yZOu/6pWgP/69ff/7Nnj/6FDcv+mTnr/o0h2/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6NJdv+lTHj/pk56/+bO2v///////fz9//jx9P/s2uP/9u3x/9Wswf/v3+f///////7+/v////////////79/v//////9ezw///////PoLj/3LrL///////Gjqr/nj9v/6dPe/+jR3X/pEt4/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0l2/6VMeP+gQ3L/r2CH/+nT3v/9/P3//////+fR3P+mT3r/nTxs/6FEcv/Dh6X/7dzl/+LG1P/Uqr//y5ix/+nU3////////fz8/8mUr///////8OLp/6ZOev+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEl2/6VMeP+iR3X/n0Fw/7dvk//LmLH/qFN+/6FEc/+oU37/pEp3/59Ab/+kS3j/oUVz/508bf+dPG3/n0Bw/+nT3v/9/P3/5s3a//38/f+xZYv/oENy/6VNef+jSHb/pEt3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0l2/6RLeP+mTnr/oEJx/5w6a/+jSXb/pUx4/6JGdP+kSnf/pk56/6RLeP+mTXn/pk56/6hTfv+iRnT/q1mC/+TJ1v/lzNn/smWL/59AcP+mTnr/o0h1/6RLd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0l2/6NIdv+mTXn/p1F8/6RKd/+jSXb/pEt4/6RKd/+jSHX/o0l2/6NIdv+iSHX/oUZ0/6RLeP+iR3T/n0Jw/6BCcf+hRHL/pk16/6NIdv+kS3f/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAEAAAACAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo0h1/aZOev2ePm79tWyQ/fv4+f39/P39uniZ/aJHdf21bZH9qFR+/aFGdP2eP279nTxs/Z09bf2gQ3L9pEt3/aRKd/2jSXb9qFJ9/e7f5v38+vv9/////ceRrP2wY4n91q3B/cWNqf3Qo7r9x5Gs/cGEov24dJb9rV2F/aNIdv2nUHz9nDpr/dGjuv3////9+vb4/f79/v3Kl7H93LvL/dGlu/2TKl/9oUVz/axag/27eJr9v4Gg/dSrwP21bZH9pUx4/aFEcv2zaY79+fP2/fz6+/3hxtT96dTf/eLH1P3+/f39y5my/c6ft/2iR3X9nDts/ZEmXP28e5z9t3CT/aNIdv2lTXn9n0Bv/bRrkP3v4ej9/Pv7/fPp7v3evs79/////fn09v3////9xIqn/bNojv27eZr9wIOh/bRqj/2kS3f9okd1/adRfP2cPGz9unaY/f////3p1N7948nW/f////3x5ev9/////fXt8f3+/f7959Hc/cKIpf2vYYj9pEp3/aNIdv2kTHj9oERy/axbhP3////99/Dz/cuZsv3Mm7T9zJqz/dewxP3v4Of9+vb4/f////3n0dz9pEp3/aRKd/2jSXb9pEt3/aNIdf3hw9L9/////fbu8v3u3ub9+/j6/f////3nz9v959Db/bRqj/26eJn9woek/aJHdf2iR3X9pk97/Zw7bP3Qo7n9/////fr2+P3////9/v7+/fz7/P3+//79t3GU/dq2yP2+f579lS5i/aFEc/2jSHX9okd0/adRfP2dPW392bTG/f////38+vv9/f39/fz6+/3////9/fz8/fLm7P3kytf9qliB/aRLeP2nUHv9o0l2/aVMeP2hRHP9p1J9/du5yv3Gjqr9/////d28zP2pVX/9/v39/fz6+/327vL9xY2p/Z0+bv2kS3j9oUVz/aRLd/2kSnf9pk56/eXM2f3////93LrL/enV3/38+vv93LvM/f38/P3+/f39y5my/aVMeP2gQ3L9pUx4/aNJdv2kSnf9oEJx/bNojf39/P39+/n6/evZ4v369ff9/////f////38+vv9/////dexxP22cJP9sWSK/Z9BcP2lTXn9o0l2/aVNef2gQ3L92rfJ/f////3t3OX92LLF/fHk6v37+Pn99/Dz/f7+/v3Uq8D97+Ho/a1chP2hRXP9pUx4/aNJdv2kSnf9pEp3/aJHdP3FjKj9uXSW/ZcyZP2pVX/9tGqP/aVOev3buMr9+fT2/b19nf2ePm79pk96/aJHdf2kS3f9pEp3/aRKd/2kS3f9nDxs/Z9CcP2oUnz9okd1/aFEcv2gQ3L9pEt4/a1dhf2fQnD9pk56/aNIdv2kSnf9pEp3/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","base64");var mn={};C(mn,{contents:()=>Oc,filepath:()=>Pc});var Pc="./src/getGreeting.backend.ts",Oc=e=>"export async function getGreeting(name: string) {\n return `Hello, ${name}! This greeting ran as a backend function.`;\n}\n";var An={};C(An,{contents:()=>Ic,filepath:()=>Tc});var Tc="./.gitignore",Ic=e=>`logs
683
687
  *.log
684
688
  npm-debug.log*
685
689
  yarn-debug.log*
@@ -707,6 +711,7 @@ dist-ssr
707
711
  .env
708
712
  .env.local
709
713
  .env.*.local
714
+ datadog-app.local.json
710
715
  `;var yn={};C(yn,{contents:()=>Nc,filepath:()=>Rc});var Rc="./index.html",Nc=e=>`<!DOCTYPE html>
711
716
  <html lang="en">
712
717
 
@@ -752,7 +757,7 @@ if (appRoot) {
752
757
  } else {
753
758
  console.error('Missing #app div for createRoot.');
754
759
  }
755
- `;var En={};C(En,{contents:()=>Gc,filepath:()=>Lc});var Lc="./package.json",Gc=e=>{if(e.workspace){let n={name:e.directoryName,version:"0.0.1",private:!0,scripts:{dev:"npx datadog-apps dev","dev:verify":"npx datadog-apps dev --mode dev-verify",build:"npx datadog-apps build",upload:"npx datadog-apps upload",cli:"npx datadog-apps",lint:"eslint . --report-unused-disable-directives --max-warnings 0","lint:fix":"eslint . --fix",preview:"vite preview",typecheck:"tsc --noEmit"},dependencies:{"@datadog/action-catalog":"^0.0.7","@datadog/apps-backend":">=0.0.1 <0.1.0","@datadog/apps-frontend":">=0.0.7 <0.1.0","@datadog/druids":"^0.0.7","@tanstack/react-query":"^5.101.4",react:"^19.2.8","react-dom":"^19.2.8"},optionalDependencies:{"@napi-rs/keyring":"^1.3.0"}};return JSON.stringify(n,null,2)}let t={name:e.directoryName,version:"0.0.1",private:!0,engines:{node:"^20.19.0 || >=22.13.0"},scripts:{dev:"npx datadog-apps dev","dev:verify":"npx datadog-apps dev --mode dev-verify",build:"npx datadog-apps build",upload:"npx datadog-apps upload",cli:"npx datadog-apps",lint:"eslint . --report-unused-disable-directives --max-warnings 0","lint:fix":"eslint . --fix",preview:"vite preview",typecheck:"tsc --noEmit"},dependencies:{"@datadog/action-catalog":"^0.0.7","@datadog/apps-backend":">=0.0.1 <0.1.0","@datadog/apps-frontend":">=0.0.7 <0.1.0","@datadog/druids":"^0.0.7","@tanstack/react-query":"^5.101.4",react:"^19.2.8","react-dom":"^19.2.8"},optionalDependencies:{"@napi-rs/keyring":"^1.3.0"},devDependencies:{"@datadog/apps-cli":">=0.0.2 <0.1.0","@datadog/vite-plugin":"^3.3.0","@eslint/js":"^9.39.5","@types/node":"^24.12.2","@types/react":"^19.2.18","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.1.0",eslint:"^9.39.5","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.4",globals:"^17.11.0",typescript:"^5.9.3","typescript-eslint":"^8.67.0",vite:"^8.2.2"}};return JSON.stringify(t,null,2)};var bn={};C(bn,{contents:()=>Uc,filepath:()=>Hc});var Hc="./tsconfig.json",Uc=e=>e.workspace?JSON.stringify({extends:`${e.workspace.rootRelativePath}/tsconfig.base.json`,include:["src"]},null,2):JSON.stringify({compilerOptions:{target:"ES2020",useDefineForClassFields:!0,lib:["ES2020","DOM","DOM.Iterable"],module:"ESNext",skipLibCheck:!0,moduleResolution:"bundler",allowImportingTsExtensions:!0,resolveJsonModule:!0,isolatedModules:!0,noEmit:!0,jsx:"react-jsx",strict:!0,noUnusedLocals:!0,noUnusedParameters:!0,noFallthroughCasesInSwitch:!0},include:["src"]},null,2);var wn={};C(wn,{contents:()=>qc,filepath:()=>zc});var zc="./vite.config.ts",qc=e=>{let t="";return(e.rumConfig?.applicationId||e.rumConfig?.clientToken)&&(t=`
760
+ `;var bn={};C(bn,{contents:()=>Gc,filepath:()=>Lc});var Lc="./package.json",Gc=e=>{if(e.workspace){let n={name:e.directoryName,version:"0.0.1",private:!0,scripts:{dev:"npx datadog-apps dev","dev:verify":"npx datadog-apps dev --mode dev-verify",build:"npx datadog-apps build",upload:"npx datadog-apps upload",cli:"npx datadog-apps",lint:"eslint . --report-unused-disable-directives --max-warnings 0","lint:fix":"eslint . --fix",preview:"vite preview",typecheck:"tsc --noEmit"},dependencies:{"@datadog/action-catalog":"^0.0.7","@datadog/apps-backend":">=0.0.1 <0.1.0","@datadog/apps-frontend":">=0.0.7 <0.1.0","@datadog/druids":"^0.0.7","@tanstack/react-query":"^5.101.4",react:"^19.2.8","react-dom":"^19.2.8"},optionalDependencies:{"@napi-rs/keyring":"^1.3.0"}};return JSON.stringify(n,null,2)}let t={name:e.directoryName,version:"0.0.1",private:!0,engines:{node:"^20.19.0 || >=22.13.0"},scripts:{dev:"npx datadog-apps dev","dev:verify":"npx datadog-apps dev --mode dev-verify",build:"npx datadog-apps build",upload:"npx datadog-apps upload",cli:"npx datadog-apps",lint:"eslint . --report-unused-disable-directives --max-warnings 0","lint:fix":"eslint . --fix",preview:"vite preview",typecheck:"tsc --noEmit"},dependencies:{"@datadog/action-catalog":"^0.0.7","@datadog/apps-backend":">=0.0.1 <0.1.0","@datadog/apps-frontend":">=0.0.7 <0.1.0","@datadog/druids":"^0.0.7","@tanstack/react-query":"^5.101.4",react:"^19.2.8","react-dom":"^19.2.8"},optionalDependencies:{"@napi-rs/keyring":"^1.3.0"},devDependencies:{"@datadog/apps-cli":">=0.0.2 <0.1.0","@datadog/vite-plugin":"^3.3.1","@eslint/js":"^9.39.5","@types/node":"^24.12.2","@types/react":"^19.2.18","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.1.0",eslint:"^9.39.5","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.4",globals:"^17.11.0",typescript:"^5.9.3","typescript-eslint":"^8.67.0",vite:"^8.2.2"}};return JSON.stringify(t,null,2)};var En={};C(En,{contents:()=>Uc,filepath:()=>Hc});var Hc="./tsconfig.json",Uc=e=>e.workspace?JSON.stringify({extends:`${e.workspace.rootRelativePath}/tsconfig.base.json`,include:["src"]},null,2):JSON.stringify({compilerOptions:{target:"ES2020",useDefineForClassFields:!0,lib:["ES2020","DOM","DOM.Iterable"],module:"ESNext",skipLibCheck:!0,moduleResolution:"bundler",allowImportingTsExtensions:!0,resolveJsonModule:!0,isolatedModules:!0,noEmit:!0,jsx:"react-jsx",strict:!0,noUnusedLocals:!0,noUnusedParameters:!0,noFallthroughCasesInSwitch:!0},include:["src"]},null,2);var wn={};C(wn,{contents:()=>qc,filepath:()=>zc});var zc="./vite.config.ts",qc=e=>{let t="";return(e.rumConfig?.applicationId||e.rumConfig?.clientToken)&&(t=`
756
761
  rum: {
757
762
  enable: true,
758
763
  sdk: {
@@ -792,6 +797,8 @@ export default defineConfig({
792
797
  // and do NOT set it to the app's UUID from App Builder.
793
798
  identifier: datadogAppConfig.id,
794
799
  name: datadogAppConfig.name,
800
+ // Optional in datadog-app.config.json, so read it without assuming the key exists.
801
+ tags: (datadogAppConfig as { tags?: string[] }).tags,
795
802
  authOverrides: {
796
803
  method: hasDatadogApiKeys ? 'apiKey' : 'oauth',
797
804
  },
@@ -830,7 +837,7 @@ Before editing, read this root \`AGENTS.md\` and every nested \`AGENTS.md\` that
830
837
  ## Layout
831
838
 
832
839
  - \`${t}/<name>/\` \u2014 each Datadog App lives in its own directory here.
833
- - \`packages/*\` \u2014 optional shared libraries, depended on from apps via the \`"*"\` version range (npm workspaces links them locally). Create them with \`npm create @datadog/apps@dev -- --package <name>\`.
840
+ - \`packages/*\` \u2014 optional shared libraries, depended on from apps via the \`"*"\` version range (npm workspaces links them locally). Create them with \`npm create @datadog/apps@latest -- --package <name>\`.
834
841
  - Shared config (root \`package.json\`, \`tsconfig.base.json\`) and \`docs/agents/\` live at the workspace root.
835
842
 
836
843
  ## Working with apps
@@ -845,7 +852,7 @@ Before editing, read this root \`AGENTS.md\` and every nested \`AGENTS.md\` that
845
852
 
846
853
  Changes reach users by merge, not by manual upload: open a pull request and pass the single validation job in \`.github/workflows/validate-datadog-apps.yml\`. After merge into the default branch, \`.github/workflows/deploy-datadog-apps.yml\` uploads directly changed \`${t}/<name>\` apps or every app when shared code or root build inputs change. The app updates live in App Builder \u2014 that's where the change should be verified, not just locally.
847
854
 
848
- The generated matrix installs from the root lockfile and runs the root-installed \`datadog-apps\` CLI from each selected app directory, authenticated with \`DATADOG_API_KEY\` and \`DATADOG_APP_KEY\` repository secrets. It does not depend on app-owned npm scripts. See \`docs/agents/cicd.md\` for the full workflow behavior.
855
+ The generated matrix installs from the root lockfile and runs \`DataDog/apps-github-action\` for each selected app directory with the root-installed \`datadog-apps\` CLI, authenticated with \`DATADOG_API_KEY\` and \`DATADOG_APP_KEY\` repository secrets. It does not depend on app-owned npm scripts. See \`docs/agents/cicd.md\` for the full workflow behavior.
849
856
 
850
857
  ## Testing
851
858
 
@@ -857,9 +864,13 @@ The generated matrix installs from the root lockfile and runs the root-installed
857
864
 
858
865
  Before scaffolding a new app, sync your branch with the repository's dynamically resolved default branch to avoid stale lockfile entries. If the detected default branch is \`master\`, run \`git fetch origin master && git merge --no-ff origin/master\`; substitute the detected branch name when it is not \`master\`. This ensures \`npm install\` runs against the current workspace state rather than a stale snapshot that may include deleted apps.
859
866
 
860
- Run \`npm create @datadog/apps@dev -- <directory> --name "<display name>"\` from the workspace root. Creator versions can differ, so never assume this command installed dependencies at the root or updated the shared lockfile.
867
+ Run \`npm create @datadog/apps@latest -- <directory> --name "<display name>"\` from the workspace root. Creator versions can differ, so never assume this command installed dependencies at the root or updated the shared lockfile.
868
+
869
+ **Agent-created apps:** When a user asks the agent to add an app to this workspace, run \`npm create @datadog/apps@latest -- <directory> --name "<display name>" --template vite-react --yes\` from the workspace root.
870
+
871
+ When the request carries an app id \u2014 the app already exists in App Builder and this scaffold is its code \u2014 pass \`--identifier <app id>\` as well, using that value verbatim. Omitting it makes the CLI mint a fresh id, and the upload then creates a second, duplicate app instead of updating the one the user is looking at. Never invent an identifier, and never rewrite the \`id\` in an existing app's \`datadog-app.config.json\` to match one: an app's id is permanent, so changing it has the same duplicating effect. If a request asks you to point an existing app directory at a different id, stop and say so instead.
861
872
 
862
- **Agent-created apps:** When a user asks the agent to add an app to this workspace, run \`npm create @datadog/apps@dev -- <directory> --name "<display name>" --template vite-react --yes\` from the workspace root. After the scaffold returns, the agent must run \`npm install --package-lock-only --ignore-scripts\` and then \`npm ci --ignore-scripts\` from the workspace root. Verify the new workspace records described below and include the regenerated root \`package-lock.json\` in the same pull request. Do not open, update, or mark the pull request ready while either command fails or the lockfile records are missing. The generated \`${t}/<directory>/package.json\` must also satisfy the React alignment rule in **Managing dependencies**.
873
+ After the scaffold returns, the agent must run \`npm install --package-lock-only --ignore-scripts\` and then \`npm ci --ignore-scripts\` from the workspace root. Verify the new workspace records described below and include the regenerated root \`package-lock.json\` in the same pull request. Do not open, update, or mark the pull request ready while either command fails or the lockfile records are missing. The generated \`${t}/<directory>/package.json\` must also satisfy the React alignment rule in **Managing dependencies**.
863
874
 
864
875
  This is an npm workspace when the root \`package.json\` has a \`workspaces\` field and the root contains \`package-lock.json\`. After adding, removing, or renaming a workspace, the root lockfile must contain both its \`${t}/<directory>\` or \`packages/<directory>\` package record and its \`node_modules/<package-name>\` workspace link.
865
876
 
@@ -909,7 +920,7 @@ Shared libraries live under \`packages/<name>/\` and are linked into apps throug
909
920
  Scaffold one with the CLI (recommended):
910
921
 
911
922
  \`\`\`sh
912
- npm create @datadog/apps@dev -- --package shared
923
+ npm create @datadog/apps@latest -- --package shared
913
924
  \`\`\`
914
925
 
915
926
  This creates \`packages/shared/\` with a scoped \`@${e.name}/shared\` package name, an \`exports\` map pointing at raw \`src/index.ts\` source, and a \`tsconfig.json\` that extends the root \`tsconfig.base.json\`. To wire it into an app:
@@ -954,7 +965,7 @@ When the user asks to "publish", "push up", or "create a repo" for this workspac
954
965
  - Data access (DDSQL vs. Action Catalog, Connections, datastores): \`docs/agents/data.md\`
955
966
  - Triggering or polling Workflow Automation from a backend function: \`docs/agents/workflow-automation.md\`
956
967
  - Upgrading \`@datadog/vite-plugin\` or \`@datadog/action-catalog\`: \`docs/agents/upgrading.md\`
957
- `};var Ji={name:"Vite & React (workspace)",description:"Datadog Apps npm-workspace root.",postScaffoldCommands:{setup:["npm install","npm ci --ignore-scripts"],gitInit:["git init","git add .",'git commit -m "Initial commit"']}};var zo={};C(zo,{contents:()=>td,filepath:()=>ed});var ed="./package.json",td=e=>{let t=e.workspace?.container??"apps",n={name:e.name,version:"0.0.1",private:!0,workspaces:[`${t}/*`,"packages/*"],datadogApps:{container:t},engines:{node:"^20.19.0 || >=22.13.0"},overrides:{react:"^19.2.8","react-dom":"^19.2.8"},scripts:{build:"npm run build --workspaces --if-present",upload:"npm run upload --workspaces --if-present",typecheck:"npm run typecheck --workspaces --if-present",lint:"eslint . --report-unused-disable-directives --max-warnings 0","lint:fix":"eslint . --fix"},devDependencies:{"@datadog/apps-cli":">=0.0.2 <0.1.0","@datadog/vite-plugin":"^3.3.0","@eslint/js":"^9.39.5","@types/node":"^24.12.2","@types/react":"^19.2.18","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.1.0",esbuild:"^0.28.0",eslint:"^9.39.5","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.4",globals:"^17.11.0",typescript:"^5.9.3","typescript-eslint":"^8.67.0",vite:"^8.2.2"}};return JSON.stringify(n,null,2)};var qo={};C(qo,{contents:()=>od,filepath:()=>nd});var nd="./.github/workflows/validate-datadog-apps.yml",od=()=>`name: Validate Datadog Apps
968
+ `};var Ji={name:"Vite & React (workspace)",description:"Datadog Apps npm-workspace root.",postScaffoldCommands:{setup:["npm install","npm ci --ignore-scripts"],gitInit:["git init","git add .",'git commit -m "Initial commit"']}};var zo={};C(zo,{contents:()=>td,filepath:()=>ed});var ed="./package.json",td=e=>{let t=e.workspace?.container??"apps",n={name:e.name,version:"0.0.1",private:!0,workspaces:[`${t}/*`,"packages/*"],datadogApps:{container:t},engines:{node:"^20.19.0 || >=22.13.0"},overrides:{react:"^19.2.8","react-dom":"^19.2.8"},scripts:{build:"npm run build --workspaces --if-present",upload:"npm run upload --workspaces --if-present",typecheck:"npm run typecheck --workspaces --if-present",lint:"eslint . --report-unused-disable-directives --max-warnings 0","lint:fix":"eslint . --fix"},devDependencies:{"@datadog/apps-cli":">=0.0.2 <0.1.0","@datadog/vite-plugin":"^3.3.1","@eslint/js":"^9.39.5","@types/node":"^24.12.2","@types/react":"^19.2.18","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.1.0",esbuild:"^0.28.0",eslint:"^9.39.5","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.4",globals:"^17.11.0",typescript:"^5.9.3","typescript-eslint":"^8.67.0",vite:"^8.2.2"}};return JSON.stringify(n,null,2)};var qo={};C(qo,{contents:()=>od,filepath:()=>nd});var nd="./.github/workflows/validate-datadog-apps.yml",od=()=>`name: Validate Datadog Apps
958
969
 
959
970
  on:
960
971
  pull_request: {}
@@ -1118,17 +1129,17 @@ jobs:
1118
1129
  run: |
1119
1130
  if [ -z "$DD_API_KEY" ] || [ -z "$DD_APP_KEY" ]; then
1120
1131
  echo "::error::DATADOG_API_KEY / DATADOG_APP_KEY are not set on this repository."
1121
- echo "::error::Set them under Settings > Secrets and variables > Actions, or run: npm create @datadog/apps@dev -- --set-secrets"
1132
+ echo "::error::Set them under Settings > Secrets and variables > Actions, or run: npm create @datadog/apps@latest -- --set-secrets"
1122
1133
  exit 1
1123
1134
  fi
1124
1135
  - name: Upload \${{ matrix.app }}
1125
- working-directory: ${t}/\${{ matrix.app }}
1126
- env:
1127
- DD_API_KEY: \${{ secrets.DATADOG_API_KEY }}
1128
- DD_APP_KEY: \${{ secrets.DATADOG_APP_KEY }}
1129
- DD_SITE: \${{ vars.DD_SITE }}
1130
- run: |
1131
- "$GITHUB_WORKSPACE/node_modules/.bin/datadog-apps" upload --version-name "$GITHUB_SHA"
1136
+ uses: DataDog/apps-github-action@2c2495d48c9569b6eace166a5d43e60d9e5b81da # v0.1.1
1137
+ with:
1138
+ datadog-api-key: \${{ secrets.DATADOG_API_KEY }}
1139
+ datadog-app-key: \${{ secrets.DATADOG_APP_KEY }}
1140
+ datadog-site: \${{ vars.DD_SITE }}
1141
+ app-directory: ${t}/\${{ matrix.app }}
1142
+ install-command: 'true'
1132
1143
  `};var Yo={};C(Yo,{contents:()=>ad,filepath:()=>sd});var sd="./.github/scripts/validate-workspace.mjs",ad=()=>`import fs from 'node:fs';
1133
1144
  import path from 'node:path';
1134
1145
 
@@ -1180,7 +1191,7 @@ if (mismatches.length) {
1180
1191
  'Workspace React dependency mismatch:\\n' + mismatches.join('\\n'),
1181
1192
  );
1182
1193
  }
1183
- `;var Qo={};C(Qo,{contents:()=>cd,filepath:()=>ud});var ud="./tsconfig.base.json",cd=e=>JSON.stringify({compilerOptions:{target:"ES2020",useDefineForClassFields:!0,lib:["ES2020","DOM","DOM.Iterable"],module:"ESNext",skipLibCheck:!0,moduleResolution:"bundler",allowImportingTsExtensions:!0,resolveJsonModule:!0,isolatedModules:!0,noEmit:!0,jsx:"react-jsx",strict:!0,noUnusedLocals:!0,noUnusedParameters:!0,noFallthroughCasesInSwitch:!0}},null,2);var Xi={metadata:Zi,files:[Dn,rn,fn,dn,sn,an,un,cn,ln,pn,lt,hn,mn,An,gn,yn,Fn,En,bn,wn],workspace:{root:{metadata:Ji,files:[zo,Ko,qo,Yo,Qo,hn,An,Uo,lt,dn,sn,an,un,cn,ln,pn]},app:{files:[Dn,rn,mn,fn,lt,gn,yn,Fn,En,bn,wn]},package:{files:[Go,Ho,Lo]}}};var ft={"vite-react":Xi};function _i(e,t){let n=[];return typeof e!="object"||e===null?(n.push(`[${t}] metadata.json must be a valid JSON object`),n):(!("name"in e)||typeof e.name!="string"?n.push(`[${t}] metadata.json is missing required "name" field (string)`):e.name.trim()===""&&n.push(`[${t}] metadata.json "name" field cannot be empty`),!("description"in e)||typeof e.description!="string"?n.push(`[${t}] metadata.json is missing required "description" field (string)`):e.description.trim()===""&&n.push(`[${t}] metadata.json "description" field cannot be empty`),n)}function Cn(e,t){let n=[];return typeof e!="object"||e===null?(n.push(`[${t}] must export an object`),n):("filepath"in e?typeof e.filepath!="string"&&n.push(`[${t}] "filepath" must be a string, got ${typeof e.filepath}`):n.push(`[${t}] missing required export "filepath"`),"contents"in e?typeof e.contents!="function"&&n.push(`[${t}] "contents" must be a function, got ${typeof e.contents}`):n.push(`[${t}] missing required export "contents"`),n)}var es=["npm","yarn","git"],ts=["|",">","<","$(","`","&&","||",";"];function dd(e){let t=e.trim(),o=t.split(/\s+/)[0];if(!o||!es.includes(o))return!1;for(let r of ts)if(t.includes(r))return!1;return!0}function $i(e,t){let n=[];if(!e.postScaffoldCommands)return n;let o=[...e.postScaffoldCommands.setup??[],...e.postScaffoldCommands.gitInit??[]];for(let r of o)if(!dd(r)){let i=es.join(", "),a=ts.join(", ");n.push(`[${t}] Unsafe post-scaffold command: "${r}".
1194
+ `;var Qo={};C(Qo,{contents:()=>cd,filepath:()=>ud});var ud="./tsconfig.base.json",cd=e=>JSON.stringify({compilerOptions:{target:"ES2020",useDefineForClassFields:!0,lib:["ES2020","DOM","DOM.Iterable"],module:"ESNext",skipLibCheck:!0,moduleResolution:"bundler",allowImportingTsExtensions:!0,resolveJsonModule:!0,isolatedModules:!0,noEmit:!0,jsx:"react-jsx",strict:!0,noUnusedLocals:!0,noUnusedParameters:!0,noFallthroughCasesInSwitch:!0}},null,2);var Xi={metadata:Zi,files:[Dn,rn,fn,dn,sn,an,un,cn,ln,pn,lt,hn,mn,An,gn,yn,Fn,bn,En,wn],workspace:{root:{metadata:Ji,files:[zo,Ko,qo,Yo,Qo,hn,An,Uo,lt,dn,sn,an,un,cn,ln,pn]},app:{files:[Dn,rn,mn,fn,lt,gn,yn,Fn,bn,En,wn]},package:{files:[Go,Ho,Lo]}}};var ft={"vite-react":Xi};function _i(e,t){let n=[];return typeof e!="object"||e===null?(n.push(`[${t}] metadata.json must be a valid JSON object`),n):(!("name"in e)||typeof e.name!="string"?n.push(`[${t}] metadata.json is missing required "name" field (string)`):e.name.trim()===""&&n.push(`[${t}] metadata.json "name" field cannot be empty`),!("description"in e)||typeof e.description!="string"?n.push(`[${t}] metadata.json is missing required "description" field (string)`):e.description.trim()===""&&n.push(`[${t}] metadata.json "description" field cannot be empty`),n)}function Cn(e,t){let n=[];return typeof e!="object"||e===null?(n.push(`[${t}] must export an object`),n):("filepath"in e?typeof e.filepath!="string"&&n.push(`[${t}] "filepath" must be a string, got ${typeof e.filepath}`):n.push(`[${t}] missing required export "filepath"`),"contents"in e?typeof e.contents!="function"&&n.push(`[${t}] "contents" must be a function, got ${typeof e.contents}`):n.push(`[${t}] missing required export "contents"`),n)}var es=["npm","yarn","git"],ts=["|",">","<","$(","`","&&","||",";"];function dd(e){let t=e.trim(),o=t.split(/\s+/)[0];if(!o||!es.includes(o))return!1;for(let r of ts)if(t.includes(r))return!1;return!0}function $i(e,t){let n=[];if(!e.postScaffoldCommands)return n;let o=[...e.postScaffoldCommands.setup??[],...e.postScaffoldCommands.gitInit??[]];for(let r of o)if(!dd(r)){let i=es.join(", "),a=ts.join(", ");n.push(`[${t}] Unsafe post-scaffold command: "${r}".
1184
1195
  Only ${i} commands without dangerous patterns (${a}) are allowed.`)}return n}function ns(){let e=[];for(let[t,n]of Object.entries(ft)){e.push(..._i(n.metadata,t)),e.push(...$i(n.metadata,t));for(let o of n.files)e.push(...Cn(o,n.metadata.name));if(n.workspace){let o=n.workspace;e.push(..._i(o.root.metadata,`${t} (workspace root)`)),e.push(...$i(o.root.metadata,`${t} (workspace root)`));for(let r of o.root.files)e.push(...Cn(r,`${t} (workspace root)`));for(let r of o.app.files)e.push(...Cn(r,`${t} (workspace app)`));if(o.package)for(let r of o.package.files)e.push(...Cn(r,`${t} (workspace package)`))}}if(e.length>0){let t=["Template validation errors:",...e.map(n=>` - ${n}`)].join(`
1185
1196
  `);return console.log(t),1}return 0}function De(e){let t=ft[e];if(!t){let n=Object.keys(ft).join(", ");throw new Error(`Unknown template "${e}". Available templates: ${n}. Remove the --template option to select from the list instead.`)}return t}async function Dt(){let e=Object.values(ft).map(t=>({name:t.metadata.name,value:t,description:t.metadata.description}));if(e.length===0)throw new Error("No templates found.");return He({message:"Select a template",choices:e.map(({name:t,value:n,description:o})=>({name:`${Si(t)}
1186
- ${w(o)}`,value:n}))})}async function qe(e,t){let n=t.map(async({filepath:o,contents:r})=>{let i=Vo.default.join(e,o);await Wo.default.mkdir(Vo.default.dirname(i),{recursive:!0}),await Wo.default.writeFile(i,r,Buffer.isBuffer(r)?void 0:{encoding:"utf-8"})});await Promise.all(n)}var Zo="packages";function Jo(e,t){console.log(),console.log(),console.log(`Creating ${P(e)} in ${P(t)}...`),console.log(),console.log()}var vn=class extends N.Command{static paths=[N.Command.Default];static usage=N.Command.Usage({description:"Create a new Datadog App",examples:[["Create a new app interactively","npm init @datadog/apps my-app"],["Create a new app non-interactively","npm init @datadog/apps my-app --template vite-react -y"],["Create an app with a custom name and site",'npm init @datadog/apps my-app --name "My App" --site datadoghq.eu -y'],["Initialize a monorepo workspace","npm create @datadog/apps@dev -- --monorepo"],["Create and publish a private monorepo","npm create @datadog/apps@dev -- my-workspace --monorepo --app-directory my-app --github-repo DataDog/my-workspace"],["Add another app inside a workspace","npm create @datadog/apps@dev -- my-second-app"]]});directory=N.Option.String({required:!1});template=N.Option.String("--template",{required:!1,description:"Template to use (e.g., vite-react)"});appName=N.Option.String("--name",{required:!1,description:"App name (user-facing)"});identifier=N.Option.String("--identifier",{required:!1,description:"App identifier baked into datadog-app.config.json (defaults to a generated value)"});yes=N.Option.Boolean("--yes,-y",{description:"Accept all defaults without prompting"});overwrite=N.Option.Boolean("--overwrite",{description:"Overwrite existing directory without prompting"});validate=N.Option.Boolean("--validate",{description:"Validate templates and exit"});skipPostScaffold=N.Option.Boolean("--skip-post-scaffold",{description:"Skip post-scaffold commands"});monorepo=N.Option.Boolean("--monorepo",{description:"Initialize a new Datadog Apps monorepo (npm workspace) and scaffold the first app"});appDirectory=N.Option.String("--app-directory",{required:!1,description:"First app directory when initializing a monorepo workspace"});package=N.Option.String("--package",{required:!1,description:"Shared package name (created under packages/<name>)"});container=N.Option.String("--container",{required:!1,description:"Apps container directory for a new workspace (default: apps)"});datadogSite=N.Option.String("--site",{required:!1,description:"Datadog site (e.g. datadoghq.com, datadoghq.eu)"});githubRepo=N.Option.String("--github-repo",{required:!1,description:"Create a private GitHub repository for a new monorepo, set it as origin, and push"});setSecrets=N.Option.Boolean("--set-secrets",{description:"Set the Datadog deploy secrets (DATADOG_API_KEY / DATADOG_APP_KEY) on an existing repository via gh, then exit. Uses --github-repo, or derives OWNER/REPO from the origin remote."});async execute(){console.log(Pi),console.log(),console.log();try{if(this.validate)return ns();if(this.appDirectory&&!this.monorepo)throw new Error("--app-directory is only available when initializing a workspace with --monorepo.");if(this.setSecrets)return await this.runSetSecrets();if(this.githubRepo&&!this.monorepo)throw new Error("--github-repo is only available when creating a new monorepo workspace.");let t=So(process.cwd());if(t){if(this.monorepo)throw new Error(`Already inside a Datadog Apps workspace at ${t.root}. Re-run without --monorepo to add an app.`);if(this.skipPostScaffold)throw new Error("Workspace dependency installation and lockfile validation cannot be skipped.");let o=oe.default.relative(process.cwd(),t.root)||".";if(console.log(P(`Workspace detected at ${o}; new apps are created under ${t.container}/.`)),this.yes&&this.directory===void 0&&this.package===void 0)throw new Error("A directory name is required when using --yes. Pass it as a positional argument, or use --package to add a shared package.");let r=await this.resolveAddMode();return r==="secrets"?await this.runSetSecrets():r==="package"?await this.runAddPackage(t):await this.runAddToWorkspace(t)}if(this.package!==void 0)throw new Error("--package can only be used inside an existing Datadog Apps workspace. Run it from within a workspace, or use --monorepo to create one first.");return this.monorepo?await this.runInitWorkspace():this.yes?await this.runStandalone():await this.promptScaffoldMode()==="init-workspace"?await this.runInitWorkspace():await this.runStandalone()}catch(t){return Ri(t)?console.log(Oi()):Ni(t),1}}async promptScaffoldMode(){return He({message:"How do you want to scaffold?",choices:[{name:"Single standalone app",value:"standalone"},{name:"New monorepo workspace (share tooling across apps)",value:"init-workspace"}]})}async resolveAddMode(){return this.package!==void 0?"package":this.directory!==void 0?"app":He({message:"What do you want to do in this workspace?",choices:[{name:"Add an app",value:"app"},{name:"Add a shared package (reusable code for your apps)",value:"package"},{name:"Set or update the Datadog deploy secrets",value:"secrets"}]})}async configureRemoteAndSecrets(t,n){let o=this.githubRepo;if(!o&&!this.yes&&await le({message:"Create a private repository and push this workspace?",default:!1})){let a=qi(),s=oe.default.basename(t),u=a?`${a}/${s}`:s;o=(await te({message:"Repository (OWNER/REPO):",default:u,validate:c=>on(c.trim())||"Enter the repository as OWNER/REPO."})).trim()}return o?Ki({repository:o,targetPath:t}).published?(this.yes?console.log(`Set deploy secrets with: npm create @datadog/apps@dev -- --set-secrets --github-repo ${o}`):await Mo({repository:o,targetPath:t,site:n}),!0):!1:!0}async runSetSecrets(){if(this.yes)throw new Error("--set-secrets is interactive and cannot be combined with --yes.");let n=So(process.cwd())?.root??process.cwd(),o=this.githubRepo??Wi(n);if(!o)throw new Error("Could not determine the GitHub repository. Pass --github-repo OWNER/REPO (no GitHub origin remote was found).");return await Mo({repository:o,targetPath:n,skipConfirm:!0,site:this.datadogSite})?0:1}async runStandalone(){let t=await Oo(this.directory,this.overwrite,this.yes,this.appName,this.datadogSite),n=oe.default.resolve(process.cwd(),t.directory),o=this.template?De(this.template):this.yes?De("vite-react"):await Dt(),r=o.metadata;console.log(),console.log(),console.log(`Creating ${P(t.name)} in ${P(n)}...`),console.log(),console.log();let i=o.files.map(a=>({filepath:a.filepath,contents:a.contents({name:t.name,directoryName:t.directoryName,datadogSite:t.datadogSite,identifier:this.identifier})}));return await qe(n,i),await at(n,r,this.skipPostScaffold,this.yes),console.log(Vt(t)),0}async runInitWorkspace(){if(this.skipPostScaffold)throw new Error("Workspace dependency installation and lockfile validation cannot be skipped.");if(this.yes&&!this.directory)throw new Error("A workspace root name is required when using --yes. Pass it as a positional argument.");if(this.yes&&!this.appDirectory)throw new Error("A first app directory is required when using --yes for a new workspace. Pass --app-directory.");let t=this.container??Xt;if(!_t(t))throw new Error('Invalid --container value: use a relative path of simple directory names (letters, numbers, ".", "_", "-"), separated by "/", with no ".." segments, and not the reserved "packages" directory.');let n=await Ui(this.directory,this.overwrite,"Enter a name for your workspace root:",!0),o=oe.default.resolve(process.cwd(),n.directory),r=await Io(this.appDirectory,o,t,this.overwrite,this.yes,this.appName,this.datadogSite,!0),i=this.template?De(this.template):this.yes?De("vite-react"):await Dt();if(!i.workspace)throw new Error(`Template "${i.metadata.name}" does not support workspaces.`);let a=i.workspace,s=r.datadogSite;await ct(o,this.overwrite,this.yes),Jo(n.name,o);let u=a.root.files.map(p=>({filepath:p.filepath,contents:p.contents({name:n.name,directoryName:n.name,datadogSite:s,workspace:{rootName:n.name,container:t,rootRelativePath:".",appName:r.name}})}));await qe(o,u);let c=a.app.files.map(p=>({filepath:p.filepath,contents:p.contents({name:r.name,directoryName:r.directoryName,datadogSite:r.datadogSite,identifier:this.identifier,workspace:{rootName:n.name,container:t,rootRelativePath:r.rootRelativePath}})}));return await qe(r.appTargetPath,c),await at(o,a.root.metadata,this.skipPostScaffold,this.yes,!0),await this.configureRemoteAndSecrets(o,s)?(console.log(Vt({name:r.name,directory:oe.default.join(n.directory,t,r.directoryName)})),0):1}async runAddToWorkspace(t){let n=t.container,o=t.root,r=this.datadogSite??en(o),i=this.template?De(this.template):this.yes?De("vite-react"):await Dt();if(!i.workspace)throw new Error(`Template "${i.metadata.name}" does not support workspaces.`);let a=i.workspace,s=await Io(this.directory,o,n,this.overwrite,this.yes,this.appName,r);Jo(s.name,s.appTargetPath);let u=Po(o)??oe.default.basename(o),c=a.app.files.map(p=>({filepath:p.filepath,contents:p.contents({name:s.name,directoryName:s.directoryName,datadogSite:s.datadogSite,identifier:this.identifier,workspace:{rootName:u,container:n,rootRelativePath:s.rootRelativePath}})}));return await qe(s.appTargetPath,c),await at(o,Co(a.root.metadata),this.skipPostScaffold,this.yes,!0),console.log(Vt({name:s.name,directory:oe.default.relative(process.cwd(),s.appTargetPath)||"."})),0}async runAddPackage(t){let n=t.root,o=Po(n)??oe.default.basename(n),r=this.template?De(this.template):this.yes?De("vite-react"):await Dt();if(!r.workspace?.package)throw new Error(`Template "${r.metadata.name}" does not support shared packages.`);let i=r.workspace.package.files,a=await zi(this.package??this.directory,n,Zo,this.overwrite,`Enter a name for your shared package (created under ${Zo}/):`,this.yes);Jo(a.name,a.appTargetPath);let s=i.map(u=>({filepath:u.filepath,contents:u.contents({name:a.name,directoryName:a.name,datadogSite:Ee,workspace:{rootName:o,container:Zo,rootRelativePath:a.rootRelativePath}})}));return await qe(a.appTargetPath,s),await at(n,Co(r.workspace.root.metadata),this.skipPostScaffold,this.yes,!0),console.log(`Created shared package ${P(`@${$t(o)}/${a.name}`)} in ${P(oe.default.relative(process.cwd(),a.appTargetPath)||".")}.`),0}};var os="0.2.0";var kn=new ht.Cli({binaryLabel:"create-apps",binaryName:"npm init @datadog/apps",binaryVersion:os});kn.register(vn);kn.register(ht.Builtins.HelpCommand);kn.register(ht.Builtins.VersionCommand);kn.runExit(process.argv.slice(2));
1197
+ ${w(o)}`,value:n}))})}async function qe(e,t){let n=t.map(async({filepath:o,contents:r})=>{let i=Vo.default.join(e,o);await Wo.default.mkdir(Vo.default.dirname(i),{recursive:!0}),await Wo.default.writeFile(i,r,Buffer.isBuffer(r)?void 0:{encoding:"utf-8"})});await Promise.all(n)}var Zo="packages";function Jo(e,t){console.log(),console.log(),console.log(`Creating ${P(e)} in ${P(t)}...`),console.log(),console.log()}var vn=class extends N.Command{static paths=[N.Command.Default];static usage=N.Command.Usage({description:"Create a new Datadog App",examples:[["Create a new app interactively","npm init @datadog/apps my-app"],["Create a new app non-interactively","npm init @datadog/apps my-app --template vite-react -y"],["Create an app with a custom name and site",'npm init @datadog/apps my-app --name "My App" --site datadoghq.eu -y'],["Initialize a monorepo workspace","npm create @datadog/apps@latest -- --monorepo"],["Create and publish a private monorepo","npm create @datadog/apps@latest -- my-workspace --monorepo --app-directory my-app --github-repo DataDog/my-workspace"],["Add another app inside a workspace","npm create @datadog/apps@latest -- my-second-app"]]});directory=N.Option.String({required:!1});template=N.Option.String("--template",{required:!1,description:"Template to use (e.g., vite-react)"});appName=N.Option.String("--name",{required:!1,description:"App name (user-facing)"});identifier=N.Option.String("--identifier",{required:!1,description:"App identifier baked into datadog-app.config.json (defaults to a generated value)"});yes=N.Option.Boolean("--yes,-y",{description:"Accept all defaults without prompting"});overwrite=N.Option.Boolean("--overwrite",{description:"Overwrite existing directory without prompting"});validate=N.Option.Boolean("--validate",{description:"Validate templates and exit"});skipPostScaffold=N.Option.Boolean("--skip-post-scaffold",{description:"Skip post-scaffold commands"});monorepo=N.Option.Boolean("--monorepo",{description:"Initialize a new Datadog Apps monorepo (npm workspace) and scaffold the first app"});appDirectory=N.Option.String("--app-directory",{required:!1,description:"First app directory when initializing a monorepo workspace"});package=N.Option.String("--package",{required:!1,description:"Shared package name (created under packages/<name>)"});container=N.Option.String("--container",{required:!1,description:"Apps container directory for a new workspace (default: apps)"});datadogSite=N.Option.String("--site",{required:!1,description:"Datadog site (e.g. datadoghq.com, datadoghq.eu)"});githubRepo=N.Option.String("--github-repo",{required:!1,description:"Create a private GitHub repository for a new monorepo, set it as origin, and push"});setSecrets=N.Option.Boolean("--set-secrets",{description:"Set the Datadog deploy secrets (DATADOG_API_KEY / DATADOG_APP_KEY) on an existing repository via gh, then exit. Uses --github-repo, or derives OWNER/REPO from the origin remote."});async execute(){console.log(Pi),console.log(),console.log();try{if(this.validate)return ns();if(this.appDirectory&&!this.monorepo)throw new Error("--app-directory is only available when initializing a workspace with --monorepo.");if(this.setSecrets)return await this.runSetSecrets();if(this.githubRepo&&!this.monorepo)throw new Error("--github-repo is only available when creating a new monorepo workspace.");let t=So(process.cwd());if(t){if(this.monorepo)throw new Error(`Already inside a Datadog Apps workspace at ${t.root}. Re-run without --monorepo to add an app.`);if(this.skipPostScaffold)throw new Error("Workspace dependency installation and lockfile validation cannot be skipped.");let o=oe.default.relative(process.cwd(),t.root)||".";if(console.log(P(`Workspace detected at ${o}; new apps are created under ${t.container}/.`)),this.yes&&this.directory===void 0&&this.package===void 0)throw new Error("A directory name is required when using --yes. Pass it as a positional argument, or use --package to add a shared package.");let r=await this.resolveAddMode();return r==="secrets"?await this.runSetSecrets():r==="package"?await this.runAddPackage(t):await this.runAddToWorkspace(t)}if(this.package!==void 0)throw new Error("--package can only be used inside an existing Datadog Apps workspace. Run it from within a workspace, or use --monorepo to create one first.");return this.monorepo?await this.runInitWorkspace():this.yes?await this.runStandalone():await this.promptScaffoldMode()==="init-workspace"?await this.runInitWorkspace():await this.runStandalone()}catch(t){return Ri(t)?console.log(Ti()):Ni(t),1}}async promptScaffoldMode(){return He({message:"How do you want to scaffold?",choices:[{name:"Single standalone app",value:"standalone"},{name:"New monorepo workspace (share tooling across apps)",value:"init-workspace"}]})}async resolveAddMode(){return this.package!==void 0?"package":this.directory!==void 0?"app":He({message:"What do you want to do in this workspace?",choices:[{name:"Add an app",value:"app"},{name:"Add a shared package (reusable code for your apps)",value:"package"},{name:"Set or update the Datadog deploy secrets",value:"secrets"}]})}async configureRemoteAndSecrets(t,n){let o=this.githubRepo;if(!o&&!this.yes&&await le({message:"Create a private repository and push this workspace?",default:!1})){let a=qi(),s=oe.default.basename(t),u=a?`${a}/${s}`:s;o=(await te({message:"Repository (OWNER/REPO):",default:u,validate:c=>on(c.trim())||"Enter the repository as OWNER/REPO."})).trim()}return o?Ki({repository:o,targetPath:t}).published?(this.yes?console.log(`Set deploy secrets with: npm create @datadog/apps@latest -- --set-secrets --github-repo ${o}`):await Mo({repository:o,targetPath:t,site:n}),!0):!1:!0}async runSetSecrets(){if(this.yes)throw new Error("--set-secrets is interactive and cannot be combined with --yes.");let n=So(process.cwd())?.root??process.cwd(),o=this.githubRepo??Wi(n);if(!o)throw new Error("Could not determine the GitHub repository. Pass --github-repo OWNER/REPO (no GitHub origin remote was found).");return await Mo({repository:o,targetPath:n,skipConfirm:!0,site:this.datadogSite})?0:1}async runStandalone(){let t=await To(this.directory,this.overwrite,this.yes,this.appName,this.datadogSite),n=oe.default.resolve(process.cwd(),t.directory),o=this.template?De(this.template):this.yes?De("vite-react"):await Dt(),r=o.metadata;console.log(),console.log(),console.log(`Creating ${P(t.name)} in ${P(n)}...`),console.log(),console.log();let i=o.files.map(a=>({filepath:a.filepath,contents:a.contents({name:t.name,directoryName:t.directoryName,datadogSite:t.datadogSite,identifier:this.identifier})}));return await qe(n,i),await at(n,r,this.skipPostScaffold,this.yes),console.log(Vt(t)),0}async runInitWorkspace(){if(this.skipPostScaffold)throw new Error("Workspace dependency installation and lockfile validation cannot be skipped.");if(this.yes&&!this.directory)throw new Error("A workspace root name is required when using --yes. Pass it as a positional argument.");if(this.yes&&!this.appDirectory)throw new Error("A first app directory is required when using --yes for a new workspace. Pass --app-directory.");let t=this.container??Xt;if(!_t(t))throw new Error('Invalid --container value: use a relative path of simple directory names (letters, numbers, ".", "_", "-"), separated by "/", with no ".." segments, and not the reserved "packages" directory.');let n=await Ui(this.directory,this.overwrite,"Enter a name for your workspace root:",!0),o=oe.default.resolve(process.cwd(),n.directory),r=await Io(this.appDirectory,o,t,this.overwrite,this.yes,this.appName,this.datadogSite,!0),i=this.template?De(this.template):this.yes?De("vite-react"):await Dt();if(!i.workspace)throw new Error(`Template "${i.metadata.name}" does not support workspaces.`);let a=i.workspace,s=r.datadogSite;await ct(o,this.overwrite,this.yes),Jo(n.name,o);let u=a.root.files.map(p=>({filepath:p.filepath,contents:p.contents({name:n.name,directoryName:n.name,datadogSite:s,workspace:{rootName:n.name,container:t,rootRelativePath:".",appName:r.name}})}));await qe(o,u);let c=a.app.files.map(p=>({filepath:p.filepath,contents:p.contents({name:r.name,directoryName:r.directoryName,datadogSite:r.datadogSite,identifier:this.identifier,workspace:{rootName:n.name,container:t,rootRelativePath:r.rootRelativePath}})}));return await qe(r.appTargetPath,c),await at(o,a.root.metadata,this.skipPostScaffold,this.yes,!0),await this.configureRemoteAndSecrets(o,s)?(console.log(Vt({name:r.name,directory:oe.default.join(n.directory,t,r.directoryName)})),0):1}async runAddToWorkspace(t){let n=t.container,o=t.root,r=this.datadogSite??en(o),i=this.template?De(this.template):this.yes?De("vite-react"):await Dt();if(!i.workspace)throw new Error(`Template "${i.metadata.name}" does not support workspaces.`);let a=i.workspace,s=await Io(this.directory,o,n,this.overwrite,this.yes,this.appName,r);Jo(s.name,s.appTargetPath);let u=Po(o)??oe.default.basename(o),c=a.app.files.map(p=>({filepath:p.filepath,contents:p.contents({name:s.name,directoryName:s.directoryName,datadogSite:s.datadogSite,identifier:this.identifier,workspace:{rootName:u,container:n,rootRelativePath:s.rootRelativePath}})}));return await qe(s.appTargetPath,c),await at(o,Co(a.root.metadata),this.skipPostScaffold,this.yes,!0),console.log(Vt({name:s.name,directory:oe.default.relative(process.cwd(),s.appTargetPath)||"."})),0}async runAddPackage(t){let n=t.root,o=Po(n)??oe.default.basename(n),r=this.template?De(this.template):this.yes?De("vite-react"):await Dt();if(!r.workspace?.package)throw new Error(`Template "${r.metadata.name}" does not support shared packages.`);let i=r.workspace.package.files,a=await zi(this.package??this.directory,n,Zo,this.overwrite,`Enter a name for your shared package (created under ${Zo}/):`,this.yes);Jo(a.name,a.appTargetPath);let s=i.map(u=>({filepath:u.filepath,contents:u.contents({name:a.name,directoryName:a.name,datadogSite:be,workspace:{rootName:o,container:Zo,rootRelativePath:a.rootRelativePath}})}));return await qe(a.appTargetPath,s),await at(n,Co(r.workspace.root.metadata),this.skipPostScaffold,this.yes,!0),console.log(`Created shared package ${P(`@${$t(o)}/${a.name}`)} in ${P(oe.default.relative(process.cwd(),a.appTargetPath)||".")}.`),0}};var os="0.2.2";var kn=new ht.Cli({binaryLabel:"create-apps",binaryName:"npm init @datadog/apps",binaryVersion:os});kn.register(vn);kn.register(ht.Builtins.HelpCommand);kn.register(ht.Builtins.VersionCommand);kn.runExit(process.argv.slice(2));