@datadog/create-apps 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +54 -3
  2. package/dist/bin.js +498 -103
  3. package/package.json +1 -1
package/dist/bin.js CHANGED
@@ -4,117 +4,117 @@
4
4
  * Copyright 2019-Present Datadog, Inc.
5
5
  */
6
6
 
7
- "use strict";var li=Object.create;var Nt=Object.defineProperty;var pi=Object.getOwnPropertyDescriptor;var Di=Object.getOwnPropertyNames;var fi=Object.getPrototypeOf,hi=Object.prototype.hasOwnProperty;var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),P=(e,t)=>{for(var n in t)Nt(e,n,{get:t[n],enumerable:!0})},gi=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Di(t))!hi.call(e,o)&&o!==n&&Nt(e,o,{get:()=>t[o],enumerable:!(r=pi(t,o))||r.enumerable});return e};var Q=(e,t,n)=>(n=e!=null?li(fi(e)):{},gi(t||!e||!e.__esModule?Nt(n,"default",{value:e,enumerable:!0}):n,e));var tt=w(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});(function(e){e.StartOfInput="\0",e.EndOfInput="",e.EndOfPartialInput=""})(Y.SpecialToken||(Y.SpecialToken={}));(function(e){e[e.InitialNode=0]="InitialNode",e[e.SuccessNode=1]="SuccessNode",e[e.ErrorNode=2]="ErrorNode",e[e.CustomNode=3]="CustomNode"})(Y.NodeType||(Y.NodeType={}));var mi=-1,Ai=/^(-h|--help)(?:=([0-9]+))?$/,Fi=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,Ei=/^-[a-zA-Z]{2,}$/,Ci=/^([^=]+)=([\s\S]*)$/,yi=process.env.DEBUG_CLI==="1";Y.BATCH_REGEX=Ei;Y.BINDING_REGEX=Ci;Y.HELP_COMMAND_INDEX=mi;Y.HELP_REGEX=Ai;Y.IS_DEBUG=yi;Y.OPTION_REGEX=Fi});var nt=w(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});var io=tt(),Rt=class extends Error{constructor(t){super(t),this.clipanion={type:"usage"},this.name="UsageError"}},jt=class extends Error{constructor(t,n){if(super(),this.input=t,this.candidates=n,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(r=>r.reason!==null&&r.reason===n[0].reason)){let[{reason:r}]=this.candidates;this.message=`${r}
7
+ "use strict";var rs=Object.create;var xn=Object.defineProperty;var is=Object.getOwnPropertyDescriptor;var ss=Object.getOwnPropertyNames;var as=Object.getPrototypeOf,us=Object.prototype.hasOwnProperty;var x=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),C=(e,t)=>{for(var n in t)xn(e,n,{get:t[n],enumerable:!0})},cs=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of ss(t))!us.call(e,r)&&r!==n&&xn(e,r,{get:()=>t[r],enumerable:!(o=is(t,r))||o.enumerable});return e};var M=(e,t,n)=>(n=e!=null?rs(as(e)):{},cs(t||!e||!e.__esModule?xn(n,"default",{value:e,enumerable:!0}):n,e));var At=x(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});(function(e){e.StartOfInput="\0",e.EndOfInput="",e.EndOfPartialInput=""})(Y.SpecialToken||(Y.SpecialToken={}));(function(e){e[e.InitialNode=0]="InitialNode",e[e.SuccessNode=1]="SuccessNode",e[e.ErrorNode=2]="ErrorNode",e[e.CustomNode=3]="CustomNode"})(Y.NodeType||(Y.NodeType={}));var ds=-1,ps=/^(-h|--help)(?:=([0-9]+))?$/,ls=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,fs=/^-[a-zA-Z]{2,}$/,Ds=/^([^=]+)=([\s\S]*)$/,hs=process.env.DEBUG_CLI==="1";Y.BATCH_REGEX=fs;Y.BINDING_REGEX=Ds;Y.HELP_COMMAND_INDEX=ds;Y.HELP_REGEX=ps;Y.IS_DEBUG=hs;Y.OPTION_REGEX=ls});var yt=x(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});var Xo=At(),Bn=class extends Error{constructor(t){super(t),this.clipanion={type:"usage"},this.name="UsageError"}},Sn=class extends Error{constructor(t,n){if(super(),this.input=t,this.candidates=n,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(o=>o.reason!==null&&o.reason===n[0].reason)){let[{reason:o}]=this.candidates;this.message=`${o}
8
8
 
9
- ${this.candidates.map(({usage:o})=>`$ ${o}`).join(`
10
- `)}`}else if(this.candidates.length===1){let[{usage:r}]=this.candidates;this.message=`Command not found; did you mean:
9
+ ${this.candidates.map(({usage:r})=>`$ ${r}`).join(`
10
+ `)}`}else if(this.candidates.length===1){let[{usage:o}]=this.candidates;this.message=`Command not found; did you mean:
11
11
 
12
- $ ${r}
13
- ${Lt(t)}`}else this.message=`Command not found; did you mean one of:
12
+ $ ${o}
13
+ ${Tn(t)}`}else this.message=`Command not found; did you mean one of:
14
14
 
15
- ${this.candidates.map(({usage:r},o)=>`${`${o}.`.padStart(4)} ${r}`).join(`
15
+ ${this.candidates.map(({usage:o},r)=>`${`${r}.`.padStart(4)} ${o}`).join(`
16
16
  `)}
17
17
 
18
- ${Lt(t)}`}},Mt=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
+ ${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:
19
19
 
20
- ${this.usages.map((r,o)=>`${`${o}.`.padStart(4)} ${r}`).join(`
20
+ ${this.usages.map((o,r)=>`${`${r}.`.padStart(4)} ${o}`).join(`
21
21
  `)}
22
22
 
23
- ${Lt(t)}`}},Lt=e=>`While running ${e.filter(t=>t!==io.SpecialToken.EndOfInput&&t!==io.SpecialToken.EndOfPartialInput).map(t=>{let n=JSON.stringify(t);return t.match(/\s/)||t.length===0||n!==`"${t}"`?n:t}).join(" ")}`;Ne.AmbiguousSyntaxError=Mt;Ne.UnknownSyntaxError=jt;Ne.UsageError=Rt});var Ht=w(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});var so=80,Gt=Array(so).fill("\u2501");for(let e=0;e<=24;++e)Gt[Gt.length-e]=`\x1B[38;5;${232+e}m\u2501`;var bi={header:e=>`\x1B[1m\u2501\u2501\u2501 ${e}${e.length<so-5?` ${Gt.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`},vi={header:e=>e,bold:e=>e,error:e=>e,code:e=>e};function wi(e){let t=e.split(`
24
- `),n=t.filter(o=>o.match(/\S/)),r=n.length>0?n.reduce((o,i)=>Math.min(o,i.length-i.trimStart().length),Number.MAX_VALUE):0;return t.map(o=>o.slice(r).trimRight()).join(`
25
- `)}function xi(e,{format:t,paragraphs:n}){return e=e.replace(/\r\n?/g,`
26
- `),e=wi(e),e=e.replace(/^\n+|\n+$/g,""),e=e.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2
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(`
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
+ `)}function ys(e,{format:t,paragraphs:n}){return e=e.replace(/\r\n?/g,`
26
+ `),e=As(e),e=e.replace(/^\n+|\n+$/g,""),e=e.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2
27
27
 
28
- `),e=e.replace(/\n(\n)?\n*/g,(r,o)=>o||" "),n&&(e=e.split(/\n/).map(r=>{let o=r.match(/^\s*[*-][\t ]+(.*)/);if(!o)return r.match(/(.{1,80})(?: |$)/g).join(`
29
- `);let i=r.length-r.trimStart().length;return o[1].match(new RegExp(`(.{1,${78-i}})(?: |$)`,"g")).map((a,s)=>" ".repeat(i)+(s===0?"- ":" ")+a).join(`
28
+ `),e=e.replace(/\n(\n)?\n*/g,(o,r)=>r||" "),n&&(e=e.split(/\n/).map(o=>{let r=o.match(/^\s*[*-][\t ]+(.*)/);if(!r)return o.match(/(.{1,80})(?: |$)/g).join(`
29
+ `);let i=o.length-o.trimStart().length;return r[1].match(new RegExp(`(.{1,${78-i}})(?: |$)`,"g")).map((a,s)=>" ".repeat(i)+(s===0?"- ":" ")+a).join(`
30
30
  `)}).join(`
31
31
 
32
- `)),e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(r,o,i)=>t.code(o+i+o)),e=e.replace(/(\*\*)((?:.|[\n])*?)\1/g,(r,o,i)=>t.bold(o+i+o)),e?`${e}
33
- `:""}Re.formatMarkdownish=xi;Re.richFormat=bi;Re.textFormat=vi});var $=w(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});var ao=nt(),uo=Symbol("clipanion/isOption");function Bi(e){return{...e,[uo]:!0}}function ki(e,t){return typeof e>"u"?[e,t]:typeof e=="object"&&e!==null&&!Array.isArray(e)?[void 0,e]:[e,t]}function Ut(e,{mergeName:t=!1}={}){let n=e.match(/^([^:]+): (.*)$/m);if(!n)return"validation failed";let[,r,o]=n;return t&&(o=o[0].toLowerCase()+o.slice(1)),o=r!=="."||!t?`${r.replace(/^\.(\[|$)/,"$1")}: ${o}`:`: ${o}`,o}function co(e,t){return t.length===1?new ao.UsageError(`${e}${Ut(t[0],{mergeName:!0})}`):new ao.UsageError(`${e}:
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}:
34
34
  ${t.map(n=>`
35
- - ${Ut(n)}`).join("")}`)}function Oi(e,t,n){if(typeof n>"u")return t;let r=[],o=[],i=s=>{let u=t;return t=s,i.bind(null,u)};if(!n(t,{errors:r,coercions:o,coercion:i}))throw co(`Invalid value for ${e}`,r);for(let[,s]of o)s();return t}ie.applyValidator=Oi;ie.cleanValidationError=Ut;ie.formatError=co;ie.isOptionSymbol=uo;ie.makeCommandOption=Bi;ie.rerouteArguments=ki});var Ao=w(g=>{"use strict";Object.defineProperty(g,"__esModule",{value:!0});var Pi=/^[a-zA-Z_][a-zA-Z0-9_]*$/;function b(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 Ce(e,t){if(e.length===0)return"nothing";if(e.length===1)return b(e[0]);let n=e.slice(0,-1),r=e[e.length-1],o=e.length>2?`, ${t} `:` ${t} `;return`${n.map(i=>b(i)).join(", ")}${o}${b(r)}`}function se(e,t){var n,r,o;return typeof t=="number"?`${(n=e?.p)!==null&&n!==void 0?n:"."}[${t}]`:Pi.test(t)?`${(r=e?.p)!==null&&r!==void 0?r:""}.${t}`:`${(o=e?.p)!==null&&o!==void 0?o:"."}[${JSON.stringify(t)}]`}function zt(e,t,n){return e===1?t:n}var Si=/^#[0-9a-f]{6}$/i,Ii=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,Ti=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,Ni=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,lo=/^(?:[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 Ri(e,t){return n=>{e[t]=n}}function Z(e,t){return n=>{let r=e[t];return e[t]=n,Z(e,t).bind(null,r)}}function je(e,t,n){let r=()=>(e(n()),o),o=()=>(e(t),r);return r}function qt(){return E({test:(e,t)=>!0})}function po(e){return E({test:(t,n)=>t!==e?m(n,`Expected ${b(e)} (got ${b(t)})`):!0})}function Do(){return E({test:(e,t)=>typeof e!="string"?m(t,`Expected a string (got ${b(e)})`):!0})}function ji(e){let t=Array.isArray(e)?e:Object.values(e),n=t.every(o=>typeof o=="string"||typeof o=="number"),r=new Set(t);return r.size===1?po([...r][0]):E({test:(o,i)=>r.has(o)?!0:n?m(i,`Expected one of ${Ce(t,"or")} (got ${b(o)})`):m(i,`Expected a valid enumeration value (got ${b(o)})`)})}var Mi=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]);function Li(){return E({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 r=Mi.get(e);if(typeof r<"u")return t.coercions.push([(n=t.p)!==null&&n!==void 0?n:".",t.coercion.bind(null,r)]),!0}return m(t,`Expected a boolean (got ${b(e)})`)}return!0}})}function Gi(){return E({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 r;if(typeof e=="string"){let o;try{o=JSON.parse(e)}catch{}if(typeof o=="number")if(JSON.stringify(o)===e)r=o;else return m(t,`Received a number that can't be safely represented by the runtime (${e})`)}if(typeof r<"u")return t.coercions.push([(n=t.p)!==null&&n!==void 0?n:".",t.coercion.bind(null,r)]),!0}return m(t,`Expected a number (got ${b(e)})`)}return!0}})}function Hi(e){return E({test:(t,n)=>{var r;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 ${b(t)})`);let o;try{o=JSON.parse(t)}catch{return m(n,`Expected a JSON string (got ${b(t)})`)}let i={value:o};return e(o,Object.assign(Object.assign({},n),{coercion:Z(i,"value")}))?(n.coercions.push([(r=n.p)!==null&&r!==void 0?r:".",n.coercion.bind(null,i.value)]),!0):!1}})}function Ui(){return E({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 r;if(typeof e=="string"&&lo.test(e))r=new Date(e);else{let o;if(typeof e=="string"){let i;try{i=JSON.parse(e)}catch{}typeof i=="number"&&(o=i)}else typeof e=="number"&&(o=e);if(typeof o<"u")if(Number.isSafeInteger(o)||!Number.isSafeInteger(o*1e3))r=new Date(o*1e3);else return m(t,`Received a timestamp that can't be safely represented by the runtime (${e})`)}if(typeof r<"u")return t.coercions.push([(n=t.p)!==null&&n!==void 0?n:".",t.coercion.bind(null,r)]),!0}return m(t,`Expected a date (got ${b(e)})`)}return!0}})}function ot(e,{delimiter:t}={}){return E({test:(n,r)=>{var o;let i=n;if(typeof n=="string"&&typeof t<"u"&&typeof r?.coercions<"u"){if(typeof r?.coercion>"u")return m(r,"Unbound coercion result");n=n.split(t)}if(!Array.isArray(n))return m(r,`Expected an array (got ${b(n)})`);let a=!0;for(let s=0,u=n.length;s<u&&(a=e(n[s],Object.assign(Object.assign({},r),{p:se(r,s),coercion:Z(n,s)}))&&a,!(!a&&r?.errors==null));++s);return n!==i&&r.coercions.push([(o=r.p)!==null&&o!==void 0?o:".",r.coercion.bind(null,n)]),a}})}function zi(e,{delimiter:t}={}){let n=ot(e,{delimiter:t});return E({test:(r,o)=>{var i,a;if(Object.getPrototypeOf(r).toString()==="[object Set]")if(typeof o?.coercions<"u"){if(typeof o?.coercion>"u")return m(o,"Unbound coercion result");let s=[...r],u=[...r];if(!n(u,Object.assign(Object.assign({},o),{coercion:void 0})))return!1;let d=()=>u.some((l,c)=>l!==s[c])?new Set(u):r;return o.coercions.push([(i=o.p)!==null&&i!==void 0?i:".",je(o.coercion,r,d)]),!0}else{let s=!0;for(let u of r)if(s=e(u,Object.assign({},o))&&s,!s&&o?.errors==null)break;return s}if(typeof o?.coercions<"u"){if(typeof o?.coercion>"u")return m(o,"Unbound coercion result");let s={value:r};return n(r,Object.assign(Object.assign({},o),{coercion:Z(s,"value")}))?(o.coercions.push([(a=o.p)!==null&&a!==void 0?a:".",je(o.coercion,r,()=>new Set(s.value))]),!0):!1}return m(o,`Expected a set (got ${b(r)})`)}})}function qi(e,t){let n=ot(rt([e,t])),r=it(t,{keys:e});return E({test:(o,i)=>{var a,s,u;if(Object.getPrototypeOf(o).toString()==="[object Map]")if(typeof i?.coercions<"u"){if(typeof i?.coercion>"u")return m(i,"Unbound coercion result");let d=[...o],l=[...o];if(!n(l,Object.assign(Object.assign({},i),{coercion:void 0})))return!1;let c=()=>l.some((p,D)=>p[0]!==d[D][0]||p[1]!==d[D][1])?new Map(l):o;return i.coercions.push([(a=i.p)!==null&&a!==void 0?a:".",je(i.coercion,o,c)]),!0}else{let d=!0;for(let[l,c]of o)if(d=e(l,Object.assign({},i))&&d,!d&&i?.errors==null||(d=t(c,Object.assign(Object.assign({},i),{p:se(i,l)}))&&d,!d&&i?.errors==null))break;return d}if(typeof i?.coercions<"u"){if(typeof i?.coercion>"u")return m(i,"Unbound coercion result");let d={value:o};return Array.isArray(o)?n(o,Object.assign(Object.assign({},i),{coercion:void 0}))?(i.coercions.push([(s=i.p)!==null&&s!==void 0?s:".",je(i.coercion,o,()=>new Map(d.value))]),!0):!1:r(o,Object.assign(Object.assign({},i),{coercion:Z(d,"value")}))?(i.coercions.push([(u=i.p)!==null&&u!==void 0?u:".",je(i.coercion,o,()=>new Map(Object.entries(d.value)))]),!0):!1}return m(i,`Expected a map (got ${b(o)})`)}})}function rt(e,{delimiter:t}={}){let n=go(e.length);return E({test:(r,o)=>{var i;if(typeof r=="string"&&typeof t<"u"&&typeof o?.coercions<"u"){if(typeof o?.coercion>"u")return m(o,"Unbound coercion result");r=r.split(t),o.coercions.push([(i=o.p)!==null&&i!==void 0?i:".",o.coercion.bind(null,r)])}if(!Array.isArray(r))return m(o,`Expected a tuple (got ${b(r)})`);let a=n(r,Object.assign({},o));for(let s=0,u=r.length;s<u&&s<e.length&&(a=e[s](r[s],Object.assign(Object.assign({},o),{p:se(o,s),coercion:Z(r,s)}))&&a,!(!a&&o?.errors==null));++s);return a}})}function it(e,{keys:t=null}={}){let n=ot(rt([t??Do(),e]));return E({test:(r,o)=>{var i;if(Array.isArray(r)&&typeof o?.coercions<"u")return typeof o?.coercion>"u"?m(o,"Unbound coercion result"):n(r,Object.assign(Object.assign({},o),{coercion:void 0}))?(r=Object.fromEntries(r),o.coercions.push([(i=o.p)!==null&&i!==void 0?i:".",o.coercion.bind(null,r)]),!0):!1;if(typeof r!="object"||r===null)return m(o,`Expected an object (got ${b(r)})`);let a=Object.keys(r),s=!0;for(let u=0,d=a.length;u<d&&(s||o?.errors!=null);++u){let l=a[u],c=r[l];if(l==="__proto__"||l==="constructor"){s=m(Object.assign(Object.assign({},o),{p:se(o,l)}),"Unsafe property name");continue}if(t!==null&&!t(l,o)){s=!1;continue}if(!e(c,Object.assign(Object.assign({},o),{p:se(o,l),coercion:Z(r,l)}))){s=!1;continue}}return s}})}function Qi(e,t={}){return it(e,t)}function fo(e,{extra:t=null}={}){let n=Object.keys(e),r=E({test:(o,i)=>{if(typeof o!="object"||o===null)return m(i,`Expected an object (got ${b(o)})`);let a=new Set([...n,...Object.keys(o)]),s={},u=!0;for(let d of a){if(d==="constructor"||d==="__proto__")u=m(Object.assign(Object.assign({},i),{p:se(i,d)}),"Unsafe property name");else{let l=Object.prototype.hasOwnProperty.call(e,d)?e[d]:void 0,c=Object.prototype.hasOwnProperty.call(o,d)?o[d]:void 0;typeof l<"u"?u=l(c,Object.assign(Object.assign({},i),{p:se(i,d),coercion:Z(o,d)}))&&u:t===null?u=m(Object.assign(Object.assign({},i),{p:se(i,d)}),`Extraneous property (got ${b(c)})`):Object.defineProperty(s,d,{enumerable:!0,get:()=>c,set:Ri(o,d)})}if(!u&&i?.errors==null)break}return t!==null&&(u||i?.errors!=null)&&(u=t(s,i)&&u),u}});return Object.assign(r,{properties:e})}function Yi(e){return fo(e,{extra:it(qt())})}var Ki=e=>E({test:(t,n)=>t instanceof e?!0:m(n,`Expected an instance of ${e.name} (got ${b(t)})`)}),Wi=(e,{exclusive:t=!1}={})=>E({test:(n,r)=>{var o,i,a;let s=[],u=typeof r?.errors<"u"?[]:void 0;for(let d=0,l=e.length;d<l;++d){let c=typeof r?.errors<"u"?[]:void 0,p=typeof r?.coercions<"u"?[]:void 0;if(e[d](n,Object.assign(Object.assign({},r),{errors:c,coercions:p,p:`${(o=r?.p)!==null&&o!==void 0?o:"."}#${d+1}`}))){if(s.push([`#${d+1}`,p]),!t)break}else u?.push(c[0])}if(s.length===1){let[,d]=s[0];return typeof d<"u"&&((i=r?.coercions)===null||i===void 0||i.push(...d)),!0}return s.length>1?m(r,`Expected to match exactly a single predicate (matched ${s.join(", ")})`):(a=r?.errors)===null||a===void 0||a.push(...u),!1}});function ho(e){return()=>e}function E({test:e}){return ho(e)()}var ae=class extends Error{constructor({errors:t}={}){let n="Type mismatch";if(t&&t.length>0){n+=`
36
- `;for(let r of t)n+=`
37
- - ${r}`}super(n)}};function Vi(e,t){if(!t(e))throw new ae}function Zi(e,t){let n=[];if(!t(e,{errors:n}))throw new ae({errors:n})}function Xi(e,t){}function Ji(e,t,{coerce:n=!1,errors:r,throw:o}={}){let i=r?[]:void 0;if(!n){if(t(e,{errors:i}))return o?e:{value:e,errors:void 0};if(o)throw new ae({errors:i});return{value:void 0,errors:i??!0}}let a={value:e},s=Z(a,"value"),u=[];if(!t(e,{errors:i,coercion:s,coercions:u})){if(o)throw new ae({errors:i});return{value:void 0,errors:i??!0}}for(let[,d]of u)d();return o?a.value:{value:a.value,errors:void 0}}function _i(e,t){let n=rt(e);return((...r)=>{if(!n(r))throw new ae;return t(...r)})}function $i(e){return E({test:(t,n)=>t.length>=e?!0:m(n,`Expected to have a length of at least ${e} elements (got ${t.length})`)})}function es(e){return E({test:(t,n)=>t.length<=e?!0:m(n,`Expected to have a length of at most ${e} elements (got ${t.length})`)})}function go(e){return E({test:(t,n)=>t.length!==e?m(n,`Expected to have a length of exactly ${e} elements (got ${t.length})`):!0})}function ts({map:e}={}){return E({test:(t,n)=>{let r=new Set,o=new Set;for(let i=0,a=t.length;i<a;++i){let s=t[i],u=typeof e<"u"?e(s):s;if(r.has(u)){if(o.has(u))continue;m(n,`Expected to contain unique elements; got a duplicate with ${b(t)}`),o.add(u)}else r.add(u)}return o.size===0}})}function ns(){return E({test:(e,t)=>e<=0?!0:m(t,`Expected to be negative (got ${e})`)})}function os(){return E({test:(e,t)=>e>=0?!0:m(t,`Expected to be positive (got ${e})`)})}function rs(e){return E({test:(t,n)=>t>=e?!0:m(n,`Expected to be at least ${e} (got ${t})`)})}function is(e){return E({test:(t,n)=>t<=e?!0:m(n,`Expected to be at most ${e} (got ${t})`)})}function ss(e,t){return E({test:(n,r)=>n>=e&&n<=t?!0:m(r,`Expected to be in the [${e}; ${t}] range (got ${n})`)})}function as(e,t){return E({test:(n,r)=>n>=e&&n<t?!0:m(r,`Expected to be in the [${e}; ${t}[ range (got ${n})`)})}function us({unsafe:e=!1}={}){return E({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 ds(e){return E({test:(t,n)=>e.test(t)?!0:m(n,`Expected to match the pattern ${e.toString()} (got ${b(t)})`)})}function cs(){return E({test:(e,t)=>e!==e.toLowerCase()?m(t,`Expected to be all-lowercase (got ${e})`):!0})}function ls(){return E({test:(e,t)=>e!==e.toUpperCase()?m(t,`Expected to be all-uppercase (got ${e})`):!0})}function ps(){return E({test:(e,t)=>Ni.test(e)?!0:m(t,`Expected to be a valid UUID v4 (got ${b(e)})`)})}function Ds(){return E({test:(e,t)=>lo.test(e)?!0:m(t,`Expected to be a valid ISO 8601 date string (got ${b(e)})`)})}function fs({alpha:e=!1}){return E({test:(t,n)=>(e?Si.test(t):Ii.test(t))?!0:m(n,`Expected to be a valid hexadecimal color string (got ${b(t)})`)})}function hs(){return E({test:(e,t)=>Ti.test(e)?!0:m(t,`Expected to be a valid base 64 string (got ${b(e)})`)})}function gs(e=qt()){return E({test:(t,n)=>{let r;try{r=JSON.parse(t)}catch{return m(n,`Expected to be a valid JSON string (got ${b(t)})`)}return e(r,n)}})}function mo(e,...t){let n=Array.isArray(t[0])?t[0]:t;return E({test:(r,o)=>{var i,a;let s={value:r},u=typeof o?.coercions<"u"?Z(s,"value"):void 0,d=typeof o?.coercions<"u"?[]:void 0;if(!e(r,Object.assign(Object.assign({},o),{coercion:u,coercions:d})))return!1;let l=[];if(typeof d<"u")for(let[,c]of d)l.push(c());try{if(typeof o?.coercions<"u"){if(s.value!==r){if(typeof o?.coercion>"u")return m(o,"Unbound coercion result");o.coercions.push([(i=o.p)!==null&&i!==void 0?i:".",o.coercion.bind(null,s.value)])}(a=o?.coercions)===null||a===void 0||a.push(...d)}return n.every(c=>c(s.value,o))}finally{for(let c of l)c()}}})}function ms(e,...t){let n=Array.isArray(t[0])?t[0]:t;return mo(e,n)}function As(e){return E({test:(t,n)=>typeof t>"u"?!0:e(t,n)})}function Fs(e){return E({test:(t,n)=>t===null?!0:e(t,n)})}var st={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 Es(e,t){var n;let r=new Set(e),o=st[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return E({test:(i,a)=>{let s=new Set(Object.keys(i)),u=[];for(let d of r)o(s,d,i)||u.push(d);return u.length>0?m(a,`Missing required ${zt(u.length,"property","properties")} ${Ce(u,"and")}`):!0}})}function Cs(e,t){var n;let r=new Set(e),o=st[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return E({test:(i,a)=>Object.keys(i).some(d=>o(r,d,i))?!0:m(a,`Missing at least one property from ${Ce(Array.from(r),"or")}`)})}function ys(e,t){var n;let r=new Set(e),o=st[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return E({test:(i,a)=>{let s=new Set(Object.keys(i)),u=[];for(let d of r)o(s,d,i)&&u.push(d);return u.length>0?m(a,`Forbidden ${zt(u.length,"property","properties")} ${Ce(u,"and")}`):!0}})}function bs(e,t){var n;let r=new Set(e),o=st[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return E({test:(i,a)=>{let s=new Set(Object.keys(i)),u=[];for(let d of r)o(s,d,i)&&u.push(d);return u.length>1?m(a,`Mutually exclusive properties ${Ce(u,"and")}`):!0}})}(function(e){e.Forbids="Forbids",e.Requires="Requires"})(g.KeyRelationship||(g.KeyRelationship={}));var vs={[g.KeyRelationship.Forbids]:{expect:!1,message:"forbids using"},[g.KeyRelationship.Requires]:{expect:!0,message:"requires using"}};function ws(e,t,n,{ignore:r=[]}={}){let o=new Set(r),i=new Set(n),a=vs[t],s=t===g.KeyRelationship.Forbids?"or":"and";return E({test:(u,d)=>{let l=new Set(Object.keys(u));if(!l.has(e)||o.has(u[e]))return!0;let c=[];for(let p of i)(l.has(p)&&!o.has(u[p]))!==a.expect&&c.push(p);return c.length>=1?m(d,`Property "${e}" ${a.message} ${zt(c.length,"property","properties")} ${Ce(c,s)}`):!0}})}g.TypeAssertionError=ae;g.applyCascade=ms;g.as=Ji;g.assert=Vi;g.assertWithErrors=Zi;g.cascade=mo;g.fn=_i;g.hasAtLeastOneKey=Cs;g.hasExactLength=go;g.hasForbiddenKeys=ys;g.hasKeyRelationship=ws;g.hasMaxLength=es;g.hasMinLength=$i;g.hasMutuallyExclusiveKeys=bs;g.hasRequiredKeys=Es;g.hasUniqueItems=ts;g.isArray=ot;g.isAtLeast=rs;g.isAtMost=is;g.isBase64=hs;g.isBoolean=Li;g.isDate=Ui;g.isDict=Qi;g.isEnum=ji;g.isHexColor=fs;g.isISO8601=Ds;g.isInExclusiveRange=as;g.isInInclusiveRange=ss;g.isInstanceOf=Ki;g.isInteger=us;g.isJSON=gs;g.isLiteral=po;g.isLowerCase=cs;g.isMap=qi;g.isNegative=ns;g.isNullable=Fs;g.isNumber=Gi;g.isObject=fo;g.isOneOf=Wi;g.isOptional=As;g.isPartial=Yi;g.isPayload=Hi;g.isPositive=os;g.isRecord=it;g.isSet=zi;g.isString=Do;g.isTuple=rt;g.isUUID4=ps;g.isUnknown=qt;g.isUpperCase=ls;g.makeTrait=ho;g.makeValidator=E;g.matchesRegExp=ds;g.softAssert=Xi});var ue=w(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});var Fo=$();function xs(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if(n!=="default"){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,Object.freeze(t)}var Me=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:o,isUnknown:i,applyCascade:a}=await Promise.resolve().then(function(){return xs(Ao())}),s=a(o(i()),n),u=[],d=[];if(!s(this,{errors:u,coercions:d}))throw Fo.formatError("Invalid option schema",u);for(let[,c]of d)c()}else if(n!=null)throw new Error("Invalid command schema");let r=await this.execute();return typeof r<"u"?r:0}};Me.isOption=Fo.isOptionSymbol;Me.Default=[];Qt.Command=Me});var lt=w(x=>{"use strict";Object.defineProperty(x,"__esModule",{value:!0});var f=tt(),dt=nt();function R(e){f.IS_DEBUG&&console.log(e)}var Eo={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:f.HELP_COMMAND_INDEX,tokens:[]};function Kt(){let e={nodes:[]};for(let t=0;t<f.NodeType.CustomNode;++t)e.nodes.push(j());return e}function Co(e){let t=Kt(),n=[],r=t.nodes.length;for(let o of e){n.push(r);for(let i=0;i<o.nodes.length;++i)Wt(i)||t.nodes.push(Oo(o.nodes[i],r));r+=o.nodes.length-f.NodeType.CustomNode+1}for(let o of n)le(t,f.NodeType.InitialNode,o);return t}function U(e,t){return e.nodes.push(t),e.nodes.length-1}function yo(e){let t=new Set,n=r=>{if(t.has(r))return;t.add(r);let o=e.nodes[r];for(let a of Object.values(o.statics))for(let{to:s}of a)n(s);for(let[,{to:a}]of o.dynamics)n(a);for(let{to:a}of o.shortcuts)n(a);let i=new Set(o.shortcuts.map(({to:a})=>a));for(;o.shortcuts.length>0;){let{to:a}=o.shortcuts.shift(),s=e.nodes[a];for(let[u,d]of Object.entries(s.statics)){let l=Object.prototype.hasOwnProperty.call(o.statics,u)?o.statics[u]:o.statics[u]=[];for(let c of d)l.some(({to:p})=>c.to===p)||l.push(c)}for(let[u,d]of s.dynamics)o.dynamics.some(([l,{to:c}])=>u===l&&d.to===c)||o.dynamics.push([u,d]);for(let u of s.shortcuts)i.has(u.to)||(o.shortcuts.push(u),i.add(u.to))}};n(f.NodeType.InitialNode)}function bo(e,{prefix:t=""}={}){if(f.IS_DEBUG){R(`${t}Nodes are:`);for(let n=0;n<e.nodes.length;++n)R(`${t} ${n}: ${JSON.stringify(e.nodes[n])}`)}}function vo(e,t,n=!1){R(`Running a vm on ${JSON.stringify(t)}`);let r=[{node:f.NodeType.InitialNode,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null,tokens:[]}}];bo(e,{prefix:" "});let o=[f.SpecialToken.StartOfInput,...t];for(let i=0;i<o.length;++i){let a=o[i],s=a===f.SpecialToken.EndOfInput||a===f.SpecialToken.EndOfPartialInput,u=i-1;R(` Processing ${JSON.stringify(a)}`);let d=[];for(let{node:l,state:c}of r){R(` Current node is ${l}`);let p=e.nodes[l];if(l===f.NodeType.ErrorNode){d.push({node:l,state:c});continue}console.assert(p.shortcuts.length===0,"Shortcuts should have been eliminated by now");let D=Object.prototype.hasOwnProperty.call(p.statics,a);if(!n||i<o.length-1||D)if(D){let h=p.statics[a];for(let{to:A,reducer:F}of h)d.push({node:A,state:typeof F<"u"?Le(ut,F,c,a,u):c}),R(` Static transition to ${A} found`)}else R(" No static transition found");else{let h=!1;for(let A of Object.keys(p.statics))if(A.startsWith(a)){if(a===A)for(let{to:F,reducer:C}of p.statics[A])d.push({node:F,state:typeof C<"u"?Le(ut,C,c,a,u):c}),R(` Static transition to ${F} found`);else for(let{to:F}of p.statics[A])d.push({node:F,state:{...c,remainder:A.slice(a.length)}}),R(` Static transition to ${F} found (partial match)`);h=!0}h||R(" No partial static transition found")}if(!s)for(let[h,{to:A,reducer:F}]of p.dynamics)Le(Po,h,c,a,u)&&(d.push({node:A,state:typeof F<"u"?Le(ut,F,c,a,u):c}),R(` Dynamic transition to ${A} found (via ${h})`))}if(d.length===0&&s&&t.length===1)return[{node:f.NodeType.InitialNode,state:Eo}];if(d.length===0)throw new dt.UnknownSyntaxError(t,r.filter(({node:l})=>l!==f.NodeType.ErrorNode).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(d.every(({node:l})=>l===f.NodeType.ErrorNode))throw new dt.UnknownSyntaxError(t,d.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));r=wo(d)}if(r.length>0){R(" Results:");for(let i of r)R(` - ${i.node} -> ${JSON.stringify(i.state)}`)}else R(" No results");return r}function Bs(e,t,{endToken:n=f.SpecialToken.EndOfInput}={}){let r=vo(e,[...t,n]);return xo(t,r.map(({state:o})=>o))}function wo(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 xo(e,t){let n=t.filter(c=>c.selectedIndex!==null);if(n.length===0)throw new Error;let r=n.filter(c=>c.selectedIndex===f.HELP_COMMAND_INDEX||c.requiredOptions.every(p=>p.some(D=>c.options.find(h=>h.name===D))));if(r.length===0)throw new dt.UnknownSyntaxError(e,n.map(c=>({usage:c.candidateUsage,reason:null})));let o=0;for(let c of r)c.path.length>o&&(o=c.path.length);let i=r.filter(c=>c.path.length===o),a=c=>c.positionals.filter(({extra:p})=>!p).length+c.options.length,s=i.map(c=>({state:c,positionalCount:a(c)})),u=0;for(let{positionalCount:c}of s)c>u&&(u=c);let d=s.filter(({positionalCount:c})=>c===u).map(({state:c})=>c),l=Bo(d);if(l.length>1)throw new dt.AmbiguousSyntaxError(e,l.map(c=>c.candidateUsage));return l[0]}function Bo(e){let t=[],n=[];for(let r of e)r.selectedIndex===f.HELP_COMMAND_INDEX?n.push(r):t.push(r);return n.length>0&&t.push({...Eo,path:ko(...n.map(r=>r.path)),options:n.reduce((r,o)=>r.concat(o.options),[])}),t}function ko(e,t,...n){return t===void 0?Array.from(e):ko(e.filter((r,o)=>r===t[o]),...n)}function j(){return{dynamics:[],shortcuts:[],statics:{}}}function Wt(e){return e===f.NodeType.SuccessNode||e===f.NodeType.ErrorNode}function at(e,t=0){return{to:Wt(e.to)?e.to:e.to>=f.NodeType.CustomNode?e.to+t-f.NodeType.CustomNode+1:e.to+t,reducer:e.reducer}}function Oo(e,t=0){let n=j();for(let[r,o]of e.dynamics)n.dynamics.push([r,at(o,t)]);for(let r of e.shortcuts)n.shortcuts.push(at(r,t));for(let[r,o]of Object.entries(e.statics))n.statics[r]=o.map(i=>at(i,t));return n}function S(e,t,n,r,o){e.nodes[t].dynamics.push([n,{to:r,reducer:o}])}function le(e,t,n,r){e.nodes[t].shortcuts.push({to:n,reducer:r})}function T(e,t,n,r,o){(Object.prototype.hasOwnProperty.call(e.nodes[t].statics,n)?e.nodes[t].statics[n]:e.nodes[t].statics[n]=[]).push({to:r,reducer:o})}function Le(e,t,n,r,o){if(Array.isArray(t)){let[i,...a]=t;return e[i](n,r,o,...a)}else return e[t](n,r,o)}var Po={always:()=>!0,isOptionLike:(e,t)=>!e.ignoreOptions&&t!=="-"&&t.startsWith("-"),isNotOptionLike:(e,t)=>e.ignoreOptions||t==="-"||!t.startsWith("-"),isOption:(e,t,n,r)=>!e.ignoreOptions&&t===r,isBatchOption:(e,t,n,r)=>!e.ignoreOptions&&f.BATCH_REGEX.test(t)&&[...t.slice(1)].every(o=>r.has(`-${o}`)),isBoundOption:(e,t,n,r,o)=>{let i=t.match(f.BINDING_REGEX);return!e.ignoreOptions&&!!i&&f.OPTION_REGEX.test(i[1])&&r.has(i[1])&&o.filter(a=>a.nameSet.includes(i[1])).every(a=>a.allowBinding)},isNegatedOption:(e,t,n,r)=>!e.ignoreOptions&&t===`--no-${r.slice(2)}`,isHelp:(e,t)=>!e.ignoreOptions&&f.HELP_REGEX.test(t),isUnsupportedOption:(e,t,n,r)=>!e.ignoreOptions&&t.startsWith("-")&&f.OPTION_REGEX.test(t)&&!r.has(t),isInvalidOption:(e,t)=>!e.ignoreOptions&&t.startsWith("-")&&!f.OPTION_REGEX.test(t)},ut={setCandidateState:(e,t,n,r)=>({...e,...r}),setSelectedIndex:(e,t,n,r)=>({...e,selectedIndex:r}),pushBatch:(e,t,n,r)=>{let o=e.options.slice(),i=e.tokens.slice();for(let a=1;a<t.length;++a){let s=r.get(`-${t[a]}`),u=a===1?[0,2]:[a,a+1];o.push({name:s,value:!0}),i.push({segmentIndex:n,type:"option",option:s,slice:u})}return{...e,options:o,tokens:i}},pushBound:(e,t,n)=>{let[,r,o]=t.match(f.BINDING_REGEX),i=e.options.concat({name:r,value:o}),a=e.tokens.concat([{segmentIndex:n,type:"option",slice:[0,r.length],option:r},{segmentIndex:n,type:"assign",slice:[r.length,r.length+1]},{segmentIndex:n,type:"value",slice:[r.length+1,r.length+o.length+1]}]);return{...e,options:i,tokens:a}},pushPath:(e,t,n)=>{let r=e.path.concat(t),o=e.tokens.concat({segmentIndex:n,type:"path"});return{...e,path:r,tokens:o}},pushPositional:(e,t,n)=>{let r=e.positionals.concat({value:t,extra:!1}),o=e.tokens.concat({segmentIndex:n,type:"positional"});return{...e,positionals:r,tokens:o}},pushExtra:(e,t,n)=>{let r=e.positionals.concat({value:t,extra:!0}),o=e.tokens.concat({segmentIndex:n,type:"positional"});return{...e,positionals:r,tokens:o}},pushExtraNoLimits:(e,t,n)=>{let r=e.positionals.concat({value:t,extra:X}),o=e.tokens.concat({segmentIndex:n,type:"positional"});return{...e,positionals:r,tokens:o}},pushTrue:(e,t,n,r)=>{let o=e.options.concat({name:r,value:!0}),i=e.tokens.concat({segmentIndex:n,type:"option",option:r});return{...e,options:o,tokens:i}},pushFalse:(e,t,n,r)=>{let o=e.options.concat({name:r,value:!1}),i=e.tokens.concat({segmentIndex:n,type:"option",option:r});return{...e,options:o,tokens:i}},pushUndefined:(e,t,n,r)=>{let o=e.options.concat({name:t,value:void 0}),i=e.tokens.concat({segmentIndex:n,type:"option",option:t});return{...e,options:o,tokens:i}},pushStringValue:(e,t,n)=>{var r;let o=e.options[e.options.length-1],i=e.options.slice(),a=e.tokens.concat({segmentIndex:n,type:"value"});return o.value=((r=o.value)!==null&&r!==void 0?r:[]).concat([t]),{...e,options:i,tokens:a}},setStringValue:(e,t,n)=>{let r=e.options[e.options.length-1],o=e.options.slice(),i=e.tokens.concat({segmentIndex:n,type:"value"});return r.value=t,{...e,options:o,tokens:i}},inhibateOptions:e=>({...e,ignoreOptions:!0}),useHelp:(e,t,n,r)=>{let[,,o]=t.match(f.HELP_REGEX);return typeof o<"u"?{...e,options:[{name:"-c",value:String(r)},{name:"-i",value:o}]}:{...e,options:[{name:"-c",value:String(r)}]}},setError:(e,t,n,r)=>t===f.SpecialToken.EndOfInput||t===f.SpecialToken.EndOfPartialInput?{...e,errorMessage:`${r}.`}:{...e,errorMessage:`${r} ("${t}").`},setOptionArityError:(e,t)=>{let n=e.options[e.options.length-1];return{...e,errorMessage:`Not enough arguments to option ${n.name}.`}}},X=Symbol(),ct=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:r=this.arity.extra,proxy:o=this.arity.proxy}){Object.assign(this.arity,{leading:t,trailing:n,extra:r,proxy:o})}addPositional({name:t="arg",required:n=!0}={}){if(!n&&this.arity.extra===X)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!==X?this.arity.extra.push(t):this.arity.extra!==X&&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===X)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 r=0;r<n;++r)this.addPositional({name:t});this.arity.extra=X}addProxy({required:t=0}={}){this.addRest({required:t}),this.arity.proxy=!0}addOption({names:t,description:n,arity:r=0,hidden:o=!1,required:i=!1,allowBinding:a=!0}){if(!a&&r>1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(r))throw new Error(`The arity must be an integer, got ${r}`);if(r<0)throw new Error(`The arity must be positive, got ${r}`);let s=t.reduce((u,d)=>d.length>u.length?d:u,"");for(let u of t)this.allOptionNames.set(u,s);this.options.push({preferredName:s,nameSet:t,description:n,arity:r,hidden:o,required:i,allowBinding:a})}setContext(t){this.context=t}usage({detailed:t=!0,inlineOptions:n=!0}={}){let r=[this.cliOpts.binaryName],o=[];if(this.paths.length>0&&r.push(...this.paths[0]),t){for(let{preferredName:a,nameSet:s,arity:u,hidden:d,description:l,required:c}of this.options){if(d)continue;let p=[];for(let h=0;h<u;++h)p.push(` #${h}`);let D=`${s.join(",")}${p.join("")}`;!n&&l?o.push({preferredName:a,nameSet:s,definition:D,description:l,required:c}):r.push(c?`<${D}>`:`[${D}]`)}r.push(...this.arity.leading.map(a=>`<${a}>`)),this.arity.extra===X?r.push("..."):r.push(...this.arity.extra.map(a=>`[${a}]`)),r.push(...this.arity.trailing.map(a=>`<${a}>`))}return{usage:r.join(" "),options:o}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let t=Kt(),n=f.NodeType.InitialNode,r=this.usage().usage,o=this.options.filter(s=>s.required).map(s=>s.nameSet);n=U(t,j()),T(t,f.NodeType.InitialNode,f.SpecialToken.StartOfInput,n,["setCandidateState",{candidateUsage:r,requiredOptions:o}]);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 p=U(t,j());le(t,u,p),this.registerOptions(t,p),u=p}for(let p=0;p<s.length;++p){let D=U(t,j());if(T(t,u,s[p],D,"pushPath"),u=D,p+1<s.length){let h=U(t,j());S(t,u,"isHelp",h,["useHelp",this.cliIndex]),T(t,h,f.SpecialToken.EndOfInput,f.NodeType.SuccessNode,["setSelectedIndex",f.HELP_COMMAND_INDEX])}}if(this.arity.leading.length>0||!this.arity.proxy){let p=U(t,j());S(t,u,"isHelp",p,["useHelp",this.cliIndex]),S(t,p,"always",p,"pushExtra"),T(t,p,f.SpecialToken.EndOfInput,f.NodeType.SuccessNode,["setSelectedIndex",f.HELP_COMMAND_INDEX]),this.registerOptions(t,u)}this.arity.leading.length>0&&(T(t,u,f.SpecialToken.EndOfInput,f.NodeType.ErrorNode,["setError","Not enough positional arguments"]),T(t,u,f.SpecialToken.EndOfPartialInput,f.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex]));let d=u;for(let p=0;p<this.arity.leading.length;++p){let D=U(t,j());(!this.arity.proxy||p+1!==this.arity.leading.length)&&this.registerOptions(t,D),(this.arity.trailing.length>0||p+1!==this.arity.leading.length)&&(T(t,D,f.SpecialToken.EndOfInput,f.NodeType.ErrorNode,["setError","Not enough positional arguments"]),T(t,D,f.SpecialToken.EndOfPartialInput,f.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex])),S(t,d,"isNotOptionLike",D,"pushPositional"),d=D}let l=d;if(this.arity.extra===X||this.arity.extra.length>0){let p=U(t,j());if(le(t,d,p),this.arity.extra===X){let D=U(t,j());this.arity.proxy||this.registerOptions(t,D),S(t,d,i,D,"pushExtraNoLimits"),S(t,D,i,D,"pushExtraNoLimits"),le(t,D,p)}else for(let D=0;D<this.arity.extra.length;++D){let h=U(t,j());(!this.arity.proxy||D>0)&&this.registerOptions(t,h),S(t,l,i,h,"pushExtra"),le(t,h,p),l=h}l=p}this.arity.trailing.length>0&&(T(t,l,f.SpecialToken.EndOfInput,f.NodeType.ErrorNode,["setError","Not enough positional arguments"]),T(t,l,f.SpecialToken.EndOfPartialInput,f.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex]));let c=l;for(let p=0;p<this.arity.trailing.length;++p){let D=U(t,j());this.arity.proxy||this.registerOptions(t,D),p+1<this.arity.trailing.length&&(T(t,D,f.SpecialToken.EndOfInput,f.NodeType.ErrorNode,["setError","Not enough positional arguments"]),T(t,D,f.SpecialToken.EndOfPartialInput,f.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex])),S(t,c,"isNotOptionLike",D,"pushPositional"),c=D}S(t,c,i,f.NodeType.ErrorNode,["setError","Extraneous positional argument"]),T(t,c,f.SpecialToken.EndOfInput,f.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex]),T(t,c,f.SpecialToken.EndOfPartialInput,f.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex])}return{machine:t,context:this.context}}registerOptions(t,n){S(t,n,["isOption","--"],n,"inhibateOptions"),S(t,n,["isBatchOption",this.allOptionNames],n,["pushBatch",this.allOptionNames]),S(t,n,["isBoundOption",this.allOptionNames,this.options],n,"pushBound"),S(t,n,["isUnsupportedOption",this.allOptionNames],f.NodeType.ErrorNode,["setError","Unsupported option name"]),S(t,n,["isInvalidOption"],f.NodeType.ErrorNode,["setError","Invalid option name"]);for(let r of this.options)if(r.arity===0)for(let o of r.nameSet)S(t,n,["isOption",o],n,["pushTrue",r.preferredName]),o.startsWith("--")&&!o.startsWith("--no-")&&S(t,n,["isNegatedOption",o],n,["pushFalse",r.preferredName]);else{let o=U(t,j());for(let i of r.nameSet)S(t,n,["isOption",i],o,["pushUndefined",r.preferredName]);for(let i=0;i<r.arity;++i){let a=U(t,j());T(t,o,f.SpecialToken.EndOfInput,f.NodeType.ErrorNode,"setOptionArityError"),T(t,o,f.SpecialToken.EndOfPartialInput,f.NodeType.ErrorNode,"setOptionArityError"),S(t,o,"isOptionLike",f.NodeType.ErrorNode,"setOptionArityError");let s=r.arity===1?"setStringValue":"pushStringValue";S(t,o,"isNotOptionLike",a,s),o=a}le(t,o,n)}}},Yt=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 ct(this.builders.length,this.opts);return this.builders.push(t),t}compile(){let t=[],n=[];for(let o of this.builders){let{machine:i,context:a}=o.compile();t.push(i),n.push(a)}let r=Co(t);return yo(r),{machine:r,contexts:n,process:(o,{partial:i}={})=>{let a=i?f.SpecialToken.EndOfPartialInput:f.SpecialToken.EndOfInput;return Bs(r,o,{endToken:a})}}}};x.CliBuilder=Yt;x.CommandBuilder=ct;x.NoLimits=X;x.aggregateHelpStates=Bo;x.cloneNode=Oo;x.cloneTransition=at;x.debug=R;x.debugMachine=bo;x.execute=Le;x.injectNode=U;x.isTerminalNode=Wt;x.makeAnyOfMachine=Co;x.makeNode=j;x.makeStateMachine=Kt;x.reducers=ut;x.registerDynamic=S;x.registerShortcut=le;x.registerStatic=T;x.runMachineInternal=vo;x.selectBestState=xo;x.simplifyMachine=yo;x.tests=Po;x.trimSmallerBranches=wo});var Io=w(pt=>{"use strict";Object.defineProperty(pt,"__esModule",{value:!0});var ks=require("tty");function Os(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var Vt=Os(ks);function Ps(){return Vt.default&&"getColorDepth"in Vt.default.WriteStream.prototype?Vt.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 So;function Ss(e){let t=So;if(typeof t>"u"){if(e.stdout===process.stdout&&e.stderr===process.stderr)return null;let{AsyncLocalStorage:n}=require("async_hooks");t=So=new n;let r=process.stdout._write;process.stdout._write=function(i,a,s){let u=t.getStore();return typeof u>"u"?r.call(this,i,a,s):u.stdout.write(i,a,s)};let o=process.stderr._write;process.stderr._write=function(i,a,s){let u=t.getStore();return typeof u>"u"?o.call(this,i,a,s):u.stderr.write(i,a,s)}}return n=>t.run(e,n)}pt.getCaptureActivator=Ss;pt.getDefaultColorDepth=Ps});var To=w(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});var Is=ue(),Zt=class e extends Is.Command{constructor(t){super(),this.contexts=t,this.commands=[]}static from(t,n){let r=new e(n);r.path=t.path;for(let o of t.options)switch(o.name){case"-c":r.commands.push(Number(o.value));break;case"-i":r.index=Number(o.value);break}return r}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:
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+=`
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:
38
38
  `),this.context.stdout.write(`
39
- `);let n=0;for(let r of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[r].commandClass,{prefix:`${n++}. `.padStart(5)}));this.context.stdout.write(`
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
- `)}}};Xt.HelpCommand=Zt});var Lo=w(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});var Ts=tt(),Ns=lt(),z=Ht(),jo=Io(),Dt=ue(),Rs=To(),No=Symbol("clipanion/errorCommand");async function js(...e){let{resolvedOptions:t,resolvedCommandClasses:n,resolvedArgv:r,resolvedContext:o}=Mo(e);return ye.from(n,t).runExit(r,o)}async function Ms(...e){let{resolvedOptions:t,resolvedCommandClasses:n,resolvedArgv:r,resolvedContext:o}=Mo(e);return ye.from(n,t).run(r,o)}function Mo(e){let t,n,r,o;switch(typeof process<"u"&&typeof process.argv<"u"&&(r=process.argv.slice(2)),e.length){case 1:n=e[0];break;case 2:e[0]&&e[0].prototype instanceof Dt.Command||Array.isArray(e[0])?(n=e[0],Array.isArray(e[1])?r=e[1]:o=e[1]):(t=e[0],n=e[1]);break;case 3:Array.isArray(e[2])?(t=e[0],n=e[1],r=e[2]):e[0]&&e[0].prototype instanceof Dt.Command||Array.isArray(e[0])?(n=e[0],r=e[1],o=e[2]):(t=e[0],n=e[1],o=e[2]);break;default:t=e[0],n=e[1],r=e[2],o=e[3];break}if(typeof r>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:t,resolvedCommandClasses:n,resolvedArgv:r,resolvedContext:o}}var ye=class e{constructor({binaryLabel:t,binaryName:n="...",binaryVersion:r,enableCapture:o=!1,enableColors:i}={}){this.registrations=new Map,this.builder=new Ns.CliBuilder({binaryName:n}),this.binaryLabel=t,this.binaryName=n,this.binaryVersion=r,this.enableCapture=o,this.enableColors=i}static from(t,n={}){let r=new e(n),o=Array.isArray(t)?t:[t];for(let i of o)r.register(i);return r}register(t){var n;let r=new Map,o=new t;for(let u in o){let d=o[u];typeof d=="object"&&d!==null&&d[Dt.Command.isOption]&&r.set(u,d)}let i=this.builder.command(),a=i.cliIndex,s=(n=t.paths)!==null&&n!==void 0?n:o.paths;if(typeof s<"u")for(let u of s)i.addPath(u);this.registrations.set(t,{specs:r,builder:i,index:a});for(let[u,{definition:d}]of r.entries())d(i,u);i.setContext({commandClass:t})}process(t,n){let{input:r,context:o,partial:i}=typeof t=="object"&&Array.isArray(t)?{input:t,context:n}:t,{contexts:a,process:s}=this.builder.compile(),u=s(r,{partial:i}),d={...e.defaultContext,...o};switch(u.selectedIndex){case Ts.HELP_COMMAND_INDEX:{let l=Rs.HelpCommand.from(u,a);return l.context=d,l.tokens=u.tokens,l}default:{let{commandClass:l}=a[u.selectedIndex],c=this.registrations.get(l);if(typeof c>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let p=new l;p.context=d,p.tokens=u.tokens,p.path=u.path;try{for(let[D,{transformer:h}]of c.specs.entries())p[D]=h(c.builder,D,u,d);return p}catch(D){throw D[No]=p,D}}break}}async run(t,n){var r,o;let i,a={...e.defaultContext,...n},s=(r=this.enableColors)!==null&&r!==void 0?r:a.colorDepth>1;if(!Array.isArray(t))i=t;else try{i=this.process(t,a)}catch(l){return a.stdout.write(this.error(l,{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:l=>this.definition(l),error:(l,c)=>this.error(l,c),format:l=>this.format(l),process:(l,c)=>this.process(l,{...a,...c}),run:(l,c)=>this.run(l,{...a,...c}),usage:(l,c)=>this.usage(l,c)};let u=this.enableCapture&&(o=jo.getCaptureActivator(a))!==null&&o!==void 0?o:Ro,d;try{d=await u(()=>i.validateAndExecute().catch(l=>i.catch(l).then(()=>0)))}catch(l){return a.stdout.write(this.error(l,{colored:s,command:i})),1}return d}async runExit(t,n){process.exitCode=await this.run(t,n)}definition(t,{colored:n=!1}={}){if(!t.usage)return null;let{usage:r}=this.getUsageByRegistration(t,{detailed:!1}),{usage:o,options:i}=this.getUsageByRegistration(t,{detailed:!0,inlineOptions:!1}),a=typeof t.usage.category<"u"?z.formatMarkdownish(t.usage.category,{format:this.format(n),paragraphs:!1}):void 0,s=typeof t.usage.description<"u"?z.formatMarkdownish(t.usage.description,{format:this.format(n),paragraphs:!1}):void 0,u=typeof t.usage.details<"u"?z.formatMarkdownish(t.usage.details,{format:this.format(n),paragraphs:!0}):void 0,d=typeof t.usage.examples<"u"?t.usage.examples.map(([l,c])=>[z.formatMarkdownish(l,{format:this.format(n),paragraphs:!1}),c.replace(/\$0/g,this.binaryName)]):void 0;return{path:r,usage:o,category:a,description:s,details:u,examples:d,options:i}}definitions({colored:t=!1}={}){let n=[];for(let r of this.registrations.keys()){let o=this.definition(r,{colored:t});o&&n.push(o)}return n}usage(t=null,{colored:n,detailed:r=!1,prefix:o="$ "}={}){var i;if(t===null){for(let u of this.registrations.keys()){let d=u.paths,l=typeof u.usage<"u";if(!d||d.length===0||d.length===1&&d[0].length===0||((i=d?.some(D=>D.length===0))!==null&&i!==void 0?i:!1))if(t){t=null;break}else t=u;else if(l){t=null;continue}}t&&(r=!0)}let a=t!==null&&t instanceof Dt.Command?t.constructor:t,s="";if(a)if(r){let{description:u="",details:d="",examples:l=[]}=a.usage||{};u!==""&&(s+=z.formatMarkdownish(u,{format:this.format(n),paragraphs:!1}).replace(/^./,D=>D.toUpperCase()),s+=`
42
- `),(d!==""||l.length>0)&&(s+=`${this.format(n).header("Usage")}
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+=`
42
+ `),(c!==""||p.length>0)&&(s+=`${this.format(n).header("Usage")}
43
43
  `,s+=`
44
- `);let{usage:c,options:p}=this.getUsageByRegistration(a,{inlineOptions:!1});if(s+=`${this.format(n).bold(o)}${c}
45
- `,p.length>0){s+=`
44
+ `);let{usage:d,options:l}=this.getUsageByRegistration(a,{inlineOptions:!1});if(s+=`${this.format(n).bold(r)}${d}
45
+ `,l.length>0){s+=`
46
46
  `,s+=`${this.format(n).header("Options")}
47
- `;let D=p.reduce((h,A)=>Math.max(h,A.definition.length),0);s+=`
48
- `;for(let{definition:h,description:A}of p)s+=` ${this.format(n).bold(h.padEnd(D))} ${z.formatMarkdownish(A,{format:this.format(n),paragraphs:!1})}`}if(d!==""&&(s+=`
47
+ `;let f=l.reduce((D,A)=>Math.max(D,A.definition.length),0);s+=`
48
+ `;for(let{definition:D,description:A}of l)s+=` ${this.format(n).bold(D.padEnd(f))} ${q.formatMarkdownish(A,{format:this.format(n),paragraphs:!1})}`}if(c!==""&&(s+=`
49
49
  `,s+=`${this.format(n).header("Details")}
50
50
  `,s+=`
51
- `,s+=z.formatMarkdownish(d,{format:this.format(n),paragraphs:!0})),l.length>0){s+=`
51
+ `,s+=q.formatMarkdownish(c,{format:this.format(n),paragraphs:!0})),p.length>0){s+=`
52
52
  `,s+=`${this.format(n).header("Examples")}
53
- `;for(let[D,h]of l)s+=`
54
- `,s+=z.formatMarkdownish(D,{format:this.format(n),paragraphs:!1}),s+=`${h.replace(/^/m,` ${this.format(n).bold(o)}`).replace(/\$0/g,this.binaryName)}
55
- `}}else{let{usage:u}=this.getUsageByRegistration(a);s+=`${this.format(n).bold(o)}${u}
56
- `}else{let u=new Map;for(let[p,{index:D}]of this.registrations.entries()){if(typeof p.usage>"u")continue;let h=typeof p.usage.category<"u"?z.formatMarkdownish(p.usage.category,{format:this.format(n),paragraphs:!1}):null,A=u.get(h);typeof A>"u"&&u.set(h,A=[]);let{usage:F}=this.getUsageByIndex(D);A.push({commandClass:p,usage:F})}let d=Array.from(u.keys()).sort((p,D)=>p===null?-1:D===null?1:p.localeCompare(D,"en",{usage:"sort",caseFirst:"upper"})),l=typeof this.binaryLabel<"u",c=typeof this.binaryVersion<"u";l||c?(l&&c?s+=`${this.format(n).header(`${this.binaryLabel} - ${this.binaryVersion}`)}
53
+ `;for(let[f,D]of p)s+=`
54
+ `,s+=q.formatMarkdownish(f,{format:this.format(n),paragraphs:!1}),s+=`${D.replace(/^/m,` ${this.format(n).bold(r)}`).replace(/\$0/g,this.binaryName)}
55
+ `}}else{let{usage:u}=this.getUsageByRegistration(a);s+=`${this.format(n).bold(r)}${u}
56
+ `}else{let u=new Map;for(let[l,{index:f}]of this.registrations.entries()){if(typeof l.usage>"u")continue;let D=typeof l.usage.category<"u"?q.formatMarkdownish(l.usage.category,{format:this.format(n),paragraphs:!1}):null,A=u.get(D);typeof A>"u"&&u.set(D,A=[]);let{usage:y}=this.getUsageByIndex(f);A.push({commandClass:l,usage:y})}let c=Array.from(u.keys()).sort((l,f)=>l===null?-1:f===null?1:l.localeCompare(f,"en",{usage:"sort",caseFirst:"upper"})),p=typeof this.binaryLabel<"u",d=typeof this.binaryVersion<"u";p||d?(p&&d?s+=`${this.format(n).header(`${this.binaryLabel} - ${this.binaryVersion}`)}
57
57
 
58
- `:l?s+=`${this.format(n).header(`${this.binaryLabel}`)}
58
+ `:p?s+=`${this.format(n).header(`${this.binaryLabel}`)}
59
59
  `:s+=`${this.format(n).header(`${this.binaryVersion}`)}
60
- `,s+=` ${this.format(n).bold(o)}${this.binaryName} <command>
61
- `):s+=`${this.format(n).bold(o)}${this.binaryName} <command>
62
- `;for(let p of d){let D=u.get(p).slice().sort((A,F)=>A.usage.localeCompare(F.usage,"en",{usage:"sort",caseFirst:"upper"})),h=p!==null?p.trim():"General commands";s+=`
63
- `,s+=`${this.format(n).header(`${h}`)}
64
- `;for(let{commandClass:A,usage:F}of D){let C=A.usage.description||"undocumented";s+=`
65
- `,s+=` ${this.format(n).bold(F)}
66
- `,s+=` ${z.formatMarkdownish(C,{format:this.format(n),paragraphs:!1})}`}}s+=`
67
- `,s+=z.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 r,{colored:o,command:i=(r=t[No])!==null&&r!==void 0?r: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(o).error(s)}: ${t.message}
60
+ `,s+=` ${this.format(n).bold(r)}${this.binaryName} <command>
61
+ `):s+=`${this.format(n).bold(r)}${this.binaryName} <command>
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
+ `,s+=`${this.format(n).header(`${D}`)}
64
+ `;for(let{commandClass:A,usage:y}of f){let E=A.usage.description||"undocumented";s+=`
65
+ `,s+=` ${this.format(n).bold(y)}
66
+ `,s+=` ${q.formatMarkdownish(E,{format:this.format(n),paragraphs:!1})}`}}s+=`
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)?z.richFormat:z.textFormat}getUsageByRegistration(t,n){let r=this.registrations.get(t);if(typeof r>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(r.index,n)}getUsageByIndex(t,n){return this.builder.getBuilderByIndex(t).usage(n)}};ye.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:jo.getDefaultColorDepth()};function Ro(e){return e()}Ge.Cli=ye;Ge.run=Ms;Ge.runExit=js});var Go=w(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});var Ls=ue(),ft=class extends Ls.Command{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)}
71
- `)}};ft.paths=[["--clipanion=definitions"]];Jt.DefinitionsCommand=ft});var Ho=w(_t=>{"use strict";Object.defineProperty(_t,"__esModule",{value:!0});var Gs=ue(),ht=class extends Gs.Command{async execute(){this.context.stdout.write(this.cli.usage())}};ht.paths=[["-h"],["--help"]];_t.HelpCommand=ht});var en=w($t=>{"use strict";Object.defineProperty($t,"__esModule",{value:!0});var Hs=$();function Us(e={}){return Hs.makeCommandOption({definition(t,n){var r;t.addProxy({name:(r=e.name)!==null&&r!==void 0?r:n,required:e.required})},transformer(t,n,r){return r.positionals.map(({value:o})=>o)}})}$t.Proxy=Us});var Uo=w(tn=>{"use strict";Object.defineProperty(tn,"__esModule",{value:!0});var zs=ue(),qs=en(),gt=class extends zs.Command{constructor(){super(...arguments),this.args=qs.Proxy()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)}
72
- `)}};gt.paths=[["--clipanion=tokens"]];tn.TokensCommand=gt});var zo=w(nn=>{"use strict";Object.defineProperty(nn,"__esModule",{value:!0});var Qs=ue(),mt=class extends Qs.Command{async execute(){var t;this.context.stdout.write(`${(t=this.cli.binaryVersion)!==null&&t!==void 0?t:"<unknown>"}
73
- `)}};mt.paths=[["-v"],["--version"]];nn.VersionCommand=mt});var qo=w(be=>{"use strict";Object.defineProperty(be,"__esModule",{value:!0});var Ys=Go(),Ks=Ho(),Ws=Uo(),Vs=zo();be.DefinitionsCommand=Ys.DefinitionsCommand;be.HelpCommand=Ks.HelpCommand;be.TokensCommand=Ws.TokensCommand;be.VersionCommand=Vs.VersionCommand});var Qo=w(rn=>{"use strict";Object.defineProperty(rn,"__esModule",{value:!0});var on=$();function Zs(e,t,n){let[r,o]=on.rerouteArguments(t,n??{}),{arity:i=1}=o,a=e.split(","),s=new Set(a);return on.makeCommandOption({definition(u){u.addOption({names:a,arity:i,hidden:o?.hidden,description:o?.description,required:o.required})},transformer(u,d,l){let c,p=typeof r<"u"?[...r]:void 0;for(let{name:D,value:h}of l.options)s.has(D)&&(c=D,p=p??[],p.push(h));return typeof p<"u"?on.applyValidator(c??d,p,o.validator):p}})}rn.Array=Zs});var Ko=w(sn=>{"use strict";Object.defineProperty(sn,"__esModule",{value:!0});var Yo=$();function Xs(e,t,n){let[r,o]=Yo.rerouteArguments(t,n??{}),i=e.split(","),a=new Set(i);return Yo.makeCommandOption({definition(s){s.addOption({names:i,allowBinding:!1,arity:0,hidden:o.hidden,description:o.description,required:o.required})},transformer(s,u,d){let l=r;for(let{name:c,value:p}of d.options)a.has(c)&&(l=p);return l}})}sn.Boolean=Xs});var Vo=w(an=>{"use strict";Object.defineProperty(an,"__esModule",{value:!0});var Wo=$();function Js(e,t,n){let[r,o]=Wo.rerouteArguments(t,n??{}),i=e.split(","),a=new Set(i);return Wo.makeCommandOption({definition(s){s.addOption({names:i,allowBinding:!1,arity:0,hidden:o.hidden,description:o.description,required:o.required})},transformer(s,u,d){let l=r;for(let{name:c,value:p}of d.options)a.has(c)&&(l??(l=0),p?l+=1:l=0);return l}})}an.Counter=Js});var Zo=w(un=>{"use strict";Object.defineProperty(un,"__esModule",{value:!0});var _s=lt(),$s=$();function ea(e={}){return $s.makeCommandOption({definition(t,n){var r;t.addRest({name:(r=e.name)!==null&&r!==void 0?r:n,required:e.required})},transformer(t,n,r){let o=a=>{let s=r.positionals[a];return s.extra===_s.NoLimits||s.extra===!1&&a<t.arity.leading.length},i=0;for(;i<r.positionals.length&&o(i);)i+=1;return r.positionals.splice(0,i).map(({value:a})=>a)}})}un.Rest=ea});var Xo=w(dn=>{"use strict";Object.defineProperty(dn,"__esModule",{value:!0});var ta=lt(),He=$();function na(e,t,n){let[r,o]=He.rerouteArguments(t,n??{}),{arity:i=1}=o,a=e.split(","),s=new Set(a);return He.makeCommandOption({definition(u){u.addOption({names:a,arity:o.tolerateBoolean?0:i,hidden:o.hidden,description:o.description,required:o.required})},transformer(u,d,l,c){let p,D=r;typeof o.env<"u"&&c.env[o.env]&&(p=o.env,D=c.env[o.env]);for(let{name:h,value:A}of l.options)s.has(h)&&(p=h,D=A);return typeof D=="string"?He.applyValidator(p??d,D,o.validator):D}})}function oa(e={}){let{required:t=!0}=e;return He.makeCommandOption({definition(n,r){var o;n.addPositional({name:(o=e.name)!==null&&o!==void 0?o:r,required:e.required})},transformer(n,r,o){var i;for(let a=0;a<o.positionals.length;++a){if(o.positionals[a].extra===ta.NoLimits||t&&o.positionals[a].extra===!0||!t&&o.positionals[a].extra===!1)continue;let[s]=o.positionals.splice(a,1);return He.applyValidator((i=e.name)!==null&&i!==void 0?i:r,s.value,e.validator)}}})}function ra(e,...t){return typeof e=="string"?na(e,...t):oa(e)}dn.String=ra});var Jo=w(M=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0});var ve=$(),ia=en(),sa=Qo(),aa=Ko(),ua=Vo(),da=Zo(),ca=Xo();M.applyValidator=ve.applyValidator;M.cleanValidationError=ve.cleanValidationError;M.formatError=ve.formatError;M.isOptionSymbol=ve.isOptionSymbol;M.makeCommandOption=ve.makeCommandOption;M.rerouteArguments=ve.rerouteArguments;M.Proxy=ia.Proxy;M.Array=sa.Array;M.Boolean=aa.Boolean;M.Counter=ua.Counter;M.Rest=da.Rest;M.String=ca.String});var ln=w(J=>{"use strict";Object.defineProperty(J,"__esModule",{value:!0});var la=nt(),pa=Ht(),Da=ue(),cn=Lo(),fa=qo(),ha=Jo();J.UsageError=la.UsageError;J.formatMarkdownish=pa.formatMarkdownish;J.Command=Da.Command;J.Cli=cn.Cli;J.run=cn.run;J.runExit=cn.runExit;J.Builtins=fa;J.Option=ha});var gr=w((Zd,hr)=>{"use strict";hr.exports=va;function ba(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 va(e){let t=ba(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 yr=w((oc,Cr)=>{Cr.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 Nr=w((Ec,Tr)=>{var Ga=require("stream"),Cn=class extends Ga{#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)}};Tr.exports=Cn});var _e=Q(ln());var G=Q(ln()),di=Q(require("node:path"));var xe=require("node:util");var de=require("node:util"),ee=e=>(0,de.styleText)(["bgMagenta","white","bold"],e),I=e=>(0,de.styleText)(["dim"],e),_o=e=>(0,de.styleText)(["bold"],e),pn=e=>(0,de.styleText)(["bold","green"],e),we=e=>(0,de.styleText)(["bold","red"],e),L=e=>(0,de.styleText)(["bold","cyan"],e),v=e=>(0,de.styleText)(["magentaBright","bold"],e);var $o=`
74
- ${ee(" ")}
75
- ${ee(" \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 ")}
76
- ${ee(" \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 ")}
77
- ${ee(" \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 ")}
78
- ${ee(" \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 ")}
79
- ${ee(" \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 ")}
80
- ${ee(" \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 ")}
81
- ${ee(" ")}
82
-
83
- ${L(" \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557")}
84
- ${L("\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D")}
85
- ${L("\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557")}
86
- ${L("\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")}
87
- ${L("\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551")}
88
- ${L("\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D")}
89
- `;function er(e,t=2,n=1){let o=Math.max(...e.map(s=>(0,xe.stripVTControlCharacters)(s).length))+t*2,i=`|${" ".repeat(o+2)}|`,a=[` .\xB7${"\xAF".repeat(o-4)}\xB7. `];for(let s=0;s<n-1;s++)a.push(i);for(let[s,u]of e.entries()){let d=(0,xe.stripVTControlCharacters)(u).length,l=o-t-d,c=s===0?"/":s===e.length-1?"\\":"|",p=s===0?"\\":s===e.length-1?"/":"|";a.push(`${c}${" ".repeat(t)}${u}${" ".repeat(l)}${p}`)}for(let s=0;s<n-1;s++)a.push(i);return a.push(` \xB7.${"_".repeat(o-4)}.\xB7 `),a}var tr=()=>{let e=["",L(" Good Bye!"),"\u{1F44B} until next time!",""],t=er(e);return or(t)},nr=e=>{let t=[`${L(e.name)} is ready!`,"","Next steps:",` 1. ${pn(`cd ${e.directory}`)}`,` 2. ${pn("npx datadog-apps")} ${I("\u2014 see available commands")}`],n=er(t);return or(n)},or=e=>{let t=[` ${v("___")}`,` ${v("___ (DATADOG\\")}`,` ${v("/DATAD) __/O/_/___ \\DAT\\ADOG\\")}`,` ${v("/DATADOGDATADOGDATADOGDATA| \\ATA)")}`,v("(DATADOGD TADOGDATADOGDATAD\\ |TA/"),v("(DATADOGD) )ATADOGDATADOGDAT)"),` ${v("\\DATADOG) )DATADOGDATADOG\xAF\xAF\\")}`,` ${v("\\DATAD/ )OGDA/\xAF\xAF\xAFTADOGDA .|")}`,` ${v(" \xAF\xAF\xAF /DATADO .GDATADOGD\\")}`,` ${v("|DATADOGDATADOGDATADOGDATA\\")}`,` ${v("|DATADOGDATADOGDATADOG\xAF\xAF\xAF\xAFD)")}`,` ${v("\\DATADOGDATADOGDATADO\\__/DA)")}`,` ${v("\\DATADOGDATADOGDATADOGDATA) __.")}`,` ${v("\\DATADOG\\ \\DATADOG/ |A/ ____/TADOG|")}`,` ${v(")DATADOGD\\_ _/ATADOGDATADOGDAT|")}`,` ${v(")DATADO |OGDATADOGDATADOGDATADOG/|D|")}`,` ${v("/DATADOG |DATADOGDATADOGDA/\\TADO/ |A|")}`,` ${v("/DATADOGD |ATADOGDATADOGDA/ \\GD/ |T|")}`,` ${v("/D\\._ \xAF\\ATA |DATAD/\\DOGDAT/ \\/ |A|")}`,` ${v("/DATADOG\\ \\DA |TADO/ \\GD/ |D|")}`,` ${v("(DATADOGDA\\ \\| |TAD/ \\/ |O|")}`,` ${v("(DATADOGDAT\\ \\ |AD/ ___/DATADOG|")}`,` ${v("\\DATADOGDAT) |A| _/DATADOG/\xAF")}`,` ${v("\\DATADOGDA) |T/\xAF")}`,` ${v("\\DATADO/")}`,` ${v("\xAF\xAF\xAF")}`],n=e.length-3,r=12-e.length,o=[],a=36+Math.max(...e.map(s=>(0,xe.stripVTControlCharacters)(s).length));for(let[s,u]of t.entries()){let d=s-r;if(d>=0&&d<e.length){let l=e[d]||"",c=a-((0,xe.stripVTControlCharacters)(u).length+(0,xe.stripVTControlCharacters)(l).length);d===n&&(l=l.replace(/^./,"< "),c-=1);let p=" ".repeat(c);o.push(`${u}${p}${l}`)}else o.push(u)}return`
90
- ${o.join(`
91
- `)}
92
- `};function rr(e){return e instanceof Error&&e.name==="ExitPromptError"||e instanceof Error&&e.message==="Operation cancelled by user"}function ir(e){let t=e instanceof Error&&e.message.trim()!==""?e.message:String(e);console.error(),console.error(we(t))}var Ue=(e,t=[])=>e.name==="up"||t.includes("vim")&&e.name==="k"||t.includes("emacs")&&e.ctrl&&e.name==="p",At=(e,t=[])=>e.name==="down"||t.includes("vim")&&e.name==="j"||t.includes("emacs")&&e.ctrl&&e.name==="n";var ze=e=>e.name==="backspace",qe=e=>e.name==="tab",Dn=e=>"1234567890".includes(e.name),pe=e=>e.name==="enter"||e.name==="return";var Ft=class extends Error{name="AbortPromptError";message="Prompt was aborted";constructor(t){super(),this.cause=t?.cause}},Et=class extends Error{name="CancelPromptError";message="Prompt was canceled"},Qe=class extends Error{name="ExitPromptError"},Ct=class extends Error{name="HookError"},Be=class extends Error{name="ValidationError"};var dr=require("node:async_hooks");var yt=require("node:async_hooks");var sr=new yt.AsyncLocalStorage;function ga(e){return{rl:e,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}function ar(e,t){let n=ga(e);return sr.run(n,()=>{function r(o){n.handleChange=()=>{n.index=0,o()},n.handleChange()}return t(r)})}function De(){let e=sr.getStore();if(!e)throw new Ct("[Inquirer] Hook functions can only be called from within a prompt");return e}function fn(){return De().rl}function hn(e){let t=(...n)=>{let r=De(),o=!1,i=r.handleChange;r.handleChange=()=>{o=!0};let a=e(...n);return o&&i(),r.handleChange=i,a};return yt.AsyncResource.bind(t)}function ke(e){let t=De(),{index:n}=t,r={get(){return t.hooks[n]},set(i){t.hooks[n]=i},initialized:n in t.hooks},o=e(r);return t.index++,o}function ur(){De().handleChange()}var fe={queue(e){let t=De(),{index:n}=t;t.hooksEffect.push(()=>{t.hooksCleanup[n]?.();let r=e(fn());if(r!=null&&typeof r!="function")throw new Be("useEffect return value must be a cleanup function or nothing.");t.hooksCleanup[n]=r})},run(){let e=De();hn(()=>{e.hooksEffect.forEach(t=>{t()}),e.hooksEffect.length=0})()},clearAll(){let e=De();e.hooksCleanup.forEach(t=>{t?.()}),e.hooksEffect.length=0,e.hooksCleanup.length=0}};function N(e){return ke(t=>{let n=dr.AsyncResource.bind(function(i){t.get()!==i&&(t.set(i),ur())});if(t.initialized)return[t.get(),n];let r=typeof e=="function"?e():e;return t.set(r),[r,n]})}function te(e,t){ke(n=>{let r=n.get();(!Array.isArray(r)||t.some((i,a)=>!Object.is(i,r[a])))&&fe.queue(e),n.set(t)})}var K=require("node:util");var W=Q(require("node:process"),1);function ma(){return W.default.platform!=="win32"?W.default.env.TERM!=="linux":!!W.default.env.WT_SESSION||!!W.default.env.TERMINUS_SUBLIME||W.default.env.ConEmuTask==="{cmd::Cmder}"||W.default.env.TERM_PROGRAM==="Terminus-Sublime"||W.default.env.TERM_PROGRAM==="vscode"||W.default.env.TERM==="xterm-256color"||W.default.env.TERM==="alacritty"||W.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var cr={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"},lr={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"},Aa={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"},Fa={...cr,...lr},Ea={...cr,...Aa},Ca=ma(),ya=Ca?Fa:Ea,Oe=ya,Sd=Object.entries(lr);var pr={prefix:{idle:(0,K.styleText)("blue","?"),done:(0,K.styleText)("green",Oe.tick)},spinner:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"].map(e=>(0,K.styleText)("yellow",e))},style:{answer:e=>(0,K.styleText)("cyan",e),message:e=>(0,K.styleText)("bold",e),error:e=>(0,K.styleText)("red",`> ${e}`),defaultAnswer:e=>(0,K.styleText)("dim",`(${e})`),help:e=>(0,K.styleText)("dim",e),highlight:e=>(0,K.styleText)("cyan",e),key:e=>(0,K.styleText)("cyan",(0,K.styleText)("bold",`<${e}>`))}};function Dr(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 fr(...e){let t={};for(let n of e)for(let[r,o]of Object.entries(n)){let i=t[r];t[r]=Dr(i)&&Dr(o)?fr(i,o):o}return t}function ne(...e){let t=[pr,...e.filter(n=>n!=null)];return fr(...t)}function he({status:e="idle",theme:t}){let[n,r]=N(!1),[o,i]=N(0),{prefix:a,spinner:s}=ne(t);return te(()=>{if(e==="loading"){let d,l=-1,c=setTimeout(()=>{r(!0),d=setInterval(()=>{l=l+1,i(l%s.frames.length)},s.interval)},300);return()=>{clearTimeout(c),clearInterval(d)}}else r(!1)},[e]),n?s.frames[o]:typeof a=="string"?a:a[e==="loading"?"idle":e]??a.idle}function Ye(e,t){return ke(n=>{let r=n.get();if(!r||r.dependencies.length!==t.length||r.dependencies.some((o,i)=>o!==t[i])){let o=e();return n.set({value:o,dependencies:t}),o}return r.value})}function ge(e){return N({current:e})[0]}function me(e){let t=ge(e);t.current=e,te(n=>{let r=!1,o=hn((i,a)=>{r||t.current(a,n)});return n.input.on("keypress",o),()=>{r=!0,n.input.removeListener("keypress",o)}},[])}var Ir=Q(gr(),1);function gn({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 wa=gn();function Ke(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(wa,"")}function mr(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 Ar(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function Fr(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 xa(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function Er(e,{ambiguousAsWide:t=!1}={}){return xa(e),Ar(e)||Fr(e)||t&&mr(e)?2:1}var br=Q(yr(),1),Ba=new Intl.Segmenter,ka=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function Ae(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:n=!0,countAnsiEscapeCodes:r=!1}=t;if(r||(e=Ke(e)),e.length===0)return 0;let o=0,i={ambiguousAsWide:!n};for(let{segment:a}of Ba.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)&&!ka.test(a)){if((0,br.default)().test(a)){o+=2;continue}o+=Er(s,i)}}return o}var vr=(e=0)=>t=>`\x1B[${t+e}m`,wr=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,xr=(e=0)=>(t,n,r)=>`\x1B[${38+e};2;${t};${n};${r}m`,B={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]}},ac=Object.keys(B.modifier),Oa=Object.keys(B.color),Pa=Object.keys(B.bgColor),uc=[...Oa,...Pa];function Sa(){let e=new Map;for(let[t,n]of Object.entries(B)){for(let[r,o]of Object.entries(n))B[r]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},n[r]=B[r],e.set(o[0],o[1]);Object.defineProperty(B,t,{value:n,enumerable:!1})}return Object.defineProperty(B,"codes",{value:e,enumerable:!1}),B.color.close="\x1B[39m",B.bgColor.close="\x1B[49m",B.color.ansi=vr(),B.color.ansi256=wr(),B.color.ansi16m=xr(),B.bgColor.ansi=vr(10),B.bgColor.ansi256=wr(10),B.bgColor.ansi16m=xr(10),Object.defineProperties(B,{rgbToAnsi256:{value:(t,n,r)=>t===n&&n===r?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(r/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[r]=n;r.length===3&&(r=[...r].map(i=>i+i).join(""));let o=Number.parseInt(r,16);return[o>>16&255,o>>8&255,o&255]},enumerable:!1},hexToAnsi256:{value:t=>B.rgbToAnsi256(...B.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value:t=>{if(t<8)return 30+t;if(t<16)return 90+(t-8);let n,r,o;if(t>=232)n=((t-232)*10+8)/255,r=n,o=n;else{t-=16;let s=t%36;n=Math.floor(t/36)/5,r=Math.floor(s/6)/5,o=s%6/5}let i=Math.max(n,r,o)*2;if(i===0)return 30;let a=30+(Math.round(o)<<2|Math.round(r)<<1|Math.round(n));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(t,n,r)=>B.ansi256ToAnsi(B.rgbToAnsi256(t,n,r)),enumerable:!1},hexToAnsi:{value:t=>B.ansi256ToAnsi(B.hexToAnsi256(t)),enumerable:!1}}),B}var Ia=Sa(),Br=Ia;var vt=new Set(["\x1B","\x9B"]),Ta=39,An="\x07",Pr="[",Na="]",Sr="m",bt=`${Na}8;;`,kr=e=>`${vt.values().next().value}${Pr}${e}${Sr}`,Or=e=>`${vt.values().next().value}${bt}${e}${An}`,Ra=e=>e.split(" ").map(t=>Ae(t)),mn=(e,t,n)=>{let r=[...t],o=!1,i=!1,a=Ae(Ke(e.at(-1)));for(let[s,u]of r.entries()){let d=Ae(u);if(a+d<=n?e[e.length-1]+=u:(e.push(u),a=0),vt.has(u)&&(o=!0,i=r.slice(s+1,s+1+bt.length).join("")===bt),o){i?u===An&&(o=!1,i=!1):u===Sr&&(o=!1);continue}a+=d,a===n&&s<r.length-1&&(e.push(""),a=0)}!a&&e.at(-1).length>0&&e.length>1&&(e[e.length-2]+=e.pop())},ja=e=>{let t=e.split(" "),n=t.length;for(;n>0&&!(Ae(t[n-1])>0);)n--;return n===t.length?e:t.slice(0,n).join(" ")+t.slice(n).join("")},Ma=(e,t,n={})=>{if(n.trim!==!1&&e.trim()==="")return"";let r="",o,i,a=Ra(e),s=[""];for(let[c,p]of e.split(" ").entries()){n.trim!==!1&&(s[s.length-1]=s.at(-1).trimStart());let D=Ae(s.at(-1));if(c!==0&&(D>=t&&(n.wordWrap===!1||n.trim===!1)&&(s.push(""),D=0),(D>0||n.trim===!1)&&(s[s.length-1]+=" ",D++)),n.hard&&a[c]>t){let h=t-D,A=1+Math.floor((a[c]-h-1)/t);Math.floor((a[c]-1)/t)<A&&s.push(""),mn(s,p,t);continue}if(D+a[c]>t&&D>0&&a[c]>0){if(n.wordWrap===!1&&D<t){mn(s,p,t);continue}s.push("")}if(D+a[c]>t&&n.wordWrap===!1){mn(s,p,t);continue}s[s.length-1]+=p}n.trim!==!1&&(s=s.map(c=>ja(c)));let u=s.join(`
93
- `),d=[...u],l=0;for(let[c,p]of d.entries()){if(r+=p,vt.has(p)){let{groups:h}=new RegExp(`(?:\\${Pr}(?<code>\\d+)m|\\${bt}(?<uri>.*)${An})`).exec(u.slice(l))||{groups:{}};if(h.code!==void 0){let A=Number.parseFloat(h.code);o=A===Ta?void 0:A}else h.uri!==void 0&&(i=h.uri.length===0?void 0:h.uri)}let D=Br.codes.get(Number(o));d[c+1]===`
94
- `?(i&&(r+=Or("")),o&&D&&(r+=kr(D))):p===`
95
- `&&(o&&D&&(r+=kr(o)),i&&(r+=Or(i))),l+=p.length}return r};function Fn(e,t,n){return String(e).normalize().replaceAll(`\r
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)}
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(`
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
+ `?(i&&(o+=li("")),r&&f&&(o+=pi(f))):l===`
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
96
77
  `,`
97
78
  `).split(`
98
- `).map(r=>Ma(r,t,n)).join(`
99
- `)}function We(e,t){return e.split(`
100
- `).flatMap(n=>Fn(n,t,{trim:!1,hard:!0}).split(`
101
- `).map(r=>r.trimEnd())).join(`
102
- `)}function wt(){return(0,Ir.default)({defaultWidth:80,output:fn().output})}function La({active:e,renderedItems:t,pageSize:n,loop:r}){let o=ge({lastPointer:e,lastActive:void 0}),{lastPointer:i,lastActive:a}=o.current,s=Math.floor(n/2),u=t.reduce((c,p)=>c+p.length,0),d=t.slice(0,e).reduce((c,p)=>c+p.length,0),l=d;if(u>n)if(r)l=i,a!=null&&a<e&&e-a<n&&(l=Math.min(s,Math.abs(e-a)===1?Math.min(i+(t[a]?.length??0),Math.max(d,i)):i+e-a));else{let c=t.slice(e).reduce((p,D)=>p+D.length,0);l=c<n-s?n-c:Math.min(d,s)}return o.current.lastPointer=l,o.current.lastActive=e,l}function En({items:e,active:t,renderItem:n,pageSize:r,loop:o=!0}){let i=wt(),a=C=>(C%e.length+e.length)%e.length,s=e.map((C,y)=>C==null?[]:We(n({item:C,index:y,isActive:y===t}),i).split(`
103
- `)),u=s.reduce((C,y)=>C+y.length,0),d=C=>s[C]??[],l=La({active:t,renderedItems:s,pageSize:r,loop:o}),c=d(t).slice(0,r),p=l+c.length<=r?l:r-c.length,D=Array.from({length:r});D.splice(p,c.length,...c);let h=new Set([t]),A=p+c.length,F=a(t+1);for(;A<r&&!h.has(F)&&(o&&u>r?F!==t:F>t);){let y=d(F).slice(0,r-A);D.splice(A,y.length,...y),h.add(F),A+=y.length,F=a(F+1)}for(A=p-1,F=a(t-1);A>=0&&!h.has(F)&&(o&&u>r?F!==t:F<t);){let C=d(F),y=C.slice(Math.max(0,C.length-A-1));D.splice(A-y.length+1,y.length,...y),h.add(F),A-=y.length,F=a(F-1)}return D.filter(C=>typeof C=="string").join(`
104
- `)}var Ur=Q(require("node:readline"),1),zr=require("node:async_hooks"),qr=Q(Nr(),1);var Fe=[];Fe.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Fe.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Fe.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var xt=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",yn=Symbol.for("signal-exit emitter"),bn=globalThis,Ha=Object.defineProperty.bind(Object),vn=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(bn[yn])return bn[yn];Ha(bn,yn,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(t,n){this.listeners[t].push(n)}removeListener(t,n){let r=this.listeners[t],o=r.indexOf(n);o!==-1&&(o===0&&r.length===1?r.length=0:r.splice(o,1))}emit(t,n,r){if(this.emitted[t])return!1;this.emitted[t]=!0;let o=!1;for(let i of this.listeners[t])o=i(n,r)===!0||o;return t==="exit"&&(o=this.emit("afterExit",n,r)||o),o}},Bt=class{},Ua=e=>({onExit(t,n){return e.onExit(t,n)},load(){return e.load()},unload(){return e.unload()}}),wn=class extends Bt{onExit(){return()=>{}}load(){}unload(){}},xn=class extends Bt{#n=Bn.platform==="win32"?"SIGINT":"SIGHUP";#t=new vn;#e;#i;#s;#r={};#o=!1;constructor(t){super(),this.#e=t,this.#r={};for(let n of Fe)this.#r[n]=()=>{let r=this.#e.listeners(n),{count:o}=this.#t,i=t;if(typeof i.__signal_exit_emitter__=="object"&&typeof i.__signal_exit_emitter__.count=="number"&&(o+=i.__signal_exit_emitter__.count),r.length===o){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(!xt(this.#e))return()=>{};this.#o===!1&&this.load();let r=n?.alwaysLast?"afterExit":"exit";return this.#t.on(r,t),()=>{this.#t.removeListener(r,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 Fe)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,Fe.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 xt(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 r=this.#i;if(t==="exit"&&xt(this.#e)){typeof n[0]=="number"&&(this.#e.exitCode=n[0]);let o=r.call(this.#e,t,...n);return this.#t.emit("exit",this.#e.exitCode,null),o}else return r.call(this.#e,t,...n)}},Bn=globalThis.process,{onExit:Rr,load:bc,unload:vc}=Ua(xt(Bn)?new xn(Bn):new wn);var Hr=require("node:util");var Mr="\x1B[?25l",Lr="\x1B[?25h",kn=(e=1)=>e>0?`\x1B[${e}A`:"",On=(e=1)=>e>0?`\x1B[${e}B`:"",Pn=(e,t)=>typeof t=="number"&&!Number.isNaN(t)?`\x1B[${t+1};${e+1}H`:`\x1B[${e+1}G`,jr="\x1B[2K",Sn=e=>e>0?(jr+kn(1)).repeat(e-1)+jr+"\x1B[G":"";var Gr=e=>e.split(`
105
- `).length,za=e=>e.split(`
106
- `).pop()??"",Ve=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 r=za(t),o=(0,Hr.stripVTControlCharacters)(r),i=o;this.rl.line.length>0&&(i=i.slice(0,-this.rl.line.length)),this.rl.setPrompt(i),this.cursorPos=this.rl.getCursorPos();let a=wt();t=We(t,a),n=We(n,a),o.length%a===0&&(t+=`
79
+ `).map(o=>Pu(o,t,n)).join(`
80
+ `)}function rt(e,t){return e.split(`
81
+ `).flatMap(n=>po(n,t,{trim:!1,hard:!0}).split(`
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(`
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+=`
107
88
  `);let s=t+(n?`
108
- `+n:""),d=Math.floor(o.length/a)-this.cursorPos.rows+(n?Gr(n):0);d>0&&(s+=kn(d)),s+=Pn(this.cursorPos.cols),this.write(On(this.extraLinesUnderPrompt)+Sn(this.height)+s),this.extraLinesUnderPrompt=d,this.height=Gr(s)}checkCursorPos(){let t=this.rl.getCursorPos();t.cols!==this.cursorPos.cols&&(this.write(Pn(t.cols)),this.cursorPos=t)}done({clearContent:t}){this.rl.setPrompt("");let n=On(this.extraLinesUnderPrompt);n+=t?Sn(this.height):`
109
- `,n+=Lr,this.write(n),this.rl.close()}};var kt=class extends Promise{static withResolver(){let t,n;return{promise:new Promise((o,i)=>{t=o,n=i}),resolve:t,reject:n}}};function qa(){let e=Error.prepareStackTrace,t=[];try{Error.prepareStackTrace=(n,r)=>{let o=r.slice(1);return t=o,o},new Error().stack}catch{return t}return Error.prepareStackTrace=e,t}function Ee(e){let t=qa();return(r,o={})=>{let{input:i=process.stdin,signal:a}=o,s=new Set,u=new qr.default;u.pipe(o.output??process.stdout);let d=Ur.createInterface({terminal:!0,input:i,output:u}),l=new Ve(d),{promise:c,resolve:p,reject:D}=kt.withResolver(),h=()=>D(new Et);if(a){let C=()=>D(new Ft({cause:a.reason}));if(a.aborted)return C(),Object.assign(c,{cancel:h});a.addEventListener("abort",C),s.add(()=>a.removeEventListener("abort",C))}s.add(Rr((C,y)=>{D(new Qe(`User force closed the prompt with ${C} ${y}`))}));let A=()=>D(new Qe("User force closed the prompt with SIGINT"));d.on("SIGINT",A),s.add(()=>d.removeListener("SIGINT",A));let F=()=>l.checkCursorPos();return d.input.on("keypress",F),s.add(()=>d.input.removeListener("keypress",F)),ar(d,C=>{let y=zr.AsyncResource.bind(()=>fe.clearAll());return d.on("close",y),s.add(()=>d.removeListener("close",y)),C(()=>{try{let k=e(r,$e=>{setImmediate(()=>p($e))});if(k===void 0){let $e=t[1]?.getFileName();throw new Error(`Prompt functions must return a string.
110
- at ${$e}`)}let[V,_]=typeof k=="string"?[k]:k;l.render(V,_),fe.run()}catch(k){D(k)}}),Object.assign(c.then(k=>(fe.clearAll(),k),k=>{throw fe.clearAll(),k}).finally(()=>{s.forEach(k=>k()),l.done({clearContent:!!o.clearPromptOnDone}),u.end()}).then(()=>c),{cancel:h})})}}var Qr=require("node:util");var oe=class{separator=(0,Qr.styleText)("dim",Array.from({length:15}).join(Oe.line));type="separator";constructor(t){t&&(this.separator=t)}static isSeparator(t){return!!(t&&typeof t=="object"&&"type"in t&&t.type==="separator")}};function Yr(e,t){let n=t!==!1;return/^(y|yes)/i.test(e)?n=!0:/^(n|no)/i.test(e)&&(n=!1),n}function Kr(e){return e?"Yes":"No"}var Ze=Ee((e,t)=>{let{transformer:n=Kr}=e,[r,o]=N("idle"),[i,a]=N(""),s=ne(e.theme),u=he({status:r,theme:s});me((p,D)=>{if(r==="idle")if(pe(p)){let h=Yr(i,e.default);a(n(h)),o("done"),t(h)}else if(qe(p)){let h=Kr(!Yr(i,e.default));D.clearLine(0),D.write(h),a(h)}else a(D.line)});let d=i,l="";r==="done"?d=s.style.answer(i):l=` ${s.style.defaultAnswer(e.default===!1?"y/N":"Y/n")}`;let c=s.style.message(e.message,r);return`${u} ${c}${l} ${d}`});var Qa={validationFailureMode:"keep"},Pe=Ee((e,t)=>{let{prefill:n="tab"}=e,r=ne(Qa,e.theme),[o,i]=N("idle"),[a="",s]=N(e.default),[u,d]=N(),[l,c]=N(""),p=he({status:o,theme:r});async function D(y){let{required:k,pattern:V,patternError:_="Invalid input"}=e;return k&&!y?"You must provide a value":V&&!V.test(y)?_:typeof e.validate=="function"?await e.validate(y)||"You must provide a valid value":!0}me(async(y,k)=>{if(o==="idle")if(pe(y)){let V=l||a;i("loading");let _=await D(V);_===!0?(c(V),i("done"),t(V)):(r.validationFailureMode==="clear"?c(""):k.write(l),d(_),i("idle"))}else ze(y)&&!l?s(void 0):qe(y)&&!l?(s(void 0),k.clearLine(0),k.write(a),c(a)):(c(k.line),d(void 0))}),te(y=>{n==="editable"&&a&&(y.write(a),c(a))},[]);let h=r.style.message(e.message,o),A=l;typeof e.transformer=="function"?A=e.transformer(l,{isFinal:o==="done"}):o==="done"&&(A=r.style.answer(l));let F;a&&o!=="done"&&!l&&(F=r.style.defaultAnswer(a));let C="";return u&&(C=r.style.error(u)),[[p,h,F,A].filter(y=>y!==void 0).join(" "),C]});var Ie=require("node:util");var Ya={icon:{cursor:Oe.pointer},style:{disabled:e=>(0,Ie.styleText)("dim",`- ${e}`),description:e=>(0,Ie.styleText)("cyan",e),keysHelpTip:e=>e.map(([t,n])=>`${(0,Ie.styleText)("bold",t)} ${(0,Ie.styleText)("dim",n)}`).join((0,Ie.styleText)("dim"," \u2022 "))},indexMode:"hidden",keybindings:[]};function Se(e){return!oe.isSeparator(e)&&!e.disabled}function Ka(e){return e.map(t=>{if(oe.isSeparator(t))return t;if(typeof t!="object"||t===null||!("value"in t)){let o=String(t);return{value:t,name:o,short:o,disabled:!1}}let n=t.name??String(t.value),r={value:t.value,name:n,short:t.short??n,disabled:t.disabled??!1};return t.description&&(r.description=t.description),r})}var In=Ee((e,t)=>{let{loop:n=!0,pageSize:r=7}=e,o=ne(Ya,e.theme),{keybindings:i}=o,[a,s]=N("idle"),u=he({status:a,theme:o}),d=ge(),l=!i.includes("vim"),c=Ye(()=>Ka(e.choices),[e.choices]),p=Ye(()=>{let O=c.findIndex(Se),q=c.findLastIndex(Se);if(O===-1)throw new Be("[select prompt] No selectable choices. All choices are disabled.");return{first:O,last:q}},[c]),D=Ye(()=>"default"in e?c.findIndex(O=>Se(O)&&O.value===e.default):-1,[e.default,c]),[h,A]=N(D===-1?p.first:D),F=c[h];me((O,q)=>{if(clearTimeout(d.current),pe(O))s("done"),t(F.value);else if(Ue(O,i)||At(O,i)){if(q.clearLine(0),n||Ue(O,i)&&h!==p.first||At(O,i)&&h!==p.last){let ce=Ue(O,i)?-1:1,H=h;do H=(H+ce+c.length)%c.length;while(!Se(c[H]));A(H)}}else if(Dn(O)&&!Number.isNaN(Number(q.line))){let ce=Number(q.line)-1,H=-1,re=c.findIndex(Te=>oe.isSeparator(Te)?!1:(H++,H===ce)),et=c[re];et!=null&&Se(et)&&A(re),d.current=setTimeout(()=>{q.clearLine(0)},700)}else if(ze(O))q.clearLine(0);else if(l){let ce=q.line.toLowerCase(),H=c.findIndex(re=>oe.isSeparator(re)||!Se(re)?!1:re.name.toLowerCase().startsWith(ce));H!==-1&&A(H),d.current=setTimeout(()=>{q.clearLine(0)},700)}}),te(()=>()=>{clearTimeout(d.current)},[]);let C=o.style.message(e.message,a),y=o.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]),k=0,V=En({items:c,active:h,renderItem({item:O,isActive:q,index:ce}){if(oe.isSeparator(O))return k++,` ${O.separator}`;let H=o.indexMode==="number"?`${ce+1-k}. `:"";if(O.disabled){let Te=typeof O.disabled=="string"?O.disabled:"(disabled)";return o.style.disabled(`${H}${O.name} ${Te}`)}let re=q?o.style.highlight:Te=>Te,et=q?o.icon.cursor:" ";return re(`${et} ${H}${O.name}`)},pageSize:r,loop:n});if(a==="done")return[u,C,o.style.answer(F.short)].filter(Boolean).join(" ");let{description:_}=F;return`${[[u,C].filter(Boolean).join(" "),V," ",_?o.style.description(_):"",y].filter(Boolean).join(`
111
- `).trimEnd()}${Mr}`});var Zr=require("node:child_process");var Wr=require("node:child_process");function Vr(e){try{return(0,Wr.execSync)("git rev-parse --is-inside-work-tree",{cwd:e,stdio:["ignore","pipe","ignore"],encoding:"utf-8"}).trim()==="true"}catch{return!1}}function Wa(e,t){let n=e.postScaffoldCommands;if(!n)return{commands:[],gitInitSkipped:!1};let r=n.setup??[],o=n.gitInit??[],i=o.length>0&&Vr(t);return{commands:i?[...r]:[...r,...o],gitInitSkipped:i}}async function Xr(e,t,n=!1,r=!1){let{commands:o,gitInitSkipped:i}=Wa(t,e);if(o.length===0){i&&(console.log(),console.log(I(`Existing git repo detected at ${e} \u2014 skipping git setup commands.`)));return}if(console.log(),i&&console.log(I(`Existing git repo detected at ${e} \u2014 skipping git setup commands.`)),console.log("The following commands will be executed:"),o.forEach(l=>{console.log(` ${I("$")} ${l}`)}),console.log(),!(!n&&(r||await Ze({message:"Continue?",default:!0})))){console.log(I(`
112
- Skipped post-scaffold commands. You can run them manually later.`));return}console.log(),console.log("Running post-scaffold commands..."),console.log();let s=0,u;for(let l of o)try{console.log(` ${I("$")} ${l}`),(0,Zr.execSync)(l,{cwd:e,stdio:"inherit"}),s++}catch(c){u=c instanceof Error?c.message:String(c);break}if(!u)return;let d=o[s];console.error(we(`
113
- Failed to execute command: ${d}
114
- ${u}
115
- `)),console.error(we(`\u26A0\uFE0F Aborting post-scaffold commands.
116
- `)),console.log("Command execution status:"),o.forEach((l,c)=>{c<s?console.log(` \u2713 ${I(l)}`):console.log(c===s?` \u2717 ${we(l)}`:` - ${I(l)} ${I("(skipped)")}`)}),console.log(),console.log("You can run the remaining commands manually from your project directory:"),console.log(` ${I("cd")} ${e}`),o.slice(s).forEach(l=>{console.log(` ${I("$")} ${l}`)}),console.log()}var Tn=["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 Va=new Set(["api","app"]);function Za(e){return(e.trim().replace(/^[a-z][a-z0-9+.-]*:\/\//i,"").split(/[/?#]/)[0]??"").trim().toLowerCase()}function Jr(e){if(typeof e!="string"||e.length===0)return;let t=Za(e),n=Tn.find(s=>s===t);if(n)return{site:n};let r=Tn.filter(s=>t.endsWith(`.${s}`)),[o]=r;if(o===void 0)return;let i=o;for(let s of r)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 Va.has(a)?{site:i}:{site:i,subdomain:a}}function Nn(e){let t=Jr(e);if(t!==void 0)return t.subdomain?`${t.subdomain}.${t.site}`:t.site}var Xa=new Set(["datad0g.com"]),Ja=Tn.filter(e=>!Xa.has(e));function _a(){return Ja.join(", ")}function Rn(e){return!e||!e.trim()?"The Datadog site cannot be empty.":Jr(e)!==void 0?!0:`"${e}" is not a known Datadog site. Known sites: ${_a()}.`}var Xe=Q(require("node:fs")),St=Q(require("node:path"));var Ot="datadoghq.com";function _r(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 Pt(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 $a(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function $r(e){return e.split("-").filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}async function eu(e,t){if(!Xe.default.existsSync(e))return;if(t){console.log(I("Deleting directory.")),Xe.default.rmSync(e,{force:!0,recursive:!0});return}if(console.log(),await Ze({message:`Directory ${L(e)} already exists. Overwrite?`,default:!1}))console.log(I("Deleting directory.")),Xe.default.rmSync(e,{force:!0,recursive:!0});else throw console.log(I("Cancelled.")),new Error("Operation cancelled by user")}async function ei(e,t,n,r,o){let i,a;if(e){let l=St.default.basename(e),c=_r(l);if(c!==!0)throw new Error(c);if(a=e,r!==void 0){let p=Pt(r);if(p!==!0)throw new Error(p);i=r.trim()}else n?i=$r(l):i=(await Pe({message:"Enter your app name:",default:$r(l),validate:Pt})).trim()}else{if(n)throw new Error("A directory name is required when using --yes. Pass it as a positional argument.");{if(r!==void 0){let c=Pt(r);if(c!==!0)throw new Error(c);i=r.trim()}else i=(await Pe({message:"Enter your app name:",validate:Pt})).trim();let l=$a(i);a=await Pe({message:"Enter the directory name for your app:",default:l,validate:c=>_r(c)})}}let s=St.default.basename(a),u=St.default.resolve(process.cwd(),a),d=Ot;if(o!==void 0){let l=Rn(o);if(l!==!0)throw new Error(l);d=Nn(o)??Ot}else if(!n){let l=await Pe({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:Ot,validate:Rn});d=Nn(l)??Ot}if(n&&!t&&Xe.default.existsSync(u))throw new Error(`Directory ${u} already exists. Use --overwrite to replace it.`);return await eu(u,t),{name:i,directoryName:s,directory:a,datadogSite:d,description:""}}var no=Q(require("node:fs/promises")),oo=Q(require("node:path"));var jn={};P(jn,{contents:()=>nu,filepath:()=>tu});var tu="./src/App.tsx",nu=e=>`import { useQuery } from '@tanstack/react-query';
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(`
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
+ ${fe(" ")}
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 ")}
95
+ ${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 ")}
96
+ ${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 ")}
97
+ ${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 ")}
98
+ ${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 ")}
99
+ ${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 ")}
100
+ ${fe(" ")}
101
+
102
+ ${P(" \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557")}
103
+ ${P("\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D")}
104
+ ${P("\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557")}
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
+ ${P("\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551")}
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`
109
+ ${r.join(`
110
+ `)}
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(`
112
+ Skipped post-scaffold commands. You can run them manually later.`));return}console.log(),console.log("Running post-scaffold commands..."),console.log();let u=0,c;for(let d of i)try{console.log(` ${w("$")} ${d}`),(0,Li.execSync)(d,{cwd:e,stdio:"inherit"}),u++}catch(l){c=l instanceof Error?l.message:String(l);break}if(!c)return;let p=i[u];if(console.error(W(`
113
+ Failed to execute command: ${p}
114
+ ${c}
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';
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';
@@ -168,7 +168,7 @@ function App() {
168
168
  }
169
169
 
170
170
  export default App;
171
- `;var Mn={};P(Mn,{contents:()=>ru,filepath:()=>ou});var ou="./docs/agents/backend-functions.md",ru=e=>`# Backend Functions
171
+ `;var sn={};C(sn,{contents:()=>sc,filepath:()=>ic});var ic="./docs/agents/backend-functions.md",sc=e=>`# Backend Functions
172
172
 
173
173
  Backend functions are Datadog-managed server-side functions. They do not ship to the browser.
174
174
 
@@ -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 Ln={};P(Ln,{contents:()=>su,filepath:()=>iu});var iu="./docs/agents/build-upload-auth.md",su=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 Gn={};P(Gn,{contents:()=>uu,filepath:()=>au});var au="./docs/agents/cicd.md",uu=e=>`# 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 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
286
286
 
287
287
  ## GitHub Actions
288
288
 
@@ -324,7 +324,7 @@ jobs:
324
324
  Store \`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.
325
325
 
326
326
  For non-US1 organizations, configure the Datadog site in \`datadog-app.config.json\` (\`datadogSite\` field) and ensure CI and local config are aligned.
327
- `;var Hn={};P(Hn,{contents:()=>cu,filepath:()=>du});var du="./docs/agents/data.md",cu=e=>`# Data Access
327
+ `;var cn={};C(cn,{contents:()=>lc,filepath:()=>pc});var pc="./docs/agents/data.md",lc=e=>`# Data Access
328
328
 
329
329
  Backend functions have two primary data access paths: DDSQL and Action Catalog.
330
330
 
@@ -387,7 +387,7 @@ Connections are optional, reusable auth configuration for Action Catalog actions
387
387
  Integrations such as GitHub, Jira, Slack, PagerDuty, and Statuspage may inherit credentials from their Datadog integration tile and may not need an explicit connection.
388
388
 
389
389
  Public docs: [Connections](https://docs.datadoghq.com/actions/connections/), [Action Catalog](https://docs.datadoghq.com/actions/action_interface/)
390
- `;var Un={};P(Un,{contents:()=>pu,filepath:()=>lu});var lu="./docs/agents/runtime-context.md",pu=e=>`# Runtime Context
390
+ `;var dn={};C(dn,{contents:()=>Dc,filepath:()=>fc});var fc="./docs/agents/runtime-context.md",Dc=e=>`# Runtime Context
391
391
 
392
392
  Datadog Apps are embedded inside the Datadog UI. Treat this app as iframe-hosted browser code with Datadog-managed backend execution.
393
393
 
@@ -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 zn={};P(zn,{contents:()=>fu,filepath:()=>Du});var Du="./docs/agents/upgrading.md",fu=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 qn={};P(qn,{contents:()=>gu,filepath:()=>hu});var hu="./docs/agents/workflow-automation.md",gu=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`) 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
 
@@ -577,7 +577,35 @@ Treat \`statusKind === "SUCCEEDED"\` as success. All other terminal statuses (\`
577
577
  - \`input parameter not in workflow input schema\`: update \`meta.payload\` keys to match \`inputSchema.parameters\`.
578
578
  - \`Expected trigger type TRIGGER_TYPE_API not found\`: add and publish an API trigger on the workflow.
579
579
  - 401/403: confirm \`DD_API_KEY\` and \`DD_APP_KEY\` are set with Actions API Access, and the app site matches the API host.
580
- `;var Qn={};P(Qn,{contents:()=>Au,filepath:()=>mu});var mu="./AGENTS.md",Au=e=>`# ${e.name}
580
+ `;var fn={};C(fn,{contents:()=>Fc,filepath:()=>yc});var yc="./AGENTS.md",Fc=e=>{if(e.workspace){let t=e.workspace.rootRelativePath,n=e.workspace.container,o=e.name,r=e.directoryName;return`# ${o}
581
+
582
+ This app is part of a Datadog Apps workspace. Shared guidance \u2014 including layout, dependencies, testing policy, and how changes ship \u2014 lives at the workspace root; read it before assuming anything not covered below.
583
+
584
+ ## Read relevant guides
585
+ - Embedded app context / routing / storage: ${t}/docs/agents/runtime-context.md
586
+ - Backend functions (*.backend.ts): ${t}/docs/agents/backend-functions.md
587
+ - Local dev / auth / build / upload: ${t}/docs/agents/build-upload-auth.md
588
+ - CI/CD (GitHub Actions deploy workflow): ${t}/docs/agents/cicd.md
589
+ - Data access (DDSQL vs. Action Catalog, Connections, datastores): ${t}/docs/agents/data.md
590
+ - Triggering or polling Workflow Automation from a backend function: ${t}/docs/agents/workflow-automation.md
591
+ - Upgrading \`@datadog/vite-plugin\` or \`@datadog/action-catalog\`: ${t}/docs/agents/upgrading.md
592
+ - Workspace overview (layout, dependencies, testing, shipping/CI): ${t}/AGENTS.md
593
+
594
+ ## This app
595
+ - This app owns its unique \`id\` in \`./datadog-app.config.json\` \u2014 never share or copy it.
596
+ - Run locally: \`npm run dev -w ${n}/${r}\` (from the workspace root) or \`npm run dev\` (from this directory).
597
+ - Upload: \`npm run upload -w ${n}/${r}\`.
598
+
599
+ ## Testing
600
+
601
+ Storybook stories are not required for this app right now \u2014 skip them unless explicitly asked. Playwright is still encouraged for browser validation when available, especially for visual/design changes. Validate with \`npm run dev\`, \`npm run build\`, and \`npm run typecheck\`/\`npm run lint\`.
602
+
603
+ ## Rules
604
+ - Keep secret-dependent work and privileged API calls in backend functions.
605
+ - Never hardcode API keys, app keys, or OAuth tokens.
606
+ - Prefer the generated npm scripts; this workspace uses npm.
607
+ - 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
+ `}return`# ${e.name}
581
609
 
582
610
  This is a Datadog App scaffolded with \`npm create @datadog/apps\`.
583
611
 
@@ -626,9 +654,9 @@ This app uses the published \`@datadog/druids\` package. In scaffolded apps, imp
626
654
  - Use Datadog MCP tools when available for Datadog-specific lookup, diagnostics, or API-backed workflows.
627
655
 
628
656
  Primary docs: https://docs.datadoghq.com/actions/datadog_apps/
629
- `;var Yn={};P(Yn,{contents:()=>Eu,filepath:()=>Fu});var Fu="./CLAUDE.md",Eu=e=>`@AGENTS.md
630
- `;var Kn={};P(Kn,{contents:()=>bu,filepath:()=>Cu});var ti=require("node:crypto"),Cu="./datadog-app.config.json",yu=/^([0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/,bu=e=>{let t=e.identifier?.trim();if(t&&!yu.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,ti.createHash)("md5").update(`${Math.random().toString()}:${e.name}`).digest("hex"),r={$schema:"https://unpkg.com/@datadog/create-apps/dist/datadog-app.config.schema.json",datadogSite:e.datadogSite,id:n,name:e.name};return`${JSON.stringify(r,null,2)}
631
- `};var Wn={};P(Wn,{contents:()=>wu,filepath:()=>vu});var vu="./eslint.config.mjs",wu=e=>`import js from '@eslint/js';
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)}
659
+ `};var hn={};C(hn,{contents:()=>xc,filepath:()=>kc});var kc="./eslint.config.mjs",xc=e=>`import js from '@eslint/js';
632
660
  import { defineConfig, globalIgnores } from 'eslint/config';
633
661
  import reactHooks from 'eslint-plugin-react-hooks';
634
662
  import reactRefresh from 'eslint-plugin-react-refresh';
@@ -651,7 +679,7 @@ export default defineConfig([
651
679
  },
652
680
  },
653
681
  ]);
654
- `;var Vn={};P(Vn,{contents:()=>Bu,filepath:()=>xu});var xu="./public/favicon.ico",Bu=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 Zn={};P(Zn,{contents:()=>Ou,filepath:()=>ku});var ku="./src/getGreeting.backend.ts",Ou=e=>"export async function getGreeting(name: string) {\n return `Hello, ${name}! This greeting ran as a backend function.`;\n}\n";var Xn={};P(Xn,{contents:()=>Su,filepath:()=>Pu});var Pu="./.gitignore",Su=e=>`logs
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
655
683
  *.log
656
684
  npm-debug.log*
657
685
  yarn-debug.log*
@@ -679,7 +707,7 @@ dist-ssr
679
707
  .env
680
708
  .env.local
681
709
  .env.*.local
682
- `;var Jn={};P(Jn,{contents:()=>Tu,filepath:()=>Iu});var Iu="./index.html",Tu=e=>`<!DOCTYPE html>
710
+ `;var yn={};C(yn,{contents:()=>Nc,filepath:()=>Rc});var Rc="./index.html",Nc=e=>`<!DOCTYPE html>
683
711
  <html lang="en">
684
712
 
685
713
  <head>
@@ -694,7 +722,7 @@ dist-ssr
694
722
  </body>
695
723
 
696
724
  </html>
697
- `;var _n={};P(_n,{contents:()=>Ru,filepath:()=>Nu});var Nu="./src/main.tsx",Ru=e=>`import '@datadog/druids/styles.css';
725
+ `;var Fn={};C(Fn,{contents:()=>Mc,filepath:()=>jc});var jc="./src/main.tsx",Mc=e=>`import '@datadog/druids/styles.css';
698
726
 
699
727
  import { DruidsEnvironmentWithThemeInput } from '@datadog/apps-frontend/druids/react';
700
728
  import { DatadogAppProvider } from '@datadog/apps-frontend/embedding/react';
@@ -724,7 +752,7 @@ if (appRoot) {
724
752
  } else {
725
753
  console.error('Missing #app div for createRoot.');
726
754
  }
727
- `;var $n={};P($n,{contents:()=>Mu,filepath:()=>ju});var ju="./package.json",Mu=e=>{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 eo={};P(eo,{contents:()=>Gu,filepath:()=>Lu});var Lu="./tsconfig.json",Gu=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},include:["src"]},null,2);var to={};P(to,{contents:()=>Uu,filepath:()=>Hu});var Hu="./vite.config.ts",Uu=e=>{let t="";return(e.rumConfig?.applicationId||e.rumConfig?.clientToken)&&(t=`
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=`
728
756
  rum: {
729
757
  enable: true,
730
758
  sdk: {
@@ -754,7 +782,7 @@ export default defineConfig({
754
782
  datadogVitePlugin({
755
783
  logLevel: 'debug',
756
784
  auth: {
757
- site: datadogAppConfig.datadogSite,
785
+ site: process.env.DD_SITE || datadogAppConfig.datadogSite,
758
786
  apiKey: process.env.DD_API_KEY,
759
787
  appKey: process.env.DD_APP_KEY,
760
788
  },
@@ -785,7 +813,374 @@ export default defineConfig({
785
813
  }),
786
814
  ],
787
815
  });
788
- `};var ni={name:"Vite & React",description:"A basic React application bundled with Vite.",requiresRumConfig:!0,postScaffoldCommands:{setup:["npm install"],gitInit:["git init","git add .",'git commit -m "Initial commit"']}};var oi={metadata:ni,files:[Kn,jn,Qn,Un,Mn,Ln,Gn,Hn,qn,zn,Yn,Wn,Zn,Xn,Vn,Jn,_n,$n,eo,to]};var Je={"vite-react":oi};function qu(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 Qu(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 ri=["npm","yarn","git"],ii=["|",">","<","$(","`","&&","||",";"];function Yu(e){let t=e.trim(),r=t.split(/\s+/)[0];if(!r||!ri.includes(r))return!1;for(let o of ii)if(t.includes(o))return!1;return!0}function Ku(e,t){let n=[];if(!e.postScaffoldCommands)return n;let r=[...e.postScaffoldCommands.setup??[],...e.postScaffoldCommands.gitInit??[]];for(let o of r)if(!Yu(o)){let i=ri.join(", "),a=ii.join(", ");n.push(`[${t}] Unsafe post-scaffold command: "${o}".
789
- Only ${i} commands without dangerous patterns (${a}) are allowed.`)}return n}function si(){let e=[];for(let[t,n]of Object.entries(Je)){e.push(...qu(n.metadata,t)),e.push(...Ku(n.metadata,t));for(let r of n.files)e.push(...Qu(r,n.metadata.name))}if(e.length>0){let t=["Template validation errors:",...e.map(n=>` - ${n}`)].join(`
790
- `);return console.log(t),1}return 0}function ro(e){let t=Je[e];if(!t){let n=Object.keys(Je).join(", ");throw new Error(`Unknown template "${e}". Available templates: ${n}. Remove the --template option to select from the list instead.`)}return t}async function ai(){let e=Object.values(Je).map(t=>({name:t.metadata.name,value:t,description:t.metadata.description}));if(e.length===0)throw new Error("No templates found.");return In({message:"Select a template",choices:e.map(({name:t,value:n,description:r})=>({name:`${_o(t)}
791
- ${I(r)}`,value:n}))})}async function ui(e,t){let n=t.map(async({filepath:r,contents:o})=>{let i=oo.default.join(e,r);await no.default.mkdir(oo.default.dirname(i),{recursive:!0}),await no.default.writeFile(i,o,Buffer.isBuffer(o)?void 0:{encoding:"utf-8"})});await Promise.all(n)}var It=class extends G.Command{static paths=[G.Command.Default];static usage=G.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']]});directory=G.Option.String({required:!1});template=G.Option.String("--template",{required:!1,description:"Template to use (e.g., vite-react)"});appName=G.Option.String("--name",{required:!1,description:"App name (user-facing)"});datadogSite=G.Option.String("--site",{required:!1,description:"Datadog site (e.g. datadoghq.com, datadoghq.eu)"});identifier=G.Option.String("--identifier",{required:!1,description:"App identifier baked into datadog-app.config.json (defaults to a generated value)"});yes=G.Option.Boolean("--yes,-y",{description:"Accept all defaults without prompting"});overwrite=G.Option.Boolean("--overwrite",{description:"Overwrite existing directory without prompting"});validate=G.Option.Boolean("--validate",{description:"Validate templates and exit"});skipPostScaffold=G.Option.Boolean("--skip-post-scaffold",{description:"Skip post-scaffold commands"});async execute(){console.log($o),console.log(),console.log();try{if(this.validate)return si();let t=await ei(this.directory,this.overwrite,this.yes,this.appName,this.datadogSite),n=di.default.resolve(process.cwd(),t.directory),r=this.template?ro(this.template):this.yes?ro("vite-react"):await ai(),o=r.metadata;console.log(),console.log(),console.log(`Creating ${L(t.name)} in ${L(n)}...`),console.log(),console.log();let i=r.files.map(a=>({filepath:a.filepath,contents:a.contents({name:t.name,directoryName:t.directoryName,datadogSite:t.datadogSite,identifier:this.identifier})}));return await ui(n,i),await Xr(n,o,this.skipPostScaffold,this.yes),console.log(nr(t)),0}catch(t){return rr(t)?console.log(tr()):ir(t),1}}};var ci="0.1.2";var Tt=new _e.Cli({binaryLabel:"create-apps",binaryName:"npm init @datadog/apps",binaryVersion:ci});Tt.register(It);Tt.register(_e.Builtins.HelpCommand);Tt.register(_e.Builtins.VersionCommand);Tt.runExit(process.argv.slice(2));
816
+ `};var Zi={name:"Vite & React",description:"A basic React application bundled with Vite.",requiresRumConfig:!0,postScaffoldCommands:{setup:["npm install"],gitInit:["git init","git add .",'git commit -m "Initial commit"']}};var Lo={};C(Lo,{contents:()=>Qc,filepath:()=>Yc});var Yc="./src/index.ts",Qc=e=>`/**
817
+ * ${e.name} \u2014 shared library for this Datadog Apps workspace.
818
+ *
819
+ * Everything exported here is importable from apps via the package name
820
+ * (see this package's package.json "name"). No build step is needed \u2014 the
821
+ * consuming app's bundler compiles this source directly.
822
+ */
823
+ export const greet = (name: string): string => \`Hello, \${name}!\`;
824
+ `;var Go={};C(Go,{contents:()=>Vc,filepath:()=>Wc});var Wc="./package.json",Vc=e=>{let n={name:`@${$t(e.workspace?.rootName??e.name)}/${e.name}`,version:"0.0.1",private:!0,type:"module",exports:{".":"./src/index.ts"},scripts:{typecheck:"tsc --noEmit"},peerDependencies:{react:"^19.2.8"},devDependencies:{"@types/react":"^19.2.18"}};return JSON.stringify(n,null,2)};var Ho={};C(Ho,{contents:()=>Jc,filepath:()=>Zc});var Zc="./tsconfig.json",Jc=e=>{let t=e.workspace?.rootRelativePath??"..";return JSON.stringify({extends:`${t}/tsconfig.base.json`,include:["src"]},null,2)};var Uo={};C(Uo,{contents:()=>_c,filepath:()=>Xc});var Xc="./AGENTS.md",_c=e=>{let t=e.workspace?.container??"apps";return`# ${e.name} \u2014 Datadog Apps workspace
825
+
826
+ This is a Datadog Apps npm workspace. It can hold multiple apps, each independently developed, built, and uploaded.
827
+
828
+ Before editing, read this root \`AGENTS.md\` and every nested \`AGENTS.md\` that applies to the files you will touch.
829
+
830
+ ## Layout
831
+
832
+ - \`${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>\`.
834
+ - Shared config (root \`package.json\`, \`tsconfig.base.json\`) and \`docs/agents/\` live at the workspace root.
835
+
836
+ ## Working with apps
837
+
838
+ - Run an app locally: \`npm run dev -w ${t}/<name>\` (from the workspace root), or \`npm run dev\` from inside the app directory.
839
+ - Build one app: \`npm run build -w ${t}/<name>\`.
840
+ - Upload one app: \`npm run upload -w ${t}/<name>\`.
841
+ - Build, typecheck, or lint the whole workspace from the root: \`npm run build\`, \`npm run typecheck\`, \`npm run lint\`.
842
+ - Each app owns its unique identifier in \`${t}/<name>/datadog-app.config.json\` \u2014 never share or copy it between apps.
843
+
844
+ ## Shipping changes
845
+
846
+ 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
+
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.
849
+
850
+ ## Testing
851
+
852
+ - Storybook stories are not required for apps in this workspace right now \u2014 skip them unless explicitly asked.
853
+ - Playwright is still encouraged for browser validation when available, especially for visual/design changes.
854
+ - Validate with \`npm run dev\`, \`npm run build\`, and \`npm run typecheck\`/\`npm run lint\`; treat the post-merge deploy and a manual check in App Builder as the real verification step.
855
+
856
+ ## Adding another app
857
+
858
+ 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
+
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.
861
+
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**.
863
+
864
+ 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
+
866
+ ### Required lockfile gate before opening or updating a PR
867
+
868
+ The root \`package-lock.json\` is generated output shared by every app and package. Never edit or splice it by hand, resolve its conflicts line by line, or delete the entire lockfile to resolve a conflict.
869
+
870
+ After making all workspace changes, complete this procedure before opening or updating a pull request:
871
+
872
+ 1. Fetch \`origin\`, dynamically resolve the repository's actual default branch, and incorporate its latest commit. Do not assume the branch is named \`main\` or \`master\`. Record the incorporated default-branch SHA.
873
+ 2. Keep every app and package directory from the combined tree. If \`package-lock.json\` conflicts or cannot be parsed, restore the lockfile from that latest default-branch commit; do not discard either side's workspace directories.
874
+ 3. From the workspace root, regenerate only the lockfile:
875
+
876
+ \`\`\`sh
877
+ npm install --package-lock-only --ignore-scripts
878
+ \`\`\`
879
+
880
+ 4. From the workspace root, perform a clean validation:
881
+
882
+ \`\`\`sh
883
+ npm ci --ignore-scripts
884
+ \`\`\`
885
+
886
+ 5. Confirm every new workspace has both its \`${t}/<directory>\` or \`packages/<directory>\` record and its \`node_modules/<package-name>\` workspace link in the root lockfile.
887
+ 6. Commit the app or package files and root \`package-lock.json\` together. If lockfile generation or \`npm ci\` fails, do not commit, open or update the pull request, upload, or merge.
888
+
889
+ Before requesting a merge, fetch the default branch again. If its SHA changed after step 1, repeat the reconciliation, regeneration, and validation against the new commit. Never request or perform the merge until the latest validation and the pull request's \`npm ci\` check have both completed successfully. Do not run upload or build commands as part of this lockfile gate.
890
+
891
+ ## Managing dependencies
892
+
893
+ Declare each dependency in the workspace that imports it, even when npm physically hoists it into the root \`node_modules\`:
894
+
895
+ - App runtime dependency: \`npm install <dependency> -w ${t}/<name>\`.
896
+ - Shared-package runtime dependency: \`npm install <dependency> -w packages/<name>\`.
897
+ - Root build tooling: run \`npm install --save-dev <dependency>\` from the workspace root without a workspace flag.
898
+ - Host-owned singletons such as React belong in a shared package's \`peerDependencies\`; apps that import React still declare it directly.
899
+ - React alignment: before installing dependencies for a workspace app, inspect its \`package.json\` and the root \`package.json\`. The app's \`react\` and \`react-dom\` ranges must match the root \`overrides\`; if React types are declared, they must match the root \`devDependencies\`. The \`@datadog/druids\` peer range is a compatibility check, not a workspace version selector; validate every workspace app resolves one React / React DOM version.
900
+
901
+ Run \`npm install\` and \`npm ci\` only from the workspace root. Commit the single root \`package-lock.json\`; do not create per-app lockfiles or maintain app-level \`node_modules\` directories. npm's default hoisted strategy shares compatible versions at the root and may create nested copies only when versions conflict, so code must never rely on a dependency's physical install location.
902
+
903
+ After changing any \`package.json\`, follow the required lockfile gate above and commit the updated root lockfile in the same change.
904
+
905
+ ## Sharing code between apps
906
+
907
+ Shared libraries live under \`packages/<name>/\` and are linked into apps through npm workspaces: depend on them with the \`"*"\` version range and npm resolves them from the local workspace, not the registry. (npm does not implement the \`workspace:*\` protocol that Yarn/pnpm use \u2014 use \`"*"\`.) Dev tooling (TypeScript, Vite, ESLint) is hoisted to the root, so a shared package needs no build step or toolchain of its own \u2014 Vite bundles its source directly.
908
+
909
+ Scaffold one with the CLI (recommended):
910
+
911
+ \`\`\`sh
912
+ npm create @datadog/apps@dev -- --package shared
913
+ \`\`\`
914
+
915
+ 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:
916
+
917
+ 1. Depend on it from the app (\`${t}/<name>/package.json\`):
918
+
919
+ \`\`\`json
920
+ "dependencies": { "@${e.name}/shared": "*" }
921
+ \`\`\`
922
+
923
+ 2. Run \`npm install\` once at the workspace root to link it.
924
+
925
+ 3. Import it in the app like any other package:
926
+
927
+ \`\`\`ts
928
+ import { greet } from '@${e.name}/shared';
929
+ \`\`\`
930
+
931
+ If an app's \`npm run typecheck\` cannot resolve the shared package's types, add a \`paths\` entry to the app's \`tsconfig.json\` (or a TS project reference) pointing at the package source relative to the app directory (e.g. \`../../packages/shared/src\`). Runtime bundling via Vite works without this.
932
+
933
+ ## Auth
934
+
935
+ Apps use OAuth by default for local development and uploads. Set \`DD_API_KEY\` and \`DD_APP_KEY\` in your environment to use API-key based auth instead.
936
+
937
+ ## Publishing this workspace to a source code provider
938
+
939
+ When the user asks to "publish", "push up", or "create a repo" for this workspace:
940
+
941
+ 1. Check whether an \`origin\` remote already exists.
942
+ 2. If \`origin\` exists, show its URL and push the current branch. Never replace it without explicit approval.
943
+ 3. If no remote exists and the user wants GitHub, confirm the target \`OWNER/REPO\`, then run \`gh repo create OWNER/REPO --private --source=. --remote=origin --push\` from this workspace root.
944
+ 4. Use the workspace directory name as the repository name only when the user has not specified one. Default new repositories to private.
945
+ 5. Confirm before creating any remote repository because it changes external state. Never force-push or change repository visibility unless explicitly requested.
946
+ 6. If the provider CLI is missing or unauthenticated, preserve the local repository and give the user the manual command.
947
+
948
+ ## Read relevant guides
949
+
950
+ - Embedded app context / routing / storage: \`docs/agents/runtime-context.md\`
951
+ - Backend functions (\`*.backend.ts\`): \`docs/agents/backend-functions.md\`
952
+ - Local dev / auth / build / upload: \`docs/agents/build-upload-auth.md\`
953
+ - CI/CD (GitHub Actions deploy workflow): \`docs/agents/cicd.md\`
954
+ - Data access (DDSQL vs. Action Catalog, Connections, datastores): \`docs/agents/data.md\`
955
+ - Triggering or polling Workflow Automation from a backend function: \`docs/agents/workflow-automation.md\`
956
+ - 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
958
+
959
+ on:
960
+ pull_request: {}
961
+
962
+ permissions:
963
+ contents: read
964
+
965
+ concurrency:
966
+ group: validate-datadog-apps-\${{ github.ref }}
967
+ cancel-in-progress: true
968
+
969
+ jobs:
970
+ validate:
971
+ name: Typecheck, lint & build
972
+ runs-on: ubuntu-latest
973
+ steps:
974
+ - uses: actions/checkout@v6
975
+ - uses: actions/setup-node@v6
976
+ with:
977
+ node-version: 22
978
+ cache: npm
979
+ - run: npm ci
980
+ - name: Check workspace React alignment
981
+ run: node .github/scripts/validate-workspace.mjs
982
+ - run: npm run typecheck
983
+ - run: npm run lint
984
+ - run: npm run build
985
+ `;var Ko={};C(Ko,{contents:()=>id,filepath:()=>rd});var rd="./.github/workflows/deploy-datadog-apps.yml",id=e=>{let t=e.workspace?.container??"apps";return`name: Deploy Datadog Apps
986
+
987
+ on:
988
+ push:
989
+ paths:
990
+ - '${t}/**'
991
+ - 'packages/**'
992
+ - 'package.json'
993
+ - 'package-lock.json'
994
+ - 'tsconfig.base.json'
995
+ - 'eslint.config.mjs'
996
+ - '.github/scripts/validate-workspace.mjs'
997
+ - '.github/workflows/deploy-datadog-apps.yml'
998
+
999
+ permissions:
1000
+ contents: read
1001
+
1002
+ concurrency:
1003
+ group: deploy-datadog-apps-\${{ github.ref }}
1004
+ cancel-in-progress: false
1005
+
1006
+ jobs:
1007
+ prepare:
1008
+ name: Prepare deployment
1009
+ if: github.ref_name == github.event.repository.default_branch
1010
+ runs-on: ubuntu-latest
1011
+ outputs:
1012
+ matrix: \${{ steps.detect.outputs.matrix }}
1013
+ any: \${{ steps.detect.outputs.any }}
1014
+ steps:
1015
+ - uses: actions/checkout@v6
1016
+ with:
1017
+ fetch-depth: 0
1018
+ - uses: actions/setup-node@v6
1019
+ with:
1020
+ node-version: 22
1021
+ cache: npm
1022
+ - run: npm ci --ignore-scripts
1023
+ - name: Check workspace React alignment
1024
+ run: node .github/scripts/validate-workspace.mjs
1025
+ - id: detect
1026
+ env:
1027
+ CONTAINER: '${t}'
1028
+ BEFORE: \${{ github.event.before }}
1029
+ AFTER: \${{ github.sha }}
1030
+ run: |
1031
+ node <<'NODE'
1032
+ const fs = require('node:fs');
1033
+ const path = require('node:path');
1034
+ const { execFileSync } = require('node:child_process');
1035
+
1036
+ const container = process.env.CONTAINER;
1037
+ const emptyTree = execFileSync(
1038
+ 'git',
1039
+ ['hash-object', '-t', 'tree', '/dev/null'],
1040
+ { encoding: 'utf8' },
1041
+ ).trim();
1042
+ let base = process.env.BEFORE;
1043
+ if (!base || /^0+$/.test(base)) {
1044
+ base = emptyTree;
1045
+ } else {
1046
+ try {
1047
+ execFileSync('git', ['cat-file', '-e', base + '^{commit}'], { stdio: 'ignore' });
1048
+ } catch {
1049
+ base = emptyTree;
1050
+ }
1051
+ }
1052
+
1053
+ const changedFiles = execFileSync(
1054
+ 'git',
1055
+ ['diff', '--name-only', '-z', base, process.env.AFTER],
1056
+ { encoding: 'utf8' },
1057
+ ).split('\\0').filter(Boolean);
1058
+ const globalFiles = {
1059
+ 'package.json': true,
1060
+ 'tsconfig.base.json': true,
1061
+ 'eslint.config.mjs': true,
1062
+ '.github/workflows/deploy-datadog-apps.yml': true,
1063
+ };
1064
+ const globalChange = changedFiles.some(
1065
+ (file) => file.startsWith('packages/') || globalFiles[file] === true,
1066
+ );
1067
+ const lockfileChanged = changedFiles.includes('package-lock.json');
1068
+ const entries = fs.existsSync(container)
1069
+ ? fs.readdirSync(container, { withFileTypes: true })
1070
+ : [];
1071
+ const existingApps = new Set(
1072
+ entries
1073
+ .filter((entry) => entry.isDirectory() && fs.existsSync(path.join(container, entry.name, 'package.json')))
1074
+ .map((entry) => entry.name),
1075
+ );
1076
+
1077
+ const prefix = container + '/';
1078
+ const directlyChangedApps = changedFiles
1079
+ .filter((file) => file.startsWith(prefix))
1080
+ .map((file) => file.slice(prefix.length).split('/')[0])
1081
+ .filter((name) => existingApps.has(name));
1082
+
1083
+ let apps;
1084
+ if (globalChange || (lockfileChanged && directlyChangedApps.length === 0)) {
1085
+ apps = [...existingApps];
1086
+ } else {
1087
+ apps = directlyChangedApps;
1088
+ }
1089
+ apps = [...new Set(apps)].sort();
1090
+
1091
+ const matrix = JSON.stringify({ app: apps });
1092
+ fs.appendFileSync(
1093
+ process.env.GITHUB_OUTPUT,
1094
+ 'matrix=' + matrix + '\\nany=' + String(apps.length > 0) + '\\n',
1095
+ );
1096
+ console.log('Changed apps: ' + matrix);
1097
+ NODE
1098
+
1099
+ upload:
1100
+ name: Upload \${{ matrix.app }}
1101
+ needs: prepare
1102
+ if: needs.prepare.outputs.any == 'true'
1103
+ runs-on: ubuntu-latest
1104
+ strategy:
1105
+ fail-fast: false
1106
+ matrix: \${{ fromJSON(needs.prepare.outputs.matrix) }}
1107
+ steps:
1108
+ - uses: actions/checkout@v6
1109
+ - uses: actions/setup-node@v6
1110
+ with:
1111
+ node-version: 22
1112
+ cache: npm
1113
+ - run: npm ci
1114
+ - name: Check Datadog deploy secrets
1115
+ env:
1116
+ DD_API_KEY: \${{ secrets.DATADOG_API_KEY }}
1117
+ DD_APP_KEY: \${{ secrets.DATADOG_APP_KEY }}
1118
+ run: |
1119
+ if [ -z "$DD_API_KEY" ] || [ -z "$DD_APP_KEY" ]; then
1120
+ 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"
1122
+ exit 1
1123
+ fi
1124
+ - 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"
1132
+ `};var Yo={};C(Yo,{contents:()=>ad,filepath:()=>sd});var sd="./.github/scripts/validate-workspace.mjs",ad=()=>`import fs from 'node:fs';
1133
+ import path from 'node:path';
1134
+
1135
+ const root = JSON.parse(fs.readFileSync('package.json', 'utf8'));
1136
+ const expected = {
1137
+ react: root.overrides?.react,
1138
+ 'react-dom': root.overrides?.['react-dom'],
1139
+ };
1140
+ const expectedTypes = {
1141
+ '@types/react': root.devDependencies?.['@types/react'],
1142
+ '@types/react-dom': root.devDependencies?.['@types/react-dom'],
1143
+ };
1144
+ const missingRootRanges = Object.entries({ ...expected, ...expectedTypes })
1145
+ .filter(([, range]) => !range)
1146
+ .map(([name]) => name);
1147
+ if (missingRootRanges.length) {
1148
+ throw new Error(
1149
+ 'Root package.json is missing required dependency ranges: ' +
1150
+ missingRootRanges.join(', '),
1151
+ );
1152
+ }
1153
+ const container = root.datadogApps?.container ?? 'apps';
1154
+ const mismatches = [];
1155
+ const entries = fs.existsSync(container)
1156
+ ? fs.readdirSync(container, { withFileTypes: true })
1157
+ : [];
1158
+
1159
+ for (const entry of entries) {
1160
+ if (!entry.isDirectory()) continue;
1161
+
1162
+ const packagePath = path.join(container, entry.name, 'package.json');
1163
+ if (!fs.existsSync(packagePath)) continue;
1164
+
1165
+ const app = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
1166
+ for (const [name, range] of Object.entries(expected)) {
1167
+ if (app.dependencies?.[name] !== range) {
1168
+ mismatches.push(packagePath + ': ' + name);
1169
+ }
1170
+ }
1171
+ for (const [name, range] of Object.entries(expectedTypes)) {
1172
+ if (app.devDependencies?.[name] && app.devDependencies[name] !== range) {
1173
+ mismatches.push(packagePath + ': ' + name);
1174
+ }
1175
+ }
1176
+ }
1177
+
1178
+ if (mismatches.length) {
1179
+ throw new Error(
1180
+ 'Workspace React dependency mismatch:\\n' + mismatches.join('\\n'),
1181
+ );
1182
+ }
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}".
1184
+ 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
+ `);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));