shopify 4.8.5 → 4.9.1

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 (489) hide show
  1. package/dist/analytics-EPKJADE2.js +1 -0
  2. package/dist/analytics-TVCGKQGZ.js +1 -0
  3. package/dist/assets/hydrogen/starter/package.json +1 -1
  4. package/dist/bootstrap.js +1 -3
  5. package/dist/chunk-23ITMFUO.js +3 -0
  6. package/dist/{chunk-WKTIQUQP.js → chunk-254XYKPN.js} +1 -1
  7. package/dist/{chunk-T3B6KIPU.js → chunk-2AAHKMPP.js} +1 -1
  8. package/dist/chunk-2AZXDU2R.js +3 -0
  9. package/dist/chunk-2FHVYY3B.js +1 -0
  10. package/dist/chunk-2KBTFKSM.js +1 -0
  11. package/dist/chunk-2NBNVDDA.js +1 -0
  12. package/dist/{chunk-6LNTC6EK.js → chunk-2QV5FHXJ.js} +1 -1
  13. package/dist/chunk-2RVMF4QP.js +1 -0
  14. package/dist/chunk-2TOIR7YQ.js +11 -0
  15. package/dist/chunk-32B4LIKH.js +1 -0
  16. package/dist/{chunk-6QWLOSUQ.js → chunk-33D7HGAI.js} +1 -1
  17. package/dist/{chunk-HGFCNPSN.js → chunk-3GVSG4S6.js} +1 -1
  18. package/dist/chunk-3MEL3WLG.js +1 -0
  19. package/dist/{chunk-HS3VTFW3.js → chunk-3UZYLXCB.js} +1 -1
  20. package/dist/chunk-3VOMVINB.js +6 -0
  21. package/dist/{chunk-H5MENHJ2.js → chunk-3VXXYY6S.js} +1 -1
  22. package/dist/{chunk-773TIA5M.js → chunk-3VYOLEQE.js} +2 -2
  23. package/dist/chunk-3WMFKHIM.js +9 -0
  24. package/dist/{chunk-WHXY372K.js → chunk-46IUD46F.js} +1 -1
  25. package/dist/{chunk-VIMFXQ3Q.js → chunk-4AXLWDKW.js} +1 -1
  26. package/dist/chunk-55JDA75S.js +5 -0
  27. package/dist/{chunk-PQDB3FUL.js → chunk-5CANB25O.js} +1 -1
  28. package/dist/{chunk-MVJSQT7V.js → chunk-5I5HKOQU.js} +1 -1
  29. package/dist/chunk-5KILOX2V.js +2 -0
  30. package/dist/{chunk-77KSMVIO.js → chunk-5MJX7RKQ.js} +6 -6
  31. package/dist/{chunk-FXBQKJTS.js → chunk-5UDBNXNH.js} +1 -1
  32. package/dist/chunk-5XO6PAMV.js +1 -0
  33. package/dist/chunk-5ZSN73EA.js +3 -0
  34. package/dist/chunk-63GEZEYP.js +1 -0
  35. package/dist/{chunk-Z4E2EXZV.js → chunk-6WGHVCYY.js} +1 -1
  36. package/dist/chunk-77QKJLBG.js +6 -0
  37. package/dist/chunk-77QYKF34.js +6 -0
  38. package/dist/{chunk-PL7AJVTV.js → chunk-7AD5YCLL.js} +1 -1
  39. package/dist/{chunk-WAZL37JY.js → chunk-7H4IM6PX.js} +1 -1
  40. package/dist/{chunk-NPATN7YS.js → chunk-7IS6Q756.js} +1 -1
  41. package/dist/chunk-7UV53AU2.js +1 -0
  42. package/dist/{chunk-OJSF3H2G.js → chunk-7UZO72KN.js} +2 -2
  43. package/dist/{chunk-DKAWQBTI.js → chunk-7WWPAHVE.js} +3 -3
  44. package/dist/{chunk-GW7IEG4G.js → chunk-7ZONBOEZ.js} +1 -1
  45. package/dist/chunk-A6OSIGQI.js +1 -0
  46. package/dist/chunk-ADIHYUQC.js +7 -0
  47. package/dist/chunk-AJOTU26E.js +3 -0
  48. package/dist/chunk-AKSOCKVF.js +317 -0
  49. package/dist/{chunk-2JM3XHTQ.js → chunk-AZCPTV4A.js} +9 -9
  50. package/dist/chunk-B4YDR22W.js +4 -0
  51. package/dist/{chunk-7O2KMA4J.js → chunk-B7Y2LMPU.js} +1 -1
  52. package/dist/{chunk-RX63KGTK.js → chunk-BATQEAGE.js} +1 -1
  53. package/dist/chunk-C4QR7Z4N.js +1 -0
  54. package/dist/chunk-C7YSU4R5.js +20 -0
  55. package/dist/{chunk-DV7FOLG4.js → chunk-CKLS5LTU.js} +1 -1
  56. package/dist/chunk-COFGQT76.js +18 -0
  57. package/dist/{chunk-ZMD5TNU5.js → chunk-CPKLTBLZ.js} +1 -1
  58. package/dist/chunk-CUZQRXTV.js +20 -0
  59. package/dist/chunk-DCSSFNW7.js +12 -0
  60. package/dist/chunk-DEY5P63E.js +4 -0
  61. package/dist/{chunk-I6DVGPJ7.js → chunk-DP7SBNLN.js} +1 -1
  62. package/dist/{chunk-PJ7L6NSD.js → chunk-DREP3FRJ.js} +1 -1
  63. package/dist/{chunk-D34ZSTCK.js → chunk-DUWS6Q7C.js} +1 -1
  64. package/dist/chunk-DUWU7CL7.js +3 -0
  65. package/dist/chunk-DYHRCMH6.js +4 -0
  66. package/dist/chunk-DZS4GBQX.js +1 -0
  67. package/dist/{chunk-4DIR65KL.js → chunk-EDLID4PK.js} +24 -24
  68. package/dist/{chunk-HSETBDXR.js → chunk-EVQPVO4P.js} +1 -1
  69. package/dist/{chunk-WQOV3LQA.js → chunk-EYB45DUG.js} +1 -1
  70. package/dist/chunk-F34MAI7X.js +8 -0
  71. package/dist/{chunk-NZE4C4OI.js → chunk-FJCNEHTH.js} +1 -1
  72. package/dist/chunk-FNITLQDL.js +1 -0
  73. package/dist/chunk-FROK2K3X.js +5 -0
  74. package/dist/{chunk-KHRZFJHM.js → chunk-GF75CMTJ.js} +1 -1
  75. package/dist/{chunk-RU6J6QQF.js → chunk-GHO2S3W3.js} +1 -1
  76. package/dist/chunk-GILHUPUG.js +7 -0
  77. package/dist/chunk-GPRUQBQX.js +1 -0
  78. package/dist/chunk-GRKZRK4G.js +1 -0
  79. package/dist/{chunk-PU6KWWVK.js → chunk-H3QLPW7Q.js} +1 -1
  80. package/dist/chunk-HB3MJYBK.js +1 -0
  81. package/dist/{chunk-AEUCDGTB.js → chunk-HDQXFGYG.js} +1 -1
  82. package/dist/{chunk-NZ3HLDJG.js → chunk-HJ3DOUAL.js} +1 -1
  83. package/dist/{chunk-MFP63IUM.js → chunk-HKNFZUAM.js} +1 -1
  84. package/dist/chunk-HQK6QRXN.js +1 -0
  85. package/dist/chunk-HSTNTHWM.js +1 -0
  86. package/dist/chunk-HT2JVMLK.js +16 -0
  87. package/dist/chunk-HVOYSAB3.js +1 -0
  88. package/dist/{chunk-BPJRQOHO.js → chunk-I4FS7HYY.js} +1 -1
  89. package/dist/{chunk-C4UCOQUP.js → chunk-ICFM55ZS.js} +2 -2
  90. package/dist/{chunk-H6TWXT6Q.js → chunk-IPWU2ALH.js} +1 -1
  91. package/dist/{chunk-MNYKIPG7.js → chunk-IQ4VOPT7.js} +1 -1
  92. package/dist/chunk-ISIPFEFB.js +1 -0
  93. package/dist/chunk-IUUKRTKF.js +5 -0
  94. package/dist/{chunk-F33TYJM5.js → chunk-J4SJHG3M.js} +1 -1
  95. package/dist/{chunk-CTNBSUVU.js → chunk-JA2QZ635.js} +2 -2
  96. package/dist/{chunk-RSGIMVPN.js → chunk-JCOQDVEB.js} +2 -2
  97. package/dist/{chunk-ZMTTZXC4.js → chunk-JCVQB6MX.js} +3 -3
  98. package/dist/{chunk-6IOVTFAH.js → chunk-JF47WERF.js} +1 -1
  99. package/dist/{chunk-NAQ7KT6L.js → chunk-JJ4MYCVU.js} +1 -1
  100. package/dist/chunk-JOEWOCHY.js +5 -0
  101. package/dist/chunk-JSGOBMF6.js +1 -0
  102. package/dist/chunk-JWQBRHVY.js +1 -0
  103. package/dist/{chunk-4SXHXMK6.js → chunk-K5KUOPEF.js} +1 -1
  104. package/dist/chunk-KCHERKZO.js +383 -0
  105. package/dist/chunk-KVZXRZ7U.js +1 -0
  106. package/dist/chunk-KXSUEB4Y.js +1 -0
  107. package/dist/{chunk-KDMJ2BLO.js → chunk-LAHZ6FO5.js} +1 -1
  108. package/dist/chunk-LBBYCPZP.js +18 -0
  109. package/dist/{chunk-AEPBX4GI.js → chunk-LEFAUWKH.js} +1 -1
  110. package/dist/{chunk-MMHTYLTG.js → chunk-LIB64ZJW.js} +1 -1
  111. package/dist/{chunk-4QBJ5JBX.js → chunk-LOKVWZD2.js} +16 -15
  112. package/dist/{chunk-WKRX4FBZ.js → chunk-LRKJSNM3.js} +1 -1
  113. package/dist/chunk-MDMKTILJ.js +1 -0
  114. package/dist/chunk-MEFJND2V.js +4 -0
  115. package/dist/{chunk-BU6LJZG7.js → chunk-MFXBSQDH.js} +1 -1
  116. package/dist/chunk-MIMOKFDI.js +1 -0
  117. package/dist/chunk-MINDMVTH.js +1 -0
  118. package/dist/{chunk-OAEGTH4Q.js → chunk-MZJKZLCC.js} +1 -1
  119. package/dist/{chunk-W6ST525S.js → chunk-N56BJ3F7.js} +1 -1
  120. package/dist/{chunk-SOJHJ4QK.js → chunk-NE32WJR5.js} +1 -1
  121. package/dist/chunk-NGQDG4CJ.js +1 -0
  122. package/dist/{chunk-6QDOCBD4.js → chunk-NHEUJKAO.js} +4 -3
  123. package/dist/{chunk-TUWRPDTE.js → chunk-NSHKVJST.js} +1 -1
  124. package/dist/{chunk-5GUXN2RU.js → chunk-NTFIW3VK.js} +1 -1
  125. package/dist/chunk-NWBAD3AV.js +8 -0
  126. package/dist/chunk-NYNSMHKY.js +15 -0
  127. package/dist/chunk-NZRQKFUB.js +1 -0
  128. package/dist/{chunk-4XE6E4DC.js → chunk-OJ7KRWUH.js} +1 -1
  129. package/dist/{chunk-3CKUOG4B.js → chunk-OKX6PKAW.js} +1 -1
  130. package/dist/chunk-ON3YXHON.js +1 -0
  131. package/dist/chunk-OSA6BKSU.js +1 -0
  132. package/dist/chunk-OUSRNKZG.js +1 -0
  133. package/dist/{chunk-IYFHBTJ2.js → chunk-OVOOQFRY.js} +1 -1
  134. package/dist/chunk-P676C7UT.js +1 -0
  135. package/dist/{chunk-XRWQ7AXY.js → chunk-P6ID3ULA.js} +1 -1
  136. package/dist/chunk-PCKWLJW2.js +1 -0
  137. package/dist/{chunk-PIQI72DV.js → chunk-PTS7J2JO.js} +1 -1
  138. package/dist/chunk-QEEA2KEN.js +2 -0
  139. package/dist/{chunk-J774336K.js → chunk-QEF43PR2.js} +1 -1
  140. package/dist/{chunk-DPMOLROM.js → chunk-QF6EH4HX.js} +5 -5
  141. package/dist/{chunk-LZZAD3FW.js → chunk-QH5R32AA.js} +1 -1
  142. package/dist/chunk-QNR3U4IO.js +1 -0
  143. package/dist/{chunk-GUPUXFIP.js → chunk-QPCDSJ4J.js} +1 -1
  144. package/dist/{chunk-UJSCQJLW.js → chunk-QZDFPNYT.js} +1 -1
  145. package/dist/{chunk-WM3GKSPE.js → chunk-RDCHRPKV.js} +1 -1
  146. package/dist/chunk-RFB7RXTA.js +8 -0
  147. package/dist/{chunk-4JU7N2OF.js → chunk-RFDOSK57.js} +1 -1
  148. package/dist/{chunk-4UD2LW4O.js → chunk-RNXWL6DS.js} +1 -1
  149. package/dist/chunk-RRBI2IRE.js +15 -0
  150. package/dist/chunk-RX27ER4R.js +7 -0
  151. package/dist/chunk-S3IDGHAZ.js +28 -0
  152. package/dist/{chunk-EBBS7VG6.js → chunk-S3J3BYQ3.js} +3 -3
  153. package/dist/chunk-S6YUSGTF.js +3 -0
  154. package/dist/{chunk-6ICRPFG4.js → chunk-SHDGD2WJ.js} +1 -1
  155. package/dist/{chunk-GCJAY2XJ.js → chunk-SKK7CPUY.js} +3 -3
  156. package/dist/{chunk-TTV2GWNE.js → chunk-SMZ74TME.js} +1 -1
  157. package/dist/chunk-STLYSBD5.js +1 -0
  158. package/dist/chunk-T7BUP75N.js +7 -0
  159. package/dist/chunk-TGUAZMI2.js +4 -0
  160. package/dist/{chunk-K5OTE6CX.js → chunk-TH4D7IGZ.js} +1 -1
  161. package/dist/{chunk-AOPEKBDL.js → chunk-U2WUTGPI.js} +1 -1
  162. package/dist/chunk-UJD7OQ3I.js +6 -0
  163. package/dist/{chunk-G7C4LBG2.js → chunk-UVSXPMUN.js} +1 -1
  164. package/dist/chunk-UZTL2UET.js +2368 -0
  165. package/dist/chunk-VEIZLSMG.js +3 -0
  166. package/dist/chunk-VEQDI5AB.js +1 -0
  167. package/dist/chunk-VL3XMULV.js +6 -0
  168. package/dist/{chunk-A2BZY6TE.js → chunk-VPH2AAHJ.js} +1 -1
  169. package/dist/chunk-VWYZCCRE.js +836 -0
  170. package/dist/chunk-VX2CDHRQ.js +1 -0
  171. package/dist/chunk-VXHLE5UQ.js +1 -0
  172. package/dist/{chunk-SYBKHTVU.js → chunk-VY7UGJZK.js} +3 -3
  173. package/dist/{chunk-R4TOHQH3.js → chunk-W6TPRWEE.js} +2 -2
  174. package/dist/chunk-WBTR5JZ6.js +16 -0
  175. package/dist/{chunk-VPOAOUT4.js → chunk-WGBUSO27.js} +1 -1
  176. package/dist/{chunk-DPNZWBT5.js → chunk-WNO2V53C.js} +1 -1
  177. package/dist/{chunk-M2M3I63K.js → chunk-WR2MMFJO.js} +1 -1
  178. package/dist/chunk-WR6KP7RT.js +1 -0
  179. package/dist/chunk-WRVB4JCZ.js +7 -0
  180. package/dist/chunk-X3WFHNF5.js +2 -0
  181. package/dist/chunk-X6Y3HDXN.js +16 -0
  182. package/dist/{chunk-POOKYUTJ.js → chunk-XCXQPV5W.js} +1 -1
  183. package/dist/chunk-XUJURYN5.js +1 -0
  184. package/dist/chunk-XW33ZO7F.js +2 -0
  185. package/dist/{chunk-6QU2BHVL.js → chunk-XY2SSJQD.js} +4 -4
  186. package/dist/{chunk-4UAJ6ULU.js → chunk-YACDI6IK.js} +1 -1
  187. package/dist/{chunk-EJJPVVQ2.js → chunk-YFR53MWF.js} +1 -1
  188. package/dist/{chunk-VVPIXC3W.js → chunk-YQZPL4K3.js} +1 -1
  189. package/dist/chunk-YRHFPXC3.js +1 -0
  190. package/dist/chunk-YS5RZ6D5.js +1 -0
  191. package/dist/chunk-YTJ3EPD3.js +1 -0
  192. package/dist/chunk-Z6VWYOKN.js +4 -0
  193. package/dist/{chunk-ZFA5DIJ3.js → chunk-ZDRQUKLN.js} +1 -1
  194. package/dist/chunk-ZGASBRSQ.js +5 -0
  195. package/dist/chunk-ZQKZC2KN.js +1 -0
  196. package/dist/cli/commands/app/app-logs/sources.js +1 -1
  197. package/dist/cli/commands/app/build.js +1 -1
  198. package/dist/cli/commands/app/bulk/cancel.js +1 -1
  199. package/dist/cli/commands/app/bulk/execute.js +1 -1
  200. package/dist/cli/commands/app/bulk/status.js +1 -1
  201. package/dist/cli/commands/app/config/link.js +1 -1
  202. package/dist/cli/commands/app/config/pull.js +1 -1
  203. package/dist/cli/commands/app/config/use.js +1 -1
  204. package/dist/cli/commands/app/config/validate.js +1 -1
  205. package/dist/cli/commands/app/demo/watcher.js +1 -1
  206. package/dist/cli/commands/app/deploy.js +1 -1
  207. package/dist/cli/commands/app/dev/clean.js +1 -1
  208. package/dist/cli/commands/app/dev.js +1 -1
  209. package/dist/cli/commands/app/env/pull.js +1 -1
  210. package/dist/cli/commands/app/env/show.js +1 -1
  211. package/dist/cli/commands/app/execute.js +1 -1
  212. package/dist/cli/commands/app/function/build.js +1 -1
  213. package/dist/cli/commands/app/function/info.js +1 -1
  214. package/dist/cli/commands/app/function/replay.js +1 -1
  215. package/dist/cli/commands/app/function/run.js +1 -1
  216. package/dist/cli/commands/app/function/schema.js +1 -1
  217. package/dist/cli/commands/app/function/typegen.js +1 -1
  218. package/dist/cli/commands/app/generate/extension.js +1 -1
  219. package/dist/cli/commands/app/graphiql.js +1 -1
  220. package/dist/cli/commands/app/import/channel-config.js +1 -0
  221. package/dist/cli/commands/app/import/custom-data-definitions.js +1 -0
  222. package/dist/cli/commands/app/import/dashboard-extensions.js +1 -0
  223. package/dist/cli/commands/app/import-custom-data-definitions.js +1 -1
  224. package/dist/cli/commands/app/import-extensions.js +1 -1
  225. package/dist/cli/commands/app/info.js +1 -1
  226. package/dist/cli/commands/app/init.js +1 -1
  227. package/dist/cli/commands/app/logs.js +1 -1
  228. package/dist/cli/commands/app/release.js +1 -1
  229. package/dist/cli/commands/app/security/check.js +1 -0
  230. package/dist/cli/commands/app/security/clean.js +1 -0
  231. package/dist/cli/commands/app/security/instructions.js +1 -0
  232. package/dist/cli/commands/app/security/record.js +1 -0
  233. package/dist/cli/commands/app/security/review.js +1 -0
  234. package/dist/cli/commands/app/subscription-migrations/cancel.js +1 -1
  235. package/dist/cli/commands/app/subscription-migrations/list.js +1 -1
  236. package/dist/cli/commands/app/subscription-migrations/schedule.js +1 -1
  237. package/dist/cli/commands/app/subscription-migrations/status.js +1 -1
  238. package/dist/cli/commands/app/subscription-migrations/unschedule.js +1 -1
  239. package/dist/cli/commands/app/versions/list.js +1 -1
  240. package/dist/cli/commands/app/webhook/trigger.js +1 -1
  241. package/dist/cli/commands/auth/login.d.ts +16 -1
  242. package/dist/cli/commands/auth/login.js +1 -1
  243. package/dist/cli/commands/auth/logout.d.ts +16 -1
  244. package/dist/cli/commands/auth/logout.js +1 -1
  245. package/dist/cli/commands/cache/clear.js +1 -1
  246. package/dist/cli/commands/config/autoupgrade/off.d.ts +13 -0
  247. package/dist/cli/commands/config/autoupgrade/off.js +1 -1
  248. package/dist/cli/commands/config/autoupgrade/on.d.ts +13 -0
  249. package/dist/cli/commands/config/autoupgrade/on.js +1 -1
  250. package/dist/cli/commands/config/autoupgrade/status.d.ts +13 -0
  251. package/dist/cli/commands/config/autoupgrade/status.js +1 -1
  252. package/dist/cli/commands/debug/command-flags.js +1 -1
  253. package/dist/cli/commands/doc/fetch.d.ts +2 -0
  254. package/dist/cli/commands/doc/fetch.js +1 -1
  255. package/dist/cli/commands/doc/search.d.ts +1 -0
  256. package/dist/cli/commands/doc/search.js +1 -1
  257. package/dist/cli/commands/docs/generate.js +1 -1
  258. package/dist/cli/commands/doctor-release/doctor-release.js +1 -1
  259. package/dist/cli/commands/doctor-release/theme/index.d.ts +1 -0
  260. package/dist/cli/commands/doctor-release/theme/index.js +1 -1
  261. package/dist/cli/commands/help.d.ts +431 -1
  262. package/dist/cli/commands/help.js +1 -1
  263. package/dist/cli/commands/kitchen-sink/async.js +1 -1
  264. package/dist/cli/commands/kitchen-sink/index.js +1 -1
  265. package/dist/cli/commands/kitchen-sink/prompts.js +1 -1
  266. package/dist/cli/commands/kitchen-sink/static.js +1 -1
  267. package/dist/cli/commands/notifications/generate.js +1 -1
  268. package/dist/cli/commands/notifications/list.js +1 -1
  269. package/dist/cli/commands/organization/list.js +1 -1
  270. package/dist/cli/commands/search.d.ts +11 -1
  271. package/dist/cli/commands/search.js +1 -1
  272. package/dist/cli/commands/send-analytics.js +1 -1
  273. package/dist/cli/commands/theme/check.js +1 -1
  274. package/dist/cli/commands/theme/console.js +1 -1
  275. package/dist/cli/commands/theme/delete.js +1 -1
  276. package/dist/cli/commands/theme/dev.js +1 -1
  277. package/dist/cli/commands/theme/duplicate.js +1 -1
  278. package/dist/cli/commands/theme/info.js +1 -1
  279. package/dist/cli/commands/theme/init.js +1 -1
  280. package/dist/cli/commands/theme/language-server.js +1 -1
  281. package/dist/cli/commands/theme/list.js +1 -1
  282. package/dist/cli/commands/theme/metafields/pull.js +1 -1
  283. package/dist/cli/commands/theme/open.js +1 -1
  284. package/dist/cli/commands/theme/package.js +1 -1
  285. package/dist/cli/commands/theme/preview.js +1 -1
  286. package/dist/cli/commands/theme/profile.js +1 -1
  287. package/dist/cli/commands/theme/publish.js +1 -1
  288. package/dist/cli/commands/theme/pull.js +1 -1
  289. package/dist/cli/commands/theme/push.js +1 -1
  290. package/dist/cli/commands/theme/rename.js +1 -1
  291. package/dist/cli/commands/theme/share.js +1 -1
  292. package/dist/cli/commands/upgrade.js +1 -1
  293. package/dist/cli/commands/version.d.ts +15 -1
  294. package/dist/cli/commands/version.js +1 -1
  295. package/dist/cli/help.d.ts +5 -2
  296. package/dist/cli/help.js +6 -2
  297. package/dist/cli/services/commands/auth/login/types.d.ts +11 -0
  298. package/dist/cli/services/commands/auth/login/types.js +7 -0
  299. package/dist/cli/services/commands/config/autoupgrade/index.d.ts +3 -0
  300. package/dist/cli/services/commands/config/autoupgrade/index.js +9 -0
  301. package/dist/cli/services/commands/config/autoupgrade/result.d.ts +2 -0
  302. package/dist/cli/services/commands/config/autoupgrade/result.js +15 -0
  303. package/dist/cli/services/commands/config/autoupgrade/types.d.ts +10 -0
  304. package/dist/cli/services/commands/config/autoupgrade/types.js +7 -0
  305. package/dist/cli/services/commands/doc/fetch.d.ts +1 -1
  306. package/dist/cli/services/commands/doc/fetch.js +11 -2
  307. package/dist/cli/services/commands/help/index.d.ts +3 -0
  308. package/dist/cli/services/commands/help/index.js +51 -0
  309. package/dist/cli/services/commands/help/result.d.ts +2 -0
  310. package/dist/cli/services/commands/help/result.js +6 -0
  311. package/dist/cli/services/commands/help/types.d.ts +431 -0
  312. package/dist/cli/services/commands/help/types.js +71 -0
  313. package/dist/cli/services/commands/search/index.d.ts +2 -0
  314. package/dist/cli/services/commands/search/index.js +8 -0
  315. package/dist/cli/services/commands/search/result.d.ts +2 -0
  316. package/dist/cli/services/commands/search/result.js +12 -0
  317. package/dist/cli/services/commands/search/types.d.ts +10 -0
  318. package/dist/cli/services/commands/search/types.js +7 -0
  319. package/dist/cli/services/commands/version/index.d.ts +2 -0
  320. package/dist/cli/services/commands/version/index.js +5 -0
  321. package/dist/cli/services/commands/version/result.d.ts +2 -0
  322. package/dist/cli/services/commands/version/result.js +6 -0
  323. package/dist/cli/services/commands/version/types.d.ts +10 -0
  324. package/dist/cli/services/commands/version/types.js +7 -0
  325. package/dist/command-json-schema-SU56F3T4.js +1 -0
  326. package/dist/command-registry.js +1 -1
  327. package/dist/{conf-store-5UUKEHZV.js → conf-store-WDYDHG6V.js} +1 -1
  328. package/dist/custom-oclif-loader-CP4XJAPS.js +1 -0
  329. package/dist/deprecations-CBSMNYL3.js +1 -0
  330. package/dist/dist-HI6AAP5V.js +1 -0
  331. package/dist/dist-W25ND3PJ.js +1 -0
  332. package/dist/environment-ZUTBXY7U.js +1 -0
  333. package/dist/environments-PUH6A5BU.js +1 -0
  334. package/dist/error-LNWX6IWE.js +1 -0
  335. package/dist/error-handler-24QGAUUD.js +1 -0
  336. package/dist/fs-Y33QBYY5.js +1 -0
  337. package/dist/hooks/did-you-mean.js +1 -1
  338. package/dist/hooks/hydrogen-init.js +1 -1
  339. package/dist/hooks/plugin-plugins.js +1 -1
  340. package/dist/hooks/postrun.js +1 -1
  341. package/dist/hooks/prerun.js +1 -1
  342. package/dist/hooks/public-metadata.js +1 -1
  343. package/dist/hooks/sensitive-metadata.js +1 -1
  344. package/dist/hooks/tunnel-provider.js +1 -1
  345. package/dist/hooks/tunnel-start.js +1 -1
  346. package/dist/http-proxy-node16-D3JUYA5D.js +38 -0
  347. package/dist/index.js +13 -14
  348. package/dist/is-global-KY3QE3OZ.js +1 -0
  349. package/dist/json-error-UR2OILQ6.js +1 -0
  350. package/dist/lib-AD2G3QH3.js +1 -0
  351. package/dist/lib-VEVNMHDE.js +1 -0
  352. package/dist/lib-ZQW4E7QU.js +1 -0
  353. package/dist/local-77XQ4CX3.js +1 -0
  354. package/dist/metadata-BC3BGHRY.js +1 -0
  355. package/dist/{morph-BMYYMQNX.js → morph-42EXMN3K.js} +3 -3
  356. package/dist/node-package-manager-6UZUTDCP.js +1 -0
  357. package/dist/notifications-system-4UDT72DQ.js +1 -0
  358. package/dist/os-U3LELTCV.js +1 -0
  359. package/dist/output-GGY66WEM.js +1 -0
  360. package/dist/{path-MBXP7ZIC.js → path-6YMSTSWG.js} +1 -1
  361. package/dist/system-MCWAHFXK.js +1 -0
  362. package/dist/tsconfig.tsbuildinfo +1 -1
  363. package/dist/ui-SYB4LLWY.js +1 -0
  364. package/dist/uncaught-error-handler.d.ts +6 -0
  365. package/dist/uncaught-error-handler.js +33 -0
  366. package/dist/upgrade-V4GCQJBN.js +1 -0
  367. package/dist/version-HQPFW4QN.js +1 -0
  368. package/dist/version-VOSHQCYM.js +1 -0
  369. package/dist/workerd-MEAM3XYI.js +18 -0
  370. package/oclif.manifest.json +2646 -226
  371. package/package.json +17 -8
  372. package/dist/analytics-4D5FCVMV.js +0 -1
  373. package/dist/analytics-XRYJEPWC.js +0 -1
  374. package/dist/chunk-2IZROVCY.js +0 -1
  375. package/dist/chunk-2KD4LHRT.js +0 -5
  376. package/dist/chunk-2SOA4M4G.js +0 -1
  377. package/dist/chunk-2WNF5BX4.js +0 -18
  378. package/dist/chunk-2Z52XJQG.js +0 -1
  379. package/dist/chunk-34PQ6LJC.js +0 -1
  380. package/dist/chunk-3NW372KT.js +0 -1
  381. package/dist/chunk-4JLOCGTK.js +0 -3
  382. package/dist/chunk-4NZ465W4.js +0 -1
  383. package/dist/chunk-5EME57E6.js +0 -7
  384. package/dist/chunk-5N33O2RV.js +0 -1
  385. package/dist/chunk-5PAPCPUM.js +0 -1
  386. package/dist/chunk-5U24BORP.js +0 -6
  387. package/dist/chunk-6ARAJULJ.js +0 -1
  388. package/dist/chunk-7VJPQ52S.js +0 -15
  389. package/dist/chunk-7ZEVVGCH.js +0 -1
  390. package/dist/chunk-A5FV7HOY.js +0 -16
  391. package/dist/chunk-ADS7BFDG.js +0 -15
  392. package/dist/chunk-ADUMJRRY.js +0 -1
  393. package/dist/chunk-AI4SPBPV.js +0 -2
  394. package/dist/chunk-AKETXXYD.js +0 -1
  395. package/dist/chunk-ANOCIVJ3.js +0 -8
  396. package/dist/chunk-BMPCDXJR.js +0 -4
  397. package/dist/chunk-CAKGQWX4.js +0 -7
  398. package/dist/chunk-CBGDD3ZG.js +0 -317
  399. package/dist/chunk-CRALWNNO.js +0 -1
  400. package/dist/chunk-CUGLV7UX.js +0 -1
  401. package/dist/chunk-CWSQIPY5.js +0 -5
  402. package/dist/chunk-D6LV5CJL.js +0 -2
  403. package/dist/chunk-DGMHUJV3.js +0 -4
  404. package/dist/chunk-ENUN2VSC.js +0 -2
  405. package/dist/chunk-EX7Y3BEH.js +0 -1
  406. package/dist/chunk-FDK3NDYQ.js +0 -5
  407. package/dist/chunk-FLV6UQRA.js +0 -1
  408. package/dist/chunk-FTC3BXSD.js +0 -3
  409. package/dist/chunk-FXWNYGIW.js +0 -1
  410. package/dist/chunk-G5272L77.js +0 -7
  411. package/dist/chunk-G5QSVBYP.js +0 -19
  412. package/dist/chunk-G6SURO6V.js +0 -8
  413. package/dist/chunk-GBYDMHZ3.js +0 -3
  414. package/dist/chunk-GCN4O7HM.js +0 -1
  415. package/dist/chunk-GR6NR5QK.js +0 -1
  416. package/dist/chunk-HKHGJYRC.js +0 -1
  417. package/dist/chunk-IKNCFVVX.js +0 -1
  418. package/dist/chunk-IMIPD73V.js +0 -6
  419. package/dist/chunk-IPN5OHBY.js +0 -6
  420. package/dist/chunk-J2HBEHCX.js +0 -9
  421. package/dist/chunk-K3OI5VDE.js +0 -1
  422. package/dist/chunk-KB43BSFM.js +0 -3
  423. package/dist/chunk-KGRDHI2A.js +0 -2
  424. package/dist/chunk-KNCYAIJ2.js +0 -7
  425. package/dist/chunk-KYNXMDFU.js +0 -836
  426. package/dist/chunk-L7CQQML6.js +0 -6
  427. package/dist/chunk-LCVDLQEZ.js +0 -1
  428. package/dist/chunk-NDAUL4H4.js +0 -1
  429. package/dist/chunk-NDFKLPHJ.js +0 -1705
  430. package/dist/chunk-NUKSSKYR.js +0 -1
  431. package/dist/chunk-NVNDQQN6.js +0 -8
  432. package/dist/chunk-O452KNRL.js +0 -1
  433. package/dist/chunk-P5R6JZMT.js +0 -6
  434. package/dist/chunk-PDWJ2YH2.js +0 -1
  435. package/dist/chunk-PSSOCUUD.js +0 -375
  436. package/dist/chunk-PWXGGZQB.js +0 -1
  437. package/dist/chunk-QKUTVLRJ.js +0 -4
  438. package/dist/chunk-QOOVB6RW.js +0 -6
  439. package/dist/chunk-RGJVJ22M.js +0 -3
  440. package/dist/chunk-TIG7SSKB.js +0 -3
  441. package/dist/chunk-TU47HMTL.js +0 -1
  442. package/dist/chunk-UBTHWHPB.js +0 -12
  443. package/dist/chunk-UDWSRNKO.js +0 -1
  444. package/dist/chunk-VE6BYYBP.js +0 -5
  445. package/dist/chunk-W3BNL2Q5.js +0 -1
  446. package/dist/chunk-WDY5CK2T.js +0 -11
  447. package/dist/chunk-WHZKFG2B.js +0 -1
  448. package/dist/chunk-WLU7UG44.js +0 -3
  449. package/dist/chunk-WNBRPWSB.js +0 -1
  450. package/dist/chunk-WWRLFLGM.js +0 -2
  451. package/dist/chunk-XOEBZR5C.js +0 -3
  452. package/dist/chunk-YGSXN3YD.js +0 -28
  453. package/dist/chunk-YN5SVIOI.js +0 -11
  454. package/dist/chunk-YVB7ZPHR.js +0 -20
  455. package/dist/chunk-ZIAXZ5VG.js +0 -1
  456. package/dist/chunk-ZZNGFCJ3.js +0 -4
  457. package/dist/cli/commands/app/doctor/instructions.js +0 -1
  458. package/dist/cli/commands/app/doctor.js +0 -1
  459. package/dist/cli/commands/config/autoupgrade/constants.d.ts +0 -4
  460. package/dist/cli/commands/config/autoupgrade/constants.js +0 -1
  461. package/dist/cli/services/commands/search.d.ts +0 -1
  462. package/dist/cli/services/commands/search.js +0 -7
  463. package/dist/cli/services/commands/version.d.ts +0 -1
  464. package/dist/cli/services/commands/version.js +0 -6
  465. package/dist/custom-oclif-loader-BWAMUFQ4.js +0 -1
  466. package/dist/deprecations-DVGWC3RL.js +0 -1
  467. package/dist/dist-CN7N5IOM.js +0 -1
  468. package/dist/dist-Q5U4WGYG.js +0 -1
  469. package/dist/environments-M4CFP4XF.js +0 -1
  470. package/dist/error-ZES2RSN7.js +0 -1
  471. package/dist/error-handler-CRTU67VJ.js +0 -1
  472. package/dist/fs-GELMKEWX.js +0 -1
  473. package/dist/http-proxy-node16-A6AKKRQH.js +0 -38
  474. package/dist/is-global-X2QNCXXB.js +0 -1
  475. package/dist/lib-2BR2WN7L.js +0 -1
  476. package/dist/lib-M72BVWQ3.js +0 -1
  477. package/dist/lib-P3APEIHY.js +0 -1
  478. package/dist/local-HMFFXIE3.js +0 -1
  479. package/dist/metadata-SXJZZMCI.js +0 -1
  480. package/dist/node-package-manager-2D2CIFTG.js +0 -1
  481. package/dist/notifications-system-WH6MAXEN.js +0 -1
  482. package/dist/os-PY42WAOB.js +0 -1
  483. package/dist/output-MSTNB7GI.js +0 -1
  484. package/dist/system-7XRI63YJ.js +0 -1
  485. package/dist/ui-77QYNWJB.js +0 -1
  486. package/dist/upgrade-UVPNOKKK.js +0 -1
  487. package/dist/version-DXGPL73I.js +0 -1
  488. package/dist/version-XMVQO6PD.js +0 -1
  489. package/dist/workerd-SOWC66FA.js +0 -18
