import{b as F}from"./chunk-ALQKJAHP.js";import{a as I,b as L,c as x,f as S,j as $,k as N,m as _,t as q}from"./chunk-5UXPTCSD.js";import{a as P}from"./chunk-6ZRHK4ON.js";import{a as z}from"./chunk-7XQDZF73.js";import{R as w,z as E}from"./chunk-2HZMOK4U.js";import{b as B}from"./chunk-Q6LCSRIW.js";import{C,u as c,v as T,x as D}from"./chunk-E24W34C4.js";import{g as b}from"./chunk-ELIH6GCC.js";import{Fb as d,Hb as u,Rb as A,ca as y,ha as g}from"./chunk-EYDNSYYE.js";import{u as f}from"./chunk-A4SBXDZB.js";import{r as U}from"./chunk-T6CC5WUU.js";import{e as K,g as m}from"./chunk-VKWPEFWQ.js";m();m();async function M(e){let{organization:o,storeFqdn:t,operationId:r,remoteApp:a}=e;c({headline:"Checking bulk operation status.",body:[{list:{items:F({organization:o,remoteApp:a,storeFqdn:t})}}]});let s=a.apiSecretKeys[0]?.secret;if(!s)throw new b("No API secret keys found for app");let l=await w(t,a.apiKey,s),i=await $({adminSession:l,operationId:r,version:await S({adminSession:l,minimumDefaultVersion:I})});i?V(i):D({headline:"Bulk operation not found.",body:u`ID: ${d.yellow(r)}`.value})}async function R(e){let{organization:o,storeFqdn:t,remoteApp:r}=e;c({headline:"Listing bulk operations.",body:[{list:{items:F({organization:o,remoteApp:r,storeFqdn:t})}}]});let a=r.apiSecretKeys[0]?.secret;if(!a)throw new b("No API secret keys found for app");let s=await w(t,r.apiKey,a),i=(await N({adminSession:s,version:await S({adminSession:s,minimumDefaultVersion:I})})).map(n=>({id:x(n.id),status:H(n.status),count:W(n.objectCount),dateCreated:y(new Date(String(n.createdAt))),dateFinished:n.completedAt?y(new Date(String(n.completedAt))):"",results:Y(n.url??n.partialDataUrl)}));A(),i.length===0?c({body:"No bulk operations found in the last 7 days."}):C({rows:i,columns:{id:{header:"ID",color:"yellow"},status:{header:"STATUS"},count:{header:"COUNT"},dateCreated:{header:"DATE CREATED",color:"cyan"},dateFinished:{header:"DATE FINISHED",color:"cyan"},results:{header:"RESULTS"}}}),A()}function V(e){let{id:o,status:t,createdAt:r,completedAt:a,url:s,partialDataUrl:l}=e,i=_(e).value,n=G(r,a),h=u`ID: ${d.yellow(o)}\n${n}`.value;if(t==="COMPLETED"){let k=s?d.link("Download results",s):"";T({headline:i,body:u`${h}\n${k}`.value})}else if(t==="FAILED"){let k=l?d.link("Download partial results",l):"";D({headline:i,body:u`${h}\n${k}`.value})}else c({headline:i,body:h})}function G(e,o){let t=new Date;return o?`Finished ${g(new Date(String(o)),t)}`:`Started ${g(new Date(String(e)),t)}`}function H(e){return e==="COMPLETED"?f.green(e):e==="FAILED"?f.red(e):f.dim(e)}function W(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e)}function Y(e){return e?u`${d.link("download",e)}`.value:""}var O=K(U(),1);var v,p=class extends P{async run(){let{flags:o}=await this.parse(v),{appContextResult:t,store:r}=await q(o);return o.id?await M({organization:t.organization,storeFqdn:r.shopDomain,operationId:L(o.id),remoteApp:t.remoteApp}):await R({organization:t.organization,storeFqdn:r.shopDomain,remoteApp:t.remoteApp}),{app:t.app}}};v=p;p.summary="Check the status of bulk operations.";p.descriptionWithMarkdown=`Check the status of a specific bulk operation by ID, or list all bulk operations belonging to this app on this store in the last 7 days.

  Bulk operations allow you to process large amounts of data asynchronously. Learn more about [bulk query operations](https://shopify.dev/docs/api/usage/bulk-operations/queries) and [bulk mutation operations](https://shopify.dev/docs/api/usage/bulk-operations/imports).

  Use [\`bulk execute\`](https://shopify.dev/docs/api/shopify-cli/app/app-bulk-execute) to start a new bulk operation.`;p.description=v.descriptionWithoutMarkdown();p.flags={...B,...z,id:O.Flags.string({description:"The bulk operation ID (numeric ID or full GID). If not provided, lists all bulk operations belonging to this app on this store in the last 7 days.",env:"SHOPIFY_FLAG_ID"}),store:O.Flags.string({char:"s",description:"The store domain. Must be an existing dev store.",env:"SHOPIFY_FLAG_STORE",parse:async e=>E(e)})};var ce=p;export{ce as a};
