shopify 4.9.0 → 4.9.2

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 (353) hide show
  1. package/dist/analytics-H2ANKZ2S.js +1 -0
  2. package/dist/analytics-Q6HJRPRX.js +1 -0
  3. package/dist/assets/hydrogen/starter/CHANGELOG.md +14 -0
  4. package/dist/assets/hydrogen/starter/package.json +2 -2
  5. package/dist/bootstrap.js +1 -1
  6. package/dist/chunk-246AZCDT.js +1 -0
  7. package/dist/{chunk-VZUHMW5E.js → chunk-2NMICU24.js} +1 -1
  8. package/dist/{chunk-Y5ZN62VF.js → chunk-2P5DUPT7.js} +1 -1
  9. package/dist/{chunk-SGBLCVUX.js → chunk-2R2PKQQV.js} +1 -1
  10. package/dist/{chunk-BL5JWD3Y.js → chunk-2VDCTMLY.js} +1 -1
  11. package/dist/{chunk-ECEOBSGD.js → chunk-2X3HYG4B.js} +1 -1
  12. package/dist/{chunk-23K3B23N.js → chunk-3ATOVFLZ.js} +1 -1
  13. package/dist/{chunk-L5XWYTHY.js → chunk-3E3MCY5O.js} +3 -3
  14. package/dist/{chunk-S7536EWZ.js → chunk-3EEH3A27.js} +1 -1
  15. package/dist/{chunk-YJWNM4XO.js → chunk-3F42A3XV.js} +2 -2
  16. package/dist/{chunk-ZUVAHONX.js → chunk-3NRGGEGU.js} +1 -1
  17. package/dist/{chunk-CSRNHTHO.js → chunk-3NUQGW57.js} +1 -1
  18. package/dist/{chunk-72HS7MHV.js → chunk-3U2MYUWG.js} +1 -1
  19. package/dist/{chunk-PXXTSW6I.js → chunk-3ZL4TDTH.js} +1 -1
  20. package/dist/{chunk-2W6M7YDY.js → chunk-4565O5TG.js} +1 -1
  21. package/dist/{chunk-5HONV6NQ.js → chunk-46U6C6C6.js} +1 -1
  22. package/dist/{chunk-E5ND6RBL.js → chunk-4QEALPWD.js} +1 -1
  23. package/dist/{chunk-QJST4LZX.js → chunk-4S2WKMLJ.js} +1 -1
  24. package/dist/{chunk-N56BJ3F7.js → chunk-4TF7ER72.js} +1 -1
  25. package/dist/{chunk-6RBCFXJT.js → chunk-525BMYNR.js} +1 -1
  26. package/dist/{chunk-OASB6XPV.js → chunk-55QTRPZ2.js} +1 -1
  27. package/dist/{chunk-SXPWOYLT.js → chunk-5BO5HCN6.js} +1 -1
  28. package/dist/{chunk-GDQLA5NB.js → chunk-5JW2EYSE.js} +1 -1
  29. package/dist/{chunk-PBBZNGS4.js → chunk-5TQOMAJS.js} +1 -1
  30. package/dist/{chunk-CACPRKUF.js → chunk-65I35VBS.js} +1 -1
  31. package/dist/{chunk-D3K42KBL.js → chunk-6H3HVSO5.js} +1 -1
  32. package/dist/{chunk-3DMDSAWK.js → chunk-6NLGZGYE.js} +1 -1
  33. package/dist/{chunk-DKJPE42V.js → chunk-6SO5GA6P.js} +1 -1
  34. package/dist/{chunk-VFP3PUGZ.js → chunk-7ARGLS6W.js} +3 -3
  35. package/dist/chunk-7E4MJCVE.js +10 -0
  36. package/dist/{chunk-OG7SF4FU.js → chunk-7EDXMGBQ.js} +1 -1
  37. package/dist/{chunk-YAH5WFYR.js → chunk-7GJYJ6DU.js} +1 -1
  38. package/dist/{chunk-LV2IWYGL.js → chunk-7IRPE3M5.js} +1 -1
  39. package/dist/{chunk-OETFY7FE.js → chunk-7MMPQMU7.js} +1 -1
  40. package/dist/{chunk-BOFCBTX7.js → chunk-7ZNR4YL4.js} +1 -1
  41. package/dist/{chunk-NTVEJYKI.js → chunk-AKP4QAGL.js} +1 -1
  42. package/dist/{chunk-I4FGM6UH.js → chunk-ANHSOQTZ.js} +1 -1
  43. package/dist/{chunk-77B77IGP.js → chunk-AVOSD4NV.js} +1 -1
  44. package/dist/{chunk-TJJVX7CU.js → chunk-B477XHLZ.js} +1 -1
  45. package/dist/{chunk-7DRKDQRT.js → chunk-BK4VCXDD.js} +1 -1
  46. package/dist/{chunk-55PABKRC.js → chunk-BLBJT7BM.js} +1 -1
  47. package/dist/{chunk-YBQKJHZW.js → chunk-BLCR7BXU.js} +1 -1
  48. package/dist/{chunk-53U6XS3J.js → chunk-BPVXYM6G.js} +1 -1
  49. package/dist/{chunk-WPUQTUDX.js → chunk-BVR3GF2L.js} +1 -1
  50. package/dist/{chunk-MRVQ6XRW.js → chunk-BVVYKX4D.js} +1 -1
  51. package/dist/{chunk-XTYSJIZY.js → chunk-C4GEP3CX.js} +1 -1
  52. package/dist/{chunk-RHNFWHFY.js → chunk-CDIKRQ6M.js} +1 -1
  53. package/dist/{chunk-LSWFHTJT.js → chunk-CGH5Y6XE.js} +1 -1
  54. package/dist/{chunk-44QTWXOJ.js → chunk-CHRFYG6W.js} +1 -1
  55. package/dist/{chunk-B4RPJYDH.js → chunk-CNAMKKAK.js} +1 -1
  56. package/dist/{chunk-PGTKKP2B.js → chunk-D2S566HF.js} +1 -1
  57. package/dist/{chunk-MVVHISCR.js → chunk-DGOBYP74.js} +1 -1
  58. package/dist/{chunk-NYABB6XW.js → chunk-DH5E6NM3.js} +1 -1
  59. package/dist/{chunk-LOTGSNS5.js → chunk-DTGIMRBX.js} +1 -1
  60. package/dist/chunk-DV77BSKW.js +1 -0
  61. package/dist/{chunk-YQQHBFMA.js → chunk-E64OFJHF.js} +1 -1
  62. package/dist/{chunk-N4DE5H65.js → chunk-EGJQEKAO.js} +1 -1
  63. package/dist/{chunk-7Y4X5I6N.js → chunk-EJY4LA2S.js} +1 -1
  64. package/dist/{chunk-LYPNQFWX.js → chunk-ELJ34WWD.js} +1 -1
  65. package/dist/{chunk-5BLXN5WU.js → chunk-ELQ5NPPB.js} +1 -1
  66. package/dist/{chunk-XFZDFDZV.js → chunk-EMKLN75K.js} +1 -1
  67. package/dist/{chunk-QTEWTPAQ.js → chunk-EMRUM6AA.js} +1 -1
  68. package/dist/{chunk-4XSYMLQG.js → chunk-EP5HIGAL.js} +1 -1
  69. package/dist/{chunk-IWML2HLC.js → chunk-ER7ZTF26.js} +1 -1
  70. package/dist/{chunk-VFO5OYQ4.js → chunk-EXKTQF26.js} +1 -1
  71. package/dist/{chunk-FW5HGFSZ.js → chunk-EZ5F4ZFY.js} +3 -3
  72. package/dist/{chunk-3AASYIOA.js → chunk-FICC6IFE.js} +1 -1
  73. package/dist/{chunk-QSKOR3ED.js → chunk-FNKTF2OF.js} +1 -1
  74. package/dist/{chunk-6GA56I3E.js → chunk-FQKURDZR.js} +1 -1
  75. package/dist/{chunk-SDFO7P2M.js → chunk-FU4UVINZ.js} +1 -1
  76. package/dist/{chunk-CHLSNYF7.js → chunk-G627WGIC.js} +2 -2
  77. package/dist/{chunk-FL34EOXG.js → chunk-GPJJA3FX.js} +1 -1
  78. package/dist/{chunk-PXD2WJOI.js → chunk-GS52MX5F.js} +1 -1
  79. package/dist/{chunk-ZPCCSPAE.js → chunk-HKZ75UKL.js} +1 -1
  80. package/dist/chunk-HVU3D3ZU.js +275 -0
  81. package/dist/{chunk-BPIQ4YTW.js → chunk-HYC3JXR4.js} +1 -1
  82. package/dist/{chunk-JOJRABPY.js → chunk-HZJHGHLN.js} +1 -1
  83. package/dist/{chunk-NF7MOA4K.js → chunk-I2LILWDI.js} +1 -1
  84. package/dist/{chunk-JA2QZ635.js → chunk-I3J63RFV.js} +1 -1
  85. package/dist/{chunk-GALDYSEX.js → chunk-I55L6FOM.js} +1 -1
  86. package/dist/{chunk-5HEBS5DG.js → chunk-IESHPQLC.js} +1 -1
  87. package/dist/{chunk-ET2CGROE.js → chunk-IGE4Y5SE.js} +1 -1
  88. package/dist/{chunk-QILWHHAQ.js → chunk-IJLD5UYC.js} +1 -1
  89. package/dist/{chunk-IISE7SBT.js → chunk-IOS4IDZ2.js} +1 -1
  90. package/dist/{chunk-HSZC2LBB.js → chunk-IQIUFTR6.js} +1 -1
  91. package/dist/{chunk-WU7MSL3I.js → chunk-J66WAKXN.js} +1 -1
  92. package/dist/{chunk-BJOJNAKH.js → chunk-J7ZG6SO3.js} +1 -1
  93. package/dist/{chunk-PK4ID32C.js → chunk-JAX56OYG.js} +1 -1
  94. package/dist/{chunk-R757TSQ6.js → chunk-JAY7AGAG.js} +1 -1
  95. package/dist/{chunk-SJARQZVN.js → chunk-JCKA3O5A.js} +1 -1
  96. package/dist/{chunk-YD66PU3Y.js → chunk-JCO2SDDR.js} +1 -1
  97. package/dist/{chunk-TOLPNBZK.js → chunk-JFBCE4HN.js} +1 -1
  98. package/dist/{chunk-OM243CQ6.js → chunk-JJHJYBPQ.js} +1 -1
  99. package/dist/{chunk-Z35PUKKP.js → chunk-JKWB7WTO.js} +1 -1
  100. package/dist/{chunk-ASUARYJD.js → chunk-JLGXJHPX.js} +1 -1
  101. package/dist/{chunk-TSLZNTFM.js → chunk-JUCOIXG5.js} +1 -1
  102. package/dist/{chunk-HSTNTHWM.js → chunk-JUVJNIEA.js} +1 -1
  103. package/dist/{chunk-GJJBOCKD.js → chunk-JWDR66AS.js} +1 -1
  104. package/dist/chunk-KOYBR5MV.js +1 -0
  105. package/dist/{chunk-7IGMIDKK.js → chunk-KPNUSDCW.js} +1 -1
  106. package/dist/{chunk-7ZSN2QT5.js → chunk-KY36HSIB.js} +1 -1
  107. package/dist/{chunk-2OHSGC4Q.js → chunk-KYBZ2MBA.js} +1 -1
  108. package/dist/{chunk-74HXMIDM.js → chunk-LIQSNIB3.js} +1 -1
  109. package/dist/{chunk-KLYJDAP6.js → chunk-LWF4EV22.js} +1 -1
  110. package/dist/{chunk-3T2WMZHC.js → chunk-M7QFZQ23.js} +1 -1
  111. package/dist/{chunk-KVROYIUQ.js → chunk-MHZSSRHP.js} +1 -1
  112. package/dist/{chunk-TNXZWQZU.js → chunk-MIP2Y34N.js} +1 -1
  113. package/dist/{chunk-WCAGYCT7.js → chunk-MP5NZL7C.js} +1 -1
  114. package/dist/{chunk-5RL6DKWR.js → chunk-MQZPASSP.js} +1 -1
  115. package/dist/{chunk-3ZK5JZLY.js → chunk-MW3HFOPD.js} +1 -1
  116. package/dist/{chunk-EYSZRIUL.js → chunk-N4AR2B6D.js} +1 -1
  117. package/dist/{chunk-UFU2LGFK.js → chunk-NDMISEDF.js} +1 -1
  118. package/dist/{chunk-CPFAATMO.js → chunk-NLKO2J7T.js} +1 -1
  119. package/dist/{chunk-VDDNDA5K.js → chunk-NS4FUSSK.js} +1 -1
  120. package/dist/{chunk-PZHE37Z4.js → chunk-OCQZ2ULI.js} +1 -1
  121. package/dist/{chunk-4A7FPJVT.js → chunk-OERMQ2FP.js} +1 -1
  122. package/dist/{chunk-T234RERA.js → chunk-OIQVPTNQ.js} +1 -1
  123. package/dist/{chunk-G7OIACY5.js → chunk-OMEWUFUL.js} +1 -1
  124. package/dist/{chunk-O6E7YL7N.js → chunk-OXN2DID2.js} +1 -1
  125. package/dist/{chunk-IBTQO3JD.js → chunk-P2MVR6CG.js} +107 -107
  126. package/dist/{chunk-E75DJTAF.js → chunk-P6TOIMMF.js} +1 -1
  127. package/dist/{chunk-6IL3B5Z5.js → chunk-PFIQR7XS.js} +1 -1
  128. package/dist/{chunk-2KLXRVGQ.js → chunk-PG6XEOYF.js} +38 -38
  129. package/dist/{chunk-Q34PKJRR.js → chunk-PGE4HGLA.js} +1 -1
  130. package/dist/{chunk-ZHJ6KA43.js → chunk-PI6FLLDD.js} +1 -1
  131. package/dist/{chunk-HDQXFGYG.js → chunk-PIZDYS7T.js} +60 -60
  132. package/dist/{chunk-Q45XAEG2.js → chunk-PQCALXSD.js} +1 -1
  133. package/dist/{chunk-G54BKNIX.js → chunk-PQH4U2XV.js} +1 -1
  134. package/dist/{chunk-ZSJXZCAW.js → chunk-PQMKPXFV.js} +1 -1
  135. package/dist/{chunk-LQLFMDVD.js → chunk-PV5C6Q2P.js} +1 -1
  136. package/dist/{chunk-CMICT4XI.js → chunk-PYILLIGT.js} +1 -1
  137. package/dist/{chunk-55NKAIIT.js → chunk-Q26ES5T3.js} +1 -1
  138. package/dist/{chunk-DGMRL5DQ.js → chunk-Q4TZD2M6.js} +1 -1
  139. package/dist/{chunk-QAXFCAOV.js → chunk-Q555FV2X.js} +1 -1
  140. package/dist/{chunk-YX5GRXRS.js → chunk-Q7PF4VKI.js} +23 -23
  141. package/dist/{chunk-PVOWU77O.js → chunk-QA2NOPXG.js} +1 -1
  142. package/dist/{chunk-5XO6PAMV.js → chunk-QLHPTMIH.js} +1 -1
  143. package/dist/{chunk-7QQPAT4L.js → chunk-QMJZFKKU.js} +1 -1
  144. package/dist/{chunk-3SG5EJFC.js → chunk-QN6SITWN.js} +1 -1
  145. package/dist/{chunk-JROJL6RV.js → chunk-R43LXE66.js} +1 -1
  146. package/dist/chunk-R6IJRVVM.js +70 -0
  147. package/dist/{chunk-XBSWZ6BT.js → chunk-RAQP66LR.js} +1 -1
  148. package/dist/{chunk-Z3XIZMEM.js → chunk-RBPMV3KB.js} +1 -1
  149. package/dist/{chunk-SKRUMRB4.js → chunk-RCYQPOJW.js} +88 -88
  150. package/dist/{chunk-ZSVR5NEO.js → chunk-RDO5IWB5.js} +1 -1
  151. package/dist/{chunk-A54V5UCD.js → chunk-RGZCV56L.js} +1 -1
  152. package/dist/{chunk-ZVDFCUJT.js → chunk-RW2MONAS.js} +1 -1
  153. package/dist/{chunk-2LZQM5JG.js → chunk-RY6TZDVV.js} +1 -1
  154. package/dist/{chunk-2YRVHJEY.js → chunk-SDHDDNKM.js} +1 -1
  155. package/dist/{chunk-AD4S2VEI.js → chunk-SHBB5GST.js} +1 -1
  156. package/dist/{chunk-JWDUSMCA.js → chunk-SQIESCOJ.js} +1 -1
  157. package/dist/{chunk-I7GYNNCU.js → chunk-SRDKLZ4O.js} +1 -1
  158. package/dist/{chunk-QQN4PJZD.js → chunk-SWNY3RUM.js} +1 -1
  159. package/dist/{chunk-RCIU7NHA.js → chunk-SYNCIFJ6.js} +1 -1
  160. package/dist/{chunk-C6FZII5S.js → chunk-SZ2JOXTG.js} +1 -1
  161. package/dist/{chunk-AS2O62JX.js → chunk-T3JUBPBU.js} +1 -1
  162. package/dist/{chunk-TO7TXDLU.js → chunk-T6TYF72N.js} +1 -1
  163. package/dist/{chunk-5BYVVXGD.js → chunk-TEASB2WU.js} +1 -1
  164. package/dist/{chunk-6DHY67FO.js → chunk-THW6UDZH.js} +1 -1
  165. package/dist/{chunk-22LJALHJ.js → chunk-TPPBEVNQ.js} +1 -1
  166. package/dist/chunk-TQ7MHGY4.js +1 -0
  167. package/dist/{chunk-LQ7ENG4V.js → chunk-TQ7URMGS.js} +1 -1
  168. package/dist/{chunk-ADW7ECNU.js → chunk-TUE67I2F.js} +1 -1
  169. package/dist/{chunk-P3Z5RLVV.js → chunk-TWS34WUT.js} +1 -1
  170. package/dist/{chunk-QBGSSUJP.js → chunk-U5L2P36D.js} +1 -1
  171. package/dist/{chunk-ZO4IBP4B.js → chunk-UB2LAIXS.js} +1 -1
  172. package/dist/{chunk-4Y22EM45.js → chunk-UMSO6MOI.js} +1 -1
  173. package/dist/{chunk-Q3O3AFZT.js → chunk-UOKX3AME.js} +1 -1
  174. package/dist/{chunk-2Q3WIH7S.js → chunk-UVC3IXM3.js} +1 -1
  175. package/dist/chunk-UWHAOGO4.js +4 -0
  176. package/dist/{chunk-OBYY45BX.js → chunk-UYRXUGLY.js} +1 -1
  177. package/dist/{chunk-JTPVSO6Y.js → chunk-VXGXK66W.js} +1 -1
  178. package/dist/{chunk-JQKB3D37.js → chunk-VZLEYZLX.js} +1 -1
  179. package/dist/{chunk-2YFB3PTV.js → chunk-W56I6HOT.js} +1 -1
  180. package/dist/{chunk-7HDJBEBP.js → chunk-WINVPFT5.js} +1 -1
  181. package/dist/{chunk-SDJNAUU6.js → chunk-WNE2MZAZ.js} +1 -1
  182. package/dist/{chunk-OEZATTOS.js → chunk-WXT5AKZV.js} +1 -1
  183. package/dist/{chunk-W7CBJNXD.js → chunk-WZEKBD7B.js} +1 -1
  184. package/dist/{chunk-IUZZWXJG.js → chunk-X6HLGOIV.js} +1 -1
  185. package/dist/{chunk-4WACZNFF.js → chunk-XE5QH4D7.js} +1 -1
  186. package/dist/{chunk-XCNJL7ES.js → chunk-XRJ2GQ24.js} +1 -1
  187. package/dist/{chunk-3WVEL423.js → chunk-XTKXBQVA.js} +1 -1
  188. package/dist/{chunk-6ILP6QCH.js → chunk-YIV3CWED.js} +1 -1
  189. package/dist/{chunk-GVRFO4CV.js → chunk-YKYJOUV7.js} +1 -1
  190. package/dist/{chunk-DYA5UUXL.js → chunk-YXKMPCFH.js} +1 -1
  191. package/dist/{chunk-NGN7U2UF.js → chunk-Z57YWHOE.js} +1 -1
  192. package/dist/{chunk-4TQFTZVD.js → chunk-Z5SFLTH6.js} +1 -1
  193. package/dist/{chunk-QWDJRSJJ.js → chunk-ZJ4H3XEL.js} +1 -1
  194. package/dist/{chunk-FCULF3JA.js → chunk-ZZ7SOJHH.js} +1 -1
  195. package/dist/cli/commands/app/app-logs/sources.js +1 -1
  196. package/dist/cli/commands/app/build.js +1 -1
  197. package/dist/cli/commands/app/bulk/cancel.js +1 -1
  198. package/dist/cli/commands/app/bulk/execute.js +1 -1
  199. package/dist/cli/commands/app/bulk/status.js +1 -1
  200. package/dist/cli/commands/app/config/link.js +1 -1
  201. package/dist/cli/commands/app/config/pull.js +1 -1
  202. package/dist/cli/commands/app/config/use.js +1 -1
  203. package/dist/cli/commands/app/config/validate.js +1 -1
  204. package/dist/cli/commands/app/demo/watcher.js +1 -1
  205. package/dist/cli/commands/app/deploy.js +1 -1
  206. package/dist/cli/commands/app/dev/clean.js +1 -1
  207. package/dist/cli/commands/app/dev.js +1 -1
  208. package/dist/cli/commands/app/env/pull.js +1 -1
  209. package/dist/cli/commands/app/env/show.js +1 -1
  210. package/dist/cli/commands/app/execute.js +1 -1
  211. package/dist/cli/commands/app/function/build.js +1 -1
  212. package/dist/cli/commands/app/function/info.js +1 -1
  213. package/dist/cli/commands/app/function/replay.js +1 -1
  214. package/dist/cli/commands/app/function/run.js +1 -1
  215. package/dist/cli/commands/app/function/schema.js +1 -1
  216. package/dist/cli/commands/app/function/typegen.js +1 -1
  217. package/dist/cli/commands/app/generate/extension.js +1 -1
  218. package/dist/cli/commands/app/graphiql.js +1 -1
  219. package/dist/cli/commands/app/import/channel-config.js +1 -1
  220. package/dist/cli/commands/app/import/custom-data-definitions.js +1 -1
  221. package/dist/cli/commands/app/import/dashboard-extensions.js +1 -1
  222. package/dist/cli/commands/app/import-custom-data-definitions.js +1 -1
  223. package/dist/cli/commands/app/import-extensions.js +1 -1
  224. package/dist/cli/commands/app/info.js +1 -1
  225. package/dist/cli/commands/app/init.js +1 -1
  226. package/dist/cli/commands/app/logs.js +1 -1
  227. package/dist/cli/commands/app/release.js +1 -1
  228. package/dist/cli/commands/app/security/check.js +1 -1
  229. package/dist/cli/commands/app/security/clean.js +1 -1
  230. package/dist/cli/commands/app/security/instructions.js +1 -1
  231. package/dist/cli/commands/app/security/record.js +1 -1
  232. package/dist/cli/commands/app/security/review.js +1 -1
  233. package/dist/cli/commands/app/subscription-migrations/cancel.js +1 -1
  234. package/dist/cli/commands/app/subscription-migrations/list.js +1 -1
  235. package/dist/cli/commands/app/subscription-migrations/schedule.js +1 -1
  236. package/dist/cli/commands/app/subscription-migrations/status.js +1 -1
  237. package/dist/cli/commands/app/subscription-migrations/unschedule.js +1 -1
  238. package/dist/cli/commands/app/versions/list.js +1 -1
  239. package/dist/cli/commands/app/webhook/trigger.js +1 -1
  240. package/dist/cli/commands/auth/login.js +1 -1
  241. package/dist/cli/commands/auth/logout.js +1 -1
  242. package/dist/cli/commands/cache/clear.js +1 -1
  243. package/dist/cli/commands/config/autoupgrade/off.js +1 -1
  244. package/dist/cli/commands/config/autoupgrade/on.js +1 -1
  245. package/dist/cli/commands/config/autoupgrade/status.js +1 -1
  246. package/dist/cli/commands/debug/command-flags.js +1 -1
  247. package/dist/cli/commands/doc/fetch.js +1 -1
  248. package/dist/cli/commands/doc/search.js +1 -1
  249. package/dist/cli/commands/docs/generate.js +1 -1
  250. package/dist/cli/commands/doctor-release/doctor-release.js +1 -1
  251. package/dist/cli/commands/doctor-release/theme/index.js +1 -1
  252. package/dist/cli/commands/help.js +1 -1
  253. package/dist/cli/commands/kitchen-sink/async.js +1 -1
  254. package/dist/cli/commands/kitchen-sink/index.js +1 -1
  255. package/dist/cli/commands/kitchen-sink/prompts.js +1 -1
  256. package/dist/cli/commands/kitchen-sink/static.js +1 -1
  257. package/dist/cli/commands/notifications/generate.js +1 -1
  258. package/dist/cli/commands/notifications/list.js +1 -1
  259. package/dist/cli/commands/organization/list.js +1 -1
  260. package/dist/cli/commands/search.js +1 -1
  261. package/dist/cli/commands/send-analytics.js +1 -1
  262. package/dist/cli/commands/theme/check.js +1 -1
  263. package/dist/cli/commands/theme/console.js +1 -1
  264. package/dist/cli/commands/theme/delete.js +1 -1
  265. package/dist/cli/commands/theme/dev.js +1 -1
  266. package/dist/cli/commands/theme/duplicate.js +1 -1
  267. package/dist/cli/commands/theme/info.js +1 -1
  268. package/dist/cli/commands/theme/init.js +1 -1
  269. package/dist/cli/commands/theme/language-server.js +1 -1
  270. package/dist/cli/commands/theme/list.js +1 -1
  271. package/dist/cli/commands/theme/metafields/pull.js +1 -1
  272. package/dist/cli/commands/theme/open.js +1 -1
  273. package/dist/cli/commands/theme/package.js +1 -1
  274. package/dist/cli/commands/theme/preview.js +1 -1
  275. package/dist/cli/commands/theme/profile.js +1 -1
  276. package/dist/cli/commands/theme/publish.js +1 -1
  277. package/dist/cli/commands/theme/pull.js +1 -1
  278. package/dist/cli/commands/theme/push.js +1 -1
  279. package/dist/cli/commands/theme/rename.js +1 -1
  280. package/dist/cli/commands/theme/share.js +1 -1
  281. package/dist/cli/commands/upgrade.js +1 -1
  282. package/dist/cli/commands/version.js +1 -1
  283. package/dist/cli/help.js +1 -1
  284. package/dist/{command-json-schema-Y3N2NUZN.js → command-json-schema-HYYJSZAH.js} +1 -1
  285. package/dist/command-registry.js +1 -1
  286. package/dist/{conf-store-5ZA3ILWV.js → conf-store-CDZ5YSQM.js} +1 -1
  287. package/dist/{custom-oclif-loader-VQKMCXNH.js → custom-oclif-loader-NVOK22CJ.js} +1 -1
  288. package/dist/{deprecations-PFQXWNF6.js → deprecations-33DG6ZUL.js} +1 -1
  289. package/dist/dist-DODCXJ2A.js +1 -0
  290. package/dist/dist-YXMAKIFS.js +1 -0
  291. package/dist/environments-KBRQNE4R.js +1 -0
  292. package/dist/{error-FBSXLW22.js → error-V77H2UYX.js} +1 -1
  293. package/dist/error-handler-JY3ZKE2G.js +1 -0
  294. package/dist/{fs-ZLV5W4TV.js → fs-SKH3XZU7.js} +1 -1
  295. package/dist/hooks/did-you-mean.js +1 -1
  296. package/dist/hooks/hydrogen-init.js +1 -1
  297. package/dist/hooks/plugin-plugins.js +1 -1
  298. package/dist/hooks/postrun.js +1 -1
  299. package/dist/hooks/prerun.js +1 -1
  300. package/dist/hooks/public-metadata.js +1 -1
  301. package/dist/hooks/sensitive-metadata.js +1 -1
  302. package/dist/hooks/tunnel-provider.js +1 -1
  303. package/dist/hooks/tunnel-start.js +1 -1
  304. package/dist/index.js +1 -1
  305. package/dist/is-global-2G4BLF7H.js +1 -0
  306. package/dist/{json-error-2BL3UZ7H.js → json-error-WSMAL66C.js} +1 -1
  307. package/dist/lib-55QUD4AJ.js +1 -0
  308. package/dist/lib-PH52G55H.js +1 -0
  309. package/dist/lib-TYM5B75S.js +1 -0
  310. package/dist/{local-KAZJAYLX.js → local-G2Z24BHM.js} +1 -1
  311. package/dist/{metadata-M3ZE24WB.js → metadata-Y3RKC4P2.js} +1 -1
  312. package/dist/{morph-42EXMN3K.js → morph-BABFBRSW.js} +1 -1
  313. package/dist/{node-package-manager-RVPONQBY.js → node-package-manager-A7HTBJKY.js} +1 -1
  314. package/dist/notifications-system-E64OSVXF.js +1 -0
  315. package/dist/os-7VQXVZWF.js +1 -0
  316. package/dist/{output-SDE274Y5.js → output-ZFFHJGNK.js} +1 -1
  317. package/dist/system-ZLITSFDC.js +1 -0
  318. package/dist/tsconfig.tsbuildinfo +1 -1
  319. package/dist/typescript-ISACCMJN.js +1 -0
  320. package/dist/ui-YSFALYSL.js +1 -0
  321. package/dist/upgrade-I4JTR4LA.js +1 -0
  322. package/dist/version-AOVO47AW.js +1 -0
  323. package/dist/version-LQV54JBC.js +1 -0
  324. package/dist/{workerd-WRW4ZUYM.js → workerd-RNDPF36Q.js} +1 -1
  325. package/oclif.manifest.json +2 -2
  326. package/package.json +8 -8
  327. package/dist/analytics-QK4RFCB6.js +0 -1
  328. package/dist/analytics-R6I5APDB.js +0 -1
  329. package/dist/chunk-7Y7AZRL3.js +0 -10
  330. package/dist/chunk-F3TMLDLC.js +0 -1
  331. package/dist/chunk-GQZPGTG7.js +0 -278
  332. package/dist/chunk-RGIUP4FW.js +0 -1
  333. package/dist/chunk-SW5EWGBJ.js +0 -12
  334. package/dist/chunk-TMV37ENR.js +0 -64
  335. package/dist/chunk-WXV35TPE.js +0 -1
  336. package/dist/chunk-YGFEUXKQ.js +0 -1
  337. package/dist/chunk-ZOYSMJ27.js +0 -1
  338. package/dist/dist-4X53WJBQ.js +0 -1
  339. package/dist/dist-5M2V3YCM.js +0 -1
  340. package/dist/environments-3RUZ7F4Q.js +0 -1
  341. package/dist/error-handler-D5BURRJ7.js +0 -1
  342. package/dist/is-global-GZ5CIXQA.js +0 -1
  343. package/dist/lib-AD2G3QH3.js +0 -1
  344. package/dist/lib-VEVNMHDE.js +0 -1
  345. package/dist/lib-ZQW4E7QU.js +0 -1
  346. package/dist/notifications-system-MYEMV7JF.js +0 -1
  347. package/dist/os-DRUILZZR.js +0 -1
  348. package/dist/system-5FQ3L5PA.js +0 -1
  349. package/dist/typescript-5R4Y7PXE.js +0 -1
  350. package/dist/ui-TEZZM7SE.js +0 -1
  351. package/dist/upgrade-3PIVJYBL.js +0 -1
  352. package/dist/version-FMWTVLMF.js +0 -1
  353. package/dist/version-IAMVSP7U.js +0 -1
