@shopify/cli 4.8.3 → 4.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/dist/analytics-M4OC7RPG.js +1 -0
  2. package/dist/{analytics-VCJLTHBI.js → analytics-RGIJMP4U.js} +1 -1
  3. package/dist/bootstrap.js +1 -1
  4. package/dist/{chunk-7W7RGEII.js → chunk-2HW6VRJT.js} +1 -1
  5. package/dist/{chunk-OSMT4BVT.js → chunk-2HYR6EUD.js} +1 -1
  6. package/dist/{chunk-JKWKFDP7.js → chunk-2IRRFPEY.js} +1 -1
  7. package/dist/{chunk-FYVFGKCJ.js → chunk-2SL443J6.js} +1 -1
  8. package/dist/{chunk-5QCSJYJ4.js → chunk-2VJ6NBPV.js} +1 -1
  9. package/dist/{chunk-ALDLKZJW.js → chunk-2WATX3XV.js} +1 -1
  10. package/dist/{chunk-EQ7HQXEK.js → chunk-2ZROBXJX.js} +1 -1
  11. package/dist/{chunk-BV4K7JX5.js → chunk-3CZ7DKE5.js} +1 -1
  12. package/dist/{chunk-NG5FY45G.js → chunk-3DIRCEXA.js} +1 -1
  13. package/dist/{chunk-YKHDUKFK.js → chunk-3DT4NS4S.js} +1 -1
  14. package/dist/{chunk-77QBDEU4.js → chunk-3IQ6WXDD.js} +1 -1
  15. package/dist/{chunk-TNYPQ2UL.js → chunk-43FRAUV6.js} +3 -3
  16. package/dist/chunk-44QD4QNO.js +1 -0
  17. package/dist/{chunk-PUGAY4JP.js → chunk-4DLRS7MT.js} +3 -3
  18. package/dist/{chunk-34YS3IUO.js → chunk-4F3XYIEY.js} +1 -1
  19. package/dist/{chunk-F4S4ITHP.js → chunk-4HOJJCZ6.js} +1 -1
  20. package/dist/{chunk-Z6MS5OET.js → chunk-4OMKKYFC.js} +1 -1
  21. package/dist/{chunk-ZRFOMQ2L.js → chunk-4ZTRKEA2.js} +1 -1
  22. package/dist/{chunk-WXDINLQ6.js → chunk-5DMFEDKY.js} +1 -1
  23. package/dist/{chunk-CRSAEF22.js → chunk-5Z6EW3FA.js} +1 -1
  24. package/dist/{chunk-QGYETVYA.js → chunk-66G2HJ2A.js} +1 -1
  25. package/dist/{chunk-NTV746FL.js → chunk-66HW6J57.js} +1 -1
  26. package/dist/{chunk-6ECS5KDX.js → chunk-67QK26HI.js} +1 -1
  27. package/dist/{chunk-RIWEYVNK.js → chunk-6A3TDSON.js} +1 -1
  28. package/dist/{chunk-XNMDPOYU.js → chunk-6B727IUY.js} +1 -1
  29. package/dist/{chunk-T3IMDY72.js → chunk-6C5AVMKR.js} +3 -3
  30. package/dist/{chunk-AURREHRU.js → chunk-6CR2EEZ3.js} +1 -1
  31. package/dist/{chunk-Z3JINOCM.js → chunk-6P5FGN6P.js} +1 -1
  32. package/dist/chunk-6QADNGH4.js +6 -0
  33. package/dist/{chunk-F3FHSS7N.js → chunk-6V6UNUMM.js} +1 -1
  34. package/dist/chunk-6XLFFOPK.js +1 -0
  35. package/dist/{chunk-MQM3PRVN.js → chunk-74CYT3VX.js} +1 -1
  36. package/dist/{chunk-CM4QZI6V.js → chunk-7FVCUY54.js} +1 -1
  37. package/dist/{chunk-2NHLSPBM.js → chunk-7KLPRSQR.js} +1 -1
  38. package/dist/{chunk-ASBTWQJO.js → chunk-7LZ34C4S.js} +1 -1
  39. package/dist/{chunk-GK23CIPB.js → chunk-7VQBIGJB.js} +1 -1
  40. package/dist/{chunk-YJCNZGPY.js → chunk-A3U7JDUC.js} +1 -1
  41. package/dist/{chunk-J6BXYZRY.js → chunk-A3V2A2I4.js} +1 -1
  42. package/dist/{chunk-GSYVQPMP.js → chunk-A5U4KKNV.js} +1 -1
  43. package/dist/{chunk-7YBBERPS.js → chunk-AIILEPSK.js} +1 -1
  44. package/dist/{chunk-34EOYW4N.js → chunk-APUYMORT.js} +1 -1
  45. package/dist/{chunk-2E3JUVRC.js → chunk-AQPOPSQ7.js} +1 -1
  46. package/dist/{chunk-T5I2LEDJ.js → chunk-AU7GNCOK.js} +1 -1
  47. package/dist/{chunk-ULIXS6H7.js → chunk-BAWBC66R.js} +1 -1
  48. package/dist/{chunk-E767ITG2.js → chunk-BG7QQU23.js} +1 -1
  49. package/dist/{chunk-KIPKRAUB.js → chunk-BHJ3TGS7.js} +1 -1
  50. package/dist/{chunk-TWTZLWO7.js → chunk-BHTHUKHU.js} +1 -1
  51. package/dist/{chunk-3D3IYIZ7.js → chunk-BV62ZERJ.js} +1 -1
  52. package/dist/{chunk-46ISGKTW.js → chunk-BYX7SQPM.js} +1 -1
  53. package/dist/{chunk-EIEPBDNX.js → chunk-C4Y7PQDQ.js} +1 -1
  54. package/dist/{chunk-LUSG2EHB.js → chunk-CBMX6XI7.js} +1 -1
  55. package/dist/{chunk-C2AA5NVP.js → chunk-CFQ5G2QS.js} +1 -1
  56. package/dist/{chunk-IAURXPUJ.js → chunk-CNK3ZO2B.js} +4 -4
  57. package/dist/{chunk-M7YZJWY3.js → chunk-CP56F5UR.js} +1 -1
  58. package/dist/{chunk-4ZMWIIJV.js → chunk-CSOCXWP6.js} +98 -92
  59. package/dist/{chunk-NKSLEPE2.js → chunk-CVW2HMQO.js} +1 -1
  60. package/dist/{chunk-6TPUTSNR.js → chunk-D6LQ56XT.js} +1 -1
  61. package/dist/{chunk-I7XKF22Z.js → chunk-D6QTOQEJ.js} +1 -1
  62. package/dist/{chunk-GKRGXRD4.js → chunk-DDZEYA2I.js} +1 -1
  63. package/dist/{chunk-TEHDOYO2.js → chunk-DH3DMUE2.js} +1 -1
  64. package/dist/{chunk-CNDB4VEM.js → chunk-DO4SRE4M.js} +1 -1
  65. package/dist/{chunk-E2IUEX5H.js → chunk-DUNE3INK.js} +1 -1
  66. package/dist/{chunk-BQTD7UV2.js → chunk-DZZORIWL.js} +1 -1
  67. package/dist/{chunk-BIV3GWMB.js → chunk-EJJPEWSB.js} +1 -1
  68. package/dist/{chunk-TBC5FH2W.js → chunk-EQ2PD2ZA.js} +1 -1
  69. package/dist/{chunk-4XZJKSDD.js → chunk-ERBXXVOZ.js} +1 -1
  70. package/dist/{chunk-NS7QRCJF.js → chunk-FGRW7GT4.js} +1 -1
  71. package/dist/{chunk-CYSB5AJJ.js → chunk-FRRA5MI2.js} +1 -1
  72. package/dist/{chunk-PYCGZSME.js → chunk-FRVRTOTF.js} +1 -1
  73. package/dist/{chunk-CF3PBTFV.js → chunk-FW3RORD7.js} +1 -1
  74. package/dist/{chunk-B3GLHLAQ.js → chunk-FY47X4NG.js} +1 -1
  75. package/dist/{chunk-SVO2M3F5.js → chunk-G2YTINLI.js} +1 -1
  76. package/dist/{chunk-7YDT5AOW.js → chunk-GGPMDCCB.js} +1 -1
  77. package/dist/{chunk-RVEAQUUF.js → chunk-GINXNPAR.js} +1 -1
  78. package/dist/{chunk-DDWJRJWW.js → chunk-GJHBAOGJ.js} +1 -1
  79. package/dist/{chunk-BR3GYG2H.js → chunk-GTAYTMCP.js} +1 -1
  80. package/dist/{chunk-FKW62ZUV.js → chunk-H2HR2AQE.js} +1 -1
  81. package/dist/{chunk-GO4KOSHA.js → chunk-H7TDIRIU.js} +1 -1
  82. package/dist/{chunk-JGSHB34D.js → chunk-HINK4QAR.js} +1 -1
  83. package/dist/{chunk-G52SCW6W.js → chunk-HXVUDGLH.js} +1 -1
  84. package/dist/{chunk-56362WJR.js → chunk-HYM3HBDG.js} +1 -1
  85. package/dist/{chunk-VTKZJ6MD.js → chunk-HYPY5WH6.js} +1 -1
  86. package/dist/{chunk-AQJEA33T.js → chunk-IHEBV2KO.js} +1 -1
  87. package/dist/{chunk-HEABWGTV.js → chunk-IHH5XTPV.js} +1 -1
  88. package/dist/{chunk-3DXA7B3Y.js → chunk-JJJIRCQP.js} +1 -1
  89. package/dist/{chunk-N34YKDEK.js → chunk-JQPPLSFT.js} +1 -1
  90. package/dist/{chunk-5QNB6464.js → chunk-JWHQPDOK.js} +1 -1
  91. package/dist/{chunk-OZJBUWZK.js → chunk-JXG2T76F.js} +1 -1
  92. package/dist/{chunk-BR5CFKIN.js → chunk-K2DP5Z76.js} +1 -1
  93. package/dist/{chunk-B52JFWYO.js → chunk-KUZ5Z6HM.js} +1 -1
  94. package/dist/{chunk-3X7XO4LN.js → chunk-KWQGJ3VC.js} +1 -1
  95. package/dist/{chunk-AU2OGZBS.js → chunk-KZU727AL.js} +1 -1
  96. package/dist/{chunk-YSOLGBU3.js → chunk-L2DCUVZV.js} +1 -1
  97. package/dist/{chunk-RPM2BFMN.js → chunk-L3JBKCAS.js} +1 -1
  98. package/dist/{chunk-HG63NM4M.js → chunk-L3M7PTHU.js} +1 -1
  99. package/dist/{chunk-MF2PINFC.js → chunk-L4LDNEFK.js} +1 -1
  100. package/dist/{chunk-2AFQC53K.js → chunk-LAMTFOVF.js} +1 -1
  101. package/dist/{chunk-LOSBZZHU.js → chunk-LBA6FGKC.js} +1 -1
  102. package/dist/{chunk-ZC7FWXYM.js → chunk-LEW5IJK6.js} +1 -1
  103. package/dist/{chunk-UCP6UA7M.js → chunk-LX5UXWZ7.js} +1 -1
  104. package/dist/{chunk-XBL6HWDC.js → chunk-M7VQLMSW.js} +1 -1
  105. package/dist/{chunk-RAJX2CQP.js → chunk-MBRFIXCU.js} +1 -1
  106. package/dist/{chunk-VEXW766J.js → chunk-MYLMGH7Y.js} +1 -1
  107. package/dist/{chunk-I44E5KLI.js → chunk-NBXXTQWA.js} +1 -1
  108. package/dist/{chunk-VCJ252CK.js → chunk-NDT3F2PR.js} +1 -1
  109. package/dist/{chunk-QIGFVVLB.js → chunk-NHOF2IN6.js} +1 -1
  110. package/dist/{chunk-2C27YWUC.js → chunk-NKC3K3XP.js} +1 -1
  111. package/dist/chunk-O72SHE3Q.js +7 -0
  112. package/dist/chunk-OAG72Q2O.js +1 -0
  113. package/dist/{chunk-SUQF2LM7.js → chunk-OPOPO7DG.js} +1 -1
  114. package/dist/{chunk-MI5HPOXV.js → chunk-OUA6EOLX.js} +1 -1
  115. package/dist/{chunk-CSNXCRPY.js → chunk-OY6L7J53.js} +1 -1
  116. package/dist/{chunk-DGZCOTKZ.js → chunk-OYCAYEQE.js} +1 -1
  117. package/dist/{chunk-65DQFHSH.js → chunk-PGWQHSDV.js} +1 -1
  118. package/dist/{chunk-777JJJYW.js → chunk-PM3HRKPR.js} +1 -1
  119. package/dist/{chunk-BO45JVQ3.js → chunk-PNNW7YQG.js} +1 -1
  120. package/dist/{chunk-ETHKJFFN.js → chunk-POMWFTBD.js} +1 -1
  121. package/dist/{chunk-RM3XC2IX.js → chunk-QKTBYAUD.js} +1 -1
  122. package/dist/{chunk-PERAXNOY.js → chunk-QVO5CAJN.js} +2 -2
  123. package/dist/{chunk-E6DIK7Z7.js → chunk-QXR5DJC2.js} +1 -1
  124. package/dist/{chunk-O4ZMMPEP.js → chunk-QZEDYQVT.js} +1 -1
  125. package/dist/{chunk-BU4EGAMH.js → chunk-R3GLEZSE.js} +1 -1
  126. package/dist/{chunk-DE3HBSUU.js → chunk-RDS2WYQH.js} +1 -1
  127. package/dist/{chunk-SLZ6UMVV.js → chunk-RHBLXZGU.js} +1 -1
  128. package/dist/{chunk-6QDI53VP.js → chunk-RHNZA4IL.js} +1 -1
  129. package/dist/{chunk-HHWZV7CG.js → chunk-RIM7FNP3.js} +1 -1
  130. package/dist/{chunk-HPGQGIPA.js → chunk-S5H5U3PR.js} +1 -1
  131. package/dist/{chunk-KLI5Z5RC.js → chunk-SCLGMVNB.js} +1 -1
  132. package/dist/{chunk-EIASA32Z.js → chunk-SPNM3GES.js} +1 -1
  133. package/dist/{chunk-SYJXM2RN.js → chunk-SVYHWGMI.js} +1 -1
  134. package/dist/{chunk-AWTBC3MC.js → chunk-T4V7KOGJ.js} +3 -3
  135. package/dist/{chunk-PZH4WAOO.js → chunk-TA2M37OB.js} +1 -1
  136. package/dist/{chunk-4CLJ6W23.js → chunk-TAY7HU7X.js} +2 -2
  137. package/dist/{chunk-KSSPT7G5.js → chunk-TCFGEOE4.js} +12 -12
  138. package/dist/{chunk-SASKWPDJ.js → chunk-U6URYCC6.js} +1 -1
  139. package/dist/{chunk-MPO2T5YQ.js → chunk-UJBMY5WR.js} +1 -1
  140. package/dist/{chunk-SZ2V5WT6.js → chunk-UPGRXCFS.js} +1 -1
  141. package/dist/{chunk-6NO44HAQ.js → chunk-V2GLAK2W.js} +1 -1
  142. package/dist/{chunk-O2YFSYDR.js → chunk-V4774HTF.js} +1 -1
  143. package/dist/{chunk-XCTRPBWM.js → chunk-VBICZDA4.js} +1 -1
  144. package/dist/{chunk-T7BQYKKT.js → chunk-VDGTHMIQ.js} +1 -1
  145. package/dist/{chunk-3U7O3PMX.js → chunk-VETLNJ56.js} +1 -1
  146. package/dist/{chunk-UU3VUYVX.js → chunk-VG3YVCZW.js} +1 -1
  147. package/dist/chunk-VJ5YOXKL.js +1 -0
  148. package/dist/{chunk-5VBEPL4S.js → chunk-W4SGAPPR.js} +1 -1
  149. package/dist/{chunk-PXM3ENVN.js → chunk-W4SQE6NR.js} +1 -1
  150. package/dist/{chunk-OI3MNE72.js → chunk-WAJRWCZY.js} +1 -1
  151. package/dist/{chunk-WKC5HDMY.js → chunk-WGFGWDWP.js} +1 -1
  152. package/dist/{chunk-UI75K6AX.js → chunk-WGUCRVII.js} +1 -1
  153. package/dist/{chunk-U5APMZGT.js → chunk-WY7QF7VU.js} +1 -1
  154. package/dist/{chunk-HZASAGTU.js → chunk-X4V2CD2H.js} +1 -1
  155. package/dist/{chunk-AHJT2Z7G.js → chunk-XHXKPRF5.js} +1 -1
  156. package/dist/{chunk-WE72MX7V.js → chunk-XKHKXUQY.js} +1 -1
  157. package/dist/chunk-XOYICV6P.js +1 -0
  158. package/dist/{chunk-HLLMMIIM.js → chunk-XRJCD3AO.js} +1 -1
  159. package/dist/{chunk-XSFF6KEB.js → chunk-XWXAFJFC.js} +1 -1
  160. package/dist/{chunk-QCMGYBFD.js → chunk-XYUTD6IU.js} +1 -1
  161. package/dist/{chunk-5YSO5HRH.js → chunk-Y4BBTWM5.js} +1 -1
  162. package/dist/{chunk-LZSDOB4O.js → chunk-YHTONNIZ.js} +1 -1
  163. package/dist/{chunk-6ZGCTTAD.js → chunk-YNFXYVYN.js} +1 -1
  164. package/dist/{chunk-BAUHOB76.js → chunk-Z2HN5L6G.js} +1 -1
  165. package/dist/{chunk-ZBMPFLOH.js → chunk-Z5KYKXMH.js} +1 -1
  166. package/dist/{chunk-RFORHGOR.js → chunk-ZAH6QID2.js} +1 -1
  167. package/dist/{chunk-PXAYMXQN.js → chunk-ZCNNJCTQ.js} +1 -1
  168. package/dist/chunk-ZVA5F4QC.js +272 -0
  169. package/dist/{chunk-ERMLZF2C.js → chunk-ZVJD6CUY.js} +1 -1
  170. package/dist/cli/commands/app/app-logs/sources.js +1 -1
  171. package/dist/cli/commands/app/build.js +1 -1
  172. package/dist/cli/commands/app/bulk/cancel.js +1 -1
  173. package/dist/cli/commands/app/bulk/execute.js +1 -1
  174. package/dist/cli/commands/app/bulk/status.js +1 -1
  175. package/dist/cli/commands/app/config/link.js +1 -1
  176. package/dist/cli/commands/app/config/pull.js +1 -1
  177. package/dist/cli/commands/app/config/use.js +1 -1
  178. package/dist/cli/commands/app/config/validate.js +1 -1
  179. package/dist/cli/commands/app/demo/watcher.js +1 -1
  180. package/dist/cli/commands/app/deploy.js +1 -1
  181. package/dist/cli/commands/app/dev/clean.js +1 -1
  182. package/dist/cli/commands/app/dev.js +1 -1
  183. package/dist/cli/commands/app/doctor/instructions.js +1 -1
  184. package/dist/cli/commands/app/doctor.js +1 -1
  185. package/dist/cli/commands/app/env/pull.js +1 -1
  186. package/dist/cli/commands/app/env/show.js +1 -1
  187. package/dist/cli/commands/app/execute.js +1 -1
  188. package/dist/cli/commands/app/function/build.js +1 -1
  189. package/dist/cli/commands/app/function/info.js +1 -1
  190. package/dist/cli/commands/app/function/replay.js +1 -1
  191. package/dist/cli/commands/app/function/run.js +1 -1
  192. package/dist/cli/commands/app/function/schema.js +1 -1
  193. package/dist/cli/commands/app/function/typegen.js +1 -1
  194. package/dist/cli/commands/app/generate/extension.js +1 -1
  195. package/dist/cli/commands/app/graphiql.js +1 -1
  196. package/dist/cli/commands/app/import-custom-data-definitions.js +1 -1
  197. package/dist/cli/commands/app/import-extensions.js +1 -1
  198. package/dist/cli/commands/app/info.js +1 -1
  199. package/dist/cli/commands/app/init.js +1 -1
  200. package/dist/cli/commands/app/logs.js +1 -1
  201. package/dist/cli/commands/app/release.js +1 -1
  202. package/dist/cli/commands/app/subscription-migrations/cancel.js +1 -1
  203. package/dist/cli/commands/app/subscription-migrations/list.js +1 -1
  204. package/dist/cli/commands/app/subscription-migrations/schedule.js +1 -1
  205. package/dist/cli/commands/app/subscription-migrations/status.js +1 -1
  206. package/dist/cli/commands/app/subscription-migrations/unschedule.js +1 -1
  207. package/dist/cli/commands/app/versions/list.js +1 -1
  208. package/dist/cli/commands/app/webhook/trigger.js +1 -1
  209. package/dist/cli/commands/auth/login.js +1 -1
  210. package/dist/cli/commands/auth/logout.js +1 -1
  211. package/dist/cli/commands/cache/clear.js +1 -1
  212. package/dist/cli/commands/config/autoupgrade/off.js +1 -1
  213. package/dist/cli/commands/config/autoupgrade/on.js +1 -1
  214. package/dist/cli/commands/config/autoupgrade/status.js +1 -1
  215. package/dist/cli/commands/debug/command-flags.js +1 -1
  216. package/dist/cli/commands/doc/fetch.js +1 -1
  217. package/dist/cli/commands/doc/search.js +1 -1
  218. package/dist/cli/commands/docs/generate.js +1 -1
  219. package/dist/cli/commands/doctor-release/doctor-release.js +1 -1
  220. package/dist/cli/commands/doctor-release/theme/index.js +1 -1
  221. package/dist/cli/commands/help.js +1 -1
  222. package/dist/cli/commands/kitchen-sink/async.js +1 -1
  223. package/dist/cli/commands/kitchen-sink/index.js +1 -1
  224. package/dist/cli/commands/kitchen-sink/prompts.js +1 -1
  225. package/dist/cli/commands/kitchen-sink/static.js +1 -1
  226. package/dist/cli/commands/notifications/generate.js +1 -1
  227. package/dist/cli/commands/notifications/list.js +1 -1
  228. package/dist/cli/commands/organization/list.js +1 -1
  229. package/dist/cli/commands/search.js +1 -1
  230. package/dist/cli/commands/send-analytics.js +1 -1
  231. package/dist/cli/commands/theme/check.js +1 -1
  232. package/dist/cli/commands/theme/console.js +1 -1
  233. package/dist/cli/commands/theme/delete.js +1 -1
  234. package/dist/cli/commands/theme/dev.js +1 -1
  235. package/dist/cli/commands/theme/duplicate.js +1 -1
  236. package/dist/cli/commands/theme/info.js +1 -1
  237. package/dist/cli/commands/theme/init.js +1 -1
  238. package/dist/cli/commands/theme/language-server.js +1 -1
  239. package/dist/cli/commands/theme/list.js +1 -1
  240. package/dist/cli/commands/theme/metafields/pull.js +1 -1
  241. package/dist/cli/commands/theme/open.js +1 -1
  242. package/dist/cli/commands/theme/package.js +1 -1
  243. package/dist/cli/commands/theme/preview.js +1 -1
  244. package/dist/cli/commands/theme/profile.js +1 -1
  245. package/dist/cli/commands/theme/publish.js +1 -1
  246. package/dist/cli/commands/theme/pull.js +1 -1
  247. package/dist/cli/commands/theme/push.js +1 -1
  248. package/dist/cli/commands/theme/rename.js +1 -1
  249. package/dist/cli/commands/theme/share.js +1 -1
  250. package/dist/cli/commands/upgrade.js +1 -1
  251. package/dist/cli/commands/version.js +1 -1
  252. package/dist/command-registry.js +1 -1
  253. package/dist/{conf-store-F4NCJPWK.js → conf-store-H3UAVGN5.js} +1 -1
  254. package/dist/configs/all.yml +8 -5
  255. package/dist/configs/recommended.yml +8 -5
  256. package/dist/data/objects.json +487 -75
  257. package/dist/data/shopify_system_translations.json +8 -7
  258. package/dist/data/tags.json +23 -0
  259. package/dist/{deprecations-PX5KIFDO.js → deprecations-TEUM7CML.js} +1 -1
  260. package/dist/dist-62I5X3FS.js +1 -0
  261. package/dist/dist-YHZ5BTYD.js +1 -0
  262. package/dist/{environments-TLO674UK.js → environments-LAFWOQWO.js} +1 -1
  263. package/dist/{error-YLDXWEC5.js → error-6ZCGAC5E.js} +1 -1
  264. package/dist/error-handler-JNCW56EC.js +1 -0
  265. package/dist/{fs-CDN2NZJC.js → fs-QEWOWUPQ.js} +1 -1
  266. package/dist/hooks/did-you-mean.js +1 -1
  267. package/dist/hooks/hydrogen-init.js +1 -1
  268. package/dist/hooks/postrun.js +1 -1
  269. package/dist/hooks/prerun.js +1 -1
  270. package/dist/hooks/public-metadata.js +1 -1
  271. package/dist/hooks/sensitive-metadata.js +1 -1
  272. package/dist/hooks/tunnel-provider.js +1 -1
  273. package/dist/hooks/tunnel-start.js +1 -1
  274. package/dist/index.js +1 -1
  275. package/dist/{is-global-KBYTYD3Y.js → is-global-UYMEAGDR.js} +1 -1
  276. package/dist/{local-IBYCFEVA.js → local-Z4ZEMWE4.js} +1 -1
  277. package/dist/{metadata-LOCKHSUF.js → metadata-ZCQMB5AB.js} +1 -1
  278. package/dist/{node-package-manager-ESOHDRPJ.js → node-package-manager-HMOTOBDS.js} +1 -1
  279. package/dist/notifications-system-RT3CY6LZ.js +1 -0
  280. package/dist/os-G6KDPJMC.js +1 -0
  281. package/dist/{output-OAORC6TH.js → output-BJCZYDNG.js} +1 -1
  282. package/dist/{system-VNXEM5E7.js → system-T4H2ISV6.js} +1 -1
  283. package/dist/tsconfig.tsbuildinfo +1 -1
  284. package/dist/{ui-CIZHMGKK.js → ui-4MQSY5IN.js} +1 -1
  285. package/dist/upgrade-4234MIYJ.js +1 -0
  286. package/dist/version-FRSRSCRX.js +1 -0
  287. package/dist/{version-JJYR4NOL.js → version-RF7QQXRX.js} +1 -1
  288. package/dist/{workerd-JWZNKSHU.js → workerd-7E4H2DM3.js} +1 -1
  289. package/oclif.manifest.json +1 -1
  290. package/package.json +7 -7
  291. package/dist/analytics-AL5WLCEC.js +0 -1
  292. package/dist/chunk-3CFHLIBD.js +0 -7
  293. package/dist/chunk-4EHFK2OI.js +0 -1
  294. package/dist/chunk-BJ3JF35I.js +0 -6
  295. package/dist/chunk-ENEPD4BS.js +0 -1
  296. package/dist/chunk-EWKIFVW3.js +0 -273
  297. package/dist/chunk-NNCLTG6A.js +0 -1
  298. package/dist/chunk-PJH3JJEQ.js +0 -1
  299. package/dist/chunk-RV4UQZ2W.js +0 -1
  300. package/dist/dist-WO24PYXH.js +0 -1
  301. package/dist/dist-X7YIFLSP.js +0 -1
  302. package/dist/error-handler-SY45FR6A.js +0 -1
  303. package/dist/notifications-system-EMCOAF3T.js +0 -1
  304. package/dist/os-XLJNYIZF.js +0 -1
  305. package/dist/upgrade-AIZVY3E5.js +0 -1
  306. package/dist/version-CNIDTUMV.js +0 -1
