import{a as g,b as A,d as w,g as k}from"./chunk-WMDYHUPS.js";import{a as S}from"./chunk-SRAHMYWJ.js";import{t as P}from"./chunk-5UXPTCSD.js";import{a as F}from"./chunk-6ZRHK4ON.js";import{a as G}from"./chunk-7XQDZF73.js";import{u as d,z as u}from"./chunk-2HZMOK4U.js";import{b,d as L}from"./chunk-Q6LCSRIW.js";import{J as f,a as c}from"./chunk-E24W34C4.js";import{Fb as h,Hb as y,Mb as n,Qb as v}from"./chunk-EYDNSYYE.js";import{r as x}from"./chunk-T6CC5WUU.js";import{e as q,g as i}from"./chunk-VKWPEFWQ.js";i();i();i();import{randomBytes as C}from"crypto";function M(){return C(32).toString("hex")}function T(r){let e=new URL(`http://localhost:${r.port}/graphiql`);return e.searchParams.set("key",r.key),r.query&&e.searchParams.set("query",r.query),r.variables&&e.searchParams.set("variables",r.variables),r.apiVersion&&e.searchParams.set("api_version",r.apiVersion),e.toString()}async function I(r){let e=await S(r.port),t=A({stdout:r.stdout??process.stdout,port:e,storeFqdn:r.storeFqdn,tokenProvider:r.tokenProvider,key:r.key,appContext:r.appContext,protectMutations:r.protectMutations}),a=T({port:e,key:r.key,query:r.query,variables:r.variables,apiVersion:r.apiVersion});try{n(y`GraphiQL is running at ${h.link(a)}`),r.additionalReadyMessages?.forEach(p=>n(p)),n("Press Ctrl+C to stop."),await f(a)||v("Browser did not open automatically. Open the URL above manually."),await O(r.abortSignal)}finally{t.close()}}async function O(r){let e=new c,t=()=>e.abort();process.once("SIGINT",t);try{await new Promise(a=>{if(e.signal.aborted||r?.aborted){a();return}e.signal.addEventListener("abort",()=>a(),{once:!0}),r?.addEventListener("abort",()=>e.abort(),{once:!0})})}finally{process.removeListener("SIGINT",t)}}async function Q(r){let e=r.remoteApp.apiSecretKeys[0]?.secret??"",t=g(void 0,e,r.store),a=k({apiKey:r.remoteApp.apiKey,apiSecret:e,storeFqdn:r.store}),l=await d(),p=w(r.store,r.remoteApp.apiKey,l);await I({port:r.port,storeFqdn:r.store,tokenProvider:a,key:t,appContext:{appName:r.remoteApp.title,appUrl:p,apiSecret:e},variables:r.variables,apiVersion:r.apiVersion,abortSignal:r.abortSignal})}var s=q(x(),1),m,o=class extends F{async run(){let{flags:e}=await this.parse(m),{appContextResult:t,store:a}=await P(e);return await Q({remoteApp:t.remoteApp,store:a.shopDomain,port:e.port,variables:e.variables,apiVersion:e.version}),{app:t.app}}};m=o;o.summary="Open a local GraphiQL UI for your app and store.";o.descriptionWithMarkdown=`Opens an authenticated Admin API GraphiQL UI for your app and selected store.

The app must be installed on the store.`;o.description=m.descriptionWithoutMarkdown();o.examples=["<%= config.bin %> <%= command.id %> --store shop.myshopify.com","<%= config.bin %> <%= command.id %> --store shop.myshopify.com --port 9123"];o.flags={...b,...G,store:s.Flags.string({char:"s",description:"The myshopify.com domain of the store to open GraphiQL against. The app must be installed on the store. If not specified, you will be prompted to select a store.",env:"SHOPIFY_FLAG_STORE",parse:async r=>u(r)}),port:L({description:"Local port for the GraphiQL server.",env:"SHOPIFY_FLAG_PORT"}),variables:s.Flags.string({char:"v",description:"The values for any GraphQL variables in your query or mutation, in JSON format.",env:"SHOPIFY_FLAG_VARIABLES"}),version:s.Flags.string({description:"The API version to use in GraphiQL. Defaults to the latest stable version.",env:"SHOPIFY_FLAG_VERSION"})};var ar=o;export{M as a,I as b,ar as c};
