@datadog/create-apps 0.1.2 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -4
- package/dist/bin.js +509 -103
- package/dist/datadog-app.config.schema.json +20 -0
- 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
|
|
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:
|
|
10
|
-
`)}`}else if(this.candidates.length===1){let[{usage:
|
|
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
|
-
$ ${
|
|
13
|
-
${
|
|
12
|
+
$ ${o}
|
|
13
|
+
${On(t)}`}else this.message=`Command not found; did you mean one of:
|
|
14
14
|
|
|
15
|
-
${this.candidates.map(({usage:
|
|
15
|
+
${this.candidates.map(({usage:o},r)=>`${`${r}.`.padStart(4)} ${o}`).join(`
|
|
16
16
|
`)}
|
|
17
17
|
|
|
18
|
-
${
|
|
18
|
+
${On(t)}`}},Pn=class extends Error{constructor(t,n){super(),this.input=t,this.usages=n,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives:
|
|
19
19
|
|
|
20
|
-
${this.usages.map((r
|
|
20
|
+
${this.usages.map((o,r)=>`${`${r}.`.padStart(4)} ${o}`).join(`
|
|
21
21
|
`)}
|
|
22
22
|
|
|
23
|
-
${
|
|
24
|
-
`),n=t.filter(
|
|
25
|
-
`)}function
|
|
26
|
-
`),e=
|
|
23
|
+
${On(t)}`}},On=e=>`While running ${e.filter(t=>t!==Xo.SpecialToken.EndOfInput&&t!==Xo.SpecialToken.EndOfPartialInput).map(t=>{let n=JSON.stringify(t);return t.match(/\s/)||t.length===0||n!==`"${t}"`?n:t}).join(" ")}`;Ye.AmbiguousSyntaxError=Pn;Ye.UnknownSyntaxError=Sn;Ye.UsageError=Bn});var In=x(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});var _o=80,Tn=Array(_o).fill("\u2501");for(let e=0;e<=24;++e)Tn[Tn.length-e]=`\x1B[38;5;${232+e}m\u2501`;var gs={header:e=>`\x1B[1m\u2501\u2501\u2501 ${e}${e.length<_o-5?` ${Tn.slice(e.length+5).join("")}`:":"}\x1B[0m`,bold:e=>`\x1B[1m${e}\x1B[22m`,error:e=>`\x1B[31m\x1B[1m${e}\x1B[22m\x1B[39m`,code:e=>`\x1B[36m${e}\x1B[39m`},ms={header:e=>e,bold:e=>e,error:e=>e,code:e=>e};function As(e){let t=e.split(`
|
|
24
|
+
`),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
|
|
29
|
-
`);let i=
|
|
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,
|
|
33
|
-
`:""}
|
|
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 bs(e,t){return typeof e>"u"?[e,t]:typeof e=="object"&&e!==null&&!Array.isArray(e)?[void 0,e]:[e,t]}function Rn(e,{mergeName:t=!1}={}){let n=e.match(/^([^:]+): (.*)$/m);if(!n)return"validation failed";let[,o,r]=n;return t&&(r=r[0].toLowerCase()+r.slice(1)),r=o!=="."||!t?`${o.replace(/^\.(\[|$)/,"$1")}: ${r}`:`: ${r}`,r}function tr(e,t){return t.length===1?new $o.UsageError(`${e}${Rn(t[0],{mergeName:!0})}`):new $o.UsageError(`${e}:
|
|
34
34
|
${t.map(n=>`
|
|
35
|
-
- ${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
|
|
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 Es(e,t,n){if(typeof n>"u")return t;let o=[],r=[],i=s=>{let u=t;return t=s,i.bind(null,u)};if(!n(t,{errors:o,coercions:r,coercion:i}))throw tr(`Invalid value for ${e}`,o);for(let[,s]of r)s();return t}ge.applyValidator=Es;ge.cleanValidationError=Rn;ge.formatError=tr;ge.isOptionSymbol=er;ge.makeCommandOption=Fs;ge.rerouteArguments=bs});var cr=x(g=>{"use strict";Object.defineProperty(g,"__esModule",{value:!0});var ws=/^[a-zA-Z_][a-zA-Z0-9_]*$/;function v(e){return e===null?"null":e===void 0?"undefined":e===""?"an empty string":typeof e=="symbol"?`<${e.toString()}>`:Array.isArray(e)?"an array":JSON.stringify(e)}function Oe(e,t){if(e.length===0)return"nothing";if(e.length===1)return v(e[0]);let n=e.slice(0,-1),o=e[e.length-1],r=e.length>2?`, ${t} `:` ${t} `;return`${n.map(i=>v(i)).join(", ")}${r}${v(o)}`}function me(e,t){var n,o,r;return typeof t=="number"?`${(n=e?.p)!==null&&n!==void 0?n:"."}[${t}]`:ws.test(t)?`${(o=e?.p)!==null&&o!==void 0?o:""}.${t}`:`${(r=e?.p)!==null&&r!==void 0?r:"."}[${JSON.stringify(t)}]`}function Nn(e,t,n){return e===1?t:n}var Cs=/^#[0-9a-f]{6}$/i,vs=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,ks=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,xs=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,nr=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/;function m({errors:e,p:t}={},n){return e?.push(`${t??"."}: ${n}`),!1}function Bs(e,t){return n=>{e[t]=n}}function _(e,t){return n=>{let o=e[t];return e[t]=n,_(e,t).bind(null,o)}}function We(e,t,n){let o=()=>(e(n()),r),r=()=>(e(t),o);return o}function jn(){return F({test:(e,t)=>!0})}function or(e){return F({test:(t,n)=>t!==e?m(n,`Expected ${v(e)} (got ${v(t)})`):!0})}function rr(){return F({test:(e,t)=>typeof e!="string"?m(t,`Expected a string (got ${v(e)})`):!0})}function Ss(e){let t=Array.isArray(e)?e:Object.values(e),n=t.every(r=>typeof r=="string"||typeof r=="number"),o=new Set(t);return o.size===1?or([...o][0]):F({test:(r,i)=>o.has(r)?!0:n?m(i,`Expected one of ${Oe(t,"or")} (got ${v(r)})`):m(i,`Expected a valid enumeration value (got ${v(r)})`)})}var Ps=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]);function Os(){return F({test:(e,t)=>{var n;if(typeof e!="boolean"){if(typeof t?.coercions<"u"){if(typeof t?.coercion>"u")return m(t,"Unbound coercion result");let o=Ps.get(e);if(typeof o<"u")return t.coercions.push([(n=t.p)!==null&&n!==void 0?n:".",t.coercion.bind(null,o)]),!0}return m(t,`Expected a boolean (got ${v(e)})`)}return!0}})}function Ts(){return F({test:(e,t)=>{var n;if(typeof e!="number"){if(typeof t?.coercions<"u"){if(typeof t?.coercion>"u")return m(t,"Unbound coercion result");let o;if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{}if(typeof r=="number")if(JSON.stringify(r)===e)o=r;else return m(t,`Received a number that can't be safely represented by the runtime (${e})`)}if(typeof o<"u")return t.coercions.push([(n=t.p)!==null&&n!==void 0?n:".",t.coercion.bind(null,o)]),!0}return m(t,`Expected a number (got ${v(e)})`)}return!0}})}function Is(e){return F({test:(t,n)=>{var o;if(typeof n?.coercions>"u")return m(n,"The isPayload predicate can only be used with coercion enabled");if(typeof n.coercion>"u")return m(n,"Unbound coercion result");if(typeof t!="string")return m(n,`Expected a string (got ${v(t)})`);let r;try{r=JSON.parse(t)}catch{return m(n,`Expected a JSON string (got ${v(t)})`)}let i={value:r};return e(r,Object.assign(Object.assign({},n),{coercion:_(i,"value")}))?(n.coercions.push([(o=n.p)!==null&&o!==void 0?o:".",n.coercion.bind(null,i.value)]),!0):!1}})}function Rs(){return F({test:(e,t)=>{var n;if(!(e instanceof Date)){if(typeof t?.coercions<"u"){if(typeof t?.coercion>"u")return m(t,"Unbound coercion result");let o;if(typeof e=="string"&&nr.test(e))o=new Date(e);else{let r;if(typeof e=="string"){let i;try{i=JSON.parse(e)}catch{}typeof i=="number"&&(r=i)}else typeof e=="number"&&(r=e);if(typeof r<"u")if(Number.isSafeInteger(r)||!Number.isSafeInteger(r*1e3))o=new Date(r*1e3);else return m(t,`Received a timestamp that can't be safely represented by the runtime (${e})`)}if(typeof o<"u")return t.coercions.push([(n=t.p)!==null&&n!==void 0?n:".",t.coercion.bind(null,o)]),!0}return m(t,`Expected a date (got ${v(e)})`)}return!0}})}function Ft(e,{delimiter:t}={}){return F({test:(n,o)=>{var r;let i=n;if(typeof n=="string"&&typeof t<"u"&&typeof o?.coercions<"u"){if(typeof o?.coercion>"u")return m(o,"Unbound coercion result");n=n.split(t)}if(!Array.isArray(n))return m(o,`Expected an array (got ${v(n)})`);let a=!0;for(let s=0,u=n.length;s<u&&(a=e(n[s],Object.assign(Object.assign({},o),{p:me(o,s),coercion:_(n,s)}))&&a,!(!a&&o?.errors==null));++s);return n!==i&&o.coercions.push([(r=o.p)!==null&&r!==void 0?r:".",o.coercion.bind(null,n)]),a}})}function Ns(e,{delimiter:t}={}){let n=Ft(e,{delimiter:t});return F({test:(o,r)=>{var i,a;if(Object.getPrototypeOf(o).toString()==="[object Set]")if(typeof r?.coercions<"u"){if(typeof r?.coercion>"u")return m(r,"Unbound coercion result");let s=[...o],u=[...o];if(!n(u,Object.assign(Object.assign({},r),{coercion:void 0})))return!1;let c=()=>u.some((p,d)=>p!==s[d])?new Set(u):o;return r.coercions.push([(i=r.p)!==null&&i!==void 0?i:".",We(r.coercion,o,c)]),!0}else{let s=!0;for(let u of o)if(s=e(u,Object.assign({},r))&&s,!s&&r?.errors==null)break;return s}if(typeof r?.coercions<"u"){if(typeof r?.coercion>"u")return m(r,"Unbound coercion result");let s={value:o};return n(o,Object.assign(Object.assign({},r),{coercion:_(s,"value")}))?(r.coercions.push([(a=r.p)!==null&&a!==void 0?a:".",We(r.coercion,o,()=>new Set(s.value))]),!0):!1}return m(r,`Expected a set (got ${v(o)})`)}})}function js(e,t){let n=Ft(bt([e,t])),o=Et(t,{keys:e});return F({test:(r,i)=>{var a,s,u;if(Object.getPrototypeOf(r).toString()==="[object Map]")if(typeof i?.coercions<"u"){if(typeof i?.coercion>"u")return m(i,"Unbound coercion result");let c=[...r],p=[...r];if(!n(p,Object.assign(Object.assign({},i),{coercion:void 0})))return!1;let d=()=>p.some((l,f)=>l[0]!==c[f][0]||l[1]!==c[f][1])?new Map(p):r;return i.coercions.push([(a=i.p)!==null&&a!==void 0?a:".",We(i.coercion,r,d)]),!0}else{let c=!0;for(let[p,d]of r)if(c=e(p,Object.assign({},i))&&c,!c&&i?.errors==null||(c=t(d,Object.assign(Object.assign({},i),{p:me(i,p)}))&&c,!c&&i?.errors==null))break;return c}if(typeof i?.coercions<"u"){if(typeof i?.coercion>"u")return m(i,"Unbound coercion result");let c={value:r};return Array.isArray(r)?n(r,Object.assign(Object.assign({},i),{coercion:void 0}))?(i.coercions.push([(s=i.p)!==null&&s!==void 0?s:".",We(i.coercion,r,()=>new Map(c.value))]),!0):!1:o(r,Object.assign(Object.assign({},i),{coercion:_(c,"value")}))?(i.coercions.push([(u=i.p)!==null&&u!==void 0?u:".",We(i.coercion,r,()=>new Map(Object.entries(c.value)))]),!0):!1}return m(i,`Expected a map (got ${v(r)})`)}})}function bt(e,{delimiter:t}={}){let n=ar(e.length);return F({test:(o,r)=>{var i;if(typeof o=="string"&&typeof t<"u"&&typeof r?.coercions<"u"){if(typeof r?.coercion>"u")return m(r,"Unbound coercion result");o=o.split(t),r.coercions.push([(i=r.p)!==null&&i!==void 0?i:".",r.coercion.bind(null,o)])}if(!Array.isArray(o))return m(r,`Expected a tuple (got ${v(o)})`);let a=n(o,Object.assign({},r));for(let s=0,u=o.length;s<u&&s<e.length&&(a=e[s](o[s],Object.assign(Object.assign({},r),{p:me(r,s),coercion:_(o,s)}))&&a,!(!a&&r?.errors==null));++s);return a}})}function Et(e,{keys:t=null}={}){let n=Ft(bt([t??rr(),e]));return F({test:(o,r)=>{var i;if(Array.isArray(o)&&typeof r?.coercions<"u")return typeof r?.coercion>"u"?m(r,"Unbound coercion result"):n(o,Object.assign(Object.assign({},r),{coercion:void 0}))?(o=Object.fromEntries(o),r.coercions.push([(i=r.p)!==null&&i!==void 0?i:".",r.coercion.bind(null,o)]),!0):!1;if(typeof o!="object"||o===null)return m(r,`Expected an object (got ${v(o)})`);let a=Object.keys(o),s=!0;for(let u=0,c=a.length;u<c&&(s||r?.errors!=null);++u){let p=a[u],d=o[p];if(p==="__proto__"||p==="constructor"){s=m(Object.assign(Object.assign({},r),{p:me(r,p)}),"Unsafe property name");continue}if(t!==null&&!t(p,r)){s=!1;continue}if(!e(d,Object.assign(Object.assign({},r),{p:me(r,p),coercion:_(o,p)}))){s=!1;continue}}return s}})}function Ms(e,t={}){return Et(e,t)}function ir(e,{extra:t=null}={}){let n=Object.keys(e),o=F({test:(r,i)=>{if(typeof r!="object"||r===null)return m(i,`Expected an object (got ${v(r)})`);let a=new Set([...n,...Object.keys(r)]),s={},u=!0;for(let c of a){if(c==="constructor"||c==="__proto__")u=m(Object.assign(Object.assign({},i),{p:me(i,c)}),"Unsafe property name");else{let p=Object.prototype.hasOwnProperty.call(e,c)?e[c]:void 0,d=Object.prototype.hasOwnProperty.call(r,c)?r[c]:void 0;typeof p<"u"?u=p(d,Object.assign(Object.assign({},i),{p:me(i,c),coercion:_(r,c)}))&&u:t===null?u=m(Object.assign(Object.assign({},i),{p:me(i,c)}),`Extraneous property (got ${v(d)})`):Object.defineProperty(s,c,{enumerable:!0,get:()=>d,set:Bs(r,c)})}if(!u&&i?.errors==null)break}return t!==null&&(u||i?.errors!=null)&&(u=t(s,i)&&u),u}});return Object.assign(o,{properties:e})}function Ls(e){return ir(e,{extra:Et(jn())})}var Gs=e=>F({test:(t,n)=>t instanceof e?!0:m(n,`Expected an instance of ${e.name} (got ${v(t)})`)}),Hs=(e,{exclusive:t=!1}={})=>F({test:(n,o)=>{var r,i,a;let s=[],u=typeof o?.errors<"u"?[]:void 0;for(let c=0,p=e.length;c<p;++c){let d=typeof o?.errors<"u"?[]:void 0,l=typeof o?.coercions<"u"?[]:void 0;if(e[c](n,Object.assign(Object.assign({},o),{errors:d,coercions:l,p:`${(r=o?.p)!==null&&r!==void 0?r:"."}#${c+1}`}))){if(s.push([`#${c+1}`,l]),!t)break}else u?.push(d[0])}if(s.length===1){let[,c]=s[0];return typeof c<"u"&&((i=o?.coercions)===null||i===void 0||i.push(...c)),!0}return s.length>1?m(o,`Expected to match exactly a single predicate (matched ${s.join(", ")})`):(a=o?.errors)===null||a===void 0||a.push(...u),!1}});function sr(e){return()=>e}function F({test:e}){return sr(e)()}var Ae=class extends Error{constructor({errors:t}={}){let n="Type mismatch";if(t&&t.length>0){n+=`
|
|
36
|
+
`;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=bt(e);return((...o)=>{if(!n(o))throw new Ae;return t(...o)})}function Qs(e){return F({test:(t,n)=>t.length>=e?!0:m(n,`Expected to have a length of at least ${e} elements (got ${t.length})`)})}function Ws(e){return F({test:(t,n)=>t.length<=e?!0:m(n,`Expected to have a length of at most ${e} elements (got ${t.length})`)})}function ar(e){return F({test:(t,n)=>t.length!==e?m(n,`Expected to have a length of exactly ${e} elements (got ${t.length})`):!0})}function Vs({map:e}={}){return F({test:(t,n)=>{let o=new Set,r=new Set;for(let i=0,a=t.length;i<a;++i){let s=t[i],u=typeof e<"u"?e(s):s;if(o.has(u)){if(r.has(u))continue;m(n,`Expected to contain unique elements; got a duplicate with ${v(t)}`),r.add(u)}else o.add(u)}return r.size===0}})}function Zs(){return F({test:(e,t)=>e<=0?!0:m(t,`Expected to be negative (got ${e})`)})}function Js(){return F({test:(e,t)=>e>=0?!0:m(t,`Expected to be positive (got ${e})`)})}function Xs(e){return F({test:(t,n)=>t>=e?!0:m(n,`Expected to be at least ${e} (got ${t})`)})}function _s(e){return F({test:(t,n)=>t<=e?!0:m(n,`Expected to be at most ${e} (got ${t})`)})}function $s(e,t){return F({test:(n,o)=>n>=e&&n<=t?!0:m(o,`Expected to be in the [${e}; ${t}] range (got ${n})`)})}function ea(e,t){return F({test:(n,o)=>n>=e&&n<t?!0:m(o,`Expected to be in the [${e}; ${t}[ range (got ${n})`)})}function ta({unsafe:e=!1}={}){return F({test:(t,n)=>t!==Math.round(t)?m(n,`Expected to be an integer (got ${t})`):!e&&!Number.isSafeInteger(t)?m(n,`Expected to be a safe integer (got ${t})`):!0})}function na(e){return F({test:(t,n)=>e.test(t)?!0:m(n,`Expected to match the pattern ${e.toString()} (got ${v(t)})`)})}function oa(){return F({test:(e,t)=>e!==e.toLowerCase()?m(t,`Expected to be all-lowercase (got ${e})`):!0})}function ra(){return F({test:(e,t)=>e!==e.toUpperCase()?m(t,`Expected to be all-uppercase (got ${e})`):!0})}function ia(){return F({test:(e,t)=>xs.test(e)?!0:m(t,`Expected to be a valid UUID v4 (got ${v(e)})`)})}function sa(){return F({test:(e,t)=>nr.test(e)?!0:m(t,`Expected to be a valid ISO 8601 date string (got ${v(e)})`)})}function aa({alpha:e=!1}){return F({test:(t,n)=>(e?Cs.test(t):vs.test(t))?!0:m(n,`Expected to be a valid hexadecimal color string (got ${v(t)})`)})}function ua(){return F({test:(e,t)=>ks.test(e)?!0:m(t,`Expected to be a valid base 64 string (got ${v(e)})`)})}function ca(e=jn()){return F({test:(t,n)=>{let o;try{o=JSON.parse(t)}catch{return m(n,`Expected to be a valid JSON string (got ${v(t)})`)}return e(o,n)}})}function ur(e,...t){let n=Array.isArray(t[0])?t[0]:t;return F({test:(o,r)=>{var i,a;let s={value:o},u=typeof r?.coercions<"u"?_(s,"value"):void 0,c=typeof r?.coercions<"u"?[]:void 0;if(!e(o,Object.assign(Object.assign({},r),{coercion:u,coercions:c})))return!1;let p=[];if(typeof c<"u")for(let[,d]of c)p.push(d());try{if(typeof r?.coercions<"u"){if(s.value!==o){if(typeof r?.coercion>"u")return m(r,"Unbound coercion result");r.coercions.push([(i=r.p)!==null&&i!==void 0?i:".",r.coercion.bind(null,s.value)])}(a=r?.coercions)===null||a===void 0||a.push(...c)}return n.every(d=>d(s.value,r))}finally{for(let d of p)d()}}})}function da(e,...t){let n=Array.isArray(t[0])?t[0]:t;return ur(e,n)}function pa(e){return F({test:(t,n)=>typeof t>"u"?!0:e(t,n)})}function la(e){return F({test:(t,n)=>t===null?!0:e(t,n)})}var wt={missing:(e,t)=>e.has(t),undefined:(e,t,n)=>e.has(t)&&typeof n[t]<"u",nil:(e,t,n)=>e.has(t)&&n[t]!=null,falsy:(e,t,n)=>e.has(t)&&!!n[t]};function fa(e,t){var n;let o=new Set(e),r=wt[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return F({test:(i,a)=>{let s=new Set(Object.keys(i)),u=[];for(let c of o)r(s,c,i)||u.push(c);return u.length>0?m(a,`Missing required ${Nn(u.length,"property","properties")} ${Oe(u,"and")}`):!0}})}function Da(e,t){var n;let o=new Set(e),r=wt[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return F({test:(i,a)=>Object.keys(i).some(c=>r(o,c,i))?!0:m(a,`Missing at least one property from ${Oe(Array.from(o),"or")}`)})}function ha(e,t){var n;let o=new Set(e),r=wt[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return F({test:(i,a)=>{let s=new Set(Object.keys(i)),u=[];for(let c of o)r(s,c,i)&&u.push(c);return u.length>0?m(a,`Forbidden ${Nn(u.length,"property","properties")} ${Oe(u,"and")}`):!0}})}function ga(e,t){var n;let o=new Set(e),r=wt[(n=t?.missingIf)!==null&&n!==void 0?n:"missing"];return F({test:(i,a)=>{let s=new Set(Object.keys(i)),u=[];for(let c of o)r(s,c,i)&&u.push(c);return u.length>1?m(a,`Mutually exclusive properties ${Oe(u,"and")}`):!0}})}(function(e){e.Forbids="Forbids",e.Requires="Requires"})(g.KeyRelationship||(g.KeyRelationship={}));var ma={[g.KeyRelationship.Forbids]:{expect:!1,message:"forbids using"},[g.KeyRelationship.Requires]:{expect:!0,message:"requires using"}};function Aa(e,t,n,{ignore:o=[]}={}){let r=new Set(o),i=new Set(n),a=ma[t],s=t===g.KeyRelationship.Forbids?"or":"and";return F({test:(u,c)=>{let p=new Set(Object.keys(u));if(!p.has(e)||r.has(u[e]))return!0;let d=[];for(let l of i)(p.has(l)&&!r.has(u[l]))!==a.expect&&d.push(l);return d.length>=1?m(c,`Property "${e}" ${a.message} ${Nn(d.length,"property","properties")} ${Oe(d,s)}`):!0}})}g.TypeAssertionError=Ae;g.applyCascade=da;g.as=Ks;g.assert=Us;g.assertWithErrors=zs;g.cascade=ur;g.fn=Ys;g.hasAtLeastOneKey=Da;g.hasExactLength=ar;g.hasForbiddenKeys=ha;g.hasKeyRelationship=Aa;g.hasMaxLength=Ws;g.hasMinLength=Qs;g.hasMutuallyExclusiveKeys=ga;g.hasRequiredKeys=fa;g.hasUniqueItems=Vs;g.isArray=Ft;g.isAtLeast=Xs;g.isAtMost=_s;g.isBase64=ua;g.isBoolean=Os;g.isDate=Rs;g.isDict=Ms;g.isEnum=Ss;g.isHexColor=aa;g.isISO8601=sa;g.isInExclusiveRange=ea;g.isInInclusiveRange=$s;g.isInstanceOf=Gs;g.isInteger=ta;g.isJSON=ca;g.isLiteral=or;g.isLowerCase=oa;g.isMap=js;g.isNegative=Zs;g.isNullable=la;g.isNumber=Ts;g.isObject=ir;g.isOneOf=Hs;g.isOptional=pa;g.isPartial=Ls;g.isPayload=Is;g.isPositive=Js;g.isRecord=Et;g.isSet=Ns;g.isString=rr;g.isTuple=bt;g.isUUID4=ia;g.isUnknown=jn;g.isUpperCase=ra;g.makeTrait=sr;g.makeValidator=F;g.matchesRegExp=na;g.softAssert=qs});var ye=x(Mn=>{"use strict";Object.defineProperty(Mn,"__esModule",{value:!0});var dr=ie();function ya(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if(n!=="default"){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,Object.freeze(t)}var Ve=class{constructor(){this.help=!1}static Usage(t){return t}async catch(t){throw t}async validateAndExecute(){let n=this.constructor.schema;if(Array.isArray(n)){let{isDict:r,isUnknown:i,applyCascade:a}=await Promise.resolve().then(function(){return ya(cr())}),s=a(r(i()),n),u=[],c=[];if(!s(this,{errors:u,coercions:c}))throw dr.formatError("Invalid option schema",u);for(let[,d]of c)d()}else if(n!=null)throw new Error("Invalid command schema");let o=await this.execute();return typeof o<"u"?o:0}};Ve.isOption=dr.isOptionSymbol;Ve.Default=[];Mn.Command=Ve});var Bt=x(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});var h=At(),kt=yt();function L(e){h.IS_DEBUG&&console.log(e)}var pr={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:h.HELP_COMMAND_INDEX,tokens:[]};function Gn(){let e={nodes:[]};for(let t=0;t<h.NodeType.CustomNode;++t)e.nodes.push(G());return e}function lr(e){let t=Gn(),n=[],o=t.nodes.length;for(let r of e){n.push(o);for(let i=0;i<r.nodes.length;++i)Hn(i)||t.nodes.push(Fr(r.nodes[i],o));o+=r.nodes.length-h.NodeType.CustomNode+1}for(let r of n)Ce(t,h.NodeType.InitialNode,r);return t}function z(e,t){return e.nodes.push(t),e.nodes.length-1}function fr(e){let t=new Set,n=o=>{if(t.has(o))return;t.add(o);let r=e.nodes[o];for(let a of Object.values(r.statics))for(let{to:s}of a)n(s);for(let[,{to:a}]of r.dynamics)n(a);for(let{to:a}of r.shortcuts)n(a);let i=new Set(r.shortcuts.map(({to:a})=>a));for(;r.shortcuts.length>0;){let{to:a}=r.shortcuts.shift(),s=e.nodes[a];for(let[u,c]of Object.entries(s.statics)){let p=Object.prototype.hasOwnProperty.call(r.statics,u)?r.statics[u]:r.statics[u]=[];for(let d of c)p.some(({to:l})=>d.to===l)||p.push(d)}for(let[u,c]of s.dynamics)r.dynamics.some(([p,{to:d}])=>u===p&&c.to===d)||r.dynamics.push([u,c]);for(let u of s.shortcuts)i.has(u.to)||(r.shortcuts.push(u),i.add(u.to))}};n(h.NodeType.InitialNode)}function Dr(e,{prefix:t=""}={}){if(h.IS_DEBUG){L(`${t}Nodes are:`);for(let n=0;n<e.nodes.length;++n)L(`${t} ${n}: ${JSON.stringify(e.nodes[n])}`)}}function hr(e,t,n=!1){L(`Running a vm on ${JSON.stringify(t)}`);let o=[{node:h.NodeType.InitialNode,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null,tokens:[]}}];Dr(e,{prefix:" "});let r=[h.SpecialToken.StartOfInput,...t];for(let i=0;i<r.length;++i){let a=r[i],s=a===h.SpecialToken.EndOfInput||a===h.SpecialToken.EndOfPartialInput,u=i-1;L(` Processing ${JSON.stringify(a)}`);let c=[];for(let{node:p,state:d}of o){L(` Current node is ${p}`);let l=e.nodes[p];if(p===h.NodeType.ErrorNode){c.push({node:p,state:d});continue}console.assert(l.shortcuts.length===0,"Shortcuts should have been eliminated by now");let f=Object.prototype.hasOwnProperty.call(l.statics,a);if(!n||i<r.length-1||f)if(f){let D=l.statics[a];for(let{to:A,reducer:y}of D)c.push({node:A,state:typeof y<"u"?Ze(vt,y,d,a,u):d}),L(` Static transition to ${A} found`)}else L(" No static transition found");else{let D=!1;for(let A of Object.keys(l.statics))if(A.startsWith(a)){if(a===A)for(let{to:y,reducer:b}of l.statics[A])c.push({node:y,state:typeof b<"u"?Ze(vt,b,d,a,u):d}),L(` Static transition to ${y} found`);else for(let{to:y}of l.statics[A])c.push({node:y,state:{...d,remainder:A.slice(a.length)}}),L(` Static transition to ${y} found (partial match)`);D=!0}D||L(" No partial static transition found")}if(!s)for(let[D,{to:A,reducer:y}]of l.dynamics)Ze(br,D,d,a,u)&&(c.push({node:A,state:typeof y<"u"?Ze(vt,y,d,a,u):d}),L(` Dynamic transition to ${A} found (via ${D})`))}if(c.length===0&&s&&t.length===1)return[{node:h.NodeType.InitialNode,state:pr}];if(c.length===0)throw new kt.UnknownSyntaxError(t,o.filter(({node:p})=>p!==h.NodeType.ErrorNode).map(({state:p})=>({usage:p.candidateUsage,reason:null})));if(c.every(({node:p})=>p===h.NodeType.ErrorNode))throw new kt.UnknownSyntaxError(t,c.map(({state:p})=>({usage:p.candidateUsage,reason:p.errorMessage})));o=gr(c)}if(o.length>0){L(" Results:");for(let i of o)L(` - ${i.node} -> ${JSON.stringify(i.state)}`)}else L(" No results");return o}function Fa(e,t,{endToken:n=h.SpecialToken.EndOfInput}={}){let o=hr(e,[...t,n]);return mr(t,o.map(({state:r})=>r))}function gr(e){let t=0;for(let{state:n}of e)n.path.length>t&&(t=n.path.length);return e.filter(({state:n})=>n.path.length===t)}function mr(e,t){let n=t.filter(d=>d.selectedIndex!==null);if(n.length===0)throw new Error;let o=n.filter(d=>d.selectedIndex===h.HELP_COMMAND_INDEX||d.requiredOptions.every(l=>l.some(f=>d.options.find(D=>D.name===f))));if(o.length===0)throw new kt.UnknownSyntaxError(e,n.map(d=>({usage:d.candidateUsage,reason:null})));let r=0;for(let d of o)d.path.length>r&&(r=d.path.length);let i=o.filter(d=>d.path.length===r),a=d=>d.positionals.filter(({extra:l})=>!l).length+d.options.length,s=i.map(d=>({state:d,positionalCount:a(d)})),u=0;for(let{positionalCount:d}of s)d>u&&(u=d);let c=s.filter(({positionalCount:d})=>d===u).map(({state:d})=>d),p=Ar(c);if(p.length>1)throw new kt.AmbiguousSyntaxError(e,p.map(d=>d.candidateUsage));return p[0]}function Ar(e){let t=[],n=[];for(let o of e)o.selectedIndex===h.HELP_COMMAND_INDEX?n.push(o):t.push(o);return n.length>0&&t.push({...pr,path:yr(...n.map(o=>o.path)),options:n.reduce((o,r)=>o.concat(r.options),[])}),t}function yr(e,t,...n){return t===void 0?Array.from(e):yr(e.filter((o,r)=>o===t[r]),...n)}function G(){return{dynamics:[],shortcuts:[],statics:{}}}function Hn(e){return e===h.NodeType.SuccessNode||e===h.NodeType.ErrorNode}function Ct(e,t=0){return{to:Hn(e.to)?e.to:e.to>=h.NodeType.CustomNode?e.to+t-h.NodeType.CustomNode+1:e.to+t,reducer:e.reducer}}function Fr(e,t=0){let n=G();for(let[o,r]of e.dynamics)n.dynamics.push([o,Ct(r,t)]);for(let o of e.shortcuts)n.shortcuts.push(Ct(o,t));for(let[o,r]of Object.entries(e.statics))n.statics[o]=r.map(i=>Ct(i,t));return n}function R(e,t,n,o,r){e.nodes[t].dynamics.push([n,{to:o,reducer:r}])}function Ce(e,t,n,o){e.nodes[t].shortcuts.push({to:n,reducer:o})}function j(e,t,n,o,r){(Object.prototype.hasOwnProperty.call(e.nodes[t].statics,n)?e.nodes[t].statics[n]:e.nodes[t].statics[n]=[]).push({to:o,reducer:r})}function Ze(e,t,n,o,r){if(Array.isArray(t)){let[i,...a]=t;return e[i](n,o,r,...a)}else return e[t](n,o,r)}var br={always:()=>!0,isOptionLike:(e,t)=>!e.ignoreOptions&&t!=="-"&&t.startsWith("-"),isNotOptionLike:(e,t)=>e.ignoreOptions||t==="-"||!t.startsWith("-"),isOption:(e,t,n,o)=>!e.ignoreOptions&&t===o,isBatchOption:(e,t,n,o)=>!e.ignoreOptions&&h.BATCH_REGEX.test(t)&&[...t.slice(1)].every(r=>o.has(`-${r}`)),isBoundOption:(e,t,n,o,r)=>{let i=t.match(h.BINDING_REGEX);return!e.ignoreOptions&&!!i&&h.OPTION_REGEX.test(i[1])&&o.has(i[1])&&r.filter(a=>a.nameSet.includes(i[1])).every(a=>a.allowBinding)},isNegatedOption:(e,t,n,o)=>!e.ignoreOptions&&t===`--no-${o.slice(2)}`,isHelp:(e,t)=>!e.ignoreOptions&&h.HELP_REGEX.test(t),isUnsupportedOption:(e,t,n,o)=>!e.ignoreOptions&&t.startsWith("-")&&h.OPTION_REGEX.test(t)&&!o.has(t),isInvalidOption:(e,t)=>!e.ignoreOptions&&t.startsWith("-")&&!h.OPTION_REGEX.test(t)},vt={setCandidateState:(e,t,n,o)=>({...e,...o}),setSelectedIndex:(e,t,n,o)=>({...e,selectedIndex:o}),pushBatch:(e,t,n,o)=>{let r=e.options.slice(),i=e.tokens.slice();for(let a=1;a<t.length;++a){let s=o.get(`-${t[a]}`),u=a===1?[0,2]:[a,a+1];r.push({name:s,value:!0}),i.push({segmentIndex:n,type:"option",option:s,slice:u})}return{...e,options:r,tokens:i}},pushBound:(e,t,n)=>{let[,o,r]=t.match(h.BINDING_REGEX),i=e.options.concat({name:o,value:r}),a=e.tokens.concat([{segmentIndex:n,type:"option",slice:[0,o.length],option:o},{segmentIndex:n,type:"assign",slice:[o.length,o.length+1]},{segmentIndex:n,type:"value",slice:[o.length+1,o.length+r.length+1]}]);return{...e,options:i,tokens:a}},pushPath:(e,t,n)=>{let o=e.path.concat(t),r=e.tokens.concat({segmentIndex:n,type:"path"});return{...e,path:o,tokens:r}},pushPositional:(e,t,n)=>{let o=e.positionals.concat({value:t,extra:!1}),r=e.tokens.concat({segmentIndex:n,type:"positional"});return{...e,positionals:o,tokens:r}},pushExtra:(e,t,n)=>{let o=e.positionals.concat({value:t,extra:!0}),r=e.tokens.concat({segmentIndex:n,type:"positional"});return{...e,positionals:o,tokens:r}},pushExtraNoLimits:(e,t,n)=>{let o=e.positionals.concat({value:t,extra:$}),r=e.tokens.concat({segmentIndex:n,type:"positional"});return{...e,positionals:o,tokens:r}},pushTrue:(e,t,n,o)=>{let r=e.options.concat({name:o,value:!0}),i=e.tokens.concat({segmentIndex:n,type:"option",option:o});return{...e,options:r,tokens:i}},pushFalse:(e,t,n,o)=>{let r=e.options.concat({name:o,value:!1}),i=e.tokens.concat({segmentIndex:n,type:"option",option:o});return{...e,options:r,tokens:i}},pushUndefined:(e,t,n,o)=>{let r=e.options.concat({name:t,value:void 0}),i=e.tokens.concat({segmentIndex:n,type:"option",option:t});return{...e,options:r,tokens:i}},pushStringValue:(e,t,n)=>{var o;let r=e.options[e.options.length-1],i=e.options.slice(),a=e.tokens.concat({segmentIndex:n,type:"value"});return r.value=((o=r.value)!==null&&o!==void 0?o:[]).concat([t]),{...e,options:i,tokens:a}},setStringValue:(e,t,n)=>{let o=e.options[e.options.length-1],r=e.options.slice(),i=e.tokens.concat({segmentIndex:n,type:"value"});return o.value=t,{...e,options:r,tokens:i}},inhibateOptions:e=>({...e,ignoreOptions:!0}),useHelp:(e,t,n,o)=>{let[,,r]=t.match(h.HELP_REGEX);return typeof r<"u"?{...e,options:[{name:"-c",value:String(o)},{name:"-i",value:r}]}:{...e,options:[{name:"-c",value:String(o)}]}},setError:(e,t,n,o)=>t===h.SpecialToken.EndOfInput||t===h.SpecialToken.EndOfPartialInput?{...e,errorMessage:`${o}.`}:{...e,errorMessage:`${o} ("${t}").`},setOptionArityError:(e,t)=>{let n=e.options[e.options.length-1];return{...e,errorMessage:`Not enough arguments to option ${n.name}.`}}},$=Symbol(),xt=class{constructor(t,n){this.allOptionNames=new Map,this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=t,this.cliOpts=n}addPath(t){this.paths.push(t)}setArity({leading:t=this.arity.leading,trailing:n=this.arity.trailing,extra:o=this.arity.extra,proxy:r=this.arity.proxy}){Object.assign(this.arity,{leading:t,trailing:n,extra:o,proxy:r})}addPositional({name:t="arg",required:n=!0}={}){if(!n&&this.arity.extra===$)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!n&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!n&&this.arity.extra!==$?this.arity.extra.push(t):this.arity.extra!==$&&this.arity.extra.length===0?this.arity.leading.push(t):this.arity.trailing.push(t)}addRest({name:t="arg",required:n=0}={}){if(this.arity.extra===$)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let o=0;o<n;++o)this.addPositional({name:t});this.arity.extra=$}addProxy({required:t=0}={}){this.addRest({required:t}),this.arity.proxy=!0}addOption({names:t,description:n,arity:o=0,hidden:r=!1,required:i=!1,allowBinding:a=!0}){if(!a&&o>1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(o))throw new Error(`The arity must be an integer, got ${o}`);if(o<0)throw new Error(`The arity must be positive, got ${o}`);let s=t.reduce((u,c)=>c.length>u.length?c:u,"");for(let u of t)this.allOptionNames.set(u,s);this.options.push({preferredName:s,nameSet:t,description:n,arity:o,hidden:r,required:i,allowBinding:a})}setContext(t){this.context=t}usage({detailed:t=!0,inlineOptions:n=!0}={}){let o=[this.cliOpts.binaryName],r=[];if(this.paths.length>0&&o.push(...this.paths[0]),t){for(let{preferredName:a,nameSet:s,arity:u,hidden:c,description:p,required:d}of this.options){if(c)continue;let l=[];for(let D=0;D<u;++D)l.push(` #${D}`);let f=`${s.join(",")}${l.join("")}`;!n&&p?r.push({preferredName:a,nameSet:s,definition:f,description:p,required:d}):o.push(d?`<${f}>`:`[${f}]`)}o.push(...this.arity.leading.map(a=>`<${a}>`)),this.arity.extra===$?o.push("..."):o.push(...this.arity.extra.map(a=>`[${a}]`)),o.push(...this.arity.trailing.map(a=>`<${a}>`))}return{usage:o.join(" "),options:r}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let t=Gn(),n=h.NodeType.InitialNode,o=this.usage().usage,r=this.options.filter(s=>s.required).map(s=>s.nameSet);n=z(t,G()),j(t,h.NodeType.InitialNode,h.SpecialToken.StartOfInput,n,["setCandidateState",{candidateUsage:o,requiredOptions:r}]);let i=this.arity.proxy?"always":"isNotOptionLike",a=this.paths.length>0?this.paths:[[]];for(let s of a){let u=n;if(s.length>0){let l=z(t,G());Ce(t,u,l),this.registerOptions(t,l),u=l}for(let l=0;l<s.length;++l){let f=z(t,G());if(j(t,u,s[l],f,"pushPath"),u=f,l+1<s.length){let D=z(t,G());R(t,u,"isHelp",D,["useHelp",this.cliIndex]),j(t,D,h.SpecialToken.EndOfInput,h.NodeType.SuccessNode,["setSelectedIndex",h.HELP_COMMAND_INDEX])}}if(this.arity.leading.length>0||!this.arity.proxy){let l=z(t,G());R(t,u,"isHelp",l,["useHelp",this.cliIndex]),R(t,l,"always",l,"pushExtra"),j(t,l,h.SpecialToken.EndOfInput,h.NodeType.SuccessNode,["setSelectedIndex",h.HELP_COMMAND_INDEX]),this.registerOptions(t,u)}this.arity.leading.length>0&&(j(t,u,h.SpecialToken.EndOfInput,h.NodeType.ErrorNode,["setError","Not enough positional arguments"]),j(t,u,h.SpecialToken.EndOfPartialInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex]));let c=u;for(let l=0;l<this.arity.leading.length;++l){let f=z(t,G());(!this.arity.proxy||l+1!==this.arity.leading.length)&&this.registerOptions(t,f),(this.arity.trailing.length>0||l+1!==this.arity.leading.length)&&(j(t,f,h.SpecialToken.EndOfInput,h.NodeType.ErrorNode,["setError","Not enough positional arguments"]),j(t,f,h.SpecialToken.EndOfPartialInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex])),R(t,c,"isNotOptionLike",f,"pushPositional"),c=f}let p=c;if(this.arity.extra===$||this.arity.extra.length>0){let l=z(t,G());if(Ce(t,c,l),this.arity.extra===$){let f=z(t,G());this.arity.proxy||this.registerOptions(t,f),R(t,c,i,f,"pushExtraNoLimits"),R(t,f,i,f,"pushExtraNoLimits"),Ce(t,f,l)}else for(let f=0;f<this.arity.extra.length;++f){let D=z(t,G());(!this.arity.proxy||f>0)&&this.registerOptions(t,D),R(t,p,i,D,"pushExtra"),Ce(t,D,l),p=D}p=l}this.arity.trailing.length>0&&(j(t,p,h.SpecialToken.EndOfInput,h.NodeType.ErrorNode,["setError","Not enough positional arguments"]),j(t,p,h.SpecialToken.EndOfPartialInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex]));let d=p;for(let l=0;l<this.arity.trailing.length;++l){let f=z(t,G());this.arity.proxy||this.registerOptions(t,f),l+1<this.arity.trailing.length&&(j(t,f,h.SpecialToken.EndOfInput,h.NodeType.ErrorNode,["setError","Not enough positional arguments"]),j(t,f,h.SpecialToken.EndOfPartialInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex])),R(t,d,"isNotOptionLike",f,"pushPositional"),d=f}R(t,d,i,h.NodeType.ErrorNode,["setError","Extraneous positional argument"]),j(t,d,h.SpecialToken.EndOfInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex]),j(t,d,h.SpecialToken.EndOfPartialInput,h.NodeType.SuccessNode,["setSelectedIndex",this.cliIndex])}return{machine:t,context:this.context}}registerOptions(t,n){R(t,n,["isOption","--"],n,"inhibateOptions"),R(t,n,["isBatchOption",this.allOptionNames],n,["pushBatch",this.allOptionNames]),R(t,n,["isBoundOption",this.allOptionNames,this.options],n,"pushBound"),R(t,n,["isUnsupportedOption",this.allOptionNames],h.NodeType.ErrorNode,["setError","Unsupported option name"]),R(t,n,["isInvalidOption"],h.NodeType.ErrorNode,["setError","Invalid option name"]);for(let o of this.options)if(o.arity===0)for(let r of o.nameSet)R(t,n,["isOption",r],n,["pushTrue",o.preferredName]),r.startsWith("--")&&!r.startsWith("--no-")&&R(t,n,["isNegatedOption",r],n,["pushFalse",o.preferredName]);else{let r=z(t,G());for(let i of o.nameSet)R(t,n,["isOption",i],r,["pushUndefined",o.preferredName]);for(let i=0;i<o.arity;++i){let a=z(t,G());j(t,r,h.SpecialToken.EndOfInput,h.NodeType.ErrorNode,"setOptionArityError"),j(t,r,h.SpecialToken.EndOfPartialInput,h.NodeType.ErrorNode,"setOptionArityError"),R(t,r,"isOptionLike",h.NodeType.ErrorNode,"setOptionArityError");let s=o.arity===1?"setStringValue":"pushStringValue";R(t,r,"isNotOptionLike",a,s),r=a}Ce(t,r,n)}}},Ln=class e{constructor({binaryName:t="..."}={}){this.builders=[],this.opts={binaryName:t}}static build(t,n={}){return new e(n).commands(t).compile()}getBuilderByIndex(t){if(!(t>=0&&t<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${t})`);return this.builders[t]}commands(t){for(let n of t)n(this.command());return this}command(){let t=new xt(this.builders.length,this.opts);return this.builders.push(t),t}compile(){let t=[],n=[];for(let r of this.builders){let{machine:i,context:a}=r.compile();t.push(i),n.push(a)}let o=lr(t);return fr(o),{machine:o,contexts:n,process:(r,{partial:i}={})=>{let a=i?h.SpecialToken.EndOfPartialInput:h.SpecialToken.EndOfInput;return Fa(o,r,{endToken:a})}}}};B.CliBuilder=Ln;B.CommandBuilder=xt;B.NoLimits=$;B.aggregateHelpStates=Ar;B.cloneNode=Fr;B.cloneTransition=Ct;B.debug=L;B.debugMachine=Dr;B.execute=Ze;B.injectNode=z;B.isTerminalNode=Hn;B.makeAnyOfMachine=lr;B.makeNode=G;B.makeStateMachine=Gn;B.reducers=vt;B.registerDynamic=R;B.registerShortcut=Ce;B.registerStatic=j;B.runMachineInternal=hr;B.selectBestState=mr;B.simplifyMachine=fr;B.tests=br;B.trimSmallerBranches=gr});var wr=x(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});var ba=require("tty");function Ea(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var Un=Ea(ba);function wa(){return Un.default&&"getColorDepth"in Un.default.WriteStream.prototype?Un.default.WriteStream.prototype.getColorDepth():process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var Er;function Ca(e){let t=Er;if(typeof t>"u"){if(e.stdout===process.stdout&&e.stderr===process.stderr)return null;let{AsyncLocalStorage:n}=require("async_hooks");t=Er=new n;let o=process.stdout._write;process.stdout._write=function(i,a,s){let u=t.getStore();return typeof u>"u"?o.call(this,i,a,s):u.stdout.write(i,a,s)};let r=process.stderr._write;process.stderr._write=function(i,a,s){let u=t.getStore();return typeof u>"u"?r.call(this,i,a,s):u.stderr.write(i,a,s)}}return n=>t.run(e,n)}St.getCaptureActivator=Ca;St.getDefaultColorDepth=wa});var Cr=x(qn=>{"use strict";Object.defineProperty(qn,"__esModule",{value:!0});var va=ye(),zn=class e extends va.Command{constructor(t){super(),this.contexts=t,this.commands=[]}static from(t,n){let o=new e(n);o.path=t.path;for(let r of t.options)switch(r.name){case"-c":o.commands.push(Number(r.value));break;case"-i":o.index=Number(r.value);break}return o}async execute(){let t=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index<t.length&&(t=[t[this.index]]),t.length===0)this.context.stdout.write(this.cli.usage());else if(t.length===1)this.context.stdout.write(this.cli.usage(this.contexts[t[0]].commandClass,{detailed:!0}));else if(t.length>1){this.context.stdout.write(`Multiple commands match your selection:
|
|
38
38
|
`),this.context.stdout.write(`
|
|
39
|
-
`);let n=0;for(let
|
|
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
|
-
`)}}};
|
|
42
|
-
`),(
|
|
41
|
+
`)}}};qn.HelpCommand=zn});var Sr=x(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});var ka=At(),xa=Bt(),q=In(),xr=wr(),Pt=ye(),Ba=Cr(),vr=Symbol("clipanion/errorCommand");async function Sa(...e){let{resolvedOptions:t,resolvedCommandClasses:n,resolvedArgv:o,resolvedContext:r}=Br(e);return Te.from(n,t).runExit(o,r)}async function Pa(...e){let{resolvedOptions:t,resolvedCommandClasses:n,resolvedArgv:o,resolvedContext:r}=Br(e);return Te.from(n,t).run(o,r)}function Br(e){let t,n,o,r;switch(typeof process<"u"&&typeof process.argv<"u"&&(o=process.argv.slice(2)),e.length){case 1:n=e[0];break;case 2:e[0]&&e[0].prototype instanceof Pt.Command||Array.isArray(e[0])?(n=e[0],Array.isArray(e[1])?o=e[1]:r=e[1]):(t=e[0],n=e[1]);break;case 3:Array.isArray(e[2])?(t=e[0],n=e[1],o=e[2]):e[0]&&e[0].prototype instanceof Pt.Command||Array.isArray(e[0])?(n=e[0],o=e[1],r=e[2]):(t=e[0],n=e[1],r=e[2]);break;default:t=e[0],n=e[1],o=e[2],r=e[3];break}if(typeof o>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:t,resolvedCommandClasses:n,resolvedArgv:o,resolvedContext:r}}var Te=class e{constructor({binaryLabel:t,binaryName:n="...",binaryVersion:o,enableCapture:r=!1,enableColors:i}={}){this.registrations=new Map,this.builder=new xa.CliBuilder({binaryName:n}),this.binaryLabel=t,this.binaryName=n,this.binaryVersion=o,this.enableCapture=r,this.enableColors=i}static from(t,n={}){let o=new e(n),r=Array.isArray(t)?t:[t];for(let i of r)o.register(i);return o}register(t){var n;let o=new Map,r=new t;for(let u in r){let c=r[u];typeof c=="object"&&c!==null&&c[Pt.Command.isOption]&&o.set(u,c)}let i=this.builder.command(),a=i.cliIndex,s=(n=t.paths)!==null&&n!==void 0?n:r.paths;if(typeof s<"u")for(let u of s)i.addPath(u);this.registrations.set(t,{specs:o,builder:i,index:a});for(let[u,{definition:c}]of o.entries())c(i,u);i.setContext({commandClass:t})}process(t,n){let{input:o,context:r,partial:i}=typeof t=="object"&&Array.isArray(t)?{input:t,context:n}:t,{contexts:a,process:s}=this.builder.compile(),u=s(o,{partial:i}),c={...e.defaultContext,...r};switch(u.selectedIndex){case ka.HELP_COMMAND_INDEX:{let p=Ba.HelpCommand.from(u,a);return p.context=c,p.tokens=u.tokens,p}default:{let{commandClass:p}=a[u.selectedIndex],d=this.registrations.get(p);if(typeof d>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let l=new p;l.context=c,l.tokens=u.tokens,l.path=u.path;try{for(let[f,{transformer:D}]of d.specs.entries())l[f]=D(d.builder,f,u,c);return l}catch(f){throw f[vr]=l,f}}break}}async run(t,n){var o,r;let i,a={...e.defaultContext,...n},s=(o=this.enableColors)!==null&&o!==void 0?o:a.colorDepth>1;if(!Array.isArray(t))i=t;else try{i=this.process(t,a)}catch(p){return a.stdout.write(this.error(p,{colored:s})),1}if(i.help)return a.stdout.write(this.usage(i,{colored:s,detailed:!0})),0;i.context=a,i.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),definition:p=>this.definition(p),error:(p,d)=>this.error(p,d),format:p=>this.format(p),process:(p,d)=>this.process(p,{...a,...d}),run:(p,d)=>this.run(p,{...a,...d}),usage:(p,d)=>this.usage(p,d)};let u=this.enableCapture&&(r=xr.getCaptureActivator(a))!==null&&r!==void 0?r:kr,c;try{c=await u(()=>i.validateAndExecute().catch(p=>i.catch(p).then(()=>0)))}catch(p){return a.stdout.write(this.error(p,{colored:s,command:i})),1}return c}async runExit(t,n){process.exitCode=await this.run(t,n)}definition(t,{colored:n=!1}={}){if(!t.usage)return null;let{usage:o}=this.getUsageByRegistration(t,{detailed:!1}),{usage:r,options:i}=this.getUsageByRegistration(t,{detailed:!0,inlineOptions:!1}),a=typeof t.usage.category<"u"?q.formatMarkdownish(t.usage.category,{format:this.format(n),paragraphs:!1}):void 0,s=typeof t.usage.description<"u"?q.formatMarkdownish(t.usage.description,{format:this.format(n),paragraphs:!1}):void 0,u=typeof t.usage.details<"u"?q.formatMarkdownish(t.usage.details,{format:this.format(n),paragraphs:!0}):void 0,c=typeof t.usage.examples<"u"?t.usage.examples.map(([p,d])=>[q.formatMarkdownish(p,{format:this.format(n),paragraphs:!1}),d.replace(/\$0/g,this.binaryName)]):void 0;return{path:o,usage:r,category:a,description:s,details:u,examples:c,options:i}}definitions({colored:t=!1}={}){let n=[];for(let o of this.registrations.keys()){let r=this.definition(o,{colored:t});r&&n.push(r)}return n}usage(t=null,{colored:n,detailed:o=!1,prefix:r="$ "}={}){var i;if(t===null){for(let u of this.registrations.keys()){let c=u.paths,p=typeof u.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((i=c?.some(f=>f.length===0))!==null&&i!==void 0?i:!1))if(t){t=null;break}else t=u;else if(p){t=null;continue}}t&&(o=!0)}let a=t!==null&&t instanceof Pt.Command?t.constructor:t,s="";if(a)if(o){let{description:u="",details:c="",examples:p=[]}=a.usage||{};u!==""&&(s+=q.formatMarkdownish(u,{format:this.format(n),paragraphs:!1}).replace(/^./,f=>f.toUpperCase()),s+=`
|
|
42
|
+
`),(c!==""||p.length>0)&&(s+=`${this.format(n).header("Usage")}
|
|
43
43
|
`,s+=`
|
|
44
|
-
`);let{usage:
|
|
45
|
-
`,
|
|
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
|
|
48
|
-
`;for(let{definition:
|
|
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+=
|
|
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
|
|
54
|
-
`,s+=
|
|
55
|
-
`}}else{let{usage:u}=this.getUsageByRegistration(a);s+=`${this.format(n).bold(
|
|
56
|
-
`}else{let u=new Map;for(let[
|
|
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
|
-
`:
|
|
58
|
+
`:p?s+=`${this.format(n).header(`${this.binaryLabel}`)}
|
|
59
59
|
`:s+=`${this.format(n).header(`${this.binaryVersion}`)}
|
|
60
|
-
`,s+=` ${this.format(n).bold(
|
|
61
|
-
`):s+=`${this.format(n).bold(
|
|
62
|
-
`;for(let
|
|
63
|
-
`,s+=`${this.format(n).header(`${
|
|
64
|
-
`;for(let{commandClass:A,usage:
|
|
65
|
-
`,s+=` ${this.format(n).bold(
|
|
66
|
-
`,s+=` ${
|
|
67
|
-
`,s+=
|
|
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 b=A.usage.description||"undocumented";s+=`
|
|
65
|
+
`,s+=` ${this.format(n).bold(y)}
|
|
66
|
+
`,s+=` ${q.formatMarkdownish(b,{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)?
|
|
71
|
-
`)}};
|
|
72
|
-
`)}};
|
|
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
|
-
${
|
|
75
|
-
|
|
76
|
-
|
|
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)}};Te.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:xr.getDefaultColorDepth()};function kr(e){return e()}Je.Cli=Te;Je.run=Pa;Je.runExit=Sa});var Pr=x(Kn=>{"use strict";Object.defineProperty(Kn,"__esModule",{value:!0});var Oa=ye(),Ot=class extends Oa.Command{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)}
|
|
71
|
+
`)}};Ot.paths=[["--clipanion=definitions"]];Kn.DefinitionsCommand=Ot});var Or=x(Yn=>{"use strict";Object.defineProperty(Yn,"__esModule",{value:!0});var Ta=ye(),Tt=class extends Ta.Command{async execute(){this.context.stdout.write(this.cli.usage())}};Tt.paths=[["-h"],["--help"]];Yn.HelpCommand=Tt});var Wn=x(Qn=>{"use strict";Object.defineProperty(Qn,"__esModule",{value:!0});var Ia=ie();function Ra(e={}){return Ia.makeCommandOption({definition(t,n){var o;t.addProxy({name:(o=e.name)!==null&&o!==void 0?o:n,required:e.required})},transformer(t,n,o){return o.positionals.map(({value:r})=>r)}})}Qn.Proxy=Ra});var Tr=x(Vn=>{"use strict";Object.defineProperty(Vn,"__esModule",{value:!0});var Na=ye(),ja=Wn(),It=class extends Na.Command{constructor(){super(...arguments),this.args=ja.Proxy()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)}
|
|
72
|
+
`)}};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=Or(),Ha=Tr(),Ua=Ir();Ie.DefinitionsCommand=La.DefinitionsCommand;Ie.HelpCommand=Ga.HelpCommand;Ie.TokensCommand=Ha.TokensCommand;Ie.VersionCommand=Ua.VersionCommand});var Nr=x(Xn=>{"use strict";Object.defineProperty(Xn,"__esModule",{value:!0});var Jn=ie();function za(e,t,n){let[o,r]=Jn.rerouteArguments(t,n??{}),{arity:i=1}=r,a=e.split(","),s=new Set(a);return Jn.makeCommandOption({definition(u){u.addOption({names:a,arity:i,hidden:r?.hidden,description:r?.description,required:r.required})},transformer(u,c,p){let d,l=typeof o<"u"?[...o]:void 0;for(let{name:f,value:D}of p.options)s.has(f)&&(d=f,l=l??[],l.push(D));return typeof l<"u"?Jn.applyValidator(d??c,l,r.validator):l}})}Xn.Array=za});var Mr=x(_n=>{"use strict";Object.defineProperty(_n,"__esModule",{value:!0});var jr=ie();function qa(e,t,n){let[o,r]=jr.rerouteArguments(t,n??{}),i=e.split(","),a=new Set(i);return jr.makeCommandOption({definition(s){s.addOption({names:i,allowBinding:!1,arity:0,hidden:r.hidden,description:r.description,required:r.required})},transformer(s,u,c){let p=o;for(let{name:d,value:l}of c.options)a.has(d)&&(p=l);return p}})}_n.Boolean=qa});var Gr=x($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});var Lr=ie();function Ka(e,t,n){let[o,r]=Lr.rerouteArguments(t,n??{}),i=e.split(","),a=new Set(i);return Lr.makeCommandOption({definition(s){s.addOption({names:i,allowBinding:!1,arity:0,hidden:r.hidden,description:r.description,required:r.required})},transformer(s,u,c){let p=o;for(let{name:d,value:l}of c.options)a.has(d)&&(p??(p=0),l?p+=1:p=0);return p}})}$n.Counter=Ka});var Hr=x(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});var Ya=Bt(),Qa=ie();function Wa(e={}){return Qa.makeCommandOption({definition(t,n){var o;t.addRest({name:(o=e.name)!==null&&o!==void 0?o:n,required:e.required})},transformer(t,n,o){let r=a=>{let s=o.positionals[a];return s.extra===Ya.NoLimits||s.extra===!1&&a<t.arity.leading.length},i=0;for(;i<o.positionals.length&&r(i);)i+=1;return o.positionals.splice(0,i).map(({value:a})=>a)}})}eo.Rest=Wa});var Ur=x(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});var Va=Bt(),Xe=ie();function Za(e,t,n){let[o,r]=Xe.rerouteArguments(t,n??{}),{arity:i=1}=r,a=e.split(","),s=new Set(a);return Xe.makeCommandOption({definition(u){u.addOption({names:a,arity:r.tolerateBoolean?0:i,hidden:r.hidden,description:r.description,required:r.required})},transformer(u,c,p,d){let l,f=o;typeof r.env<"u"&&d.env[r.env]&&(l=r.env,f=d.env[r.env]);for(let{name:D,value:A}of p.options)s.has(D)&&(l=D,f=A);return typeof f=="string"?Xe.applyValidator(l??c,f,r.validator):f}})}function Ja(e={}){let{required:t=!0}=e;return Xe.makeCommandOption({definition(n,o){var r;n.addPositional({name:(r=e.name)!==null&&r!==void 0?r:o,required:e.required})},transformer(n,o,r){var i;for(let a=0;a<r.positionals.length;++a){if(r.positionals[a].extra===Va.NoLimits||t&&r.positionals[a].extra===!0||!t&&r.positionals[a].extra===!1)continue;let[s]=r.positionals.splice(a,1);return Xe.applyValidator((i=e.name)!==null&&i!==void 0?i:o,s.value,e.validator)}}})}function Xa(e,...t){return typeof e=="string"?Za(e,...t):Ja(e)}to.String=Xa});var zr=x(H=>{"use strict";Object.defineProperty(H,"__esModule",{value:!0});var Re=ie(),_a=Wn(),$a=Nr(),eu=Mr(),tu=Gr(),nu=Hr(),ou=Ur();H.applyValidator=Re.applyValidator;H.cleanValidationError=Re.cleanValidationError;H.formatError=Re.formatError;H.isOptionSymbol=Re.isOptionSymbol;H.makeCommandOption=Re.makeCommandOption;H.rerouteArguments=Re.rerouteArguments;H.Proxy=_a.Proxy;H.Array=$a.Array;H.Boolean=eu.Boolean;H.Counter=tu.Counter;H.Rest=nu.Rest;H.String=ou.String});var oo=x(ee=>{"use strict";Object.defineProperty(ee,"__esModule",{value:!0});var ru=yt(),iu=In(),su=ye(),no=Sr(),au=Rr(),uu=zr();ee.UsageError=ru.UsageError;ee.formatMarkdownish=iu.formatMarkdownish;ee.Command=su.Command;ee.Cli=no.Cli;ee.run=no.run;ee.runExit=no.runExit;ee.Builtins=au;ee.Option=uu});var $r=x((up,_r)=>{"use strict";_r.exports=mu;function gu(e){let t={defaultWidth:0,output:process.stdout,tty:require("tty")};return e?(Object.keys(t).forEach(function(n){e[n]||(e[n]=t[n])}),e):t}function mu(e){let t=gu(e);if(t.output.getWindowSize)return t.output.getWindowSize()[0]||t.defaultWidth;if(t.tty.getWindowSize)return t.tty.getWindowSize()[1]||t.defaultWidth;if(t.output.columns)return t.output.columns;if(process.env.CLI_WIDTH){let n=parseInt(process.env.CLI_WIDTH,10);if(!isNaN(n)&&n!==0)return n}return t.defaultWidth}});var ii=x((gp,ri)=>{ri.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});var mi=x((Ip,gi)=>{var Tu=require("stream"),fo=class extends Tu{#n=null;constructor(t={}){super(t),this.writable=this.readable=!0,this.muted=!1,this.on("pipe",this._onpipe),this.replace=t.replace,this._prompt=t.prompt||null,this._hadControl=!1}#t(t,n){return this._dest?this._dest[t]:this._src?this._src[t]:n}#e(t,...n){typeof this._dest?.[t]=="function"&&this._dest[t](...n),typeof this._src?.[t]=="function"&&this._src[t](...n)}get isTTY(){return this.#n!==null?this.#n:this.#t("isTTY",!1)}set isTTY(t){this.#n=t}get rows(){return this.#t("rows")}get columns(){return this.#t("columns")}mute(){this.muted=!0}unmute(){this.muted=!1}_onpipe(t){this._src=t}pipe(t,n){return this._dest=t,super.pipe(t,n)}pause(){if(this._src)return this._src.pause()}resume(){if(this._src)return this._src.resume()}write(t){if(this.muted){if(!this.replace)return!0;if(t.match(/^\u001b/))return t.indexOf(this._prompt)===0&&(t=t.slice(this._prompt.length),t=t.replace(/./g,this.replace),t=this._prompt+t),this._hadControl=!0,this.emit("data",t);this._prompt&&this._hadControl&&t.indexOf(this._prompt)===0&&(this._hadControl=!1,this.emit("data",this._prompt),t=t.slice(this._prompt.length)),t=t.toString().replace(/./g,this.replace)}this.emit("data",t)}end(t){this.muted&&(t&&this.replace?t=t.toString().replace(/./g,this.replace):t=null),t&&this.emit("data",t),this.emit("end")}destroy(...t){return this.#e("destroy",...t)}destroySoon(...t){return this.#e("destroySoon",...t)}close(...t){return this.#e("close",...t)}};gi.exports=fo});var ht=M(oo());var _e=(e,t=[])=>e.name==="up"||t.includes("vim")&&e.name==="k"||t.includes("emacs")&&e.ctrl&&e.name==="p",Nt=(e,t=[])=>e.name==="down"||t.includes("vim")&&e.name==="j"||t.includes("emacs")&&e.ctrl&&e.name==="n";var $e=e=>e.name==="backspace",et=e=>e.name==="tab",ro=e=>"1234567890".includes(e.name),se=e=>e.name==="enter"||e.name==="return";var jt=class extends Error{name="AbortPromptError";message="Prompt was aborted";constructor(t){super(),this.cause=t?.cause}},Mt=class extends Error{name="CancelPromptError";message="Prompt was canceled"},tt=class extends Error{name="ExitPromptError"},Lt=class extends Error{name="HookError"},Ne=class extends Error{name="ValidationError"};var Qr=require("node:async_hooks");var Gt=require("node:async_hooks");var qr=new Gt.AsyncLocalStorage;function cu(e){return{rl:e,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}function Kr(e,t){let n=cu(e);return qr.run(n,()=>{function o(r){n.handleChange=()=>{n.index=0,r()},n.handleChange()}return t(o)})}function ve(){let e=qr.getStore();if(!e)throw new Lt("[Inquirer] Hook functions can only be called from within a prompt");return e}function io(){return ve().rl}function so(e){let t=(...n)=>{let o=ve(),r=!1,i=o.handleChange;o.handleChange=()=>{r=!0};let a=e(...n);return r&&i(),o.handleChange=i,a};return Gt.AsyncResource.bind(t)}function je(e){let t=ve(),{index:n}=t,o={get(){return t.hooks[n]},set(i){t.hooks[n]=i},initialized:n in t.hooks},r=e(o);return t.index++,r}function Yr(){ve().handleChange()}var ke={queue(e){let t=ve(),{index:n}=t;t.hooksEffect.push(()=>{t.hooksCleanup[n]?.();let o=e(io());if(o!=null&&typeof o!="function")throw new Ne("useEffect return value must be a cleanup function or nothing.");t.hooksCleanup[n]=o})},run(){let e=ve();so(()=>{e.hooksEffect.forEach(t=>{t()}),e.hooksEffect.length=0})()},clearAll(){let e=ve();e.hooksCleanup.forEach(t=>{t?.()}),e.hooksEffect.length=0,e.hooksCleanup.length=0}};function I(e){return je(t=>{let n=Qr.AsyncResource.bind(function(i){t.get()!==i&&(t.set(i),Yr())});if(t.initialized)return[t.get(),n];let o=typeof e=="function"?e():e;return t.set(o),[o,n]})}function ae(e,t){je(n=>{let o=n.get();(!Array.isArray(o)||t.some((i,a)=>!Object.is(i,o[a])))&&ke.queue(e),n.set(t)})}var Q=require("node:util");var V=M(require("node:process"),1);function du(){return V.default.platform!=="win32"?V.default.env.TERM!=="linux":!!V.default.env.WT_SESSION||!!V.default.env.TERMINUS_SUBLIME||V.default.env.ConEmuTask==="{cmd::Cmder}"||V.default.env.TERM_PROGRAM==="Terminus-Sublime"||V.default.env.TERM_PROGRAM==="vscode"||V.default.env.TERM==="xterm-256color"||V.default.env.TERM==="alacritty"||V.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Wr={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},Vr={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},pu={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},lu={...Wr,...Vr},fu={...Wr,...pu},Du=du(),hu=Du?lu:fu,Me=hu,Kd=Object.entries(Vr);var Zr={prefix:{idle:(0,Q.styleText)("blue","?"),done:(0,Q.styleText)("green",Me.tick)},spinner:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"].map(e=>(0,Q.styleText)("yellow",e))},style:{answer:e=>(0,Q.styleText)("cyan",e),message:e=>(0,Q.styleText)("bold",e),error:e=>(0,Q.styleText)("red",`> ${e}`),defaultAnswer:e=>(0,Q.styleText)("dim",`(${e})`),help:e=>(0,Q.styleText)("dim",e),highlight:e=>(0,Q.styleText)("cyan",e),key:e=>(0,Q.styleText)("cyan",(0,Q.styleText)("bold",`<${e}>`))}};function Jr(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function Xr(...e){let t={};for(let n of e)for(let[o,r]of Object.entries(n)){let i=t[o];t[o]=Jr(i)&&Jr(r)?Xr(i,r):r}return t}function Z(...e){let t=[Zr,...e.filter(n=>n!=null)];return Xr(...t)}function ue({status:e="idle",theme:t}){let[n,o]=I(!1),[r,i]=I(0),{prefix:a,spinner:s}=Z(t);return ae(()=>{if(e==="loading"){let c,p=-1,d=setTimeout(()=>{o(!0),c=setInterval(()=>{p=p+1,i(p%s.frames.length)},s.interval)},300);return()=>{clearTimeout(d),clearInterval(c)}}else o(!1)},[e]),n?s.frames[r]:typeof a=="string"?a:a[e==="loading"?"idle":e]??a.idle}function nt(e,t){return je(n=>{let o=n.get();if(!o||o.dependencies.length!==t.length||o.dependencies.some((r,i)=>r!==t[i])){let r=e();return n.set({value:r,dependencies:t}),r}return o.value})}function xe(e){return I({current:e})[0]}function ce(e){let t=xe(e);t.current=e,ae(n=>{let o=!1,r=so((i,a)=>{o||t.current(a,n)});return n.input.on("keypress",r),()=>{o=!0,n.input.removeListener("keypress",r)}},[])}var hi=M($r(),1);function ao({onlyFirst:e=!1}={}){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}var Au=ao();function ot(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(Au,"")}function ei(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function ti(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function ni(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}function yu(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function oi(e,{ambiguousAsWide:t=!1}={}){return yu(e),ti(e)||ni(e)||t&&ei(e)?2:1}var si=M(ii(),1),Fu=new Intl.Segmenter,bu=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function Be(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:n=!0,countAnsiEscapeCodes:o=!1}=t;if(o||(e=ot(e)),e.length===0)return 0;let r=0,i={ambiguousAsWide:!n};for(let{segment:a}of Fu.segment(e)){let s=a.codePointAt(0);if(!(s<=31||s>=127&&s<=159)&&!(s>=8203&&s<=8207||s===65279)&&!(s>=768&&s<=879||s>=6832&&s<=6911||s>=7616&&s<=7679||s>=8400&&s<=8447||s>=65056&&s<=65071)&&!(s>=55296&&s<=57343)&&!(s>=65024&&s<=65039)&&!bu.test(a)){if((0,si.default)().test(a)){r+=2;continue}r+=oi(s,i)}}return r}var ai=(e=0)=>t=>`\x1B[${t+e}m`,ui=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,ci=(e=0)=>(t,n,o)=>`\x1B[${38+e};2;${t};${n};${o}m`,S={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},Fp=Object.keys(S.modifier),Eu=Object.keys(S.color),wu=Object.keys(S.bgColor),bp=[...Eu,...wu];function Cu(){let e=new Map;for(let[t,n]of Object.entries(S)){for(let[o,r]of Object.entries(n))S[o]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},n[o]=S[o],e.set(r[0],r[1]);Object.defineProperty(S,t,{value:n,enumerable:!1})}return Object.defineProperty(S,"codes",{value:e,enumerable:!1}),S.color.close="\x1B[39m",S.bgColor.close="\x1B[49m",S.color.ansi=ai(),S.color.ansi256=ui(),S.color.ansi16m=ci(),S.bgColor.ansi=ai(10),S.bgColor.ansi256=ui(10),S.bgColor.ansi16m=ci(10),Object.defineProperties(S,{rgbToAnsi256:{value:(t,n,o)=>t===n&&n===o?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(o/255*5),enumerable:!1},hexToRgb:{value:t=>{let n=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!n)return[0,0,0];let[o]=n;o.length===3&&(o=[...o].map(i=>i+i).join(""));let r=Number.parseInt(o,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:t=>S.rgbToAnsi256(...S.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value:t=>{if(t<8)return 30+t;if(t<16)return 90+(t-8);let n,o,r;if(t>=232)n=((t-232)*10+8)/255,o=n,r=n;else{t-=16;let s=t%36;n=Math.floor(t/36)/5,o=Math.floor(s/6)/5,r=s%6/5}let i=Math.max(n,o,r)*2;if(i===0)return 30;let a=30+(Math.round(r)<<2|Math.round(o)<<1|Math.round(n));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(t,n,o)=>S.ansi256ToAnsi(S.rgbToAnsi256(t,n,o)),enumerable:!1},hexToAnsi:{value:t=>S.ansi256ToAnsi(S.hexToAnsi256(t)),enumerable:!1}}),S}var vu=Cu(),di=vu;var Ut=new Set(["\x1B","\x9B"]),ku=39,co="\x07",fi="[",xu="]",Di="m",Ht=`${xu}8;;`,pi=e=>`${Ut.values().next().value}${fi}${e}${Di}`,li=e=>`${Ut.values().next().value}${Ht}${e}${co}`,Bu=e=>e.split(" ").map(t=>Be(t)),uo=(e,t,n)=>{let o=[...t],r=!1,i=!1,a=Be(ot(e.at(-1)));for(let[s,u]of o.entries()){let c=Be(u);if(a+c<=n?e[e.length-1]+=u:(e.push(u),a=0),Ut.has(u)&&(r=!0,i=o.slice(s+1,s+1+Ht.length).join("")===Ht),r){i?u===co&&(r=!1,i=!1):u===Di&&(r=!1);continue}a+=c,a===n&&s<o.length-1&&(e.push(""),a=0)}!a&&e.at(-1).length>0&&e.length>1&&(e[e.length-2]+=e.pop())},Su=e=>{let t=e.split(" "),n=t.length;for(;n>0&&!(Be(t[n-1])>0);)n--;return n===t.length?e:t.slice(0,n).join(" ")+t.slice(n).join("")},Pu=(e,t,n={})=>{if(n.trim!==!1&&e.trim()==="")return"";let o="",r,i,a=Bu(e),s=[""];for(let[d,l]of e.split(" ").entries()){n.trim!==!1&&(s[s.length-1]=s.at(-1).trimStart());let f=Be(s.at(-1));if(d!==0&&(f>=t&&(n.wordWrap===!1||n.trim===!1)&&(s.push(""),f=0),(f>0||n.trim===!1)&&(s[s.length-1]+=" ",f++)),n.hard&&a[d]>t){let D=t-f,A=1+Math.floor((a[d]-D-1)/t);Math.floor((a[d]-1)/t)<A&&s.push(""),uo(s,l,t);continue}if(f+a[d]>t&&f>0&&a[d]>0){if(n.wordWrap===!1&&f<t){uo(s,l,t);continue}s.push("")}if(f+a[d]>t&&n.wordWrap===!1){uo(s,l,t);continue}s[s.length-1]+=l}n.trim!==!1&&(s=s.map(d=>Su(d)));let u=s.join(`
|
|
74
|
+
`),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(
|
|
99
|
-
`)}function
|
|
100
|
-
`).flatMap(n=>
|
|
101
|
-
`).map(
|
|
102
|
-
`)}function
|
|
103
|
-
`)),u=s.reduce((
|
|
104
|
-
`)}var
|
|
105
|
-
`).length,
|
|
106
|
-
`).pop()??"",
|
|
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 Ou({active:e,renderedItems:t,pageSize:n,loop:o}){let r=xe({lastPointer:e,lastActive:void 0}),{lastPointer:i,lastActive:a}=r.current,s=Math.floor(n/2),u=t.reduce((d,l)=>d+l.length,0),c=t.slice(0,e).reduce((d,l)=>d+l.length,0),p=c;if(u>n)if(o)p=i,a!=null&&a<e&&e-a<n&&(p=Math.min(s,Math.abs(e-a)===1?Math.min(i+(t[a]?.length??0),Math.max(c,i)):i+e-a));else{let d=t.slice(e).reduce((l,f)=>l+f.length,0);p=d<n-s?n-d:Math.min(c,s)}return r.current.lastPointer=p,r.current.lastActive=e,p}function lo({items:e,active:t,renderItem:n,pageSize:o,loop:r=!0}){let i=zt(),a=b=>(b%e.length+e.length)%e.length,s=e.map((b,E)=>b==null?[]:rt(n({item:b,index:E,isActive:E===t}),i).split(`
|
|
84
|
+
`)),u=s.reduce((b,E)=>b+E.length,0),c=b=>s[b]??[],p=Ou({active:t,renderedItems:s,pageSize:o,loop:r}),d=c(t).slice(0,o),l=p+d.length<=o?p:o-d.length,f=Array.from({length:o});f.splice(l,d.length,...d);let D=new Set([t]),A=l+d.length,y=a(t+1);for(;A<o&&!D.has(y)&&(r&&u>o?y!==t:y>t);){let E=c(y).slice(0,o-A);f.splice(A,E.length,...E),D.add(y),A+=E.length,y=a(y+1)}for(A=l-1,y=a(t-1);A>=0&&!D.has(y)&&(r&&u>o?y!==t:y<t);){let b=c(y),E=b.slice(Math.max(0,b.length-A-1));f.splice(A-E.length+1,E.length,...E),D.add(y),A-=E.length,y=a(y-1)}return f.filter(b=>typeof b=="string").join(`
|
|
85
|
+
`)}var wi=M(require("node:readline"),1),Ci=require("node:async_hooks"),vi=M(mi(),1);var Se=[];Se.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Se.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Se.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var qt=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",Do=Symbol.for("signal-exit emitter"),ho=globalThis,Iu=Object.defineProperty.bind(Object),go=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(ho[Do])return ho[Do];Iu(ho,Do,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(t,n){this.listeners[t].push(n)}removeListener(t,n){let o=this.listeners[t],r=o.indexOf(n);r!==-1&&(r===0&&o.length===1?o.length=0:o.splice(r,1))}emit(t,n,o){if(this.emitted[t])return!1;this.emitted[t]=!0;let r=!1;for(let i of this.listeners[t])r=i(n,o)===!0||r;return t==="exit"&&(r=this.emit("afterExit",n,o)||r),r}},Kt=class{},Ru=e=>({onExit(t,n){return e.onExit(t,n)},load(){return e.load()},unload(){return e.unload()}}),mo=class extends Kt{onExit(){return()=>{}}load(){}unload(){}},Ao=class extends Kt{#n=yo.platform==="win32"?"SIGINT":"SIGHUP";#t=new go;#e;#i;#s;#r={};#o=!1;constructor(t){super(),this.#e=t,this.#r={};for(let n of Se)this.#r[n]=()=>{let o=this.#e.listeners(n),{count:r}=this.#t,i=t;if(typeof i.__signal_exit_emitter__=="object"&&typeof i.__signal_exit_emitter__.count=="number"&&(r+=i.__signal_exit_emitter__.count),o.length===r){this.unload();let a=this.#t.emit("exit",null,n),s=n==="SIGHUP"?this.#n:n;a||t.kill(t.pid,s)}};this.#s=t.reallyExit,this.#i=t.emit}onExit(t,n){if(!qt(this.#e))return()=>{};this.#o===!1&&this.load();let o=n?.alwaysLast?"afterExit":"exit";return this.#t.on(o,t),()=>{this.#t.removeListener(o,t),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#t.count+=1;for(let t of Se)try{let n=this.#r[t];n&&this.#e.on(t,n)}catch{}this.#e.emit=(t,...n)=>this.#u(t,...n),this.#e.reallyExit=t=>this.#a(t)}}unload(){this.#o&&(this.#o=!1,Se.forEach(t=>{let n=this.#r[t];if(!n)throw new Error("Listener not defined for signal: "+t);try{this.#e.removeListener(t,n)}catch{}}),this.#e.emit=this.#i,this.#e.reallyExit=this.#s,this.#t.count-=1)}#a(t){return qt(this.#e)?(this.#e.exitCode=t||0,this.#t.emit("exit",this.#e.exitCode,null),this.#s.call(this.#e,this.#e.exitCode)):0}#u(t,...n){let o=this.#i;if(t==="exit"&&qt(this.#e)){typeof n[0]=="number"&&(this.#e.exitCode=n[0]);let r=o.call(this.#e,t,...n);return this.#t.emit("exit",this.#e.exitCode,null),r}else return o.call(this.#e,t,...n)}},yo=globalThis.process,{onExit:Ai,load:jp,unload:Mp}=Ru(qt(yo)?new Ao(yo):new mo);var Ei=require("node:util");var Yt="\x1B[?25l",Fi="\x1B[?25h",Fo=(e=1)=>e>0?`\x1B[${e}A`:"",bo=(e=1)=>e>0?`\x1B[${e}B`:"",Eo=(e,t)=>typeof t=="number"&&!Number.isNaN(t)?`\x1B[${t+1};${e+1}H`:`\x1B[${e+1}G`,yi="\x1B[2K",wo=e=>e>0?(yi+Fo(1)).repeat(e-1)+yi+"\x1B[G":"";var bi=e=>e.split(`
|
|
86
|
+
`).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,Ei.stripVTControlCharacters)(o),i=r;this.rl.line.length>0&&(i=i.slice(0,-this.rl.line.length)),this.rl.setPrompt(i),this.cursorPos=this.rl.getCursorPos();let a=zt();t=rt(t,a),n=rt(n,a),r.length%a===0&&(t+=`
|
|
107
88
|
`);let s=t+(n?`
|
|
108
|
-
`+n:""),
|
|
109
|
-
`,n+=
|
|
110
|
-
at ${
|
|
111
|
-
`).trimEnd()}${
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
${
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
89
|
+
`+n:""),c=Math.floor(r.length/a)-this.cursorPos.rows+(n?bi(n):0);c>0&&(s+=Fo(c)),s+=Eo(this.cursorPos.cols),this.write(bo(this.extraLinesUnderPrompt)+wo(this.height)+s),this.extraLinesUnderPrompt=c,this.height=bi(s)}checkCursorPos(){let t=this.rl.getCursorPos();t.cols!==this.cursorPos.cols&&(this.write(Eo(t.cols)),this.cursorPos=t)}done({clearContent:t}){this.rl.setPrompt("");let n=bo(this.extraLinesUnderPrompt);n+=t?wo(this.height):`
|
|
90
|
+
`,n+=Fi,this.write(n),this.rl.close()}};var Qt=class extends Promise{static withResolver(){let t,n;return{promise:new Promise((r,i)=>{t=r,n=i}),resolve:t,reject:n}}};function ju(){let e=Error.prepareStackTrace,t=[];try{Error.prepareStackTrace=(n,o)=>{let r=o.slice(1);return t=r,r},new Error().stack}catch{return t}return Error.prepareStackTrace=e,t}function de(e){let t=ju();return(o,r={})=>{let{input:i=process.stdin,signal:a}=r,s=new Set,u=new vi.default;u.pipe(r.output??process.stdout);let c=wi.createInterface({terminal:!0,input:i,output:u}),p=new it(c),{promise:d,resolve:l,reject:f}=Qt.withResolver(),D=()=>f(new Mt);if(a){let b=()=>f(new jt({cause:a.reason}));if(a.aborted)return b(),Object.assign(d,{cancel:D});a.addEventListener("abort",b),s.add(()=>a.removeEventListener("abort",b))}s.add(Ai((b,E)=>{f(new tt(`User force closed the prompt with ${b} ${E}`))}));let A=()=>f(new tt("User force closed the prompt with SIGINT"));c.on("SIGINT",A),s.add(()=>c.removeListener("SIGINT",A));let y=()=>p.checkCursorPos();return c.input.on("keypress",y),s.add(()=>c.input.removeListener("keypress",y)),Kr(c,b=>{let E=Ci.AsyncResource.bind(()=>ke.clearAll());return c.on("close",E),s.add(()=>c.removeListener("close",E)),b(()=>{try{let O=e(o,gt=>{setImmediate(()=>l(gt))});if(O===void 0){let gt=t[1]?.getFileName();throw new Error(`Prompt functions must return a string.
|
|
91
|
+
at ${gt}`)}let[X,re]=typeof O=="string"?[O]:O;p.render(X,re),ke.run()}catch(O){f(O)}}),Object.assign(d.then(O=>(ke.clearAll(),O),O=>{throw ke.clearAll(),O}).finally(()=>{s.forEach(O=>O()),p.done({clearContent:!!r.clearPromptOnDone}),u.end()}).then(()=>d),{cancel:D})})}}var ki=require("node:util");var pe=class{separator=(0,ki.styleText)("dim",Array.from({length:15}).join(Me.line));type="separator";constructor(t){t&&(this.separator=t)}static isSeparator(t){return!!(t&&typeof t=="object"&&"type"in t&&t.type==="separator")}};function xi(e,t){let n=t!==!1;return/^(y|yes)/i.test(e)?n=!0:/^(n|no)/i.test(e)&&(n=!1),n}function Bi(e){return e?"Yes":"No"}var le=de((e,t)=>{let{transformer:n=Bi}=e,[o,r]=I("idle"),[i,a]=I(""),s=Z(e.theme),u=ue({status:o,theme:s});ce((l,f)=>{if(o==="idle")if(se(l)){let D=xi(i,e.default);a(n(D)),r("done"),t(D)}else if(et(l)){let D=Bi(!xi(i,e.default));f.clearLine(0),f.write(D),a(D)}else a(f.line)});let c=i,p="";o==="done"?c=s.style.answer(i):p=` ${s.style.defaultAnswer(e.default===!1?"y/N":"Y/n")}`;let d=s.style.message(e.message,o);return`${u} ${d}${p} ${c}`});var Mu={validationFailureMode:"keep"},te=de((e,t)=>{let{prefill:n="tab"}=e,o=Z(Mu,e.theme),[r,i]=I("idle"),[a="",s]=I(e.default),[u,c]=I(),[p,d]=I(""),l=ue({status:r,theme:o});async function f(E){let{required:O,pattern:X,patternError:re="Invalid input"}=e;return O&&!E?"You must provide a value":X&&!X.test(E)?re:typeof e.validate=="function"?await e.validate(E)||"You must provide a valid value":!0}ce(async(E,O)=>{if(r==="idle")if(se(E)){let X=p||a;i("loading");let re=await f(X);re===!0?(d(X),i("done"),t(X)):(o.validationFailureMode==="clear"?d(""):O.write(p),c(re),i("idle"))}else $e(E)&&!p?s(void 0):et(E)&&!p?(s(void 0),O.clearLine(0),O.write(a),d(a)):(d(O.line),c(void 0))}),ae(E=>{n==="editable"&&a&&(E.write(a),d(a))},[]);let D=o.style.message(e.message,r),A=p;typeof e.transformer=="function"?A=e.transformer(p,{isFinal:r==="done"}):r==="done"&&(A=o.style.answer(p));let y;a&&r!=="done"&&!p&&(y=o.style.defaultAnswer(a));let b="";return u&&(b=o.style.error(u)),[[l,D,y,A].filter(E=>E!==void 0).join(" "),b]});var Wt=de((e,t)=>{let{validate:n=()=>!0}=e,o=Z(e.theme),[r,i]=I("idle"),[a,s]=I(),[u,c]=I(""),p=ue({status:r,theme:o});ce(async(A,y)=>{if(r==="idle")if(se(A)){let b=u;i("loading");let E=await n(b);E===!0?(c(b),i("done"),t(b)):(y.write(u),s(E||"You must provide a valid value"),i("idle"))}else c(y.line),s(void 0)});let d=o.style.message(e.message,r),l="",f;e.mask?l=(typeof e.mask=="string"?e.mask:"*").repeat(u.length):r!=="done"&&(f=`${o.style.help("[input is masked]")}${Yt}`),r==="done"&&(l=o.style.answer(l));let D="";return a&&(D=o.style.error(a)),[[p,d,e.mask?l:f].join(" "),D]});var Ge=require("node:util");var Lu={icon:{cursor:Me.pointer},style:{disabled:e=>(0,Ge.styleText)("dim",`- ${e}`),description:e=>(0,Ge.styleText)("cyan",e),keysHelpTip:e=>e.map(([t,n])=>`${(0,Ge.styleText)("bold",t)} ${(0,Ge.styleText)("dim",n)}`).join((0,Ge.styleText)("dim"," \u2022 "))},indexMode:"hidden",keybindings:[]};function Le(e){return!pe.isSeparator(e)&&!e.disabled}function Gu(e){return e.map(t=>{if(pe.isSeparator(t))return t;if(typeof t!="object"||t===null||!("value"in t)){let r=String(t);return{value:t,name:r,short:r,disabled:!1}}let n=t.name??String(t.value),o={value:t.value,name:n,short:t.short??n,disabled:t.disabled??!1};return t.description&&(o.description=t.description),o})}var He=de((e,t)=>{let{loop:n=!0,pageSize:o=7}=e,r=Z(Lu,e.theme),{keybindings:i}=r,[a,s]=I("idle"),u=ue({status:a,theme:r}),c=xe(),p=!i.includes("vim"),d=nt(()=>Gu(e.choices),[e.choices]),l=nt(()=>{let T=d.findIndex(Le),K=d.findLastIndex(Le);if(T===-1)throw new Ne("[select prompt] No selectable choices. All choices are disabled.");return{first:T,last:K}},[d]),f=nt(()=>"default"in e?d.findIndex(T=>Le(T)&&T.value===e.default):-1,[e.default,d]),[D,A]=I(f===-1?l.first:f),y=d[D];ce((T,K)=>{if(clearTimeout(c.current),se(T))s("done"),t(y.value);else if(_e(T,i)||Nt(T,i)){if(K.clearLine(0),n||_e(T,i)&&D!==l.first||Nt(T,i)&&D!==l.last){let we=_e(T,i)?-1:1,U=D;do U=(U+we+d.length)%d.length;while(!Le(d[U]));A(U)}}else if(ro(T)&&!Number.isNaN(Number(K.line))){let we=Number(K.line)-1,U=-1,he=d.findIndex(Ke=>pe.isSeparator(Ke)?!1:(U++,U===we)),mt=d[he];mt!=null&&Le(mt)&&A(he),c.current=setTimeout(()=>{K.clearLine(0)},700)}else if($e(T))K.clearLine(0);else if(p){let we=K.line.toLowerCase(),U=d.findIndex(he=>pe.isSeparator(he)||!Le(he)?!1:he.name.toLowerCase().startsWith(we));U!==-1&&A(U),c.current=setTimeout(()=>{K.clearLine(0)},700)}}),ae(()=>()=>{clearTimeout(c.current)},[]);let b=r.style.message(e.message,a),E=r.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]),O=0,X=lo({items:d,active:D,renderItem({item:T,isActive:K,index:we}){if(pe.isSeparator(T))return O++,` ${T.separator}`;let U=r.indexMode==="number"?`${we+1-O}. `:"";if(T.disabled){let Ke=typeof T.disabled=="string"?T.disabled:"(disabled)";return r.style.disabled(`${U}${T.name} ${Ke}`)}let he=K?r.style.highlight:Ke=>Ke,mt=K?r.icon.cursor:" ";return he(`${mt} ${U}${T.name}`)},pageSize:o,loop:n});if(a==="done")return[u,b,r.style.answer(y.short)].filter(Boolean).join(" ");let{description:re}=y;return`${[[u,b].filter(Boolean).join(" "),X," ",re?r.style.description(re):"",E].filter(Boolean).join(`
|
|
92
|
+
`).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 Oi(e,t=2,n=1){let r=Math.max(...e.map(s=>(0,Ue.stripVTControlCharacters)(s).length))+t*2,i=`|${" ".repeat(r+2)}|`,a=[` .\xB7${"\xAF".repeat(r-4)}\xB7. `];for(let s=0;s<n-1;s++)a.push(i);for(let[s,u]of e.entries()){let c=(0,Ue.stripVTControlCharacters)(u).length,p=r-t-c,d=s===0?"/":s===e.length-1?"\\":"|",l=s===0?"\\":s===e.length-1?"/":"|";a.push(`${d}${" ".repeat(t)}${u}${" ".repeat(p)}${l}`)}for(let s=0;s<n-1;s++)a.push(i);return a.push(` \xB7.${"_".repeat(r-4)}.\xB7 `),a}var Ti=()=>{let e=["",P(" Good Bye!"),"\u{1F44B} until next time!",""],t=Oi(e);return Ii(t)},Vt=e=>{let t=[`${P(e.name)} is ready!`,"","Next steps:",` 1. ${st(`cd ${e.directory}`)}`,` 2. ${st("npx datadog-apps")} ${w("\u2014 see available commands")}`],n=Oi(t);return Ii(n)},Ii=e=>{let t=[` ${k("___")}`,` ${k("___ (DATADOG\\")}`,` ${k("/DATAD) __/O/_/___ \\DAT\\ADOG\\")}`,` ${k("/DATADOGDATADOGDATADOGDATA| \\ATA)")}`,k("(DATADOGD TADOGDATADOGDATAD\\ |TA/"),k("(DATADOGD) )ATADOGDATADOGDAT)"),` ${k("\\DATADOG) )DATADOGDATADOG\xAF\xAF\\")}`,` ${k("\\DATAD/ )OGDA/\xAF\xAF\xAFTADOGDA .|")}`,` ${k(" \xAF\xAF\xAF /DATADO .GDATADOGD\\")}`,` ${k("|DATADOGDATADOGDATADOGDATA\\")}`,` ${k("|DATADOGDATADOGDATADOG\xAF\xAF\xAF\xAFD)")}`,` ${k("\\DATADOGDATADOGDATADO\\__/DA)")}`,` ${k("\\DATADOGDATADOGDATADOGDATA) __.")}`,` ${k("\\DATADOG\\ \\DATADOG/ |A/ ____/TADOG|")}`,` ${k(")DATADOGD\\_ _/ATADOGDATADOGDAT|")}`,` ${k(")DATADO |OGDATADOGDATADOGDATADOG/|D|")}`,` ${k("/DATADOG |DATADOGDATADOGDA/\\TADO/ |A|")}`,` ${k("/DATADOGD |ATADOGDATADOGDA/ \\GD/ |T|")}`,` ${k("/D\\._ \xAF\\ATA |DATAD/\\DOGDAT/ \\/ |A|")}`,` ${k("/DATADOG\\ \\DA |TADO/ \\GD/ |D|")}`,` ${k("(DATADOGDA\\ \\| |TAD/ \\/ |O|")}`,` ${k("(DATADOGDAT\\ \\ |AD/ ___/DATADOG|")}`,` ${k("\\DATADOGDAT) |A| _/DATADOG/\xAF")}`,` ${k("\\DATADOGDA) |T/\xAF")}`,` ${k("\\DATADO/")}`,` ${k("\xAF\xAF\xAF")}`],n=e.length-3,o=12-e.length,r=[],a=36+Math.max(...e.map(s=>(0,Ue.stripVTControlCharacters)(s).length));for(let[s,u]of t.entries()){let c=s-o;if(c>=0&&c<e.length){let p=e[c]||"",d=a-((0,Ue.stripVTControlCharacters)(u).length+(0,Ue.stripVTControlCharacters)(p).length);c===n&&(p=p.replace(/^./,"< "),d-=1);let l=" ".repeat(d);r.push(`${u}${l}${p}`)}else r.push(u)}return`
|
|
109
|
+
${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 Oo(e,t){let n=`${e}/${t}`,o=ne.default.relative(n,".").split(ne.default.sep).join("/");return{directory:n,rootRelativePath:o}}var be="datadoghq.com";function ze(e){return e?/^[a-z0-9][a-z0-9-]*$/.test(e)?!0:"Directory name must start with a lowercase letter or number and contain only lowercase letters, numbers, and hyphens.":"The directory name cannot be empty."}function tn(e){let t=e.trim();return t?/[{}<>`$]/.test(t)?"The app name cannot contain the characters {, }, <, >, `, or $.":!0:"The app name cannot be empty."}function Zu(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Hi(e){return e.split("-").filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}async function Ju(e,t){if(!ut.default.existsSync(e))return;if(t){console.log(w("Deleting directory.")),ut.default.rmSync(e,{force:!0,recursive:!0});return}if(console.log(),await le({message:`Directory ${P(e)} already exists. Overwrite?`,default:!1}))console.log(w("Deleting directory.")),ut.default.rmSync(e,{force:!0,recursive:!0});else throw console.log(w("Cancelled.")),new Error("Operation cancelled by user")}async function ct(e,t,n){if(n&&!t&&ut.default.existsSync(e))throw new Error(`Directory ${e} already exists. Use --overwrite to replace it.`);await Ju(e,t)}async function Ui(e,t,n="Enter the directory name for your app:",o=!1){let r;if(e){let s=J.default.basename(e);if(e!==s)throw new Error("Directory name must not include a path.");let u=ze(s);if(u!==!0)throw new Error(u);r=s}else r=await te({message:n,validate:s=>ze(s)});let i=J.default.basename(r),a=J.default.resolve(process.cwd(),r);return o||await ct(a,t),{name:i,directory:r}}async function To(e,t,n,o,r,i=process.cwd(),a=!1){let s,u;if(e){let l=J.default.basename(e);if(e!==l)throw new Error("Directory name must not include a path.");let f=ze(l);if(f!==!0)throw new Error(f);if(u=l,o!==void 0){let D=tn(o);if(D!==!0)throw new Error(D);s=o.trim()}else n?s=Hi(l):s=(await te({message:"Enter your app name:",default:Hi(l),validate:tn})).trim()}else{if(n)throw new Error("A directory name is required when using --yes. Pass it as a positional argument.");{if(o!==void 0){let f=tn(o);if(f!==!0)throw new Error(f);s=o.trim()}else s=(await te({message:"Enter your app name:",validate:tn})).trim();let l=Zu(s);u=await te({message:"Enter the directory name for your app:",default:l,validate:f=>ze(f)})}}let c=J.default.basename(u),p=J.default.resolve(i,u),d=be;if(r!==void 0){let l=xo(r);if(l!==!0)throw new Error(l);d=ko(r)??be}else if(!n){let l=await te({message:`Enter your Datadog site (e.g. datadoghq.com, datadoghq.eu, ap1.datadoghq.com).
|
|
117
|
+
If your org has a custom subdomain (e.g. acme.datadoghq.com), use that instead:`,default:be,validate:xo});d=ko(l)??be}return a||await ct(p,t,n),{name:s,directoryName:c,directory:u,datadogSite:d,description:""}}async function Io(e,t,n,o,r,i,a,s=!1){let u=await To(e,o,r,i,a,J.default.join(t,n),s),{directory:c,rootRelativePath:p}=Oo(n,u.directoryName);return{...u,directory:c,appTargetPath:J.default.join(t,c),rootRelativePath:p}}async function zi(e,t,n,o,r="Enter a name:",i){let a;if(e){let p=J.default.basename(e),d=ze(p);if(d!==!0)throw new Error(d);a=p}else a=await te({message:r,validate:p=>ze(p)});let{directory:s,rootRelativePath:u}=Oo(n,a),c=J.default.join(t,s);return await ct(c,o,i),{name:a,directory:s,appTargetPath:c,rootRelativePath:u}}var pt=require("node:child_process"),Ro=M(require("node:path"));var Xu=/^[A-Za-z0-9_](?:[A-Za-z0-9_-]*[A-Za-z0-9_])?\/[A-Za-z0-9._-]+$/;function nn(e){let t=e.trim().match(/^(?:git@github\.com:|https:\/\/github\.com\/|ssh:\/\/git@github\.com\/)([^/]+)\/([^/]+?)(?:\.git)?\/?$/);if(!t)return null;let[,n,o]=t;return!n||!o?null:`${n}/${o}`}function on(e){return Xu.test(e)}function qi(){try{return(0,pt.execFileSync)("gh",["api","user","--jq",".login"],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()||null}catch{return null}}function dt(e,t,n){return(0,pt.execFileSync)(e,t,{cwd:n,encoding:"utf-8",stdio:["ignore","pipe","pipe"]}).trim()}function _u(e,t){if(!on(e))return`gh repo create ${e} --private --source=. --remote=origin --push`;try{let n=dt("git",["remote","get-url","origin"],t);if(nn(n)?.toLowerCase()===e.toLowerCase())return"git push --set-upstream origin HEAD"}catch{}return`gh repo create ${e} --private --source=. --remote=origin --push`}function $u(e,t){if(!on(e))return{published:!1,reason:`Invalid GitHub repository "${e}". Expected OWNER/REPO.`};try{let n=dt("git",["rev-parse","--show-toplevel"],t);if(Ro.default.resolve(n)!==Ro.default.resolve(t))return{published:!1,reason:`Refusing to publish because ${t} is inside the existing Git repository at ${n}.`};let o=null;try{o=dt("git",["remote","get-url","origin"],t)}catch{}return o!==null&&nn(o)?.toLowerCase()!==e.toLowerCase()?{published:!1,reason:`Refusing to replace the existing origin remote (${o}).`}:(dt("gh",["--version"],t),dt("gh",["auth","status","--hostname","github.com"],t),o===null?(0,pt.execFileSync)("gh",["repo","create",e,"--private","--source=.","--remote=origin","--push"],{cwd:t,stdio:"inherit"}):(0,pt.execFileSync)("git",["push","--set-upstream","origin","HEAD"],{cwd:t,stdio:"inherit"}),{published:!0})}catch(n){return{published:!1,reason:n instanceof Error?n.message:String(n)}}}function Ki(e){let t=$u(e.repository,e.targetPath);return console.log(),t.published?(console.log(P(`Published private GitHub repository ${e.repository} and set it as origin.`)),t):(console.error(W(`Could not publish ${e.repository}: ${t.reason}`)),console.log(w("Your local repository is still available. Retry with:")),console.log(w(` ${_u(e.repository,e.targetPath)}`)),t)}var jo=require("node:child_process");var ec=5e3;async function tc(e,t){let n=new AbortController,o=setTimeout(()=>n.abort(),ec);try{return await fetch(e,{headers:t,signal:n.signal})}finally{clearTimeout(o)}}async function Yi(e,t){let n=Zt(e);if(!n)return{apiKeyValid:null,apiKeyStatus:null,error:`"${e}" is not a recognized Datadog site; skipping validation.`};try{let o=await tc(`https://api.${n.site}/api/v1/validate`,{"DD-API-KEY":t}),r=o.status,i=r===200;return await o.body?.cancel().catch(()=>{}),{apiKeyValid:i,apiKeyStatus:r}}catch(o){return{apiKeyValid:null,apiKeyStatus:null,error:o instanceof Error?o.message:String(o)}}}var Ee="DATADOG_API_KEY",Pe="DATADOG_APP_KEY";function Wi(e){try{let t=(0,jo.execFileSync)("git",["remote","get-url","origin"],{cwd:e,encoding:"utf-8",stdio:["ignore","pipe","ignore"]});return nn(t)}catch{return null}}function Qi(e,t,n){(0,jo.execFileSync)("gh",["secret","set",e,"--repo",n.repository],{cwd:n.targetPath,input:t,stdio:["pipe","inherit","inherit"]})}function No(e){console.log(w("You can set them later \u2014 the deploy workflow needs both:")),console.log(w(` gh secret set ${Ee} --repo ${e}`)),console.log(w(` gh secret set ${Pe} --repo ${e}`)),console.log(w("Or add them under Settings \u2192 Secrets and variables \u2192 Actions in the repository."))}async function nc(e,t){console.log(w(`Checking the API key against ${e}...`));let{apiKeyValid:n,apiKeyStatus:o,error:r}=await Yi(e,t);if(r){console.log(w(`Could not verify the key right now (${r}) \u2014 continuing anyway.`));return}if(n){console.log(st(`\u2713 ${Ee} authenticates against ${e}.`));return}console.log(W(`\u26A0 ${Ee} did not validate against ${e} (HTTP ${o}) \u2014 double-check the value and that --site matches the org/site it was created in.`)),console.log(w(`Setting the secrets anyway \u2014 ${Pe} can't be pre-checked, and a scope problem on either key can still only surface at upload time.`))}async function Mo(e){if(!e.skipConfirm&&!await le({message:`Set the Datadog deploy secrets (${Ee} / ${Pe}) on ${e.repository} now?`,default:!1}))return No(e.repository),!1;console.log(w("Create these in Organization Settings, from the same Datadog site the app deploys to:")),console.log(w(` ${Pe}: a service-account-owned Application Key with the Actions API Access + Apps scopes`)),console.log(w(` ${Ee}: an organization API Key`));let t=await Wt({message:`Datadog API key (${Ee}):`,mask:!0}),n=await Wt({message:`Datadog application key (${Pe}):`,mask:!0}),o=t.trim(),r=n.trim();if(!o||!r)return console.log(W("Both keys are required; skipping secret setup.")),No(e.repository),!1;let i=e.site??en(e.targetPath)??be;await nc(i,o);try{return Qi(Ee,o,e),Qi(Pe,r,e),console.log(P(`Set ${Ee} and ${Pe} on ${e.repository}.`)),!0}catch(a){return console.error(W(`Could not set secrets: ${a instanceof Error?a.message:String(a)}`)),No(e.repository),!1}}var Wo=M(require("node:fs/promises")),Vo=M(require("node:path"));var rn={};C(rn,{contents:()=>rc,filepath:()=>oc});var oc="./src/App.tsx",rc=e=>`import { useQuery } from '@tanstack/react-query';
|
|
118
118
|
import { Button } from '@datadog/druids/form/Button';
|
|
119
119
|
import { Grid } from '@datadog/druids/layout/Grid';
|
|
120
120
|
import { GridItem } from '@datadog/druids/layout/GridItem';
|
|
@@ -168,7 +168,7 @@ function App() {
|
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
export default App;
|
|
171
|
-
`;var
|
|
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
|
|
285
|
+
`;var an={};C(an,{contents:()=>uc,filepath:()=>ac});var ac="./docs/agents/build-upload-auth.md",uc=e=>'# Build, Auth, And Upload\n\nThis scaffold uses npm. Prefer the scripts in `package.json` over ad hoc commands.\n\n## Scripts\n\n- `npm run dev` \u2014 start the dev server through `datadog-apps`, which resolves Datadog credentials for it.\n- `npm run build` \u2014 local production build. Does not upload anything.\n- `npm run upload` \u2014 build, upload, and publish the app live.\n- `npm run cli` \u2014 open the `datadog-apps` command menu (a plain command listing in non-interactive contexts).\n- `npm run typecheck` \u2014 TypeScript check without emitting files. Use this for credential-free validation.\n- `npm run lint` / `npm run lint:fix` \u2014 run ESLint.\n\n## App identity (do not change)\n\n- `id` in `datadog-app.config.json` is this app\'s permanent identity. It was generated once when the project was scaffolded.\n- Every upload updates the app that matches this identifier. **Never change it** \u2014 changing it makes the next upload create a brand-new duplicate app instead of updating the existing one.\n\n## Auth\n\nApps use **OAuth by default**. On first `npm run dev`, the `datadog-apps` CLI opens a browser window for Datadog login and stores the token on this machine in `credentials.json` \u2014 under `$DD_APPS_CONFIG_DIR` or `$DATADOG_APPS_CONFIG_DIR` if set, else `$XDG_CONFIG_HOME/datadog-apps` (when absolute), else `~/.config/datadog-apps`. Treat that file as a secret; `npx datadog-apps auth logout` revokes and clears it. No credentials needed in advance.\n\n**API key fallback** \u2014 use when OAuth isn\'t available (headless CI, restricted networks). The `datadog-apps` CLI reads credentials from the environment, not from `.env.local`, so export both keys before running `npm run dev`, `npm run build`, or `npm run upload`:\n\n```bash\nexport DD_API_KEY="<YOUR_API_KEY>"\nexport DD_APP_KEY="<YOUR_APPLICATION_KEY>"\n```\n\nKeys are at:\n- API keys: `https://app.datadoghq.com/organization-settings/api-keys`\n- Application keys: `https://app.datadoghq.com/organization-settings/application-keys` \u2014 the key needs **two scopes**: **Actions API Access** and **Apps**\n\nDo not ask users to paste key values into the conversation; point them at the pages above.\n\n## Non-US1 site\n\nSet `datadogSite` in `datadog-app.config.json` so local dev and uploads target the right site:\n\n```json\n{ "datadogSite": "<YOUR_DATADOG_SITE>" }\n```\n\n## Upload\n\nBuild, upload, and publish in one command:\n\n```bash\nnpm run upload\n```\n\nWith API keys (CI environments):\n\n```bash\nexport DD_API_KEY="<YOUR_API_KEY>"\nexport DD_APP_KEY="<YOUR_APPLICATION_KEY>"\nnpm run upload\n```\n\nA successful upload prints a Datadog URL for the app.\n\n**Older scaffolded projects** \u2014 if the `upload` script is missing, add it to `package.json` and install the CLI it runs:\n\n```json\n{ "scripts": { "upload": "npx datadog-apps upload" } }\n```\n\n```bash\nnpm install -D @datadog/apps-cli\n```\n\n## Troubleshooting\n\n**401 / missing authentication token / credentials not configured**\n\n- OAuth: if the browser window didn\'t open, the environment may not support it. Fall back to API keys.\n- API keys: verify `DD_API_KEY` and `DD_APP_KEY` are set and the application key has both **Actions API Access** and **Apps** scopes.\n- Check `datadogSite` in `datadog-app.config.json` matches the credentials\' Datadog site.\n\n**403 "you do not have access to this app" on upload**\n\nThe application key needs both scopes enabled \u2014 not just one:\n\n1. **Actions API Access** \u2014 required for backend function execution.\n2. **Apps** (or **App Builder**) \u2014 required for uploading and publishing.\n\nGo to `https://app.datadoghq.com/organization-settings/application-keys`, confirm both scopes, or create a new key with both.\n\n**Build succeeds but nothing goes live**\n\n- Use `npm run upload`, not `npm run build`, when the intent is to publish. `npm run build` builds locally and uploads nothing.\n- Confirm `dryRun` in `vite.config.ts` is not `true`.\n\n**Build fails with missing credentials**\n\n- `npm run build` is a local build and needs no credentials; if it fails, read the error from Vite or the Datadog Vite plugin.\n- For credential-free validation, prefer `npm run typecheck`.\n\n**Node or scaffolding errors**\n\n- Check `package.json` `engines.node` for the supported Node.js versions.\n- Use Volta, nvm, or fnm to switch versions. Prefer a current Node 22 release when debugging.\n\n**Datadog site mismatch**\n\n- Inspect `datadog-app.config.json` for the configured site and confirm CI uses the same value.\n';var un={};C(un,{contents:()=>dc,filepath:()=>cc});var cc="./docs/agents/cicd.md",dc=e=>e.workspace?"# CI/CD\n\nThis monorepo ships separate validation and deployment workflows:\n\n- `.github/workflows/validate-datadog-apps.yml` runs one job on every pull request for root installation, React dependency alignment, typechecking, linting, and production builds. Running on every pull request ensures a required validation check always reports a result.\n- `.github/workflows/deploy-datadog-apps.yml` runs only for pushes matching app or shared build paths. Its preparation job proceeds only on the repository's current default branch, validates the root lockfile and dependency alignment once, and detects directly changed apps. Shared packages, root build inputs, or a lockfile-only change select every app; a lockfile updated alongside direct app changes does not widen that app selection. Each selected app installs from the root lockfile and runs `DataDog/apps-github-action` for that app's directory with the root-installed `datadog-apps` CLI, its own `datadog-app.config.json`, and the Git commit as its version name. The Action's own install is disabled with `install-command: 'true'` because `npm ci` inside a workspace app would replace the root install. CI does not require an app-owned `upload` script.\n\nBoth workflows use `.github/scripts/validate-workspace.mjs` for dependency alignment.\n\nRe-deploying updates the existing Datadog App because each app keeps a stable identifier in `datadog-app.config.json`.\n\n## Required secrets\n\nStore `DATADOG_API_KEY` and `DATADOG_APP_KEY` as [encrypted secrets](https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions) in the repository or organization settings. The application key needs both **Actions API Access** and **Apps** scopes.\n\nFor non-US1 organizations, set `datadogSite` in each app's `datadog-app.config.json`; that file is the only place an app's site, identifier, and name live. The optional GitHub Actions variable `DD_SITE` overrides it for every app in the workspace - use it only when the whole workspace deploys elsewhere.\n":`# CI/CD
|
|
286
286
|
|
|
287
287
|
## GitHub Actions
|
|
288
288
|
|
|
@@ -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
|
|
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
|
|
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
|
|
430
|
+
`;var pn={};C(pn,{contents:()=>gc,filepath:()=>hc});var hc="./docs/agents/upgrading.md",gc=e=>'# Upgrading\n\n## Primary packages\n\n- `@datadog/vite-plugin`: Vite integration for local development, build, and deploy.\n- `@datadog/action-catalog`: typed Action Catalog client for backend functions.\n- `@datadog/apps-backend`: Datadog-provided helpers for backend function development.\n- `@datadog/apps-frontend`: Datadog-provided helpers and utils for apps, such as getting input context from the page!\n\nPreserve the existing package manager and lockfile style.\n\n## Before upgrading\n\nCheck release notes before changing versions:\n\n```bash\nnpm view @datadog/vite-plugin version repository.url homepage\nnpm view @datadog/action-catalog version repository.url homepage\nnpm view @datadog/apps-backend version repository.url homepage\nnpm view @datadog/apps-frontend version repository.url homepage\n```\n\nInspect the current app:\n\n```bash\nnpm outdated @datadog/vite-plugin @datadog/action-catalog @datadog/apps-backend @datadog/apps-frontend\nnpm ls @datadog/vite-plugin @datadog/action-catalog @datadog/apps-backend @datadog/apps-frontend\n```\n\n## Upgrade\n\n```bash\nnpm install @datadog/action-catalog@latest\nnpm install @datadog/apps-backend@latest\nnpm install @datadog/apps-frontend@latest\nnpm install -D @datadog/vite-plugin@latest\n```\n\nAfter upgrading, verify:\n\n- `datadog-app.config.json` app definition and configuration fields (`datadogSite`, `id`, `name`, `description`, `selfService`, `permissions`, `tags`) and `vite.config.ts` Datadog plugin config.\n- `package.json` scripts \u2014 check for the `dev`, `build`, and `upload` scripts that run the `datadog-apps` CLI, and for `@datadog/apps-cli` in `devDependencies`.\n- Backend function imports from `@datadog/action-catalog/...`.\n- Frontend embedding and input imports from `@datadog/apps-frontend/...`.\n- Project-local instructions in `AGENTS.md`.\n\n## Compare against a fresh scaffold\n\nTo pull in changes from the latest scaffolder without guessing:\n\n```bash\ntmp_dir="$(mktemp -d)"\nnpm create @datadog/apps@latest -- "$tmp_dir/base-app" --template vite-react -y --skip-post-scaffold\ndiff -ru "$tmp_dir/base-app/package.json" package.json\ndiff -ru "$tmp_dir/base-app/datadog-app.config.json" datadog-app.config.json\ndiff -ru "$tmp_dir/base-app/vite.config.ts" vite.config.ts\ndiff -ru "$tmp_dir/base-app/src" src\n```\n\nPort only the specific changes needed. Do not replace the app wholesale.\n\n**Preserve your existing `id`** \u2014 the fresh scaffold generates a new random `id` in `datadog-app.config.json`. Do not copy it into your project; keep your existing `id` to avoid creating a duplicate app on the next upload.\n\n## Verify\n\n```bash\nnpm run typecheck\nnpm run lint\nnpm run build\n```\n';var ln={};C(ln,{contents:()=>Ac,filepath:()=>mc});var mc="./docs/agents/workflow-automation.md",Ac=e=>`# Workflow Automation
|
|
431
431
|
|
|
432
432
|
Use this when a backend function needs to trigger a Datadog Workflow Automation workflow and poll for the result.
|
|
433
433
|
|
|
@@ -577,7 +577,36 @@ 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
|
|
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
|
+
- Each upload adds the \`tags\` in \`datadog-app.config.json\` to the app, plus \`surface:<surface id>\` tags the build adds for embedding inputs the app uses. Uploads never remove tags: removing one from the config leaves it on the app until someone removes it in the App Builder UI. Add a \`surface:\` tag yourself (for example \`surface:datadog.dashboard\`) when the app is meant for a surface whose inputs it doesn't read.
|
|
607
|
+
- Prefer the generated npm scripts; this workspace uses npm.
|
|
608
|
+
- For any workspace, dependency, lockfile, or pull-request change, follow \`Required lockfile gate before opening or updating a PR\` in ${t}/AGENTS.md. That root section is the source of truth; do not create an app-local lockfile.
|
|
609
|
+
`}return`# ${e.name}
|
|
581
610
|
|
|
582
611
|
This is a Datadog App scaffolded with \`npm create @datadog/apps\`.
|
|
583
612
|
|
|
@@ -599,6 +628,8 @@ This app uses the published \`@datadog/druids\` package. In scaffolded apps, imp
|
|
|
599
628
|
- The scaffold wraps the app in \`DatadogAppProvider\` from \`@datadog/apps-frontend/embedding/react\` at the React root. Keep that setup in place if you restructure the root; every \`@datadog/apps-frontend\` hook must be called below it.
|
|
600
629
|
- Read host-provided inputs with \`useDatadogAppInput\` from \`@datadog/apps-frontend/inputs/react\`, passing input schemas such as \`datadogTheme\` from \`@datadog/apps-frontend/inputs/schema\`. For details, read \`docs/agents/runtime-context.md\`.
|
|
601
630
|
|
|
631
|
+
- The DatadogAppProvider syncs all of your url parameters (\`?<param>=<value>\`) and all fragment identifier / anchor (\`#<value>\`) into the datadog url. Use these to allow for deep-linking of your apps at any state where its correct and best practice to do so.
|
|
632
|
+
|
|
602
633
|
## Read relevant guides
|
|
603
634
|
|
|
604
635
|
- For embedded Datadog app context, routing, navigation, browser storage, or parent-page constraints, read \`docs/agents/runtime-context.md\`.
|
|
@@ -614,6 +645,7 @@ This app uses the published \`@datadog/druids\` package. In scaffolded apps, imp
|
|
|
614
645
|
- Route every external network request through a backend function that calls the generic HTTP action from \`@datadog/action-catalog/http/http\`. Never call \`fetch\` or use Node.js networking APIs to contact external services directly, including from a backend function.
|
|
615
646
|
- Do not hardcode API keys, app keys, OAuth tokens, passwords, or third-party credentials.
|
|
616
647
|
- Set the \`name\` and \`description\` fields in \`datadog-app.config.json\` to concise, user-facing values that describe the app.
|
|
648
|
+
- Each upload adds the \`tags\` in \`datadog-app.config.json\` to the app, plus \`surface:<surface id>\` tags the build adds for embedding inputs the app uses. Uploads never remove tags: removing one from the config leaves it on the app until someone removes it in the App Builder UI. Add a \`surface:\` tag yourself (for example \`surface:datadog.dashboard\`) when the app is meant for a surface whose inputs it doesn't read.
|
|
617
649
|
- Prefer the generated npm scripts in \`package.json\`; this scaffold uses npm.
|
|
618
650
|
- Never change \`id\` in \`datadog-app.config.json\`. It is this app's permanent identity, not the app's UUID from App Builder \u2014 changing it makes the next upload create a duplicate app.
|
|
619
651
|
- Before inventing package imports or component props, inspect installed package exports and TypeScript definitions.
|
|
@@ -626,9 +658,9 @@ This app uses the published \`@datadog/druids\` package. In scaffolded apps, imp
|
|
|
626
658
|
- Use Datadog MCP tools when available for Datadog-specific lookup, diagnostics, or API-backed workflows.
|
|
627
659
|
|
|
628
660
|
Primary docs: https://docs.datadoghq.com/actions/datadog_apps/
|
|
629
|
-
|
|
630
|
-
`;var
|
|
631
|
-
`};var
|
|
661
|
+
`};var lt={};C(lt,{contents:()=>Ec,filepath:()=>bc});var bc="./CLAUDE.md",Ec=e=>`@AGENTS.md
|
|
662
|
+
`;var Dn={};C(Dn,{contents:()=>vc,filepath:()=>wc});var Vi=require("node:crypto"),wc="./datadog-app.config.json",Cc=/^([0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/,vc=e=>{let t=e.identifier?.trim();if(t&&!Cc.test(t))throw new Error(`Invalid --identifier "${e.identifier}": must be a lowercase 32-character hex string or a lowercase UUID.`);let n=t||(0,Vi.randomUUID)(),o={$schema:"https://unpkg.com/@datadog/create-apps/dist/datadog-app.config.schema.json",datadogSite:e.datadogSite,id:n,name:e.name,tags:[]};return`${JSON.stringify(o,null,2)}
|
|
663
|
+
`};var hn={};C(hn,{contents:()=>xc,filepath:()=>kc});var kc="./eslint.config.mjs",xc=e=>`import js from '@eslint/js';
|
|
632
664
|
import { defineConfig, globalIgnores } from 'eslint/config';
|
|
633
665
|
import reactHooks from 'eslint-plugin-react-hooks';
|
|
634
666
|
import reactRefresh from 'eslint-plugin-react-refresh';
|
|
@@ -651,7 +683,7 @@ export default defineConfig([
|
|
|
651
683
|
},
|
|
652
684
|
},
|
|
653
685
|
]);
|
|
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
|
|
686
|
+
`;var gn={};C(gn,{contents:()=>Sc,filepath:()=>Bc});var Bc="./public/favicon.ico",Sc=e=>Buffer.from("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o0l2/6RLeP+mT3v/8uXr///////9/P3///////jx9f+tXIX/oUVz/6VMeP+fQXD/mjdp/5k1Z/+cOmv/oEJx/6RKd/+nUHz/qFN+/6hSff+nT3v/pUx4/6NIdv+iRnT/okZ0/6NIdf+kSnf/pEp3/6RKd/+kSnf/pEt4/6JHdf+oUn3/mjdo/82btP//////+PL1///////48vX//////8qWsP+eP2//pUx5/9m0x//kydb/0KG5/8KGpP+xZIv/pUx4/507bP+ZNWf/mjdo/54+bv+iRnT/pk56/6hSff+pU37/pk56/6RKd/+kSnf/pEp3/6RLd/+jSHX/pk56/54+bv+9fJ3//fz9//38/P////////////z5+///////0KK5/5o3aP+qVoD/6dTf/8mVr//Uqr//5MnW/+vY4f/s2uP/5s7a/9q1x//KlrD/uXWX/6pXgf+gQnH/mjdp/5k1Z/+fP2//pEp3/6RKd/+kSnf/o0h2/6ZOev+gQXD/uneZ///////9+/z///////79/f///////Pr7///////BhaP/o0h1/7Fkiv/w4un/okd1/5cxZP+cOWv/oUNy/61chP+9fZ3/z5+3/96+zv/p1N//7t3l/+vY4f/hxNL/06e9/7p2mP+kSnf/pEp3/6RLeP+iR3X/p1B8/5w7bP/WrsL///////v4+f////////////37/P//////8ubs/7VskP/37/P/vX2d///////evs7/okZ0/6xag/+mT3v/pEt3/508bf+ZNWf/mjZo/58/b/+oU37/uHKV/8WNqf/dvc3/8OHo/6VLeP+kS3f/pEt3/6NHdf+nT3v/nj1u/8SLp///////+/b4////////////+/f5///////DiKX/1q3C//v4+v+/gaD///////7+/v+8epv/mTVn/6BBcP+dPG3/pk96/6lUfv+oU33/p1B8/6FEcv+gQnH/li9j/6dQfP/lzNj/okVz/6VNef+kSnf/pEp3/6RJdv+lS3j/o0h2/+jS3f///////Pn6//7+/v//////2LLF/8SKp///////5s7a/8iRrP///////fz8//Pn7P+yZoz/woak/+HD0v+zaI3/nj5u/6NJdv+hRHL/pk56/6pWgP+hRXP/vXyd/+XM2f+ePm7/p097/6RKd/+kSnf/pEl2/6RLeP+jSHX/pk16/+jR3P//////7dzl/928zf/fv8//+vX4///////evs7/zZy0///////69vj///////79/f/9+/z//////+bO2v+gQ3H/p1F8/6ZPev+cO2z/pEp3/5s4af+/f5//4cPS/5s5av+oUX3/pEp3/6RKd/+kSnf/o0l2/6RLeP+jSXb/oEJx/928zf///////Pn6///////48fT//////9Sqv//WrsL///////v2+f///////v3+//79/f/58/b//////8OIpv+cOmv/nj5u/8KGpP++fZ3/lS1h/8yZsv/bt8n/mjZo/6hTfv+kSnf/pEp3/6RKd/+kS3f/o0l2/6RKd/+mTnr/nTxs/969zf//////+/j6//v4+v//////yZSv/927zP//////+vT3//37/P/7+Pn///////79/v//////8+ft/7Bjif/atsn//////+fP2/+VLGH/06i+/9Sqv/+aNmj/qVN+/6RKd/+kSnf/pEp3/6RKd/+kS3j/o0h2/6RKd/+kS3j/pEt3//Tq7///////+/f5///////Hj6v/7Nni///////8+fv////////////9+/z//Pn6//7+/v/9/Pz//Pn7///////69vj//////6xbhP/Uq8D/0KK5/5k0Zv+pU37/pEp3/6RKd/+kSnf/pEp3/6RKd/+kS3j/okd1/6ZOev+eP27/37/P///////69fj//////7Rqj//dvMz///////Pn7f/cusz/3LrL//nz9v////////7///79/f/79vj/+/f5//n09///////1q7C/9u3yf/Jla//mjVn/6hTff+kSnf/pEp3/6RKd/+kSnf/pEp3/6RLd/+jR3X/pk96/59AcP/nz9v///////37/P///v7/4sbU/82btP+oU37/qlaA/7Bjiv+tXIT/qFJ9/+fQ3P/9+/z//fv8/////////////v39///////27PH/8+ju/7t4mv+ePm7/pk97/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0h2/6ZOev+hRXP/rFqD//r19////////v7+///////48fX/zJu0/9Onvf/37/P///7+///////nz9v/p1F8/7l0lv/Mm7T/ypaw/9u4yv/r1+H/+PH1//79/v//////s2iN/6BDcf+lTXn/pEp3/6RKd/+kSnf/pEp3/6NJdv+lS3j/oURz/6tZgv/u3ub///////78/f//////+PH0/9Sqv//w4un///////79/f/9/Pz/+/f5///////z5+3/69jh///////Jk67/lzBk/6NJdv+nUXz/tGuP/8KGpP+pVH//o0d1/6VLeP+kSnf/pEp3/6RKd/+jSXb/pUx5/6FEc/+zaY7/8+ft///+/v/+/v7////////////79/n//Pr7///////7+Pn//vz9///////+/f7///////Hj6v/dvM3///////Hj6v+mT3v/pk96/6JHdf+gQnH/nj5u/6NIdf+kSnf/pEp3/6RKd/+kSnf/pEt4/6JHdf+nUHz/nDxs/8yas///////+/f5///////+/v7////////////9/P3//vz9/////////////fv8///////Vq8D/mjdp/5QrYP/WrsL/+/f5/6VMeP+jSXb/pEt3/6VNef+nT3v/pEt4/6RKd/+kSnf/pEp3/6RKd/+kS3f/o0h1/6ZPe/+ePm7/3r7O///////8+fr///////7+/v///////vz9//z6+//9/Pz//vz9///////9/P3//////+HD0v/ChaT/sGGJ/8iSrf/16/D/okZ0/6ZNef+jSHb/o0h2/6NHdf+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0l2/6VMeP/y5ev///////38/P/+/f7////////////////////////////+/v7//////////////////v7+///////79/n//////82ctP+dPW3/p1B7/6NHdf+kS3f/pEt3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6NJdv+lTXn/pEp3/9u4yf/du8z/8eTr///////+/P3///////ny9f/Qobj/5cvY//v3+f///////v7+///////8+fv/+fT3///////n0Nv/okV0/6VMeP+jSXb/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RLd/+jSHX/pk56/58/b/+wY4r/1azB/75/n/+dPGz/3r7O////////////27jK/5YuYv+ePW7/y5iy///////8+fr////////////8+fr//Pn6/7JmjP+gQ3H/pk56/6NIdv+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kS3f/o0h1/6ZPev+fP2//v4Cg///+/v/79vn//////82btP+yZ43///////7+/v/y5uz/s2iN/5o3af/WrcL///////z6+////////fz9/7JmjP++f57/sWWL/54+bv+mTnr/o0l2/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6NIdv+mTnr/n0Fw/7Vskf/+/P3//v7+//nz9v//////7t7m/8KFo////////Pn6///////48vX/5s3Z//jx9f///////Pn6///////n0Nz/nTxs/9KlvP+nUHv/pk56/6RLeP+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0h2/6ZNev+gQ3L/58/b///////9+/z//vz9///////q1uD/0KO6///////8+fr///////38/f///////fz9//7+/v/+/f7///////ny9v/+/v7/yZSu/5s5av+gQ3L/o0h1/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+jSXb/pUx4/6NIdv/t2+T////////////8+fr//////+HD0v/jx9X///////r1+P///////v7+//79/f/+/v7////////////9/Pz//////9m0x/+ZNGf/sGKJ/8OIpf+iR3T/pUx4/6RJdv+kSnf/pEp3/6RKd/+kSnf/pEp3/6NHdf+nUHv/nT1t/9Gkuv//////+vb4///+////////3bzN//fw9P///////v39//38/f/9+/z//v39//z5+//8+Pn//fz8//78/f/o0dz/yZOu/6pWgP/69ff/7Nnj/6FDcv+mTnr/o0h2/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6NJdv+lTHj/pk56/+bO2v///////fz9//jx9P/s2uP/9u3x/9Wswf/v3+f///////7+/v////////////79/v//////9ezw///////PoLj/3LrL///////Gjqr/nj9v/6dPe/+jR3X/pEt4/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0l2/6VMeP+gQ3L/r2CH/+nT3v/9/P3//////+fR3P+mT3r/nTxs/6FEcv/Dh6X/7dzl/+LG1P/Uqr//y5ix/+nU3////////fz8/8mUr///////8OLp/6ZOev+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEl2/6VMeP+iR3X/n0Fw/7dvk//LmLH/qFN+/6FEc/+oU37/pEp3/59Ab/+kS3j/oUVz/508bf+dPG3/n0Bw/+nT3v/9/P3/5s3a//38/f+xZYv/oENy/6VNef+jSHb/pEt3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0l2/6RLeP+mTnr/oEJx/5w6a/+jSXb/pUx4/6JGdP+kSnf/pk56/6RLeP+mTXn/pk56/6hTfv+iRnT/q1mC/+TJ1v/lzNn/smWL/59AcP+mTnr/o0h1/6RLd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/o0l2/6NIdv+mTXn/p1F8/6RKd/+jSXb/pEt4/6RKd/+jSHX/o0l2/6NIdv+iSHX/oUZ0/6RLeP+iR3T/n0Jw/6BCcf+hRHL/pk16/6NIdv+kS3f/pEp3/6RKd/+kSnf/pEp3/6RKd/+kSnf/pEp3/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAEAAAACAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo0h1/aZOev2ePm79tWyQ/fv4+f39/P39uniZ/aJHdf21bZH9qFR+/aFGdP2eP279nTxs/Z09bf2gQ3L9pEt3/aRKd/2jSXb9qFJ9/e7f5v38+vv9/////ceRrP2wY4n91q3B/cWNqf3Qo7r9x5Gs/cGEov24dJb9rV2F/aNIdv2nUHz9nDpr/dGjuv3////9+vb4/f79/v3Kl7H93LvL/dGlu/2TKl/9oUVz/axag/27eJr9v4Gg/dSrwP21bZH9pUx4/aFEcv2zaY79+fP2/fz6+/3hxtT96dTf/eLH1P3+/f39y5my/c6ft/2iR3X9nDts/ZEmXP28e5z9t3CT/aNIdv2lTXn9n0Bv/bRrkP3v4ej9/Pv7/fPp7v3evs79/////fn09v3////9xIqn/bNojv27eZr9wIOh/bRqj/2kS3f9okd1/adRfP2cPGz9unaY/f////3p1N7948nW/f////3x5ev9/////fXt8f3+/f7959Hc/cKIpf2vYYj9pEp3/aNIdv2kTHj9oERy/axbhP3////99/Dz/cuZsv3Mm7T9zJqz/dewxP3v4Of9+vb4/f////3n0dz9pEp3/aRKd/2jSXb9pEt3/aNIdf3hw9L9/////fbu8v3u3ub9+/j6/f////3nz9v959Db/bRqj/26eJn9woek/aJHdf2iR3X9pk97/Zw7bP3Qo7n9/////fr2+P3////9/v7+/fz7/P3+//79t3GU/dq2yP2+f579lS5i/aFEc/2jSHX9okd0/adRfP2dPW392bTG/f////38+vv9/f39/fz6+/3////9/fz8/fLm7P3kytf9qliB/aRLeP2nUHv9o0l2/aVMeP2hRHP9p1J9/du5yv3Gjqr9/////d28zP2pVX/9/v39/fz6+/327vL9xY2p/Z0+bv2kS3j9oUVz/aRLd/2kSnf9pk56/eXM2f3////93LrL/enV3/38+vv93LvM/f38/P3+/f39y5my/aVMeP2gQ3L9pUx4/aNJdv2kSnf9oEJx/bNojf39/P39+/n6/evZ4v369ff9/////f////38+vv9/////dexxP22cJP9sWSK/Z9BcP2lTXn9o0l2/aVNef2gQ3L92rfJ/f////3t3OX92LLF/fHk6v37+Pn99/Dz/f7+/v3Uq8D97+Ho/a1chP2hRXP9pUx4/aNJdv2kSnf9pEp3/aJHdP3FjKj9uXSW/ZcyZP2pVX/9tGqP/aVOev3buMr9+fT2/b19nf2ePm79pk96/aJHdf2kS3f9pEp3/aRKd/2kS3f9nDxs/Z9CcP2oUnz9okd1/aFEcv2gQ3L9pEt4/a1dhf2fQnD9pk56/aNIdv2kSnf9pEp3/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","base64");var mn={};C(mn,{contents:()=>Oc,filepath:()=>Pc});var Pc="./src/getGreeting.backend.ts",Oc=e=>"export async function getGreeting(name: string) {\n return `Hello, ${name}! This greeting ran as a backend function.`;\n}\n";var An={};C(An,{contents:()=>Ic,filepath:()=>Tc});var Tc="./.gitignore",Ic=e=>`logs
|
|
655
687
|
*.log
|
|
656
688
|
npm-debug.log*
|
|
657
689
|
yarn-debug.log*
|
|
@@ -679,7 +711,8 @@ dist-ssr
|
|
|
679
711
|
.env
|
|
680
712
|
.env.local
|
|
681
713
|
.env.*.local
|
|
682
|
-
|
|
714
|
+
datadog-app.local.json
|
|
715
|
+
`;var yn={};C(yn,{contents:()=>Nc,filepath:()=>Rc});var Rc="./index.html",Nc=e=>`<!DOCTYPE html>
|
|
683
716
|
<html lang="en">
|
|
684
717
|
|
|
685
718
|
<head>
|
|
@@ -694,7 +727,7 @@ dist-ssr
|
|
|
694
727
|
</body>
|
|
695
728
|
|
|
696
729
|
</html>
|
|
697
|
-
`;var
|
|
730
|
+
`;var Fn={};C(Fn,{contents:()=>Mc,filepath:()=>jc});var jc="./src/main.tsx",Mc=e=>`import '@datadog/druids/styles.css';
|
|
698
731
|
|
|
699
732
|
import { DruidsEnvironmentWithThemeInput } from '@datadog/apps-frontend/druids/react';
|
|
700
733
|
import { DatadogAppProvider } from '@datadog/apps-frontend/embedding/react';
|
|
@@ -724,7 +757,7 @@ if (appRoot) {
|
|
|
724
757
|
} else {
|
|
725
758
|
console.error('Missing #app div for createRoot.');
|
|
726
759
|
}
|
|
727
|
-
`;var
|
|
760
|
+
`;var bn={};C(bn,{contents:()=>Gc,filepath:()=>Lc});var Lc="./package.json",Gc=e=>{if(e.workspace){let n={name:e.directoryName,version:"0.0.1",private:!0,scripts:{dev:"npx datadog-apps dev","dev:verify":"npx datadog-apps dev --mode dev-verify",build:"npx datadog-apps build",upload:"npx datadog-apps upload",cli:"npx datadog-apps",lint:"eslint . --report-unused-disable-directives --max-warnings 0","lint:fix":"eslint . --fix",preview:"vite preview",typecheck:"tsc --noEmit"},dependencies:{"@datadog/action-catalog":"^0.0.7","@datadog/apps-backend":">=0.0.1 <0.1.0","@datadog/apps-frontend":">=0.0.7 <0.1.0","@datadog/druids":"^0.0.7","@tanstack/react-query":"^5.101.4",react:"^19.2.8","react-dom":"^19.2.8"},optionalDependencies:{"@napi-rs/keyring":"^1.3.0"}};return JSON.stringify(n,null,2)}let t={name:e.directoryName,version:"0.0.1",private:!0,engines:{node:"^20.19.0 || >=22.13.0"},scripts:{dev:"npx datadog-apps dev","dev:verify":"npx datadog-apps dev --mode dev-verify",build:"npx datadog-apps build",upload:"npx datadog-apps upload",cli:"npx datadog-apps",lint:"eslint . --report-unused-disable-directives --max-warnings 0","lint:fix":"eslint . --fix",preview:"vite preview",typecheck:"tsc --noEmit"},dependencies:{"@datadog/action-catalog":"^0.0.7","@datadog/apps-backend":">=0.0.1 <0.1.0","@datadog/apps-frontend":">=0.0.7 <0.1.0","@datadog/druids":"^0.0.7","@tanstack/react-query":"^5.101.4",react:"^19.2.8","react-dom":"^19.2.8"},optionalDependencies:{"@napi-rs/keyring":"^1.3.0"},devDependencies:{"@datadog/apps-cli":">=0.0.2 <0.1.0","@datadog/vite-plugin":"^3.3.1","@eslint/js":"^9.39.5","@types/node":"^24.12.2","@types/react":"^19.2.18","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.1.0",eslint:"^9.39.5","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.4",globals:"^17.11.0",typescript:"^5.9.3","typescript-eslint":"^8.67.0",vite:"^8.2.2"}};return JSON.stringify(t,null,2)};var En={};C(En,{contents:()=>Uc,filepath:()=>Hc});var Hc="./tsconfig.json",Uc=e=>e.workspace?JSON.stringify({extends:`${e.workspace.rootRelativePath}/tsconfig.base.json`,include:["src"]},null,2):JSON.stringify({compilerOptions:{target:"ES2020",useDefineForClassFields:!0,lib:["ES2020","DOM","DOM.Iterable"],module:"ESNext",skipLibCheck:!0,moduleResolution:"bundler",allowImportingTsExtensions:!0,resolveJsonModule:!0,isolatedModules:!0,noEmit:!0,jsx:"react-jsx",strict:!0,noUnusedLocals:!0,noUnusedParameters:!0,noFallthroughCasesInSwitch:!0},include:["src"]},null,2);var wn={};C(wn,{contents:()=>qc,filepath:()=>zc});var zc="./vite.config.ts",qc=e=>{let t="";return(e.rumConfig?.applicationId||e.rumConfig?.clientToken)&&(t=`
|
|
728
761
|
rum: {
|
|
729
762
|
enable: true,
|
|
730
763
|
sdk: {
|
|
@@ -754,7 +787,7 @@ export default defineConfig({
|
|
|
754
787
|
datadogVitePlugin({
|
|
755
788
|
logLevel: 'debug',
|
|
756
789
|
auth: {
|
|
757
|
-
site: datadogAppConfig.datadogSite,
|
|
790
|
+
site: process.env.DD_SITE || datadogAppConfig.datadogSite,
|
|
758
791
|
apiKey: process.env.DD_API_KEY,
|
|
759
792
|
appKey: process.env.DD_APP_KEY,
|
|
760
793
|
},
|
|
@@ -764,6 +797,8 @@ export default defineConfig({
|
|
|
764
797
|
// and do NOT set it to the app's UUID from App Builder.
|
|
765
798
|
identifier: datadogAppConfig.id,
|
|
766
799
|
name: datadogAppConfig.name,
|
|
800
|
+
// Optional in datadog-app.config.json, so read it without assuming the key exists.
|
|
801
|
+
tags: (datadogAppConfig as { tags?: string[] }).tags,
|
|
767
802
|
authOverrides: {
|
|
768
803
|
method: hasDatadogApiKeys ? 'apiKey' : 'oauth',
|
|
769
804
|
},
|
|
@@ -785,7 +820,378 @@ export default defineConfig({
|
|
|
785
820
|
}),
|
|
786
821
|
],
|
|
787
822
|
});
|
|
788
|
-
`};var
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
823
|
+
`};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=>`/**
|
|
824
|
+
* ${e.name} \u2014 shared library for this Datadog Apps workspace.
|
|
825
|
+
*
|
|
826
|
+
* Everything exported here is importable from apps via the package name
|
|
827
|
+
* (see this package's package.json "name"). No build step is needed \u2014 the
|
|
828
|
+
* consuming app's bundler compiles this source directly.
|
|
829
|
+
*/
|
|
830
|
+
export const greet = (name: string): string => \`Hello, \${name}!\`;
|
|
831
|
+
`;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
|
|
832
|
+
|
|
833
|
+
This is a Datadog Apps npm workspace. It can hold multiple apps, each independently developed, built, and uploaded.
|
|
834
|
+
|
|
835
|
+
Before editing, read this root \`AGENTS.md\` and every nested \`AGENTS.md\` that applies to the files you will touch.
|
|
836
|
+
|
|
837
|
+
## Layout
|
|
838
|
+
|
|
839
|
+
- \`${t}/<name>/\` \u2014 each Datadog App lives in its own directory here.
|
|
840
|
+
- \`packages/*\` \u2014 optional shared libraries, depended on from apps via the \`"*"\` version range (npm workspaces links them locally). Create them with \`npm create @datadog/apps@latest -- --package <name>\`.
|
|
841
|
+
- Shared config (root \`package.json\`, \`tsconfig.base.json\`) and \`docs/agents/\` live at the workspace root.
|
|
842
|
+
|
|
843
|
+
## Working with apps
|
|
844
|
+
|
|
845
|
+
- Run an app locally: \`npm run dev -w ${t}/<name>\` (from the workspace root), or \`npm run dev\` from inside the app directory.
|
|
846
|
+
- Build one app: \`npm run build -w ${t}/<name>\`.
|
|
847
|
+
- Upload one app: \`npm run upload -w ${t}/<name>\`.
|
|
848
|
+
- Build, typecheck, or lint the whole workspace from the root: \`npm run build\`, \`npm run typecheck\`, \`npm run lint\`.
|
|
849
|
+
- Each app owns its unique identifier in \`${t}/<name>/datadog-app.config.json\` \u2014 never share or copy it between apps.
|
|
850
|
+
|
|
851
|
+
## Shipping changes
|
|
852
|
+
|
|
853
|
+
Changes reach users by merge, not by manual upload: open a pull request and pass the single validation job in \`.github/workflows/validate-datadog-apps.yml\`. After merge into the default branch, \`.github/workflows/deploy-datadog-apps.yml\` uploads directly changed \`${t}/<name>\` apps or every app when shared code or root build inputs change. The app updates live in App Builder \u2014 that's where the change should be verified, not just locally.
|
|
854
|
+
|
|
855
|
+
The generated matrix installs from the root lockfile and runs \`DataDog/apps-github-action\` for each selected app directory with the root-installed \`datadog-apps\` CLI, authenticated with \`DATADOG_API_KEY\` and \`DATADOG_APP_KEY\` repository secrets. It does not depend on app-owned npm scripts. See \`docs/agents/cicd.md\` for the full workflow behavior.
|
|
856
|
+
|
|
857
|
+
## Testing
|
|
858
|
+
|
|
859
|
+
- Storybook stories are not required for apps in this workspace right now \u2014 skip them unless explicitly asked.
|
|
860
|
+
- Playwright is still encouraged for browser validation when available, especially for visual/design changes.
|
|
861
|
+
- 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.
|
|
862
|
+
|
|
863
|
+
## Adding another app
|
|
864
|
+
|
|
865
|
+
Before scaffolding a new app, sync your branch with the repository's dynamically resolved default branch to avoid stale lockfile entries. If the detected default branch is \`master\`, run \`git fetch origin master && git merge --no-ff origin/master\`; substitute the detected branch name when it is not \`master\`. This ensures \`npm install\` runs against the current workspace state rather than a stale snapshot that may include deleted apps.
|
|
866
|
+
|
|
867
|
+
Run \`npm create @datadog/apps@latest -- <directory> --name "<display name>"\` from the workspace root. Creator versions can differ, so never assume this command installed dependencies at the root or updated the shared lockfile.
|
|
868
|
+
|
|
869
|
+
**Agent-created apps:** When a user asks the agent to add an app to this workspace, run \`npm create @datadog/apps@latest -- <directory> --name "<display name>" --template vite-react --yes\` from the workspace root.
|
|
870
|
+
|
|
871
|
+
When the request carries an app id \u2014 the app already exists in App Builder and this scaffold is its code \u2014 pass \`--identifier <app id>\` as well, using that value verbatim. Omitting it makes the CLI mint a fresh id, and the upload then creates a second, duplicate app instead of updating the one the user is looking at. Never invent an identifier, and never rewrite the \`id\` in an existing app's \`datadog-app.config.json\` to match one: an app's id is permanent, so changing it has the same duplicating effect. If a request asks you to point an existing app directory at a different id, stop and say so instead.
|
|
872
|
+
|
|
873
|
+
After the scaffold returns, the agent must run \`npm install --package-lock-only --ignore-scripts\` and then \`npm ci --ignore-scripts\` from the workspace root. Verify the new workspace records described below and include the regenerated root \`package-lock.json\` in the same pull request. Do not open, update, or mark the pull request ready while either command fails or the lockfile records are missing. The generated \`${t}/<directory>/package.json\` must also satisfy the React alignment rule in **Managing dependencies**.
|
|
874
|
+
|
|
875
|
+
This is an npm workspace when the root \`package.json\` has a \`workspaces\` field and the root contains \`package-lock.json\`. After adding, removing, or renaming a workspace, the root lockfile must contain both its \`${t}/<directory>\` or \`packages/<directory>\` package record and its \`node_modules/<package-name>\` workspace link.
|
|
876
|
+
|
|
877
|
+
### Required lockfile gate before opening or updating a PR
|
|
878
|
+
|
|
879
|
+
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.
|
|
880
|
+
|
|
881
|
+
After making all workspace changes, complete this procedure before opening or updating a pull request:
|
|
882
|
+
|
|
883
|
+
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.
|
|
884
|
+
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.
|
|
885
|
+
3. From the workspace root, regenerate only the lockfile:
|
|
886
|
+
|
|
887
|
+
\`\`\`sh
|
|
888
|
+
npm install --package-lock-only --ignore-scripts
|
|
889
|
+
\`\`\`
|
|
890
|
+
|
|
891
|
+
4. From the workspace root, perform a clean validation:
|
|
892
|
+
|
|
893
|
+
\`\`\`sh
|
|
894
|
+
npm ci --ignore-scripts
|
|
895
|
+
\`\`\`
|
|
896
|
+
|
|
897
|
+
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.
|
|
898
|
+
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.
|
|
899
|
+
|
|
900
|
+
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.
|
|
901
|
+
|
|
902
|
+
## Managing dependencies
|
|
903
|
+
|
|
904
|
+
Declare each dependency in the workspace that imports it, even when npm physically hoists it into the root \`node_modules\`:
|
|
905
|
+
|
|
906
|
+
- App runtime dependency: \`npm install <dependency> -w ${t}/<name>\`.
|
|
907
|
+
- Shared-package runtime dependency: \`npm install <dependency> -w packages/<name>\`.
|
|
908
|
+
- Root build tooling: run \`npm install --save-dev <dependency>\` from the workspace root without a workspace flag.
|
|
909
|
+
- Host-owned singletons such as React belong in a shared package's \`peerDependencies\`; apps that import React still declare it directly.
|
|
910
|
+
- 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.
|
|
911
|
+
|
|
912
|
+
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.
|
|
913
|
+
|
|
914
|
+
After changing any \`package.json\`, follow the required lockfile gate above and commit the updated root lockfile in the same change.
|
|
915
|
+
|
|
916
|
+
## Sharing code between apps
|
|
917
|
+
|
|
918
|
+
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.
|
|
919
|
+
|
|
920
|
+
Scaffold one with the CLI (recommended):
|
|
921
|
+
|
|
922
|
+
\`\`\`sh
|
|
923
|
+
npm create @datadog/apps@latest -- --package shared
|
|
924
|
+
\`\`\`
|
|
925
|
+
|
|
926
|
+
This creates \`packages/shared/\` with a scoped \`@${e.name}/shared\` package name, an \`exports\` map pointing at raw \`src/index.ts\` source, and a \`tsconfig.json\` that extends the root \`tsconfig.base.json\`. To wire it into an app:
|
|
927
|
+
|
|
928
|
+
1. Depend on it from the app (\`${t}/<name>/package.json\`):
|
|
929
|
+
|
|
930
|
+
\`\`\`json
|
|
931
|
+
"dependencies": { "@${e.name}/shared": "*" }
|
|
932
|
+
\`\`\`
|
|
933
|
+
|
|
934
|
+
2. Run \`npm install\` once at the workspace root to link it.
|
|
935
|
+
|
|
936
|
+
3. Import it in the app like any other package:
|
|
937
|
+
|
|
938
|
+
\`\`\`ts
|
|
939
|
+
import { greet } from '@${e.name}/shared';
|
|
940
|
+
\`\`\`
|
|
941
|
+
|
|
942
|
+
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.
|
|
943
|
+
|
|
944
|
+
## Auth
|
|
945
|
+
|
|
946
|
+
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.
|
|
947
|
+
|
|
948
|
+
## Publishing this workspace to a source code provider
|
|
949
|
+
|
|
950
|
+
When the user asks to "publish", "push up", or "create a repo" for this workspace:
|
|
951
|
+
|
|
952
|
+
1. Check whether an \`origin\` remote already exists.
|
|
953
|
+
2. If \`origin\` exists, show its URL and push the current branch. Never replace it without explicit approval.
|
|
954
|
+
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.
|
|
955
|
+
4. Use the workspace directory name as the repository name only when the user has not specified one. Default new repositories to private.
|
|
956
|
+
5. Confirm before creating any remote repository because it changes external state. Never force-push or change repository visibility unless explicitly requested.
|
|
957
|
+
6. If the provider CLI is missing or unauthenticated, preserve the local repository and give the user the manual command.
|
|
958
|
+
|
|
959
|
+
## Read relevant guides
|
|
960
|
+
|
|
961
|
+
- Embedded app context / routing / storage: \`docs/agents/runtime-context.md\`
|
|
962
|
+
- Backend functions (\`*.backend.ts\`): \`docs/agents/backend-functions.md\`
|
|
963
|
+
- Local dev / auth / build / upload: \`docs/agents/build-upload-auth.md\`
|
|
964
|
+
- CI/CD (GitHub Actions deploy workflow): \`docs/agents/cicd.md\`
|
|
965
|
+
- Data access (DDSQL vs. Action Catalog, Connections, datastores): \`docs/agents/data.md\`
|
|
966
|
+
- Triggering or polling Workflow Automation from a backend function: \`docs/agents/workflow-automation.md\`
|
|
967
|
+
- Upgrading \`@datadog/vite-plugin\` or \`@datadog/action-catalog\`: \`docs/agents/upgrading.md\`
|
|
968
|
+
`};var Ji={name:"Vite & React (workspace)",description:"Datadog Apps npm-workspace root.",postScaffoldCommands:{setup:["npm install","npm ci --ignore-scripts"],gitInit:["git init","git add .",'git commit -m "Initial commit"']}};var zo={};C(zo,{contents:()=>td,filepath:()=>ed});var ed="./package.json",td=e=>{let t=e.workspace?.container??"apps",n={name:e.name,version:"0.0.1",private:!0,workspaces:[`${t}/*`,"packages/*"],datadogApps:{container:t},engines:{node:"^20.19.0 || >=22.13.0"},overrides:{react:"^19.2.8","react-dom":"^19.2.8"},scripts:{build:"npm run build --workspaces --if-present",upload:"npm run upload --workspaces --if-present",typecheck:"npm run typecheck --workspaces --if-present",lint:"eslint . --report-unused-disable-directives --max-warnings 0","lint:fix":"eslint . --fix"},devDependencies:{"@datadog/apps-cli":">=0.0.2 <0.1.0","@datadog/vite-plugin":"^3.3.1","@eslint/js":"^9.39.5","@types/node":"^24.12.2","@types/react":"^19.2.18","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.1.0",esbuild:"^0.28.0",eslint:"^9.39.5","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.4",globals:"^17.11.0",typescript:"^5.9.3","typescript-eslint":"^8.67.0",vite:"^8.2.2"}};return JSON.stringify(n,null,2)};var qo={};C(qo,{contents:()=>od,filepath:()=>nd});var nd="./.github/workflows/validate-datadog-apps.yml",od=()=>`name: Validate Datadog Apps
|
|
969
|
+
|
|
970
|
+
on:
|
|
971
|
+
pull_request: {}
|
|
972
|
+
|
|
973
|
+
permissions:
|
|
974
|
+
contents: read
|
|
975
|
+
|
|
976
|
+
concurrency:
|
|
977
|
+
group: validate-datadog-apps-\${{ github.ref }}
|
|
978
|
+
cancel-in-progress: true
|
|
979
|
+
|
|
980
|
+
jobs:
|
|
981
|
+
validate:
|
|
982
|
+
name: Typecheck, lint & build
|
|
983
|
+
runs-on: ubuntu-latest
|
|
984
|
+
steps:
|
|
985
|
+
- uses: actions/checkout@v6
|
|
986
|
+
- uses: actions/setup-node@v6
|
|
987
|
+
with:
|
|
988
|
+
node-version: 22
|
|
989
|
+
cache: npm
|
|
990
|
+
- run: npm ci
|
|
991
|
+
- name: Check workspace React alignment
|
|
992
|
+
run: node .github/scripts/validate-workspace.mjs
|
|
993
|
+
- run: npm run typecheck
|
|
994
|
+
- run: npm run lint
|
|
995
|
+
- run: npm run build
|
|
996
|
+
`;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
|
|
997
|
+
|
|
998
|
+
on:
|
|
999
|
+
push:
|
|
1000
|
+
paths:
|
|
1001
|
+
- '${t}/**'
|
|
1002
|
+
- 'packages/**'
|
|
1003
|
+
- 'package.json'
|
|
1004
|
+
- 'package-lock.json'
|
|
1005
|
+
- 'tsconfig.base.json'
|
|
1006
|
+
- 'eslint.config.mjs'
|
|
1007
|
+
- '.github/scripts/validate-workspace.mjs'
|
|
1008
|
+
- '.github/workflows/deploy-datadog-apps.yml'
|
|
1009
|
+
|
|
1010
|
+
permissions:
|
|
1011
|
+
contents: read
|
|
1012
|
+
|
|
1013
|
+
concurrency:
|
|
1014
|
+
group: deploy-datadog-apps-\${{ github.ref }}
|
|
1015
|
+
cancel-in-progress: false
|
|
1016
|
+
|
|
1017
|
+
jobs:
|
|
1018
|
+
prepare:
|
|
1019
|
+
name: Prepare deployment
|
|
1020
|
+
if: github.ref_name == github.event.repository.default_branch
|
|
1021
|
+
runs-on: ubuntu-latest
|
|
1022
|
+
outputs:
|
|
1023
|
+
matrix: \${{ steps.detect.outputs.matrix }}
|
|
1024
|
+
any: \${{ steps.detect.outputs.any }}
|
|
1025
|
+
steps:
|
|
1026
|
+
- uses: actions/checkout@v6
|
|
1027
|
+
with:
|
|
1028
|
+
fetch-depth: 0
|
|
1029
|
+
- uses: actions/setup-node@v6
|
|
1030
|
+
with:
|
|
1031
|
+
node-version: 22
|
|
1032
|
+
cache: npm
|
|
1033
|
+
- run: npm ci --ignore-scripts
|
|
1034
|
+
- name: Check workspace React alignment
|
|
1035
|
+
run: node .github/scripts/validate-workspace.mjs
|
|
1036
|
+
- id: detect
|
|
1037
|
+
env:
|
|
1038
|
+
CONTAINER: '${t}'
|
|
1039
|
+
BEFORE: \${{ github.event.before }}
|
|
1040
|
+
AFTER: \${{ github.sha }}
|
|
1041
|
+
run: |
|
|
1042
|
+
node <<'NODE'
|
|
1043
|
+
const fs = require('node:fs');
|
|
1044
|
+
const path = require('node:path');
|
|
1045
|
+
const { execFileSync } = require('node:child_process');
|
|
1046
|
+
|
|
1047
|
+
const container = process.env.CONTAINER;
|
|
1048
|
+
const emptyTree = execFileSync(
|
|
1049
|
+
'git',
|
|
1050
|
+
['hash-object', '-t', 'tree', '/dev/null'],
|
|
1051
|
+
{ encoding: 'utf8' },
|
|
1052
|
+
).trim();
|
|
1053
|
+
let base = process.env.BEFORE;
|
|
1054
|
+
if (!base || /^0+$/.test(base)) {
|
|
1055
|
+
base = emptyTree;
|
|
1056
|
+
} else {
|
|
1057
|
+
try {
|
|
1058
|
+
execFileSync('git', ['cat-file', '-e', base + '^{commit}'], { stdio: 'ignore' });
|
|
1059
|
+
} catch {
|
|
1060
|
+
base = emptyTree;
|
|
1061
|
+
}
|
|
1062
|
+
}
|
|
1063
|
+
|
|
1064
|
+
const changedFiles = execFileSync(
|
|
1065
|
+
'git',
|
|
1066
|
+
['diff', '--name-only', '-z', base, process.env.AFTER],
|
|
1067
|
+
{ encoding: 'utf8' },
|
|
1068
|
+
).split('\\0').filter(Boolean);
|
|
1069
|
+
const globalFiles = {
|
|
1070
|
+
'package.json': true,
|
|
1071
|
+
'tsconfig.base.json': true,
|
|
1072
|
+
'eslint.config.mjs': true,
|
|
1073
|
+
'.github/workflows/deploy-datadog-apps.yml': true,
|
|
1074
|
+
};
|
|
1075
|
+
const globalChange = changedFiles.some(
|
|
1076
|
+
(file) => file.startsWith('packages/') || globalFiles[file] === true,
|
|
1077
|
+
);
|
|
1078
|
+
const lockfileChanged = changedFiles.includes('package-lock.json');
|
|
1079
|
+
const entries = fs.existsSync(container)
|
|
1080
|
+
? fs.readdirSync(container, { withFileTypes: true })
|
|
1081
|
+
: [];
|
|
1082
|
+
const existingApps = new Set(
|
|
1083
|
+
entries
|
|
1084
|
+
.filter((entry) => entry.isDirectory() && fs.existsSync(path.join(container, entry.name, 'package.json')))
|
|
1085
|
+
.map((entry) => entry.name),
|
|
1086
|
+
);
|
|
1087
|
+
|
|
1088
|
+
const prefix = container + '/';
|
|
1089
|
+
const directlyChangedApps = changedFiles
|
|
1090
|
+
.filter((file) => file.startsWith(prefix))
|
|
1091
|
+
.map((file) => file.slice(prefix.length).split('/')[0])
|
|
1092
|
+
.filter((name) => existingApps.has(name));
|
|
1093
|
+
|
|
1094
|
+
let apps;
|
|
1095
|
+
if (globalChange || (lockfileChanged && directlyChangedApps.length === 0)) {
|
|
1096
|
+
apps = [...existingApps];
|
|
1097
|
+
} else {
|
|
1098
|
+
apps = directlyChangedApps;
|
|
1099
|
+
}
|
|
1100
|
+
apps = [...new Set(apps)].sort();
|
|
1101
|
+
|
|
1102
|
+
const matrix = JSON.stringify({ app: apps });
|
|
1103
|
+
fs.appendFileSync(
|
|
1104
|
+
process.env.GITHUB_OUTPUT,
|
|
1105
|
+
'matrix=' + matrix + '\\nany=' + String(apps.length > 0) + '\\n',
|
|
1106
|
+
);
|
|
1107
|
+
console.log('Changed apps: ' + matrix);
|
|
1108
|
+
NODE
|
|
1109
|
+
|
|
1110
|
+
upload:
|
|
1111
|
+
name: Upload \${{ matrix.app }}
|
|
1112
|
+
needs: prepare
|
|
1113
|
+
if: needs.prepare.outputs.any == 'true'
|
|
1114
|
+
runs-on: ubuntu-latest
|
|
1115
|
+
strategy:
|
|
1116
|
+
fail-fast: false
|
|
1117
|
+
matrix: \${{ fromJSON(needs.prepare.outputs.matrix) }}
|
|
1118
|
+
steps:
|
|
1119
|
+
- uses: actions/checkout@v6
|
|
1120
|
+
- uses: actions/setup-node@v6
|
|
1121
|
+
with:
|
|
1122
|
+
node-version: 22
|
|
1123
|
+
cache: npm
|
|
1124
|
+
- run: npm ci
|
|
1125
|
+
- name: Check Datadog deploy secrets
|
|
1126
|
+
env:
|
|
1127
|
+
DD_API_KEY: \${{ secrets.DATADOG_API_KEY }}
|
|
1128
|
+
DD_APP_KEY: \${{ secrets.DATADOG_APP_KEY }}
|
|
1129
|
+
run: |
|
|
1130
|
+
if [ -z "$DD_API_KEY" ] || [ -z "$DD_APP_KEY" ]; then
|
|
1131
|
+
echo "::error::DATADOG_API_KEY / DATADOG_APP_KEY are not set on this repository."
|
|
1132
|
+
echo "::error::Set them under Settings > Secrets and variables > Actions, or run: npm create @datadog/apps@latest -- --set-secrets"
|
|
1133
|
+
exit 1
|
|
1134
|
+
fi
|
|
1135
|
+
- name: Upload \${{ matrix.app }}
|
|
1136
|
+
uses: DataDog/apps-github-action@2c2495d48c9569b6eace166a5d43e60d9e5b81da # v0.1.1
|
|
1137
|
+
with:
|
|
1138
|
+
datadog-api-key: \${{ secrets.DATADOG_API_KEY }}
|
|
1139
|
+
datadog-app-key: \${{ secrets.DATADOG_APP_KEY }}
|
|
1140
|
+
datadog-site: \${{ vars.DD_SITE }}
|
|
1141
|
+
app-directory: ${t}/\${{ matrix.app }}
|
|
1142
|
+
install-command: 'true'
|
|
1143
|
+
`};var Yo={};C(Yo,{contents:()=>ad,filepath:()=>sd});var sd="./.github/scripts/validate-workspace.mjs",ad=()=>`import fs from 'node:fs';
|
|
1144
|
+
import path from 'node:path';
|
|
1145
|
+
|
|
1146
|
+
const root = JSON.parse(fs.readFileSync('package.json', 'utf8'));
|
|
1147
|
+
const expected = {
|
|
1148
|
+
react: root.overrides?.react,
|
|
1149
|
+
'react-dom': root.overrides?.['react-dom'],
|
|
1150
|
+
};
|
|
1151
|
+
const expectedTypes = {
|
|
1152
|
+
'@types/react': root.devDependencies?.['@types/react'],
|
|
1153
|
+
'@types/react-dom': root.devDependencies?.['@types/react-dom'],
|
|
1154
|
+
};
|
|
1155
|
+
const missingRootRanges = Object.entries({ ...expected, ...expectedTypes })
|
|
1156
|
+
.filter(([, range]) => !range)
|
|
1157
|
+
.map(([name]) => name);
|
|
1158
|
+
if (missingRootRanges.length) {
|
|
1159
|
+
throw new Error(
|
|
1160
|
+
'Root package.json is missing required dependency ranges: ' +
|
|
1161
|
+
missingRootRanges.join(', '),
|
|
1162
|
+
);
|
|
1163
|
+
}
|
|
1164
|
+
const container = root.datadogApps?.container ?? 'apps';
|
|
1165
|
+
const mismatches = [];
|
|
1166
|
+
const entries = fs.existsSync(container)
|
|
1167
|
+
? fs.readdirSync(container, { withFileTypes: true })
|
|
1168
|
+
: [];
|
|
1169
|
+
|
|
1170
|
+
for (const entry of entries) {
|
|
1171
|
+
if (!entry.isDirectory()) continue;
|
|
1172
|
+
|
|
1173
|
+
const packagePath = path.join(container, entry.name, 'package.json');
|
|
1174
|
+
if (!fs.existsSync(packagePath)) continue;
|
|
1175
|
+
|
|
1176
|
+
const app = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
|
|
1177
|
+
for (const [name, range] of Object.entries(expected)) {
|
|
1178
|
+
if (app.dependencies?.[name] !== range) {
|
|
1179
|
+
mismatches.push(packagePath + ': ' + name);
|
|
1180
|
+
}
|
|
1181
|
+
}
|
|
1182
|
+
for (const [name, range] of Object.entries(expectedTypes)) {
|
|
1183
|
+
if (app.devDependencies?.[name] && app.devDependencies[name] !== range) {
|
|
1184
|
+
mismatches.push(packagePath + ': ' + name);
|
|
1185
|
+
}
|
|
1186
|
+
}
|
|
1187
|
+
}
|
|
1188
|
+
|
|
1189
|
+
if (mismatches.length) {
|
|
1190
|
+
throw new Error(
|
|
1191
|
+
'Workspace React dependency mismatch:\\n' + mismatches.join('\\n'),
|
|
1192
|
+
);
|
|
1193
|
+
}
|
|
1194
|
+
`;var Qo={};C(Qo,{contents:()=>cd,filepath:()=>ud});var ud="./tsconfig.base.json",cd=e=>JSON.stringify({compilerOptions:{target:"ES2020",useDefineForClassFields:!0,lib:["ES2020","DOM","DOM.Iterable"],module:"ESNext",skipLibCheck:!0,moduleResolution:"bundler",allowImportingTsExtensions:!0,resolveJsonModule:!0,isolatedModules:!0,noEmit:!0,jsx:"react-jsx",strict:!0,noUnusedLocals:!0,noUnusedParameters:!0,noFallthroughCasesInSwitch:!0}},null,2);var Xi={metadata:Zi,files:[Dn,rn,fn,dn,sn,an,un,cn,ln,pn,lt,hn,mn,An,gn,yn,Fn,bn,En,wn],workspace:{root:{metadata:Ji,files:[zo,Ko,qo,Yo,Qo,hn,An,Uo,lt,dn,sn,an,un,cn,ln,pn]},app:{files:[Dn,rn,mn,fn,lt,gn,yn,Fn,bn,En,wn]},package:{files:[Go,Ho,Lo]}}};var ft={"vite-react":Xi};function _i(e,t){let n=[];return typeof e!="object"||e===null?(n.push(`[${t}] metadata.json must be a valid JSON object`),n):(!("name"in e)||typeof e.name!="string"?n.push(`[${t}] metadata.json is missing required "name" field (string)`):e.name.trim()===""&&n.push(`[${t}] metadata.json "name" field cannot be empty`),!("description"in e)||typeof e.description!="string"?n.push(`[${t}] metadata.json is missing required "description" field (string)`):e.description.trim()===""&&n.push(`[${t}] metadata.json "description" field cannot be empty`),n)}function Cn(e,t){let n=[];return typeof e!="object"||e===null?(n.push(`[${t}] must export an object`),n):("filepath"in e?typeof e.filepath!="string"&&n.push(`[${t}] "filepath" must be a string, got ${typeof e.filepath}`):n.push(`[${t}] missing required export "filepath"`),"contents"in e?typeof e.contents!="function"&&n.push(`[${t}] "contents" must be a function, got ${typeof e.contents}`):n.push(`[${t}] missing required export "contents"`),n)}var es=["npm","yarn","git"],ts=["|",">","<","$(","`","&&","||",";"];function dd(e){let t=e.trim(),o=t.split(/\s+/)[0];if(!o||!es.includes(o))return!1;for(let r of ts)if(t.includes(r))return!1;return!0}function $i(e,t){let n=[];if(!e.postScaffoldCommands)return n;let o=[...e.postScaffoldCommands.setup??[],...e.postScaffoldCommands.gitInit??[]];for(let r of o)if(!dd(r)){let i=es.join(", "),a=ts.join(", ");n.push(`[${t}] Unsafe post-scaffold command: "${r}".
|
|
1195
|
+
Only ${i} commands without dangerous patterns (${a}) are allowed.`)}return n}function ns(){let e=[];for(let[t,n]of Object.entries(ft)){e.push(..._i(n.metadata,t)),e.push(...$i(n.metadata,t));for(let o of n.files)e.push(...Cn(o,n.metadata.name));if(n.workspace){let o=n.workspace;e.push(..._i(o.root.metadata,`${t} (workspace root)`)),e.push(...$i(o.root.metadata,`${t} (workspace root)`));for(let r of o.root.files)e.push(...Cn(r,`${t} (workspace root)`));for(let r of o.app.files)e.push(...Cn(r,`${t} (workspace app)`));if(o.package)for(let r of o.package.files)e.push(...Cn(r,`${t} (workspace package)`))}}if(e.length>0){let t=["Template validation errors:",...e.map(n=>` - ${n}`)].join(`
|
|
1196
|
+
`);return console.log(t),1}return 0}function De(e){let t=ft[e];if(!t){let n=Object.keys(ft).join(", ");throw new Error(`Unknown template "${e}". Available templates: ${n}. Remove the --template option to select from the list instead.`)}return t}async function Dt(){let e=Object.values(ft).map(t=>({name:t.metadata.name,value:t,description:t.metadata.description}));if(e.length===0)throw new Error("No templates found.");return He({message:"Select a template",choices:e.map(({name:t,value:n,description:o})=>({name:`${Si(t)}
|
|
1197
|
+
${w(o)}`,value:n}))})}async function qe(e,t){let n=t.map(async({filepath:o,contents:r})=>{let i=Vo.default.join(e,o);await Wo.default.mkdir(Vo.default.dirname(i),{recursive:!0}),await Wo.default.writeFile(i,r,Buffer.isBuffer(r)?void 0:{encoding:"utf-8"})});await Promise.all(n)}var Zo="packages";function Jo(e,t){console.log(),console.log(),console.log(`Creating ${P(e)} in ${P(t)}...`),console.log(),console.log()}var vn=class extends N.Command{static paths=[N.Command.Default];static usage=N.Command.Usage({description:"Create a new Datadog App",examples:[["Create a new app interactively","npm init @datadog/apps my-app"],["Create a new app non-interactively","npm init @datadog/apps my-app --template vite-react -y"],["Create an app with a custom name and site",'npm init @datadog/apps my-app --name "My App" --site datadoghq.eu -y'],["Initialize a monorepo workspace","npm create @datadog/apps@latest -- --monorepo"],["Create and publish a private monorepo","npm create @datadog/apps@latest -- my-workspace --monorepo --app-directory my-app --github-repo DataDog/my-workspace"],["Add another app inside a workspace","npm create @datadog/apps@latest -- my-second-app"]]});directory=N.Option.String({required:!1});template=N.Option.String("--template",{required:!1,description:"Template to use (e.g., vite-react)"});appName=N.Option.String("--name",{required:!1,description:"App name (user-facing)"});identifier=N.Option.String("--identifier",{required:!1,description:"App identifier baked into datadog-app.config.json (defaults to a generated value)"});yes=N.Option.Boolean("--yes,-y",{description:"Accept all defaults without prompting"});overwrite=N.Option.Boolean("--overwrite",{description:"Overwrite existing directory without prompting"});validate=N.Option.Boolean("--validate",{description:"Validate templates and exit"});skipPostScaffold=N.Option.Boolean("--skip-post-scaffold",{description:"Skip post-scaffold commands"});monorepo=N.Option.Boolean("--monorepo",{description:"Initialize a new Datadog Apps monorepo (npm workspace) and scaffold the first app"});appDirectory=N.Option.String("--app-directory",{required:!1,description:"First app directory when initializing a monorepo workspace"});package=N.Option.String("--package",{required:!1,description:"Shared package name (created under packages/<name>)"});container=N.Option.String("--container",{required:!1,description:"Apps container directory for a new workspace (default: apps)"});datadogSite=N.Option.String("--site",{required:!1,description:"Datadog site (e.g. datadoghq.com, datadoghq.eu)"});githubRepo=N.Option.String("--github-repo",{required:!1,description:"Create a private GitHub repository for a new monorepo, set it as origin, and push"});setSecrets=N.Option.Boolean("--set-secrets",{description:"Set the Datadog deploy secrets (DATADOG_API_KEY / DATADOG_APP_KEY) on an existing repository via gh, then exit. Uses --github-repo, or derives OWNER/REPO from the origin remote."});async execute(){console.log(Pi),console.log(),console.log();try{if(this.validate)return ns();if(this.appDirectory&&!this.monorepo)throw new Error("--app-directory is only available when initializing a workspace with --monorepo.");if(this.setSecrets)return await this.runSetSecrets();if(this.githubRepo&&!this.monorepo)throw new Error("--github-repo is only available when creating a new monorepo workspace.");let t=So(process.cwd());if(t){if(this.monorepo)throw new Error(`Already inside a Datadog Apps workspace at ${t.root}. Re-run without --monorepo to add an app.`);if(this.skipPostScaffold)throw new Error("Workspace dependency installation and lockfile validation cannot be skipped.");let o=oe.default.relative(process.cwd(),t.root)||".";if(console.log(P(`Workspace detected at ${o}; new apps are created under ${t.container}/.`)),this.yes&&this.directory===void 0&&this.package===void 0)throw new Error("A directory name is required when using --yes. Pass it as a positional argument, or use --package to add a shared package.");let r=await this.resolveAddMode();return r==="secrets"?await this.runSetSecrets():r==="package"?await this.runAddPackage(t):await this.runAddToWorkspace(t)}if(this.package!==void 0)throw new Error("--package can only be used inside an existing Datadog Apps workspace. Run it from within a workspace, or use --monorepo to create one first.");return this.monorepo?await this.runInitWorkspace():this.yes?await this.runStandalone():await this.promptScaffoldMode()==="init-workspace"?await this.runInitWorkspace():await this.runStandalone()}catch(t){return Ri(t)?console.log(Ti()):Ni(t),1}}async promptScaffoldMode(){return He({message:"How do you want to scaffold?",choices:[{name:"Single standalone app",value:"standalone"},{name:"New monorepo workspace (share tooling across apps)",value:"init-workspace"}]})}async resolveAddMode(){return this.package!==void 0?"package":this.directory!==void 0?"app":He({message:"What do you want to do in this workspace?",choices:[{name:"Add an app",value:"app"},{name:"Add a shared package (reusable code for your apps)",value:"package"},{name:"Set or update the Datadog deploy secrets",value:"secrets"}]})}async configureRemoteAndSecrets(t,n){let o=this.githubRepo;if(!o&&!this.yes&&await le({message:"Create a private repository and push this workspace?",default:!1})){let a=qi(),s=oe.default.basename(t),u=a?`${a}/${s}`:s;o=(await te({message:"Repository (OWNER/REPO):",default:u,validate:c=>on(c.trim())||"Enter the repository as OWNER/REPO."})).trim()}return o?Ki({repository:o,targetPath:t}).published?(this.yes?console.log(`Set deploy secrets with: npm create @datadog/apps@latest -- --set-secrets --github-repo ${o}`):await Mo({repository:o,targetPath:t,site:n}),!0):!1:!0}async runSetSecrets(){if(this.yes)throw new Error("--set-secrets is interactive and cannot be combined with --yes.");let n=So(process.cwd())?.root??process.cwd(),o=this.githubRepo??Wi(n);if(!o)throw new Error("Could not determine the GitHub repository. Pass --github-repo OWNER/REPO (no GitHub origin remote was found).");return await Mo({repository:o,targetPath:n,skipConfirm:!0,site:this.datadogSite})?0:1}async runStandalone(){let t=await To(this.directory,this.overwrite,this.yes,this.appName,this.datadogSite),n=oe.default.resolve(process.cwd(),t.directory),o=this.template?De(this.template):this.yes?De("vite-react"):await Dt(),r=o.metadata;console.log(),console.log(),console.log(`Creating ${P(t.name)} in ${P(n)}...`),console.log(),console.log();let i=o.files.map(a=>({filepath:a.filepath,contents:a.contents({name:t.name,directoryName:t.directoryName,datadogSite:t.datadogSite,identifier:this.identifier})}));return await qe(n,i),await at(n,r,this.skipPostScaffold,this.yes),console.log(Vt(t)),0}async runInitWorkspace(){if(this.skipPostScaffold)throw new Error("Workspace dependency installation and lockfile validation cannot be skipped.");if(this.yes&&!this.directory)throw new Error("A workspace root name is required when using --yes. Pass it as a positional argument.");if(this.yes&&!this.appDirectory)throw new Error("A first app directory is required when using --yes for a new workspace. Pass --app-directory.");let t=this.container??Xt;if(!_t(t))throw new Error('Invalid --container value: use a relative path of simple directory names (letters, numbers, ".", "_", "-"), separated by "/", with no ".." segments, and not the reserved "packages" directory.');let n=await Ui(this.directory,this.overwrite,"Enter a name for your workspace root:",!0),o=oe.default.resolve(process.cwd(),n.directory),r=await Io(this.appDirectory,o,t,this.overwrite,this.yes,this.appName,this.datadogSite,!0),i=this.template?De(this.template):this.yes?De("vite-react"):await Dt();if(!i.workspace)throw new Error(`Template "${i.metadata.name}" does not support workspaces.`);let a=i.workspace,s=r.datadogSite;await ct(o,this.overwrite,this.yes),Jo(n.name,o);let u=a.root.files.map(p=>({filepath:p.filepath,contents:p.contents({name:n.name,directoryName:n.name,datadogSite:s,workspace:{rootName:n.name,container:t,rootRelativePath:".",appName:r.name}})}));await qe(o,u);let c=a.app.files.map(p=>({filepath:p.filepath,contents:p.contents({name:r.name,directoryName:r.directoryName,datadogSite:r.datadogSite,identifier:this.identifier,workspace:{rootName:n.name,container:t,rootRelativePath:r.rootRelativePath}})}));return await qe(r.appTargetPath,c),await at(o,a.root.metadata,this.skipPostScaffold,this.yes,!0),await this.configureRemoteAndSecrets(o,s)?(console.log(Vt({name:r.name,directory:oe.default.join(n.directory,t,r.directoryName)})),0):1}async runAddToWorkspace(t){let n=t.container,o=t.root,r=this.datadogSite??en(o),i=this.template?De(this.template):this.yes?De("vite-react"):await Dt();if(!i.workspace)throw new Error(`Template "${i.metadata.name}" does not support workspaces.`);let a=i.workspace,s=await Io(this.directory,o,n,this.overwrite,this.yes,this.appName,r);Jo(s.name,s.appTargetPath);let u=Po(o)??oe.default.basename(o),c=a.app.files.map(p=>({filepath:p.filepath,contents:p.contents({name:s.name,directoryName:s.directoryName,datadogSite:s.datadogSite,identifier:this.identifier,workspace:{rootName:u,container:n,rootRelativePath:s.rootRelativePath}})}));return await qe(s.appTargetPath,c),await at(o,Co(a.root.metadata),this.skipPostScaffold,this.yes,!0),console.log(Vt({name:s.name,directory:oe.default.relative(process.cwd(),s.appTargetPath)||"."})),0}async runAddPackage(t){let n=t.root,o=Po(n)??oe.default.basename(n),r=this.template?De(this.template):this.yes?De("vite-react"):await Dt();if(!r.workspace?.package)throw new Error(`Template "${r.metadata.name}" does not support shared packages.`);let i=r.workspace.package.files,a=await zi(this.package??this.directory,n,Zo,this.overwrite,`Enter a name for your shared package (created under ${Zo}/):`,this.yes);Jo(a.name,a.appTargetPath);let s=i.map(u=>({filepath:u.filepath,contents:u.contents({name:a.name,directoryName:a.name,datadogSite:be,workspace:{rootName:o,container:Zo,rootRelativePath:a.rootRelativePath}})}));return await qe(a.appTargetPath,s),await at(n,Co(r.workspace.root.metadata),this.skipPostScaffold,this.yes,!0),console.log(`Created shared package ${P(`@${$t(o)}/${a.name}`)} in ${P(oe.default.relative(process.cwd(),a.appTargetPath)||".")}.`),0}};var os="0.2.2";var kn=new ht.Cli({binaryLabel:"create-apps",binaryName:"npm init @datadog/apps",binaryVersion:os});kn.register(vn);kn.register(ht.Builtins.HelpCommand);kn.register(ht.Builtins.VersionCommand);kn.runExit(process.argv.slice(2));
|