@@ -1,4 +1,4 @@
1
- import{a as i}from"./chunk-GCN4O7HM.js";import{b as r}from"./chunk-PUGAY4JP.js";import{y as e}from"./chunk-T3IMDY72.js";import{t}from"./chunk-RM3XC2IX.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();var o=class extends r{static summary="Enable automatic upgrades for Shopify CLI.";static descriptionWithMarkdown=`Enable automatic upgrades for Shopify CLI.
1
+ import{a as i}from"./chunk-GCN4O7HM.js";import{b as r}from"./chunk-4DLRS7MT.js";import{y as e}from"./chunk-6C5AVMKR.js";import{t}from"./chunk-QKTBYAUD.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();var o=class extends r{static summary="Enable automatic upgrades for Shopify CLI.";static descriptionWithMarkdown=`Enable automatic upgrades for Shopify CLI.
2
2
 
3
3
  When auto-upgrade is enabled, Shopify CLI automatically updates to the latest version once per day. Major version upgrades are skipped and must be done manually.
4
4
 
@@ -1 +1 @@
1
- import{H as m,I as d,x as c}from"./chunk-T3IMDY72.js";import{pb as w,qb as n,sb as a}from"./chunk-TNYPQ2UL.js";import{g as o}from"./chunk-VKWPEFWQ.js";o();async function P(){let r,l=new Promise(function(e,i){r=e});await c({processes:[{prefix:"backend",action:async(e,i,s)=>{e.write("first backend message"),await new Promise(t=>setTimeout(t,1e3)),e.write("second backend message"),await new Promise(t=>setTimeout(t,1e3)),e.write("third backend message"),await new Promise(t=>setTimeout(t,1e3)),r()}},{prefix:"frontend",action:async(e,i,s)=>{await l,e.write("first frontend message"),await new Promise(t=>setTimeout(t,1e3)),e.write("second frontend message"),await new Promise(t=>setTimeout(t,1e3)),e.write("third frontend message")}}]}),await m([{title:"Installing dependencies",task:async()=>{await new Promise(e=>setTimeout(e,2e3))}},{title:"Downloading assets",task:async()=>{await new Promise(e=>setTimeout(e,2e3))}}]),await d({title:new w("Importing data"),task:async e=>{for(let i=1;i<=10;i++){await new Promise(t=>setTimeout(t,500));let s=a`Importing data ${n.italic(a`(${n.green(i.toString())} complete)`)}`;e(s)}return"completed"}})}export{P as a};
1
+ import{H as m,I as d,x as c}from"./chunk-6C5AVMKR.js";import{pb as w,qb as n,sb as a}from"./chunk-43FRAUV6.js";import{g as o}from"./chunk-VKWPEFWQ.js";o();async function P(){let r,l=new Promise(function(e,i){r=e});await c({processes:[{prefix:"backend",action:async(e,i,s)=>{e.write("first backend message"),await new Promise(t=>setTimeout(t,1e3)),e.write("second backend message"),await new Promise(t=>setTimeout(t,1e3)),e.write("third backend message"),await new Promise(t=>setTimeout(t,1e3)),r()}},{prefix:"frontend",action:async(e,i,s)=>{await l,e.write("first frontend message"),await new Promise(t=>setTimeout(t,1e3)),e.write("second frontend message"),await new Promise(t=>setTimeout(t,1e3)),e.write("third frontend message")}}]}),await m([{title:"Installing dependencies",task:async()=>{await new Promise(e=>setTimeout(e,2e3))}},{title:"Downloading assets",task:async()=>{await new Promise(e=>setTimeout(e,2e3))}}]),await d({title:new w("Importing data"),task:async e=>{for(let i=1;i<=10;i++){await new Promise(t=>setTimeout(t,500));let s=a`Importing data ${n.italic(a`(${n.green(i.toString())} complete)`)}`;e(s)}return"completed"}})}export{P as a};
@@ -0,0 +1,6 @@
1
+ import{S as v,a as S}from"./chunk-6C5AVMKR.js";import{l as O,n as W}from"./chunk-QKTBYAUD.js";import{f as y}from"./chunk-XRJCD3AO.js";import{h as u,k as L}from"./chunk-OAG72Q2O.js";import{a as I}from"./chunk-CX5CC6P5.js";import{$a as F,Ab as d,Ta as w,Ua as i,Wa as D,jb as B,ma as x,qb as c,sb as s,ua as _}from"./chunk-43FRAUV6.js";import{d as r,i as k}from"./chunk-773TIA5M.js";import{e as R,g as f}from"./chunk-VKWPEFWQ.js";f();f();function b(e,n){try{return JSON.parse(e)}catch(a){let t=a instanceof Error?a.message:String(a),o=n?` from ${n}`:"";throw new u(`Failed to parse JSON${o}.
2
+ ${t}`)}}var l=R(I(),1),N="yarn.lock",j="package-lock.json",$="pnpm-lock.yaml",C="bun.lockb",J="bun.lock",T="pnpm-workspace.yaml",we=[N,$,j,C,J],ye={yarn:[N],npm:[j],pnpm:[$],bun:[C,J],homebrew:[],unknown:[]},E=["yarn","npm","pnpm","bun","homebrew","unknown"],M=class extends u{constructor(){super("Unknown package manager")}},h=class extends u{constructor(n){super(s`The directory ${c.path(n)} doesn't have a package.json.`)}},P=class extends L{constructor(n){super(s`Couldn't find a a package.json traversing directories from ${c.path(n)}`)}};function V(e=process.env){let n=e.npm_config_user_agent;return["yarn","pnpm","bun","npm"].find(a=>n?.includes(a))??"unknown"}function U(e){return i(r(e,C))||i(r(e,J))}function G(e){switch(e){case"yarn":case"npm":case"pnpm":case"bun":return e;case"homebrew":case"unknown":return"npm"}}function K(e,n,...a){switch(e){case"npm":return{command:"npm",args:["exec","--",n,...a]};case"pnpm":return{command:"pnpm",args:["exec",n,...a]};case"yarn":return{command:"yarn",args:["run",n,...a]};case"bun":return{command:"bun",args:["x",n,...a]}}}async function A(e){let n=e;for(d(s`Looking for a lockfile in ${c.path(n)}...`);;){if(i(r(n,N)))return"yarn";if(i(r(n,$))||i(r(n,T)))return"pnpm";if(U(n))return"bun";if(i(r(n,j)))return"npm";let t=k(n);if(t===n)break;n=t}let a=V();return a!=="unknown"?a:"npm"}async function he(e,n,...a){let t=G(await A(e));return K(t,n,...a)}async function xe(e){let n=await D(r(e.directory,"**/package.json"),{ignore:[r(e.directory,"node_modules/**/package.json")],cwd:e.directory,onlyFiles:!0,deep:e.deep}),a=new S;try{await Promise.all(n.map(async t=>{let o=k(t);await z({directory:o,packageManager:e.packageManager,stdout:void 0,stderr:void 0,signal:a.signal,args:[]})}))}catch(t){throw a.abort(),t}}async function z(e){let n={cwd:e.directory,stdin:void 0,stdout:e.stdout,stderr:e.stderr,signal:e.signal},a=["install"];e.args&&(a=a.concat(e.args)),await y("cmd_all_timing_network_ms")(async()=>{await v(e.packageManager,a,n)})}async function ve(e){return(await m(e)).name}async function be(e){return(await m(e)).version}async function H(e){let n=await m(e),a=n.dependencies??{},t=n.devDependencies??{};return{...a,...t}}async function Me(e){let n=r(e,"package.json"),a=await m(n),t=r(e,T);return!!a.workspaces||w(t)}async function Pe(e,n,{cacheExpiryInHours:a=0}={}){let t=async()=>(d(s`Checking if there's a version of ${e} newer than ${n}`),ne(e)),o=`npm-package-${e}`,p;try{p=await O(o,t,a*3600*1e3)}catch{return}if(p&&new l.SemVer(n).compare(p)<0)return p}function Ne(e,n){let a=`npm-package-${e}`,t=W(a)?.value;if(t&&new l.SemVer(n).compare(t)<0)return t}function je(e,n){return(0,l.satisfies)(e,n)}async function m(e){if(!await w(e))throw new h(k(e));return b(await x(e),e)}async function Y(e,n){d(s`Adding the following dependencies if needed:
3
+ ${c.json(e)}
4
+ With options:
5
+ ${c.json(n)}
6
+ `);let a=r(n.directory,"package.json");if(!await w(a))throw new h(n.directory);let t=Object.keys(await H(a)),o=e.filter(p=>!t.includes(p.name));o.length!==0&&await q(o,n)}async function q(e,n){let a=e.map(t=>t.version?`${t.name}@${t.version}`:t.name);switch(n.stdout?.write(`Installing ${a.join(" ")} with ${n.packageManager}`),n.packageManager){case"npm":for(let t of a)await g(n,Q(t,n.type));break;case"yarn":await g(n,X(a,n.type,!!n.addToRootDirectory));break;case"pnpm":await g(n,Z(a,n.type,!!n.addToRootDirectory));break;case"bun":await g(n,ee(a,n.type)),await g(n,["install"]);break;case"homebrew":throw new u("Homebrew can't be used to install project dependencies. Use npm, yarn, pnpm, or bun.");case"unknown":throw new M}}async function g(e,n){return y("cmd_all_timing_network_ms")(async()=>v(e.packageManager,n,{cwd:e.directory,stdout:e.stdout,stderr:e.stderr,signal:e.signal}))}async function $e(e,n){await Y(e.map(a=>({name:a,version:void 0})),n)}function Q(e,n){let t=["install",e,{dev:"--save-dev",peer:"--save-peer",prod:"--save-prod"}[n]];return e.match(/@\d/g)&&t.push("--save-exact"),t}function X(e,n,a=!1){let t={dev:"--dev",peer:"--peer",prod:"--prod"};return["add",...a?["-W"]:[],...e,t[n]]}function Z(e,n,a=!1){let t={dev:"--save-dev",peer:"--save-peer",prod:"--save-prod"};return["add",...a?["-w"]:[],...e,t[n]]}function ee(e,n){let t={dev:"--development",peer:"--optional"}[n];return["add",...e,...t?[t]:[]]}async function Ce(e){let n=await F("package.json",{cwd:e,type:"file"});if(n){let a=b(await x(n),n);return{path:n,content:a}}else throw new P(e)}async function Je(e,n){let a=await A(e),t=await m(r(e,"package.json")),o=a==="yarn"?"resolutions":"overrides";t[o]={...t[o],...n},await ae(e,t)}async function ne(e){return d(s`Getting the latest version of NPM package: ${c.raw(e)}`),y("cmd_all_timing_network_ms")(async()=>{let{default:n}=await import("./latest-version-LDWU5F7A.js");return n(e)})}async function ae(e,n){d(s`JSON-encoding and writing content to package.json at ${c.path(e)}...`);let a=r(e,"package.json");await _(a,JSON.stringify(n,null,2))}function _e(e,n=process.env){if(e&&E.includes(e))return e;let a=V(n);if(a!=="unknown")return a;let t=B();return t!=="unknown"?t:"npm"}export{N as a,j as b,$ as c,C as d,T as e,we as f,ye as g,E as h,M as i,h as j,P as k,V as l,A as m,he as n,xe as o,z as p,ve as q,be as r,H as s,Me as t,Pe as u,Ne as v,je as w,m as x,Y as y,q as z,$e as A,Ce as B,Je as C,ae as D,_e as E};
@@ -1,3 +1,3 @@
1
- import{a as h}from"./chunk-E2IUEX5H.js";import{p as m,v as a}from"./chunk-CNDB4VEM.js";import{b as n}from"./chunk-BR5CFKIN.js";import{xa as t}from"./chunk-IAURXPUJ.js";import{a as w}from"./chunk-CTNBSUVU.js";import{S as s}from"./chunk-TNYPQ2UL.js";import{e as u,g as i}from"./chunk-VKWPEFWQ.js";i();var r=u(w(),1);var o=class extends a{static summary="Creates a shareable, unpublished, and new theme on your theme library with a randomized name.";static descriptionWithMarkdown=`Uploads your theme as a new, unpublished theme in your theme library. The theme is given a randomized name.
1
+ import{a as h}from"./chunk-DUNE3INK.js";import{p as m,v as a}from"./chunk-DO4SRE4M.js";import{b as n}from"./chunk-K2DP5Z76.js";import{xa as t}from"./chunk-CNK3ZO2B.js";import{a as w}from"./chunk-CTNBSUVU.js";import{S as s}from"./chunk-43FRAUV6.js";import{e as u,g as i}from"./chunk-VKWPEFWQ.js";i();var r=u(w(),1);var o=class extends a{static summary="Creates a shareable, unpublished, and new theme on your theme library with a randomized name.";static descriptionWithMarkdown=`Uploads your theme as a new, unpublished theme in your theme library. The theme is given a randomized name.
2
2
 
3
3
  This command returns a [preview link](https://help.shopify.com/manual/online-store/themes/adding-themes#share-a-theme-preview-with-others) that you can share with others.`;static description=this.descriptionWithoutMarkdown();static flags={...n,...m,force:r.Flags.boolean({hidden:!0,char:"f",description:"Proceed without confirmation, if current directory does not seem to be theme directory.",env:"SHOPIFY_FLAG_FORCE"}),listing:r.Flags.string({description:"The listing preset to use for multi-preset themes. Applies preset files from listings/[preset-name] directory.",env:"SHOPIFY_FLAG_LISTING"})};static multiEnvironmentsFlags=["store","password","path"];async command(e,d,p,g,c){let l={environment:e.environment,force:e.force,noColor:e["no-color"],password:e.password,path:e.path,store:e.store,theme:s("creative"),unpublished:!0,listing:e.listing};t("theme-command:share"),await h(l,d,p,c),t("theme-command:share")}};export{o as a};
@@ -0,0 +1 @@
1
+ import{a as o}from"./chunk-BHTHUKHU.js";import{g as e}from"./chunk-VKWPEFWQ.js";e();var t=class extends o{};export{t as a};
@@ -1 +1 @@
1
- import{b as o,c as l,f as m}from"./chunk-NKSLEPE2.js";import{A as a,S as h}from"./chunk-T3IMDY72.js";import{Ta as f,na as c}from"./chunk-TNYPQ2UL.js";import{d as s}from"./chunk-773TIA5M.js";import{g as u}from"./chunk-VKWPEFWQ.js";u();async function d(n){if(n.features.includes("function")&&n.isJavaScript){let e=await m(n);return o(e.functionRunner)}return o()}function p(n){return n.configuration.build?.path?s(n.directory,n.configuration.build.path):n.outputPath}async function y(n,e){try{if(!await f(e))return;let i=c(e);if(!WebAssembly.validate(i))return;let t=new WebAssembly.Module(i);if(WebAssembly.Module.customSections(t,"name").length>0)return;if(n.isJavaScript){a({headline:"The profile won't contain names for your function.",body:"JavaScript functions built with Javy don't include a WebAssembly function name section, regardless of the wasm_opt setting. Function names will appear as <unknown> in the profile."});return}a({headline:"The profile won't contain names for your function.",body:["The built WebAssembly module doesn't contain a function name section. The default wasm-opt step removes this section, and the function compiler can also omit it. To preserve function names, set ",{userInput:"wasm_opt = false"}," under ",{userInput:"[extensions.build]"}," in shopify.extension.toml, configure the compiler to emit function names, and rebuild the function."]})}catch{}}async function W(n){let e=n.functionExtension,i=await d(e);await l(i);let t=[];n.inputPath&&t.push("--input",n.inputPath),n.export&&t.push("--export",n.export),n.json&&t.push("--json"),n.profile&&t.push("--profile"),n.schemaPath&&n.queryPath&&(t.push("--schema-path",n.schemaPath),t.push("--query-path",n.queryPath));let r=p(e);return n.profile&&await y(e,r),h(i.path,["-f",r,...t],{cwd:n.functionExtension.directory,stdin:n.stdin,stdout:n.stdout??"inherit",stderr:n.stderr??"inherit",input:n.input})}export{W as a};
1
+ import{b as o,c as l,f as m}from"./chunk-CVW2HMQO.js";import{A as a,S as h}from"./chunk-6C5AVMKR.js";import{Ta as f,na as c}from"./chunk-43FRAUV6.js";import{d as s}from"./chunk-773TIA5M.js";import{g as u}from"./chunk-VKWPEFWQ.js";u();async function d(n){if(n.features.includes("function")&&n.isJavaScript){let e=await m(n);return o(e.functionRunner)}return o()}function p(n){return n.configuration.build?.path?s(n.directory,n.configuration.build.path):n.outputPath}async function y(n,e){try{if(!await f(e))return;let i=c(e);if(!WebAssembly.validate(i))return;let t=new WebAssembly.Module(i);if(WebAssembly.Module.customSections(t,"name").length>0)return;if(n.isJavaScript){a({headline:"The profile won't contain names for your function.",body:"JavaScript functions built with Javy don't include a WebAssembly function name section, regardless of the wasm_opt setting. Function names will appear as <unknown> in the profile."});return}a({headline:"The profile won't contain names for your function.",body:["The built WebAssembly module doesn't contain a function name section. The default wasm-opt step removes this section, and the function compiler can also omit it. To preserve function names, set ",{userInput:"wasm_opt = false"}," under ",{userInput:"[extensions.build]"}," in shopify.extension.toml, configure the compiler to emit function names, and rebuild the function."]})}catch{}}async function W(n){let e=n.functionExtension,i=await d(e);await l(i);let t=[];n.inputPath&&t.push("--input",n.inputPath),n.export&&t.push("--export",n.export),n.json&&t.push("--json"),n.profile&&t.push("--profile"),n.schemaPath&&n.queryPath&&(t.push("--schema-path",n.schemaPath),t.push("--query-path",n.queryPath));let r=p(e);return n.profile&&await y(e,r),h(i.path,["-f",r,...t],{cwd:n.functionExtension.directory,stdin:n.stdin,stdout:n.stdout??"inherit",stderr:n.stderr??"inherit",input:n.input})}export{W as a};
@@ -1 +1 @@
1
- import{r as a}from"./chunk-IAURXPUJ.js";import{h as s}from"./chunk-4EHFK2OI.js";import{g as i}from"./chunk-VKWPEFWQ.js";i();var n={LOCALHOST:"localhost",HTTP:"http",PUBSUB:"google-pub-sub",EVENTBRIDGE:"event-bridge"},p={LOCALHOST:new RegExp("^http:","i"),HTTP:new RegExp("^https:","i"),PUBSUB:new RegExp("^pubsub:"),EVENTBRIDGE:new RegExp("^arn:aws:events:")};function c(t,e){let r=T(t);return r===n.LOCALHOST&&e===n.HTTP?!0:r===e}function l(t){return p.LOCALHOST.test(t)?new URL(t.toLowerCase()).hostname==="localhost":!1}function d(t,e){if(!c(t,e))throw new s(`Can't deliver your webhook payload to this address using '${e}'`,"Use a valid URL for address",f(e));let r=e;return l(t)&&(r=n.LOCALHOST),[t.trim(),r]}function f(t){return t===n.HTTP?["For remote HTTP testing, use a URL that starts with https://","For local HTTP testing, use http://localhost:{port}/{url-path}"]:t===n.PUBSUB?["For Google Pub/Sub, use pubsub://{project-id}:{topic-id}"]:t===n.EVENTBRIDGE?["For Amazon EventBridge, use an Amazon Resource Name (ARN) starting with arn:aws:events:"]:[]}function g(t,e){if(e.includes(t))return t;throw new s(`Api Version '${t}' does not exist`,`Allowed values: ${e.join(", ")}`,["Try again with a valid api-version value"])}function A(t,e,r){if(r.length===0)throw new s(`No topics found for '${e}'`);let o=h(t.trim(),r);if(o===void 0)throw new s(`Topic '${t}' does not exist for ApiVersion '${e}'`,`Allowed values: ${r.join(", ")}`,["Try again with a valid api-version - topic pair"]);return o}function h(t,e){return e.includes(t)?t:e.find(r=>r.toUpperCase().replace("/","_")===t)}function T(t){if(t){if(t.startsWith("pubsub:"))return n.PUBSUB;if(t.startsWith("arn:aws:events:"))return n.EVENTBRIDGE;if(l(t))return n.LOCALHOST;if(p.HTTP.test(t))return n.HTTP}}i();async function O(t,e,r){let{sendSampleWebhook:o}=await t.sendSampleWebhook(e,r);return o}i();async function H(t,e,r){let o={method:"POST",body:e,headers:{"Content-Type":"application/json",...JSON.parse(r)}},u=await a(t,o);return u.status>=200&&u.status<300}i();async function m(t,e){let{publicApiVersions:r}=await t.apiVersions(e),o=r.indexOf("unstable");return o===-1?r.sort().reverse():(r.splice(o,1),r.sort().reverse(),r.push("unstable")),r}export{m as a,O as b,H as c,n as d,c as e,d as f,g,A as h,T as i};
1
+ import{r as a}from"./chunk-CNK3ZO2B.js";import{h as s}from"./chunk-OAG72Q2O.js";import{g as i}from"./chunk-VKWPEFWQ.js";i();var n={LOCALHOST:"localhost",HTTP:"http",PUBSUB:"google-pub-sub",EVENTBRIDGE:"event-bridge"},p={LOCALHOST:new RegExp("^http:","i"),HTTP:new RegExp("^https:","i"),PUBSUB:new RegExp("^pubsub:"),EVENTBRIDGE:new RegExp("^arn:aws:events:")};function c(t,e){let r=T(t);return r===n.LOCALHOST&&e===n.HTTP?!0:r===e}function l(t){return p.LOCALHOST.test(t)?new URL(t.toLowerCase()).hostname==="localhost":!1}function d(t,e){if(!c(t,e))throw new s(`Can't deliver your webhook payload to this address using '${e}'`,"Use a valid URL for address",f(e));let r=e;return l(t)&&(r=n.LOCALHOST),[t.trim(),r]}function f(t){return t===n.HTTP?["For remote HTTP testing, use a URL that starts with https://","For local HTTP testing, use http://localhost:{port}/{url-path}"]:t===n.PUBSUB?["For Google Pub/Sub, use pubsub://{project-id}:{topic-id}"]:t===n.EVENTBRIDGE?["For Amazon EventBridge, use an Amazon Resource Name (ARN) starting with arn:aws:events:"]:[]}function g(t,e){if(e.includes(t))return t;throw new s(`Api Version '${t}' does not exist`,`Allowed values: ${e.join(", ")}`,["Try again with a valid api-version value"])}function A(t,e,r){if(r.length===0)throw new s(`No topics found for '${e}'`);let o=h(t.trim(),r);if(o===void 0)throw new s(`Topic '${t}' does not exist for ApiVersion '${e}'`,`Allowed values: ${r.join(", ")}`,["Try again with a valid api-version - topic pair"]);return o}function h(t,e){return e.includes(t)?t:e.find(r=>r.toUpperCase().replace("/","_")===t)}function T(t){if(t){if(t.startsWith("pubsub:"))return n.PUBSUB;if(t.startsWith("arn:aws:events:"))return n.EVENTBRIDGE;if(l(t))return n.LOCALHOST;if(p.HTTP.test(t))return n.HTTP}}i();async function O(t,e,r){let{sendSampleWebhook:o}=await t.sendSampleWebhook(e,r);return o}i();async function H(t,e,r){let o={method:"POST",body:e,headers:{"Content-Type":"application/json",...JSON.parse(r)}},u=await a(t,o);return u.status>=200&&u.status<300}i();async function m(t,e){let{publicApiVersions:r}=await t.apiVersions(e),o=r.indexOf("unstable");return o===-1?r.sort().reverse():(r.splice(o,1),r.sort().reverse(),r.push("unstable")),r}export{m as a,O as b,H as c,n as d,c as e,d as f,g,A as h,T as i};
@@ -1 +1 @@
1
- import{b as E}from"./chunk-BR5CFKIN.js";import{b}from"./chunk-PUGAY4JP.js";import{Q as F,R as N}from"./chunk-T3IMDY72.js";import{a as U}from"./chunk-CTNBSUVU.js";import{S as C,Ta as w,ma as O,xb as k}from"./chunk-TNYPQ2UL.js";import{i as n}from"./chunk-B4OMIONW.js";import{j as R}from"./chunk-QCMGYBFD.js";import{d as u,f as P,g as x,h as g,n as T,q as y}from"./chunk-773TIA5M.js";import{e as H,g as d}from"./chunk-VKWPEFWQ.js";d();d();d();d();var m=class{static description="Doctor test suite";context;assertions=[];registeredTests=[];async runSuite(t){this.context=t,this.registeredTests=[];let e=[];this.tests();for(let o of this.registeredTests){this.assertions=[];let s=Date.now();try{await o.fn(),e.push({name:o.name,status:this.hasFailures()?"failed":"passed",duration:Date.now()-s,assertions:[...this.assertions]})}catch(r){e.push({name:o.name,status:"failed",duration:Date.now()-s,assertions:[...this.assertions],error:r instanceof Error?r:new Error(String(r))})}}return e}test(t,e){this.registeredTests.push({name:t,fn:e})}tests(){}async run(t,e){let o=e?.cwd??this.context.workingDirectory,s=await F(t,{cwd:o,env:e?.env});return{command:t,exitCode:s.exitCode,stdout:s.stdout,stderr:s.stderr,output:String(s.stdout)+String(s.stderr),success:s.exitCode===0}}async runInteractive(t,e){let o=e?.cwd??this.context.workingDirectory,s=0;try{await N(t,{cwd:o,env:e?.env,stdin:"inherit"})}catch{s=1}return{command:t,exitCode:s,stdout:"",stderr:"",output:"",success:s===0}}assertSuccess(t,e){this.assertions.push({description:e??`Command succeeded: ${t.command}`,passed:t.success,expected:"exit code 0",actual:`exit code ${t.exitCode}`})}assertError(t,e,o){let s=!t.success;if(e){let h=(typeof e=="string"?new RegExp(e):e).test(t.output),c;s?h?c="matched":c=`output: ${t.output.slice(0,200)}`:c="command succeeded",this.assertions.push({description:o??`Command failed with expected error: ${e}`,passed:s&&h,expected:`failure with error matching ${e}`,actual:c})}else this.assertions.push({description:o??`Command failed: ${t.command}`,passed:s,expected:"non-zero exit code",actual:`exit code ${t.exitCode}`})}async assertFile(t,e,o){let s=g(t)?t:u(this.context.workingDirectory,t),r=x(this.context.workingDirectory,s);if(!await w(s)){this.assertions.push({description:o??`File exists: ${r}`,passed:!1,expected:"file exists",actual:"file not found"});return}if(e){let c=await O(s),D=(typeof e=="string"?new RegExp(e):e).test(c);this.assertions.push({description:o??`File ${r} matches ${e}`,passed:D,expected:`content matching ${e}`,actual:D?"matched":`content: ${c.slice(0,200)}...`})}else this.assertions.push({description:o??`File exists: ${r}`,passed:!0,expected:"file exists",actual:"file exists"})}async assertNoFile(t,e){let o=g(t)?t:u(this.context.workingDirectory,t),s=x(this.context.workingDirectory,o),r=await w(o);this.assertions.push({description:e??`File does not exist: ${s}`,passed:!r,expected:"file does not exist",actual:r?"file exists":"file does not exist"})}async assertDirectory(t,e){let o=g(t)?t:u(this.context.workingDirectory,t),s=x(this.context.workingDirectory,o),r=await w(o);this.assertions.push({description:e??`Directory exists: ${s}`,passed:r,expected:"directory exists",actual:r?"directory exists":"directory not found"})}assertOutput(t,e,o){let r=(typeof e=="string"?new RegExp(e):e).test(t.output);this.assertions.push({description:o??`Output matches ${e}`,passed:r,expected:`output matching ${e}`,actual:r?"matched":`output: ${t.output.slice(0,200)}`})}assertJson(t,e,o){try{let s=JSON.parse(t.stdout);if(e){let r=e(s);this.assertions.push({description:o??"Output is valid JSON matching validator",passed:r,expected:"valid JSON matching validator",actual:r?"matched":"validator returned false"})}else this.assertions.push({description:o??"Output is valid JSON",passed:!0,expected:"valid JSON",actual:"valid JSON"});return s}catch{this.assertions.push({description:o??"Output is valid JSON",passed:!1,expected:"valid JSON",actual:`invalid JSON: ${t.stdout.slice(0,100)}`});return}}assert(t,e){this.assertions.push({description:e,passed:t,expected:"true",actual:String(t)})}assertEqual(t,e,o){this.assertions.push({description:o,passed:t===e,expected:String(e),actual:String(t)})}hasFailures(){return this.assertions.some(t=>!t.passed)}};var p=class extends m{static description="Tests the theme init command creates a valid theme structure";themeName="";themePath="";tests(){this.test("init creates theme directory",async()=>{this.themeName=`doctor-theme-${C("creative")}`,this.themePath=u(this.context.workingDirectory,this.themeName);let t=await this.runInteractive(`shopify theme init ${this.themeName} --path ${this.context.workingDirectory}`);this.assertSuccess(t),this.context.themeName=this.themeName,this.context.themePath=this.themePath}),this.test("essential theme files exist",async()=>{let t=["layout/theme.liquid","config/settings_schema.json","templates/index.json"];await Promise.all(t.map(e=>this.assertFile(u(this.themePath,e))))}),this.test("theme directories exist",async()=>{let t=["sections","snippets","assets","locales"];await Promise.all(t.map(e=>this.assertDirectory(u(this.themePath,e))))}),this.test("layout/theme.liquid has valid content",async()=>{await this.assertFile(u(this.themePath,"layout/theme.liquid"),/<!doctype html>|<html|{{ content_for_header }}/i,"layout/theme.liquid contains expected Liquid markup")})}};d();var l=class extends m{static description="Tests pushing a theme to the store creates an unpublished theme";static requiresStore=!0;tests(){this.test("push creates unpublished theme",async()=>{if(!this.context.themePath){this.assert(!1,"Theme init did not complete successfully; themePath is missing in context");return}let t=this.context.themeName??"doctor-theme",e=`shopify theme push --unpublished --json --path ${this.context.themePath} -t ${t}`;this.context.environment&&(e+=` -e ${this.context.environment}`),this.context.store&&(e+=` -s ${this.context.store}`),this.context.password&&(e+=` --password ${this.context.password}`);let o=await this.run(e);this.assertSuccess(o);let s=this.assertJson(o,r=>typeof r.theme?.id=="number");s?.theme&&(this.assert(typeof s.theme.id=="number","Theme was created with a valid ID"),this.assertEqual(s.theme.role,"unpublished","Theme role is unpublished"),this.assert(s.theme.editor_url.includes("/admin/themes/"),"Editor URL is provided"),this.assert(s.theme.preview_url.includes("preview_theme_id="),"Preview URL is provided"),this.context.themeId=String(s.theme.id),this.context.data.editorUrl=s.theme.editor_url,this.context.data.previewUrl=s.theme.preview_url)})}};d();function _(i){return{workingDirectory:i.path??y(),environment:i.environment,store:i.store,password:i.password,data:{}}}d();var a=i=>k(i),v;function J(i){v=i}function G(i){if(!v)return i;let t=/\/[^\s,)]+/g;return i.replace(t,e=>T(e,v))}function A(i,t){a(""),a(n.bold(n.cyan(`Suite: ${i}`))),a(n.dim(t))}function j(i){a(n.bold(n.blue(`Running: ${i}`)))}function q(i){let t=`(${(i.duration/1e3).toFixed(2)}s)`;if(i.status==="passed"){a(n.bold(n.green(`PASSED: ${i.name} ${n.dim(t)}`)));for(let e of I(i.assertions))a(e)}else if(i.status==="failed"){a(n.red(`FAILED: ${i.name} ${n.dim(t)}`));for(let e of I(i.assertions))a(e);i.error&&a(n.red(` Error: ${G(i.error.message)}`))}else a(n.yellow(`SKIPPED: ${i.name}`))}function S(i){let t=i.filter(h=>h.status==="passed").length,e=i.filter(h=>h.status==="failed").length,o=i.filter(h=>h.status==="skipped").length,s=i.length,r=i.reduce((h,c)=>h+c.duration,0);a(""),a(n.bold("\u2500".repeat(40))),e>0?a(n.red(n.bold(`Doctor Complete: ${e}/${s} tests failed`))):a(n.green(n.bold(`Doctor Complete: ${t}/${s} tests passed`))),a(` Passed: ${n.green(String(t))}`),a(` Failed: ${n.red(String(e))}`),o>0&&a(` Skipped: ${n.yellow(String(o))}`),a(` Total time: ${n.dim(`${(r/1e3).toFixed(2)}s`)}`)}function I(i){return i.map(t=>{if(t.passed)return n.green(` [OK] ${t.description}`);{let e=` (expected: ${t.expected}, actual: ${t.actual})`;return n.red(` [FAIL] ${t.description}${e}`)}})}var Y=[p,l];async function L(i){let t=[],e=_(i);J(e.workingDirectory);for(let o of Y){let s=new o,r=o.description??"Test suite";A(o.name,r);let h=await s.runSuite(e);for(let c of h)if(j(c.name),q(c),t.push(c),c.status==="failed")return S(t),t}return S(t),t}var f=H(U(),1);var $=class i extends b{static description="Run all theme command doctor-release tests";static hidden=!0;static flags={...E,path:f.Flags.string({char:"p",description:"The path to run tests in. Defaults to current directory.",env:"SHOPIFY_FLAG_PATH",parse:async t=>P(t),default:async()=>y()}),environment:f.Flags.string({char:"e",description:"The environment to use from shopify.theme.toml (required for store-connected tests).",env:"SHOPIFY_FLAG_ENVIRONMENT",required:!0}),store:f.Flags.string({char:"s",description:"Store URL (overrides environment).",env:"SHOPIFY_FLAG_STORE"}),password:f.Flags.string({description:"Password from Theme Access app (overrides environment).",env:"SHOPIFY_FLAG_PASSWORD"})};async run(){if(!R())return;let{flags:t}=await this.parse(i);(await L({path:t.path,environment:t.environment,store:t.store,password:t.password})).some(s=>s.status==="failed")&&(process.exitCode=1)}};export{$ as a};
1
+ import{b as E}from"./chunk-K2DP5Z76.js";import{b}from"./chunk-4DLRS7MT.js";import{Q as F,R as N}from"./chunk-6C5AVMKR.js";import{a as U}from"./chunk-CTNBSUVU.js";import{S as C,Ta as w,ma as O,xb as k}from"./chunk-43FRAUV6.js";import{i as n}from"./chunk-B4OMIONW.js";import{j as R}from"./chunk-XYUTD6IU.js";import{d as u,f as P,g as x,h as g,n as T,q as y}from"./chunk-773TIA5M.js";import{e as H,g as d}from"./chunk-VKWPEFWQ.js";d();d();d();d();var m=class{static description="Doctor test suite";context;assertions=[];registeredTests=[];async runSuite(t){this.context=t,this.registeredTests=[];let e=[];this.tests();for(let o of this.registeredTests){this.assertions=[];let s=Date.now();try{await o.fn(),e.push({name:o.name,status:this.hasFailures()?"failed":"passed",duration:Date.now()-s,assertions:[...this.assertions]})}catch(r){e.push({name:o.name,status:"failed",duration:Date.now()-s,assertions:[...this.assertions],error:r instanceof Error?r:new Error(String(r))})}}return e}test(t,e){this.registeredTests.push({name:t,fn:e})}tests(){}async run(t,e){let o=e?.cwd??this.context.workingDirectory,s=await F(t,{cwd:o,env:e?.env});return{command:t,exitCode:s.exitCode,stdout:s.stdout,stderr:s.stderr,output:String(s.stdout)+String(s.stderr),success:s.exitCode===0}}async runInteractive(t,e){let o=e?.cwd??this.context.workingDirectory,s=0;try{await N(t,{cwd:o,env:e?.env,stdin:"inherit"})}catch{s=1}return{command:t,exitCode:s,stdout:"",stderr:"",output:"",success:s===0}}assertSuccess(t,e){this.assertions.push({description:e??`Command succeeded: ${t.command}`,passed:t.success,expected:"exit code 0",actual:`exit code ${t.exitCode}`})}assertError(t,e,o){let s=!t.success;if(e){let h=(typeof e=="string"?new RegExp(e):e).test(t.output),c;s?h?c="matched":c=`output: ${t.output.slice(0,200)}`:c="command succeeded",this.assertions.push({description:o??`Command failed with expected error: ${e}`,passed:s&&h,expected:`failure with error matching ${e}`,actual:c})}else this.assertions.push({description:o??`Command failed: ${t.command}`,passed:s,expected:"non-zero exit code",actual:`exit code ${t.exitCode}`})}async assertFile(t,e,o){let s=g(t)?t:u(this.context.workingDirectory,t),r=x(this.context.workingDirectory,s);if(!await w(s)){this.assertions.push({description:o??`File exists: ${r}`,passed:!1,expected:"file exists",actual:"file not found"});return}if(e){let c=await O(s),D=(typeof e=="string"?new RegExp(e):e).test(c);this.assertions.push({description:o??`File ${r} matches ${e}`,passed:D,expected:`content matching ${e}`,actual:D?"matched":`content: ${c.slice(0,200)}...`})}else this.assertions.push({description:o??`File exists: ${r}`,passed:!0,expected:"file exists",actual:"file exists"})}async assertNoFile(t,e){let o=g(t)?t:u(this.context.workingDirectory,t),s=x(this.context.workingDirectory,o),r=await w(o);this.assertions.push({description:e??`File does not exist: ${s}`,passed:!r,expected:"file does not exist",actual:r?"file exists":"file does not exist"})}async assertDirectory(t,e){let o=g(t)?t:u(this.context.workingDirectory,t),s=x(this.context.workingDirectory,o),r=await w(o);this.assertions.push({description:e??`Directory exists: ${s}`,passed:r,expected:"directory exists",actual:r?"directory exists":"directory not found"})}assertOutput(t,e,o){let r=(typeof e=="string"?new RegExp(e):e).test(t.output);this.assertions.push({description:o??`Output matches ${e}`,passed:r,expected:`output matching ${e}`,actual:r?"matched":`output: ${t.output.slice(0,200)}`})}assertJson(t,e,o){try{let s=JSON.parse(t.stdout);if(e){let r=e(s);this.assertions.push({description:o??"Output is valid JSON matching validator",passed:r,expected:"valid JSON matching validator",actual:r?"matched":"validator returned false"})}else this.assertions.push({description:o??"Output is valid JSON",passed:!0,expected:"valid JSON",actual:"valid JSON"});return s}catch{this.assertions.push({description:o??"Output is valid JSON",passed:!1,expected:"valid JSON",actual:`invalid JSON: ${t.stdout.slice(0,100)}`});return}}assert(t,e){this.assertions.push({description:e,passed:t,expected:"true",actual:String(t)})}assertEqual(t,e,o){this.assertions.push({description:o,passed:t===e,expected:String(e),actual:String(t)})}hasFailures(){return this.assertions.some(t=>!t.passed)}};var p=class extends m{static description="Tests the theme init command creates a valid theme structure";themeName="";themePath="";tests(){this.test("init creates theme directory",async()=>{this.themeName=`doctor-theme-${C("creative")}`,this.themePath=u(this.context.workingDirectory,this.themeName);let t=await this.runInteractive(`shopify theme init ${this.themeName} --path ${this.context.workingDirectory}`);this.assertSuccess(t),this.context.themeName=this.themeName,this.context.themePath=this.themePath}),this.test("essential theme files exist",async()=>{let t=["layout/theme.liquid","config/settings_schema.json","templates/index.json"];await Promise.all(t.map(e=>this.assertFile(u(this.themePath,e))))}),this.test("theme directories exist",async()=>{let t=["sections","snippets","assets","locales"];await Promise.all(t.map(e=>this.assertDirectory(u(this.themePath,e))))}),this.test("layout/theme.liquid has valid content",async()=>{await this.assertFile(u(this.themePath,"layout/theme.liquid"),/<!doctype html>|<html|{{ content_for_header }}/i,"layout/theme.liquid contains expected Liquid markup")})}};d();var l=class extends m{static description="Tests pushing a theme to the store creates an unpublished theme";static requiresStore=!0;tests(){this.test("push creates unpublished theme",async()=>{if(!this.context.themePath){this.assert(!1,"Theme init did not complete successfully; themePath is missing in context");return}let t=this.context.themeName??"doctor-theme",e=`shopify theme push --unpublished --json --path ${this.context.themePath} -t ${t}`;this.context.environment&&(e+=` -e ${this.context.environment}`),this.context.store&&(e+=` -s ${this.context.store}`),this.context.password&&(e+=` --password ${this.context.password}`);let o=await this.run(e);this.assertSuccess(o);let s=this.assertJson(o,r=>typeof r.theme?.id=="number");s?.theme&&(this.assert(typeof s.theme.id=="number","Theme was created with a valid ID"),this.assertEqual(s.theme.role,"unpublished","Theme role is unpublished"),this.assert(s.theme.editor_url.includes("/admin/themes/"),"Editor URL is provided"),this.assert(s.theme.preview_url.includes("preview_theme_id="),"Preview URL is provided"),this.context.themeId=String(s.theme.id),this.context.data.editorUrl=s.theme.editor_url,this.context.data.previewUrl=s.theme.preview_url)})}};d();function _(i){return{workingDirectory:i.path??y(),environment:i.environment,store:i.store,password:i.password,data:{}}}d();var a=i=>k(i),v;function J(i){v=i}function G(i){if(!v)return i;let t=/\/[^\s,)]+/g;return i.replace(t,e=>T(e,v))}function A(i,t){a(""),a(n.bold(n.cyan(`Suite: ${i}`))),a(n.dim(t))}function j(i){a(n.bold(n.blue(`Running: ${i}`)))}function q(i){let t=`(${(i.duration/1e3).toFixed(2)}s)`;if(i.status==="passed"){a(n.bold(n.green(`PASSED: ${i.name} ${n.dim(t)}`)));for(let e of I(i.assertions))a(e)}else if(i.status==="failed"){a(n.red(`FAILED: ${i.name} ${n.dim(t)}`));for(let e of I(i.assertions))a(e);i.error&&a(n.red(` Error: ${G(i.error.message)}`))}else a(n.yellow(`SKIPPED: ${i.name}`))}function S(i){let t=i.filter(h=>h.status==="passed").length,e=i.filter(h=>h.status==="failed").length,o=i.filter(h=>h.status==="skipped").length,s=i.length,r=i.reduce((h,c)=>h+c.duration,0);a(""),a(n.bold("\u2500".repeat(40))),e>0?a(n.red(n.bold(`Doctor Complete: ${e}/${s} tests failed`))):a(n.green(n.bold(`Doctor Complete: ${t}/${s} tests passed`))),a(` Passed: ${n.green(String(t))}`),a(` Failed: ${n.red(String(e))}`),o>0&&a(` Skipped: ${n.yellow(String(o))}`),a(` Total time: ${n.dim(`${(r/1e3).toFixed(2)}s`)}`)}function I(i){return i.map(t=>{if(t.passed)return n.green(` [OK] ${t.description}`);{let e=` (expected: ${t.expected}, actual: ${t.actual})`;return n.red(` [FAIL] ${t.description}${e}`)}})}var Y=[p,l];async function L(i){let t=[],e=_(i);J(e.workingDirectory);for(let o of Y){let s=new o,r=o.description??"Test suite";A(o.name,r);let h=await s.runSuite(e);for(let c of h)if(j(c.name),q(c),t.push(c),c.status==="failed")return S(t),t}return S(t),t}var f=H(U(),1);var $=class i extends b{static description="Run all theme command doctor-release tests";static hidden=!0;static flags={...E,path:f.Flags.string({char:"p",description:"The path to run tests in. Defaults to current directory.",env:"SHOPIFY_FLAG_PATH",parse:async t=>P(t),default:async()=>y()}),environment:f.Flags.string({char:"e",description:"The environment to use from shopify.theme.toml (required for store-connected tests).",env:"SHOPIFY_FLAG_ENVIRONMENT",required:!0}),store:f.Flags.string({char:"s",description:"Store URL (overrides environment).",env:"SHOPIFY_FLAG_STORE"}),password:f.Flags.string({description:"Password from Theme Access app (overrides environment).",env:"SHOPIFY_FLAG_PASSWORD"})};async run(){if(!R())return;let{flags:t}=await this.parse(i);(await L({path:t.path,environment:t.environment,store:t.store,password:t.password})).some(s=>s.status==="failed")&&(process.exitCode=1)}};export{$ as a};
@@ -1,4 +1,4 @@
1
- import{b as m}from"./chunk-PUGAY4JP.js";import{G as f}from"./chunk-T3IMDY72.js";import{a as N}from"./chunk-CTNBSUVU.js";import{wb as c}from"./chunk-TNYPQ2UL.js";import{e as v,g}from"./chunk-VKWPEFWQ.js";g();var d=v(N(),1),i=class h extends m{static description="View all the available command flags";static hidden=!0;static flags={csv:d.Flags.boolean({description:"Output as CSV",env:"SHOPIFY_FLAG_OUTPUT_CSV",default:!1})};async run(){let{flags:p}=await this.parse(h),s=[];for(let[t,a]of this.config.plugins)for(let o of a.commands){let l=await o.load(),n;a.name.startsWith("@shopify")?n=a.name.substring(9):n=a.name.startsWith("@oclif")?a.name.substring(7):a.name;let e=l.flags;if(e)for(let[u,r]of Object.entries(e))s.push({pluginName:n,command:o.id,flagName:`--${u}`,flagChar:r.char?`-${r.char}`:"",flagEnv:r.env})}if(p.csv){let t=["pluginName","command","flagName","flagChar","flagEnv"],a=`${t.join(",")}
1
+ import{b as m}from"./chunk-4DLRS7MT.js";import{G as f}from"./chunk-6C5AVMKR.js";import{a as N}from"./chunk-CTNBSUVU.js";import{wb as c}from"./chunk-43FRAUV6.js";import{e as v,g}from"./chunk-VKWPEFWQ.js";g();var d=v(N(),1),i=class h extends m{static description="View all the available command flags";static hidden=!0;static flags={csv:d.Flags.boolean({description:"Output as CSV",env:"SHOPIFY_FLAG_OUTPUT_CSV",default:!1})};async run(){let{flags:p}=await this.parse(h),s=[];for(let[t,a]of this.config.plugins)for(let o of a.commands){let l=await o.load(),n;a.name.startsWith("@shopify")?n=a.name.substring(9):n=a.name.startsWith("@oclif")?a.name.substring(7):a.name;let e=l.flags;if(e)for(let[u,r]of Object.entries(e))s.push({pluginName:n,command:o.id,flagName:`--${u}`,flagChar:r.char?`-${r.char}`:"",flagEnv:r.env})}if(p.csv){let t=["pluginName","command","flagName","flagChar","flagEnv"],a=`${t.join(",")}
2
2
  `,o=s.map(n=>t.map(e=>n[e]).join(",")).join(`
3
3
  `),l=`${a}${o}
4
4
  `;c(l)}else f({rows:s,columns:{pluginName:{header:"plugin",color:"red"},command:{},flagName:{header:"long flag",color:"green"},flagChar:{header:"short flag",color:"green"},flagEnv:{header:"env variable",color:"blueBright"}}})}};export{i as a};
@@ -1 +1 @@
1
- import{T as m}from"./chunk-T3IMDY72.js";import{h as c}from"./chunk-4EHFK2OI.js";import{Ab as a,qb as l,sb as n}from"./chunk-TNYPQ2UL.js";import{g as s}from"./chunk-VKWPEFWQ.js";s();import{createServer as d}from"net";var u=new Set;async function P(o,t){if(o&&await g(o))return a(n`Port ${o.toString()} is free`),o;a(n`Getting a random port...`);let r=await w(()=>f(),t?.maxTries,t?.waitTimeInSeconds);for(let e=0;e<(t?.maxTries??5)&&u.has(r);e++)r=await w(()=>f(),t?.maxTries,t?.waitTimeInSeconds);return a(n`Random port obtained: ${l.raw(`${r}`)}`),u.add(r),r}async function g(o){return new Promise(t=>{let r=d();r.unref(),r.once("error",()=>t(!1));try{r.listen(o,"localhost",()=>{r.close(()=>t(!0))})}catch(e){if(!(e instanceof RangeError))throw e;t(!1)}})}function f(){return new Promise((o,t)=>{let r=d();r.unref(),r.once("error",t),r.listen(0,"localhost",()=>{let e=r.address();if(e&&typeof e=="object"){let i=e.port;r.close(()=>o(i))}else r.close(()=>t(new Error("Unable to determine assigned port")))})})}async function w(o,t=5,r=1){let e=1;for(;;)try{return await o()}catch(i){if(e++<t)a(n`Unknown problem getting a random port: ${i.message}`),await m(r);else throw new c(i.message)}}export{P as a,g as b};
1
+ import{T as m}from"./chunk-6C5AVMKR.js";import{h as c}from"./chunk-OAG72Q2O.js";import{Ab as a,qb as l,sb as n}from"./chunk-43FRAUV6.js";import{g as s}from"./chunk-VKWPEFWQ.js";s();import{createServer as d}from"net";var u=new Set;async function P(o,t){if(o&&await g(o))return a(n`Port ${o.toString()} is free`),o;a(n`Getting a random port...`);let r=await w(()=>f(),t?.maxTries,t?.waitTimeInSeconds);for(let e=0;e<(t?.maxTries??5)&&u.has(r);e++)r=await w(()=>f(),t?.maxTries,t?.waitTimeInSeconds);return a(n`Random port obtained: ${l.raw(`${r}`)}`),u.add(r),r}async function g(o){return new Promise(t=>{let r=d();r.unref(),r.once("error",()=>t(!1));try{r.listen(o,"localhost",()=>{r.close(()=>t(!0))})}catch(e){if(!(e instanceof RangeError))throw e;t(!1)}})}function f(){return new Promise((o,t)=>{let r=d();r.unref(),r.once("error",t),r.listen(0,"localhost",()=>{let e=r.address();if(e&&typeof e=="object"){let i=e.port;r.close(()=>o(i))}else r.close(()=>t(new Error("Unable to determine assigned port")))})})}async function w(o,t=5,r=1){let e=1;for(;;)try{return await o()}catch(i){if(e++<t)a(n`Unknown problem getting a random port: ${i.message}`),await m(r);else throw new c(i.message)}}export{P as a,g as b};
@@ -1 +1 @@
1
- import{e as c}from"./chunk-BV4K7JX5.js";import{W as s}from"./chunk-IAURXPUJ.js";import{h as p,k as a}from"./chunk-4EHFK2OI.js";import{g as i}from"./chunk-VKWPEFWQ.js";i();async function v(e,t){let o=e.apiSecretKeys[0]?.secret;if(!o)throw new a("No API secret keys found for app");return s(t,e.apiKey,o)}function y(e){let{organization:t,remoteApp:o,storeFqdn:u,version:r}=e,n=[`Organization: ${t.businessName}`,`App: ${o.title}`,`Store: ${u}`];return r&&n.push(`API version: ${r}`),n}function S(e,t){if(c(e)&&t.storeType!=="APP_DEVELOPMENT")throw new p("Mutations can only be executed on dev stores.")}export{v as a,y as b,S as c};
1
+ import{e as c}from"./chunk-3CZ7DKE5.js";import{W as s}from"./chunk-CNK3ZO2B.js";import{h as p,k as a}from"./chunk-OAG72Q2O.js";import{g as i}from"./chunk-VKWPEFWQ.js";i();async function v(e,t){let o=e.apiSecretKeys[0]?.secret;if(!o)throw new a("No API secret keys found for app");return s(t,e.apiKey,o)}function y(e){let{organization:t,remoteApp:o,storeFqdn:u,version:r}=e,n=[`Organization: ${t.businessName}`,`App: ${o.title}`,`Store: ${u}`];return r&&n.push(`API version: ${r}`),n}function S(e,t){if(c(e)&&t.storeType!=="APP_DEVELOPMENT")throw new p("Mutations can only be executed on dev stores.")}export{v as a,y as b,S as c};
@@ -1,2 +1,2 @@
1
- import{a as V,b as F}from"./chunk-4QBJ5JBX.js";import{h as v}from"./chunk-4EHFK2OI.js";import{Ta as I,ma as _,ua as l}from"./chunk-TNYPQ2UL.js";import{a as T,c as k,e as $,g as h}from"./chunk-VKWPEFWQ.js";var L=k((z,a)=>{h();var S={};S.__wbindgen_placeholder__=a.exports;var s,{TextEncoder:q,TextDecoder:U}=T("util");function A(e){return e==null}var f=null;function g(){return(f===null||f.buffer.detached===!0||f.buffer.detached===void 0&&f.buffer!==s.memory.buffer)&&(f=new DataView(s.memory.buffer)),f}var w=0,b=null;function p(){return(b===null||b.byteLength===0)&&(b=new Uint8Array(s.memory.buffer)),b}var m=new q("utf-8"),C=typeof m.encodeInto=="function"?function(e,t){return m.encodeInto(e,t)}:function(e,t){let r=m.encode(e);return t.set(r),{read:e.length,written:r.length}};function M(e,t,r){if(r===void 0){let i=m.encode(e),u=t(i.length,1)>>>0;return p().subarray(u,u+i.length).set(i),w=i.length,u}let n=e.length,o=t(n,1)>>>0,d=p(),c=0;for(;c<n;c++){let i=e.charCodeAt(c);if(i>127)break;d[o+c]=i}if(c!==n){c!==0&&(e=e.slice(c)),o=r(o,n,n=c+e.length*3,1)>>>0;let i=p().subarray(o+c,o+n),u=C(e,i);c+=u.written,o=r(o,n,c,1)>>>0}return w=c,o}var j=new U("utf-8",{ignoreBOM:!0,fatal:!0});j.decode();function y(e,t){return e=e>>>0,j.decode(p().subarray(e,e+t))}function D(e){let t=s.__wbindgen_export_0.get(e);return s.__externref_table_dealloc(e),t}a.exports.echoToml=function(e){let t,r;try{let d=M(e,s.__wbindgen_malloc,s.__wbindgen_realloc),c=w,i=s.echoToml(d,c);var n=i[0],o=i[1];if(i[3])throw n=0,o=0,D(i[2]);return t=n,r=o,y(n,o)}finally{s.__wbindgen_free(t,r,1)}};a.exports.updateTomlValues=function(e,t){let r,n;try{let c=M(e,s.__wbindgen_malloc,s.__wbindgen_realloc),i=w,u=s.updateTomlValues(c,i,t);var o=u[0],d=u[1];if(u[3])throw o=0,d=0,D(u[2]);return r=o,n=d,y(o,d)}finally{s.__wbindgen_free(r,n,1)}};a.exports.__wbg_from_2a5d3e218e67aa85=function(e){return Array.from(e)};a.exports.__wbg_get_b9b93047fe3cf45b=function(e,t){return e[t>>>0]};a.exports.__wbg_length_e2d2a49132c1b256=function(e){return e.length};a.exports.__wbindgen_boolean_get=function(e){let t=e;return typeof t=="boolean"?t?1:0:2};a.exports.__wbindgen_init_externref_table=function(){let e=s.__wbindgen_export_0,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)};a.exports.__wbindgen_is_array=function(e){return Array.isArray(e)};a.exports.__wbindgen_is_undefined=function(e){return e===void 0};a.exports.__wbindgen_number_get=function(e,t){let r=t,n=typeof r=="number"?r:void 0;g().setFloat64(e+8,A(n)?0:n,!0),g().setInt32(e+0,!A(n),!0)};a.exports.__wbindgen_string_get=function(e,t){let r=t,n=typeof r=="string"?r:void 0;var o=A(n)?0:M(n,s.__wbindgen_malloc,s.__wbindgen_realloc),d=w;g().setInt32(e+4,d,!0),g().setInt32(e+0,o,!0)};a.exports.__wbindgen_string_new=function(e,t){return y(e,t)};a.exports.__wbindgen_throw=function(e,t){throw new Error(y(e,t))};var N=T("path").join(__dirname,"toml_patch_bg.wasm"),R=T("fs").readFileSync(N),B=new WebAssembly.Module(R),P=new WebAssembly.Instance(B,S);s=P.exports;a.exports.__wasm=s;s.__wbindgen_start()});h();var E=$(L()),x=class extends v{path;constructor(t,r){super(r),this.name="TomlFileError",this.path=t}},O=class e{static async read(t){if(!await I(t))throw new x(t,`TOML file not found: ${t}`);let r=await _(t),n=new e(t,{});return n.content=n.decode(r),n}path;content;errors=[];constructor(t,r){this.path=t,this.content=r}async patch(t){let r=W(t),n=await _(this.path),o=(0,E.updateTomlValues)(n,r),d=this.decode(o);await l(this.path,o),this.content=d}async remove(t){let r=t.split("."),n=await _(this.path),o=(0,E.updateTomlValues)(n,[[r,void 0]]),d=this.decode(o);await l(this.path,o),this.content=d}async replace(t){let r=F(t);this.decode(r),await l(this.path,r),this.content=t}async transformRaw(t){let r=await _(this.path),n=t(r),o=this.decode(n);await l(this.path,n),this.content=o}decode(t){try{return V(t)}catch(r){let n=r;if(n.line!==void 0&&n.col!==void 0){let o=String(n.message).split(`
1
+ import{a as V,b as F}from"./chunk-4QBJ5JBX.js";import{h as v}from"./chunk-OAG72Q2O.js";import{Ta as I,ma as _,ua as l}from"./chunk-43FRAUV6.js";import{a as T,c as k,e as $,g as h}from"./chunk-VKWPEFWQ.js";var L=k((z,a)=>{h();var S={};S.__wbindgen_placeholder__=a.exports;var s,{TextEncoder:q,TextDecoder:U}=T("util");function A(e){return e==null}var f=null;function g(){return(f===null||f.buffer.detached===!0||f.buffer.detached===void 0&&f.buffer!==s.memory.buffer)&&(f=new DataView(s.memory.buffer)),f}var w=0,b=null;function p(){return(b===null||b.byteLength===0)&&(b=new Uint8Array(s.memory.buffer)),b}var m=new q("utf-8"),C=typeof m.encodeInto=="function"?function(e,t){return m.encodeInto(e,t)}:function(e,t){let r=m.encode(e);return t.set(r),{read:e.length,written:r.length}};function M(e,t,r){if(r===void 0){let i=m.encode(e),u=t(i.length,1)>>>0;return p().subarray(u,u+i.length).set(i),w=i.length,u}let n=e.length,o=t(n,1)>>>0,d=p(),c=0;for(;c<n;c++){let i=e.charCodeAt(c);if(i>127)break;d[o+c]=i}if(c!==n){c!==0&&(e=e.slice(c)),o=r(o,n,n=c+e.length*3,1)>>>0;let i=p().subarray(o+c,o+n),u=C(e,i);c+=u.written,o=r(o,n,c,1)>>>0}return w=c,o}var j=new U("utf-8",{ignoreBOM:!0,fatal:!0});j.decode();function y(e,t){return e=e>>>0,j.decode(p().subarray(e,e+t))}function D(e){let t=s.__wbindgen_export_0.get(e);return s.__externref_table_dealloc(e),t}a.exports.echoToml=function(e){let t,r;try{let d=M(e,s.__wbindgen_malloc,s.__wbindgen_realloc),c=w,i=s.echoToml(d,c);var n=i[0],o=i[1];if(i[3])throw n=0,o=0,D(i[2]);return t=n,r=o,y(n,o)}finally{s.__wbindgen_free(t,r,1)}};a.exports.updateTomlValues=function(e,t){let r,n;try{let c=M(e,s.__wbindgen_malloc,s.__wbindgen_realloc),i=w,u=s.updateTomlValues(c,i,t);var o=u[0],d=u[1];if(u[3])throw o=0,d=0,D(u[2]);return r=o,n=d,y(o,d)}finally{s.__wbindgen_free(r,n,1)}};a.exports.__wbg_from_2a5d3e218e67aa85=function(e){return Array.from(e)};a.exports.__wbg_get_b9b93047fe3cf45b=function(e,t){return e[t>>>0]};a.exports.__wbg_length_e2d2a49132c1b256=function(e){return e.length};a.exports.__wbindgen_boolean_get=function(e){let t=e;return typeof t=="boolean"?t?1:0:2};a.exports.__wbindgen_init_externref_table=function(){let e=s.__wbindgen_export_0,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)};a.exports.__wbindgen_is_array=function(e){return Array.isArray(e)};a.exports.__wbindgen_is_undefined=function(e){return e===void 0};a.exports.__wbindgen_number_get=function(e,t){let r=t,n=typeof r=="number"?r:void 0;g().setFloat64(e+8,A(n)?0:n,!0),g().setInt32(e+0,!A(n),!0)};a.exports.__wbindgen_string_get=function(e,t){let r=t,n=typeof r=="string"?r:void 0;var o=A(n)?0:M(n,s.__wbindgen_malloc,s.__wbindgen_realloc),d=w;g().setInt32(e+4,d,!0),g().setInt32(e+0,o,!0)};a.exports.__wbindgen_string_new=function(e,t){return y(e,t)};a.exports.__wbindgen_throw=function(e,t){throw new Error(y(e,t))};var N=T("path").join(__dirname,"toml_patch_bg.wasm"),R=T("fs").readFileSync(N),B=new WebAssembly.Module(R),P=new WebAssembly.Instance(B,S);s=P.exports;a.exports.__wasm=s;s.__wbindgen_start()});h();var E=$(L(),1),x=class extends v{path;constructor(t,r){super(r),this.name="TomlFileError",this.path=t}},O=class e{static async read(t){if(!await I(t))throw new x(t,`TOML file not found: ${t}`);let r=await _(t),n=new e(t,{});return n.content=n.decode(r),n}path;content;errors=[];constructor(t,r){this.path=t,this.content=r}async patch(t){let r=W(t),n=await _(this.path),o=(0,E.updateTomlValues)(n,r),d=this.decode(o);await l(this.path,o),this.content=d}async remove(t){let r=t.split("."),n=await _(this.path),o=(0,E.updateTomlValues)(n,[[r,void 0]]),d=this.decode(o);await l(this.path,o),this.content=d}async replace(t){let r=F(t);this.decode(r),await l(this.path,r),this.content=t}async transformRaw(t){let r=await _(this.path),n=t(r),o=this.decode(n);await l(this.path,n),this.content=o}decode(t){try{return V(t)}catch(r){let n=r;if(n.line!==void 0&&n.col!==void 0){let o=String(n.message).split(`
2
2
  `)[0]??"Invalid TOML";throw new x(this.path,`${o} at row ${n.line}, col ${n.col}`)}throw r}}};function W(e,t=[]){return Object.entries(e).flatMap(([r,n])=>{let o=[...t,r];return n!==null&&typeof n=="object"&&!Array.isArray(n)?W(n,o):[[o,n]]})}export{L as a,x as b,O as c};
@@ -1,4 +1,4 @@
1
- import{b as h}from"./chunk-PUGAY4JP.js";import{Ca as g,ua as u,wa as c}from"./chunk-TNYPQ2UL.js";import{d as f,q as p}from"./chunk-773TIA5M.js";import{g as l}from"./chunk-VKWPEFWQ.js";l();var d=f(p(),"/docs-shopify.dev/commands"),m=class extends h{static description="Generate CLI commands documentation";static hidden=!0;async run(){let a=this.config.commands;await g(d),await c(d);let o=a.sort((e,i)=>e.id.length-i.id.length).filter(e=>!b(e)).map(e=>{let i=k(e);return N(e,i)});await Promise.all(o)}},C=["commands","help","plugins"];function b(t){return t.hidden?(C.push(t.id),!0):t.pluginType==="user"?!0:C.some(a=>t.id.startsWith(`${a}:`))}function k(t){let a=t.id.replace(/[:]/g," "),s=t.id.replace(/[:]/g,"-"),o=t.id.replace(/[:-]/g,"");return{commandName:a,fileName:s,interfaceName:o}}async function N(t,{commandName:a,fileName:s,interfaceName:o}){let e=Object.keys(t.flags).map(r=>{let n=t.flags[r];if(!n||n.hidden)return;let $=n.description??"",w=n.char?`-${n.char}, `:"",y=n.type==="option"?"string":"''",v=n.type==="option"?" <value>":"",x=n.required?"":"?",D=n.env!==void 0?` @environment ${n.env}`:"";return` /**
1
+ import{b as h}from"./chunk-4DLRS7MT.js";import{Ca as g,ua as u,wa as c}from"./chunk-43FRAUV6.js";import{d as f,q as p}from"./chunk-773TIA5M.js";import{g as l}from"./chunk-VKWPEFWQ.js";l();var d=f(p(),"/docs-shopify.dev/commands"),m=class extends h{static description="Generate CLI commands documentation";static hidden=!0;async run(){let a=this.config.commands;await g(d),await c(d);let o=a.sort((e,i)=>e.id.length-i.id.length).filter(e=>!b(e)).map(e=>{let i=k(e);return N(e,i)});await Promise.all(o)}},C=["commands","help","plugins"];function b(t){return t.hidden?(C.push(t.id),!0):t.pluginType==="user"?!0:C.some(a=>t.id.startsWith(`${a}:`))}function k(t){let a=t.id.replace(/[:]/g," "),s=t.id.replace(/[:]/g,"-"),o=t.id.replace(/[:-]/g,"");return{commandName:a,fileName:s,interfaceName:o}}async function N(t,{commandName:a,fileName:s,interfaceName:o}){let e=Object.keys(t.flags).map(r=>{let n=t.flags[r];if(!n||n.hidden)return;let $=n.description??"",w=n.char?`-${n.char}, `:"",y=n.type==="option"?"string":"''",v=n.type==="option"?" <value>":"",x=n.required?"":"?",D=n.env!==void 0?` @environment ${n.env}`:"";return` /**
2
2
  * ${$}
3
3
  *${D}
4
4
  */
@@ -1 +1 @@
1
- import{a as s}from"./chunk-Z3JINOCM.js";import{a as e}from"./chunk-CYSB5AJJ.js";import{a as o}from"./chunk-SUQF2LM7.js";import{b as i}from"./chunk-PUGAY4JP.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();var t=class extends i{static description="View all the available UI kit components";static hiddenAliases=["kitchen-sink all"];static hidden=!0;async run(){await o(),await e(),await s()}};export{t as a};
1
+ import{a as s}from"./chunk-6P5FGN6P.js";import{a as e}from"./chunk-FRRA5MI2.js";import{a as o}from"./chunk-OPOPO7DG.js";import{b as i}from"./chunk-4DLRS7MT.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();var t=class extends i{static description="View all the available UI kit components";static hiddenAliases=["kitchen-sink all"];static hidden=!0;async run(){await o(),await e(),await s()}};export{t as a};
@@ -1 +1 @@
1
- import{b as f,c as r,d as h}from"./chunk-F4S4ITHP.js";import{a as l}from"./chunk-NNCLTG6A.js";import{a as c}from"./chunk-RVEAQUUF.js";import{wa as m}from"./chunk-NKSLEPE2.js";import{b as d}from"./chunk-BR5CFKIN.js";import{xb as e}from"./chunk-TNYPQ2UL.js";import{i as n}from"./chunk-B4OMIONW.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();var s=class g extends l{static summary="Watch and prints out changes to an app.";static hidden=!0;static flags={...d,...c};async run(){let{flags:t}=await this.parse(g),{app:o}=await m({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config}),i=new h(o);return await i.start(),e(`Watching for changes in ${o.name}...`),i.onEvent(async({app:y,extensionEvents:u,startTime:w,path:x})=>{e(`\u{1F195} Event [${f(w)}ms]`),e(` \u{1F4C2} ${x}`),u.forEach(a=>{switch(a.type){case r.Created:e(` \u2705 Extension created - ${n.green(a.extension.handle)}`);break;case r.Deleted:e(` \u274C Extension deleted: ${n.red(a.extension.handle)}`);break;case r.Updated:e(` \u{1F504} Updated: ${n.yellow(a.extension.handle)}`);break}})}),setInterval(()=>{},1<<30),{app:o}}};export{s as a};
1
+ import{b as f,c as r,d as h}from"./chunk-4HOJJCZ6.js";import{a as l}from"./chunk-VJ5YOXKL.js";import{a as c}from"./chunk-GINXNPAR.js";import{wa as m}from"./chunk-CVW2HMQO.js";import{b as d}from"./chunk-K2DP5Z76.js";import{xb as e}from"./chunk-43FRAUV6.js";import{i as n}from"./chunk-B4OMIONW.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();var s=class g extends l{static summary="Watch and prints out changes to an app.";static hidden=!0;static flags={...d,...c};async run(){let{flags:t}=await this.parse(g),{app:o}=await m({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config}),i=new h(o);return await i.start(),e(`Watching for changes in ${o.name}...`),i.onEvent(async({app:y,extensionEvents:u,startTime:w,path:x})=>{e(`\u{1F195} Event [${f(w)}ms]`),e(` \u{1F4C2} ${x}`),u.forEach(a=>{switch(a.type){case r.Created:e(` \u2705 Extension created - ${n.green(a.extension.handle)}`);break;case r.Deleted:e(` \u274C Extension deleted: ${n.red(a.extension.handle)}`);break;case r.Updated:e(` \u{1F504} Updated: ${n.yellow(a.extension.handle)}`);break}})}),setInterval(()=>{},1<<30),{app:o}}};export{s as a};
@@ -1 +1 @@
1
- import{j as p}from"./chunk-RAJX2CQP.js";import{a as n}from"./chunk-RVEAQUUF.js";import{b as s}from"./chunk-BR5CFKIN.js";import{b as a}from"./chunk-PUGAY4JP.js";import{a as d}from"./chunk-CTNBSUVU.js";import{f as r}from"./chunk-773TIA5M.js";import{e as l,g as e}from"./chunk-VKWPEFWQ.js";e();var o=l(d(),1);var i=class c extends a{static hidden=!0;static summary="Provide App Doctor instructions to a coding agent.";static descriptionWithMarkdown="Prints the complete workflow that a coding agent should follow to review App Doctor results.\n\nBy default, the instructions are printed to stdout. Use `--copy` to copy them to the clipboard or `--write` to write them to a file. Standalone instructions always start by running `shopify app doctor`; only that invocation's generated review pack is trusted as workflow input.";static description=this.descriptionWithoutMarkdown();static flags={...s,path:n.path,copy:o.Flags.boolean({description:"Copy the instructions to the clipboard instead of printing them.",default:!1,exclusive:["write"],env:"SHOPIFY_FLAG_APP_DOCTOR_INSTRUCTIONS_COPY"}),write:o.Flags.string({description:"Write the instructions to a file instead of printing them.",exclusive:["copy"],parse:async t=>r(t),env:"SHOPIFY_FLAG_APP_DOCTOR_INSTRUCTIONS_WRITE"})};async run(){let{flags:t}=await this.parse(c);await p({directory:t.path,copy:t.copy,writePath:t.write})}};export{i as a};
1
+ import{j as p}from"./chunk-MBRFIXCU.js";import{a as n}from"./chunk-GINXNPAR.js";import{b as s}from"./chunk-K2DP5Z76.js";import{b as a}from"./chunk-4DLRS7MT.js";import{a as d}from"./chunk-CTNBSUVU.js";import{f as r}from"./chunk-773TIA5M.js";import{e as l,g as e}from"./chunk-VKWPEFWQ.js";e();var o=l(d(),1);var i=class c extends a{static hidden=!0;static summary="Provide App Doctor instructions to a coding agent.";static descriptionWithMarkdown="Prints the complete workflow that a coding agent should follow to review App Doctor results.\n\nBy default, the instructions are printed to stdout. Use `--copy` to copy them to the clipboard or `--write` to write them to a file. Standalone instructions always start by running `shopify app doctor`; only that invocation's generated review pack is trusted as workflow input.";static description=this.descriptionWithoutMarkdown();static flags={...s,path:n.path,copy:o.Flags.boolean({description:"Copy the instructions to the clipboard instead of printing them.",default:!1,exclusive:["write"],env:"SHOPIFY_FLAG_APP_DOCTOR_INSTRUCTIONS_COPY"}),write:o.Flags.string({description:"Write the instructions to a file instead of printing them.",exclusive:["copy"],parse:async t=>r(t),env:"SHOPIFY_FLAG_APP_DOCTOR_INSTRUCTIONS_WRITE"})};async run(){let{flags:t}=await this.parse(c);await p({directory:t.path,copy:t.copy,writePath:t.write})}};export{i as a};
@@ -1 +1 @@
1
- import{a as q,c as C}from"./chunk-YJCNZGPY.js";import{d as x,f as k,u as N}from"./chunk-BV4K7JX5.js";import{a as J}from"./chunk-NNCLTG6A.js";import{a as A,c as E}from"./chunk-RVEAQUUF.js";import{b}from"./chunk-C2AA5NVP.js";import{b as O}from"./chunk-BR5CFKIN.js";import{k as I,l as y}from"./chunk-IAURXPUJ.js";import{B as v,I as f,z as d}from"./chunk-T3IMDY72.js";import{h as l}from"./chunk-4EHFK2OI.js";import{Ta as g,ma as h,qb as c,sb as s,ua as w,wb as S}from"./chunk-TNYPQ2UL.js";import{e as Q,g as p}from"./chunk-VKWPEFWQ.js";p();p();var F=Q(I(),1);async function z(a,e){if(a)try{return JSON.parse(a)}catch(t){let r=t instanceof Error?t.message:"Unknown error";throw new l(s`Invalid JSON in ${c.yellow("--variables")} flag: ${r}`,"Please provide valid JSON format.")}else if(e){if(!await g(e))throw new l(s`Variable file not found at ${c.path(e)}. Please check the path and try again.`);let t=await h(e,{encoding:"utf8"});try{return JSON.parse(t)}catch(r){let n=r instanceof Error?r.message:"Unknown error";throw new l(s`Invalid JSON in variable file ${c.path(e)}: ${n}`,"Please provide valid JSON format.")}}}async function M(a){let{remoteApp:e,store:t,query:r,variables:n,variableFile:$,version:L,outputFile:u}=a,{adminSession:R,version:V}=await f({title:s`Authenticating`,task:async()=>{let o=await q(e,t.shopDomain),i=await k({adminSession:o,userSpecifiedVersion:L});return{adminSession:o,version:i}},renderOptions:{stdout:process.stderr}}),G=await z(n,$);x(r),C(r,t);try{let o=await f({title:s`Executing GraphQL operation`,task:async()=>b({query:(0,F.parse)(r),session:R,variables:G,version:V,responseOptions:{handleErrors:!1}}),renderOptions:{stdout:process.stderr}}),i=JSON.stringify(o,null,2);u?(await w(u,i),d({headline:"Operation succeeded.",body:`Results written to ${u}`})):(d({headline:"Operation succeeded."}),S(i))}catch(o){if(o instanceof y){let i={errors:o.response.errors},P=JSON.stringify(i,null,2);v({headline:"GraphQL operation failed.",body:P});return}throw o}}var m=class a extends J{static summary="Execute GraphQL queries and mutations.";static descriptionWithMarkdown="Executes an Admin API GraphQL query or mutation on the specified store. Mutations are only allowed on dev stores.\n\n For operations that process large amounts of data, use [`bulk execute`](https://shopify.dev/docs/api/shopify-cli/app/app-bulk-execute) instead.";static description=this.descriptionWithoutMarkdown();static flags={...O,...A,...E};async run(){let{flags:e}=await this.parse(a),{query:t,appContextResult:r,store:n}=await N(e);return await M({organization:r.organization,remoteApp:r.remoteApp,store:n,query:t,variables:e.variables,variableFile:e["variable-file"],outputFile:e["output-file"],...e.version&&{version:e.version}}),{app:r.app}}};export{m as a};
1
+ import{a as q,c as C}from"./chunk-A3U7JDUC.js";import{d as x,f as k,u as N}from"./chunk-3CZ7DKE5.js";import{a as J}from"./chunk-VJ5YOXKL.js";import{a as A,c as E}from"./chunk-GINXNPAR.js";import{b}from"./chunk-CFQ5G2QS.js";import{b as O}from"./chunk-K2DP5Z76.js";import{k as I,l as y}from"./chunk-CNK3ZO2B.js";import{B as v,I as f,z as d}from"./chunk-6C5AVMKR.js";import{h as l}from"./chunk-OAG72Q2O.js";import{Ta as g,ma as h,qb as c,sb as s,ua as w,wb as S}from"./chunk-43FRAUV6.js";import{e as Q,g as p}from"./chunk-VKWPEFWQ.js";p();p();var F=Q(I(),1);async function z(a,e){if(a)try{return JSON.parse(a)}catch(t){let r=t instanceof Error?t.message:"Unknown error";throw new l(s`Invalid JSON in ${c.yellow("--variables")} flag: ${r}`,"Please provide valid JSON format.")}else if(e){if(!await g(e))throw new l(s`Variable file not found at ${c.path(e)}. Please check the path and try again.`);let t=await h(e,{encoding:"utf8"});try{return JSON.parse(t)}catch(r){let n=r instanceof Error?r.message:"Unknown error";throw new l(s`Invalid JSON in variable file ${c.path(e)}: ${n}`,"Please provide valid JSON format.")}}}async function M(a){let{remoteApp:e,store:t,query:r,variables:n,variableFile:$,version:L,outputFile:u}=a,{adminSession:R,version:V}=await f({title:s`Authenticating`,task:async()=>{let o=await q(e,t.shopDomain),i=await k({adminSession:o,userSpecifiedVersion:L});return{adminSession:o,version:i}},renderOptions:{stdout:process.stderr}}),G=await z(n,$);x(r),C(r,t);try{let o=await f({title:s`Executing GraphQL operation`,task:async()=>b({query:(0,F.parse)(r),session:R,variables:G,version:V,responseOptions:{handleErrors:!1}}),renderOptions:{stdout:process.stderr}}),i=JSON.stringify(o,null,2);u?(await w(u,i),d({headline:"Operation succeeded.",body:`Results written to ${u}`})):(d({headline:"Operation succeeded."}),S(i))}catch(o){if(o instanceof y){let i={errors:o.response.errors},P=JSON.stringify(i,null,2);v({headline:"GraphQL operation failed.",body:P});return}throw o}}var m=class a extends J{static summary="Execute GraphQL queries and mutations.";static descriptionWithMarkdown="Executes an Admin API GraphQL query or mutation on the specified store. Mutations are only allowed on dev stores.\n\n For operations that process large amounts of data, use [`bulk execute`](https://shopify.dev/docs/api/shopify-cli/app/app-bulk-execute) instead.";static description=this.descriptionWithoutMarkdown();static flags={...O,...A,...E};async run(){let{flags:e}=await this.parse(a),{query:t,appContextResult:r,store:n}=await N(e);return await M({organization:r.organization,remoteApp:r.remoteApp,store:n,query:t,variables:e.variables,variableFile:e["variable-file"],outputFile:e["output-file"],...e.version&&{version:e.version}}),{app:r.app}}};export{m as a};
@@ -1,4 +1,4 @@
1
- import{a as h}from"./chunk-6NO44HAQ.js";import{a as l}from"./chunk-NNCLTG6A.js";import{a as m}from"./chunk-RVEAQUUF.js";import{wa as c}from"./chunk-NKSLEPE2.js";import{b as d}from"./chunk-BR5CFKIN.js";import{D as a}from"./chunk-IAURXPUJ.js";import{z as p}from"./chunk-T3IMDY72.js";import{h as n}from"./chunk-4EHFK2OI.js";import{a as C}from"./chunk-CTNBSUVU.js";import{e as g,g as s}from"./chunk-VKWPEFWQ.js";s();s();async function v(t){let e=t.appContextResult.developerPlatformClient,o=t.appContextResult.remoteApp,r=await e.devSessionDelete({shopFqdn:t.store.shopDomain,appId:o.id});if(r.devSessionDelete?.userErrors.length){let u=r.devSessionDelete.userErrors.map(w=>w.message).join(`
1
+ import{a as h}from"./chunk-V2GLAK2W.js";import{a as l}from"./chunk-VJ5YOXKL.js";import{a as m}from"./chunk-GINXNPAR.js";import{wa as c}from"./chunk-CVW2HMQO.js";import{b as d}from"./chunk-K2DP5Z76.js";import{D as a}from"./chunk-CNK3ZO2B.js";import{z as p}from"./chunk-6C5AVMKR.js";import{h as n}from"./chunk-OAG72Q2O.js";import{a as C}from"./chunk-CTNBSUVU.js";import{e as g,g as s}from"./chunk-VKWPEFWQ.js";s();s();async function v(t){let e=t.appContextResult.developerPlatformClient,o=t.appContextResult.remoteApp,r=await e.devSessionDelete({shopFqdn:t.store.shopDomain,appId:o.id});if(r.devSessionDelete?.userErrors.length){let u=r.devSessionDelete.userErrors.map(w=>w.message).join(`
2
2
  `);throw new n(`Failed to stop the dev preview: ${u}`)}p({headline:"Dev preview stopped.",body:[`The dev preview has been stopped on ${t.store.shopDomain} and the app's active version has been restored.`,"You can start it again with",{command:"shopify app dev"}]})}var f=g(C(),1);var i=class t extends l{static summary="Cleans up the dev preview from the selected store.";static descriptionWithMarkdown=`Stop the dev preview that was started with \`shopify app dev\`.
3
3
 
4
4
  It restores the app's active version to the selected development store.
@@ -1 +1 @@
1
- import{b as n}from"./chunk-BR5CFKIN.js";import{i as r}from"./chunk-B4OMIONW.js";import{g as e}from"./chunk-VKWPEFWQ.js";e();function v(o){o.verbose&&(process.env[n.verbose.env]="true"),o.noColor&&(r.level=0,process.env.FORCE_COLOR="0")}export{v as a};
1
+ import{b as n}from"./chunk-K2DP5Z76.js";import{i as r}from"./chunk-B4OMIONW.js";import{g as e}from"./chunk-VKWPEFWQ.js";e();function v(o){o.verbose&&(process.env[n.verbose.env]="true"),o.noColor&&(r.level=0,process.env.FORCE_COLOR="0")}export{v as a};
@@ -1 +1 @@
1
- import{a as p}from"./chunk-3DXA7B3Y.js";import{a as r,b as c}from"./chunk-XCTRPBWM.js";import{d as s}from"./chunk-BIV3GWMB.js";import{a}from"./chunk-NNCLTG6A.js";import{wa as n}from"./chunk-NKSLEPE2.js";import{g as o}from"./chunk-VKWPEFWQ.js";o();var e=class d extends a{static hidden=!0;static summary="Reverses app subscription migrations that are still scheduled.";static descriptionWithMarkdown="Reverses scheduled app subscription migrations that have not migrated yet.\n\nWhen `--input` is omitted, the command reads CSV data from stdin. Use `--input <path>` to read from a file. `--input -` is also supported as an explicit stdin path.\n\n- Required CSV header: `shop_id`.\n- Example row: `123456789`.\n\nThe CSV can contain only the `shop_id` header, or it can reuse the complete CSV supplied to `schedule`; schedule-only columns are ignored.\n\nUnscheduling is not a rollback after a subscription has migrated. The command validates the entire CSV before sending any mutation. Use `--force` to skip confirmation and immediately submit every valid row.\n\nOperations are submitted in batches of 250 shops. Preserve every operation GID printed by the command so you can check or cancel the submitted operations. With `--watch`, human-readable output shows accepted identifiers before polling begins, then displays operation progress and the final outcome. With `--json --watch`, the command outputs one structured JSON document after every operation reaches a terminal status.\n\nRun the command from an app project. By default, it uses the Client ID from the active app configuration. Use `--path` to select an app directory or `--config` to select a configuration. Pass `--client-id` to select a different app within the project. Use `--reset` to relink the app.";static description=this.descriptionWithoutMarkdown();static examples=["<%= config.bin %> <%= command.id %> --input migrations.csv --force","cat migrations.csv | <%= config.bin %> <%= command.id %> --force","<%= config.bin %> <%= command.id %> --input migrations.csv --path ../my-app --config staging --force --json","<%= config.bin %> <%= command.id %> --input migrations.csv --client-id <client-id> --force","<%= config.bin %> <%= command.id %> --input - --force --watch"];static flags={...s};async run(){let{flags:t}=await this.parse(d),{app:m,remoteApp:u}=await n({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config}),h=await p({action:"unschedule",input:t.input??"-",clientId:u.apiKey,skipConfirmation:t.force,watch:t.watch,...t.watch&&!t.json?{onSubmissionAccepted:r}:{}}),i=c(h,{json:t.json,watch:t.watch});return i!==0&&(process.exitCode=i),{app:m}}};export{e as a};
1
+ import{a as p}from"./chunk-JJJIRCQP.js";import{a as r,b as c}from"./chunk-VBICZDA4.js";import{d as s}from"./chunk-EJJPEWSB.js";import{a}from"./chunk-VJ5YOXKL.js";import{wa as n}from"./chunk-CVW2HMQO.js";import{g as o}from"./chunk-VKWPEFWQ.js";o();var e=class d extends a{static hidden=!0;static summary="Reverses app subscription migrations that are still scheduled.";static descriptionWithMarkdown="Reverses scheduled app subscription migrations that have not migrated yet.\n\nWhen `--input` is omitted, the command reads CSV data from stdin. Use `--input <path>` to read from a file. `--input -` is also supported as an explicit stdin path.\n\n- Required CSV header: `shop_id`.\n- Example row: `123456789`.\n\nThe CSV can contain only the `shop_id` header, or it can reuse the complete CSV supplied to `schedule`; schedule-only columns are ignored.\n\nUnscheduling is not a rollback after a subscription has migrated. The command validates the entire CSV before sending any mutation. Use `--force` to skip confirmation and immediately submit every valid row.\n\nOperations are submitted in batches of 250 shops. Preserve every operation GID printed by the command so you can check or cancel the submitted operations. With `--watch`, human-readable output shows accepted identifiers before polling begins, then displays operation progress and the final outcome. With `--json --watch`, the command outputs one structured JSON document after every operation reaches a terminal status.\n\nRun the command from an app project. By default, it uses the Client ID from the active app configuration. Use `--path` to select an app directory or `--config` to select a configuration. Pass `--client-id` to select a different app within the project. Use `--reset` to relink the app.";static description=this.descriptionWithoutMarkdown();static examples=["<%= config.bin %> <%= command.id %> --input migrations.csv --force","cat migrations.csv | <%= config.bin %> <%= command.id %> --force","<%= config.bin %> <%= command.id %> --input migrations.csv --path ../my-app --config staging --force --json","<%= config.bin %> <%= command.id %> --input migrations.csv --client-id <client-id> --force","<%= config.bin %> <%= command.id %> --input - --force --watch"];static flags={...s};async run(){let{flags:t}=await this.parse(d),{app:m,remoteApp:u}=await n({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config}),h=await p({action:"unschedule",input:t.input??"-",clientId:u.apiKey,skipConfirmation:t.force,watch:t.watch,...t.watch&&!t.json?{onSubmissionAccepted:r}:{}}),i=c(h,{json:t.json,watch:t.watch});return i!==0&&(process.exitCode=i),{app:m}}};export{e as a};
@@ -1 +1 @@
1
- import{b as i}from"./chunk-6ZGCTTAD.js";import{d as r}from"./chunk-BR5CFKIN.js";import{b as t}from"./chunk-PUGAY4JP.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();var e=class extends t{static baseFlags=r;environmentsFilename(){return i.appEnvironments}};export{e as a};
1
+ import{b as i}from"./chunk-YNFXYVYN.js";import{d as r}from"./chunk-K2DP5Z76.js";import{b as t}from"./chunk-4DLRS7MT.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();var e=class extends t{static baseFlags=r;environmentsFilename(){return i.appEnvironments}};export{e as a};
@@ -1,4 +1,4 @@
1
- import{a as o}from"./chunk-GCN4O7HM.js";import{b as r}from"./chunk-PUGAY4JP.js";import{y as e}from"./chunk-T3IMDY72.js";import{s as i}from"./chunk-RM3XC2IX.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();var t=class extends r{static summary="Check whether auto-upgrade is enabled, disabled, or not yet configured.";static descriptionWithMarkdown=`Check whether auto-upgrade is enabled, disabled, or not yet configured.
1
+ import{a as o}from"./chunk-GCN4O7HM.js";import{b as r}from"./chunk-4DLRS7MT.js";import{y as e}from"./chunk-6C5AVMKR.js";import{s as i}from"./chunk-QKTBYAUD.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();var t=class extends r{static summary="Check whether auto-upgrade is enabled, disabled, or not yet configured.";static descriptionWithMarkdown=`Check whether auto-upgrade is enabled, disabled, or not yet configured.
2
2
 
3
3
  When auto-upgrade is enabled, Shopify CLI automatically updates to the latest version after each command.
4
4
 
@@ -1 +1 @@
1
- import{b as n}from"./chunk-EIASA32Z.js";import{g as t}from"./chunk-VKWPEFWQ.js";t();t();var o=class extends Error{type;constructor(e,p){super(p),this.type=e}},i=r=>async()=>r,s=r=>async e=>e.provider!==r.provider?n(new o("invalid-provider")):r.action(e.port);var d="cloudflare",v=i({name:d});export{o as a,s as b,d as c,v as d};
1
+ import{b as n}from"./chunk-SPNM3GES.js";import{g as t}from"./chunk-VKWPEFWQ.js";t();t();var o=class extends Error{type;constructor(e,p){super(p),this.type=e}},i=r=>async()=>r,s=r=>async e=>e.provider!==r.provider?n(new o("invalid-provider")):r.action(e.port);var d="cloudflare",v=i({name:d});export{o as a,s as b,d as c,v as d};
@@ -1 +1 @@
1
- import{c as u}from"./chunk-J6BXYZRY.js";import{A as c}from"./chunk-T3IMDY72.js";import{e as s}from"./chunk-HLLMMIIM.js";import{$a as d}from"./chunk-TNYPQ2UL.js";import{q as m}from"./chunk-773TIA5M.js";import{g as f}from"./chunk-VKWPEFWQ.js";f();function o(e,n){n||c(e)}async function P(e,n,t){let r=await l(n,t);if(!r){o({body:"Environment file not found."},t?.silent);return}let a=(await u.read(r)).content.environments;if(!a){o({body:["No environments found in",{command:r},{char:"."}]},t?.silent);return}let i=a[e];if(!i){o({body:["Environment",{command:e},"not found."]},t?.silent);return}return await s(()=>({environmentFlags:JSON.stringify(i)})),i}async function l(e,n){let t=n?.from&&n.from!=="."?n.from:m();return d(e,{cwd:t,type:"file"})}export{P as a,l as b};
1
+ import{c as u}from"./chunk-A3V2A2I4.js";import{A as c}from"./chunk-6C5AVMKR.js";import{e as s}from"./chunk-XRJCD3AO.js";import{$a as d}from"./chunk-43FRAUV6.js";import{q as m}from"./chunk-773TIA5M.js";import{g as f}from"./chunk-VKWPEFWQ.js";f();function o(e,n){n||c(e)}async function P(e,n,t){let r=await l(n,t);if(!r){o({body:"Environment file not found."},t?.silent);return}let a=(await u.read(r)).content.environments;if(!a){o({body:["No environments found in",{command:r},{char:"."}]},t?.silent);return}let i=a[e];if(!i){o({body:["Environment",{command:e},"not found."]},t?.silent);return}return await s(()=>({environmentFlags:JSON.stringify(i)})),i}async function l(e,n){let t=n?.from&&n.from!=="."?n.from:m();return d(e,{cwd:t,type:"file"})}export{P as a,l as b};
@@ -1 +1 @@
1
- import{O as i}from"./chunk-T3IMDY72.js";import{a as l}from"./chunk-7UNQOKZW.js";import{a as p}from"./chunk-CX5CC6P5.js";import{e as u,g as a}from"./chunk-VKWPEFWQ.js";a();var f=u(l(),1),o=u(p(),1);async function h(t){try{return(await i("npm",["list","@shopify/cli"],{cwd:t})).match(/@shopify\/cli@([\w.-]*)/)?.[1]}catch{return}}async function d(){try{let t={...process.env,SHOPIFY_CLI_NO_ANALYTICS:"1"},e=f.default.sync("shopify",{all:!0}).filter(r=>!r.includes("node_modules"));if(!e[0])return;let n=(await i(e[0],[],{env:t})).match(/@shopify\/cli\/([^\s]+)/);if(n&&n[1]){let r=n[1];if((0,o.satisfies)(r,">=3.59.0")||s(r))return r}return}catch{return}}function s(t){return t.startsWith("0.0.0")}function y(t,e){if(s(t)||s(e))return!1;let c=new o.SemVer(t),n=new o.SemVer(e);return c.major!==n.major}export{h as a,d as b,s as c,y as d};
1
+ import{O as i}from"./chunk-6C5AVMKR.js";import{a as l}from"./chunk-7UNQOKZW.js";import{a as p}from"./chunk-CX5CC6P5.js";import{e as u,g as a}from"./chunk-VKWPEFWQ.js";a();var f=u(l(),1),o=u(p(),1);async function h(t){try{return(await i("npm",["list","@shopify/cli"],{cwd:t})).match(/@shopify\/cli@([\w.-]*)/)?.[1]}catch{return}}async function d(){try{let t={...process.env,SHOPIFY_CLI_NO_ANALYTICS:"1"},e=f.default.sync("shopify",{all:!0}).filter(r=>!r.includes("node_modules"));if(!e[0])return;let n=(await i(e[0],[],{env:t})).match(/@shopify\/cli\/([^\s]+)/);if(n&&n[1]){let r=n[1];if((0,o.satisfies)(r,">=3.59.0")||s(r))return r}return}catch{return}}function s(t){return t.startsWith("0.0.0")}function y(t,e){if(s(t)||s(e))return!1;let c=new o.SemVer(t),n=new o.SemVer(e);return c.major!==n.major}export{h as a,d as b,s as c,y as d};
@@ -1 +1 @@
1
- import{J as f,ka as v,l as d,la as A,o as w,w as m}from"./chunk-IAURXPUJ.js";import{b as l}from"./chunk-RM3XC2IX.js";import{h as p,k as F}from"./chunk-4EHFK2OI.js";import{qb as V,sb as h}from"./chunk-TNYPQ2UL.js";import{i as q}from"./chunk-DPNZWBT5.js";import{g as c}from"./chunk-VKWPEFWQ.js";c();c();var g={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"publicApiVersions"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"publicApiVersions"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"handle"}},{kind:"Field",name:{kind:"Name",value:"supported"}},{kind:"Field",name:{kind:"Name",value:"__typename"}}]}}]}}]};var S=new Map;async function W(t,r,e,o){let a="Admin",u=o??await b(r),n=r.storeFqdn,s=$(r);l()==="local"&&(s["x-forwarded-host"]=n,n=new m().host("app"));let i=x(n,u,r);return v({query:t,api:a,addedHeaders:s,url:i,token:r.token,variables:e})}async function E(t){let{query:r,session:e,variables:o,version:a,responseOptions:u,preferredBehaviour:n}=t,s=a??S.get(e.storeFqdn);s??=await b(e,n);let i=e.storeFqdn,k=$(e);l()==="local"&&(k["x-forwarded-host"]=i,i=new m().host("app"));let D={url:x(i,s,e),api:"Admin",token:e.token,addedHeaders:k},y;return"refresh"in e&&(y={type:"token_refresh",handler:e.refresh}),A({...D,query:r,variables:o,responseOptions:u,unauthorizedHandler:y,preferredBehaviour:n})}function $(t){return f(t)?{"X-Shopify-Shop":t.storeFqdn,"X-Shopify-Access-Token":t.token}:{}}async function b(t,r){let o=(await N(t,r)).reverse()[0];return S.set(t.storeFqdn,o),o}async function N(t,r){return(await R(t,r)).filter(o=>o.supported).map(o=>o.handle).sort()}async function R(t,r){try{return(await E({query:g,session:t,variables:{},version:"unstable",responseOptions:{handleErrors:!1},preferredBehaviour:r})).publicApiVersions}catch(e){if(e instanceof d&&e.response.status===403){let o=t.storeFqdn.replace(".myshopify.com","");throw new p(h`Looks like you don't have access to this dev store: (${V.link(o,`https://${t.storeFqdn}`)})`,h`If you're not the owner, create a dev store staff account for yourself`)}throw e instanceof d&&(e.response.status===401||e.response.status===404)?new p(`Error connecting to your store ${t.storeFqdn}: ${e.message} ${e.response.status} ${e.response.data}`):w(e)?new p(`Network error connecting to your store ${t.storeFqdn}: ${e instanceof Error?e.message:String(e)}`,"Check your internet connection and try again."):new F(`Unknown error connecting to your store ${t.storeFqdn}: ${e instanceof Error?e.message:String(e)}`)}}function x(t,r,e){let o=r??"unstable";return e&&f(e)?`https://${q}/cli/admin/api/${o}/graphql.json`:`https://${t}/admin/api/${o}/graphql.json`}export{W as a,E as b,N as c,R as d,x as e};
1
+ import{J as f,ka as v,l as d,la as A,o as w,w as m}from"./chunk-CNK3ZO2B.js";import{b as l}from"./chunk-QKTBYAUD.js";import{h as p,k as F}from"./chunk-OAG72Q2O.js";import{qb as V,sb as h}from"./chunk-43FRAUV6.js";import{i as q}from"./chunk-DPNZWBT5.js";import{g as c}from"./chunk-VKWPEFWQ.js";c();c();var g={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"publicApiVersions"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"publicApiVersions"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"handle"}},{kind:"Field",name:{kind:"Name",value:"supported"}},{kind:"Field",name:{kind:"Name",value:"__typename"}}]}}]}}]};var S=new Map;async function W(t,r,e,o){let a="Admin",u=o??await b(r),n=r.storeFqdn,s=$(r);l()==="local"&&(s["x-forwarded-host"]=n,n=new m().host("app"));let i=x(n,u,r);return v({query:t,api:a,addedHeaders:s,url:i,token:r.token,variables:e})}async function E(t){let{query:r,session:e,variables:o,version:a,responseOptions:u,preferredBehaviour:n}=t,s=a??S.get(e.storeFqdn);s??=await b(e,n);let i=e.storeFqdn,k=$(e);l()==="local"&&(k["x-forwarded-host"]=i,i=new m().host("app"));let D={url:x(i,s,e),api:"Admin",token:e.token,addedHeaders:k},y;return"refresh"in e&&(y={type:"token_refresh",handler:e.refresh}),A({...D,query:r,variables:o,responseOptions:u,unauthorizedHandler:y,preferredBehaviour:n})}function $(t){return f(t)?{"X-Shopify-Shop":t.storeFqdn,"X-Shopify-Access-Token":t.token}:{}}async function b(t,r){let o=(await N(t,r)).reverse()[0];return S.set(t.storeFqdn,o),o}async function N(t,r){return(await R(t,r)).filter(o=>o.supported).map(o=>o.handle).sort()}async function R(t,r){try{return(await E({query:g,session:t,variables:{},version:"unstable",responseOptions:{handleErrors:!1},preferredBehaviour:r})).publicApiVersions}catch(e){if(e instanceof d&&e.response.status===403){let o=t.storeFqdn.replace(".myshopify.com","");throw new p(h`Looks like you don't have access to this dev store: (${V.link(o,`https://${t.storeFqdn}`)})`,h`If you're not the owner, create a dev store staff account for yourself`)}throw e instanceof d&&(e.response.status===401||e.response.status===404)?new p(`Error connecting to your store ${t.storeFqdn}: ${e.message} ${e.response.status} ${e.response.data}`):w(e)?new p(`Network error connecting to your store ${t.storeFqdn}: ${e instanceof Error?e.message:String(e)}`,"Check your internet connection and try again."):new F(`Unknown error connecting to your store ${t.storeFqdn}: ${e instanceof Error?e.message:String(e)}`)}}function x(t,r,e){let o=r??"unstable";return e&&f(e)?`https://${q}/cli/admin/api/${o}/graphql.json`:`https://${t}/admin/api/${o}/graphql.json`}export{W as a,E as b,N as c,R as d,x as e};