UNPKG

@shopify/cli

Version:

A CLI tool to build for the Shopify platform

4 lines (3 loc) • 7.34 kB
import{c as S,d as D}from"./chunk-M3RYUB22.js";import{b}from"./chunk-EKXY5COY.js";import{R as g}from"./chunk-XONFGLJQ.js";import{C as E,u as m,v as w,x as k}from"./chunk-6G6TMKXF.js";import{g as v}from"./chunk-M56NDIMD.js";import{Gb as i,Ib as n,Sb as B,ca as N,ha as O,tb as y}from"./chunk-N5PQPIBF.js";import{g as l}from"./chunk-VPRTJUIN.js";l();l();function A(e){switch(e.status){case"RUNNING":return n`Bulk operation in progress${e.objectCount>0?i.gray(` (${String(e.objectCount)} objects ${e.type==="MUTATION"?"written":"read"})`):""}`;case"CREATED":return n`Starting`;case"COMPLETED":return n`Bulk operation succeeded: ${i.gray(`${String(e.objectCount)} objects`)}`;case"FAILED":return n`Bulk operation failed. ${i.errorText(`Error: ${e.errorCode??"unknown"}`)}`;case"CANCELING":return n`Bulk operation canceling...`;case"CANCELED":return n`Bulk operation canceled.`;case"EXPIRED":return n`Bulk operation expired.`;default:return n`Bulk operation status: ${e.status}`}}function q(e,a){let t=e.map(o=>n`${o.field?.join(".")??"unknown"}: ${o.message}`.value).join(` `);k({headline:a,body:t})}function K(e){let a=A(e).value;switch(e.status){case"CANCELING":return{headline:"Bulk operation is being cancelled.",body:[`This may take a few moments. Check the status with: `,{command:`shopify app bulk status --id=${T(e.id)}`}],renderType:"success"};case"CANCELED":case"COMPLETED":case"FAILED":{let t=[n`ID: ${i.cyan(e.id)}`.value,n`Status: ${i.yellow(e.status)}`.value,n`Created at: ${i.gray(String(e.createdAt))}`.value,...e.completedAt?[n`Completed at: ${i.gray(String(e.completedAt))}`.value]:[]];return{headline:n`Bulk operation is already ${e.status.toLowerCase()}.`.value,body:n`This operation has already finished and can't be canceled.`.value,customSections:[{body:[{list:{items:t}}]}],renderType:"warning"}}case"CREATED":case"EXPIRED":case"RUNNING":return{headline:a,renderType:"info"}}}l();var I="2026-01";l();var C={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"GetBulkOperationById"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"id"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"ID"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"bulkOperation"},arguments:[{kind:"Argument",name:{kind:"Name",value:"id"},value:{kind:"Variable",name:{kind:"Name",value:"id"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"type"}},{kind:"Field",name:{kind:"Name",value:"completedAt"}},{kind:"Field",name:{kind:"Name",value:"createdAt"}},{kind:"Field",name:{kind:"Name",value:"errorCode"}},{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"objectCount"}},{kind:"Field",name:{kind:"Name",value:"partialDataUrl"}},{kind:"Field",name:{kind:"Name",value:"status"}},{kind:"Field",name:{kind:"Name",value:"url"}},{kind:"Field",name:{kind:"Name",value:"__typename"}}]}}]}}]};l();var h={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"ListBulkOperations"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"query"}},type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"first"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}}},{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"sortKey"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"BulkOperationsSortKeys"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"bulkOperations"},arguments:[{kind:"Argument",name:{kind:"Name",value:"first"},value:{kind:"Variable",name:{kind:"Name",value:"first"}}},{kind:"Argument",name:{kind:"Name",value:"query"},value:{kind:"Variable",name:{kind:"Name",value:"query"}}},{kind:"Argument",name:{kind:"Name",value:"sortKey"},value:{kind:"Variable",name:{kind:"Name",value:"sortKey"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"nodes"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"status"}},{kind:"Field",name:{kind:"Name",value:"errorCode"}},{kind:"Field",name:{kind:"Name",value:"objectCount"}},{kind:"Field",name:{kind:"Name",value:"createdAt"}},{kind:"Field",name:{kind:"Name",value:"completedAt"}},{kind:"Field",name:{kind:"Name",value:"url"}},{kind:"Field",name:{kind:"Name",value:"partialDataUrl"}},{kind:"Field",name:{kind:"Name",value:"__typename"}}]}},{kind:"Field",name:{kind:"Name",value:"__typename"}}]}}]}}]};function ke(e){return e.startsWith("gid://")?e:/^\d+$/.test(e)?`gid://shopify/BulkOperation/${e}`:e}function T(e){return e.match(/^gid:\/\/shopify\/BulkOperation\/(\d+)$/)?.[1]??e}async function ce(e){let{organization:a,storeFqdn:t,operationId:o,remoteApp:s}=e;m({headline:"Checking bulk operation status.",body:[{list:{items:D({organization:a,remoteApp:s,storeFqdn:t})}}]});let u=s.apiSecretKeys[0]?.secret;if(!u)throw new v("No API secret keys found for app");let d=await g(t,s.apiKey,u),p=await b({query:C,session:d,variables:{id:o},version:await S({adminSession:d,minimumDefaultVersion:I})});p.bulkOperation?F(p.bulkOperation):k({headline:"Bulk operation not found.",body:n`ID: ${i.yellow(o)}`.value})}async function ye(e){let{organization:a,storeFqdn:t,remoteApp:o}=e;m({headline:"Listing bulk operations.",body:[{list:{items:D({organization:a,remoteApp:o,storeFqdn:t})}}]});let s=o.apiSecretKeys[0]?.secret;if(!s)throw new v("No API secret keys found for app");let u=await g(t,o.apiKey,s),d=new Date(Date.now()-10080*60*1e3).toISOString().split("T")[0],c=(await b({query:h,session:u,variables:{query:`created_at:>=${d}`,first:100,sortKey:"CREATED_AT"},version:await S({adminSession:u,minimumDefaultVersion:I})})).bulkOperations.nodes.map(r=>({id:T(r.id),status:$(r.status),count:V(r.objectCount),dateCreated:N(new Date(String(r.createdAt))),dateFinished:r.completedAt?N(new Date(String(r.completedAt))):"",results:x(r.url??r.partialDataUrl)}));B(),c.length===0?m({body:"No bulk operations found in the last 7 days."}):E({rows:c,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"}}}),B()}function F(e){let{id:a,status:t,createdAt:o,completedAt:s,url:u,partialDataUrl:d}=e,p=A(e).value,c=L(o,s),r=n`ID: ${i.yellow(a)}\n${c}`.value;if(t==="COMPLETED"){let f=u?i.link("Download results",u):"";w({headline:p,body:n`${r}\n${f}`.value})}else if(t==="FAILED"){let f=d?i.link("Download partial results",d):"";k({headline:p,body:n`${r}\n${f}`.value})}else m({headline:p,body:r})}function L(e,a){let t=new Date;return a?`Finished ${O(new Date(String(a)),t)}`:`Started ${O(new Date(String(e)),t)}`}function $(e){return e==="COMPLETED"?y.green(e):e==="FAILED"?y.red(e):y.dim(e)}function V(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e)}function x(e){return e?n`${i.link("download",e)}`.value:""}export{I as a,C as b,ke as c,T as d,ce as e,ye as f,A as g,q as h,K as i};