import{a as V}from"./chunk-GXUZ3V7S.js";import{a as N}from"./chunk-YJCJDCVP.js";import{a as F}from"./chunk-OASPW2P2.js";import{k as q,l as H,n as I}from"./chunk-5NY4HKJF.js";import{a as Y}from"./chunk-DE3WCNP6.js";import{a as y,c as U}from"./chunk-YBFCDINU.js";import{b as L}from"./chunk-G7QLHXVA.js";import{a as p,b as w}from"./chunk-STJ3LWFL.js";import{b as g,c as x,d as M,f as _,j as R,n as j,p as D}from"./chunk-5T3OVTF5.js";import{r as k}from"./chunk-PTIJDS6I.js";import{aa as B}from"./chunk-QPJQ67GU.js";import{O as b,ua as a,va as O}from"./chunk-2HZMOK4U.js";import{A as P,v as f,w as d,x as C}from"./chunk-E24W34C4.js";import{d as S}from"./chunk-ELIH6GCC.js";import{Lb as $}from"./chunk-EYDNSYYE.js";import{f as T,q as l}from"./chunk-773TIA5M.js";import{e as z,g as v}from"./chunk-VKWPEFWQ.js";v();var A=z(B(),1);async function Te(e,t,r,o){let n=e.environment?.[0],s=t??await b(k({store:e.store}),e.password);if(e.strict){let m=e.json?"json":"text",{offenses:c}=await L(e.path??l(),m);if(c.length>0&&c.filter(J=>J.severity===A.Severity.ERROR).length>0)throw O(new S(n?`[${n}] Theme check failed. Please fix the errors before pushing.`:"Theme check failed. Please fix the errors before pushing."))}a("theme-service:push:setup"),Y({verbose:e.verbose,noColor:e.noColor});let i=e.force??!1,h=e.path?T(e.path):l();if(!await I(h)&&!await U(i,void 0,n,r))return;e.listing&&await q(h,e.listing);let u=await Z(s,e,r);u&&(a("theme-service:push:setup"),await W(u,s,{allowLive:e.allowLive??!1,environment:n,force:i,ignore:e.ignore??[],json:e.json??!1,multiEnvironment:r,nodelete:e.nodelete??!1,only:e.only??[],path:h,publish:e.publish??!1,listing:e.listing},o))}async function W(e,t,r,o){a("theme-service:push:file-system");let n=await j(e.id,t),s=H(r.path,{filters:r,listing:r.listing});a("theme-service:push:file-system");let{uploadResults:i,renderThemeSyncProgress:h}=V(e,t,n,s,r,o);await h(),r.publish&&await D(e.id,t),await G(i,e,t,r)}function E(e){for(let[t,r]of e.entries())if(!r.success)return!0;return!1}async function G(e,t,r,o){o.json?K(t,r,e,o.environment):o.publish?Q(r,e,o.environment):X(t,r,e,o.environment)}function K(e,t,r,o){let n={environment:o,theme:{id:e.id,name:e.name,role:e.role,shop:t.storeFqdn,editor_url:w(e,t),preview_url:p(e,t)}};if(E(r)){let i=`${o?`[${o}] `:""}The theme '${e.name}' was pushed with errors`;n.theme.warning=i;let h={};for(let[u,m]of r.entries())!m.success&&m.errors?.asset&&(h[u]=m.errors.asset);Object.keys(h).length>0&&(n.theme.errors=h)}$(JSON.stringify(n))}function Q(e,t,r){let o=r?[{subdued:`Environment: ${r}

`}]:[];E(t)?d({body:[...o,`Your theme was published with errors and is now live at https://${e.storeFqdn}`]}):f({body:[...o,`Your theme is now live at https://${e.storeFqdn}`]})}function X(e,t,r,o){let n=o?[{subdued:`Environment: ${o}

`}]:[],s=E(r),i=[[{link:{label:"View your theme",url:p(e,t)}}],[{link:{label:"Customize your theme at the theme editor",url:w(e,t)}}]];s?d({body:[...n,"The theme",...y(e),"was pushed with errors"],nextSteps:i}):f({body:[...n,"The theme",...y(e),"was pushed successfully."],nextSteps:i})}async function Z(e,t,r){let{live:o,development:n,unpublished:s,theme:i,environment:h,developmentContext:u}=t;if(n)return new N(e).findOrCreate(u,g);if(s){let m=i??await _("Name of the new theme");return R({name:m,role:M},e)}else{let m=await F(e,{create:!0,header:"Select a theme to push to:",filter:{live:o,theme:i}});return await ee(m.role,t.allowLive,e.storeFqdn,h,r)?m:void 0}}async function ee(e,t,r,o,n){if(e===x){if(t)return!0;if(n)return C({headline:`Environment: ${o}`,body:[`Can't push theme files to the live theme on ${r}`,"Use the --allow-live flag to push to a live theme."]}),!1;let s={message:`Push theme files to the ${e} theme on ${r}?`,confirmationMessage:"Yes, confirm changes",cancellationMessage:"Cancel"};return P(s)}return!0}export{Te as a};