@@ -1,4 +1,4 @@
1
- import{a as U}from"./chunk-AOPEKBDL.js";import{D as H}from"./chunk-CBGDD3ZG.js";import{a as q}from"./chunk-VJEKDBGZ.js";import{b as I}from"./chunk-AI4SPBPV.js";import{a as O,o as D,w as k}from"./chunk-PSSOCUUD.js";import{h as N}from"./chunk-W3BNL2Q5.js";import{Ab as h,Ca as F,Ta as A,Ua as P,bb as y,na as R,wa as g}from"./chunk-G5QSVBYP.js";import{f as S}from"./chunk-2Z52XJQG.js";import{d as x,e as E,g as v,i as C}from"./chunk-773TIA5M.js";import{e as X,g as m}from"./chunk-VKWPEFWQ.js";m();function w(){return process.hrtime()}function M(r){let t=process.hrtime(r);return(t[0]*1e3+t[1]/1e6).toFixed(2)}m();m();var $=X(q(),1),G=200,K=6e4,L=200,Q=500,_=class{currentEvents=[];extensionPaths=[];app;options;onChangeCallback;watcher;debouncedEmit;ignored={};extensionWatchedFiles=new Map;constructor(t,e,s=G){this.app=t,this.options=e,this.debouncedEmit=k(this.emitEvents.bind(this),s,{leading:!0,trailing:!0}),this.updateApp(t)}onChange(t){this.onChangeCallback=t}async start(){let e=[...this.app.configuration.extension_directories??["extensions"]].map(n=>x(this.app.directory,n));await Promise.all(e.map(async n=>{try{await g(n.replace(/\/\*+$/,""))}catch{}}));let s=[this.app.configPath,...e],i=this.getAllWatchedFiles();s.push(...i),this.close();let{default:o}=await import("./chokidar-5RWEYTNQ.js");this.watcher=o.watch(s,{ignored:["**/node_modules/**","**/.git/**"],persistent:!0,ignoreInitial:!0}),this.watcher.on("all",this.handleFileEvent),this.addAbortListener(),h(`File watcher started with ${s.length} paths`,this.options.stdout)}updateApp(t){this.app=t,this.extensionPaths=this.app.nonConfigExtensions.map(e=>E(e.directory)).filter(e=>e!==this.app.directory),this.extensionPaths.forEach(e=>{this.ignored[e]??=this.createIgnoreInstance(e)})}addAbortListener(){this.options.signal.removeEventListener("abort",this.close),this.options.signal.addEventListener("abort",this.close)}getAllWatchedFiles(){this.extensionWatchedFiles.clear();let t=this.app.realExtensions.map(s=>({extension:s,watchedFiles:s.watchedFiles()})),e=new Set;for(let{extension:s,watchedFiles:i}of t)for(let o of i){let n=E(o);e.add(n);let a=this.extensionWatchedFiles.get(n)??new Set;a.add(s.handle),this.extensionWatchedFiles.set(n,a)}return Array.from(e)}emitEvents=()=>{let t=this.currentEvents;this.currentEvents=[];let e=`\u{1F509} ${t.length} EVENTS EMITTED in files: ${t.map(s=>s.path).join(`
1
+ import{a as U}from"./chunk-U2WUTGPI.js";import{K as H}from"./chunk-AKSOCKVF.js";import{a as q}from"./chunk-VJEKDBGZ.js";import{q as I}from"./chunk-WBTR5JZ6.js";import{a as O,o as D,w as k}from"./chunk-KCHERKZO.js";import{i as N}from"./chunk-XUJURYN5.js";import{Aa as g,Ga as F,Nb as h,Xa as A,Ya as P,fb as y,ra as R}from"./chunk-COFGQT76.js";import{g as S}from"./chunk-C4QR7Z4N.js";import{d as x,e as E,g as v,i as C}from"./chunk-3VYOLEQE.js";import{e as X,g as m}from"./chunk-VKWPEFWQ.js";m();function w(){return process.hrtime()}function M(r){let t=process.hrtime(r);return(t[0]*1e3+t[1]/1e6).toFixed(2)}m();m();var $=X(q(),1),G=200,K=6e4,L=200,Q=500,_=class{currentEvents=[];extensionPaths=[];app;options;onChangeCallback;watcher;debouncedEmit;ignored={};extensionWatchedFiles=new Map;constructor(t,e,s=G){this.app=t,this.options=e,this.debouncedEmit=k(this.emitEvents.bind(this),s,{leading:!0,trailing:!0}),this.updateApp(t)}onChange(t){this.onChangeCallback=t}async start(){let e=[...this.app.configuration.extension_directories??["extensions"]].map(n=>x(this.app.directory,n));await Promise.all(e.map(async n=>{try{await g(n.replace(/\/\*+$/,""))}catch{}}));let s=[this.app.configPath,...e],i=this.getAllWatchedFiles();s.push(...i),this.close();let{default:o}=await import("./chokidar-5RWEYTNQ.js");this.watcher=o.watch(s,{ignored:["**/node_modules/**","**/.git/**"],persistent:!0,ignoreInitial:!0}),this.watcher.on("all",this.handleFileEvent),this.addAbortListener(),h(`File watcher started with ${s.length} paths`,this.options.stdout)}updateApp(t){this.app=t,this.extensionPaths=this.app.nonConfigExtensions.map(e=>E(e.directory)).filter(e=>e!==this.app.directory),this.extensionPaths.forEach(e=>{this.ignored[e]??=this.createIgnoreInstance(e)})}addAbortListener(){this.options.signal.removeEventListener("abort",this.close),this.options.signal.addEventListener("abort",this.close)}getAllWatchedFiles(){this.extensionWatchedFiles.clear();let t=this.app.realExtensions.map(s=>({extension:s,watchedFiles:s.watchedFiles()})),e=new Set;for(let{extension:s,watchedFiles:i}of t)for(let o of i){let n=E(o);e.add(n);let a=this.extensionWatchedFiles.get(n)??new Set;a.add(s.handle),this.extensionWatchedFiles.set(n,a)}return Array.from(e)}emitEvents=()=>{let t=this.currentEvents;this.currentEvents=[];let e=`\u{1F509} ${t.length} EVENTS EMITTED in files: ${t.map(s=>s.path).join(`
2
2
  `)}`;h(e,this.options.stdout),this.onChangeCallback?.(t)};pushEvent(t){this.shouldIgnoreEvent(t)||(t.type==="extension_folder_created"&&(this.ignored[t.path]=this.createIgnoreInstance(t.path)),!this.currentEvents.some(e=>e.path===t.path&&e.type===t.type&&e.extensionHandle===t.extensionHandle)&&this.currentEvents.push(t))}shouldIgnoreEvent(t){if(t.type==="extension_folder_deleted"||t.type==="extension_folder_created"||t.extensionHandle&&this.extensionWatchedFiles.get(E(t.path))?.has(t.extensionHandle))return!1;let s=(t.extensionHandle?this.app.realExtensions.find(o=>o.handle===t.extensionHandle):void 0)?.watchedFiles(),i=this.ignored[t.extensionPath];if(s)return!s.some(n=>y(t.path,n));if(i){let o=v(t.extensionPath,t.path);return i.ignores(o)}return!1}handleFileEvent=(t,e)=>{let s=w(),i=E(e),o=e===this.app.configPath,n=e.endsWith(".extension.toml");if(h(`\u{1F300}: ${t} ${e.replace(this.app.directory,"")}
3
3
  `),o)this.handleEventForExtension(t,e,this.app.directory,s,!1);else{let a=this.extensionWatchedFiles.get(i),d=a===void 0||a.size===0;if(d&&t==="add"&&!n){let c=this.discoverFileOwners(i);c.size>0&&(this.extensionWatchedFiles.set(i,c),a=c,d=!1)}if(d&&!n&&!o){h(`\u{1F300}: File ${e} is not watched by any extension`,this.options.stdout);return}for(let c of a??[]){let l=this.app.realExtensions.find(f=>f.handle===c),u=l?E(l.directory):this.app.directory;this.handleEventForExtension(t,e,u,s,!1,c)}d&&this.handleEventForExtension(t,e,this.app.directory,s,!0)}this.debouncedEmit()};discoverFileOwners(t){let e=new Set;for(let s of this.app.realExtensions){let i=E(s.directory);i!==this.app.directory&&t.startsWith(`${i}/`)&&this.pathMatchesWatchPatterns(t,s)&&e.add(s.handle)}return e}pathMatchesWatchPatterns(t,e){let{paths:s,ignore:i}=e.watchPatterns(),o=v(E(e.directory),t);return i.some(n=>y(o,n))?!1:s.some(n=>y(o,n))}handleEventForExtension(t,e,s,i,o,n){let a=e.endsWith(".extension.toml"),d=e===this.app.configPath;switch(t){case"change":if(o)break;a||d?this.pushEvent({type:"extensions_config_updated",path:e,extensionPath:s,extensionHandle:n,startTime:i}):this.pushEvent({type:"file_updated",path:e,extensionPath:s,extensionHandle:n,startTime:i});break;case"add":if(!a){this.pushEvent({type:"file_created",path:e,extensionPath:s,extensionHandle:n,startTime:i});break}let c=0,l=C(e),u=setInterval(()=>{P(x(l,I.lockFile))?(h(`Waiting for extension to complete creation: ${e}
4
4
  `),c+=L):(clearInterval(u),this.extensionPaths.push(l),this.pushEvent({type:"extension_folder_created",path:l,extensionPath:s,startTime:i}),this.debouncedEmit()),c>=K&&(clearInterval(u),this.options.stderr.write(`Error loading new extension at path: ${e}.
@@ -0,0 +1 @@
1
+ import{s as r,t as a}from"./chunk-QF6EH4HX.js";import{y as p}from"./chunk-KCHERKZO.js";import{a as u}from"./chunk-IUUKRTKF.js";import{Ib as n,b as o}from"./chunk-COFGQT76.js";import{g as e}from"./chunk-VKWPEFWQ.js";e();function l(){return{enabled:r()}}function f(t){return a(t),{enabled:t}}e();var d=u({name:"AutoUpgradeResult",schema:o.object({enabled:o.boolean()}).strict()});e();function S(t,m){if(m==="json"){n(d.encode({enabled:t.enabled}));return}p({body:t.enabled?"Auto-upgrade on. Shopify CLI will update automatically after each command.":"Auto-upgrade off. You'll need to run `shopify upgrade` to update manually."})}export{l as a,f as b,d as c,S as d};
@@ -1 +1 @@
1
- import{a as u}from"./chunk-PIQI72DV.js";import{g as d}from"./chunk-VKWPEFWQ.js";d();var m=!1;function v(){return m}function y(){let t=0,e=!1,i=setInterval(()=>{if(!e){if(v()||t>=12e4){e=!0,clearInterval(i),u(process.pid,"SIGINT",!1,()=>{process.exit(0)});return}t+=100}},100)}var k=async({config:a,Command:o})=>{await I(o);let t=await import("./metadata-SXJZZMCI.js"),{commandStartOptions:e}=t.getAllSensitiveMetadata();e&&await t.addSensitiveMetadata(()=>({commandStartOptions:{...e,endTime:new Date().getTime()}}));let{postrun:i}=await import("./deprecations-DVGWC3RL.js");i(o);let{outputDebug:n}=await import("./output-MSTNB7GI.js"),r=o.id.replace(/:/g," ");n(`Completed command ${r}`),!r.includes("notifications")&&!r.includes("upgrade")&&!r.includes("send-analytics")&&await M();let{reportAnalyticsEvent:c}=await import("./analytics-XRYJEPWC.js");await c({config:a,exitMode:"ok"}),m=!0};async function M(){let{versionToAutoUpgrade:a,warnIfUpgradeAvailable:o}=await import("./upgrade-UVPNOKKK.js"),t=a();if(!t){await o();return}if(process.env.SHOPIFY_CLI_FORCE_AUTO_UPGRADE==="1")await l(t);else{let{runAtMinimumInterval:i}=await import("./conf-store-5UUKEHZV.js");await i("auto-upgrade",{days:1},async()=>{await l(t)})}}async function l(a){let[{CLI_KIT_VERSION:o},{isMajorVersionChange:t},{outputWarn:e,outputDebug:i},{getOutputUpdateCLIReminder:n,runCLIUpgrade:r,hasBlockingAutoUpgradeNotification:c},s]=await Promise.all([import("./version-DXGPL73I.js"),import("./version-XMVQO6PD.js"),import("./output-MSTNB7GI.js"),import("./upgrade-UVPNOKKK.js"),import("./metadata-SXJZZMCI.js")]);if(t(o,a)){e(n(a,!0)),await s.addPublicMetadata(()=>({env_auto_upgrade_skipped_reason:"major_version"}));return}if(await c()){await s.addPublicMetadata(()=>({env_auto_upgrade_skipped_reason:"blocked_by_notification"}));return}try{await r({autoupgrade:!0}),await s.addPublicMetadata(()=>({env_auto_upgrade_success:!0}))}catch(f){let p=`Auto-upgrade failed: ${f}`;i(p),e(n(a)),await s.addPublicMetadata(()=>({env_auto_upgrade_success:!1}));let[{sendErrorToBugsnag:g},{inferPackageManagerForGlobalCLI:w}]=await Promise.all([import("./error-handler-CRTU67VJ.js"),import("./is-global-X2QNCXXB.js")]),_=Object.assign(new Error(p),{packageManager:w(),platform:process.platform,cliVersion:o});await g(_,"expected_error")}}async function I(a){let o=new Date().getTime();if(a&&"analyticsStopCommand"in a&&typeof a.analyticsStopCommand=="function"){let t=a.analyticsStopCommand();if(t){let e=await import("./metadata-SXJZZMCI.js"),{commandStartOptions:i}=e.getAllSensitiveMetadata();if(!i)return;await e.addSensitiveMetadata(()=>({commandStartOptions:{...i,startTime:o,startCommand:t}}))}}}export{y as a,k as b};
1
+ import{a as u}from"./chunk-PTS7J2JO.js";import{g as d}from"./chunk-VKWPEFWQ.js";d();var m=!1;function v(){return m}function y(){let t=0,e=!1,i=setInterval(()=>{if(!e){if(v()||t>=12e4){e=!0,clearInterval(i),u(process.pid,"SIGINT",!1,()=>{process.exit(0)});return}t+=100}},100)}var k=async({config:a,Command:o})=>{await I(o);let t=await import("./metadata-BC3BGHRY.js"),{commandStartOptions:e}=t.getAllSensitiveMetadata();e&&await t.addSensitiveMetadata(()=>({commandStartOptions:{...e,endTime:new Date().getTime()}}));let{postrun:i}=await import("./deprecations-CBSMNYL3.js");i(o);let{outputDebug:n}=await import("./output-GGY66WEM.js"),r=o.id.replace(/:/g," ");n(`Completed command ${r}`),!r.includes("notifications")&&!r.includes("upgrade")&&!r.includes("send-analytics")&&await M();let{reportAnalyticsEvent:c}=await import("./analytics-TVCGKQGZ.js");await c({config:a,exitMode:"ok"}),m=!0};async function M(){let{versionToAutoUpgrade:a,warnIfUpgradeAvailable:o}=await import("./upgrade-V4GCQJBN.js"),t=a();if(!t){await o();return}if(process.env.SHOPIFY_CLI_FORCE_AUTO_UPGRADE==="1")await l(t);else{let{runAtMinimumInterval:i}=await import("./conf-store-WDYDHG6V.js");await i("auto-upgrade",{days:1},async()=>{await l(t)})}}async function l(a){let[{CLI_KIT_VERSION:o},{isMajorVersionChange:t},{outputWarn:e,outputDebug:i},{getOutputUpdateCLIReminder:n,runCLIUpgrade:r,hasBlockingAutoUpgradeNotification:c},s]=await Promise.all([import("./version-HQPFW4QN.js"),import("./version-VOSHQCYM.js"),import("./output-GGY66WEM.js"),import("./upgrade-V4GCQJBN.js"),import("./metadata-BC3BGHRY.js")]);if(t(o,a)){e(n(a,!0)),await s.addPublicMetadata(()=>({env_auto_upgrade_skipped_reason:"major_version"}));return}if(await c()){await s.addPublicMetadata(()=>({env_auto_upgrade_skipped_reason:"blocked_by_notification"}));return}try{await r({autoupgrade:!0}),await s.addPublicMetadata(()=>({env_auto_upgrade_success:!0}))}catch(f){let p=`Auto-upgrade failed: ${f}`;i(p),e(n(a)),await s.addPublicMetadata(()=>({env_auto_upgrade_success:!1}));let[{sendErrorToBugsnag:g},{inferPackageManagerForGlobalCLI:w}]=await Promise.all([import("./error-handler-24QGAUUD.js"),import("./is-global-KY3QE3OZ.js")]),_=Object.assign(new Error(p),{packageManager:w(),platform:process.platform,cliVersion:o});await g(_,"expected_error")}}async function I(a){let o=new Date().getTime();if(a&&"analyticsStopCommand"in a&&typeof a.analyticsStopCommand=="function"){let t=a.analyticsStopCommand();if(t){let e=await import("./metadata-BC3BGHRY.js"),{commandStartOptions:i}=e.getAllSensitiveMetadata();if(!i)return;await e.addSensitiveMetadata(()=>({commandStartOptions:{...i,startTime:o,startCommand:t}}))}}}export{y as a,k as b};
@@ -1,4 +1,4 @@
1
- import{c as ge}from"./chunk-HGFCNPSN.js";import{a as he,c as ye}from"./chunk-MVJSQT7V.js";import{b as ue}from"./chunk-WKTIQUQP.js";import{a as Te}from"./chunk-34PQ6LJC.js";import{C as ve,K as Pe,M as Ae,O as ke,Y as xe,_ as Ce,h as we,ta as Fe,wa as Le}from"./chunk-CBGDD3ZG.js";import{E as Re,z as Ie}from"./chunk-ADS7BFDG.js";import{l as be}from"./chunk-AI4SPBPV.js";import{b as fe,f as de}from"./chunk-2IZROVCY.js";import{B as ie,D as re,E as oe,f as C,g as ee,i as te,p as ae}from"./chunk-5GUXN2RU.js";import{D as $,H as ce,y as le,z as pe}from"./chunk-PSSOCUUD.js";import{c as ne}from"./chunk-K5OTE6CX.js";import{a as z}from"./chunk-UDWSRNKO.js";import{e as Q}from"./chunk-DPMOLROM.js";import{d as se}from"./chunk-M2M3I63K.js";import{h as m}from"./chunk-W3BNL2Q5.js";import{a as He}from"./chunk-CTNBSUVU.js";import{$a as Z,Ca as I,Ja as V,Oa as K,Ta as R,Ua as x,Va as B,Wa as W,_ as H,hb as X,ib as J,ka as q,ma as O,qb as h,rb as F,sa as T,sb as b,ua as _,wa as Y}from"./chunk-G5QSVBYP.js";import{e as me}from"./chunk-2Z52XJQG.js";import{d as l,e as k,f as M,p as U,q as D}from"./chunk-773TIA5M.js";import{e as De,g as c}from"./chunk-VKWPEFWQ.js";c();c();var y={reactRouter:{url:"https://github.com/Shopify/shopify-app-template-react-router",label:"Build a React Router app (recommended)",visible:!0,branches:{prompt:"For your React Router template, which language do you want?",options:{javascript:{branch:"javascript-cli",label:"JavaScript"},typescript:{branch:"main-cli",label:"TypeScript"}}}},remix:{url:"https://github.com/Shopify/shopify-app-template-remix",label:"Build a Remix app",visible:!1,branches:{prompt:"For your Remix template, which language do you want?",options:{javascript:{branch:"javascript",label:"JavaScript"},typescript:{branch:"main",label:"TypeScript"}}}},none:{url:"https://github.com/Shopify/shopify-app-template-extension-only",label:"Build an extension-only app",visible:!0},node:{url:"https://github.com/Shopify/shopify-app-template-node",visible:!1},ruby:{url:"https://github.com/Shopify/shopify-app-template-ruby",visible:!1}},S=Object.keys(y),L=S.filter(e=>y[e].visible),qe=["reactRouter","none"],Oe=async e=>{let t=e.template,a=e.flavor,r={template:y.reactRouter.url};t??=await $({choices:qe.map(o=>({label:y[o].label||o,value:o})),message:"Get started building your app:",defaultValue:S.find(o=>y[o].url===r.template)});let i={...e,template:t,templateType:P(t)?t:"custom",globalCLIResult:{install:!1,alreadyInstalled:!1}},n,s;if(i.templateType!=="custom"){let o=y[i.templateType];n=o.url,o.branches&&(a?s=o.branches.options[a]?.branch:s=await $({message:o.branches.prompt||"Choose a flavor:",choices:Object.entries(o.branches.options).map(([f,u])=>({value:u.branch,label:u.label}))}))}return s&&(n=`${n}#${s}`),i.template=n||i.template||r.template,i.globalCLIResult=await J(),i},_e=Oe;function P(e){return S.includes(e)}function $e(e){return e!==void 0&&P(e)&&y[e].branches!==void 0}c();c();import{platform as Ye}from"os";async function Se({packageJSON:e,local:t,useGlobalCLI:a}){if(e.dependencies=e.dependencies??{},a?delete e.dependencies["@shopify/cli"]:e.dependencies["@shopify/cli"]=z,delete e.dependencies["@shopify/app"],t){let r=await Ve("cli");e.dependencies["@shopify/cli"]=r;let i={"@shopify/cli":r};e.overrides=e.overrides?{...e.overrides,...i}:i,e.resolutions=e.resolutions?{...e.resolutions,...i}:i}return e}async function Ve(e){return`file:${await Z(`packages/${e}`,{type:"directory",cwd:U(import.meta.url)})}`}async function Ge({from:e,packageManager:t}){let a=Ye()==="win32"&&t==="yarn"?["--network-concurrency","1"]:[];return ae({directory:k(e),packageManager:t,args:a})}c();async function G(e,t){let r=(await W([l(e,"**",".git"),l(e,"**",".github"),l(e,"**",".gitmodules"),l(e,"**",".cli-liquid-bypass"),l(e,"LICENSE*"),l(e,"**","frontend/LICENSE*"),l(e,"package.json.cli2")],{dot:!0,onlyFiles:!1,onlyDirectories:!1,ignore:["**/node_modules/**"]})).map(s=>I(s,{force:!0})),i=new Set(ee[t]),n=C.filter(s=>!i.has(s)).map(s=>{let o=l(e,s);if(x(o))return V(o)});return Promise.all([...r,...n])}async function Ke(e){let t=e.packageManager,a=H(e.name),r=l(e.directory,a),i=ge(e.template);await Ee(r,a),await Be(r),le({body:["Initializing project with",{command:t},`
1
+ import{c as ge}from"./chunk-3GVSG4S6.js";import{a as he,c as ye}from"./chunk-5I5HKOQU.js";import{b as ue}from"./chunk-254XYKPN.js";import{a as Te}from"./chunk-MINDMVTH.js";import{Da as Fe,Ha as Le,J as ve,R as Pe,T as Ae,V as ke,da as xe,ga as Ce,h as we}from"./chunk-AKSOCKVF.js";import{A as be,ma as Ie,ra as Re}from"./chunk-WBTR5JZ6.js";import{b as fe,f as de}from"./chunk-2KBTFKSM.js";import{B as ie,D as re,E as oe,f as C,g as ee,i as te,p as ae}from"./chunk-NTFIW3VK.js";import{e as Q}from"./chunk-QF6EH4HX.js";import{a as z}from"./chunk-32B4LIKH.js";import{D as $,H as ce,y as le,z as pe}from"./chunk-KCHERKZO.js";import{c as ne}from"./chunk-TH4D7IGZ.js";import{d as se}from"./chunk-WR2MMFJO.js";import{i as m}from"./chunk-XUJURYN5.js";import{Aa as Y,Cb as h,Db as F,Eb as b,Ga as I,Na as V,Sa as K,Xa as R,Ya as x,Za as B,_a as W,ca as H,db as Z,oa as q,qa as O,ub as X,vb as J,wa as T,ya as _}from"./chunk-COFGQT76.js";import{f as me}from"./chunk-C4QR7Z4N.js";import{b as He}from"./chunk-JA2QZ635.js";import{d as l,e as k,f as M,p as U,q as D}from"./chunk-3VYOLEQE.js";import{e as De,g as c}from"./chunk-VKWPEFWQ.js";c();c();var y={reactRouter:{url:"https://github.com/Shopify/shopify-app-template-react-router",label:"Build a React Router app (recommended)",visible:!0,branches:{prompt:"For your React Router template, which language do you want?",options:{javascript:{branch:"javascript-cli",label:"JavaScript"},typescript:{branch:"main-cli",label:"TypeScript"}}}},remix:{url:"https://github.com/Shopify/shopify-app-template-remix",label:"Build a Remix app",visible:!1,branches:{prompt:"For your Remix template, which language do you want?",options:{javascript:{branch:"javascript",label:"JavaScript"},typescript:{branch:"main",label:"TypeScript"}}}},none:{url:"https://github.com/Shopify/shopify-app-template-extension-only",label:"Build an extension-only app",visible:!0},node:{url:"https://github.com/Shopify/shopify-app-template-node",visible:!1},ruby:{url:"https://github.com/Shopify/shopify-app-template-ruby",visible:!1}},S=Object.keys(y),L=S.filter(e=>y[e].visible),qe=["reactRouter","none"],Oe=async e=>{let t=e.template,a=e.flavor,r={template:y.reactRouter.url};t??=await $({choices:qe.map(o=>({label:y[o].label||o,value:o})),message:"Get started building your app:",defaultValue:S.find(o=>y[o].url===r.template)});let i={...e,template:t,templateType:P(t)?t:"custom",globalCLIResult:{install:!1,alreadyInstalled:!1}},n,s;if(i.templateType!=="custom"){let o=y[i.templateType];n=o.url,o.branches&&(a?s=o.branches.options[a]?.branch:s=await $({message:o.branches.prompt||"Choose a flavor:",choices:Object.entries(o.branches.options).map(([f,u])=>({value:u.branch,label:u.label}))}))}return s&&(n=`${n}#${s}`),i.template=n||i.template||r.template,i.globalCLIResult=await J(),i},_e=Oe;function P(e){return S.includes(e)}function $e(e){return e!==void 0&&P(e)&&y[e].branches!==void 0}c();c();import{platform as Ye}from"os";async function Se({packageJSON:e,local:t,useGlobalCLI:a}){if(e.dependencies=e.dependencies??{},a?delete e.dependencies["@shopify/cli"]:e.dependencies["@shopify/cli"]=z,delete e.dependencies["@shopify/app"],t){let r=await Ve("cli");e.dependencies["@shopify/cli"]=r;let i={"@shopify/cli":r};e.overrides=e.overrides?{...e.overrides,...i}:i,e.resolutions=e.resolutions?{...e.resolutions,...i}:i}return e}async function Ve(e){return`file:${await Z(`packages/${e}`,{type:"directory",cwd:U(import.meta.url)})}`}async function Ge({from:e,packageManager:t}){let a=Ye()==="win32"&&t==="yarn"?["--network-concurrency","1"]:[];return ae({directory:k(e),packageManager:t,args:a})}c();async function G(e,t){let r=(await W([l(e,"**",".git"),l(e,"**",".github"),l(e,"**",".gitmodules"),l(e,"**",".cli-liquid-bypass"),l(e,"LICENSE*"),l(e,"**","frontend/LICENSE*"),l(e,"package.json.cli2")],{dot:!0,onlyFiles:!1,onlyDirectories:!1,ignore:["**/node_modules/**"]})).map(s=>I(s,{force:!0})),i=new Set(ee[t]),n=C.filter(s=>!i.has(s)).map(s=>{let o=l(e,s);if(x(o))return V(o)});return Promise.all([...r,...n])}async function Ke(e){let t=e.packageManager,a=H(e.name),r=l(e.directory,a),i=ge(e.template);await Ee(r,a),await Be(r),le({body:["Initializing project with",{command:t},`
2
2
  Use the`,{command:"--package-manager"},"flag to select a different package manager."]}),await q(async o=>{let f=l(o,"download"),u=i.filePath?l(f,i.filePath):f,d=l(o,"app"),A=i.branch?`${i.baseURL}#${i.branch}`:i.baseURL;await Y(f);let w=[{title:`Downloading template from ${A}`,task:async()=>{await ye({repoUrl:A,destination:f,shallow:!0})}}];w.push({title:"Parsing liquid",task:async()=>{await ue(u,d,{dependency_manager:t,app_name:e.name})}},{title:"Updating package.json",task:async()=>{let p=(await ie(d)).content;p.name=a,p.author=await ne()??"",p.private=!0;let v=["extensions/*"].concat(We(d));switch(t){case"npm":case"yarn":case"bun":p.workspaces=v;break;case"pnpm":{await Ze(d,v),await T(l(d,".npmrc"),`auto-install-peers=true
3
3
  `);break}case"homebrew":case"unknown":throw new te}await Se({packageJSON:p,local:e.local,directory:d,useGlobalCLI:e.useGlobalCLI}),await re(d,p)}}),e.postCloneActions.removeLockfilesFromGitignore&&w.push({title:"Removing lockfiles from .gitignore",task:async()=>{let p=l(d,".gitignore");if(await R(p)){let v=await O(p);C.forEach(Me=>{let Ue=new RegExp(`^${Me.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}$`,"gm");v=v.replace(Ue,"")}),await _(p,v.trim())}}}),await me()&&w.push({title:"[Shopifolks-only] Configuring the project's NPM registry",task:async()=>{let p=l(d,".npmrc");await T(p,`@shopify:registry=https://registry.npmjs.org
4
4
  `)}});let N=!1;w.push({title:"Preparing project directory",task:async()=>{await Ee(r,a),N=!0,await K(d,r)}}),w.push({title:`Installing dependencies with ${t}`,task:async()=>{await Ge({from:r,packageManager:t})}},{title:"Cleaning up",task:async()=>{await G(r,t)}},{title:"Initializing a Git repository...",task:async()=>{await he(r)}});try{await ce(w)}catch(p){throw N&&await I(r).catch(()=>{}),p}});let n;if(e.selectedAppOrNameResult.result==="new"){let o=await ve(r,e.name),f=e.selectedAppOrNameResult.org;n=await e.developerPlatformClient.createApp(f,o)}else n=e.selectedAppOrNameResult.app;await Fe({directory:r,apiKey:n.apiKey,appId:n.id,organizationId:n.organizationId,configName:"shopify.app.toml",developerPlatformClient:e.developerPlatformClient,isNewApp:!0},!1);let s=await Le({directory:r,clientId:void 0,forceRelink:!1,userProvidedConfigName:void 0});return pe({headline:[{userInput:a},"is ready for you to build!"],nextSteps:[["Run",{command:`cd ${a}`}],["For extensions, run",{command:F(t,"shopify app generate extension")}],["To see your app, run",{command:F(t,"shopify app dev")}]],reference:[{link:{label:"Shopify docs",url:"https://shopify.dev"}},[{link:{label:"Shopify Dev MCP,",url:"https://shopify.dev/docs/apps/build/devmcp"}},"connect your AI assistant to development resources"],["For an overview of commands, run",{command:F(t,"shopify app","--help")}]]}),{app:s.app}}async function Ee(e,t){if(await R(e))throw new m(`
@@ -1 +1 @@
1
- import{c as u}from"./chunk-WWRLFLGM.js";import{A as c}from"./chunk-PSSOCUUD.js";import{e as s}from"./chunk-M2M3I63K.js";import{$a as d}from"./chunk-G5QSVBYP.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{d as u}from"./chunk-LOKVWZD2.js";import{A as c}from"./chunk-KCHERKZO.js";import{e as s}from"./chunk-WR2MMFJO.js";import{db as d}from"./chunk-COFGQT76.js";import{q as m}from"./chunk-3VYOLEQE.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};
@@ -0,0 +1,8 @@
1
+ import{c as J}from"./chunk-5I5HKOQU.js";import{b as k}from"./chunk-254XYKPN.js";import{a as re}from"./chunk-U2WUTGPI.js";import{a as ae}from"./chunk-MINDMVTH.js";import{a as z}from"./chunk-RFDOSK57.js";import{Ha as ne,I as ee,K as te,d as Q,e as Z}from"./chunk-AKSOCKVF.js";import{q as F,s as X,t as K}from"./chunk-WBTR5JZ6.js";import{a as T}from"./chunk-7AD5YCLL.js";import{b as H,f as I}from"./chunk-2KBTFKSM.js";import{C as $,p as b,x as G,y as _}from"./chunk-NTFIW3VK.js";import{A as q,D as Y,F as V,H as O,J as W,z as U}from"./chunk-KCHERKZO.js";import{e as E}from"./chunk-YTJ3EPD3.js";import{i as u}from"./chunk-XUJURYN5.js";import{$ as f,Aa as w,Ca as v,Db as P,Sa as D,Xa as h,Ya as j,_a as L,ca as S,oa as g,ua as N}from"./chunk-COFGQT76.js";import{f as B}from"./chunk-C4QR7Z4N.js";import{b as ge}from"./chunk-JA2QZ635.js";import{d as p,n as R}from"./chunk-3VYOLEQE.js";import{e as xe,g as d}from"./chunk-VKWPEFWQ.js";d();d();d();async function ie(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 oe(e,t){let r=e?.path??"",n=p(t,r);if(!await h(n))throw new u(`
2
+ The extension is not available for ${e?.value}`);return n}async function se({name:e,app:t}){let r=S(e),n=p(t.directory,K.extensions.directoryName,r);if(await h(n))throw new u(`
3
+ A directory with this name (${r}) already exists.
4
+ Choose a new name for your extension.`);return await w(n),await N(p(n,F.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 ce(e){let t=e.extensionChoices.name,r=e.extensionChoices.flavor,n=e.extensionTemplate.supportedFlavors.find(o=>o.value===r),a=await se({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:R(a),extensionTemplate:e.extensionTemplate}}async function we(e){try{switch(e.type){case"theme":await Pe(e);break;case"function":await ke(e);break;default:await Fe(e);break}let t=p(e.directory,F.lockFile);await v(t)}catch(t){throw await ve(e.directory),e.project.packageManager==="pnpm"&&Ee(t)?new u("Your extension couldn't be generated because pnpm blocked the build scripts of some of its dependencies.",null,[["Run",{command:"pnpm approve-builds"},"in your app directory to approve the build scripts."],["Run",{command:P(e.project.packageManager,"shopify app generate extension")},"again."]]):t}}async function ve(e){try{await v(e,{maxRetries:10,retryDelay:100})}catch{q({headline:["Couldn't remove",{filePath:e},{char:"."}],body:"Delete this directory manually before generating an extension with the same name."})}}function Ee(e){return e instanceof Error&&e.message.includes("ERR_PNPM_IGNORED_BUILDS")}async function Pe({directory:e,url:t,type:r,name:n,extensionFlavor:a,onGetTemplateRepository:i}){return g(async s=>{let o=await M(t,a,s,i);await k(o,e,{name:n,type:r,uid:E(f(n))})})}async function ke({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 m=await M(t,i,l,s);await k(m,e,{name:a,handle:f(a),flavor:i?.value,uid:E(f(a))})}),o==="javascript"){let l=le(i?.value??"rust");await pe(e,l,"!(*.graphql)")}}}),o==="javascript"&&c.push({title:"Installing additional dependencies",task:async()=>{n.usesWorkspaces&&await b({packageManager:n.packageManager,directory:n.directory});let l=Te(o);await _(l,{packageManager:n.packageManager,type:"prod",directory:n.usesWorkspaces?e:n.directory})}}),o==="javascript"&&c.push({title:"Building GraphQL types",task:async()=>{await Z({directory:e,isJavaScript:!0},{stdout:process.stdout,stderr:process.stderr,app:r})}}),await O(c)}async function Fe({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=le(i?.value??"vanilla-js");await g(async m=>{let y=await M(t,i,m,s);await k(y,e,{srcFileExtension:l,name:a,handle:f(a),flavor:i?.value??"",uid:E(f(a))})}),o==="javascript"&&await pe(e,l)}},{title:"Installing dependencies",task:async()=>{let l=n.packageManager;if(n.usesWorkspaces)A(i?.value)==="javascript"&&await b({packageManager:l,directory:n.directory});else{await be(n.directory,i?.value);let m=p(e,"package.json"),y=await _e(m);await _(y,{packageManager:l,type:"prod",directory:n.directory}),await v(m)}}}];c.push({title:"Update shared type definition",task:async()=>{await te(r)}}),await O(c)}function le(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 Te(e){let t=[];return e==="javascript"&&t.push({name:"@shopify/shopify_function",version:`~${Q}.0.0`}),t}async function pe(e,t,r="*"){let n=await L(p(e,"src",r)),a=[];for(let i of n)a.push(D(i,`${i}.${t}`));await Promise.all(a)}async function be(e,t){t==="typescript-react"&&await $(e,{"@types/react":X.reactTypes})}async function _e(e){if(!await h(e))return[];let t=await G(e);return Object.entries(t?.dependencies??{}).map(([r,n])=>({name:r,version:n}))}async function M(e,t,r,n){let a=p(r,"download");return await w(a),await n(e,a),oe(t,a)}d();function Oe(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 Ie=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 u("You have reached the limit for the number of extensions you can create.");r=await V({message:"Type of extension?",choices:Oe(t,e.unavailableExtensions),groupOrder:e.groupOrder})}let a=t.find(c=>c.identifier===r),i=e.name||await de(e.directory,a.defaultName),s=e.extensionFlavor??await Ae(a);return{extensionTemplate:a,extensionContent:{name:i,flavor:s}}};async function de(e,t,r=1){let n=t.includes(" ")?" ":"-",a=r<=1?t:`${t}${n}${r}`,i=p(e,f(a));return j(i)?de(e,t,r+1):W({message:"Name your extension:",defaultValue:a})}async function Ae(e){if(e.supportedFlavors.length!==0)return e.supportedFlavors.length===1&&e.supportedFlavors[0]?e.supportedFlavors[0].value:Y({message:"What would you like to work in?",choices:e.supportedFlavors.map(t=>({label:t.name,value:t.value})),defaultValue:"react"})}var ue=Ie;async function Me(e){let{app:t,developerPlatformClient:r,remoteApp:n,specifications:a,template:i}=e,s=a.map(he=>he.identifier),{templates:o,groupOrder:c}=await ie(r,n,s,{requestedTemplate:i}),l=await Ce(o,c,a,t,e),m=await ue(l);await Se(m,i);let y=Ne(m,t,e,r),ye=await ce(y);De(ye,e.project.packageManager)}async function Ce(e,t,r,n,a){let i=await Ge(a.template,n,e,r);je(i,a.flavor);let{validTemplates:s,templatesOverlimit:o}=Re(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 Re(e,t,r){return re(e,a=>!me(r,t,a)?"validTemplates":"templatesOverlimit")}function me(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 Se(e,t){let{extensionContent:r}=e;return T.addPublicMetadata(()=>({cmd_scaffold_template_flavor:r.flavor,cmd_scaffold_type:e.extensionTemplate.identifier,cmd_scaffold_used_prompts_for_type:!t}))}function Ne(e,t,r,n){return{app:t,project:r.project,cloneUrl:r.cloneUrl,extensionChoices:e.extensionContent,extensionTemplate:e.extensionTemplate,developerPlatformClient:n}}function De(e,t){let r=Le(e.extensionTemplate,e.directory,t);U(r)}function je(e,t){if(!t||!e)return;let r=e.supportedFlavors.map(n=>n.value);if(!r.includes(t))throw new u("Invalid template for extension type",`Expected template to be one of the following: ${r.join(", ")}.`)}function Le(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:P(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 Ge(e,t,r,n){if(!e)return;let a=r.find(i=>i.identifier===e);if(!a){let i=await B(),s=r.map(c=>c.identifier),o=i?"You might need to enable some flags on your Organization or App":void 0;throw new u(`Unknown extension type: ${e}.
5
+ The following extension types are supported: ${s.join(", ")}`,o)}if(me(t,n,a))throw new u(`Invalid extension type: ${e}`,`You have reached the limit of extension(s) of type ${a.type} per app`);return a}var fe=Me;var x=xe(ge(),1);var C=class e extends ae{static summary="Generate a new app Extension.";static descriptionWithMarkdown=`Generates a new [app extension](https://shopify.dev/docs/apps/build/app-extensions). For a list of app extensions that you can generate using this command, refer to [Supported extensions](https://shopify.dev/docs/apps/build/app-extensions/list-of-app-extensions).
6
+
7
+ Each new app extension is created in a folder under \`extensions/\`. To learn more about the extensions file structure, refer to [App structure](https://shopify.dev/docs/apps/build/cli-for-apps/app-structure) and the documentation for your extension.
8
+ `;static description=this.descriptionForHelp();static flags={...H,...z,template:I(x.Flags.string({char:"t",hidden:!1,description:"Extension template",env:"SHOPIFY_FLAG_EXTENSION_TEMPLATE"})),name:I(x.Flags.string({char:"n",hidden:!1,description:"name of your Extension",env:"SHOPIFY_FLAG_NAME"})),"clone-url":x.Flags.string({hidden:!0,char:"u",description:"The Git URL to clone the function extensions templates from. Defaults to: https://github.com/Shopify/function-examples",env:"SHOPIFY_FLAG_CLONE_URL"}),flavor:x.Flags.string({hidden:!1,description:"Choose a starting template for your extension, where applicable. Required if non interactive when the selected extension template supports multiple flavors.",options:["vanilla-js","react","typescript","typescript-react","wasm","rust"],env:"SHOPIFY_FLAG_FLAVOR"})};async run(){let{flags:t}=await this.parse(e);await T.addPublicMetadata(()=>({cmd_scaffold_required_auth:!0,cmd_scaffold_template_custom:t["clone-url"]!==void 0,cmd_scaffold_type_owner:"@shopify/app"})),await ee(t.path);let{app:r,project:n,specifications:a,remoteApp:i,developerPlatformClient:s}=await ne({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config});return await fe({directory:t.path,reset:t.reset,name:t.name,cloneUrl:t["clone-url"],template:t.template,flavor:t.flavor,app:r,project:n,specifications:a,remoteApp:i,developerPlatformClient:s}),{app:r}}};export{C as a};
@@ -1 +1 @@
1
- import{D as r}from"./chunk-KYNXMDFU.js";import{a as o}from"./chunk-CTNBSUVU.js";import{f as t,q as n}from"./chunk-773TIA5M.js";import{e as s,g as a}from"./chunk-VKWPEFWQ.js";a();var e=s(o(),1);var c={path:e.Flags.string({description:"The path to your app directory.",parse:async i=>t(i),default:async()=>n(),noCacheDefault:!0,env:"SHOPIFY_FLAG_PATH"}),config:e.Flags.string({hidden:!1,char:"c",description:"The name of the app configuration.",env:"SHOPIFY_FLAG_APP_CONFIG"}),"client-id":e.Flags.string({hidden:!1,description:"The Client ID of your app.",env:"SHOPIFY_FLAG_CLIENT_ID",exclusive:["config"]}),reset:e.Flags.boolean({hidden:!1,description:"Reset all your settings.",env:"SHOPIFY_FLAG_RESET",default:!1,exclusive:["config"]})},p={query:e.Flags.string({char:"q",description:"The GraphQL query or mutation to run as a bulk operation.",env:"SHOPIFY_FLAG_QUERY",required:!1,exactlyOne:["query","query-file"]}),"query-file":e.Flags.string({description:"Path to a file containing the GraphQL query or mutation. Can't be used with --query.",env:"SHOPIFY_FLAG_QUERY_FILE",parse:async i=>t(i),exactlyOne:["query","query-file"]}),variables:e.Flags.string({char:"v",description:"The values for any GraphQL variables in your mutation, in JSON format. Can be specified multiple times.",env:"SHOPIFY_FLAG_VARIABLES",multiple:!0,exclusive:["variable-file"]}),"variable-file":e.Flags.string({description:"Path to a file containing GraphQL variables in JSONL format (one JSON object per line). Can't be used with --variables.",env:"SHOPIFY_FLAG_VARIABLE_FILE",parse:async i=>t(i),exclusive:["variables"]}),store:e.Flags.string({char:"s",description:"The store domain. Must be an existing dev store.",env:"SHOPIFY_FLAG_STORE",parse:async i=>r(i)}),watch:e.Flags.boolean({description:"Wait for bulk operation results before exiting. Defaults to false.",env:"SHOPIFY_FLAG_WATCH"}),"output-file":e.Flags.string({description:"The file path where results should be written if --watch is specified. If not specified, results will be written to STDOUT.",env:"SHOPIFY_FLAG_OUTPUT_FILE",dependsOn:["watch"]}),version:e.Flags.string({description:"The API version to use for the bulk operation. If not specified, uses the latest stable version.",env:"SHOPIFY_FLAG_VERSION"})},h={query:e.Flags.string({char:"q",description:"The GraphQL query or mutation, as a string.",env:"SHOPIFY_FLAG_QUERY",required:!1,exactlyOne:["query","query-file"]}),"query-file":e.Flags.string({description:"Path to a file containing the GraphQL query or mutation. Can't be used with --query.",env:"SHOPIFY_FLAG_QUERY_FILE",parse:async i=>t(i),exactlyOne:["query","query-file"]}),variables:e.Flags.string({char:"v",description:"The values for any GraphQL variables in your query or mutation, in JSON format.",env:"SHOPIFY_FLAG_VARIABLES",exclusive:["variable-file"]}),"variable-file":e.Flags.string({description:"Path to a file containing GraphQL variables in JSON format. Can't be used with --variables.",env:"SHOPIFY_FLAG_VARIABLE_FILE",parse:async i=>t(i),exclusive:["variables"]}),store:e.Flags.string({char:"s",description:"The myshopify.com domain of the store to execute against. The app must be installed on the store. If not specified, you will be prompted to select a store.",env:"SHOPIFY_FLAG_STORE",parse:async i=>r(i)}),version:e.Flags.string({description:"The API version to use for the query or mutation. Defaults to the latest stable version.",env:"SHOPIFY_FLAG_VERSION"}),"output-file":e.Flags.string({description:"The file name where results should be written, instead of STDOUT.",env:"SHOPIFY_FLAG_OUTPUT_FILE"})};export{c as a,p as b,h as c};
1
+ import{u as r}from"./chunk-VWYZCCRE.js";import{b as o}from"./chunk-JA2QZ635.js";import{f as t,q as n}from"./chunk-3VYOLEQE.js";import{e as s,g as a}from"./chunk-VKWPEFWQ.js";a();var e=s(o(),1);var c={path:e.Flags.string({description:"The path to your app directory.",parse:async i=>t(i),default:async()=>n(),noCacheDefault:!0,env:"SHOPIFY_FLAG_PATH"}),config:e.Flags.string({hidden:!1,char:"c",description:"The name of the app configuration.",env:"SHOPIFY_FLAG_APP_CONFIG"}),"client-id":e.Flags.string({hidden:!1,description:"The Client ID of your app.",env:"SHOPIFY_FLAG_CLIENT_ID",exclusive:["config"]}),reset:e.Flags.boolean({hidden:!1,description:"Reset all your settings.",env:"SHOPIFY_FLAG_RESET",default:!1,exclusive:["config"]})},p={query:e.Flags.string({char:"q",description:"The GraphQL query or mutation to run as a bulk operation.",env:"SHOPIFY_FLAG_QUERY",required:!1,exactlyOne:["query","query-file"]}),"query-file":e.Flags.string({description:"Path to a file containing the GraphQL query or mutation. Can't be used with --query.",env:"SHOPIFY_FLAG_QUERY_FILE",parse:async i=>t(i),exactlyOne:["query","query-file"]}),variables:e.Flags.string({char:"v",description:"The values for any GraphQL variables in your mutation, in JSON format. Can be specified multiple times.",env:"SHOPIFY_FLAG_VARIABLES",multiple:!0,exclusive:["variable-file"]}),"variable-file":e.Flags.string({description:"Path to a file containing GraphQL variables in JSONL format (one JSON object per line). Can't be used with --variables.",env:"SHOPIFY_FLAG_VARIABLE_FILE",parse:async i=>t(i),exclusive:["variables"]}),store:e.Flags.string({char:"s",description:"The store domain. Must be an existing dev store.",env:"SHOPIFY_FLAG_STORE",parse:async i=>r(i)}),watch:e.Flags.boolean({description:"Wait for bulk operation results before exiting. Defaults to false.",env:"SHOPIFY_FLAG_WATCH"}),"output-file":e.Flags.string({description:"The file path where results should be written if --watch is specified. If not specified, results will be written to STDOUT.",env:"SHOPIFY_FLAG_OUTPUT_FILE",dependsOn:["watch"]}),version:e.Flags.string({description:"The API version to use for the bulk operation. If not specified, uses the latest stable version.",env:"SHOPIFY_FLAG_VERSION"})},h={query:e.Flags.string({char:"q",description:"The GraphQL query or mutation, as a string.",env:"SHOPIFY_FLAG_QUERY",required:!1,exactlyOne:["query","query-file"]}),"query-file":e.Flags.string({description:"Path to a file containing the GraphQL query or mutation. Can't be used with --query.",env:"SHOPIFY_FLAG_QUERY_FILE",parse:async i=>t(i),exactlyOne:["query","query-file"]}),variables:e.Flags.string({char:"v",description:"The values for any GraphQL variables in your query or mutation, in JSON format.",env:"SHOPIFY_FLAG_VARIABLES",exclusive:["variable-file"]}),"variable-file":e.Flags.string({description:"Path to a file containing GraphQL variables in JSON format. Can't be used with --variables.",env:"SHOPIFY_FLAG_VARIABLE_FILE",parse:async i=>t(i),exclusive:["variables"]}),store:e.Flags.string({char:"s",description:"The myshopify.com domain of the store to execute against. The app must be installed on the store. If not specified, you will be prompted to select a store.",env:"SHOPIFY_FLAG_STORE",parse:async i=>r(i)}),version:e.Flags.string({description:"The API version to use for the query or mutation. Defaults to the latest stable version.",env:"SHOPIFY_FLAG_VERSION"}),"output-file":e.Flags.string({description:"The file name where results should be written, instead of STDOUT.",env:"SHOPIFY_FLAG_OUTPUT_FILE"})};export{c as a,p as b,h as c};
@@ -1 +1 @@
1
- import{a}from"./chunk-PL7AJVTV.js";import{g as t}from"./chunk-VKWPEFWQ.js";t();var e=async()=>a.getAllSensitiveMetadata(),i=e;export{i as a};
1
+ import{a}from"./chunk-7AD5YCLL.js";import{g as t}from"./chunk-VKWPEFWQ.js";t();var e=async()=>a.getAllSensitiveMetadata(),i=e;export{i as a};
@@ -0,0 +1,15 @@
1
+ import{a as H}from"./chunk-MINDMVTH.js";import{a as Y}from"./chunk-RFDOSK57.js";import{Ha as W,i as h,ja as K}from"./chunk-AKSOCKVF.js";import{q as b}from"./chunk-WBTR5JZ6.js";import{b as $,c as D}from"./chunk-2KBTFKSM.js";import{D as O,E as T}from"./chunk-VWYZCCRE.js";import{a as f}from"./chunk-32B4LIKH.js";import{y as N}from"./chunk-KCHERKZO.js";import{d as g}from"./chunk-TH4D7IGZ.js";import{a as j}from"./chunk-IUUKRTKF.js";import{Cb as m,Db as U,Eb as R,Ib as k,P as w,R as F,Ub as L,b as e}from"./chunk-COFGQT76.js";import{b as se}from"./chunk-JA2QZ635.js";import{g as u,j as x}from"./chunk-3VYOLEQE.js";import{e as ie,g as p}from"./chunk-VKWPEFWQ.js";p();p();p();var l=e.record(e.unknown()),I=e.object({id:e.string(),name:e.string(),continueOnError:e.boolean().optional()}),z=e.array(e.object({lifecycle:e.literal("deploy"),steps:e.array(e.discriminatedUnion("type",[I.extend({type:e.literal("include_assets"),config:e.object({generatesAssetsManifest:e.boolean().optional(),inclusions:e.array(e.discriminatedUnion("type",[e.object({type:e.literal("pattern"),baseDir:e.string().optional(),include:e.array(e.string()).optional(),ignore:e.array(e.string()).optional(),destination:e.string().optional()}),e.object({type:e.literal("static"),source:e.string(),destination:e.string().optional()}),e.object({type:e.literal("configKey"),key:e.string(),destination:e.string().optional(),anchor:e.string().optional(),groupBy:e.string().optional(),preserveFilePaths:e.boolean().optional()})]))})}),I.extend({type:e.literal("bundle_ui"),config:e.object({generatesAssetsManifest:e.boolean().optional(),bundleFolder:e.string().optional()}).optional()}),I.extend({type:e.enum(["build_theme","bundle_theme","build_function","create_tax_stub"]),config:e.record(e.never()).optional()})]))})),v=e.object({identifier:e.string(),externalIdentifier:e.string(),externalName:e.string(),group:e.string().optional(),additionalIdentifiers:e.array(e.string()),partnersWebIdentifier:e.string(),surface:e.string(),registrationLimit:e.number(),experience:e.enum(["extension","configuration"]),uidStrategy:e.enum(["single","dynamic","uuid"]),dependency:e.string().optional(),graphQLType:e.string().optional(),clientSteps:z.optional(),loadedRemoteSpecs:e.boolean().optional()}),A=e.object({name:e.string(),type:e.string(),externalType:e.string(),humanName:e.string(),surface:e.string(),features:e.array(e.string()),dependency:e.string().optional(),entrySourceFilePath:e.string(),devUUID:e.string(),localIdentifier:e.string(),idEnvironmentVariableName:e.string(),directory:e.string(),configuration:l,configurationPath:e.string(),outputPath:e.string(),handle:e.string(),specification:v,uid:e.string()}).passthrough(),J=e.object({directory:e.string(),configuration:l.optional()}).passthrough(),q=e.object({file:e.string(),message:e.string()}).passthrough(),y=e.object({id:e.string(),title:e.string(),apiKey:e.string(),organizationId:e.string(),appType:e.string().optional(),newApp:e.boolean().optional(),grantedScopes:e.array(e.string()),developmentStorePreviewEnabled:e.boolean().optional(),applicationUrl:e.string().optional(),redirectUrlWhitelist:e.array(e.string()).optional(),requestedAccessScopes:e.array(e.string()).optional(),webhookApiVersion:e.string().optional(),embedded:e.boolean().optional(),posEmbedded:e.boolean().optional(),preferencesUrl:e.string().optional(),gdprWebhooks:e.object({customerDeletionUrl:e.string().optional(),customerDataRequestUrl:e.string().optional(),shopDeletionUrl:e.string().optional()}).optional(),appProxy:e.object({subPath:e.string(),subPathPrefix:e.string(),url:e.string()}).optional(),configuration:l.optional(),flags:e.array(e.string())}),Q=e.object({path:e.string(),message:e.string()}),E=e.object({path:e.string(),content:l,errors:e.array(Q)}),B=e.object({directory:e.string(),appConfigFiles:e.array(E),extensionConfigFiles:e.array(E),webConfigFiles:e.array(E),dotenvFiles:e.array(e.object({path:e.string()})),errors:e.array(Q)}),G=e.object({cliVersion:e.string(),nodeVersion:e.string(),platform:e.string(),arch:e.string(),shell:e.string().optional()}),M=e.object({remoteApp:y,account:e.discriminatedUnion("type",[e.object({type:e.literal("UserAccount"),email:e.string()}),e.object({type:e.literal("ServiceAccount"),orgName:e.string()}),e.object({type:e.literal("UnknownAccount")})]),project:B,system:G,devStoreUrl:e.string().optional(),name:e.string(),idEnvironmentVariableName:e.literal("SHOPIFY_API_KEY"),directory:e.string(),configPath:e.string(),configuration:l,webs:e.array(J),dotenv:e.object({path:e.string(),variables:e.record(e.string())}).passthrough().optional(),errors:e.object({errors:e.array(q)}).passthrough(),specifications:e.array(v),remoteFlags:e.array(e.string()),realExtensions:e.array(A),devApplicationURLs:l.optional(),_hiddenConfig:l,packageManager:e.string(),nodeDependencies:e.record(e.string()),usesWorkspaces:e.boolean(),organization:e.object({id:e.string(),businessName:e.string(),source:e.string()}),allExtensions:e.array(A)}).passthrough(),V=e.object({SHOPIFY_API_KEY:e.string(),SHOPIFY_API_SECRET:e.string().optional(),SCOPES:e.string()}),d=j({name:"AppInfoResult",schema:e.union([V,M]),definitions:{AppInfo:M,AppInfoRemoteApp:y,AppInfoProject:B,AppInfoSystem:G,AppInfoWebEnvironment:V,AppInfoExtension:A,AppInfoSpecification:v,AppInfoClientSteps:z,AppInfoWeb:J,AppInfoConfigurationError:q}});async function Z(o,t,r,n,i){if(i.webEnv)return await K(t,r.source),{SHOPIFY_API_KEY:t.apiKey,...t.apiSecretKeys[0]?{SHOPIFY_API_SECRET:t.apiSecretKeys[0].secret}:{},SCOPES:h(o.configuration)};let s={...o,packageManager:n.packageManager,nodeDependencies:n.nodeDependencies,usesWorkspaces:n.usesWorkspaces,organization:{id:r.id,businessName:r.businessName,source:r.source},remoteApp:y.parse(t),account:await t.developerPlatformClient.accountInfo(),project:{directory:n.directory,appConfigFiles:n.appConfigFiles.map(P),extensionConfigFiles:n.extensionConfigFiles.map(P),webConfigFiles:n.webConfigFiles.map(P),dotenvFiles:[...n.dotenvFiles.values()].map(({path:c})=>({path:c})),errors:(n.errors??[]).map(({path:c,message:re})=>({path:c,message:re}))},system:{cliVersion:f,nodeVersion:process.version,...g(),shell:process.env.SHELL},devStoreUrl:o.configuration.build?.dev_store_url??o.hiddenConfig.dev_store_url,allExtensions:X(o.allExtensions.filter(c=>c.isReturnedAsInfo())),realExtensions:X(o.realExtensions),specifications:o.specifications.map(ee)},a=JSON.parse(JSON.stringify(Object.fromEntries(Object.entries(s).filter(([c])=>c!=="configSchema"))));return d.validate(a)}function ee(o){return{identifier:o.identifier,externalIdentifier:o.externalIdentifier,externalName:o.externalName,group:o.group,additionalIdentifiers:o.additionalIdentifiers,partnersWebIdentifier:o.partnersWebIdentifier,surface:o.surface,registrationLimit:o.registrationLimit,experience:o.experience,uidStrategy:o.uidStrategy,dependency:o.dependency,graphQLType:o.graphQLType,clientSteps:o.clientSteps,..."loadedRemoteSpecs"in o?{loadedRemoteSpecs:o.loadedRemoteSpecs}:{}}}function P({path:o,content:t,errors:r}){return{path:o,content:t,errors:r.map(({path:n,message:i})=>({path:n,message:i}))}}function X(o){return o.map(t=>({...t,name:t.name,type:t.type,externalType:t.externalType,humanName:t.humanName,surface:t.surface,features:t.features,dependency:t.dependency,specification:ee(t.specification)}))}p();async function ae(o){let{app:t,remoteApp:r,organization:n,project:i}=o,s=await r.developerPlatformClient.accountInfo();return new _(t,r,n,i,s).output()}async function te(o){N({customSections:await ae(o)})}function pe(o,t){if(t==="json")return d.encode(o);if(!("name"in o))return R`
2
+ ${m.green("SHOPIFY_API_KEY")}=${o.SHOPIFY_API_KEY}
3
+ ${m.green("SHOPIFY_API_SECRET")}=${o.SHOPIFY_API_SECRET??""}
4
+ ${m.green("SCOPES")}=${o.SCOPES}
5
+ `;throw new Error("App information text output requires the loaded app context.")}function ne(o,t){k(pe(o,t))}var ce="unknown",S={subdued:"Not yet configured"},le="NOT LOADED",_=class{app;remoteApp;organization;project;account;constructor(t,r,n,i,s){this.app=t,this.remoteApp=r,this.organization=n,this.project=i,this.account=s}async output(){return[...await this.devConfigsSection(),this.projectSettingsSection(),...await this.appComponentsSection(),await this.systemInfoSection()]}async devConfigsSection(){let t=S;this.app.configuration.build?.automatically_update_urls_on_dev!==void 0&&(t=this.app.configuration.build.automatically_update_urls_on_dev?"Yes":"No");let r=["User","unknown"],n=this.account;return T(n)?r=["Service account",n.orgName]:O(n)&&(r[1]=n.email),[this.tableSection("Current app configuration",[["Configuration file",{filePath:x(this.app.configPath)||b.app}],["App name",this.remoteApp.title?{userInput:this.remoteApp.title}:S],["Client ID",this.remoteApp.apiKey||S],["Organization",`${this.organization.businessName} (${this.organization.id})`],["Access scopes",h(this.app.configuration)],["Dev store",this.app.configuration.build?.dev_store_url??this.app.hiddenConfig.dev_store_url??S],["Update URLs",t],r],{isFirstItem:!0}),{body:["\u{1F4A1} To change these, run",{command:U(this.project.packageManager,"shopify app config link")}]}]}projectSettingsSection(){return this.tableSection("Your Project",[["Root location",{filePath:this.app.directory}]])}async appComponentsSection(){let t=this.webComponentsSection();return[{title:`
6
+ Directory components`.toUpperCase(),body:""},...t?[t]:[],...this.extensionsSections()]}webComponentsSection(){let t=[],r=[];if(this.app.webs[0])return this.app.webs.forEach(n=>{if(n.configuration)if(n.configuration.name){let{name:i,roles:s}=n.configuration,a=u(this.app.directory,n.directory);r.push([` \u{1F4C2} ${i}`,{filePath:a||"/"}]),s.length>0&&r.push([" roles",s.join(", ")])}else n.configuration.roles.forEach(i=>{r.push([` \u{1F4C2} ${i}`,{filePath:u(this.app.directory,n.directory)}])});else r.push([{subdued:` \u{1F4C2} ${ce}`},{filePath:u(this.app.directory,n.directory)}]);if(!this.app.errors.isEmpty()){let i=this.app.errors.getErrors(`${n.directory}/${b.web}`);t.push(...i.map(s=>s.message))}}),this.subtableSection("web",[["\u{1F4C2} web",""],...r,...t.map(n=>[{error:"error"},{error:this.formattedError(n)}])])}extensionsSections(){let t=this.app.allExtensions.filter(i=>i.isReturnedAsInfo()),n=F(t.map(i=>i.type)).map(i=>{let s=t.filter(a=>a.type===i);if(s[0])return this.subtableSection(s[0].externalType,s.flatMap(a=>this.extensionSubSection(a)))});return w(n)}extensionSubSection(t){let r=t.configuration,n=[[`\u{1F4C2} ${t.handle||le}`,{filePath:u(this.app.directory,t.directory)}],[" config file",{filePath:u(t.directory,t.configurationPath)}]];r&&"metafields"in r&&Array.isArray(r.metafields)&&r.metafields.length>0&&n.push([" metafields",`${r.metafields.length}`]);let i=this.app.errors.getErrors(t.configurationPath);for(let s of i)n.push([{error:" error"},{error:this.formattedError(s.message)}]);return n}formattedError(t){let r=t.trim();if(L())return r;let[n,...i]=r.split(`
7
+ `);return[`! ${n}`,...i.map(s=>` ${s}`)].join(`
8
+ `)}async systemInfoSection(){let{platform:t,arch:r}=g();return this.tableSection("Tooling and System",[["Shopify CLI",f],["Package manager",this.project.packageManager],["OS",`${t}-${r}`],["Shell",process.env.SHELL??"unknown"],["Node version",process.version]])}tableSection(t,r,{isFirstItem:n=!1}={}){return{title:`${n?"":`
9
+ `}${t.toUpperCase()}
10
+ `,body:{tabularData:r,firstColumnSubdued:!0}}}subtableSection(t,r){return{title:t,body:{tabularData:r,firstColumnSubdued:!0}}}};var oe=ie(se(),1);var C=class o extends H{static summary="Print basic information about your app and extensions.";static descriptionWithMarkdown=`The information returned includes the following:
11
+
12
+ - The app and dev store that's used when you run the [dev](https://shopify.dev/docs/api/shopify-cli/app/app-dev) command. You can reset these configurations using [\`dev --reset\`](https://shopify.dev/docs/api/shopify-cli/app/app-dev#flags-propertydetail-reset).
13
+ - The [structure](https://shopify.dev/docs/apps/tools/cli/structure) of your app project.
14
+ - The [access scopes](https://shopify.dev/docs/api/usage) your app has requested.
15
+ - System information, including the package manager and version of Shopify CLI used in the project.`;static get jsonOutputSchema(){return d}static description=this.descriptionForHelp();static flags={...$,...Y,...D,"web-env":oe.Flags.boolean({hidden:!1,description:"Outputs environment variables necessary for running and deploying web/.",env:"SHOPIFY_FLAG_OUTPUT_WEB_ENV",default:!1})};async run(){let{flags:t}=await this.parse(o),{app:r,project:n,remoteApp:i,organization:s}=await W({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config,unsafeTolerateErrors:!0});if(t.json||t["web-env"]){let a=await Z(r,i,s,n,{webEnv:t["web-env"]});ne(a,t.json?"json":"text")}else await te({app:r,remoteApp:i,organization:s,project:n});return r.errors.isEmpty()||process.exit(2),{app:r}}};export{C as a};
@@ -0,0 +1,7 @@
1
+ import{A as n,B as i,C as t,G as s,y as e,z as o}from"./chunk-KCHERKZO.js";import{i as d,l}from"./chunk-XUJURYN5.js";import{g as r}from"./chunk-VKWPEFWQ.js";r();async function u(){e({headline:"CLI update available.",body:["Run",{command:"npm run shopify upgrade"},{char:"."}]}),e({headline:["To connect this project to your shopify store cd into:",{filePath:"/my-store/hydrogen.config.js"},{char:"."}],body:["You can also try the following steps:",{list:{items:[["Run",{command:"shopify project connect"}],["Run",{command:"hydrogen start"}]]}}]}),e({headline:"About your app.",customSections:[{body:{tabularData:[["Configuration file",{filePath:"shopify.app.scalable-transaction-app.toml"}],["App name",{userInput:"scalable-transaction-app"}],["Access scopes","read_products,write_products"]],firstColumnSubdued:!0}}]}),e({headline:[{userInput:"my-app"},"initialized and ready to build."],nextSteps:[["Run",{command:"cd verification-app"}],["To preview your project, run",{command:"npm app dev"}],["To add extensions, run",{command:"npm generate extension"}]],reference:[["Run",{command:"npm shopify help"}],{link:{label:"Dev docs",url:"https://shopify.dev"}}],customSections:[{title:"Custom section",body:{list:{items:[{link:{label:"Item 1",url:"https://shopify.com"}},"Item 2",{link:{url:"https://community.shopify.com/"}}]}}},{title:"Custom section 2",body:{list:{items:["Item 1","Item 2","Item 3"]}}}]}),o({headline:"CLI updated.",body:"You are now running version 3.47."}),o({headline:"Deployment successful.",body:"Your extensions have been uploaded to your Shopify Partners Dashboard.",nextSteps:[{link:{label:"See your deployment and set it live",url:"https://partners.shopify.com/1797046/apps/4523695/deployments"}}]}),n({headline:"You have reached your limit of checkout extensions for this app.",body:"You can free up space for a new one by deleting an existing one."}),n({headline:"Required access scope update.",body:"The deadline for re-selecting your app scopes is May 1, 2022.",reference:[{link:{label:"Dev docs",url:"https://shopify.dev/app/scopes"}}]});let a=new l("Something went wrong.");a.stack=`
2
+ Error: Unexpected error
3
+ at Module._compile (internal/modules/cjs/loader.js:1137:30)
4
+ at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
5
+ at Module.load (internal/modules/cjs/loader.js:985:32)
6
+ at Function.Module._load (internal/modules/cjs/loader.js:878:14)
7
+ `,t(a);let c=[["Have you",{link:{label:"created a Shopify Partners organization",url:"https://partners.shopify.com/signup"}},{char:"?"}],"Have you confirmed your accounts from the emails you received?",["Need to connect to a different App or organization? Run the command again with",{command:"--reset"}]];t(new d("No Organization found",void 0,c)),i({headline:"Version couldn't be released.",body:"This version needs to be submitted for review and approved by Shopify before it can be released."}),s({rows:[{id:"1",name:"John Doe",email:"jon@doe.com"},{id:"2",name:"Jane Doe",email:"jane@doe.com"},{id:"3",name:"John Smith",email:"jon@smith.com"}],columns:{id:{header:"ID",color:"red"},name:{header:"Name",color:"dim"},email:{}}})}export{u as a};
@@ -0,0 +1,28 @@
1
+ import{a}from"./chunk-YFR53MWF.js";import{p as n,q as m,v as l}from"./chunk-2AZXDU2R.js";import{b as s,c as h}from"./chunk-2KBTFKSM.js";import{oa as o}from"./chunk-VWYZCCRE.js";import{b as v}from"./chunk-JA2QZ635.js";import{e as u,g as r}from"./chunk-VKWPEFWQ.js";r();var e=u(v(),1);var i=class extends l{static summary="Uploads your local theme files to the connected store, overwriting the remote version if specified.";static usage=["theme push","theme push --unpublished --json"];static descriptionWithMarkdown=`Uploads your local theme files to Shopify, overwriting the remote version if specified.
2
+
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
+
5
+ You can run this command only in a directory that matches the [default Shopify theme folder structure](https://shopify.dev/docs/themes/tools/cli#directory-structure).
6
+
7
+ This command returns the following information:
8
+
9
+ - A link to the [editor](https://shopify.dev/docs/themes/tools/online-editor) for the theme in the Shopify admin.
10
+ - A [preview link](https://help.shopify.com/manual/online-store/themes/adding-themes#share-a-theme-preview-with-others) that you can share with others.
11
+
12
+ If you use the \`--json\` flag, then theme information is returned in JSON format, which can be used as a machine-readable input for scripts or continuous integration.
13
+
14
+ Sample output:
15
+
16
+ \`\`\`json
17
+ {
18
+ "theme": {
19
+ "id": 108267175958,
20
+ "name": "MyTheme",
21
+ "role": "unpublished",
22
+ "shop": "mystore.myshopify.com",
23
+ "editor_url": "https://mystore.myshopify.com/admin/themes/108267175958/editor",
24
+ "preview_url": "https://mystore.myshopify.com/?preview_theme_id=108267175958"
25
+ }
26
+ }
27
+ \`\`\`
28
+ `;static description=this.descriptionForHelp();static flags={...s,...n,...m("upload"),...h,theme:e.Flags.string({char:"t",description:"Theme ID or name of the remote theme. Use --development, --live, --theme, or --unpublished in non-interactive environments. When using --unpublished without --development, use --theme to provide the new theme name.",env:"SHOPIFY_FLAG_THEME_ID"}),development:e.Flags.boolean({char:"d",description:"Push theme files from your remote development theme. Use --development, --live, --theme, or --unpublished in non-interactive environments.",env:"SHOPIFY_FLAG_DEVELOPMENT"}),"development-context":e.Flags.string({char:"c",description:"Unique identifier for a development theme context (e.g., PR number, branch name). Reuses an existing development theme with this context name, or creates one if none exists.",env:"SHOPIFY_FLAG_DEVELOPMENT_CONTEXT",dependsOn:["development"],exclusive:["theme"]}),live:e.Flags.boolean({char:"l",description:"Push theme files from your remote live theme. Use --development, --live, --theme, or --unpublished in non-interactive environments.",env:"SHOPIFY_FLAG_LIVE"}),unpublished:e.Flags.boolean({char:"u",description:"Create a new unpublished theme and push to it. Use --development, --live, --theme, or --unpublished in non-interactive environments. When using --unpublished without --development, use --theme to provide the new theme name.",env:"SHOPIFY_FLAG_UNPUBLISHED"}),nodelete:e.Flags.boolean({char:"n",description:"Prevent deleting remote files that don't exist locally.",env:"SHOPIFY_FLAG_NODELETE"}),"allow-live":e.Flags.boolean({char:"a",description:"Allow push to a live theme. Required in non-interactive environments when targeting the live theme.",env:"SHOPIFY_FLAG_ALLOW_LIVE"}),publish:e.Flags.boolean({char:"p",description:"Publish as the live theme after uploading.",env:"SHOPIFY_FLAG_PUBLISH"}),force:e.Flags.boolean({hidden:!0,char:"f",description:"Proceed without confirmation, if current directory does not seem to be theme directory.",env:"SHOPIFY_FLAG_FORCE"}),strict:e.Flags.boolean({description:"Require theme check to pass without errors before pushing. Warnings are allowed.",env:"SHOPIFY_FLAG_STRICT_PUSH"}),listing:e.Flags.string({description:"The listing preset to use for multi-preset themes. Applies preset files from listings/[preset-name] directory.",env:"SHOPIFY_FLAG_LISTING"}),environment:n.environment};static multiEnvironmentsFlags=["store","password","path",["live","development","theme"]];static nonTTYFlagRequirements(){return[{flags:["theme","development","live","unpublished"]},{flags:["theme"],when:t=>!!(t.unpublished&&!t.development)},{flags:["allow-live"],when:t=>!!t.live}]}async command(t,p,d,g,c){o("theme-command:push"),await a({...t,allowLive:t["allow-live"],noColor:t["no-color"],developmentContext:t["development-context"]},p,d,c),o("theme-command:push")}storeAuthScopes(){return["read_themes","write_themes"]}};export{i as a};
@@ -1,11 +1,11 @@
1
- import{b as N,c as S,d as A}from"./chunk-MNYKIPG7.js";import{a as T}from"./chunk-CUGLV7UX.js";import{a as g}from"./chunk-4JU7N2OF.js";import{b as P,c as y,xa as x}from"./chunk-CBGDD3ZG.js";import{b as d,c as b}from"./chunk-2IZROVCY.js";import{y as f}from"./chunk-PSSOCUUD.js";import{qb as h,sb as l,wb as m}from"./chunk-G5QSVBYP.js";import{d as p}from"./chunk-773TIA5M.js";import{g as s}from"./chunk-VKWPEFWQ.js";s();s();function w(n,t){let o={};return n.targeting?.forEach(e=>{e.target&&(o[e.target]={...e.input_query&&{inputQueryPath:`${t}/${e.input_query}`},...e.export&&{export:e.export}})}),o}function C(n,t,o,e,r,i){return JSON.stringify({handle:t.handle,name:n.name,apiVersion:t.api_version,targeting:o,schemaPath:i,wasmPath:r,functionRunnerPath:e},null,2)}function I(n,t){return{title:`CONFIGURATION
1
+ import{b as N,c as S,d as A}from"./chunk-IQ4VOPT7.js";import{a as T}from"./chunk-A6OSIGQI.js";import{a as g}from"./chunk-RFDOSK57.js";import{Ia as x,b as P,c as y}from"./chunk-AKSOCKVF.js";import{b as d,c as b}from"./chunk-2KBTFKSM.js";import{y as f}from"./chunk-KCHERKZO.js";import{Cb as h,Eb as l,Ib as m}from"./chunk-COFGQT76.js";import{d as p}from"./chunk-3VYOLEQE.js";import{g as s}from"./chunk-VKWPEFWQ.js";s();s();function C(n,t){let o={};return n.targeting?.forEach(e=>{e.target&&(o[e.target]={...e.input_query&&{inputQueryPath:`${t}/${e.input_query}`},...e.export&&{export:e.export}})}),o}function I(n,t,o,e,r,i){return JSON.stringify({handle:t.handle,name:n.name,apiVersion:t.api_version,targeting:o,schemaPath:i,wasmPath:r,functionRunnerPath:e},null,2)}function w(n,t){return{title:`CONFIGURATION
2
2
  `,body:{tabularData:[["Handle",n.handle??"N/A"],["Name",t??"N/A"],["API Version",n.api_version??"N/A"]],firstColumnSubdued:!0}}}function j(n){if(Object.keys(n).length===0)return null;let t=[];return Object.entries(n).forEach(([o,e])=>{t.push([l`${h.cyan(o)}`.value,""]),e.inputQueryPath&&t.push([{subdued:" Input Query Path"},{filePath:e.inputQueryPath}]),e.export&&t.push([{subdued:" Export"},e.export])}),{title:`
3
3
  TARGETING
4
4
  `,body:{tabularData:t}}}function O(n,t){return{title:`
5
5
  BUILD
6
6
  `,body:{tabularData:[["Schema Path",{filePath:t??"N/A"}],["Wasm Path",{filePath:n}]],firstColumnSubdued:!0}}}function D(n){return{title:`
7
7
  FUNCTION RUNNER
8
- `,body:{tabularData:[["Path",{filePath:n}]],firstColumnSubdued:!0}}}function v(n,t,o,e,r,i){let a=[I(t,n.name)],u=j(o);return u&&a.push(u),a.push(O(r,i),D(e)),a}function R(n,t){let{format:o,functionRunnerPath:e,schemaPath:r}=t,i=n.configuration,a=w(i,n.directory),u=p(n.directory,i.build?.path??n.outputRelativePath);return o==="json"?C(n,i,a,e,u,r):v(n,i,a,e,u,r)}var c=class n extends T{static summary="Print basic information about your function.";static descriptionWithMarkdown=`The information returned includes the following:
8
+ `,body:{tabularData:[["Path",{filePath:n}]],firstColumnSubdued:!0}}}function v(n,t,o,e,r,i){let a=[w(t,n.name)],u=j(o);return u&&a.push(u),a.push(O(r,i),D(e)),a}function R(n,t){let{format:o,functionRunnerPath:e,schemaPath:r}=t,i=n.configuration,a=C(i,n.directory),u=p(n.directory,i.build?.path??n.outputRelativePath);return o==="json"?I(n,i,a,e,u,r):v(n,i,a,e,u,r)}var c=class n extends T{static summary="Print basic information about your function.";static descriptionWithMarkdown=`The information returned includes the following:
9
9
 
10
10
  - The function handle
11
11
  - The function name
@@ -13,4 +13,4 @@ FUNCTION RUNNER
13
13
  - The targeting configuration
14
14
  - The schema path
15
15
  - The WASM path
16
- - The function runner path`;static description=this.descriptionWithoutMarkdown();static flags={...d,...g,...N,...b};async run(){let{flags:t}=await this.parse(n),{app:o}=await x({directory:t.path,userProvidedConfigName:t.config}),e=await S(o,t.path),r=P();await y(r);let i=await A(e,t.path,t["client-id"],t.reset,t.config),a=R(e,{format:t.json?"json":"text",functionRunnerPath:r.path,schemaPath:i});return t.json?m(a):f({customSections:a}),{app:o}}};export{c as a};
16
+ - The function runner path`;static description=this.descriptionForHelp();static flags={...d,...g,...N,...b};async run(){let{flags:t}=await this.parse(n),{app:o}=await x({directory:t.path,userProvidedConfigName:t.config}),e=await S(o,t.path),r=P();await y(r);let i=await A(e,t.path,t["client-id"],t.reset,t.config),a=R(e,{format:t.json?"json":"text",functionRunnerPath:r.path,schemaPath:i});return t.json?m(a):f({customSections:a}),{app:o}}};export{c as a};
@@ -0,0 +1,3 @@
1
+ import{c as g,g as h}from"./chunk-2AAHKMPP.js";import{a as m}from"./chunk-MINDMVTH.js";import{Ha as d}from"./chunk-AKSOCKVF.js";import{i as f}from"./chunk-XUJURYN5.js";import{Ib as s}from"./chunk-COFGQT76.js";import{g as r}from"./chunk-VKWPEFWQ.js";r();r();var v=250,c=class extends Error{constructor(){super("Migratable subscriptions were not found"),this.name="MigratableSubscriptionsNotFoundError"}},l=class extends Error{constructor(t){super(t),this.name="MigrationListProtocolError"}};async function*b({clientId:i,status:t,getPage:n=h}){let e=new Set,a;for(;;){let p=await n({clientId:i,first:v,after:a,status:t});if(p===null)throw new c;if(yield p.subscriptions,!p.pageInfo.hasNextPage)return;let{endCursor:o}=p.pageInfo;if(o===null||o.trim()==="")throw new l("Migratable subscription page has no cursor for its next page");if(e.has(o))throw new l(`Migratable subscription pagination repeated cursor: ${o}`);e.add(o),a=o}}r();var w="shop_id,status,manual_subscription_name,manual_subscription_price_amount,manual_subscription_price_currency_code,manual_subscription_interval,target_plan_handle,notification_kind,notification_opt_out_deadline,notification_sent_at,price_behavior,effective_date,last_failure_reason";function y(i){return JSON.stringify({schemaVersion:1,subscriptions:i},null,2)}async function _({pages:i,json:t}){t?s(y(await S(i))):await C(i)}async function S(i){let t=[];for await(let n of i)t.push(...n);return t}async function C(i){let t=!1;for await(let n of i){let e=x(n);t?e.length>0&&s(e.join(`
2
+ `)):(s([w,...e].join(`
3
+ `)),t=!0)}t||s(w)}function x(i){return i.map(t=>[t.shopId,t.status,t.manualSubscriptionName,t.manualSubscriptionPrice?.amount,t.manualSubscriptionPrice?.currencyCode,t.manualSubscriptionInterval,t.targetPlanHandle,t.notification?.kind,t.notification?.optOutDeadline,t.notification?.sentAt,t.priceBehavior,t.effectiveDate,t.lastFailureReason].map(E).join(","))}function E(i){let t=i??"";return/[",\r\n]/.test(t)?`"${t.replaceAll('"','""')}"`:t}var u=class i extends m{static summary="Lists app subscriptions eligible for migration.";static descriptionWithMarkdown="Lists every app subscription eligible for migration.\n\nBy default, the command writes CSV to stdout, streaming each page of results as it arrives. If a later page fails, the rows already written remain valid CSV. Use `--json` to fetch all pages first and then write a single versioned JSON envelope to stdout. Use shell redirection to save either format, for example `shopify app subscription-migrations list > subscriptions.csv` or `shopify app subscription-migrations list --json > subscriptions.json`.\n\nUse `--status` to filter subscriptions by migration status. Supported values are `UNSCHEDULED`, `SCHEDULED`, and `MIGRATED`.\n\nRun the command from an app project. By default, it uses the Client ID from the active app configuration. Use `--path` to select an app directory or `--config` to select a configuration. Pass `--client-id` to select a different app within the project. Use `--reset` to relink the app.";static description=this.descriptionWithoutMarkdown();static examples=["<%= config.bin %> <%= command.id %>","<%= config.bin %> <%= command.id %> --status SCHEDULED > scheduled-subscriptions.csv","<%= config.bin %> <%= command.id %> --json","<%= config.bin %> <%= command.id %> --json > subscriptions.json","<%= config.bin %> <%= command.id %> --client-id <client-id> > subscriptions.csv"];static flags={...g};async run(){let{flags:t}=await this.parse(i),{app:n,remoteApp:e}=await d({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config});try{let a=b({clientId:e.apiKey,status:t.status});await _({pages:a,json:t.json})}catch(a){throw a instanceof c?new f("App not found"):a}return{app:n}}};export{u as a};
@@ -1 +1 @@
1
- import{b as f,c as r,d as h}from"./chunk-LZZAD3FW.js";import{a as l}from"./chunk-34PQ6LJC.js";import{a as c}from"./chunk-4JU7N2OF.js";import{wa as m}from"./chunk-CBGDD3ZG.js";import{b as d}from"./chunk-2IZROVCY.js";import{xb as e}from"./chunk-G5QSVBYP.js";import{i as n}from"./chunk-B4OMIONW.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();var s=class g extends l{static summary="Watch and prints out changes to an app.";static hidden=!0;static flags={...d,...c};async run(){let{flags:t}=await this.parse(g),{app:o}=await m({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config}),i=new h(o);return await i.start(),e(`Watching for changes in ${o.name}...`),i.onEvent(async({app:y,extensionEvents:u,startTime:w,path:x})=>{e(`\u{1F195} Event [${f(w)}ms]`),e(` \u{1F4C2} ${x}`),u.forEach(a=>{switch(a.type){case r.Created:e(` \u2705 Extension created - ${n.green(a.extension.handle)}`);break;case r.Deleted:e(` \u274C Extension deleted: ${n.red(a.extension.handle)}`);break;case r.Updated:e(` \u{1F504} Updated: ${n.yellow(a.extension.handle)}`);break}})}),setInterval(()=>{},1<<30),{app:o}}};export{s as a};
1
+ import{b as f,c as r,d as h}from"./chunk-QH5R32AA.js";import{a as l}from"./chunk-MINDMVTH.js";import{a as c}from"./chunk-RFDOSK57.js";import{Ha as m}from"./chunk-AKSOCKVF.js";import{b as d}from"./chunk-2KBTFKSM.js";import{Kb as e}from"./chunk-COFGQT76.js";import{i as n}from"./chunk-B4OMIONW.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();var s=class g extends l{static summary="Watch and prints out changes to an app.";static hidden=!0;static flags={...d,...c};async run(){let{flags:t}=await this.parse(g),{app:o}=await m({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config}),i=new h(o);return await i.start(),e(`Watching for changes in ${o.name}...`),i.onEvent(async({app:y,extensionEvents:u,startTime:w,path:x})=>{e(`\u{1F195} Event [${f(w)}ms]`),e(` \u{1F4C2} ${x}`),u.forEach(a=>{switch(a.type){case r.Created:e(` \u2705 Extension created - ${n.green(a.extension.handle)}`);break;case r.Deleted:e(` \u274C Extension deleted: ${n.red(a.extension.handle)}`);break;case r.Updated:e(` \u{1F504} Updated: ${n.yellow(a.extension.handle)}`);break}})}),setInterval(()=>{},1<<30),{app:o}}};export{s as a};
@@ -1,4 +1,4 @@
1
- import{a as v}from"./chunk-QOOVB6RW.js";import{a as y}from"./chunk-DV7FOLG4.js";import{a as m}from"./chunk-MMHTYLTG.js";import{a as u}from"./chunk-XRWQ7AXY.js";import{d as f}from"./chunk-K3OI5VDE.js";import{p as c,v as p}from"./chunk-GBYDMHZ3.js";import{b as h,e as d}from"./chunk-2IZROVCY.js";import{Aa as l}from"./chunk-KYNXMDFU.js";import{a as O}from"./chunk-CTNBSUVU.js";import{e as _,g as a}from"./chunk-VKWPEFWQ.js";a();var t=_(O(),1);var s=class extends p{static get requiresSyncAnalytics(){return!0}static summary="Uploads the current theme as a development theme to the connected store, then prints theme editor and preview URLs to your terminal. While running, changes will push to the store in real time.";static descriptionWithMarkdown=`
1
+ import{a as y}from"./chunk-CKLS5LTU.js";import{a as v}from"./chunk-VL3XMULV.js";import{d as f}from"./chunk-NZRQKFUB.js";import{a as m}from"./chunk-LIB64ZJW.js";import{a as u}from"./chunk-P6ID3ULA.js";import{p as c,v as p}from"./chunk-2AZXDU2R.js";import{b as h,e as d}from"./chunk-2KBTFKSM.js";import{ra as l}from"./chunk-VWYZCCRE.js";import{b as F}from"./chunk-JA2QZ635.js";import{e as _,g as a}from"./chunk-VKWPEFWQ.js";a();var t=_(F(),1);var s=class extends p{static get requiresSyncAnalytics(){return!0}static summary="Uploads the current theme as a development theme to the connected store, then prints theme editor and preview URLs to your terminal. While running, changes will push to the store in real time.";static descriptionWithMarkdown=`
2
2
  Uploads the current theme as the specified theme, or a [development theme](https://shopify.dev/docs/themes/tools/cli#development-themes), to a store so you can preview it.
3
3
 
4
4
  This command returns the following information:
@@ -17,10 +17,10 @@ If you already have a development theme for your current environment, then this
17
17
 
18
18
  Development themes are deleted when you run \`shopify auth logout\`. If you need a preview link that can be used after you log out, then you should [share](https://shopify.dev/docs/api/shopify-cli/theme/theme-share) your theme or [push](https://shopify.dev/docs/api/shopify-cli/theme/theme-push) to an unpublished theme on your store.
19
19
 
20
- You can run this command only in a directory that matches the [default Shopify theme folder structure](https://shopify.dev/docs/themes/tools/cli#directory-structure).`;static description=this.descriptionWithoutMarkdown();static flags={...h,...c,host:t.Flags.string({description:"Set which network interface the web server listens on. The default value is 127.0.0.1.",env:"SHOPIFY_FLAG_HOST"}),"live-reload":t.Flags.string({description:`The live reload mode switches the server behavior when a file is modified:
20
+ You can run this command only in a directory that matches the [default Shopify theme folder structure](https://shopify.dev/docs/themes/tools/cli#directory-structure).`;static description=this.descriptionForHelp();static flags={...h,...c,host:t.Flags.string({description:"Set which network interface the web server listens on. The default value is 127.0.0.1.",env:"SHOPIFY_FLAG_HOST"}),"live-reload":t.Flags.string({description:`The live reload mode switches the server behavior when a file is modified:
21
21
  - hot-reload Hot reloads local changes to CSS and sections (default)
22
22
  - full-page Always refreshes the entire page
23
23
  - off Deactivate live reload`,default:"hot-reload",options:["hot-reload","full-page","off"],env:"SHOPIFY_FLAG_LIVE_RELOAD"}),"error-overlay":t.Flags.string({description:`Controls the visibility of the error overlay when an theme asset upload fails:
24
24
  - silent Prevents the error overlay from appearing.
25
25
  - default Displays the error overlay.
26
- `,options:["silent","default"],default:"default",env:"SHOPIFY_FLAG_ERROR_OVERLAY"}),poll:t.Flags.boolean({hidden:!0,description:"Force polling to detect file changes.",env:"SHOPIFY_FLAG_POLL"}),"theme-editor-sync":t.Flags.boolean({description:"Synchronize Theme Editor updates in the local theme files.",env:"SHOPIFY_FLAG_THEME_EDITOR_SYNC"}),"standard-events-inspector":t.Flags.boolean({description:"Inject the standard events inspector into storefront HTML.",env:"SHOPIFY_FLAG_STANDARD_EVENTS_INSPECTOR",default:!1}),"reconciliation-strategy":t.Flags.string({description:"How to resolve JSON conflicts when --theme-editor-sync is enabled. Use keep-local to keep local files, keep-remote to keep remote files, or abort to fail instead of prompting.",options:["keep-local","keep-remote","abort"],env:"SHOPIFY_FLAG_RECONCILIATION_STRATEGY",dependsOn:["theme-editor-sync"]}),port:d({description:"Local port to serve theme preview from.",env:"SHOPIFY_FLAG_PORT"}),theme:t.Flags.string({char:"t",description:"Theme ID or name of the remote theme.",env:"SHOPIFY_FLAG_THEME_ID"}),listing:t.Flags.string({description:"The listing preset to use for multi-preset themes. Applies preset files from listings/[preset-name] directory.",env:"SHOPIFY_FLAG_LISTING"}),nodelete:t.Flags.boolean({char:"n",description:"Prevents files from being deleted in the remote theme when a file has been deleted locally. This applies to files that are deleted while the command is running, and files that have been deleted locally before the command is run.",env:"SHOPIFY_FLAG_NODELETE"}),only:t.Flags.string({char:"o",multiple:!0,description:"Hot reload only files that match the specified pattern.",env:"SHOPIFY_FLAG_ONLY"}),ignore:t.Flags.string({char:"x",multiple:!0,description:"Skip hot reloading any files that match the specified pattern.",env:"SHOPIFY_FLAG_IGNORE"}),force:t.Flags.boolean({hidden:!0,char:"f",description:"Proceed without confirmation, if current directory does not seem to be theme directory.",env:"SHOPIFY_FLAG_FORCE"}),notify:t.Flags.string({description:"The file path or URL. The file path is to a file that you want updated on idle. The URL path is where you want a webhook posted to report on file changes.",env:"SHOPIFY_FLAG_NOTIFY"}),open:t.Flags.boolean({description:"Automatically launch the theme preview in your default web browser.",env:"SHOPIFY_FLAG_OPEN",default:!1}),"store-password":t.Flags.string({description:"The password for storefronts with password protection.",env:"SHOPIFY_FLAG_STORE_PASSWORD"}),"allow-live":t.Flags.boolean({description:"Allow development on a live theme.",char:"a",env:"SHOPIFY_FLAG_ALLOW_LIVE",default:!1})};static multiEnvironmentsFlags=null;async command(o,i){let{ignore:w=[],only:g=[]}=o;l("theme-command:dev:single-env:authenticated");let r,e;if(o.theme){let n={filter:{theme:o.theme}};r=await u(i,n),e={...o,theme:r.id.toString(),store:i.storeFqdn}}else{r=await new m(i).findOrCreate();let n=o["theme-editor-sync"]&&r.createdAtRuntime;e={...o,theme:r.id.toString(),store:i.storeFqdn,"overwrite-json":n}}await f(r,"start development mode",o["allow-live"])&&(await v({adminSession:i,commandConfig:this.config,directory:e.path,store:e.store,password:e.password,storePassword:e["store-password"],theme:r,listing:e.listing,host:e.host,port:e.port,"live-reload":e["live-reload"],"error-overlay":e["error-overlay"],force:e.force,open:e.open,"theme-editor-sync":e["theme-editor-sync"],"standard-events-inspector":e["standard-events-inspector"],reconciliationStrategy:e["reconciliation-strategy"],noDelete:e.nodelete,ignore:w,only:g,notify:e.notify}),await y({path:e.path,password:e.password,store:e.store,force:e.force,verbose:e.verbose,noColor:e["no-color"],silent:!0}))}};export{s as a};
26
+ `,options:["silent","default"],default:"default",env:"SHOPIFY_FLAG_ERROR_OVERLAY"}),poll:t.Flags.boolean({hidden:!0,description:"Force polling to detect file changes.",env:"SHOPIFY_FLAG_POLL"}),"theme-editor-sync":t.Flags.boolean({description:"Synchronize Theme Editor updates in the local theme files.",env:"SHOPIFY_FLAG_THEME_EDITOR_SYNC"}),"standard-events-inspector":t.Flags.boolean({description:"Inject the standard events inspector into storefront HTML.",env:"SHOPIFY_FLAG_STANDARD_EVENTS_INSPECTOR",default:!1}),"reconciliation-strategy":t.Flags.string({description:"How to resolve JSON conflicts when --theme-editor-sync is enabled. Use keep-local to keep local files, keep-remote to keep remote files, or abort to fail instead of prompting.",options:["keep-local","keep-remote","abort"],env:"SHOPIFY_FLAG_RECONCILIATION_STRATEGY",dependsOn:["theme-editor-sync"]}),port:d({description:"Local port to serve theme preview from.",env:"SHOPIFY_FLAG_PORT"}),theme:t.Flags.string({char:"t",description:"Theme ID or name of the remote theme.",env:"SHOPIFY_FLAG_THEME_ID"}),listing:t.Flags.string({description:"The listing preset to use for multi-preset themes. Applies preset files from listings/[preset-name] directory.",env:"SHOPIFY_FLAG_LISTING"}),nodelete:t.Flags.boolean({char:"n",description:"Prevents files from being deleted in the remote theme when a file has been deleted locally. This applies to files that are deleted while the command is running, and files that have been deleted locally before the command is run.",env:"SHOPIFY_FLAG_NODELETE"}),only:t.Flags.string({char:"o",multiple:!0,description:"Hot reload only files that match the specified pattern.",env:"SHOPIFY_FLAG_ONLY"}),ignore:t.Flags.string({char:"x",multiple:!0,description:"Skip hot reloading any files that match the specified pattern.",env:"SHOPIFY_FLAG_IGNORE"}),force:t.Flags.boolean({hidden:!0,char:"f",description:"Proceed without confirmation, if current directory does not seem to be theme directory.",env:"SHOPIFY_FLAG_FORCE"}),notify:t.Flags.string({description:"The file path or URL. The file path is to a file that you want updated on idle. The URL path is where you want a webhook posted to report on file changes.",env:"SHOPIFY_FLAG_NOTIFY"}),open:t.Flags.boolean({description:"Automatically launch the theme preview in your default web browser.",env:"SHOPIFY_FLAG_OPEN",default:!1}),"store-password":t.Flags.string({description:"The password for storefronts with password protection.",env:"SHOPIFY_FLAG_STORE_PASSWORD"}),"allow-live":t.Flags.boolean({description:"Allow development on a live theme.",char:"a",env:"SHOPIFY_FLAG_ALLOW_LIVE",default:!1})};static multiEnvironmentsFlags=null;async command(o,i){let{ignore:g=[],only:w=[]}=o;l("theme-command:dev:single-env:authenticated");let r,e;if(o.theme){let n={filter:{theme:o.theme}};r=await u(i,n),e={...o,theme:r.id.toString(),store:i.storeFqdn}}else{r=await new m(i).findOrCreate();let n=o["theme-editor-sync"]&&r.createdAtRuntime;e={...o,theme:r.id.toString(),store:i.storeFqdn,"overwrite-json":n}}await f(r,"start development mode",o["allow-live"])&&(await v({adminSession:i,commandConfig:this.config,directory:e.path,store:e.store,password:e.password,storePassword:e["store-password"],theme:r,listing:e.listing,host:e.host,port:e.port,"live-reload":e["live-reload"],"error-overlay":e["error-overlay"],force:e.force,open:e.open,"theme-editor-sync":e["theme-editor-sync"],"standard-events-inspector":e["standard-events-inspector"],reconciliationStrategy:e["reconciliation-strategy"],noDelete:e.nodelete,ignore:g,only:w,notify:e.notify}),await y({path:e.path,password:e.password,store:e.store,force:e.force,verbose:e.verbose,noColor:e["no-color"],silent:!0}))}};export{s as a};