@shopify/cli 4.8.4 → 4.9.0

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 (490) hide show
  1. package/dist/analytics-QK4RFCB6.js +1 -0
  2. package/dist/analytics-R6I5APDB.js +1 -0
  3. package/dist/assets/hydrogen/starter/package.json +1 -1
  4. package/dist/bootstrap.js +1 -3
  5. package/dist/chunk-22LJALHJ.js +7 -0
  6. package/dist/{chunk-APUYMORT.js → chunk-23K3B23N.js} +1 -1
  7. package/dist/chunk-2KLXRVGQ.js +317 -0
  8. package/dist/{chunk-QXR5DJC2.js → chunk-2LZQM5JG.js} +1 -1
  9. package/dist/chunk-2OHSGC4Q.js +1 -0
  10. package/dist/chunk-2Q3WIH7S.js +6 -0
  11. package/dist/{chunk-FRRA5MI2.js → chunk-2W6M7YDY.js} +1 -1
  12. package/dist/{chunk-NHOF2IN6.js → chunk-2YFB3PTV.js} +9 -9
  13. package/dist/chunk-2YRVHJEY.js +4 -0
  14. package/dist/{chunk-3CZ7DKE5.js → chunk-3AASYIOA.js} +3 -3
  15. package/dist/chunk-3DMDSAWK.js +20 -0
  16. package/dist/{chunk-KWQGJ3VC.js → chunk-3SG5EJFC.js} +1 -1
  17. package/dist/chunk-3T2WMZHC.js +1 -0
  18. package/dist/{chunk-773TIA5M.js → chunk-3VYOLEQE.js} +2 -2
  19. package/dist/chunk-3WVEL423.js +1 -0
  20. package/dist/{chunk-SVYHWGMI.js → chunk-3ZK5JZLY.js} +1 -1
  21. package/dist/chunk-44QTWXOJ.js +8 -0
  22. package/dist/{chunk-4QBJ5JBX.js → chunk-4A7FPJVT.js} +16 -15
  23. package/dist/chunk-4TQFTZVD.js +18 -0
  24. package/dist/chunk-4WACZNFF.js +1 -0
  25. package/dist/{chunk-RIM7FNP3.js → chunk-4XSYMLQG.js} +1 -1
  26. package/dist/{chunk-EJJPEWSB.js → chunk-4Y22EM45.js} +1 -1
  27. package/dist/chunk-53U6XS3J.js +1 -0
  28. package/dist/chunk-55NKAIIT.js +1 -0
  29. package/dist/chunk-55PABKRC.js +5 -0
  30. package/dist/chunk-5BLXN5WU.js +1 -0
  31. package/dist/{chunk-LAMTFOVF.js → chunk-5BYVVXGD.js} +1 -1
  32. package/dist/{chunk-Z5KYKXMH.js → chunk-5HEBS5DG.js} +3 -3
  33. package/dist/{chunk-LEW5IJK6.js → chunk-5HONV6NQ.js} +1 -1
  34. package/dist/chunk-5RL6DKWR.js +5 -0
  35. package/dist/chunk-5XO6PAMV.js +1 -0
  36. package/dist/chunk-6DHY67FO.js +6 -0
  37. package/dist/{chunk-6QADNGH4.js → chunk-6GA56I3E.js} +1 -1
  38. package/dist/chunk-6IL3B5Z5.js +4 -0
  39. package/dist/{chunk-RHBLXZGU.js → chunk-6ILP6QCH.js} +1 -1
  40. package/dist/{chunk-H7TDIRIU.js → chunk-6RBCFXJT.js} +1 -1
  41. package/dist/{chunk-WAJRWCZY.js → chunk-72HS7MHV.js} +1 -1
  42. package/dist/{chunk-SPNM3GES.js → chunk-74HXMIDM.js} +1 -1
  43. package/dist/{chunk-ZAH6QID2.js → chunk-77B77IGP.js} +1 -1
  44. package/dist/chunk-7DRKDQRT.js +1 -0
  45. package/dist/chunk-7HDJBEBP.js +3 -0
  46. package/dist/chunk-7IGMIDKK.js +15 -0
  47. package/dist/chunk-7QQPAT4L.js +1 -0
  48. package/dist/chunk-7Y4X5I6N.js +1 -0
  49. package/dist/{chunk-WGFGWDWP.js → chunk-7ZSN2QT5.js} +1 -1
  50. package/dist/chunk-A54V5UCD.js +5 -0
  51. package/dist/{chunk-VETLNJ56.js → chunk-AD4S2VEI.js} +1 -1
  52. package/dist/chunk-ADW7ECNU.js +7 -0
  53. package/dist/chunk-AS2O62JX.js +1 -0
  54. package/dist/chunk-ASUARYJD.js +1 -0
  55. package/dist/chunk-B4RPJYDH.js +1 -0
  56. package/dist/{chunk-ZCNNJCTQ.js → chunk-BJOJNAKH.js} +1 -1
  57. package/dist/chunk-BL5JWD3Y.js +16 -0
  58. package/dist/chunk-BOFCBTX7.js +1 -0
  59. package/dist/chunk-BPIQ4YTW.js +1 -0
  60. package/dist/chunk-C6FZII5S.js +1 -0
  61. package/dist/{chunk-NBXXTQWA.js → chunk-CACPRKUF.js} +1 -1
  62. package/dist/{chunk-QVO5CAJN.js → chunk-CHLSNYF7.js} +1 -1
  63. package/dist/chunk-CMICT4XI.js +1 -0
  64. package/dist/chunk-CPFAATMO.js +6 -0
  65. package/dist/{chunk-CSOCXWP6.js → chunk-CSRNHTHO.js} +2 -2
  66. package/dist/chunk-D3K42KBL.js +9 -0
  67. package/dist/chunk-DGMRL5DQ.js +1 -0
  68. package/dist/chunk-DKJPE42V.js +2 -0
  69. package/dist/{chunk-AIILEPSK.js → chunk-DYA5UUXL.js} +1 -1
  70. package/dist/chunk-E5ND6RBL.js +1 -0
  71. package/dist/{chunk-XKHKXUQY.js → chunk-E75DJTAF.js} +1 -1
  72. package/dist/chunk-ECEOBSGD.js +1 -0
  73. package/dist/{chunk-NDT3F2PR.js → chunk-EYSZRIUL.js} +1 -1
  74. package/dist/chunk-FCULF3JA.js +1 -0
  75. package/dist/chunk-FL34EOXG.js +1 -0
  76. package/dist/chunk-FW5HGFSZ.js +20 -0
  77. package/dist/{chunk-XRJCD3AO.js → chunk-G54BKNIX.js} +1 -1
  78. package/dist/{chunk-74CYT3VX.js → chunk-G7OIACY5.js} +1 -1
  79. package/dist/{chunk-IHH5XTPV.js → chunk-GALDYSEX.js} +1 -1
  80. package/dist/{chunk-A5U4KKNV.js → chunk-GDQLA5NB.js} +1 -1
  81. package/dist/{chunk-6A3TDSON.js → chunk-GJJBOCKD.js} +3 -3
  82. package/dist/{chunk-TAY7HU7X.js → chunk-GQZPGTG7.js} +20 -20
  83. package/dist/{chunk-XHXKPRF5.js → chunk-GVRFO4CV.js} +1 -1
  84. package/dist/chunk-HB3MJYBK.js +1 -0
  85. package/dist/{chunk-AEUCDGTB.js → chunk-HDQXFGYG.js} +1 -1
  86. package/dist/chunk-HSTNTHWM.js +1 -0
  87. package/dist/{chunk-A3U7JDUC.js → chunk-HSZC2LBB.js} +1 -1
  88. package/dist/chunk-I4FGM6UH.js +8 -0
  89. package/dist/chunk-I7GYNNCU.js +6 -0
  90. package/dist/{chunk-ZVA5F4QC.js → chunk-IBTQO3JD.js} +1 -1
  91. package/dist/{chunk-XWXAFJFC.js → chunk-IISE7SBT.js} +1 -1
  92. package/dist/chunk-IUZZWXJG.js +3 -0
  93. package/dist/chunk-IWML2HLC.js +5 -0
  94. package/dist/{chunk-CTNBSUVU.js → chunk-JA2QZ635.js} +2 -2
  95. package/dist/chunk-JOJRABPY.js +3 -0
  96. package/dist/chunk-JQKB3D37.js +1 -0
  97. package/dist/chunk-JROJL6RV.js +1 -0
  98. package/dist/{chunk-GINXNPAR.js → chunk-JTPVSO6Y.js} +1 -1
  99. package/dist/chunk-JWDUSMCA.js +1 -0
  100. package/dist/{chunk-CBMX6XI7.js → chunk-KLYJDAP6.js} +1 -1
  101. package/dist/{chunk-4HOJJCZ6.js → chunk-KVROYIUQ.js} +1 -1
  102. package/dist/chunk-L5XWYTHY.js +836 -0
  103. package/dist/chunk-LOTGSNS5.js +2 -0
  104. package/dist/{chunk-FGRW7GT4.js → chunk-LQLFMDVD.js} +1 -1
  105. package/dist/{chunk-7LZ34C4S.js → chunk-LSWFHTJT.js} +1 -1
  106. package/dist/{chunk-HYPY5WH6.js → chunk-LV2IWYGL.js} +1 -1
  107. package/dist/{chunk-W4SGAPPR.js → chunk-LYPNQFWX.js} +1 -1
  108. package/dist/{chunk-U6URYCC6.js → chunk-MRVQ6XRW.js} +1 -1
  109. package/dist/chunk-MVVHISCR.js +2 -0
  110. package/dist/{chunk-UJBMY5WR.js → chunk-N4DE5H65.js} +1 -1
  111. package/dist/{chunk-W6ST525S.js → chunk-N56BJ3F7.js} +1 -1
  112. package/dist/{chunk-W4SQE6NR.js → chunk-NF7MOA4K.js} +1 -1
  113. package/dist/{chunk-7KLPRSQR.js → chunk-NGN7U2UF.js} +1 -1
  114. package/dist/{chunk-TCFGEOE4.js → chunk-NTVEJYKI.js} +1 -1
  115. package/dist/chunk-NYABB6XW.js +1 -0
  116. package/dist/{chunk-DH3DMUE2.js → chunk-O6E7YL7N.js} +2 -2
  117. package/dist/chunk-OASB6XPV.js +16 -0
  118. package/dist/{chunk-WY7QF7VU.js → chunk-OBYY45BX.js} +1 -1
  119. package/dist/chunk-OETFY7FE.js +28 -0
  120. package/dist/{chunk-QZEDYQVT.js → chunk-OEZATTOS.js} +1 -1
  121. package/dist/{chunk-D6LQ56XT.js → chunk-OG7SF4FU.js} +1 -1
  122. package/dist/chunk-OM243CQ6.js +6 -0
  123. package/dist/chunk-P3Z5RLVV.js +3 -0
  124. package/dist/{chunk-HINK4QAR.js → chunk-PBBZNGS4.js} +1 -1
  125. package/dist/chunk-PGTKKP2B.js +11 -0
  126. package/dist/chunk-PK4ID32C.js +1 -0
  127. package/dist/{chunk-7FVCUY54.js → chunk-PVOWU77O.js} +1 -1
  128. package/dist/{chunk-66HW6J57.js → chunk-PXD2WJOI.js} +3 -3
  129. package/dist/chunk-PXXTSW6I.js +4 -0
  130. package/dist/{chunk-AU7GNCOK.js → chunk-PZHE37Z4.js} +1 -1
  131. package/dist/{chunk-TA2M37OB.js → chunk-Q34PKJRR.js} +1 -1
  132. package/dist/{chunk-S5H5U3PR.js → chunk-Q3O3AFZT.js} +1 -1
  133. package/dist/chunk-Q45XAEG2.js +16 -0
  134. package/dist/{chunk-QKTBYAUD.js → chunk-QAXFCAOV.js} +5 -5
  135. package/dist/{chunk-FY47X4NG.js → chunk-QBGSSUJP.js} +1 -1
  136. package/dist/chunk-QILWHHAQ.js +1 -0
  137. package/dist/chunk-QJST4LZX.js +1 -0
  138. package/dist/chunk-QQN4PJZD.js +1 -0
  139. package/dist/{chunk-6P5FGN6P.js → chunk-QSKOR3ED.js} +1 -1
  140. package/dist/{chunk-FRVRTOTF.js → chunk-QTEWTPAQ.js} +2 -2
  141. package/dist/chunk-QWDJRSJJ.js +1 -0
  142. package/dist/{chunk-GTAYTMCP.js → chunk-R757TSQ6.js} +1 -1
  143. package/dist/chunk-RCIU7NHA.js +1 -0
  144. package/dist/chunk-RGIUP4FW.js +1 -0
  145. package/dist/{chunk-RDS2WYQH.js → chunk-RHNFWHFY.js} +1 -1
  146. package/dist/{chunk-VG3YVCZW.js → chunk-S7536EWZ.js} +4 -4
  147. package/dist/{chunk-VBICZDA4.js → chunk-SDFO7P2M.js} +1 -1
  148. package/dist/{chunk-JQPPLSFT.js → chunk-SDJNAUU6.js} +1 -1
  149. package/dist/chunk-SGBLCVUX.js +1 -0
  150. package/dist/chunk-SJARQZVN.js +3 -0
  151. package/dist/chunk-SKRUMRB4.js +383 -0
  152. package/dist/{chunk-5Z6EW3FA.js → chunk-SW5EWGBJ.js} +1 -1
  153. package/dist/chunk-SXPWOYLT.js +7 -0
  154. package/dist/chunk-T234RERA.js +7 -0
  155. package/dist/chunk-TJJVX7CU.js +4 -0
  156. package/dist/{chunk-L4LDNEFK.js → chunk-TMV37ENR.js} +1 -1
  157. package/dist/{chunk-BYX7SQPM.js → chunk-TNXZWQZU.js} +1 -1
  158. package/dist/{chunk-67QK26HI.js → chunk-TO7TXDLU.js} +1 -1
  159. package/dist/chunk-TSLZNTFM.js +3 -0
  160. package/dist/{chunk-BG7QQU23.js → chunk-UFU2LGFK.js} +1 -1
  161. package/dist/chunk-VDDNDA5K.js +15 -0
  162. package/dist/{chunk-T4V7KOGJ.js → chunk-VFO5OYQ4.js} +1 -1
  163. package/dist/{chunk-HXVUDGLH.js → chunk-VFP3PUGZ.js} +24 -24
  164. package/dist/{chunk-6QDOCBD4.js → chunk-VZUHMW5E.js} +4 -3
  165. package/dist/chunk-W7CBJNXD.js +12 -0
  166. package/dist/chunk-WCAGYCT7.js +4 -0
  167. package/dist/{chunk-DPNZWBT5.js → chunk-WNO2V53C.js} +1 -1
  168. package/dist/{chunk-Y4BBTWM5.js → chunk-WPUQTUDX.js} +1 -1
  169. package/dist/chunk-WU7MSL3I.js +8 -0
  170. package/dist/chunk-WXV35TPE.js +1 -0
  171. package/dist/{chunk-2WATX3XV.js → chunk-XBSWZ6BT.js} +6 -6
  172. package/dist/chunk-XCNJL7ES.js +1 -0
  173. package/dist/{chunk-C4Y7PQDQ.js → chunk-XFZDFDZV.js} +1 -1
  174. package/dist/chunk-XTYSJIZY.js +1 -0
  175. package/dist/chunk-Y5ZN62VF.js +1 -0
  176. package/dist/{chunk-PNNW7YQG.js → chunk-YAH5WFYR.js} +3 -3
  177. package/dist/{chunk-DUNE3INK.js → chunk-YBQKJHZW.js} +1 -1
  178. package/dist/chunk-YD66PU3Y.js +1 -0
  179. package/dist/chunk-YGFEUXKQ.js +1 -0
  180. package/dist/chunk-YJWNM4XO.js +18 -0
  181. package/dist/{chunk-L3JBKCAS.js → chunk-YQQHBFMA.js} +1 -1
  182. package/dist/chunk-YRHFPXC3.js +1 -0
  183. package/dist/chunk-YTJ3EPD3.js +1 -0
  184. package/dist/chunk-YX5GRXRS.js +2368 -0
  185. package/dist/chunk-Z35PUKKP.js +7 -0
  186. package/dist/{chunk-7VQBIGJB.js → chunk-Z3XIZMEM.js} +1 -1
  187. package/dist/chunk-ZGASBRSQ.js +5 -0
  188. package/dist/{chunk-OY6L7J53.js → chunk-ZHJ6KA43.js} +1 -1
  189. package/dist/{chunk-YHTONNIZ.js → chunk-ZO4IBP4B.js} +1 -1
  190. package/dist/chunk-ZOYSMJ27.js +1 -0
  191. package/dist/chunk-ZPCCSPAE.js +3 -0
  192. package/dist/chunk-ZSJXZCAW.js +4 -0
  193. package/dist/{chunk-CP56F5UR.js → chunk-ZSVR5NEO.js} +1 -1
  194. package/dist/{chunk-JJJIRCQP.js → chunk-ZUVAHONX.js} +1 -1
  195. package/dist/chunk-ZVDFCUJT.js +2 -0
  196. package/dist/cli/commands/app/app-logs/sources.js +1 -1
  197. package/dist/cli/commands/app/build.js +1 -1
  198. package/dist/cli/commands/app/bulk/cancel.js +1 -1
  199. package/dist/cli/commands/app/bulk/execute.js +1 -1
  200. package/dist/cli/commands/app/bulk/status.js +1 -1
  201. package/dist/cli/commands/app/config/link.js +1 -1
  202. package/dist/cli/commands/app/config/pull.js +1 -1
  203. package/dist/cli/commands/app/config/use.js +1 -1
  204. package/dist/cli/commands/app/config/validate.js +1 -1
  205. package/dist/cli/commands/app/demo/watcher.js +1 -1
  206. package/dist/cli/commands/app/deploy.js +1 -1
  207. package/dist/cli/commands/app/dev/clean.js +1 -1
  208. package/dist/cli/commands/app/dev.js +1 -1
  209. package/dist/cli/commands/app/env/pull.js +1 -1
  210. package/dist/cli/commands/app/env/show.js +1 -1
  211. package/dist/cli/commands/app/execute.js +1 -1
  212. package/dist/cli/commands/app/function/build.js +1 -1
  213. package/dist/cli/commands/app/function/info.js +1 -1
  214. package/dist/cli/commands/app/function/replay.js +1 -1
  215. package/dist/cli/commands/app/function/run.js +1 -1
  216. package/dist/cli/commands/app/function/schema.js +1 -1
  217. package/dist/cli/commands/app/function/typegen.js +1 -1
  218. package/dist/cli/commands/app/generate/extension.js +1 -1
  219. package/dist/cli/commands/app/graphiql.js +1 -1
  220. package/dist/cli/commands/app/import/channel-config.js +1 -0
  221. package/dist/cli/commands/app/import/custom-data-definitions.js +1 -0
  222. package/dist/cli/commands/app/import/dashboard-extensions.js +1 -0
  223. package/dist/cli/commands/app/import-custom-data-definitions.js +1 -1
  224. package/dist/cli/commands/app/import-extensions.js +1 -1
  225. package/dist/cli/commands/app/info.js +1 -1
  226. package/dist/cli/commands/app/init.js +1 -1
  227. package/dist/cli/commands/app/logs.js +1 -1
  228. package/dist/cli/commands/app/release.js +1 -1
  229. package/dist/cli/commands/app/security/check.js +1 -0
  230. package/dist/cli/commands/app/security/clean.js +1 -0
  231. package/dist/cli/commands/app/security/instructions.js +1 -0
  232. package/dist/cli/commands/app/security/record.js +1 -0
  233. package/dist/cli/commands/app/security/review.js +1 -0
  234. package/dist/cli/commands/app/subscription-migrations/cancel.js +1 -1
  235. package/dist/cli/commands/app/subscription-migrations/list.js +1 -1
  236. package/dist/cli/commands/app/subscription-migrations/schedule.js +1 -1
  237. package/dist/cli/commands/app/subscription-migrations/status.js +1 -1
  238. package/dist/cli/commands/app/subscription-migrations/unschedule.js +1 -1
  239. package/dist/cli/commands/app/versions/list.js +1 -1
  240. package/dist/cli/commands/app/webhook/trigger.js +1 -1
  241. package/dist/cli/commands/auth/login.d.ts +16 -1
  242. package/dist/cli/commands/auth/login.js +1 -1
  243. package/dist/cli/commands/auth/logout.d.ts +16 -1
  244. package/dist/cli/commands/auth/logout.js +1 -1
  245. package/dist/cli/commands/cache/clear.js +1 -1
  246. package/dist/cli/commands/config/autoupgrade/off.d.ts +13 -0
  247. package/dist/cli/commands/config/autoupgrade/off.js +1 -1
  248. package/dist/cli/commands/config/autoupgrade/on.d.ts +13 -0
  249. package/dist/cli/commands/config/autoupgrade/on.js +1 -1
  250. package/dist/cli/commands/config/autoupgrade/status.d.ts +13 -0
  251. package/dist/cli/commands/config/autoupgrade/status.js +1 -1
  252. package/dist/cli/commands/debug/command-flags.js +1 -1
  253. package/dist/cli/commands/doc/fetch.d.ts +2 -0
  254. package/dist/cli/commands/doc/fetch.js +1 -1
  255. package/dist/cli/commands/doc/search.d.ts +1 -0
  256. package/dist/cli/commands/doc/search.js +1 -1
  257. package/dist/cli/commands/docs/generate.js +1 -1
  258. package/dist/cli/commands/doctor-release/doctor-release.js +1 -1
  259. package/dist/cli/commands/doctor-release/theme/index.d.ts +1 -0
  260. package/dist/cli/commands/doctor-release/theme/index.js +1 -1
  261. package/dist/cli/commands/help.d.ts +431 -1
  262. package/dist/cli/commands/help.js +1 -1
  263. package/dist/cli/commands/kitchen-sink/async.js +1 -1
  264. package/dist/cli/commands/kitchen-sink/index.js +1 -1
  265. package/dist/cli/commands/kitchen-sink/prompts.js +1 -1
  266. package/dist/cli/commands/kitchen-sink/static.js +1 -1
  267. package/dist/cli/commands/notifications/generate.js +1 -1
  268. package/dist/cli/commands/notifications/list.js +1 -1
  269. package/dist/cli/commands/organization/list.js +1 -1
  270. package/dist/cli/commands/search.d.ts +11 -1
  271. package/dist/cli/commands/search.js +1 -1
  272. package/dist/cli/commands/send-analytics.js +1 -1
  273. package/dist/cli/commands/theme/check.js +1 -1
  274. package/dist/cli/commands/theme/console.js +1 -1
  275. package/dist/cli/commands/theme/delete.js +1 -1
  276. package/dist/cli/commands/theme/dev.js +1 -1
  277. package/dist/cli/commands/theme/duplicate.js +1 -1
  278. package/dist/cli/commands/theme/info.js +1 -1
  279. package/dist/cli/commands/theme/init.js +1 -1
  280. package/dist/cli/commands/theme/language-server.js +1 -1
  281. package/dist/cli/commands/theme/list.js +1 -1
  282. package/dist/cli/commands/theme/metafields/pull.js +1 -1
  283. package/dist/cli/commands/theme/open.js +1 -1
  284. package/dist/cli/commands/theme/package.js +1 -1
  285. package/dist/cli/commands/theme/preview.js +1 -1
  286. package/dist/cli/commands/theme/profile.js +1 -1
  287. package/dist/cli/commands/theme/publish.js +1 -1
  288. package/dist/cli/commands/theme/pull.js +1 -1
  289. package/dist/cli/commands/theme/push.js +1 -1
  290. package/dist/cli/commands/theme/rename.js +1 -1
  291. package/dist/cli/commands/theme/share.js +1 -1
  292. package/dist/cli/commands/upgrade.js +1 -1
  293. package/dist/cli/commands/version.d.ts +15 -1
  294. package/dist/cli/commands/version.js +1 -1
  295. package/dist/cli/help.d.ts +5 -2
  296. package/dist/cli/help.js +6 -2
  297. package/dist/cli/services/commands/auth/login/types.d.ts +11 -0
  298. package/dist/cli/services/commands/auth/login/types.js +7 -0
  299. package/dist/cli/services/commands/config/autoupgrade/index.d.ts +3 -0
  300. package/dist/cli/services/commands/config/autoupgrade/index.js +9 -0
  301. package/dist/cli/services/commands/config/autoupgrade/result.d.ts +2 -0
  302. package/dist/cli/services/commands/config/autoupgrade/result.js +15 -0
  303. package/dist/cli/services/commands/config/autoupgrade/types.d.ts +10 -0
  304. package/dist/cli/services/commands/config/autoupgrade/types.js +7 -0
  305. package/dist/cli/services/commands/doc/fetch.d.ts +1 -1
  306. package/dist/cli/services/commands/doc/fetch.js +11 -2
  307. package/dist/cli/services/commands/help/index.d.ts +3 -0
  308. package/dist/cli/services/commands/help/index.js +51 -0
  309. package/dist/cli/services/commands/help/result.d.ts +2 -0
  310. package/dist/cli/services/commands/help/result.js +6 -0
  311. package/dist/cli/services/commands/help/types.d.ts +431 -0
  312. package/dist/cli/services/commands/help/types.js +71 -0
  313. package/dist/cli/services/commands/search/index.d.ts +2 -0
  314. package/dist/cli/services/commands/search/index.js +8 -0
  315. package/dist/cli/services/commands/search/result.d.ts +2 -0
  316. package/dist/cli/services/commands/search/result.js +12 -0
  317. package/dist/cli/services/commands/search/types.d.ts +10 -0
  318. package/dist/cli/services/commands/search/types.js +7 -0
  319. package/dist/cli/services/commands/version/index.d.ts +2 -0
  320. package/dist/cli/services/commands/version/index.js +5 -0
  321. package/dist/cli/services/commands/version/result.d.ts +2 -0
  322. package/dist/cli/services/commands/version/result.js +6 -0
  323. package/dist/cli/services/commands/version/types.d.ts +10 -0
  324. package/dist/cli/services/commands/version/types.js +7 -0
  325. package/dist/command-json-schema-Y3N2NUZN.js +1 -0
  326. package/dist/command-registry.js +1 -1
  327. package/dist/{conf-store-H3UAVGN5.js → conf-store-5ZA3ILWV.js} +1 -1
  328. package/dist/custom-oclif-loader-VQKMCXNH.js +1 -0
  329. package/dist/deprecations-PFQXWNF6.js +1 -0
  330. package/dist/dist-4X53WJBQ.js +1 -0
  331. package/dist/dist-5M2V3YCM.js +1 -0
  332. package/dist/environment-ZUTBXY7U.js +1 -0
  333. package/dist/environments-3RUZ7F4Q.js +1 -0
  334. package/dist/error-FBSXLW22.js +1 -0
  335. package/dist/error-handler-D5BURRJ7.js +1 -0
  336. package/dist/fs-ZLV5W4TV.js +1 -0
  337. package/dist/hooks/did-you-mean.js +1 -1
  338. package/dist/hooks/hydrogen-init.js +1 -1
  339. package/dist/hooks/plugin-plugins.js +1 -1
  340. package/dist/hooks/postrun.js +1 -1
  341. package/dist/hooks/prerun.js +1 -1
  342. package/dist/hooks/public-metadata.js +1 -1
  343. package/dist/hooks/sensitive-metadata.js +1 -1
  344. package/dist/hooks/tunnel-provider.js +1 -1
  345. package/dist/hooks/tunnel-start.js +1 -1
  346. package/dist/http-proxy-node16-D3JUYA5D.js +38 -0
  347. package/dist/index.js +13 -14
  348. package/dist/is-global-GZ5CIXQA.js +1 -0
  349. package/dist/json-error-2BL3UZ7H.js +1 -0
  350. package/dist/lib-AD2G3QH3.js +1 -0
  351. package/dist/lib-VEVNMHDE.js +1 -0
  352. package/dist/lib-ZQW4E7QU.js +1 -0
  353. package/dist/local-KAZJAYLX.js +1 -0
  354. package/dist/metadata-M3ZE24WB.js +1 -0
  355. package/dist/{morph-BMYYMQNX.js → morph-42EXMN3K.js} +3 -3
  356. package/dist/node-package-manager-RVPONQBY.js +1 -0
  357. package/dist/notifications-system-MYEMV7JF.js +1 -0
  358. package/dist/os-DRUILZZR.js +1 -0
  359. package/dist/output-SDE274Y5.js +1 -0
  360. package/dist/{path-MBXP7ZIC.js → path-6YMSTSWG.js} +1 -1
  361. package/dist/system-5FQ3L5PA.js +1 -0
  362. package/dist/tsconfig.tsbuildinfo +1 -1
  363. package/dist/ui-TEZZM7SE.js +1 -0
  364. package/dist/uncaught-error-handler.d.ts +6 -0
  365. package/dist/uncaught-error-handler.js +33 -0
  366. package/dist/upgrade-3PIVJYBL.js +1 -0
  367. package/dist/version-FMWTVLMF.js +1 -0
  368. package/dist/version-IAMVSP7U.js +1 -0
  369. package/dist/workerd-WRW4ZUYM.js +18 -0
  370. package/oclif.manifest.json +2646 -226
  371. package/package.json +17 -8
  372. package/dist/analytics-M4OC7RPG.js +0 -1
  373. package/dist/analytics-RGIJMP4U.js +0 -1
  374. package/dist/chunk-2HW6VRJT.js +0 -2
  375. package/dist/chunk-2HYR6EUD.js +0 -1
  376. package/dist/chunk-2IRRFPEY.js +0 -1
  377. package/dist/chunk-2KD4LHRT.js +0 -5
  378. package/dist/chunk-2SL443J6.js +0 -1
  379. package/dist/chunk-2VJ6NBPV.js +0 -15
  380. package/dist/chunk-2ZROBXJX.js +0 -11
  381. package/dist/chunk-3DIRCEXA.js +0 -1
  382. package/dist/chunk-3DT4NS4S.js +0 -4
  383. package/dist/chunk-3IQ6WXDD.js +0 -3
  384. package/dist/chunk-43FRAUV6.js +0 -19
  385. package/dist/chunk-44QD4QNO.js +0 -1
  386. package/dist/chunk-4DLRS7MT.js +0 -12
  387. package/dist/chunk-4F3XYIEY.js +0 -1
  388. package/dist/chunk-4OMKKYFC.js +0 -9
  389. package/dist/chunk-4ZTRKEA2.js +0 -1
  390. package/dist/chunk-5DMFEDKY.js +0 -28
  391. package/dist/chunk-66G2HJ2A.js +0 -3
  392. package/dist/chunk-6B727IUY.js +0 -5
  393. package/dist/chunk-6C5AVMKR.js +0 -375
  394. package/dist/chunk-6CR2EEZ3.js +0 -6
  395. package/dist/chunk-6V6UNUMM.js +0 -3
  396. package/dist/chunk-6XLFFOPK.js +0 -1
  397. package/dist/chunk-A3V2A2I4.js +0 -2
  398. package/dist/chunk-AQPOPSQ7.js +0 -1
  399. package/dist/chunk-BAWBC66R.js +0 -5
  400. package/dist/chunk-BHJ3TGS7.js +0 -1
  401. package/dist/chunk-BHTHUKHU.js +0 -1
  402. package/dist/chunk-BV62ZERJ.js +0 -6
  403. package/dist/chunk-CFQ5G2QS.js +0 -1
  404. package/dist/chunk-CNK3ZO2B.js +0 -836
  405. package/dist/chunk-CRALWNNO.js +0 -1
  406. package/dist/chunk-CVW2HMQO.js +0 -317
  407. package/dist/chunk-D6QTOQEJ.js +0 -6
  408. package/dist/chunk-DDZEYA2I.js +0 -8
  409. package/dist/chunk-DO4SRE4M.js +0 -3
  410. package/dist/chunk-DZZORIWL.js +0 -4
  411. package/dist/chunk-EQ2PD2ZA.js +0 -2
  412. package/dist/chunk-ERBXXVOZ.js +0 -2
  413. package/dist/chunk-FW3RORD7.js +0 -1
  414. package/dist/chunk-G2YTINLI.js +0 -6
  415. package/dist/chunk-GCN4O7HM.js +0 -1
  416. package/dist/chunk-GGPMDCCB.js +0 -8
  417. package/dist/chunk-GJHBAOGJ.js +0 -1
  418. package/dist/chunk-H2HR2AQE.js +0 -7
  419. package/dist/chunk-HYM3HBDG.js +0 -20
  420. package/dist/chunk-IHEBV2KO.js +0 -1
  421. package/dist/chunk-JWHQPDOK.js +0 -3
  422. package/dist/chunk-JXG2T76F.js +0 -6
  423. package/dist/chunk-K2DP5Z76.js +0 -1
  424. package/dist/chunk-KUZ5Z6HM.js +0 -1
  425. package/dist/chunk-KZU727AL.js +0 -1
  426. package/dist/chunk-L2DCUVZV.js +0 -1
  427. package/dist/chunk-L3M7PTHU.js +0 -15
  428. package/dist/chunk-LBA6FGKC.js +0 -3
  429. package/dist/chunk-LX5UXWZ7.js +0 -1
  430. package/dist/chunk-M7VQLMSW.js +0 -1
  431. package/dist/chunk-MBRFIXCU.js +0 -1705
  432. package/dist/chunk-MYLMGH7Y.js +0 -1
  433. package/dist/chunk-NKC3K3XP.js +0 -1
  434. package/dist/chunk-O72SHE3Q.js +0 -7
  435. package/dist/chunk-OAG72Q2O.js +0 -1
  436. package/dist/chunk-OPOPO7DG.js +0 -7
  437. package/dist/chunk-OUA6EOLX.js +0 -11
  438. package/dist/chunk-OYCAYEQE.js +0 -7
  439. package/dist/chunk-PGWQHSDV.js +0 -1
  440. package/dist/chunk-PM3HRKPR.js +0 -1
  441. package/dist/chunk-POMWFTBD.js +0 -16
  442. package/dist/chunk-R3GLEZSE.js +0 -4
  443. package/dist/chunk-RHNZA4IL.js +0 -5
  444. package/dist/chunk-SCLGMVNB.js +0 -1
  445. package/dist/chunk-TU47HMTL.js +0 -1
  446. package/dist/chunk-UPGRXCFS.js +0 -4
  447. package/dist/chunk-V2GLAK2W.js +0 -1
  448. package/dist/chunk-V4774HTF.js +0 -1
  449. package/dist/chunk-VDGTHMIQ.js +0 -3
  450. package/dist/chunk-VJ5YOXKL.js +0 -1
  451. package/dist/chunk-WGUCRVII.js +0 -3
  452. package/dist/chunk-X4V2CD2H.js +0 -8
  453. package/dist/chunk-XOYICV6P.js +0 -1
  454. package/dist/chunk-XYUTD6IU.js +0 -1
  455. package/dist/chunk-YNFXYVYN.js +0 -2
  456. package/dist/chunk-Z2HN5L6G.js +0 -6
  457. package/dist/chunk-ZVJD6CUY.js +0 -18
  458. package/dist/cli/commands/app/doctor/instructions.js +0 -1
  459. package/dist/cli/commands/app/doctor.js +0 -1
  460. package/dist/cli/commands/config/autoupgrade/constants.d.ts +0 -4
  461. package/dist/cli/commands/config/autoupgrade/constants.js +0 -1
  462. package/dist/cli/services/commands/search.d.ts +0 -1
  463. package/dist/cli/services/commands/search.js +0 -7
  464. package/dist/cli/services/commands/version.d.ts +0 -1
  465. package/dist/cli/services/commands/version.js +0 -6
  466. package/dist/custom-oclif-loader-BWAMUFQ4.js +0 -1
  467. package/dist/deprecations-TEUM7CML.js +0 -1
  468. package/dist/dist-62I5X3FS.js +0 -1
  469. package/dist/dist-YHZ5BTYD.js +0 -1
  470. package/dist/environments-LAFWOQWO.js +0 -1
  471. package/dist/error-6ZCGAC5E.js +0 -1
  472. package/dist/error-handler-JNCW56EC.js +0 -1
  473. package/dist/fs-QEWOWUPQ.js +0 -1
  474. package/dist/http-proxy-node16-A6AKKRQH.js +0 -38
  475. package/dist/is-global-UYMEAGDR.js +0 -1
  476. package/dist/lib-2BR2WN7L.js +0 -1
  477. package/dist/lib-M72BVWQ3.js +0 -1
  478. package/dist/lib-P3APEIHY.js +0 -1
  479. package/dist/local-Z4ZEMWE4.js +0 -1
  480. package/dist/metadata-ZCQMB5AB.js +0 -1
  481. package/dist/node-package-manager-HMOTOBDS.js +0 -1
  482. package/dist/notifications-system-RT3CY6LZ.js +0 -1
  483. package/dist/os-G6KDPJMC.js +0 -1
  484. package/dist/output-BJCZYDNG.js +0 -1
  485. package/dist/system-T4H2ISV6.js +0 -1
  486. package/dist/ui-4MQSY5IN.js +0 -1
  487. package/dist/upgrade-4234MIYJ.js +0 -1
  488. package/dist/version-FRSRSCRX.js +0 -1
  489. package/dist/version-RF7QQXRX.js +0 -1
  490. package/dist/workerd-7E4H2DM3.js +0 -18
