@shopify/cli 0.0.0-snapshot-20260722210655 → 0.0.0-snapshot-20260723175937

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 (293) hide show
  1. package/dist/analytics-7C5M2VCO.js +1 -0
  2. package/dist/analytics-ISEOSBXQ.js +1 -0
  3. package/dist/bootstrap.js +1 -1
  4. package/dist/{chunk-ROBYXQMW.js → chunk-25TGONTZ.js} +1 -1
  5. package/dist/{chunk-Q37I33P7.js → chunk-26NH7QQF.js} +1 -1
  6. package/dist/chunk-27IBAKXK.js +1 -0
  7. package/dist/{chunk-GAUJKBLY.js → chunk-2ABJYYVF.js} +1 -1
  8. package/dist/{chunk-6SVMZEJO.js → chunk-2AIX3ZEA.js} +1 -1
  9. package/dist/{chunk-SUOXR2CE.js → chunk-2KAM4SR5.js} +1 -1
  10. package/dist/{chunk-GWUDVP3Q.js → chunk-2S5KE5HI.js} +1 -1
  11. package/dist/{chunk-L6VQZJM4.js → chunk-2XNXIQPJ.js} +1 -1
  12. package/dist/{chunk-VSPM4VES.js → chunk-2ZSXGYTT.js} +1 -1
  13. package/dist/{chunk-PNCF5LNZ.js → chunk-37B4MKUV.js} +1 -1
  14. package/dist/{chunk-VFU5YYTM.js → chunk-3CZCBBO2.js} +1 -1
  15. package/dist/{chunk-SACH2YSZ.js → chunk-3EL4GA72.js} +1 -1
  16. package/dist/{chunk-POYWH3PD.js → chunk-3F46XSP6.js} +1 -1
  17. package/dist/{chunk-X2NVFYY6.js → chunk-3FANSGNX.js} +1 -1
  18. package/dist/{chunk-2OBG4WT7.js → chunk-3FJMXGVN.js} +1 -1
  19. package/dist/{chunk-OYOTLGGD.js → chunk-3HEORIF3.js} +1 -1
  20. package/dist/{chunk-HXJ7HJFS.js → chunk-3LDCOBRM.js} +1 -1
  21. package/dist/{chunk-SW3DP3GU.js → chunk-3MV5A5HR.js} +1 -1
  22. package/dist/{chunk-3R45SEUK.js → chunk-3OKGR33F.js} +1 -1
  23. package/dist/{chunk-JNAAHGJ6.js → chunk-3PFKQSWK.js} +1 -1
  24. package/dist/{chunk-PNYIQOOE.js → chunk-3UFQ664V.js} +1 -1
  25. package/dist/{chunk-AK4NPOQG.js → chunk-3UYW3ZAG.js} +1 -1
  26. package/dist/{chunk-3PFIBTES.js → chunk-3XHYGKBZ.js} +3 -3
  27. package/dist/{chunk-SY3LXLT2.js → chunk-4D7XW3LW.js} +1 -1
  28. package/dist/{chunk-34CCAMTT.js → chunk-4DEWRMWM.js} +1 -1
  29. package/dist/{chunk-P5KLFBCI.js → chunk-4KXJD6WW.js} +1 -1
  30. package/dist/{chunk-GVHVEYNG.js → chunk-4LK74JVJ.js} +1 -1
  31. package/dist/{chunk-LANGOUPS.js → chunk-4MERFNHB.js} +2 -2
  32. package/dist/{chunk-2RLFO4KD.js → chunk-5HTTO4O6.js} +1 -1
  33. package/dist/{chunk-NIQWXTKA.js → chunk-5UTJOHAV.js} +1 -1
  34. package/dist/{chunk-MH6UDGGS.js → chunk-5X6JR7QJ.js} +1 -1
  35. package/dist/{chunk-65H3LZJA.js → chunk-62G4E3FF.js} +1 -1
  36. package/dist/{chunk-IDRP7BXW.js → chunk-63G2KGOU.js} +1 -1
  37. package/dist/{chunk-AMLHR2HO.js → chunk-65VUWLXE.js} +1 -1
  38. package/dist/{chunk-5RMFBXP6.js → chunk-6MDI7364.js} +1 -1
  39. package/dist/{chunk-EIEHPIWJ.js → chunk-6SZRXJX2.js} +1 -1
  40. package/dist/{chunk-HJH672U6.js → chunk-72YGVGPS.js} +1 -1
  41. package/dist/{chunk-SP7NSQ6G.js → chunk-7CF2LWEW.js} +1 -1
  42. package/dist/{chunk-ZDKGQCIZ.js → chunk-7ER6T55S.js} +1 -1
  43. package/dist/{chunk-3RUWUOIR.js → chunk-7LOSGGE6.js} +1 -1
  44. package/dist/{chunk-XEHMXJ5J.js → chunk-AB7462EM.js} +1 -1
  45. package/dist/chunk-AS7WHEG6.js +1 -0
  46. package/dist/{chunk-LX3NHWCT.js → chunk-AZK63TEX.js} +1 -1
  47. package/dist/{chunk-4NSHAMD3.js → chunk-BGTOVY2S.js} +1 -1
  48. package/dist/{chunk-EI6ZQXTF.js → chunk-BXQV7N7H.js} +1 -1
  49. package/dist/{chunk-3GPUBV4D.js → chunk-BYW2F2BY.js} +1 -1
  50. package/dist/{chunk-V4CPWXJP.js → chunk-C3AC5FQS.js} +1 -1
  51. package/dist/{chunk-WKJNCJUV.js → chunk-C7BPIZLV.js} +1 -1
  52. package/dist/{chunk-OQ6WYWG4.js → chunk-CG22VLHL.js} +1 -1
  53. package/dist/{chunk-MTGARKCQ.js → chunk-CTYRVUJF.js} +1 -1
  54. package/dist/{chunk-33AVVFWW.js → chunk-CXYYVAYY.js} +1 -1
  55. package/dist/{chunk-H3QSHKNT.js → chunk-CY227SF6.js} +1 -1
  56. package/dist/{chunk-OPHCAOPB.js → chunk-DBH75XMC.js} +1 -1
  57. package/dist/{chunk-2CMSXRZ5.js → chunk-DDQPQB5D.js} +1 -1
  58. package/dist/{chunk-Q3DRVTVJ.js → chunk-DFSWF4VW.js} +1 -1
  59. package/dist/{chunk-2FNJZPYC.js → chunk-DYFP3SBA.js} +2 -2
  60. package/dist/{chunk-3XBPV64S.js → chunk-EFRJEZBJ.js} +1 -1
  61. package/dist/{chunk-M3FOYFPN.js → chunk-EIFAHNSO.js} +1 -1
  62. package/dist/{chunk-CNOGRHAB.js → chunk-EO3BLRBC.js} +1 -1
  63. package/dist/{chunk-SQVJGTTD.js → chunk-EOGQ7TJP.js} +2 -2
  64. package/dist/{chunk-XGJH3HBA.js → chunk-F46ZV3EJ.js} +1 -1
  65. package/dist/{chunk-E7Z7KYBR.js → chunk-F5LI3LKB.js} +1 -1
  66. package/dist/{chunk-ALKT4HX7.js → chunk-FD55RBY6.js} +1 -1
  67. package/dist/{chunk-IV3S4JU6.js → chunk-FDAURSWQ.js} +1 -1
  68. package/dist/chunk-FDYZZLAY.js +1 -0
  69. package/dist/{chunk-J5D222UG.js → chunk-FY7D7Z24.js} +1 -1
  70. package/dist/{chunk-5EDRU7YU.js → chunk-GHVEHA7R.js} +1 -1
  71. package/dist/{chunk-UMMEUYHM.js → chunk-GLBVUEXK.js} +1 -1
  72. package/dist/{chunk-LZO2JTZS.js → chunk-GQFZ3NV5.js} +1 -1
  73. package/dist/{chunk-DC3JYNAG.js → chunk-GZ4OU46N.js} +1 -1
  74. package/dist/{chunk-IDMJWVJC.js → chunk-H5BHHSWX.js} +1 -1
  75. package/dist/{chunk-22YTDD56.js → chunk-HIT7MKA6.js} +1 -1
  76. package/dist/{chunk-BPRY3O4N.js → chunk-HXPUMDUV.js} +1 -1
  77. package/dist/{chunk-IP2ZMDG4.js → chunk-I3RM47TC.js} +1 -1
  78. package/dist/{chunk-32KQUYFF.js → chunk-I6RAL5QK.js} +1 -1
  79. package/dist/{chunk-BKMZCB6M.js → chunk-I6UFC3HR.js} +1 -1
  80. package/dist/{chunk-IZCDEDIM.js → chunk-IF7RP3M3.js} +1 -1
  81. package/dist/{chunk-P4LA3M5S.js → chunk-IKLOCQ2C.js} +1 -1
  82. package/dist/{chunk-B3XKHB4G.js → chunk-INZZF4R2.js} +1 -1
  83. package/dist/{chunk-3GQ6AVHU.js → chunk-IUIDJ2PO.js} +1 -1
  84. package/dist/{chunk-MXATGPGZ.js → chunk-JMGXQSF3.js} +1 -1
  85. package/dist/{chunk-5N6YKJLU.js → chunk-JOKF7TQS.js} +1 -1
  86. package/dist/{chunk-HPH7WWMW.js → chunk-JWAFPHPO.js} +1 -1
  87. package/dist/{chunk-O6BUPYXH.js → chunk-K44YPOUY.js} +2 -2
  88. package/dist/{chunk-ZZ5M5IMF.js → chunk-K4Y7L7JO.js} +1 -1
  89. package/dist/{chunk-4GWHZ4RW.js → chunk-K7N3O5JJ.js} +1 -1
  90. package/dist/{chunk-6NRRHHK5.js → chunk-KLRRNM7H.js} +1 -1
  91. package/dist/{chunk-YKAMTVJM.js → chunk-KZHXG3OR.js} +1 -1
  92. package/dist/{chunk-J2JMKTPR.js → chunk-L2DBLX4V.js} +1 -1
  93. package/dist/{chunk-NDVET7BL.js → chunk-LBEAJPA3.js} +1 -1
  94. package/dist/{chunk-UA2432YR.js → chunk-LEMDZHSP.js} +1 -1
  95. package/dist/{chunk-UZR7JB5B.js → chunk-LMOWRJJP.js} +1 -1
  96. package/dist/{chunk-O5FUKS5D.js → chunk-LNE7HDII.js} +1 -1
  97. package/dist/{chunk-W6BBFBOM.js → chunk-LSNGFAPG.js} +1 -1
  98. package/dist/{chunk-IKP2EM5F.js → chunk-M2F2HMDM.js} +1 -1
  99. package/dist/{chunk-WFCP2AG5.js → chunk-M5NVKW2D.js} +1 -1
  100. package/dist/{chunk-SXWAECCX.js → chunk-MK2K6PO4.js} +1 -1
  101. package/dist/{chunk-A35F74KC.js → chunk-N5MWZQUH.js} +1 -1
  102. package/dist/{chunk-SNK55FY2.js → chunk-N5VSGERX.js} +1 -1
  103. package/dist/{chunk-35Z5TIZM.js → chunk-O7LFTI43.js} +1 -1
  104. package/dist/{chunk-H2Z3SST2.js → chunk-OJVEC76K.js} +1 -1
  105. package/dist/{chunk-O7HL63YP.js → chunk-OK7WTQON.js} +1 -1
  106. package/dist/{chunk-CFZVZFVH.js → chunk-P7YRGKJH.js} +1 -1
  107. package/dist/{chunk-L6C3DLKN.js → chunk-PFVF5CZ4.js} +1 -1
  108. package/dist/{chunk-X5GZF33W.js → chunk-PJWEE7VH.js} +1 -1
  109. package/dist/{chunk-FS37ZPWQ.js → chunk-PR7JET4Q.js} +1 -1
  110. package/dist/{chunk-ISVXQQ4E.js → chunk-Q2QCCK7J.js} +1 -1
  111. package/dist/{chunk-CFXL555E.js → chunk-QBL3VWF4.js} +1 -1
  112. package/dist/{chunk-R56CBH7G.js → chunk-QG4SGGWR.js} +1 -1
  113. package/dist/{chunk-74DZVIJF.js → chunk-QRUQJQYE.js} +1 -1
  114. package/dist/{chunk-FDQNY7RF.js → chunk-R3GD62F4.js} +1 -1
  115. package/dist/{chunk-MSDNBGRH.js → chunk-RQLOFISE.js} +1 -1
  116. package/dist/{chunk-HFGB7XAM.js → chunk-RUMPZWDB.js} +1 -1
  117. package/dist/{chunk-PPHJ4F2Z.js → chunk-S3SPKCJD.js} +1 -1
  118. package/dist/{chunk-5VKFEYZK.js → chunk-S6JGBSUV.js} +1 -1
  119. package/dist/{chunk-CT5MMCRM.js → chunk-SEIBJIHL.js} +1 -1
  120. package/dist/{chunk-5Y33JTFD.js → chunk-SK4IRFCK.js} +1 -1
  121. package/dist/{chunk-HG5QVQ2T.js → chunk-SLDQ5BC7.js} +1 -1
  122. package/dist/{chunk-VURVVLVE.js → chunk-SLQHQJIR.js} +1 -1
  123. package/dist/{chunk-RUV5AE3N.js → chunk-ST2DGIWE.js} +1 -1
  124. package/dist/{chunk-BQ2752RO.js → chunk-TGIRO2TB.js} +1 -1
  125. package/dist/{chunk-X4JRQETX.js → chunk-TYR2AZ2U.js} +1 -1
  126. package/dist/{chunk-VBL7DLY7.js → chunk-TZ7FKRXB.js} +1 -1
  127. package/dist/{chunk-6CZ7WGE2.js → chunk-UJ4VQGXU.js} +1 -1
  128. package/dist/{chunk-JBIXZWT6.js → chunk-V3IMCEL6.js} +1 -1
  129. package/dist/{chunk-XYV4QXQT.js → chunk-VCXCFKA6.js} +1 -1
  130. package/dist/{chunk-5HGRHX2Z.js → chunk-VGJ3QPC2.js} +1 -1
  131. package/dist/{chunk-FS4HIL62.js → chunk-VJXKYDM6.js} +1 -1
  132. package/dist/{chunk-ZKNONN2F.js → chunk-VMPA4DZ3.js} +1 -1
  133. package/dist/{chunk-I7QJGHS6.js → chunk-W25DPKDC.js} +1 -1
  134. package/dist/{chunk-YZQYDTO7.js → chunk-W2W2F55C.js} +1 -1
  135. package/dist/{chunk-FVQG4KLI.js → chunk-W57R5X75.js} +1 -1
  136. package/dist/{chunk-FW732EHN.js → chunk-W6MEUK2V.js} +1 -1
  137. package/dist/{chunk-HS7TCC4I.js → chunk-WAH2LVVU.js} +1 -1
  138. package/dist/{chunk-NUCUZBO3.js → chunk-WQDFO5DZ.js} +1 -1
  139. package/dist/{chunk-VQ44LFBY.js → chunk-WQLVBL6G.js} +1 -1
  140. package/dist/{chunk-3I6ZVKZ2.js → chunk-WUSJP6KG.js} +1 -1
  141. package/dist/{chunk-XBFXB6S6.js → chunk-X6YKSZTY.js} +1 -1
  142. package/dist/{chunk-W6KRZTDH.js → chunk-X7EK6UZQ.js} +1 -1
  143. package/dist/{chunk-OLQN2OBC.js → chunk-XALIRIZF.js} +1 -1
  144. package/dist/{chunk-W2RZY64W.js → chunk-XCTHPL4E.js} +1 -1
  145. package/dist/{chunk-FFC42T6R.js → chunk-XGCOJ7UT.js} +1 -1
  146. package/dist/{chunk-SH5VEQ7F.js → chunk-XJMML6SY.js} +1 -1
  147. package/dist/{chunk-AROEKWUX.js → chunk-XQBHDUNJ.js} +1 -1
  148. package/dist/{chunk-KHOW6SXW.js → chunk-XR6V742E.js} +1 -1
  149. package/dist/{chunk-OM3YN7ZK.js → chunk-YDUVKJIB.js} +1 -1
  150. package/dist/{chunk-ONCEFPYP.js → chunk-YIZV3FZO.js} +1 -1
  151. package/dist/{chunk-KNLPWHHJ.js → chunk-YKQLGBJM.js} +2 -2
  152. package/dist/{chunk-FOQ2RDEI.js → chunk-YLA2NKA6.js} +1 -1
  153. package/dist/{chunk-XKMLKEYX.js → chunk-YNFZXXCS.js} +1 -1
  154. package/dist/{chunk-IPKYIHDV.js → chunk-YNVN765Y.js} +1 -1
  155. package/dist/{chunk-N54QOQ2V.js → chunk-YPHEUPMZ.js} +1 -1
  156. package/dist/{chunk-QAMPDFZB.js → chunk-YTINYHIV.js} +1 -1
  157. package/dist/{chunk-WYT437LJ.js → chunk-Z4E54GTK.js} +1 -1
  158. package/dist/{chunk-EL5U7452.js → chunk-Z4HK5PYZ.js} +1 -1
  159. package/dist/{chunk-N2UVYELM.js → chunk-ZA2P2XLH.js} +1 -1
  160. package/dist/{chunk-2VVXGQ36.js → chunk-ZEVWQAWR.js} +1 -1
  161. package/dist/{chunk-GJGKVHUR.js → chunk-ZMEDSOFC.js} +1 -1
  162. package/dist/{chunk-ZKIIMXKC.js → chunk-ZXXEEQKW.js} +1 -1
  163. package/dist/cli/commands/app/app-logs/sources.js +1 -1
  164. package/dist/cli/commands/app/build.js +1 -1
  165. package/dist/cli/commands/app/bulk/cancel.js +1 -1
  166. package/dist/cli/commands/app/bulk/execute.js +1 -1
  167. package/dist/cli/commands/app/bulk/status.js +1 -1
  168. package/dist/cli/commands/app/config/link.js +1 -1
  169. package/dist/cli/commands/app/config/pull.js +1 -1
  170. package/dist/cli/commands/app/config/use.js +1 -1
  171. package/dist/cli/commands/app/config/validate.js +1 -1
  172. package/dist/cli/commands/app/demo/watcher.js +1 -1
  173. package/dist/cli/commands/app/deploy.js +1 -1
  174. package/dist/cli/commands/app/dev/clean.js +1 -1
  175. package/dist/cli/commands/app/dev.js +1 -1
  176. package/dist/cli/commands/app/env/pull.js +1 -1
  177. package/dist/cli/commands/app/env/show.js +1 -1
  178. package/dist/cli/commands/app/execute.js +1 -1
  179. package/dist/cli/commands/app/function/build.js +1 -1
  180. package/dist/cli/commands/app/function/info.js +1 -1
  181. package/dist/cli/commands/app/function/replay.js +1 -1
  182. package/dist/cli/commands/app/function/run.js +1 -1
  183. package/dist/cli/commands/app/function/schema.js +1 -1
  184. package/dist/cli/commands/app/function/typegen.js +1 -1
  185. package/dist/cli/commands/app/generate/extension.js +1 -1
  186. package/dist/cli/commands/app/graphiql.js +1 -1
  187. package/dist/cli/commands/app/import-custom-data-definitions.js +1 -1
  188. package/dist/cli/commands/app/import-extensions.js +1 -1
  189. package/dist/cli/commands/app/info.js +1 -1
  190. package/dist/cli/commands/app/init.js +1 -1
  191. package/dist/cli/commands/app/logs.js +1 -1
  192. package/dist/cli/commands/app/release.js +1 -1
  193. package/dist/cli/commands/app/versions/list.js +1 -1
  194. package/dist/cli/commands/app/webhook/trigger.js +1 -1
  195. package/dist/cli/commands/auth/login.js +1 -1
  196. package/dist/cli/commands/auth/logout.js +1 -1
  197. package/dist/cli/commands/cache/clear.js +1 -1
  198. package/dist/cli/commands/config/autoupgrade/off.js +1 -1
  199. package/dist/cli/commands/config/autoupgrade/on.js +1 -1
  200. package/dist/cli/commands/config/autoupgrade/status.js +1 -1
  201. package/dist/cli/commands/debug/command-flags.js +1 -1
  202. package/dist/cli/commands/doc/fetch.js +1 -1
  203. package/dist/cli/commands/doc/search.js +1 -1
  204. package/dist/cli/commands/docs/generate.js +1 -1
  205. package/dist/cli/commands/doctor-release/doctor-release.js +1 -1
  206. package/dist/cli/commands/doctor-release/theme/index.js +1 -1
  207. package/dist/cli/commands/help.js +1 -1
  208. package/dist/cli/commands/kitchen-sink/async.js +1 -1
  209. package/dist/cli/commands/kitchen-sink/index.js +1 -1
  210. package/dist/cli/commands/kitchen-sink/prompts.js +1 -1
  211. package/dist/cli/commands/kitchen-sink/static.js +1 -1
  212. package/dist/cli/commands/notifications/generate.js +1 -1
  213. package/dist/cli/commands/notifications/list.js +1 -1
  214. package/dist/cli/commands/organization/list.js +1 -1
  215. package/dist/cli/commands/search.js +1 -1
  216. package/dist/cli/commands/theme/check.js +1 -1
  217. package/dist/cli/commands/theme/console.js +1 -1
  218. package/dist/cli/commands/theme/delete.js +1 -1
  219. package/dist/cli/commands/theme/dev.js +1 -1
  220. package/dist/cli/commands/theme/duplicate.js +1 -1
  221. package/dist/cli/commands/theme/info.js +1 -1
  222. package/dist/cli/commands/theme/init.js +1 -1
  223. package/dist/cli/commands/theme/language-server.js +1 -1
  224. package/dist/cli/commands/theme/list.js +1 -1
  225. package/dist/cli/commands/theme/metafields/pull.js +1 -1
  226. package/dist/cli/commands/theme/open.js +1 -1
  227. package/dist/cli/commands/theme/package.js +1 -1
  228. package/dist/cli/commands/theme/preview.js +1 -1
  229. package/dist/cli/commands/theme/profile.js +1 -1
  230. package/dist/cli/commands/theme/publish.js +1 -1
  231. package/dist/cli/commands/theme/pull.js +1 -1
  232. package/dist/cli/commands/theme/push.js +1 -1
  233. package/dist/cli/commands/theme/rename.js +1 -1
  234. package/dist/cli/commands/theme/share.js +1 -1
  235. package/dist/cli/commands/upgrade.js +1 -1
  236. package/dist/cli/commands/validate/components.js +1 -1
  237. package/dist/cli/commands/validate/functions.js +1 -1
  238. package/dist/cli/commands/validate/graphql.js +1 -1
  239. package/dist/cli/commands/validate/theme.js +1 -1
  240. package/dist/cli/commands/version.js +1 -1
  241. package/dist/command-registry.js +1 -1
  242. package/dist/conf-store-UXALA7ZH.js +1 -0
  243. package/dist/{deprecations-SA4HEVBI.js → deprecations-Z2AKXOSN.js} +1 -1
  244. package/dist/dist-AB723W2X.js +1 -0
  245. package/dist/dist-MI22B6JV.js +1 -0
  246. package/dist/{environments-LDSGQHXC.js → environments-2J6IO6NS.js} +1 -1
  247. package/dist/{error-YY774ESQ.js → error-C7LRAXPN.js} +1 -1
  248. package/dist/error-handler-AG5VMYWI.js +1 -0
  249. package/dist/{fs-EIM4AORY.js → fs-L2VBGU3E.js} +1 -1
  250. package/dist/hooks/app-init.js +1 -1
  251. package/dist/hooks/did-you-mean.js +1 -1
  252. package/dist/hooks/hydrogen-init.js +1 -1
  253. package/dist/hooks/postrun.js +1 -1
  254. package/dist/hooks/prerun.js +1 -1
  255. package/dist/hooks/public-metadata.js +1 -1
  256. package/dist/hooks/sensitive-metadata.js +1 -1
  257. package/dist/hooks/tunnel-provider.js +1 -1
  258. package/dist/hooks/tunnel-start.js +1 -1
  259. package/dist/index.js +15 -15
  260. package/dist/{is-global-USYUXR55.js → is-global-ZB4Z53E4.js} +1 -1
  261. package/dist/{local-INRMOHAI.js → local-MZAF2JS4.js} +1 -1
  262. package/dist/{local-storage-7THURD3W.js → local-storage-LFCMTFLG.js} +1 -1
  263. package/dist/{metadata-WJ637XA2.js → metadata-IFRL6WLE.js} +1 -1
  264. package/dist/{node-package-manager-4X2YQGFC.js → node-package-manager-MNMMTKSE.js} +1 -1
  265. package/dist/notifications-system-WTOJOHUT.js +1 -0
  266. package/dist/{output-CLCX5WU7.js → output-CRFKNJOK.js} +1 -1
  267. package/dist/{prettier-VLTY4MIE.js → prettier-NOE3TJJ5.js} +1 -1
  268. package/dist/{system-J4OPHQAQ.js → system-2WLFWPW2.js} +1 -1
  269. package/dist/tsconfig.tsbuildinfo +1 -1
  270. package/dist/{ui-ZC5QZT4J.js → ui-ATGLY4UO.js} +1 -1
  271. package/dist/upgrade-NYAZSXEQ.js +1 -0
  272. package/dist/{version-EYLYG4JK.js → version-OFO7OKSR.js} +1 -1
  273. package/dist/version-Q4RRYUAM.js +1 -0
  274. package/dist/{workerd-VC3MCYDV.js → workerd-FIJ77CM7.js} +1 -1
  275. package/oclif.manifest.json +1 -30
  276. package/package.json +7 -10
  277. package/dist/analytics-JBPJLL57.js +0 -1
  278. package/dist/analytics-QVTQTZFT.js +0 -1
  279. package/dist/chunk-G3CPHVML.js +0 -1
  280. package/dist/chunk-RXO77IC5.js +0 -1
  281. package/dist/chunk-WMKVFUMY.js +0 -1
  282. package/dist/chunk-X2ZCC772.js +0 -1
  283. package/dist/cli/commands/skill/install.d.ts +0 -13
  284. package/dist/cli/commands/skill/install.js +0 -1
  285. package/dist/conf-store-OHJSRXSL.js +0 -1
  286. package/dist/dist-MIUGJGUW.js +0 -1
  287. package/dist/dist-XVWDWM2Y.js +0 -1
  288. package/dist/error-handler-QHCOZUC7.js +0 -1
  289. package/dist/notifications-system-ZSZWUJIZ.js +0 -1
  290. package/dist/skills-OXV2TD42.js +0 -1
  291. package/dist/upgrade-VSILBOCY.js +0 -1
  292. package/dist/version-FEVNX3F6.js +0 -1
  293. /package/dist/{chunk-2S3FHQFS.js → chunk-HVECVOIO.js} +0 -0
