import{a as M}from"./chunk-6ZRHK4ON.js";import{a as S}from"./chunk-7XQDZF73.js";import{A as b,B as A,D as C,E as x,Fa as V}from"./chunk-UZ7U322K.js";import{a as c}from"./chunk-5JCREGSD.js";import{b as j,c as E}from"./chunk-Q6LCSRIW.js";import{v as y,x as u}from"./chunk-E24W34C4.js";import{d as g,f as o}from"./chunk-ELIH6GCC.js";import{Lb as s,Sb as w,Vb as h}from"./chunk-EYDNSYYE.js";import{g as m}from"./chunk-VKWPEFWQ.js";m();m();async function N(f,t){let i=new Set(t.map(n=>n.file)).size;await c.addPublicMetadata(()=>({cmd_app_validate_valid:f,cmd_app_validate_issue_count:t.length,cmd_app_validate_file_count:i}))}async function J(f,t={json:!1}){let i=f.errors;if(!i||i.isEmpty()){if(await N(!0,[]),t.json){s(JSON.stringify({valid:!0,issues:[]},null,2));return}y({headline:"App configuration is valid."});return}let n=i.getErrors();if(await N(!1,n),t.json){let d=n.map(({file:p,message:a,path:r,code:e})=>({file:p,message:a,path:r,code:e}));throw s(JSON.stringify({valid:!1,issues:d},null,2)),new o}throw u({headline:"Validation errors found.",body:n.map(d=>`\u2022 ${x(d)}`).join(`
`)}),new o}var v;async function _(f,t){await c.addPublicMetadata(()=>({cmd_app_validate_valid:!1,cmd_app_validate_issue_count:f,cmd_app_validate_file_count:t}))}var l=class extends M{async run(){let{flags:t}=await this.parse(v);await c.addPublicMetadata(()=>({cmd_app_validate_json:t.json}));let i;try{i=await b.load(t.path)}catch(a){if(a instanceof g&&t.json){await _(1,1);let r=h(w(a.message)).trim();throw s(JSON.stringify({valid:!1,issues:[{message:r}]},null,2)),new o}throw a}let n;try{n=await C(i,t.config)}catch(a){if(a instanceof g&&t.json){await _(1,1);let r=h(w(a.message)).trim();throw s(JSON.stringify({valid:!1,issues:[{message:r}]},null,2)),new o}throw a}let d=A(i,n.file);if(d.length>0){let a=d.map(e=>({file:e.path,message:e.message})),r=new Set(d.map(e=>e.path)).size;throw await _(a.length,r),t.json?(s(JSON.stringify({valid:!1,issues:a},null,2)),new o):(u({headline:"Validation errors found.",body:a.map(e=>`\u2022 ${e.message}`).join(`
`)}),new o)}let p;try{p=(await V({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config,unsafeTolerateErrors:!0})).app}catch(a){let r=a instanceof g?h(w(a.message)).trim():"";throw r.startsWith("Validation errors in ")&&t.json?(await _(1,1),s(JSON.stringify({valid:!1,issues:[{message:r}]},null,2)),new o):a}return await J(p,{json:t.json}),{app:p}}};v=l;l.summary="Validate your app configuration and extensions.";l.descriptionWithMarkdown="Validates the selected app configuration file and all extension configurations against their schemas and reports any errors found.";l.description=v.descriptionWithoutMarkdown();l.flags={...j,...S,...E};var X=l;export{X as a};