@@ -1 +0,0 @@
1
- import{c as d}from"./chunk-GTAYTMCP.js";import{Aa as i}from"./chunk-CNK3ZO2B.js";import{A as m,B as u,E as s,H as a}from"./chunk-6C5AVMKR.js";import{g as c}from"./chunk-VKWPEFWQ.js";c();function f(e){return[`'${e.name}'`,{subdued:`(#${e.id})`}]}function y(e){return{list:{items:e.map(f)}}}async function T(e,r="It doesn't seem like you're running this command in a theme directory.",o,n){if(e)return!0;if(n)return u({headline:o?`Environment: ${o}`:"",body:r}),!1;if(m({body:r}),!process.stdout.isTTY)return!0;let t=await s({message:"Do you want to proceed?"});return i(`theme-service:confirm-directory:${t}`),t}async function v(e,r,o){if(e.role!==d||!process.stdout.isTTY||o)return!0;let n=`You're about to ${r} on your live theme "${e.name}". This will make changes visible to customers. Are you sure you want to proceed?`,t=await s({message:n,confirmationMessage:"Yes, proceed with live theme",cancellationMessage:"No, cancel"});return i(`theme-service:confirm-live-theme:${t}`),t}async function E(e,r,o=!1){e.length>0&&await a(e,{renderOptions:{stdout:r??process.stderr},noProgressBar:o})}export{f as a,y as b,T as c,v as d,E as e};
@@ -1 +0,0 @@
1
- import{b as m,c as u}from"./chunk-VETLNJ56.js";import{a as p}from"./chunk-6XLFFOPK.js";import{a as e}from"./chunk-GINXNPAR.js";import{o as a,xa as c}from"./chunk-CVW2HMQO.js";import{b as n}from"./chunk-K2DP5Z76.js";import{z as i}from"./chunk-6C5AVMKR.js";import{g as r}from"./chunk-VKWPEFWQ.js";r();var s=class d extends p{static summary="Compile a function to wasm.";static descriptionWithMarkdown="Compiles the function in your current directory to WebAssembly (Wasm) for testing purposes.";static description=this.descriptionWithoutMarkdown();static flags={...n,...e,...m};async run(){let{flags:t}=await this.parse(d),{app:o}=await c({directory:t.path,userProvidedConfigName:t.config}),l=await u(o,t.path);return await a(l,{app:o,stdout:process.stdout,stderr:process.stderr,useTasks:!0,environment:"production"}),i({headline:"Function built successfully."}),{app:o}}};export{s as a};
@@ -1,7 +0,0 @@
1
- import{p,v as d}from"./chunk-DO4SRE4M.js";import{a as u}from"./chunk-L4LDNEFK.js";import{aa as w}from"./chunk-ZVA5F4QC.js";import{b as l}from"./chunk-K2DP5Z76.js";import{z as f}from"./chunk-6C5AVMKR.js";import{h as i}from"./chunk-OAG72Q2O.js";import{Ta as c,ma as h}from"./chunk-43FRAUV6.js";import{f as r,n as m}from"./chunk-773TIA5M.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
-
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
-
5
- The package includes the \`listings\` directory if present (required for multi-preset themes per [Theme Store requirements](https://shopify.dev/docs/storefronts/themes/store/requirements#adding-presets-to-your-theme-zip-submission)).
6
-
7
- The ZIP file uses the name \`theme_name-theme_version.zip\`, based on parameters in your [settings_schema.json](https://shopify.dev/docs/storefronts/themes/architecture/config/settings-schema-json) file.`;static description=this.descriptionWithoutMarkdown();static flags={...l,path:p.path};static multiEnvironmentsFlags=null;async command(t){await y(t.path)}};export{a};
@@ -1 +0,0 @@
1
- import{a as P}from"./chunk-CTNBSUVU.js";import{Db as f,eb as g,pb as E}from"./chunk-43FRAUV6.js";import{e as m}from"./chunk-773TIA5M.js";import{e as A,g as p}from"./chunk-VKWPEFWQ.js";p();p();var w=new Set(["THROTTLED","429"]),I=new Set(["ACCESS_DENIED","access_denied"]);function b(e){return Array.isArray(e)?e.flatMap(t=>{let s=[],n=t,r=n?.extensions?.code;typeof r=="string"&&s.push(r);let c=n?.extensions?.app_errors?.errors;if(Array.isArray(c))for(let u of c){let d=u?.category;typeof d=="string"&&s.push(d)}return s}):[]}function C(e){return e!==void 0&&w.has(e)}function v(e){return e!==void 0&&I.has(e)}function h(e){return b(e).some(C)}var M=A(P(),1),o;(function(e){e[e.Abort=0]="Abort",e[e.AbortSilent=1]="AbortSilent",e[e.Bug=2]="Bug"})(o||(o={}));var x=class extends Error{},i=class extends Error{tryMessage;type;nextSteps;formattedMessage;customSections;skipOclifErrorHandling;constructor(t,s,n=null,r,c){let u=typeof t=="string"||"value"in t;super(u?f(t):g(t)),n?n instanceof E?this.tryMessage=f(n):this.tryMessage=n:this.tryMessage=null,this.type=s,this.nextSteps=r,this.customSections=c,this.skipOclifErrorHandling=!0,u||(this.formattedMessage=t)}},l=class extends i{constructor(t,s=null,n,r){super(t,o.Abort,s,n,r)}},y=class extends i{command;args;constructor(t,s,n,r=null){super(t,o.Abort,r),this.command=s,this.args=n}},S=class extends i{constructor(){super("",o.AbortSilent)}},a=class extends i{constructor(t,s=null){super(t,o.Bug,s)}};async function B(e){let t;if(k(e))t=e;else if(typeof e=="string")t=new a(e);else if(e instanceof Error)t=new a(e.message),t.stack=e.stack;else{let n=e;t=new a(n?.message??"Unknown error"),n?.stack&&(t.stack=n?.stack)}let{renderFatalError:s}=await import("./ui-4MQSY5IN.js");return s(t),Promise.resolve(e)}function H(e){if(e instanceof M.Errors.CLIError){let t=new l(e.message);return t.stack=e.stack,Promise.resolve(t)}else return Promise.resolve(e)}function k(e){try{return Object.prototype.hasOwnProperty.call(e,"type")}catch{return!1}}function j(e){if(!k(e)){if(e instanceof Error){if(O(e))return!1;let t=e.message;return!R(t)}return!0}return e.type===o.Bug}function O(e){let t=e;if(typeof t.response!="object"||t.response===null||t.request===void 0)return!1;let s=t.response.status;return s===401||s===429||s===502||s===503||s===504?!0:h(t.response.errors)}function q(e){return m(e).replace("file:/","/").replace(/^\/?[A-Z]:/,"")}function R(e){return["EPERM: operation not permitted, scandir","EPERM: operation not permitted, rename","EACCES: permission denied","EPERM: operation not permitted, symlink","This version of npm supports the following node versions","EBUSY: resource busy or locked","ENOTEMPTY: directory not empty","getaddrinfo ENOTFOUND","Client network socket disconnected before secure TLS connection was established","spawn EPERM","socket hang up","The user aborted a request.","write EPIPE","Unsupported platform"].some(n=>e.includes(n))}export{b as a,C as b,v as c,h as d,o as e,x as f,i as g,l as h,y as i,S as j,a as k,B as l,H as m,j as n,q as o};
@@ -1,7 +0,0 @@
1
- import{A as n,B as i,C as t,G as s,y as e,z as o}from"./chunk-6C5AVMKR.js";import{h as d,k as l}from"./chunk-OAG72Q2O.js";import{g as r}from"./chunk-VKWPEFWQ.js";r();async function u(){e({headline:"CLI update available.",body:["Run",{command:"npm run shopify upgrade"},{char:"."}]}),e({headline:["To connect this project to your shopify store cd into:",{filePath:"/my-store/hydrogen.config.js"},{char:"."}],body:["You can also try the following steps:",{list:{items:[["Run",{command:"shopify project connect"}],["Run",{command:"hydrogen start"}]]}}]}),e({headline:"About your app.",customSections:[{body:{tabularData:[["Configuration file",{filePath:"shopify.app.scalable-transaction-app.toml"}],["App name",{userInput:"scalable-transaction-app"}],["Access scopes","read_products,write_products"]],firstColumnSubdued:!0}}]}),e({headline:[{userInput:"my-app"},"initialized and ready to build."],nextSteps:[["Run",{command:"cd verification-app"}],["To preview your project, run",{command:"npm app dev"}],["To add extensions, run",{command:"npm generate extension"}]],reference:[["Run",{command:"npm shopify help"}],{link:{label:"Dev docs",url:"https://shopify.dev"}}],customSections:[{title:"Custom section",body:{list:{items:[{link:{label:"Item 1",url:"https://shopify.com"}},"Item 2",{link:{url:"https://community.shopify.com/"}}]}}},{title:"Custom section 2",body:{list:{items:["Item 1","Item 2","Item 3"]}}}]}),o({headline:"CLI updated.",body:"You are now running version 3.47."}),o({headline:"Deployment successful.",body:"Your extensions have been uploaded to your Shopify Partners Dashboard.",nextSteps:[{link:{label:"See your deployment and set it live",url:"https://partners.shopify.com/1797046/apps/4523695/deployments"}}]}),n({headline:"You have reached your limit of checkout extensions for this app.",body:"You can free up space for a new one by deleting an existing one."}),n({headline:"Required access scope update.",body:"The deadline for re-selecting your app scopes is May 1, 2022.",reference:[{link:{label:"Dev docs",url:"https://shopify.dev/app/scopes"}}]});let a=new l("Something went wrong.");a.stack=`
2
- Error: Unexpected error
3
- at Module._compile (internal/modules/cjs/loader.js:1137:30)
4
- at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
5
- at Module.load (internal/modules/cjs/loader.js:985:32)
6
- at Function.Module._load (internal/modules/cjs/loader.js:878:14)
7
- `,t(a);let c=[["Have you",{link:{label:"created a Shopify Partners organization",url:"https://partners.shopify.com/signup"}},{char:"?"}],"Have you confirmed your accounts from the emails you received?",["Need to connect to a different App or organization? Run the command again with",{command:"--reset"}]];t(new d("No Organization found",void 0,c)),i({headline:"Version couldn't be released.",body:"This version needs to be submitted for review and approved by Shopify before it can be released."}),s({rows:[{id:"1",name:"John Doe",email:"jon@doe.com"},{id:"2",name:"Jane Doe",email:"jane@doe.com"},{id:"3",name:"John Smith",email:"jon@smith.com"}],columns:{id:{header:"ID",color:"red"},name:{header:"Name",color:"dim"},email:{}}})}export{u as a};
@@ -1,11 +0,0 @@
1
- import{a as w}from"./chunk-FKIVKNOV.js";import{a as P}from"./chunk-VJ5YOXKL.js";import{a as E}from"./chunk-GINXNPAR.js";import{E as F,ba as x,i as C,wa as y}from"./chunk-CVW2HMQO.js";import{b as f}from"./chunk-HYPY5WH6.js";import{b as v}from"./chunk-K2DP5Z76.js";import{a as _}from"./chunk-CTNBSUVU.js";import{Ta as g,ma as u,qb as o,sb as p,ua as l,wb as h}from"./chunk-43FRAUV6.js";import{f as c}from"./chunk-773TIA5M.js";import{e as k,g as s}from"./chunk-VKWPEFWQ.js";s();s();async function S({app:d,remoteApp:t,organization:a,envFile:e}){await x(t,a.source);let n={SHOPIFY_API_KEY:t.apiKey,SHOPIFY_API_SECRET:t.apiSecretKeys[0]?.secret,SCOPES:C(d.configuration)};if(await g(e)){let i=await u(e),r=f(i,n);if(r===i)return p`No changes to ${o.path(e)}`;{await l(e,r);let I=w(i??"",r);return p`Updated ${o.path(e)} to be:
2
-
3
- ${r}
4
-
5
- Here's what changed:
6
-
7
- ${o.linesDiff(I)}
8
- `}}else{let i=f(null,n);return await l(e,i),p`Created ${o.path(e)}:
9
-
10
- ${i}
11
- `}}var b=k(_(),1);var m=class d extends P{static summary="Pull app and extensions environment variables.";static descriptionWithMarkdown="Creates or updates an `.env` files that contains app and app extension environment variables.\n\n When an existing `.env` file is updated, changes to the variables are displayed in the terminal output. Existing variables and commented variables are preserved.";static description=this.descriptionWithoutMarkdown();static flags={...v,...E,"env-file":b.Flags.string({hidden:!1,description:"Specify an environment file to update if the update flag is set",env:"SHOPIFY_FLAG_ENV_FILE"})};async run(){let{flags:t}=await this.parse(d),{app:a,remoteApp:e,organization:n}=await y({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config}),i=c(a.directory,t["env-file"]??F(a.configPath));return h(await S({app:a,remoteApp:e,organization:n,envFile:i})),{app:a}}};export{m as a};
@@ -1,7 +0,0 @@
1
- import{a as D}from"./chunk-XHXKPRF5.js";import{a as _,c as b}from"./chunk-W4SGAPPR.js";import{a as h,b as I}from"./chunk-MYLMGH7Y.js";import{e as y,q as F}from"./chunk-GTAYTMCP.js";import{i as w,p as g,v as T}from"./chunk-DO4SRE4M.js";import{b as u,f as v}from"./chunk-K2DP5Z76.js";import{E as p,z as d}from"./chunk-6C5AVMKR.js";import{a as C}from"./chunk-CTNBSUVU.js";import{U as c}from"./chunk-43FRAUV6.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 L(t,{...e,themes:n,development:!1});if(!e.force&&!r&&!await M(i,m))return;await Promise.all(i.map(o=>(y(o)&&w(),F(o.id,t))));let l=e.environment?[{subdued:`Environment: ${e.environment}
2
-
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 L(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 M(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
-
5
- You can specify multiple themes by ID. If no theme is specified, then you're prompted to select the theme that you want to delete from the list of themes in your store.
6
-
7
- You're asked to confirm that you want to delete the specified themes before they are deleted. You can skip this confirmation using the \`--force\` flag.`;static description=this.descriptionWithoutMarkdown();static flags={...u,...g,development:s.Flags.boolean({char:"d",description:"Delete your development theme. Use --show-all, --development, or --theme in non-interactive environments.",env:"SHOPIFY_FLAG_DEVELOPMENT"}),"show-all":s.Flags.boolean({char:"a",description:"Include other development themes in the theme list. Use --show-all, --development, or --theme in non-interactive environments.",env:"SHOPIFY_FLAG_SHOW_ALL"}),force:v(s.Flags.boolean({char:"f",description:"Skip confirmation.",env:"SHOPIFY_FLAG_FORCE"})),theme:s.Flags.string({char:"t",description:"Theme ID or name of the remote theme. Use --show-all, --development, or --theme in non-interactive environments.",env:"SHOPIFY_FLAG_THEME_ID",multiple:!0})};static multiEnvironmentsFlags=["store","password",["development","theme","show-all"]];static nonTTYFlagRequirements(){return[{flags:["theme","development","show-all"]}]}async command(e,r,n){let{environment:m,development:i,force:l,theme:o}=e,Y=o??[];await O(r,{selectTheme:e["show-all"],environment:m,development:i,themes:Y,force:l},n)}};export{f as a};
@@ -1 +0,0 @@
1
- import{b as c}from"./chunk-4DLRS7MT.js";import{V as r}from"./chunk-CNK3ZO2B.js";import{yb as a}from"./chunk-43FRAUV6.js";import{g as t}from"./chunk-VKWPEFWQ.js";t();var o=class extends c{static description="Logs you out of the Shopify account or Partner account and store.";async run(){await r(),a("Logged out from all the accounts")}};export{o as a};
@@ -1 +0,0 @@
1
- import{a as w}from"./chunk-6XLFFOPK.js";import{a as y}from"./chunk-S5H5U3PR.js";import{a as h}from"./chunk-GINXNPAR.js";import{g,xa as b}from"./chunk-CVW2HMQO.js";import{b as u}from"./chunk-K2DP5Z76.js";import{S as f,x as d,z as m}from"./chunk-6C5AVMKR.js";import{d as l}from"./chunk-XRJCD3AO.js";import{a as A}from"./chunk-CTNBSUVU.js";import{e as _,g as s}from"./chunk-VKWPEFWQ.js";s();s();s();async function p(e,{web:i,stdout:t,stderr:a,signal:n,env:o={}}){let c=i.configuration.commands[e];if(!c)return;let[I,...v]=c.split(" ");await f(I,v,{cwd:i.directory,stdout:t,stderr:a,signal:n,env:o}),t.write("Web successfully built.")}async function S(e){!e.skipDependenciesInstallation&&!e.project.usesWorkspaces&&await y(e.project);let i={};e.apiKey&&(i.SHOPIFY_API_KEY=e.apiKey),await g(e.app),await d({processes:[...e.app.webs.map(t=>({prefix:["web",...t.configuration.roles].join("-"),action:async(a,n,o)=>{await p("build",{web:t,stdout:a,stderr:n,signal:o,env:i})}})),...e.app.allExtensions.map(t=>({prefix:t.localIdentifier,action:async(a,n,o)=>{await t.build({stdout:a,stderr:n,signal:o,app:e.app,environment:"production"})}}))],showTimestamps:!1}),m({headline:[{userInput:e.app.name},"built!"]})}var k=S;var x=_(A(),1);var r=class e extends w{static summary="Build the app, including extensions.";static descriptionWithMarkdown="This command executes the build script specified in the element's TOML file. You can specify a custom script in the file. To learn about configuration files in Shopify apps, refer to [App configuration](https://shopify.dev/docs/apps/tools/cli/configuration).\n\n If you're building a [theme app extension](https://shopify.dev/docs/apps/online-store/theme-app-extensions), then running the `build` command runs [Theme Check](https://shopify.dev/docs/themes/tools/theme-check) against your extension to ensure that it's valid.";static description=this.descriptionWithoutMarkdown();static flags={...u,...h,"skip-dependencies-installation":x.Flags.boolean({hidden:!1,description:"Skips the installation of dependencies. Deprecated, use workspaces instead.",env:"SHOPIFY_FLAG_SKIP_DEPENDENCIES_INSTALLATION",default:!1})};async run(){let{flags:i}=await this.parse(e),t=i["client-id"];await l(()=>({cmd_app_dependency_installation_skipped:i["skip-dependencies-installation"]}));let{app:a,project:n}=await b({directory:i.path,userProvidedConfigName:i.config});return await k({app:a,project:n,skipDependenciesInstallation:i["skip-dependencies-installation"],apiKey:t}),{app:a}}};export{r as a};
@@ -1,16 +0,0 @@
1
- import{b as s}from"./chunk-4DLRS7MT.js";import{C,E as x,y as a}from"./chunk-6C5AVMKR.js";import{e as w}from"./chunk-QKTBYAUD.js";import{h as S}from"./chunk-OAG72Q2O.js";import{Ab as I}from"./chunk-43FRAUV6.js";import{g as n}from"./chunk-VKWPEFWQ.js";n();n();n();var m={on:"Autocorrect on. The system will automatically run commands even when you mistype them.",off:"Autocorrect off. You'll need to confirm corrections for mistyped commands."};n();function p(o=A()){return!!o.get("autocorrectEnabled")}function y(o,e=A()){e.set("autocorrectEnabled",o)}function A(){return W??=new w({projectName:"did-you-mean"}),W}var W;var u=class extends s{static summary="Enable autocorrect. Off by default.";static descriptionWithMarkdown=`Enable autocorrect. Off by default.
2
-
3
- When autocorrection is enabled, Shopify CLI automatically runs a corrected version of your command if a correction is available.
4
-
5
- When autocorrection is disabled, you need to confirm that you want to run corrections for mistyped commands.
6
- `;static description=this.descriptionWithoutMarkdown();async run(){y(!0),a({body:m.on})}};n();var d=class extends s{static summary="Disable autocorrect. Off by default.";static descriptionWithMarkdown=`Disable autocorrect. Off by default.
7
-
8
- When autocorrection is enabled, Shopify CLI automatically runs a corrected version of your command if a correction is available.
9
-
10
- When autocorrection is disabled, you need to confirm that you want to run corrections for mistyped commands.
11
- `;static description=this.descriptionWithoutMarkdown();async run(){y(!1),a({body:m.off})}};n();var f=class extends s{static summary="Check whether autocorrect is enabled or disabled. On by default.";static descriptionWithMarkdown=`Check whether autocorrect is enabled or disabled. On by default.
12
-
13
- When autocorrection is enabled, Shopify CLI automatically runs a corrected version of your command if a correction is available.
14
-
15
- When autocorrection is disabled, you need to confirm that you want to run corrections for mistyped commands.
16
- `;static description=this.descriptionWithoutMarkdown();async run(){p()?a({body:m.on}):a({body:m.off})}};n();var b=v(2),Z=v(3);function v(o){if(typeof o!="number"||Number.isNaN(o)||o<1||o===Number.POSITIVE_INFINITY)throw new Error("`"+o+"` is not a valid argument for `n-gram`");return e;function e(r){let i=[];if(r==null)return i;let c=typeof r.slice=="function"?r:String(r),t=c.length-o+1;if(t<1)return i;for(;t--;)i[t]=c.slice(t,t+o);return i}}function h(o){return o.replace(/:/g," ")}function E(o,e){let r=new Map;for(let c of o)r.set(c,(r.get(c)??0)+1);let i=0;for(let c of e){let t=r.get(c)??0;t>0&&(i+=1,r.set(c,t-1))}return i}function k(o){if(o.id.length<2)return;let e=new Set(o.config.commands.filter(t=>t.hidden).map(t=>t.id)),r=Array.from(new Set([...o.config.commandIDs,...o.config.commands.flatMap(t=>t.aliases)].filter(t=>!e.has(t)))),i=b(o.id),c=r.map(t=>{let l=b(t);return{score:E(l,i),cmd:t}}).filter(({score:t})=>t>=2).sort((t,l)=>{let g=l.score-t.score;return g!==0?g:t.cmd.length-l.cmd.length});if(I(`'Did you mean' options: ${JSON.stringify(c)}`),c.length>0){let{cmd:t}=c[0];return t}}async function M(o,e){return p()?(a({body:["Autocorrecting",{command:h(e)},"to",{command:h(o)},{char:"."}]}),!0):x({message:["Command",{command:e},"not found. Did you mean",{command:h(o)},{char:"?"}]})}var uo={"config:autocorrect:off":d,"config:autocorrect:status":f,"config:autocorrect:on":u},fo=async function(o){let e=k(o),r=h(o.id);if(o.argv&&(o.argv.includes("-f")||o.argv.includes("--force"))||!e){C(new S(`Command '${r}' not found.`));return}await M(e,r)&&await this.config.runCommand(e,o.argv)};export{k as a,M as b,uo as c,fo as d};
@@ -1,4 +0,0 @@
1
- import{a as M}from"./chunk-V2GLAK2W.js";import{a as E}from"./chunk-VJ5YOXKL.js";import{a as I}from"./chunk-GINXNPAR.js";import{B as C,wa as j}from"./chunk-CVW2HMQO.js";import{e as O}from"./chunk-CFQ5G2QS.js";import{a as z}from"./chunk-A3V2A2I4.js";import{b as R}from"./chunk-K2DP5Z76.js";import{D as y,W as _,ia as h,la as g}from"./chunk-CNK3ZO2B.js";import{H as T,I as k,y as A}from"./chunk-6C5AVMKR.js";import{k as D}from"./chunk-OAG72Q2O.js";import{a as H}from"./chunk-CTNBSUVU.js";import{qb as p,sb as m,xb as f}from"./chunk-43FRAUV6.js";import{e as F,g as l}from"./chunk-VKWPEFWQ.js";l();l();l();var L={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"metafieldDefinitions"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"ownerType"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"MetafieldOwnerType"}}}},{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"after"}},type:{kind:"NamedType",name:{kind:"Name",value:"String"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"metafieldDefinitions"},arguments:[{kind:"Argument",name:{kind:"Name",value:"ownerType"},value:{kind:"Variable",name:{kind:"Name",value:"ownerType"}}},{kind:"Argument",name:{kind:"Name",value:"first"},value:{kind:"IntValue",value:"30"}},{kind:"Argument",name:{kind:"Name",value:"after"},value:{kind:"Variable",name:{kind:"Name",value:"after"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"pageInfo"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"hasNextPage"}},{kind:"Field",name:{kind:"Name",value:"endCursor"}},{kind:"Field",name:{kind:"Name",value:"__typename"}}]}},{kind:"Field",name:{kind:"Name",value:"nodes"},selectionSet:{kind:"SelectionSet",selections:[{kind:"FragmentSpread",name:{kind:"Name",value:"MetafieldForImport"}},{kind:"Field",name:{kind:"Name",value:"__typename"}}]}},{kind:"Field",name:{kind:"Name",value:"__typename"}}]}}]}},{kind:"FragmentDefinition",name:{kind:"Name",value:"MetafieldForImport"},typeCondition:{kind:"NamedType",name:{kind:"Name",value:"MetafieldDefinition"}},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"key"}},{kind:"Field",name:{kind:"Name",value:"name"}},{kind:"Field",name:{kind:"Name",value:"namespace"}},{kind:"Field",name:{kind:"Name",value:"description"}},{kind:"Field",name:{kind:"Name",value:"type"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"category"}},{kind:"Field",name:{kind:"Name",value:"name"}}]}},{kind:"Field",name:{kind:"Name",value:"access"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"admin"}},{kind:"Field",name:{kind:"Name",value:"storefront"}},{kind:"Field",name:{kind:"Name",value:"customerAccount"}}]}},{kind:"Field",name:{kind:"Name",value:"capabilities"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"adminFilterable"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"enabled"}}]}}]}},{kind:"Field",name:{kind:"Name",value:"validations"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"name"}},{kind:"Field",name:{kind:"Name",value:"value"}}]}}]}}]};l();async function J(e){let i="Admin",n=O(e.storeFqdn,"unstable");return{token:e.token,api:i,url:n}}async function P(e){return g({query:e.query,...await J(e.session),variables:e.variables,autoRateLimitRestore:e.autoRateLimitRestore})}l();var w={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"metaobjectDefinitions"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"after"}},type:{kind:"NamedType",name:{kind:"Name",value:"String"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"metaobjectDefinitions"},arguments:[{kind:"Argument",name:{kind:"Name",value:"first"},value:{kind:"IntValue",value:"10"}},{kind:"Argument",name:{kind:"Name",value:"after"},value:{kind:"Variable",name:{kind:"Name",value:"after"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"pageInfo"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"hasNextPage"}},{kind:"Field",name:{kind:"Name",value:"endCursor"}},{kind:"Field",name:{kind:"Name",value:"__typename"}}]}},{kind:"Field",name:{kind:"Name",value:"nodes"},selectionSet:{kind:"SelectionSet",selections:[{kind:"FragmentSpread",name:{kind:"Name",value:"MetaobjectForImport"}},{kind:"Field",name:{kind:"Name",value:"__typename"}}]}},{kind:"Field",name:{kind:"Name",value:"__typename"}}]}}]}},{kind:"FragmentDefinition",name:{kind:"Name",value:"MetaobjectForImport"},typeCondition:{kind:"NamedType",name:{kind:"Name",value:"MetaobjectDefinition"}},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"type"}},{kind:"Field",name:{kind:"Name",value:"name"}},{kind:"Field",name:{kind:"Name",value:"description"}},{kind:"Field",name:{kind:"Name",value:"access"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"admin"}},{kind:"Field",name:{kind:"Name",value:"storefront"}}]}},{kind:"Field",name:{kind:"Name",value:"displayNameKey"}},{kind:"Field",name:{kind:"Name",value:"capabilities"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"publishable"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"enabled"}}]}},{kind:"Field",name:{kind:"Name",value:"translatable"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"enabled"}}]}},{kind:"Field",name:{kind:"Name",value:"renderable"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"enabled"}},{kind:"Field",name:{kind:"Name",value:"data"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"metaTitleKey"}},{kind:"Field",name:{kind:"Name",value:"metaDescriptionKey"}}]}}]}}]}},{kind:"Field",name:{kind:"Name",value:"fieldDefinitions"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"key"}},{kind:"Field",name:{kind:"Name",value:"name"}},{kind:"Field",name:{kind:"Name",value:"type"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"category"}},{kind:"Field",name:{kind:"Name",value:"name"}}]}},{kind:"Field",name:{kind:"Name",value:"description"}},{kind:"Field",name:{kind:"Name",value:"required"}},{kind:"Field",name:{kind:"Name",value:"validations"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"name"}},{kind:"Field",name:{kind:"Name",value:"value"}}]}}]}}]}}]};var x=F(z(),1);var Q={article:"ARTICLE",blog:"BLOG",collection:"COLLECTION",company:"COMPANY",company_location:"COMPANY_LOCATION",location:"LOCATION",market:"MARKET",order:"ORDER",page:"PAGE",product:"PRODUCT",customer:"CUSTOMER",delivery_customization:"DELIVERY_CUSTOMIZATION",delivery_method:"DELIVERY_METHOD",delivery_option_generator:"DELIVERY_OPTION_GENERATOR",discount:"DISCOUNT",draft_order:"DRAFTORDER",fulfillment_constraint_rule:"FULFILLMENT_CONSTRAINT_RULE",gift_card_transaction:"GIFT_CARD_TRANSACTION",order_routing_location_rule:"ORDER_ROUTING_LOCATION_RULE",payment_customization:"PAYMENT_CUSTOMIZATION",selling_plan:"SELLING_PLAN",shop:"SHOP",validation:"VALIDATION",variant:"PRODUCTVARIANT",cart_transform:"CARTTRANSFORM"};async function $({query:e,session:i,toNodes:n,toVariables:t,performQuery:d=a=>P({query:e,session:i,variables:a,autoRateLimitRestore:!0})}){let a;try{let o=n(await d(t(a))),s=[];for(s.push(...o.nodes);o.pageInfo.hasNextPage;)a=o.pageInfo.endCursor,o=n(await d(t(a))),s.push(...o.nodes);return{status:"ok",items:s}}catch(o){if(o instanceof Error&&o.message.includes("ACCESS_DENIED"))return{status:"scope_error"};throw o}}function V(e,i){let n="";for(let t of e)n=(0,x.updateTomlValues)(n,t);return`# ${i}
2
- ${n}`}function Z(e,i){let n=i.map(oe).map(a=>{switch(a.status){case"ok":{let{typeName:o,patches:s}=a;return V(s,`type: $app:${o}`)}case"not_app_reserved":return null}}).filter(a=>a!==null),t=e.flatMap(({items:a,ownerType:o,graphQLOwner:s})=>a.map(r=>({result:de(r,o),graphQLOwner:s}))).map(({result:a,graphQLOwner:o})=>{switch(a.status){case"ok":{let{namespace:s,key:r,patches:N}=a;return V(N,`namespace: ${s==="app"?"$app":`$app:${s}`} key: ${r} owner_type: ${o}`)}case"not_app_reserved":return null}}).filter(a=>a!==null);return{tomlContent:[...n,...t].join(`
3
- `),metafieldCount:t.length,metaobjectCount:n.length}}async function q(e){let i=await ae(e),n=i.storeFqdn,t=await ee(i),d=await ne(i);e.includeExistingDeclaredDefinitions||(t=ie(t,e.appConfiguration),d=te(d,e.appConfiguration));let{tomlContent:a,metafieldCount:o,metaobjectCount:s}=Z(t,d);X(o,s,n,a)}function X(e,i,n,t){A({headline:"Conversion to TOML complete.",body:["Converted",{warn:`${e} metafields`},"and",{warn:`${i} metaobjects`},"from",{warn:n},"into TOML, ready for you to copy."],orderedNextSteps:!0,nextSteps:["Review the suggested TOML carefully before applying.",["Missing sections? Make sure your app has the required access scopes to load metafields and metaobjects (e.g.",{command:"read_customers"},"to load customer metafields,",{command:"read_metaobject_definitions"},"to load metaobjects.)"],["Missing definitions? Only metafields and metaobjects that are app-reserved (using",{command:"$app"},") will be converted."],["When you're ready, add the generated TOML to your app's configuration file and test out changes with the",{command:"shopify app dev"},"command."]]}),ce(t)}async function ee(e){let i=[];return await T(Object.entries(Q).map(([n,t])=>({title:m`Loading ${p.green(n)} metafields`,task:async()=>{let d=await $({query:L,session:e,toNodes:a=>a.metafieldDefinitions,toVariables:a=>({ownerType:t,after:a})});i.push({metafields:d,ownerType:n,graphQLOwner:t})}}))),i.map(({metafields:n,ownerType:t,graphQLOwner:d})=>n.status==="ok"?{ownerType:t,items:n.items,graphQLOwner:d}:null).filter(n=>n!==null)}async function ne(e){let i=await k({title:m`Loading ${p.green("metaobjects")}`,task:async()=>$({query:w,session:e,toNodes:n=>n.metaobjectDefinitions,toVariables:n=>({after:n})})});return i.status==="ok"?i.items:[]}function ie(e,i){return e.map(n=>{let t=n.items.filter(d=>!K(i,[n.ownerType,"metafields",u(d.namespace)??"",d.key]));return t.length>0?{...n,items:t}:null}).filter(n=>n!==null)}function te(e,i){return e.filter(n=>!K(i,["metaobjects","app",u(n.type)??""]))}function K(e,i){let n=e;for(let t of i){if(!n[t])return!1;n=n[t]}return!0}async function ae(e){let{remoteApp:i,store:n}=e,t=i.apiSecretKeys[0]?.secret;if(!t)throw new D("No API secret keys found for app");return await _(n.shopDomain,i.apiKey,t)}function u(e){if(!e.match(/^app--\d+/))return null;let i="app";return e.match(/^app--\d+--/)&&(i=e.replace(/^app--\d+--/,"")),i}function de(e,i){let n=u(e.namespace);if(!n)return{status:"not_app_reserved"};let t=e.key,d=se(e),a=re(d,i,n,t);return{status:"ok",key:t,namespace:n,patches:a}}function oe(e){let i=u(e.type);if(!i)return{status:"not_app_reserved"};let n=le(e,i),t=me(n,i);return{status:"ok",typeName:i,patches:t}}function se(e){let i={name:e.name===e.key?void 0:e.name,type:e.type.name,description:e.description??void 0,capabilities:c({admin_filterable:e.capabilities.adminFilterable.enabled||void 0}),access:c({admin:W(e.access.admin),storefront:Y(e.access.storefront),customer_account:ue(e.access.customerAccount)}),validations:G(e.validations)},{type:n,validations:t}=U(i.type,i.validations);return i.type=n,i.validations=t,i}function le(e,i){return{name:e.name===i?void 0:e.name,description:e.description??void 0,display_name_field:e.displayNameKey??void 0,access:c({admin:W(e.access.admin),storefront:Y(e.access.storefront)}),capabilities:c({translatable:e.capabilities.translatable.enabled||void 0,publishable:e.capabilities.publishable.enabled||void 0,renderable:e.capabilities.renderable?.enabled||void 0,renderable_meta_title_field:e.capabilities.renderable?.data?.metaTitleKey??void 0,renderable_meta_description_field:e.capabilities.renderable?.data?.metaDescriptionKey??void 0}),fields:Object.fromEntries(e.fieldDefinitions.map(n=>{let t={type:n.type.name,description:n.description??void 0,name:n.name===n.key?void 0:n.name,required:n.required||void 0,validations:G(n.validations)},{type:d,validations:a}=U(t.type,t.validations);return t.type=d,t.validations=a,[n.key,t]}))}}function U(e,i){if(!i)return{type:e,validations:void 0};if(i.metaobject_definition_type&&typeof i.metaobject_definition_type=="string"){let n=u(i.metaobject_definition_type);return{type:`${e}<$app:${n}>`,validations:c({...i,metaobject_definition_type:void 0})}}if(i.metaobject_definition_types&&Array.isArray(i.metaobject_definition_types)&&i.metaobject_definition_types.every(n=>typeof n=="string")){let n=i.metaobject_definition_types.map(t=>u(t));return{type:`${e}<${n.map(t=>`$app:${t}`).join(",")}>`,validations:c({...i,metaobject_definition_types:void 0})}}return{type:e,validations:i}}function G(e){let i=n=>{try{return JSON.parse(n)}catch{return n}};return c(Object.fromEntries(e.filter(n=>n.value!==void 0&&n.name!=="metaobject_definition_id"&&n.name!=="metaobject_definition_ids").map(n=>[n.name,n.value?i(n.value):void 0])))}function re(e,i,n,t){let d=[[[i,"metafields",n,t,"name"],e.name],[[i,"metafields",n,t,"type"],e.type],[[i,"metafields",n,t,"description"],e.description]],a=[[[i,"metafields",n,t,"access","admin"],e.access?.admin],[[i,"metafields",n,t,"access","storefront"],e.access?.storefront],[[i,"metafields",n,t,"access","customer_account"],e.access?.customer_account],[[i,"metafields",n,t,"capabilities","admin_filterable"],e.capabilities?.admin_filterable||void 0]];return e.validations&&B(e.validations).forEach(({validationKey:s,actualValue:r})=>{d.push([[i,"metafields",n,t,"validations",s],r])}),[v(d),v(a)]}function me(e,i){let n=[[["metaobjects","app",i,"name"],e.name===i?void 0:e.name],[["metaobjects","app",i,"description"],e.description],[["metaobjects","app",i,"display_name_field"],e.display_name_field]],t=[[["metaobjects","app",i,"access","admin"],e.access?.admin],[["metaobjects","app",i,"access","storefront"],e.access?.storefront]];return e.capabilities?.translatable&&t.push([["metaobjects","app",i,"capabilities","translatable"],!0]),e.capabilities?.publishable&&t.push([["metaobjects","app",i,"capabilities","publishable"],!0]),e.capabilities?.renderable&&(t.push([["metaobjects","app",i,"capabilities","renderable"],!0]),e.capabilities?.renderable_meta_title_field&&t.push([["metaobjects","app",i,"capabilities","renderable_meta_title_field"],e.capabilities.renderable_meta_title_field]),e.capabilities?.renderable_meta_description_field&&t.push([["metaobjects","app",i,"capabilities","renderable_meta_description_field"],e.capabilities.renderable_meta_description_field])),Object.entries(e.fields).forEach(([d,a])=>{if(typeof a=="string")n.push([["metaobjects","app",i,"fields",d],a]);else{let o=Object.fromEntries(Object.entries(a).filter(([s,r])=>r!==void 0));Object.keys(o).length===1?n.push([["metaobjects","app",i,"fields",d],a.type]):(n.push([["metaobjects","app",i,"fields",d,"type"],a.type]),n.push([["metaobjects","app",i,"fields",d,"description"],a.description]),n.push([["metaobjects","app",i,"fields",d,"name"],a.name]),n.push([["metaobjects","app",i,"fields",d,"required"],a.required||void 0]),a.validations&&B(a.validations).forEach(({validationKey:r,actualValue:N})=>{n.push([["metaobjects","app",i,"fields",d,"validations",r],N])}))}}),[v(n),v(t)]}function B(e){return Object.entries(e).map(([i,n])=>{let t;return typeof n=="string"||typeof n=="number"||typeof n=="boolean"||Array.isArray(n)&&n.every(d=>typeof d=="string")?t=n:t=JSON.stringify(n),{validationKey:i,actualValue:t}})}function ce(e){let i=e.split(`
4
- `);for(let n of i)n.match(/^\s*\[/)?f(m`${p.green(n)}`):n.match(/^\s*#/)?f(m`${p.gray(n)}`):f(m`${n}`)}function W(e){switch(e){case"MERCHANT_READ_WRITE":return"merchant_read_write";case"MERCHANT_READ":case"PRIVATE":case"PUBLIC_READ":case"PUBLIC_READ_WRITE":case null:case void 0:return}}function Y(e){switch(e){case"PUBLIC_READ":return"public_read";case"NONE":case null:case void 0:return}}function ue(e){switch(e){case"READ":return"read";case"READ_WRITE":return"read_write";case"NONE":case null:case void 0:return}}function c(e){if(e&&!h(e)&&!(typeof e=="object"&&Object.values(e).every(i=>i===void 0)))return e}function v(e){return e.filter(([i,n])=>n!==void 0)}var b=F(H(),1);var S=class e extends E{static summary="Import metafield and metaobject definitions.";static descriptionWithMarkdown="Import metafield and metaobject definitions from your development store. [Read more about declarative custom data definitions](https://shopify.dev/docs/apps/build/custom-data/declarative-custom-data-definitions).";static description=this.descriptionWithoutMarkdown();static flags={...R,...I,store:b.Flags.string({char:"s",description:"Store URL. Must be an existing development or Shopify Plus sandbox store.",env:"SHOPIFY_FLAG_STORE",parse:async i=>y(i)}),"include-existing":b.Flags.boolean({description:"Include existing declared definitions in the output.",default:!1,env:"SHOPIFY_FLAG_INCLUDE_EXISTING"})};async run(){let{appContextResult:i,...n}=await k({title:m`Loading application`,task:async()=>{let{flags:t}=await this.parse(e);await C(t.path);let d=await j({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config}),a=await M({appContextResult:d,storeFqdn:t.store,forceReselectStore:t.reset});return{appContextResult:d,appConfiguration:d.app.configuration,remoteApp:d.remoteApp,store:a,includeExistingDeclaredDefinitions:t["include-existing"]}}});return await q(n),{app:i.app}}};export{S as a};
@@ -1,5 +0,0 @@
1
- import{o as R}from"./chunk-6C5AVMKR.js";import{h as E}from"./chunk-OAG72Q2O.js";import{Ab as i,Bb as m,Y as b,ca as N}from"./chunk-43FRAUV6.js";import{g as c}from"./chunk-VKWPEFWQ.js";c();c();var l=class{export;input;inputBytes;output;outputBytes;logs;functionId;fuelConsumed;target;errorMessage;errorType;inputQueryVariablesMetafieldValue;inputQueryVariablesMetafieldNamespace;inputQueryVariablesMetafieldKey;constructor({export:e,input:r,inputBytes:o,output:n,outputBytes:s,logs:a,functionId:h,fuelConsumed:u,target:A,errorMessage:S,errorType:g,inputQueryVariablesMetafieldValue:w,inputQueryVariablesMetafieldNamespace:M,inputQueryVariablesMetafieldKey:I}){this.export=e,this.input=r,this.inputBytes=o,this.output=n,this.outputBytes=s,this.logs=a,this.functionId=h,this.fuelConsumed=u,this.target=A,this.errorMessage=S,this.errorType=g,this.inputQueryVariablesMetafieldValue=w,this.inputQueryVariablesMetafieldNamespace=M,this.inputQueryVariablesMetafieldKey=I}},f=class{cacheEntryEpochMs;cacheTtlMs;httpRequest;httpResponse;constructor({cacheEntryEpochMs:e,cacheTtlMs:r,httpRequest:o,httpResponse:n}){this.cacheEntryEpochMs=e,this.cacheTtlMs=r,this.httpRequest=o,this.httpResponse=n}},_;(function(t){t[t.NoCachedResponse=0]="NoCachedResponse",t[t.CacheAboutToExpire=1]="CacheAboutToExpire",t[t.Unknown=2]="Unknown"})(_||(_={}));var d=class{reason;httpRequest;constructor({reason:e,httpRequest:r}){this.reason=e,this.httpRequest=r}},y=class{attempt;connectTimeMs;writeReadTimeMs;httpRequest;httpResponse;error;constructor({attempt:e,connectTimeMs:r,writeReadTimeMs:o,httpRequest:n,httpResponse:s,error:a}){this.attempt=e,this.connectTimeMs=r,this.writeReadTimeMs=o,this.httpRequest=n,this.httpResponse=s,this.error=a}};c();function O(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)&&Object.getPrototypeOf(t)===Object.prototype}function C(t,e){return e?.deep&&O(t)||e?.deep&&Array.isArray(t)?p(t,e):t}function p(t,e){if(Array.isArray(t))return t.map(r=>e?.deep?p(r,e):r);if(O(t)){let r={};for(let[o,n]of Object.entries(t))r[b(o)]=C(n,e);return r}return t}var L=450,P=5*1e3,T=60*1e3,H=5,W=1e6,V="function_run",z="function_network_access",U="function_network_access.response_from_cache",q="function_network_access.request_execution_in_background",J="function_network_access.request_execution",Z="no_cached_response",ee="cached_response_about_to_expire";function te(t){let e=JSON.parse(t),r=e.input_query_variables_metafield_value&&x(e.input_query_variables_metafield_value);return new l({export:e.export,input:e.input,inputBytes:e.input_bytes,output:e.output,outputBytes:e.output_bytes,logs:e.logs,functionId:e.function_id,fuelConsumed:e.fuel_consumed,target:e.target,errorMessage:e.error_message,errorType:e.error_type,inputQueryVariablesMetafieldValue:r,inputQueryVariablesMetafieldNamespace:e.input_query_variables_metafield_namespace,inputQueryVariablesMetafieldKey:e.input_query_variables_metafield_key})}function re(t){let e=JSON.parse(t);return new f({cacheEntryEpochMs:e.cache_entry_epoch_ms,cacheTtlMs:e.cache_ttl_ms,httpRequest:e.http_request,httpResponse:e.http_response})}var Q={no_cached_response:_.NoCachedResponse,cached_response_about_to_expire:_.CacheAboutToExpire};function se(t){let e=JSON.parse(t);return new d({reason:Q[e.reason]??_.Unknown,httpRequest:e.http_request})}function oe(t){let e=JSON.parse(t);return new y({attempt:e.attempt,connectTimeMs:e.connect_time_ms??null,writeReadTimeMs:e.write_read_time_ms??null,httpRequest:e.http_request,httpResponse:e.http_response??null,error:e.error??null})}var ne=async t=>{let{errors:e}=t.response,r=L,o=null,n="not_attempted";if(e.length>0)if(i(`Errors: ${e.map(s=>s.message).join(", ")}`),e.some(s=>s.status===401))try{o=await t.onResubscribe(),n="succeeded"}catch(s){i(`Failed to resubscribe to app logs: ${s}`),r=T,n="failed",t.onThrottle(r)}else e.some(s=>s.status===429)?(r=T,t.onThrottle(r)):(r=P,t.onUnknownError(r));return{retryIntervalMs:r,nextJwtToken:o,resubscribeResult:n}};function ae(t){return t.allExtensions.flatMap(e=>e.isFunctionExtension?[`extensions.${e.configuration.handle}`]:[])}var ie=({appLog:t,appLogPayload:e,storeName:r,prettyPrint:o=!0})=>{let{cursor:n,...s}=t,a=p({...s,payload:e,localTime:N(t.log_timestamp),storeName:r});return e instanceof l&&(a.payload.logs=e.logs.split(`
2
- `).filter(Boolean),a.payload.inputQueryVariablesMetafieldValue&&(a.payload.inputQueryVariablesMetafieldValue=x(a.payload.inputQueryVariablesMetafieldValue))),o?JSON.stringify(a,null,2):JSON.stringify(a)},pe=(t,e)=>{let r=p(JSON.parse(t));return e===V?new l(r):e===U?new f(r):e===q?new d(r):e===J?new y(r):r},ue=async(t,e,r,o)=>{let n=await t.subscribeToAppLogs(e,r);if(!n.appLogsSubscribe)throw new E("Failed to subscribe to app logs: No response received");let{jwtToken:s,success:a,errors:h}=n.appLogsSubscribe;if(i(`Token: ${s}
3
- `),i(`API Key: ${e.apiKey}
4
- `),h&&h.length>0){let u=h.join(", ");throw await R({stripAnsi:!1},()=>{m(`Errors subscribing to app logs: ${u}`,o),m("App log streaming is not available in this session.",o)}),new E(u)}else{if(!s)throw new E("Failed to subscribe to app logs: No response received");let u=Array.isArray(e.shopIds)?e.shopIds:[e.shopIds];i(`Subscribed to App Events for shop ID(s) ${u.join(", ")}`),a!==void 0&&i(`Success: ${a}
5
- `)}return s};function ce(t){try{if(typeof t=="string"){let e=JSON.parse(t);return JSON.stringify(e,null,2)}else return typeof t=="object"&&t!==null?JSON.stringify(t,null,2):void 0}catch(e){throw new Error(`Error parsing JSON: ${e}`)}}var x=t=>{try{return JSON.parse(t)}catch{return t}};export{l as a,f as b,_ as c,d,y as e,p as f,L as g,P as h,H as i,W as j,V as k,z as l,U as m,q as n,J as o,Z as p,ee as q,te as r,re as s,se as t,oe as u,ne as v,ae as w,ie as x,pe as y,ue as z,ce as A};
@@ -1 +0,0 @@
1
- import{a as c,b as p,c as d}from"./chunk-VETLNJ56.js";import{a as r}from"./chunk-VJ5YOXKL.js";import{a as n}from"./chunk-GINXNPAR.js";import{wa as s}from"./chunk-CVW2HMQO.js";import{b as a}from"./chunk-K2DP5Z76.js";import{a as y}from"./chunk-CTNBSUVU.js";import{e as g,g as i}from"./chunk-VKWPEFWQ.js";i();var f=g(y(),1);var o=class m extends r{static summary="Fetch the latest GraphQL schema for a function.";static descriptionWithMarkdown="Generates the latest [GraphQL schema](https://shopify.dev/docs/apps/functions/input-output#graphql-schema) for a function in your app. Run this command from the function directory.\n\n This command uses the API type and version of your function, as defined in your extension TOML file, to generate the latest GraphQL schema. The schema is written to the `schema.graphql` file.";static description=this.descriptionWithoutMarkdown();static flags={...a,...n,...p,stdout:f.Flags.boolean({description:"Output the schema to stdout instead of writing to a file.",required:!1,default:!1,env:"SHOPIFY_FLAG_STDOUT"})};async run(){let{flags:t}=await this.parse(m),{app:e,developerPlatformClient:h,organization:u}=await s({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config}),l=await d(e,t.path);return await c({app:e,extension:l,stdout:t.stdout,developerPlatformClient:h,orgId:u.id}),{app:e}}};export{o as a};
@@ -1 +0,0 @@
1
- import{g as e}from"./chunk-VKWPEFWQ.js";e();
@@ -1,4 +0,0 @@
1
- import{a as f}from"./chunk-VJ5YOXKL.js";import{a as o}from"./chunk-GINXNPAR.js";import{ta as c,wa as s}from"./chunk-CVW2HMQO.js";import{b as n,f as r}from"./chunk-K2DP5Z76.js";import{a as u}from"./chunk-CTNBSUVU.js";import{e as g,g as a}from"./chunk-VKWPEFWQ.js";a();var i=g(u(),1);var t=class p extends f{static summary="Fetch your app configuration from the Developer Dashboard.";static descriptionWithMarkdown=`Pulls app configuration from the Developer Dashboard and creates or overwrites a configuration file. You can create a new app with this command to start with a default configuration file.
2
-
3
- For more information on the format of the created TOML configuration file, refer to the [App configuration](https://shopify.dev/docs/apps/tools/cli/configuration) page.
4
- `;static description=this.descriptionWithoutMarkdown();static flags={...n,...o,"organization-id":i.Flags.string({hidden:!0,env:"SHOPIFY_FLAG_ORGANIZATION_ID",exclusive:["client-id"]}),"client-id":r(o["client-id"]),"file-name":i.Flags.string({hidden:!1,description:"The name of the app configuration file to create or overwrite.",env:"SHOPIFY_FLAG_APP_CONFIG_FILE_NAME",exclusive:["config"]}),force:i.Flags.boolean({hidden:!1,description:"Overwrite an existing configuration file without prompting.",env:"SHOPIFY_FLAG_FORCE",dependsOn:["file-name"]})};async run(){let{flags:e}=await this.parse(p),d={directory:e.path,apiKey:e["client-id"],organizationId:e["organization-id"],configName:e.config,fileName:e["file-name"],force:e.force??!1},l=await c(d),{app:m}=await s({directory:e.path,clientId:void 0,forceRelink:!1,userProvidedConfigName:l.configFileName});return{app:m}}};export{t as a};
@@ -1 +0,0 @@
1
- import{H as A,I as O,J as z,L as P,N as x}from"./chunk-CVW2HMQO.js";import{B as L,F as D,g as $,y as l}from"./chunk-2VJ6NBPV.js";import{a as F}from"./chunk-H7TDIRIU.js";import{D as R,b as E}from"./chunk-CNK3ZO2B.js";import{H as N,M as v,T as y,y as g,z as k}from"./chunk-6C5AVMKR.js";import{f as _,h as d}from"./chunk-OAG72Q2O.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();p();p();async function b(e,t){if(t.clientName!==l.AppManagement||!t.devStoreCapReached)return!1;try{return await t.devStoreCapReached(e)}catch{return!1}}async function M(e,t,o,i="disabled"){let c=o.clientName===l.AppManagement,s=async f=>o.devStoresForOrg(t.id,f),n=i!=="disabled"&&o.clientName===l.AppManagement,r=async()=>{if(await b(t.id,o))throw new d(U,W(t.id));let f=await A(),w=await O(),u=await z(),T=await $({name:f,plan:w,withDemoData:u,organization:t,json:!1,summary:!1}),S=await I(t,T,o);return k({headline:`Dev store "${S.shopName}" created successfully.`}),S},a,h;if(n&&e.stores.length===0){if(await b(t.id,o))throw new d(U,W(t.id));if(v()===!1)throw new d("No development store was specified.",H(t.id));a=async()=>(g({body:Y(t)}),r())}else if(n&&i==="selection-option"){if(v()===!1&&(e.stores.length>1||e.hasMorePages))throw new d("No development store was specified.","Run `shopify app dev --store <store-domain>` to select a development store.");v()&&!await b(t.id,o)&&(h=r)}let m=await P({onSearchForStoresByName:s,...e,showDomainOnPrompt:c,...a?{onCreateStoreWhenEmpty:a}:{},...h?{onCreateStore:h}:{}});if(!m){if(a)throw new _;if(g({body:await o.getCreateDevStoreLink(t)}),await y(5),!await x(t))throw new _;let w=await B(t.id,o);m=await M({stores:w,hasMorePages:!1},t,o,i)}return C(m),m}async function I(e,t,o){let s;if(await N([{title:"Fetching organization data",task:async()=>{for(let r=0;r<10;r++){try{let a=await D(e,t,o);if(a){s=a;return}}catch(a){if(!(a instanceof L))throw a}await y(3)}}}]),!s)throw new d(`The newly created development store (${t}) is not available yet.`,`Run \`shopify app dev --store ${t}\` to select it when it is ready.`);return s}async function B(e,t){let c=[];return await N([{title:"Fetching organization data",task:async()=>{for(let n=0;n<10;n++){let{stores:r}=await t.devStoresForOrg(e);if(r.length>0){c=r;return}await y(3)}}}]),c}var U="Your organization has reached its development store limit.";function Y(e){return`You don't have any dev stores associated with ${e.businessName}'s Dev Dashboard. Let's create one.`}function q(e){return`shopify store create dev --organization-id ${e} --name <store-name> --plan <plan>`}function H(e){return`Create a development store with \`${q(e)}\`, then run \`shopify app dev --store <store-domain>\`.`}function W(e){return`Make a development store slot available in Dev Dashboard. Then create a development store with \`${q(e)}\`, then run \`shopify app dev --store <store-domain>\`.`}function C(e){if(!e.transferDisabled)throw!e.transferDisabled&&!e.convertableToPartnerTest?new d(`The store you specified (${e.shopDomain}) is not a dev store`,"Run dev --reset and select an eligible dev store."):new d(`The store you specified (${e.shopDomain}) is not transfer-disabled`,"Run dev --reset and select a transfer-disabled dev store.")}async function fe({appContextResult:e,storeFqdn:t,forceReselectStore:o,storeTypes:i=["APP_DEVELOPMENT"],storeCreationMode:c="disabled"}){let{app:s,organization:n,developerPlatformClient:r}=e,a,h=s.configuration.build?.dev_store_url,m=s.hiddenConfig.dev_store_url,f=h??m,u=t??(o?void 0:f),T=i.length===1&&i[0]==="APP_DEVELOPMENT";if(u)a=await D(n,u,r,i),T&&C(a);else{let S=await r.devStoresForOrg(n.id);a=await M(S,n,r,c)}return a.shopDomain=R(a.shopDomain),await V(a,o),(a.shopDomain!==f||!m)&&await s.updateHiddenConfig({dev_store_url:a.shopDomain}),await r.ensureUserAccessToStore(n.id,a),a}async function V(e,t){await F.addPublicMetadata(()=>({cmd_app_reset_used:t,store_fqdn_hash:E(e.shopDomain),store_domain:e.shopDomain})),await F.addSensitiveMetadata(()=>({store_fqdn:e.shopDomain}))}export{fe as a};
@@ -1 +0,0 @@
1
- import{a as h,b as w}from"./chunk-L4LDNEFK.js";import{r as f}from"./chunk-CNK3ZO2B.js";import{T as d}from"./chunk-6C5AVMKR.js";import{h as i}from"./chunk-OAG72Q2O.js";import{Ga as m,na as p}from"./chunk-43FRAUV6.js";import{d as u}from"./chunk-773TIA5M.js";import{g as l}from"./chunk-VKWPEFWQ.js";l();import{writeFile as g}from"fs/promises";var S=1024*1024,y=100,U=y*S,E=3,_=new Set([408,429,500,502,503,504]);async function j(o,e){let t=u(e,"manifest.json");await g(t,JSON.stringify(o,null,2))}var A=["!**/*.js.map","!**/*.metafile.json"];async function k(o,e,t){let n=t??["**/*",...A];e.endsWith(".br")?await w({inputDirectory:o,outputPath:e,matchFilePattern:n}):await h({inputDirectory:o,outputZipPath:e,matchFilePattern:n})}async function C(o,e){let t=await m(e);if(t>U){let s=`${(Math.ceil(t/S*100)/100).toFixed(2)} MB`;throw new i(`Your app bundle exceeds the ${y} MB upload limit (it is ${s}).`,"Check the asset paths in your extension configuration \u2014 a misconfigured source can pull in much more than intended. Exclude large files or directories from your bundle, then try again.")}let n=p(e),r;for(let s=1;s<=E;s++){if(r=await f(o,{method:"put",body:n},"slow-request"),r.ok)return;let T=s===E;if(_.has(r.status)&&!T){await r.text().catch(()=>{}),await d(2**s*.1);continue}break}let a=r?.status,c=(await r?.text().catch(()=>""))?.trim();throw new i(`Failed to upload your app bundle to storage${a?` (HTTP ${a})`:""}.`,"This is usually transient. Please try again, and check your network connection if it persists.",c?[`Storage responded with: ${c.slice(0,300)}`]:void 0)}async function D(o,e){let t=await o.generateSignedUploadUrl(e);if(!t.assetUrl||t.userErrors?.length>0){let n=t.userErrors.map(r=>r.message).join(", ");throw new i(n)}return t.assetUrl}export{j as a,A as b,k as c,C as d,D as e};
@@ -1,3 +0,0 @@
1
- import{a}from"./chunk-XKHKXUQY.js";import{p as i,v as s}from"./chunk-DO4SRE4M.js";import{b as r}from"./chunk-K2DP5Z76.js";import{a as c}from"./chunk-CTNBSUVU.js";import{e as d,g as e}from"./chunk-VKWPEFWQ.js";e();var m=d(c(),1),t=class extends s{static summary="Download metafields definitions from your shop into a local file.";static descriptionWithMarkdown=`Retrieves metafields from Shopify Admin.
2
-
3
- If the metafields file already exists, it will be overwritten.`;static description=this.descriptionWithoutMarkdown();static flags={...r,...i,force:m.Flags.boolean({hidden:!0,char:"f",description:"Proceed without confirmation, if current directory does not seem to be theme directory.",env:"SHOPIFY_FLAG_FORCE"})};static multiEnvironmentsFlags=null;async command(o){let n={path:o.path,password:o.password,store:o.store,force:o.force,verbose:o.verbose,noColor:o["no-color"]};await a(n)}};export{t as a};
@@ -1 +0,0 @@
1
- import{a as o}from"./chunk-BHTHUKHU.js";import{g as e}from"./chunk-VKWPEFWQ.js";e();var t=class extends o{};export{t as a};
@@ -1,3 +0,0 @@
1
- import{c as g,g as h}from"./chunk-EJJPEWSB.js";import{a as m}from"./chunk-VJ5YOXKL.js";import{wa as d}from"./chunk-CVW2HMQO.js";import{h as f}from"./chunk-OAG72Q2O.js";import{wb as s}from"./chunk-43FRAUV6.js";import{g as r}from"./chunk-VKWPEFWQ.js";r();r();var v=250,c=class extends Error{constructor(){super("Migratable subscriptions were not found"),this.name="MigratableSubscriptionsNotFoundError"}},l=class extends Error{constructor(t){super(t),this.name="MigrationListProtocolError"}};async function*b({clientId:i,status:t,getPage:n=h}){let e=new Set,a;for(;;){let p=await n({clientId:i,first:v,after:a,status:t});if(p===null)throw new c;if(yield p.subscriptions,!p.pageInfo.hasNextPage)return;let{endCursor:o}=p.pageInfo;if(o===null||o.trim()==="")throw new l("Migratable subscription page has no cursor for its next page");if(e.has(o))throw new l(`Migratable subscription pagination repeated cursor: ${o}`);e.add(o),a=o}}r();var w="shop_id,status,manual_subscription_name,manual_subscription_price_amount,manual_subscription_price_currency_code,manual_subscription_interval,target_plan_handle,notification_kind,notification_opt_out_deadline,notification_sent_at,price_behavior,effective_date,last_failure_reason";function y(i){return JSON.stringify({schemaVersion:1,subscriptions:i},null,2)}async function _({pages:i,json:t}){t?s(y(await S(i))):await C(i)}async function S(i){let t=[];for await(let n of i)t.push(...n);return t}async function C(i){let t=!1;for await(let n of i){let e=x(n);t?e.length>0&&s(e.join(`
2
- `)):(s([w,...e].join(`
3
- `)),t=!0)}t||s(w)}function x(i){return i.map(t=>[t.shopId,t.status,t.manualSubscriptionName,t.manualSubscriptionPrice?.amount,t.manualSubscriptionPrice?.currencyCode,t.manualSubscriptionInterval,t.targetPlanHandle,t.notification?.kind,t.notification?.optOutDeadline,t.notification?.sentAt,t.priceBehavior,t.effectiveDate,t.lastFailureReason].map(E).join(","))}function E(i){let t=i??"";return/[",\r\n]/.test(t)?`"${t.replaceAll('"','""')}"`:t}var u=class i extends m{static hidden=!0;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,8 +0,0 @@
1
- import{c as J}from"./chunk-XWXAFJFC.js";import{b as F}from"./chunk-QVO5CAJN.js";import{a as ae}from"./chunk-LAMTFOVF.js";import{a as ne}from"./chunk-VJ5YOXKL.js";import{a as z}from"./chunk-GINXNPAR.js";import{B as Z,D as ee,d as K,e as Q,wa as te}from"./chunk-CVW2HMQO.js";import{b as T,d as X,e as B}from"./chunk-YNFXYVYN.js";import{a as k}from"./chunk-H7TDIRIU.js";import{b as H,f as O}from"./chunk-K2DP5Z76.js";import{e as E}from"./chunk-CNK3ZO2B.js";import{C as G,p as P,x as L,y as _}from"./chunk-6QADNGH4.js";import{D as q,F as U,H as b,J as V,z as $}from"./chunk-6C5AVMKR.js";import{h as m}from"./chunk-OAG72Q2O.js";import{a as xe}from"./chunk-CTNBSUVU.js";import{Oa as j,Ta as h,Ua as R,Wa as D,X as f,_ as M,ka as w,qa as N,rb as W,wa as g,ya as v}from"./chunk-43FRAUV6.js";import{e as Y}from"./chunk-XYUTD6IU.js";import{d as p,n as C}from"./chunk-773TIA5M.js";import{e as he,g as d}from"./chunk-VKWPEFWQ.js";d();d();d();async function re(e,t,r,n={}){let{templates:a,groupOrder:i}=await e.templateSpecifications(t,n);return{templates:a.filter(o=>r.includes(o.identifier)||r.includes(o.type)),groupOrder:i}}d();d();async function ie(e,t){let r=e?.path??"",n=p(t,r);if(!await h(n))throw new m(`
2
- The extension is not available for ${e?.value}`);return n}async function oe({name:e,app:t}){let r=M(e),n=p(t.directory,B.extensions.directoryName,r);if(await h(n))throw new m(`
3
- A directory with this name (${r}) already exists.
4
- Choose a new name for your extension.`);return await g(n),await N(p(n,T.lockFile)),n}function A(e){switch(e){case"vanilla-js":case"preact":case"react":case"typescript":case"typescript-react":return"javascript";case"rust":case"wasm":return e;case void 0:case"liquid":case"config-only":return}}async function se(e){let t=e.extensionChoices.name,r=e.extensionChoices.flavor,n=e.extensionTemplate.supportedFlavors.find(o=>o.value===r),a=await oe({app:e.app,name:t}),i=e.cloneUrl??e.extensionTemplate.url,s={directory:a,url:i,app:e.app,project:e.project,type:e.extensionTemplate.type,name:t,extensionFlavor:n,onGetTemplateRepository:e.onGetTemplateRepository??(async(o,c)=>{await J({repoUrl:o,destination:c,shallow:!0})})};return await we(s),{directory:C(a),extensionTemplate:e.extensionTemplate}}async function we(e){try{switch(e.type){case"theme":await ge(e);break;case"function":await ve(e);break;default:await Ee(e);break}let t=p(e.directory,T.lockFile);await v(t)}catch(t){throw await v(e.directory),t}}async function ge({directory:e,url:t,type:r,name:n,extensionFlavor:a,onGetTemplateRepository:i}){return w(async s=>{let o=await I(t,a,s,i);await F(o,e,{name:n,type:r,uid:E(f(n))})})}async function ve({directory:e,url:t,app:r,project:n,name:a,extensionFlavor:i,onGetTemplateRepository:s}){let o=A(i?.value),c=[];c.push({title:"Generating function extension",task:async()=>{if(await w(async l=>{let u=await I(t,i,l,s);await F(u,e,{name:a,handle:f(a),flavor:i?.value,uid:E(f(a))})}),o==="javascript"){let l=ce(i?.value??"rust");await le(e,l,"!(*.graphql)")}}}),o==="javascript"&&c.push({title:"Installing additional dependencies",task:async()=>{n.usesWorkspaces&&await P({packageManager:n.packageManager,directory:n.directory});let l=Fe(o);await _(l,{packageManager:n.packageManager,type:"prod",directory:n.usesWorkspaces?e:n.directory})}}),o==="javascript"&&c.push({title:"Building GraphQL types",task:async()=>{await Q({directory:e,isJavaScript:!0},{stdout:process.stdout,stderr:process.stderr,app:r})}}),await b(c)}async function Ee({directory:e,url:t,app:r,project:n,name:a,extensionFlavor:i,onGetTemplateRepository:s}){let o=A(i?.value),c=[{title:"Generating extension",task:async()=>{let l=ce(i?.value??"vanilla-js");await w(async u=>{let y=await I(t,i,u,s);await F(y,e,{srcFileExtension:l,name:a,handle:f(a),flavor:i?.value??"",uid:E(f(a))})}),o==="javascript"&&await le(e,l)}},{title:"Installing dependencies",task:async()=>{let l=n.packageManager;if(n.usesWorkspaces)A(i?.value)==="javascript"&&await P({packageManager:l,directory:n.directory});else{await Te(n.directory,i?.value);let u=p(e,"package.json"),y=await ke(u);await _(y,{packageManager:l,type:"prod",directory:n.directory}),await v(u)}}}];c.push({title:"Update shared type definition",task:async()=>{await ee(r)}}),await b(c)}function ce(e){return{"vanilla-js":"js",preact:"jsx",react:"jsx",typescript:"ts","typescript-react":"tsx",rust:"rs",wasm:"wasm",liquid:"liquid","config-only":""}[e]??"js"}function Fe(e){let t=[];return e==="javascript"&&t.push({name:"@shopify/shopify_function",version:`~${K}.0.0`}),t}async function le(e,t,r="*"){let n=await D(p(e,"src",r)),a=[];for(let i of n)a.push(j(i,`${i}.${t}`));await Promise.all(a)}async function Te(e,t){t==="typescript-react"&&await G(e,{"@types/react":X.reactTypes})}async function ke(e){if(!await h(e))return[];let t=await L(e);return Object.entries(t?.dependencies??{}).map(([r,n])=>({name:r,version:n}))}async function I(e,t,r,n){let a=p(r,"download");return await g(a),await n(e,a),ie(t,a)}d();function Pe(e,t=[]){let r=[...e.map(a=>({label:a.name,value:a.identifier,group:a.group||"Other",sortPriority:a.sortPriority??Number.MAX_SAFE_INTEGER})),...t.map(a=>({label:`${a.name} (limit reached)`,value:a.identifier,group:a.group||"Other",disabled:!0,sortPriority:a.sortPriority??Number.MAX_SAFE_INTEGER}))],n=(a,i)=>a.sortPriority===i.sortPriority?a.label.localeCompare(i.label):a.sortPriority-i.sortPriority;return r.sort(n)}var _e=async e=>{let t=e.extensionTemplates,r=e.templateType,n=e.extensionFlavor;if(!r){if(n&&(t=t.filter(c=>c.supportedFlavors.map(l=>l.value).includes(n))),t.length===0)throw new m("You have reached the limit for the number of extensions you can create.");r=await U({message:"Type of extension?",choices:Pe(t,e.unavailableExtensions),groupOrder:e.groupOrder})}let a=t.find(c=>c.identifier===r),i=e.name||await pe(e.directory,a.defaultName),s=e.extensionFlavor??await be(a);return{extensionTemplate:a,extensionContent:{name:i,flavor:s}}};async function pe(e,t,r=1){let n=t.includes(" ")?" ":"-",a=r<=1?t:`${t}${n}${r}`,i=p(e,f(a));return R(i)?pe(e,t,r+1):V({message:"Name your extension:",defaultValue:a})}async function be(e){if(e.supportedFlavors.length!==0)return e.supportedFlavors.length===1&&e.supportedFlavors[0]?e.supportedFlavors[0].value:q({message:"What would you like to work in?",choices:e.supportedFlavors.map(t=>({label:t.name,value:t.value})),defaultValue:"react"})}var de=_e;async function Oe(e){let{app:t,developerPlatformClient:r,remoteApp:n,specifications:a,template:i}=e,s=a.map(ye=>ye.identifier),{templates:o,groupOrder:c}=await re(r,n,s,{requestedTemplate:i}),l=await Ae(o,c,a,t,e),u=await de(l);await Se(u,i);let y=Ce(u,t,e,r),fe=await se(y);Me(fe,e.project.packageManager)}async function Ae(e,t,r,n,a){let i=await Re(a.template,n,e,r);Ne(i,a.flavor);let{validTemplates:s,templatesOverlimit:o}=Ie(e,r,n);return{templateType:i?.identifier,name:a.name,extensionFlavor:a.flavor,directory:p(a.directory,"extensions"),app:n,extensionTemplates:s??[],unavailableExtensions:o??[],reset:a.reset,groupOrder:t}}function Ie(e,t,r){return ae(e,a=>!ue(r,t,a)?"validTemplates":"templatesOverlimit")}function ue(e,t,r){let n=r.type,a=t.find(s=>s.identifier===n||s.externalIdentifier===n);return e.extensionsForType({identifier:n,externalIdentifier:n}).length>=(a?.registrationLimit??1)}async function Se(e,t){let{extensionContent:r}=e;return k.addPublicMetadata(()=>({cmd_scaffold_template_flavor:r.flavor,cmd_scaffold_type:e.extensionTemplate.identifier,cmd_scaffold_used_prompts_for_type:!t}))}function Ce(e,t,r,n){return{app:t,project:r.project,cloneUrl:r.cloneUrl,extensionChoices:e.extensionContent,extensionTemplate:e.extensionTemplate,developerPlatformClient:n}}function Me(e,t){let r=je(e.extensionTemplate,e.directory,t);$(r)}function Ne(e,t){if(!t||!e)return;let r=e.supportedFlavors.map(n=>n.value);if(!r.includes(t))throw new m("Invalid template for extension type",`Expected template to be one of the following: ${r.join(", ")}.`)}function je(e,t,r){let n={headline:["Your extension was created in",{filePath:t},{char:"."}],nextSteps:[],reference:[]};return e.type!=="function"&&n.nextSteps.push(["To preview this extension along with the rest of the project, run",{command:W(r,"shopify app dev")}]),e.supportLinks[0]&&n.reference.push(["For more details, see the",{link:{label:"docs",url:e.supportLinks[0]}}]),n}async function Re(e,t,r,n){if(!e)return;let a=r.find(i=>i.identifier===e);if(!a){let i=await Y(),s=r.map(c=>c.identifier),o=i?"You might need to enable some flags on your Organization or App":void 0;throw new m(`Unknown extension type: ${e}.
5
- The following extension types are supported: ${s.join(", ")}`,o)}if(ue(t,n,a))throw new m(`Invalid extension type: ${e}`,`You have reached the limit of extension(s) of type ${a.type} per app`);return a}var me=Oe;var x=he(xe(),1);var S=class e extends ne{static summary="Generate a new app Extension.";static descriptionWithMarkdown=`Generates a new [app extension](https://shopify.dev/docs/apps/build/app-extensions). For a list of app extensions that you can generate using this command, refer to [Supported extensions](https://shopify.dev/docs/apps/build/app-extensions/list-of-app-extensions).
6
-
7
- Each new app extension is created in a folder under \`extensions/\`. To learn more about the extensions file structure, refer to [App structure](https://shopify.dev/docs/apps/build/cli-for-apps/app-structure) and the documentation for your extension.
8
- `;static description=this.descriptionWithoutMarkdown();static flags={...H,...z,template:O(x.Flags.string({char:"t",hidden:!1,description:"Extension template",env:"SHOPIFY_FLAG_EXTENSION_TEMPLATE"})),name:O(x.Flags.string({char:"n",hidden:!1,description:"name of your Extension",env:"SHOPIFY_FLAG_NAME"})),"clone-url":x.Flags.string({hidden:!0,char:"u",description:"The Git URL to clone the function extensions templates from. Defaults to: https://github.com/Shopify/function-examples",env:"SHOPIFY_FLAG_CLONE_URL"}),flavor:x.Flags.string({hidden:!1,description:"Choose a starting template for your extension, where applicable. Required if non interactive when the selected extension template supports multiple flavors.",options:["vanilla-js","react","typescript","typescript-react","wasm","rust"],env:"SHOPIFY_FLAG_FLAVOR"})};async run(){let{flags:t}=await this.parse(e);await k.addPublicMetadata(()=>({cmd_scaffold_required_auth:!0,cmd_scaffold_template_custom:t["clone-url"]!==void 0,cmd_scaffold_type_owner:"@shopify/app"})),await Z(t.path);let{app:r,project:n,specifications:a,remoteApp:i,developerPlatformClient:s}=await te({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config});return await me({directory:t.path,reset:t.reset,name:t.name,cloneUrl:t["clone-url"],template:t.template,flavor:t.flavor,app:r,project:n,specifications:a,remoteApp:i,developerPlatformClient:s}),{app:r}}};export{S as a};
@@ -1 +0,0 @@
1
- import{g as I}from"./chunk-VKWPEFWQ.js";I();var o="4.8.4";export{o as a};
@@ -1 +0,0 @@
1
- import{b as r,c as u,e as I}from"./chunk-DPNZWBT5.js";import{a as o}from"./chunk-JD5P5RAJ.js";import{g as c}from"./chunk-VKWPEFWQ.js";c();c();function i(t){return!(t===void 0||t.trim()==="")}function s(t,e){switch(t){case"bitbucket":return{branch:e.BITBUCKET_BRANCH,build:e.BITBUCKET_BUILD_NUMBER,commitSha:e.BITBUCKET_COMMIT,run:e.BITBUCKET_BUILD_NUMBER,url:`https://bitbucket.org/${e.BITBUCKET_WORKSPACE}/${e.BITBUCKET_REPO_SLUG}/pipelines/results/${e.BITBUCKET_BUILD_NUMBER}`};case"circleci":return{actor:e.CIRCLE_USERNAME,branch:e.CIRCLE_BRANCH,build:e.CIRCLE_BUILD_NUM,commitSha:e.CIRCLE_SHA1,run:e.CIRCLE_WORKFLOW_ID,url:e.CIRCLE_BUILD_URL};case"github":return{actor:e.GITHUB_ACTOR,attempt:e.GITHUB_RUN_ATTEMPT,branch:e.GITHUB_REF_NAME,build:e.GITHUB_RUN_ID,commitSha:e.GITHUB_SHA,run:e.GITHUB_RUN_ID,runNumber:e.GITHUB_RUN_NUMBER,url:`${e.GITHUB_SERVER_URL}/${e.GITHUB_REPOSITORY}/actions/runs/${e.GITHUB_RUN_ID}`};case"gitlab":return{actor:e.GITLAB_USER_LOGIN,branch:e.CI_COMMIT_REF_NAME,build:e.CI_PIPELINE_ID,commitSha:e.CI_COMMIT_SHA,commitMessage:e.CI_COMMIT_MESSAGE,run:e.CI_RUNNER_ID,url:e.CI_PIPELINE_URL};case"buildkite":return{branch:e.BUILDKITE_BRANCH,build:e.BUILDKITE_BUILD_NUMBER,commitSha:e.BUILDKITE_COMMIT,commitMessage:e.BUILDKITE_MESSAGE,run:e.BUILDKITE_BUILD_NUMBER,url:e.BUILDKITE_BUILD_URL};default:return{}}}import{randomUUID as p}from"crypto";import{homedir as l,networkInterfaces as m}from"os";async function f(t){let{fileExists:e}=await import("./fs-QEWOWUPQ.js");return e(t)}async function U(t,e){let{exec:a}=await import("./system-T4H2ISV6.js");await a(t,e)}function M(){return!!(process.stdout.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))}function x(){return l()}var _,T;function B(t=process.env){return t[r.env]==="development"}function N(t=process.env){return t===process.env?_??=o(t[r.verbose])||process.argv.includes("--verbose"):o(t[r.verbose])||process.argv.includes("--verbose")}async function A(t=process.env){return Object.prototype.hasOwnProperty.call(t,r.runAsUser)?!o(t[r.runAsUser]):await f(I.executables.dev)}function y(t=process.env){return t===process.env?T??=o(t[r.unitTest]):o(t[r.unitTest])}function g(t=process.env){return o(t[r.noAnalytics])||o(t[r.optOutInstrumentation])||B(t)}function S(t=process.env){return o(t[r.alwaysLogAnalytics])}function K(t=process.env){return o(t[r.alwaysLogMetrics])}function G(t=process.env){return o(t[r.doctor])}function O(t=process.env){return t[r.gitpod]}function H(t=process.env){return t[r.codespaceName]}function w(t=process.env){return t[r.codespacePortForwardingDomain]}function P(t=process.env){return d(t).platform!=="localhost"}function k(t=process.env){return t[r.themeToken]}function d(t=process.env){return i(t[r.codespaces])?{platform:"codespaces",editor:!0}:i(t[r.gitpod])?{platform:"gitpod",editor:!0}:i(t[r.cloudShell])?{platform:"cloudShell",editor:!0}:{platform:"localhost",editor:!1}}async function F(){try{return await U("git",["--version"]),!0}catch{return!1}}function z(t=process.env){if(o(t.CI)){let e="unknown";return i(t.BITBUCKET_BUILD_NUMBER)?e="bitbucket":o(t.CIRCLECI)?e="circleci":i(t.GITHUB_ACTION)?e="github":o(t.GITLAB_CI)?e="gitlab":i(t.BUILDKITE)&&(e="buildkite"),{isCI:!0,name:e,metadata:s(e,t)}}else if(o(t.TF_BUILD))return{isCI:!0,name:"azure",metadata:s("azure",t)};return{isCI:!1}}async function $(){let t="00:00:00:00:00:00",e=Object.values(m()).flat().filter(n=>!!(n&&n.mac!==t));return(e.find(n=>!n.internal)??e[0])?.mac??p()}function V(t=process.env){let e=t[r.themeKitAccessDomain];return i(e)?e:u}function W(t=process.env){let e=t[r.otelURL];return i(e)?e:"https://otlp-http-production-cli.shopifysvc.com"}export{M as a,x as b,B as c,N as d,A as e,y as f,g,S as h,K as i,G as j,O as k,H as l,w as m,P as n,k as o,d as p,F as q,z as r,$ as s,V as t,W as u};
@@ -1,2 +0,0 @@
1
- import{ga as y,ha as S,v as e}from"./chunk-CNK3ZO2B.js";import{h as l,k as x}from"./chunk-OAG72Q2O.js";import{T as h,Wa as b,fa as _}from"./chunk-43FRAUV6.js";import{d as g,j as u}from"./chunk-773TIA5M.js";import{g as r}from"./chunk-VKWPEFWQ.js";r();function v(t,{httpsOnly:n=!1,message:o="Invalid URL"}={}){return t.refine(a=>A(a,n),{message:o}).refine(a=>!a.includes(`
2
- `),{message:o})}function _e(t,{message:n="URL must be HTTPS URL or start with /"}={}){return t.refine(o=>o.startsWith("/")||A(o,!0),{message:n})}function A(t,n){try{let o=new URL(t);return n?o.protocol==="https:":["http:","https:"].includes(o.protocol)}catch{return!1}}function be(t){return typeof t=="string"&&!t.startsWith("/")?`/${t}`:t}var H=30;function ye(t){return t.length<=H}r();var ve={skipEsbuildReactDedeuplication:"SHOPIFY_CLI_SKIP_ESBUILD_REACT_DEDUPLICATION",disableGraphiQLExplorer:"SHOPIFY_CLI_DISABLE_GRAPHIQL",useDynamicConfigSpecifications:"SHOPIFY_CLI_DYNAMIC_CONFIG",enableAppLogPolling:"SHOPIFY_CLI_ENABLE_APP_LOG_POLLING",templatesJsonPath:"SHOPIFY_CLI_APP_TEMPLATES_JSON_PATH",mkcertBinaryPath:"SHOPIFY_CLI_MKCERT_BINARY",disableMinificationOnDev:"SHOPIFY_CLI_DISABLE_MINIFICATION_ON_DEV"},O={app:"shopify.app.toml",web:"shopify.web.toml",appEnvironments:"shopify.environments.toml",lockFile:".shopify.lock",hiddenConfig:"project.json",hiddenFolder:".shopify"},Ae={production:".env"},Le={reactTypes:"17.0.30"},L={extensions:{directoryName:"extensions",defaultRegistrationLimit:1},web:{directoryName:"web",configurationName:O.web}},Ce={graphiql:3457,localhost:3458},Ie=/^([a-zA-Z_$])([a-zA-Z0-9_$])*$/;r();var C=50,I=250,V=e.object({namespace:e.string(),key:e.string()}),$=e.object({sms_marketing:e.boolean().optional(),customer_privacy:e.boolean().optional()}),z=e.object({sources:e.array(e.string()).optional()}),B=e.object({network_access:e.boolean().optional(),block_progress:e.boolean().optional(),api_access:e.boolean().optional(),collect_buyer_consent:$.optional(),iframe:z.optional(),bundle_size_exception:e.boolean().optional()}),q=e.object({runs_offline:e.boolean().optional()}),Ue=e.object({type:e.string().optional(),extensions:e.array(e.any()).optional()}),Y=e.object({event:e.string(),blocking:e.boolean().default(!1),applies_to:e.array(e.string()).optional()}),G=e.object({allow_direct_linking:e.boolean().optional(),intercepts:e.array(Y).optional()}),Z=e.object({module:e.string()}),X=e.object({target:e.string(),module:e.string(),should_render:Z.optional(),tools:e.string().optional(),instructions:e.string().optional(),intents:e.array(e.object({type:e.string(),action:e.string(),schema:e.string(),name:e.string().optional(),description:e.string().optional()})).optional(),metafields:e.array(V).optional(),default_placement:e.string().optional(),urls:e.object({edit:e.string().optional()}).optional(),capabilities:G.optional(),preloads:e.object({chat:e.string().optional()}).optional(),assets:e.string().optional()}),Te=e.array(X),R=e.string(),J=e.object({key:e.string().optional(),name:e.string().optional(),description:e.string().optional(),required:e.boolean().optional(),default_value:e.any().optional(),type:e.string(),validations:e.array(e.any()).optional(),marketingActivityCreateUrl:e.string().optional(),marketingActivityDeleteUrl:e.string().optional()}),j=e.object({fields:e.array(J).optional()}),w=e.string().trim().nonempty("Handle can't be empty").max(C,`Handle can't exceed ${C} characters`).regex(/^[a-zA-Z0-9-]*$/,"Handle can only contain alphanumeric characters and hyphens").refine(t=>!t.startsWith("-")&&!t.endsWith("-"),"Handle can't start or end with a hyphen"),K=e.string().trim().nonempty("UID can't be empty").max(I,`UID can't exceed ${I} characters`).regex(/^[a-zA-Z0-9-${}.()_`]*$/,"UID can only contain alphanumeric characters and hyphens").refine(t=>!t.startsWith("-")&&!t.endsWith("-"),"UID can't start or end with a hyphen"),d=e.object({name:e.string().optional(),type:e.string().optional(),handle:w.optional(),uid:K.optional(),description:e.string().optional(),api_version:R.optional(),extension_points:e.any().optional(),capabilities:B.optional(),supported_features:q.optional(),settings:j.optional()}),Ee=d.extend({handle:w}),U=d.omit({handle:!0}),Pe=e.object({api_version:R.optional(),description:e.string().optional(),extensions:e.array(e.any()),settings:j.optional()});r();r();import{isUtf8 as Q}from"node:buffer";import T from"fs";async function E(t,n){let o=await b(g(t,"locales/*.json"));if(!o||o.length===0)return{};let a=ee(o);if(a.length===0)throw new l(`Missing default language in ${n} configuration`,"Make sure to have a {locale}.default.json file in your locales directory");if(a.length>1)throw new l(`Error loading ${n}`,'There must be one (and only one) locale identified as the default locale: e.g. "en.default.json"');for(let i of o)if(T.statSync(i).size===0)throw new l(`Error loading ${n}`,`Locale file ${i} can't be empty`);return{default_locale:a[0],translations:te(o,n)}}function ee(t){return t.filter(o=>u(o).endsWith(".default.json")).map(o=>u(o).split(".")[0])}function te(t,n){let o={};for(let a of t){let i=oe(u(a).split(".")[0],"Locale code is unset"),s=T.readFileSync(a);if(!Q(s))throw new l(`Error loading ${n}`,`Locale file ${a} contains invalid UTF-8 byte sequences. Re-save the file using UTF-8 encoding.`);o[i]=s.toString("base64")}return o}function oe(t,n){if(t===void 0)throw new x(n);return t}function ne(t){return t.experience==="configuration"}var P;(function(t){t.ShouldRender="should_render",t.Main="main",t.Tools="tools",t.Instructions="instructions",t.Intents="intents"})(P||(P={}));function D(t){let o={...{externalIdentifier:`${t.identifier}_external`,additionalIdentifiers:[],externalName:h(t.identifier.replace(/_/g," ")),surface:"test-surface",partnersWebIdentifier:t.identifier,schema:d,registrationLimit:L.extensions.defaultRegistrationLimit,transform:t.transformLocalToRemote,reverseTransform:t.transformRemoteToLocal,experience:t.experience??"extension",uidStrategy:t.uidStrategy??(t.experience==="configuration"?"single":"uuid"),getDevSessionUpdateMessages:t.getDevSessionUpdateMessages,clientSteps:t.clientSteps},...t};return{...o,contributeToAppConfigurationSchema:a=>{let i=ne(o),s=o.schema._def.shape!==void 0,c=o.uidStrategy==="single";return i&&s&&c?a.merge(o.schema):a},parseConfigurationObject:a=>{let i=o.schema.safeParse(a);return i.success?{state:"ok",data:i.data,errors:void 0}:{state:"error",data:void 0,errors:i.error.errors}}}}function N(t){let n=t.appModuleFeatures??(()=>[]);return D({identifier:t.identifier,schema:t.schema,appModuleFeatures:n,transformLocalToRemote:ae(t.transformConfig),transformRemoteToLocal:ie(t.schema,t.transformConfig),experience:"configuration",uidStrategy:t.uidStrategy??"single",clientSteps:t.clientSteps,getDevSessionUpdateMessages:t.getDevSessionUpdateMessages,patchWithAppDevURLs:t.patchWithAppDevURLs})}function Ze(t){return D({identifier:t.identifier,schema:e.any({}),appModuleFeatures:t.appModuleFeatures,experience:t.experience,clientSteps:t.clientSteps,uidStrategy:t.uidStrategy,transformRemoteToLocal:t.transformRemoteToLocal,devSessionWatchConfig:t.devSessionWatchConfig,deployConfig:async(n,o)=>{let a=re(n);if(t.appModuleFeatures().includes("localization")){let i=await E(o,t.identifier);a={...a,localization:i}}return a}})}function ae(t){return Object.keys(t).includes("forward")?t.forward:n=>F(n,t)}function ie(t,n){return n?Object.keys(n).includes("reverse")?n.reverse:o=>F(o,n,!0):o=>k(t,o)}function F(t,n,o=!1){let a={};for(let[i,s]of Object.entries(n)){let c=o?i:s,f=o?s:i,m=y(t,c);m!==void 0&&S(a,f,m)}return a}function k(t,n){return Object.keys(t._def.shape()).reduce((o,a)=>{let i=t._def.shape()[a];return i instanceof e.ZodOptional&&(i=i._def.innerType),i instanceof e.ZodObject?o[a]=k(i,n):(n[a]!==void 0&&(o[a]=n[a]),delete n[a]),o},{})}function re(t){let{type:n,handle:o,uid:a,path:i,extensions:s,...c}=t;return c}r();var se=/^(https:\/\/)/,ce=/^pubsub:\/\/(?<gcp_project_id>[^:]+):(?<gcp_topic>.+)$/,le=/^arn:aws:events:(?<aws_region>[a-z]{2}-[a-z]+-[0-9]+)::event-source\/aws\.partner\/shopify\.com(\.test)?\/(?<api_client_id>\d+)\/(?<event_source_name>.+)$/,pe=/^kafka:\/\/(?<kafka_topic>[a-zA-Z0-9_.-]+)$/;function M(t){return typeof t=="string"&&t.endsWith("/")?t.replace(/\/+$/,""):t}var W=e.string({invalid_type_error:"Value must be string"}).refine(t=>t.startsWith("/")?!0:se.test(t)||ce.test(t)||le.test(t)||pe.test(t),{message:"URI format isn't correct. Valid formats include: relative path starting with a slash, HTTPS URL, pubsub://{project-id}:{topic-id}, kafka://{topic-id} or Eventbridge ARN"});r();var p;(function(t){t.CustomersRedact="customers/redact",t.CustomersDataRequest="customers/data_request",t.ShopRedact="shop/redact"})(p||(p={}));var nt=e.object({topics:e.array(e.string({invalid_type_error:"Values within array must be a string"}),{invalid_type_error:"Value must be string[]"}).optional(),actions:e.array(e.string({invalid_type_error:"Value must be a string"})).optional(),uri:e.preprocess(t=>M(t),W,{required_error:"Missing value at"}),include_fields:e.array(e.string({invalid_type_error:"Value must be a string"})).optional(),filter:e.string({invalid_type_error:"Value must be a string"}).optional(),payload_query:e.string({invalid_type_error:"Value must be a string"}).trim().min(1).optional(),name:e.string({invalid_type_error:"Value must be a string"}).trim().min(1).max(50).optional(),compliance_topics:e.array(e.enum([p.CustomersRedact,p.CustomersDataRequest,p.ShopRedact]),{invalid_type_error:"Value must be an array containing values: customers/redact, customers/data_request or shop/redact"}).optional()});r();var ue=e.object({scopes:e.string().transform(t=>_(t)??"").optional(),required_scopes:e.array(e.string()).optional(),optional_scopes:e.array(e.string()).optional(),use_legacy_install_flow:e.boolean().optional()}),de=e.object({redirect_urls:e.array(v(e.string()))}),fe=U.extend({access:e.object({admin:e.object({direct_api_mode:e.union([e.literal("online"),e.literal("offline")]).optional(),embedded_app_direct_api_access:e.boolean().optional()}).optional()}).optional(),access_scopes:ue.optional(),auth:de}),me="app_access",ge={access:"access",scopes:"access_scopes.scopes",required_scopes:"access_scopes.required_scopes",optional_scopes:"access_scopes.optional_scopes",use_legacy_install_flow:"access_scopes.use_legacy_install_flow",redirect_url_allowlist:"auth.redirect_urls"},he=N({identifier:me,schema:fe,transformConfig:ge,getDevSessionUpdateMessages:async t=>{let n=t.access_scopes!==void 0,o=t.access_scopes?.use_legacy_install_flow===!0,a=t.access_scopes?.scopes==null&&t.access_scopes?.required_scopes==null;if(o||n&&a)return["Using legacy install flow - access scopes are not auto-granted"];let i=t.access_scopes?.scopes?t.access_scopes.scopes.split(",").map(s=>s.trim()).join(", "):t.access_scopes?.required_scopes?.join(", ");return i?[`Access scopes auto-granted: ${i}`]:["App has been installed"]},patchWithAppDevURLs:(t,n)=>{n.redirectUrlWhitelist&&(t.auth={redirect_urls:n.redirectUrlWhitelist})}}),ut=he;export{ve as a,O as b,Ae as c,Le as d,L as e,Ce as f,Ie as g,v as h,_e as i,be as j,H as k,ye as l,C as m,I as n,V as o,Ue as p,Te as q,J as r,d as s,Ee as t,U as u,Pe as v,E as w,ne as x,P as y,D as z,N as A,Ze as B,M as C,W as D,p as E,nt as F,ue as G,de as H,me as I,ut as J};
@@ -1,6 +0,0 @@
1
- import{a as f,b as R,c as _,d as N,e as O,f as F,g as j,h as x,i as E,j as L}from"./chunk-MBRFIXCU.js";import{a as $}from"./chunk-GINXNPAR.js";import{b as C,c as I}from"./chunk-K2DP5Z76.js";import{b as A}from"./chunk-4DLRS7MT.js";import{A as v,B as P,D as b,V as D,z as w}from"./chunk-6C5AVMKR.js";import{h as k}from"./chunk-OAG72Q2O.js";import{a as z}from"./chunk-CTNBSUVU.js";import{wb as S}from"./chunk-43FRAUV6.js";import{d as a,f as c,g as y}from"./chunk-773TIA5M.js";import{e as q,g as i}from"./chunk-VKWPEFWQ.js";i();i();i();import{randomBytes as U}from"node:crypto";import{lstat as p,mkdir as Q,realpath as T,rename as X,unlink as Z,writeFile as tt}from"node:fs/promises";function et(t){let e=a(t,".shopify","app-doctor");return{artifactDirectory:e,reviewPath:a(e,"review.json"),tracePath:a(e,"trace.json")}}async function B(t){let e=et(t.appRoot);return await nt(t.appRoot,e.artifactDirectory),await W(e.tracePath,`${JSON.stringify(t.trace,null,2)}
2
- `),t.operation!=="scan"?{artifactDirectory:e.artifactDirectory,tracePath:e.tracePath}:(await W(e.reviewPath,`${JSON.stringify(t.reviewPack,null,2)}
3
- `),e)}async function nt(t,e){let n=c(t),o=c(e);J(n,o);let r=await p(n);(r.isSymbolicLink()||!r.isDirectory())&&d(o);let s=n;for(let K of[".shopify","app-doctor"])s=a(s,K),await ot(s);let u=await T(n),V=await T(o);J(u,V)}async function ot(t){try{let n=await p(t);(n.isSymbolicLink()||!n.isDirectory())&&d(t);return}catch(n){if(n.code!=="ENOENT")throw n}await Q(t,{mode:448});let e=await p(t);(e.isSymbolicLink()||!e.isDirectory())&&d(t)}function J(t,e){let n=y(t,e);(!n||n.startsWith("..")||n.startsWith("/"))&&d(e)}function d(t){throw new k(`Refusing to write App Doctor artifacts through a symbolic link or outside the app: ${t}`,"Remove or replace the unsafe App Doctor artifact path, then run the command again.")}async function W(t,e){await h(t);let n=`${t}.${U(8).toString("hex")}.tmp`;await h(n);try{await tt(n,e,{encoding:"utf8",mode:384}),await h(t),await X(n,t)}catch(o){throw await Z(n).catch(()=>{}),o}}async function h(t){try{(await p(t)).isSymbolicLink()&&d(t)}catch(e){if(e.code==="ENOENT")return;throw e}}i();function H(t){return t.operation==="scan"?{operation:"scan",engine:t.engine,scan:t.scan,trace:t.trace,reviewPack:t.reviewPack}:{operation:"compile",engine:t.engine,scan:t.scan,trace:t.trace,findings:t.findings}}function Y(t){return`${JSON.stringify(t,null,2)}
4
- `}i();var rt={high:"High",medium:"Medium",low:"Low"};function it(t){return{type:st(t),options:{headline:at(t),body:ct(t),...t.findings?{}:{nextSteps:ft(t.commands)},reference:[{subdued:`Engine: ${t.engine.name} ${t.engine.version}`},{subdued:`Ruleset: ${t.engine.ruleset}`}],customSections:dt(t)}}}function G(t){let{type:e,options:n}=it(t);if(e==="success"){w(n);return}if(e==="warning"){v(n);return}P(n)}function M(t){return t.scan.score===null||!t.scan.scan.coverage_complete||t.scan.scan.coverage_gaps.length>0}function st(t){return t.findings&&t.findings.rejected.length>0||t.scan.issues.some(e=>e.severity==="high")?"error":t.scan.issues.length>0||M(t)?"warning":"success"}function at(t){if(t.findings&&t.findings.rejected.length>0)return"App Doctor could not compile some agent findings.";let e=t.scan.issues.length;return e>0?`${e} security ${e===1?"issue":"issues"} found.`:M(t)?"Scan completed with coverage gaps.":"No security issues found."}function ct(t){let e=t.scan,n=[{userInput:f(e.app.name)},{char:"."},`${e.scan.files_scanned} files scanned in ${ht(t.elapsedMilliseconds)}.`],o=e.scan.checks_executed.filter(r=>r.status==="not_applicable").length;return o>0&&n.push({info:`
5
- ${o} check${o===1?"":"s"} not applicable.`}),t.reviewCheckCount!==void 0&&n.push({info:`
6
- ${t.reviewCheckCount} check${t.reviewCheckCount===1?"":"s"} ready for your coding agent.`}),n}function ft(t){return[["Investigate the review pack, then compile the trace with",{command:E(t.compile)}]]}function dt(t){let e=[];for(let n of ut(t.scan.issues))e.push({title:rt[n.severity],body:{list:{items:n.issues.map(o=>lt(o,t.verbose))}}});if(t.scan.scan.coverage_gaps.length>0){let n=t.scan.scan.coverage_gaps,o=n.slice(0,8).map(r=>f(r.message));n.length>8&&o.push({info:`${n.length-8} more coverage gaps`}),e.push({title:"Coverage gaps",body:{list:{items:o}}})}if(t.findings){let n=[t.findings.accepted===0&&t.findings.rejected.length>0?"No agent findings were merged.":`Merged ${t.findings.accepted} agent finding(s) into the trace.`,...t.findings.rejected.map(o=>({error:`Rejected: ${f(o)}`})),...(t.findings.warnings??[]).map(o=>({warn:f(o)})),["Trace written to",{filePath:t.tracePath}]];e.push({title:"Agent findings",body:{list:{items:n}}})}else t.reviewPath&&e.push({title:"Artifacts",body:{list:{items:[["Review pack:",{filePath:t.reviewPath}],["Trace:",{filePath:t.tracePath}]]}}});return t.verbose&&e.push({title:"Scan details",body:{tabularData:[["Framework",t.scan.detection.framework],["Surface",t.scan.detection.surface],["Languages",t.scan.detection.languages.map(n=>`${n.name} (${n.support})`).join(", ")||"none"],["Capabilities",pt(t.scan.capabilities)],["Rules run",String(t.scan.scan.rules_run)],["Not run",String(t.scan.scan.rules_skipped)],["Input hash",t.scan.scan.input_hash],["Result hash",t.scan.scan.result_hash]],firstColumnSubdued:!0}}),e}function lt(t,e){let n=R(t),o=n.location.line?`${n.location.file}:${n.location.line}`:n.location.file,r=[{bold:n.title},{subdued:n.id},{filePath:o}];return e&&(r.push({subdued:n.message},{subdued:`Fix: ${n.fix.description}`}),n.fix.guide&&(n.fix.guide.startsWith("https://")||n.fix.guide.startsWith("http://")?r.push({link:{label:"Docs",url:n.fix.guide}}):r.push({subdued:`Docs: ${n.fix.guide}`})),n.snippet&&r.push({subdued:`Code: ${n.snippet}`})),r}function ut(t){let e=[];for(let n of _(t)){let o=e[e.length-1];o?.severity===n.severity?o.issues.push(n):e.push({severity:n.severity,issues:[n]})}return e}function pt(t){let e=Object.entries(t).filter(([,n])=>n).map(([n])=>n);return e.length>0?e.join(", "):"none detected"}function ht(t){return t<1e3?`${Math.round(t)}ms`:`${(t/1e3).toFixed(1)}s`}var mt={message:"How would you like to hand the results to your coding agent?",choices:[{label:"Copy instructions to the clipboard",value:"copy"},{label:"Print instructions to the terminal",value:"print"},{label:"Nothing",value:"nothing"}],defaultValue:"copy"},gt={execute:async({directory:t,findingsPath:e})=>{let n=F(t),o=e?await O(e):void 0;return j({appRoot:n,findings:o})},writeArtifacts:B,canPrompt:D,selectInstructionsDestination:()=>b(mt),deliverInstructions:L,output:S,renderReport:G,setExitCode:t=>{process.exitCode=t}};async function yt(t,e){return t.json||t.skipInstructions||t.findingsPath?"nothing":t.yes?"print":e.canPrompt()?e.selectInstructionsDestination():"nothing"}function wt(t,e,n,o){return{scan:t.scan,engine:t.engine,verbose:n,elapsedMilliseconds:t.elapsedMilliseconds,commands:o,tracePath:e.tracePath,reviewPath:e.reviewPath,reviewCheckCount:t.operation==="scan"?t.reviewPack.checks.length:void 0,findings:t.operation==="compile"?t.findings:void 0}}async function m(t,e=gt){let n=await e.execute({directory:t.directory,findingsPath:t.findingsPath}),o=await e.writeArtifacts(n),r=x(n.appRoot);t.json?e.output(Y(H(n))):e.renderReport(wt(n,o,t.verbose,r));let s=await yt(t,e);s!=="nothing"&&await e.deliverInstructions({directory:t.directory,copy:s==="copy",scanComplete:!0,commands:r});let u=N(n,t.blocking);u!==0&&e.setExitCode(u)}var l=q(z(),1);var vt=["high","medium","low","none"],g=class t extends A{static hidden=!0;static summary="Check an app for Shopify-specific security issues.";static descriptionWithMarkdown="Runs Shopify App Doctor locally and creates its review pack and trace.\n\nPass `--findings` after completing the review pack to validate agent findings and compile them into the trace. In 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. JSON output never prompts or prints those instructions. You can also run `shopify app doctor instructions` to print, copy, or write them later.\n\nCVE detection runs `npm audit` (or the pnpm/yarn equivalent) in an isolated sandbox and sends package names and versions to the public npm registry at https://registry.npmjs.org/.";static description=this.descriptionWithoutMarkdown();static flags={...C,path:$.path,...I,findings:l.Flags.string({description:"Validate agent findings from a JSON file and compile them into the trace.",parse:async e=>c(e),env:"SHOPIFY_FLAG_APP_DOCTOR_FINDINGS"}),blocking:l.Flags.string({description:"The minimum finding severity that causes a non-zero exit code.",options:vt,default:"none",env:"SHOPIFY_FLAG_APP_DOCTOR_BLOCKING"}),yes:l.Flags.boolean({description:"Print coding-agent instructions without prompting.",default:!1,exclusive:["skip-instructions"],env:"SHOPIFY_FLAG_YES"}),"skip-instructions":l.Flags.boolean({description:"Don't offer to show coding-agent instructions.",default:!1,exclusive:["yes"],env:"SHOPIFY_FLAG_APP_DOCTOR_SKIP_INSTRUCTIONS"})};async run(){let{flags:e}=await this.parse(t);await m({directory:e.path,json:e.json,verbose:!!e.verbose,blocking:e.blocking,yes:e.yes,skipInstructions:e["skip-instructions"],findingsPath:e.findings})}};export{g as a};
@@ -1,18 +0,0 @@
1
- import{c as ee,e as ne,f as te,g as oe}from"./chunk-EQ2PD2ZA.js";import{a as J,c as Z,d as Q,e as X}from"./chunk-V4774HTF.js";import{b as I}from"./chunk-LAMTFOVF.js";import{a as q}from"./chunk-VJ5YOXKL.js";import{a as j}from"./chunk-GINXNPAR.js";import{D as G,G as K,Z as W,g as Y,wa as H}from"./chunk-CVW2HMQO.js";import{a as z}from"./chunk-H7TDIRIU.js";import{b as V}from"./chunk-K2DP5Z76.js";import{E as U,H as B,M as $,x as O,y as F,z as M}from"./chunk-6C5AVMKR.js";import{d as L}from"./chunk-XRJCD3AO.js";import{h,j as N}from"./chunk-OAG72Q2O.js";import{a as ce}from"./chunk-CTNBSUVU.js";import{Ca as R,Cb as C,L as D,rb as S,wa as E,xb as A}from"./chunk-43FRAUV6.js";import{d as x,i as T}from"./chunk-773TIA5M.js";import{e as pe,g}from"./chunk-VKWPEFWQ.js";g();g();g();async function ie(e){let n,t;e.bundlePath&&(n=await X(e.developerPlatformClient,{id:e.apiKey,apiKey:e.apiKey,organizationId:e.organizationId}),await Q(n,e.bundlePath));let o={appManifest:e.appManifest,appId:e.appId,apiKey:e.apiKey,name:e.name,organizationId:e.organizationId,skipPublish:!e.release,message:e.message,versionTag:e.version,commitReference:e.commitReference};n&&(o.bundleUrl=n),e.appModules.length>0&&(o.appModules=e.appModules);let a=await e.developerPlatformClient.deploy(o);if(!a.appDeploy.appVersion){let i=ue(a.appDeploy.userErrors??[],e.appModuleRegistrationIds,e.appModules,{version:e.version});throw new h({bold:"Version couldn't be created."},null,[],i)}return a.appDeploy.userErrors?.length>0&&(t=a.appDeploy.userErrors.map(i=>i.message).join(", ")),{validationErrors:a.appDeploy.appVersion.appModuleVersions.filter(i=>i.validationErrors.length>0).map(i=>({uuid:i.registrationUuid,errors:i.validationErrors})),versionTag:a.appDeploy.appVersion.versionTag,location:a.appDeploy.appVersion.location,message:a.appDeploy.appVersion.message,deployError:t}}var v=`
2
- Validation errors`,k=`
3
- `;function ue(e,n,t,o={}){let a=l=>l.details?.some(y=>y.extension_id)??!1,s=(l,y)=>{let b=l.details?.find(_=>typeof _.extension_id<"u")?.extension_id??"";return Object.values(y).includes(b.toString())},i=l=>{let y=l.on?l.on[0]:void 0;return t.some(b=>b.uid===y?.user_identifier)},[d,u]=I(e,l=>i(l)),[p,c]=I(u,l=>a(l)),[f,r]=I(p,l=>s(l,n));return[...me(c,{version:o.version}),...fe(f,n),...he(r),...ge(d,t)]}function me(e,n={}){return e.length>0?e.filter(t=>t.field&&t.field.includes("version_tag")&&t.message==="has already been taken").length>0&&n.version?[{body:["An app version with the name",{userInput:n.version},"already exists. Deploy again with a different version name."]}]:e.length===1?[{body:e[0]?.message??""}]:[{body:{list:{items:e.map(t=>t.message)}}}]:[]}function fe(e,n){return e.reduce((t,o)=>{let a=(o.field??["unknown"]).join(".").replace("extension_points","extensions.targeting"),s=a==="base"?o.message:`${a}: ${o.message}`,i=o.details.find(r=>typeof r.extension_title<"u")?.extension_title,d=o.details.find(r=>typeof r.specification_identifier<"u")?.specification_identifier,u=o.details.find(r=>typeof r.extension_id<"u")?.extension_id?.toString(),c=Object.keys(n).find(r=>n[r]===u)??i;d==="webhook_subscription"&&(c="Webhook Subscription");let f=t.find(r=>r.title===c);if(f){let r=f.body,m=o.category==="invalid"?r.find(l=>l.list.title===v):r.find(l=>l.list.title===k);m?m.list.items.includes(s)||m.list.items.push(s):r.push({list:{title:o.category==="invalid"?v:k,items:[s]}})}else t.push({title:c,body:[{list:{title:o.category==="invalid"?v:k,items:[s]}}]});return t.forEach(r=>{r.body.sort((m,l)=>m.list.title===v?1:l.list.title===v?-1:0)}),t},[])}function ge(e,n){return e.reduce((t,o)=>{let s=(o.on?o.on[0]:void 0)?.user_identifier,i=n.find(r=>r.uid===s),d=s?`Extension with uid: ${s}`:"Unknown Extension",u=i?.handle??d,c=`${(o.field??["unknown"]).join(".")}: ${o.message}`,f=t.find(r=>r.title===u);if(f){let m=f.body.find(l=>l.list.title===v);m&&(m.list.items.includes(c)||m.list.items.push(c))}else t.push({title:u,body:[{list:{title:v,items:[c]}}]});return t},[])}function he(e){return e.reduce((n,t)=>{let o=t.details.find(s=>typeof s.extension_title<"u")?.extension_title,a=n.find(s=>s.title===o);return a?a.errorCount+=1:n.push({title:o,errorCount:1}),n},[]).map(n=>({title:n.title,body:`
4
- ${n.errorCount} error${n.errorCount>1?"s":""} found in your extensions. Fix these issues and try deploying again.`}))}g();async function ae(e){let n=x(e.app.directory,".shopify","deploy-bundle");await R(n,{force:!0}),await E(n),await J(e.appManifest,n),e.skipBuild||await Y(e.app);let t=e.app.allExtensions.map(a=>({prefix:a.localIdentifier,action:async(s,i,d)=>{await a.buildForBundle({stderr:i,stdout:s,signal:d,app:e.app,environment:"production",skipBuild:e.skipBuild},n)}}));if(await O({processes:t,showTimestamps:!1}),e.app.allExtensions.some(a=>a.hasDeploySteps))return await Z(n,e.bundlePath),e.bundlePath}async function ye(e){let{app:n,remoteApp:t,developerPlatformClient:o,noRelease:a,allowUpdates:s,allowDeletes:i,extensions:d}=e,u=[a,s,i].some(Boolean),p=[`App can't be deployed until Partner Dashboard managed extensions are added to your version or removed from your app:
5
- `,d.map(m=>` - ${m.title}`).join(`
6
- `)],c=[`
7
-
8
- Run `,{command:"shopify app import-extensions"}," to add legacy extensions."];if(u||!$())throw new h(p,c);let f=[`
9
-
10
- Run `,{command:"shopify app import-extensions"}," to add legacy extensions now?"];if(await U({message:[...p,...f],confirmationMessage:"Yes, add legacy extensions and deploy",cancellationMessage:"No, don't add legacy extensions"}))return await te({app:n,remoteApp:t,developerPlatformClient:o,extensions:d}),G(n);throw new N}async function we(e){let{app:n,remoteApp:t,developerPlatformClient:o}=e,a=await oe({developerPlatformClient:o,apiKey:t.apiKey,organizationId:t.organizationId,extensionTypes:ee,onlyDashboardManaged:!0}),s=ne(e.app,a);return s.length===0?n:ye({...e,extensions:s})}async function se(e){let{remoteApp:n,developerPlatformClient:t,noRelease:o,allowUpdates:a,allowDeletes:s}=e,i=await we({app:e.app,remoteApp:n,developerPlatformClient:t,noRelease:o,allowUpdates:a,allowDeletes:s}),{deployIdentifiers:d,didMigrateExtensionsToDevDash:u}=await W({...e,app:i,developerPlatformClient:t,allowUpdates:a,allowDeletes:s}),p=!o,c=n.apiKey;C(),p?A(`Releasing a new app version as part of ${n.title}`):A(`Creating a new app version as part of ${n.title}`),C();let f,r=x(e.app.directory,".shopify",`deploy-bundle.${t.bundleFormat}`);await E(T(r));let m=await i.manifest(be(i,d.appModuleUuids)),l=await ae({app:i,appManifest:m,bundlePath:r,skipBuild:e.skipBuild}),y;return p?y="Releasing an app version":y="Creating an app version",await B([{title:"Running validation",task:async()=>{await i.preDeployValidation()}},{title:y,task:async()=>{let _=await Promise.all(i.allExtensions.flatMap(de=>de.bundleConfig({appModuleUuids:d.appModuleUuids,developerPlatformClient:t,apiKey:c,appConfiguration:i.configuration})));f=await ie({appManifest:m,appId:n.id,apiKey:c,name:i.name,organizationId:n.organizationId,bundlePath:l,appModules:D(_),release:p,developerPlatformClient:t,appModuleRegistrationIds:d.appModuleRegistrationIds,message:e.message,version:e.version,commitReference:e.commitReference})}}]),await ve({app:i,project:e.project,release:p,uploadExtensionsBundleResult:f,didMigrateExtensionsToDevDash:u}),{app:i}}async function ve({app:e,project:n,release:t,uploadExtensionsBundleResult:o,didMigrateExtensionsToDevDash:a}){let s=[{link:{label:o.versionTag??"version",url:o.location}},o.message?`
11
- ${o.message}`:""],i=[];if(a){let d=await K(e.directory),u=Object.values(d).filter(c=>c!==d[e.configuration.client_id]),p=[];u.length>0&&p.push("\u2022 Map extension IDs to other copies of your app by running",{command:S(n.packageManager,"shopify app deploy")},"for: ",{list:{items:u}}),p.push("\u2022 Commit to source control to ensure your extension IDs aren't regenerated on the next deploy."),i=[{title:"Next steps",body:p},{title:"Reference",body:["\u2022 ",{link:{label:"Migrating from the Partner Dashboard",url:"https://shopify.dev/docs/apps/build/dev-dashboard/migrate-from-partners"}}]}]}return t?o.deployError?F({headline:"New version created, but not released.",body:[...s,`
12
-
13
- ${o.deployError}`],customSections:i}):M({headline:"New version released to users.",body:s,customSections:i}):M({headline:"New version created.",body:s,customSections:i,nextSteps:[["Run",{command:S(n.packageManager,"shopify app release",`--version=${o.versionTag}`)},"to release this version to users."]]})}function be(e,n){return Object.fromEntries(e.allExtensions.filter(t=>t.isUUIDStrategyExtension).map(t=>[t.localIdentifier,n[t.localIdentifier]]))}g();function re(e){if(typeof e>"u")return;let n=["Invalid version name:",{userInput:e}],t=100;if(e.length>t)throw new h(n,`Version name must be ${t} characters or less.`);let o=[".",".."];if(o.find(s=>e===s))throw new h(n,`Version name may not be any of: ${o.map(s=>`'${s}'`).join(" , ")}`);let a=/^[a-zA-Z0-9.\-_]+$/;if(!e.match(a))throw new h(n,["Version name can only contain alphanumeric characters, periods, hyphens, and underscores"])}g();function le(e){if(typeof e>"u")return;let n=["Invalid message:",{userInput:e}],t=200;if(e.length>t)throw new h(n,`Message name must be ${t} characters or less.`)}var w=pe(ce(),1);var P=class e extends q{static summary="Deploy your Shopify app.";static descriptionWithMarkdown=`[Builds the app](https://shopify.dev/docs/api/shopify-cli/app/app-build), then deploys your app configuration and extensions.
14
-
15
- This command creates an app version, which is a snapshot of your app configuration and all extensions. This version is then released to users.
16
-
17
- This command doesn't deploy your [web app](https://shopify.dev/docs/apps/tools/cli/structure#web-components). You need to [deploy your web app](https://shopify.dev/docs/apps/deployment/web) to your own hosting solution.
18
- `;static description=this.descriptionWithoutMarkdown();static flags={...V,...j,"allow-updates":w.Flags.boolean({hidden:!1,description:"Allows adding and updating extensions and configuration without requiring user confirmation. Recommended option for CI/CD environments. In non-interactive environments, provide this flag, --allow-deletes, or --no-release.",env:"SHOPIFY_FLAG_ALLOW_UPDATES"}),"allow-deletes":w.Flags.boolean({hidden:!1,description:"Allows removing extensions and configuration without requiring user confirmation. For CI/CD environments, the recommended flag is --allow-updates. In non-interactive environments, provide this flag, --allow-updates, or --no-release.",env:"SHOPIFY_FLAG_ALLOW_DELETES"}),"no-release":w.Flags.boolean({hidden:!1,description:"Creates a version but doesn't release it - it's not made available to merchants. With this flag, a user confirmation is not required. In non-interactive environments, provide this flag, --allow-updates, or --allow-deletes.",env:"SHOPIFY_FLAG_NO_RELEASE",default:!1,exclusive:["allow-updates","allow-deletes"]}),"no-build":w.Flags.boolean({description:"Use with caution: Skips building any elements of the app that require building. You should ensure your app has been prepared in advance, such as by running `shopify app build` or by caching build artifacts.",env:"SHOPIFY_FLAG_NO_BUILD",default:!1}),message:w.Flags.string({hidden:!1,description:"Optional message that will be associated with this version. This is for internal use only and won't be available externally.",env:"SHOPIFY_FLAG_MESSAGE"}),version:w.Flags.string({hidden:!1,description:"Optional version tag that will be associated with this app version. If not provided, an auto-generated identifier will be generated for this app version.",env:"SHOPIFY_FLAG_VERSION"}),"source-control-url":w.Flags.string({hidden:!1,description:"URL associated with the new app version.",env:"SHOPIFY_FLAG_SOURCE_CONTROL_URL"})};static nonTTYFlagRequirements(){return[{flags:["allow-updates","allow-deletes","no-release"]}]}async run(){let{flags:n}=await this.parse(e);await z.addPublicMetadata(()=>({cmd_deploy_flag_message_used:!!n.message,cmd_deploy_flag_version_used:!!n.version,cmd_deploy_flag_source_url_used:!!n["source-control-url"]})),re(n.version),le(n.message);let t=n["client-id"];await L(()=>({cmd_app_reset_used:n.reset}));let{app:o,project:a,remoteApp:s,developerPlatformClient:i,organization:d}=await H({directory:n.path,clientId:t,forceRelink:n.reset,userProvidedConfigName:n.config}),u=n["no-release"]||n["allow-updates"],p=n["no-release"]||n["allow-deletes"];return{app:(await se({app:o,project:a,remoteApp:s,organization:d,developerPlatformClient:i,reset:n.reset,allowUpdates:u,allowDeletes:p,noRelease:n["no-release"],message:n.message,version:n.version,commitReference:n["source-control-url"],skipBuild:n["no-build"]})).app}}};export{P as a};
@@ -1 +0,0 @@
1
- import{a}from"../../../../chunk-AQPOPSQ7.js";import"../../../../chunk-MBRFIXCU.js";import"../../../../chunk-GINXNPAR.js";import"../../../../chunk-YNFXYVYN.js";import"../../../../chunk-ZVA5F4QC.js";import"../../../../chunk-IWOTLFOY.js";import"../../../../chunk-FFSDGRAN.js";import"../../../../chunk-F3TMLDLC.js";import"../../../../chunk-4QBJ5JBX.js";import"../../../../chunk-K2DP5Z76.js";import"../../../../chunk-4DLRS7MT.js";import"../../../../chunk-LFOBYEWG.js";import"../../../../chunk-CNK3ZO2B.js";import"../../../../chunk-ZDF5N422.js";import"../../../../chunk-6QADNGH4.js";import"../../../../chunk-6C5AVMKR.js";import"../../../../chunk-7Y7AZRL3.js";import"../../../../chunk-7UNQOKZW.js";import"../../../../chunk-QZEDYQVT.js";import"../../../../chunk-5HBIIYSK.js";import"../../../../chunk-GB3YC4TI.js";import"../../../../chunk-XOYICV6P.js";import"../../../../chunk-MPW2YJWU.js";import"../../../../chunk-QKTBYAUD.js";import"../../../../chunk-RJ5VF3QY.js";import"../../../../chunk-XRJCD3AO.js";import"../../../../chunk-SPNM3GES.js";import"../../../../chunk-OAG72Q2O.js";import"../../../../chunk-T7KHS6RF.js";import"../../../../chunk-CTNBSUVU.js";import"../../../../chunk-636CTEW7.js";import"../../../../chunk-TR4OWSEX.js";import"../../../../chunk-2KD4LHRT.js";import"../../../../chunk-I5A6BPCP.js";import"../../../../chunk-CX5CC6P5.js";import"../../../../chunk-ET2CGROE.js";import"../../../../chunk-TOLPNBZK.js";import"../../../../chunk-ZCNNJCTQ.js";import"../../../../chunk-43FRAUV6.js";import"../../../../chunk-B4OMIONW.js";import"../../../../chunk-BOAGJ6P5.js";import"../../../../chunk-LD6ZCTZ3.js";import"../../../../chunk-JJZNUFPD.js";import"../../../../chunk-XYUTD6IU.js";import"../../../../chunk-DPNZWBT5.js";import"../../../../chunk-JD5P5RAJ.js";import"../../../../chunk-773TIA5M.js";import"../../../../chunk-CRALWNNO.js";import"../../../../chunk-VKWPEFWQ.js";export{a as default};
@@ -1 +0,0 @@
1
- import{a}from"../../../chunk-Z2HN5L6G.js";import"../../../chunk-MBRFIXCU.js";import"../../../chunk-GINXNPAR.js";import"../../../chunk-YNFXYVYN.js";import"../../../chunk-ZVA5F4QC.js";import"../../../chunk-IWOTLFOY.js";import"../../../chunk-FFSDGRAN.js";import"../../../chunk-F3TMLDLC.js";import"../../../chunk-4QBJ5JBX.js";import"../../../chunk-K2DP5Z76.js";import"../../../chunk-4DLRS7MT.js";import"../../../chunk-LFOBYEWG.js";import"../../../chunk-CNK3ZO2B.js";import"../../../chunk-ZDF5N422.js";import"../../../chunk-6QADNGH4.js";import"../../../chunk-6C5AVMKR.js";import"../../../chunk-7Y7AZRL3.js";import"../../../chunk-7UNQOKZW.js";import"../../../chunk-QZEDYQVT.js";import"../../../chunk-5HBIIYSK.js";import"../../../chunk-GB3YC4TI.js";import"../../../chunk-XOYICV6P.js";import"../../../chunk-MPW2YJWU.js";import"../../../chunk-QKTBYAUD.js";import"../../../chunk-RJ5VF3QY.js";import"../../../chunk-XRJCD3AO.js";import"../../../chunk-SPNM3GES.js";import"../../../chunk-OAG72Q2O.js";import"../../../chunk-T7KHS6RF.js";import"../../../chunk-CTNBSUVU.js";import"../../../chunk-636CTEW7.js";import"../../../chunk-TR4OWSEX.js";import"../../../chunk-2KD4LHRT.js";import"../../../chunk-I5A6BPCP.js";import"../../../chunk-CX5CC6P5.js";import"../../../chunk-ET2CGROE.js";import"../../../chunk-TOLPNBZK.js";import"../../../chunk-ZCNNJCTQ.js";import"../../../chunk-43FRAUV6.js";import"../../../chunk-B4OMIONW.js";import"../../../chunk-BOAGJ6P5.js";import"../../../chunk-LD6ZCTZ3.js";import"../../../chunk-JJZNUFPD.js";import"../../../chunk-XYUTD6IU.js";import"../../../chunk-DPNZWBT5.js";import"../../../chunk-JD5P5RAJ.js";import"../../../chunk-773TIA5M.js";import"../../../chunk-CRALWNNO.js";import"../../../chunk-VKWPEFWQ.js";export{a as default};
@@ -1,4 +0,0 @@
1
- export declare const autoUpgradeStatus: {
2
- readonly on: "Auto-upgrade on. Shopify CLI will update automatically after each command.";
3
- readonly off: "Auto-upgrade off. You'll need to run `shopify upgrade` to update manually.";
4
- };
@@ -1 +0,0 @@
1
- import{a}from"../../../../chunk-GCN4O7HM.js";import"../../../../chunk-VKWPEFWQ.js";export{a as autoUpgradeStatus};
@@ -1 +0,0 @@
1
- export declare function searchService(query?: string): Promise<void>;
@@ -1,7 +0,0 @@
1
- import { openURL } from '@shopify/cli-kit/node/system';
2
- export async function searchService(query) {
3
- const searchParams = new URLSearchParams();
4
- searchParams.append('search', query ?? '');
5
- await openURL(`https://shopify.dev?${searchParams.toString()}`);
6
- }
7
- //# sourceMappingURL=search.js.map
@@ -1 +0,0 @@
1
- export declare function versionService(): Promise<void>;
@@ -1,6 +0,0 @@
1
- import { CLI_KIT_VERSION } from '@shopify/cli-kit/common/version';
2
- import { outputResult } from '@shopify/cli-kit/node/output';
3
- export async function versionService() {
4
- outputResult(CLI_KIT_VERSION);
5
- }
6
- //# sourceMappingURL=version.js.map
@@ -1 +0,0 @@
1
- import{a as l}from"./chunk-CTNBSUVU.js";import"./chunk-TR4OWSEX.js";import"./chunk-2KD4LHRT.js";import"./chunk-I5A6BPCP.js";import"./chunk-CX5CC6P5.js";import"./chunk-ET2CGROE.js";import"./chunk-TOLPNBZK.js";import"./chunk-CRALWNNO.js";import{e as i,g as s}from"./chunk-VKWPEFWQ.js";s();var e=i(l(),1),u=class extends e.Config{lazyCommandLoader;setLazyCommandLoader(n){this.lazyCommandLoader=n}async runCommand(n,o=[],t=null){if(!this.lazyCommandLoader)return super.runCommand(n,o,t);let a=t??this.findCommand(n);if(!a)return super.runCommand(n,o,t);let r=await this.lazyCommandLoader(n);if(!r)return super.runCommand(n,o,t);r.id=n,r.plugin=a.plugin??this.rootPlugin,await this.runHook("prerun",{argv:o,Command:r});let m=await r.run(o,this);return await this.runHook("postrun",{argv:o,Command:r,result:m}),m}};export{u as ShopifyConfig};
@@ -1 +0,0 @@
1
- import{a as r}from"./chunk-ZDF5N422.js";import{A as a}from"./chunk-6C5AVMKR.js";import"./chunk-7Y7AZRL3.js";import"./chunk-7UNQOKZW.js";import"./chunk-QZEDYQVT.js";import"./chunk-5HBIIYSK.js";import"./chunk-GB3YC4TI.js";import"./chunk-RJ5VF3QY.js";import"./chunk-XRJCD3AO.js";import"./chunk-OAG72Q2O.js";import"./chunk-CTNBSUVU.js";import"./chunk-636CTEW7.js";import"./chunk-TR4OWSEX.js";import"./chunk-2KD4LHRT.js";import"./chunk-I5A6BPCP.js";import"./chunk-CX5CC6P5.js";import"./chunk-ET2CGROE.js";import"./chunk-TOLPNBZK.js";import"./chunk-ZCNNJCTQ.js";import"./chunk-43FRAUV6.js";import"./chunk-B4OMIONW.js";import"./chunk-BOAGJ6P5.js";import"./chunk-LD6ZCTZ3.js";import"./chunk-JJZNUFPD.js";import"./chunk-XYUTD6IU.js";import"./chunk-DPNZWBT5.js";import"./chunk-JD5P5RAJ.js";import"./chunk-773TIA5M.js";import"./chunk-CRALWNNO.js";import{g as n}from"./chunk-VKWPEFWQ.js";n();var f=t=>{let e=r();if(e){let o=t.id.includes("theme");s(e,o)}};function s(t,e){let i=`Upgrade to the latest CLI version by ${new Intl.DateTimeFormat("default",{year:"numeric",month:"long",day:"numeric"}).format(t)}.`;a({headline:i,body:"This command requires an upgrade to continue working as intended.",nextSteps:[["Run",{command:"upgrade"},"to",{link:{label:"upgrade Shopify CLI",url:e?"https://shopify.dev/docs/themes/tools/cli#upgrade-shopify-cli":"https://shopify.dev/docs/apps/tools/cli#upgrade-shopify-cli"}}]]})}export{f as postrun};
@@ -1 +0,0 @@
1
- import{a,b,c,d}from"./chunk-POMWFTBD.js";import"./chunk-4DLRS7MT.js";import"./chunk-LFOBYEWG.js";import"./chunk-CNK3ZO2B.js";import"./chunk-ZDF5N422.js";import"./chunk-6QADNGH4.js";import"./chunk-6C5AVMKR.js";import"./chunk-7Y7AZRL3.js";import"./chunk-7UNQOKZW.js";import"./chunk-QZEDYQVT.js";import"./chunk-5HBIIYSK.js";import"./chunk-GB3YC4TI.js";import"./chunk-XOYICV6P.js";import"./chunk-MPW2YJWU.js";import"./chunk-QKTBYAUD.js";import"./chunk-RJ5VF3QY.js";import"./chunk-XRJCD3AO.js";import"./chunk-SPNM3GES.js";import"./chunk-OAG72Q2O.js";import"./chunk-T7KHS6RF.js";import"./chunk-CTNBSUVU.js";import"./chunk-636CTEW7.js";import"./chunk-TR4OWSEX.js";import"./chunk-2KD4LHRT.js";import"./chunk-I5A6BPCP.js";import"./chunk-CX5CC6P5.js";import"./chunk-ET2CGROE.js";import"./chunk-TOLPNBZK.js";import"./chunk-ZCNNJCTQ.js";import"./chunk-43FRAUV6.js";import"./chunk-B4OMIONW.js";import"./chunk-BOAGJ6P5.js";import"./chunk-LD6ZCTZ3.js";import"./chunk-JJZNUFPD.js";import"./chunk-XYUTD6IU.js";import"./chunk-DPNZWBT5.js";import"./chunk-JD5P5RAJ.js";import"./chunk-773TIA5M.js";import"./chunk-CRALWNNO.js";import"./chunk-VKWPEFWQ.js";export{c as DidYouMeanCommands,d as DidYouMeanHook,a as findAlternativeCommand,b as shouldRunCommand};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-TAY7HU7X.js";import"./chunk-LQ7ENG4V.js";import"./chunk-HXVUDGLH.js";import"./chunk-FKIVKNOV.js";import"./chunk-JLGA3B7P.js";import"./chunk-2HYR6EUD.js";import"./chunk-XWXAFJFC.js";import"./chunk-5Z6EW3FA.js";import"./chunk-HYPY5WH6.js";import"./chunk-YLQ3LNNY.js";import"./chunk-VJEKDBGZ.js";import"./chunk-F3TMLDLC.js";import"./chunk-4DLRS7MT.js";import"./chunk-LFOBYEWG.js";import"./chunk-CNK3ZO2B.js";import"./chunk-ZDF5N422.js";import"./chunk-6QADNGH4.js";import"./chunk-6C5AVMKR.js";import"./chunk-7Y7AZRL3.js";import"./chunk-7UNQOKZW.js";import"./chunk-QZEDYQVT.js";import"./chunk-5HBIIYSK.js";import"./chunk-GB3YC4TI.js";import"./chunk-XOYICV6P.js";import"./chunk-MPW2YJWU.js";import"./chunk-QKTBYAUD.js";import"./chunk-RJ5VF3QY.js";import"./chunk-XRJCD3AO.js";import"./chunk-SPNM3GES.js";import"./chunk-OAG72Q2O.js";import"./chunk-T7KHS6RF.js";import"./chunk-CTNBSUVU.js";import"./chunk-636CTEW7.js";import"./chunk-TR4OWSEX.js";import"./chunk-2KD4LHRT.js";import"./chunk-I5A6BPCP.js";import"./chunk-CX5CC6P5.js";import"./chunk-ET2CGROE.js";import"./chunk-TOLPNBZK.js";import"./chunk-ZCNNJCTQ.js";import"./chunk-43FRAUV6.js";import"./chunk-B4OMIONW.js";import"./chunk-BOAGJ6P5.js";import"./chunk-LD6ZCTZ3.js";import"./chunk-JJZNUFPD.js";import"./chunk-XYUTD6IU.js";import"./chunk-DPNZWBT5.js";import"./chunk-JD5P5RAJ.js";import"./chunk-773TIA5M.js";import"./chunk-CRALWNNO.js";import"./chunk-VKWPEFWQ.js";export{a as COMMANDS,b as HOOKS};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-C4Y7PQDQ.js";import"./chunk-A3V2A2I4.js";import"./chunk-4QBJ5JBX.js";import"./chunk-6C5AVMKR.js";import"./chunk-7Y7AZRL3.js";import"./chunk-7UNQOKZW.js";import"./chunk-QZEDYQVT.js";import"./chunk-5HBIIYSK.js";import"./chunk-GB3YC4TI.js";import"./chunk-RJ5VF3QY.js";import"./chunk-XRJCD3AO.js";import"./chunk-OAG72Q2O.js";import"./chunk-CTNBSUVU.js";import"./chunk-636CTEW7.js";import"./chunk-TR4OWSEX.js";import"./chunk-2KD4LHRT.js";import"./chunk-I5A6BPCP.js";import"./chunk-CX5CC6P5.js";import"./chunk-ET2CGROE.js";import"./chunk-TOLPNBZK.js";import"./chunk-ZCNNJCTQ.js";import"./chunk-43FRAUV6.js";import"./chunk-B4OMIONW.js";import"./chunk-BOAGJ6P5.js";import"./chunk-LD6ZCTZ3.js";import"./chunk-JJZNUFPD.js";import"./chunk-XYUTD6IU.js";import"./chunk-DPNZWBT5.js";import"./chunk-JD5P5RAJ.js";import"./chunk-773TIA5M.js";import"./chunk-CRALWNNO.js";import"./chunk-VKWPEFWQ.js";export{b as environmentFilePath,a as loadEnvironment};
@@ -1 +0,0 @@
1
- import{e as a,f as b,g as c,h as d,i as e,j as f,k as g,l as h,m as i,n as j,o as k}from"./chunk-OAG72Q2O.js";import"./chunk-CTNBSUVU.js";import"./chunk-TR4OWSEX.js";import"./chunk-2KD4LHRT.js";import"./chunk-I5A6BPCP.js";import"./chunk-CX5CC6P5.js";import"./chunk-ET2CGROE.js";import"./chunk-TOLPNBZK.js";import"./chunk-43FRAUV6.js";import"./chunk-B4OMIONW.js";import"./chunk-BOAGJ6P5.js";import"./chunk-LD6ZCTZ3.js";import"./chunk-JJZNUFPD.js";import"./chunk-XYUTD6IU.js";import"./chunk-DPNZWBT5.js";import"./chunk-JD5P5RAJ.js";import"./chunk-773TIA5M.js";import"./chunk-CRALWNNO.js";import"./chunk-VKWPEFWQ.js";export{d as AbortError,f as AbortSilentError,g as BugError,b as CancelExecution,e as ExternalError,c as FatalError,a as FatalErrorType,k as cleanSingleStackTracePath,i as errorMapper,h as handler,j as shouldReportErrorAsUnexpected};
@@ -1 +0,0 @@
1
- import{Ha as a,Ia as b,Ja as c,Ka as d,La as e}from"./chunk-CNK3ZO2B.js";import"./chunk-ZDF5N422.js";import"./chunk-6QADNGH4.js";import"./chunk-6C5AVMKR.js";import"./chunk-7Y7AZRL3.js";import"./chunk-7UNQOKZW.js";import"./chunk-QZEDYQVT.js";import"./chunk-5HBIIYSK.js";import"./chunk-GB3YC4TI.js";import"./chunk-XOYICV6P.js";import"./chunk-MPW2YJWU.js";import"./chunk-QKTBYAUD.js";import"./chunk-RJ5VF3QY.js";import"./chunk-XRJCD3AO.js";import"./chunk-SPNM3GES.js";import"./chunk-OAG72Q2O.js";import"./chunk-T7KHS6RF.js";import"./chunk-CTNBSUVU.js";import"./chunk-636CTEW7.js";import"./chunk-TR4OWSEX.js";import"./chunk-2KD4LHRT.js";import"./chunk-I5A6BPCP.js";import"./chunk-CX5CC6P5.js";import"./chunk-ET2CGROE.js";import"./chunk-TOLPNBZK.js";import"./chunk-ZCNNJCTQ.js";import"./chunk-43FRAUV6.js";import"./chunk-B4OMIONW.js";import"./chunk-BOAGJ6P5.js";import"./chunk-LD6ZCTZ3.js";import"./chunk-JJZNUFPD.js";import"./chunk-XYUTD6IU.js";import"./chunk-DPNZWBT5.js";import"./chunk-JD5P5RAJ.js";import"./chunk-773TIA5M.js";import"./chunk-CRALWNNO.js";import"./chunk-VKWPEFWQ.js";export{e as addBugsnagMetadata,c as cleanStackFrameFilePath,a as errorHandler,d as registerCleanBugsnagErrorsFromWithinPlugins,b as sendErrorToBugsnag};
@@ -1 +0,0 @@
1
- import{$a as S,Aa as r,Ba as s,Ca as t,Da as u,Ea as v,Fa as w,Ga as x,Ha as y,Ia as z,Ja as A,Ka as B,La as C,Ma as D,Na as E,Oa as F,Pa as G,Qa as H,Ra as I,Sa as J,Ta as K,Ua as L,Va as M,Wa as N,Xa as O,Ya as P,Za as Q,_a as R,ab as T,bb as U,cb as V,db as W,ja as a,ka as b,la as c,ma as d,na as e,oa as f,pa as g,qa as h,ra as i,sa as j,ta as k,ua as l,va as m,wa as n,xa as o,ya as p,za as q}from"./chunk-43FRAUV6.js";import"./chunk-B4OMIONW.js";import"./chunk-BOAGJ6P5.js";import"./chunk-LD6ZCTZ3.js";import"./chunk-JJZNUFPD.js";import"./chunk-XYUTD6IU.js";import"./chunk-DPNZWBT5.js";import"./chunk-JD5P5RAJ.js";import"./chunk-773TIA5M.js";import"./chunk-CRALWNNO.js";import"./chunk-VKWPEFWQ.js";export{j as appendFile,k as appendFileSync,G as chmod,W as copyDirectoryContents,g as copyFile,B as createFileReadStream,C as createFileWriteStream,R as defaultEOL,Q as detectEOL,K as fileExists,L as fileExistsSync,H as fileHasExecutablePermissions,I as fileHasWritePermissions,D as fileLastUpdated,E as fileLastUpdatedTimestamp,f as fileRealPath,x as fileSize,y as fileSizeSync,S as findPathUp,T as findPathUpSync,M as generateRandomNameForSubdirectory,N as glob,O as globSync,b as inTemporaryDirectory,v as isDirectory,w as isDirectorySync,U as matchGlob,u as mkTmpDir,n as mkdir,o as mkdirSync,F as moveFile,P as pathToFileURL,d as readFile,e as readFileSync,V as readdir,p as removeFile,s as removeFileSync,q as renameFile,t as rmdir,a as stripUpPath,r as symlink,c as tempDirectory,h as touchFile,i as touchFileSync,J as unixFileIsOwnedByCurrentUser,A as unlinkFile,z as unlinkFileSync,l as writeFile,m as writeFileSync};