@@ -1 +1 @@
1
- import{P as m}from"./chunk-SQVJGTTD.js";import{m as c}from"./chunk-O6BUPYXH.js";import{Fb as l,Hb as n,Pb as a}from"./chunk-KNLPWHHJ.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{P as m}from"./chunk-EOGQ7TJP.js";import{m as c}from"./chunk-K44YPOUY.js";import{Fb as l,Hb as n,Pb as a}from"./chunk-YKQLGBJM.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,2 +1,2 @@
1
- import{a as f}from"./chunk-P4LA3M5S.js";import{d as N}from"./chunk-O6BUPYXH.js";import{e as y,g as h}from"./chunk-VKWPEFWQ.js";h();var u=y(N(),1);function m(e,t,r){return e.items.find(n=>r?n.type==="field"&&n.typeName===t&&n.fieldName===r:n.type==="type"&&n.typeName===t)?.offlineScopes??[]}function E(e,t,r){return e.items.find(n=>n.type==="field"&&n.typeName===t&&n.fieldName===r)?.returnType}async function D(e,t,r="admin"){let a=new Set,n=new Map(e.definitions.filter(i=>i.kind===u.Kind.FRAGMENT_DEFINITION).map(i=>[i.name.value,i]));for(let i of e.definitions)if(i.kind===u.Kind.OPERATION_DEFINITION){let o=i;if(o.selectionSet){let s=v(o.operation,r);m(t,s).forEach(c=>a.add(c)),x(o.selectionSet,s,t,a,n)}}return Array.from(a)}function L(e,t,r,a){let n=e.name.value;if(m(r,t,n).forEach(s=>a.add(s)),!e.selectionSet)return{nextSelectionSet:null,nextTypeName:null};let o=E(r,t,n);return o&&m(r,o).forEach(p=>a.add(p)),{nextSelectionSet:e.selectionSet,nextTypeName:o??null}}function T(e,t,r,a,n){let i=e.name.value;if(r.has(i))return{nextSelectionSet:null,nextTypeName:null};r.add(i);let o=t.get(i);if(!o?.selectionSet)return{nextSelectionSet:null,nextTypeName:null};let s=o.typeCondition.name.value;return m(a,s).forEach(c=>n.add(c)),{nextSelectionSet:o.selectionSet,nextTypeName:s}}function F(e,t,r,a){if(!e.selectionSet)return{nextSelectionSet:null,nextTypeName:null};let n=e.typeCondition?.name.value??t;return m(r,n).forEach(o=>a.add(o)),{nextSelectionSet:e.selectionSet,nextTypeName:n}}function x(e,t,r,a,n,i=new Set){for(let o of e.selections){let s;if(o.kind===u.Kind.FIELD)s=L(o,t,r,a);else if(o.kind===u.Kind.FRAGMENT_SPREAD)s=T(o,n,i,r,a);else if(o.kind===u.Kind.INLINE_FRAGMENT)s=F(o,t,r,a);else continue;s.nextSelectionSet&&s.nextTypeName&&x(s.nextSelectionSet,s.nextTypeName,r,a,n,i)}}function v(e,t="admin"){return t==="admin"?e==="mutation"?"Mutation":"QueryRoot":e==="mutation"?"Mutation":"Query"}function C(e){return!e||e.length===0?"":`
1
+ import{a as f}from"./chunk-IKLOCQ2C.js";import{d as N}from"./chunk-K44YPOUY.js";import{e as y,g as h}from"./chunk-VKWPEFWQ.js";h();var u=y(N(),1);function m(e,t,r){return e.items.find(n=>r?n.type==="field"&&n.typeName===t&&n.fieldName===r:n.type==="type"&&n.typeName===t)?.offlineScopes??[]}function E(e,t,r){return e.items.find(n=>n.type==="field"&&n.typeName===t&&n.fieldName===r)?.returnType}async function D(e,t,r="admin"){let a=new Set,n=new Map(e.definitions.filter(i=>i.kind===u.Kind.FRAGMENT_DEFINITION).map(i=>[i.name.value,i]));for(let i of e.definitions)if(i.kind===u.Kind.OPERATION_DEFINITION){let o=i;if(o.selectionSet){let s=v(o.operation,r);m(t,s).forEach(c=>a.add(c)),x(o.selectionSet,s,t,a,n)}}return Array.from(a)}function L(e,t,r,a){let n=e.name.value;if(m(r,t,n).forEach(s=>a.add(s)),!e.selectionSet)return{nextSelectionSet:null,nextTypeName:null};let o=E(r,t,n);return o&&m(r,o).forEach(p=>a.add(p)),{nextSelectionSet:e.selectionSet,nextTypeName:o??null}}function T(e,t,r,a,n){let i=e.name.value;if(r.has(i))return{nextSelectionSet:null,nextTypeName:null};r.add(i);let o=t.get(i);if(!o?.selectionSet)return{nextSelectionSet:null,nextTypeName:null};let s=o.typeCondition.name.value;return m(a,s).forEach(c=>n.add(c)),{nextSelectionSet:o.selectionSet,nextTypeName:s}}function F(e,t,r,a){if(!e.selectionSet)return{nextSelectionSet:null,nextTypeName:null};let n=e.typeCondition?.name.value??t;return m(r,n).forEach(o=>a.add(o)),{nextSelectionSet:e.selectionSet,nextTypeName:n}}function x(e,t,r,a,n,i=new Set){for(let o of e.selections){let s;if(o.kind===u.Kind.FIELD)s=L(o,t,r,a);else if(o.kind===u.Kind.FRAGMENT_SPREAD)s=T(o,n,i,r,a);else if(o.kind===u.Kind.INLINE_FRAGMENT)s=F(o,t,r,a);else continue;s.nextSelectionSet&&s.nextTypeName&&x(s.nextSelectionSet,s.nextTypeName,r,a,n,i)}}function v(e,t="admin"){return t==="admin"?e==="mutation"?"Mutation":"QueryRoot":e==="mutation"?"Mutation":"Query"}function C(e){return!e||e.length===0?"":`
2
2
  Required scopes: ${e.join(", ")}`}h();var l=y(N(),1);async function q(e,t,r){let a=e.trim();if(!a)return{validation:{result:f.FAILED,resultDetail:"No GraphQL operation found in the provided code."},scopes:[]};let{apiVersion:n,schemaSource:i}=r,o=r.failOnDeprecated??!0;if(n.name){let c=(i.readVersionCatalog()[t]??[]).map(d=>d.name);if(c.length>0&&!c.includes(n.name))throw new Error(`Unsupported version "${n.name}" for API "${t}". Available versions: ${c.join(", ")}.`)}let{graphQLSchema:s,offlineScopes:p}=await R(n,i);return G({graphqlCode:a,schema:s,api:t,offlineScopeData:p,failOnDeprecated:o})}async function R(e,t){let r;try{r=await t.readSchemaContent(e)}catch(i){throw(i instanceof Error?i.message:String(i)).includes("Schema file not found")?new Error(`Unable to load schema for API "${e.api}" version "${e.name}" - the schema file doesn't exist`):i}let a=JSON.parse(r),n=a.data;if(e.api.startsWith("functions_")&&n.__schema?.types){let i=new Set;for(let o of n.__schema.types)o.kind==="INPUT_OBJECT"&&o.inputFields&&o.inputFields.length===0&&i.add(o.name);if(i.size>0)for(let o of n.__schema.types)i.has(o.name)&&(o.inputFields=[{name:"_placeholder",description:"Placeholder field to satisfy GraphQL spec requirement for non-empty input objects",type:{kind:"SCALAR",name:"String",ofType:null},defaultValue:null,isDeprecated:!1,deprecationReason:null}])}return{graphQLSchema:(0,l.buildClientSchema)(n),offlineScopes:a.offline_scopes??{items:[]}}}function I(e){try{return{success:!0,document:(0,l.parse)(e)}}catch(t){return{success:!1,error:t instanceof Error?t.message:String(t)}}}function Q(e){let[t]=e.definitions;return t&&t.kind==="OperationDefinition"?t.operation:"operation"}async function G(e){let{graphqlCode:t,schema:r,api:a,offlineScopeData:n,failOnDeprecated:i}=e,o=t.trim(),s=I(o);if(!s.success)return{validation:{result:f.FAILED,resultDetail:`GraphQL syntax error: ${s.error}`},scopes:[]};let p=(0,l.validate)(r,s.document).map(S=>S.message);if(p.length>0)return{validation:{result:f.FAILED,resultDetail:`GraphQL validation errors: ${p.join("; ")}`},scopes:[]};let c=(0,l.validate)(r,s.document,[l.NoDeprecatedCustomRule]),d=[];try{d=await D(s.document,n,a)}catch{}let g=Q(s.document);if(c.length>0){let S=c.map(O=>O.message).join("; ");return i?{validation:{result:f.FAILED,resultDetail:`Deprecated fields used: ${S}`},scopes:d}:{validation:{result:f.INFORM,resultDetail:`Successfully validated GraphQL ${g} against schema. Note: ${S}`},scopes:d}}return{validation:{result:f.SUCCESS,resultDetail:`Successfully validated GraphQL ${g} against schema.`},scopes:d}}export{C as a,q as b};
@@ -1 +1 @@
1
- import{d as i,i as r,p as s}from"./chunk-773TIA5M.js";import{g as c}from"./chunk-VKWPEFWQ.js";c();import{existsSync as f,readFileSync as u}from"fs";import{fileURLToPath as p,pathToFileURL as g}from"url";var a;function h(){if(!a){let n=i(s(import.meta.url),"..","oclif.manifest.json");a=JSON.parse(u(n,"utf8")).commands}return a}var m=new Map;function y(n){let t=m.get(n);if(!t){for(t=r(p(import.meta.resolve(n)));t!==r(t);){try{if(JSON.parse(u(i(t,"package.json"),"utf8")).name===n)break}catch(o){if(o instanceof SyntaxError){t=r(t);continue}if(o.code==="ENOENT"){t=r(t);continue}throw o}t=r(t)}m.set(n,t)}return t}var P={"app:logs:sources":"dist/cli/commands/app/app-logs/sources.js","demo:watcher":"dist/cli/commands/app/demo/watcher.js","kitchen-sink":"dist/cli/commands/kitchen-sink/index.js","doctor-release":"dist/cli/commands/doctor-release/doctor-release.js","doctor-release:theme":"dist/cli/commands/doctor-release/theme/index.js"};function l(n){return P[n]??`dist/cli/commands/${n.replace(/:/g,"/")}.js`}var C=new Set(["@shopify/cli","@shopify/app","@shopify/theme"]);async function D(n){let o=h()[n];if(!o)return;let e=o.customPluginName??o.pluginName;if(e)return C.has(e)?j(n,e):k(n,e)}var d=i(s(import.meta.url),"..");function w(n,t){let o=l(n),e=i(d,o);return f(e)?d:y(t)}async function j(n,t){let o=l(n),e=w(n,t);return(await import(g(i(e,o)).href)).default}async function k(n,t){if(t==="@shopify/cli-hydrogen"){let{COMMANDS:o}=await import("./dist-XVWDWM2Y.js");return o?.[n]}if(t==="@oclif/plugin-commands"){let{commands:o}=await import("./lib-ZRBLSVEU.js");return o[n]}if(t==="@oclif/plugin-plugins"){let{commands:o}=await import("./lib-FNZOFECW.js");return o[n]}if(t==="@shopify/plugin-did-you-mean"){let{DidYouMeanCommands:o}=await import("./dist-MIUGJGUW.js");return o[n]}}export{D as a};
1
+ import{d as i,i as r,p as s}from"./chunk-773TIA5M.js";import{g as c}from"./chunk-VKWPEFWQ.js";c();import{existsSync as f,readFileSync as u}from"fs";import{fileURLToPath as p,pathToFileURL as g}from"url";var a;function h(){if(!a){let n=i(s(import.meta.url),"..","oclif.manifest.json");a=JSON.parse(u(n,"utf8")).commands}return a}var m=new Map;function y(n){let t=m.get(n);if(!t){for(t=r(p(import.meta.resolve(n)));t!==r(t);){try{if(JSON.parse(u(i(t,"package.json"),"utf8")).name===n)break}catch(o){if(o instanceof SyntaxError){t=r(t);continue}if(o.code==="ENOENT"){t=r(t);continue}throw o}t=r(t)}m.set(n,t)}return t}var P={"app:logs:sources":"dist/cli/commands/app/app-logs/sources.js","demo:watcher":"dist/cli/commands/app/demo/watcher.js","kitchen-sink":"dist/cli/commands/kitchen-sink/index.js","doctor-release":"dist/cli/commands/doctor-release/doctor-release.js","doctor-release:theme":"dist/cli/commands/doctor-release/theme/index.js"};function l(n){return P[n]??`dist/cli/commands/${n.replace(/:/g,"/")}.js`}var C=new Set(["@shopify/cli","@shopify/app","@shopify/theme"]);async function D(n){let o=h()[n];if(!o)return;let e=o.customPluginName??o.pluginName;if(e)return C.has(e)?j(n,e):k(n,e)}var d=i(s(import.meta.url),"..");function w(n,t){let o=l(n),e=i(d,o);return f(e)?d:y(t)}async function j(n,t){let o=l(n),e=w(n,t);return(await import(g(i(e,o)).href)).default}async function k(n,t){if(t==="@shopify/cli-hydrogen"){let{COMMANDS:o}=await import("./dist-MI22B6JV.js");return o?.[n]}if(t==="@oclif/plugin-commands"){let{commands:o}=await import("./lib-ZRBLSVEU.js");return o[n]}if(t==="@oclif/plugin-plugins"){let{commands:o}=await import("./lib-FNZOFECW.js");return o[n]}if(t==="@shopify/plugin-did-you-mean"){let{DidYouMeanCommands:o}=await import("./dist-AB723W2X.js");return o[n]}}export{D as a};
@@ -1,4 +1,4 @@
1
- import{m as E}from"./chunk-O6BUPYXH.js";import{Fb as $,Hb as T,Pb as O,Ta as V,ma as N}from"./chunk-KNLPWHHJ.js";import{a as g,c as w,e as Y,g as m}from"./chunk-VKWPEFWQ.js";var I=w((z,R)=>{R.exports={name:"dotenv",version:"16.6.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard",pretest:"npm run lint && npm run dts-check",test:"tap run --allow-empty-coverage --disable-coverage --timeout=60000","test:coverage":"tap run --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},homepage:"https://github.com/motdotla/dotenv#readme",funding:"https://dotenvx.com",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@types/node":"^18.11.3",decache:"^4.6.2",sinon:"^14.0.1",standard:"^17.0.0","standard-version":"^9.5.0",tap:"^19.2.0",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var K=w((X,d)=>{m();var b=g("fs"),y=g("path"),q=g("os"),F=g("crypto"),P=I(),D=P.version,C=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function S(e){let n={},r=e.toString();r=r.replace(/\r\n?/mg,`
1
+ import{m as E}from"./chunk-K44YPOUY.js";import{Fb as $,Hb as T,Pb as O,Ta as V,ma as N}from"./chunk-YKQLGBJM.js";import{a as g,c as w,e as Y,g as m}from"./chunk-VKWPEFWQ.js";var I=w((z,R)=>{R.exports={name:"dotenv",version:"16.6.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard",pretest:"npm run lint && npm run dts-check",test:"tap run --allow-empty-coverage --disable-coverage --timeout=60000","test:coverage":"tap run --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},homepage:"https://github.com/motdotla/dotenv#readme",funding:"https://dotenvx.com",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@types/node":"^18.11.3",decache:"^4.6.2",sinon:"^14.0.1",standard:"^17.0.0","standard-version":"^9.5.0",tap:"^19.2.0",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var K=w((X,d)=>{m();var b=g("fs"),y=g("path"),q=g("os"),F=g("crypto"),P=I(),D=P.version,C=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function S(e){let n={},r=e.toString();r=r.replace(/\r\n?/mg,`
2
2
  `);let s;for(;(s=C.exec(r))!=null;){let a=s[1],t=s[2]||"";t=t.trim();let o=t[0];t=t.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),o==='"'&&(t=t.replace(/\\n/g,`
3
3
  `),t=t.replace(/\\r/g,"\r")),n[a]=t}return n}function U(e){e=e||{};let n=x(e);e.path=n;let r=l.configDotenv(e);if(!r.parsed){let o=new Error(`MISSING_DATA: Cannot parse ${n} for an unknown reason`);throw o.code="MISSING_DATA",o}let s=A(e).split(","),a=s.length,t;for(let o=0;o<a;o++)try{let i=s[o].trim(),f=M(r,i);t=l.decrypt(f.ciphertext,f.key);break}catch(i){if(o+1>=a)throw i}return l.parse(t)}function B(e){console.log(`[dotenv@${D}][WARN] ${e}`)}function v(e){console.log(`[dotenv@${D}][DEBUG] ${e}`)}function j(e){console.log(`[dotenv@${D}] ${e}`)}function A(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function M(e,n){let r;try{r=new URL(n)}catch(i){if(i.code==="ERR_INVALID_URL"){let f=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw f.code="INVALID_DOTENV_KEY",f}throw i}let s=r.password;if(!s){let i=new Error("INVALID_DOTENV_KEY: Missing key part");throw i.code="INVALID_DOTENV_KEY",i}let a=r.searchParams.get("environment");if(!a){let i=new Error("INVALID_DOTENV_KEY: Missing environment part");throw i.code="INVALID_DOTENV_KEY",i}let t=`DOTENV_VAULT_${a.toUpperCase()}`,o=e.parsed[t];if(!o){let i=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${t} in your .env.vault file.`);throw i.code="NOT_FOUND_DOTENV_ENVIRONMENT",i}return{ciphertext:o,key:s}}function x(e){let n=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let r of e.path)b.existsSync(r)&&(n=r.endsWith(".vault")?r:`${r}.vault`);else n=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else n=y.resolve(process.cwd(),".env.vault");return b.existsSync(n)?n:null}function k(e){return e[0]==="~"?y.join(q.homedir(),e.slice(1)):e}function W(e){let n=!!(e&&e.debug),r=e&&"quiet"in e?e.quiet:!0;(n||!r)&&j("Loading env from encrypted .env.vault");let s=l._parseVault(e),a=process.env;return e&&e.processEnv!=null&&(a=e.processEnv),l.populate(a,s,e),{parsed:s}}function G(e){let n=y.resolve(process.cwd(),".env"),r="utf8",s=!!(e&&e.debug),a=e&&"quiet"in e?e.quiet:!0;e&&e.encoding?r=e.encoding:s&&v("No encoding is specified. UTF-8 is used by default");let t=[n];if(e&&e.path)if(!Array.isArray(e.path))t=[k(e.path)];else{t=[];for(let u of e.path)t.push(k(u))}let o,i={};for(let u of t)try{let c=l.parse(b.readFileSync(u,{encoding:r}));l.populate(i,c,e)}catch(c){s&&v(`Failed to load ${u} ${c.message}`),o=c}let f=process.env;if(e&&e.processEnv!=null&&(f=e.processEnv),l.populate(f,i,e),s||!a){let u=Object.keys(i).length,c=[];for(let p of t)try{let h=y.relative(process.cwd(),p);c.push(h)}catch(h){s&&v(`Failed to load ${p} ${h.message}`),o=h}j(`injecting env (${u}) from ${c.join(",")}`)}return o?{parsed:i,error:o}:{parsed:i}}function J(e){if(A(e).length===0)return l.configDotenv(e);let n=x(e);return n?l._configVault(e):(B(`You set DOTENV_KEY but you are missing a .env.vault file at ${n}. Did you forget to build it?`),l.configDotenv(e))}function Q(e,n){let r=Buffer.from(n.slice(-64),"hex"),s=Buffer.from(e,"base64"),a=s.subarray(0,12),t=s.subarray(-16);s=s.subarray(12,-16);try{let o=F.createDecipheriv("aes-256-gcm",r,a);return o.setAuthTag(t),`${o.update(s)}${o.final()}`}catch(o){let i=o instanceof RangeError,f=o.message==="Invalid key length",u=o.message==="Unsupported state or unable to authenticate data";if(i||f){let c=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw c.code="INVALID_DOTENV_KEY",c}else if(u){let c=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw c.code="DECRYPTION_FAILED",c}else throw o}}function H(e,n,r={}){let s=!!(r&&r.debug),a=!!(r&&r.override);if(typeof n!="object"){let t=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw t.code="OBJECT_REQUIRED",t}for(let t of Object.keys(n))Object.prototype.hasOwnProperty.call(e,t)?(a===!0&&(e[t]=n[t]),s&&v(a===!0?`"${t}" is already defined and WAS overwritten`:`"${t}" is already defined and was NOT overwritten`)):e[t]=n[t]}var l={configDotenv:G,_configVault:W,_parseVault:U,config:J,decrypt:Q,parse:S,populate:H};d.exports.configDotenv=l.configDotenv;d.exports._configVault=l._configVault;d.exports._parseVault=l._parseVault;d.exports.config=l.config;d.exports.decrypt=l.decrypt;d.exports.parse=l.parse;d.exports.populate=l.populate;d.exports=l});m();var L=Y(K());async function oe(e){if(O(T`Reading the .env file at ${$.path(e)}`),!await V(e))throw new E(`The environment file at ${e} does not exist.`);let n=await N(e);return{path:e,variables:(0,L.parse)(n)}}function se(e,n){let r=[],s=e===null?[]:e.split(`
4
4
  `),a=[],t;for(let o of s){if(t){if(o.endsWith(t.quote)){let u=_(t.key,t.value+o.slice(0,-1),t.quote),c=n[t.key];c&&(a.push(t.key),u=_(t.key,c)),r.push(u),t=void 0}else t.value+=`${o}
@@ -1,2 +1,2 @@
1
- import{a as B,b as E}from"./chunk-XBFXB6S6.js";import{b as y,c as A,l as C,n as F,o as S,t as x}from"./chunk-HXJ7HJFS.js";import{a as D}from"./chunk-X2ZCC772.js";import{a as w}from"./chunk-33AVVFWW.js";import{b as O}from"./chunk-BPRY3O4N.js";import{y as f}from"./chunk-OQ6WYWG4.js";import{u as l,v as k,w as b,x as g}from"./chunk-SQVJGTTD.js";import{Fb as h,Hb as I}from"./chunk-KNLPWHHJ.js";import{a as _}from"./chunk-M5GXA5W4.js";import{e as z,g as s}from"./chunk-VKWPEFWQ.js";s();s();async function T(n){let{organization:a,storeFqdn:o,operationId:r,remoteApp:u}=n;l({headline:"Canceling bulk operation.",body:[{list:{items:[`ID: ${r}`,...E({organization:a,remoteApp:u,storeFqdn:o})]}}]});let v=await B(u,o),p=await C({adminSession:v,operationId:r});if(p?.userErrors?.length){F(p.userErrors,"Failed to cancel bulk operation.");return}let i=p?.bulkOperation;if(i){let t=S(i),d=i.status==="CANCELING"?[`This may take a few moments. Check the status with:
1
+ import{a as B,b as E}from"./chunk-X6YKSZTY.js";import{b as y,c as A,l as C,n as F,o as S,t as x}from"./chunk-3LDCOBRM.js";import{a as D}from"./chunk-FDYZZLAY.js";import{a as w}from"./chunk-CXYYVAYY.js";import{b as O}from"./chunk-HXPUMDUV.js";import{y as f}from"./chunk-CG22VLHL.js";import{u as l,v as k,w as b,x as g}from"./chunk-EOGQ7TJP.js";import{Fb as h,Hb as I}from"./chunk-YKQLGBJM.js";import{a as _}from"./chunk-M5GXA5W4.js";import{e as z,g as s}from"./chunk-VKWPEFWQ.js";s();s();async function T(n){let{organization:a,storeFqdn:o,operationId:r,remoteApp:u}=n;l({headline:"Canceling bulk operation.",body:[{list:{items:[`ID: ${r}`,...E({organization:a,remoteApp:u,storeFqdn:o})]}}]});let v=await B(u,o),p=await C({adminSession:v,operationId:r});if(p?.userErrors?.length){F(p.userErrors,"Failed to cancel bulk operation.");return}let i=p?.bulkOperation;if(i){let t=S(i),d=i.status==="CANCELING"?[`This may take a few moments. Check the status with:
2
2
  `,{command:`shopify app bulk status --id=${A(i.id)}`}]:t.body,c={headline:t.headline,...d&&{body:d},...t.customSections&&{customSections:t.customSections}};switch(t.renderType){case"success":k(c);break;case"warning":b(c);break;case"info":l(c);break}}else g({headline:"Bulk operation not found or could not be canceled.",body:I`ID: ${h.yellow(r)}`.value})}var m=z(_(),1);var q,e=class extends D{async run(){let{flags:a}=await this.parse(q),{appContextResult:o,store:r}=await x(a);return await T({organization:o.organization,storeFqdn:r.shopDomain,operationId:y(a.id),remoteApp:o.remoteApp}),{app:o.app}}};q=e;e.summary="Cancel a bulk operation.";e.description="Cancels a running bulk operation by ID.";e.flags={...O,...w,id:m.Flags.string({description:"The bulk operation ID to cancel (numeric ID or full GID).",env:"SHOPIFY_FLAG_ID",required:!0}),store:m.Flags.string({char:"s",description:"The store domain. Must be an existing dev store.",env:"SHOPIFY_FLAG_STORE",parse:async n=>f(n)})};var K=e;export{K as a};
@@ -1 +1 @@
1
- import{a as k}from"./chunk-G3CPHVML.js";import{a as g}from"./chunk-6SVMZEJO.js";import{a as y}from"./chunk-33AVVFWW.js";import{g as b,xa as w}from"./chunk-LANGOUPS.js";import{b as h}from"./chunk-BPRY3O4N.js";import{O as u,t as m,v as f}from"./chunk-SQVJGTTD.js";import{d}from"./chunk-4NSHAMD3.js";import{a as S}from"./chunk-M5GXA5W4.js";import{e as A,g as o}from"./chunk-VKWPEFWQ.js";o();o();o();async function r(e,{web:i,stdout:t,stderr:a,signal:s,env:p={}}){let l=i.configuration.commands[e];if(!l)return;let[_,...v]=l.split(" ");await u(_,v,{cwd:i.directory,stdout:t,stderr:a,signal:s,env:p}),t.write("Web successfully built.")}async function P(e){!e.skipDependenciesInstallation&&!e.project.usesWorkspaces&&await g(e.project);let i={};e.apiKey&&(i.SHOPIFY_API_KEY=e.apiKey),await b(e.app),await m({processes:[...e.app.webs.map(t=>({prefix:["web",...t.configuration.roles].join("-"),action:async(a,s,p)=>{await r("build",{web:t,stdout:a,stderr:s,signal:p,env:i})}})),...e.app.allExtensions.map(t=>({prefix:t.localIdentifier,action:async(a,s,p)=>{await t.build({stdout:a,stderr:s,signal:p,app:e.app,environment:"production"})}}))],showTimestamps:!1}),f({headline:[{userInput:e.app.name},"built!"]})}var x=P;var I=A(S(),1);var c,n=class extends k{async run(){let{flags:i}=await this.parse(c),t=i["client-id"];await d(()=>({cmd_app_dependency_installation_skipped:i["skip-dependencies-installation"]}));let{app:a,project:s}=await w({directory:i.path,userProvidedConfigName:i.config});return await x({app:a,project:s,skipDependenciesInstallation:i["skip-dependencies-installation"],apiKey:t}),{app:a}}};c=n;n.summary="Build the app, including extensions.";n.descriptionWithMarkdown="This command executes the build script specified in the element's TOML file. You can specify a custom script in the file. To learn about configuration files in Shopify apps, refer to [App configuration](https://shopify.dev/docs/apps/tools/cli/configuration).\n\n If you're building a [theme app extension](https://shopify.dev/docs/apps/online-store/theme-app-extensions), then running the `build` command runs [Theme Check](https://shopify.dev/docs/themes/tools/theme-check) against your extension to ensure that it's valid.";n.description=c.descriptionWithoutMarkdown();n.flags={...h,...y,"skip-dependencies-installation":I.Flags.boolean({hidden:!1,description:"Skips the installation of dependencies. Deprecated, use workspaces instead.",env:"SHOPIFY_FLAG_SKIP_DEPENDENCIES_INSTALLATION",default:!1})};var J=n;export{J as a};
1
+ import{a as g}from"./chunk-2AIX3ZEA.js";import{a as k}from"./chunk-AS7WHEG6.js";import{a as y}from"./chunk-CXYYVAYY.js";import{g as b,xa as w}from"./chunk-4MERFNHB.js";import{b as h}from"./chunk-HXPUMDUV.js";import{O as u,t as m,v as f}from"./chunk-EOGQ7TJP.js";import{d}from"./chunk-BGTOVY2S.js";import{a as S}from"./chunk-M5GXA5W4.js";import{e as A,g as o}from"./chunk-VKWPEFWQ.js";o();o();o();async function r(e,{web:i,stdout:t,stderr:a,signal:s,env:p={}}){let l=i.configuration.commands[e];if(!l)return;let[_,...v]=l.split(" ");await u(_,v,{cwd:i.directory,stdout:t,stderr:a,signal:s,env:p}),t.write("Web successfully built.")}async function P(e){!e.skipDependenciesInstallation&&!e.project.usesWorkspaces&&await g(e.project);let i={};e.apiKey&&(i.SHOPIFY_API_KEY=e.apiKey),await b(e.app),await m({processes:[...e.app.webs.map(t=>({prefix:["web",...t.configuration.roles].join("-"),action:async(a,s,p)=>{await r("build",{web:t,stdout:a,stderr:s,signal:p,env:i})}})),...e.app.allExtensions.map(t=>({prefix:t.localIdentifier,action:async(a,s,p)=>{await t.build({stdout:a,stderr:s,signal:p,app:e.app,environment:"production"})}}))],showTimestamps:!1}),f({headline:[{userInput:e.app.name},"built!"]})}var x=P;var I=A(S(),1);var c,n=class extends k{async run(){let{flags:i}=await this.parse(c),t=i["client-id"];await d(()=>({cmd_app_dependency_installation_skipped:i["skip-dependencies-installation"]}));let{app:a,project:s}=await w({directory:i.path,userProvidedConfigName:i.config});return await x({app:a,project:s,skipDependenciesInstallation:i["skip-dependencies-installation"],apiKey:t}),{app:a}}};c=n;n.summary="Build the app, including extensions.";n.descriptionWithMarkdown="This command executes the build script specified in the element's TOML file. You can specify a custom script in the file. To learn about configuration files in Shopify apps, refer to [App configuration](https://shopify.dev/docs/apps/tools/cli/configuration).\n\n If you're building a [theme app extension](https://shopify.dev/docs/apps/online-store/theme-app-extensions), then running the `build` command runs [Theme Check](https://shopify.dev/docs/themes/tools/theme-check) against your extension to ensure that it's valid.";n.description=c.descriptionWithoutMarkdown();n.flags={...h,...y,"skip-dependencies-installation":I.Flags.boolean({hidden:!1,description:"Skips the installation of dependencies. Deprecated, use workspaces instead.",env:"SHOPIFY_FLAG_SKIP_DEPENDENCIES_INSTALLATION",default:!1})};var J=n;export{J as a};
@@ -1 +1 @@
1
- import{g as o}from"./chunk-VKWPEFWQ.js";o();var s="0.0.0-snapshot-20260722210655";export{s as a};
1
+ import{g as o}from"./chunk-VKWPEFWQ.js";o();var s="0.0.0-snapshot-20260723175937";export{s as a};
@@ -1,4 +1,4 @@
1
- import{a as C}from"./chunk-65H3LZJA.js";import{a as N}from"./chunk-STJ3LWFL.js";import{a as v,b as J}from"./chunk-XEHMXJ5J.js";import{a as p}from"./chunk-OYOTLGGD.js";import{r as E}from"./chunk-VQ44LFBY.js";import{p as c,r as F,v as S}from"./chunk-5VKFEYZK.js";import{b as q,c as D}from"./chunk-BPRY3O4N.js";import{O as w}from"./chunk-OQ6WYWG4.js";import{A as T,S as O,v as I,x as u}from"./chunk-SQVJGTTD.js";import{Lb as a}from"./chunk-KNLPWHHJ.js";import{a as M}from"./chunk-M5GXA5W4.js";import{e as A,g as h}from"./chunk-VKWPEFWQ.js";h();h();async function _(t,o,e){let{name:r,verbose:d,noColor:l,json:m,force:x}=e,g=O()||x;if(C({verbose:d,noColor:l}),g&&!o){let s="A theme ID is required to duplicate a theme, specify one with the --theme flag";m?a(JSON.stringify({message:s,errors:[]})):u({body:[s]});return}let i=o?await J(t,o):await v(t,{header:"Select a theme to duplicate",filter:{theme:o}});if(!i){let s=`No theme with ID ${o} could be found. Use shopify theme list to find a theme ID.`;m?a(JSON.stringify({message:s,errors:[]})):u({body:[s]});return}if(i?.role==="development"){let s="Development themes can't be duplicated. Use shopify theme push to upload it to the store first.";m?a(JSON.stringify({message:s,errors:[]})):u({body:[s]});return}if(!g&&!await T({message:`Do you want to duplicate '${i.name}' on ${t.storeFqdn}?`,confirmationMessage:`Yes, duplicate '${i.name}'`,cancellationMessage:"No, cancel duplicate"}))return;let b=await E(i.id,r,t);m?j(i,t,b):P(i,t,b)}function P(t,o,e){if(e.userErrors&&e.userErrors.length>0){let r=e.userErrors.map(d=>d.message).join(", ");u({body:["The theme",...p(t),"could not be duplicated due to errors: ",{subdued:r},{char:"."},...e.requestId?[`
1
+ import{a as C}from"./chunk-62G4E3FF.js";import{a as p}from"./chunk-3HEORIF3.js";import{a as N}from"./chunk-STJ3LWFL.js";import{a as v,b as J}from"./chunk-AB7462EM.js";import{r as E}from"./chunk-WQLVBL6G.js";import{p as c,r as F,v as S}from"./chunk-S6JGBSUV.js";import{b as q,c as D}from"./chunk-HXPUMDUV.js";import{O as w}from"./chunk-CG22VLHL.js";import{A as T,S as O,v as I,x as u}from"./chunk-EOGQ7TJP.js";import{Lb as a}from"./chunk-YKQLGBJM.js";import{a as M}from"./chunk-M5GXA5W4.js";import{e as A,g as h}from"./chunk-VKWPEFWQ.js";h();h();async function _(t,o,e){let{name:r,verbose:d,noColor:l,json:m,force:x}=e,g=O()||x;if(C({verbose:d,noColor:l}),g&&!o){let s="A theme ID is required to duplicate a theme, specify one with the --theme flag";m?a(JSON.stringify({message:s,errors:[]})):u({body:[s]});return}let i=o?await J(t,o):await v(t,{header:"Select a theme to duplicate",filter:{theme:o}});if(!i){let s=`No theme with ID ${o} could be found. Use shopify theme list to find a theme ID.`;m?a(JSON.stringify({message:s,errors:[]})):u({body:[s]});return}if(i?.role==="development"){let s="Development themes can't be duplicated. Use shopify theme push to upload it to the store first.";m?a(JSON.stringify({message:s,errors:[]})):u({body:[s]});return}if(!g&&!await T({message:`Do you want to duplicate '${i.name}' on ${t.storeFqdn}?`,confirmationMessage:`Yes, duplicate '${i.name}'`,cancellationMessage:"No, cancel duplicate"}))return;let b=await E(i.id,r,t);m?j(i,t,b):P(i,t,b)}function P(t,o,e){if(e.userErrors&&e.userErrors.length>0){let r=e.userErrors.map(d=>d.message).join(", ");u({body:["The theme",...p(t),"could not be duplicated due to errors: ",{subdued:r},{char:"."},...e.requestId?[`
2
2
  Request ID: `,{subdued:e.requestId}]:[]]})}else e.theme?I({body:["The theme",...p(t),"has been duplicated",{char:"."}],nextSteps:[[{link:{label:"View the duplicated theme",url:N(e.theme,o)}}]]}):u({body:["The theme",...p(t),"unexpectedly could not be duplicated",{char:"."},...e.requestId?[`
3
3
  Request ID: `,{subdued:e.requestId}]:[]]})}function j(t,o,e){if(e.userErrors&&e.userErrors.length>0)a(JSON.stringify({message:`The theme '${t.name}' could not be duplicated due to errors`,errors:e.userErrors.map(r=>r.message),requestId:e.requestId}));else if(e.theme){let{id:r,name:d,role:l}=e.theme,m={theme:{id:r,name:d,role:l,shop:o.storeFqdn}};a(JSON.stringify(m))}else a(JSON.stringify({message:`The theme '${t.name}' unexpectedly could not be duplicated `,errors:[],requestId:e.requestId}))}var f=A(M(),1);var y,n=class extends S{async run(){let{flags:o}=await this.parse(y),e=F(o),r=await w(e,o.password);await _(r,o.theme,o)}};y=n;n.summary="Duplicates a theme from your theme library.";n.usage=["theme duplicate","theme duplicate --theme 10 --name 'New Theme'"];n.descriptionWithMarkdown=`If you want to duplicate your local theme, you need to run \`shopify theme push\` first.
4
4
 
@@ -1 +1 @@
1
- import{m as y}from"./chunk-O6BUPYXH.js";import{Ua as s,Xa as f,na as c}from"./chunk-KNLPWHHJ.js";import{d as u,i as S,p as A}from"./chunk-773TIA5M.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();var g=["@shopify/ui-extensions",{name:"@shopify/ui-extensions-react",versions:["2025-07"]}],_={"polaris-app-home":{publicPackages:["@shopify/polaris-types","@shopify/app-bridge-types","@shopify/app-bridge-react"],versioned:!1},"polaris-admin-extensions":{publicPackages:g,versioned:!0,extensionSurfaceName:"admin"},"polaris-checkout-extensions":{publicPackages:g,versioned:!0,extensionSurfaceName:"checkout"},"polaris-customer-account-extensions":{publicPackages:g,versioned:!0,extensionSurfaceName:"customer-account"},"pos-ui":{publicPackages:g,versioned:!0,extensionSurfaceName:"point-of-sale"},hydrogen:{publicPackages:["@shopify/hydrogen"],versioned:!0}},F=Object.keys(_);function k(n){return Object.prototype.hasOwnProperty.call(_,n)}function w(n){return typeof n=="string"?n:n.name}function z(n,e){return typeof n=="string"||!n.versions||e===void 0?!0:n.versions.includes(e)}p();var V=["admin","storefront-graphql","customer","partner","payments-apps"];function $(n){return V.includes(n)}var P={functions_discount:"Discount Function",functions_cart_transform:"Cart Transform Function",functions_cart_checkout_validation:"Cart Checkout Validation Function",functions_delivery_customization:"Delivery Customization Function",functions_fulfillment_constraints:"Fulfillment Constraints Function",functions_order_routing_location_rule:"Order Routing Location Rule Function",functions_payment_customization:"Payment Customization Function",functions_order_discounts:"Order Discounts Function",functions_product_discounts:"Product Discounts Function",functions_shipping_discounts:"Shipping Discounts Function",functions_discounts_allocator:"Discounts Allocator Function",functions_local_pickup_delivery_option_generator:"Local Pickup Delivery Option Generator Function",functions_pickup_point_delivery_option_generator:"Pickup Point Delivery Option Generator Function"},G=Object.keys(P);function L(n){return Object.prototype.hasOwnProperty.call(P,n)}p();import{gunzipSync as d}from"node:zlib";var N="supported-versions-schema.json";function O(n,e,t,o){let r=[["assets","validate",e],["dist","assets","validate",e]],a=n;for(;;){for(let m of r){let l=u(a,...m);if(o(u(l,...t)))return l}let i=S(a);if(i===a)return;a=i}}var h=new Map;function X(n,e){let t=`${n}::${e.join("/")}`,o=h.get(t);if(o!==void 0)return o;let r=O(A(import.meta.url),n,e,s);if(!r)throw new y(`Could not locate the bundled '${n}' validation data.`,"This is an internal packaging error \u2014 please report it.");return h.set(t,r),r}function E(n){let e=u(n,N);return JSON.parse(c(e).toString("utf8"))}var C=new Map;function I(n){let e=C.get(n);if(e!==void 0)return e;let t;if(n.endsWith(".gz"))t=d(c(n)).toString("utf8");else if(s(n))t=c(n).toString("utf8");else{let o=`${n}.gz`;if(!s(o))throw new y(`Schema file not found at ${n} or ${o}`);t=d(c(o)).toString("utf8")}return C.set(n,t),t}function B(n,e,t){return u(n,`${e}_${t}.json`)}function Y(n){return{readVersionCatalog(){return E(n)},readSchemaContent(e){return Promise.resolve(I(e.schemaPath))}}}function T(n){return u(n,"types")}function Z(n){let e=u(T(n),"index.json");return JSON.parse(c(e).toString("utf8"))}var x=new Map;function nn(n,e){let t=u(n,e);if(x.has(t))return x.get(t);let o=b(t);return x.set(t,o),o}function b(n){if(n.endsWith(".gz")){if(s(n))return d(c(n)).toString("utf8");let t=n.slice(0,-3);return s(t)?c(t).toString("utf8"):void 0}if(s(n))return c(n).toString("utf8");let e=`${n}.gz`;return s(e)?d(c(e)).toString("utf8"):void 0}function en(n,e){if(!s(n))return[];let t=f(["**/*.d.ts","**/*.d.ts.gz","**/*.ts","**/*.ts.gz"],{cwd:n,onlyFiles:!0,dot:!1,ignore:["**/node_modules/**"]}),o=new Set,r=[];for(let a of t){let i=a.endsWith(".gz")?a.slice(0,-3):a,m=i.endsWith(".d.ts"),l=i.endsWith(".ts")&&!i.endsWith(".test.ts")&&!i.endsWith(".spec.ts");!m&&!l||e&&!e(i)||o.has(i)||(o.add(i),r.push({assetPath:u(n,a),relPath:i}))}return r}function tn(n){return s(n)?f("*",{cwd:n,onlyDirectories:!0,dot:!1}):[]}function on(n){return s(n)?f("*",{cwd:n,onlyFiles:!0,dot:!1}):[]}p();function v(n,e){return n[e]??[]}function R(n,e){return v(n,e).map(t=>t.name)}function D(n,e){let t=v(n,e);return t.find(o=>o.latestVersion)?.name??t[0]?.name}function cn(n,e,t){let o=R(n,e);if(o.length===0)return{ok:!1,reason:"no_versions",supportedVersions:o};if(t)return o.includes(t)?{ok:!0,version:t,source:"explicit",supportedVersions:o}:{ok:!1,reason:"unsupported_version",supportedVersions:o};let r=D(n,e);return r?{ok:!0,version:r,source:"default",supportedVersions:o}:{ok:!1,reason:"no_versions",supportedVersions:o}}export{_ as a,F as b,k as c,w as d,z as e,X as f,E as g,B as h,Y as i,T as j,Z as k,nn as l,en as m,tn as n,on as o,R as p,cn as q,V as r,$ as s,G as t,L as u};
1
+ import{m as y}from"./chunk-K44YPOUY.js";import{Ua as s,Xa as f,na as c}from"./chunk-YKQLGBJM.js";import{d as u,i as S,p as A}from"./chunk-773TIA5M.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();var g=["@shopify/ui-extensions",{name:"@shopify/ui-extensions-react",versions:["2025-07"]}],_={"polaris-app-home":{publicPackages:["@shopify/polaris-types","@shopify/app-bridge-types","@shopify/app-bridge-react"],versioned:!1},"polaris-admin-extensions":{publicPackages:g,versioned:!0,extensionSurfaceName:"admin"},"polaris-checkout-extensions":{publicPackages:g,versioned:!0,extensionSurfaceName:"checkout"},"polaris-customer-account-extensions":{publicPackages:g,versioned:!0,extensionSurfaceName:"customer-account"},"pos-ui":{publicPackages:g,versioned:!0,extensionSurfaceName:"point-of-sale"},hydrogen:{publicPackages:["@shopify/hydrogen"],versioned:!0}},F=Object.keys(_);function k(n){return Object.prototype.hasOwnProperty.call(_,n)}function w(n){return typeof n=="string"?n:n.name}function z(n,e){return typeof n=="string"||!n.versions||e===void 0?!0:n.versions.includes(e)}p();var V=["admin","storefront-graphql","customer","partner","payments-apps"];function $(n){return V.includes(n)}var P={functions_discount:"Discount Function",functions_cart_transform:"Cart Transform Function",functions_cart_checkout_validation:"Cart Checkout Validation Function",functions_delivery_customization:"Delivery Customization Function",functions_fulfillment_constraints:"Fulfillment Constraints Function",functions_order_routing_location_rule:"Order Routing Location Rule Function",functions_payment_customization:"Payment Customization Function",functions_order_discounts:"Order Discounts Function",functions_product_discounts:"Product Discounts Function",functions_shipping_discounts:"Shipping Discounts Function",functions_discounts_allocator:"Discounts Allocator Function",functions_local_pickup_delivery_option_generator:"Local Pickup Delivery Option Generator Function",functions_pickup_point_delivery_option_generator:"Pickup Point Delivery Option Generator Function"},G=Object.keys(P);function L(n){return Object.prototype.hasOwnProperty.call(P,n)}p();import{gunzipSync as d}from"node:zlib";var N="supported-versions-schema.json";function O(n,e,t,o){let r=[["assets","validate",e],["dist","assets","validate",e]],a=n;for(;;){for(let m of r){let l=u(a,...m);if(o(u(l,...t)))return l}let i=S(a);if(i===a)return;a=i}}var h=new Map;function X(n,e){let t=`${n}::${e.join("/")}`,o=h.get(t);if(o!==void 0)return o;let r=O(A(import.meta.url),n,e,s);if(!r)throw new y(`Could not locate the bundled '${n}' validation data.`,"This is an internal packaging error \u2014 please report it.");return h.set(t,r),r}function E(n){let e=u(n,N);return JSON.parse(c(e).toString("utf8"))}var C=new Map;function I(n){let e=C.get(n);if(e!==void 0)return e;let t;if(n.endsWith(".gz"))t=d(c(n)).toString("utf8");else if(s(n))t=c(n).toString("utf8");else{let o=`${n}.gz`;if(!s(o))throw new y(`Schema file not found at ${n} or ${o}`);t=d(c(o)).toString("utf8")}return C.set(n,t),t}function B(n,e,t){return u(n,`${e}_${t}.json`)}function Y(n){return{readVersionCatalog(){return E(n)},readSchemaContent(e){return Promise.resolve(I(e.schemaPath))}}}function T(n){return u(n,"types")}function Z(n){let e=u(T(n),"index.json");return JSON.parse(c(e).toString("utf8"))}var x=new Map;function nn(n,e){let t=u(n,e);if(x.has(t))return x.get(t);let o=b(t);return x.set(t,o),o}function b(n){if(n.endsWith(".gz")){if(s(n))return d(c(n)).toString("utf8");let t=n.slice(0,-3);return s(t)?c(t).toString("utf8"):void 0}if(s(n))return c(n).toString("utf8");let e=`${n}.gz`;return s(e)?d(c(e)).toString("utf8"):void 0}function en(n,e){if(!s(n))return[];let t=f(["**/*.d.ts","**/*.d.ts.gz","**/*.ts","**/*.ts.gz"],{cwd:n,onlyFiles:!0,dot:!1,ignore:["**/node_modules/**"]}),o=new Set,r=[];for(let a of t){let i=a.endsWith(".gz")?a.slice(0,-3):a,m=i.endsWith(".d.ts"),l=i.endsWith(".ts")&&!i.endsWith(".test.ts")&&!i.endsWith(".spec.ts");!m&&!l||e&&!e(i)||o.has(i)||(o.add(i),r.push({assetPath:u(n,a),relPath:i}))}return r}function tn(n){return s(n)?f("*",{cwd:n,onlyDirectories:!0,dot:!1}):[]}function on(n){return s(n)?f("*",{cwd:n,onlyFiles:!0,dot:!1}):[]}p();function v(n,e){return n[e]??[]}function R(n,e){return v(n,e).map(t=>t.name)}function D(n,e){let t=v(n,e);return t.find(o=>o.latestVersion)?.name??t[0]?.name}function cn(n,e,t){let o=R(n,e);if(o.length===0)return{ok:!1,reason:"no_versions",supportedVersions:o};if(t)return o.includes(t)?{ok:!0,version:t,source:"explicit",supportedVersions:o}:{ok:!1,reason:"unsupported_version",supportedVersions:o};let r=D(n,e);return r?{ok:!0,version:r,source:"default",supportedVersions:o}:{ok:!1,reason:"no_versions",supportedVersions:o}}export{_ as a,F as b,k as c,w as d,z as e,X as f,E as g,B as h,Y as i,T as j,Z as k,nn as l,en as m,tn as n,on as o,R as p,cn as q,V as r,$ as s,G as t,L as u};
@@ -1,2 +1,2 @@
1
- import{Fb as e,Hb as r,Pb as n,Ta as o,ua as g,wa as d}from"./chunk-KNLPWHHJ.js";import{d as i}from"./chunk-773TIA5M.js";import{g as s}from"./chunk-VKWPEFWQ.js";s();var f=".shopify";async function E(p){let t=i(p,f),a=i(t,".gitignore"),[h,u]=await Promise.all([o(t),o(a)]);return h||(n(r`Creating hidden .shopify folder at ${e.path(t)}...`),await d(t)),u||(n(r`Creating .gitignore in ${e.path(t)}...`),await g(a,`# Ignore the entire ${f} directory
1
+ import{Fb as e,Hb as r,Pb as n,Ta as o,ua as g,wa as d}from"./chunk-YKQLGBJM.js";import{d as i}from"./chunk-773TIA5M.js";import{g as s}from"./chunk-VKWPEFWQ.js";s();var f=".shopify";async function E(p){let t=i(p,f),a=i(t,".gitignore"),[h,u]=await Promise.all([o(t),o(a)]);return h||(n(r`Creating hidden .shopify folder at ${e.path(t)}...`),await d(t)),u||(n(r`Creating .gitignore in ${e.path(t)}...`),await g(a,`# Ignore the entire ${f} directory
2
2
  *`)),t}export{E as a};
@@ -1,4 +1,4 @@
1
- import{b as $}from"./chunk-N54QOQ2V.js";import{a as O}from"./chunk-X2ZCC772.js";import{a as T}from"./chunk-33AVVFWW.js";import{i as k,wa as N}from"./chunk-LANGOUPS.js";import{f as l}from"./chunk-FDQNY7RF.js";import{b as P,c as I}from"./chunk-BPRY3O4N.js";import{H as S,I as b}from"./chunk-OQ6WYWG4.js";import{g as v,u as E}from"./chunk-SQVJGTTD.js";import{a as h}from"./chunk-UA2432YR.js";import{Gb as C,Hb as _,Lb as w,N as y,Wb as A}from"./chunk-KNLPWHHJ.js";import{g as p,j as g}from"./chunk-773TIA5M.js";import{a as W}from"./chunk-M5GXA5W4.js";import{e as U,g as f}from"./chunk-VKWPEFWQ.js";f();f();async function x(n,e,t,o,i){return i.webEnv?F(n,e,t,i):R(n,e,o,i)}async function F(n,e,t,{format:o}){return $(n,e,t,o)}async function R(n,e,t,o){if(o.format==="json"){let i=j(n.allExtensions.filter(s=>s.isReturnedAsInfo())),r={...n,packageManager:t.packageManager,nodeDependencies:t.nodeDependencies,usesWorkspaces:t.usesWorkspaces,allExtensions:i};return"realExtensions"in r&&(r.realExtensions=j(r.realExtensions)),"specifications"in r&&(r={...r,specifications:r.specifications?.map(s=>D(s))}),_`${JSON.stringify(Object.fromEntries(Object.entries(r).filter(([s])=>s!=="configSchema")),null,2)}`}else return new d(n,e,t,o).output()}function D(n){if("schema"in n){let{schema:e,...t}=n;return t}return n}function j(n){return n.map(e=>{if("specification"in e&&e.specification){let t=e.specification,o=D(t);return{...e,specification:o}}else return e})}var M="unknown",u={subdued:"Not yet configured"},K="NOT LOADED",d=class{constructor(e,t,o,i){this.app=e,this.remoteApp=t,this.project=o,this.options=i}async output(){return[...await this.devConfigsSection(),this.projectSettingsSection(),...await this.appComponentsSection(),await this.systemInfoSection()]}async devConfigsSection(){let e=u;this.app.configuration.build?.automatically_update_urls_on_dev!==void 0&&(e=this.app.configuration.build.automatically_update_urls_on_dev?"Yes":"No");let t=["User","unknown"],o=await this.options.developerPlatformClient.accountInfo();return b(o)?t=["Service account",o.orgName]:S(o)&&(t[1]=o.email),[this.tableSection("Current app configuration",[["Configuration file",{filePath:g(this.app.configPath)||l.app}],["App name",this.remoteApp.title?{userInput:this.remoteApp.title}:u],["Client ID",this.remoteApp.apiKey||u],["Access scopes",k(this.app.configuration)],["Dev store",this.app.configuration.build?.dev_store_url??this.app.hiddenConfig.dev_store_url??u],["Update URLs",e],t],{isFirstItem:!0}),{body:["\u{1F4A1} To change these, run",{command:C(this.project.packageManager,"shopify app config link")}]}]}projectSettingsSection(){return this.tableSection("Your Project",[["Root location",{filePath:this.app.directory}]])}async appComponentsSection(){let e=this.webComponentsSection();return[{title:`
1
+ import{b as $}from"./chunk-YPHEUPMZ.js";import{a as O}from"./chunk-FDYZZLAY.js";import{a as T}from"./chunk-CXYYVAYY.js";import{i as k,wa as N}from"./chunk-4MERFNHB.js";import{f as l}from"./chunk-R3GD62F4.js";import{b as P,c as I}from"./chunk-HXPUMDUV.js";import{H as S,I as b}from"./chunk-CG22VLHL.js";import{g as v,u as E}from"./chunk-EOGQ7TJP.js";import{a as h}from"./chunk-LEMDZHSP.js";import{Gb as C,Hb as _,Lb as w,N as y,Wb as A}from"./chunk-YKQLGBJM.js";import{g as p,j as g}from"./chunk-773TIA5M.js";import{a as W}from"./chunk-M5GXA5W4.js";import{e as U,g as f}from"./chunk-VKWPEFWQ.js";f();f();async function x(n,e,t,o,i){return i.webEnv?F(n,e,t,i):R(n,e,o,i)}async function F(n,e,t,{format:o}){return $(n,e,t,o)}async function R(n,e,t,o){if(o.format==="json"){let i=j(n.allExtensions.filter(s=>s.isReturnedAsInfo())),r={...n,packageManager:t.packageManager,nodeDependencies:t.nodeDependencies,usesWorkspaces:t.usesWorkspaces,allExtensions:i};return"realExtensions"in r&&(r.realExtensions=j(r.realExtensions)),"specifications"in r&&(r={...r,specifications:r.specifications?.map(s=>D(s))}),_`${JSON.stringify(Object.fromEntries(Object.entries(r).filter(([s])=>s!=="configSchema")),null,2)}`}else return new d(n,e,t,o).output()}function D(n){if("schema"in n){let{schema:e,...t}=n;return t}return n}function j(n){return n.map(e=>{if("specification"in e&&e.specification){let t=e.specification,o=D(t);return{...e,specification:o}}else return e})}var M="unknown",u={subdued:"Not yet configured"},K="NOT LOADED",d=class{constructor(e,t,o,i){this.app=e,this.remoteApp=t,this.project=o,this.options=i}async output(){return[...await this.devConfigsSection(),this.projectSettingsSection(),...await this.appComponentsSection(),await this.systemInfoSection()]}async devConfigsSection(){let e=u;this.app.configuration.build?.automatically_update_urls_on_dev!==void 0&&(e=this.app.configuration.build.automatically_update_urls_on_dev?"Yes":"No");let t=["User","unknown"],o=await this.options.developerPlatformClient.accountInfo();return b(o)?t=["Service account",o.orgName]:S(o)&&(t[1]=o.email),[this.tableSection("Current app configuration",[["Configuration file",{filePath:g(this.app.configPath)||l.app}],["App name",this.remoteApp.title?{userInput:this.remoteApp.title}:u],["Client ID",this.remoteApp.apiKey||u],["Access scopes",k(this.app.configuration)],["Dev store",this.app.configuration.build?.dev_store_url??this.app.hiddenConfig.dev_store_url??u],["Update URLs",e],t],{isFirstItem:!0}),{body:["\u{1F4A1} To change these, run",{command:C(this.project.packageManager,"shopify app config link")}]}]}projectSettingsSection(){return this.tableSection("Your Project",[["Root location",{filePath:this.app.directory}]])}async appComponentsSection(){let e=this.webComponentsSection();return[{title:`
2
2
  Directory components`.toUpperCase(),body:""},...e?[e]:[],...this.extensionsSections()]}webComponentsSection(){let e=[],t=[];if(this.app.webs[0])return this.app.webs.forEach(o=>{if(o.configuration)if(o.configuration.name){let{name:i,roles:r}=o.configuration,s=p(this.app.directory,o.directory);t.push([` \u{1F4C2} ${i}`,{filePath:s||"/"}]),r.length>0&&t.push([" roles",r.join(", ")])}else o.configuration.roles.forEach(i=>{t.push([` \u{1F4C2} ${i}`,{filePath:p(this.app.directory,o.directory)}])});else t.push([{subdued:` \u{1F4C2} ${M}`},{filePath:p(this.app.directory,o.directory)}]);if(!this.app.errors.isEmpty()){let i=this.app.errors.getErrors(`${o.directory}/${l.web}`);e.push(...i.map(r=>r.message))}}),this.subtableSection("web",[["\u{1F4C2} web",""],...t,...e.map(o=>[{error:"error"},{error:this.formattedError(o)}])])}extensionsSections(){let e=this.app.allExtensions.filter(o=>o.isReturnedAsInfo());return y(e.map(o=>o.type)).map(o=>{let i=e.filter(r=>r.type===o);if(i[0])return this.subtableSection(i[0].externalType,i.map(r=>this.extensionSubSection(r)).flat())}).filter(o=>o!==void 0)}extensionSubSection(e){let t=e.configuration,o=[[`\u{1F4C2} ${e.handle||K}`,{filePath:p(this.app.directory,e.directory)}],[" config file",{filePath:p(e.directory,e.configurationPath)}]];t&&"metafields"in t&&Array.isArray(t.metafields)&&t.metafields.length>0&&o.push([" metafields",`${t.metafields.length}`]);let i=this.app.errors.getErrors(e.configurationPath);for(let r of i)o.push([{error:" error"},{error:this.formattedError(r.message)}]);return o}formattedError(e){let t=e.trim();if(A())return t;let[o,...i]=t.split(`
3
3
  `);return[`! ${o}`,...i.map(r=>` ${r}`)].join(`
4
4
  `)}async systemInfoSection(){let{platform:e,arch:t}=v();return this.tableSection("Tooling and System",[["Shopify CLI",h],["Package manager",this.project.packageManager],["OS",`${e}-${t}`],["Shell",process.env.SHELL??"unknown"],["Node version",process.version]])}tableSection(e,t,{isFirstItem:o=!1}={}){return{title:`${o?"":`
@@ -1,2 +1,2 @@
1
- import{Pb as m}from"./chunk-KNLPWHHJ.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();import{spawn as h}from"child_process";function g(e=process.pid,i="SIGTERM",r=!0,s){k(e,i,r,s??(n=>{n&&m(`Failed to kill process ${e}: ${n}`)}))}function k(e,i,r,s){let t=typeof e=="number"?e.toString():e;if(!/^\d+$/.test(t))if(s){s(new Error("pid must be a number"));return}else throw new Error("pid must be a number");let n={};n[t]=[];let o=new Set;switch(o.add(t),process.platform){case"win32":{h("taskkill",["/pid",t,"/T","/F"]).on("close",u=>{s&&(u===0?s():s(new Error(`taskkill exited with code ${u}`)))});break}case"darwin":l(t,n,o,function(f){return h("pgrep",["-lfP",f])},function(){w(n,i,t,r,s)});break;default:l(t,n,o,function(f){return h("ps",["-o","pid command","--no-headers","--ppid",f])},function(){w(n,i,t,r,s)});break}}function w(e,i,r,s,t){let n=new Set;try{Object.keys(e).forEach(function(o){e[o].forEach(function(f){n.has(f)||(E(f,i),n.add(f))}),o===r&&s&&!n.has(o)&&(E(o,i),n.add(o))})}catch(o){if(t){t(o);return}else throw o}t&&t()}function E(e,i){try{process.kill(parseInt(e,10),i)}catch(r){if(r.code!=="ESRCH")throw r}}function l(e,i,r,s,t){let n=s(e),o="";n.stdout?.on("data",function(u){let a=u.toString("ascii");o+=a});let f=u=>{if(r.delete(e),u!==0){if(r.size===0){t();return}return}o.trim().split(`
1
+ import{Pb as m}from"./chunk-YKQLGBJM.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();import{spawn as h}from"child_process";function g(e=process.pid,i="SIGTERM",r=!0,s){k(e,i,r,s??(n=>{n&&m(`Failed to kill process ${e}: ${n}`)}))}function k(e,i,r,s){let t=typeof e=="number"?e.toString():e;if(!/^\d+$/.test(t))if(s){s(new Error("pid must be a number"));return}else throw new Error("pid must be a number");let n={};n[t]=[];let o=new Set;switch(o.add(t),process.platform){case"win32":{h("taskkill",["/pid",t,"/T","/F"]).on("close",u=>{s&&(u===0?s():s(new Error(`taskkill exited with code ${u}`)))});break}case"darwin":l(t,n,o,function(f){return h("pgrep",["-lfP",f])},function(){w(n,i,t,r,s)});break;default:l(t,n,o,function(f){return h("ps",["-o","pid command","--no-headers","--ppid",f])},function(){w(n,i,t,r,s)});break}}function w(e,i,r,s,t){let n=new Set;try{Object.keys(e).forEach(function(o){e[o].forEach(function(f){n.has(f)||(E(f,i),n.add(f))}),o===r&&s&&!n.has(o)&&(E(o,i),n.add(o))})}catch(o){if(t){t(o);return}else throw o}t&&t()}function E(e,i){try{process.kill(parseInt(e,10),i)}catch(r){if(r.code!=="ESRCH")throw r}}function l(e,i,r,s,t){let n=s(e),o="";n.stdout?.on("data",function(u){let a=u.toString("ascii");o+=a});let f=u=>{if(r.delete(e),u!==0){if(r.size===0){t();return}return}o.trim().split(`
2
2
  `).forEach(function(a){let d=a.match(/^(\d+)\s(.*)$/);if(d){let c=d[1],$=d[2];i[e].push(c),i[c]=[],m(`Killing process ${c}: ${$}`),r.add(c),l(c,i,r,s,t)}})};n.on("close",f)}export{g as a};
@@ -1,2 +1,2 @@
1
- import{a as N,b as $,c as w}from"./chunk-YZQYDTO7.js";import{m as T}from"./chunk-OQ6WYWG4.js";import{O as P,P as k,a as F}from"./chunk-SQVJGTTD.js";import{a as D,b}from"./chunk-IDMJWVJC.js";import{p as A}from"./chunk-O6BUPYXH.js";import{Ia as U,La as I,N as x,Pa as O,Pb as u,Ua as p,xa as y,za as _}from"./chunk-KNLPWHHJ.js";import{f as h}from"./chunk-E7Z7KYBR.js";import{d as m,i as l,j as S}from"./chunk-773TIA5M.js";import{g as f}from"./chunk-VKWPEFWQ.js";f();f();import{fileURLToPath as q}from"url";import Y from"util";import{pipeline as j}from"stream";import{execSync as z,execFileSync as B}from"child_process";var H="2024.8.2",W=`https://github.com/cloudflare/cloudflared/releases/download/${H}/`,G={arm64:"cloudflared-linux-arm64",arm:"cloudflared-linux-arm",x64:"cloudflared-linux-amd64",ia32:"cloudflared-linux-386"},V={arm64:"cloudflared-darwin-arm64.tgz",x64:"cloudflared-darwin-amd64.tgz"},X={x64:"cloudflared-windows-amd64.exe",ia32:"cloudflared-windows-386.exe",arm64:"cloudflared-windows-amd64.exe"},v={linux:G,darwin:V,win32:X};function Z(r=process.platform,t=process.arch){if(!Object.keys(v).includes(r))throw new Error(`Unsupported system platform: ${r}`);let n=v[r][t];if(n===void 0)throw new Error(`Unsupported system arch: ${t}`);return W+n}function J(r=process.env,t=process.platform){return r.SHOPIFY_CLI_CLOUDFLARED_PATH?r.SHOPIFY_CLI_CLOUDFLARED_PATH:m(l(q(import.meta.url)),"..","bin",t==="win32"?"cloudflared.exe":"cloudflared")}async function g(r=process.env,t=process.platform,e=process.arch){if(r.SHOPIFY_CLI_IGNORE_CLOUDFLARED){u("Skipping cloudflared installation because SHOPIFY_CLI_IGNORE_CLOUDFLARED is set");return}let n=Z(t,e),o=J(r,t);if(p(o))try{let a=B(o,["--version"],{encoding:"utf8"}).split(" "),i=a.length>2?a[2]:"0.0.0";if(!K(H,i)){u("cloudflared already installed, skipping");return}}catch{u("version check failed, reinstalling")}if(t==="linux")await Q(n,o);else if(t==="darwin")await rt(n,o);else if(t==="win32")await tt(n,o);else throw new Error(`Unsupported platform: ${t}`)}function K(r,t){let[e,n,o]=r.split(".").map(Number),[a,i,c]=t.split(".").map(Number);return e!==a?(e??0)>(a??0):n!==i?(n??0)>(i??0):(o??0)>(c??0)}async function Q(r,t){await C(r,t),await O(t,"755")}async function tt(r,t){await C(r,t)}async function rt(r,t){await C(r,`${t}.tgz`);let e=S(`${t}.tgz`);z(`tar -xzf ${e}`,{cwd:l(t)}),U(`${t}.tgz`),await _(`${l(t)}/cloudflared`,t)}async function C(r,t){p(l(t))||y(l(t));let e=Y.promisify(j),n=await T(r,{redirect:"follow"},"slow-request");if(!n.ok||!n.body)throw new Error(`Couldn't download file ${r} (${n.status} ${n.statusText})`);let o=I(t);return await e(n.body,o),t}import{Writable as et}from"stream";import{fileURLToPath as nt}from"url";var $t=$({provider:w,action:it}),ot=h()?.2:40,st=5;async function it(r){try{let t=new R(r);return await t.startTunnel(),D(t)}catch(t){let e=new N("unknown",t.message);return b(e)}}var R=class{constructor(t){this.provider=w,this.currentStatus={status:"not-started"},this.abortController=void 0,this.port=t}async startTunnel(){try{await g(),this.tunnel()}catch(t){this.currentStatus={status:"error",message:t.message,tryMessage:d()}}}getTunnelStatus(){return this.currentStatus}stopTunnel(){this.abortController?.abort()}tunnel(t=0){this.abortController=new F;let e=!1;if(t>=st){e=!0,this.currentStatus={status:"error",message:"Could not start Cloudflare tunnel: max retries reached.",tryMessage:d()};return}let n=["tunnel","--url",`http://localhost:${this.port}`,"--no-autoupdate"],o=[],a=!1,i;this.currentStatus={status:"starting"},setTimeout(()=>{if(!e){e=!0;let s=x(o).slice(-5).join(`
1
+ import{a as N,b as $,c as w}from"./chunk-W2W2F55C.js";import{m as T}from"./chunk-CG22VLHL.js";import{O as P,P as k,a as F}from"./chunk-EOGQ7TJP.js";import{a as D,b}from"./chunk-H5BHHSWX.js";import{p as A}from"./chunk-K44YPOUY.js";import{Ia as U,La as I,N as x,Pa as O,Pb as u,Ua as p,xa as y,za as _}from"./chunk-YKQLGBJM.js";import{f as h}from"./chunk-F5LI3LKB.js";import{d as m,i as l,j as S}from"./chunk-773TIA5M.js";import{g as f}from"./chunk-VKWPEFWQ.js";f();f();import{fileURLToPath as q}from"url";import Y from"util";import{pipeline as j}from"stream";import{execSync as z,execFileSync as B}from"child_process";var H="2024.8.2",W=`https://github.com/cloudflare/cloudflared/releases/download/${H}/`,G={arm64:"cloudflared-linux-arm64",arm:"cloudflared-linux-arm",x64:"cloudflared-linux-amd64",ia32:"cloudflared-linux-386"},V={arm64:"cloudflared-darwin-arm64.tgz",x64:"cloudflared-darwin-amd64.tgz"},X={x64:"cloudflared-windows-amd64.exe",ia32:"cloudflared-windows-386.exe",arm64:"cloudflared-windows-amd64.exe"},v={linux:G,darwin:V,win32:X};function Z(r=process.platform,t=process.arch){if(!Object.keys(v).includes(r))throw new Error(`Unsupported system platform: ${r}`);let n=v[r][t];if(n===void 0)throw new Error(`Unsupported system arch: ${t}`);return W+n}function J(r=process.env,t=process.platform){return r.SHOPIFY_CLI_CLOUDFLARED_PATH?r.SHOPIFY_CLI_CLOUDFLARED_PATH:m(l(q(import.meta.url)),"..","bin",t==="win32"?"cloudflared.exe":"cloudflared")}async function g(r=process.env,t=process.platform,e=process.arch){if(r.SHOPIFY_CLI_IGNORE_CLOUDFLARED){u("Skipping cloudflared installation because SHOPIFY_CLI_IGNORE_CLOUDFLARED is set");return}let n=Z(t,e),o=J(r,t);if(p(o))try{let a=B(o,["--version"],{encoding:"utf8"}).split(" "),i=a.length>2?a[2]:"0.0.0";if(!K(H,i)){u("cloudflared already installed, skipping");return}}catch{u("version check failed, reinstalling")}if(t==="linux")await Q(n,o);else if(t==="darwin")await rt(n,o);else if(t==="win32")await tt(n,o);else throw new Error(`Unsupported platform: ${t}`)}function K(r,t){let[e,n,o]=r.split(".").map(Number),[a,i,c]=t.split(".").map(Number);return e!==a?(e??0)>(a??0):n!==i?(n??0)>(i??0):(o??0)>(c??0)}async function Q(r,t){await C(r,t),await O(t,"755")}async function tt(r,t){await C(r,t)}async function rt(r,t){await C(r,`${t}.tgz`);let e=S(`${t}.tgz`);z(`tar -xzf ${e}`,{cwd:l(t)}),U(`${t}.tgz`),await _(`${l(t)}/cloudflared`,t)}async function C(r,t){p(l(t))||y(l(t));let e=Y.promisify(j),n=await T(r,{redirect:"follow"},"slow-request");if(!n.ok||!n.body)throw new Error(`Couldn't download file ${r} (${n.status} ${n.statusText})`);let o=I(t);return await e(n.body,o),t}import{Writable as et}from"stream";import{fileURLToPath as nt}from"url";var $t=$({provider:w,action:it}),ot=h()?.2:40,st=5;async function it(r){try{let t=new R(r);return await t.startTunnel(),D(t)}catch(t){let e=new N("unknown",t.message);return b(e)}}var R=class{constructor(t){this.provider=w,this.currentStatus={status:"not-started"},this.abortController=void 0,this.port=t}async startTunnel(){try{await g(),this.tunnel()}catch(t){this.currentStatus={status:"error",message:t.message,tryMessage:d()}}}getTunnelStatus(){return this.currentStatus}stopTunnel(){this.abortController?.abort()}tunnel(t=0){this.abortController=new F;let e=!1;if(t>=st){e=!0,this.currentStatus={status:"error",message:"Could not start Cloudflare tunnel: max retries reached.",tryMessage:d()};return}let n=["tunnel","--url",`http://localhost:${this.port}`,"--no-autoupdate"],o=[],a=!1,i;this.currentStatus={status:"starting"},setTimeout(()=>{if(!e){e=!0;let s=x(o).slice(-5).join(`
2
2
  `);s===""?this.currentStatus={status:"error",message:"Could not start Cloudflare tunnel: unknown error.",tryMessage:d()}:this.currentStatus={status:"error",message:s,tryMessage:d()},this.abortController?.abort()}},ot*1e3);let c=this,E=new et({write(s,mt,M){if(u(s.toString()),e)return;i??(i=at(s)),ct(s)&&(a=!0),a&&(i?(e=!0,c.currentStatus={status:"connected",url:i}):c.currentStatus={status:"error",message:"Could not start Cloudflare tunnel: URL not found."});let L=lt(s);L&&o.push(L),M()}});P(dt(),n,{stdout:E,stderr:E,signal:this.abortController.signal,externalErrorHandler:async s=>{if(e)throw new A(`Could not start Cloudflare tunnel: process crashed after stablishing a connection: ${s.message}`,d());u(`Cloudflare tunnel crashed: ${s.message}, restarting...`),h()||await k(1),this.tunnel(t+1)}})}};function d(){return["You can run the command again, or try networking with Shopify via",{command:"--use-localhost"},"or",{command:"--tunnel-url <custom tunnel>"},".",{link:{label:"See documentation for details.",url:"https://shopify.dev/docs/apps/build/cli-for-apps/networking-options"}}]}function at(r){let t=new RegExp(`(https:\\/\\/[^\\s]+\\.${ft()})`),e=r.toString().match(t)??void 0;return e&&e[1]}function lt(r){if([/failed to request quick Tunnel/,/failed to unmarshal quick Tunnel/,/failed to parse quick Tunnel ID/,/failed to provision routing/,/ERR Couldn't start tunnel/,/ERR Failed to serve quic connection/,/ERR Failed to create new quic connection error/].some(n=>n.test(r.toString())))return`Could not start Cloudflare tunnel: ${ut(r.toString())}`}function ut(r){let t=/^[0-9TZ:-]+ (ERR )?/g,e=/connIndex.*/g;return r.replace(t,"").replace(e,"")}function ct(r){let t=r.toString().match(/(INF Registered tunnel connection|INF Connection)/)??void 0;return t&&t[0]}function dt(){return process.env.SHOPIFY_CLI_CLOUDFLARED_PATH?process.env.SHOPIFY_CLI_CLOUDFLARED_PATH:m(l(nt(import.meta.url)),"..","bin",process.platform==="win32"?"cloudflared.exe":"cloudflared")}function ft(){return process.env.SHOPIFY_CLI_CLOUDFLARED_DOMAIN??"trycloudflare.com"}export{$t as a};
@@ -1,3 +1,3 @@
1
- import{b as $}from"./chunk-J3JPJCWP.js";import{a as x,l as H,n as Y}from"./chunk-GVHVEYNG.js";import{a as O}from"./chunk-ONCEFPYP.js";import{a as R}from"./chunk-65H3LZJA.js";import{a as S,b as L}from"./chunk-STJ3LWFL.js";import{a as M}from"./chunk-XEHMXJ5J.js";import{a as G,c as y}from"./chunk-OYOTLGGD.js";import{k as A,n as I}from"./chunk-VQ44LFBY.js";import{p as D,q as E,r as _,u as P,v as C}from"./chunk-5VKFEYZK.js";import{h as V,k as B}from"./chunk-AK4NPOQG.js";import{b}from"./chunk-BPRY3O4N.js";import{O as g,ua as a}from"./chunk-OQ6WYWG4.js";import{D as F,v as k}from"./chunk-SQVJGTTD.js";import{Wa as T}from"./chunk-KNLPWHHJ.js";import{q as p}from"./chunk-773TIA5M.js";import{a as Q}from"./chunk-M5GXA5W4.js";import{e as z,g as d}from"./chunk-VKWPEFWQ.js";d();d();d();async function K(e,t,o,n,r,l){let i=X(o,n,r),c=J(o,e,n,t),s=[...i,...c,{title:"Theme download complete",task:async()=>{}}];s.length>0&&await F(s,{renderOptions:{stdout:l?.stdout??process.stdout},noProgressBar:r.multiEnvironment})}function X(e,t,o){if(o.nodelete)return[];let n=new Set(e.map(i=>i.key));return t.applyIgnoreFilters([...t.files.values()]).map(({key:i})=>i).filter(i=>!n.has(i)).map(i=>({title:`Cleaning your local directory (removing ${i})`,task:async()=>t.delete(i)}))}function J(e,t,o,n){let r=o.applyIgnoreFilters(e);r=r.filter(s=>{let u=s.checksum;return o.files.get(s.key)?.checksum!==u});let l=r.map(s=>s.key),i=s=>s.total===0?"[100%]":`[${Math.round(s.current/s.total*100)}%]`;return $(l,P,(s,u)=>({title:`Downloading files from remote theme ${i({current:u,total:l.length})}`,task:async()=>Z(t,o,s,n)}))}async function Z(e,t,o,n){let r=await A(e.id,o,n);r&&await Promise.all(r.map(l=>t.write(l)))}async function N(e,t,o,n){a("theme-service:pull:setup"),R({verbose:e.verbose,noColor:e.noColor});let r=t??await g(_({store:e.store}),e.password),l=new O(r),i=await(e.development?l.find():l.fetch()),{path:c,nodelete:s,live:u,development:f,only:W,ignore:j,force:w,environment:v}=e;if(!await oe(c??p(),w??!1,v?.[0],o))return;let q=await M(r,{header:"Select a theme to open",filter:{live:u,theme:f?`${i?.id}`:e.theme}});a("theme-service:pull:setup"),await ee(q,r,{environment:v?.[0],force:w??!1,ignore:j??[],multiEnvironment:o,nodelete:s??!1,only:W??[],path:c??p()},n)}async function ee(e,t,o,n){a("theme-service:pull:file-system");let r=H(o.path,{filters:o}),[l]=await Promise.all([I(e.id,t),r.ready()]),i=x(l);a("theme-service:pull:file-system"),await K(e,t,i,r,o,n);let c=o.environment?`Environment: ${o.environment}`:"";k({headline:c,body:["The theme",...G(e),"has been pulled."],nextSteps:[[{link:{label:"View your theme",url:S(e,t)}}],[{link:{label:"Customize your theme at the theme editor",url:L(e,t)}}]]})}async function te(e){return(await T("*",{cwd:e,deep:1,onlyFiles:!1})).length===0}async function oe(e,t,o,n){return t?!0:!(!await te(e)&&!await Y(e)&&!await y(t,void 0,o,n)||await V(e)&&!await B(e)&&!await y(t,"The current Git directory has uncommitted changes.",o,n))}var h=z(Q(),1);var U,m=class extends C{async command(t,o,n,r,l){a("theme-command:pull"),await N({...t,noColor:t["no-color"]},o,n,l),a("theme-command:pull")}storeAuthScopes(){return["read_themes"]}};U=m;m.summary="Download your remote theme files locally.";m.descriptionWithMarkdown=`Retrieves theme files from Shopify.
1
+ import{b as $}from"./chunk-J3JPJCWP.js";import{a as x,l as H,n as Y}from"./chunk-4LK74JVJ.js";import{a as R}from"./chunk-62G4E3FF.js";import{a as G,c as y}from"./chunk-3HEORIF3.js";import{a as O}from"./chunk-YIZV3FZO.js";import{a as S,b as L}from"./chunk-STJ3LWFL.js";import{a as M}from"./chunk-AB7462EM.js";import{k as A,n as I}from"./chunk-WQLVBL6G.js";import{p as D,q as E,r as _,u as P,v as C}from"./chunk-S6JGBSUV.js";import{h as V,k as B}from"./chunk-3UYW3ZAG.js";import{b}from"./chunk-HXPUMDUV.js";import{O as g,ua as a}from"./chunk-CG22VLHL.js";import{D as F,v as k}from"./chunk-EOGQ7TJP.js";import{Wa as T}from"./chunk-YKQLGBJM.js";import{q as p}from"./chunk-773TIA5M.js";import{a as Q}from"./chunk-M5GXA5W4.js";import{e as z,g as d}from"./chunk-VKWPEFWQ.js";d();d();d();async function K(e,t,o,n,r,l){let i=X(o,n,r),c=J(o,e,n,t),s=[...i,...c,{title:"Theme download complete",task:async()=>{}}];s.length>0&&await F(s,{renderOptions:{stdout:l?.stdout??process.stdout},noProgressBar:r.multiEnvironment})}function X(e,t,o){if(o.nodelete)return[];let n=new Set(e.map(i=>i.key));return t.applyIgnoreFilters([...t.files.values()]).map(({key:i})=>i).filter(i=>!n.has(i)).map(i=>({title:`Cleaning your local directory (removing ${i})`,task:async()=>t.delete(i)}))}function J(e,t,o,n){let r=o.applyIgnoreFilters(e);r=r.filter(s=>{let u=s.checksum;return o.files.get(s.key)?.checksum!==u});let l=r.map(s=>s.key),i=s=>s.total===0?"[100%]":`[${Math.round(s.current/s.total*100)}%]`;return $(l,P,(s,u)=>({title:`Downloading files from remote theme ${i({current:u,total:l.length})}`,task:async()=>Z(t,o,s,n)}))}async function Z(e,t,o,n){let r=await A(e.id,o,n);r&&await Promise.all(r.map(l=>t.write(l)))}async function N(e,t,o,n){a("theme-service:pull:setup"),R({verbose:e.verbose,noColor:e.noColor});let r=t??await g(_({store:e.store}),e.password),l=new O(r),i=await(e.development?l.find():l.fetch()),{path:c,nodelete:s,live:u,development:f,only:W,ignore:j,force:w,environment:v}=e;if(!await oe(c??p(),w??!1,v?.[0],o))return;let q=await M(r,{header:"Select a theme to open",filter:{live:u,theme:f?`${i?.id}`:e.theme}});a("theme-service:pull:setup"),await ee(q,r,{environment:v?.[0],force:w??!1,ignore:j??[],multiEnvironment:o,nodelete:s??!1,only:W??[],path:c??p()},n)}async function ee(e,t,o,n){a("theme-service:pull:file-system");let r=H(o.path,{filters:o}),[l]=await Promise.all([I(e.id,t),r.ready()]),i=x(l);a("theme-service:pull:file-system"),await K(e,t,i,r,o,n);let c=o.environment?`Environment: ${o.environment}`:"";k({headline:c,body:["The theme",...G(e),"has been pulled."],nextSteps:[[{link:{label:"View your theme",url:S(e,t)}}],[{link:{label:"Customize your theme at the theme editor",url:L(e,t)}}]]})}async function te(e){return(await T("*",{cwd:e,deep:1,onlyFiles:!1})).length===0}async function oe(e,t,o,n){return t?!0:!(!await te(e)&&!await Y(e)&&!await y(t,void 0,o,n)||await V(e)&&!await B(e)&&!await y(t,"The current Git directory has uncommitted changes.",o,n))}var h=z(Q(),1);var U,m=class extends C{async command(t,o,n,r,l){a("theme-command:pull"),await N({...t,noColor:t["no-color"]},o,n,l),a("theme-command:pull")}storeAuthScopes(){return["read_themes"]}};U=m;m.summary="Download your remote theme files locally.";m.descriptionWithMarkdown=`Retrieves theme files from Shopify.
2
2
 
3
3
  If no theme is specified, then you're prompted to select the theme to pull from the list of the themes in your store.`;m.description=U.descriptionWithoutMarkdown();m.flags={...b,...D,...E("download"),theme:h.Flags.string({char:"t",description:"Theme ID or name of the remote theme.",env:"SHOPIFY_FLAG_THEME_ID"}),development:h.Flags.boolean({char:"d",description:"Pull theme files from your remote development theme.",env:"SHOPIFY_FLAG_DEVELOPMENT"}),live:h.Flags.boolean({char:"l",description:"Pull theme files from your remote live theme.",env:"SHOPIFY_FLAG_LIVE"}),nodelete:h.Flags.boolean({char:"n",description:"Prevent deleting local files that don't exist remotely.",env:"SHOPIFY_FLAG_NODELETE"}),force:h.Flags.boolean({hidden:!0,char:"f",description:"Proceed without confirmation, if current directory does not seem to be theme directory.",env:"SHOPIFY_FLAG_FORCE"})};m.multiEnvironmentsFlags=["store","password","path",["live","development","theme"]];var Le=m;export{N as a,Le as b};
@@ -1,4 +1,4 @@
1
- import{c as J}from"./chunk-AK4NPOQG.js";import{b as T}from"./chunk-I7QJGHS6.js";import{a as ae}from"./chunk-IP2ZMDG4.js";import{a as ne}from"./chunk-X2ZCC772.js";import{a as z}from"./chunk-33AVVFWW.js";import{C as Z,E as ee,d as K,e as Q,wa as te}from"./chunk-LANGOUPS.js";import{f as k,h as X,i as B}from"./chunk-FDQNY7RF.js";import{a as P}from"./chunk-XKMLKEYX.js";import{b as H}from"./chunk-BPRY3O4N.js";import{d as F}from"./chunk-OQ6WYWG4.js";import{C as G,p as _,x as R,y as b}from"./chunk-SH5VEQ7F.js";import{B as q,D as O,F as V,v as $,z as U}from"./chunk-SQVJGTTD.js";import{m}from"./chunk-O6BUPYXH.js";import{Gb as W,Oa as j,Ta as x,Ua as D,Wa as L,X as f,_ as M,ka as g,qa as N,wa as v,ya as E}from"./chunk-KNLPWHHJ.js";import{e as Y}from"./chunk-E7Z7KYBR.js";import{d as p,n as I}from"./chunk-773TIA5M.js";import{a as xe}from"./chunk-M5GXA5W4.js";import{e as he,g as d}from"./chunk-VKWPEFWQ.js";d();d();d();async function re(e,t,r,n={}){let{templates:a,groupOrder:i}=await e.templateSpecifications(t,n);return{templates:a.filter(o=>r.includes(o.identifier)||r.includes(o.type)),groupOrder:i}}d();d();async function ie(e,t){let r=e?.path??"",n=p(t,r);if(!await x(n))throw new m(`
1
+ import{c as J}from"./chunk-3UYW3ZAG.js";import{b as T}from"./chunk-W25DPKDC.js";import{a as ae}from"./chunk-I3RM47TC.js";import{a as ne}from"./chunk-FDYZZLAY.js";import{a as z}from"./chunk-CXYYVAYY.js";import{C as Z,E as ee,d as K,e as Q,wa as te}from"./chunk-4MERFNHB.js";import{f as k,h as X,i as B}from"./chunk-R3GD62F4.js";import{a as P}from"./chunk-YNFZXXCS.js";import{b as H}from"./chunk-HXPUMDUV.js";import{d as F}from"./chunk-CG22VLHL.js";import{C as G,p as _,x as R,y as b}from"./chunk-XJMML6SY.js";import{B as q,D as O,F as V,v as $,z as U}from"./chunk-EOGQ7TJP.js";import{m}from"./chunk-K44YPOUY.js";import{Gb as W,Oa as j,Ta as x,Ua as D,Wa as L,X as f,_ as M,ka as g,qa as N,wa as v,ya as E}from"./chunk-YKQLGBJM.js";import{e as Y}from"./chunk-F5LI3LKB.js";import{d as p,n as I}from"./chunk-773TIA5M.js";import{a as xe}from"./chunk-M5GXA5W4.js";import{e as he,g as d}from"./chunk-VKWPEFWQ.js";d();d();d();async function re(e,t,r,n={}){let{templates:a,groupOrder:i}=await e.templateSpecifications(t,n);return{templates:a.filter(o=>r.includes(o.identifier)||r.includes(o.type)),groupOrder:i}}d();d();async function ie(e,t){let r=e?.path??"",n=p(t,r);if(!await x(n))throw new m(`
2
2
  The extension is not available for ${e?.value}`);return n}async function oe({name:e,app:t}){let r=M(e),n=p(t.directory,B.extensions.directoryName,r);if(await x(n))throw new m(`
3
3
  A directory with this name (${r}) already exists.
4
4
  Choose a new name for your extension.`);return await v(n),await N(p(n,k.lockFile)),n}function A(e){switch(e){case"vanilla-js":case"preact":case"react":case"typescript":case"typescript-react":return"javascript";case"rust":case"wasm":return e;case void 0:case"liquid":case"config-only":return}}async function se(e){let t=e.extensionChoices.name,r=e.extensionChoices.flavor,n=e.extensionTemplate.supportedFlavors.find(o=>o.value===r),a=await oe({app:e.app,name:t}),i=e.cloneUrl??e.extensionTemplate.url,s={directory:a,url:i,app:e.app,project:e.project,type:e.extensionTemplate.type,name:t,extensionFlavor:n,onGetTemplateRepository:e.onGetTemplateRepository??(async(o,c)=>{await J({repoUrl:o,destination:c,shallow:!0})})};return await we(s),{directory:I(a),extensionTemplate:e.extensionTemplate}}async function we(e){try{switch(e.type){case"theme":await ge(e);break;case"function":await ve(e);break;default:await Ee(e);break}let t=p(e.directory,k.lockFile);await E(t)}catch(t){throw await E(e.directory),t}}async function ge({directory:e,url:t,type:r,name:n,extensionFlavor:a,onGetTemplateRepository:i}){return g(async s=>{let o=await S(t,a,s,i);await T(o,e,{name:n,type:r,uid:F(f(n))})})}async function ve({directory:e,url:t,app:r,project:n,name:a,extensionFlavor:i,onGetTemplateRepository:s}){let o=A(i?.value),c=[];c.push({title:"Generating function extension",task:async()=>{if(await g(async l=>{let u=await S(t,i,l,s);await T(u,e,{name:a,handle:f(a),flavor:i?.value,uid:F(f(a))})}),o==="javascript"){let l=ce(i?.value??"rust");await le(e,l,"!(*.graphql)")}}}),o==="javascript"&&c.push({title:"Installing additional dependencies",task:async()=>{n.usesWorkspaces&&await _({packageManager:n.packageManager,directory:n.directory});let l=Fe(o);await b(l,{packageManager:n.packageManager,type:"prod",directory:n.usesWorkspaces?e:n.directory})}}),o==="javascript"&&c.push({title:"Building GraphQL types",task:async()=>{await Q({directory:e,isJavaScript:!0},{stdout:process.stdout,stderr:process.stderr,app:r})}}),await O(c)}async function Ee({directory:e,url:t,app:r,project:n,name:a,extensionFlavor:i,onGetTemplateRepository:s}){let o=A(i?.value),c=[{title:"Generating extension",task:async()=>{let l=ce(i?.value??"vanilla-js");await g(async u=>{let h=await S(t,i,u,s);await T(h,e,{srcFileExtension:l,name:a,handle:f(a),flavor:i?.value??"",uid:F(f(a))})}),o==="javascript"&&await le(e,l)}},{title:"Installing dependencies",task:async()=>{let l=n.packageManager;if(n.usesWorkspaces)A(i?.value)==="javascript"&&await _({packageManager:l,directory:n.directory});else{await Te(n.directory,i?.value);let u=p(e,"package.json"),h=await ke(u);await b(h,{packageManager:l,type:"prod",directory:n.directory}),await E(u)}}}];c.push({title:"Update shared type definition",task:async()=>{await ee(r)}}),await O(c)}function ce(e){return{"vanilla-js":"js",preact:"jsx",react:"jsx",typescript:"ts","typescript-react":"tsx",rust:"rs",wasm:"wasm",liquid:"liquid","config-only":""}[e]??"js"}function Fe(e){let t=[];return e==="javascript"&&t.push({name:"@shopify/shopify_function",version:`~${K}.0.0`}),t}async function le(e,t,r="*"){let n=await L(p(e,"src",r)),a=[];for(let i of n)a.push(j(i,`${i}.${t}`));await Promise.all(a)}async function Te(e,t){t==="typescript-react"&&await G(e,{"@types/react":X.reactTypes})}async function ke(e){if(!await x(e))return[];let t=await R(e);return Object.entries(t?.dependencies??{}).map(([r,n])=>({name:r,version:n}))}async function S(e,t,r,n){let a=p(r,"download");return await v(a),await n(e,a),ie(t,a)}d();function Pe(e,t=[]){let r=[...e.map(a=>({label:a.name,value:a.identifier,group:a.group||"Other",sortPriority:a.sortPriority??Number.MAX_SAFE_INTEGER})),...t.map(a=>({label:`${a.name} (limit reached)`,value:a.identifier,group:a.group||"Other",disabled:!0,sortPriority:a.sortPriority??Number.MAX_SAFE_INTEGER}))],n=(a,i)=>a.sortPriority===i.sortPriority?a.label.localeCompare(i.label):a.sortPriority-i.sortPriority;return r.sort(n)}var _e=async e=>{let t=e.extensionTemplates,r=e.templateType,n=e.extensionFlavor;if(!r){if(n&&(t=t.filter(c=>c.supportedFlavors.map(l=>l.value).includes(n))),t.length===0)throw new m("You have reached the limit for the number of extensions you can create.");r=await q({message:"Type of extension?",choices:Pe(t,e.unavailableExtensions),groupOrder:e.groupOrder})}let a=t.find(c=>c.identifier===r),i=e.name||await pe(e.directory,a.defaultName),s=e.extensionFlavor??await be(a);return{extensionTemplate:a,extensionContent:{name:i,flavor:s}}};async function pe(e,t,r=1){let n=t.includes(" ")?" ":"-",a=r<=1?t:`${t}${n}${r}`,i=p(e,f(a));return D(i)?pe(e,t,r+1):V({message:"Name your extension:",defaultValue:a})}async function be(e){if(e.supportedFlavors.length!==0)return e.supportedFlavors.length===1&&e.supportedFlavors[0]?e.supportedFlavors[0].value:U({message:"What would you like to work in?",choices:e.supportedFlavors.map(t=>({label:t.name,value:t.value})),defaultValue:"react"})}var de=_e;async function Oe(e){let{app:t,developerPlatformClient:r,remoteApp:n,specifications:a,template:i}=e,s=a.map(ye=>ye.identifier),{templates:o,groupOrder:c}=await re(r,n,s,{requestedTemplate:i}),l=await Ae(o,c,a,t,e),u=await de(l);await Ce(u,i);let h=Ie(u,t,e,r),fe=await se(h);Me(fe,e.project.packageManager)}async function Ae(e,t,r,n,a){let i=await De(a.template,n,e,r);Ne(i,a.flavor);let{validTemplates:s,templatesOverlimit:o}=Se(e,r,n);return{templateType:i?.identifier,name:a.name,extensionFlavor:a.flavor,directory:p(a.directory,"extensions"),app:n,extensionTemplates:s??[],unavailableExtensions:o??[],reset:a.reset,groupOrder:t}}function Se(e,t,r){return ae(e,a=>!ue(r,t,a)?"validTemplates":"templatesOverlimit")}function ue(e,t,r){let n=r.type,a=t.find(s=>s.identifier===n||s.externalIdentifier===n);return e.extensionsForType({identifier:n,externalIdentifier:n}).length>=(a?.registrationLimit??1)}async function Ce(e,t){let{extensionContent:r}=e;return P.addPublicMetadata(()=>({cmd_scaffold_template_flavor:r.flavor,cmd_scaffold_type:e.extensionTemplate.identifier,cmd_scaffold_used_prompts_for_type:!t}))}function Ie(e,t,r,n){return{app:t,project:r.project,cloneUrl:r.cloneUrl,extensionChoices:e.extensionContent,extensionTemplate:e.extensionTemplate,developerPlatformClient:n}}function Me(e,t){let r=je(e.extensionTemplate,e.directory,t);$(r)}function Ne(e,t){if(!t||!e)return;let r=e.supportedFlavors.map(n=>n.value);if(!r.includes(t))throw new m("Invalid template for extension type",`Expected template to be one of the following: ${r.join(", ")}.`)}function je(e,t,r){let n={headline:["Your extension was created in",{filePath:t},{char:"."}],nextSteps:[],reference:[]};return e.type!=="function"&&n.nextSteps.push(["To preview this extension along with the rest of the project, run",{command:W(r,"shopify app dev")}]),e.supportLinks[0]&&n.reference.push(["For more details, see the",{link:{label:"docs",url:e.supportLinks[0]}}]),n}async function De(e,t,r,n){if(!e)return;let a=r.find(i=>i.identifier===e);if(!a){let i=await Y(),s=r.map(c=>c.identifier),o=i?"You might need to enable some flags on your Organization or App":void 0;throw new m(`Unknown extension type: ${e}.
@@ -1,4 +1,4 @@
1
- import{a as p}from"./chunk-X2ZCC772.js";import{a as r}from"./chunk-33AVVFWW.js";import{ta as f,wa as s}from"./chunk-LANGOUPS.js";import{b as n}from"./chunk-BPRY3O4N.js";import{a as g}from"./chunk-M5GXA5W4.js";import{e as m,g as a}from"./chunk-VKWPEFWQ.js";a();var o=m(g(),1);var t,e=class extends p{async run(){let{flags:i}=await this.parse(t),c={directory:i.path,apiKey:i["client-id"],organizationId:i["organization-id"],configName:i.config,fileName:i["file-name"],force:i.force??!1},d=await f(c),{app:l}=await s({directory:i.path,clientId:void 0,forceRelink:!1,userProvidedConfigName:d.configFileName});return{app:l}}};t=e;e.summary="Fetch your app configuration from the Developer Dashboard.";e.descriptionWithMarkdown=`Pulls app configuration from the Developer Dashboard and creates or overwrites a configuration file. You can create a new app with this command to start with a default configuration file.
1
+ import{a as p}from"./chunk-FDYZZLAY.js";import{a as r}from"./chunk-CXYYVAYY.js";import{ta as f,wa as s}from"./chunk-4MERFNHB.js";import{b as n}from"./chunk-HXPUMDUV.js";import{a as g}from"./chunk-M5GXA5W4.js";import{e as m,g as a}from"./chunk-VKWPEFWQ.js";a();var o=m(g(),1);var t,e=class extends p{async run(){let{flags:i}=await this.parse(t),c={directory:i.path,apiKey:i["client-id"],organizationId:i["organization-id"],configName:i.config,fileName:i["file-name"],force:i.force??!1},d=await f(c),{app:l}=await s({directory:i.path,clientId:void 0,forceRelink:!1,userProvidedConfigName:d.configFileName});return{app:l}}};t=e;e.summary="Fetch your app configuration from the Developer Dashboard.";e.descriptionWithMarkdown=`Pulls app configuration from the Developer Dashboard and creates or overwrites a configuration file. You can create a new app with this command to start with a default configuration file.
2
2
 
3
3
  For more information on the format of the created TOML configuration file, refer to the [App configuration](https://shopify.dev/docs/apps/tools/cli/configuration) page.
4
4
  `;e.description=t.descriptionWithoutMarkdown();e.flags={...n,...r,"organization-id":o.Flags.string({hidden:!0,env:"SHOPIFY_FLAG_ORGANIZATION_ID",exclusive:["client-id"]}),"file-name":o.Flags.string({hidden:!1,description:"The name of the app configuration file to create or overwrite.",env:"SHOPIFY_FLAG_APP_CONFIG_FILE_NAME",exclusive:["config"]}),force:o.Flags.boolean({hidden:!1,description:"Overwrite an existing configuration file without prompting.",env:"SHOPIFY_FLAG_FORCE",dependsOn:["file-name"]})};var A=e;export{A as a};
@@ -1,4 +1,4 @@
1
- import{p as S,v as G}from"./chunk-5VKFEYZK.js";import{$ as re,aa as E}from"./chunk-HJH672U6.js";import{b as $}from"./chunk-BPRY3O4N.js";import{r as C}from"./chunk-SH5VEQ7F.js";import{u as w,v as N}from"./chunk-SQVJGTTD.js";import{$a as A,Lb as l,Mb as P,N as x,Nb as T,Pb as L,Ta as b,na as R,ua as _}from"./chunk-KNLPWHHJ.js";import{d as F,p as I}from"./chunk-773TIA5M.js";import{a as oe}from"./chunk-M5GXA5W4.js";import{e as O,g as k}from"./chunk-VKWPEFWQ.js";k();k();var i=O(E(),1),y=O(re(),1);function ie(t){switch(t){case"error":return i.Severity.ERROR;case"suggestion":case"warning":return i.Severity.WARNING;case"style":case"info":return i.Severity.INFO;case"crash":return}}function j(t){switch(t){case i.Severity.ERROR:return"error";case i.Severity.WARNING:return"warning";case i.Severity.INFO:return"info"}}function se(t,e,n){let o=i.path.fsPath(t),c=R(o).toString().split(`
1
+ import{p as S,v as G}from"./chunk-S6JGBSUV.js";import{$ as re,aa as E}from"./chunk-72YGVGPS.js";import{b as $}from"./chunk-HXPUMDUV.js";import{r as C}from"./chunk-XJMML6SY.js";import{u as w,v as N}from"./chunk-EOGQ7TJP.js";import{$a as A,Lb as l,Mb as P,N as x,Nb as T,Pb as L,Ta as b,na as R,ua as _}from"./chunk-YKQLGBJM.js";import{d as F,p as I}from"./chunk-773TIA5M.js";import{a as oe}from"./chunk-M5GXA5W4.js";import{e as O,g as k}from"./chunk-VKWPEFWQ.js";k();k();var i=O(E(),1),y=O(re(),1);function ie(t){switch(t){case"error":return i.Severity.ERROR;case"suggestion":case"warning":return i.Severity.WARNING;case"style":case"info":return i.Severity.INFO;case"crash":return}}function j(t){switch(t){case i.Severity.ERROR:return"error";case i.Severity.WARNING:return"warning";case i.Severity.INFO:return"info"}}function se(t,e,n){let o=i.path.fsPath(t),c=R(o).toString().split(`
2
2
  `).slice(e,n+1),a=c.length===1;return c.map((u,h)=>{let f=e+h+1,d=a?u.trim():u;return`${f} ${d}`}).join(`
3
3
  `)}function ce(t){switch(t){case i.Severity.ERROR:return{error:`
4
4
  [error]:`};case i.Severity.WARNING:return{warn:`
@@ -1,3 +1,3 @@
1
- import{a as x}from"./chunk-WW7TENNA.js";import{h as w,m as y,q as n}from"./chunk-OQ6WYWG4.js";import{w as l}from"./chunk-SH5VEQ7F.js";import{O as S,u as d,w as g,x as N}from"./chunk-SQVJGTTD.js";import{k as u,l as m}from"./chunk-WMKVFUMY.js";import{a as h}from"./chunk-UA2432YR.js";import{o as _}from"./chunk-O6BUPYXH.js";import{Pb as a}from"./chunk-KNLPWHHJ.js";import{a as f}from"./chunk-UKQ7NE5V.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();var $="https://cdn.shopify.com/static/cli/notifications.json",D="Cache is empty",C=["notifications:list","notifications:generate","init","app:init","theme:init","hydrogen:init","cache:clear"];function c(){return process.env.SHOPIFY_CLI_NOTIFICATIONS_URL??$}var E=n.object({id:n.string(),message:n.string(),type:n.enum(["info","warning","error"]),frequency:n.enum(["always","once","once_a_day","once_a_week"]),ownerChannel:n.string(),cta:n.object({label:n.string(),url:n.string().url()}).optional(),title:n.string().optional(),minVersion:n.string().optional(),maxVersion:n.string().optional(),minDate:n.string().optional(),maxDate:n.string().optional(),commands:n.array(n.string()).optional(),surface:n.string().optional()}),I=n.object({notifications:n.array(E)});async function Q(e,t=process.env){try{let r=x();if(b(r,t)||w(t))return;let o=await k(),s=v(o.notifications,r,e);a(`Notifications to show: ${s.length}`),await V(s)}catch(r){if(r.message===D){a("Notifications to show: 0 (Cache is empty)");return}if(r.message==="abort")throw new _;let o=`Error showing notifications: ${r.message}`;a(o);let{sendErrorToBugsnag:s}=await import("./error-handler-QHCOZUC7.js");await s(o,"unexpected_error")}}function b(e,t=process.env){return f(t.CI)||f(t.SHOPIFY_UNIT_TEST)||C.includes(e)}async function V(e){e.slice(0,2).forEach(t=>{let r={headline:t.title,body:t.message.replace(/\\n/g,`
1
+ import{a as x}from"./chunk-WW7TENNA.js";import{h as w,m as y,q as n}from"./chunk-CG22VLHL.js";import{w as l}from"./chunk-XJMML6SY.js";import{k as u,l as m}from"./chunk-27IBAKXK.js";import{O as S,u as d,w as g,x as N}from"./chunk-EOGQ7TJP.js";import{a as h}from"./chunk-LEMDZHSP.js";import{o as _}from"./chunk-K44YPOUY.js";import{Pb as a}from"./chunk-YKQLGBJM.js";import{a as f}from"./chunk-UKQ7NE5V.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();var $="https://cdn.shopify.com/static/cli/notifications.json",D="Cache is empty",C=["notifications:list","notifications:generate","init","app:init","theme:init","hydrogen:init","cache:clear"];function c(){return process.env.SHOPIFY_CLI_NOTIFICATIONS_URL??$}var E=n.object({id:n.string(),message:n.string(),type:n.enum(["info","warning","error"]),frequency:n.enum(["always","once","once_a_day","once_a_week"]),ownerChannel:n.string(),cta:n.object({label:n.string(),url:n.string().url()}).optional(),title:n.string().optional(),minVersion:n.string().optional(),maxVersion:n.string().optional(),minDate:n.string().optional(),maxDate:n.string().optional(),commands:n.array(n.string()).optional(),surface:n.string().optional()}),I=n.object({notifications:n.array(E)});async function Q(e,t=process.env){try{let r=x();if(b(r,t)||w(t))return;let o=await k(),s=v(o.notifications,r,e);a(`Notifications to show: ${s.length}`),await V(s)}catch(r){if(r.message===D){a("Notifications to show: 0 (Cache is empty)");return}if(r.message==="abort")throw new _;let o=`Error showing notifications: ${r.message}`;a(o);let{sendErrorToBugsnag:s}=await import("./error-handler-AG5VMYWI.js");await s(o,"unexpected_error")}}function b(e,t=process.env){return f(t.CI)||f(t.SHOPIFY_UNIT_TEST)||C.includes(e)}async function V(e){e.slice(0,2).forEach(t=>{let r={headline:t.title,body:t.message.replace(/\\n/g,`
2
2
  `),link:t.cta};switch(t.type){case"info":{d(r);break}case"warning":{g(r);break}case"error":throw N(r),new Error("abort")}u(`notification-${t.id}`,new Date().getTime().toString())})}async function k(){let e=`notifications-${c()}`,t=m(e)?.value;if(!t)throw new Error(D);let r=JSON.parse(t);return I.parse(r)}async function X(){a("Fetching notifications...");let e=await y(c(),void 0,{useNetworkLevelRetry:!1,useAbortSignal:!0,timeoutMs:3*1e3});if(e.status!==200)throw new Error(`Failed to fetch notifications: ${e.statusText}`);let t=await e.text(),r=JSON.parse(t),o=I.parse(r);return await O(t),o}async function O(e){u(`notifications-${c()}`,e),a(`Notifications from ${c()} stored in the cache`)}function Z(e,t=process.argv,r=process.env){if(b(e,r)||!t[0]||!t[1])return;let o=t[0],i=[t[1],"notifications","list","--ignore-errors"];S(o,i,{background:!0,env:{...process.env,SHOPIFY_CLI_NO_ANALYTICS:"1"},externalErrorHandler:async T=>{a(`Failed to fetch notifications in background: ${T.message}`)}})}function v(e,t,r,o=new Date(new Date().setUTCHours(0,0,0,0)),s=h){return e.filter(i=>B(i,s)).filter(i=>F(i,o)).filter(i=>A(i,t)).filter(i=>j(i,t,r)).filter(i=>q(i))}function B(e,t){let r=!e.minVersion||l(t,`>=${e.minVersion}`),o=!e.maxVersion||l(t,`<=${e.maxVersion}`);return r&&o}function F(e,t){let r=!e.minDate||new Date(e.minDate)<=t,o=!e.maxDate||new Date(e.maxDate)>=t;return r&&o}function A(e,t){return t===""?!0:!e.commands||e.commands.includes(t)}function j(e,t,r){let o=t.split(":")[0]??"all",s=e.surface??"all";return r?r.includes(s):s===o||s==="all"}function q(e){if(!e.frequency)return!0;let t=`notification-${e.id}`,r=m(t)?.value;if(!r)return!0;switch(e.frequency){case"always":return!0;case"once":return!1;case"once_a_day":return new Date().getTime()-Number(r)>24*3600*1e3;case"once_a_week":return new Date().getTime()-Number(r)>168*3600*1e3}}function ee(e){let t=[];return e.minDate&&t.push(`from ${e.minDate}`),e.maxDate&&t.push(`to ${e.maxDate}`),e.minVersion&&t.push(`from v${e.minVersion}`),e.maxVersion&&t.push(`to v${e.maxVersion}`),e.frequency==="once"&&t.push("show only once"),e.frequency==="once_a_day"&&t.push("show once a day"),e.frequency==="once_a_week"&&t.push("show once a week"),e.surface&&t.push(`surface = ${e.surface}`),e.commands&&t.push(`commands = ${e.commands.join(", ")}`),t.join(`
3
3
  `)}export{Q as a,k as b,X as c,Z as d,v as e,ee as f};
@@ -1,4 +1,4 @@
1
- import{a as l}from"./chunk-SACH2YSZ.js";import{p as r,q as m,v as a}from"./chunk-5VKFEYZK.js";import{b as s,c as h}from"./chunk-BPRY3O4N.js";import{ua as i}from"./chunk-OQ6WYWG4.js";import{a as v}from"./chunk-M5GXA5W4.js";import{e as f,g as n}from"./chunk-VKWPEFWQ.js";n();var e=f(v(),1);var p,t=class extends a{async command(o,d,c,y,u){i("theme-command:push"),await l({...o,allowLive:o["allow-live"],noColor:o["no-color"],developmentContext:o["development-context"]},d,c,u),i("theme-command:push")}storeAuthScopes(){return["read_themes","write_themes"]}};p=t;t.summary="Uploads your local theme files to the connected store, overwriting the remote version if specified.";t.usage=["theme push","theme push --unpublished --json"];t.descriptionWithMarkdown=`Uploads your local theme files to Shopify, overwriting the remote version if specified.
1
+ import{a as l}from"./chunk-3EL4GA72.js";import{p as r,q as m,v as a}from"./chunk-S6JGBSUV.js";import{b as s,c as h}from"./chunk-HXPUMDUV.js";import{ua as i}from"./chunk-CG22VLHL.js";import{a as v}from"./chunk-M5GXA5W4.js";import{e as f,g as n}from"./chunk-VKWPEFWQ.js";n();var e=f(v(),1);var p,t=class extends a{async command(o,d,c,y,u){i("theme-command:push"),await l({...o,allowLive:o["allow-live"],noColor:o["no-color"],developmentContext:o["development-context"]},d,c,u),i("theme-command:push")}storeAuthScopes(){return["read_themes","write_themes"]}};p=t;t.summary="Uploads your local theme files to the connected store, overwriting the remote version if specified.";t.usage=["theme push","theme push --unpublished --json"];t.descriptionWithMarkdown=`Uploads your local theme files to Shopify, overwriting the remote version if specified.
2
2
 
3
3
  If no theme is specified, then you're prompted to select the theme to overwrite from the list of the themes in your store.
4
4
 
@@ -1 +1 @@
1
- import{h as l}from"./chunk-VQ44LFBY.js";import{O as c}from"./chunk-OQ6WYWG4.js";import{m as u}from"./chunk-O6BUPYXH.js";import{g as i}from"./chunk-VKWPEFWQ.js";i();var s=["live","unpublished","development"];async function A(e,r){let t=await c(e,r);return p(t)}async function p(e){let r=e.storeFqdn,t=(await l(e)).filter(d);if(t.length===0)throw new u(`There are no themes in the ${r} store`);return t.sort(w)}function d(e){return s.includes(e.role)}function w(e,r){return s.indexOf(e.role)-s.indexOf(r.role)}i();function E(e,r,t){return y(e,r,t)??T(e,r,t)}function y(e,r,t){let o=t.role;if(!o)return;let n=`No themes on the store ${e} match the role "${o}"`;return m(r,h=>h.role===o).orThrow(n)}function T(e,r,t){return t.themeIdentifiers.flatMap(n=>{let h=`No themes on the store ${e} match the ID or name "${n}"`;return m(r,f=>`${f.id}`===n||f.name.toLowerCase()===n.toLowerCase()?!0:L(f.name.toLowerCase(),n.toLowerCase())).orThrow(h)})}function m(e,r){let t=e.filter(r);return t.length>0?{orThrow:o=>t}:{orThrow:o=>{throw new u(o)}}}var a=class{constructor(r){this.queryProps=r}get role(){for(let r of s)if(this.queryProps[r])return r}get themeIdentifiers(){return[this.queryProps.theme,this.queryProps.themes].flat().filter(t=>!!t)}any(){return Object.values(this.queryProps).some(r=>r?.length!==void 0?r.length>0:!!r)}};function L(e,r){let t=r.replace(/(^\*)|(\*$)/g,"");return r.startsWith("*")&&r.endsWith("*")?e.includes(t):r.startsWith("*")?e.endsWith(t):r.endsWith("*")?e.startsWith(t):!1}export{s as a,A as b,p as c,E as d,a as e};
1
+ import{h as l}from"./chunk-WQLVBL6G.js";import{O as c}from"./chunk-CG22VLHL.js";import{m as u}from"./chunk-K44YPOUY.js";import{g as i}from"./chunk-VKWPEFWQ.js";i();var s=["live","unpublished","development"];async function A(e,r){let t=await c(e,r);return p(t)}async function p(e){let r=e.storeFqdn,t=(await l(e)).filter(d);if(t.length===0)throw new u(`There are no themes in the ${r} store`);return t.sort(w)}function d(e){return s.includes(e.role)}function w(e,r){return s.indexOf(e.role)-s.indexOf(r.role)}i();function E(e,r,t){return y(e,r,t)??T(e,r,t)}function y(e,r,t){let o=t.role;if(!o)return;let n=`No themes on the store ${e} match the role "${o}"`;return m(r,h=>h.role===o).orThrow(n)}function T(e,r,t){return t.themeIdentifiers.flatMap(n=>{let h=`No themes on the store ${e} match the ID or name "${n}"`;return m(r,f=>`${f.id}`===n||f.name.toLowerCase()===n.toLowerCase()?!0:L(f.name.toLowerCase(),n.toLowerCase())).orThrow(h)})}function m(e,r){let t=e.filter(r);return t.length>0?{orThrow:o=>t}:{orThrow:o=>{throw new u(o)}}}var a=class{constructor(r){this.queryProps=r}get role(){for(let r of s)if(this.queryProps[r])return r}get themeIdentifiers(){return[this.queryProps.theme,this.queryProps.themes].flat().filter(t=>!!t)}any(){return Object.values(this.queryProps).some(r=>r?.length!==void 0?r.length>0:!!r)}};function L(e,r){let t=r.replace(/(^\*)|(\*$)/g,"");return r.startsWith("*")&&r.endsWith("*")?e.includes(t):r.startsWith("*")?e.endsWith(t):r.endsWith("*")?e.startsWith(t):!1}export{s as a,A as b,p as c,E as d,a as e};
@@ -1,4 +1,4 @@
1
- import{p,v as d}from"./chunk-5VKFEYZK.js";import{a as u}from"./chunk-M3FOYFPN.js";import{aa as P}from"./chunk-HJH672U6.js";import{b as l}from"./chunk-BPRY3O4N.js";import{v as f}from"./chunk-SQVJGTTD.js";import{m as i}from"./chunk-O6BUPYXH.js";import{Ta as c,ma as h}from"./chunk-KNLPWHHJ.js";import{f as r,n as m}from"./chunk-773TIA5M.js";import{e as w,g as n}from"./chunk-VKWPEFWQ.js";n();n();var g=w(P(),1),k=["assets/**","blocks/**","config/**","layout/**","listings/**/*","locales/**","sections/**","snippets/**","templates/**","templates/customers/**","release-notes.md","update_extension.json"].join("|");async function y(e){let t=await v(e),o=`${e}/${t}`,a=`${e}/(${k})`;await u({inputDirectory:e,outputZipPath:o,matchFilePattern:a}),f({body:["Your local theme was packaged in",{filePath:m(o)}]})}async function v(e){let t=r(e,"config/settings_schema.json");if(!await c(t))throw new i("Provide a config/settings_schema.json to package your theme.");let o=await j(t);if(o===void 0||o.theme_name===void 0)throw new i("Provide a theme_info.theme_name configuration in config/settings_schema.json.");return`${[o.theme_name,o.theme_version].filter(Boolean).join("-")}.zip`}async function j(e){let t=(0,g.parseJSON)(await h(e),null,!0);if(!t)throw new i("The file config/settings_schema.json contains an error. Please check if the file is valid JSON and includes the theme_info.theme_name configuration.");return t.find(o=>o.name==="theme_info")}var _,s=class extends d{async command(t){await y(t.path)}};_=s;s.summary="Package your theme into a .zip file, ready to upload to the Online Store.";s.descriptionWithMarkdown=`Packages your local theme files into a ZIP file that can be uploaded to Shopify.
1
+ import{p,v as d}from"./chunk-S6JGBSUV.js";import{a as u}from"./chunk-EIFAHNSO.js";import{aa as P}from"./chunk-72YGVGPS.js";import{b as l}from"./chunk-HXPUMDUV.js";import{v as f}from"./chunk-EOGQ7TJP.js";import{m as i}from"./chunk-K44YPOUY.js";import{Ta as c,ma as h}from"./chunk-YKQLGBJM.js";import{f as r,n as m}from"./chunk-773TIA5M.js";import{e as w,g as n}from"./chunk-VKWPEFWQ.js";n();n();var g=w(P(),1),k=["assets/**","blocks/**","config/**","layout/**","listings/**/*","locales/**","sections/**","snippets/**","templates/**","templates/customers/**","release-notes.md","update_extension.json"].join("|");async function y(e){let t=await v(e),o=`${e}/${t}`,a=`${e}/(${k})`;await u({inputDirectory:e,outputZipPath:o,matchFilePattern:a}),f({body:["Your local theme was packaged in",{filePath:m(o)}]})}async function v(e){let t=r(e,"config/settings_schema.json");if(!await c(t))throw new i("Provide a config/settings_schema.json to package your theme.");let o=await j(t);if(o===void 0||o.theme_name===void 0)throw new i("Provide a theme_info.theme_name configuration in config/settings_schema.json.");return`${[o.theme_name,o.theme_version].filter(Boolean).join("-")}.zip`}async function j(e){let t=(0,g.parseJSON)(await h(e),null,!0);if(!t)throw new i("The file config/settings_schema.json contains an error. Please check if the file is valid JSON and includes the theme_info.theme_name configuration.");return t.find(o=>o.name==="theme_info")}var _,s=class extends d{async command(t){await y(t.path)}};_=s;s.summary="Package your theme into a .zip file, ready to upload to the Online Store.";s.descriptionWithMarkdown=`Packages your local theme files into a ZIP file that can be uploaded to Shopify.
2
2
 
3
3
  Only folders that match the [default Shopify theme folder structure](https://shopify.dev/docs/storefronts/themes/tools/cli#directory-structure) are included in the package.
4
4
 
@@ -1 +1 @@
1
- import{b as r}from"./chunk-3R45SEUK.js";import{b as a}from"./chunk-3PFIBTES.js";import{g as t}from"./chunk-VKWPEFWQ.js";t();var i=class extends a{static{this.summary="Upgrades Shopify CLI."}static{this.descriptionWithMarkdown="Upgrades Shopify CLI using your package manager."}static{this.description=this.descriptionWithoutMarkdown()}async run(){await r()}};export{i as a};
1
+ import{b as r}from"./chunk-3OKGR33F.js";import{b as a}from"./chunk-3XHYGKBZ.js";import{g as t}from"./chunk-VKWPEFWQ.js";t();var i=class extends a{static{this.summary="Upgrades Shopify CLI."}static{this.descriptionWithMarkdown="Upgrades Shopify CLI using your package manager."}static{this.description=this.descriptionWithoutMarkdown()}async run(){await r()}};export{i as a};
@@ -1,4 +1,4 @@
1
- import{b as f}from"./chunk-3PFIBTES.js";import{A as S,u as i,y as x}from"./chunk-SQVJGTTD.js";import{b as C}from"./chunk-JNAAHGJ6.js";import{m as v}from"./chunk-O6BUPYXH.js";import{Pb as I}from"./chunk-KNLPWHHJ.js";import{g as n}from"./chunk-VKWPEFWQ.js";n();n();n();var m={on:"Autocorrect on. The system will automatically run commands even when you mistype them.",off:"Autocorrect off. You'll need to confirm corrections for mistyped commands."};n();function p(o=W()){return!!o.get("autocorrectEnabled")}function y(o,e=W()){e.set("autocorrectEnabled",o)}function W(){return b??(b=new C({projectName:"did-you-mean"})),b}var b;var A,s=class extends f{async run(){y(!0),i({body:m.on})}};A=s;s.summary="Enable autocorrect. Off by default.";s.descriptionWithMarkdown=`Enable autocorrect. Off by default.
1
+ import{b as f}from"./chunk-3XHYGKBZ.js";import{b as C}from"./chunk-3PFKQSWK.js";import{A as S,u as i,y as x}from"./chunk-EOGQ7TJP.js";import{m as v}from"./chunk-K44YPOUY.js";import{Pb as I}from"./chunk-YKQLGBJM.js";import{g as n}from"./chunk-VKWPEFWQ.js";n();n();n();var m={on:"Autocorrect on. The system will automatically run commands even when you mistype them.",off:"Autocorrect off. You'll need to confirm corrections for mistyped commands."};n();function p(o=W()){return!!o.get("autocorrectEnabled")}function y(o,e=W()){e.set("autocorrectEnabled",o)}function W(){return b??(b=new C({projectName:"did-you-mean"})),b}var b;var A,s=class extends f{async run(){y(!0),i({body:m.on})}};A=s;s.summary="Enable autocorrect. Off by default.";s.descriptionWithMarkdown=`Enable autocorrect. Off by default.
2
2
 
3
3
  When autocorrection is enabled, Shopify CLI automatically runs a corrected version of your command if a correction is available.
4
4
 
@@ -1 +1 @@
1
- import{a as T}from"./chunk-EI6ZQXTF.js";import{b as P,c as w,d as v}from"./chunk-BQ2752RO.js";import{a as F}from"./chunk-G3CPHVML.js";import{a as x}from"./chunk-33AVVFWW.js";import{xa as y}from"./chunk-LANGOUPS.js";import{b as h,c as m}from"./chunk-BPRY3O4N.js";import{B as d,I as l}from"./chunk-SQVJGTTD.js";import{Pb as r}from"./chunk-KNLPWHHJ.js";import{a as N}from"./chunk-M5GXA5W4.js";import{e as A,g}from"./chunk-VKWPEFWQ.js";g();var s=A(N(),1);var p,a="_start",e=class extends F{async run(){let{flags:t}=await this.parse(p),n=a,{app:c}=await y({directory:t.path,userProvidedConfigName:t.config}),o=await w(c,t.path);if(t.export!==void 0)r(`Using export ${t.export} from the --export flag.`),n=t.export;else if(o.configuration.targeting!==void 0&&o.configuration.targeting.length>0){let i=o.configuration.targeting;if(i.length>1&&l({})){let b=i.map(f=>({label:f.target,value:f.export||a}));n=await d({message:"Which target would you like to execute?",choices:b})}else n=i?.[0]?.export||a,r(`Using export '${n}'. Use the --export flag or an interactive terminal to select a different export.`)}else r(`No targeting information found. Using the default export '${n}'. Use the --export flag or an interactive terminal to select a different export.`);let u=o?.configuration.targeting?.[0]?.input_query,U=u&&`${o?.directory}/${u}`,_=await v(o,t.path,t["client-id"],t.reset,t.config);return await T({functionExtension:o,json:t.json,inputPath:t.input,export:n,stdin:"inherit",schemaPath:_,queryPath:U}),{app:c}}};p=e;e.summary="Run a function locally for testing.";e.descriptionWithMarkdown="Runs the function from your current directory for [testing purposes](https://shopify.dev/docs/apps/functions/testing-and-debugging). To learn how you can monitor and debug functions when errors occur, refer to [Shopify Functions error handling](https://shopify.dev/docs/api/functions/errors).";e.description=p.descriptionWithoutMarkdown();e.flags={...h,...x,...P,...m,input:s.Flags.string({char:"i",description:"The input JSON to pass to the function. If omitted, standard input is used.",env:"SHOPIFY_FLAG_INPUT"}),export:s.Flags.string({char:"e",hidden:!1,description:"Name of the WebAssembly export to invoke.",env:"SHOPIFY_FLAG_EXPORT"})};var G=e;export{G as a};
1
+ import{a as T}from"./chunk-BXQV7N7H.js";import{b as P,c as w,d as v}from"./chunk-TGIRO2TB.js";import{a as F}from"./chunk-AS7WHEG6.js";import{a as x}from"./chunk-CXYYVAYY.js";import{xa as y}from"./chunk-4MERFNHB.js";import{b as h,c as m}from"./chunk-HXPUMDUV.js";import{B as d,I as l}from"./chunk-EOGQ7TJP.js";import{Pb as r}from"./chunk-YKQLGBJM.js";import{a as N}from"./chunk-M5GXA5W4.js";import{e as A,g}from"./chunk-VKWPEFWQ.js";g();var s=A(N(),1);var p,a="_start",e=class extends F{async run(){let{flags:t}=await this.parse(p),n=a,{app:c}=await y({directory:t.path,userProvidedConfigName:t.config}),o=await w(c,t.path);if(t.export!==void 0)r(`Using export ${t.export} from the --export flag.`),n=t.export;else if(o.configuration.targeting!==void 0&&o.configuration.targeting.length>0){let i=o.configuration.targeting;if(i.length>1&&l({})){let b=i.map(f=>({label:f.target,value:f.export||a}));n=await d({message:"Which target would you like to execute?",choices:b})}else n=i?.[0]?.export||a,r(`Using export '${n}'. Use the --export flag or an interactive terminal to select a different export.`)}else r(`No targeting information found. Using the default export '${n}'. Use the --export flag or an interactive terminal to select a different export.`);let u=o?.configuration.targeting?.[0]?.input_query,U=u&&`${o?.directory}/${u}`,_=await v(o,t.path,t["client-id"],t.reset,t.config);return await T({functionExtension:o,json:t.json,inputPath:t.input,export:n,stdin:"inherit",schemaPath:_,queryPath:U}),{app:c}}};p=e;e.summary="Run a function locally for testing.";e.descriptionWithMarkdown="Runs the function from your current directory for [testing purposes](https://shopify.dev/docs/apps/functions/testing-and-debugging). To learn how you can monitor and debug functions when errors occur, refer to [Shopify Functions error handling](https://shopify.dev/docs/api/functions/errors).";e.description=p.descriptionWithoutMarkdown();e.flags={...h,...x,...P,...m,input:s.Flags.string({char:"i",description:"The input JSON to pass to the function. If omitted, standard input is used.",env:"SHOPIFY_FLAG_INPUT"}),export:s.Flags.string({char:"e",hidden:!1,description:"Name of the WebAssembly export to invoke.",env:"SHOPIFY_FLAG_EXPORT"})};var G=e;export{G as a};
@@ -1 +1 @@
1
- import{c as u}from"./chunk-5EDRU7YU.js";import{w as c}from"./chunk-SQVJGTTD.js";import{e as s}from"./chunk-4NSHAMD3.js";import{$a as d}from"./chunk-KNLPWHHJ.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-GHVEHA7R.js";import{w as c}from"./chunk-EOGQ7TJP.js";import{e as s}from"./chunk-BGTOVY2S.js";import{$a as d}from"./chunk-YKQLGBJM.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{b as u,c as d}from"./chunk-BQ2752RO.js";import{a as m}from"./chunk-G3CPHVML.js";import{a}from"./chunk-33AVVFWW.js";import{o as p,xa as c}from"./chunk-LANGOUPS.js";import{b as e}from"./chunk-BPRY3O4N.js";import{v as n}from"./chunk-SQVJGTTD.js";import{g as i}from"./chunk-VKWPEFWQ.js";i();var s,o=class extends m{async run(){let{flags:t}=await this.parse(s),{app:r}=await c({directory:t.path,userProvidedConfigName:t.config}),l=await d(r,t.path);return await p(l,{app:r,stdout:process.stdout,stderr:process.stderr,useTasks:!0,environment:"production"}),n({headline:"Function built successfully."}),{app:r}}};s=o;o.summary="Compile a function to wasm.";o.descriptionWithMarkdown="Compiles the function in your current directory to WebAssembly (Wasm) for testing purposes.";o.description=s.descriptionWithoutMarkdown();o.flags={...e,...a,...u};var k=o;export{k as a};
1
+ import{b as u,c as d}from"./chunk-TGIRO2TB.js";import{a as m}from"./chunk-AS7WHEG6.js";import{a}from"./chunk-CXYYVAYY.js";import{o as p,xa as c}from"./chunk-4MERFNHB.js";import{b as e}from"./chunk-HXPUMDUV.js";import{v as n}from"./chunk-EOGQ7TJP.js";import{g as i}from"./chunk-VKWPEFWQ.js";i();var s,o=class extends m{async run(){let{flags:t}=await this.parse(s),{app:r}=await c({directory:t.path,userProvidedConfigName:t.config}),l=await d(r,t.path);return await p(l,{app:r,stdout:process.stdout,stderr:process.stderr,useTasks:!0,environment:"production"}),n({headline:"Function built successfully."}),{app:r}}};s=o;o.summary="Compile a function to wasm.";o.descriptionWithMarkdown="Compiles the function in your current directory to WebAssembly (Wasm) for testing purposes.";o.description=s.descriptionWithoutMarkdown();o.flags={...e,...a,...u};var k=o;export{k as a};
@@ -1,4 +1,4 @@
1
- import{c as Ce}from"./chunk-SY3LXLT2.js";import{a as Le}from"./chunk-WW7TENNA.js";import{$ as xe,H as Ie,I as we,L as G,P as Y,ba as w,ca as Re,f as be,ga as h,ha as ze,i as Fe,ia as O,m as _e,n as Ae,na as x,oa as Ue,pa as M,q as o,u as _,v as Ve,w as K,y as I}from"./chunk-OQ6WYWG4.js";import{b as qe}from"./chunk-ZDF5N422.js";import{w as Z}from"./chunk-SH5VEQ7F.js";import{B as Ee}from"./chunk-SQVJGTTD.js";import{b as De}from"./chunk-WMKVFUMY.js";import{b as Te}from"./chunk-JNAAHGJ6.js";import{a as ke}from"./chunk-UA2432YR.js";import{i as he,m as c,p as g}from"./chunk-O6BUPYXH.js";import{Fb as Me,Hb as Pe,N as T,Pb as A,T as fe,Ta as Se,Wa as ye,fa as Ne,ma as ge}from"./chunk-KNLPWHHJ.js";import{u as W}from"./chunk-A4SBXDZB.js";import{f as Oe}from"./chunk-E7Z7KYBR.js";import{d as ve,j as E}from"./chunk-773TIA5M.js";import{e as U,g as s}from"./chunk-VKWPEFWQ.js";s();function R(e,{httpsOnly:n=!1,message:i="Invalid URL"}={}){return e.refine(a=>$e(a,n),{message:i}).refine(a=>!a.includes(`
1
+ import{c as Ce}from"./chunk-4D7XW3LW.js";import{a as Le}from"./chunk-WW7TENNA.js";import{$ as xe,H as Ie,I as we,L as G,P as Y,ba as w,ca as Re,f as be,ga as h,ha as ze,i as Fe,ia as O,m as _e,n as Ae,na as x,oa as Ue,pa as M,q as o,u as _,v as Ve,w as K,y as I}from"./chunk-CG22VLHL.js";import{b as qe}from"./chunk-ZDF5N422.js";import{w as Z}from"./chunk-XJMML6SY.js";import{b as De}from"./chunk-27IBAKXK.js";import{b as Te}from"./chunk-3PFKQSWK.js";import{B as Ee}from"./chunk-EOGQ7TJP.js";import{a as ke}from"./chunk-LEMDZHSP.js";import{i as he,m as c,p as g}from"./chunk-K44YPOUY.js";import{Fb as Me,Hb as Pe,N as T,Pb as A,T as fe,Ta as Se,Wa as ye,fa as Ne,ma as ge}from"./chunk-YKQLGBJM.js";import{u as W}from"./chunk-A4SBXDZB.js";import{f as Oe}from"./chunk-F5LI3LKB.js";import{d as ve,j as E}from"./chunk-773TIA5M.js";import{e as U,g as s}from"./chunk-VKWPEFWQ.js";s();function R(e,{httpsOnly:n=!1,message:i="Invalid URL"}={}){return e.refine(a=>$e(a,n),{message:i}).refine(a=>!a.includes(`
2
2
  `),{message:i})}function ba(e,{message:n="URL must be HTTPS URL or start with /"}={}){return e.refine(i=>i.startsWith("/")||$e(i,!0),{message:n})}function $e(e,n){try{let i=new URL(e);return n?i.protocol==="https:":["http:","https:"].includes(i.protocol)}catch{return!1}}function Fa(e){return typeof e=="string"&&!e.startsWith("/")?`/${e}`:e}var li=30;function _a(e){return e.length<=li}s();s();s();function Be(e){return he`
3
3
  query OrganizationBetaFlags($organizationId: OrganizationID!) {
4
4
  organization(organizationId: $organizationId) {