@@ -1 +1 @@
1
- import{b as a}from"./chunk-ZO4IBP4B.js";import{b as s}from"./chunk-FW5HGFSZ.js";import{za as i}from"./chunk-L5XWYTHY.js";import{b as m}from"./chunk-JA2QZ635.js";import{e as d,g as e}from"./chunk-VKWPEFWQ.js";e();var n=d(m(),1);var t=class c extends s{static description="List current notifications configured for the CLI.";static hidden=!0;static flags={"ignore-errors":n.Flags.boolean({hidden:!1,description:"Don't fail if an error occurs.",env:"SHOPIFY_FLAG_IGNORE_ERRORS"})};async run(){let{flags:f}=await this.parse(c);try{await a()}catch(r){let o="Error fetching notifications";if(r instanceof Error&&(o=o.concat(`: ${r.message}`)),await i(o,"expected_error"),!f["ignore-errors"])throw r}}};export{t as a};
1
+ import{b as a}from"./chunk-UB2LAIXS.js";import{b as s}from"./chunk-EZ5F4ZFY.js";import{ya as i}from"./chunk-3E3MCY5O.js";import{b as m}from"./chunk-I3J63RFV.js";import{e as d,g as e}from"./chunk-VKWPEFWQ.js";e();var n=d(m(),1);var t=class c extends s{static description="List current notifications configured for the CLI.";static hidden=!0;static flags={"ignore-errors":n.Flags.boolean({hidden:!1,description:"Don't fail if an error occurs.",env:"SHOPIFY_FLAG_IGNORE_ERRORS"})};async run(){let{flags:f}=await this.parse(c);try{await a()}catch(r){let o="Error fetching notifications";if(r instanceof Error&&(o=o.concat(`: ${r.message}`)),await i(o,"expected_error"),!f["ignore-errors"])throw r}}};export{t as a};
@@ -1,4 +1,4 @@
1
- import{a as f}from"./chunk-JROJL6RV.js";import{a as h}from"./chunk-YGFEUXKQ.js";import{a as c}from"./chunk-JTPVSO6Y.js";import{Ha as m}from"./chunk-2KLXRVGQ.js";import{b as l}from"./chunk-DGMRL5DQ.js";import{u as a}from"./chunk-L5XWYTHY.js";import{z as p}from"./chunk-SKRUMRB4.js";import{i as d}from"./chunk-FCULF3JA.js";import{b as C}from"./chunk-JA2QZ635.js";import{e as g,g as s}from"./chunk-VKWPEFWQ.js";s();s();async function v(t){let e=t.appContextResult.developerPlatformClient,o=t.appContextResult.remoteApp,r=await e.devSessionDelete({shopFqdn:t.store.shopDomain,appId:o.id});if(r.devSessionDelete?.userErrors.length){let u=r.devSessionDelete.userErrors.map(w=>w.message).join(`
1
+ import{a as f}from"./chunk-R43LXE66.js";import{a as h}from"./chunk-KOYBR5MV.js";import{a as c}from"./chunk-VXGXK66W.js";import{Ha as m}from"./chunk-PG6XEOYF.js";import{b as l}from"./chunk-Q4TZD2M6.js";import{u as a}from"./chunk-3E3MCY5O.js";import{z as p}from"./chunk-RCYQPOJW.js";import{i as d}from"./chunk-ZZ7SOJHH.js";import{b as C}from"./chunk-I3J63RFV.js";import{e as g,g as s}from"./chunk-VKWPEFWQ.js";s();s();async function v(t){let e=t.appContextResult.developerPlatformClient,o=t.appContextResult.remoteApp,r=await e.devSessionDelete({shopFqdn:t.store.shopDomain,appId:o.id});if(r.devSessionDelete?.userErrors.length){let u=r.devSessionDelete.userErrors.map(w=>w.message).join(`
2
2
  `);throw new d(`Failed to stop the dev preview: ${u}`)}p({headline:"Dev preview stopped.",body:[`The dev preview has been stopped on ${t.store.shopDomain} and the app's active version has been restored.`,"You can start it again with",{command:"shopify app dev"}]})}var i=g(C(),1);var n=class t extends h{static summary="Cleans up the dev preview from the selected store.";static descriptionWithMarkdown=`Stop the dev preview that was started with \`shopify app dev\`.
3
3
 
4
4
  It restores the app's active version to the selected development store.
@@ -1,2 +1,2 @@
1
- import{a as y}from"./chunk-YGFEUXKQ.js";import{a as d}from"./chunk-JTPVSO6Y.js";import{Ha as h}from"./chunk-2KLXRVGQ.js";import{b as g,c as l}from"./chunk-DGMRL5DQ.js";import{a as m}from"./chunk-5RL6DKWR.js";import{Ib as u,Vb as f,b as e}from"./chunk-YJWNM4XO.js";import{g as o}from"./chunk-VKWPEFWQ.js";o();o();function S(s){return s.allExtensions.filter(t=>t.isFunctionExtension).map(t=>({source:`extensions.${t.configuration.handle}`,namespace:"extensions",handle:t.handle,name:t.name,type:t.type,externalType:t.externalType,humanName:t.humanName,uid:t.uid,directory:t.directory,configurationPath:t.configurationPath,configuration:t.configuration,entrySourceFilePath:t.entrySourceFilePath,outputPath:t.outputPath,surface:t.surface,features:t.features,dependency:t.dependency}))}o();var P=e.object({source:e.string(),namespace:e.literal("extensions"),handle:e.string(),name:e.string(),type:e.string(),externalType:e.string(),humanName:e.string(),uid:e.string(),directory:e.string(),configurationPath:e.string(),configuration:e.record(e.unknown()),entrySourceFilePath:e.string(),outputPath:e.string(),surface:e.string(),features:e.array(e.string()),dependency:e.string().optional()}).strict(),c=m({name:"AppLogSourcesResult",schema:e.object({sources:e.array(P)}).strict(),definitions:{AppLogSource:P}});o();function j(s,t){if(t==="json"){u(c.encode({sources:s}));return}let r=new Map;s.forEach(({source:a})=>{let n=a.split(".");if(n.length>=2){let i=n[0];r.has(i)||r.set(i,[]),r.set(i,[...r.get(i),a])}});for(let[a,n]of r)u(f(a,n.join(`
1
+ import{a as y}from"./chunk-KOYBR5MV.js";import{a as d}from"./chunk-VXGXK66W.js";import{Ha as h}from"./chunk-PG6XEOYF.js";import{b as g,c as l}from"./chunk-Q4TZD2M6.js";import{a as m}from"./chunk-MQZPASSP.js";import{Ib as u,Vb as f,b as e}from"./chunk-3F42A3XV.js";import{g as o}from"./chunk-VKWPEFWQ.js";o();o();function S(s){return s.allExtensions.filter(t=>t.isFunctionExtension).map(t=>({source:`extensions.${t.configuration.handle}`,namespace:"extensions",handle:t.handle,name:t.name,type:t.type,externalType:t.externalType,humanName:t.humanName,uid:t.uid,directory:t.directory,configurationPath:t.configurationPath,configuration:t.configuration,entrySourceFilePath:t.entrySourceFilePath,outputPath:t.outputPath,surface:t.surface,features:t.features,dependency:t.dependency}))}o();var P=e.object({source:e.string(),namespace:e.literal("extensions"),handle:e.string(),name:e.string(),type:e.string(),externalType:e.string(),humanName:e.string(),uid:e.string(),directory:e.string(),configurationPath:e.string(),configuration:e.record(e.unknown()),entrySourceFilePath:e.string(),outputPath:e.string(),surface:e.string(),features:e.array(e.string()),dependency:e.string().optional()}).strict(),c=m({name:"AppLogSourcesResult",schema:e.object({sources:e.array(P)}).strict(),definitions:{AppLogSource:P}});o();function j(s,t){if(t==="json"){u(c.encode({sources:s}));return}let r=new Map;s.forEach(({source:a})=>{let n=a.split(".");if(n.length>=2){let i=n[0];r.has(i)||r.set(i,[]),r.set(i,[...r.get(i),a])}});for(let[a,n]of r)u(f(a,n.join(`
2
2
  `)))}var p=class s extends y{static summary="Print out a list of sources that may be used with the logs command.";static descriptionWithMarkdown="The output source names can be used with the `--source` argument of `shopify app logs` to filter log output. Currently only function extensions are supported as sources.";static get jsonOutputSchema(){return c}static description=this.descriptionForHelp();static flags={...g,...d,...l};async run(){let{flags:t}=await this.parse(s),{app:r}=await h({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config});return r.errors.isEmpty()?j(S(r),t.json?"json":"text"):process.exit(2),{app:r}}};export{p as a};
@@ -1 +1 @@
1
- import{a as d,b as f,c as g,d as x,g as C}from"./chunk-MVVHISCR.js";import{a as c}from"./chunk-YGFEUXKQ.js";import{a as l}from"./chunk-JTPVSO6Y.js";import{Ha as m}from"./chunk-2KLXRVGQ.js";import{b as p}from"./chunk-DGMRL5DQ.js";import{z as s}from"./chunk-SKRUMRB4.js";import{b as I}from"./chunk-JA2QZ635.js";import{e as y,g as a}from"./chunk-VKWPEFWQ.js";a();var h=y(I(),1);var o=class u extends c{static description="Import dashboard-managed extensions into your app.";static flags={...p,...l,"client-id":h.Flags.string({hidden:!1,description:"The Client ID of your app.",env:"SHOPIFY_FLAG_CLIENT_ID",exclusive:["config"]})};async run(){let{flags:i}=await this.parse(u),e=await m({directory:i.path,clientId:i["client-id"],forceRelink:i.reset,userProvidedConfigName:i.config}),t=await C({developerPlatformClient:e.developerPlatformClient,apiKey:e.remoteApp.apiKey,organizationId:e.remoteApp.organizationId,extensionTypes:g}),n=d(t);if(n.length===0)s({headline:["No extensions to migrate."]});else{let r=await f(n);await x({...e,extensions:t,extensionTypes:r.extensionTypes,buildExtensionConfig:r.buildExtensionConfig})}return{app:e.app}}};export{o as a};
1
+ import{a as d,b as f,c as g,d as x,g as C}from"./chunk-DGOBYP74.js";import{a as c}from"./chunk-KOYBR5MV.js";import{a as l}from"./chunk-VXGXK66W.js";import{Ha as m}from"./chunk-PG6XEOYF.js";import{b as p}from"./chunk-Q4TZD2M6.js";import{z as s}from"./chunk-RCYQPOJW.js";import{b as I}from"./chunk-I3J63RFV.js";import{e as y,g as a}from"./chunk-VKWPEFWQ.js";a();var h=y(I(),1);var o=class u extends c{static description="Import dashboard-managed extensions into your app.";static flags={...p,...l,"client-id":h.Flags.string({hidden:!1,description:"The Client ID of your app.",env:"SHOPIFY_FLAG_CLIENT_ID",exclusive:["config"]})};async run(){let{flags:i}=await this.parse(u),e=await m({directory:i.path,clientId:i["client-id"],forceRelink:i.reset,userProvidedConfigName:i.config}),t=await C({developerPlatformClient:e.developerPlatformClient,apiKey:e.remoteApp.apiKey,organizationId:e.remoteApp.organizationId,extensionTypes:g}),n=d(t);if(n.length===0)s({headline:["No extensions to migrate."]});else{let r=await f(n);await x({...e,extensions:t,extensionTypes:r.extensionTypes,buildExtensionConfig:r.buildExtensionConfig})}return{app:e.app}}};export{o as a};
@@ -1,4 +1,4 @@
1
- import{a as L}from"./chunk-HSTNTHWM.js";import{a as J}from"./chunk-OASB6XPV.js";import{a as X}from"./chunk-RCIU7NHA.js";import{B,C as m,D as y,F as H,G as K,H as V,I as q,J as Q,K as z,L as h,a as O,c as U,d as b,g as j,i as M,p as W,u as Y}from"./chunk-YX5GRXRS.js";import{b as N}from"./chunk-DGMRL5DQ.js";import{b as T}from"./chunk-FW5HGFSZ.js";import{A as g,B as _,D as G,V as E,y as D,z as F}from"./chunk-SKRUMRB4.js";import{Ib as R,sa as $}from"./chunk-YJWNM4XO.js";import{b as de}from"./chunk-JA2QZ635.js";import{g as d,q as A}from"./chunk-3VYOLEQE.js";import{e as ue,g as a}from"./chunk-VKWPEFWQ.js";a();a();a();function Z(e,t){return t==="none"?0:e.scan.issues.some(s=>b[s.severity]>=b[t])?1:0}async function ee({includeDirs:e,excludePatterns:t,noGitIgnore:i,...s}){let n=Date.now();return{...await M(s,{includeDirs:e,excludePatterns:t,noGitIgnore:i}),elapsedMilliseconds:Date.now()-n}}function te({includeDirs:e,excludePatterns:t,noGitIgnore:i,...s}){return j(s,{includeDirs:e,excludePatterns:t,noGitIgnore:i})}a();var pe={high:"High",medium:"Medium",low:"Low"},v=3,w=8;function he(e){let t=fe(e),i=W(e.scan.issues);return{type:t,options:{headline:ge(e,i),body:me(e),reference:[{subdued:`Engine: ${e.engine.name} ${e.engine.version}`},{subdued:`Ruleset: ${e.engine.ruleset}`},...i.some(s=>s.issues.length>1)&&!e.verbose?[{subdued:"Use --verbose for every occurrence and fix. deterministic-findings.json retains all file and line details."}]:[]],customSections:ve(e,i)}}}function ie(e){let{type:t,options:i}=he(e);if(t==="success"){F(i);return}if(t==="warning"){g(i);return}_(i)}function ne(e){return e.scan.scan.coverage_gaps.length>0}function fe(e){return e.scan.issues.some(t=>t.severity==="high")?"error":e.scan.issues.length>0||ne(e)?"warning":"success"}function ge(e,t){let i=e.scan.issues.length;return t.length<i?`${t.length} security issue ${t.length===1?"group":"groups"} found (${i} occurrences).`:i>0?`${i} security ${i===1?"issue":"issues"} found.`:ne(e)?"Scan completed with coverage gaps.":"No security issues found."}function me(e){let t=e.scan,i=[{userInput:t.app.name},{char:"."},`${t.scan.files_scanned} files scanned in ${Ie(e.elapsedMilliseconds)}.`],s=t.scan.checks_executed.filter(n=>n.status==="not_applicable").length;return s>0&&i.push({info:`
1
+ import{a as L}from"./chunk-JUVJNIEA.js";import{a as J}from"./chunk-55QTRPZ2.js";import{a as X}from"./chunk-SYNCIFJ6.js";import{B,C as m,D as y,F as H,G as K,H as V,I as q,J as Q,K as z,L as h,a as O,c as U,d as b,g as j,i as M,p as W,u as Y}from"./chunk-Q7PF4VKI.js";import{b as N}from"./chunk-Q4TZD2M6.js";import{b as T}from"./chunk-EZ5F4ZFY.js";import{A as g,B as _,D as G,V as E,y as D,z as F}from"./chunk-RCYQPOJW.js";import{Ib as R,sa as $}from"./chunk-3F42A3XV.js";import{b as de}from"./chunk-I3J63RFV.js";import{g as d,q as A}from"./chunk-3VYOLEQE.js";import{e as ue,g as a}from"./chunk-VKWPEFWQ.js";a();a();a();function Z(e,t){return t==="none"?0:e.scan.issues.some(s=>b[s.severity]>=b[t])?1:0}async function ee({includeDirs:e,excludePatterns:t,noGitIgnore:i,...s}){let n=Date.now();return{...await M(s,{includeDirs:e,excludePatterns:t,noGitIgnore:i}),elapsedMilliseconds:Date.now()-n}}function te({includeDirs:e,excludePatterns:t,noGitIgnore:i,...s}){return j(s,{includeDirs:e,excludePatterns:t,noGitIgnore:i})}a();var pe={high:"High",medium:"Medium",low:"Low"},v=3,w=8;function he(e){let t=fe(e),i=W(e.scan.issues);return{type:t,options:{headline:ge(e,i),body:me(e),reference:[{subdued:`Engine: ${e.engine.name} ${e.engine.version}`},{subdued:`Ruleset: ${e.engine.ruleset}`},...i.some(s=>s.issues.length>1)&&!e.verbose?[{subdued:"Use --verbose for every occurrence and fix. deterministic-findings.json retains all file and line details."}]:[]],customSections:ve(e,i)}}}function ie(e){let{type:t,options:i}=he(e);if(t==="success"){F(i);return}if(t==="warning"){g(i);return}_(i)}function ne(e){return e.scan.scan.coverage_gaps.length>0}function fe(e){return e.scan.issues.some(t=>t.severity==="high")?"error":e.scan.issues.length>0||ne(e)?"warning":"success"}function ge(e,t){let i=e.scan.issues.length;return t.length<i?`${t.length} security issue ${t.length===1?"group":"groups"} found (${i} occurrences).`:i>0?`${i} security ${i===1?"issue":"issues"} found.`:ne(e)?"Scan completed with coverage gaps.":"No security issues found."}function me(e){let t=e.scan,i=[{userInput:t.app.name},{char:"."},`${t.scan.files_scanned} files scanned in ${Ie(e.elapsedMilliseconds)}.`],s=t.scan.checks_executed.filter(n=>n.status==="not_applicable").length;return s>0&&i.push({info:`
2
2
  ${s} check${s===1?"":"s"} not applicable.`}),i.push({info:`
3
3
  ${e.agentCheckCount} check${e.agentCheckCount===1?"":"s"} ready for your coding agent.`}),i}function ye(e){return[["Have your coding agent run the agent checks"],["Record the agent results with",{command:h(e.commands.record)}],["Review the results with",{command:h(e.commands.review)}]]}function ke(e){let t=m(e)??"not linked";return e.kind==="config"&&e.clientIdOverride?`${t} (from --client-id)`:t}function be(e){let{selection:t}=e;return{title:"Selection",body:{tabularData:[["App directory",t.appDirectory],["Config file",B(t)??"none"],["Client ID",ke(t)],["Scan directories",e.scanDirectories.map(({directory:i})=>d(t.appDirectory,i)||".").join(", ")]],firstColumnSubdued:!0}}}function ve(e,t){let i=[be(e)];for(let n of["high","medium","low"]){let o=t.filter(r=>r.severity===n);o.length!==0&&i.push({title:pe[n],body:{list:{items:o.flatMap(r=>[Se(r),...e.verbose?r.issues.map(we):[]])}}})}if(e.scan.scan.coverage_gaps.length>0){let n=e.scan.scan.coverage_gaps,o=n.slice(0,w).map(r=>r.message);n.length>w&&o.push({info:`${n.length-w} more coverage gaps`}),i.push({title:"Coverage gaps",body:{list:{items:o}}})}let{appDirectory:s}=e.selection;return i.push({title:"Artifacts",body:{list:{items:[["Deterministic findings:",{filePath:d(s,e.deterministicFindingsPath)}],["Agent security check instructions:",{filePath:d(s,e.agentChecksPath)}]]}}}),i.push({title:"Next steps",body:{list:{items:ye(e),ordered:!0}}}),e.verbose&&i.push({title:"Scan details",body:{tabularData:[["Framework",e.scan.detection.framework],["Surface",e.scan.detection.surface],["Languages",e.scan.detection.languages.map(n=>`${n.name} (${n.support})`).join(", ")||"none"],["Capabilities",Ce(e.scan.capabilities)],["Rules run",String(e.scan.scan.rules_run)],["Not run",String(e.scan.scan.rules_skipped)]],firstColumnSubdued:!0}}),i}function we(e){let t=e.location.line?`${e.location.file}:${e.location.line}`:e.location.file,i=[{bold:e.title},se(e.id),{filePath:t}];return i.push({subdued:e.message},{subdued:`Fix: ${e.fix.description}`}),e.fix.guide&&(e.fix.guide.startsWith("https://")||e.fix.guide.startsWith("http://")?i.push({link:{label:"Guide",url:e.fix.guide}}):i.push({subdued:`Guide: ${e.fix.guide}`})),e.snippet&&i.push({subdued:`Code: ${e.snippet}`}),i}function Se(e){let t=e.issues[0],i=e.issues.length,s=e.files.length,n=e.files.slice(0,v).map(o=>{let r=e.issues.find(f=>f.location.file===o);return{filePath:r.location.line?`${o}:${r.location.line}`:o}});return[{bold:t.title},se(t.id),`${i} ${i===1?"occurrence":"occurrences"} across ${s} ${s===1?"file":"files"}`,...n,...s>v?[{subdued:`+${s-v} more files`}]:[]]}function se(e){let t=U(e);return t?{link:{label:e,url:t}}:{subdued:e}}function Ce(e){let t=Object.entries(e).filter(([,i])=>i).map(([i])=>i);return t.length>0?t.join(", "):"none detected"}function Ie(e){return e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(1)}s`}function xe(e){return{message:`${e} recommended agent ${e===1?"check":"checks"} available to complete your scan. How do you want to pass that prompt to your agent?`,choices:[{label:"Copy instructions to the clipboard",value:"copy"},{label:"Print instructions to the terminal",value:"print"},{label:"Nothing",value:"nothing"}],defaultValue:"copy"}}var Pe={resolveSelection:H,execute:ee,listFiles:te,writeArtifacts:Y,canPrompt:E,selectInstructionsDestination:e=>G(xe(e)),deliverInstructions:J,output:R,renderInfo:D,renderWarning:g,renderReport:ie,setExitCode:e=>{process.exitCode=e},recordMetadata:X};async function Ae(e,t,i,s){return e.skipInstructions?"nothing":e.yes?"print":i?t.selectInstructionsDestination(s):"nothing"}function $e(e,t,i,s,n,o){return{scan:e.scan,selection:n,scanDirectories:o,engine:e.engine,verbose:i,elapsedMilliseconds:e.elapsedMilliseconds,commands:s,deterministicFindingsPath:t.deterministicFindingsPath,agentChecksPath:t.agentChecksPath,agentCheckCount:e.agentChecks.checks.length}}function De(e){return e.replace(/[?*()[\]{}!#\\]/g,"\\$&")}async function oe(e,t){if(e.ignoredScanDirectories.length===0&&e.otherAppDirectories.length===0)return;let i=await $(A()),s=n=>d(i,n)||".";for(let n of e.ignoredScanDirectories)t.renderWarning({headline:`${s(n)} is ignored by Git, so only the files Git tracks in it are scanned.`,body:["Use",{command:"--no-git-ignore"},"to scan everything in it."]});for(let n of e.otherAppDirectories){let o=s(n);t.renderWarning({headline:`${o} holds another app's configuration, so its files are scanned as part of this app.`,body:["Use",{command:`--exclude ${z(De(o),Q())}`},"to leave it out."]})}}async function S(e,t=Pe){let i=await K(e.includeDirs),s=!e.listFiles&&t.canPrompt(),n=await t.resolveSelection({path:e.directory,config:e.configName,clientId:e.clientId,withoutAppConfig:e.withoutAppConfig,allowPrompts:s,validateClientIdFlag:!0}),{appDirectory:o}=n,r={include_dirs:[...e.includeDirs],excludes:[...e.excludePatterns],no_git_ignore:e.noGitIgnore},p=q(n,e.directory,r),f={selection:n,resultsKey:y(n),commands:p};(n.kind==="no-config"?!e.withoutAppConfig:n.appConfigFilePicked===!0)&&t.renderInfo({headline:"To skip these prompts next time, run:",body:[{command:h(p.scan)}]});let re=n.kind==="config"?n.appConfigDirectories??[]:[],{scanDirectories:k,requestedScanDirectories:ce}=V(o,i,re),I={appDirectory:o,scanDirectories:k.map(({directory:c})=>c),requestedScanDirectories:ce,appConfigDirectories:k.filter(({origin:c})=>c==="app_config_directory").map(({directory:c})=>c),appConfigFilePath:n.kind==="config"?n.appConfigFilePath:void 0,clientId:m(n),includeDirs:e.includeDirs,excludePatterns:e.excludePatterns,noGitIgnore:e.noGitIgnore};if(e.listFiles){let{paths:c,...le}=await t.listFiles(I);return await oe(le,t),c.length>0&&t.output(c.join(`
4
4
  `)),f}let l=await t.execute(I);await oe(l,t),await t.recordMetadata({num_security_findings:l.scan.issues.length});let ae=await t.writeArtifacts(o,y(n),{deterministicFindings:l.deterministicFindings,agentChecks:l.agentChecks});t.renderReport($e(l,ae,e.verbose,p,n,k));let x=await Ae(e,t,s,l.agentChecks.checks.length);x!=="nothing"&&await t.deliverInstructions({appDirectory:o,resultsKey:y(n),copy:x==="copy",scanScope:r,commands:p});let P=Z(l,e.blocking);return P!==0&&t.setExitCode(P),f}var u=ue(de(),1);var C=class e extends T{static summary="Check an app for Shopify-specific security issues and write deterministic-findings.json and agent-checks.json.";static descriptionWithMarkdown="Runs an app security check locally and writes `deterministic-findings.json` and `agent-checks.json` to the results directory, `.shopify/app-security/<results key>/`. The results key is `--client-id` when you pass it, and otherwise the name of the app configuration file without `.toml`; the other `app security` commands take the same selection flags and find the same directory. Every run replaces both files, so it's always safe to run the check again.\n\n`deterministic-findings.json` holds the deterministic scan results. `agent-checks.json` holds the checks for your coding agent to investigate; the agent's results are recorded with `shopify app security record`. Use `--config` to select a specific app configuration when the project has multiple `shopify.app*.toml` files; the check inspects only that configuration. Use `--client-id` to replace the configuration's client ID for this run. `--client-id` is checked against your Shopify account before anything is scanned, so it needs you to be logged in. When no app configuration exists, use `--without-app-config --client-id <client-id>` to scan `--path` anyway with config checks skipped; in an interactive terminal the command offers to do this.\n\nThe check scans the app directory and each `--include-dir`. Git ignore rules apply by default: a file or directory that Git ignores is skipped, using the rules of the repository that contains it, while files that Git tracks are always scanned. Use `--no-git-ignore` to turn Git ignore rules off for every scanned directory.\n\nUse `--exclude` to skip more paths. Each value is a glob that is matched against the path relative to the working directory, so a path above it starts with `../`, and a name at any depth needs `**/`, for example `--exclude '**/generated'`. Repeat the flag to add globs. An exclusion can't remove the selected app configuration file. Quote each value so your shell doesn't expand `*`. The coding-agent instructions this check offers repeat the globs. Other `app security` commands don't take `--exclude` or `--no-git-ignore`, so pass the same flags each time you run the check.\n\nUse `--list-files` to check the scope before scanning: it prints the files the check would gather, one path per line and relative to the app directory, and then stops. It writes no results and never prompts. `--client-id` is still checked, but doesn't change the list.\n\nIn interactive terminals, the command offers to copy the coding-agent instructions, print them, or choose nothing; copying is the default. In CI and other non-interactive environments, instructions aren't offered unless you pass `--yes`, which prints them. You can also run `shopify app security instructions` to print, copy, or write them later.";static description=this.descriptionWithoutMarkdown();static flags={...N,...O,"include-dir":u.Flags.string({description:"Also scan this directory, relative to the working directory. Repeat the flag to add directories. Use it for code that lives outside the app directory, such as a backend or a shared library.",multiple:!0}),exclude:u.Flags.string({description:"Skip paths that match this glob, relative to the working directory. Repeat the flag to add globs. The selected app configuration file can't be excluded.",multiple:!0}),"no-git-ignore":u.Flags.boolean({description:"Turn off Git ignore rules for every scanned directory, so files that Git ignores are scanned too. Files that Git tracks are always scanned.",env:"SHOPIFY_FLAG_NO_GIT_IGNORE"}),"list-files":u.Flags.boolean({description:"Print the files the check would gather, one path per line, and stop. Nothing is scanned, no results are written, and nothing is prompted for.",env:"SHOPIFY_FLAG_LIST_FILES",exclusive:["yes","skip-instructions","blocking"]}),...L,yes:u.Flags.boolean({description:"Print coding-agent instructions without prompting.",default:!1,exclusive:["skip-instructions"],env:"SHOPIFY_FLAG_YES"}),"skip-instructions":u.Flags.boolean({description:"Don't offer to show coding-agent instructions.",default:!1,exclusive:["yes"],env:"SHOPIFY_FLAG_APP_SECURITY_SKIP_INSTRUCTIONS"})};async run(){let{flags:t}=await this.parse(e);await S({directory:t.path,configName:t.config,clientId:t["client-id"],withoutAppConfig:!!t["without-app-config"],verbose:!!t.verbose,blocking:t.blocking,yes:t.yes,skipInstructions:t["skip-instructions"],includeDirs:t["include-dir"]??[],excludePatterns:t.exclude??[],noGitIgnore:!!t["no-git-ignore"],listFiles:!!t["list-files"]})}};export{C as a};
@@ -1 +1 @@
1
- import{Ha as x,p as A}from"./chunk-2KLXRVGQ.js";import{F}from"./chunk-SKRUMRB4.js";import{i as s}from"./chunk-FCULF3JA.js";import{Eb as f,Ib as I,Kb as P,Xa as p,ya as v}from"./chunk-YJWNM4XO.js";import{a as S}from"./chunk-SGBLCVUX.js";import{b as D}from"./chunk-JA2QZ635.js";import{d as m,f as y,q as w}from"./chunk-3VYOLEQE.js";import{e as E,g as l}from"./chunk-VKWPEFWQ.js";l();async function b(n){let{extension:e,stdout:o,developerPlatformClient:i,app:r,orgId:t}=n,c=r.configuration.client_id,{api_version:a,type:u,targeting:d}=e.configuration,T=await(!!d?.length?_({localIdentifier:e.localIdentifier,developerPlatformClient:i,apiKey:c,target:d[0].target,version:a,orgId:t}):$({localIdentifier:e.localIdentifier,developerPlatformClient:i,apiKey:c,type:u,version:a,orgId:t})),h=A(T,a);if(o)I(h);else{let g=m(e.directory,"schema.graphql");await v(g,h),P(`GraphQL Schema for ${e.localIdentifier} written to ${g}`)}}async function _({localIdentifier:n,developerPlatformClient:e,apiKey:o,target:i,version:r,orgId:t}){let c={handle:i,version:r},a=await e.targetSchemaDefinition(c,o,t);if(!a)throw new s(f`A schema could not be generated for ${n}`,f`Check that the Function targets and version are valid.`);return a}async function $({localIdentifier:n,developerPlatformClient:e,apiKey:o,version:i,type:r,orgId:t}){let c={version:i,type:r},a=await e.apiSchemaDefinition(c,o,t);if(!a)throw new s(f`A schema could not be generated for ${n}`,f`Check that the Function API type and version are valid.`);return a}l();var C=E(D(),1);var J={path:C.Flags.string({hidden:!1,description:"The path to your function directory.",parse:async n=>y(n),default:async()=>w(),noCacheDefault:!0,env:"SHOPIFY_FLAG_PATH"})};async function M(n,e){let o=n.allExtensions.filter(r=>r.isFunctionExtension),i=o.find(r=>r.directory===e);if(i)return i;if(o.length===1&&o[0])return o[0];if(S())return await F({message:"Which function?",choices:o.map(t=>({label:t.handle,value:t}))});throw new s("Run this command from a function directory or use `--path` to specify a function directory.")}async function N(n,e,o,i,r){let t=m(n.directory,"schema.graphql");if(await p(t))return t;let{app:c,developerPlatformClient:a,organization:u}=await x({directory:e,clientId:o,forceRelink:i,userProvidedConfigName:r});return await b({app:c,developerPlatformClient:a,extension:n,stdout:!1,orgId:u.id}),await p(t)?t:void 0}export{b as a,J as b,M as c,N as d};
1
+ import{Ha as x,p as A}from"./chunk-PG6XEOYF.js";import{F}from"./chunk-RCYQPOJW.js";import{i as s}from"./chunk-ZZ7SOJHH.js";import{Eb as f,Ib as I,Kb as P,Xa as p,ya as v}from"./chunk-3F42A3XV.js";import{a as S}from"./chunk-2R2PKQQV.js";import{b as D}from"./chunk-I3J63RFV.js";import{d as m,f as y,q as w}from"./chunk-3VYOLEQE.js";import{e as E,g as l}from"./chunk-VKWPEFWQ.js";l();async function b(n){let{extension:e,stdout:o,developerPlatformClient:i,app:r,orgId:t}=n,c=r.configuration.client_id,{api_version:a,type:u,targeting:d}=e.configuration,T=await(!!d?.length?_({localIdentifier:e.localIdentifier,developerPlatformClient:i,apiKey:c,target:d[0].target,version:a,orgId:t}):$({localIdentifier:e.localIdentifier,developerPlatformClient:i,apiKey:c,type:u,version:a,orgId:t})),h=A(T,a);if(o)I(h);else{let g=m(e.directory,"schema.graphql");await v(g,h),P(`GraphQL Schema for ${e.localIdentifier} written to ${g}`)}}async function _({localIdentifier:n,developerPlatformClient:e,apiKey:o,target:i,version:r,orgId:t}){let c={handle:i,version:r},a=await e.targetSchemaDefinition(c,o,t);if(!a)throw new s(f`A schema could not be generated for ${n}`,f`Check that the Function targets and version are valid.`);return a}async function $({localIdentifier:n,developerPlatformClient:e,apiKey:o,version:i,type:r,orgId:t}){let c={version:i,type:r},a=await e.apiSchemaDefinition(c,o,t);if(!a)throw new s(f`A schema could not be generated for ${n}`,f`Check that the Function API type and version are valid.`);return a}l();var C=E(D(),1);var J={path:C.Flags.string({hidden:!1,description:"The path to your function directory.",parse:async n=>y(n),default:async()=>w(),noCacheDefault:!0,env:"SHOPIFY_FLAG_PATH"})};async function M(n,e){let o=n.allExtensions.filter(r=>r.isFunctionExtension),i=o.find(r=>r.directory===e);if(i)return i;if(o.length===1&&o[0])return o[0];if(S())return await F({message:"Which function?",choices:o.map(t=>({label:t.handle,value:t}))});throw new s("Run this command from a function directory or use `--path` to specify a function directory.")}async function N(n,e,o,i,r){let t=m(n.directory,"schema.graphql");if(await p(t))return t;let{app:c,developerPlatformClient:a,organization:u}=await x({directory:e,clientId:o,forceRelink:i,userProvidedConfigName:r});return await b({app:c,developerPlatformClient:a,extension:n,stdout:!1,orgId:u.id}),await p(t)?t:void 0}export{b as a,J as b,M as c,N as d};
@@ -1 +1 @@
1
- import{a as c}from"./chunk-WXV35TPE.js";import{a as e}from"./chunk-JTPVSO6Y.js";import{F as n,I as p,Ia as s}from"./chunk-2KLXRVGQ.js";import{b as r}from"./chunk-DGMRL5DQ.js";import{b as d}from"./chunk-JA2QZ635.js";import{e as l,g as i}from"./chunk-VKWPEFWQ.js";i();var f=l(d(),1);var{config:b,...u}=e,o=class m extends c{static summary="Activate an app configuration.";static descriptionWithMarkdown="Sets default configuration when you run app-related CLI commands. If you omit the `config-name` parameter, then you'll be prompted to choose from the configuration files in your project.";static description=this.descriptionForHelp();static usage="app config use [config] [flags]";static flags={...r,...u};static args={config:f.Args.string({description:"The name of the app configuration. Can be 'shopify.app.staging.toml' or simply 'staging'."})};async run(){let{flags:t,args:a}=await this.parse(m),{app:g}=await s({directory:t.path,userProvidedConfigName:a.config});return await p(t.path),await n({directory:t.path,configName:a.config,reset:t.reset}),{app:g}}};export{o as a};
1
+ import{a as c}from"./chunk-246AZCDT.js";import{a as e}from"./chunk-VXGXK66W.js";import{F as n,I as p,Ia as s}from"./chunk-PG6XEOYF.js";import{b as r}from"./chunk-Q4TZD2M6.js";import{b as d}from"./chunk-I3J63RFV.js";import{e as l,g as i}from"./chunk-VKWPEFWQ.js";i();var f=l(d(),1);var{config:b,...u}=e,o=class m extends c{static summary="Activate an app configuration.";static descriptionWithMarkdown="Sets default configuration when you run app-related CLI commands. If you omit the `config-name` parameter, then you'll be prompted to choose from the configuration files in your project.";static description=this.descriptionForHelp();static usage="app config use [config] [flags]";static flags={...r,...u};static args={config:f.Args.string({description:"The name of the app configuration. Can be 'shopify.app.staging.toml' or simply 'staging'."})};async run(){let{flags:t,args:a}=await this.parse(m),{app:g}=await s({directory:t.path,userProvidedConfigName:a.config});return await p(t.path),await n({directory:t.path,configName:a.config,reset:t.reset}),{app:g}}};export{o as a};
@@ -1,4 +1,4 @@
1
- import{a as v}from"./chunk-J3JPJCWP.js";import{a as ue}from"./chunk-VFO5OYQ4.js";import{b as ne,c as se,d as ie,e as ae,f as le,h as ce,i as me,k as de,l as fe,n as he}from"./chunk-NTVEJYKI.js";import{a as x}from"./chunk-QBGSSUJP.js";import{c as Z,e as b,m as ee,n as te}from"./chunk-ZHJ6KA43.js";import{c as re,e as oe}from"./chunk-ECEOBSGD.js";import{k as P,l as X,n as w}from"./chunk-R757TSQ6.js";import{s as C,u as k}from"./chunk-P3Z5RLVV.js";import{a as Y,b as Q}from"./chunk-Z3XIZMEM.js";import{o as j,s as z,t as N,u as B,w as V}from"./chunk-Q7BOSHWX.js";import{na as L,ra as _}from"./chunk-L5XWYTHY.js";import{A as R,C as G,D as U,N as J,V as K,w as W,y as M,z as q}from"./chunk-SKRUMRB4.js";import{b as $}from"./chunk-YTJ3EPD3.js";import{d as H,e as I}from"./chunk-G54BKNIX.js";import{i as y}from"./chunk-FCULF3JA.js";import{Cb as g,Eb as T,Kb as E,Nb as u}from"./chunk-YJWNM4XO.js";import{i as p}from"./chunk-B4OMIONW.js";import{g as f}from"./chunk-VKWPEFWQ.js";f();f();f();f();var pe={workPromise:Promise.resolve()};async function ye(e,t,o,r,n){if(o.length===0)return pe;u("Initiating theme asset reconciliation process");let{filesOnlyPresentLocally:i,filesOnlyPresentOnRemote:s,filesWithConflictingChecksums:l}=Se(o,r),a=i.length===0&&s.length===0&&l.length===0;if(_(`theme-service:theme-reconciliation:manual:${a}`),a)return u("Local and remote checksums match - no need to reconcile theme assets"),pe;let m=await Fe({filesOnlyPresentLocally:i,filesOnlyPresentOnRemote:s,filesWithConflictingChecksums:l},n);return{workPromise:Oe(e,t,r,m)}}function Se(e,t){let o=new Set,r=[],n=[];for(let s of e){o.add(s.key);let l=t.files.get(s.key);l?s.checksum!==l.checksum&&n.push(s):r.push(s)}let i=Array.from(t.files.values()).filter(s=>!o.has(s.key));return{filesOnlyPresentOnRemote:S(r,t),filesOnlyPresentLocally:S(i,t),filesWithConflictingChecksums:S(n,t)}}function S(e,t){return t.applyIgnoreFilters(e).filter(r=>r.key.endsWith(".json"))}async function A(e,t,o,r){if(e.length===0)return;if(r){Ae(e,o,r);return}M({body:{list:{title:t,items:e.map(i=>i.key)}}}),await U({message:"Reconciliation Strategy",choices:[{label:o.remote.label,value:D},{label:o.local.label,value:we}]})===D?o.remote.callback(e):o.local.callback(e)}function Ae(e,t,o){switch(o){case"keep-remote":t.remote.callback(e);break;case"keep-local":t.local.callback(e);break;case"abort":break}}function De(e){let t=[{title:"The files listed below are only present locally.",files:e.filesOnlyPresentLocally},{title:"The files listed below are only present on the remote theme.",files:e.filesOnlyPresentOnRemote},{title:"The files listed below differ between the local and remote versions.",files:e.filesWithConflictingChecksums}];throw new y("Theme JSON files need reconciliation.",t.filter(o=>o.files.length>0).map(o=>`${o.title}
1
+ import{a as v}from"./chunk-J3JPJCWP.js";import{a as ue}from"./chunk-EXKTQF26.js";import{b as ne,c as se,d as ie,e as ae,f as le,h as ce,i as me,k as de,l as fe,n as he}from"./chunk-AKP4QAGL.js";import{a as x}from"./chunk-U5L2P36D.js";import{c as Z,e as b,m as ee,n as te}from"./chunk-PI6FLLDD.js";import{c as re,e as oe}from"./chunk-2X3HYG4B.js";import{k as P,l as X,n as w}from"./chunk-JAY7AGAG.js";import{s as C,u as k}from"./chunk-TWS34WUT.js";import{a as Y,b as Q}from"./chunk-RBPMV3KB.js";import{o as j,s as z,t as N,u as B,w as V}from"./chunk-Q7BOSHWX.js";import{na as L,ra as _}from"./chunk-3E3MCY5O.js";import{A as R,C as G,D as U,N as J,V as K,w as W,y as M,z as q}from"./chunk-RCYQPOJW.js";import{b as $}from"./chunk-YTJ3EPD3.js";import{d as H,e as I}from"./chunk-PQH4U2XV.js";import{i as y}from"./chunk-ZZ7SOJHH.js";import{Cb as g,Eb as T,Kb as E,Nb as u}from"./chunk-3F42A3XV.js";import{i as p}from"./chunk-B4OMIONW.js";import{g as f}from"./chunk-VKWPEFWQ.js";f();f();f();f();var pe={workPromise:Promise.resolve()};async function ye(e,t,o,r,n){if(o.length===0)return pe;u("Initiating theme asset reconciliation process");let{filesOnlyPresentLocally:i,filesOnlyPresentOnRemote:s,filesWithConflictingChecksums:l}=Se(o,r),a=i.length===0&&s.length===0&&l.length===0;if(_(`theme-service:theme-reconciliation:manual:${a}`),a)return u("Local and remote checksums match - no need to reconcile theme assets"),pe;let m=await Fe({filesOnlyPresentLocally:i,filesOnlyPresentOnRemote:s,filesWithConflictingChecksums:l},n);return{workPromise:Oe(e,t,r,m)}}function Se(e,t){let o=new Set,r=[],n=[];for(let s of e){o.add(s.key);let l=t.files.get(s.key);l?s.checksum!==l.checksum&&n.push(s):r.push(s)}let i=Array.from(t.files.values()).filter(s=>!o.has(s.key));return{filesOnlyPresentOnRemote:S(r,t),filesOnlyPresentLocally:S(i,t),filesWithConflictingChecksums:S(n,t)}}function S(e,t){return t.applyIgnoreFilters(e).filter(r=>r.key.endsWith(".json"))}async function A(e,t,o,r){if(e.length===0)return;if(r){Ae(e,o,r);return}M({body:{list:{title:t,items:e.map(i=>i.key)}}}),await U({message:"Reconciliation Strategy",choices:[{label:o.remote.label,value:D},{label:o.local.label,value:we}]})===D?o.remote.callback(e):o.local.callback(e)}function Ae(e,t,o){switch(o){case"keep-remote":t.remote.callback(e);break;case"keep-local":t.local.callback(e);break;case"abort":break}}function De(e){let t=[{title:"The files listed below are only present locally.",files:e.filesOnlyPresentLocally},{title:"The files listed below are only present on the remote theme.",files:e.filesOnlyPresentOnRemote},{title:"The files listed below differ between the local and remote versions.",files:e.filesWithConflictingChecksums}];throw new y("Theme JSON files need reconciliation.",t.filter(o=>o.files.length>0).map(o=>`${o.title}
2
2
  ${o.files.map(r=>`- ${r.key}`).join(`
3
3
  `)}`).join(`
4
4
 
@@ -1 +1 @@
1
- import{D as u,I as a,L as s,j as f,t as g,w as h,z as y}from"./chunk-YX5GRXRS.js";import{i as o}from"./chunk-FCULF3JA.js";import{j as d}from"./chunk-3VYOLEQE.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();async function k(t,e){let r=u(t);if(await h(t.appDirectory,r))return;let{scan:n}=a(t,e);throw new o(`No app security check results for ${r} in ${t.appDirectory}.`,`Run \`${s(n)}\`.`)}async function T(t,e){await k(t,e);let r=g(t.appDirectory,u(t)),[n,i]=await Promise.all([b(r.deterministicFindingsPath,"deterministic"),b(r.agentFindingsPath,"agent")]),c=[S(n,"deterministic"),S(i,"agent")].filter(w=>w!==void 0);c.length>0&&D(c,a(t,e));let l=v(n),m=v(i);return{sources:{deterministic:l,agent:m},checks:f({deterministic:l?.document??null,agent:m?.document??null})}}async function b(t,e){return{path:t,result:await y(t,e)}}function S(t,e){if(t.result.status==="invalid")return{source:e,path:t.path,errors:t.result.errors}}function v(t){return t.result.status!=="ok"?null:{path:t.path,document:t.result.value}}function D(t,e){let r=t.length===1?"The app security check results could not be loaded because a results file is invalid.":"The app security check results could not be loaded because both results files are invalid.",n=[...t.map(i=>F(i.source,e,`${d(i.path)}.`)),["Or run",{command:s(e.clean)},"to delete both results files and start over."]];throw new o(r,null,n,t.map(R))}function F(t,e,r){return t==="deterministic"?["Run",{command:s(e.scan)},`to regenerate ${r}`]:["Have your coding agent run",{command:s(e.record)},`again to regenerate ${r}`]}function R(t){return{title:t.path,body:{list:{items:t.errors}}}}export{k as a,T as b};
1
+ import{D as u,I as a,L as s,j as f,t as g,w as h,z as y}from"./chunk-Q7PF4VKI.js";import{i as o}from"./chunk-ZZ7SOJHH.js";import{j as d}from"./chunk-3VYOLEQE.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();async function k(t,e){let r=u(t);if(await h(t.appDirectory,r))return;let{scan:n}=a(t,e);throw new o(`No app security check results for ${r} in ${t.appDirectory}.`,`Run \`${s(n)}\`.`)}async function T(t,e){await k(t,e);let r=g(t.appDirectory,u(t)),[n,i]=await Promise.all([b(r.deterministicFindingsPath,"deterministic"),b(r.agentFindingsPath,"agent")]),c=[S(n,"deterministic"),S(i,"agent")].filter(w=>w!==void 0);c.length>0&&D(c,a(t,e));let l=v(n),m=v(i);return{sources:{deterministic:l,agent:m},checks:f({deterministic:l?.document??null,agent:m?.document??null})}}async function b(t,e){return{path:t,result:await y(t,e)}}function S(t,e){if(t.result.status==="invalid")return{source:e,path:t.path,errors:t.result.errors}}function v(t){return t.result.status!=="ok"?null:{path:t.path,document:t.result.value}}function D(t,e){let r=t.length===1?"The app security check results could not be loaded because a results file is invalid.":"The app security check results could not be loaded because both results files are invalid.",n=[...t.map(i=>F(i.source,e,`${d(i.path)}.`)),["Or run",{command:s(e.clean)},"to delete both results files and start over."]];throw new o(r,null,n,t.map(R))}function F(t,e,r){return t==="deterministic"?["Run",{command:s(e.scan)},`to regenerate ${r}`]:["Have your coding agent run",{command:s(e.record)},`again to regenerate ${r}`]}function R(t){return{title:t.path,body:{list:{items:t.errors}}}}export{k as a,T as b};
@@ -1 +1 @@
1
- import{a as t}from"./chunk-6RBCFXJT.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();async function r(d){await t.addPublicMetadata(()=>d)}export{r as a};
1
+ import{a as t}from"./chunk-525BMYNR.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();async function r(d){await t.addPublicMetadata(()=>d)}export{r as a};
@@ -1 +1 @@
1
- import{b as u,c as d}from"./chunk-AD4S2VEI.js";import{a as c}from"./chunk-WXV35TPE.js";import{a as e}from"./chunk-JTPVSO6Y.js";import{Ia as n,e as p}from"./chunk-2KLXRVGQ.js";import{b as i}from"./chunk-DGMRL5DQ.js";import{z as s}from"./chunk-SKRUMRB4.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();var r=class f extends c{static summary="Generate GraphQL types for a function.";static descriptionWithMarkdown="Creates GraphQL types based on your [input query](https://shopify.dev/docs/apps/functions/input-output#input) for a function. Supports JavaScript functions out of the box, or any language via the `build.typegen_command` configuration.";static description=this.descriptionForHelp();static flags={...i,...e,...u};async run(){let{flags:t}=await this.parse(f),{app:o}=await n({directory:t.path,userProvidedConfigName:t.config}),m=await d(o,t.path);return await p(m,{stdout:process.stdout,stderr:process.stderr,app:o}),s({headline:"GraphQL types generated successfully."}),{app:o}}};export{r as a};
1
+ import{b as u,c as d}from"./chunk-SHBB5GST.js";import{a as c}from"./chunk-246AZCDT.js";import{a as e}from"./chunk-VXGXK66W.js";import{Ia as n,e as p}from"./chunk-PG6XEOYF.js";import{b as i}from"./chunk-Q4TZD2M6.js";import{z as s}from"./chunk-RCYQPOJW.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();var r=class f extends c{static summary="Generate GraphQL types for a function.";static descriptionWithMarkdown="Creates GraphQL types based on your [input query](https://shopify.dev/docs/apps/functions/input-output#input) for a function. Supports JavaScript functions out of the box, or any language via the `build.typegen_command` configuration.";static description=this.descriptionForHelp();static flags={...i,...e,...u};async run(){let{flags:t}=await this.parse(f),{app:o}=await n({directory:t.path,userProvidedConfigName:t.config}),m=await d(o,t.path);return await p(m,{stdout:process.stdout,stderr:process.stderr,app:o}),s({headline:"GraphQL types generated successfully."}),{app:o}}};export{r as a};
@@ -1 +1 @@
1
- import{A as n}from"./chunk-SKRUMRB4.js";import{g as e}from"./chunk-VKWPEFWQ.js";e();function d({from:o,to:r}){n({headline:[{command:`shopify ${o}`},"has moved."],body:["This command will be removed in a future release. Use",{command:`shopify ${r}`},"instead."]})}export{d as a};
1
+ import{A as n}from"./chunk-RCYQPOJW.js";import{g as e}from"./chunk-VKWPEFWQ.js";e();function d({from:o,to:r}){n({headline:[{command:`shopify ${o}`},"has moved."],body:["This command will be removed in a future release. Use",{command:`shopify ${r}`},"instead."]})}export{d as a};
@@ -1 +1 @@
1
- import{a as u}from"./chunk-BJOJNAKH.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-M3ZE24WB.js"),{commandStartOptions:e}=t.getAllSensitiveMetadata();e&&await t.addSensitiveMetadata(()=>({commandStartOptions:{...e,endTime:new Date().getTime()}}));let{postrun:i}=await import("./deprecations-PFQXWNF6.js");i(o);let{outputDebug:n}=await import("./output-SDE274Y5.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-R6I5APDB.js");await c({config:a,exitMode:"ok"}),m=!0};async function M(){let{versionToAutoUpgrade:a,warnIfUpgradeAvailable:o}=await import("./upgrade-3PIVJYBL.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-5ZA3ILWV.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-FMWTVLMF.js"),import("./version-IAMVSP7U.js"),import("./output-SDE274Y5.js"),import("./upgrade-3PIVJYBL.js"),import("./metadata-M3ZE24WB.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-D5BURRJ7.js"),import("./is-global-GZ5CIXQA.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-M3ZE24WB.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-J7ZG6SO3.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-Y3RKC4P2.js"),{commandStartOptions:e}=t.getAllSensitiveMetadata();e&&await t.addSensitiveMetadata(()=>({commandStartOptions:{...e,endTime:new Date().getTime()}}));let{postrun:i}=await import("./deprecations-33DG6ZUL.js");i(o);let{outputDebug:n}=await import("./output-ZFFHJGNK.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-H2ANKZ2S.js");await c({config:a,exitMode:"ok"}),m=!0};async function M(){let{versionToAutoUpgrade:a,warnIfUpgradeAvailable:o}=await import("./upgrade-I4JTR4LA.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-CDZ5YSQM.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-AOVO47AW.js"),import("./version-LQV54JBC.js"),import("./output-ZFFHJGNK.js"),import("./upgrade-I4JTR4LA.js"),import("./metadata-Y3RKC4P2.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-JY3ZKE2G.js"),import("./is-global-2G4BLF7H.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-Y3RKC4P2.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 +1 @@
1
- import{P as B}from"./chunk-L5XWYTHY.js";import{u as O}from"./chunk-SKRUMRB4.js";import{J as w,j as m}from"./chunk-YJWNM4XO.js";import{c as g,e as s,g as o}from"./chunk-VKWPEFWQ.js";var f=g((Q,c)=>{o();function j(r,e,t,n){for(var a=-1,i=r==null?0:r.length;++a<i;){var u=r[a];e(n,u,t(u),r)}return n}c.exports=j});var A=g((S,h)=>{o();var l=O();function E(r,e,t,n){return l(r,function(a,i,u){e(n,a,t(a),u)}),n}h.exports=E});var p=g((U,q)=>{o();var G=f(),I=A(),V=w(),C=m();function D(r,e){return function(t,n){var a=C(t)?G:I,i=e?e():{};return a(t,r,V(n,2),i)}}q.exports=D});var x=g((X,v)=>{o();var F=B(),H=p(),J=Object.prototype,K=J.hasOwnProperty,L=H(function(r,e,t){K.call(r,t)?r[t].push(e):F(r,t,[e])});v.exports=L});var y=g((Z,b)=>{o();var M=p(),N=M(function(r,e,t){r[t?0:1].push(e)},function(){return[[],[]]});b.exports=N});o();var P=s(x()),d=s(y());function $(r,e){return(0,P.default)(r,e)}function k(r,e){return(0,d.default)(r,e)}export{$ as a,k as b};
1
+ import{P as B}from"./chunk-3E3MCY5O.js";import{u as O}from"./chunk-RCYQPOJW.js";import{J as w,j as m}from"./chunk-3F42A3XV.js";import{c as g,e as s,g as o}from"./chunk-VKWPEFWQ.js";var f=g((Q,c)=>{o();function j(r,e,t,n){for(var a=-1,i=r==null?0:r.length;++a<i;){var u=r[a];e(n,u,t(u),r)}return n}c.exports=j});var A=g((S,h)=>{o();var l=O();function E(r,e,t,n){return l(r,function(a,i,u){e(n,a,t(a),u)}),n}h.exports=E});var p=g((U,q)=>{o();var G=f(),I=A(),V=w(),C=m();function D(r,e){return function(t,n){var a=C(t)?G:I,i=e?e():{};return a(t,r,V(n,2),i)}}q.exports=D});var x=g((X,v)=>{o();var F=B(),H=p(),J=Object.prototype,K=J.hasOwnProperty,L=H(function(r,e,t){K.call(r,t)?r[t].push(e):F(r,t,[e])});v.exports=L});var y=g((Z,b)=>{o();var M=p(),N=M(function(r,e,t){r[t?0:1].push(e)},function(){return[[],[]]});b.exports=N});o();var P=s(x()),d=s(y());function $(r,e){return(0,P.default)(r,e)}function k(r,e){return(0,d.default)(r,e)}export{$ as a,k as b};
@@ -1,4 +1,4 @@
1
- import{a as s,c as i,d as n}from"./chunk-QILWHHAQ.js";import{b as a,c as r}from"./chunk-DGMRL5DQ.js";import{b as e}from"./chunk-FW5HGFSZ.js";import{g as o}from"./chunk-VKWPEFWQ.js";o();var t=class u extends e{static summary="Check whether auto-upgrade is enabled, disabled, or not yet configured.";static descriptionWithMarkdown=`Check whether auto-upgrade is enabled, disabled, or not yet configured.
1
+ import{a as s,c as i,d as n}from"./chunk-IJLD5UYC.js";import{b as a,c as r}from"./chunk-Q4TZD2M6.js";import{b as e}from"./chunk-EZ5F4ZFY.js";import{g as o}from"./chunk-VKWPEFWQ.js";o();var t=class u extends e{static summary="Check whether auto-upgrade is enabled, disabled, or not yet configured.";static descriptionWithMarkdown=`Check whether auto-upgrade is enabled, disabled, or not yet configured.
2
2
 
3
3
  When auto-upgrade is enabled, Shopify CLI automatically updates to the latest version after each command.
4
4
 
@@ -1,4 +1,4 @@
1
- import{a as h,b as I}from"./chunk-ECEOBSGD.js";import{a as D}from"./chunk-GVRFO4CV.js";import{a as _,c as b}from"./chunk-LYPNQFWX.js";import{e as F,q as y}from"./chunk-R757TSQ6.js";import{i as w,p as g,v as T}from"./chunk-P3Z5RLVV.js";import{b as v,f as u}from"./chunk-DGMRL5DQ.js";import{E as p,z as d}from"./chunk-SKRUMRB4.js";import{Y as c}from"./chunk-YJWNM4XO.js";import{b as C}from"./chunk-JA2QZ635.js";import{e as E,g as a}from"./chunk-VKWPEFWQ.js";a();a();async function O(t,e,r){let n=e.themes;e.development&&(n=[(await new D(t).find()).id.toString()]);let m=t.storeFqdn,i=await H(t,{...e,themes:n,development:!1});if(!e.force&&!r&&!await L(i,m))return;await Promise.all(i.map(o=>(F(o)&&w(),y(o.id,t))));let l=e.environment?[{subdued:`Environment: ${e.environment}
1
+ import{a as h,b as I}from"./chunk-2X3HYG4B.js";import{a as D}from"./chunk-YKYJOUV7.js";import{a as _,c as b}from"./chunk-ELJ34WWD.js";import{e as F,q as y}from"./chunk-JAY7AGAG.js";import{i as w,p as g,v as T}from"./chunk-TWS34WUT.js";import{b as v,f as u}from"./chunk-Q4TZD2M6.js";import{E as p,z as d}from"./chunk-RCYQPOJW.js";import{Y as c}from"./chunk-3F42A3XV.js";import{b as C}from"./chunk-I3J63RFV.js";import{e as E,g as a}from"./chunk-VKWPEFWQ.js";a();a();async function O(t,e,r){let n=e.themes;e.development&&(n=[(await new D(t).find()).id.toString()]);let m=t.storeFqdn,i=await H(t,{...e,themes:n,development:!1});if(!e.force&&!r&&!await L(i,m))return;await Promise.all(i.map(o=>(F(o)&&w(),y(o.id,t))));let l=e.environment?[{subdued:`Environment: ${e.environment}
2
2
 
3
3
  `}]:[];d({body:c(i,o=>[...l,`The following themes were deleted from ${m}:`,I(o)],o=>[...l,"The theme",...h(o),`was deleted from ${m}.`])})}async function H(t,e){if(e.selectTheme||e.themes.length>0)return b(t,e);let r=t.storeFqdn;return[await _(t,{header:`Select a theme to delete from ${r}`,filter:{development:e.development}})]}async function L(t,e){let n={message:c(t,m=>[`Delete the following themes from ${e}?`],m=>["Delete",...h(m),`from ${e}?`]),confirmationMessage:"Yes, confirm changes",cancellationMessage:"Cancel"};return t.length>1&&(n.infoTable={"":t.map(h)}),p(n)}var s=E(C(),1);var f=class extends T{static summary="Delete remote themes from the connected store. This command can't be undone.";static descriptionWithMarkdown=`Deletes a theme from your store.
4
4
 
@@ -0,0 +1 @@
1
+ import{g as I}from"./chunk-VKWPEFWQ.js";I();var o="4.9.2";export{o as a};
@@ -1 +1 @@
1
- import{e as c,f as m}from"./chunk-7Y7AZRL3.js";import{g as F}from"./chunk-VKWPEFWQ.js";F();F();F();function o(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var S=/^[\uD800-\uDBFF][\uDC00-\uDFFF]$/,B=["\x1B","\x9B"],E=e=>`${B[0]}[${e}m`,y=(e,t,a)=>{let i=[];e=[...e];for(let f of e){let s=f;f.includes(";")&&(f=f.split(";")[0][0]+"0");let r=m.codes.get(Number.parseInt(f,10));if(r){let n=e.indexOf(r.toString());n===-1?i.push(E(t?r:s)):e.splice(n,1)}else if(t){i.push(E(0));break}else i.push(E(s))}if(t&&(i=i.filter((f,s)=>i.indexOf(f)===s),a!==void 0)){let f=E(m.codes.get(Number.parseInt(a,10)));i=i.reduce((s,r)=>r===f?[r,...s]:[...s,r],[])}return i.join("")};function p(e,t,a){let i=[...e],f=[],s=typeof a=="number"?a:i.length,r=!1,n,u=0,l="";for(let[h,x]of i.entries()){let b=!1;if(B.includes(x)){let A=/\d[^m]*/.exec(e.slice(h,h+18));n=A&&A.length>0?A[0]:void 0,u<s&&(r=!0,n!==void 0&&f.push(n))}else r&&x==="m"&&(r=!1,b=!0);if(!r&&!b&&u++,!S.test(x)&&o(x.codePointAt())&&(u++,typeof a!="number"&&s++),u>t&&u<=s)l+=x;else if(u===t&&!r&&n!==void 0)l=y(f);else if(u>=s){l+=y(f,!0,n);break}}return l}function g(e,t,a){if(e.charAt(t)===" ")return t;let i=a?1:-1;for(let f=0;f<=3;f++){let s=t+f*i;if(e.charAt(s)===" ")return s}return t}function C(e,t,a={}){let{position:i="end",space:f=!1,preferTruncationOnSpace:s=!1}=a,{truncationCharacter:r="\u2026"}=a;if(typeof e!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof e}`);if(typeof t!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof t}`);if(t<1)return"";if(t===1)return r;let n=c(e);if(n<=t)return e;if(i==="start"){if(s){let u=g(e,n-t+1,!0);return r+p(e,u,n).trim()}return f===!0&&(r+=" "),r+p(e,n-t+c(r),n)}if(i==="middle"){f===!0&&(r=` ${r} `);let u=Math.floor(t/2);if(s){let l=g(e,u),h=g(e,n-(t-u)+1,!0);return p(e,0,l)+r+p(e,h,n).trim()}return p(e,0,u)+r+p(e,n-(t-u)+c(r),n)}if(i==="end"){if(s){let u=g(e,t-1);return p(e,0,u)+r}return f===!0&&(r=` ${r}`),p(e,0,t-c(r))+r}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${i}`)}export{o as a,C as b};
1
+ import{e as c,f as m}from"./chunk-7E4MJCVE.js";import{g as F}from"./chunk-VKWPEFWQ.js";F();F();F();function o(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var S=/^[\uD800-\uDBFF][\uDC00-\uDFFF]$/,B=["\x1B","\x9B"],E=e=>`${B[0]}[${e}m`,y=(e,t,a)=>{let i=[];e=[...e];for(let f of e){let s=f;f.includes(";")&&(f=f.split(";")[0][0]+"0");let r=m.codes.get(Number.parseInt(f,10));if(r){let n=e.indexOf(r.toString());n===-1?i.push(E(t?r:s)):e.splice(n,1)}else if(t){i.push(E(0));break}else i.push(E(s))}if(t&&(i=i.filter((f,s)=>i.indexOf(f)===s),a!==void 0)){let f=E(m.codes.get(Number.parseInt(a,10)));i=i.reduce((s,r)=>r===f?[r,...s]:[...s,r],[])}return i.join("")};function p(e,t,a){let i=[...e],f=[],s=typeof a=="number"?a:i.length,r=!1,n,u=0,l="";for(let[h,x]of i.entries()){let b=!1;if(B.includes(x)){let A=/\d[^m]*/.exec(e.slice(h,h+18));n=A&&A.length>0?A[0]:void 0,u<s&&(r=!0,n!==void 0&&f.push(n))}else r&&x==="m"&&(r=!1,b=!0);if(!r&&!b&&u++,!S.test(x)&&o(x.codePointAt())&&(u++,typeof a!="number"&&s++),u>t&&u<=s)l+=x;else if(u===t&&!r&&n!==void 0)l=y(f);else if(u>=s){l+=y(f,!0,n);break}}return l}function g(e,t,a){if(e.charAt(t)===" ")return t;let i=a?1:-1;for(let f=0;f<=3;f++){let s=t+f*i;if(e.charAt(s)===" ")return s}return t}function C(e,t,a={}){let{position:i="end",space:f=!1,preferTruncationOnSpace:s=!1}=a,{truncationCharacter:r="\u2026"}=a;if(typeof e!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof e}`);if(typeof t!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof t}`);if(t<1)return"";if(t===1)return r;let n=c(e);if(n<=t)return e;if(i==="start"){if(s){let u=g(e,n-t+1,!0);return r+p(e,u,n).trim()}return f===!0&&(r+=" "),r+p(e,n-t+c(r),n)}if(i==="middle"){f===!0&&(r=` ${r} `);let u=Math.floor(t/2);if(s){let l=g(e,u),h=g(e,n-(t-u)+1,!0);return p(e,0,l)+r+p(e,h,n).trim()}return p(e,0,u)+r+p(e,n-(t-u)+c(r),n)}if(i==="end"){if(s){let u=g(e,t-1);return p(e,0,u)+r}return f===!0&&(r=` ${r}`),p(e,0,t-c(r))+r}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${i}`)}export{o as a,C as b};
@@ -1,4 +1,4 @@
1
- import{p,v as d}from"./chunk-P3Z5RLVV.js";import{a as u}from"./chunk-TMV37ENR.js";import{aa as w}from"./chunk-IBTQO3JD.js";import{b as l}from"./chunk-DGMRL5DQ.js";import{z as f}from"./chunk-SKRUMRB4.js";import{i}from"./chunk-FCULF3JA.js";import{Xa as c,qa as h}from"./chunk-YJWNM4XO.js";import{f as r,n as m}from"./chunk-3VYOLEQE.js";import{e as _,g as o}from"./chunk-VKWPEFWQ.js";o();o();var g=_(w(),1),P=["AGENTS.md","DESIGN.md","assets/**","blocks/**","config/**","layout/**","listings/**/*","locales/**","sections/**","snippets/**","templates/**","templates/customers/**","release-notes.md","update_extension.json"].join("|");async function y(e){let t=await k(e),s=`${e}/${t}`,n=`${e}/(${P})`;await u({inputDirectory:e,outputZipPath:s,matchFilePattern:n}),f({body:["Your local theme was packaged in",{filePath:m(s)}]})}async function k(e){let t=r(e,"config/settings_schema.json");if(!await c(t))throw new i("Provide a config/settings_schema.json to package your theme.");let s=await v(t);if(s===void 0||s.theme_name===void 0)throw new i("Provide a theme_info.theme_name configuration in config/settings_schema.json.");return`${[s.theme_name,s.theme_version].filter(Boolean).join("-")}.zip`}async function v(e){let t=(0,g.parseJSON)(await h(e),null,!0);if(!t)throw new i("The file config/settings_schema.json contains an error. Please check if the file is valid JSON and includes the theme_info.theme_name configuration.");return t.find(s=>s.name==="theme_info")}var a=class extends d{static summary="Package your theme into a .zip file, ready to upload to the Online Store.";static descriptionWithMarkdown=`Packages your local theme files into a ZIP file that can be uploaded to Shopify.
1
+ import{p,v as d}from"./chunk-TWS34WUT.js";import{a as u}from"./chunk-R6IJRVVM.js";import{da as w}from"./chunk-P2MVR6CG.js";import{b as l}from"./chunk-Q4TZD2M6.js";import{z as f}from"./chunk-RCYQPOJW.js";import{i}from"./chunk-ZZ7SOJHH.js";import{Xa as c,qa as h}from"./chunk-3F42A3XV.js";import{f as r,n as m}from"./chunk-3VYOLEQE.js";import{e as _,g as o}from"./chunk-VKWPEFWQ.js";o();o();var g=_(w(),1),P=["AGENTS.md","DESIGN.md","assets/**","blocks/**","config/**","layout/**","listings/**/*","locales/**","sections/**","snippets/**","templates/**","templates/customers/**","release-notes.md","update_extension.json"].join("|");async function y(e){let t=await k(e),s=`${e}/${t}`,n=`${e}/(${P})`;await u({inputDirectory:e,outputZipPath:s,matchFilePattern:n}),f({body:["Your local theme was packaged in",{filePath:m(s)}]})}async function k(e){let t=r(e,"config/settings_schema.json");if(!await c(t))throw new i("Provide a config/settings_schema.json to package your theme.");let s=await v(t);if(s===void 0||s.theme_name===void 0)throw new i("Provide a theme_info.theme_name configuration in config/settings_schema.json.");return`${[s.theme_name,s.theme_version].filter(Boolean).join("-")}.zip`}async function v(e){let t=(0,g.parseJSON)(await h(e),null,!0);if(!t)throw new i("The file config/settings_schema.json contains an error. Please check if the file is valid JSON and includes the theme_info.theme_name configuration.");return t.find(s=>s.name==="theme_info")}var a=class extends d{static summary="Package your theme into a .zip file, ready to upload to the Online Store.";static descriptionWithMarkdown=`Packages your local theme files into a ZIP file that can be uploaded to Shopify.
2
2
 
3
3
  Only folders that match the [default Shopify theme folder structure](https://shopify.dev/docs/storefronts/themes/tools/cli#directory-structure) are included in the package.
4
4
 
@@ -1,3 +1,3 @@
1
- import{a as ne}from"./chunk-XFZDFDZV.js";import{d as ie}from"./chunk-DGMRL5DQ.js";import{a as se,b as q}from"./chunk-FW5HGFSZ.js";import{B as C,K as L,pa as V,ra as U,sa as X,u as w}from"./chunk-L5XWYTHY.js";import{e as x}from"./chunk-QAXFCAOV.js";import{A as N,B as I,E as re,a as Q,x as te}from"./chunk-SKRUMRB4.js";import{b as K}from"./chunk-YTJ3EPD3.js";import{d as Z,e as ee}from"./chunk-G54BKNIX.js";import{i as F,l as oe}from"./chunk-FCULF3JA.js";import{Cb as R,Eb as l,Ja as W,Nb as h,Ya as _}from"./chunk-YJWNM4XO.js";import{b as Ie}from"./chunk-JA2QZ635.js";import{d as Y,f as k,i as J,q as $}from"./chunk-3VYOLEQE.js";import{e as Te,g as f}from"./chunk-VKWPEFWQ.js";f();var T=Te(Ie(),1);var O={path:T.Flags.string({description:"The path where you want to run the command. Defaults to the current working directory.",env:"SHOPIFY_FLAG_PATH",parse:async t=>{let e=k(t);return _(e)?W(e)?e:(I({headline:"The path must be a directory, not a file.",body:[`The provided path is not a directory: ${e}`,`Did you mean: ${J(e)}`]}),process.exit(1)):(I({headline:"A path was explicitly provided but doesn't exist.",body:[`Please check the path and try again: ${e}`]}),process.exit(1))},default:async()=>$(),noCacheDefault:!0}),password:T.Flags.string({description:"Password generated from the Theme Access app or an Admin API token.",env:"SHOPIFY_CLI_THEME_TOKEN"}),store:T.Flags.string({char:"s",description:"Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).",env:"SHOPIFY_FLAG_STORE",parse:async t=>w(t)}),environment:T.Flags.string({char:"e",description:"The environment to apply to the current command.",env:"SHOPIFY_FLAG_ENVIRONMENT",multiple:!0})},ae="Wrap the value in double quotes if you're using wildcards.",qe=t=>({only:T.Flags.string({char:"o",multiple:!0,description:`${t.charAt(0).toUpperCase()+t.slice(1)} only the specified files (Multiple flags allowed). ${ae}`,env:"SHOPIFY_FLAG_ONLY"}),ignore:T.Flags.string({char:"x",multiple:!0,description:`Skip ${t}ing the specified files (Multiple flags allowed). ${ae}`,env:"SHOPIFY_FLAG_IGNORE"})});f();f();import{AsyncLocalStorage as _e}from"node:async_hooks";var pe=new _e,ce,ue,me,de;function S(){return ce??=new x({projectName:"shopify-cli-theme-conf"}),ce}function j(){return ue??=new x({projectName:"shopify-cli-development-theme-config"}),ue}function D(){return me??=new x({projectName:"shopify-cli-repl-theme-config"}),me}function M(){return de??=new x({projectName:"shopify-cli-theme-store-password"}),de}function B(t=S()){return pe.getStore()?.store??t.get("themeStore")}function fe(t,e=S()){e.set("themeStore",t)}function He(t=S()){return h(l`Getting development theme...`),j().get(v(t))}function ze(t,e=S()){h(l`Setting development theme...`),j().set(v(e),t)}function Ye(t=S()){h(l`Removing development theme...`),j().delete(v(t))}function Je(t=S()){return h(l`Getting REPL theme...`),D().get(v(t))}function We(t,e=S()){h(l`Setting REPL theme to ${t}...`),D().set(v(e),t)}function Ke(t=S()){h(l`Removing REPL theme...`),D().delete(v(t))}function Qe(t=S()){let e=v(t);return h(l`Getting storefront password for shop ${e}...`),M().get(e)}function Ve(t,e=S()){let o=v(e);h(l`Setting storefront password for shop ${o}...`),M().set(o,t)}function Xe(t=S()){let e=v(t);h(l`Removing storefront password for ${e}...`),M().delete(e)}function v(t=S()){let e=B(t);if(!e)throw new oe("Theme store is not set. This indicates an unexpected issue with the CLI. Please report this to the Shopify CLI team.",["It may be possible to recover by running",{command:"shopify theme list --store <store>"},"(setting the store flag to the store you wish to use) and then running the command again."]);return e}async function he(t,e){return pe.run({store:t},e)}function le(t){let e=t.store??B();if(!e)throw V(new F("A store is required",`Specify the store passing ${l`${R.genericShellCommand(`--${O.store.name}=example.myshopify.com`)}`.value} or set the ${l`${R.genericShellCommand(O.store.env)}`.value} environment variable.`));return fe(e),e}f();f();var Se="shopify.theme.toml",ct=new Intl.DateTimeFormat(void 0,{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}),ut=["**/.git","**/.vscode","**/.hg","**/.bzr","**/.svn","**/_darcs","**/CVS","**/*.sublime-(project|workspace)","**/.DS_Store","**/.sass-cache","**/Thumbs.db","**/desktop.ini","**/config.yml","**/node_modules/",".prettierrc.json","**/{blocks,layout,snippets}/**/*.liquid.tmp.*","**/{config,locales}/**/*.json.tmp.*","**/{sections,templates}/**/*.{liquid,json}.tmp.*"],mt=50;f();f();var G="7e9cb568cfd431c538f36d1ad3f2b4f6";var Fe="shopify-cli-store",be=240*1e3,ge;function P(){return ge??=new x({projectName:Fe}),ge}function b(t){return`${G}::${Ee(t)}`}function Ee(t){return t.replace(/\\/g,"\\\\").replace(/\./g,"\\.")}function d(t){return typeof t=="string"}function ke(t){if(!t||typeof t!="object")return;let e=t;if(typeof e.id=="number")return{id:e.id,...d(e.email)?{email:e.email}:{},...d(e.firstName)?{firstName:e.firstName}:{},...d(e.lastName)?{lastName:e.lastName}:{},...typeof e.accountOwner=="boolean"?{accountOwner:e.accountOwner}:{}}}function $e(t){if(!t||typeof t!="object")return;let e=t;if(!(!d(e.shopId)||!d(e.name)||!d(e.createdAt)))return{shopId:e.shopId,name:e.name,createdAt:e.createdAt,...d(e.placeholderAccountUuid)?{placeholderAccountUuid:e.placeholderAccountUuid}:{},...d(e.country)?{country:e.country}:{},...d(e.accessUrl)?{accessUrl:e.accessUrl}:{}}}function Pe(t){if(!t||typeof t!="object")return;let e=t;if(!d(e.store)||!d(e.clientId)||!d(e.userId)||!d(e.accessToken)||!Array.isArray(e.scopes)||!e.scopes.every(d)||!d(e.acquiredAt))return;let o=ke(e.associatedUser),r=e.kind==="preview"?"preview":"standard",n=r==="preview"?$e(e.preview):void 0;if(!(r==="preview"&&!n))return{store:e.store,clientId:e.clientId,userId:e.userId,accessToken:e.accessToken,scopes:e.scopes,acquiredAt:e.acquiredAt,...d(e.refreshToken)?{refreshToken:e.refreshToken}:{},...d(e.expiresAt)?{expiresAt:e.expiresAt}:{},...d(e.refreshTokenExpiresAt)?{refreshTokenExpiresAt:e.refreshTokenExpiresAt}:{},...o?{associatedUser:o}:{},...r==="preview"?{kind:r}:{},...n?{preview:n}:{}}}function ye(t,e,o){if(!e||typeof e!="object")return;let{sessionsByUserId:r,currentUserId:n}=e;if(!(r!==void 0||n!==void 0))return;let s=b(t);if(!r||typeof r!="object"||Array.isArray(r)||typeof n!="string"){o.delete(s);return}let a=Object.fromEntries(Object.entries(r).flatMap(([u,c])=>{let p=Pe(c);return p?[[u,p]]:[]}));if(Object.keys(a).length!==Object.keys(r).length)if(a[n])o.set(s,{currentUserId:n,sessionsByUserId:a});else{o.delete(s);return}return{currentUserId:n,sessionsByUserId:a}}function H(t,e){return ye(t,e.get(b(t)),e)}function Ce(t){return t.config?.store??{}}function we(t=P()){let e=[],o=`${G}::`;for(let[r,n]of Object.entries(Ce(t))){if(!r.startsWith(o))continue;let i=ye(r.slice(o.length),n,t),s=i?.sessionsByUserId[i.currentUserId];s&&e.push(s)}return e}function Ae(t,e=P()){let o=w(t),r=H(o,e);if(!r)return;let n=r.sessionsByUserId[r.currentUserId];if(!n){e.delete(b(o));return}return n}function wt(t,e=P()){let o=b(t.store),r=H(t.store,e),n={currentUserId:t.userId,sessionsByUserId:{...r?.sessionsByUserId??{},[t.userId]:t}};e.set(o,n)}function At(t,e,o){let r=w(t),n=typeof e=="string"?e:void 0,i=(typeof e=="string"?o:e)??P(),s=b(r);if(!n){i.delete(s);return}let a=H(r,i);if(!a)return;let{[n]:u,...c}=a.sessionsByUserId,p=Object.keys(c);if(p.length===0){i.delete(s);return}i.set(s,{currentUserId:a.currentUserId===n?p[0]:a.currentUserId,sessionsByUserId:c})}function ve(t){if(!t.expiresAt)return!1;let e=new Date(t.expiresAt).getTime();return Number.isNaN(e)?!0:e-be<Date.now()}var z=class extends q{static baseFlags={...q.baseFlags,...ie};environmentsFilename(){return Se}async command(e,o,r=!1,n,i){}async run(e){let o=this.constructor,r=o.multiEnvironmentsFlags,{args:n,flags:i}=await this.parse(o),s="password"in o.flags,a=(Array.isArray(i.environment)?i.environment:[i.environment]).filter(Boolean),u=r!==null&&r.some(m=>Array.isArray(m)?m.includes("store"):m==="store");if(a.length<=1){if(a[0]&&!i.store&&u)throw new F("Please provide a valid environment.");let m=s?await this.createSession(i):void 0,A=this.constructor.name.toLowerCase();if(U(`theme-command:${A}:single-env:authenticated`),i.path&&!_(i.path))throw new F(`Path does not exist: ${i.path}`);try{await this.command(i,m,!1,n)}finally{await this.logAnalyticsData(m)}return}if(r===null){N({body:"This command does not support multiple environments."});return}let{flags:c}=await this.parse(se(o),this.argv);if("path"in c){this.errorOnGlobalPath();return}let p=await this.loadEnvironments(a,i,c),g=await this.validateEnvironments(p,r,s);"force"in o.flags&&!i.force&&!await this.showConfirmation(this.constructor.name,r,g)||await this.runConcurrent(g.valid)}storeAuthScopes(){}async loadEnvironments(e,o,r){let n=new Map;for(let i of e){let s=await ne(i,"shopify.theme.toml",{from:o.path,silent:!0});s?.store&&typeof s.store=="string"&&(s.store=w(s.store)),s?.path&&typeof s.path=="string"&&(s.path=k(s.path)),n.set(i,{flags:{...o,...s,...r,environment:[i]},validationFlags:{...s,...r}})}return n}async validateEnvironments(e,o,r){let n=[],i=[],s=r?this.storeAuthSessionsForTheme(Array.from(e.values()).map(({validationFlags:u})=>u)):new Map,a=Array.from(e.entries()).map(([u,{flags:c,validationFlags:p}])=>({environmentName:u,flags:c,validationFlags:p,storeAuthSession:this.storeAuthSessionFromCache(p,s)}));for(let{environmentName:u,flags:c,validationFlags:p,storeAuthSession:g}of a){let y=this.validConfig(p,o,u,g);if(y!==!0){let m=y.join(", ");i.push({environment:u,reason:`Missing flags: ${m}`});continue}n.push({environment:u,flags:c,requiresAuth:r,storeAuthSession:g})}return{valid:n,invalid:i}}async showConfirmation(e,o,r){let s={message:[`Run ${e.toLowerCase()} in the following environments?`],confirmationMessage:"Yes, proceed",cancellationMessage:"Cancel"},a=[...r.valid.map(({environment:u,flags:c})=>{let p=o.map(g=>{let y=Array.isArray(g)?g.find(m=>c[m]):g;if(y==="password")return"password";if(y==="path"&&typeof c.path=="string"){let m=c.path.split(/[/\\]/);if(m.length===1)return`path: ${c.path}`;let A=m[0]===""?`/${m[1]}`:m[0],E=m.at(-1);return`path: ${A}/.../${E}`}return y&&`${y}: ${c[y]}`}).join(", ");return[u,{subdued:p||"No flags required"}]}),...r.invalid.map(({environment:u,reason:c})=>[u,{error:`Skipping | ${c}`}])];return s.infoTable={Environment:a},r.invalid.length>0&&(s.confirmationMessage="Proceed anyway (will skip invalid environments)"),re(s)}async runConcurrent(e){let o=new Q,r=e.map(s=>s.flags.store),n=new Set(r),i=r.length===n.size?[e]:this.createSequentialGroups(e);for(let s of i)await te({processes:s.map(({environment:a,flags:u,requiresAuth:c,storeAuthSession:p})=>({prefix:a,action:async(g,y,m)=>{try{let A=u.store;await he(A,async()=>{let E=c?await this.createSession(u,p):void 0,xe=this.constructor.name.toLowerCase();U(`theme-command:${xe}:multi-env:authenticated`);try{await this.command(u,E,!0,{},{stdout:g,stderr:y})}finally{await this.logAnalyticsData(E)}})}catch(A){A instanceof Error&&(A.message=`Environment ${a} failed:
1
+ import{a as ne}from"./chunk-EMKLN75K.js";import{d as ie}from"./chunk-Q4TZD2M6.js";import{a as se,b as q}from"./chunk-EZ5F4ZFY.js";import{B as C,K as L,pa as V,ra as U,sa as X,u as w}from"./chunk-3E3MCY5O.js";import{e as x}from"./chunk-Q555FV2X.js";import{A as N,B as I,E as re,a as Q,x as te}from"./chunk-RCYQPOJW.js";import{b as K}from"./chunk-YTJ3EPD3.js";import{d as Z,e as ee}from"./chunk-PQH4U2XV.js";import{i as F,l as oe}from"./chunk-ZZ7SOJHH.js";import{Cb as R,Eb as l,Ja as W,Nb as h,Ya as _}from"./chunk-3F42A3XV.js";import{b as Ie}from"./chunk-I3J63RFV.js";import{d as Y,f as k,i as J,q as $}from"./chunk-3VYOLEQE.js";import{e as Te,g as f}from"./chunk-VKWPEFWQ.js";f();var T=Te(Ie(),1);var O={path:T.Flags.string({description:"The path where you want to run the command. Defaults to the current working directory.",env:"SHOPIFY_FLAG_PATH",parse:async t=>{let e=k(t);return _(e)?W(e)?e:(I({headline:"The path must be a directory, not a file.",body:[`The provided path is not a directory: ${e}`,`Did you mean: ${J(e)}`]}),process.exit(1)):(I({headline:"A path was explicitly provided but doesn't exist.",body:[`Please check the path and try again: ${e}`]}),process.exit(1))},default:async()=>$(),noCacheDefault:!0}),password:T.Flags.string({description:"Password generated from the Theme Access app or an Admin API token.",env:"SHOPIFY_CLI_THEME_TOKEN"}),store:T.Flags.string({char:"s",description:"Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).",env:"SHOPIFY_FLAG_STORE",parse:async t=>w(t)}),environment:T.Flags.string({char:"e",description:"The environment to apply to the current command.",env:"SHOPIFY_FLAG_ENVIRONMENT",multiple:!0})},ae="Wrap the value in double quotes if you're using wildcards.",qe=t=>({only:T.Flags.string({char:"o",multiple:!0,description:`${t.charAt(0).toUpperCase()+t.slice(1)} only the specified files (Multiple flags allowed). ${ae}`,env:"SHOPIFY_FLAG_ONLY"}),ignore:T.Flags.string({char:"x",multiple:!0,description:`Skip ${t}ing the specified files (Multiple flags allowed). ${ae}`,env:"SHOPIFY_FLAG_IGNORE"})});f();f();import{AsyncLocalStorage as _e}from"node:async_hooks";var pe=new _e,ce,ue,me,de;function S(){return ce??=new x({projectName:"shopify-cli-theme-conf"}),ce}function j(){return ue??=new x({projectName:"shopify-cli-development-theme-config"}),ue}function D(){return me??=new x({projectName:"shopify-cli-repl-theme-config"}),me}function M(){return de??=new x({projectName:"shopify-cli-theme-store-password"}),de}function B(t=S()){return pe.getStore()?.store??t.get("themeStore")}function fe(t,e=S()){e.set("themeStore",t)}function He(t=S()){return h(l`Getting development theme...`),j().get(v(t))}function ze(t,e=S()){h(l`Setting development theme...`),j().set(v(e),t)}function Ye(t=S()){h(l`Removing development theme...`),j().delete(v(t))}function Je(t=S()){return h(l`Getting REPL theme...`),D().get(v(t))}function We(t,e=S()){h(l`Setting REPL theme to ${t}...`),D().set(v(e),t)}function Ke(t=S()){h(l`Removing REPL theme...`),D().delete(v(t))}function Qe(t=S()){let e=v(t);return h(l`Getting storefront password for shop ${e}...`),M().get(e)}function Ve(t,e=S()){let o=v(e);h(l`Setting storefront password for shop ${o}...`),M().set(o,t)}function Xe(t=S()){let e=v(t);h(l`Removing storefront password for ${e}...`),M().delete(e)}function v(t=S()){let e=B(t);if(!e)throw new oe("Theme store is not set. This indicates an unexpected issue with the CLI. Please report this to the Shopify CLI team.",["It may be possible to recover by running",{command:"shopify theme list --store <store>"},"(setting the store flag to the store you wish to use) and then running the command again."]);return e}async function he(t,e){return pe.run({store:t},e)}function le(t){let e=t.store??B();if(!e)throw V(new F("A store is required",`Specify the store passing ${l`${R.genericShellCommand(`--${O.store.name}=example.myshopify.com`)}`.value} or set the ${l`${R.genericShellCommand(O.store.env)}`.value} environment variable.`));return fe(e),e}f();f();var Se="shopify.theme.toml",ct=new Intl.DateTimeFormat(void 0,{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}),ut=["**/.git","**/.vscode","**/.hg","**/.bzr","**/.svn","**/_darcs","**/CVS","**/*.sublime-(project|workspace)","**/.DS_Store","**/.sass-cache","**/Thumbs.db","**/desktop.ini","**/config.yml","**/node_modules/",".prettierrc.json","**/{blocks,layout,snippets}/**/*.liquid.tmp.*","**/{config,locales}/**/*.json.tmp.*","**/{sections,templates}/**/*.{liquid,json}.tmp.*"],mt=50;f();f();var G="7e9cb568cfd431c538f36d1ad3f2b4f6";var Fe="shopify-cli-store",be=240*1e3,ge;function P(){return ge??=new x({projectName:Fe}),ge}function b(t){return`${G}::${Ee(t)}`}function Ee(t){return t.replace(/\\/g,"\\\\").replace(/\./g,"\\.")}function d(t){return typeof t=="string"}function ke(t){if(!t||typeof t!="object")return;let e=t;if(typeof e.id=="number")return{id:e.id,...d(e.email)?{email:e.email}:{},...d(e.firstName)?{firstName:e.firstName}:{},...d(e.lastName)?{lastName:e.lastName}:{},...typeof e.accountOwner=="boolean"?{accountOwner:e.accountOwner}:{}}}function $e(t){if(!t||typeof t!="object")return;let e=t;if(!(!d(e.shopId)||!d(e.name)||!d(e.createdAt)))return{shopId:e.shopId,name:e.name,createdAt:e.createdAt,...d(e.placeholderAccountUuid)?{placeholderAccountUuid:e.placeholderAccountUuid}:{},...d(e.country)?{country:e.country}:{},...d(e.accessUrl)?{accessUrl:e.accessUrl}:{}}}function Pe(t){if(!t||typeof t!="object")return;let e=t;if(!d(e.store)||!d(e.clientId)||!d(e.userId)||!d(e.accessToken)||!Array.isArray(e.scopes)||!e.scopes.every(d)||!d(e.acquiredAt))return;let o=ke(e.associatedUser),r=e.kind==="preview"?"preview":"standard",n=r==="preview"?$e(e.preview):void 0;if(!(r==="preview"&&!n))return{store:e.store,clientId:e.clientId,userId:e.userId,accessToken:e.accessToken,scopes:e.scopes,acquiredAt:e.acquiredAt,...d(e.refreshToken)?{refreshToken:e.refreshToken}:{},...d(e.expiresAt)?{expiresAt:e.expiresAt}:{},...d(e.refreshTokenExpiresAt)?{refreshTokenExpiresAt:e.refreshTokenExpiresAt}:{},...o?{associatedUser:o}:{},...r==="preview"?{kind:r}:{},...n?{preview:n}:{}}}function ye(t,e,o){if(!e||typeof e!="object")return;let{sessionsByUserId:r,currentUserId:n}=e;if(!(r!==void 0||n!==void 0))return;let s=b(t);if(!r||typeof r!="object"||Array.isArray(r)||typeof n!="string"){o.delete(s);return}let a=Object.fromEntries(Object.entries(r).flatMap(([u,c])=>{let p=Pe(c);return p?[[u,p]]:[]}));if(Object.keys(a).length!==Object.keys(r).length)if(a[n])o.set(s,{currentUserId:n,sessionsByUserId:a});else{o.delete(s);return}return{currentUserId:n,sessionsByUserId:a}}function H(t,e){return ye(t,e.get(b(t)),e)}function Ce(t){return t.config?.store??{}}function we(t=P()){let e=[],o=`${G}::`;for(let[r,n]of Object.entries(Ce(t))){if(!r.startsWith(o))continue;let i=ye(r.slice(o.length),n,t),s=i?.sessionsByUserId[i.currentUserId];s&&e.push(s)}return e}function Ae(t,e=P()){let o=w(t),r=H(o,e);if(!r)return;let n=r.sessionsByUserId[r.currentUserId];if(!n){e.delete(b(o));return}return n}function wt(t,e=P()){let o=b(t.store),r=H(t.store,e),n={currentUserId:t.userId,sessionsByUserId:{...r?.sessionsByUserId??{},[t.userId]:t}};e.set(o,n)}function At(t,e,o){let r=w(t),n=typeof e=="string"?e:void 0,i=(typeof e=="string"?o:e)??P(),s=b(r);if(!n){i.delete(s);return}let a=H(r,i);if(!a)return;let{[n]:u,...c}=a.sessionsByUserId,p=Object.keys(c);if(p.length===0){i.delete(s);return}i.set(s,{currentUserId:a.currentUserId===n?p[0]:a.currentUserId,sessionsByUserId:c})}function ve(t){if(!t.expiresAt)return!1;let e=new Date(t.expiresAt).getTime();return Number.isNaN(e)?!0:e-be<Date.now()}var z=class extends q{static baseFlags={...q.baseFlags,...ie};environmentsFilename(){return Se}async command(e,o,r=!1,n,i){}async run(e){let o=this.constructor,r=o.multiEnvironmentsFlags,{args:n,flags:i}=await this.parse(o),s="password"in o.flags,a=(Array.isArray(i.environment)?i.environment:[i.environment]).filter(Boolean),u=r!==null&&r.some(m=>Array.isArray(m)?m.includes("store"):m==="store");if(a.length<=1){if(a[0]&&!i.store&&u)throw new F("Please provide a valid environment.");let m=s?await this.createSession(i):void 0,A=this.constructor.name.toLowerCase();if(U(`theme-command:${A}:single-env:authenticated`),i.path&&!_(i.path))throw new F(`Path does not exist: ${i.path}`);try{await this.command(i,m,!1,n)}finally{await this.logAnalyticsData(m)}return}if(r===null){N({body:"This command does not support multiple environments."});return}let{flags:c}=await this.parse(se(o),this.argv);if("path"in c){this.errorOnGlobalPath();return}let p=await this.loadEnvironments(a,i,c),g=await this.validateEnvironments(p,r,s);"force"in o.flags&&!i.force&&!await this.showConfirmation(this.constructor.name,r,g)||await this.runConcurrent(g.valid)}storeAuthScopes(){}async loadEnvironments(e,o,r){let n=new Map;for(let i of e){let s=await ne(i,"shopify.theme.toml",{from:o.path,silent:!0});s?.store&&typeof s.store=="string"&&(s.store=w(s.store)),s?.path&&typeof s.path=="string"&&(s.path=k(s.path)),n.set(i,{flags:{...o,...s,...r,environment:[i]},validationFlags:{...s,...r}})}return n}async validateEnvironments(e,o,r){let n=[],i=[],s=r?this.storeAuthSessionsForTheme(Array.from(e.values()).map(({validationFlags:u})=>u)):new Map,a=Array.from(e.entries()).map(([u,{flags:c,validationFlags:p}])=>({environmentName:u,flags:c,validationFlags:p,storeAuthSession:this.storeAuthSessionFromCache(p,s)}));for(let{environmentName:u,flags:c,validationFlags:p,storeAuthSession:g}of a){let y=this.validConfig(p,o,u,g);if(y!==!0){let m=y.join(", ");i.push({environment:u,reason:`Missing flags: ${m}`});continue}n.push({environment:u,flags:c,requiresAuth:r,storeAuthSession:g})}return{valid:n,invalid:i}}async showConfirmation(e,o,r){let s={message:[`Run ${e.toLowerCase()} in the following environments?`],confirmationMessage:"Yes, proceed",cancellationMessage:"Cancel"},a=[...r.valid.map(({environment:u,flags:c})=>{let p=o.map(g=>{let y=Array.isArray(g)?g.find(m=>c[m]):g;if(y==="password")return"password";if(y==="path"&&typeof c.path=="string"){let m=c.path.split(/[/\\]/);if(m.length===1)return`path: ${c.path}`;let A=m[0]===""?`/${m[1]}`:m[0],E=m.at(-1);return`path: ${A}/.../${E}`}return y&&`${y}: ${c[y]}`}).join(", ");return[u,{subdued:p||"No flags required"}]}),...r.invalid.map(({environment:u,reason:c})=>[u,{error:`Skipping | ${c}`}])];return s.infoTable={Environment:a},r.invalid.length>0&&(s.confirmationMessage="Proceed anyway (will skip invalid environments)"),re(s)}async runConcurrent(e){let o=new Q,r=e.map(s=>s.flags.store),n=new Set(r),i=r.length===n.size?[e]:this.createSequentialGroups(e);for(let s of i)await te({processes:s.map(({environment:a,flags:u,requiresAuth:c,storeAuthSession:p})=>({prefix:a,action:async(g,y,m)=>{try{let A=u.store;await he(A,async()=>{let E=c?await this.createSession(u,p):void 0,xe=this.constructor.name.toLowerCase();U(`theme-command:${xe}:multi-env:authenticated`);try{await this.command(u,E,!0,{},{stdout:g,stderr:y})}finally{await this.logAnalyticsData(E)}})}catch(A){A instanceof Error&&(A.message=`Environment ${a} failed:
2
2
 
3
3
  ${A.message}`,I({body:[A.message]}))}}})),abortSignal:o.signal,showTimestamps:!0,renderOptions:{stdout:process.stderr}})}createSequentialGroups(e){let o=[];return e.forEach(r=>{let n=o.find(i=>!i.some(s=>s.flags.store===r.flags.store));n?n.push(r):o.push([r])}),o}async createSession(e,o){let r=le({store:e.store}),n=e.password;return n?await L(r,n):o??await this.storeAuthSessionForTheme({store:r})??await L(r,n)}async storeAuthSessionForTheme(e){let o=this.storeAuthScopes();if(!o)return;let r=typeof e.store=="string"?e.store:void 0,n=e.password;if(!r||n)return;let i=w(r),s=Ae(i);if(s)return this.adminSessionFromStoreAuthSession(s,i,o)}storeAuthSessionsForTheme(e){let o=this.storeAuthScopes();if(!o)return new Map;let r=new Set(e.filter(({store:n,password:i})=>typeof n=="string"&&!i).map(({store:n})=>w(n)));return r.size===0?new Map:new Map(we().map(n=>{let i=w(n.store);if(!r.has(i))return;let s=this.adminSessionFromStoreAuthSession(n,i,o);return s?[i,s]:void 0}).filter(n=>n!==void 0))}storeAuthSessionFromCache(e,o){let r=typeof e.store=="string"?e.store:void 0,n=e.password;if(!(!r||n))return o.get(w(r))}adminSessionFromStoreAuthSession(e,o,r){if(ve(e)){h(`Ignoring stored store auth session for ${o}: it expired at ${e.expiresAt??"unknown"}.`);return}if(!this.hasRequiredStoreAuthScopes(e.scopes,r)){h(`Ignoring stored store auth session for ${o}: it is missing required scopes (has: ${e.scopes.join(", ")}; needs: ${r.join(", ")}).`);return}return h(`Using stored store auth session for ${o} (scopes: ${e.scopes.join(", ")}).`),C(e.userId),{token:e.accessToken,storeFqdn:o}}expandImpliedStoreAuthScopes(e){let o=new Set(e);for(let r of e){let n=r.match(/^(unauthenticated_)?write_(.*)$/);n&&o.add(`${n[1]??""}read_${n[2]}`)}return o}hasRequiredStoreAuthScopes(e,o){let r=this.expandImpliedStoreAuthScopes(e);return o.every(n=>r.has(n))}validConfig(e,o,r,n){let i=o.filter(s=>Array.isArray(s)?!s.some(a=>this.hasRequiredFlag(e,a,n)):!this.hasRequiredFlag(e,s,n)).map(s=>Array.isArray(s)?s.join(" or "):s);return i.length>0?(N({body:[`Missing required flags in environment configuration${r?` for ${r}`:""}:`,{list:{items:i}}]}),i):!0}hasRequiredFlag(e,o,r){return o==="password"&&r?!0:!!e[o]}errorOnGlobalPath(){let e=Y($(),"shopify.theme.toml"),o=_(e);I({body:["Can't use `--path` flag with multiple environments.",...o?["Configure each environment's theme path in your shopify.theme.toml file instead."]:["Run this command from the directory containing shopify.theme.toml.","No shopify.theme.toml found in current directory."]]})}async logAnalyticsData(e){if(!e)return;let o=X();await Z(()=>({store_fqdn_hash:K(e.storeFqdn),store_domain:e.storeFqdn,cmd_theme_timings:JSON.stringify(o.timings),cmd_theme_errors:JSON.stringify(o.errors),cmd_theme_retries:JSON.stringify(o.retries),cmd_theme_events:JSON.stringify(o.events)})),await ee(()=>({store_fqdn:e.storeFqdn}))}};export{G as a,we as b,Ae as c,wt as d,At as e,B as f,He as g,ze as h,Ye as i,Je as j,We as k,Ke as l,Qe as m,Ve as n,Xe as o,O as p,qe as q,le as r,ct as s,ut as t,mt as u,z as v};
@@ -1 +1 @@
1
- import{d as l}from"./chunk-ZHJ6KA43.js";import{c as t}from"./chunk-YY6TFARF.js";import{f as i,m,n as w,o as d,r as f}from"./chunk-P3Z5RLVV.js";import{J as n}from"./chunk-SKRUMRB4.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();async function y(o,r,P){i()||f({store:r});let e=o??m()??await p(["Enter your",{link:{label:"store password",url:t(r)}}]),s=!1;for(;!await l(e,r,P);)s||(d(),s=!0),e=await p(["Incorrect",{link:{label:"store password",url:t(r)}},{char:"."},"Please try again"]);return w(e),e}async function p(o){return n({message:o,password:!0})}export{y as a};
1
+ import{d as l}from"./chunk-PI6FLLDD.js";import{c as t}from"./chunk-YY6TFARF.js";import{f as i,m,n as w,o as d,r as f}from"./chunk-TWS34WUT.js";import{J as n}from"./chunk-RCYQPOJW.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();async function y(o,r,P){i()||f({store:r});let e=o??m()??await p(["Enter your",{link:{label:"store password",url:t(r)}}]),s=!1;for(;!await l(e,r,P);)s||(d(),s=!0),e=await p(["Incorrect",{link:{label:"store password",url:t(r)}},{char:"."},"Please try again"]);return w(e),e}async function p(o){return n({message:o,password:!0})}export{y as a};
@@ -1,2 +1,2 @@
1
- import{b as x,c as D,f as M}from"./chunk-7ZSN2QT5.js";import{a as o}from"./chunk-RGIUP4FW.js";import{D as s,G as h,J as e,z as y}from"./chunk-SKRUMRB4.js";import{d as w}from"./chunk-YTJ3EPD3.js";import{Kb as _,ya as u}from"./chunk-YJWNM4XO.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();async function $(){let a=new Date,n=`${a.getFullYear()}-${(a.getMonth()+1).toString().padStart(2,"0")}-${a.getDate().toString().padStart(2,"0")}`,i=w(),t=await s({message:"Type of message?",choices:[{label:"Info",value:"info"},{label:"Warning",value:"warning"},{label:"Error",value:"error"}]}),b=await e({message:"Title"}),E=await e({message:"Message"}),S=await s({message:"Frequency",choices:[{label:"Only once",value:"once"},{label:"Once a week",value:"once_a_week"},{label:"Once a day",value:"once_a_day"},{label:"Always",value:"always"}]}),r=await e({message:"Minimum CLI version (optional)",initialAnswer:o,allowEmpty:!0}),l=await e({message:"Maximum CLI version (optional)",initialAnswer:o,allowEmpty:!0}),m=await e({message:"Minimum date in YYYY-MM-DD format (optional)",initialAnswer:n,allowEmpty:!0}),c=await e({message:"Maximum date in YYYY-MM-DD format (optional)",initialAnswer:n,allowEmpty:!0}),f=await e({message:"Surface. E.g.: app, theme, hydrogen, theme_app_extension... (optional)",allowEmpty:!0}),g=await e({message:"Comma separated list of commands. E.g.: app:generate:extension (optional)",allowEmpty:!0}),T=await e({message:"Slack channel of the team who will own this notification"}),d=await x(),v={id:i,type:t,title:b,frequency:S,message:E,minVersion:r.length===0?void 0:r,maxVersion:l.length===0?void 0:l,minDate:m.length===0?void 0:m,maxDate:c.length===0?void 0:c,surface:f.length===0?void 0:f,commands:g.length===0?void 0:g.split(",").map(N=>N.trim()),ownerChannel:T};d.notifications.push(v),await u("./notifications.json",JSON.stringify(d)),y({headline:"notifications.json file updated successfully."})}async function j(){let a=await D(),n={type:{header:"Type",color:"dim"},title:{header:"Title",color:"dim"},message:{header:"Message",color:"dim"},filters:{header:"Filters",color:"dim"}},i=a.notifications.map(t=>({type:t.type,title:t.title??"",message:t.message,filters:M(t)}));h({rows:i,columns:n}),_(`
1
+ import{b as x,c as D,f as M}from"./chunk-KY36HSIB.js";import{a as o}from"./chunk-TQ7MHGY4.js";import{D as s,G as h,J as e,z as y}from"./chunk-RCYQPOJW.js";import{d as w}from"./chunk-YTJ3EPD3.js";import{Kb as _,ya as u}from"./chunk-3F42A3XV.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();async function $(){let a=new Date,n=`${a.getFullYear()}-${(a.getMonth()+1).toString().padStart(2,"0")}-${a.getDate().toString().padStart(2,"0")}`,i=w(),t=await s({message:"Type of message?",choices:[{label:"Info",value:"info"},{label:"Warning",value:"warning"},{label:"Error",value:"error"}]}),b=await e({message:"Title"}),E=await e({message:"Message"}),S=await s({message:"Frequency",choices:[{label:"Only once",value:"once"},{label:"Once a week",value:"once_a_week"},{label:"Once a day",value:"once_a_day"},{label:"Always",value:"always"}]}),r=await e({message:"Minimum CLI version (optional)",initialAnswer:o,allowEmpty:!0}),l=await e({message:"Maximum CLI version (optional)",initialAnswer:o,allowEmpty:!0}),m=await e({message:"Minimum date in YYYY-MM-DD format (optional)",initialAnswer:n,allowEmpty:!0}),c=await e({message:"Maximum date in YYYY-MM-DD format (optional)",initialAnswer:n,allowEmpty:!0}),f=await e({message:"Surface. E.g.: app, theme, hydrogen, theme_app_extension... (optional)",allowEmpty:!0}),g=await e({message:"Comma separated list of commands. E.g.: app:generate:extension (optional)",allowEmpty:!0}),T=await e({message:"Slack channel of the team who will own this notification"}),d=await x(),v={id:i,type:t,title:b,frequency:S,message:E,minVersion:r.length===0?void 0:r,maxVersion:l.length===0?void 0:l,minDate:m.length===0?void 0:m,maxDate:c.length===0?void 0:c,surface:f.length===0?void 0:f,commands:g.length===0?void 0:g.split(",").map(N=>N.trim()),ownerChannel:T};d.notifications.push(v),await u("./notifications.json",JSON.stringify(d)),y({headline:"notifications.json file updated successfully."})}async function j(){let a=await D(),n={type:{header:"Type",color:"dim"},title:{header:"Title",color:"dim"},message:{header:"Message",color:"dim"},filters:{header:"Filters",color:"dim"}},i=a.notifications.map(t=>({type:t.type,title:t.title??"",message:t.message,filters:M(t)}));h({rows:i,columns:n}),_(`
2
2
  `)}export{$ as a,j as b};
@@ -1,4 +1,4 @@
1
- import{a as d}from"./chunk-JTPVSO6Y.js";import{_ as a}from"./chunk-2KLXRVGQ.js";import{b as l,c as g,f as S}from"./chunk-DGMRL5DQ.js";import{e as o}from"./chunk-L5XWYTHY.js";import{b as C}from"./chunk-JA2QZ635.js";import{e as h,g as e}from"./chunk-VKWPEFWQ.js";e();e();var P=["HONOR_BILLING_PRICE","PLAN_PRICE"],T=["OPT_OUT","WHEN_REQUIRED"],f=["UNSCHEDULED","SCHEDULED","MIGRATED"];var r=h(C(),1);var u={...l,...d,...g},F={watch:r.Flags.boolean({description:"Display the current operation state while polling, then output the final outcome when every operation reaches a terminal status.",env:"SHOPIFY_FLAG_WATCH",default:!1})},y={watch:r.Flags.boolean({description:"Display the current operation state while polling, then output the final state when every operation reaches a terminal status.",env:"SHOPIFY_FLAG_WATCH",default:!1})},R={...u,status:r.Flags.option({description:"Filter subscriptions by migration status.",env:"SHOPIFY_FLAG_STATUS",options:[...f]})()},L={...u,input:r.Flags.string({char:"i",description:"Path to the migration CSV. If omitted, standard input is used.",env:"SHOPIFY_FLAG_INPUT"}),force:S(r.Flags.boolean({char:"f",description:"Skip confirmation.",env:"SHOPIFY_FLAG_FORCE",default:!1})),...F},_={...u,id:r.Flags.string({description:"The app subscription migration operation ID. Can be specified multiple times.",env:"SHOPIFY_FLAG_ID",required:!0,multiple:!0})},v={..._,...y};e();e();var I=o`
1
+ import{a as d}from"./chunk-VXGXK66W.js";import{_ as a}from"./chunk-PG6XEOYF.js";import{b as l,c as g,f as S}from"./chunk-Q4TZD2M6.js";import{e as o}from"./chunk-3E3MCY5O.js";import{b as C}from"./chunk-I3J63RFV.js";import{e as h,g as e}from"./chunk-VKWPEFWQ.js";e();e();var P=["HONOR_BILLING_PRICE","PLAN_PRICE"],T=["OPT_OUT","WHEN_REQUIRED"],f=["UNSCHEDULED","SCHEDULED","MIGRATED"];var r=h(C(),1);var u={...l,...d,...g},F={watch:r.Flags.boolean({description:"Display the current operation state while polling, then output the final outcome when every operation reaches a terminal status.",env:"SHOPIFY_FLAG_WATCH",default:!1})},y={watch:r.Flags.boolean({description:"Display the current operation state while polling, then output the final state when every operation reaches a terminal status.",env:"SHOPIFY_FLAG_WATCH",default:!1})},R={...u,status:r.Flags.option({description:"Filter subscriptions by migration status.",env:"SHOPIFY_FLAG_STATUS",options:[...f]})()},L={...u,input:r.Flags.string({char:"i",description:"Path to the migration CSV. If omitted, standard input is used.",env:"SHOPIFY_FLAG_INPUT"}),force:S(r.Flags.boolean({char:"f",description:"Skip confirmation.",env:"SHOPIFY_FLAG_FORCE",default:!1})),...F},_={...u,id:r.Flags.string({description:"The app subscription migration operation ID. Can be specified multiple times.",env:"SHOPIFY_FLAG_ID",required:!0,multiple:!0})},v={..._,...y};e();e();var I=o`
2
2
  query MigratableAppSubscriptions(
3
3
  $apiKey: String!
4
4
  $first: Int!
@@ -1 +1 @@
1
- import{o as n}from"./chunk-6GA56I3E.js";import{H as s}from"./chunk-SKRUMRB4.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();async function c(e){await s([{title:"Installing dependencies",task:async()=>{await n({packageManager:e.packageManager,directory:e.directory,deep:3})}}])}export{c as a};
1
+ import{o as n}from"./chunk-FQKURDZR.js";import{H as s}from"./chunk-RCYQPOJW.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();async function c(e){await s([{title:"Installing dependencies",task:async()=>{await n({packageManager:e.packageManager,directory:e.directory,deep:3})}}])}export{c as a};
@@ -1,4 +1,4 @@
1
- import{b as s,c as i,d as p}from"./chunk-QILWHHAQ.js";import{b as e,c as r}from"./chunk-DGMRL5DQ.js";import{b as o}from"./chunk-FW5HGFSZ.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();var t=class n extends o{static summary="Enable automatic upgrades for Shopify CLI.";static descriptionWithMarkdown=`Enable automatic upgrades for Shopify CLI.
1
+ import{b as s,c as i,d as p}from"./chunk-IJLD5UYC.js";import{b as e,c as r}from"./chunk-Q4TZD2M6.js";import{b as o}from"./chunk-EZ5F4ZFY.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();var t=class n extends o{static summary="Enable automatic upgrades for Shopify CLI.";static descriptionWithMarkdown=`Enable automatic upgrades for Shopify CLI.
2
2
 
3
3
  When auto-upgrade is enabled, Shopify CLI automatically updates to the latest version once per day. Major version upgrades are skipped and must be done manually.
4
4
 
@@ -0,0 +1,4 @@
1
+ import{c as zr,g as Ft}from"./chunk-VKWPEFWQ.js";var Wr=zr((Oe,Dt)=>{Ft();(function(s,q){typeof Oe=="object"&&typeof Dt<"u"?q(Oe):typeof define=="function"&&define.amd?define(["exports"],q):(s=typeof globalThis<"u"?globalThis:s||self,q(s.async={}))})(Oe,(function(s){"use strict";function q(t,...e){return(...r)=>t(...e,...r)}function z(t){return function(...e){var r=e.pop();return t.call(this,e,r)}}var qt=typeof queueMicrotask=="function"&&queueMicrotask,Ve=typeof setImmediate=="function"&&setImmediate,Ge=typeof process=="object"&&typeof process.nextTick=="function";function Re(t){setTimeout(t,0)}function Ue(t){return(e,...r)=>t(()=>e(...r))}var W;qt?W=queueMicrotask:Ve?W=setImmediate:Ge?W=process.nextTick:W=Re;var j=Ue(W);function H(t){return Y(t)?function(...e){let r=e.pop(),n=t.apply(this,e);return Qe(n,r)}:z(function(e,r){var n;try{n=t.apply(this,e)}catch(i){return r(i)}if(n&&typeof n.then=="function")return Qe(n,r);r(null,n)})}function Qe(t,e){return t.then(r=>{ze(e,null,r)},r=>{ze(e,r&&(r instanceof Error||r.message)?r:new Error(r))})}function ze(t,e,r){try{t(e,r)}catch(n){j(i=>{throw i},n)}}function Y(t){return t[Symbol.toStringTag]==="AsyncFunction"}function Pt(t){return t[Symbol.toStringTag]==="AsyncGenerator"}function Vt(t){return typeof t[Symbol.asyncIterator]=="function"}function p(t){if(typeof t!="function")throw new Error("expected a function");return Y(t)?H(t):t}function m(t,e){if(e||(e=t.length),!e)throw new Error("arity is undefined");function r(...n){return typeof n[e-1]=="function"?t.apply(this,n):new Promise((i,u)=>{n[e-1]=(a,...f)=>{if(a)return u(a);i(f.length>1?f:f[0])},t.apply(this,n)})}return r}function We(t){return function(r,...n){return m(function(u){var a=this;return t(r,(f,o)=>{p(f).apply(a,n.concat(o))},u)})}}function $e(t,e,r,n){e=e||[];var i=[],u=0,a=p(r);return t(e,(f,o,c)=>{var y=u++;a(f,(g,d)=>{i[y]=d,c(g)})},f=>{n(f,i)})}function x(t){return t&&typeof t.length=="number"&&t.length>=0&&t.length%1===0}let ee={};function B(t){function e(...r){if(t!==null){var n=t;t=null,n.apply(this,r)}}return Object.assign(e,t),e}function Gt(t){return t[Symbol.iterator]&&t[Symbol.iterator]()}function Rt(t){var e=-1,r=t.length;return function(){return++e<r?{value:t[e],key:e}:null}}function Ut(t){var e=-1;return function(){var n=t.next();return n.done?null:(e++,{value:n.value,key:e})}}function Qt(t){var e=t?Object.keys(t):[],r=-1,n=e.length;return function i(){var u=e[++r];return u==="__proto__"?i():r<n?{value:t[u],key:u}:null}}function zt(t){if(x(t))return Rt(t);var e=Gt(t);return e?Ut(e):Qt(t)}function M(t){return function(...e){if(t===null)throw new Error("Callback was already called.");var r=t;t=null,r.apply(this,e)}}function He(t,e,r,n){let i=!1,u=!1,a=!1,f=0,o=0;function c(){f>=e||a||i||(a=!0,t.next().then(({value:d,done:A})=>{if(!(u||i)){if(a=!1,A){i=!0,f<=0&&n(null);return}f++,r(d,o,y),o++,c()}}).catch(g))}function y(d,A){if(f-=1,!u){if(d)return g(d);if(d===!1){i=!0,u=!0;return}if(A===ee||i&&f<=0)return i=!0,n(null);c()}}function g(d){u||(a=!1,i=!0,n(d))}c()}var $=t=>(e,r,n)=>{if(n=B(n),t<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!e)return n(null);if(Pt(e))return He(e,t,r,n);if(Vt(e))return He(e[Symbol.asyncIterator](),t,r,n);var i=zt(e),u=!1,a=!1,f=0,o=!1;function c(g,d){if(!a)if(f-=1,g)u=!0,n(g);else if(g===!1)u=!0,a=!0;else{if(d===ee||u&&f<=0)return u=!0,n(null);o||y()}}function y(){for(o=!0;f<t&&!u;){var g=i();if(g===null){u=!0,f<=0&&n(null);return}f+=1,r(g.value,g.key,M(c))}o=!1}y()};function Wt(t,e,r,n){return $(e)(t,p(r),n)}var P=m(Wt,4);function Ht(t,e,r){r=B(r);var n=0,i=0,{length:u}=t,a=!1;u===0&&r(null);function f(o,c){o===!1&&(a=!0),a!==!0&&(o?r(o):(++i===u||c===ee)&&r(null))}for(;n<u;n++)e(t[n],n,M(f))}function Yt(t,e,r){return P(t,1/0,e,r)}function Jt(t,e,r){var n=x(t)?Ht:Yt;return n(t,p(e),r)}var E=m(Jt,3);function Kt(t,e,r){return $e(E,t,e,r)}var te=m(Kt,3),Ye=We(te);function Xt(t,e,r){return P(t,1,e,r)}var I=m(Xt,3);function Zt(t,e,r){return $e(I,t,e,r)}var Ie=m(Zt,3),Je=We(Ie);let V=Symbol("promiseCallback");function G(){let t,e;function r(n,...i){if(n)return e(n);t(i.length>1?i:i[0])}return r[V]=new Promise((n,i)=>{t=n,e=i}),r}function Te(t,e,r){typeof e!="number"&&(r=e,e=null),r=B(r||G());var n=Object.keys(t).length;if(!n)return r(null);e||(e=n);var i={},u=0,a=!1,f=!1,o=Object.create(null),c=[],y=[],g={};Object.keys(t).forEach(l=>{var v=t[l];if(!Array.isArray(v)){d(l,[v]),y.push(l);return}var S=v.slice(0,v.length-1),w=S.length;if(w===0){d(l,v),y.push(l);return}g[l]=w,S.forEach(_=>{if(!t[_])throw new Error("async.auto task `"+l+"` has a non-existent dependency `"+_+"` in "+S.join(", "));U(_,()=>{w--,w===0&&d(l,v)})})}),L(),A();function d(l,v){c.push(()=>b(l,v))}function A(){if(!a){if(c.length===0&&u===0)return r(null,i);for(;c.length&&u<e;){var l=c.shift();l()}}}function U(l,v){var S=o[l];S||(S=o[l]=[]),S.push(v)}function F(l){var v=o[l]||[];v.forEach(S=>S()),A()}function b(l,v){if(!f){var S=M((_,...O)=>{if(u--,_===!1){a=!0;return}if(O.length<2&&([O]=O),_){var Q={};if(Object.keys(i).forEach(D=>{Q[D]=i[D]}),Q[l]=O,f=!0,o=Object.create(null),a)return;r(_,Q)}else i[l]=O,F(l)});u++;var w=p(v[v.length-1]);v.length>1?w(i,S):w(S)}}function L(){for(var l,v=0;y.length;)l=y.pop(),v++,h(l).forEach(S=>{--g[S]===0&&y.push(S)});if(v!==n)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}function h(l){var v=[];return Object.keys(t).forEach(S=>{let w=t[S];Array.isArray(w)&&w.indexOf(l)>=0&&v.push(S)}),v}return r[V]}var Nt=/^(?:async\s)?(?:function)?\s*(?:\w+\s*)?\(([^)]+)\)(?:\s*{)/,bt=/^(?:async\s)?\s*(?:\(\s*)?((?:[^)=\s]\s*)*)(?:\)\s*)?=>/,kt=/,/,xt=/(=.+)?(\s*)$/;function er(t){let e="",r=0,n=t.indexOf("*/");for(;r<t.length;)if(t[r]==="/"&&t[r+1]==="/"){let i=t.indexOf(`
2
+ `,r);r=i===-1?t.length:i}else if(n!==-1&&t[r]==="/"&&t[r+1]==="*"){let i=t.indexOf("*/",r);i!==-1?(r=i+2,n=t.indexOf("*/",r)):(e+=t[r],r++)}else e+=t[r],r++;return e}function tr(t){let e=er(t.toString()),r=e.match(Nt);if(r||(r=e.match(bt)),!r)throw new Error(`could not parse args in autoInject
3
+ Source:
4
+ `+e);let[,n]=r;return n.replace(/\s/g,"").split(kt).map(i=>i.replace(xt,"").trim())}function Ke(t,e){var r={};return Object.keys(t).forEach(n=>{var i=t[n],u,a=Y(i),f=!a&&i.length===1||a&&i.length===0;if(Array.isArray(i))u=[...i],i=u.pop(),r[n]=u.concat(u.length>0?o:i);else if(f)r[n]=i;else{if(u=tr(i),i.length===0&&!a&&u.length===0)throw new Error("autoInject task functions require explicit parameters.");a||u.pop(),r[n]=u.concat(o)}function o(c,y){var g=u.map(d=>c[d]);g.push(y),p(i)(...g)}}),Te(r,e)}class rr{constructor(){this.head=this.tail=null,this.length=0}removeLink(e){return e.prev?e.prev.next=e.next:this.head=e.next,e.next?e.next.prev=e.prev:this.tail=e.prev,e.prev=e.next=null,this.length-=1,e}empty(){for(;this.head;)this.shift();return this}insertAfter(e,r){r.prev=e,r.next=e.next,e.next?e.next.prev=r:this.tail=r,e.next=r,this.length+=1}insertBefore(e,r){r.prev=e.prev,r.next=e,e.prev?e.prev.next=r:this.head=r,e.prev=r,this.length+=1}unshift(e){this.head?this.insertBefore(this.head,e):Xe(this,e)}push(e){this.tail?this.insertAfter(this.tail,e):Xe(this,e)}shift(){return this.head&&this.removeLink(this.head)}pop(){return this.tail&&this.removeLink(this.tail)}toArray(){return[...this]}*[Symbol.iterator](){for(var e=this.head;e;)yield e.data,e=e.next}remove(e){for(var r=this.head;r;){var{next:n}=r;e(r)&&this.removeLink(r),r=n}return this}}function Xe(t,e){t.length=1,t.head=t.tail=e}function je(t,e,r){if(e==null)e=1;else if(e===0)throw new RangeError("Concurrency must not be zero");var n=p(t),i=0,u=[];let a={error:[],drain:[],saturated:[],unsaturated:[],empty:[]};function f(h,l){a[h].push(l)}function o(h,l){let v=(...S)=>{c(h,v),l(...S)};a[h].push(v)}function c(h,l){if(!h)return Object.keys(a).forEach(v=>a[v]=[]);if(!l)return a[h]=[];a[h]=a[h].filter(v=>v!==l)}function y(h,...l){a[h].forEach(v=>v(...l))}var g=!1;function d(h,l,v,S){if(S!=null&&typeof S!="function")throw new Error("task callback must be a function");L.started=!0;var w,_;function O(D,...k){if(D)return v?_(D):w();if(k.length<=1)return w(k[0]);w(k)}var Q=L._createTaskItem(h,v?O:S||O);if(l?L._tasks.unshift(Q):L._tasks.push(Q),g||(g=!0,j(()=>{g=!1,L.process()})),v||!S)return new Promise((D,k)=>{w=D,_=k})}function A(h){return function(l,...v){i-=1;for(var S=0,w=h.length;S<w;S++){var _=h[S],O=u.indexOf(_);O===0?u.shift():O>0&&u.splice(O,1),_.callback(l,...v),l!=null&&y("error",l,_.data)}i<=L.concurrency-L.buffer&&y("unsaturated"),L.idle()&&y("drain"),L.process()}}function U(h){return h.length===0&&L.idle()?(j(()=>y("drain")),!0):!1}let F=h=>l=>{if(!l)return new Promise((v,S)=>{o(h,(w,_)=>{if(w)return S(w);v(_)})});c(h),f(h,l)};var b=!1,L={_tasks:new rr,_createTaskItem(h,l){return{data:h,callback:l}},*[Symbol.iterator](){yield*L._tasks[Symbol.iterator]()},concurrency:e,payload:r,buffer:e/4,started:!1,paused:!1,push(h,l){return Array.isArray(h)?U(h)?void 0:h.map(v=>d(v,!1,!1,l)):d(h,!1,!1,l)},pushAsync(h,l){return Array.isArray(h)?U(h)?void 0:h.map(v=>d(v,!1,!0,l)):d(h,!1,!0,l)},kill(){c(),L._tasks.empty()},unshift(h,l){return Array.isArray(h)?U(h)?void 0:h.map(v=>d(v,!0,!1,l)):d(h,!0,!1,l)},unshiftAsync(h,l){return Array.isArray(h)?U(h)?void 0:h.map(v=>d(v,!0,!0,l)):d(h,!0,!0,l)},remove(h){L._tasks.remove(h)},process(){if(!b){for(b=!0;!L.paused&&i<L.concurrency&&L._tasks.length;){var h=[],l=[],v=L._tasks.length;L.payload&&(v=Math.min(v,L.payload));for(var S=0;S<v;S++){var w=L._tasks.shift();h.push(w),u.push(w),l.push(w.data)}i+=1,L._tasks.length===0&&y("empty"),i===L.concurrency&&y("saturated");var _=M(A(h));n(l,_)}b=!1}},length(){return L._tasks.length},running(){return i},workersList(){return u},idle(){return L._tasks.length+i===0},pause(){L.paused=!0},resume(){L.paused!==!1&&(L.paused=!1,j(L.process))}};return Object.defineProperties(L,{saturated:{writable:!1,value:F("saturated")},unsaturated:{writable:!1,value:F("unsaturated")},empty:{writable:!1,value:F("empty")},drain:{writable:!1,value:F("drain")},error:{writable:!1,value:F("error")}}),L}function Ze(t,e){return je(t,1,e)}function Ne(t,e,r){return je(t,e,r)}function nr(t,e,r,n){n=B(n);var i=p(r);return I(t,(u,a,f)=>{i(e,u,(o,c)=>{e=c,f(o)})},u=>n(u,e))}var C=m(nr,4);function Be(...t){var e=t.map(p);return function(...r){var n=this,i=r[r.length-1];return typeof i=="function"?r.pop():i=G(),C(e,r,(u,a,f)=>{a.apply(n,u.concat((o,...c)=>{f(o,c)}))},(u,a)=>i(u,...a)),i[V]}}function be(...t){return Be(...t.reverse())}function ir(t,e,r,n){return $e($(e),t,r,n)}var J=m(ir,4);function ur(t,e,r,n){var i=p(r);return J(t,e,(u,a)=>{i(u,(f,...o)=>f?a(f):a(f,o))},(u,a)=>{for(var f=[],o=0;o<a.length;o++)a[o]&&(f=f.concat(...a[o]));return n(u,f)})}var R=m(ur,4);function ar(t,e,r){return R(t,1/0,e,r)}var re=m(ar,3);function fr(t,e,r){return R(t,1,e,r)}var ne=m(fr,3);function ke(...t){return function(...e){var r=e.pop();return r(null,...t)}}function T(t,e){return(r,n,i,u)=>{var a=!1,f;let o=p(i);r(n,(c,y,g)=>{o(c,(d,A)=>{if(d||d===!1)return g(d);if(t(A)&&!f)return a=!0,f=e(!0,c),g(null,ee);g()})},c=>{if(c)return u(c);u(null,a?f:e(!1))})}}function sr(t,e,r){return T(n=>n,(n,i)=>i)(E,t,e,r)}var ie=m(sr,3);function or(t,e,r,n){return T(i=>i,(i,u)=>u)($(e),t,r,n)}var ue=m(or,4);function lr(t,e,r){return T(n=>n,(n,i)=>i)($(1),t,e,r)}var ae=m(lr,3);function xe(t){return(e,...r)=>p(e)(...r,(n,...i)=>{typeof console=="object"&&(n?console.error&&console.error(n):console[t]&&i.forEach(u=>console[t](u)))})}var et=xe("dir");function cr(t,e,r){r=M(r);var n=p(t),i=p(e),u;function a(o,...c){if(o)return r(o);o!==!1&&(u=c,i(...c,f))}function f(o,c){if(o)return r(o);if(o!==!1){if(!c)return r(null,...u);n(a)}}return f(null,!0)}var K=m(cr,3);function tt(t,e,r){let n=p(e);return K(t,(...i)=>{let u=i.pop();n(...i,(a,f)=>u(a,!f))},r)}function rt(t){return(e,r,n)=>t(e,n)}function hr(t,e,r){return E(t,rt(p(e)),r)}var fe=m(hr,3);function vr(t,e,r,n){return $(e)(t,rt(p(r)),n)}var X=m(vr,4);function mr(t,e,r){return X(t,1,e,r)}var Z=m(mr,3);function Me(t){return Y(t)?t:function(...e){var r=e.pop(),n=!0;e.push((...i)=>{n?j(()=>r(...i)):r(...i)}),t.apply(this,e),n=!1}}function pr(t,e,r){return T(n=>!n,n=>!n)(E,t,e,r)}var se=m(pr,3);function yr(t,e,r,n){return T(i=>!i,i=>!i)($(e),t,r,n)}var oe=m(yr,4);function dr(t,e,r){return T(n=>!n,n=>!n)(I,t,e,r)}var le=m(dr,3);function Sr(t,e,r,n){var i=new Array(e.length);t(e,(u,a,f)=>{r(u,(o,c)=>{i[a]=!!c,f(o)})},u=>{if(u)return n(u);for(var a=[],f=0;f<e.length;f++)i[f]&&a.push(e[f]);n(null,a)})}function gr(t,e,r,n){var i=[];t(e,(u,a,f)=>{r(u,(o,c)=>{if(o)return f(o);c&&i.push({index:a,value:u}),f(o)})},u=>{if(u)return n(u);n(null,i.sort((a,f)=>a.index-f.index).map(a=>a.value))})}function ce(t,e,r,n){var i=x(e)?Sr:gr;return i(t,e,p(r),n)}function Lr(t,e,r){return ce(E,t,e,r)}var he=m(Lr,3);function wr(t,e,r,n){return ce($(e),t,r,n)}var ve=m(wr,4);function _r(t,e,r){return ce(I,t,e,r)}var me=m(_r,3);function Er(t,e){var r=M(e),n=p(Me(t));function i(u){if(u)return r(u);u!==!1&&n(i)}return i()}var nt=m(Er,2);function Ar(t,e,r,n){var i=p(r);return J(t,e,(u,a)=>{i(u,(f,o)=>f?a(f):a(f,{key:o,val:u}))},(u,a)=>{for(var f={},{hasOwnProperty:o}=Object.prototype,c=0;c<a.length;c++)if(a[c]){var{key:y}=a[c],{val:g}=a[c];o.call(f,y)?f[y].push(g):f[y]=[g]}return n(u,f)})}var pe=m(Ar,4);function it(t,e,r){return pe(t,1/0,e,r)}function ut(t,e,r){return pe(t,1,e,r)}var at=xe("log");function Or(t,e,r,n){n=B(n);var i={},u=p(r);return $(e)(t,(a,f,o)=>{u(a,f,(c,y)=>{if(c)return o(c);i[f]=y,o(c)})},a=>n(a,i))}var ye=m(Or,4);function ft(t,e,r){return ye(t,1/0,e,r)}function st(t,e,r){return ye(t,1,e,r)}function ot(t,e=r=>r){var r=Object.create(null),n=Object.create(null),i=p(t),u=z((a,f)=>{var o=e(...a);o in r?j(()=>f(null,...r[o])):o in n?n[o].push(f):(n[o]=[f],i(...a,(c,...y)=>{c||(r[o]=y);var g=n[o];delete n[o];for(var d=0,A=g.length;d<A;d++)g[d](c,...y)}))});return u.memo=r,u.unmemoized=t,u}var de;Ge?de=process.nextTick:Ve?de=setImmediate:de=Re;var lt=Ue(de),Ce=m((t,e,r)=>{var n=x(e)?[]:{};t(e,(i,u,a)=>{p(i)((f,...o)=>{o.length<2&&([o]=o),n[u]=o,a(f)})},i=>r(i,n))},3);function ct(t,e){return Ce(E,t,e)}function ht(t,e,r){return Ce($(e),t,r)}function Fe(t,e){var r=p(t);return je((n,i)=>{r(n[0],i)},e,1)}class $r{constructor(){this.heap=[],this.pushCount=Number.MIN_SAFE_INTEGER}get length(){return this.heap.length}empty(){return this.heap=[],this}percUp(e){let r;for(;e>0&&De(this.heap[e],this.heap[r=vt(e)]);){let n=this.heap[e];this.heap[e]=this.heap[r],this.heap[r]=n,e=r}}percDown(e){let r;for(;(r=Ir(e))<this.heap.length&&(r+1<this.heap.length&&De(this.heap[r+1],this.heap[r])&&(r=r+1),!De(this.heap[e],this.heap[r]));){let n=this.heap[e];this.heap[e]=this.heap[r],this.heap[r]=n,e=r}}push(e){e.pushCount=++this.pushCount,this.heap.push(e),this.percUp(this.heap.length-1)}unshift(e){return this.heap.push(e)}shift(){let[e]=this.heap;return this.heap[0]=this.heap[this.heap.length-1],this.heap.pop(),this.percDown(0),e}toArray(){return[...this]}*[Symbol.iterator](){for(let e=0;e<this.heap.length;e++)yield this.heap[e].data}remove(e){let r=0;for(let n=0;n<this.heap.length;n++)e(this.heap[n])||(this.heap[r]=this.heap[n],r++);this.heap.splice(r);for(let n=vt(this.heap.length-1);n>=0;n--)this.percDown(n);return this}}function Ir(t){return(t<<1)+1}function vt(t){return(t+1>>1)-1}function De(t,e){return t.priority!==e.priority?t.priority<e.priority:t.pushCount<e.pushCount}function mt(t,e){var r=Fe(t,e),{push:n,pushAsync:i}=r;r._tasks=new $r,r._createTaskItem=({data:a,priority:f},o)=>({data:a,priority:f,callback:o});function u(a,f){return Array.isArray(a)?a.map(o=>({data:o,priority:f})):{data:a,priority:f}}return r.push=function(a,f=0,o){return n(u(a,f),o)},r.pushAsync=function(a,f=0,o){return i(u(a,f),o)},delete r.unshift,delete r.unshiftAsync,r}function Tr(t,e){if(e=B(e),!Array.isArray(t))return e(new TypeError("First argument to race must be an array of functions"));if(!t.length)return e();for(var r=0,n=t.length;r<n;r++)p(t[r])(e)}var pt=m(Tr,2);function Se(t,e,r,n){var i=[...t].reverse();return C(i,e,r,n)}function ge(t){var e=p(t);return z(function(n,i){return n.push((u,...a)=>{let f={};if(u&&(f.error=u),a.length>0){var o=a;a.length<=1&&([o]=a),f.value=o}i(null,f)}),e.apply(this,n)})}function yt(t){var e;return Array.isArray(t)?e=t.map(ge):(e={},Object.keys(t).forEach(r=>{e[r]=ge.call(this,t[r])})),e}function qe(t,e,r,n){let i=p(r);return ce(t,e,(u,a)=>{i(u,(f,o)=>{a(f,!o)})},n)}function jr(t,e,r){return qe(E,t,e,r)}var dt=m(jr,3);function Br(t,e,r,n){return qe($(e),t,r,n)}var St=m(Br,4);function Mr(t,e,r){return qe(I,t,e,r)}var gt=m(Mr,3);function Lt(t){return function(){return t}}let Pe=5,wt=0;function Le(t,e,r){var n={times:Pe,intervalFunc:Lt(wt)};if(arguments.length<3&&typeof t=="function"?(r=e||G(),e=t):(Cr(n,t),r=r||G()),typeof e!="function")throw new Error("Invalid arguments for async.retry");var i=p(e),u=1;function a(){i((f,...o)=>{f!==!1&&(f&&u++<n.times&&(typeof n.errorFilter!="function"||n.errorFilter(f))?setTimeout(a,n.intervalFunc(u-1)):r(f,...o))})}return a(),r[V]}function Cr(t,e){if(typeof e=="object")t.times=+e.times||Pe,t.intervalFunc=typeof e.interval=="function"?e.interval:Lt(+e.interval||wt),t.errorFilter=e.errorFilter;else if(typeof e=="number"||typeof e=="string")t.times=+e||Pe;else throw new Error("Invalid arguments for async.retry")}function _t(t,e){e||(e=t,t=null);let r=t&&t.arity||e.length;Y(e)&&(r+=1);var n=p(e);return z((i,u)=>{(i.length<r-1||u==null)&&(i.push(u),u=G());function a(f){n(...i,f)}return t?Le(t,a,u):Le(a,u),u[V]})}function Et(t,e){return Ce(I,t,e)}function Fr(t,e,r){return T(Boolean,n=>n)(E,t,e,r)}var we=m(Fr,3);function Dr(t,e,r,n){return T(Boolean,i=>i)($(e),t,r,n)}var _e=m(Dr,4);function qr(t,e,r){return T(Boolean,n=>n)(I,t,e,r)}var Ee=m(qr,3);function Pr(t,e,r){var n=p(e);return te(t,(u,a)=>{n(u,(f,o)=>{if(f)return a(f);a(f,{value:u,criteria:o})})},(u,a)=>{if(u)return r(u);r(null,a.sort(i).map(f=>f.value))});function i(u,a){var f=u.criteria,o=a.criteria;return f<o?-1:f>o?1:0}}var At=m(Pr,3);function Ot(t,e,r){var n=p(t);return z((i,u)=>{var a=!1,f;function o(){var c=t.name||"anonymous",y=new Error('Callback function "'+c+'" timed out.');y.code="ETIMEDOUT",r&&(y.info=r),a=!0,u(y)}i.push((...c)=>{a||(u(...c),clearTimeout(f))}),f=setTimeout(o,e),n(...i)})}function Vr(t){for(var e=Array(t);t--;)e[t]=t;return e}function Ae(t,e,r,n){var i=p(r);return J(Vr(t),e,i,n)}function $t(t,e,r){return Ae(t,1/0,e,r)}function It(t,e,r){return Ae(t,1,e,r)}function Tt(t,e,r,n){arguments.length<=3&&typeof e=="function"&&(n=r,r=e,e=Array.isArray(t)?[]:{}),n=B(n||G());var i=p(r);return E(t,(u,a,f)=>{i(e,u,a,f)},u=>n(u,e)),n[V]}function Gr(t,e){var r=null,n;return Z(t,(i,u)=>{p(i)((a,...f)=>{if(a===!1)return u(a);f.length<2?[n]=f:n=f,r=a,u(a?null:{})})},()=>e(r,n))}var jt=m(Gr);function Bt(t){return(...e)=>(t.unmemoized||t)(...e)}function Rr(t,e,r){r=M(r);var n=p(e),i=p(t),u=[];function a(o,...c){if(o)return r(o);u=c,o!==!1&&i(f)}function f(o,c){if(o)return r(o);if(o!==!1){if(!c)return r(null,...u);n(a)}}return i(f)}var N=m(Rr,3);function Mt(t,e,r){let n=p(t);return N(i=>n((u,a)=>i(u,!a)),e,r)}function Ur(t,e){if(e=B(e),!Array.isArray(t))return e(new Error("First argument to waterfall must be an array of functions"));if(!t.length)return e();var r=0;function n(u){var a=p(t[r++]);a(...u,M(i))}function i(u,...a){if(u!==!1){if(u||r===t.length)return e(u,...a);n(a)}}n([])}var Ct=m(Ur),Qr={apply:q,applyEach:Ye,applyEachSeries:Je,asyncify:H,auto:Te,autoInject:Ke,cargo:Ze,cargoQueue:Ne,compose:be,concat:re,concatLimit:R,concatSeries:ne,constant:ke,detect:ie,detectLimit:ue,detectSeries:ae,dir:et,doUntil:tt,doWhilst:K,each:fe,eachLimit:X,eachOf:E,eachOfLimit:P,eachOfSeries:I,eachSeries:Z,ensureAsync:Me,every:se,everyLimit:oe,everySeries:le,filter:he,filterLimit:ve,filterSeries:me,forever:nt,groupBy:it,groupByLimit:pe,groupBySeries:ut,log:at,map:te,mapLimit:J,mapSeries:Ie,mapValues:ft,mapValuesLimit:ye,mapValuesSeries:st,memoize:ot,nextTick:lt,parallel:ct,parallelLimit:ht,priorityQueue:mt,queue:Fe,race:pt,reduce:C,reduceRight:Se,reflect:ge,reflectAll:yt,reject:dt,rejectLimit:St,rejectSeries:gt,retry:Le,retryable:_t,seq:Be,series:Et,setImmediate:j,some:we,someLimit:_e,someSeries:Ee,sortBy:At,timeout:Ot,times:$t,timesLimit:Ae,timesSeries:It,transform:Tt,tryEach:jt,unmemoize:Bt,until:Mt,waterfall:Ct,whilst:N,all:se,allLimit:oe,allSeries:le,any:we,anyLimit:_e,anySeries:Ee,find:ie,findLimit:ue,findSeries:ae,flatMap:re,flatMapLimit:R,flatMapSeries:ne,forEach:fe,forEachSeries:Z,forEachLimit:X,forEachOf:E,forEachOfSeries:I,forEachOfLimit:P,inject:C,foldl:C,foldr:Se,select:he,selectLimit:ve,selectSeries:me,wrapSync:H,during:N,doDuring:K};s.all=se,s.allLimit=oe,s.allSeries=le,s.any=we,s.anyLimit=_e,s.anySeries=Ee,s.apply=q,s.applyEach=Ye,s.applyEachSeries=Je,s.asyncify=H,s.auto=Te,s.autoInject=Ke,s.cargo=Ze,s.cargoQueue=Ne,s.compose=be,s.concat=re,s.concatLimit=R,s.concatSeries=ne,s.constant=ke,s.default=Qr,s.detect=ie,s.detectLimit=ue,s.detectSeries=ae,s.dir=et,s.doDuring=K,s.doUntil=tt,s.doWhilst=K,s.during=N,s.each=fe,s.eachLimit=X,s.eachOf=E,s.eachOfLimit=P,s.eachOfSeries=I,s.eachSeries=Z,s.ensureAsync=Me,s.every=se,s.everyLimit=oe,s.everySeries=le,s.filter=he,s.filterLimit=ve,s.filterSeries=me,s.find=ie,s.findLimit=ue,s.findSeries=ae,s.flatMap=re,s.flatMapLimit=R,s.flatMapSeries=ne,s.foldl=C,s.foldr=Se,s.forEach=fe,s.forEachLimit=X,s.forEachOf=E,s.forEachOfLimit=P,s.forEachOfSeries=I,s.forEachSeries=Z,s.forever=nt,s.groupBy=it,s.groupByLimit=pe,s.groupBySeries=ut,s.inject=C,s.log=at,s.map=te,s.mapLimit=J,s.mapSeries=Ie,s.mapValues=ft,s.mapValuesLimit=ye,s.mapValuesSeries=st,s.memoize=ot,s.nextTick=lt,s.parallel=ct,s.parallelLimit=ht,s.priorityQueue=mt,s.queue=Fe,s.race=pt,s.reduce=C,s.reduceRight=Se,s.reflect=ge,s.reflectAll=yt,s.reject=dt,s.rejectLimit=St,s.rejectSeries=gt,s.retry=Le,s.retryable=_t,s.select=he,s.selectLimit=ve,s.selectSeries=me,s.seq=Be,s.series=Et,s.setImmediate=j,s.some=we,s.someLimit=_e,s.someSeries=Ee,s.sortBy=At,s.timeout=Ot,s.times=$t,s.timesLimit=Ae,s.timesSeries=It,s.transform=Tt,s.tryEach=jt,s.unmemoize=Bt,s.until=Mt,s.waterfall=Ct,s.whilst=N,s.wrapSync=H,Object.defineProperty(s,"__esModule",{value:!0})}))});export{Wr as a};
@@ -1 +1 @@
1
- import{a as C}from"./chunk-YGFEUXKQ.js";import{a as y}from"./chunk-JTPVSO6Y.js";import{Ca as k,Fa as w,Ga as A,Ha as P}from"./chunk-2KLXRVGQ.js";import{b as h}from"./chunk-DGMRL5DQ.js";import{z as g}from"./chunk-SKRUMRB4.js";import{i as u}from"./chunk-FCULF3JA.js";import{j as r}from"./chunk-3VYOLEQE.js";import{g as n}from"./chunk-VKWPEFWQ.js";n();n();async function s(p){let{directory:t,configName:o,configPath:e,configuration:a,remoteApp:i}=p;if(!a.client_id)throw new u("The selected configuration is not linked to a remote app.","Run `shopify app config link` first to link this configuration to a Shopify app.");let c=i.developerPlatformClient,l=await k({developerPlatformClient:c,app:i}),m=i.flags,b={directory:t,configName:o,developerPlatformClient:c,apiKey:a.client_id},d=await w(b,l,m,i.apiKey),v=r(e),x=await A({remoteApp:i,developerPlatformClient:c,specifications:l,flags:m,configFileName:v,appDirectory:d.appDirectory??t,localAppOptions:d});return{configPath:e,configuration:x,remoteApp:i}}var f=class p extends C{static summary="Refresh an already-linked app configuration without prompts.";static descriptionWithMarkdown="Pulls the latest configuration from the already-linked Shopify app and updates the selected configuration file.\n\nThis command reuses the existing linked app and organization and skips all interactive prompts. Use `--config` to target a specific configuration file, or omit it to use the default one.";static description=this.descriptionForHelp();static flags={...h,...y};async run(){let{flags:t}=await this.parse(p),{app:o,remoteApp:e}=await P({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config}),{configuration:a,configPath:i}=await s({directory:t.path,configName:t.config,configPath:o.configPath,configuration:o.configuration,remoteApp:e});return g({headline:`Pulled latest configuration for "${a.name}"`,body:`Updated ${r(i)} with the remote data.`}),{app:o}}};export{f as a};
1
+ import{a as C}from"./chunk-KOYBR5MV.js";import{a as y}from"./chunk-VXGXK66W.js";import{Ca as k,Fa as w,Ga as A,Ha as P}from"./chunk-PG6XEOYF.js";import{b as h}from"./chunk-Q4TZD2M6.js";import{z as g}from"./chunk-RCYQPOJW.js";import{i as u}from"./chunk-ZZ7SOJHH.js";import{j as r}from"./chunk-3VYOLEQE.js";import{g as n}from"./chunk-VKWPEFWQ.js";n();n();async function s(p){let{directory:t,configName:o,configPath:e,configuration:a,remoteApp:i}=p;if(!a.client_id)throw new u("The selected configuration is not linked to a remote app.","Run `shopify app config link` first to link this configuration to a Shopify app.");let c=i.developerPlatformClient,l=await k({developerPlatformClient:c,app:i}),m=i.flags,b={directory:t,configName:o,developerPlatformClient:c,apiKey:a.client_id},d=await w(b,l,m,i.apiKey),v=r(e),x=await A({remoteApp:i,developerPlatformClient:c,specifications:l,flags:m,configFileName:v,appDirectory:d.appDirectory??t,localAppOptions:d});return{configPath:e,configuration:x,remoteApp:i}}var f=class p extends C{static summary="Refresh an already-linked app configuration without prompts.";static descriptionWithMarkdown="Pulls the latest configuration from the already-linked Shopify app and updates the selected configuration file.\n\nThis command reuses the existing linked app and organization and skips all interactive prompts. Use `--config` to target a specific configuration file, or omit it to use the default one.";static description=this.descriptionForHelp();static flags={...h,...y};async run(){let{flags:t}=await this.parse(p),{app:o,remoteApp:e}=await P({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config}),{configuration:a,configPath:i}=await s({directory:t.path,configName:t.config,configPath:o.configPath,configuration:o.configuration,remoteApp:e});return g({headline:`Pulled latest configuration for "${a.name}"`,body:`Updated ${r(i)} with the remote data.`}),{app:o}}};export{f as a};
@@ -1 +1 @@
1
- import{u as r}from"./chunk-L5XWYTHY.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
+ import{u as r}from"./chunk-3E3MCY5O.js";import{b as o}from"./chunk-I3J63RFV.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 as p}from"./chunk-ZUVAHONX.js";import{a as r,b as c}from"./chunk-SDFO7P2M.js";import{d as s}from"./chunk-4Y22EM45.js";import{a}from"./chunk-YGFEUXKQ.js";import{Ha as n}from"./chunk-2KLXRVGQ.js";import{g as o}from"./chunk-VKWPEFWQ.js";o();var e=class d extends a{static summary="Reverses app subscription migrations that are still scheduled.";static descriptionWithMarkdown="Reverses scheduled app subscription migrations that have not migrated yet.\n\nWhen `--input` is omitted, the command reads CSV data from stdin. Use `--input <path>` to read from a file. `--input -` is also supported as an explicit stdin path.\n\n- Required CSV header: `shop_id`.\n- Example row: `123456789`.\n\nThe CSV can contain only the `shop_id` header, or it can reuse the complete CSV supplied to `schedule`; schedule-only columns are ignored.\n\nUnscheduling is not a rollback after a subscription has migrated. The command validates the entire CSV before sending any mutation. Use `--force` to skip confirmation and immediately submit every valid row.\n\nOperations are submitted in batches of 250 shops. Preserve every operation GID printed by the command so you can check or cancel the submitted operations. With `--watch`, human-readable output shows accepted identifiers before polling begins, then displays operation progress and the final outcome. With `--json --watch`, the command outputs one structured JSON document after every operation reaches a terminal status.\n\nRun the command from an app project. By default, it uses the Client ID from the active app configuration. Use `--path` to select an app directory or `--config` to select a configuration. Pass `--client-id` to select a different app within the project. Use `--reset` to relink the app.";static description=this.descriptionWithoutMarkdown();static examples=["<%= config.bin %> <%= command.id %> --input migrations.csv --force","cat migrations.csv | <%= config.bin %> <%= command.id %> --force","<%= config.bin %> <%= command.id %> --input migrations.csv --path ../my-app --config staging --force --json","<%= config.bin %> <%= command.id %> --input migrations.csv --client-id <client-id> --force","<%= config.bin %> <%= command.id %> --input - --force --watch"];static flags={...s};async run(){let{flags:t}=await this.parse(d),{app:m,remoteApp:u}=await n({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config}),h=await p({action:"unschedule",input:t.input??"-",clientId:u.apiKey,skipConfirmation:t.force,watch:t.watch,...t.watch&&!t.json?{onSubmissionAccepted:r}:{}}),i=c(h,{json:t.json,watch:t.watch});return i!==0&&(process.exitCode=i),{app:m}}};export{e as a};
1
+ import{a as p}from"./chunk-3NRGGEGU.js";import{a as r,b as c}from"./chunk-FU4UVINZ.js";import{d as s}from"./chunk-UMSO6MOI.js";import{a}from"./chunk-KOYBR5MV.js";import{Ha as n}from"./chunk-PG6XEOYF.js";import{g as o}from"./chunk-VKWPEFWQ.js";o();var e=class d extends a{static summary="Reverses app subscription migrations that are still scheduled.";static descriptionWithMarkdown="Reverses scheduled app subscription migrations that have not migrated yet.\n\nWhen `--input` is omitted, the command reads CSV data from stdin. Use `--input <path>` to read from a file. `--input -` is also supported as an explicit stdin path.\n\n- Required CSV header: `shop_id`.\n- Example row: `123456789`.\n\nThe CSV can contain only the `shop_id` header, or it can reuse the complete CSV supplied to `schedule`; schedule-only columns are ignored.\n\nUnscheduling is not a rollback after a subscription has migrated. The command validates the entire CSV before sending any mutation. Use `--force` to skip confirmation and immediately submit every valid row.\n\nOperations are submitted in batches of 250 shops. Preserve every operation GID printed by the command so you can check or cancel the submitted operations. With `--watch`, human-readable output shows accepted identifiers before polling begins, then displays operation progress and the final outcome. With `--json --watch`, the command outputs one structured JSON document after every operation reaches a terminal status.\n\nRun the command from an app project. By default, it uses the Client ID from the active app configuration. Use `--path` to select an app directory or `--config` to select a configuration. Pass `--client-id` to select a different app within the project. Use `--reset` to relink the app.";static description=this.descriptionWithoutMarkdown();static examples=["<%= config.bin %> <%= command.id %> --input migrations.csv --force","cat migrations.csv | <%= config.bin %> <%= command.id %> --force","<%= config.bin %> <%= command.id %> --input migrations.csv --path ../my-app --config staging --force --json","<%= config.bin %> <%= command.id %> --input migrations.csv --client-id <client-id> --force","<%= config.bin %> <%= command.id %> --input - --force --watch"];static flags={...s};async run(){let{flags:t}=await this.parse(d),{app:m,remoteApp:u}=await n({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config}),h=await p({action:"unschedule",input:t.input??"-",clientId:u.apiKey,skipConfirmation:t.force,watch:t.watch,...t.watch&&!t.json?{onSubmissionAccepted:r}:{}}),i=c(h,{json:t.json,watch:t.watch});return i!==0&&(process.exitCode=i),{app:m}}};export{e as a};
@@ -1,4 +1,4 @@
1
- import{p as C,v as Y}from"./chunk-P3Z5RLVV.js";import{$ as re,aa as q}from"./chunk-IBTQO3JD.js";import{b as H}from"./chunk-DGMRL5DQ.js";import{r as L}from"./chunk-6GA56I3E.js";import{y as w,z as E}from"./chunk-SKRUMRB4.js";import{i as $}from"./chunk-FCULF3JA.js";import{Ib as p,Kb as P,Lb as G,Nb as j,R as I,Xa as N,db as A,ya as T}from"./chunk-YJWNM4XO.js";import{b as oe}from"./chunk-JA2QZ635.js";import{d as O,f as S,p as b}from"./chunk-3VYOLEQE.js";import{e as k,g as v}from"./chunk-VKWPEFWQ.js";v();v();var r=k(q(),1),l=k(re(),1);function se(e,t){return e instanceof Error&&"code"in e&&e.code==="ENOENT"&&"path"in e&&typeof e.path=="string"&&S(e.path)===S(t)}async function F(e,t){try{return await t()}catch(n){throw e!==void 0&&se(n,e)?new $(`Theme Check config file not found: ${e}`):n}}function ce(e){switch(e){case"error":return r.Severity.ERROR;case"suggestion":case"warning":return r.Severity.WARNING;case"style":case"info":return r.Severity.INFO;case"crash":return}}function U(e){switch(e){case r.Severity.ERROR:return"error";case r.Severity.WARNING:return"warning";case r.Severity.INFO:return"info"}}function ae(e){return new Map(e.map(t=>[t.uri,t.source]))}function ue(e,t,n){let o=e.split(`
1
+ import{p as C,v as Y}from"./chunk-TWS34WUT.js";import{ca as re,da as q}from"./chunk-P2MVR6CG.js";import{b as H}from"./chunk-Q4TZD2M6.js";import{r as L}from"./chunk-FQKURDZR.js";import{y as w,z as E}from"./chunk-RCYQPOJW.js";import{i as $}from"./chunk-ZZ7SOJHH.js";import{Ib as p,Kb as P,Lb as G,Nb as j,R as I,Xa as N,db as A,ya as T}from"./chunk-3F42A3XV.js";import{b as oe}from"./chunk-I3J63RFV.js";import{d as O,f as S,p as b}from"./chunk-3VYOLEQE.js";import{e as k,g as v}from"./chunk-VKWPEFWQ.js";v();v();var r=k(q(),1),l=k(re(),1);function se(e,t){return e instanceof Error&&"code"in e&&e.code==="ENOENT"&&"path"in e&&typeof e.path=="string"&&S(e.path)===S(t)}async function F(e,t){try{return await t()}catch(n){throw e!==void 0&&se(n,e)?new $(`Theme Check config file not found: ${e}`):n}}function ce(e){switch(e){case"error":return r.Severity.ERROR;case"suggestion":case"warning":return r.Severity.WARNING;case"style":case"info":return r.Severity.INFO;case"crash":return}}function U(e){switch(e){case r.Severity.ERROR:return"error";case r.Severity.WARNING:return"warning";case r.Severity.INFO:return"info"}}function ae(e){return new Map(e.map(t=>[t.uri,t.source]))}function ue(e,t,n){let o=e.split(`
2
2
  `).slice(t,n+1),s=o.length===1;return o.map((c,a)=>{let u=t+a+1,d=s?c.trim():c;return`${u} ${d}`}).join(`
3
3
  `)}function fe(e){switch(e){case r.Severity.ERROR:return{error:`
4
4
  [error]:`};case r.Severity.WARNING:return{warn:`
@@ -1,3 +1,3 @@
1
- import{c as g,g as h}from"./chunk-4Y22EM45.js";import{a as m}from"./chunk-YGFEUXKQ.js";import{Ha as d}from"./chunk-2KLXRVGQ.js";import{i as f}from"./chunk-FCULF3JA.js";import{Ib as s}from"./chunk-YJWNM4XO.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(`
1
+ import{c as g,g as h}from"./chunk-UMSO6MOI.js";import{a as m}from"./chunk-KOYBR5MV.js";import{Ha as d}from"./chunk-PG6XEOYF.js";import{i as f}from"./chunk-ZZ7SOJHH.js";import{Ib as s}from"./chunk-3F42A3XV.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
2
  `)):(s([w,...e].join(`
3
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{h as l}from"./chunk-R757TSQ6.js";import{K as c}from"./chunk-L5XWYTHY.js";import{i as u}from"./chunk-FCULF3JA.js";import{g as i}from"./chunk-VKWPEFWQ.js";i();var s=["live","unpublished","development"];async function x(e,r){let t=await c(e,r);return p(t)}async function p(e){let r=e.storeFqdn,t=(await l(e)).filter(d);if(t.length===0)throw new u(`There are no themes in the ${r} store`);return t.sort(w)}function d(e){return s.includes(e.role)}function w(e,r){return s.indexOf(e.role)-s.indexOf(r.role)}i();function b(e,r,t){return y(e,r,t)??T(e,r,t)}function y(e,r,t){let o=t.role;if(!o)return;let n=`No themes on the store ${e} match the role "${o}"`;return m(r,h=>h.role===o).orThrow(n)}function T(e,r,t){return t.themeIdentifiers.flatMap(n=>{let h=`No themes on the store ${e} match the ID or name "${n}"`;return m(r,f=>`${f.id}`===n||f.name.toLowerCase()===n.toLowerCase()?!0:L(f.name.toLowerCase(),n.toLowerCase())).orThrow(h)})}function m(e,r){let t=e.filter(r);return t.length>0?{orThrow:o=>t}:{orThrow:o=>{throw new u(o)}}}var a=class{queryProps;constructor(r){this.queryProps=r}get role(){for(let r of s)if(this.queryProps[r])return r}get themeIdentifiers(){return[this.queryProps.theme,this.queryProps.themes].flat().filter(t=>!!t)}any(){return Object.values(this.queryProps).some(r=>r?.length!==void 0?r.length>0:!!r)}};function L(e,r){let t=r.replace(/(^\*)|(\*$)/g,"");return r.startsWith("*")&&r.endsWith("*")?e.includes(t):r.startsWith("*")?e.endsWith(t):r.endsWith("*")?e.startsWith(t):!1}export{s as a,x as b,p as c,b as d,a as e};
1
+ import{h as l}from"./chunk-JAY7AGAG.js";import{K as c}from"./chunk-3E3MCY5O.js";import{i as u}from"./chunk-ZZ7SOJHH.js";import{g as i}from"./chunk-VKWPEFWQ.js";i();var s=["live","unpublished","development"];async function x(e,r){let t=await c(e,r);return p(t)}async function p(e){let r=e.storeFqdn,t=(await l(e)).filter(d);if(t.length===0)throw new u(`There are no themes in the ${r} store`);return t.sort(w)}function d(e){return s.includes(e.role)}function w(e,r){return s.indexOf(e.role)-s.indexOf(r.role)}i();function b(e,r,t){return y(e,r,t)??T(e,r,t)}function y(e,r,t){let o=t.role;if(!o)return;let n=`No themes on the store ${e} match the role "${o}"`;return m(r,h=>h.role===o).orThrow(n)}function T(e,r,t){return t.themeIdentifiers.flatMap(n=>{let h=`No themes on the store ${e} match the ID or name "${n}"`;return m(r,f=>`${f.id}`===n||f.name.toLowerCase()===n.toLowerCase()?!0:L(f.name.toLowerCase(),n.toLowerCase())).orThrow(h)})}function m(e,r){let t=e.filter(r);return t.length>0?{orThrow:o=>t}:{orThrow:o=>{throw new u(o)}}}var a=class{queryProps;constructor(r){this.queryProps=r}get role(){for(let r of s)if(this.queryProps[r])return r}get themeIdentifiers(){return[this.queryProps.theme,this.queryProps.themes].flat().filter(t=>!!t)}any(){return Object.values(this.queryProps).some(r=>r?.length!==void 0?r.length>0:!!r)}};function L(e,r){let t=r.replace(/(^\*)|(\*$)/g,"");return r.startsWith("*")&&r.endsWith("*")?e.includes(t):r.startsWith("*")?e.endsWith(t):r.endsWith("*")?e.startsWith(t):!1}export{s as a,x as b,p as c,b as d,a as e};