shopify 4.9.4 → 5.0.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 (501) hide show
  1. package/dist/analytics-Q6QDIDYT.js +1 -0
  2. package/dist/analytics-VKKJNJ62.js +1 -0
  3. package/dist/assets/hydrogen/starter/CHANGELOG.md +7 -0
  4. package/dist/assets/hydrogen/starter/package.json +2 -2
  5. package/dist/assets/hydrogen/vite/package.json +3 -4
  6. package/dist/assets/hydrogen/vite/vite.config.js +3 -3
  7. package/dist/bootstrap.js +1 -1
  8. package/dist/{chunk-LKXFHYLI.js → chunk-24NUJTIH.js} +1 -1
  9. package/dist/chunk-2CMEKSI7.js +1 -0
  10. package/dist/chunk-2DID73ML.js +1 -0
  11. package/dist/chunk-2ORRV7GH.js +1 -0
  12. package/dist/chunk-2VSNFOKD.js +1 -0
  13. package/dist/chunk-335BUVBP.js +1 -0
  14. package/dist/{chunk-UEBUGSBT.js → chunk-3A3DZVEJ.js} +1 -1
  15. package/dist/chunk-3C6VLJ5D.js +319 -0
  16. package/dist/{chunk-PB5ZZET5.js → chunk-3G4HJO72.js} +30 -30
  17. package/dist/chunk-3LVCG4JB.js +1 -0
  18. package/dist/chunk-43KLFFP7.js +1 -0
  19. package/dist/chunk-43R5VGKT.js +1 -0
  20. package/dist/chunk-46MSIQ6Z.js +1 -0
  21. package/dist/chunk-4ARCB6DT.js +1 -0
  22. package/dist/chunk-4C2DAX5T.js +1 -0
  23. package/dist/chunk-4CRBTSVP.js +2 -0
  24. package/dist/chunk-4GCI2YCZ.js +8 -0
  25. package/dist/chunk-4GOJQKY5.js +1 -0
  26. package/dist/chunk-4RDFMBRG.js +9 -0
  27. package/dist/chunk-4SS6DXC7.js +5 -0
  28. package/dist/{chunk-J4J2YXH3.js → chunk-4TI7U2PN.js} +1 -1
  29. package/dist/{chunk-67EBF76X.js → chunk-52FDK2LC.js} +1 -1
  30. package/dist/chunk-53BG3NLH.js +3 -0
  31. package/dist/{chunk-LD6ZCTZ3.js → chunk-5B76DT7X.js} +1 -1
  32. package/dist/{chunk-A2VCTDKH.js → chunk-5NEGOQT6.js} +1 -1
  33. package/dist/{chunk-MW3JKGJH.js → chunk-5OMJFPQW.js} +1 -1
  34. package/dist/chunk-5TB52UUV.js +2 -0
  35. package/dist/chunk-5UWMXOHM.js +7 -0
  36. package/dist/chunk-6BNKBCCU.js +1 -0
  37. package/dist/chunk-6DXP7PQ7.js +1 -0
  38. package/dist/chunk-6PUU6ZNQ.js +1 -0
  39. package/dist/chunk-7GHSE7SG.js +1 -0
  40. package/dist/{chunk-7556AIVG.js → chunk-7IFE4UQY.js} +1 -1
  41. package/dist/chunk-7LAKWAKX.js +25 -0
  42. package/dist/chunk-7MVWDCI3.js +1 -0
  43. package/dist/chunk-7NSK77WG.js +3 -0
  44. package/dist/chunk-7QUZWCJZ.js +3 -0
  45. package/dist/chunk-7RPFJZLP.js +1 -0
  46. package/dist/{chunk-LJIJEGND.js → chunk-7UOA4DI7.js} +2 -2
  47. package/dist/chunk-7WPUV7GY.js +6 -0
  48. package/dist/chunk-7Y7AZRL3.js +10 -0
  49. package/dist/{chunk-NGSEF3UX.js → chunk-ACA2BGAD.js} +1 -1
  50. package/dist/chunk-AJMDF3QC.js +1 -0
  51. package/dist/{chunk-R7YJNDXW.js → chunk-AXC2MHHO.js} +1 -1
  52. package/dist/{chunk-DEF2G7S4.js → chunk-AYL6KBPE.js} +1 -1
  53. package/dist/chunk-BAHIL37I.js +1 -0
  54. package/dist/{chunk-RSC5NQAT.js → chunk-BCYTZ7LM.js} +1 -1
  55. package/dist/{chunk-AVMNIZAJ.js → chunk-BJPDJIS4.js} +1 -1
  56. package/dist/{chunk-7VAKNVFD.js → chunk-BN7ZXAZJ.js} +1 -1
  57. package/dist/chunk-BVSKBX7T.js +16 -0
  58. package/dist/chunk-BWRNXCVN.js +4 -0
  59. package/dist/{chunk-XNPUZRWP.js → chunk-C3KEDG33.js} +1 -1
  60. package/dist/{chunk-WEXOA4C4.js → chunk-C7V755IT.js} +1 -1
  61. package/dist/chunk-CCMDZX35.js +7 -0
  62. package/dist/chunk-CCQNP5YR.js +1 -0
  63. package/dist/chunk-CEIJKJOF.js +11 -0
  64. package/dist/chunk-CIK5BF7V.js +1 -0
  65. package/dist/{chunk-6YDLNP4G.js → chunk-CVVQQLCF.js} +1 -1
  66. package/dist/chunk-CW2T7EOQ.js +1 -0
  67. package/dist/chunk-CZ22VZDA.js +376 -0
  68. package/dist/{chunk-3G2ZQ2EF.js → chunk-D7NB7YR6.js} +1 -1
  69. package/dist/{chunk-DYPZX7MW.js → chunk-DFQ4WTET.js} +2 -2
  70. package/dist/chunk-DJAZBPYA.js +3 -0
  71. package/dist/chunk-DNMXVMJM.js +47 -0
  72. package/dist/{chunk-CLD3NZYD.js → chunk-EGCWR5AS.js} +1 -1
  73. package/dist/{chunk-BOE2ST6J.js → chunk-EITIW5OX.js} +1 -1
  74. package/dist/chunk-EMSF57ZB.js +1 -0
  75. package/dist/{chunk-ZEBMW5KS.js → chunk-EXFBZPZS.js} +1 -1
  76. package/dist/chunk-FDXHQZTO.js +26 -0
  77. package/dist/{chunk-Q2XLIWG4.js → chunk-FFHH5LOR.js} +1 -1
  78. package/dist/{chunk-MMQZO2W2.js → chunk-FNLECT7B.js} +1 -1
  79. package/dist/{chunk-PO5T44H3.js → chunk-FWB3GLMW.js} +1 -1
  80. package/dist/chunk-FZCGRIOM.js +1 -0
  81. package/dist/{chunk-G7JW4UIM.js → chunk-G6ZMSWEU.js} +1 -1
  82. package/dist/chunk-GAMC2BNY.js +7 -0
  83. package/dist/chunk-GB6E3ATN.js +4 -0
  84. package/dist/chunk-GCNA3HXH.js +8 -0
  85. package/dist/{chunk-IGDVKRB4.js → chunk-GFVKTWFT.js} +1 -1
  86. package/dist/chunk-GQNOVEKP.js +2 -0
  87. package/dist/{chunk-5BTLE67Z.js → chunk-GRGFA26K.js} +1 -1
  88. package/dist/chunk-GXORLBVN.js +2 -0
  89. package/dist/{chunk-3V4VL3SD.js → chunk-H4V55Y3Z.js} +118 -118
  90. package/dist/chunk-HCZG7YJ6.js +16 -0
  91. package/dist/chunk-HF4NDEX3.js +1 -0
  92. package/dist/chunk-HIRTL45Q.js +1 -0
  93. package/dist/chunk-I4OVLRQR.js +1 -0
  94. package/dist/{chunk-ENQXB532.js → chunk-I6FRVYGE.js} +1 -1
  95. package/dist/chunk-IEQ4UOH3.js +4 -0
  96. package/dist/{chunk-PIZDYS7T.js → chunk-IILLQOUC.js} +60 -60
  97. package/dist/{chunk-45SZ5PSE.js → chunk-IQVRP7CT.js} +1 -1
  98. package/dist/chunk-IUP7POIE.js +6 -0
  99. package/dist/chunk-IUTZIN2T.js +10 -0
  100. package/dist/chunk-IWEKM5Y3.js +1 -0
  101. package/dist/chunk-IWTNUJGY.js +2 -0
  102. package/dist/chunk-J6TW43TG.js +1 -0
  103. package/dist/chunk-JDR6UVZA.js +8 -0
  104. package/dist/{chunk-CVFPY2SH.js → chunk-JEA3C7ON.js} +1 -1
  105. package/dist/chunk-JOJV5E2K.js +1 -0
  106. package/dist/chunk-JYMDWR25.js +1 -0
  107. package/dist/{chunk-TPHHQAUD.js → chunk-KDPQXURV.js} +1 -1
  108. package/dist/{chunk-MW3IMZJ5.js → chunk-KGRIYAMA.js} +1 -1
  109. package/dist/chunk-KJQDS5HI.js +1 -0
  110. package/dist/chunk-KKPOOIE4.js +2 -0
  111. package/dist/{chunk-VS7QVU3Z.js → chunk-KSDU4YOB.js} +1 -1
  112. package/dist/chunk-L7MSPGDS.js +5 -0
  113. package/dist/{chunk-43URS56H.js → chunk-LDU5T3DN.js} +1 -1
  114. package/dist/chunk-LHKVXJPX.js +1 -0
  115. package/dist/{chunk-EO4YJFMY.js → chunk-LMQGNECW.js} +86 -200
  116. package/dist/{chunk-TQ7URMGS.js → chunk-LQ7ENG4V.js} +1 -1
  117. package/dist/chunk-LVLAOBJM.js +103 -0
  118. package/dist/chunk-LWCTKI4Z.js +18 -0
  119. package/dist/chunk-M3ACZWMR.js +1 -0
  120. package/dist/chunk-M4BVLMPH.js +31 -0
  121. package/dist/{chunk-NCRWOW6F.js → chunk-M5TGCSUK.js} +1 -1
  122. package/dist/chunk-M7LPHCP2.js +274 -0
  123. package/dist/{chunk-IDKRJ2F4.js → chunk-MDRVCBDO.js} +1 -1
  124. package/dist/chunk-MR2AUT7Q.js +1 -0
  125. package/dist/chunk-MXJAH2GW.js +5 -0
  126. package/dist/{chunk-UU6BRRYS.js → chunk-MYAIWSOO.js} +1 -1
  127. package/dist/{chunk-NT4A37HG.js → chunk-N2RFDHRY.js} +1 -1
  128. package/dist/{chunk-GSE6FXZU.js → chunk-NB4BRW3H.js} +1 -1
  129. package/dist/chunk-NDKSG4CC.js +97 -0
  130. package/dist/chunk-NK2MGR6A.js +1 -0
  131. package/dist/chunk-NOH63WC6.js +12 -0
  132. package/dist/{chunk-BVB3DTNE.js → chunk-OGWPS55W.js} +1 -1
  133. package/dist/chunk-OQ5CLM2H.js +4 -0
  134. package/dist/{chunk-PVAZCZSY.js → chunk-OQU3HLAE.js} +1 -1
  135. package/dist/chunk-OVWUGAEU.js +11 -0
  136. package/dist/chunk-OX7UVDSU.js +6 -0
  137. package/dist/chunk-P33TONYG.js +1 -0
  138. package/dist/chunk-PEVIRAMR.js +6 -0
  139. package/dist/{chunk-YPCXVZ2N.js → chunk-PGLWZMJU.js} +4 -4
  140. package/dist/chunk-PIAD3F6M.js +16 -0
  141. package/dist/chunk-PMHP57MH.js +20 -0
  142. package/dist/{chunk-F3PZGSOY.js → chunk-POKY4RWR.js} +1 -1
  143. package/dist/chunk-PSSYLJG4.js +2 -0
  144. package/dist/chunk-PYIICTLX.js +1 -0
  145. package/dist/chunk-PZUGDE7N.js +2 -0
  146. package/dist/{chunk-NU5WLZ6Y.js → chunk-Q2SZCZE7.js} +1 -1
  147. package/dist/{chunk-MUM34KUM.js → chunk-Q2XRITUG.js} +1 -1
  148. package/dist/chunk-Q5MEFIMV.js +4 -0
  149. package/dist/chunk-Q66CI37F.js +7 -0
  150. package/dist/chunk-QFWWCZOI.js +1 -0
  151. package/dist/{chunk-TR4OWSEX.js → chunk-QFYLJVJW.js} +1 -1
  152. package/dist/chunk-QKVVJXWS.js +3 -0
  153. package/dist/chunk-QN3774QI.js +1 -0
  154. package/dist/chunk-R2BDABJD.js +213 -0
  155. package/dist/{chunk-7HWMURCW.js → chunk-R7EMV77H.js} +1 -1
  156. package/dist/chunk-RFGEM5JC.js +3 -0
  157. package/dist/{chunk-7A3RW2VM.js → chunk-RVQV6G5M.js} +1 -1
  158. package/dist/chunk-S67I4E7M.js +5 -0
  159. package/dist/chunk-SFPXYHHL.js +1 -0
  160. package/dist/{chunk-4OCVXE5Y.js → chunk-SFQEHDJY.js} +1 -1
  161. package/dist/chunk-SL3VBI62.js +3 -0
  162. package/dist/{chunk-LOWSU4BB.js → chunk-SNNZ4U2W.js} +1 -1
  163. package/dist/chunk-T2IUXXCT.js +1 -0
  164. package/dist/chunk-TPSA4JN5.js +1 -0
  165. package/dist/chunk-TTEF7GTX.js +1 -0
  166. package/dist/{chunk-FQL2WEKX.js → chunk-U25W35TX.js} +1 -1
  167. package/dist/chunk-UIQL5ZF3.js +1 -0
  168. package/dist/chunk-UK6576EO.js +1 -0
  169. package/dist/chunk-ULD7CIOY.js +4 -0
  170. package/dist/{chunk-D3KFKT4D.js → chunk-UOS2XLGG.js} +1 -1
  171. package/dist/{chunk-EMH7OHCW.js → chunk-UVRKTMF7.js} +1 -1
  172. package/dist/{chunk-ZTICX3AO.js → chunk-UWMZ5CSB.js} +1 -1
  173. package/dist/chunk-UZROQRLX.js +2 -0
  174. package/dist/{chunk-5BGUKF7L.js → chunk-V75WUEFU.js} +1 -1
  175. package/dist/chunk-VB7YQMAM.js +5 -0
  176. package/dist/chunk-VHUD3CBC.js +3 -0
  177. package/dist/chunk-VMMUJN4T.js +17 -0
  178. package/dist/{chunk-S36VGP37.js → chunk-VW6QS7DO.js} +1 -1
  179. package/dist/chunk-VWH3VPYI.js +1 -0
  180. package/dist/{chunk-4TF7ER72.js → chunk-WBJ6ZHYH.js} +1 -1
  181. package/dist/chunk-WDFCOZAY.js +16 -0
  182. package/dist/chunk-WFWISGLS.js +1 -0
  183. package/dist/chunk-WGUOLSMG.js +1 -0
  184. package/dist/{chunk-PFXNBHQQ.js → chunk-WJSUIUBW.js} +2 -2
  185. package/dist/{chunk-TFXUDHCP.js → chunk-WMAFG2JD.js} +1 -1
  186. package/dist/chunk-X2H6I2WW.js +5 -0
  187. package/dist/{chunk-DSS4ECIH.js → chunk-X7HVAVSZ.js} +1 -1
  188. package/dist/{chunk-NYYXH2SX.js → chunk-XBQDMGUN.js} +1 -1
  189. package/dist/chunk-XITZIDCL.js +18 -0
  190. package/dist/chunk-XKRJKUA7.js +1 -0
  191. package/dist/{chunk-FEQHCE2E.js → chunk-XM7YUXTF.js} +2 -2
  192. package/dist/chunk-XMODGI45.js +1 -0
  193. package/dist/{chunk-B3M3KIOU.js → chunk-XNNKLUTN.js} +1 -1
  194. package/dist/chunk-XTREQ4A2.js +1 -0
  195. package/dist/chunk-YGYEM6QO.js +1 -0
  196. package/dist/{chunk-LWU5TKNA.js → chunk-YKS7MH3F.js} +9 -6
  197. package/dist/chunk-YTUDXZLN.js +1 -0
  198. package/dist/{chunk-I3J63RFV.js → chunk-YTUUU33R.js} +1 -1
  199. package/dist/chunk-YVVU4J5O.js +3 -0
  200. package/dist/{chunk-4TZCRMBJ.js → chunk-YVY32DNA.js} +1 -1
  201. package/dist/chunk-Z5SILNH2.js +7 -0
  202. package/dist/chunk-ZAA2DXK5.js +5 -0
  203. package/dist/chunk-ZDQO6CNY.js +1 -0
  204. package/dist/chunk-ZGV3HNEV.js +1 -0
  205. package/dist/chunk-ZQDDRIBA.js +22 -0
  206. package/dist/{chunk-QTLGMJDW.js → chunk-ZT5WFUKJ.js} +4 -4
  207. package/dist/chunk-ZYQ2XWC5.js +5 -0
  208. package/dist/cli/commands/app/build.js +1 -1
  209. package/dist/cli/commands/app/bulk/cancel.js +1 -1
  210. package/dist/cli/commands/app/bulk/execute.js +1 -1
  211. package/dist/cli/commands/app/bulk/status.js +1 -1
  212. package/dist/cli/commands/app/config/link.js +1 -1
  213. package/dist/cli/commands/app/config/pull.js +1 -1
  214. package/dist/cli/commands/app/config/use.js +1 -1
  215. package/dist/cli/commands/app/config/validate.js +1 -1
  216. package/dist/cli/commands/app/demo/watcher.js +1 -1
  217. package/dist/cli/commands/app/deploy.js +1 -1
  218. package/dist/cli/commands/app/dev/clean.js +1 -1
  219. package/dist/cli/commands/app/dev.js +1 -1
  220. package/dist/cli/commands/app/env/pull.js +1 -1
  221. package/dist/cli/commands/app/env/show.js +1 -1
  222. package/dist/cli/commands/app/execute.js +1 -1
  223. package/dist/cli/commands/app/function/build.js +1 -1
  224. package/dist/cli/commands/app/function/info.js +1 -1
  225. package/dist/cli/commands/app/function/replay.js +1 -1
  226. package/dist/cli/commands/app/function/run.js +1 -1
  227. package/dist/cli/commands/app/function/schema.js +1 -1
  228. package/dist/cli/commands/app/function/typegen.js +1 -1
  229. package/dist/cli/commands/app/generate/extension.js +1 -1
  230. package/dist/cli/commands/app/graphiql.js +1 -1
  231. package/dist/cli/commands/app/import/channel-config.js +1 -1
  232. package/dist/cli/commands/app/import/custom-data-definitions.js +1 -1
  233. package/dist/cli/commands/app/import/dashboard-extensions.js +1 -1
  234. package/dist/cli/commands/app/import-custom-data-definitions.js +1 -1
  235. package/dist/cli/commands/app/import-extensions.js +1 -1
  236. package/dist/cli/commands/app/info.js +1 -1
  237. package/dist/cli/commands/app/init.js +1 -1
  238. package/dist/cli/commands/app/logs.js +1 -1
  239. package/dist/cli/commands/app/release.js +1 -1
  240. package/dist/cli/commands/app/security/check.js +1 -1
  241. package/dist/cli/commands/app/security/clean.js +1 -1
  242. package/dist/cli/commands/app/security/instructions.js +1 -1
  243. package/dist/cli/commands/app/security/record.js +1 -1
  244. package/dist/cli/commands/app/security/review.js +1 -1
  245. package/dist/cli/commands/app/subscription-migrations/cancel.js +1 -1
  246. package/dist/cli/commands/app/subscription-migrations/list.js +1 -1
  247. package/dist/cli/commands/app/subscription-migrations/schedule.js +1 -1
  248. package/dist/cli/commands/app/subscription-migrations/status.js +1 -1
  249. package/dist/cli/commands/app/subscription-migrations/unschedule.js +1 -1
  250. package/dist/cli/commands/app/versions/list.js +1 -1
  251. package/dist/cli/commands/app/webhook/trigger.js +1 -1
  252. package/dist/cli/commands/auth/login.js +1 -1
  253. package/dist/cli/commands/auth/logout.js +1 -1
  254. package/dist/cli/commands/cache/clear.js +1 -1
  255. package/dist/cli/commands/config/autoupgrade/off.js +1 -1
  256. package/dist/cli/commands/config/autoupgrade/on.js +1 -1
  257. package/dist/cli/commands/config/autoupgrade/status.js +1 -1
  258. package/dist/cli/commands/debug/command-flags.js +1 -1
  259. package/dist/cli/commands/doc/fetch.d.ts +34 -1
  260. package/dist/cli/commands/doc/fetch.js +1 -1
  261. package/dist/cli/commands/doc/search.d.ts +53 -1
  262. package/dist/cli/commands/doc/search.js +1 -1
  263. package/dist/cli/commands/docs/generate.js +1 -1
  264. package/dist/cli/commands/doctor-release/doctor-release.js +1 -1
  265. package/dist/cli/commands/doctor-release/theme/index.js +1 -1
  266. package/dist/cli/commands/help.d.ts +6 -6
  267. package/dist/cli/commands/help.js +1 -1
  268. package/dist/cli/commands/kitchen-sink/async.js +1 -1
  269. package/dist/cli/commands/kitchen-sink/index.js +1 -1
  270. package/dist/cli/commands/kitchen-sink/prompts.js +1 -1
  271. package/dist/cli/commands/kitchen-sink/static.js +1 -1
  272. package/dist/cli/commands/notifications/generate.js +1 -1
  273. package/dist/cli/commands/notifications/list.js +1 -1
  274. package/dist/cli/commands/organization/list.js +1 -1
  275. package/dist/cli/commands/search.js +1 -1
  276. package/dist/cli/commands/send-analytics.js +1 -1
  277. package/dist/cli/commands/theme/check.js +1 -1
  278. package/dist/cli/commands/theme/console.js +1 -1
  279. package/dist/cli/commands/theme/delete.js +1 -1
  280. package/dist/cli/commands/theme/dev.js +1 -1
  281. package/dist/cli/commands/theme/duplicate.js +1 -1
  282. package/dist/cli/commands/theme/info.js +1 -1
  283. package/dist/cli/commands/theme/init.js +1 -1
  284. package/dist/cli/commands/theme/language-server.js +1 -1
  285. package/dist/cli/commands/theme/list.js +1 -1
  286. package/dist/cli/commands/theme/metafields/pull.js +1 -1
  287. package/dist/cli/commands/theme/open.js +1 -1
  288. package/dist/cli/commands/theme/package.js +1 -1
  289. package/dist/cli/commands/theme/preview.js +1 -1
  290. package/dist/cli/commands/theme/profile.js +1 -1
  291. package/dist/cli/commands/theme/publish.js +1 -1
  292. package/dist/cli/commands/theme/pull.js +1 -1
  293. package/dist/cli/commands/theme/push.js +1 -1
  294. package/dist/cli/commands/theme/rename.js +1 -1
  295. package/dist/cli/commands/theme/share.js +1 -1
  296. package/dist/cli/commands/upgrade.d.ts +64 -0
  297. package/dist/cli/commands/upgrade.js +1 -1
  298. package/dist/cli/commands/version.js +1 -1
  299. package/dist/cli/help.js +1 -1
  300. package/dist/cli/services/commands/doc/fetch-result.d.ts +2 -0
  301. package/dist/cli/services/commands/doc/fetch-result.js +22 -0
  302. package/dist/cli/services/commands/doc/fetch.d.ts +2 -1
  303. package/dist/cli/services/commands/doc/fetch.js +2 -15
  304. package/dist/cli/services/commands/doc/search-result.d.ts +2 -0
  305. package/dist/cli/services/commands/doc/search-result.js +14 -0
  306. package/dist/cli/services/commands/doc/search.d.ts +9 -1
  307. package/dist/cli/services/commands/doc/search.js +27 -2
  308. package/dist/cli/services/commands/doc/types.d.ts +107 -0
  309. package/dist/cli/services/commands/doc/types.js +47 -0
  310. package/dist/cli/services/commands/help/types.d.ts +6 -6
  311. package/dist/command-event-context-LFUZ7UCA.js +1 -0
  312. package/dist/command-json-schema-2UMKY7MY.js +1 -0
  313. package/dist/command-registry.js +1 -1
  314. package/dist/conf-store-RI3TL6I4.js +1 -0
  315. package/dist/custom-oclif-loader-IZCKN67O.js +1 -0
  316. package/dist/deprecations-IFVUXXDB.js +1 -0
  317. package/dist/dist-4H2B7BMN.js +1 -0
  318. package/dist/dist-QNWOGQN3.js +1 -0
  319. package/dist/{environment-RSUK27TA.js → environment-O7ECODHU.js} +1 -1
  320. package/dist/environments-CYMEN7NV.js +1 -0
  321. package/dist/error-IL6WQMSW.js +1 -0
  322. package/dist/error-handler-74HKA23T.js +1 -0
  323. package/dist/fs-AINFLJ2E.js +1 -0
  324. package/dist/hooks/did-you-mean.js +1 -1
  325. package/dist/hooks/hydrogen-init.js +1 -1
  326. package/dist/hooks/plugin-plugins.js +1 -1
  327. package/dist/hooks/postrun.js +1 -1
  328. package/dist/hooks/prerun.js +1 -1
  329. package/dist/hooks/public-metadata.js +1 -1
  330. package/dist/hooks/sensitive-metadata.js +1 -1
  331. package/dist/hooks/tunnel-provider.js +1 -1
  332. package/dist/hooks/tunnel-start.js +1 -1
  333. package/dist/index.js +13 -13
  334. package/dist/is-global-2VLKV46Q.js +1 -0
  335. package/dist/json-error-HZB5YIHV.js +1 -0
  336. package/dist/{lib-TYM5B75S.js → lib-PJHT4MKY.js} +1 -1
  337. package/dist/{lib-55QUD4AJ.js → lib-VKSQ65BQ.js} +1 -1
  338. package/dist/{lib-PH52G55H.js → lib-YEZOHXF3.js} +1 -1
  339. package/dist/{local-R3UAQN7T.js → local-KOZETREJ.js} +1 -1
  340. package/dist/{metadata-JWJG4JV4.js → metadata-IBPHZB7N.js} +1 -1
  341. package/dist/{morph-BABFBRSW.js → morph-CRY35DIK.js} +1 -1
  342. package/dist/node-package-manager-DXSRNEDC.js +1 -0
  343. package/dist/notifications-system-XA3EBOGJ.js +1 -0
  344. package/dist/os-X73O7BAB.js +1 -0
  345. package/dist/out-B2GISN65.js +1 -0
  346. package/dist/output-3OYXK3Z5.js +1 -0
  347. package/dist/{path-CPAYTWQW.js → path-3L2QRACZ.js} +1 -1
  348. package/dist/system-JWYYT4PM.js +1 -0
  349. package/dist/tsconfig.tsbuildinfo +1 -1
  350. package/dist/ui-PCG5D6RZ.js +1 -0
  351. package/dist/upgrade-7U2TUNC4.js +1 -0
  352. package/dist/version-7DGU2KYH.js +1 -0
  353. package/dist/version-SXQTRBXB.js +1 -0
  354. package/dist/workerd-MQZ3NKJI.js +18 -0
  355. package/oclif.manifest.json +1664 -427
  356. package/package.json +8 -8
  357. package/dist/analytics-APDNTBDE.js +0 -1
  358. package/dist/analytics-LX52KYSE.js +0 -1
  359. package/dist/chunk-2PDVBGQH.js +0 -7
  360. package/dist/chunk-2YVSZFXJ.js +0 -4
  361. package/dist/chunk-35WQTGN3.js +0 -5
  362. package/dist/chunk-37BGAWAW.js +0 -2
  363. package/dist/chunk-3C4WVKSO.js +0 -6
  364. package/dist/chunk-3LHE4GIX.js +0 -1
  365. package/dist/chunk-47IQIIFX.js +0 -383
  366. package/dist/chunk-4ES7BJEK.js +0 -1
  367. package/dist/chunk-4IFY7V7W.js +0 -1
  368. package/dist/chunk-4JGWKUJN.js +0 -2
  369. package/dist/chunk-4O5GQ3DS.js +0 -7
  370. package/dist/chunk-4O7LK5RG.js +0 -26
  371. package/dist/chunk-4TFJ5RW7.js +0 -8
  372. package/dist/chunk-4ZNBEMRT.js +0 -20
  373. package/dist/chunk-5JIJDUXX.js +0 -20
  374. package/dist/chunk-66YRAUWX.js +0 -3
  375. package/dist/chunk-6A4H3HPY.js +0 -7
  376. package/dist/chunk-6HPUOCFF.js +0 -1
  377. package/dist/chunk-6IDEDOXW.js +0 -2
  378. package/dist/chunk-6IMHGT7F.js +0 -8
  379. package/dist/chunk-6MC2BEW4.js +0 -1
  380. package/dist/chunk-73D5O7A3.js +0 -1
  381. package/dist/chunk-7E4MJCVE.js +0 -10
  382. package/dist/chunk-7HNRK2CR.js +0 -1
  383. package/dist/chunk-7SJHVJ3W.js +0 -5
  384. package/dist/chunk-ALK66U3O.js +0 -3
  385. package/dist/chunk-AMLCWRHU.js +0 -4
  386. package/dist/chunk-AYIU6Z4C.js +0 -1
  387. package/dist/chunk-BIWG3FQQ.js +0 -5
  388. package/dist/chunk-BQ3U3CQV.js +0 -1
  389. package/dist/chunk-C6IBY7NW.js +0 -16
  390. package/dist/chunk-CQF5NDTJ.js +0 -4
  391. package/dist/chunk-DMDLJRLW.js +0 -1
  392. package/dist/chunk-DMNWSUKV.js +0 -5
  393. package/dist/chunk-FK7GA4QQ.js +0 -1
  394. package/dist/chunk-FO2R6KHG.js +0 -1
  395. package/dist/chunk-FOAV642V.js +0 -1
  396. package/dist/chunk-GE4MLO3C.js +0 -5
  397. package/dist/chunk-GM4EFJJF.js +0 -7
  398. package/dist/chunk-GN66BRYF.js +0 -1
  399. package/dist/chunk-GPRZYFDE.js +0 -1
  400. package/dist/chunk-GZ7VGCVW.js +0 -3
  401. package/dist/chunk-HASIOUH2.js +0 -3
  402. package/dist/chunk-HILYTMVA.js +0 -1
  403. package/dist/chunk-HJHS23Q3.js +0 -1
  404. package/dist/chunk-HLPAVELJ.js +0 -1
  405. package/dist/chunk-HPM3HF7A.js +0 -1
  406. package/dist/chunk-HQJ62PII.js +0 -3
  407. package/dist/chunk-HQY6JM6G.js +0 -6
  408. package/dist/chunk-HSYMUYEZ.js +0 -359
  409. package/dist/chunk-I5PQZRYM.js +0 -32
  410. package/dist/chunk-IPZ6LUJV.js +0 -4
  411. package/dist/chunk-J4NBPC57.js +0 -1
  412. package/dist/chunk-J6LQR2F6.js +0 -7
  413. package/dist/chunk-JYGZD4HM.js +0 -1
  414. package/dist/chunk-K3HUQLIC.js +0 -6
  415. package/dist/chunk-K7D53KSJ.js +0 -1
  416. package/dist/chunk-KQFA5YTT.js +0 -97
  417. package/dist/chunk-KTD7VLHL.js +0 -2
  418. package/dist/chunk-L4DFMMOI.js +0 -1
  419. package/dist/chunk-LJZTSQRD.js +0 -11
  420. package/dist/chunk-LLPB6JN5.js +0 -9
  421. package/dist/chunk-LYIXRMQJ.js +0 -46
  422. package/dist/chunk-MCNK5SJ6.js +0 -2
  423. package/dist/chunk-MJZSSCGD.js +0 -5
  424. package/dist/chunk-N55MSO3X.js +0 -12
  425. package/dist/chunk-N5AZZYQA.js +0 -4
  426. package/dist/chunk-NCVGCVQ5.js +0 -6
  427. package/dist/chunk-O5FFMTJE.js +0 -25
  428. package/dist/chunk-OE3HSNSE.js +0 -16
  429. package/dist/chunk-ONF7XXEL.js +0 -1
  430. package/dist/chunk-PG4S5HJJ.js +0 -5
  431. package/dist/chunk-PHG4DASY.js +0 -18
  432. package/dist/chunk-PP4VCR4Y.js +0 -1
  433. package/dist/chunk-PWS4VFSD.js +0 -1
  434. package/dist/chunk-Q37WAD6F.js +0 -1
  435. package/dist/chunk-Q43LBSPT.js +0 -1
  436. package/dist/chunk-QAJZUJR5.js +0 -1
  437. package/dist/chunk-QO5RNGWA.js +0 -1
  438. package/dist/chunk-QPQS2YU3.js +0 -1
  439. package/dist/chunk-QUXQM3S3.js +0 -1
  440. package/dist/chunk-R3KSOCMB.js +0 -6
  441. package/dist/chunk-R74WHKHH.js +0 -15
  442. package/dist/chunk-RJSQMKKS.js +0 -1
  443. package/dist/chunk-RK2V6OIJ.js +0 -2
  444. package/dist/chunk-RUHQNF2W.js +0 -1
  445. package/dist/chunk-RXTLNUPF.js +0 -1
  446. package/dist/chunk-SNE4RHM4.js +0 -1
  447. package/dist/chunk-SQAS5RVZ.js +0 -10
  448. package/dist/chunk-SZI6G247.js +0 -103
  449. package/dist/chunk-TVCWDEVS.js +0 -1
  450. package/dist/chunk-TYMYIUIQ.js +0 -1
  451. package/dist/chunk-UIC7K2HX.js +0 -7
  452. package/dist/chunk-UNHT4ZFP.js +0 -317
  453. package/dist/chunk-UQ6ALA3Y.js +0 -3
  454. package/dist/chunk-UWI76E2L.js +0 -18
  455. package/dist/chunk-VE35YELD.js +0 -1
  456. package/dist/chunk-VGBUN3CZ.js +0 -17
  457. package/dist/chunk-VMNOSVPT.js +0 -8
  458. package/dist/chunk-VNFUCH6T.js +0 -1
  459. package/dist/chunk-W4KE7AO6.js +0 -1
  460. package/dist/chunk-WEPO4J2F.js +0 -19
  461. package/dist/chunk-WLWHCUPZ.js +0 -1
  462. package/dist/chunk-XGKCPD6W.js +0 -1
  463. package/dist/chunk-XNVOKAF2.js +0 -1
  464. package/dist/chunk-XSMCQLJW.js +0 -1
  465. package/dist/chunk-XUUIBSLW.js +0 -1
  466. package/dist/chunk-XWQM2NZ2.js +0 -2
  467. package/dist/chunk-Y3PY5LP7.js +0 -3
  468. package/dist/chunk-Y62EMOQA.js +0 -1
  469. package/dist/chunk-Y743UVBS.js +0 -16
  470. package/dist/chunk-YBSX53QP.js +0 -1
  471. package/dist/chunk-YHCP326A.js +0 -16
  472. package/dist/chunk-YHESTFMZ.js +0 -4
  473. package/dist/chunk-YT27FIQN.js +0 -275
  474. package/dist/chunk-YTR5JHNJ.js +0 -2
  475. package/dist/chunk-YYA5VGDW.js +0 -1
  476. package/dist/chunk-Z6X2GT6Q.js +0 -1
  477. package/dist/chunk-ZEE32UH6.js +0 -1
  478. package/dist/cli/commands/app/app-logs/sources.js +0 -1
  479. package/dist/command-json-schema-SS4GDJTQ.js +0 -1
  480. package/dist/conf-store-54YJCIDK.js +0 -1
  481. package/dist/custom-oclif-loader-3UBH7Q7R.js +0 -1
  482. package/dist/deprecations-ZX7ZKF6L.js +0 -1
  483. package/dist/dist-JMNE7MP6.js +0 -1
  484. package/dist/dist-M2AXGBOL.js +0 -1
  485. package/dist/environments-KD2IDYPG.js +0 -1
  486. package/dist/error-AA6LW3PN.js +0 -1
  487. package/dist/error-handler-4VW3AV2G.js +0 -1
  488. package/dist/fs-4QZCAEP7.js +0 -1
  489. package/dist/is-global-FKG327CG.js +0 -1
  490. package/dist/json-error-32ETFU3V.js +0 -1
  491. package/dist/node-package-manager-M4XHUTQR.js +0 -1
  492. package/dist/notifications-system-QVM2JWKB.js +0 -1
  493. package/dist/os-FEHBQQKP.js +0 -1
  494. package/dist/out-53ABAVL7.js +0 -1
  495. package/dist/output-2LS5AOAH.js +0 -1
  496. package/dist/system-TMD2LYZM.js +0 -1
  497. package/dist/ui-FNPICAAH.js +0 -1
  498. package/dist/upgrade-YYPP5VZY.js +0 -1
  499. package/dist/version-OX3MORI6.js +0 -1
  500. package/dist/version-P7D5ME4Z.js +0 -1
  501. package/dist/workerd-TKVRZK2F.js +0 -18
@@ -3,7 +3,7 @@
3
3
  "app:build": {
4
4
  "aliases": [],
5
5
  "args": {},
6
- "description": "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.",
6
+ "description": "This command executes the build script specified in the element's TOML file. You can specify a custom script in the file. To learn about configuration files in Shopify apps, refer to \"App configuration\" (https://shopify.dev/docs/apps/tools/cli/configuration).\n\n If you're building a \"theme app extension\" (https://shopify.dev/docs/apps/online-store/theme-app-extensions), then running the `build` command runs \"Theme Check\" (https://shopify.dev/docs/themes/tools/theme-check) against your extension to ensure that it's valid.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppBuildResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AppBuildResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
7
7
  "flags": {
8
8
  "json-schema": {
9
9
  "description": "Print the command's JSON schemas.",
@@ -85,6 +85,15 @@
85
85
  "allowNo": false,
86
86
  "type": "boolean"
87
87
  },
88
+ "json": {
89
+ "char": "j",
90
+ "description": "Output the result as JSON. Automatically disables color output.",
91
+ "env": "SHOPIFY_FLAG_JSON",
92
+ "hidden": false,
93
+ "name": "json",
94
+ "allowNo": false,
95
+ "type": "boolean"
96
+ },
88
97
  "skip-dependencies-installation": {
89
98
  "description": "Skips the installation of dependencies. Deprecated, use workspaces instead.",
90
99
  "env": "SHOPIFY_FLAG_SKIP_DEPENDENCIES_INSTALLATION",
@@ -108,7 +117,7 @@
108
117
  "app:bulk:cancel": {
109
118
  "aliases": [],
110
119
  "args": {},
111
- "description": "Cancels a running bulk operation by ID.",
120
+ "description": "Cancels a running bulk operation by ID.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `CancelBulkOperationResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"storeDomain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^[^.]+\\\\.myshopify\\\\.com$\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"apiVersion\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"The API version selected for the request.\"\n },\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"operation\": {\n \"$ref\": \"#/definitions/BulkOperation\"\n }\n },\n \"required\": [\n \"storeDomain\",\n \"apiVersion\",\n \"status\",\n \"operation\"\n ],\n \"additionalProperties\": false,\n \"title\": \"CancelBulkOperationResult\",\n \"definitions\": {\n \"BulkOperation\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/BulkOperation\\\\/[^/]+$\",\n \"description\": \"The Shopify global ID of a bulk operation.\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n },\n \"errorCode\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"pattern\": \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$\",\n \"description\": \"A UTC ISO 8601 instant with whole seconds and the Z timezone marker.\"\n },\n \"completedAt\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/BulkOperation/properties/createdAt\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"A UTC ISO 8601 instant with whole seconds and the Z timezone marker.\"\n },\n \"objectCount\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"A nonnegative decimal count, without loss of integer precision.\"\n },\n \"url\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"partialDataUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"gid\",\n \"type\",\n \"status\",\n \"errorCode\",\n \"createdAt\",\n \"completedAt\",\n \"objectCount\",\n \"url\",\n \"partialDataUrl\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
112
121
  "flags": {
113
122
  "json-schema": {
114
123
  "description": "Print the command's JSON schemas.",
@@ -148,6 +157,15 @@
148
157
  "allowNo": false,
149
158
  "type": "boolean"
150
159
  },
160
+ "json": {
161
+ "char": "j",
162
+ "description": "Output the result as JSON. Automatically disables color output.",
163
+ "env": "SHOPIFY_FLAG_JSON",
164
+ "hidden": false,
165
+ "name": "json",
166
+ "allowNo": false,
167
+ "type": "boolean"
168
+ },
151
169
  "path": {
152
170
  "description": "The path to your app directory.",
153
171
  "env": "SHOPIFY_FLAG_PATH",
@@ -217,12 +235,13 @@
217
235
  "pluginType": "core",
218
236
  "strict": true,
219
237
  "summary": "Cancel a bulk operation.",
238
+ "descriptionWithMarkdown": "Cancels a running bulk operation by ID.",
220
239
  "customPluginName": "@shopify/app"
221
240
  },
222
241
  "app:bulk:status": {
223
242
  "aliases": [],
224
243
  "args": {},
225
- "description": "Check the status of a specific bulk operation by ID, or list all bulk operations belonging to this app on this store in the last 7 days.\n\n Bulk operations allow you to process large amounts of data asynchronously. Learn more about \"bulk query operations\" (https://shopify.dev/docs/api/usage/bulk-operations/queries) and \"bulk mutation operations\" (https://shopify.dev/docs/api/usage/bulk-operations/imports).\n\n Use \"`bulk execute`\" (https://shopify.dev/docs/api/shopify-cli/app/app-bulk-execute) to start a new bulk operation.",
244
+ "description": "Check the status of a specific bulk operation by ID, or list all bulk operations belonging to this app on this store in the last 7 days.\n\n Bulk operations allow you to process large amounts of data asynchronously. Learn more about \"bulk query operations\" (https://shopify.dev/docs/api/usage/bulk-operations/queries) and \"bulk mutation operations\" (https://shopify.dev/docs/api/usage/bulk-operations/imports).\n\n Use \"`bulk execute`\" (https://shopify.dev/docs/api/shopify-cli/app/app-bulk-execute) to start a new bulk operation.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `BulkOperationStatusResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/GetBulkOperationStatusResult\"\n },\n {\n \"$ref\": \"#/definitions/ListBulkOperationsResult\"\n }\n ],\n \"title\": \"BulkOperationStatusResult\",\n \"definitions\": {\n \"GetBulkOperationStatusResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"storeDomain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^[^.]+\\\\.myshopify\\\\.com$\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"apiVersion\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"The API version selected for the request.\"\n },\n \"operationGid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/BulkOperation\\\\/[^/]+$\",\n \"description\": \"The Shopify global ID of a bulk operation.\"\n },\n \"operation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/BulkOperation\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"storeDomain\",\n \"apiVersion\",\n \"operationGid\",\n \"operation\"\n ],\n \"additionalProperties\": false\n },\n \"ListBulkOperationsResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"storeDomain\": {\n \"$ref\": \"#/definitions/GetBulkOperationStatusResult/properties/storeDomain\"\n },\n \"apiVersion\": {\n \"$ref\": \"#/definitions/GetBulkOperationStatusResult/properties/apiVersion\"\n },\n \"operations\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ListedBulkOperation\"\n }\n },\n \"pageInfo\": {\n \"type\": \"object\",\n \"properties\": {\n \"hasNextPage\": {\n \"type\": [\n \"boolean\",\n \"null\"\n ],\n \"description\": \"Unknown when the API result reaches the fetch limit.\"\n }\n },\n \"required\": [\n \"hasNextPage\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"storeDomain\",\n \"apiVersion\",\n \"operations\",\n \"pageInfo\"\n ],\n \"additionalProperties\": false\n },\n \"BulkOperation\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"$ref\": \"#/definitions/GetBulkOperationStatusResult/properties/operationGid\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n },\n \"errorCode\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"pattern\": \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$\",\n \"description\": \"A UTC ISO 8601 instant with whole seconds and the Z timezone marker.\"\n },\n \"completedAt\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/BulkOperation/properties/createdAt\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"A UTC ISO 8601 instant with whole seconds and the Z timezone marker.\"\n },\n \"objectCount\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"A nonnegative decimal count, without loss of integer precision.\"\n },\n \"url\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"partialDataUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"gid\",\n \"type\",\n \"status\",\n \"errorCode\",\n \"createdAt\",\n \"completedAt\",\n \"objectCount\",\n \"url\",\n \"partialDataUrl\"\n ],\n \"additionalProperties\": false\n },\n \"ListedBulkOperation\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"$ref\": \"#/definitions/GetBulkOperationStatusResult/properties/operationGid\"\n },\n \"status\": {\n \"$ref\": \"#/definitions/BulkOperation/properties/status\"\n },\n \"errorCode\": {\n \"$ref\": \"#/definitions/BulkOperation/properties/errorCode\"\n },\n \"createdAt\": {\n \"$ref\": \"#/definitions/BulkOperation/properties/createdAt\"\n },\n \"completedAt\": {\n \"$ref\": \"#/definitions/BulkOperation/properties/completedAt\"\n },\n \"objectCount\": {\n \"$ref\": \"#/definitions/BulkOperation/properties/objectCount\"\n },\n \"url\": {\n \"$ref\": \"#/definitions/BulkOperation/properties/url\"\n },\n \"partialDataUrl\": {\n \"$ref\": \"#/definitions/BulkOperation/properties/partialDataUrl\"\n }\n },\n \"required\": [\n \"gid\",\n \"status\",\n \"errorCode\",\n \"createdAt\",\n \"completedAt\",\n \"objectCount\",\n \"url\",\n \"partialDataUrl\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
226
245
  "flags": {
227
246
  "json-schema": {
228
247
  "description": "Print the command's JSON schemas.",
@@ -262,6 +281,15 @@
262
281
  "allowNo": false,
263
282
  "type": "boolean"
264
283
  },
284
+ "json": {
285
+ "char": "j",
286
+ "description": "Output the result as JSON. Automatically disables color output.",
287
+ "env": "SHOPIFY_FLAG_JSON",
288
+ "hidden": false,
289
+ "name": "json",
290
+ "allowNo": false,
291
+ "type": "boolean"
292
+ },
265
293
  "path": {
266
294
  "description": "The path to your app directory.",
267
295
  "env": "SHOPIFY_FLAG_PATH",
@@ -336,7 +364,7 @@
336
364
  "app:deploy": {
337
365
  "aliases": [],
338
366
  "args": {},
339
- "description": "\"Builds the app\" (https://shopify.dev/docs/api/shopify-cli/app/app-build), then deploys your app configuration and extensions.\n\n This command creates an app version, which is a snapshot of your app configuration and all extensions. This version is then released to users.\n\n 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.\n ",
367
+ "description": "\"Builds the app\" (https://shopify.dev/docs/api/shopify-cli/app/app-build), then deploys your app configuration and extensions.\n\n This command creates an app version, which is a snapshot of your app configuration and all extensions. This version is then released to users.\n\n 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.\n \n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppDeployResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"app\": {\n \"$ref\": \"#/definitions/App\"\n },\n \"deployment\": {\n \"$ref\": \"#/definitions/AppDeployment\"\n }\n },\n \"required\": [\n \"status\",\n \"app\",\n \"deployment\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"partial\"\n },\n \"app\": {\n \"$ref\": \"#/definitions/App\"\n },\n \"deployment\": {\n \"type\": \"object\",\n \"properties\": {\n \"released\": {\n \"type\": \"boolean\",\n \"const\": false\n },\n \"version\": {\n \"$ref\": \"#/definitions/AppDeploymentVersion\"\n }\n },\n \"required\": [\n \"released\",\n \"version\"\n ],\n \"additionalProperties\": false\n },\n \"errors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/JsonAbortError\"\n },\n \"minItems\": 1\n }\n },\n \"required\": [\n \"status\",\n \"app\",\n \"deployment\",\n \"errors\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"AppDeployResult\",\n \"definitions\": {\n \"JsonAbortError\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n \"App\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The client ID of the app receiving the deployment.\"\n }\n },\n \"required\": [\n \"name\",\n \"clientId\"\n ],\n \"additionalProperties\": false\n },\n \"AppDeployment\": {\n \"type\": \"object\",\n \"properties\": {\n \"released\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this command released the version to users.\"\n },\n \"version\": {\n \"$ref\": \"#/definitions/AppDeploymentVersion\"\n }\n },\n \"required\": [\n \"released\",\n \"version\"\n ],\n \"additionalProperties\": false\n },\n \"AppDeploymentVersion\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/Version\\\\/\\\\d+$\",\n \"description\": \"The Shopify app version GID.\"\n },\n \"name\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The version tag, or null when no tag is available.\"\n },\n \"message\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The version message, or null when no message is available.\"\n },\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri\",\n \"description\": \"The Developer Dashboard URL for this version.\"\n }\n },\n \"required\": [\n \"gid\",\n \"name\",\n \"message\",\n \"url\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
340
368
  "flags": {
341
369
  "json-schema": {
342
370
  "description": "Print the command's JSON schemas.",
@@ -415,6 +443,15 @@
415
443
  "allowNo": false,
416
444
  "type": "boolean"
417
445
  },
446
+ "json": {
447
+ "char": "j",
448
+ "description": "Output the result as JSON. Automatically disables color output.",
449
+ "env": "SHOPIFY_FLAG_JSON",
450
+ "hidden": false,
451
+ "name": "json",
452
+ "allowNo": false,
453
+ "type": "boolean"
454
+ },
418
455
  "allow-updates": {
419
456
  "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.",
420
457
  "env": "SHOPIFY_FLAG_ALLOW_UPDATES",
@@ -492,7 +529,7 @@
492
529
  "app:dev": {
493
530
  "aliases": [],
494
531
  "args": {},
495
- "description": "Builds and previews your app on a dev store, and watches for changes. \"Read more about testing apps locally\" (https://shopify.dev/docs/apps/build/cli-for-apps/test-apps-locally).",
532
+ "description": "Builds and previews your app on a dev store, and watches for changes. \"Read more about testing apps locally\" (https://shopify.dev/docs/apps/build/cli-for-apps/test-apps-locally).\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `DevInstanceLogEntry` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"timestamp\": {\n \"$ref\": \"#/definitions/DevInstance/properties/startedAt\"\n },\n \"source\": {\n \"type\": \"string\",\n \"description\": \"What produced the line, for example a process prefix like web or extensions.\"\n },\n \"level\": {\n \"type\": \"string\",\n \"enum\": [\n \"debug\",\n \"info\",\n \"warning\",\n \"error\"\n ]\n },\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"timestamp\",\n \"source\",\n \"message\"\n ],\n \"additionalProperties\": false,\n \"title\": \"DevInstanceLogEntry\",\n \"definitions\": {\n \"DevInstance\": {\n \"type\": \"object\",\n \"properties\": {\n \"schemaVersion\": {\n \"type\": \"number\",\n \"const\": 1\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"command\": {\n \"type\": \"string\",\n \"const\": \"app dev\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"pid\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"starting\",\n \"running\"\n ]\n },\n \"startedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"pattern\": \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$\",\n \"description\": \"A UTC ISO 8601 instant with whole seconds and the Z timezone marker.\"\n },\n \"updatedAt\": {\n \"$ref\": \"#/definitions/DevInstance/properties/startedAt\"\n },\n \"directory\": {\n \"type\": \"string\"\n },\n \"logFile\": {\n \"type\": \"string\"\n },\n \"details\": {\n \"type\": \"object\",\n \"properties\": {\n \"configPath\": {\n \"type\": \"string\"\n },\n \"appName\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"storeFqdn\": {\n \"type\": \"string\"\n },\n \"previewUrl\": {\n \"type\": \"string\"\n },\n \"graphiqlUrl\": {\n \"type\": \"string\"\n },\n \"appUrl\": {\n \"type\": \"string\"\n },\n \"localUrl\": {\n \"type\": \"string\"\n },\n \"preview\": {\n \"$ref\": \"#/definitions/DevPreview\",\n \"description\": \"The CLI-reported preview state in the instance file; this is not a health check.\"\n }\n },\n \"required\": [\n \"configPath\",\n \"appName\",\n \"clientId\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"schemaVersion\",\n \"sessionId\",\n \"command\",\n \"pid\",\n \"status\",\n \"startedAt\",\n \"updatedAt\",\n \"directory\",\n \"logFile\",\n \"details\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The instance JSON file under .shopify/dev/. This object is not emitted to stdout.\"\n },\n \"DevPreview\": {\n \"type\": \"object\",\n \"properties\": {\n \"state\": {\n \"type\": \"string\",\n \"enum\": [\n \"starting\",\n \"updating\",\n \"ready\",\n \"error\"\n ]\n },\n \"message\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"errors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"state\",\n \"message\",\n \"errors\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The CLI-reported preview state in the instance file; this is not a health check.\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
496
533
  "flags": {
497
534
  "json-schema": {
498
535
  "description": "Print the command's JSON schemas.",
@@ -571,6 +608,15 @@
571
608
  "allowNo": false,
572
609
  "type": "boolean"
573
610
  },
611
+ "json": {
612
+ "char": "j",
613
+ "description": "Output the result as JSON. Automatically disables color output.",
614
+ "env": "SHOPIFY_FLAG_JSON",
615
+ "hidden": false,
616
+ "name": "json",
617
+ "allowNo": false,
618
+ "type": "boolean"
619
+ },
574
620
  "store": {
575
621
  "char": "s",
576
622
  "description": "Store URL. Must be an existing development or Shopify Plus sandbox store.",
@@ -722,7 +768,7 @@
722
768
  "app:dev:clean": {
723
769
  "aliases": [],
724
770
  "args": {},
725
- "description": "Stop the dev preview that was started with `shopify app dev`.\n\n It restores the app's active version to the selected development store.\n ",
771
+ "description": "Stop the dev preview that was started with `shopify app dev`.\n\n It restores the app's active version to the selected development store.\n \n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppDevCleanResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"app\": {\n \"$ref\": \"#/definitions/AppDevCleanApp\"\n },\n \"storeDomain\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"The canonical *.myshopify.com hostname, or null when unknown.\"\n }\n },\n \"required\": [\n \"status\",\n \"app\",\n \"storeDomain\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AppDevCleanResult\",\n \"definitions\": {\n \"AppDevCleanApp\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\",\n \"minLength\": 1\n }\n },\n \"required\": [\n \"name\",\n \"clientId\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
726
772
  "flags": {
727
773
  "json-schema": {
728
774
  "description": "Print the command's JSON schemas.",
@@ -801,6 +847,15 @@
801
847
  "allowNo": false,
802
848
  "type": "boolean"
803
849
  },
850
+ "json": {
851
+ "char": "j",
852
+ "description": "Output the result as JSON. Automatically disables color output.",
853
+ "env": "SHOPIFY_FLAG_JSON",
854
+ "hidden": false,
855
+ "name": "json",
856
+ "allowNo": false,
857
+ "type": "boolean"
858
+ },
804
859
  "store": {
805
860
  "char": "s",
806
861
  "description": "Store URL. Must be an existing development store.",
@@ -821,12 +876,103 @@
821
876
  "strict": true,
822
877
  "summary": "Cleans up the dev preview from the selected store.",
823
878
  "descriptionWithMarkdown": "Stop the dev preview that was started with `shopify app dev`.\n\n It restores the app's active version to the selected development store.\n ",
879
+ "jsonOutputSchema": {
880
+ "name": "AppDevCleanResult",
881
+ "schema": {
882
+ "_def": {
883
+ "unknownKeys": "strict",
884
+ "catchall": {
885
+ "_def": {
886
+ "typeName": "ZodNever"
887
+ },
888
+ "~standard": {
889
+ "version": 1,
890
+ "vendor": "zod"
891
+ }
892
+ },
893
+ "typeName": "ZodObject"
894
+ },
895
+ "~standard": {
896
+ "version": 1,
897
+ "vendor": "zod"
898
+ },
899
+ "_cached": null
900
+ },
901
+ "definitions": {
902
+ "AppDevCleanApp": {
903
+ "_def": {
904
+ "unknownKeys": "strict",
905
+ "catchall": {
906
+ "_def": {
907
+ "typeName": "ZodNever"
908
+ },
909
+ "~standard": {
910
+ "version": 1,
911
+ "vendor": "zod"
912
+ }
913
+ },
914
+ "typeName": "ZodObject"
915
+ },
916
+ "~standard": {
917
+ "version": 1,
918
+ "vendor": "zod"
919
+ },
920
+ "_cached": null
921
+ }
922
+ },
923
+ "jsonSchema": {
924
+ "type": "object",
925
+ "properties": {
926
+ "status": {
927
+ "type": "string",
928
+ "const": "success"
929
+ },
930
+ "app": {
931
+ "$ref": "#/definitions/AppDevCleanApp"
932
+ },
933
+ "storeDomain": {
934
+ "type": [
935
+ "string",
936
+ "null"
937
+ ],
938
+ "description": "The canonical *.myshopify.com hostname, or null when unknown."
939
+ }
940
+ },
941
+ "required": [
942
+ "status",
943
+ "app",
944
+ "storeDomain"
945
+ ],
946
+ "additionalProperties": false,
947
+ "title": "AppDevCleanResult",
948
+ "definitions": {
949
+ "AppDevCleanApp": {
950
+ "type": "object",
951
+ "properties": {
952
+ "name": {
953
+ "type": "string"
954
+ },
955
+ "clientId": {
956
+ "type": "string",
957
+ "minLength": 1
958
+ }
959
+ },
960
+ "required": [
961
+ "name",
962
+ "clientId"
963
+ ],
964
+ "additionalProperties": false
965
+ }
966
+ },
967
+ "$schema": "http://json-schema.org/draft-07/schema#"
968
+ }
969
+ },
824
970
  "customPluginName": "@shopify/app"
825
971
  },
826
972
  "app:security:check": {
827
973
  "aliases": [],
828
974
  "args": {},
829
- "description": "Runs an app security check locally and writes `deterministic-findings.json` and `agent-checks.json` to the results directory, `.shopify/app-security/<results key>/`. The results key is `--client-id` when you pass it, and otherwise the name of the app configuration file without `.toml`; the other `app security` commands take the same selection flags and find the same directory. Every run replaces both files, so it's always safe to run the check again.\n\n`deterministic-findings.json` holds the deterministic scan results. `agent-checks.json` holds the checks for your coding agent to investigate; the agent's results are recorded with `shopify app security record`. Use `--config` to select a specific app configuration when the project has multiple `shopify.app*.toml` files; the check inspects only that configuration. Use `--client-id` to replace the configuration's client ID for this run. `--client-id` is checked against your Shopify account before anything is scanned, so it needs you to be logged in. When no app configuration exists, use `--without-app-config --client-id <client-id>` to scan `--path` anyway with config checks skipped; in an interactive terminal the command offers to do this.\n\nThe check scans the app directory and each `--include-dir`. Git ignore rules apply by default: a file or directory that Git ignores is skipped, using the rules of the repository that contains it, while files that Git tracks are always scanned. Use `--no-git-ignore` to turn Git ignore rules off for every scanned directory. When the check uses Git, it requires Git 2.38.0 or later.\n\nUse `--exclude` to skip more paths. Each value is a glob that is matched against the path relative to the working directory, so a path above it starts with `../`, and a name at any depth needs `**/`, for example `--exclude '**/generated'`. Repeat the flag to add globs. An exclusion can't remove the selected app configuration file. Quote each value so your shell doesn't expand `*`. The coding-agent instructions this check offers repeat the globs. Other `app security` commands don't take `--exclude` or `--no-git-ignore`, so pass the same flags each time you run the check.\n\nUse `--list-files` to check the scope before scanning: it prints the files the check would gather, one path per line and relative to the app directory, and then stops. It writes no results and never prompts. `--client-id` is still checked, but doesn't change the list.\n\nIn interactive terminals, the command offers to copy the coding-agent instructions, print them, or choose nothing; copying is the default. In CI and other non-interactive environments, instructions aren't offered unless you pass `--print-instructions`, which prints them. You can also run `shopify app security instructions` to print, copy, or write them later.\n\nReports the number of findings to Shopify as usage telemetry, but not finding details. See \"usage reporting\" (https://shopify.dev/docs/api/shopify-cli#usage-reporting) for details.",
975
+ "description": "Runs an app security check locally and writes `deterministic-findings.json` and `agent-checks.json` to the results directory, `.shopify/app-security/<results key>/`. The results key is `--client-id` when you pass it, and otherwise the name of the app configuration file without `.toml`; the other `app security` commands take the same selection flags and find the same directory. Every run replaces both files, so it's always safe to run the check again.\n\n`deterministic-findings.json` holds the deterministic scan results. `agent-checks.json` holds the checks for your coding agent to investigate; the agent's results are recorded with `shopify app security record`. Use `--config` to select a specific app configuration when the project has multiple `shopify.app*.toml` files; the check inspects only that configuration. Use `--client-id` to replace the configuration's client ID for this run. `--client-id` is checked against your Shopify account before anything is scanned, so it needs you to be logged in. When no app configuration exists, use `--without-app-config --client-id <client-id>` to scan `--path` anyway with config checks skipped; in an interactive terminal the command offers to do this.\n\nThe check scans the app directory and each `--include-dir`. Git ignore rules apply by default: a file or directory that Git ignores is skipped, using the rules of the repository that contains it, while files that Git tracks are always scanned. Use `--no-git-ignore` to turn Git ignore rules off for every scanned directory. When the check uses Git, it requires Git 2.38.0 or later.\n\nUse `--exclude` to skip more paths. Each value is a glob that is matched against the path relative to the working directory, so a path above it starts with `../`, and a name at any depth needs `**/`, for example `--exclude '**/generated'`. Repeat the flag to add globs. An exclusion can't remove the selected app configuration file. Quote each value so your shell doesn't expand `*`. The coding-agent instructions this check offers repeat the globs. Other `app security` commands don't take `--exclude` or `--no-git-ignore`, so pass the same flags each time you run the check.\n\nUse `--list-files` to check the scope before scanning: it prints the files the check would gather, one path per line and relative to the app directory, and then stops. It writes no results and never prompts. `--client-id` is still checked, but doesn't change the list. With `--json`, the result lists the files with absolute paths.\n\nIn interactive terminals, the command offers to copy the coding-agent instructions, print them, or choose nothing; copying is the default. In CI and other non-interactive environments, instructions aren't offered unless you pass `--print-instructions`, which prints them. You can also run `shopify app security instructions` to print, copy, or write them later. With `--json`, the command offers to include the instructions in the result, with or without copying them, and `--print-instructions` includes them.\n\nWith `--json`, the result describes the scan and the files it wrote, and whether `--blocking` passed, but not the findings: run `shopify app security review --json` for those.\n\nReports the number of findings to Shopify as usage telemetry, but not finding details. See \"usage reporting\" (https://shopify.dev/docs/api/shopify-cli#usage-reporting) for details.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppSecurityCheckResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"valid\": {\n \"type\": \"boolean\",\n \"description\": \"Whether --blocking passed: no finding of the scan has its own severity at or above the level. blocking.blockedCheckCount counts the checks with such findings, and --blocking none always passes. Run review --json for the findings.\"\n },\n \"app\": {\n \"$ref\": \"#/definitions/AppSecurityApp\"\n },\n \"resultsDirectory\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of the results directory that holds the files the scan wrote.\"\n },\n \"deterministicFindingsPath\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of deterministic-findings.json, which the scan replaced.\"\n },\n \"agentChecksPath\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of agent-checks.json, which the scan replaced.\"\n },\n \"scope\": {\n \"$ref\": \"#/definitions/AppSecurityScope\"\n },\n \"scanDirectories\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/AppSecurityScanDirectory\"\n },\n \"description\": \"The directories that the scan walked.\"\n },\n \"agentCheckCount\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"The number of checks in agent-checks.json for a coding agent to investigate.\"\n },\n \"blocking\": {\n \"$ref\": \"#/definitions/AppSecurityBlocking\"\n },\n \"instructions\": {\n \"$ref\": \"#/definitions/AppSecurityInstructions\",\n \"description\": \"The coding-agent instructions for this scan, with --print-instructions or when chosen at the prompt. Left out otherwise.\"\n }\n },\n \"required\": [\n \"status\",\n \"valid\",\n \"app\",\n \"resultsDirectory\",\n \"deterministicFindingsPath\",\n \"agentChecksPath\",\n \"scope\",\n \"scanDirectories\",\n \"agentCheckCount\",\n \"blocking\"\n ],\n \"additionalProperties\": false\n },\n {\n \"$ref\": \"#/definitions/AppSecurityCheckFileList\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Asked whether to scan without app configuration, the user declined. Nothing was scanned or written.\"\n }\n ],\n \"description\": \"The scan and the files it wrote. With --list-files, the files that a scan would gather.\",\n \"title\": \"AppSecurityCheckResult\",\n \"definitions\": {\n \"AppSecurityApp\": {\n \"type\": \"object\",\n \"properties\": {\n \"directory\": {\n \"type\": \"string\",\n \"description\": \"The absolute app directory.\"\n },\n \"configurationPath\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The absolute path of the selected app configuration file, or null with --without-app-config.\"\n },\n \"clientId\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The --client-id value when passed, otherwise the app configuration's client_id. Null when the app configuration isn't linked.\"\n }\n },\n \"required\": [\n \"directory\",\n \"configurationPath\",\n \"clientId\"\n ],\n \"additionalProperties\": false\n },\n \"AppSecurityScope\": {\n \"type\": \"object\",\n \"properties\": {\n \"includeDirs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"The --include-dir values.\"\n },\n \"excludes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"The --exclude globs.\"\n },\n \"noGitIgnore\": {\n \"type\": \"boolean\",\n \"description\": \"Whether --no-git-ignore was passed.\"\n }\n },\n \"required\": [\n \"includeDirs\",\n \"excludes\",\n \"noGitIgnore\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The check flags that chose which files were gathered, exactly as typed.\"\n },\n \"AppSecurityScanDirectory\": {\n \"type\": \"object\",\n \"properties\": {\n \"directory\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of the directory.\"\n },\n \"origin\": {\n \"type\": \"string\",\n \"enum\": [\n \"app-directory\",\n \"include-dir\",\n \"app-config-directory\"\n ],\n \"description\": \"Why it was scanned: it is the app directory, an --include-dir value, or an extension or web directory of the app configuration.\"\n }\n },\n \"required\": [\n \"directory\",\n \"origin\"\n ],\n \"additionalProperties\": false,\n \"description\": \"A directory that check scanned.\"\n },\n \"AppSecurityBlocking\": {\n \"type\": \"object\",\n \"properties\": {\n \"level\": {\n \"type\": \"string\",\n \"enum\": [\n \"high\",\n \"medium\",\n \"low\",\n \"none\"\n ],\n \"description\": \"The --blocking severity.\"\n },\n \"blockedCheckCount\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"The number of checks with findings at or above that severity. Always 0 for none.\"\n }\n },\n \"required\": [\n \"level\",\n \"blockedCheckCount\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The --blocking policy and the checks that fail it.\"\n },\n \"AppSecurityInstructions\": {\n \"type\": \"object\",\n \"properties\": {\n \"content\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The instructions in Markdown, as printed without --json.\"\n },\n \"copied\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the instructions were also copied to the clipboard.\"\n }\n },\n \"required\": [\n \"content\",\n \"copied\"\n ],\n \"additionalProperties\": false\n },\n \"AppSecurityCheckFileList\": {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"app\": {\n \"$ref\": \"#/definitions/AppSecurityApp\"\n },\n \"scope\": {\n \"$ref\": \"#/definitions/AppSecurityScope\"\n },\n \"scanDirectories\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/AppSecurityScanDirectory\"\n },\n \"description\": \"The directories that a scan would walk.\"\n },\n \"files\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of the file.\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"additionalProperties\": false\n },\n \"description\": \"The files that a scan would gather, ordered by their paths relative to the app directory, as listed without --json.\"\n }\n },\n \"required\": [\n \"status\",\n \"app\",\n \"scope\",\n \"scanDirectories\",\n \"files\"\n ],\n \"additionalProperties\": false,\n \"description\": \"With --list-files, the files that a scan would gather. Nothing is scanned or written.\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
830
976
  "examples": [
831
977
  "<%= config.bin %> <%= command.id %>",
832
978
  "<%= config.bin %> <%= command.id %> --include-dir ../backend",
@@ -933,7 +1079,7 @@
933
1079
  "type": "boolean"
934
1080
  },
935
1081
  "list-files": {
936
- "description": "Print the files the check would gather, one path per line, and stop. Nothing is scanned, no results are written, and nothing is prompted for.",
1082
+ "description": "Print the files the check would gather, one path per line, and stop. Nothing is scanned, no results are written, and nothing is prompted for. With --json, the result lists them with absolute paths.",
937
1083
  "env": "SHOPIFY_FLAG_LIST_FILES",
938
1084
  "exclusive": [
939
1085
  "print-instructions",
@@ -960,7 +1106,7 @@
960
1106
  "type": "option"
961
1107
  },
962
1108
  "print-instructions": {
963
- "description": "Print coding-agent instructions without prompting for how to deliver them.",
1109
+ "description": "Print coding-agent instructions without prompting for how to deliver them. With --json, the instructions are included in the result.",
964
1110
  "env": "SHOPIFY_FLAG_APP_SECURITY_PRINT_INSTRUCTIONS",
965
1111
  "exclusive": [
966
1112
  "skip-instructions"
@@ -993,6 +1139,15 @@
993
1139
  "name": "skip-instructions",
994
1140
  "allowNo": false,
995
1141
  "type": "boolean"
1142
+ },
1143
+ "json": {
1144
+ "char": "j",
1145
+ "description": "Output the result as JSON. Automatically disables color output.",
1146
+ "env": "SHOPIFY_FLAG_JSON",
1147
+ "hidden": false,
1148
+ "name": "json",
1149
+ "allowNo": false,
1150
+ "type": "boolean"
996
1151
  }
997
1152
  },
998
1153
  "hasDynamicHelp": false,
@@ -1004,13 +1159,13 @@
1004
1159
  "strict": true,
1005
1160
  "summary": "Check an app for Shopify-specific security issues and write deterministic-findings.json and agent-checks.json.",
1006
1161
  "enableJsonFlag": false,
1007
- "descriptionWithMarkdown": "Runs an app security check locally and writes `deterministic-findings.json` and `agent-checks.json` to the results directory, `.shopify/app-security/<results key>/`. The results key is `--client-id` when you pass it, and otherwise the name of the app configuration file without `.toml`; the other `app security` commands take the same selection flags and find the same directory. Every run replaces both files, so it's always safe to run the check again.\n\n`deterministic-findings.json` holds the deterministic scan results. `agent-checks.json` holds the checks for your coding agent to investigate; the agent's results are recorded with `shopify app security record`. Use `--config` to select a specific app configuration when the project has multiple `shopify.app*.toml` files; the check inspects only that configuration. Use `--client-id` to replace the configuration's client ID for this run. `--client-id` is checked against your Shopify account before anything is scanned, so it needs you to be logged in. When no app configuration exists, use `--without-app-config --client-id <client-id>` to scan `--path` anyway with config checks skipped; in an interactive terminal the command offers to do this.\n\nThe check scans the app directory and each `--include-dir`. Git ignore rules apply by default: a file or directory that Git ignores is skipped, using the rules of the repository that contains it, while files that Git tracks are always scanned. Use `--no-git-ignore` to turn Git ignore rules off for every scanned directory. When the check uses Git, it requires Git 2.38.0 or later.\n\nUse `--exclude` to skip more paths. Each value is a glob that is matched against the path relative to the working directory, so a path above it starts with `../`, and a name at any depth needs `**/`, for example `--exclude '**/generated'`. Repeat the flag to add globs. An exclusion can't remove the selected app configuration file. Quote each value so your shell doesn't expand `*`. The coding-agent instructions this check offers repeat the globs. Other `app security` commands don't take `--exclude` or `--no-git-ignore`, so pass the same flags each time you run the check.\n\nUse `--list-files` to check the scope before scanning: it prints the files the check would gather, one path per line and relative to the app directory, and then stops. It writes no results and never prompts. `--client-id` is still checked, but doesn't change the list.\n\nIn interactive terminals, the command offers to copy the coding-agent instructions, print them, or choose nothing; copying is the default. In CI and other non-interactive environments, instructions aren't offered unless you pass `--print-instructions`, which prints them. You can also run `shopify app security instructions` to print, copy, or write them later.\n\nReports the number of findings to Shopify as usage telemetry, but not finding details. See [usage reporting](https://shopify.dev/docs/api/shopify-cli#usage-reporting) for details.",
1162
+ "descriptionWithMarkdown": "Runs an app security check locally and writes `deterministic-findings.json` and `agent-checks.json` to the results directory, `.shopify/app-security/<results key>/`. The results key is `--client-id` when you pass it, and otherwise the name of the app configuration file without `.toml`; the other `app security` commands take the same selection flags and find the same directory. Every run replaces both files, so it's always safe to run the check again.\n\n`deterministic-findings.json` holds the deterministic scan results. `agent-checks.json` holds the checks for your coding agent to investigate; the agent's results are recorded with `shopify app security record`. Use `--config` to select a specific app configuration when the project has multiple `shopify.app*.toml` files; the check inspects only that configuration. Use `--client-id` to replace the configuration's client ID for this run. `--client-id` is checked against your Shopify account before anything is scanned, so it needs you to be logged in. When no app configuration exists, use `--without-app-config --client-id <client-id>` to scan `--path` anyway with config checks skipped; in an interactive terminal the command offers to do this.\n\nThe check scans the app directory and each `--include-dir`. Git ignore rules apply by default: a file or directory that Git ignores is skipped, using the rules of the repository that contains it, while files that Git tracks are always scanned. Use `--no-git-ignore` to turn Git ignore rules off for every scanned directory. When the check uses Git, it requires Git 2.38.0 or later.\n\nUse `--exclude` to skip more paths. Each value is a glob that is matched against the path relative to the working directory, so a path above it starts with `../`, and a name at any depth needs `**/`, for example `--exclude '**/generated'`. Repeat the flag to add globs. An exclusion can't remove the selected app configuration file. Quote each value so your shell doesn't expand `*`. The coding-agent instructions this check offers repeat the globs. Other `app security` commands don't take `--exclude` or `--no-git-ignore`, so pass the same flags each time you run the check.\n\nUse `--list-files` to check the scope before scanning: it prints the files the check would gather, one path per line and relative to the app directory, and then stops. It writes no results and never prompts. `--client-id` is still checked, but doesn't change the list. With `--json`, the result lists the files with absolute paths.\n\nIn interactive terminals, the command offers to copy the coding-agent instructions, print them, or choose nothing; copying is the default. In CI and other non-interactive environments, instructions aren't offered unless you pass `--print-instructions`, which prints them. You can also run `shopify app security instructions` to print, copy, or write them later. With `--json`, the command offers to include the instructions in the result, with or without copying them, and `--print-instructions` includes them.\n\nWith `--json`, the result describes the scan and the files it wrote, and whether `--blocking` passed, but not the findings: run `shopify app security review --json` for those.\n\nReports the number of findings to Shopify as usage telemetry, but not finding details. See [usage reporting](https://shopify.dev/docs/api/shopify-cli#usage-reporting) for details.",
1008
1163
  "customPluginName": "@shopify/app"
1009
1164
  },
1010
1165
  "app:security:clean": {
1011
1166
  "aliases": [],
1012
1167
  "args": {},
1013
- "description": "Deletes the results directory, `.shopify/app-security/<results key>/`, without asking. The results key is `--client-id` when you pass it, and otherwise the name of the app configuration file without `.toml`. Other results directories are left alone. Prints each removed path.\n\nUse `--all` to delete every results directory under `.shopify/app-security/` instead. `--all` takes neither `--config` nor `--client-id`, and with `--without-app-config` it doesn't need `--client-id`.",
1168
+ "description": "Deletes the results directory, `.shopify/app-security/<results key>/`, without asking. The results key is `--client-id` when you pass it, and otherwise the name of the app configuration file without `.toml`. Other results directories are left alone. Prints each removed path.\n\nUse `--all` to delete every results directory under `.shopify/app-security/` instead. `--all` takes neither `--config` nor `--client-id`, and with `--without-app-config` it doesn't need `--client-id`.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppSecurityCleanResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"boolean\",\n \"description\": \"Whether any results directory was removed.\"\n },\n \"app\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/AppSecurityApp\"\n },\n {\n \"$ref\": \"#/definitions/AppSecurityCleanAllApp\"\n }\n ],\n \"description\": \"The selected app. With --all, only its directory.\"\n },\n \"resultsDirectories\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"The absolute paths of the removed results directories, sorted. Empty when there was nothing to remove.\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"app\",\n \"resultsDirectories\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AppSecurityCleanResult\",\n \"definitions\": {\n \"AppSecurityApp\": {\n \"type\": \"object\",\n \"properties\": {\n \"directory\": {\n \"type\": \"string\",\n \"description\": \"The absolute app directory.\"\n },\n \"configurationPath\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The absolute path of the selected app configuration file, or null with --without-app-config.\"\n },\n \"clientId\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The --client-id value when passed, otherwise the app configuration's client_id. Null when the app configuration isn't linked.\"\n }\n },\n \"required\": [\n \"directory\",\n \"configurationPath\",\n \"clientId\"\n ],\n \"additionalProperties\": false\n },\n \"AppSecurityCleanAllApp\": {\n \"type\": \"object\",\n \"properties\": {\n \"directory\": {\n \"type\": \"string\",\n \"description\": \"The absolute app directory.\"\n }\n },\n \"required\": [\n \"directory\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
1014
1169
  "flags": {
1015
1170
  "json-schema": {
1016
1171
  "description": "Print the command's JSON schemas.",
@@ -1093,6 +1248,15 @@
1093
1248
  "allowNo": false,
1094
1249
  "type": "boolean"
1095
1250
  },
1251
+ "json": {
1252
+ "char": "j",
1253
+ "description": "Output the result as JSON. Automatically disables color output.",
1254
+ "env": "SHOPIFY_FLAG_JSON",
1255
+ "hidden": false,
1256
+ "name": "json",
1257
+ "allowNo": false,
1258
+ "type": "boolean"
1259
+ },
1096
1260
  "all": {
1097
1261
  "description": "Delete every results directory under .shopify/app-security/, not only the selected one.",
1098
1262
  "exclusive": [
@@ -1119,7 +1283,7 @@
1119
1283
  "app:security:instructions": {
1120
1284
  "aliases": [],
1121
1285
  "args": {},
1122
- "description": "Prints the complete workflow that a coding agent should follow to review app security check results.\n\nBy default, the instructions are printed to stdout. Use `--copy` to copy them to the clipboard or `--write` to write them to a file. Standalone instructions always start by running `shopify app security check`; only that invocation's generated review pack is trusted as workflow input.",
1286
+ "description": "Prints the complete workflow that a coding agent should follow to review app security check results.\n\nBy default, the instructions are printed to stdout. Use `--copy` to copy them to the clipboard or `--write` to write them to a file. Standalone instructions always start by running `shopify app security check`; only that invocation's generated review pack is trusted as workflow input.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppSecurityInstructionsResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"app\": {\n \"$ref\": \"#/definitions/AppSecurityApp\"\n },\n \"resultsDirectory\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of the results directory that the instructions use. It may not exist yet: the instructions start by running check, which creates it.\"\n },\n \"instructions\": {\n \"$ref\": \"#/definitions/AppSecurityInstructions\"\n }\n },\n \"required\": [\n \"status\",\n \"app\",\n \"resultsDirectory\",\n \"instructions\"\n ],\n \"additionalProperties\": false\n },\n {\n \"$ref\": \"#/definitions/AppSecurityInstructionsFile\"\n }\n ],\n \"description\": \"The instructions and the app they are for. With --write, only the file they were written to.\",\n \"title\": \"AppSecurityInstructionsResult\",\n \"definitions\": {\n \"AppSecurityApp\": {\n \"type\": \"object\",\n \"properties\": {\n \"directory\": {\n \"type\": \"string\",\n \"description\": \"The absolute app directory.\"\n },\n \"configurationPath\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The absolute path of the selected app configuration file, or null with --without-app-config.\"\n },\n \"clientId\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The --client-id value when passed, otherwise the app configuration's client_id. Null when the app configuration isn't linked.\"\n }\n },\n \"required\": [\n \"directory\",\n \"configurationPath\",\n \"clientId\"\n ],\n \"additionalProperties\": false\n },\n \"AppSecurityInstructions\": {\n \"type\": \"object\",\n \"properties\": {\n \"content\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The instructions in Markdown, as printed without --json.\"\n },\n \"copied\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the instructions were also copied to the clipboard.\"\n }\n },\n \"required\": [\n \"content\",\n \"copied\"\n ],\n \"additionalProperties\": false\n },\n \"AppSecurityInstructionsFile\": {\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of the file that the instructions were written to.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"markdown\",\n \"description\": \"The file holds the instructions in Markdown, not a JSON result.\"\n }\n },\n \"required\": [\n \"path\",\n \"format\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
1123
1287
  "flags": {
1124
1288
  "json-schema": {
1125
1289
  "description": "Print the command's JSON schemas.",
@@ -1196,7 +1360,7 @@
1196
1360
  "type": "boolean"
1197
1361
  },
1198
1362
  "copy": {
1199
- "description": "Copy the instructions to the clipboard instead of printing them.",
1363
+ "description": "Copy the instructions to the clipboard instead of printing them. With --json, the result still includes them.",
1200
1364
  "env": "SHOPIFY_FLAG_APP_SECURITY_INSTRUCTIONS_COPY",
1201
1365
  "exclusive": [
1202
1366
  "write"
@@ -1206,7 +1370,7 @@
1206
1370
  "type": "boolean"
1207
1371
  },
1208
1372
  "write": {
1209
- "description": "Write the instructions to a file instead of printing them.",
1373
+ "description": "Write the instructions to a file instead of printing them. With --json, stdout contains only the absolute path and Markdown format of the written file.",
1210
1374
  "env": "SHOPIFY_FLAG_APP_SECURITY_INSTRUCTIONS_WRITE",
1211
1375
  "exclusive": [
1212
1376
  "copy"
@@ -1215,6 +1379,15 @@
1215
1379
  "hasDynamicHelp": false,
1216
1380
  "multiple": false,
1217
1381
  "type": "option"
1382
+ },
1383
+ "json": {
1384
+ "char": "j",
1385
+ "description": "Output the result as JSON. Automatically disables color output.",
1386
+ "env": "SHOPIFY_FLAG_JSON",
1387
+ "hidden": false,
1388
+ "name": "json",
1389
+ "allowNo": false,
1390
+ "type": "boolean"
1218
1391
  }
1219
1392
  },
1220
1393
  "hasDynamicHelp": false,
@@ -1232,7 +1405,7 @@
1232
1405
  "app:security:record": {
1233
1406
  "aliases": [],
1234
1407
  "args": {},
1235
- "description": "Reads a coding agent's complete findings document from stdin, validates it, and replaces `agent-findings.json` in the results directory, `.shopify/app-security/<results key>/`. The results key is `--client-id` when you pass it, and otherwise the name of the app configuration file without `.toml`. `--client-id` is checked against your Shopify account before anything is read, so it needs you to be logged in.\n\nThe document must include a `scope` with the `include_dirs`, `excludes` and `no_git_ignore` values of the `check` run it describes, exactly as typed. It's recorded as reported and never compared with the scan's files.\n\nThe document is recorded all or nothing: if anything is invalid, the command fails with every error, writes nothing, and exits with a non-zero code. It needs the results directory that `shopify app security check` creates.\n\nReports the number of findings to Shopify as usage telemetry, but not finding details. See \"usage reporting\" (https://shopify.dev/docs/api/shopify-cli#usage-reporting) for details.",
1408
+ "description": "Reads a coding agent's complete findings document from stdin, validates it, and replaces `agent-findings.json` in the results directory, `.shopify/app-security/<results key>/`. The results key is `--client-id` when you pass it, and otherwise the name of the app configuration file without `.toml`. `--client-id` is checked against your Shopify account before anything is read, so it needs you to be logged in.\n\nThe document must include a `scope` with the `include_dirs`, `excludes` and `no_git_ignore` values of the `check` run it describes, exactly as typed. It's recorded as reported and never compared with the scan's files.\n\nThe document is recorded all or nothing: if anything is invalid, the command fails with every error, writes nothing, and exits with a non-zero code. It needs the results directory that `shopify app security check` creates.\n\nReports the number of findings to Shopify as usage telemetry, but not finding details. See \"usage reporting\" (https://shopify.dev/docs/api/shopify-cli#usage-reporting) for details.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppSecurityRecordResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"app\": {\n \"$ref\": \"#/definitions/AppSecurityApp\"\n },\n \"resultsDirectory\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of the results directory.\"\n },\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of the agent-findings.json file that was written.\"\n },\n \"checkCount\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"The number of checks recorded.\"\n },\n \"findingCount\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"The number of findings recorded, across every check.\"\n }\n },\n \"required\": [\n \"status\",\n \"app\",\n \"resultsDirectory\",\n \"path\",\n \"checkCount\",\n \"findingCount\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AppSecurityRecordResult\",\n \"definitions\": {\n \"AppSecurityApp\": {\n \"type\": \"object\",\n \"properties\": {\n \"directory\": {\n \"type\": \"string\",\n \"description\": \"The absolute app directory.\"\n },\n \"configurationPath\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The absolute path of the selected app configuration file, or null with --without-app-config.\"\n },\n \"clientId\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The --client-id value when passed, otherwise the app configuration's client_id. Null when the app configuration isn't linked.\"\n }\n },\n \"required\": [\n \"directory\",\n \"configurationPath\",\n \"clientId\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
1236
1409
  "flags": {
1237
1410
  "json-schema": {
1238
1411
  "description": "Print the command's JSON schemas.",
@@ -1307,6 +1480,15 @@
1307
1480
  "name": "without-app-config",
1308
1481
  "allowNo": false,
1309
1482
  "type": "boolean"
1483
+ },
1484
+ "json": {
1485
+ "char": "j",
1486
+ "description": "Output the result as JSON. Automatically disables color output.",
1487
+ "env": "SHOPIFY_FLAG_JSON",
1488
+ "hidden": false,
1489
+ "name": "json",
1490
+ "allowNo": false,
1491
+ "type": "boolean"
1310
1492
  }
1311
1493
  },
1312
1494
  "hasDynamicHelp": false,
@@ -1324,7 +1506,7 @@
1324
1506
  "app:security:review": {
1325
1507
  "aliases": [],
1326
1508
  "args": {},
1327
- "description": "Combines the deterministic results (`deterministic-findings.json`, written by `shopify app security check`) with the recorded agent results (`agent-findings.json`, written by `shopify app security record`) and shows one view of every check: its findings, status and source. Both files are in the results directory, `.shopify/app-security/<results key>/`. `--client-id` is checked against your Shopify account before any results are read, so it needs you to be logged in.\n\nThe summary shows the scan directories and the scope of the latest scan, and the scope the agent reported. It notes when the agent findings were recorded for a different scope than the latest scan; that doesn't change the exit code.\n\nThe agent results are optional. Use `--check-id` to narrow the review to specific checks, `--verbose` for full reasoning, evidence and suppressed findings, and `--blocking` to exit with code 1 when a check with findings is at or above a severity.\n\nReports the number of findings to Shopify as usage telemetry, but not finding details. See \"usage reporting\" (https://shopify.dev/docs/api/shopify-cli#usage-reporting) for details.",
1509
+ "description": "Combines the deterministic results (`deterministic-findings.json`, written by `shopify app security check`) with the recorded agent results (`agent-findings.json`, written by `shopify app security record`) and shows one view of every check: its findings, status and source. Both files are in the results directory, `.shopify/app-security/<results key>/`. `--client-id` is checked against your Shopify account before any results are read, so it needs you to be logged in.\n\nThe summary shows the scan directories and the scope of the latest scan, and the scope the agent reported. It notes when the agent findings were recorded for a different scope than the latest scan; that doesn't change the exit code.\n\nThe agent results are optional. Use `--check-id` to narrow the review to specific checks, `--verbose` for full reasoning, evidence and suppressed findings, and `--blocking` to exit with code 1 when a check with findings is at or above a severity. With `--json`, the result always includes every finding in full.\n\nReports the number of findings to Shopify as usage telemetry, but not finding details. See \"usage reporting\" (https://shopify.dev/docs/api/shopify-cli#usage-reporting) for details.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppSecurityReviewResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"valid\": {\n \"type\": \"boolean\",\n \"description\": \"Whether --blocking passed: no check in checks has an active finding and a severity at or above the level. Unresolved checks never fail it, and --blocking none always passes.\"\n },\n \"app\": {\n \"$ref\": \"#/definitions/AppSecurityApp\"\n },\n \"resultsDirectory\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of the results directory.\"\n },\n \"resultsFiles\": {\n \"type\": \"object\",\n \"properties\": {\n \"deterministic\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/AppSecurityDeterministicResultsFile\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"deterministic-findings.json, which check writes, with the scope of the scan.\"\n },\n \"agent\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/AppSecurityAgentResultsFile\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"agent-findings.json, which record writes, with the scope that the agent reported.\"\n }\n },\n \"required\": [\n \"deterministic\",\n \"agent\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The results files that the review combines. Null when a file does not exist.\"\n },\n \"detection\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/AppSecurityDetection\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"What the latest check detected in the app, or null without deterministic-findings.json.\"\n },\n \"coverage\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/AppSecurityCoverage\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"What the latest check covered, or null without deterministic-findings.json.\"\n },\n \"scopeDiffers\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the agent reported another scope than the latest scan used. False unless both results files exist.\"\n },\n \"checks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/AppSecurityCheck\"\n },\n \"description\": \"The checks after --check-id, most severe first, then by ID. Empty when no results file exists.\"\n },\n \"blocking\": {\n \"$ref\": \"#/definitions/AppSecurityBlocking\"\n }\n },\n \"required\": [\n \"status\",\n \"valid\",\n \"app\",\n \"resultsDirectory\",\n \"resultsFiles\",\n \"detection\",\n \"coverage\",\n \"scopeDiffers\",\n \"checks\",\n \"blocking\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The combined results of the app security check.\",\n \"title\": \"AppSecurityReviewResult\",\n \"definitions\": {\n \"AppSecurityApp\": {\n \"type\": \"object\",\n \"properties\": {\n \"directory\": {\n \"type\": \"string\",\n \"description\": \"The absolute app directory.\"\n },\n \"configurationPath\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The absolute path of the selected app configuration file, or null with --without-app-config.\"\n },\n \"clientId\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The --client-id value when passed, otherwise the app configuration's client_id. Null when the app configuration isn't linked.\"\n }\n },\n \"required\": [\n \"directory\",\n \"configurationPath\",\n \"clientId\"\n ],\n \"additionalProperties\": false\n },\n \"AppSecurityScope\": {\n \"type\": \"object\",\n \"properties\": {\n \"includeDirs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"The --include-dir values.\"\n },\n \"excludes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"The --exclude globs.\"\n },\n \"noGitIgnore\": {\n \"type\": \"boolean\",\n \"description\": \"Whether --no-git-ignore was passed.\"\n }\n },\n \"required\": [\n \"includeDirs\",\n \"excludes\",\n \"noGitIgnore\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The check flags that chose which files were gathered, exactly as typed.\"\n },\n \"AppSecurityScanDirectory\": {\n \"type\": \"object\",\n \"properties\": {\n \"directory\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of the directory.\"\n },\n \"origin\": {\n \"type\": \"string\",\n \"enum\": [\n \"app-directory\",\n \"include-dir\",\n \"app-config-directory\"\n ],\n \"description\": \"Why it was scanned: it is the app directory, an --include-dir value, or an extension or web directory of the app configuration.\"\n }\n },\n \"required\": [\n \"directory\",\n \"origin\"\n ],\n \"additionalProperties\": false,\n \"description\": \"A directory that check scanned.\"\n },\n \"AppSecurityBlocking\": {\n \"type\": \"object\",\n \"properties\": {\n \"level\": {\n \"type\": \"string\",\n \"enum\": [\n \"high\",\n \"medium\",\n \"low\",\n \"none\"\n ],\n \"description\": \"The --blocking severity.\"\n },\n \"blockedCheckCount\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"The number of checks with findings at or above that severity. Always 0 for none.\"\n }\n },\n \"required\": [\n \"level\",\n \"blockedCheckCount\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The --blocking policy and the checks that fail it.\"\n },\n \"AppSecurityDeterministicResultsFile\": {\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of deterministic-findings.json.\"\n },\n \"generatedAt\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"pattern\": \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$\",\n \"description\": \"A UTC ISO 8601 instant with whole seconds and the Z timezone marker.\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"When check wrote the file, or null when the recorded time is not a valid instant.\"\n },\n \"engine\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"ruleset\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"version\",\n \"ruleset\"\n ],\n \"additionalProperties\": false\n },\n \"scope\": {\n \"$ref\": \"#/definitions/AppSecurityScope\"\n }\n },\n \"required\": [\n \"path\",\n \"generatedAt\",\n \"engine\",\n \"scope\"\n ],\n \"additionalProperties\": false,\n \"description\": \"deterministic-findings.json, which check writes, with the scope of the scan.\"\n },\n \"AppSecurityAgentResultsFile\": {\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of agent-findings.json.\"\n },\n \"generatedAt\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"pattern\": \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$\",\n \"description\": \"A UTC ISO 8601 instant with whole seconds and the Z timezone marker.\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"When record wrote the file, or null when the recorded time is not a valid instant.\"\n },\n \"engine\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"version\"\n ],\n \"additionalProperties\": false\n },\n \"scope\": {\n \"$ref\": \"#/definitions/AppSecurityScope\"\n }\n },\n \"required\": [\n \"path\",\n \"generatedAt\",\n \"engine\",\n \"scope\"\n ],\n \"additionalProperties\": false,\n \"description\": \"agent-findings.json, which record writes, with the scope that the agent reported.\"\n },\n \"AppSecurityDetection\": {\n \"type\": \"object\",\n \"properties\": {\n \"framework\": {\n \"type\": \"string\",\n \"enum\": [\n \"react-router\",\n \"none\",\n \"unknown\",\n \"mixed\"\n ]\n },\n \"surface\": {\n \"type\": \"string\",\n \"enum\": [\n \"react-router\",\n \"theme-app-extension\",\n \"config-only\",\n \"unknown\",\n \"mixed\"\n ]\n },\n \"languages\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The language, such as typescript.\"\n },\n \"support\": {\n \"type\": \"string\",\n \"enum\": [\n \"supported\",\n \"unsupported\"\n ],\n \"description\": \"Whether the deterministic checks analyze it.\"\n },\n \"files\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"name\",\n \"support\",\n \"files\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"framework\",\n \"surface\",\n \"languages\"\n ],\n \"additionalProperties\": false,\n \"description\": \"What the latest check detected in the app.\"\n },\n \"AppSecurityCoverage\": {\n \"type\": \"object\",\n \"properties\": {\n \"filesScanned\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"The number of files scanned.\"\n },\n \"filesSkipped\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"reason\": {\n \"type\": \"string\",\n \"enum\": [\n \"too-large\",\n \"unreadable\"\n ]\n },\n \"sizeBytes\": {\n \"anyOf\": [\n {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The file size, or null when unknown.\"\n },\n \"detail\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Why the file was unreadable, or null when none is recorded.\"\n }\n },\n \"required\": [\n \"path\",\n \"reason\",\n \"sizeBytes\",\n \"detail\"\n ],\n \"additionalProperties\": false\n }\n },\n \"gaps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"code\": {\n \"type\": \"string\",\n \"enum\": [\n \"skipped-file\",\n \"unsupported-framework\",\n \"unsupported-language\",\n \"unresolved-check\"\n ]\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"checkId\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"The check that the gap concerns, or null.\"\n },\n \"filePath\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The file that the gap concerns, or null.\"\n }\n },\n \"required\": [\n \"code\",\n \"message\",\n \"checkId\",\n \"filePath\"\n ],\n \"additionalProperties\": false\n }\n },\n \"scanDirectories\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/AppSecurityScanDirectory\"\n }\n }\n },\n \"required\": [\n \"filesScanned\",\n \"filesSkipped\",\n \"gaps\",\n \"scanDirectories\"\n ],\n \"additionalProperties\": false,\n \"description\": \"What the latest check covered.\"\n },\n \"AppSecurityCheck\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The check ID, such as CREDENTIAL_LOG_LEAKAGE.\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"severity\": {\n \"type\": \"string\",\n \"enum\": [\n \"high\",\n \"medium\",\n \"low\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"guide\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"A guide to the check, or null when none is recorded.\"\n },\n \"docsUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The check's page on shopify.dev, or null when the results files predate it.\"\n },\n \"precedence\": {\n \"type\": \"string\",\n \"enum\": [\n \"union\",\n \"prefer-agent\"\n ],\n \"description\": \"How the sources combine: union keeps both sources' findings; prefer-agent lets the agent result replace the deterministic one.\"\n },\n \"appliedPrecedence\": {\n \"type\": \"string\",\n \"enum\": [\n \"union\",\n \"prefer-agent\"\n ],\n \"description\": \"The precedence that applied: union when a prefer-agent agent result is older than the deterministic one.\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"executed\",\n \"not-applicable\",\n \"unresolved\"\n ],\n \"description\": \"The combined status. Under union, executed when either source executed the check.\"\n },\n \"bySource\": {\n \"type\": \"object\",\n \"properties\": {\n \"deterministic\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/AppSecuritySourceResult\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"One source's own result for a check.\"\n },\n \"agent\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/AppSecuritySourceResult\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"One source's own result for a check.\"\n }\n },\n \"required\": [\n \"deterministic\",\n \"agent\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Each source's own result, or null when that source didn't record the check.\"\n },\n \"findings\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/AppSecurityFinding\"\n },\n \"description\": \"Every finding of both sources, including suppressed and superseded ones, whatever --verbose. Sorted by file, line, then source.\"\n }\n },\n \"required\": [\n \"id\",\n \"title\",\n \"severity\",\n \"description\",\n \"guide\",\n \"docsUrl\",\n \"precedence\",\n \"appliedPrecedence\",\n \"status\",\n \"bySource\",\n \"findings\"\n ],\n \"additionalProperties\": false,\n \"description\": \"One check, combined from both results files.\"\n },\n \"AppSecuritySourceResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"version\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"description\": \"The check version: the catalog version for deterministic results, the one the agent claimed for agent results.\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"executed\",\n \"not-applicable\",\n \"unresolved\"\n ],\n \"description\": \"The source's own status for the check.\"\n },\n \"reason\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"code\": {\n \"type\": \"string\",\n \"description\": \"A short code. Agent codes are free-form. Deterministic codes: capability_absent, no_relevant_files, unsupported_framework, unsupported_language, parser_unavailable, agent_investigation_required, input_rejected.\"\n },\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"code\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Why the check is unresolved or not applicable, or null when none is recorded.\"\n },\n \"analysisMode\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"regex\",\n \"structured-config\",\n \"ast\"\n ]\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"How the deterministic check analyzed the files. Null for agent results.\"\n },\n \"generatedAt\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"pattern\": \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$\",\n \"description\": \"A UTC ISO 8601 instant with whole seconds and the Z timezone marker.\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"When the source recorded the check, or null when the recorded time is not a valid instant.\"\n }\n },\n \"required\": [\n \"version\",\n \"status\",\n \"reason\",\n \"analysisMode\",\n \"generatedAt\"\n ],\n \"additionalProperties\": false,\n \"description\": \"One source's own result for a check.\"\n },\n \"AppSecurityFinding\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/AppSecurityDeterministicFinding\"\n },\n {\n \"$ref\": \"#/definitions/AppSecurityAgentFinding\"\n }\n ]\n },\n \"AppSecurityDeterministicFinding\": {\n \"type\": \"object\",\n \"properties\": {\n \"source\": {\n \"type\": \"string\",\n \"const\": \"deterministic\"\n },\n \"disposition\": {\n \"type\": \"string\",\n \"enum\": [\n \"active\",\n \"suppressed\",\n \"superseded\"\n ],\n \"description\": \"Whether the finding counts: active; suppressed by the agent; or superseded, a deterministic finding that a check's prefer-agent agent result replaces.\"\n },\n \"location\": {\n \"$ref\": \"#/definitions/AppSecurityLocation\"\n },\n \"message\": {\n \"type\": \"string\",\n \"description\": \"What the finding is, redacted.\"\n },\n \"snippet\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The flagged code, redacted, or null when none is recorded.\"\n },\n \"evidence\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/AppSecurityEvidence\"\n }\n },\n \"fix\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\"\n },\n \"guide\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"A guide to the fix, or null when none is recorded.\"\n },\n \"automated\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the fix can be applied automatically.\"\n }\n },\n \"required\": [\n \"description\",\n \"guide\",\n \"automated\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"How to fix the finding, or null when none is recorded.\"\n }\n },\n \"required\": [\n \"source\",\n \"disposition\",\n \"location\",\n \"message\",\n \"snippet\",\n \"evidence\",\n \"fix\"\n ],\n \"additionalProperties\": false,\n \"description\": \"A finding from deterministic-findings.json.\"\n },\n \"AppSecurityAgentFinding\": {\n \"type\": \"object\",\n \"properties\": {\n \"source\": {\n \"type\": \"string\",\n \"const\": \"agent\"\n },\n \"disposition\": {\n \"type\": \"string\",\n \"enum\": [\n \"active\",\n \"suppressed\",\n \"superseded\"\n ],\n \"description\": \"Whether the finding counts: active; suppressed by the agent; or superseded, a deterministic finding that a check's prefer-agent agent result replaces.\"\n },\n \"location\": {\n \"$ref\": \"#/definitions/AppSecurityLocation\"\n },\n \"message\": {\n \"type\": \"string\",\n \"description\": \"What the finding is, redacted.\"\n },\n \"snippet\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The flagged code, redacted, or null when none is recorded.\"\n },\n \"evidence\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/AppSecurityEvidence\"\n }\n },\n \"confidence\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"high\",\n \"medium\",\n \"low\"\n ]\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The agent's confidence, or null when it didn't report one.\"\n },\n \"reasoning\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The agent's reasoning, redacted, or null when none is recorded.\"\n },\n \"suppression\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"justification\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"justification\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Why the agent suppressed the finding, or null when it is not suppressed.\"\n }\n },\n \"required\": [\n \"source\",\n \"disposition\",\n \"location\",\n \"message\",\n \"snippet\",\n \"evidence\",\n \"confidence\",\n \"reasoning\",\n \"suppression\"\n ],\n \"additionalProperties\": false,\n \"description\": \"A finding from agent-findings.json.\"\n },\n \"AppSecurityLocation\": {\n \"type\": \"object\",\n \"properties\": {\n \"filePath\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of the file.\"\n },\n \"line\": {\n \"anyOf\": [\n {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The one-based line, or null for the whole file.\"\n },\n \"column\": {\n \"anyOf\": [\n {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The one-based column, or null when none is recorded.\"\n }\n },\n \"required\": [\n \"filePath\",\n \"line\",\n \"column\"\n ],\n \"additionalProperties\": false,\n \"description\": \"A place in a file.\"\n },\n \"AppSecurityEvidence\": {\n \"type\": \"object\",\n \"properties\": {\n \"location\": {\n \"$ref\": \"#/definitions/AppSecurityLocation\"\n },\n \"quote\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The quoted source, redacted, or null when none is recorded.\"\n }\n },\n \"required\": [\n \"location\",\n \"quote\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Source that supports a finding.\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
1328
1510
  "flags": {
1329
1511
  "json-schema": {
1330
1512
  "description": "Print the command's JSON schemas.",
@@ -1422,6 +1604,15 @@
1422
1604
  "none"
1423
1605
  ],
1424
1606
  "type": "option"
1607
+ },
1608
+ "json": {
1609
+ "char": "j",
1610
+ "description": "Output the result as JSON. Automatically disables color output.",
1611
+ "env": "SHOPIFY_FLAG_JSON",
1612
+ "hidden": false,
1613
+ "name": "json",
1614
+ "allowNo": false,
1615
+ "type": "boolean"
1425
1616
  }
1426
1617
  },
1427
1618
  "hasDynamicHelp": false,
@@ -1433,13 +1624,69 @@
1433
1624
  "strict": true,
1434
1625
  "summary": "Show the combined app security check results.",
1435
1626
  "enableJsonFlag": false,
1436
- "descriptionWithMarkdown": "Combines the deterministic results (`deterministic-findings.json`, written by `shopify app security check`) with the recorded agent results (`agent-findings.json`, written by `shopify app security record`) and shows one view of every check: its findings, status and source. Both files are in the results directory, `.shopify/app-security/<results key>/`. `--client-id` is checked against your Shopify account before any results are read, so it needs you to be logged in.\n\nThe summary shows the scan directories and the scope of the latest scan, and the scope the agent reported. It notes when the agent findings were recorded for a different scope than the latest scan; that doesn't change the exit code.\n\nThe agent results are optional. Use `--check-id` to narrow the review to specific checks, `--verbose` for full reasoning, evidence and suppressed findings, and `--blocking` to exit with code 1 when a check with findings is at or above a severity.\n\nReports the number of findings to Shopify as usage telemetry, but not finding details. See [usage reporting](https://shopify.dev/docs/api/shopify-cli#usage-reporting) for details.",
1627
+ "descriptionWithMarkdown": "Combines the deterministic results (`deterministic-findings.json`, written by `shopify app security check`) with the recorded agent results (`agent-findings.json`, written by `shopify app security record`) and shows one view of every check: its findings, status and source. Both files are in the results directory, `.shopify/app-security/<results key>/`. `--client-id` is checked against your Shopify account before any results are read, so it needs you to be logged in.\n\nThe summary shows the scan directories and the scope of the latest scan, and the scope the agent reported. It notes when the agent findings were recorded for a different scope than the latest scan; that doesn't change the exit code.\n\nThe agent results are optional. Use `--check-id` to narrow the review to specific checks, `--verbose` for full reasoning, evidence and suppressed findings, and `--blocking` to exit with code 1 when a check with findings is at or above a severity. With `--json`, the result always includes every finding in full.\n\nReports the number of findings to Shopify as usage telemetry, but not finding details. See [usage reporting](https://shopify.dev/docs/api/shopify-cli#usage-reporting) for details.",
1437
1628
  "customPluginName": "@shopify/app"
1438
1629
  },
1439
1630
  "app:logs": {
1440
1631
  "aliases": [],
1441
1632
  "args": {},
1442
- "description": "\n Opens a real-time stream of detailed app logs from the selected app and store.\n Use the `--source` argument to limit output to a particular log source, such as a specific Shopify Function handle. Use the `shopify app logs sources` command to view a list of sources.\n Use the `--status` argument to filter on status, either `success` or `failure`.\n ```\n shopify app logs --status=success --source=extension.discount-function\n ```\n ",
1633
+ "flags": {
1634
+ "json-schema": {
1635
+ "description": "Print the command's JSON schemas.",
1636
+ "env": "SHOPIFY_FLAG_JSON_SCHEMA",
1637
+ "name": "json-schema",
1638
+ "allowNo": false,
1639
+ "type": "boolean"
1640
+ },
1641
+ "no-input": {
1642
+ "description": "Disable interactive prompts and browser authentication.",
1643
+ "env": "SHOPIFY_FLAG_NO_INPUT",
1644
+ "name": "no-input",
1645
+ "allowNo": false,
1646
+ "type": "boolean"
1647
+ },
1648
+ "no-color": {
1649
+ "description": "Disable color output.",
1650
+ "env": "SHOPIFY_FLAG_NO_COLOR",
1651
+ "hidden": false,
1652
+ "name": "no-color",
1653
+ "allowNo": false,
1654
+ "type": "boolean"
1655
+ },
1656
+ "verbose": {
1657
+ "description": "Increase the verbosity of the output. May include sensitive data.",
1658
+ "env": "SHOPIFY_FLAG_VERBOSE",
1659
+ "hidden": false,
1660
+ "name": "verbose",
1661
+ "allowNo": false,
1662
+ "type": "boolean"
1663
+ },
1664
+ "json": {
1665
+ "char": "j",
1666
+ "description": "Output the result as JSON. Automatically disables color output.",
1667
+ "env": "SHOPIFY_FLAG_JSON",
1668
+ "hidden": false,
1669
+ "name": "json",
1670
+ "allowNo": false,
1671
+ "type": "boolean"
1672
+ }
1673
+ },
1674
+ "hasDynamicHelp": false,
1675
+ "hidden": true,
1676
+ "hiddenAliases": [],
1677
+ "id": "app:logs",
1678
+ "pluginAlias": "shopify",
1679
+ "pluginName": "shopify",
1680
+ "pluginType": "core",
1681
+ "strict": false,
1682
+ "summary": "App logs were removed in Shopify CLI 5.0.",
1683
+ "enableJsonFlag": false,
1684
+ "customPluginName": "@shopify/app"
1685
+ },
1686
+ "app:import:channel-config": {
1687
+ "aliases": [],
1688
+ "args": {},
1689
+ "description": "Imports the Shopify-authored channel spec for your app as a `channel_config` extension.\n\n The generated TOML only includes public `channel_config` fields. Review it, then deploy it with `shopify app deploy`.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ImportChannelConfigResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"handle\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"filename\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"path\": {\n \"type\": \"string\",\n \"pattern\": \"^(?:\\\\/|[a-zA-Z]:[\\\\\\\\/]|\\\\\\\\\\\\\\\\)\",\n \"description\": \"Absolute path of the written TOML file.\"\n },\n \"toml\": {\n \"type\": \"string\",\n \"description\": \"Native channel_config TOML content, unchanged from the export.\"\n },\n \"warnings\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ChannelSpecExportWarning\"\n },\n \"description\": \"Warnings returned with the channel spec export.\"\n }\n },\n \"required\": [\n \"status\",\n \"handle\",\n \"filename\",\n \"path\",\n \"toml\",\n \"warnings\"\n ],\n \"additionalProperties\": false,\n \"title\": \"ImportChannelConfigResult\",\n \"definitions\": {\n \"ChannelSpecExportWarning\": {\n \"type\": \"object\",\n \"properties\": {\n \"code\": {\n \"type\": \"string\"\n },\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"code\",\n \"message\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
1443
1690
  "flags": {
1444
1691
  "json-schema": {
1445
1692
  "description": "Print the command's JSON schemas.",
@@ -1530,51 +1777,30 @@
1530
1777
  "allowNo": false,
1531
1778
  "type": "boolean"
1532
1779
  },
1533
- "store": {
1534
- "char": "s",
1535
- "description": "Store URL. Must be an existing development or Shopify Plus sandbox store.",
1536
- "env": "SHOPIFY_FLAG_STORE",
1537
- "name": "store",
1538
- "hasDynamicHelp": false,
1539
- "multiple": true,
1540
- "type": "option"
1541
- },
1542
- "source": {
1543
- "description": "Filters output to the specified log source.",
1544
- "env": "SHOPIFY_FLAG_SOURCE",
1545
- "name": "source",
1546
- "hasDynamicHelp": false,
1547
- "multiple": true,
1548
- "type": "option"
1549
- },
1550
- "status": {
1551
- "description": "Filters output to the specified status (success or failure).",
1552
- "env": "SHOPIFY_FLAG_STATUS",
1553
- "name": "status",
1554
- "hasDynamicHelp": false,
1555
- "multiple": false,
1556
- "options": [
1557
- "success",
1558
- "failure"
1559
- ],
1560
- "type": "option"
1780
+ "force": {
1781
+ "description": "Overwrite the existing channel spec file without prompting.",
1782
+ "env": "SHOPIFY_FLAG_FORCE",
1783
+ "name": "force",
1784
+ "allowNo": false,
1785
+ "type": "boolean"
1561
1786
  }
1562
1787
  },
1563
1788
  "hasDynamicHelp": false,
1789
+ "hidden": true,
1564
1790
  "hiddenAliases": [],
1565
- "id": "app:logs",
1791
+ "id": "app:import:channel-config",
1566
1792
  "pluginAlias": "shopify",
1567
1793
  "pluginName": "shopify",
1568
1794
  "pluginType": "core",
1569
1795
  "strict": true,
1570
- "summary": "Stream detailed logs for your Shopify app.",
1571
- "descriptionWithMarkdown": "\n Opens a real-time stream of detailed app logs from the selected app and store.\n Use the `--source` argument to limit output to a particular log source, such as a specific Shopify Function handle. Use the `shopify app logs sources` command to view a list of sources.\n Use the `--status` argument to filter on status, either `success` or `failure`.\n ```\n shopify app logs --status=success --source=extension.discount-function\n ```\n ",
1796
+ "summary": "Import your app's default channel spec as a channel_config extension.",
1797
+ "descriptionWithMarkdown": "Imports the Shopify-authored channel spec for your app as a `channel_config` extension.\n\n The generated TOML only includes public `channel_config` fields. Review it, then deploy it with `shopify app deploy`.",
1572
1798
  "customPluginName": "@shopify/app"
1573
1799
  },
1574
- "app:logs:sources": {
1800
+ "app:import:custom-data-definitions": {
1575
1801
  "aliases": [],
1576
1802
  "args": {},
1577
- "description": "The output source names can be used with the `--source` argument of `shopify app logs` to filter log output. Currently only function extensions are supported as sources.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppLogSourcesResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"sources\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/AppLogSource\"\n }\n }\n },\n \"required\": [\n \"sources\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AppLogSourcesResult\",\n \"definitions\": {\n \"AppLogSource\": {\n \"type\": \"object\",\n \"properties\": {\n \"source\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\",\n \"const\": \"extensions\"\n },\n \"handle\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"externalType\": {\n \"type\": \"string\"\n },\n \"humanName\": {\n \"type\": \"string\"\n },\n \"uid\": {\n \"type\": \"string\"\n },\n \"directory\": {\n \"type\": \"string\"\n },\n \"configurationPath\": {\n \"type\": \"string\"\n },\n \"configuration\": {\n \"type\": \"object\",\n \"additionalProperties\": {}\n },\n \"entrySourceFilePath\": {\n \"type\": \"string\"\n },\n \"outputPath\": {\n \"type\": \"string\"\n },\n \"surface\": {\n \"type\": \"string\"\n },\n \"features\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependency\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"source\",\n \"namespace\",\n \"handle\",\n \"name\",\n \"type\",\n \"externalType\",\n \"humanName\",\n \"uid\",\n \"directory\",\n \"configurationPath\",\n \"configuration\",\n \"entrySourceFilePath\",\n \"outputPath\",\n \"surface\",\n \"features\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
1803
+ "description": "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).\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ImportCustomDataDefinitionsResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"storeDomain\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"The full myshopify.com domain of the development store, or null when unavailable.\"\n },\n \"metafieldCount\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"The number of available metafields converted to TOML.\"\n },\n \"metaobjectCount\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"The number of available metaobjects converted to TOML.\"\n },\n \"toml\": {\n \"type\": \"string\",\n \"description\": \"Suggested native TOML for app-reserved definitions. No file is written.\"\n },\n \"skippedSections\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/SkippedMetafields\"\n },\n {\n \"$ref\": \"#/definitions/SkippedMetaobjects\"\n }\n ]\n },\n \"description\": \"Sections skipped because required access scopes are unavailable. An empty array means all requests were authorized.\"\n }\n },\n \"required\": [\n \"status\",\n \"storeDomain\",\n \"metafieldCount\",\n \"metaobjectCount\",\n \"toml\",\n \"skippedSections\"\n ],\n \"additionalProperties\": false,\n \"title\": \"ImportCustomDataDefinitionsResult\",\n \"definitions\": {\n \"SkippedMetafields\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"metafields\"\n },\n \"ownerType\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The Admin API metafield owner type, such as PRODUCT.\"\n }\n },\n \"required\": [\n \"type\",\n \"ownerType\"\n ],\n \"additionalProperties\": false\n },\n \"SkippedMetaobjects\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"metaobjects\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
1578
1804
  "flags": {
1579
1805
  "json-schema": {
1580
1806
  "description": "Print the command's JSON schemas.",
@@ -1664,23 +1890,39 @@
1664
1890
  "name": "json",
1665
1891
  "allowNo": false,
1666
1892
  "type": "boolean"
1893
+ },
1894
+ "store": {
1895
+ "char": "s",
1896
+ "description": "Store URL. Must be an existing development or Shopify Plus sandbox store.",
1897
+ "env": "SHOPIFY_FLAG_STORE",
1898
+ "name": "store",
1899
+ "hasDynamicHelp": false,
1900
+ "multiple": false,
1901
+ "type": "option"
1902
+ },
1903
+ "include-existing": {
1904
+ "description": "Include existing declared definitions in the output.",
1905
+ "env": "SHOPIFY_FLAG_INCLUDE_EXISTING",
1906
+ "name": "include-existing",
1907
+ "allowNo": false,
1908
+ "type": "boolean"
1667
1909
  }
1668
1910
  },
1669
1911
  "hasDynamicHelp": false,
1670
1912
  "hiddenAliases": [],
1671
- "id": "app:logs:sources",
1913
+ "id": "app:import:custom-data-definitions",
1672
1914
  "pluginAlias": "shopify",
1673
1915
  "pluginName": "shopify",
1674
1916
  "pluginType": "core",
1675
1917
  "strict": true,
1676
- "summary": "Print out a list of sources that may be used with the logs command.",
1677
- "descriptionWithMarkdown": "The output source names can be used with the `--source` argument of `shopify app logs` to filter log output. Currently only function extensions are supported as sources.",
1918
+ "summary": "Import metafield and metaobject definitions.",
1919
+ "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).",
1678
1920
  "customPluginName": "@shopify/app"
1679
1921
  },
1680
- "app:import:channel-config": {
1922
+ "app:import:dashboard-extensions": {
1681
1923
  "aliases": [],
1682
1924
  "args": {},
1683
- "description": "Imports the Shopify-authored channel spec for your app as a `channel_config` extension.\n\n The generated TOML only includes public `channel_config` fields. Review it, then deploy it with `shopify app deploy`.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ImportChannelConfigResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"handle\": {\n \"type\": \"string\"\n },\n \"filename\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"toml\": {\n \"type\": \"string\"\n },\n \"warnings\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ChannelSpecExportWarning\"\n }\n }\n },\n \"required\": [\n \"handle\",\n \"filename\",\n \"path\",\n \"toml\",\n \"warnings\"\n ],\n \"additionalProperties\": false,\n \"title\": \"ImportChannelConfigResult\",\n \"definitions\": {\n \"ChannelSpecExportWarning\": {\n \"type\": \"object\",\n \"properties\": {\n \"code\": {\n \"type\": \"string\"\n },\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"code\",\n \"message\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
1925
+ "description": "Import dashboard-managed extensions into your app.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ImportDashboardExtensionsResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"partial\",\n \"skipped\",\n \"cancelled\"\n ]\n },\n \"reason\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"no-extensions\",\n \"directory-selection-cancelled\"\n ]\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"extensions\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ImportedDashboardExtension\"\n },\n \"description\": \"Completed extension imports and kept local directories, in selection order.\"\n },\n \"errors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ExtensionImportFailure\"\n },\n \"description\": \"Failed selected imports or identifier persistence.\"\n },\n \"identifiersUpdated\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the extension identifier persistence step completed.\"\n }\n },\n \"required\": [\n \"status\",\n \"reason\",\n \"extensions\",\n \"errors\",\n \"identifiersUpdated\"\n ],\n \"additionalProperties\": false,\n \"title\": \"ImportDashboardExtensionsResult\",\n \"definitions\": {\n \"ImportedDashboardExtension\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"The dashboard extension registration UUID, not a Shopify GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The upstream dashboard extension type.\"\n },\n \"directory\": {\n \"type\": \"string\",\n \"description\": \"The absolute local extension directory.\"\n },\n \"configurationPath\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ImportedDashboardExtension/properties/directory\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The absolute local TOML path, or null when no TOML file exists in a kept directory.\"\n },\n \"changed\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this import wrote the local extension TOML.\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"type\",\n \"directory\",\n \"configurationPath\",\n \"changed\"\n ],\n \"additionalProperties\": false\n },\n \"ExtensionImportFailure\": {\n \"type\": \"object\",\n \"properties\": {\n \"extensionId\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The registration UUID, or null for identifier persistence.\"\n },\n \"error\": {\n \"$ref\": \"#/definitions/JsonError\"\n }\n },\n \"required\": [\n \"extensionId\",\n \"error\"\n ],\n \"additionalProperties\": false\n },\n \"JsonError\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/JsonAbortError\"\n },\n {\n \"$ref\": \"#/definitions/JsonBugError\"\n },\n {\n \"$ref\": \"#/definitions/JsonExternalError\"\n }\n ]\n },\n \"JsonErrorCustomSection\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n },\n \"JsonAbortError\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/JsonErrorCustomSection\"\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n \"JsonBugError\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n \"JsonExternalError\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
1684
1926
  "flags": {
1685
1927
  "json-schema": {
1686
1928
  "description": "Print the command's JSON schemas.",
@@ -1770,31 +2012,22 @@
1770
2012
  "name": "json",
1771
2013
  "allowNo": false,
1772
2014
  "type": "boolean"
1773
- },
1774
- "force": {
1775
- "description": "Overwrite the existing channel spec file without prompting.",
1776
- "env": "SHOPIFY_FLAG_FORCE",
1777
- "name": "force",
1778
- "allowNo": false,
1779
- "type": "boolean"
1780
2015
  }
1781
2016
  },
1782
2017
  "hasDynamicHelp": false,
1783
- "hidden": true,
1784
2018
  "hiddenAliases": [],
1785
- "id": "app:import:channel-config",
2019
+ "id": "app:import:dashboard-extensions",
1786
2020
  "pluginAlias": "shopify",
1787
2021
  "pluginName": "shopify",
1788
2022
  "pluginType": "core",
1789
2023
  "strict": true,
1790
- "summary": "Import your app's default channel spec as a channel_config extension.",
1791
- "descriptionWithMarkdown": "Imports the Shopify-authored channel spec for your app as a `channel_config` extension.\n\n The generated TOML only includes public `channel_config` fields. Review it, then deploy it with `shopify app deploy`.",
2024
+ "descriptionWithMarkdown": "Import dashboard-managed extensions into your app.",
1792
2025
  "customPluginName": "@shopify/app"
1793
2026
  },
1794
- "app:import:custom-data-definitions": {
2027
+ "app:import-custom-data-definitions": {
1795
2028
  "aliases": [],
1796
2029
  "args": {},
1797
- "description": "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).",
2030
+ "description": "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).\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ImportCustomDataDefinitionsResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"storeDomain\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"The full myshopify.com domain of the development store, or null when unavailable.\"\n },\n \"metafieldCount\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"The number of available metafields converted to TOML.\"\n },\n \"metaobjectCount\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"The number of available metaobjects converted to TOML.\"\n },\n \"toml\": {\n \"type\": \"string\",\n \"description\": \"Suggested native TOML for app-reserved definitions. No file is written.\"\n },\n \"skippedSections\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/SkippedMetafields\"\n },\n {\n \"$ref\": \"#/definitions/SkippedMetaobjects\"\n }\n ]\n },\n \"description\": \"Sections skipped because required access scopes are unavailable. An empty array means all requests were authorized.\"\n }\n },\n \"required\": [\n \"status\",\n \"storeDomain\",\n \"metafieldCount\",\n \"metaobjectCount\",\n \"toml\",\n \"skippedSections\"\n ],\n \"additionalProperties\": false,\n \"title\": \"ImportCustomDataDefinitionsResult\",\n \"definitions\": {\n \"SkippedMetafields\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"metafields\"\n },\n \"ownerType\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The Admin API metafield owner type, such as PRODUCT.\"\n }\n },\n \"required\": [\n \"type\",\n \"ownerType\"\n ],\n \"additionalProperties\": false\n },\n \"SkippedMetaobjects\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"metaobjects\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
1798
2031
  "flags": {
1799
2032
  "json-schema": {
1800
2033
  "description": "Print the command's JSON schemas.",
@@ -1876,6 +2109,15 @@
1876
2109
  "allowNo": false,
1877
2110
  "type": "boolean"
1878
2111
  },
2112
+ "json": {
2113
+ "char": "j",
2114
+ "description": "Output the result as JSON. Automatically disables color output.",
2115
+ "env": "SHOPIFY_FLAG_JSON",
2116
+ "hidden": false,
2117
+ "name": "json",
2118
+ "allowNo": false,
2119
+ "type": "boolean"
2120
+ },
1879
2121
  "store": {
1880
2122
  "char": "s",
1881
2123
  "description": "Store URL. Must be an existing development or Shopify Plus sandbox store.",
@@ -1894,228 +2136,20 @@
1894
2136
  }
1895
2137
  },
1896
2138
  "hasDynamicHelp": false,
2139
+ "hidden": true,
1897
2140
  "hiddenAliases": [],
1898
- "id": "app:import:custom-data-definitions",
2141
+ "id": "app:import-custom-data-definitions",
1899
2142
  "pluginAlias": "shopify",
1900
2143
  "pluginName": "shopify",
1901
2144
  "pluginType": "core",
1902
- "strict": true,
1903
2145
  "summary": "Import metafield and metaobject definitions.",
1904
2146
  "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).",
1905
2147
  "customPluginName": "@shopify/app"
1906
2148
  },
1907
- "app:import:dashboard-extensions": {
2149
+ "app:import-extensions": {
1908
2150
  "aliases": [],
1909
2151
  "args": {},
1910
- "description": "Import dashboard-managed extensions into your app.",
1911
- "flags": {
1912
- "json-schema": {
1913
- "description": "Print the command's JSON schemas.",
1914
- "env": "SHOPIFY_FLAG_JSON_SCHEMA",
1915
- "name": "json-schema",
1916
- "allowNo": false,
1917
- "type": "boolean"
1918
- },
1919
- "auth-alias": {
1920
- "description": "Alias of the Shopify account to use for authentication.",
1921
- "env": "SHOPIFY_FLAG_AUTH_ALIAS",
1922
- "name": "auth-alias",
1923
- "hasDynamicHelp": false,
1924
- "multiple": false,
1925
- "type": "option"
1926
- },
1927
- "no-input": {
1928
- "description": "Disable interactive prompts and browser authentication.",
1929
- "env": "SHOPIFY_FLAG_NO_INPUT",
1930
- "name": "no-input",
1931
- "allowNo": false,
1932
- "type": "boolean"
1933
- },
1934
- "no-color": {
1935
- "description": "Disable color output.",
1936
- "env": "SHOPIFY_FLAG_NO_COLOR",
1937
- "hidden": false,
1938
- "name": "no-color",
1939
- "allowNo": false,
1940
- "type": "boolean"
1941
- },
1942
- "verbose": {
1943
- "description": "Increase the verbosity of the output. May include sensitive data.",
1944
- "env": "SHOPIFY_FLAG_VERBOSE",
1945
- "hidden": false,
1946
- "name": "verbose",
1947
- "allowNo": false,
1948
- "type": "boolean"
1949
- },
1950
- "path": {
1951
- "description": "The path to your app directory.",
1952
- "env": "SHOPIFY_FLAG_PATH",
1953
- "name": "path",
1954
- "noCacheDefault": true,
1955
- "hasDynamicHelp": false,
1956
- "multiple": false,
1957
- "type": "option"
1958
- },
1959
- "config": {
1960
- "char": "c",
1961
- "description": "The name of the app configuration.",
1962
- "env": "SHOPIFY_FLAG_APP_CONFIG",
1963
- "hidden": false,
1964
- "name": "config",
1965
- "hasDynamicHelp": false,
1966
- "multiple": false,
1967
- "type": "option"
1968
- },
1969
- "client-id": {
1970
- "description": "The Client ID of your app.",
1971
- "env": "SHOPIFY_FLAG_CLIENT_ID",
1972
- "exclusive": [
1973
- "config"
1974
- ],
1975
- "hidden": false,
1976
- "name": "client-id",
1977
- "hasDynamicHelp": false,
1978
- "multiple": false,
1979
- "type": "option"
1980
- },
1981
- "reset": {
1982
- "description": "Reset all your settings.",
1983
- "env": "SHOPIFY_FLAG_RESET",
1984
- "exclusive": [
1985
- "config"
1986
- ],
1987
- "hidden": false,
1988
- "name": "reset",
1989
- "allowNo": false,
1990
- "type": "boolean"
1991
- }
1992
- },
1993
- "hasDynamicHelp": false,
1994
- "hiddenAliases": [],
1995
- "id": "app:import:dashboard-extensions",
1996
- "pluginAlias": "shopify",
1997
- "pluginName": "shopify",
1998
- "pluginType": "core",
1999
- "strict": true,
2000
- "customPluginName": "@shopify/app"
2001
- },
2002
- "app:import-custom-data-definitions": {
2003
- "aliases": [],
2004
- "args": {},
2005
- "description": "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).",
2006
- "flags": {
2007
- "json-schema": {
2008
- "description": "Print the command's JSON schemas.",
2009
- "env": "SHOPIFY_FLAG_JSON_SCHEMA",
2010
- "name": "json-schema",
2011
- "allowNo": false,
2012
- "type": "boolean"
2013
- },
2014
- "auth-alias": {
2015
- "description": "Alias of the Shopify account to use for authentication.",
2016
- "env": "SHOPIFY_FLAG_AUTH_ALIAS",
2017
- "name": "auth-alias",
2018
- "hasDynamicHelp": false,
2019
- "multiple": false,
2020
- "type": "option"
2021
- },
2022
- "no-input": {
2023
- "description": "Disable interactive prompts and browser authentication.",
2024
- "env": "SHOPIFY_FLAG_NO_INPUT",
2025
- "name": "no-input",
2026
- "allowNo": false,
2027
- "type": "boolean"
2028
- },
2029
- "no-color": {
2030
- "description": "Disable color output.",
2031
- "env": "SHOPIFY_FLAG_NO_COLOR",
2032
- "hidden": false,
2033
- "name": "no-color",
2034
- "allowNo": false,
2035
- "type": "boolean"
2036
- },
2037
- "verbose": {
2038
- "description": "Increase the verbosity of the output. May include sensitive data.",
2039
- "env": "SHOPIFY_FLAG_VERBOSE",
2040
- "hidden": false,
2041
- "name": "verbose",
2042
- "allowNo": false,
2043
- "type": "boolean"
2044
- },
2045
- "path": {
2046
- "description": "The path to your app directory.",
2047
- "env": "SHOPIFY_FLAG_PATH",
2048
- "name": "path",
2049
- "noCacheDefault": true,
2050
- "hasDynamicHelp": false,
2051
- "multiple": false,
2052
- "type": "option"
2053
- },
2054
- "config": {
2055
- "char": "c",
2056
- "description": "The name of the app configuration.",
2057
- "env": "SHOPIFY_FLAG_APP_CONFIG",
2058
- "hidden": false,
2059
- "name": "config",
2060
- "hasDynamicHelp": false,
2061
- "multiple": false,
2062
- "type": "option"
2063
- },
2064
- "client-id": {
2065
- "description": "The Client ID of your app.",
2066
- "env": "SHOPIFY_FLAG_CLIENT_ID",
2067
- "exclusive": [
2068
- "config"
2069
- ],
2070
- "hidden": false,
2071
- "name": "client-id",
2072
- "hasDynamicHelp": false,
2073
- "multiple": false,
2074
- "type": "option"
2075
- },
2076
- "reset": {
2077
- "description": "Reset all your settings.",
2078
- "env": "SHOPIFY_FLAG_RESET",
2079
- "exclusive": [
2080
- "config"
2081
- ],
2082
- "hidden": false,
2083
- "name": "reset",
2084
- "allowNo": false,
2085
- "type": "boolean"
2086
- },
2087
- "store": {
2088
- "char": "s",
2089
- "description": "Store URL. Must be an existing development or Shopify Plus sandbox store.",
2090
- "env": "SHOPIFY_FLAG_STORE",
2091
- "name": "store",
2092
- "hasDynamicHelp": false,
2093
- "multiple": false,
2094
- "type": "option"
2095
- },
2096
- "include-existing": {
2097
- "description": "Include existing declared definitions in the output.",
2098
- "env": "SHOPIFY_FLAG_INCLUDE_EXISTING",
2099
- "name": "include-existing",
2100
- "allowNo": false,
2101
- "type": "boolean"
2102
- }
2103
- },
2104
- "hasDynamicHelp": false,
2105
- "hidden": true,
2106
- "hiddenAliases": [],
2107
- "id": "app:import-custom-data-definitions",
2108
- "pluginAlias": "shopify",
2109
- "pluginName": "shopify",
2110
- "pluginType": "core",
2111
- "summary": "Import metafield and metaobject definitions.",
2112
- "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).",
2113
- "customPluginName": "@shopify/app"
2114
- },
2115
- "app:import-extensions": {
2116
- "aliases": [],
2117
- "args": {},
2118
- "description": "Import dashboard-managed extensions into your app.",
2152
+ "description": "Import dashboard-managed extensions into your app.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ImportDashboardExtensionsResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"partial\",\n \"skipped\",\n \"cancelled\"\n ]\n },\n \"reason\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"no-extensions\",\n \"directory-selection-cancelled\"\n ]\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"extensions\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ImportedDashboardExtension\"\n },\n \"description\": \"Completed extension imports and kept local directories, in selection order.\"\n },\n \"errors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ExtensionImportFailure\"\n },\n \"description\": \"Failed selected imports or identifier persistence.\"\n },\n \"identifiersUpdated\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the extension identifier persistence step completed.\"\n }\n },\n \"required\": [\n \"status\",\n \"reason\",\n \"extensions\",\n \"errors\",\n \"identifiersUpdated\"\n ],\n \"additionalProperties\": false,\n \"title\": \"ImportDashboardExtensionsResult\",\n \"definitions\": {\n \"ImportedDashboardExtension\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"The dashboard extension registration UUID, not a Shopify GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The upstream dashboard extension type.\"\n },\n \"directory\": {\n \"type\": \"string\",\n \"description\": \"The absolute local extension directory.\"\n },\n \"configurationPath\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ImportedDashboardExtension/properties/directory\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The absolute local TOML path, or null when no TOML file exists in a kept directory.\"\n },\n \"changed\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this import wrote the local extension TOML.\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"type\",\n \"directory\",\n \"configurationPath\",\n \"changed\"\n ],\n \"additionalProperties\": false\n },\n \"ExtensionImportFailure\": {\n \"type\": \"object\",\n \"properties\": {\n \"extensionId\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The registration UUID, or null for identifier persistence.\"\n },\n \"error\": {\n \"$ref\": \"#/definitions/JsonError\"\n }\n },\n \"required\": [\n \"extensionId\",\n \"error\"\n ],\n \"additionalProperties\": false\n },\n \"JsonError\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/JsonAbortError\"\n },\n {\n \"$ref\": \"#/definitions/JsonBugError\"\n },\n {\n \"$ref\": \"#/definitions/JsonExternalError\"\n }\n ]\n },\n \"JsonErrorCustomSection\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n },\n \"JsonAbortError\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/JsonErrorCustomSection\"\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n \"JsonBugError\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n \"JsonExternalError\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/JsonAbortError/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
2119
2153
  "flags": {
2120
2154
  "json-schema": {
2121
2155
  "description": "Print the command's JSON schemas.",
@@ -2196,6 +2230,15 @@
2196
2230
  "name": "reset",
2197
2231
  "allowNo": false,
2198
2232
  "type": "boolean"
2233
+ },
2234
+ "json": {
2235
+ "char": "j",
2236
+ "description": "Output the result as JSON. Automatically disables color output.",
2237
+ "env": "SHOPIFY_FLAG_JSON",
2238
+ "hidden": false,
2239
+ "name": "json",
2240
+ "allowNo": false,
2241
+ "type": "boolean"
2199
2242
  }
2200
2243
  },
2201
2244
  "hasDynamicHelp": false,
@@ -2205,6 +2248,7 @@
2205
2248
  "pluginAlias": "shopify",
2206
2249
  "pluginName": "shopify",
2207
2250
  "pluginType": "core",
2251
+ "descriptionWithMarkdown": "Import dashboard-managed extensions into your app.",
2208
2252
  "customPluginName": "@shopify/app"
2209
2253
  },
2210
2254
  "app:info": {
@@ -2324,6 +2368,7 @@
2324
2368
  "app:init": {
2325
2369
  "aliases": [],
2326
2370
  "args": {},
2371
+ "description": "Use `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppInitResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"app\": {\n \"$ref\": \"#/definitions/InitializedApp\"\n },\n \"packageManager\": {\n \"type\": \"string\",\n \"enum\": [\n \"npm\",\n \"yarn\",\n \"pnpm\",\n \"bun\"\n ]\n },\n \"template\": {\n \"type\": \"string\",\n \"format\": \"uri\",\n \"description\": \"The selected GitHub template reference, including its branch and subpath.\"\n }\n },\n \"required\": [\n \"status\",\n \"app\",\n \"packageManager\",\n \"template\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AppInitResult\",\n \"definitions\": {\n \"InitializedApp\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"The decimal App ID, not a Shopify GID.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The name of the linked remote app.\"\n },\n \"clientId\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The client ID of the linked remote app.\"\n },\n \"organizationId\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"The decimal organization ID, not a Shopify GID.\"\n },\n \"directory\": {\n \"type\": \"string\",\n \"pattern\": \"^(?:\\\\/|[A-Za-z]:[\\\\\\\\/]|\\\\\\\\\\\\\\\\)\",\n \"description\": \"The absolute filesystem path of the created app project.\"\n },\n \"configurationPath\": {\n \"type\": \"string\",\n \"pattern\": \"^(?:\\\\/|[A-Za-z]:[\\\\\\\\/]|\\\\\\\\\\\\\\\\)\",\n \"description\": \"The absolute filesystem path of the linked app configuration.\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"clientId\",\n \"organizationId\",\n \"directory\",\n \"configurationPath\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
2327
2372
  "examples": [
2328
2373
  "<%= config.bin %> <%= command.id %> --name my-app --organization-id 123 --template reactRouter --flavor typescript",
2329
2374
  "<%= config.bin %> <%= command.id %> --client-id 123 --template none"
@@ -2367,6 +2412,15 @@
2367
2412
  "allowNo": false,
2368
2413
  "type": "boolean"
2369
2414
  },
2415
+ "json": {
2416
+ "char": "j",
2417
+ "description": "Output the result as JSON. Automatically disables color output.",
2418
+ "env": "SHOPIFY_FLAG_JSON",
2419
+ "hidden": false,
2420
+ "name": "json",
2421
+ "allowNo": false,
2422
+ "type": "boolean"
2423
+ },
2370
2424
  "name": {
2371
2425
  "char": "n",
2372
2426
  "description": "The name for the new app. When provided, skips the app selection prompt and creates a new app with this name. Required in non-interactive environments unless --client-id is provided.",
@@ -2464,7 +2518,7 @@
2464
2518
  "app:config:validate": {
2465
2519
  "aliases": [],
2466
2520
  "args": {},
2467
- "description": "Validates the selected app configuration file and all extension configurations against their schemas and reports any errors found.",
2521
+ "description": "Validates the selected app configuration file and all extension configurations against their schemas and reports any errors found.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppConfigValidateResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"valid\": {\n \"type\": \"boolean\"\n },\n \"issues\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ValidationIssue\"\n }\n }\n },\n \"required\": [\n \"path\",\n \"valid\",\n \"issues\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AppConfigValidateResult\",\n \"definitions\": {\n \"ValidationIssue\": {\n \"type\": \"object\",\n \"properties\": {\n \"filePath\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"anyOf\": [\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"integer\",\n \"minimum\": 0\n }\n ]\n }\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"code\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"The upstream validation code, or null when unavailable.\"\n }\n },\n \"required\": [\n \"filePath\",\n \"message\",\n \"fieldPath\",\n \"code\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
2468
2522
  "flags": {
2469
2523
  "json-schema": {
2470
2524
  "description": "Print the command's JSON schemas.",
@@ -2570,7 +2624,7 @@
2570
2624
  "app:release": {
2571
2625
  "aliases": [],
2572
2626
  "args": {},
2573
- "description": "Releases an existing app version. Pass the name of the version that you want to release using the `--version` flag.",
2627
+ "description": "Releases an existing app version. Pass the name of the version that you want to release using the `--version` flag.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppReleaseResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"app\": {\n \"$ref\": \"#/definitions/App\"\n },\n \"release\": {\n \"$ref\": \"#/definitions/AppRelease\"\n }\n },\n \"required\": [\n \"status\",\n \"app\",\n \"release\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"AppReleaseResult\",\n \"definitions\": {\n \"App\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The client ID of the app receiving the release.\"\n }\n },\n \"required\": [\n \"name\",\n \"clientId\"\n ],\n \"additionalProperties\": false\n },\n \"AppRelease\": {\n \"type\": \"object\",\n \"properties\": {\n \"version\": {\n \"$ref\": \"#/definitions/AppReleaseVersion\"\n }\n },\n \"required\": [\n \"version\"\n ],\n \"additionalProperties\": false\n },\n \"AppReleaseVersion\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/Version\\\\/\\\\d+$\",\n \"description\": \"The Shopify app version GID.\"\n },\n \"name\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The version tag, or null when no tag is available.\"\n },\n \"message\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The version message, or null when no message is available.\"\n },\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri\",\n \"description\": \"The Developer Dashboard URL for this version.\"\n }\n },\n \"required\": [\n \"gid\",\n \"name\",\n \"message\",\n \"url\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
2574
2628
  "flags": {
2575
2629
  "json-schema": {
2576
2630
  "description": "Print the command's JSON schemas.",
@@ -2652,6 +2706,15 @@
2652
2706
  "allowNo": false,
2653
2707
  "type": "boolean"
2654
2708
  },
2709
+ "json": {
2710
+ "char": "j",
2711
+ "description": "Output the result as JSON. Automatically disables color output.",
2712
+ "env": "SHOPIFY_FLAG_JSON",
2713
+ "hidden": false,
2714
+ "name": "json",
2715
+ "allowNo": false,
2716
+ "type": "boolean"
2717
+ },
2655
2718
  "allow-updates": {
2656
2719
  "description": "Allows adding and updating extensions and configuration without requiring user confirmation. Recommended option for CI/CD environments. Required in non-interactive environments unless --allow-deletes is provided.",
2657
2720
  "env": "SHOPIFY_FLAG_ALLOW_UPDATES",
@@ -2694,7 +2757,7 @@
2694
2757
  "app:subscription-migrations:cancel": {
2695
2758
  "aliases": [],
2696
2759
  "args": {},
2697
- "description": "Cancels app subscription migration operations.\n\nCanceling stops additional unprocessed shops, but does not undo shops that have already been scheduled or migrated. Use `unschedule` for reversible schedules.\n\nRepeat `--id` to cancel every operation GID returned by a multi-batch submission. Use `--json` to output the resulting operation states and per-shop results as structured JSON.\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.",
2760
+ "description": "Cancels app subscription migration operations.\n\nCanceling stops additional unprocessed shops, but does not undo shops that have already been scheduled or migrated. Use `unschedule` for reversible schedules.\n\nRepeat `--id` to cancel every operation GID returned by a multi-batch submission. Use `--json` to output the resulting operation states and per-shop results as structured JSON.\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.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `MigrationCancellationResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"partial\"\n ]\n },\n \"operations\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome\"\n }\n }\n },\n \"required\": [\n \"status\",\n \"operations\"\n ],\n \"additionalProperties\": false,\n \"title\": \"MigrationCancellationResult\",\n \"definitions\": {\n \"MigrationCancellationOutcome\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"operationGid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/AppSubscriptionMigrationOperation\\\\/[^/]+$\",\n \"description\": \"The Shopify AppSubscriptionMigrationOperation GID.\"\n },\n \"operation\": {\n \"$ref\": \"#/definitions/MigrationOperation\"\n }\n },\n \"required\": [\n \"status\",\n \"operationGid\",\n \"operation\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"failed\"\n },\n \"operationGid\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/0/properties/operationGid\"\n },\n \"operation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/MigrationOperation\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"error\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"type\": \"object\",\n \"properties\": {\n \"userErrors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/MigrationUserError\"\n }\n }\n },\n \"required\": [\n \"userErrors\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"details\"\n ],\n \"additionalProperties\": false\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/type\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/1/anyOf/0/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/1/properties/error/anyOf/1/anyOf/0/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n ]\n }\n },\n \"required\": [\n \"status\",\n \"operationGid\",\n \"operation\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n ]\n },\n \"MigrationOperation\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"$ref\": \"#/definitions/MigrationCancellationOutcome/anyOf/0/properties/operationGid\"\n },\n \"status\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Upstream status: RUNNING, COMPLETED, FAILED, or CANCELED.\"\n },\n \"total\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"results\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"shopGid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/Shop\\\\/\\\\d+$\",\n \"description\": \"The Shopify Shop GID.\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The upstream per-shop migration result code.\"\n }\n },\n \"required\": [\n \"shopGid\",\n \"code\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"gid\",\n \"status\",\n \"total\",\n \"results\"\n ],\n \"additionalProperties\": false\n },\n \"MigrationUserError\": {\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"anyOf\": [\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"message\",\n \"fieldPath\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
2698
2761
  "examples": [
2699
2762
  "<%= config.bin %> <%= command.id %> --id <operation-id>",
2700
2763
  "<%= config.bin %> <%= command.id %> --path ../my-app --config staging --id <operation-id-1> --id <operation-id-2>",
@@ -2814,7 +2877,7 @@
2814
2877
  "app:subscription-migrations:list": {
2815
2878
  "aliases": [],
2816
2879
  "args": {},
2817
- "description": "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.",
2880
+ "description": "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 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.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `MigrationListResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"subscriptions\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/MigratableSubscription\"\n },\n \"description\": \"The complete list across every fetched page.\"\n }\n },\n \"required\": [\n \"subscriptions\"\n ],\n \"additionalProperties\": false,\n \"title\": \"MigrationListResult\",\n \"definitions\": {\n \"MigratableSubscription\": {\n \"type\": \"object\",\n \"properties\": {\n \"shopGid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/Shop\\\\/\\\\d+$\",\n \"description\": \"The Shopify Shop GID.\"\n },\n \"status\": {\n \"type\": \"string\",\n \"description\": \"Known values: UNSCHEDULED, SCHEDULED, MIGRATED.\"\n },\n \"manualSubscriptionName\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"manualSubscriptionPrice\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/MigratableSubscriptionPrice\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"manualSubscriptionInterval\": {\n \"type\": \"string\",\n \"description\": \"Known values: EVERY_30_DAYS, ANNUAL.\"\n },\n \"targetPlanHandle\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"notification\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/MigratableSubscriptionNotification\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"priceBehavior\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Known values: HONOR_BILLING_PRICE, PLAN_PRICE.\"\n },\n \"effectiveDate\": {\n \"anyOf\": [\n {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"date\"\n },\n {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"pattern\": \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$\"\n }\n ]\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The upstream calendar date or whole-second UTC instant; date-only values retain their format.\"\n },\n \"lastFailureReason\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Known values: SUPERSEDED, SCHEDULING_FAILED.\"\n }\n },\n \"required\": [\n \"shopGid\",\n \"status\",\n \"manualSubscriptionName\",\n \"manualSubscriptionPrice\",\n \"manualSubscriptionInterval\",\n \"targetPlanHandle\",\n \"notification\",\n \"priceBehavior\",\n \"effectiveDate\",\n \"lastFailureReason\"\n ],\n \"additionalProperties\": false,\n \"description\": \"All subscription projection fields are present; unavailable values are null.\"\n },\n \"MigratableSubscriptionPrice\": {\n \"type\": \"object\",\n \"properties\": {\n \"amount\": {\n \"type\": \"string\",\n \"pattern\": \"^-?\\\\d+(?:\\\\.\\\\d+)?$\"\n },\n \"currencyCode\": {\n \"type\": \"string\",\n \"pattern\": \"^[A-Z]{3}$\"\n }\n },\n \"required\": [\n \"amount\",\n \"currencyCode\"\n ],\n \"additionalProperties\": false\n },\n \"MigratableSubscriptionNotification\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"type\": \"string\",\n \"description\": \"Known values: NONE, OPT_OUT, WHEN_REQUIRED.\"\n },\n \"optOutDeadline\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/MigratableSubscription/properties/effectiveDate/anyOf/0/anyOf/1\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"sentAt\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/MigratableSubscription/properties/effectiveDate/anyOf/0/anyOf/1\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"kind\",\n \"optOutDeadline\",\n \"sentAt\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
2818
2881
  "examples": [
2819
2882
  "<%= config.bin %> <%= command.id %>",
2820
2883
  "<%= config.bin %> <%= command.id %> --status SCHEDULED > scheduled-subscriptions.csv",
@@ -2934,13 +2997,13 @@
2934
2997
  "pluginType": "core",
2935
2998
  "strict": true,
2936
2999
  "summary": "Lists app subscriptions eligible for migration.",
2937
- "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.",
3000
+ "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 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.",
2938
3001
  "customPluginName": "@shopify/app"
2939
3002
  },
2940
3003
  "app:subscription-migrations:schedule": {
2941
3004
  "aliases": [],
2942
3005
  "args": {},
2943
- "description": "Schedules manual-billing subscriptions to migrate to Shopify-managed app pricing.\n\nWhen `--input` is omitted, the command reads CSV data from stdin. Use `--input <path>` to read from a file. `--input -` is also supported as an explicit stdin path.\n\n- Required CSV columns: `shop_id`, `target_plan_handle`, and `price_behavior`.\n- Optional CSV column: `notification`.\n- Example header: `shop_id,target_plan_handle,price_behavior,notification`.\n- Example row: `123456789,pro,HONOR_BILLING_PRICE,WHEN_REQUIRED`.\n\n`price_behavior` must be `HONOR_BILLING_PRICE` or `PLAN_PRICE`. `notification` can be `OPT_OUT` or `WHEN_REQUIRED` and defaults to `WHEN_REQUIRED` when omitted or blank.\n\nValidation is atomic: the command submits no operations unless the entire CSV is valid. Valid rows are submitted in batches of 250 shops. Preserve every operation GID printed by the command so you can check or cancel the submitted operations.\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.\n\nUse `--force` to skip confirmation and immediately submit every valid row. With `--watch`, human-readable output shows accepted identifiers before polling begins, then displays operation progress and the final outcome. With `--json --watch`, the command outputs one structured JSON document after every operation reaches a terminal status.",
3006
+ "description": "Schedules manual-billing subscriptions to migrate to Shopify-managed app pricing.\n\nWhen `--input` is omitted, the command reads CSV data from stdin. Use `--input <path>` to read from a file. `--input -` is also supported as an explicit stdin path.\n\n- Required CSV columns: `shop_id`, `target_plan_handle`, and `price_behavior`.\n- Optional CSV column: `notification`.\n- Example header: `shop_id,target_plan_handle,price_behavior,notification`.\n- Example row: `123456789,pro,HONOR_BILLING_PRICE,WHEN_REQUIRED`.\n\n`price_behavior` must be `HONOR_BILLING_PRICE` or `PLAN_PRICE`. `notification` can be `OPT_OUT` or `WHEN_REQUIRED` and defaults to `WHEN_REQUIRED` when omitted or blank.\n\nValidation is atomic: the command submits no operations unless the entire CSV is valid. Valid rows are submitted in batches of 250 shops. Preserve every operation GID printed by the command so you can check or cancel the submitted operations.\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.\n\nUse `--force` to skip confirmation and immediately submit every valid row. With `--watch`, human-readable output shows accepted identifiers before polling begins, then displays operation progress and the final outcome. With `--json --watch`, the command outputs one structured JSON document after every operation reaches a terminal status.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `MigrationSubmissionResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"clientId\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The app client ID, not a Shopify GID.\"\n },\n \"action\": {\n \"type\": \"string\",\n \"enum\": [\n \"schedule\",\n \"unschedule\"\n ]\n },\n \"inputDigest\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"total\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"operations\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/SubmittedMigrationOperation\"\n }\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"clientId\",\n \"action\",\n \"inputDigest\",\n \"total\",\n \"operations\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"partial\"\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"clientId\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The app client ID, not a Shopify GID.\"\n },\n \"action\": {\n \"type\": \"string\",\n \"enum\": [\n \"schedule\",\n \"unschedule\"\n ]\n },\n \"inputDigest\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"total\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"operations\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/SubmittedMigrationOperation\"\n }\n },\n \"failure\": {\n \"$ref\": \"#/definitions/MigrationSubmissionFailure\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"clientId\",\n \"action\",\n \"inputDigest\",\n \"total\",\n \"operations\",\n \"failure\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n },\n \"changed\": {\n \"type\": \"boolean\",\n \"const\": false\n },\n \"action\": {\n \"type\": \"string\",\n \"enum\": [\n \"schedule\",\n \"unschedule\"\n ]\n },\n \"reason\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"action\",\n \"reason\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"MigrationSubmissionResult\",\n \"definitions\": {\n \"SubmittedMigrationOperation\": {\n \"type\": \"object\",\n \"properties\": {\n \"batchIndex\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"batchPayloadDigest\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"operation\": {\n \"$ref\": \"#/definitions/MigrationOperation\"\n }\n },\n \"required\": [\n \"batchIndex\",\n \"batchPayloadDigest\",\n \"operation\"\n ],\n \"additionalProperties\": false\n },\n \"MigrationOperation\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/AppSubscriptionMigrationOperation\\\\/[^/]+$\",\n \"description\": \"The Shopify AppSubscriptionMigrationOperation GID.\"\n },\n \"status\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Upstream status: RUNNING, COMPLETED, FAILED, or CANCELED.\"\n },\n \"total\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"results\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"shopGid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/Shop\\\\/\\\\d+$\",\n \"description\": \"The Shopify Shop GID.\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The upstream per-shop migration result code.\"\n }\n },\n \"required\": [\n \"shopGid\",\n \"code\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"gid\",\n \"status\",\n \"total\",\n \"results\"\n ],\n \"additionalProperties\": false\n },\n \"MigrationSubmissionFailure\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"submission\"\n },\n \"batchIndex\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"userErrors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/MigrationUserError\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"batchIndex\",\n \"userErrors\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"operations\"\n },\n \"operationGids\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/MigrationOperation/properties/gid\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"operationGids\"\n ],\n \"additionalProperties\": false\n }\n ]\n },\n \"MigrationUserError\": {\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"anyOf\": [\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"message\",\n \"fieldPath\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
2944
3007
  "examples": [
2945
3008
  "<%= config.bin %> <%= command.id %> --input migrations.csv --force",
2946
3009
  "cat migrations.csv | <%= config.bin %> <%= command.id %> --force",
@@ -3077,7 +3140,7 @@
3077
3140
  "app:subscription-migrations:status": {
3078
3141
  "aliases": [],
3079
3142
  "args": {},
3080
- "description": "Checks app subscription migration operation status.\n\nRepeat `--id` for every operation GID returned by a multi-batch submission. With `--watch`, the command displays the current state while polling and outputs the final state after all requested operations reach a terminal status.\n\n`RUNNING` means an operation is still processing. `COMPLETED` means processing finished, but you must inspect the per-shop results to confirm each outcome. `FAILED` means the operation failed, and `CANCELED` means cancellation stopped further processing.\n\nUse `--json` to output every operation and its per-shop results as structured JSON.\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.",
3143
+ "description": "Checks app subscription migration operation status.\n\nRepeat `--id` for every operation GID returned by a multi-batch submission. With `--watch`, the command displays the current state while polling and outputs the final state after all requested operations reach a terminal status.\n\n`RUNNING` means an operation is still processing. `COMPLETED` means processing finished, but you must inspect the per-shop results to confirm each outcome. `FAILED` means the operation failed, and `CANCELED` means cancellation stopped further processing.\n\nUse `--json` to output every operation and its per-shop results as structured JSON.\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.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `MigrationStatusResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"operations\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/MigrationOperation\"\n }\n }\n },\n \"required\": [\n \"operations\"\n ],\n \"additionalProperties\": false,\n \"title\": \"MigrationStatusResult\",\n \"definitions\": {\n \"MigrationOperation\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/AppSubscriptionMigrationOperation\\\\/[^/]+$\",\n \"description\": \"The Shopify AppSubscriptionMigrationOperation GID.\"\n },\n \"status\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Upstream status: RUNNING, COMPLETED, FAILED, or CANCELED.\"\n },\n \"total\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"results\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"shopGid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/Shop\\\\/\\\\d+$\",\n \"description\": \"The Shopify Shop GID.\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The upstream per-shop migration result code.\"\n }\n },\n \"required\": [\n \"shopGid\",\n \"code\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"gid\",\n \"status\",\n \"total\",\n \"results\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
3081
3144
  "examples": [
3082
3145
  "<%= config.bin %> <%= command.id %> --id <operation-id>",
3083
3146
  "<%= config.bin %> <%= command.id %> --path ../my-app --config staging --id <operation-id-1> --id <operation-id-2> --watch",
@@ -3204,7 +3267,7 @@
3204
3267
  "app:subscription-migrations:unschedule": {
3205
3268
  "aliases": [],
3206
3269
  "args": {},
3207
- "description": "Reverses scheduled app subscription migrations that have not migrated yet.\n\nWhen `--input` is omitted, the command reads CSV data from stdin. Use `--input <path>` to read from a file. `--input -` is also supported as an explicit stdin path.\n\n- Required CSV header: `shop_id`.\n- Example row: `123456789`.\n\nThe CSV can contain only the `shop_id` header, or it can reuse the complete CSV supplied to `schedule`; schedule-only columns are ignored.\n\nUnscheduling is not a rollback after a subscription has migrated. The command validates the entire CSV before sending any mutation. Use `--force` to skip confirmation and immediately submit every valid row.\n\nOperations are submitted in batches of 250 shops. Preserve every operation GID printed by the command so you can check or cancel the submitted operations. With `--watch`, human-readable output shows accepted identifiers before polling begins, then displays operation progress and the final outcome. With `--json --watch`, the command outputs one structured JSON document after every operation reaches a terminal status.\n\nRun the command from an app project. By default, it uses the Client ID from the active app configuration. Use `--path` to select an app directory or `--config` to select a configuration. Pass `--client-id` to select a different app within the project. Use `--reset` to relink the app.",
3270
+ "description": "Reverses scheduled app subscription migrations that have not migrated yet.\n\nWhen `--input` is omitted, the command reads CSV data from stdin. Use `--input <path>` to read from a file. `--input -` is also supported as an explicit stdin path.\n\n- Required CSV header: `shop_id`.\n- Example row: `123456789`.\n\nThe CSV can contain only the `shop_id` header, or it can reuse the complete CSV supplied to `schedule`; schedule-only columns are ignored.\n\nUnscheduling is not a rollback after a subscription has migrated. The command validates the entire CSV before sending any mutation. Use `--force` to skip confirmation and immediately submit every valid row.\n\nOperations are submitted in batches of 250 shops. Preserve every operation GID printed by the command so you can check or cancel the submitted operations. With `--watch`, human-readable output shows accepted identifiers before polling begins, then displays operation progress and the final outcome. With `--json --watch`, the command outputs one structured JSON document after every operation reaches a terminal status.\n\nRun the command from an app project. By default, it uses the Client ID from the active app configuration. Use `--path` to select an app directory or `--config` to select a configuration. Pass `--client-id` to select a different app within the project. Use `--reset` to relink the app.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `MigrationSubmissionResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"clientId\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The app client ID, not a Shopify GID.\"\n },\n \"action\": {\n \"type\": \"string\",\n \"enum\": [\n \"schedule\",\n \"unschedule\"\n ]\n },\n \"inputDigest\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"total\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"operations\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/SubmittedMigrationOperation\"\n }\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"clientId\",\n \"action\",\n \"inputDigest\",\n \"total\",\n \"operations\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"partial\"\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"clientId\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The app client ID, not a Shopify GID.\"\n },\n \"action\": {\n \"type\": \"string\",\n \"enum\": [\n \"schedule\",\n \"unschedule\"\n ]\n },\n \"inputDigest\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"total\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"operations\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/SubmittedMigrationOperation\"\n }\n },\n \"failure\": {\n \"$ref\": \"#/definitions/MigrationSubmissionFailure\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"clientId\",\n \"action\",\n \"inputDigest\",\n \"total\",\n \"operations\",\n \"failure\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n },\n \"changed\": {\n \"type\": \"boolean\",\n \"const\": false\n },\n \"action\": {\n \"type\": \"string\",\n \"enum\": [\n \"schedule\",\n \"unschedule\"\n ]\n },\n \"reason\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"action\",\n \"reason\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"MigrationSubmissionResult\",\n \"definitions\": {\n \"SubmittedMigrationOperation\": {\n \"type\": \"object\",\n \"properties\": {\n \"batchIndex\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"batchPayloadDigest\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"operation\": {\n \"$ref\": \"#/definitions/MigrationOperation\"\n }\n },\n \"required\": [\n \"batchIndex\",\n \"batchPayloadDigest\",\n \"operation\"\n ],\n \"additionalProperties\": false\n },\n \"MigrationOperation\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/AppSubscriptionMigrationOperation\\\\/[^/]+$\",\n \"description\": \"The Shopify AppSubscriptionMigrationOperation GID.\"\n },\n \"status\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Upstream status: RUNNING, COMPLETED, FAILED, or CANCELED.\"\n },\n \"total\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"results\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"shopGid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/Shop\\\\/\\\\d+$\",\n \"description\": \"The Shopify Shop GID.\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The upstream per-shop migration result code.\"\n }\n },\n \"required\": [\n \"shopGid\",\n \"code\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"gid\",\n \"status\",\n \"total\",\n \"results\"\n ],\n \"additionalProperties\": false\n },\n \"MigrationSubmissionFailure\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"submission\"\n },\n \"batchIndex\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"userErrors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/MigrationUserError\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"batchIndex\",\n \"userErrors\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"operations\"\n },\n \"operationGids\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/MigrationOperation/properties/gid\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"operationGids\"\n ],\n \"additionalProperties\": false\n }\n ]\n },\n \"MigrationUserError\": {\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n },\n \"fieldPath\": {\n \"anyOf\": [\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"message\",\n \"fieldPath\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
3208
3271
  "examples": [
3209
3272
  "<%= config.bin %> <%= command.id %> --input migrations.csv --force",
3210
3273
  "cat migrations.csv | <%= config.bin %> <%= command.id %> --force",
@@ -3341,7 +3404,7 @@
3341
3404
  "app:config:link": {
3342
3405
  "aliases": [],
3343
3406
  "args": {},
3344
- "description": "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.\n\n 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.\n ",
3407
+ "description": "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.\n\n 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.\n \n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppConfigLinkResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"app\": {\n \"$ref\": \"#/definitions/LinkedApp\"\n }\n },\n \"required\": [\n \"path\",\n \"app\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AppConfigLinkResult\",\n \"definitions\": {\n \"LinkedApp\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The upstream non-GID app identifier, or null when the platform supplies a GID.\"\n },\n \"gid\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/App\\\\/[^\\\\s/]+$\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The Shopify App GID, or null when the platform supplies another identifier.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The public OAuth client identifier.\"\n },\n \"organizationId\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The upstream non-GID organization identifier, or null when unavailable.\"\n },\n \"organizationGid\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/Organization\\\\/[^\\\\s/]+$\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The Shopify Organization GID, or null when unavailable.\"\n }\n },\n \"required\": [\n \"id\",\n \"gid\",\n \"name\",\n \"clientId\",\n \"organizationId\",\n \"organizationGid\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The linked app identity. Read the file at path for its configuration.\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
3345
3408
  "flags": {
3346
3409
  "json-schema": {
3347
3410
  "description": "Print the command's JSON schemas.",
@@ -3381,6 +3444,15 @@
3381
3444
  "allowNo": false,
3382
3445
  "type": "boolean"
3383
3446
  },
3447
+ "json": {
3448
+ "char": "j",
3449
+ "description": "Output the result as JSON. Automatically disables color output.",
3450
+ "env": "SHOPIFY_FLAG_JSON",
3451
+ "hidden": false,
3452
+ "name": "json",
3453
+ "allowNo": false,
3454
+ "type": "boolean"
3455
+ },
3384
3456
  "path": {
3385
3457
  "description": "The path to your app directory.",
3386
3458
  "env": "SHOPIFY_FLAG_PATH",
@@ -3474,7 +3546,7 @@
3474
3546
  "name": "config"
3475
3547
  }
3476
3548
  },
3477
- "description": "Sets default configuration when you run app-related CLI commands. If you omit the `config-name` parameter, then you'll be prompted to choose from the configuration files in your project.",
3549
+ "description": "Sets default configuration when you run app-related CLI commands. If you omit the `config-name` parameter, then you'll be prompted to choose from the configuration files in your project.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppConfigUseResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the preferred configuration changed.\"\n },\n \"path\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The preferred configuration file, or null after clearing the preference.\"\n },\n \"clientId\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The public OAuth client identifier, or null after clearing the preference.\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"path\",\n \"clientId\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AppConfigUseResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
3478
3550
  "flags": {
3479
3551
  "json-schema": {
3480
3552
  "description": "Print the command's JSON schemas.",
@@ -3514,6 +3586,15 @@
3514
3586
  "allowNo": false,
3515
3587
  "type": "boolean"
3516
3588
  },
3589
+ "json": {
3590
+ "char": "j",
3591
+ "description": "Output the result as JSON. Automatically disables color output.",
3592
+ "env": "SHOPIFY_FLAG_JSON",
3593
+ "hidden": false,
3594
+ "name": "json",
3595
+ "allowNo": false,
3596
+ "type": "boolean"
3597
+ },
3517
3598
  "path": {
3518
3599
  "description": "The path to your app directory.",
3519
3600
  "env": "SHOPIFY_FLAG_PATH",
@@ -3562,7 +3643,7 @@
3562
3643
  "app:config:pull": {
3563
3644
  "aliases": [],
3564
3645
  "args": {},
3565
- "description": "Pulls the latest configuration from the already-linked Shopify app and updates the selected configuration file.\n\nThis command reuses the existing linked app and organization and skips all interactive prompts. Use `--config` to target a specific configuration file, or omit it to use the default one.",
3646
+ "description": "Pulls the latest configuration from the already-linked Shopify app and updates the selected configuration file.\n\nThis command reuses the existing linked app and organization and skips all interactive prompts. Use `--config` to target a specific configuration file, or omit it to use the default one.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppConfigPullResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"app\": {\n \"$ref\": \"#/definitions/LinkedApp\"\n }\n },\n \"required\": [\n \"path\",\n \"app\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AppConfigPullResult\",\n \"definitions\": {\n \"LinkedApp\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The upstream non-GID app identifier, or null when the platform supplies a GID.\"\n },\n \"gid\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/App\\\\/[^\\\\s/]+$\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The Shopify App GID, or null when the platform supplies another identifier.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The public OAuth client identifier.\"\n },\n \"organizationId\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The upstream non-GID organization identifier, or null when unavailable.\"\n },\n \"organizationGid\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/Organization\\\\/[^\\\\s/]+$\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The Shopify Organization GID, or null when unavailable.\"\n }\n },\n \"required\": [\n \"id\",\n \"gid\",\n \"name\",\n \"clientId\",\n \"organizationId\",\n \"organizationGid\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The linked app identity. Read the file at path for its configuration.\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
3566
3647
  "flags": {
3567
3648
  "json-schema": {
3568
3649
  "description": "Print the command's JSON schemas.",
@@ -3602,6 +3683,15 @@
3602
3683
  "allowNo": false,
3603
3684
  "type": "boolean"
3604
3685
  },
3686
+ "json": {
3687
+ "char": "j",
3688
+ "description": "Output the result as JSON. Automatically disables color output.",
3689
+ "env": "SHOPIFY_FLAG_JSON",
3690
+ "hidden": false,
3691
+ "name": "json",
3692
+ "allowNo": false,
3693
+ "type": "boolean"
3694
+ },
3605
3695
  "path": {
3606
3696
  "description": "The path to your app directory.",
3607
3697
  "env": "SHOPIFY_FLAG_PATH",
@@ -3659,7 +3749,7 @@
3659
3749
  "app:env:pull": {
3660
3750
  "aliases": [],
3661
3751
  "args": {},
3662
- "description": "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.",
3752
+ "description": "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.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppEnvPullResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The absolute native dotenv file path.\"\n },\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the dotenv file was created or updated.\"\n },\n \"variables\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/AppEnvironmentVariable\"\n },\n \"description\": \"The known app variables, not unrelated local variables.\"\n },\n \"content\": {\n \"type\": \"string\",\n \"description\": \"The complete native dotenv content, preserving existing variables and comments.\"\n }\n },\n \"required\": [\n \"path\",\n \"status\",\n \"changed\",\n \"variables\",\n \"content\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AppEnvPullResult\",\n \"definitions\": {\n \"AppEnvironmentVariable\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The environment variable name with its original spelling.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value, included only when known.\"\n },\n \"isSecret\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the value is secret, included only when known.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The upstream variable identifier, included only when known.\"\n },\n \"readOnly\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the variable is read-only, included only when known.\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
3663
3753
  "flags": {
3664
3754
  "json-schema": {
3665
3755
  "description": "Print the command's JSON schemas.",
@@ -3699,11 +3789,20 @@
3699
3789
  "allowNo": false,
3700
3790
  "type": "boolean"
3701
3791
  },
3702
- "path": {
3703
- "description": "The path to your app directory.",
3704
- "env": "SHOPIFY_FLAG_PATH",
3705
- "name": "path",
3706
- "noCacheDefault": true,
3792
+ "json": {
3793
+ "char": "j",
3794
+ "description": "Output the result as JSON. Automatically disables color output.",
3795
+ "env": "SHOPIFY_FLAG_JSON",
3796
+ "hidden": false,
3797
+ "name": "json",
3798
+ "allowNo": false,
3799
+ "type": "boolean"
3800
+ },
3801
+ "path": {
3802
+ "description": "The path to your app directory.",
3803
+ "env": "SHOPIFY_FLAG_PATH",
3804
+ "name": "path",
3805
+ "noCacheDefault": true,
3707
3806
  "hasDynamicHelp": false,
3708
3807
  "multiple": false,
3709
3808
  "type": "option"
@@ -3765,7 +3864,7 @@
3765
3864
  "app:env:show": {
3766
3865
  "aliases": [],
3767
3866
  "args": {},
3768
- "description": "Displays environment variables that can be used to deploy apps and app extensions.",
3867
+ "description": "Displays environment variables that can be used to deploy apps and app extensions.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppEnvShowResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"variables\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/AppEnvironmentVariable\"\n }\n }\n },\n \"required\": [\n \"variables\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AppEnvShowResult\",\n \"definitions\": {\n \"AppEnvironmentVariable\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The environment variable name with its original spelling.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value, included only when known.\"\n },\n \"isSecret\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the value is secret, included only when known.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The upstream variable identifier, included only when known.\"\n },\n \"readOnly\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the variable is read-only, included only when known.\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
3769
3868
  "flags": {
3770
3869
  "json-schema": {
3771
3870
  "description": "Print the command's JSON schemas.",
@@ -3805,6 +3904,15 @@
3805
3904
  "allowNo": false,
3806
3905
  "type": "boolean"
3807
3906
  },
3907
+ "json": {
3908
+ "char": "j",
3909
+ "description": "Output the result as JSON. Automatically disables color output.",
3910
+ "env": "SHOPIFY_FLAG_JSON",
3911
+ "hidden": false,
3912
+ "name": "json",
3913
+ "allowNo": false,
3914
+ "type": "boolean"
3915
+ },
3808
3916
  "path": {
3809
3917
  "description": "The path to your app directory.",
3810
3918
  "env": "SHOPIFY_FLAG_PATH",
@@ -3862,7 +3970,7 @@
3862
3970
  "app:execute": {
3863
3971
  "aliases": [],
3864
3972
  "args": {},
3865
- "description": "Executes an Admin API GraphQL query or mutation on the specified store. Mutations are only allowed on dev stores.\n\n For operations that process large amounts of data, use \"`bulk execute`\" (https://shopify.dev/docs/api/shopify-cli/app/app-bulk-execute) instead.",
3973
+ "description": "Executes an Admin API GraphQL query or mutation on the specified store. Mutations are only allowed on dev stores.\n\n For operations that process large amounts of data, use \"`bulk execute`\" (https://shopify.dev/docs/api/shopify-cli/app/app-bulk-execute) instead.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppExecuteResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/AppExecuteGraphQLResult\"\n },\n {\n \"$ref\": \"#/definitions/AppExecuteFileReceipt\"\n }\n ],\n \"title\": \"AppExecuteResult\",\n \"definitions\": {\n \"AppExecuteGraphQLResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"data\": {\n \"anyOf\": [\n {\n \"allOf\": [\n {},\n {\n \"type\": \"object\",\n \"additionalProperties\": {}\n }\n ]\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Native GraphQL query data, preserving fields and aliases.\"\n },\n \"extensions\": {\n \"$ref\": \"#/definitions/AppExecuteGraphQLResult/properties/data/anyOf/0\",\n \"description\": \"Native GraphQL response extensions, when supplied.\"\n }\n },\n \"required\": [\n \"data\"\n ],\n \"additionalProperties\": false\n },\n \"AppExecuteFileReceipt\": {\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"json\"\n }\n },\n \"required\": [\n \"path\",\n \"format\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Receipt for a written JSON file containing the GraphQL result, including data and optional extensions.\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
3866
3974
  "flags": {
3867
3975
  "json-schema": {
3868
3976
  "description": "Print the command's JSON schemas.",
@@ -4009,6 +4117,15 @@
4009
4117
  "hasDynamicHelp": false,
4010
4118
  "multiple": false,
4011
4119
  "type": "option"
4120
+ },
4121
+ "json": {
4122
+ "char": "j",
4123
+ "description": "Output the result as JSON. Automatically disables color output.",
4124
+ "env": "SHOPIFY_FLAG_JSON",
4125
+ "hidden": false,
4126
+ "name": "json",
4127
+ "allowNo": false,
4128
+ "type": "boolean"
4012
4129
  }
4013
4130
  },
4014
4131
  "hasDynamicHelp": false,
@@ -4160,7 +4277,7 @@
4160
4277
  "app:bulk:execute": {
4161
4278
  "aliases": [],
4162
4279
  "args": {},
4163
- "description": "Executes an Admin API GraphQL query or mutation on the specified store, as a bulk operation. Mutations are only allowed on dev stores.\n\n Bulk operations allow you to process large amounts of data asynchronously. Learn more about \"bulk query operations\" (https://shopify.dev/docs/api/usage/bulk-operations/queries) and \"bulk mutation operations\" (https://shopify.dev/docs/api/usage/bulk-operations/imports).\n\n Use \"`bulk status`\" (https://shopify.dev/docs/api/shopify-cli/app/app-bulk-status) to check the status of your bulk operations.",
4280
+ "description": "Executes an Admin API GraphQL query or mutation on the specified store, as a bulk operation. Mutations are only allowed on dev stores.\n\n Bulk operations allow you to process large amounts of data asynchronously. Learn more about \"bulk query operations\" (https://shopify.dev/docs/api/usage/bulk-operations/queries) and \"bulk mutation operations\" (https://shopify.dev/docs/api/usage/bulk-operations/imports).\n\n Use \"`bulk status`\" (https://shopify.dev/docs/api/shopify-cli/app/app-bulk-status) to check the status of your bulk operations.\n\n With `--watch`, completed results are written as JSONL to stdout or `--output-file`. With `--json`, stdout contains one result object with operation details and downloaded JSONL in `resultsJsonl`. With `--json --output-file`, stdout contains only an absolute file receipt with `path` and `format`.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ExecuteBulkOperationResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ExecuteBulkOperationResult\"\n },\n {\n \"$ref\": \"#/definitions/BulkOperationFile\"\n }\n ],\n \"title\": \"ExecuteBulkOperationResult\",\n \"definitions\": {\n \"BulkOperation\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/BulkOperation\\\\/[^/]+$\",\n \"description\": \"The Shopify global ID of a bulk operation.\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n },\n \"errorCode\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"pattern\": \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$\",\n \"description\": \"A UTC ISO 8601 instant with whole seconds and the Z timezone marker.\"\n },\n \"completedAt\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/BulkOperation/properties/createdAt\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"A UTC ISO 8601 instant with whole seconds and the Z timezone marker.\"\n },\n \"objectCount\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"A nonnegative decimal count, without loss of integer precision.\"\n },\n \"url\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"partialDataUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"gid\",\n \"type\",\n \"status\",\n \"errorCode\",\n \"createdAt\",\n \"completedAt\",\n \"objectCount\",\n \"url\",\n \"partialDataUrl\"\n ],\n \"additionalProperties\": false\n },\n \"ExecuteBulkOperationResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"storeDomain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^[^.]+\\\\.myshopify\\\\.com$\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"apiVersion\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"The API version selected for the request.\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"partial\",\n \"cancelled\"\n ]\n },\n \"reason\": {\n \"type\": \"string\",\n \"const\": \"watch-aborted\"\n },\n \"operation\": {\n \"$ref\": \"#/definitions/BulkOperation\"\n },\n \"resultsJsonl\": {\n \"type\": \"string\",\n \"description\": \"Downloaded results in their native JSONL format.\"\n }\n },\n \"required\": [\n \"storeDomain\",\n \"apiVersion\",\n \"status\",\n \"operation\"\n ],\n \"additionalProperties\": false\n },\n \"BulkOperationFile\": {\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of the downloaded results file.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"jsonl\"\n }\n },\n \"required\": [\n \"path\",\n \"format\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
4164
4281
  "flags": {
4165
4282
  "json-schema": {
4166
4283
  "description": "Print the command's JSON schemas.",
@@ -4200,6 +4317,15 @@
4200
4317
  "allowNo": false,
4201
4318
  "type": "boolean"
4202
4319
  },
4320
+ "json": {
4321
+ "char": "j",
4322
+ "description": "Output the result as JSON. Automatically disables color output.",
4323
+ "env": "SHOPIFY_FLAG_JSON",
4324
+ "hidden": false,
4325
+ "name": "json",
4326
+ "allowNo": false,
4327
+ "type": "boolean"
4328
+ },
4203
4329
  "path": {
4204
4330
  "description": "The path to your app directory.",
4205
4331
  "env": "SHOPIFY_FLAG_PATH",
@@ -4327,13 +4453,13 @@
4327
4453
  "pluginType": "core",
4328
4454
  "strict": true,
4329
4455
  "summary": "Execute bulk operations.",
4330
- "descriptionWithMarkdown": "Executes an Admin API GraphQL query or mutation on the specified store, as a bulk operation. Mutations are only allowed on dev stores.\n\n Bulk operations allow you to process large amounts of data asynchronously. Learn more about [bulk query operations](https://shopify.dev/docs/api/usage/bulk-operations/queries) and [bulk mutation operations](https://shopify.dev/docs/api/usage/bulk-operations/imports).\n\n Use [`bulk status`](https://shopify.dev/docs/api/shopify-cli/app/app-bulk-status) to check the status of your bulk operations.",
4456
+ "descriptionWithMarkdown": "Executes an Admin API GraphQL query or mutation on the specified store, as a bulk operation. Mutations are only allowed on dev stores.\n\n Bulk operations allow you to process large amounts of data asynchronously. Learn more about [bulk query operations](https://shopify.dev/docs/api/usage/bulk-operations/queries) and [bulk mutation operations](https://shopify.dev/docs/api/usage/bulk-operations/imports).\n\n Use [`bulk status`](https://shopify.dev/docs/api/shopify-cli/app/app-bulk-status) to check the status of your bulk operations.\n\n With `--watch`, completed results are written as JSONL to stdout or `--output-file`. With `--json`, stdout contains one result object with operation details and downloaded JSONL in `resultsJsonl`. With `--json --output-file`, stdout contains only an absolute file receipt with `path` and `format`.",
4331
4457
  "customPluginName": "@shopify/app"
4332
4458
  },
4333
4459
  "app:function:build": {
4334
4460
  "aliases": [],
4335
4461
  "args": {},
4336
- "description": "Compiles the function in your current directory to WebAssembly (Wasm) for testing purposes.",
4462
+ "description": "Compiles the function in your current directory to WebAssembly (Wasm) for testing purposes.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `FunctionBuildResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"function\": {\n \"$ref\": \"#/definitions/FunctionBuild\"\n }\n },\n \"required\": [\n \"status\",\n \"function\"\n ],\n \"additionalProperties\": false,\n \"title\": \"FunctionBuildResult\",\n \"definitions\": {\n \"FunctionBuild\": {\n \"type\": \"object\",\n \"properties\": {\n \"handle\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Null when the extension does not configure a handle.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"directory\": {\n \"type\": \"string\",\n \"pattern\": \"^(?:\\\\/|[a-zA-Z]:[\\\\\\\\/]|\\\\\\\\\\\\\\\\)\",\n \"description\": \"An absolute native filesystem path.\"\n },\n \"wasmPath\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/FunctionBuild/properties/directory\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The built Wasm file, or null when the build produced no file.\"\n }\n },\n \"required\": [\n \"handle\",\n \"name\",\n \"directory\",\n \"wasmPath\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
4337
4463
  "flags": {
4338
4464
  "json-schema": {
4339
4465
  "description": "Print the command's JSON schemas.",
@@ -4415,6 +4541,15 @@
4415
4541
  "name": "reset",
4416
4542
  "allowNo": false,
4417
4543
  "type": "boolean"
4544
+ },
4545
+ "json": {
4546
+ "char": "j",
4547
+ "description": "Output the result as JSON. Automatically disables color output.",
4548
+ "env": "SHOPIFY_FLAG_JSON",
4549
+ "hidden": false,
4550
+ "name": "json",
4551
+ "allowNo": false,
4552
+ "type": "boolean"
4418
4553
  }
4419
4554
  },
4420
4555
  "hasDynamicHelp": false,
@@ -4431,7 +4566,7 @@
4431
4566
  "app:function:replay": {
4432
4567
  "aliases": [],
4433
4568
  "args": {},
4434
- "description": "Runs the function from your current directory for \"testing purposes\" (https://shopify.dev/docs/apps/functions/testing-and-debugging). To learn how you can monitor and debug functions when errors occur, refer to \"Shopify Functions error handling\" (https://shopify.dev/docs/api/functions/errors).",
4569
+ "description": "Runs the function from your current directory for \"testing purposes\" (https://shopify.dev/docs/apps/functions/testing-and-debugging). To learn how you can monitor and debug functions when errors occur, refer to \"Shopify Functions error handling\" (https://shopify.dev/docs/api/functions/errors).\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `FunctionRunResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"Module size in kilobytes, as reported by Function runner.\"\n },\n \"memory_usage\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"Linear memory usage in kilobytes, as reported by Function runner.\"\n },\n \"instructions\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"logs\": {\n \"type\": \"string\"\n },\n \"input\": {\n \"description\": \"Native Function input; query keys and values are preserved.\"\n },\n \"output\": {\n \"description\": \"Native Function output, including the runner-specific invalid-output representation.\"\n },\n \"success\": {\n \"type\": \"boolean\",\n \"description\": \"False for a completed Function execution that failed; the command exits nonzero.\"\n }\n },\n \"required\": [\n \"name\",\n \"size\",\n \"memory_usage\",\n \"instructions\",\n \"logs\",\n \"input\",\n \"output\",\n \"success\"\n ],\n \"additionalProperties\": true,\n \"description\": \"The native JSON object produced by Function runner 7.x and 9.x. Extra upstream fields are preserved.\",\n \"title\": \"FunctionRunResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
4435
4570
  "flags": {
4436
4571
  "json-schema": {
4437
4572
  "description": "Print the command's JSON schemas.",
@@ -4556,7 +4691,7 @@
4556
4691
  "app:function:run": {
4557
4692
  "aliases": [],
4558
4693
  "args": {},
4559
- "description": "Runs the function from your current directory for \"testing purposes\" (https://shopify.dev/docs/apps/functions/testing-and-debugging). To learn how you can monitor and debug functions when errors occur, refer to \"Shopify Functions error handling\" (https://shopify.dev/docs/api/functions/errors).",
4694
+ "description": "Runs the function from your current directory for \"testing purposes\" (https://shopify.dev/docs/apps/functions/testing-and-debugging). To learn how you can monitor and debug functions when errors occur, refer to \"Shopify Functions error handling\" (https://shopify.dev/docs/api/functions/errors).\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `FunctionRunResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"Module size in kilobytes, as reported by Function runner.\"\n },\n \"memory_usage\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"Linear memory usage in kilobytes, as reported by Function runner.\"\n },\n \"instructions\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"logs\": {\n \"type\": \"string\"\n },\n \"input\": {\n \"description\": \"Native Function input; query keys and values are preserved.\"\n },\n \"output\": {\n \"description\": \"Native Function output, including the runner-specific invalid-output representation.\"\n },\n \"success\": {\n \"type\": \"boolean\",\n \"description\": \"False for a completed Function execution that failed; the command exits nonzero.\"\n }\n },\n \"required\": [\n \"name\",\n \"size\",\n \"memory_usage\",\n \"instructions\",\n \"logs\",\n \"input\",\n \"output\",\n \"success\"\n ],\n \"additionalProperties\": true,\n \"description\": \"The native JSON object produced by Function runner 7.x and 9.x. Extra upstream fields are preserved.\",\n \"title\": \"FunctionRunResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
4560
4695
  "flags": {
4561
4696
  "json-schema": {
4562
4697
  "description": "Print the command's JSON schemas.",
@@ -4689,7 +4824,7 @@
4689
4824
  "app:function:info": {
4690
4825
  "aliases": [],
4691
4826
  "args": {},
4692
- "description": "The information returned includes the following:\n\n - The function handle\n - The function name\n - The function API version\n - The targeting configuration\n - The schema path\n - The WASM path\n - The function runner path",
4827
+ "description": "The information returned includes the following:\n\n - The function handle\n - The function name\n - The function API version\n - The targeting configuration\n - The schema path\n - The WASM path\n - The function runner path\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `FunctionInfoResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"function\": {\n \"$ref\": \"#/definitions/FunctionInfo\"\n }\n },\n \"required\": [\n \"function\"\n ],\n \"additionalProperties\": false,\n \"title\": \"FunctionInfoResult\",\n \"definitions\": {\n \"FunctionInfo\": {\n \"type\": \"object\",\n \"properties\": {\n \"handle\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Null when the extension does not configure a handle.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"apiVersion\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"The configured API version, or null when unavailable.\"\n },\n \"directory\": {\n \"type\": \"string\",\n \"pattern\": \"^(?:\\\\/|[a-zA-Z]:[\\\\\\\\/]|\\\\\\\\\\\\\\\\)\",\n \"description\": \"An absolute native filesystem path.\"\n },\n \"targets\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/FunctionTarget\"\n },\n \"description\": \"All configured targets; empty when none are configured.\"\n },\n \"schemaPath\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/FunctionInfo/properties/directory\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Null when a GraphQL schema is unavailable.\"\n },\n \"wasmPath\": {\n \"$ref\": \"#/definitions/FunctionInfo/properties/directory\"\n },\n \"functionRunnerPath\": {\n \"$ref\": \"#/definitions/FunctionInfo/properties/directory\"\n }\n },\n \"required\": [\n \"handle\",\n \"name\",\n \"apiVersion\",\n \"directory\",\n \"targets\",\n \"schemaPath\",\n \"wasmPath\",\n \"functionRunnerPath\"\n ],\n \"additionalProperties\": false\n },\n \"FunctionTarget\": {\n \"type\": \"object\",\n \"properties\": {\n \"target\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"inputQueryPath\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/FunctionInfo/properties/directory\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Null when no input query is configured.\"\n },\n \"export\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Null when no WebAssembly export is configured.\"\n }\n },\n \"required\": [\n \"target\",\n \"inputQueryPath\",\n \"export\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
4693
4828
  "flags": {
4694
4829
  "json-schema": {
4695
4830
  "description": "Print the command's JSON schemas.",
@@ -4796,7 +4931,7 @@
4796
4931
  "app:function:schema": {
4797
4932
  "aliases": [],
4798
4933
  "args": {},
4799
- "description": "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.",
4934
+ "description": "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.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `FunctionSchemaResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/FunctionSchemaFile\"\n },\n {\n \"$ref\": \"#/definitions/FunctionSchemaContent\"\n }\n ],\n \"title\": \"FunctionSchemaResult\",\n \"definitions\": {\n \"FunctionSchemaFile\": {\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\",\n \"pattern\": \"^(?:\\\\/|[a-zA-Z]:[\\\\\\\\/]|\\\\\\\\\\\\\\\\)\",\n \"description\": \"An absolute native filesystem path.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"graphql\",\n \"description\": \"The file contains native GraphQL SDL with the API-version header.\"\n }\n },\n \"required\": [\n \"path\",\n \"format\"\n ],\n \"additionalProperties\": false\n },\n \"FunctionSchemaContent\": {\n \"type\": \"object\",\n \"properties\": {\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Native GraphQL SDL with the API-version header, returned with --stdout --json.\"\n }\n },\n \"required\": [\n \"schema\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
4800
4935
  "flags": {
4801
4936
  "json-schema": {
4802
4937
  "description": "Print the command's JSON schemas.",
@@ -4879,6 +5014,15 @@
4879
5014
  "allowNo": false,
4880
5015
  "type": "boolean"
4881
5016
  },
5017
+ "json": {
5018
+ "char": "j",
5019
+ "description": "Output the result as JSON. Automatically disables color output.",
5020
+ "env": "SHOPIFY_FLAG_JSON",
5021
+ "hidden": false,
5022
+ "name": "json",
5023
+ "allowNo": false,
5024
+ "type": "boolean"
5025
+ },
4882
5026
  "stdout": {
4883
5027
  "description": "Output the schema to stdout instead of writing to a file.",
4884
5028
  "env": "SHOPIFY_FLAG_STDOUT",
@@ -4902,7 +5046,7 @@
4902
5046
  "app:function:typegen": {
4903
5047
  "aliases": [],
4904
5048
  "args": {},
4905
- "description": "Creates GraphQL types based on your \"input query\" (https://shopify.dev/docs/apps/functions/input-output#input) for a function. Supports JavaScript functions out of the box, or any language via the `build.typegen_command` configuration.",
5049
+ "description": "Creates GraphQL types based on your \"input query\" (https://shopify.dev/docs/apps/functions/input-output#input) for a function. Supports JavaScript functions out of the box, or any language via the `build.typegen_command` configuration.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `FunctionTypegenResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"function\": {\n \"$ref\": \"#/definitions/Function\"\n }\n },\n \"required\": [\n \"status\",\n \"function\"\n ],\n \"additionalProperties\": false,\n \"title\": \"FunctionTypegenResult\",\n \"definitions\": {\n \"Function\": {\n \"type\": \"object\",\n \"properties\": {\n \"handle\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Null when the extension does not configure a handle.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"directory\": {\n \"type\": \"string\",\n \"pattern\": \"^(?:\\\\/|[a-zA-Z]:[\\\\\\\\/]|\\\\\\\\\\\\\\\\)\",\n \"description\": \"An absolute native filesystem path.\"\n }\n },\n \"required\": [\n \"handle\",\n \"name\",\n \"directory\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
4906
5050
  "flags": {
4907
5051
  "json-schema": {
4908
5052
  "description": "Print the command's JSON schemas.",
@@ -4984,6 +5128,15 @@
4984
5128
  "name": "reset",
4985
5129
  "allowNo": false,
4986
5130
  "type": "boolean"
5131
+ },
5132
+ "json": {
5133
+ "char": "j",
5134
+ "description": "Output the result as JSON. Automatically disables color output.",
5135
+ "env": "SHOPIFY_FLAG_JSON",
5136
+ "hidden": false,
5137
+ "name": "json",
5138
+ "allowNo": false,
5139
+ "type": "boolean"
4987
5140
  }
4988
5141
  },
4989
5142
  "hasDynamicHelp": false,
@@ -5000,7 +5153,7 @@
5000
5153
  "app:generate:extension": {
5001
5154
  "aliases": [],
5002
5155
  "args": {},
5003
- "description": "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).\n\n 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.\n ",
5156
+ "description": "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).\n\n 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.\n \n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppGenerateExtensionResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"extension\": {\n \"$ref\": \"#/definitions/GeneratedExtension\"\n }\n },\n \"required\": [\n \"status\",\n \"extension\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AppGenerateExtensionResult\",\n \"definitions\": {\n \"GeneratedExtension\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The name selected for the generated extension.\"\n },\n \"type\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The extension type, such as function, theme, or ui_extension.\"\n },\n \"template\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The identifier of the selected extension template.\"\n },\n \"flavor\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"The selected template flavor, or null when the template has no flavors.\"\n },\n \"directory\": {\n \"type\": \"string\",\n \"description\": \"The absolute native filesystem path of the generated extension directory.\"\n }\n },\n \"required\": [\n \"name\",\n \"type\",\n \"template\",\n \"flavor\",\n \"directory\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
5004
5157
  "flags": {
5005
5158
  "json-schema": {
5006
5159
  "description": "Print the command's JSON schemas.",
@@ -5082,6 +5235,15 @@
5082
5235
  "allowNo": false,
5083
5236
  "type": "boolean"
5084
5237
  },
5238
+ "json": {
5239
+ "char": "j",
5240
+ "description": "Output the result as JSON. Automatically disables color output.",
5241
+ "env": "SHOPIFY_FLAG_JSON",
5242
+ "hidden": false,
5243
+ "name": "json",
5244
+ "allowNo": false,
5245
+ "type": "boolean"
5246
+ },
5085
5247
  "template": {
5086
5248
  "char": "t",
5087
5249
  "description": "Extension template. Required if non interactive.",
@@ -5250,7 +5412,7 @@
5250
5412
  "app:webhook:trigger": {
5251
5413
  "aliases": [],
5252
5414
  "args": {},
5253
- "description": "\n Triggers the delivery of a sample Admin API event topic payload to a designated address.\n\n You should use this command to experiment with webhooks, to initially test your webhook configuration, or for unit testing. However, to test your webhook configuration from end to end, you should always trigger webhooks by performing the related action in Shopify.\n\n Because most webhook deliveries use remote endpoints, you can trigger the command from any directory where you can use Shopify CLI, and send the webhook to any of the supported endpoint types. For example, you can run the command from your app's local directory, but send the webhook to a staging environment endpoint.\n\n To learn more about using webhooks in a Shopify app, refer to \"Webhooks overview\" (https://shopify.dev/docs/apps/webhooks).\n\n ### Limitations\n\n - Webhooks triggered using this method always have the same payload, so they can't be used to test scenarios that differ based on the payload contents.\n - Webhooks triggered using this method aren't retried when they fail.\n - Trigger requests are rate-limited using the \"Partner API rate limit\" (https://shopify.dev/docs/api/partner#rate_limits).\n - You can't use this method to validate your API webhook subscriptions.\n ",
5415
+ "description": "\n Triggers the delivery of a sample Admin API event topic payload to a designated address.\n\n You should use this command to experiment with webhooks, to initially test your webhook configuration, or for unit testing. However, to test your webhook configuration from end to end, you should always trigger webhooks by performing the related action in Shopify.\n\n Because most webhook deliveries use remote endpoints, you can trigger the command from any directory where you can use Shopify CLI, and send the webhook to any of the supported endpoint types. For example, you can run the command from your app's local directory, but send the webhook to a staging environment endpoint.\n\n To learn more about using webhooks in a Shopify app, refer to \"Webhooks overview\" (https://shopify.dev/docs/apps/webhooks).\n\n ### Limitations\n\n - Webhooks triggered using this method always have the same payload, so they can't be used to test scenarios that differ based on the payload contents.\n - Webhooks triggered using this method aren't retried when they fail.\n - Trigger requests are rate-limited using the \"Partner API rate limit\" (https://shopify.dev/docs/api/partner#rate_limits).\n - You can't use this method to validate your API webhook subscriptions.\n \n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AppWebhookTriggerResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"delivery\": {\n \"$ref\": \"#/definitions/AppWebhookDelivery\"\n }\n },\n \"required\": [\n \"status\",\n \"delivery\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AppWebhookTriggerResult\",\n \"definitions\": {\n \"AppWebhookDelivery\": {\n \"type\": \"object\",\n \"properties\": {\n \"topic\": {\n \"type\": \"string\"\n },\n \"apiVersion\": {\n \"type\": \"string\"\n },\n \"deliveryMethod\": {\n \"type\": \"string\",\n \"enum\": [\n \"localhost\",\n \"http\",\n \"google-pub-sub\",\n \"event-bridge\"\n ]\n },\n \"address\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"delivered\",\n \"enqueued\"\n ],\n \"description\": \"Remote delivery is enqueued, not confirmed received.\"\n }\n },\n \"required\": [\n \"topic\",\n \"apiVersion\",\n \"deliveryMethod\",\n \"address\",\n \"status\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
5254
5416
  "flags": {
5255
5417
  "json-schema": {
5256
5418
  "description": "Print the command's JSON schemas.",
@@ -5267,6 +5429,29 @@
5267
5429
  "multiple": false,
5268
5430
  "type": "option"
5269
5431
  },
5432
+ "no-input": {
5433
+ "description": "Disable interactive prompts and browser authentication.",
5434
+ "env": "SHOPIFY_FLAG_NO_INPUT",
5435
+ "name": "no-input",
5436
+ "allowNo": false,
5437
+ "type": "boolean"
5438
+ },
5439
+ "no-color": {
5440
+ "description": "Disable color output.",
5441
+ "env": "SHOPIFY_FLAG_NO_COLOR",
5442
+ "hidden": false,
5443
+ "name": "no-color",
5444
+ "allowNo": false,
5445
+ "type": "boolean"
5446
+ },
5447
+ "verbose": {
5448
+ "description": "Increase the verbosity of the output. May include sensitive data.",
5449
+ "env": "SHOPIFY_FLAG_VERBOSE",
5450
+ "hidden": false,
5451
+ "name": "verbose",
5452
+ "allowNo": false,
5453
+ "type": "boolean"
5454
+ },
5270
5455
  "path": {
5271
5456
  "description": "The path to your app directory.",
5272
5457
  "env": "SHOPIFY_FLAG_PATH",
@@ -5309,6 +5494,15 @@
5309
5494
  "allowNo": false,
5310
5495
  "type": "boolean"
5311
5496
  },
5497
+ "json": {
5498
+ "char": "j",
5499
+ "description": "Output the result as JSON. Automatically disables color output.",
5500
+ "env": "SHOPIFY_FLAG_JSON",
5501
+ "hidden": false,
5502
+ "name": "json",
5503
+ "allowNo": false,
5504
+ "type": "boolean"
5505
+ },
5312
5506
  "help": {
5313
5507
  "description": "This help. When you run the trigger command the CLI will prompt you for any information that isn't passed using flags.",
5314
5508
  "env": "SHOPIFY_FLAG_HELP",
@@ -5555,7 +5749,7 @@
5555
5749
  "required": false
5556
5750
  }
5557
5751
  },
5558
- "description": "Clones a Git repository to your local machine to use as the starting point for building a theme.\n\n If no Git repository is specified, then this command creates a copy of Shopify's \"Skeleton theme\" (https://github.com/Shopify/skeleton-theme.git), with the specified name in the current folder. If no name is provided, then you're prompted to enter one.\n\n > Caution: If you're building a theme for the Shopify Theme Store, then you can use our example theme as a starting point. However, the theme that you submit needs to be \"substantively different from existing themes\" (https://shopify.dev/docs/themes/store/requirements#uniqueness) so that it provides added value for users.\n ",
5752
+ "description": "Clones a Git repository to your local machine to use as the starting point for building a theme.\n\n If no Git repository is specified, then this command creates a copy of Shopify's \"Skeleton theme\" (https://github.com/Shopify/skeleton-theme.git), with the specified name in the current folder. If no name is provided, then you're prompted to enter one.\n\n > Caution: If you're building a theme for the Shopify Theme Store, then you can use our example theme as a starting point. However, the theme that you submit needs to be \"substantively different from existing themes\" (https://shopify.dev/docs/themes/store/requirements#uniqueness) so that it provides added value for users.\n \n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemeInitResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"partial\"\n ]\n },\n \"changed\": {\n \"type\": \"boolean\",\n \"const\": true\n },\n \"directory\": {\n \"$ref\": \"#/definitions/AbsolutePath\"\n },\n \"repoUrl\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The source Git remote (including HTTPS, SSH, or SCP-style Git URLs).\"\n },\n \"latest\": {\n \"type\": \"boolean\"\n },\n \"aiInstructions\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"all\",\n \"github\",\n \"cursor\",\n \"claude\"\n ]\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"instructionFilePaths\": {\n \"anyOf\": [\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/AbsolutePath\"\n }\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Created instruction files, or null when setup failed before their completion could be established.\"\n },\n \"reason\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"The reason for incomplete setup, or null when setup completed.\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"directory\",\n \"repoUrl\",\n \"latest\",\n \"aiInstructions\",\n \"instructionFilePaths\",\n \"reason\"\n ],\n \"additionalProperties\": false,\n \"title\": \"ThemeInitResult\",\n \"definitions\": {\n \"AbsolutePath\": {\n \"type\": \"string\",\n \"description\": \"An absolute native filesystem path.\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
5559
5753
  "flags": {
5560
5754
  "json-schema": {
5561
5755
  "description": "Print the command's JSON schemas.",
@@ -5595,6 +5789,15 @@
5595
5789
  "allowNo": false,
5596
5790
  "type": "boolean"
5597
5791
  },
5792
+ "json": {
5793
+ "char": "j",
5794
+ "description": "Output the result as JSON. Automatically disables color output.",
5795
+ "env": "SHOPIFY_FLAG_JSON",
5796
+ "hidden": false,
5797
+ "name": "json",
5798
+ "allowNo": false,
5799
+ "type": "boolean"
5800
+ },
5598
5801
  "path": {
5599
5802
  "description": "The path where you want to run the command. Defaults to the current working directory.",
5600
5803
  "env": "SHOPIFY_FLAG_PATH",
@@ -5640,7 +5843,7 @@
5640
5843
  "theme:check": {
5641
5844
  "aliases": [],
5642
5845
  "args": {},
5643
- "description": "Calls and runs \"Theme Check\" (https://shopify.dev/docs/themes/tools/theme-check) to analyze your theme code for errors and to ensure that it follows theme and Liquid best practices. \"Learn more about the checks that Theme Check runs.\" (https://shopify.dev/docs/themes/tools/theme-check/checks)",
5846
+ "description": "Calls and runs \"Theme Check\" (https://shopify.dev/docs/themes/tools/theme-check) to analyze your theme code for errors and to ensure that it follows theme and Liquid best practices. \"Learn more about the checks that Theme Check runs.\" (https://shopify.dev/docs/themes/tools/theme-check/checks)\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemeCheckResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/0/properties/result\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ThemeEnvironment\"\n }\n }\n },\n \"required\": [\n \"environments\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"ThemeCheckResult\",\n \"definitions\": {\n \"ThemeCheckIssue\": {\n \"type\": \"object\",\n \"properties\": {\n \"filePath\": {\n \"type\": \"string\",\n \"description\": \"The absolute native path of the file.\"\n },\n \"check\": {\n \"type\": \"string\"\n },\n \"severity\": {\n \"type\": \"string\",\n \"enum\": [\n \"error\",\n \"warning\",\n \"info\"\n ]\n },\n \"startRow\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"description\": \"The one-based starting line.\"\n },\n \"startColumn\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"description\": \"The one-based starting column.\"\n },\n \"endRow\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"description\": \"The one-based ending line.\"\n },\n \"endColumn\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"description\": \"The one-based ending column.\"\n },\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"filePath\",\n \"check\",\n \"severity\",\n \"startRow\",\n \"startColumn\",\n \"endRow\",\n \"endColumn\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n \"ThemeEnvironment\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"result\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"valid\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the validation passes the selected blocking policy.\"\n },\n \"issues\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ThemeCheckIssue\"\n }\n },\n \"errorCount\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"warningCount\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"infoCount\": {\n \"type\": \"integer\",\n \"minimum\": 0\n }\n },\n \"required\": [\n \"valid\",\n \"issues\",\n \"errorCount\",\n \"warningCount\",\n \"infoCount\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"result\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
5644
5847
  "flags": {
5645
5848
  "json-schema": {
5646
5849
  "description": "Print the command's JSON schemas.",
@@ -5680,6 +5883,21 @@
5680
5883
  "allowNo": false,
5681
5884
  "type": "boolean"
5682
5885
  },
5886
+ "json": {
5887
+ "char": "j",
5888
+ "description": "Output the result as JSON. Automatically disables color output.",
5889
+ "env": "SHOPIFY_FLAG_JSON",
5890
+ "exclusive": [
5891
+ "init",
5892
+ "version",
5893
+ "print",
5894
+ "list"
5895
+ ],
5896
+ "hidden": false,
5897
+ "name": "json",
5898
+ "allowNo": false,
5899
+ "type": "boolean"
5900
+ },
5683
5901
  "path": {
5684
5902
  "description": "The path where you want to run the command. Defaults to the current working directory.",
5685
5903
  "env": "SHOPIFY_FLAG_PATH",
@@ -5700,7 +5918,7 @@
5700
5918
  },
5701
5919
  "config": {
5702
5920
  "char": "C",
5703
- "description": "Use the config provided, overriding .theme-check.yml if present\n Supports all theme-check: config values, e.g., theme-check:theme-app-extension,\n theme-check:recommended, theme-check:all\n For backwards compatibility, :theme_app_extension is also supported ",
5921
+ "description": "Path to a config file to use, overriding .theme-check.yml if present\n Use --path to set the theme directory\n Supports all theme-check: config values, e.g., theme-check:theme-app-extension,\n theme-check:recommended, theme-check:all\n For backwards compatibility, :theme_app_extension is also supported ",
5704
5922
  "env": "SHOPIFY_FLAG_CONFIG",
5705
5923
  "name": "config",
5706
5924
  "required": false,
@@ -5915,7 +6133,7 @@
5915
6133
  "theme:delete": {
5916
6134
  "aliases": [],
5917
6135
  "args": {},
5918
- "description": "Deletes a theme from your store.\n\n 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.\n\n 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.",
6136
+ "description": "Deletes a theme from your store.\n\n 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.\n\n 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.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemeDeleteResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/0/properties/result\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ThemeEnvironment\"\n }\n }\n },\n \"required\": [\n \"environments\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"ThemeDeleteResult\",\n \"definitions\": {\n \"Theme\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"The decimal Online Store theme ID, not a Shopify GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\",\n \"description\": \"The upstream theme role; known values include live, unpublished, and development.\"\n },\n \"storeDomain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^[a-z0-9][a-z0-9-]*\\\\.myshopify\\\\.com$\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"processing\": {\n \"type\": \"boolean\"\n },\n \"sourceUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"role\",\n \"storeDomain\",\n \"processing\",\n \"sourceUrl\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The selected theme projection; sourceUrl is null when the upstream source URL is unavailable.\"\n },\n \"ThemeEnvironment\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"result\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"partial\"\n ]\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"themes\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/Theme\"\n }\n },\n \"errors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"themeId\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\"\n },\n \"error\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"themeId\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"themes\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"result\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
5919
6137
  "flags": {
5920
6138
  "json-schema": {
5921
6139
  "description": "Print the command's JSON schemas.",
@@ -5955,6 +6173,15 @@
5955
6173
  "allowNo": false,
5956
6174
  "type": "boolean"
5957
6175
  },
6176
+ "json": {
6177
+ "char": "j",
6178
+ "description": "Output the result as JSON. Automatically disables color output.",
6179
+ "env": "SHOPIFY_FLAG_JSON",
6180
+ "hidden": false,
6181
+ "name": "json",
6182
+ "allowNo": false,
6183
+ "type": "boolean"
6184
+ },
5958
6185
  "path": {
5959
6186
  "description": "The path where you want to run the command. Defaults to the current working directory.",
5960
6187
  "env": "SHOPIFY_FLAG_PATH",
@@ -6158,14 +6385,6 @@
6158
6385
  ],
6159
6386
  "type": "option"
6160
6387
  },
6161
- "poll": {
6162
- "description": "Force polling to detect file changes.",
6163
- "env": "SHOPIFY_FLAG_POLL",
6164
- "hidden": true,
6165
- "name": "poll",
6166
- "allowNo": false,
6167
- "type": "boolean"
6168
- },
6169
6388
  "theme-editor-sync": {
6170
6389
  "description": "Synchronize Theme Editor updates in the local theme files.",
6171
6390
  "env": "SHOPIFY_FLAG_THEME_EDITOR_SYNC",
@@ -6304,7 +6523,7 @@
6304
6523
  "theme:duplicate": {
6305
6524
  "aliases": [],
6306
6525
  "args": {},
6307
- "description": "If you want to duplicate your local theme, you need to run `shopify theme push` first.\n\nIf no theme ID is specified, you're prompted to select the theme that you want to duplicate from the list of themes in your store. You're asked to confirm that you want to duplicate the specified theme.\n\nPrompts and confirmations are not shown when duplicate is run in a CI environment or the `--force` flag is used, therefore you must specify a theme ID using the `--theme` flag.\n\nYou can optionally name the duplicated theme using the `--name` flag.\n\nIf you use the `--json` flag, then theme information is returned in JSON format, which can be used as a machine-readable input for scripts or continuous integration.\n\nSample JSON output:\n\n```json\n{\n \"theme\": {\n \"id\": 108267175958,\n \"name\": \"A Duplicated Theme\",\n \"role\": \"unpublished\",\n \"shop\": \"mystore.myshopify.com\"\n }\n}\n```\n\n```json\n{\n \"message\": \"The theme 'Summer Edition' could not be duplicated due to errors\",\n \"errors\": [\"Maximum number of themes reached\"],\n \"requestId\": \"12345-abcde-67890\"\n}\n```",
6526
+ "description": "If you want to duplicate your local theme, you need to run `shopify theme push` first.\n\nIf no theme ID is specified, you're prompted to select the theme that you want to duplicate from the list of themes in your store. You're asked to confirm that you want to duplicate the specified theme.\n\nPrompts and confirmations are not shown when duplicate is run in a CI environment or the `--force` flag is used, therefore you must specify a theme ID using the `--theme` flag.\n\nYou can optionally name the duplicated theme using the `--name` flag.\n\nIf you use the `--json` flag, then theme information is returned in JSON format, which can be used as a machine-readable input for scripts or continuous integration.\n\nSuccessful JSON results include `status`, `changed`, and explicit `originalTheme` and `theme` resources with decimal string IDs. Failures use the shared `{error}` document.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemeDuplicateResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/0/properties/result\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ThemeEnvironment\"\n }\n }\n },\n \"required\": [\n \"environments\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"ThemeDuplicateResult\",\n \"definitions\": {\n \"Theme\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"The decimal Online Store theme ID, not a Shopify GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\",\n \"description\": \"The upstream theme role; known values include live, unpublished, and development.\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"role\"\n ],\n \"additionalProperties\": false\n },\n \"ThemeEnvironment\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"result\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"originalTheme\": {\n \"$ref\": \"#/definitions/Theme\"\n },\n \"theme\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"$ref\": \"#/definitions/Theme/properties/id\"\n },\n \"name\": {\n \"$ref\": \"#/definitions/Theme/properties/name\"\n },\n \"role\": {\n \"$ref\": \"#/definitions/Theme/properties/role\"\n },\n \"storeDomain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^[a-z0-9][a-z0-9-]*\\\\.myshopify\\\\.com$\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"previewUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"role\",\n \"storeDomain\",\n \"previewUrl\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"originalTheme\",\n \"theme\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"result\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
6308
6527
  "flags": {
6309
6528
  "json-schema": {
6310
6529
  "description": "Print the command's JSON schemas.",
@@ -6419,13 +6638,18 @@
6419
6638
  "theme duplicate --theme 10 --name 'New Theme'"
6420
6639
  ],
6421
6640
  "enableJsonFlag": false,
6422
- "descriptionWithMarkdown": "If you want to duplicate your local theme, you need to run `shopify theme push` first.\n\nIf no theme ID is specified, you're prompted to select the theme that you want to duplicate from the list of themes in your store. You're asked to confirm that you want to duplicate the specified theme.\n\nPrompts and confirmations are not shown when duplicate is run in a CI environment or the `--force` flag is used, therefore you must specify a theme ID using the `--theme` flag.\n\nYou can optionally name the duplicated theme using the `--name` flag.\n\nIf you use the `--json` flag, then theme information is returned in JSON format, which can be used as a machine-readable input for scripts or continuous integration.\n\nSample JSON output:\n\n```json\n{\n \"theme\": {\n \"id\": 108267175958,\n \"name\": \"A Duplicated Theme\",\n \"role\": \"unpublished\",\n \"shop\": \"mystore.myshopify.com\"\n }\n}\n```\n\n```json\n{\n \"message\": \"The theme 'Summer Edition' could not be duplicated due to errors\",\n \"errors\": [\"Maximum number of themes reached\"],\n \"requestId\": \"12345-abcde-67890\"\n}\n```",
6641
+ "descriptionWithMarkdown": "If you want to duplicate your local theme, you need to run `shopify theme push` first.\n\nIf no theme ID is specified, you're prompted to select the theme that you want to duplicate from the list of themes in your store. You're asked to confirm that you want to duplicate the specified theme.\n\nPrompts and confirmations are not shown when duplicate is run in a CI environment or the `--force` flag is used, therefore you must specify a theme ID using the `--theme` flag.\n\nYou can optionally name the duplicated theme using the `--name` flag.\n\nIf you use the `--json` flag, then theme information is returned in JSON format, which can be used as a machine-readable input for scripts or continuous integration.\n\nSuccessful JSON results include `status`, `changed`, and explicit `originalTheme` and `theme` resources with decimal string IDs. Failures use the shared `{error}` document.",
6642
+ "multiEnvironmentsFlags": [
6643
+ "store",
6644
+ "password",
6645
+ "theme"
6646
+ ],
6423
6647
  "customPluginName": "@shopify/theme"
6424
6648
  },
6425
6649
  "theme:info": {
6426
6650
  "aliases": [],
6427
6651
  "args": {},
6428
- "description": "Displays information about your theme environment, including your current store. Can also retrieve information about a specific theme.",
6652
+ "description": "Displays information about your theme environment, including your current store. Can also retrieve information about a specific theme.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemeInfoResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/0/properties/result\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ThemeEnvironment\"\n }\n }\n },\n \"required\": [\n \"environments\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"ThemeInfoResult\",\n \"definitions\": {\n \"Theme\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"The decimal Online Store theme ID, not a Shopify GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\",\n \"description\": \"The upstream theme role; known values include live, unpublished, and development.\"\n },\n \"storeDomain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^[a-z0-9][a-z0-9-]*\\\\.myshopify\\\\.com$\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"previewUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"editorUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"role\",\n \"storeDomain\",\n \"previewUrl\",\n \"editorUrl\"\n ],\n \"additionalProperties\": false\n },\n \"ThemeEnvironmentInfo\": {\n \"type\": \"object\",\n \"properties\": {\n \"storeDomain\": {\n \"$ref\": \"#/definitions/Theme/properties/storeDomain\"\n },\n \"developmentThemeId\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Theme/properties/id\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The decimal Online Store theme ID, not a Shopify GID.\"\n },\n \"cliVersion\": {\n \"type\": \"string\"\n },\n \"os\": {\n \"type\": \"string\"\n },\n \"shell\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"nodeVersion\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"storeDomain\",\n \"developmentThemeId\",\n \"cliVersion\",\n \"os\",\n \"shell\",\n \"nodeVersion\"\n ],\n \"additionalProperties\": false\n },\n \"ThemeEnvironment\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"result\": {\n \"anyOf\": [\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"theme\": {\n \"$ref\": \"#/definitions/Theme\"\n }\n },\n \"required\": [\n \"theme\"\n ],\n \"additionalProperties\": false\n },\n {\n \"$ref\": \"#/definitions/ThemeEnvironmentInfo\"\n }\n ]\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"result\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
6429
6653
  "flags": {
6430
6654
  "json-schema": {
6431
6655
  "description": "Print the command's JSON schemas.",
@@ -6535,6 +6759,7 @@
6535
6759
  "pluginType": "core",
6536
6760
  "strict": true,
6537
6761
  "enableJsonFlag": false,
6762
+ "descriptionWithMarkdown": "Displays information about your theme environment, including your current store. Can also retrieve information about a specific theme.",
6538
6763
  "multiEnvironmentsFlags": [
6539
6764
  "store",
6540
6765
  "password"
@@ -6601,7 +6826,7 @@
6601
6826
  "theme:list": {
6602
6827
  "aliases": [],
6603
6828
  "args": {},
6604
- "description": "Lists the themes in your store, along with their IDs and statuses.",
6829
+ "description": "Lists the themes in your store, along with their IDs and statuses.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemeListResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/0/properties/result\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ThemeEnvironment\"\n }\n }\n },\n \"required\": [\n \"environments\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"ThemeListResult\",\n \"definitions\": {\n \"Theme\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"The decimal Online Store theme ID, not a Shopify GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\",\n \"description\": \"The upstream theme role; known values include live, unpublished, and development.\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"role\"\n ],\n \"additionalProperties\": false\n },\n \"ThemeEnvironment\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"result\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"themes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"$ref\": \"#/definitions/Theme/properties/id\"\n },\n \"name\": {\n \"$ref\": \"#/definitions/Theme/properties/name\"\n },\n \"role\": {\n \"$ref\": \"#/definitions/Theme/properties/role\"\n },\n \"processing\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"role\",\n \"processing\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"themes\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The complete theme library after applying the requested filters.\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"result\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
6605
6830
  "flags": {
6606
6831
  "json-schema": {
6607
6832
  "description": "Print the command's JSON schemas.",
@@ -6723,6 +6948,7 @@
6723
6948
  "pluginType": "core",
6724
6949
  "strict": true,
6725
6950
  "enableJsonFlag": false,
6951
+ "descriptionWithMarkdown": "Lists the themes in your store, along with their IDs and statuses.",
6726
6952
  "multiEnvironmentsFlags": [
6727
6953
  "store",
6728
6954
  "password"
@@ -6732,7 +6958,7 @@
6732
6958
  "theme:metafields:pull": {
6733
6959
  "aliases": [],
6734
6960
  "args": {},
6735
- "description": "Retrieves metafields from Shopify Admin.\n\nIf the metafields file already exists, it will be overwritten.",
6961
+ "description": "Retrieves metafields from Shopify Admin.\n\nIf the metafields file already exists, it will be overwritten.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemeMetafieldsPullResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/0/properties/result\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ThemeEnvironment\"\n }\n }\n },\n \"required\": [\n \"environments\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"ThemeMetafieldsPullResult\",\n \"definitions\": {\n \"MetafieldDefinition\": {\n \"type\": \"object\",\n \"properties\": {\n \"ownerType\": {\n \"type\": \"string\",\n \"description\": \"The upstream owner type, such as PRODUCT or COMPANY_LOCATION.\"\n },\n \"key\": {\n \"type\": \"string\"\n },\n \"namespace\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"type\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The upstream metafield type, such as single_line_text_field.\"\n },\n \"category\": {\n \"type\": \"string\",\n \"description\": \"The upstream metafield category.\"\n }\n },\n \"required\": [\n \"name\",\n \"category\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"ownerType\",\n \"key\",\n \"namespace\",\n \"name\",\n \"description\",\n \"type\"\n ],\n \"additionalProperties\": false\n },\n \"ThemeEnvironment\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"result\": {\n \"anyOf\": [\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"partial\"\n ]\n },\n \"changed\": {\n \"type\": \"boolean\",\n \"const\": true\n },\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The absolute path of the native language-server metafields JSON artifact.\"\n },\n \"definitions\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/MetafieldDefinition\"\n },\n \"description\": \"All fetched definitions, flattened across owner types.\"\n },\n \"failedOwnerTypes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"Upstream owner types whose fetch failed.\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"path\",\n \"definitions\",\n \"failedOwnerTypes\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"skipped\"\n },\n \"reason\": {\n \"type\": \"string\",\n \"const\": \"not-a-theme\"\n }\n },\n \"required\": [\n \"status\",\n \"reason\"\n ],\n \"additionalProperties\": false\n }\n ]\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"result\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
6736
6962
  "flags": {
6737
6963
  "json-schema": {
6738
6964
  "description": "Print the command's JSON schemas.",
@@ -6772,6 +6998,15 @@
6772
6998
  "allowNo": false,
6773
6999
  "type": "boolean"
6774
7000
  },
7001
+ "json": {
7002
+ "char": "j",
7003
+ "description": "Output the result as JSON. Automatically disables color output.",
7004
+ "env": "SHOPIFY_FLAG_JSON",
7005
+ "hidden": false,
7006
+ "name": "json",
7007
+ "allowNo": false,
7008
+ "type": "boolean"
7009
+ },
6775
7010
  "path": {
6776
7011
  "description": "The path where you want to run the command. Defaults to the current working directory.",
6777
7012
  "env": "SHOPIFY_FLAG_PATH",
@@ -6833,7 +7068,7 @@
6833
7068
  "theme:open": {
6834
7069
  "aliases": [],
6835
7070
  "args": {},
6836
- "description": "Returns links that let you preview the specified theme. The following links are returned:\n\n - A link to the \"editor\" (https://shopify.dev/docs/themes/tools/online-editor) for the theme in the Shopify admin.\n - A \"preview link\" (https://help.shopify.com/manual/online-store/themes/adding-themes#share-a-theme-preview-with-others) that you can share with other developers.\n\n If you don't specify a theme, then you're prompted to select the theme to open from the list of the themes in your store.",
7071
+ "description": "Returns links that let you preview the specified theme. The following links are returned:\n\n - A link to the \"editor\" (https://shopify.dev/docs/themes/tools/online-editor) for the theme in the Shopify admin.\n - A \"preview link\" (https://help.shopify.com/manual/online-store/themes/adding-themes#share-a-theme-preview-with-others) that you can share with other developers.\n\n If you don't specify a theme, then you're prompted to select the theme to open from the list of the themes in your store.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemeOpenResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/0/properties/result\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ThemeEnvironment\"\n }\n }\n },\n \"required\": [\n \"environments\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"ThemeOpenResult\",\n \"definitions\": {\n \"Theme\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"The decimal Online Store theme ID, not a Shopify GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\",\n \"description\": \"The upstream theme role; known values include live, unpublished, and development.\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"role\"\n ],\n \"additionalProperties\": false\n },\n \"ThemeEnvironment\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"result\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"theme\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"$ref\": \"#/definitions/Theme/properties/id\"\n },\n \"name\": {\n \"$ref\": \"#/definitions/Theme/properties/name\"\n },\n \"role\": {\n \"$ref\": \"#/definitions/Theme/properties/role\"\n },\n \"storeDomain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^[a-z0-9][a-z0-9-]*\\\\.myshopify\\\\.com$\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"previewUrl\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"editorUrl\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"processing\": {\n \"type\": \"boolean\"\n },\n \"sourceUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"role\",\n \"storeDomain\",\n \"previewUrl\",\n \"editorUrl\",\n \"processing\",\n \"sourceUrl\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"theme\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"result\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
6837
7072
  "flags": {
6838
7073
  "json-schema": {
6839
7074
  "description": "Print the command's JSON schemas.",
@@ -6873,6 +7108,15 @@
6873
7108
  "allowNo": false,
6874
7109
  "type": "boolean"
6875
7110
  },
7111
+ "json": {
7112
+ "char": "j",
7113
+ "description": "Output the result as JSON. Automatically disables color output.",
7114
+ "env": "SHOPIFY_FLAG_JSON",
7115
+ "hidden": false,
7116
+ "name": "json",
7117
+ "allowNo": false,
7118
+ "type": "boolean"
7119
+ },
6876
7120
  "path": {
6877
7121
  "description": "The path where you want to run the command. Defaults to the current working directory.",
6878
7122
  "env": "SHOPIFY_FLAG_PATH",
@@ -6952,13 +7196,21 @@
6952
7196
  "summary": "Opens the preview of your remote theme.",
6953
7197
  "enableJsonFlag": false,
6954
7198
  "descriptionWithMarkdown": "Returns links that let you preview the specified theme. The following links are returned:\n\n - A link to the [editor](https://shopify.dev/docs/themes/tools/online-editor) for the theme in the Shopify admin.\n - A [preview link](https://help.shopify.com/manual/online-store/themes/adding-themes#share-a-theme-preview-with-others) that you can share with other developers.\n\n If you don't specify a theme, then you're prompted to select the theme to open from the list of the themes in your store.",
6955
- "multiEnvironmentsFlags": null,
7199
+ "multiEnvironmentsFlags": [
7200
+ "store",
7201
+ "password",
7202
+ [
7203
+ "theme",
7204
+ "live",
7205
+ "development"
7206
+ ]
7207
+ ],
6956
7208
  "customPluginName": "@shopify/theme"
6957
7209
  },
6958
7210
  "theme:package": {
6959
7211
  "aliases": [],
6960
7212
  "args": {},
6961
- "description": "Packages your local theme files into a ZIP file that can be uploaded to Shopify.\n\n 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.\n\n 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)).\n\n 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.",
7213
+ "description": "Packages your local theme files into a ZIP file that can be uploaded to Shopify.\n\n 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.\n\n 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)).\n\n 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.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemePackageResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The absolute native path of the ZIP archive.\"\n }\n },\n \"required\": [\n \"path\"\n ],\n \"additionalProperties\": false,\n \"title\": \"ThemePackageResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
6962
7214
  "flags": {
6963
7215
  "json-schema": {
6964
7216
  "description": "Print the command's JSON schemas.",
@@ -6998,6 +7250,15 @@
6998
7250
  "allowNo": false,
6999
7251
  "type": "boolean"
7000
7252
  },
7253
+ "json": {
7254
+ "char": "j",
7255
+ "description": "Output the result as JSON. Automatically disables color output.",
7256
+ "env": "SHOPIFY_FLAG_JSON",
7257
+ "hidden": false,
7258
+ "name": "json",
7259
+ "allowNo": false,
7260
+ "type": "boolean"
7261
+ },
7001
7262
  "path": {
7002
7263
  "description": "The path where you want to run the command. Defaults to the current working directory.",
7003
7264
  "env": "SHOPIFY_FLAG_PATH",
@@ -7024,7 +7285,7 @@
7024
7285
  "theme:profile": {
7025
7286
  "aliases": [],
7026
7287
  "args": {},
7027
- "description": "Profile the Shopify Liquid on a given page.\n\n This command will open a web page with the Speedscope profiler detailing the time spent executing Liquid on the given page.",
7288
+ "description": "Profile the Shopify Liquid on a given page.\n\n This command will open a web page with the Speedscope profiler detailing the time spent executing Liquid on the given page.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemeProfileResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/0/properties/result\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ThemeEnvironment\"\n }\n }\n },\n \"required\": [\n \"environments\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"ThemeProfileResult\",\n \"definitions\": {\n \"ProfileFrame\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"file\": {\n \"type\": \"string\"\n },\n \"line\": {\n \"type\": \"number\"\n },\n \"col\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"additionalProperties\": true\n },\n \"ProfileEvent\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"O\",\n \"C\"\n ]\n },\n \"at\": {\n \"type\": \"number\"\n },\n \"frame\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"type\",\n \"at\",\n \"frame\"\n ],\n \"additionalProperties\": true\n },\n \"ProfileShared\": {\n \"type\": \"object\",\n \"properties\": {\n \"frames\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ProfileFrame\"\n }\n }\n },\n \"required\": [\n \"frames\"\n ],\n \"additionalProperties\": true\n },\n \"EventedProfile\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"unit\": {\n \"type\": \"string\",\n \"enum\": [\n \"bytes\",\n \"microseconds\",\n \"milliseconds\",\n \"nanoseconds\",\n \"none\",\n \"seconds\"\n ]\n },\n \"startValue\": {\n \"type\": \"number\"\n },\n \"endValue\": {\n \"type\": \"number\"\n },\n \"type\": {\n \"type\": \"string\",\n \"const\": \"evented\"\n },\n \"events\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ProfileEvent\"\n }\n }\n },\n \"required\": [\n \"name\",\n \"unit\",\n \"startValue\",\n \"endValue\",\n \"type\",\n \"events\"\n ],\n \"additionalProperties\": true\n },\n \"SampledProfile\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"$ref\": \"#/definitions/EventedProfile/properties/name\"\n },\n \"unit\": {\n \"$ref\": \"#/definitions/EventedProfile/properties/unit\"\n },\n \"startValue\": {\n \"$ref\": \"#/definitions/EventedProfile/properties/startValue\"\n },\n \"endValue\": {\n \"$ref\": \"#/definitions/EventedProfile/properties/endValue\"\n },\n \"type\": {\n \"type\": \"string\",\n \"const\": \"sampled\"\n },\n \"samples\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"number\"\n }\n }\n },\n \"weights\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"number\"\n }\n }\n },\n \"required\": [\n \"name\",\n \"unit\",\n \"startValue\",\n \"endValue\",\n \"type\",\n \"samples\",\n \"weights\"\n ],\n \"additionalProperties\": true\n },\n \"ThemeEnvironment\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"result\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"$schema\": {\n \"type\": \"string\",\n \"const\": \"https://www.speedscope.app/file-format-schema.json\"\n },\n \"shared\": {\n \"$ref\": \"#/definitions/ProfileShared\"\n },\n \"profiles\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/EventedProfile\"\n },\n {\n \"$ref\": \"#/definitions/SampledProfile\"\n }\n ]\n }\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"exporter\": {\n \"type\": \"string\"\n },\n \"activeProfileIndex\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"$schema\",\n \"shared\",\n \"profiles\"\n ],\n \"additionalProperties\": true,\n \"description\": \"The native Speedscope file format, defined by its $schema URL. Original keys and extension fields are preserved.\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"result\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
7028
7289
  "flags": {
7029
7290
  "json-schema": {
7030
7291
  "description": "Print the command's JSON schemas.",
@@ -7109,7 +7370,7 @@
7109
7370
  "type": "option"
7110
7371
  },
7111
7372
  "url": {
7112
- "description": "The url to be used as context",
7373
+ "description": "The path of the page to profile, with an optional query string. For a full URL, only the path and query string are used.",
7113
7374
  "env": "SHOPIFY_FLAG_URL",
7114
7375
  "name": "url",
7115
7376
  "default": "/",
@@ -7155,7 +7416,7 @@
7155
7416
  "theme:publish": {
7156
7417
  "aliases": [],
7157
7418
  "args": {},
7158
- "description": "Publishes an unpublished theme from your theme library.\n\nIf no theme ID is specified, then you're prompted to select the theme that you want to publish from the list of themes in your store.\n\nYou can run this command only in a directory that matches the \"default Shopify theme folder structure\" (https://shopify.dev/docs/themes/tools/cli#directory-structure).\n\nIf you want to publish your local theme, then you need to run `shopify theme push` first. You're asked to confirm that you want to publish the specified theme. You can skip this confirmation using the `--force` flag.",
7419
+ "description": "Publishes an unpublished theme from your theme library.\n\nIf no theme ID is specified, then you're prompted to select the theme that you want to publish from the list of themes in your store.\n\nYou can run this command only in a directory that matches the \"default Shopify theme folder structure\" (https://shopify.dev/docs/themes/tools/cli#directory-structure).\n\nIf you want to publish your local theme, then you need to run `shopify theme push` first. You're asked to confirm that you want to publish the specified theme. You can skip this confirmation using the `--force` flag.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemePublishResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/0/properties/result\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ThemeEnvironment\"\n }\n }\n },\n \"required\": [\n \"environments\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"ThemePublishResult\",\n \"definitions\": {\n \"Theme\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"The decimal Online Store theme ID, not a Shopify GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\",\n \"description\": \"The upstream theme role; known values include live, unpublished, and development.\"\n },\n \"storeDomain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^[a-z0-9][a-z0-9-]*\\\\.myshopify\\\\.com$\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"processing\": {\n \"type\": \"boolean\"\n },\n \"sourceUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"role\",\n \"storeDomain\",\n \"processing\",\n \"sourceUrl\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The selected theme projection; sourceUrl is null when the upstream source URL is unavailable.\"\n },\n \"ThemeEnvironment\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"result\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"theme\": {\n \"$ref\": \"#/definitions/Theme\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"theme\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"result\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
7159
7420
  "flags": {
7160
7421
  "json-schema": {
7161
7422
  "description": "Print the command's JSON schemas.",
@@ -7195,6 +7456,15 @@
7195
7456
  "allowNo": false,
7196
7457
  "type": "boolean"
7197
7458
  },
7459
+ "json": {
7460
+ "char": "j",
7461
+ "description": "Output the result as JSON. Automatically disables color output.",
7462
+ "env": "SHOPIFY_FLAG_JSON",
7463
+ "hidden": false,
7464
+ "name": "json",
7465
+ "allowNo": false,
7466
+ "type": "boolean"
7467
+ },
7198
7468
  "path": {
7199
7469
  "description": "The path where you want to run the command. Defaults to the current working directory.",
7200
7470
  "env": "SHOPIFY_FLAG_PATH",
@@ -7268,7 +7538,7 @@
7268
7538
  "theme:preview": {
7269
7539
  "aliases": [],
7270
7540
  "args": {},
7271
- "description": "Applies a JSON overrides file to a theme and creates or updates a preview. This lets you quickly preview changes.\n\n The command returns a preview URL and a preview identifier. You can reuse the preview identifier with `--preview-id` to update an existing preview instead of creating a new one.",
7541
+ "description": "Applies a JSON overrides file to a theme and creates or updates a preview. This lets you quickly preview changes.\n\n The command returns a preview URL and a preview identifier. You can reuse the preview identifier with `--preview-id` to update an existing preview instead of creating a new one.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemePreviewResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/0/properties/result\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ThemeEnvironment\"\n }\n }\n },\n \"required\": [\n \"environments\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"ThemePreviewResult\",\n \"definitions\": {\n \"ThemePreview\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"The opaque Storefront preview identifier, not a theme ID or Shopify GID.\"\n },\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n }\n },\n \"required\": [\n \"id\",\n \"url\"\n ],\n \"additionalProperties\": false\n },\n \"ThemeEnvironment\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"result\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"preview\": {\n \"$ref\": \"#/definitions/ThemePreview\"\n }\n },\n \"required\": [\n \"status\",\n \"preview\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"result\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
7272
7542
  "flags": {
7273
7543
  "json-schema": {
7274
7544
  "description": "Print the command's JSON schemas.",
@@ -7308,6 +7578,15 @@
7308
7578
  "allowNo": false,
7309
7579
  "type": "boolean"
7310
7580
  },
7581
+ "json": {
7582
+ "char": "j",
7583
+ "description": "Output the preview URL and identifier as JSON.",
7584
+ "env": "SHOPIFY_FLAG_JSON",
7585
+ "hidden": false,
7586
+ "name": "json",
7587
+ "allowNo": false,
7588
+ "type": "boolean"
7589
+ },
7311
7590
  "path": {
7312
7591
  "description": "The path where you want to run the command. Defaults to the current working directory.",
7313
7592
  "env": "SHOPIFY_FLAG_PATH",
@@ -7348,7 +7627,6 @@
7348
7627
  "description": "Theme ID or name of the remote theme.",
7349
7628
  "env": "SHOPIFY_FLAG_THEME_ID",
7350
7629
  "name": "theme",
7351
- "required": true,
7352
7630
  "hasDynamicHelp": false,
7353
7631
  "multiple": false,
7354
7632
  "type": "option"
@@ -7357,7 +7635,6 @@
7357
7635
  "description": "Path to a JSON overrides file.",
7358
7636
  "env": "SHOPIFY_FLAG_OVERRIDES",
7359
7637
  "name": "overrides",
7360
- "required": true,
7361
7638
  "hasDynamicHelp": false,
7362
7639
  "multiple": false,
7363
7640
  "type": "option"
@@ -7376,13 +7653,6 @@
7376
7653
  "name": "open",
7377
7654
  "allowNo": false,
7378
7655
  "type": "boolean"
7379
- },
7380
- "json": {
7381
- "description": "Output the preview URL and identifier as JSON.",
7382
- "env": "SHOPIFY_FLAG_JSON",
7383
- "name": "json",
7384
- "allowNo": false,
7385
- "type": "boolean"
7386
7656
  }
7387
7657
  },
7388
7658
  "hasDynamicHelp": false,
@@ -7395,13 +7665,18 @@
7395
7665
  "summary": "Applies JSON overrides to a theme and returns a preview URL.",
7396
7666
  "enableJsonFlag": false,
7397
7667
  "descriptionWithMarkdown": "Applies a JSON overrides file to a theme and creates or updates a preview. This lets you quickly preview changes.\n\n The command returns a preview URL and a preview identifier. You can reuse the preview identifier with `--preview-id` to update an existing preview instead of creating a new one.",
7398
- "multiEnvironmentsFlags": null,
7668
+ "multiEnvironmentsFlags": [
7669
+ "store",
7670
+ "password",
7671
+ "theme",
7672
+ "overrides"
7673
+ ],
7399
7674
  "customPluginName": "@shopify/theme"
7400
7675
  },
7401
7676
  "theme:pull": {
7402
7677
  "aliases": [],
7403
7678
  "args": {},
7404
- "description": "Retrieves theme files from Shopify.\n\nIf no theme is specified, then you're prompted to select the theme to pull from the list of the themes in your store.",
7679
+ "description": "Retrieves theme files from Shopify.\n\nIf no theme is specified, then you're prompted to select the theme to pull from the list of the themes in your store.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemePullResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/0/properties/result\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ThemeEnvironment\"\n }\n }\n },\n \"required\": [\n \"environments\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"ThemePullResult\",\n \"definitions\": {\n \"ThemePullTheme\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"The decimal Online Store theme ID, not a Shopify GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\",\n \"description\": \"The upstream theme role; known values include live, unpublished, and development.\"\n },\n \"storeDomain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^[a-z0-9][a-z0-9-]*\\\\.myshopify\\\\.com$\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"previewUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"editorUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"processing\": {\n \"type\": \"boolean\"\n },\n \"sourceUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"role\",\n \"storeDomain\",\n \"previewUrl\",\n \"editorUrl\",\n \"processing\",\n \"sourceUrl\"\n ],\n \"additionalProperties\": false\n },\n \"ThemeEnvironment\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"result\": {\n \"anyOf\": [\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"directory\": {\n \"type\": \"string\"\n },\n \"theme\": {\n \"$ref\": \"#/definitions/ThemePullTheme\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"directory\",\n \"theme\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"skipped\"\n },\n \"reason\": {\n \"type\": \"string\",\n \"const\": \"unsafe-directory\"\n }\n },\n \"required\": [\n \"status\",\n \"reason\"\n ],\n \"additionalProperties\": false\n }\n ]\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"result\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
7405
7680
  "flags": {
7406
7681
  "json-schema": {
7407
7682
  "description": "Print the command's JSON schemas.",
@@ -7441,6 +7716,15 @@
7441
7716
  "allowNo": false,
7442
7717
  "type": "boolean"
7443
7718
  },
7719
+ "json": {
7720
+ "char": "j",
7721
+ "description": "Output the result as JSON. Automatically disables color output.",
7722
+ "env": "SHOPIFY_FLAG_JSON",
7723
+ "hidden": false,
7724
+ "name": "json",
7725
+ "allowNo": false,
7726
+ "type": "boolean"
7727
+ },
7444
7728
  "path": {
7445
7729
  "description": "The path where you want to run the command. Defaults to the current working directory.",
7446
7730
  "env": "SHOPIFY_FLAG_PATH",
@@ -7562,7 +7846,7 @@
7562
7846
  "theme:push": {
7563
7847
  "aliases": [],
7564
7848
  "args": {},
7565
- "description": "Uploads your local theme files to Shopify, overwriting the remote version if specified.\n\n If no theme is specified, then you're prompted to select the theme to overwrite from the list of the themes in your store.\n\n You can run this command only in a directory that matches the \"default Shopify theme folder structure\" (https://shopify.dev/docs/themes/tools/cli#directory-structure).\n\n This command returns the following information:\n\n - A link to the \"editor\" (https://shopify.dev/docs/themes/tools/online-editor) for the theme in the Shopify admin.\n - A \"preview link\" (https://help.shopify.com/manual/online-store/themes/adding-themes#share-a-theme-preview-with-others) that you can share with others.\n\n If you use the `--json` flag, then theme information is returned in JSON format, which can be used as a machine-readable input for scripts or continuous integration.\n\n Sample output:\n\n ```json\n {\n \"theme\": {\n \"id\": 108267175958,\n \"name\": \"MyTheme\",\n \"role\": \"unpublished\",\n \"shop\": \"mystore.myshopify.com\",\n \"editor_url\": \"https://mystore.myshopify.com/admin/themes/108267175958/editor\",\n \"preview_url\": \"https://mystore.myshopify.com/?preview_theme_id=108267175958\"\n }\n }\n ```\n ",
7849
+ "description": "Uploads your local theme files to Shopify, overwriting the remote version if specified.\n\n If no theme is specified, then you're prompted to select the theme to overwrite from the list of the themes in your store.\n\n You can run this command only in a directory that matches the \"default Shopify theme folder structure\" (https://shopify.dev/docs/themes/tools/cli#directory-structure).\n\n This command returns the following information:\n\n - A link to the \"editor\" (https://shopify.dev/docs/themes/tools/online-editor) for the theme in the Shopify admin.\n - A \"preview link\" (https://help.shopify.com/manual/online-store/themes/adding-themes#share-a-theme-preview-with-others) that you can share with others.\n\n If you use the `--json` flag, then theme information is returned in JSON format, which can be used as a machine-readable input for scripts or continuous integration.\n\n Sample output:\n\n ```json\n {\n \"status\": \"success\",\n \"changed\": true,\n \"issues\": [],\n \"theme\": {\n \"id\": \"108267175958\",\n \"name\": \"MyTheme\",\n \"role\": \"unpublished\",\n \"storeDomain\": \"mystore.myshopify.com\",\n \"editorUrl\": \"https://mystore.myshopify.com/admin/themes/108267175958/editor\",\n \"previewUrl\": \"https://mystore.myshopify.com/?preview_theme_id=108267175958\"\n }\n }\n ```\n \n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemePushJsonResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/0/properties/result\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ThemeEnvironment\"\n }\n }\n },\n \"required\": [\n \"environments\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"ThemePushJsonResult\",\n \"definitions\": {\n \"ThemePushTheme\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"The decimal Online Store theme ID, not a Shopify GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\",\n \"description\": \"The upstream theme role; known values include live, unpublished, and development.\"\n },\n \"storeDomain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^[a-z0-9][a-z0-9-]*\\\\.myshopify\\\\.com$\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"previewUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"editorUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"role\",\n \"storeDomain\",\n \"previewUrl\",\n \"editorUrl\"\n ],\n \"additionalProperties\": false\n },\n \"ThemeEnvironment\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"result\": {\n \"anyOf\": [\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"partial\"\n ]\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"theme\": {\n \"$ref\": \"#/definitions/ThemePushTheme\"\n },\n \"issues\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"filePath\": {\n \"type\": \"string\"\n },\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"filePath\",\n \"message\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"theme\",\n \"issues\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"skipped\"\n },\n \"reason\": {\n \"type\": \"string\",\n \"const\": \"unsafe-directory\"\n }\n },\n \"required\": [\n \"status\",\n \"reason\"\n ],\n \"additionalProperties\": false\n }\n ]\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"result\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
7566
7850
  "flags": {
7567
7851
  "json-schema": {
7568
7852
  "description": "Print the command's JSON schemas.",
@@ -7774,7 +8058,7 @@
7774
8058
  "theme push --unpublished --json"
7775
8059
  ],
7776
8060
  "enableJsonFlag": false,
7777
- "descriptionWithMarkdown": "Uploads your local theme files to Shopify, overwriting the remote version if specified.\n\n If no theme is specified, then you're prompted to select the theme to overwrite from the list of the themes in your store.\n\n You can run this command only in a directory that matches the [default Shopify theme folder structure](https://shopify.dev/docs/themes/tools/cli#directory-structure).\n\n This command returns the following information:\n\n - A link to the [editor](https://shopify.dev/docs/themes/tools/online-editor) for the theme in the Shopify admin.\n - A [preview link](https://help.shopify.com/manual/online-store/themes/adding-themes#share-a-theme-preview-with-others) that you can share with others.\n\n If you use the `--json` flag, then theme information is returned in JSON format, which can be used as a machine-readable input for scripts or continuous integration.\n\n Sample output:\n\n ```json\n {\n \"theme\": {\n \"id\": 108267175958,\n \"name\": \"MyTheme\",\n \"role\": \"unpublished\",\n \"shop\": \"mystore.myshopify.com\",\n \"editor_url\": \"https://mystore.myshopify.com/admin/themes/108267175958/editor\",\n \"preview_url\": \"https://mystore.myshopify.com/?preview_theme_id=108267175958\"\n }\n }\n ```\n ",
8061
+ "descriptionWithMarkdown": "Uploads your local theme files to Shopify, overwriting the remote version if specified.\n\n If no theme is specified, then you're prompted to select the theme to overwrite from the list of the themes in your store.\n\n You can run this command only in a directory that matches the [default Shopify theme folder structure](https://shopify.dev/docs/themes/tools/cli#directory-structure).\n\n This command returns the following information:\n\n - A link to the [editor](https://shopify.dev/docs/themes/tools/online-editor) for the theme in the Shopify admin.\n - A [preview link](https://help.shopify.com/manual/online-store/themes/adding-themes#share-a-theme-preview-with-others) that you can share with others.\n\n If you use the `--json` flag, then theme information is returned in JSON format, which can be used as a machine-readable input for scripts or continuous integration.\n\n Sample output:\n\n ```json\n {\n \"status\": \"success\",\n \"changed\": true,\n \"issues\": [],\n \"theme\": {\n \"id\": \"108267175958\",\n \"name\": \"MyTheme\",\n \"role\": \"unpublished\",\n \"storeDomain\": \"mystore.myshopify.com\",\n \"editorUrl\": \"https://mystore.myshopify.com/admin/themes/108267175958/editor\",\n \"previewUrl\": \"https://mystore.myshopify.com/?preview_theme_id=108267175958\"\n }\n }\n ```\n ",
7778
8062
  "multiEnvironmentsFlags": [
7779
8063
  "store",
7780
8064
  "password",
@@ -7790,7 +8074,7 @@
7790
8074
  "theme:rename": {
7791
8075
  "aliases": [],
7792
8076
  "args": {},
7793
- "description": "Renames a theme in your store.\n\n If no theme is specified, then you're prompted to select the theme that you want to rename from the list of themes in your store.\n ",
8077
+ "description": "Renames a theme in your store.\n\n If no theme is specified, then you're prompted to select the theme that you want to rename from the list of themes in your store.\n \n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemeRenameResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/0/properties/result\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ThemeEnvironment\"\n }\n }\n },\n \"required\": [\n \"environments\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"ThemeRenameResult\",\n \"definitions\": {\n \"Theme\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"The decimal Online Store theme ID, not a Shopify GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\",\n \"description\": \"The upstream theme role; known values include live, unpublished, and development.\"\n },\n \"storeDomain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^[a-z0-9][a-z0-9-]*\\\\.myshopify\\\\.com$\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"processing\": {\n \"type\": \"boolean\"\n },\n \"sourceUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"role\",\n \"storeDomain\",\n \"processing\",\n \"sourceUrl\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The selected theme projection; sourceUrl is null when the upstream source URL is unavailable.\"\n },\n \"ThemeEnvironment\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"result\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"originalName\": {\n \"type\": \"string\"\n },\n \"theme\": {\n \"$ref\": \"#/definitions/Theme\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"originalName\",\n \"theme\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"result\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
7794
8078
  "flags": {
7795
8079
  "json-schema": {
7796
8080
  "description": "Print the command's JSON schemas.",
@@ -7830,6 +8114,15 @@
7830
8114
  "allowNo": false,
7831
8115
  "type": "boolean"
7832
8116
  },
8117
+ "json": {
8118
+ "char": "j",
8119
+ "description": "Output the result as JSON. Automatically disables color output.",
8120
+ "env": "SHOPIFY_FLAG_JSON",
8121
+ "hidden": false,
8122
+ "name": "json",
8123
+ "allowNo": false,
8124
+ "type": "boolean"
8125
+ },
7833
8126
  "path": {
7834
8127
  "description": "The path where you want to run the command. Defaults to the current working directory.",
7835
8128
  "env": "SHOPIFY_FLAG_PATH",
@@ -7926,7 +8219,7 @@
7926
8219
  "theme:share": {
7927
8220
  "aliases": [],
7928
8221
  "args": {},
7929
- "description": "Uploads your theme as a new, unpublished theme in your theme library. The theme is given a randomized name.\n\n This command returns a \"preview link\" (https://help.shopify.com/manual/online-store/themes/adding-themes#share-a-theme-preview-with-others) that you can share with others.",
8222
+ "description": "Uploads your theme as a new, unpublished theme in your theme library. The theme is given a randomized name.\n\n This command returns a \"preview link\" (https://help.shopify.com/manual/online-store/themes/adding-themes#share-a-theme-preview-with-others) that you can share with others.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `ThemeShareResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/0/properties/result\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ThemeEnvironment\"\n }\n }\n },\n \"required\": [\n \"environments\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"ThemeShareResult\",\n \"definitions\": {\n \"ThemePushTheme\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"The decimal Online Store theme ID, not a Shopify GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"role\": {\n \"type\": \"string\",\n \"description\": \"The upstream theme role; known values include live, unpublished, and development.\"\n },\n \"storeDomain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^[a-z0-9][a-z0-9-]*\\\\.myshopify\\\\.com$\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"previewUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"editorUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"role\",\n \"storeDomain\",\n \"previewUrl\",\n \"editorUrl\"\n ],\n \"additionalProperties\": false\n },\n \"ThemeEnvironment\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"result\": {\n \"anyOf\": [\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"partial\"\n ]\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"theme\": {\n \"$ref\": \"#/definitions/ThemePushTheme\"\n },\n \"issues\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"filePath\": {\n \"type\": \"string\"\n },\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"filePath\",\n \"message\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"theme\",\n \"issues\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"skipped\"\n },\n \"reason\": {\n \"type\": \"string\",\n \"const\": \"unsafe-directory\"\n }\n },\n \"required\": [\n \"status\",\n \"reason\"\n ],\n \"additionalProperties\": false\n }\n ]\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"cancelled\"\n }\n },\n \"required\": [\n \"status\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"result\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"abort\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"A stable error code, included only when known.\"\n },\n \"tryMessage\": {\n \"type\": \"string\"\n },\n \"nextSteps\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"customSections\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"required\": [\n \"body\"\n ],\n \"additionalProperties\": false\n }\n },\n \"details\": {\n \"description\": \"Selected domain details, preserving native API payloads such as GraphQL errors, extensions, and data.\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"bug\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"stack\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\",\n \"message\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"const\": \"external\"\n },\n \"message\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/message\"\n },\n \"code\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/code\"\n },\n \"tryMessage\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/tryMessage\"\n },\n \"nextSteps\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/nextSteps\"\n },\n \"customSections\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/customSections\"\n },\n \"details\": {\n \"$ref\": \"#/definitions/ThemeEnvironment/anyOf/1/properties/error/anyOf/0/properties/details\"\n },\n \"command\": {\n \"type\": \"string\"\n },\n \"args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"type\",\n \"message\",\n \"command\",\n \"args\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"required\": [\n \"environment\",\n \"error\"\n ],\n \"additionalProperties\": false\n }\n ]\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
7930
8223
  "flags": {
7931
8224
  "json-schema": {
7932
8225
  "description": "Print the command's JSON schemas.",
@@ -7966,6 +8259,15 @@
7966
8259
  "allowNo": false,
7967
8260
  "type": "boolean"
7968
8261
  },
8262
+ "json": {
8263
+ "char": "j",
8264
+ "description": "Output the result as JSON. Automatically disables color output.",
8265
+ "env": "SHOPIFY_FLAG_JSON",
8266
+ "hidden": false,
8267
+ "name": "json",
8268
+ "allowNo": false,
8269
+ "type": "boolean"
8270
+ },
7969
8271
  "path": {
7970
8272
  "description": "The path where you want to run the command. Defaults to the current working directory.",
7971
8273
  "env": "SHOPIFY_FLAG_PATH",
@@ -8348,7 +8650,7 @@
8348
8650
  "config:autocorrect:off": {
8349
8651
  "aliases": [],
8350
8652
  "args": {},
8351
- "description": "Disable autocorrect. Off by default.\n\n When autocorrection is enabled, Shopify CLI automatically runs a corrected version of your command if a correction is available.\n\n When autocorrection is disabled, you need to confirm that you want to run corrections for mistyped commands.\n",
8653
+ "description": "Disable autocorrect. Off by default.\n\n When autocorrection is enabled, Shopify CLI automatically runs a corrected version of your command if a correction is available.\n\n When autocorrection is disabled, you need to confirm that you want to run corrections for mistyped commands.\n\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AutocorrectResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"enabled\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AutocorrectResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
8352
8654
  "flags": {
8353
8655
  "json-schema": {
8354
8656
  "description": "Print the command's JSON schemas.",
@@ -8356,24 +8658,56 @@
8356
8658
  "name": "json-schema",
8357
8659
  "allowNo": false,
8358
8660
  "type": "boolean"
8359
- }
8360
- },
8361
- "hasDynamicHelp": false,
8362
- "hiddenAliases": [],
8363
- "id": "config:autocorrect:off",
8364
- "pluginAlias": "shopify",
8365
- "pluginName": "shopify",
8366
- "pluginType": "core",
8367
- "strict": true,
8368
- "summary": "Disable autocorrect. Off by default.",
8369
- "enableJsonFlag": false,
8370
- "descriptionWithMarkdown": "Disable autocorrect. Off by default.\n\n When autocorrection is enabled, Shopify CLI automatically runs a corrected version of your command if a correction is available.\n\n When autocorrection is disabled, you need to confirm that you want to run corrections for mistyped commands.\n",
8371
- "customPluginName": "@shopify/plugin-did-you-mean"
8661
+ },
8662
+ "no-input": {
8663
+ "description": "Disable interactive prompts and browser authentication.",
8664
+ "env": "SHOPIFY_FLAG_NO_INPUT",
8665
+ "name": "no-input",
8666
+ "allowNo": false,
8667
+ "type": "boolean"
8668
+ },
8669
+ "no-color": {
8670
+ "description": "Disable color output.",
8671
+ "env": "SHOPIFY_FLAG_NO_COLOR",
8672
+ "hidden": false,
8673
+ "name": "no-color",
8674
+ "allowNo": false,
8675
+ "type": "boolean"
8676
+ },
8677
+ "verbose": {
8678
+ "description": "Increase the verbosity of the output. May include sensitive data.",
8679
+ "env": "SHOPIFY_FLAG_VERBOSE",
8680
+ "hidden": false,
8681
+ "name": "verbose",
8682
+ "allowNo": false,
8683
+ "type": "boolean"
8684
+ },
8685
+ "json": {
8686
+ "char": "j",
8687
+ "description": "Output the result as JSON. Automatically disables color output.",
8688
+ "env": "SHOPIFY_FLAG_JSON",
8689
+ "hidden": false,
8690
+ "name": "json",
8691
+ "allowNo": false,
8692
+ "type": "boolean"
8693
+ }
8694
+ },
8695
+ "hasDynamicHelp": false,
8696
+ "hiddenAliases": [],
8697
+ "id": "config:autocorrect:off",
8698
+ "pluginAlias": "shopify",
8699
+ "pluginName": "shopify",
8700
+ "pluginType": "core",
8701
+ "strict": true,
8702
+ "summary": "Disable autocorrect. Off by default.",
8703
+ "enableJsonFlag": false,
8704
+ "descriptionWithMarkdown": "Disable autocorrect. Off by default.\n\n When autocorrection is enabled, Shopify CLI automatically runs a corrected version of your command if a correction is available.\n\n When autocorrection is disabled, you need to confirm that you want to run corrections for mistyped commands.\n",
8705
+ "customPluginName": "@shopify/plugin-did-you-mean"
8372
8706
  },
8373
8707
  "config:autocorrect:status": {
8374
8708
  "aliases": [],
8375
8709
  "args": {},
8376
- "description": "Check whether autocorrect is enabled or disabled. On by default.\n\n When autocorrection is enabled, Shopify CLI automatically runs a corrected version of your command if a correction is available.\n\n When autocorrection is disabled, you need to confirm that you want to run corrections for mistyped commands.\n",
8710
+ "description": "Check whether autocorrect is enabled or disabled. On by default.\n\n When autocorrection is enabled, Shopify CLI automatically runs a corrected version of your command if a correction is available.\n\n When autocorrection is disabled, you need to confirm that you want to run corrections for mistyped commands.\n\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AutocorrectResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"enabled\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AutocorrectResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
8377
8711
  "flags": {
8378
8712
  "json-schema": {
8379
8713
  "description": "Print the command's JSON schemas.",
@@ -8381,6 +8715,38 @@
8381
8715
  "name": "json-schema",
8382
8716
  "allowNo": false,
8383
8717
  "type": "boolean"
8718
+ },
8719
+ "no-input": {
8720
+ "description": "Disable interactive prompts and browser authentication.",
8721
+ "env": "SHOPIFY_FLAG_NO_INPUT",
8722
+ "name": "no-input",
8723
+ "allowNo": false,
8724
+ "type": "boolean"
8725
+ },
8726
+ "no-color": {
8727
+ "description": "Disable color output.",
8728
+ "env": "SHOPIFY_FLAG_NO_COLOR",
8729
+ "hidden": false,
8730
+ "name": "no-color",
8731
+ "allowNo": false,
8732
+ "type": "boolean"
8733
+ },
8734
+ "verbose": {
8735
+ "description": "Increase the verbosity of the output. May include sensitive data.",
8736
+ "env": "SHOPIFY_FLAG_VERBOSE",
8737
+ "hidden": false,
8738
+ "name": "verbose",
8739
+ "allowNo": false,
8740
+ "type": "boolean"
8741
+ },
8742
+ "json": {
8743
+ "char": "j",
8744
+ "description": "Output the result as JSON. Automatically disables color output.",
8745
+ "env": "SHOPIFY_FLAG_JSON",
8746
+ "hidden": false,
8747
+ "name": "json",
8748
+ "allowNo": false,
8749
+ "type": "boolean"
8384
8750
  }
8385
8751
  },
8386
8752
  "hasDynamicHelp": false,
@@ -8398,7 +8764,7 @@
8398
8764
  "config:autocorrect:on": {
8399
8765
  "aliases": [],
8400
8766
  "args": {},
8401
- "description": "Enable autocorrect. Off by default.\n\n When autocorrection is enabled, Shopify CLI automatically runs a corrected version of your command if a correction is available.\n\n When autocorrection is disabled, you need to confirm that you want to run corrections for mistyped commands.\n",
8767
+ "description": "Enable autocorrect. Off by default.\n\n When autocorrection is enabled, Shopify CLI automatically runs a corrected version of your command if a correction is available.\n\n When autocorrection is disabled, you need to confirm that you want to run corrections for mistyped commands.\n\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `AutocorrectResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"enabled\"\n ],\n \"additionalProperties\": false,\n \"title\": \"AutocorrectResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
8402
8768
  "flags": {
8403
8769
  "json-schema": {
8404
8770
  "description": "Print the command's JSON schemas.",
@@ -8406,6 +8772,38 @@
8406
8772
  "name": "json-schema",
8407
8773
  "allowNo": false,
8408
8774
  "type": "boolean"
8775
+ },
8776
+ "no-input": {
8777
+ "description": "Disable interactive prompts and browser authentication.",
8778
+ "env": "SHOPIFY_FLAG_NO_INPUT",
8779
+ "name": "no-input",
8780
+ "allowNo": false,
8781
+ "type": "boolean"
8782
+ },
8783
+ "no-color": {
8784
+ "description": "Disable color output.",
8785
+ "env": "SHOPIFY_FLAG_NO_COLOR",
8786
+ "hidden": false,
8787
+ "name": "no-color",
8788
+ "allowNo": false,
8789
+ "type": "boolean"
8790
+ },
8791
+ "verbose": {
8792
+ "description": "Increase the verbosity of the output. May include sensitive data.",
8793
+ "env": "SHOPIFY_FLAG_VERBOSE",
8794
+ "hidden": false,
8795
+ "name": "verbose",
8796
+ "allowNo": false,
8797
+ "type": "boolean"
8798
+ },
8799
+ "json": {
8800
+ "char": "j",
8801
+ "description": "Output the result as JSON. Automatically disables color output.",
8802
+ "env": "SHOPIFY_FLAG_JSON",
8803
+ "hidden": false,
8804
+ "name": "json",
8805
+ "allowNo": false,
8806
+ "type": "boolean"
8409
8807
  }
8410
8808
  },
8411
8809
  "hasDynamicHelp": false,
@@ -8527,6 +8925,29 @@
8527
8925
  "allowNo": false,
8528
8926
  "type": "boolean"
8529
8927
  },
8928
+ "no-input": {
8929
+ "description": "Disable interactive prompts and browser authentication.",
8930
+ "env": "SHOPIFY_FLAG_NO_INPUT",
8931
+ "name": "no-input",
8932
+ "allowNo": false,
8933
+ "type": "boolean"
8934
+ },
8935
+ "no-color": {
8936
+ "description": "Disable color output.",
8937
+ "env": "SHOPIFY_FLAG_NO_COLOR",
8938
+ "hidden": false,
8939
+ "name": "no-color",
8940
+ "allowNo": false,
8941
+ "type": "boolean"
8942
+ },
8943
+ "verbose": {
8944
+ "description": "Outputs more information about the command's execution.",
8945
+ "env": "SHOPIFY_HYDROGEN_FLAG_VERBOSE",
8946
+ "name": "verbose",
8947
+ "required": false,
8948
+ "allowNo": false,
8949
+ "type": "boolean"
8950
+ },
8530
8951
  "path": {
8531
8952
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
8532
8953
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -8638,14 +9059,6 @@
8638
9059
  "allowNo": false,
8639
9060
  "type": "boolean"
8640
9061
  },
8641
- "verbose": {
8642
- "description": "Outputs more information about the command's execution.",
8643
- "env": "SHOPIFY_HYDROGEN_FLAG_VERBOSE",
8644
- "name": "verbose",
8645
- "required": false,
8646
- "allowNo": false,
8647
- "type": "boolean"
8648
- },
8649
9062
  "host": {
8650
9063
  "description": "Expose the server to the local network",
8651
9064
  "name": "host",
@@ -8675,7 +9088,7 @@
8675
9088
  "hydrogen:build": {
8676
9089
  "aliases": [],
8677
9090
  "args": {},
8678
- "description": "Builds a Hydrogen storefront for production.",
9091
+ "description": "Builds a Hydrogen storefront for production. The client and app worker files are compiled to a `/dist` folder in your Hydrogen project directory.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenBuildResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"directory\": {\n \"$ref\": \"#/definitions/AbsolutePath\"\n },\n \"clientDirectory\": {\n \"$ref\": \"#/definitions/AbsolutePath\"\n },\n \"serverDirectory\": {\n \"$ref\": \"#/definitions/AbsolutePath\"\n },\n \"serverPath\": {\n \"$ref\": \"#/definitions/AbsolutePath\"\n }\n },\n \"required\": [\n \"directory\",\n \"clientDirectory\",\n \"serverDirectory\",\n \"serverPath\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenBuildResult\",\n \"definitions\": {\n \"AbsolutePath\": {\n \"type\": \"string\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
8679
9092
  "flags": {
8680
9093
  "json-schema": {
8681
9094
  "description": "Print the command's JSON schemas.",
@@ -8684,6 +9097,38 @@
8684
9097
  "allowNo": false,
8685
9098
  "type": "boolean"
8686
9099
  },
9100
+ "no-input": {
9101
+ "description": "Disable interactive prompts and browser authentication.",
9102
+ "env": "SHOPIFY_FLAG_NO_INPUT",
9103
+ "name": "no-input",
9104
+ "allowNo": false,
9105
+ "type": "boolean"
9106
+ },
9107
+ "no-color": {
9108
+ "description": "Disable color output.",
9109
+ "env": "SHOPIFY_FLAG_NO_COLOR",
9110
+ "hidden": false,
9111
+ "name": "no-color",
9112
+ "allowNo": false,
9113
+ "type": "boolean"
9114
+ },
9115
+ "verbose": {
9116
+ "description": "Increase the verbosity of the output. May include sensitive data.",
9117
+ "env": "SHOPIFY_FLAG_VERBOSE",
9118
+ "hidden": false,
9119
+ "name": "verbose",
9120
+ "allowNo": false,
9121
+ "type": "boolean"
9122
+ },
9123
+ "json": {
9124
+ "char": "j",
9125
+ "description": "Output the result as JSON. Automatically disables color output.",
9126
+ "env": "SHOPIFY_FLAG_JSON",
9127
+ "hidden": false,
9128
+ "name": "json",
9129
+ "allowNo": false,
9130
+ "type": "boolean"
9131
+ },
8687
9132
  "path": {
8688
9133
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
8689
9134
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -8783,7 +9228,7 @@
8783
9228
  "required": true
8784
9229
  }
8785
9230
  },
8786
- "description": "Returns diagnostic information about a Hydrogen storefront.",
9231
+ "description": "Checks whether your Hydrogen app includes a set of standard Shopify routes.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenCheckResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"valid\": {\n \"type\": \"boolean\"\n },\n \"missingRoutes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"reservedRoutes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"valid\",\n \"missingRoutes\",\n \"reservedRoutes\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenCheckResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
8787
9232
  "flags": {
8788
9233
  "json-schema": {
8789
9234
  "description": "Print the command's JSON schemas.",
@@ -8792,6 +9237,38 @@
8792
9237
  "allowNo": false,
8793
9238
  "type": "boolean"
8794
9239
  },
9240
+ "no-input": {
9241
+ "description": "Disable interactive prompts and browser authentication.",
9242
+ "env": "SHOPIFY_FLAG_NO_INPUT",
9243
+ "name": "no-input",
9244
+ "allowNo": false,
9245
+ "type": "boolean"
9246
+ },
9247
+ "no-color": {
9248
+ "description": "Disable color output.",
9249
+ "env": "SHOPIFY_FLAG_NO_COLOR",
9250
+ "hidden": false,
9251
+ "name": "no-color",
9252
+ "allowNo": false,
9253
+ "type": "boolean"
9254
+ },
9255
+ "verbose": {
9256
+ "description": "Increase the verbosity of the output. May include sensitive data.",
9257
+ "env": "SHOPIFY_FLAG_VERBOSE",
9258
+ "hidden": false,
9259
+ "name": "verbose",
9260
+ "allowNo": false,
9261
+ "type": "boolean"
9262
+ },
9263
+ "json": {
9264
+ "char": "j",
9265
+ "description": "Output the result as JSON. Automatically disables color output.",
9266
+ "env": "SHOPIFY_FLAG_JSON",
9267
+ "hidden": false,
9268
+ "name": "json",
9269
+ "allowNo": false,
9270
+ "type": "boolean"
9271
+ },
8795
9272
  "path": {
8796
9273
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
8797
9274
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -8815,7 +9292,7 @@
8815
9292
  "hydrogen:codegen": {
8816
9293
  "aliases": [],
8817
9294
  "args": {},
8818
- "description": "Generate types for the Storefront API queries found in your project.",
9295
+ "description": "Automatically generates GraphQL types for your project’s Storefront API queries.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenCodegenResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"files\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"sources\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"Source patterns from the GraphQL codegen configuration.\"\n }\n },\n \"required\": [\n \"path\",\n \"sources\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"files\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenCodegenResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
8819
9296
  "flags": {
8820
9297
  "json-schema": {
8821
9298
  "description": "Print the command's JSON schemas.",
@@ -8824,6 +9301,38 @@
8824
9301
  "allowNo": false,
8825
9302
  "type": "boolean"
8826
9303
  },
9304
+ "no-input": {
9305
+ "description": "Disable interactive prompts and browser authentication.",
9306
+ "env": "SHOPIFY_FLAG_NO_INPUT",
9307
+ "name": "no-input",
9308
+ "allowNo": false,
9309
+ "type": "boolean"
9310
+ },
9311
+ "no-color": {
9312
+ "description": "Disable color output.",
9313
+ "env": "SHOPIFY_FLAG_NO_COLOR",
9314
+ "hidden": false,
9315
+ "name": "no-color",
9316
+ "allowNo": false,
9317
+ "type": "boolean"
9318
+ },
9319
+ "verbose": {
9320
+ "description": "Increase the verbosity of the output. May include sensitive data.",
9321
+ "env": "SHOPIFY_FLAG_VERBOSE",
9322
+ "hidden": false,
9323
+ "name": "verbose",
9324
+ "allowNo": false,
9325
+ "type": "boolean"
9326
+ },
9327
+ "json": {
9328
+ "char": "j",
9329
+ "description": "Output the result as JSON. Automatically disables color output.",
9330
+ "env": "SHOPIFY_FLAG_JSON",
9331
+ "hidden": false,
9332
+ "name": "json",
9333
+ "allowNo": false,
9334
+ "type": "boolean"
9335
+ },
8827
9336
  "path": {
8828
9337
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
8829
9338
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -8870,7 +9379,7 @@
8870
9379
  "hydrogen:deploy": {
8871
9380
  "aliases": [],
8872
9381
  "args": {},
8873
- "description": "Builds and deploys a Hydrogen storefront to Oxygen.",
9382
+ "description": "Builds and deploys your Hydrogen storefront to Oxygen. Requires an Oxygen deployment token to be set with the `--token` flag or an environment variable (`SHOPIFY_HYDROGEN_DEPLOYMENT_TOKEN`). If the storefront is \"linked\" (https://shopify.dev/docs/api/shopify-cli/hydrogen/hydrogen-link) then the Oxygen deployment token for the linked storefront will be used automatically.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenDeployResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"cancelled\"\n ]\n },\n \"deployment\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Deployment\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"status\",\n \"deployment\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The command result. The existing h2_deploy_log.json file retains Oxygen CompletedDeployment format, independently of this result.\",\n \"title\": \"HydrogenDeployResult\",\n \"definitions\": {\n \"Deployment\": {\n \"type\": \"object\",\n \"properties\": {\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"authBypassToken\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"url\",\n \"authBypassToken\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
8874
9383
  "flags": {
8875
9384
  "json-schema": {
8876
9385
  "description": "Print the command's JSON schemas.",
@@ -8879,21 +9388,53 @@
8879
9388
  "allowNo": false,
8880
9389
  "type": "boolean"
8881
9390
  },
8882
- "entry": {
8883
- "description": "Entry file for the worker. Defaults to `./server`.",
8884
- "env": "SHOPIFY_HYDROGEN_FLAG_ENTRY",
8885
- "name": "entry",
8886
- "hasDynamicHelp": false,
8887
- "multiple": false,
8888
- "type": "option"
9391
+ "no-input": {
9392
+ "description": "Disable interactive prompts and browser authentication.",
9393
+ "env": "SHOPIFY_FLAG_NO_INPUT",
9394
+ "name": "no-input",
9395
+ "allowNo": false,
9396
+ "type": "boolean"
8889
9397
  },
8890
- "env": {
8891
- "description": "Specifies the environment to perform the operation using its handle. Fetch the handle using the `env list` command.",
8892
- "exclusive": [
8893
- "env-branch"
8894
- ],
8895
- "name": "env",
8896
- "hasDynamicHelp": false,
9398
+ "no-color": {
9399
+ "description": "Disable color output.",
9400
+ "env": "SHOPIFY_FLAG_NO_COLOR",
9401
+ "hidden": false,
9402
+ "name": "no-color",
9403
+ "allowNo": false,
9404
+ "type": "boolean"
9405
+ },
9406
+ "verbose": {
9407
+ "description": "Increase the verbosity of the output. May include sensitive data.",
9408
+ "env": "SHOPIFY_FLAG_VERBOSE",
9409
+ "hidden": false,
9410
+ "name": "verbose",
9411
+ "allowNo": false,
9412
+ "type": "boolean"
9413
+ },
9414
+ "json": {
9415
+ "char": "j",
9416
+ "description": "Output the result as JSON. Automatically disables color output.",
9417
+ "env": "SHOPIFY_FLAG_JSON",
9418
+ "hidden": false,
9419
+ "name": "json",
9420
+ "allowNo": false,
9421
+ "type": "boolean"
9422
+ },
9423
+ "entry": {
9424
+ "description": "Entry file for the worker. Defaults to `./server`.",
9425
+ "env": "SHOPIFY_HYDROGEN_FLAG_ENTRY",
9426
+ "name": "entry",
9427
+ "hasDynamicHelp": false,
9428
+ "multiple": false,
9429
+ "type": "option"
9430
+ },
9431
+ "env": {
9432
+ "description": "Specifies the environment to perform the operation using its handle. Fetch the handle using the `env list` command.",
9433
+ "exclusive": [
9434
+ "env-branch"
9435
+ ],
9436
+ "name": "env",
9437
+ "hasDynamicHelp": false,
8897
9438
  "multiple": false,
8898
9439
  "type": "option"
8899
9440
  },
@@ -9093,6 +9634,29 @@
9093
9634
  "name": "json-schema",
9094
9635
  "allowNo": false,
9095
9636
  "type": "boolean"
9637
+ },
9638
+ "no-input": {
9639
+ "description": "Disable interactive prompts and browser authentication.",
9640
+ "env": "SHOPIFY_FLAG_NO_INPUT",
9641
+ "name": "no-input",
9642
+ "allowNo": false,
9643
+ "type": "boolean"
9644
+ },
9645
+ "no-color": {
9646
+ "description": "Disable color output.",
9647
+ "env": "SHOPIFY_FLAG_NO_COLOR",
9648
+ "hidden": false,
9649
+ "name": "no-color",
9650
+ "allowNo": false,
9651
+ "type": "boolean"
9652
+ },
9653
+ "verbose": {
9654
+ "description": "Increase the verbosity of the output. May include sensitive data.",
9655
+ "env": "SHOPIFY_FLAG_VERBOSE",
9656
+ "hidden": false,
9657
+ "name": "verbose",
9658
+ "allowNo": false,
9659
+ "type": "boolean"
9096
9660
  }
9097
9661
  },
9098
9662
  "hasDynamicHelp": false,
@@ -9109,7 +9673,7 @@
9109
9673
  "hydrogen:init": {
9110
9674
  "aliases": [],
9111
9675
  "args": {},
9112
- "description": "Creates a new Hydrogen storefront.",
9676
+ "description": "Creates a new Hydrogen storefront.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenInitResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"partial\",\n \"skipped\",\n \"cancelled\"\n ]\n },\n \"project\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Project\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"All projected fields are present; unavailable settings are null. Route values are relative route names.\"\n },\n \"failures\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"enum\": [\n \"dependencies\",\n \"markets\",\n \"routes\"\n ]\n }\n }\n },\n \"required\": [\n \"status\",\n \"project\",\n \"failures\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenInitResult\",\n \"definitions\": {\n \"Project\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"directory\": {\n \"type\": \"string\"\n },\n \"storefrontName\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"language\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"js\",\n \"ts\"\n ]\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"packageManager\": {\n \"type\": \"string\",\n \"enum\": [\n \"npm\",\n \"pnpm\",\n \"yarn\",\n \"bun\",\n \"unknown\"\n ]\n },\n \"dependenciesInstalled\": {\n \"type\": \"boolean\"\n },\n \"cssStrategy\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"none\",\n \"tailwind\",\n \"vanilla-extract\",\n \"css-modules\",\n \"postcss\"\n ]\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"i18n\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"none\",\n \"subfolders\",\n \"domains\",\n \"subdomains\"\n ]\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"routes\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n }\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"name\",\n \"directory\",\n \"storefrontName\",\n \"language\",\n \"packageManager\",\n \"dependenciesInstalled\",\n \"cssStrategy\",\n \"i18n\",\n \"routes\"\n ],\n \"additionalProperties\": false,\n \"description\": \"All projected fields are present; unavailable settings are null. Route values are relative route names.\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
9113
9677
  "flags": {
9114
9678
  "json-schema": {
9115
9679
  "description": "Print the command's JSON schemas.",
@@ -9118,6 +9682,38 @@
9118
9682
  "allowNo": false,
9119
9683
  "type": "boolean"
9120
9684
  },
9685
+ "no-input": {
9686
+ "description": "Disable interactive prompts and browser authentication.",
9687
+ "env": "SHOPIFY_FLAG_NO_INPUT",
9688
+ "name": "no-input",
9689
+ "allowNo": false,
9690
+ "type": "boolean"
9691
+ },
9692
+ "no-color": {
9693
+ "description": "Disable color output.",
9694
+ "env": "SHOPIFY_FLAG_NO_COLOR",
9695
+ "hidden": false,
9696
+ "name": "no-color",
9697
+ "allowNo": false,
9698
+ "type": "boolean"
9699
+ },
9700
+ "verbose": {
9701
+ "description": "Increase the verbosity of the output. May include sensitive data.",
9702
+ "env": "SHOPIFY_FLAG_VERBOSE",
9703
+ "hidden": false,
9704
+ "name": "verbose",
9705
+ "allowNo": false,
9706
+ "type": "boolean"
9707
+ },
9708
+ "json": {
9709
+ "char": "j",
9710
+ "description": "Output the result as JSON. Automatically disables color output.",
9711
+ "env": "SHOPIFY_FLAG_JSON",
9712
+ "hidden": false,
9713
+ "name": "json",
9714
+ "allowNo": false,
9715
+ "type": "boolean"
9716
+ },
9121
9717
  "force": {
9122
9718
  "char": "f",
9123
9719
  "description": "Overwrites the destination directory and files if they already exist.",
@@ -9230,7 +9826,7 @@
9230
9826
  "hydrogen:link": {
9231
9827
  "aliases": [],
9232
9828
  "args": {},
9233
- "description": "Link a local project to one of your shop's Hydrogen storefronts.",
9829
+ "description": "Links your local development environment to a remote Hydrogen storefront. You can link an unlimited number of development environments to a single Hydrogen storefront.\n\n Linking to a Hydrogen storefront enables you to run \"dev\" (https://shopify.dev/docs/api/shopify-cli/hydrogen/hydrogen-dev) and automatically inject your linked Hydrogen storefront's environment variables directly into the server runtime.\n\n After you run the `link` command, you can access the \"env list\" (https://shopify.dev/docs/api/shopify-cli/hydrogen/hydrogen-env-list), \"env pull\" (https://shopify.dev/docs/api/shopify-cli/hydrogen/hydrogen-env-pull), and \"unlink\" (https://shopify.dev/docs/api/shopify-cli/hydrogen/hydrogen-unlink) commands.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenLinkResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"partial\",\n \"skipped\",\n \"cancelled\"\n ]\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"storeDomain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^[a-z0-9][a-z0-9-]*\\\\.myshopify\\\\.com$\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"storefront\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Storefront\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"All projected fields are present; unavailable productionUrl is null.\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"storeDomain\",\n \"storefront\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenLinkResult\",\n \"definitions\": {\n \"Storefront\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/HydrogenStorefront\\\\/\\\\d+$\",\n \"description\": \"A Shopify HydrogenStorefront GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"productionUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"gid\",\n \"name\",\n \"productionUrl\"\n ],\n \"additionalProperties\": false,\n \"description\": \"All projected fields are present; unavailable productionUrl is null.\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
9234
9830
  "flags": {
9235
9831
  "json-schema": {
9236
9832
  "description": "Print the command's JSON schemas.",
@@ -9239,6 +9835,38 @@
9239
9835
  "allowNo": false,
9240
9836
  "type": "boolean"
9241
9837
  },
9838
+ "no-input": {
9839
+ "description": "Disable interactive prompts and browser authentication.",
9840
+ "env": "SHOPIFY_FLAG_NO_INPUT",
9841
+ "name": "no-input",
9842
+ "allowNo": false,
9843
+ "type": "boolean"
9844
+ },
9845
+ "no-color": {
9846
+ "description": "Disable color output.",
9847
+ "env": "SHOPIFY_FLAG_NO_COLOR",
9848
+ "hidden": false,
9849
+ "name": "no-color",
9850
+ "allowNo": false,
9851
+ "type": "boolean"
9852
+ },
9853
+ "verbose": {
9854
+ "description": "Increase the verbosity of the output. May include sensitive data.",
9855
+ "env": "SHOPIFY_FLAG_VERBOSE",
9856
+ "hidden": false,
9857
+ "name": "verbose",
9858
+ "allowNo": false,
9859
+ "type": "boolean"
9860
+ },
9861
+ "json": {
9862
+ "char": "j",
9863
+ "description": "Output the result as JSON. Automatically disables color output.",
9864
+ "env": "SHOPIFY_FLAG_JSON",
9865
+ "hidden": false,
9866
+ "name": "json",
9867
+ "allowNo": false,
9868
+ "type": "boolean"
9869
+ },
9242
9870
  "force": {
9243
9871
  "char": "f",
9244
9872
  "description": "Overwrites the destination directory and files if they already exist.",
@@ -9312,7 +9940,7 @@
9312
9940
  "hydrogen:list": {
9313
9941
  "aliases": [],
9314
9942
  "args": {},
9315
- "description": "Returns a list of Hydrogen storefronts available on a given shop.",
9943
+ "description": "Lists all remote Hydrogen storefronts available to link to your local development environment.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenListResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"storeDomain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^[a-z0-9][a-z0-9-]*\\\\.myshopify\\\\.com$\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"storefronts\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/Storefront\"\n }\n }\n },\n \"required\": [\n \"storeDomain\",\n \"storefronts\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The complete list of Hydrogen storefronts for the store.\",\n \"title\": \"HydrogenListResult\",\n \"definitions\": {\n \"Storefront\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/HydrogenStorefront\\\\/\\\\d+$\",\n \"description\": \"A Shopify HydrogenStorefront GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"productionUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"currentProductionDeployment\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Deployment\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"gid\",\n \"name\",\n \"productionUrl\",\n \"currentProductionDeployment\"\n ],\n \"additionalProperties\": false,\n \"description\": \"All projected fields are present; unavailable productionUrl is null.\"\n },\n \"Deployment\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/HydrogenStorefrontDeployment\\\\/\\\\d+$\",\n \"description\": \"A Shopify HydrogenStorefrontDeployment GID.\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"commitMessage\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"gid\",\n \"createdAt\",\n \"commitMessage\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
9316
9944
  "flags": {
9317
9945
  "json-schema": {
9318
9946
  "description": "Print the command's JSON schemas.",
@@ -9321,6 +9949,38 @@
9321
9949
  "allowNo": false,
9322
9950
  "type": "boolean"
9323
9951
  },
9952
+ "no-input": {
9953
+ "description": "Disable interactive prompts and browser authentication.",
9954
+ "env": "SHOPIFY_FLAG_NO_INPUT",
9955
+ "name": "no-input",
9956
+ "allowNo": false,
9957
+ "type": "boolean"
9958
+ },
9959
+ "no-color": {
9960
+ "description": "Disable color output.",
9961
+ "env": "SHOPIFY_FLAG_NO_COLOR",
9962
+ "hidden": false,
9963
+ "name": "no-color",
9964
+ "allowNo": false,
9965
+ "type": "boolean"
9966
+ },
9967
+ "verbose": {
9968
+ "description": "Increase the verbosity of the output. May include sensitive data.",
9969
+ "env": "SHOPIFY_FLAG_VERBOSE",
9970
+ "hidden": false,
9971
+ "name": "verbose",
9972
+ "allowNo": false,
9973
+ "type": "boolean"
9974
+ },
9975
+ "json": {
9976
+ "char": "j",
9977
+ "description": "Output the result as JSON. Automatically disables color output.",
9978
+ "env": "SHOPIFY_FLAG_JSON",
9979
+ "hidden": false,
9980
+ "name": "json",
9981
+ "allowNo": false,
9982
+ "type": "boolean"
9983
+ },
9324
9984
  "path": {
9325
9985
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
9326
9986
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -9344,7 +10004,7 @@
9344
10004
  "hydrogen:login": {
9345
10005
  "aliases": [],
9346
10006
  "args": {},
9347
- "description": "Login to your Shopify account.",
10007
+ "description": "Logs in to the specified shop and saves the shop domain to the project.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenLoginResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"storeDomain\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^[a-z0-9][a-z0-9-]*\\\\.myshopify\\\\.com$\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"name\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"email\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"email\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"storeDomain\",\n \"name\",\n \"email\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenLoginResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
9348
10008
  "flags": {
9349
10009
  "json-schema": {
9350
10010
  "description": "Print the command's JSON schemas.",
@@ -9353,6 +10013,38 @@
9353
10013
  "allowNo": false,
9354
10014
  "type": "boolean"
9355
10015
  },
10016
+ "no-input": {
10017
+ "description": "Disable interactive prompts and browser authentication.",
10018
+ "env": "SHOPIFY_FLAG_NO_INPUT",
10019
+ "name": "no-input",
10020
+ "allowNo": false,
10021
+ "type": "boolean"
10022
+ },
10023
+ "no-color": {
10024
+ "description": "Disable color output.",
10025
+ "env": "SHOPIFY_FLAG_NO_COLOR",
10026
+ "hidden": false,
10027
+ "name": "no-color",
10028
+ "allowNo": false,
10029
+ "type": "boolean"
10030
+ },
10031
+ "verbose": {
10032
+ "description": "Increase the verbosity of the output. May include sensitive data.",
10033
+ "env": "SHOPIFY_FLAG_VERBOSE",
10034
+ "hidden": false,
10035
+ "name": "verbose",
10036
+ "allowNo": false,
10037
+ "type": "boolean"
10038
+ },
10039
+ "json": {
10040
+ "char": "j",
10041
+ "description": "Output the result as JSON. Automatically disables color output.",
10042
+ "env": "SHOPIFY_FLAG_JSON",
10043
+ "hidden": false,
10044
+ "name": "json",
10045
+ "allowNo": false,
10046
+ "type": "boolean"
10047
+ },
9356
10048
  "path": {
9357
10049
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
9358
10050
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -9385,7 +10077,7 @@
9385
10077
  "hydrogen:logout": {
9386
10078
  "aliases": [],
9387
10079
  "args": {},
9388
- "description": "Logout of your local session.",
10080
+ "description": "Log out from the current shop.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenLogoutResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"loggedOut\": {\n \"type\": \"boolean\",\n \"const\": true\n }\n },\n \"required\": [\n \"status\",\n \"loggedOut\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenLogoutResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
9389
10081
  "flags": {
9390
10082
  "json-schema": {
9391
10083
  "description": "Print the command's JSON schemas.",
@@ -9394,6 +10086,38 @@
9394
10086
  "allowNo": false,
9395
10087
  "type": "boolean"
9396
10088
  },
10089
+ "no-input": {
10090
+ "description": "Disable interactive prompts and browser authentication.",
10091
+ "env": "SHOPIFY_FLAG_NO_INPUT",
10092
+ "name": "no-input",
10093
+ "allowNo": false,
10094
+ "type": "boolean"
10095
+ },
10096
+ "no-color": {
10097
+ "description": "Disable color output.",
10098
+ "env": "SHOPIFY_FLAG_NO_COLOR",
10099
+ "hidden": false,
10100
+ "name": "no-color",
10101
+ "allowNo": false,
10102
+ "type": "boolean"
10103
+ },
10104
+ "verbose": {
10105
+ "description": "Increase the verbosity of the output. May include sensitive data.",
10106
+ "env": "SHOPIFY_FLAG_VERBOSE",
10107
+ "hidden": false,
10108
+ "name": "verbose",
10109
+ "allowNo": false,
10110
+ "type": "boolean"
10111
+ },
10112
+ "json": {
10113
+ "char": "j",
10114
+ "description": "Output the result as JSON. Automatically disables color output.",
10115
+ "env": "SHOPIFY_FLAG_JSON",
10116
+ "hidden": false,
10117
+ "name": "json",
10118
+ "allowNo": false,
10119
+ "type": "boolean"
10120
+ },
9397
10121
  "path": {
9398
10122
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
9399
10123
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -9426,6 +10150,29 @@
9426
10150
  "allowNo": false,
9427
10151
  "type": "boolean"
9428
10152
  },
10153
+ "no-input": {
10154
+ "description": "Disable interactive prompts and browser authentication.",
10155
+ "env": "SHOPIFY_FLAG_NO_INPUT",
10156
+ "name": "no-input",
10157
+ "allowNo": false,
10158
+ "type": "boolean"
10159
+ },
10160
+ "no-color": {
10161
+ "description": "Disable color output.",
10162
+ "env": "SHOPIFY_FLAG_NO_COLOR",
10163
+ "hidden": false,
10164
+ "name": "no-color",
10165
+ "allowNo": false,
10166
+ "type": "boolean"
10167
+ },
10168
+ "verbose": {
10169
+ "description": "Outputs more information about the command's execution.",
10170
+ "env": "SHOPIFY_HYDROGEN_FLAG_VERBOSE",
10171
+ "name": "verbose",
10172
+ "required": false,
10173
+ "allowNo": false,
10174
+ "type": "boolean"
10175
+ },
9429
10176
  "path": {
9430
10177
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
9431
10178
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -9488,14 +10235,6 @@
9488
10235
  "allowNo": false,
9489
10236
  "type": "boolean"
9490
10237
  },
9491
- "verbose": {
9492
- "description": "Outputs more information about the command's execution.",
9493
- "env": "SHOPIFY_HYDROGEN_FLAG_VERBOSE",
9494
- "name": "verbose",
9495
- "required": false,
9496
- "allowNo": false,
9497
- "type": "boolean"
9498
- },
9499
10238
  "build": {
9500
10239
  "description": "Builds the app before starting the preview server.",
9501
10240
  "name": "build",
@@ -9558,7 +10297,7 @@
9558
10297
  "hydrogen:setup": {
9559
10298
  "aliases": [],
9560
10299
  "args": {},
9561
- "description": "Scaffold routes and core functionality.",
10300
+ "description": "Scaffold routes and core functionality.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenSetupResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"directory\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"i18n\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"subfolders\",\n \"domains\",\n \"subdomains\"\n ]\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"routes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"sourceRoute\": {\n \"type\": \"string\"\n },\n \"destinationRoute\": {\n \"type\": \"string\"\n },\n \"operation\": {\n \"type\": \"string\",\n \"enum\": [\n \"created\",\n \"skipped\",\n \"replaced\"\n ]\n },\n \"skipReason\": {\n \"type\": \"string\",\n \"enum\": [\n \"declined\",\n \"exists\"\n ]\n }\n },\n \"required\": [\n \"sourceRoute\",\n \"destinationRoute\",\n \"operation\"\n ],\n \"additionalProperties\": false\n }\n },\n \"routeGroups\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"shortcut\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"directory\",\n \"name\",\n \"i18n\",\n \"routes\",\n \"routeGroups\",\n \"shortcut\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenSetupResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
9562
10301
  "flags": {
9563
10302
  "json-schema": {
9564
10303
  "description": "Print the command's JSON schemas.",
@@ -9567,6 +10306,38 @@
9567
10306
  "allowNo": false,
9568
10307
  "type": "boolean"
9569
10308
  },
10309
+ "no-input": {
10310
+ "description": "Disable interactive prompts and browser authentication.",
10311
+ "env": "SHOPIFY_FLAG_NO_INPUT",
10312
+ "name": "no-input",
10313
+ "allowNo": false,
10314
+ "type": "boolean"
10315
+ },
10316
+ "no-color": {
10317
+ "description": "Disable color output.",
10318
+ "env": "SHOPIFY_FLAG_NO_COLOR",
10319
+ "hidden": false,
10320
+ "name": "no-color",
10321
+ "allowNo": false,
10322
+ "type": "boolean"
10323
+ },
10324
+ "verbose": {
10325
+ "description": "Increase the verbosity of the output. May include sensitive data.",
10326
+ "env": "SHOPIFY_FLAG_VERBOSE",
10327
+ "hidden": false,
10328
+ "name": "verbose",
10329
+ "allowNo": false,
10330
+ "type": "boolean"
10331
+ },
10332
+ "json": {
10333
+ "char": "j",
10334
+ "description": "Output the result as JSON. Automatically disables color output.",
10335
+ "env": "SHOPIFY_FLAG_JSON",
10336
+ "hidden": false,
10337
+ "name": "json",
10338
+ "allowNo": false,
10339
+ "type": "boolean"
10340
+ },
9570
10341
  "path": {
9571
10342
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
9572
10343
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -9614,12 +10385,13 @@
9614
10385
  "pluginType": "core",
9615
10386
  "strict": true,
9616
10387
  "enableJsonFlag": false,
10388
+ "descriptionWithMarkdown": "Scaffold routes and core functionality.",
9617
10389
  "customPluginName": "@shopify/cli-hydrogen"
9618
10390
  },
9619
10391
  "hydrogen:shortcut": {
9620
10392
  "aliases": [],
9621
10393
  "args": {},
9622
- "description": "Creates a global `h2` shortcut for the Hydrogen CLI",
10394
+ "description": "Creates a global h2 shortcut for Shopify CLI using shell aliases.\n\n The following shells are supported:\n\n - Bash (using `~/.bashrc`)\n - ZSH (using `~/.zshrc`)\n - Fish (using `~/.config/fish/functions`)\n - PowerShell (added to `$PROFILE`)\n\n After the alias is created, you can call Shopify CLI from anywhere in your project using `h2 <command>`.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenShortcutResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"alias\": {\n \"type\": \"string\"\n },\n \"shells\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"enum\": [\n \"bash\",\n \"zsh\",\n \"fish\",\n \"powershell\",\n \"powershell-7\",\n \"cmd\"\n ]\n },\n \"minItems\": 1\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"alias\",\n \"shells\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenShortcutResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
9623
10395
  "flags": {
9624
10396
  "json-schema": {
9625
10397
  "description": "Print the command's JSON schemas.",
@@ -9627,6 +10399,38 @@
9627
10399
  "name": "json-schema",
9628
10400
  "allowNo": false,
9629
10401
  "type": "boolean"
10402
+ },
10403
+ "no-input": {
10404
+ "description": "Disable interactive prompts and browser authentication.",
10405
+ "env": "SHOPIFY_FLAG_NO_INPUT",
10406
+ "name": "no-input",
10407
+ "allowNo": false,
10408
+ "type": "boolean"
10409
+ },
10410
+ "no-color": {
10411
+ "description": "Disable color output.",
10412
+ "env": "SHOPIFY_FLAG_NO_COLOR",
10413
+ "hidden": false,
10414
+ "name": "no-color",
10415
+ "allowNo": false,
10416
+ "type": "boolean"
10417
+ },
10418
+ "verbose": {
10419
+ "description": "Increase the verbosity of the output. May include sensitive data.",
10420
+ "env": "SHOPIFY_FLAG_VERBOSE",
10421
+ "hidden": false,
10422
+ "name": "verbose",
10423
+ "allowNo": false,
10424
+ "type": "boolean"
10425
+ },
10426
+ "json": {
10427
+ "char": "j",
10428
+ "description": "Output the result as JSON. Automatically disables color output.",
10429
+ "env": "SHOPIFY_FLAG_JSON",
10430
+ "hidden": false,
10431
+ "name": "json",
10432
+ "allowNo": false,
10433
+ "type": "boolean"
9630
10434
  }
9631
10435
  },
9632
10436
  "hasDynamicHelp": false,
@@ -9643,7 +10447,7 @@
9643
10447
  "hydrogen:unlink": {
9644
10448
  "aliases": [],
9645
10449
  "args": {},
9646
- "description": "Unlink a local project from a Hydrogen storefront.",
10450
+ "description": "Unlinks your local development environment from a remote Hydrogen storefront.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenUnlinkResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"storefront\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/HydrogenStorefront\\\\/\\\\d+$\",\n \"description\": \"A Shopify HydrogenStorefront GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"gid\",\n \"name\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"storefront\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenUnlinkResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
9647
10451
  "flags": {
9648
10452
  "json-schema": {
9649
10453
  "description": "Print the command's JSON schemas.",
@@ -9652,6 +10456,38 @@
9652
10456
  "allowNo": false,
9653
10457
  "type": "boolean"
9654
10458
  },
10459
+ "no-input": {
10460
+ "description": "Disable interactive prompts and browser authentication.",
10461
+ "env": "SHOPIFY_FLAG_NO_INPUT",
10462
+ "name": "no-input",
10463
+ "allowNo": false,
10464
+ "type": "boolean"
10465
+ },
10466
+ "no-color": {
10467
+ "description": "Disable color output.",
10468
+ "env": "SHOPIFY_FLAG_NO_COLOR",
10469
+ "hidden": false,
10470
+ "name": "no-color",
10471
+ "allowNo": false,
10472
+ "type": "boolean"
10473
+ },
10474
+ "verbose": {
10475
+ "description": "Increase the verbosity of the output. May include sensitive data.",
10476
+ "env": "SHOPIFY_FLAG_VERBOSE",
10477
+ "hidden": false,
10478
+ "name": "verbose",
10479
+ "allowNo": false,
10480
+ "type": "boolean"
10481
+ },
10482
+ "json": {
10483
+ "char": "j",
10484
+ "description": "Output the result as JSON. Automatically disables color output.",
10485
+ "env": "SHOPIFY_FLAG_JSON",
10486
+ "hidden": false,
10487
+ "name": "json",
10488
+ "allowNo": false,
10489
+ "type": "boolean"
10490
+ },
9655
10491
  "path": {
9656
10492
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
9657
10493
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -9675,7 +10511,7 @@
9675
10511
  "hydrogen:upgrade": {
9676
10512
  "aliases": [],
9677
10513
  "args": {},
9678
- "description": "Upgrade Remix and Hydrogen npm dependencies.",
10514
+ "description": "Upgrade Hydrogen project dependencies, preview features, fixes and breaking changes. The command also generates an instruction file for each upgrade.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenUpgradeResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"directory\": {\n \"$ref\": \"#/definitions/AbsolutePath\"\n },\n \"previousVersion\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"changed\": {\n \"type\": \"boolean\",\n \"const\": true\n },\n \"packages\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"removedPackages\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"instructionsPath\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/AbsolutePath\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"status\",\n \"directory\",\n \"previousVersion\",\n \"version\",\n \"changed\",\n \"packages\",\n \"removedPackages\",\n \"instructionsPath\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"directory\": {\n \"$ref\": \"#/definitions/AbsolutePath\"\n },\n \"previousVersion\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"changed\": {\n \"type\": \"boolean\",\n \"const\": false\n },\n \"packages\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"minItems\": 0,\n \"maxItems\": 0\n },\n \"removedPackages\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"minItems\": 0,\n \"maxItems\": 0\n },\n \"instructionsPath\": {\n \"type\": \"null\"\n }\n },\n \"required\": [\n \"status\",\n \"directory\",\n \"previousVersion\",\n \"version\",\n \"changed\",\n \"packages\",\n \"removedPackages\",\n \"instructionsPath\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"HydrogenUpgradeResult\",\n \"definitions\": {\n \"AbsolutePath\": {\n \"type\": \"string\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
9679
10515
  "flags": {
9680
10516
  "json-schema": {
9681
10517
  "description": "Print the command's JSON schemas.",
@@ -9684,6 +10520,38 @@
9684
10520
  "allowNo": false,
9685
10521
  "type": "boolean"
9686
10522
  },
10523
+ "no-input": {
10524
+ "description": "Disable interactive prompts and browser authentication.",
10525
+ "env": "SHOPIFY_FLAG_NO_INPUT",
10526
+ "name": "no-input",
10527
+ "allowNo": false,
10528
+ "type": "boolean"
10529
+ },
10530
+ "no-color": {
10531
+ "description": "Disable color output.",
10532
+ "env": "SHOPIFY_FLAG_NO_COLOR",
10533
+ "hidden": false,
10534
+ "name": "no-color",
10535
+ "allowNo": false,
10536
+ "type": "boolean"
10537
+ },
10538
+ "verbose": {
10539
+ "description": "Increase the verbosity of the output. May include sensitive data.",
10540
+ "env": "SHOPIFY_FLAG_VERBOSE",
10541
+ "hidden": false,
10542
+ "name": "verbose",
10543
+ "allowNo": false,
10544
+ "type": "boolean"
10545
+ },
10546
+ "json": {
10547
+ "char": "j",
10548
+ "description": "Output the result as JSON. Automatically disables color output.",
10549
+ "env": "SHOPIFY_FLAG_JSON",
10550
+ "hidden": false,
10551
+ "name": "json",
10552
+ "allowNo": false,
10553
+ "type": "boolean"
10554
+ },
9687
10555
  "path": {
9688
10556
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
9689
10557
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -9724,7 +10592,7 @@
9724
10592
  "hydrogen:customer-account-push": {
9725
10593
  "aliases": [],
9726
10594
  "args": {},
9727
- "description": "Push project configuration to admin",
10595
+ "description": "Push project configuration to admin\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenCustomerAccountPushResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"storefrontGid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/HydrogenStorefront\\\\/\\\\d+$\",\n \"description\": \"A Shopify HydrogenStorefront GID.\"\n },\n \"redirectUri\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"javascriptOrigin\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"logoutUri\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n }\n },\n \"required\": [\n \"storefrontGid\",\n \"redirectUri\",\n \"javascriptOrigin\",\n \"logoutUri\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenCustomerAccountPushResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
9728
10596
  "flags": {
9729
10597
  "json-schema": {
9730
10598
  "description": "Print the command's JSON schemas.",
@@ -9733,6 +10601,38 @@
9733
10601
  "allowNo": false,
9734
10602
  "type": "boolean"
9735
10603
  },
10604
+ "no-input": {
10605
+ "description": "Disable interactive prompts and browser authentication.",
10606
+ "env": "SHOPIFY_FLAG_NO_INPUT",
10607
+ "name": "no-input",
10608
+ "allowNo": false,
10609
+ "type": "boolean"
10610
+ },
10611
+ "no-color": {
10612
+ "description": "Disable color output.",
10613
+ "env": "SHOPIFY_FLAG_NO_COLOR",
10614
+ "hidden": false,
10615
+ "name": "no-color",
10616
+ "allowNo": false,
10617
+ "type": "boolean"
10618
+ },
10619
+ "verbose": {
10620
+ "description": "Increase the verbosity of the output. May include sensitive data.",
10621
+ "env": "SHOPIFY_FLAG_VERBOSE",
10622
+ "hidden": false,
10623
+ "name": "verbose",
10624
+ "allowNo": false,
10625
+ "type": "boolean"
10626
+ },
10627
+ "json": {
10628
+ "char": "j",
10629
+ "description": "Output the result as JSON. Automatically disables color output.",
10630
+ "env": "SHOPIFY_FLAG_JSON",
10631
+ "hidden": false,
10632
+ "name": "json",
10633
+ "allowNo": false,
10634
+ "type": "boolean"
10635
+ },
9736
10636
  "path": {
9737
10637
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
9738
10638
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -9786,6 +10686,7 @@
9786
10686
  "pluginType": "core",
9787
10687
  "strict": true,
9788
10688
  "enableJsonFlag": false,
10689
+ "descriptionWithMarkdown": "Push project configuration to admin",
9789
10690
  "customPluginName": "@shopify/cli-hydrogen"
9790
10691
  },
9791
10692
  "hydrogen:debug:cpu": {
@@ -9800,6 +10701,29 @@
9800
10701
  "allowNo": false,
9801
10702
  "type": "boolean"
9802
10703
  },
10704
+ "no-input": {
10705
+ "description": "Disable interactive prompts and browser authentication.",
10706
+ "env": "SHOPIFY_FLAG_NO_INPUT",
10707
+ "name": "no-input",
10708
+ "allowNo": false,
10709
+ "type": "boolean"
10710
+ },
10711
+ "no-color": {
10712
+ "description": "Disable color output.",
10713
+ "env": "SHOPIFY_FLAG_NO_COLOR",
10714
+ "hidden": false,
10715
+ "name": "no-color",
10716
+ "allowNo": false,
10717
+ "type": "boolean"
10718
+ },
10719
+ "verbose": {
10720
+ "description": "Increase the verbosity of the output. May include sensitive data.",
10721
+ "env": "SHOPIFY_FLAG_VERBOSE",
10722
+ "hidden": false,
10723
+ "name": "verbose",
10724
+ "allowNo": false,
10725
+ "type": "boolean"
10726
+ },
9803
10727
  "path": {
9804
10728
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
9805
10729
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -9840,7 +10764,7 @@
9840
10764
  "hydrogen:env:list": {
9841
10765
  "aliases": [],
9842
10766
  "args": {},
9843
- "description": "List the environments on your linked Hydrogen storefront.",
10767
+ "description": "Lists all environments available on the linked Hydrogen storefront.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenEnvListResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"cancelled\"\n ]\n },\n \"storefront\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Storefront\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"environments\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/Environment\"\n }\n }\n },\n \"required\": [\n \"status\",\n \"storefront\",\n \"environments\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The complete environment list for the linked storefront.\",\n \"title\": \"HydrogenEnvListResult\",\n \"definitions\": {\n \"Environment\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/HydrogenStorefrontEnvironment\\\\/\\\\d+$\",\n \"description\": \"A Shopify HydrogenStorefrontEnvironment GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"handle\": {\n \"type\": \"string\"\n },\n \"branch\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Upstream environment type; known values are PREVIEW, PRODUCTION, CUSTOM.\"\n },\n \"url\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"gid\",\n \"name\",\n \"handle\",\n \"branch\",\n \"createdAt\",\n \"type\",\n \"url\"\n ],\n \"additionalProperties\": false\n },\n \"Storefront\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/HydrogenStorefront\\\\/\\\\d+$\",\n \"description\": \"A Shopify HydrogenStorefront GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"productionUrl\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"gid\",\n \"name\",\n \"productionUrl\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
9844
10768
  "flags": {
9845
10769
  "json-schema": {
9846
10770
  "description": "Print the command's JSON schemas.",
@@ -9849,6 +10773,38 @@
9849
10773
  "allowNo": false,
9850
10774
  "type": "boolean"
9851
10775
  },
10776
+ "no-input": {
10777
+ "description": "Disable interactive prompts and browser authentication.",
10778
+ "env": "SHOPIFY_FLAG_NO_INPUT",
10779
+ "name": "no-input",
10780
+ "allowNo": false,
10781
+ "type": "boolean"
10782
+ },
10783
+ "no-color": {
10784
+ "description": "Disable color output.",
10785
+ "env": "SHOPIFY_FLAG_NO_COLOR",
10786
+ "hidden": false,
10787
+ "name": "no-color",
10788
+ "allowNo": false,
10789
+ "type": "boolean"
10790
+ },
10791
+ "verbose": {
10792
+ "description": "Increase the verbosity of the output. May include sensitive data.",
10793
+ "env": "SHOPIFY_FLAG_VERBOSE",
10794
+ "hidden": false,
10795
+ "name": "verbose",
10796
+ "allowNo": false,
10797
+ "type": "boolean"
10798
+ },
10799
+ "json": {
10800
+ "char": "j",
10801
+ "description": "Output the result as JSON. Automatically disables color output.",
10802
+ "env": "SHOPIFY_FLAG_JSON",
10803
+ "hidden": false,
10804
+ "name": "json",
10805
+ "allowNo": false,
10806
+ "type": "boolean"
10807
+ },
9852
10808
  "path": {
9853
10809
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
9854
10810
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -9872,7 +10828,7 @@
9872
10828
  "hydrogen:env:pull": {
9873
10829
  "aliases": [],
9874
10830
  "args": {},
9875
- "description": "Populate your .env with variables from your Hydrogen storefront.",
10831
+ "description": "Pulls environment variables from the linked Hydrogen storefront and writes them to an `.env` file.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenEnvPullResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"cancelled\"\n ]\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"storefrontGid\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/HydrogenStorefront\\\\/\\\\d+$\",\n \"description\": \"A Shopify HydrogenStorefront GID.\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"A Shopify HydrogenStorefront GID.\"\n },\n \"storefrontName\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"environment\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Environment\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"variables\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/Variable\"\n }\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"path\",\n \"storefrontGid\",\n \"storefrontName\",\n \"environment\",\n \"variables\"\n ],\n \"additionalProperties\": false,\n \"description\": \"The dotenv file keeps its native format. The result reports variable metadata without values.\",\n \"title\": \"HydrogenEnvPullResult\",\n \"definitions\": {\n \"Environment\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/HydrogenStorefrontEnvironment\\\\/\\\\d+$\",\n \"description\": \"A Shopify HydrogenStorefrontEnvironment GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"handle\": {\n \"type\": \"string\"\n },\n \"branch\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Upstream environment type; known values are PREVIEW, PRODUCTION, CUSTOM.\"\n },\n \"url\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"gid\",\n \"name\",\n \"handle\",\n \"branch\",\n \"createdAt\",\n \"type\",\n \"url\"\n ],\n \"additionalProperties\": false\n },\n \"Variable\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"The decimal HydrogenStorefrontEnvironmentVariable ID, not a GID.\"\n },\n \"isSecret\": {\n \"type\": \"boolean\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Metadata only: variable spelling is preserved and values are never included. Unknown metadata is omitted.\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
9876
10832
  "flags": {
9877
10833
  "json-schema": {
9878
10834
  "description": "Print the command's JSON schemas.",
@@ -9881,6 +10837,38 @@
9881
10837
  "allowNo": false,
9882
10838
  "type": "boolean"
9883
10839
  },
10840
+ "no-input": {
10841
+ "description": "Disable interactive prompts and browser authentication.",
10842
+ "env": "SHOPIFY_FLAG_NO_INPUT",
10843
+ "name": "no-input",
10844
+ "allowNo": false,
10845
+ "type": "boolean"
10846
+ },
10847
+ "no-color": {
10848
+ "description": "Disable color output.",
10849
+ "env": "SHOPIFY_FLAG_NO_COLOR",
10850
+ "hidden": false,
10851
+ "name": "no-color",
10852
+ "allowNo": false,
10853
+ "type": "boolean"
10854
+ },
10855
+ "verbose": {
10856
+ "description": "Increase the verbosity of the output. May include sensitive data.",
10857
+ "env": "SHOPIFY_FLAG_VERBOSE",
10858
+ "hidden": false,
10859
+ "name": "verbose",
10860
+ "allowNo": false,
10861
+ "type": "boolean"
10862
+ },
10863
+ "json": {
10864
+ "char": "j",
10865
+ "description": "Output the result as JSON. Automatically disables color output.",
10866
+ "env": "SHOPIFY_FLAG_JSON",
10867
+ "hidden": false,
10868
+ "name": "json",
10869
+ "allowNo": false,
10870
+ "type": "boolean"
10871
+ },
9884
10872
  "env": {
9885
10873
  "description": "Specifies the environment to perform the operation using its handle. Fetch the handle using the `env list` command.",
9886
10874
  "exclusive": [
@@ -9943,7 +10931,7 @@
9943
10931
  "hydrogen:env:push": {
9944
10932
  "aliases": [],
9945
10933
  "args": {},
9946
- "description": "Push environment variables from the local .env file to your linked Hydrogen storefront.",
10934
+ "description": "Push environment variables from the local .env file to your linked Hydrogen storefront.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenEnvPushResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"cancelled\"\n ]\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"wouldChange\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the compared local and remote variables differ, excluding protected variables.\"\n },\n \"dryRun\": {\n \"type\": \"boolean\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"environment\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Environment\"\n },\n {\n \"type\": \"null\"\n }\n ]\n },\n \"variables\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/Variable\"\n }\n },\n \"skipped\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/Variable\"\n }\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"wouldChange\",\n \"dryRun\",\n \"path\",\n \"environment\",\n \"variables\",\n \"skipped\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenEnvPushResult\",\n \"definitions\": {\n \"Environment\": {\n \"type\": \"object\",\n \"properties\": {\n \"gid\": {\n \"type\": \"string\",\n \"pattern\": \"^gid:\\\\/\\\\/shopify\\\\/HydrogenStorefrontEnvironment\\\\/\\\\d+$\",\n \"description\": \"A Shopify HydrogenStorefrontEnvironment GID.\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"handle\": {\n \"type\": \"string\"\n },\n \"branch\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Upstream environment type; known values are PREVIEW, PRODUCTION, CUSTOM.\"\n },\n \"url\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"gid\",\n \"name\",\n \"handle\",\n \"branch\",\n \"createdAt\",\n \"type\",\n \"url\"\n ],\n \"additionalProperties\": false\n },\n \"Variable\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\",\n \"pattern\": \"^\\\\d+$\",\n \"description\": \"The decimal HydrogenStorefrontEnvironmentVariable ID, not a GID.\"\n },\n \"isSecret\": {\n \"type\": \"boolean\"\n },\n \"readOnly\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Metadata only: variable spelling is preserved and values are never included. Unknown metadata is omitted.\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
9947
10935
  "flags": {
9948
10936
  "json-schema": {
9949
10937
  "description": "Print the command's JSON schemas.",
@@ -9952,6 +10940,38 @@
9952
10940
  "allowNo": false,
9953
10941
  "type": "boolean"
9954
10942
  },
10943
+ "no-input": {
10944
+ "description": "Disable interactive prompts and browser authentication.",
10945
+ "env": "SHOPIFY_FLAG_NO_INPUT",
10946
+ "name": "no-input",
10947
+ "allowNo": false,
10948
+ "type": "boolean"
10949
+ },
10950
+ "no-color": {
10951
+ "description": "Disable color output.",
10952
+ "env": "SHOPIFY_FLAG_NO_COLOR",
10953
+ "hidden": false,
10954
+ "name": "no-color",
10955
+ "allowNo": false,
10956
+ "type": "boolean"
10957
+ },
10958
+ "verbose": {
10959
+ "description": "Increase the verbosity of the output. May include sensitive data.",
10960
+ "env": "SHOPIFY_FLAG_VERBOSE",
10961
+ "hidden": false,
10962
+ "name": "verbose",
10963
+ "allowNo": false,
10964
+ "type": "boolean"
10965
+ },
10966
+ "json": {
10967
+ "char": "j",
10968
+ "description": "Output the result as JSON. Automatically disables color output.",
10969
+ "env": "SHOPIFY_FLAG_JSON",
10970
+ "hidden": false,
10971
+ "name": "json",
10972
+ "allowNo": false,
10973
+ "type": "boolean"
10974
+ },
9955
10975
  "env": {
9956
10976
  "description": "Specifies the environment to perform the operation using its handle. Fetch the handle using the `env list` command.",
9957
10977
  "exclusive": [
@@ -10006,6 +11026,7 @@
10006
11026
  "pluginType": "core",
10007
11027
  "strict": true,
10008
11028
  "enableJsonFlag": false,
11029
+ "descriptionWithMarkdown": "Push environment variables from the local .env file to your linked Hydrogen storefront.",
10009
11030
  "customPluginName": "@shopify/cli-hydrogen"
10010
11031
  },
10011
11032
  "hydrogen:generate:route": {
@@ -10031,7 +11052,7 @@
10031
11052
  "required": true
10032
11053
  }
10033
11054
  },
10034
- "description": "Generates a standard Shopify route.",
11055
+ "description": "Generates a set of default routes from the starter template.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenGenerateRoutesResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"skipped\"\n ]\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"routes\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/Route\"\n }\n },\n \"routeGroups\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"isTypescript\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"routes\",\n \"routeGroups\",\n \"isTypescript\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenGenerateRoutesResult\",\n \"definitions\": {\n \"Route\": {\n \"type\": \"object\",\n \"properties\": {\n \"sourceRoute\": {\n \"type\": \"string\"\n },\n \"destinationRoute\": {\n \"type\": \"string\"\n },\n \"operation\": {\n \"type\": \"string\",\n \"enum\": [\n \"created\",\n \"skipped\",\n \"replaced\"\n ]\n },\n \"skipReason\": {\n \"type\": \"string\",\n \"enum\": [\n \"declined\",\n \"exists\"\n ]\n }\n },\n \"required\": [\n \"sourceRoute\",\n \"destinationRoute\",\n \"operation\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
10035
11056
  "flags": {
10036
11057
  "json-schema": {
10037
11058
  "description": "Print the command's JSON schemas.",
@@ -10040,6 +11061,38 @@
10040
11061
  "allowNo": false,
10041
11062
  "type": "boolean"
10042
11063
  },
11064
+ "no-input": {
11065
+ "description": "Disable interactive prompts and browser authentication.",
11066
+ "env": "SHOPIFY_FLAG_NO_INPUT",
11067
+ "name": "no-input",
11068
+ "allowNo": false,
11069
+ "type": "boolean"
11070
+ },
11071
+ "no-color": {
11072
+ "description": "Disable color output.",
11073
+ "env": "SHOPIFY_FLAG_NO_COLOR",
11074
+ "hidden": false,
11075
+ "name": "no-color",
11076
+ "allowNo": false,
11077
+ "type": "boolean"
11078
+ },
11079
+ "verbose": {
11080
+ "description": "Increase the verbosity of the output. May include sensitive data.",
11081
+ "env": "SHOPIFY_FLAG_VERBOSE",
11082
+ "hidden": false,
11083
+ "name": "verbose",
11084
+ "allowNo": false,
11085
+ "type": "boolean"
11086
+ },
11087
+ "json": {
11088
+ "char": "j",
11089
+ "description": "Output the result as JSON. Automatically disables color output.",
11090
+ "env": "SHOPIFY_FLAG_JSON",
11091
+ "hidden": false,
11092
+ "name": "json",
11093
+ "allowNo": false,
11094
+ "type": "boolean"
11095
+ },
10043
11096
  "adapter": {
10044
11097
  "description": "React Router adapter used in the route. The default is `react-router`.",
10045
11098
  "env": "SHOPIFY_HYDROGEN_FLAG_ADAPTER",
@@ -10094,7 +11147,7 @@
10094
11147
  "hydrogen:generate:routes": {
10095
11148
  "aliases": [],
10096
11149
  "args": {},
10097
- "description": "Generates all supported standard shopify routes.",
11150
+ "description": "Generates all supported standard shopify routes.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenGenerateRoutesResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"skipped\"\n ]\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"routes\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/Route\"\n }\n },\n \"routeGroups\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"isTypescript\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"routes\",\n \"routeGroups\",\n \"isTypescript\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenGenerateRoutesResult\",\n \"definitions\": {\n \"Route\": {\n \"type\": \"object\",\n \"properties\": {\n \"sourceRoute\": {\n \"type\": \"string\"\n },\n \"destinationRoute\": {\n \"type\": \"string\"\n },\n \"operation\": {\n \"type\": \"string\",\n \"enum\": [\n \"created\",\n \"skipped\",\n \"replaced\"\n ]\n },\n \"skipReason\": {\n \"type\": \"string\",\n \"enum\": [\n \"declined\",\n \"exists\"\n ]\n }\n },\n \"required\": [\n \"sourceRoute\",\n \"destinationRoute\",\n \"operation\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
10098
11151
  "flags": {
10099
11152
  "json-schema": {
10100
11153
  "description": "Print the command's JSON schemas.",
@@ -10103,6 +11156,38 @@
10103
11156
  "allowNo": false,
10104
11157
  "type": "boolean"
10105
11158
  },
11159
+ "no-input": {
11160
+ "description": "Disable interactive prompts and browser authentication.",
11161
+ "env": "SHOPIFY_FLAG_NO_INPUT",
11162
+ "name": "no-input",
11163
+ "allowNo": false,
11164
+ "type": "boolean"
11165
+ },
11166
+ "no-color": {
11167
+ "description": "Disable color output.",
11168
+ "env": "SHOPIFY_FLAG_NO_COLOR",
11169
+ "hidden": false,
11170
+ "name": "no-color",
11171
+ "allowNo": false,
11172
+ "type": "boolean"
11173
+ },
11174
+ "verbose": {
11175
+ "description": "Increase the verbosity of the output. May include sensitive data.",
11176
+ "env": "SHOPIFY_FLAG_VERBOSE",
11177
+ "hidden": false,
11178
+ "name": "verbose",
11179
+ "allowNo": false,
11180
+ "type": "boolean"
11181
+ },
11182
+ "json": {
11183
+ "char": "j",
11184
+ "description": "Output the result as JSON. Automatically disables color output.",
11185
+ "env": "SHOPIFY_FLAG_JSON",
11186
+ "hidden": false,
11187
+ "name": "json",
11188
+ "allowNo": false,
11189
+ "type": "boolean"
11190
+ },
10106
11191
  "adapter": {
10107
11192
  "description": "React Router adapter used in the route. The default is `react-router`.",
10108
11193
  "env": "SHOPIFY_HYDROGEN_FLAG_ADAPTER",
@@ -10151,6 +11236,7 @@
10151
11236
  "pluginType": "core",
10152
11237
  "strict": true,
10153
11238
  "enableJsonFlag": false,
11239
+ "descriptionWithMarkdown": "Generates all supported standard shopify routes.",
10154
11240
  "customPluginName": "@shopify/cli-hydrogen"
10155
11241
  },
10156
11242
  "hydrogen:setup:css": {
@@ -10167,7 +11253,7 @@
10167
11253
  ]
10168
11254
  }
10169
11255
  },
10170
- "description": "Setup CSS strategies for your project.",
11256
+ "description": "Adds support for certain CSS strategies to your project.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenSetupCssResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"success\",\n \"cancelled\"\n ]\n },\n \"changed\": {\n \"type\": \"boolean\"\n },\n \"directory\": {\n \"$ref\": \"#/definitions/AbsolutePath\"\n },\n \"strategy\": {\n \"type\": \"string\",\n \"enum\": [\n \"tailwind\",\n \"vanilla-extract\",\n \"css-modules\",\n \"postcss\"\n ]\n },\n \"filePaths\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/AbsolutePath\"\n }\n },\n \"dependenciesInstalled\": {\n \"type\": \"boolean\"\n },\n \"needsNpmReinstall\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"directory\",\n \"strategy\",\n \"filePaths\",\n \"dependenciesInstalled\",\n \"needsNpmReinstall\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenSetupCssResult\",\n \"definitions\": {\n \"AbsolutePath\": {\n \"type\": \"string\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
10171
11257
  "flags": {
10172
11258
  "json-schema": {
10173
11259
  "description": "Print the command's JSON schemas.",
@@ -10176,6 +11262,38 @@
10176
11262
  "allowNo": false,
10177
11263
  "type": "boolean"
10178
11264
  },
11265
+ "no-input": {
11266
+ "description": "Disable interactive prompts and browser authentication.",
11267
+ "env": "SHOPIFY_FLAG_NO_INPUT",
11268
+ "name": "no-input",
11269
+ "allowNo": false,
11270
+ "type": "boolean"
11271
+ },
11272
+ "no-color": {
11273
+ "description": "Disable color output.",
11274
+ "env": "SHOPIFY_FLAG_NO_COLOR",
11275
+ "hidden": false,
11276
+ "name": "no-color",
11277
+ "allowNo": false,
11278
+ "type": "boolean"
11279
+ },
11280
+ "verbose": {
11281
+ "description": "Increase the verbosity of the output. May include sensitive data.",
11282
+ "env": "SHOPIFY_FLAG_VERBOSE",
11283
+ "hidden": false,
11284
+ "name": "verbose",
11285
+ "allowNo": false,
11286
+ "type": "boolean"
11287
+ },
11288
+ "json": {
11289
+ "char": "j",
11290
+ "description": "Output the result as JSON. Automatically disables color output.",
11291
+ "env": "SHOPIFY_FLAG_JSON",
11292
+ "hidden": false,
11293
+ "name": "json",
11294
+ "allowNo": false,
11295
+ "type": "boolean"
11296
+ },
10179
11297
  "path": {
10180
11298
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
10181
11299
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -10224,7 +11342,7 @@
10224
11342
  ]
10225
11343
  }
10226
11344
  },
10227
- "description": "Setup support for multiple markets in your project.",
11345
+ "description": "Adds support for multiple \"markets\" (https://shopify.dev/docs/custom-storefronts/hydrogen/markets) to your project by using the URL structure.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenSetupMarketsResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"boolean\",\n \"const\": true\n },\n \"directory\": {\n \"$ref\": \"#/definitions/AbsolutePath\"\n },\n \"strategy\": {\n \"type\": \"string\",\n \"enum\": [\n \"subfolders\",\n \"domains\",\n \"subdomains\"\n ]\n },\n \"serverPath\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/AbsolutePath\"\n },\n {\n \"type\": \"null\"\n }\n ]\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"directory\",\n \"strategy\",\n \"serverPath\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenSetupMarketsResult\",\n \"definitions\": {\n \"AbsolutePath\": {\n \"type\": \"string\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
10228
11346
  "flags": {
10229
11347
  "json-schema": {
10230
11348
  "description": "Print the command's JSON schemas.",
@@ -10233,6 +11351,38 @@
10233
11351
  "allowNo": false,
10234
11352
  "type": "boolean"
10235
11353
  },
11354
+ "no-input": {
11355
+ "description": "Disable interactive prompts and browser authentication.",
11356
+ "env": "SHOPIFY_FLAG_NO_INPUT",
11357
+ "name": "no-input",
11358
+ "allowNo": false,
11359
+ "type": "boolean"
11360
+ },
11361
+ "no-color": {
11362
+ "description": "Disable color output.",
11363
+ "env": "SHOPIFY_FLAG_NO_COLOR",
11364
+ "hidden": false,
11365
+ "name": "no-color",
11366
+ "allowNo": false,
11367
+ "type": "boolean"
11368
+ },
11369
+ "verbose": {
11370
+ "description": "Increase the verbosity of the output. May include sensitive data.",
11371
+ "env": "SHOPIFY_FLAG_VERBOSE",
11372
+ "hidden": false,
11373
+ "name": "verbose",
11374
+ "allowNo": false,
11375
+ "type": "boolean"
11376
+ },
11377
+ "json": {
11378
+ "char": "j",
11379
+ "description": "Output the result as JSON. Automatically disables color output.",
11380
+ "env": "SHOPIFY_FLAG_JSON",
11381
+ "hidden": false,
11382
+ "name": "json",
11383
+ "allowNo": false,
11384
+ "type": "boolean"
11385
+ },
10236
11386
  "path": {
10237
11387
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
10238
11388
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -10256,7 +11406,7 @@
10256
11406
  "hydrogen:setup:vite": {
10257
11407
  "aliases": [],
10258
11408
  "args": {},
10259
- "description": "EXPERIMENTAL: Upgrades the project to use Vite.",
11409
+ "description": "EXPERIMENTAL: Upgrades the project to use Vite.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `HydrogenSetupViteResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"boolean\",\n \"const\": true\n },\n \"directory\": {\n \"$ref\": \"#/definitions/AbsolutePath\"\n },\n \"viteConfigPath\": {\n \"$ref\": \"#/definitions/AbsolutePath\"\n },\n \"serverPath\": {\n \"$ref\": \"#/definitions/AbsolutePath\"\n },\n \"dependenciesInstalled\": {\n \"type\": \"boolean\",\n \"const\": true\n },\n \"needsMdxSetup\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"directory\",\n \"viteConfigPath\",\n \"serverPath\",\n \"dependenciesInstalled\",\n \"needsMdxSetup\"\n ],\n \"additionalProperties\": false,\n \"title\": \"HydrogenSetupViteResult\",\n \"definitions\": {\n \"AbsolutePath\": {\n \"type\": \"string\"\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
10260
11410
  "flags": {
10261
11411
  "json-schema": {
10262
11412
  "description": "Print the command's JSON schemas.",
@@ -10265,6 +11415,38 @@
10265
11415
  "allowNo": false,
10266
11416
  "type": "boolean"
10267
11417
  },
11418
+ "no-input": {
11419
+ "description": "Disable interactive prompts and browser authentication.",
11420
+ "env": "SHOPIFY_FLAG_NO_INPUT",
11421
+ "name": "no-input",
11422
+ "allowNo": false,
11423
+ "type": "boolean"
11424
+ },
11425
+ "no-color": {
11426
+ "description": "Disable color output.",
11427
+ "env": "SHOPIFY_FLAG_NO_COLOR",
11428
+ "hidden": false,
11429
+ "name": "no-color",
11430
+ "allowNo": false,
11431
+ "type": "boolean"
11432
+ },
11433
+ "verbose": {
11434
+ "description": "Increase the verbosity of the output. May include sensitive data.",
11435
+ "env": "SHOPIFY_FLAG_VERBOSE",
11436
+ "hidden": false,
11437
+ "name": "verbose",
11438
+ "allowNo": false,
11439
+ "type": "boolean"
11440
+ },
11441
+ "json": {
11442
+ "char": "j",
11443
+ "description": "Output the result as JSON. Automatically disables color output.",
11444
+ "env": "SHOPIFY_FLAG_JSON",
11445
+ "hidden": false,
11446
+ "name": "json",
11447
+ "allowNo": false,
11448
+ "type": "boolean"
11449
+ },
10268
11450
  "path": {
10269
11451
  "description": "The path to the directory of the Hydrogen storefront. Defaults to the current directory where the command is run.",
10270
11452
  "env": "SHOPIFY_HYDROGEN_FLAG_PATH",
@@ -10282,6 +11464,7 @@
10282
11464
  "pluginType": "core",
10283
11465
  "strict": true,
10284
11466
  "enableJsonFlag": false,
11467
+ "descriptionWithMarkdown": "EXPERIMENTAL: Upgrades the project to use Vite.",
10285
11468
  "customPluginName": "@shopify/cli-hydrogen"
10286
11469
  },
10287
11470
  "store:auth:list": {
@@ -11102,7 +12285,7 @@
11102
12285
  "store:execute": {
11103
12286
  "aliases": [],
11104
12287
  "args": {},
11105
- "description": "Executes an Admin API GraphQL query or mutation on the specified store using previously stored app authentication.\n\nRun `shopify store auth` first to create stored auth for the store.\n\nMutations are disabled by default. Re-run with `--allow-mutations` if you intend to modify store data.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `StoreExecuteResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {}\n },\n {\n \"type\": \"null\"\n }\n ],\n \"title\": \"StoreExecuteResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
12288
+ "description": "Executes an Admin API GraphQL query or mutation on the specified store using previously stored app authentication.\n\nRun `shopify store auth` first to create stored auth for the store.\n\nMutations are disabled by default. Re-run with `--allow-mutations` if you intend to modify store data.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `StoreExecuteResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"data\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {}\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"GraphQL response data, preserving query fields and aliases.\"\n },\n \"extensions\": {\n \"type\": \"object\",\n \"additionalProperties\": {},\n \"description\": \"Response-level GraphQL metadata, when returned by the API.\"\n }\n },\n \"required\": [\n \"data\"\n ],\n \"additionalProperties\": false,\n \"title\": \"StoreExecuteResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
11106
12289
  "examples": [
11107
12290
  "<%= config.bin %> <%= command.id %> --store shop.myshopify.com --query \"query { shop { name } }\"",
11108
12291
  "<%= config.bin %> <%= command.id %> --store shop.myshopify.com --query-file ./operation.graphql --variables '{\"id\":\"gid://shopify/Product/1\"}'",
@@ -11618,7 +12801,7 @@
11618
12801
  "upgrade": {
11619
12802
  "aliases": [],
11620
12803
  "args": {},
11621
- "description": "Upgrades Shopify CLI using your package manager.",
12804
+ "description": "Upgrades Shopify CLI using your package manager.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `UpgradeResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the verified installed version differs from previousVersion.\"\n },\n \"scope\": {\n \"type\": \"string\",\n \"const\": \"global\"\n },\n \"previousVersion\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"version\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"packageManager\": {\n \"type\": \"string\",\n \"enum\": [\n \"npm\",\n \"pnpm\",\n \"yarn\",\n \"bun\",\n \"homebrew\"\n ]\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"scope\",\n \"previousVersion\",\n \"version\",\n \"packageManager\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"success\"\n },\n \"changed\": {\n \"type\": \"null\",\n \"description\": \"Null because local dependency changes and installed versions are not verified.\"\n },\n \"scope\": {\n \"type\": \"string\",\n \"const\": \"local\"\n },\n \"directory\": {\n \"type\": \"string\"\n },\n \"previousVersion\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"availableVersion\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"minLength\": 1\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"The available registry version, or null when unknown.\"\n },\n \"packages\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"minLength\": 1\n }\n }\n },\n \"required\": [\n \"status\",\n \"changed\",\n \"scope\",\n \"directory\",\n \"previousVersion\",\n \"availableVersion\",\n \"packages\"\n ],\n \"additionalProperties\": false\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"const\": \"skipped\"\n },\n \"reason\": {\n \"type\": \"string\",\n \"enum\": [\n \"development\",\n \"local-autoupgrade\",\n \"dependency-not-found\"\n ]\n },\n \"scope\": {\n \"type\": \"string\",\n \"enum\": [\n \"global\",\n \"local\"\n ]\n }\n },\n \"required\": [\n \"status\",\n \"reason\",\n \"scope\"\n ],\n \"additionalProperties\": false\n }\n ],\n \"title\": \"UpgradeResult\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
11622
12805
  "flags": {
11623
12806
  "json-schema": {
11624
12807
  "description": "Print the command's JSON schemas.",
@@ -11626,6 +12809,38 @@
11626
12809
  "name": "json-schema",
11627
12810
  "allowNo": false,
11628
12811
  "type": "boolean"
12812
+ },
12813
+ "no-input": {
12814
+ "description": "Disable interactive prompts and browser authentication.",
12815
+ "env": "SHOPIFY_FLAG_NO_INPUT",
12816
+ "name": "no-input",
12817
+ "allowNo": false,
12818
+ "type": "boolean"
12819
+ },
12820
+ "no-color": {
12821
+ "description": "Disable color output.",
12822
+ "env": "SHOPIFY_FLAG_NO_COLOR",
12823
+ "hidden": false,
12824
+ "name": "no-color",
12825
+ "allowNo": false,
12826
+ "type": "boolean"
12827
+ },
12828
+ "verbose": {
12829
+ "description": "Increase the verbosity of the output. May include sensitive data.",
12830
+ "env": "SHOPIFY_FLAG_VERBOSE",
12831
+ "hidden": false,
12832
+ "name": "verbose",
12833
+ "allowNo": false,
12834
+ "type": "boolean"
12835
+ },
12836
+ "json": {
12837
+ "char": "j",
12838
+ "description": "Output the result as JSON. Automatically disables color output.",
12839
+ "env": "SHOPIFY_FLAG_JSON",
12840
+ "hidden": false,
12841
+ "name": "json",
12842
+ "allowNo": false,
12843
+ "type": "boolean"
11629
12844
  }
11630
12845
  },
11631
12846
  "hasDynamicHelp": false,
@@ -12114,11 +13329,12 @@
12114
13329
  "doc:fetch": {
12115
13330
  "aliases": [],
12116
13331
  "args": {},
12117
- "description": "Download a complete document from shopify.dev. Every page on shopify.dev has a Markdown version, and that is what this tool returns. Use this to pull an entire document verbatim — for example, a set of instructions an agent follows like a centrally-served skill. Pass `--language` for the language of the app you are building so code examples match your stack. For finding the relevant pieces of content across shopify.dev instead, use `doc search`.",
13332
+ "description": "Download a complete document from shopify.dev. Every page on shopify.dev has a Markdown version, and that is what this tool returns. Use this to pull an entire document verbatim — for example, a set of instructions an agent follows like a centrally-served skill. Pass `--language` for the language of the app you are building so code examples match your stack. For finding the relevant pieces of content across shopify.dev instead, use `doc search`.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `DocFetchResult` schema.\n\n```json\n{\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"document\": {\n \"$ref\": \"#/definitions/Document\"\n }\n },\n \"required\": [\n \"document\"\n ],\n \"additionalProperties\": false\n },\n {\n \"$ref\": \"#/definitions/DocumentFile\"\n }\n ],\n \"title\": \"DocFetchResult\",\n \"definitions\": {\n \"Document\": {\n \"type\": \"object\",\n \"properties\": {\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri\",\n \"description\": \"The requested shopify.dev document URL.\"\n },\n \"content\": {\n \"type\": \"string\",\n \"description\": \"The document in Markdown, with the requested language filter applied.\"\n }\n },\n \"required\": [\n \"url\",\n \"content\"\n ],\n \"additionalProperties\": false\n },\n \"DocumentFile\": {\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\",\n \"pattern\": \"^(?:\\\\/|[A-Za-z]:[\\\\\\\\/]|\\\\\\\\\\\\\\\\)\",\n \"description\": \"The absolute native path of the written file.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"markdown\",\n \"description\": \"The file contains the original Markdown document, not a JSON wrapper.\"\n }\n },\n \"required\": [\n \"path\",\n \"format\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
12118
13333
  "examples": [
12119
13334
  "# fetch the Markdown version of a Shopify.dev page\nshopify doc fetch --url https://shopify.dev/docs/api/shopify-cli",
12120
13335
  "# filter code examples to the language of the app you are building\nshopify doc fetch --url https://shopify.dev/docs/api/shopify-cli --language ruby",
12121
- "# save the document to a file instead of printing it\nshopify doc fetch --url https://shopify.dev/docs/api/shopify-cli --output docs/shopify-cli.md"
13336
+ "# save the document to a file instead of printing it\nshopify doc fetch --url https://shopify.dev/docs/api/shopify-cli --output docs/shopify-cli.md",
13337
+ "# return a typed document as JSON\nshopify doc fetch --url https://shopify.dev/docs/api/shopify-cli --json"
12122
13338
  ],
12123
13339
  "flags": {
12124
13340
  "json-schema": {
@@ -12151,6 +13367,15 @@
12151
13367
  "allowNo": false,
12152
13368
  "type": "boolean"
12153
13369
  },
13370
+ "json": {
13371
+ "char": "j",
13372
+ "description": "Output the result as JSON. Automatically disables color output.",
13373
+ "env": "SHOPIFY_FLAG_JSON",
13374
+ "hidden": false,
13375
+ "name": "json",
13376
+ "allowNo": false,
13377
+ "type": "boolean"
13378
+ },
12154
13379
  "url": {
12155
13380
  "description": "The shopify.dev URL to fetch.",
12156
13381
  "env": "SHOPIFY_FLAG_URL",
@@ -12181,7 +13406,7 @@
12181
13406
  "type": "option"
12182
13407
  },
12183
13408
  "output": {
12184
- "description": "Write the document to this file path instead of printing it to stdout.",
13409
+ "description": "Write the document to this file path instead of printing it to stdout. With --json, stdout contains the absolute path and Markdown format of the written file.",
12185
13410
  "env": "SHOPIFY_FLAG_OUTPUT",
12186
13411
  "name": "output",
12187
13412
  "hasDynamicHelp": false,
@@ -12196,14 +13421,16 @@
12196
13421
  "pluginName": "shopify",
12197
13422
  "pluginType": "core",
12198
13423
  "strict": true,
12199
- "enableJsonFlag": false
13424
+ "enableJsonFlag": false,
13425
+ "descriptionWithMarkdown": "Download a complete document from shopify.dev. Every page on shopify.dev has a Markdown version, and that is what this tool returns. Use this to pull an entire document verbatim — for example, a set of instructions an agent follows like a centrally-served skill. Pass `--language` for the language of the app you are building so code examples match your stack. For finding the relevant pieces of content across shopify.dev instead, use `doc search`."
12200
13426
  },
12201
13427
  "doc:search": {
12202
13428
  "aliases": [],
12203
13429
  "args": {},
12204
- "description": "Query the shopify.dev vector store and print the most relevant documentation chunks as JSON. Best for programmatic discovery — surfacing the relevant pieces of documentation for a topic, rather than retrieving a whole document. To download a full document verbatim, use `doc fetch`.",
13430
+ "description": "Query the shopify.dev vector store and print the most relevant documentation chunks as JSON. Best for programmatic discovery — surfacing the relevant pieces of documentation for a topic, rather than retrieving a whole document. To download a full document verbatim, use `doc fetch`.\n\nUse `--json-schema` to print the result, error, and event schemas.\n\nOutput from `--json` conforms to the `DocSearchResult` schema.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"results\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/DocumentationSearchEntry\"\n },\n \"description\": \"The top matching chunks from one search request.\"\n },\n \"pageInfo\": {\n \"$ref\": \"#/definitions/PageInfo\"\n }\n },\n \"required\": [\n \"results\",\n \"pageInfo\"\n ],\n \"additionalProperties\": false,\n \"title\": \"DocSearchResult\",\n \"definitions\": {\n \"DocumentationSearchEntry\": {\n \"type\": \"object\",\n \"properties\": {\n \"score\": {\n \"type\": \"number\",\n \"description\": \"The relevance score returned by shopify.dev.\"\n },\n \"content\": {\n \"type\": \"string\",\n \"description\": \"The matching documentation chunk.\"\n },\n \"url\": {\n \"type\": \"string\",\n \"format\": \"uri\",\n \"description\": \"The URL of the matching document.\"\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"The title of the matching document.\"\n },\n \"domain\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"The documentation domain, or null when unavailable.\"\n }\n },\n \"required\": [\n \"score\",\n \"content\",\n \"url\",\n \"title\",\n \"domain\"\n ],\n \"additionalProperties\": false\n },\n \"PageInfo\": {\n \"type\": \"object\",\n \"properties\": {\n \"hasNextPage\": {\n \"type\": [\n \"boolean\",\n \"null\"\n ],\n \"description\": \"Whether more results are available, or null when unknown.\"\n }\n },\n \"required\": [\n \"hasNextPage\"\n ],\n \"additionalProperties\": false\n }\n },\n \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n}\n```",
12205
13431
  "examples": [
12206
- "# search shopify.dev for a topic\n shopify doc search --query \"subscribe to webhooks\"\n\n # narrow the search to a specific API and version\n shopify doc search --query \"create a product\" --api-name admin --api-version latest\n "
13432
+ "# search shopify.dev for a topic\n shopify doc search --query \"subscribe to webhooks\"\n\n # narrow the search to a specific API and version\n shopify doc search --query \"create a product\" --api-name admin --api-version latest",
13433
+ "# return typed documentation results as a JSON object\nshopify doc search --query \"subscribe to webhooks\" --json"
12207
13434
  ],
12208
13435
  "flags": {
12209
13436
  "json-schema": {
@@ -12236,6 +13463,15 @@
12236
13463
  "allowNo": false,
12237
13464
  "type": "boolean"
12238
13465
  },
13466
+ "json": {
13467
+ "char": "j",
13468
+ "description": "Output the result as JSON. Automatically disables color output.",
13469
+ "env": "SHOPIFY_FLAG_JSON",
13470
+ "hidden": false,
13471
+ "name": "json",
13472
+ "allowNo": false,
13473
+ "type": "boolean"
13474
+ },
12239
13475
  "query": {
12240
13476
  "description": "The search query.",
12241
13477
  "env": "SHOPIFY_FLAG_QUERY",
@@ -12269,7 +13505,8 @@
12269
13505
  "pluginName": "shopify",
12270
13506
  "pluginType": "core",
12271
13507
  "strict": true,
12272
- "enableJsonFlag": false
13508
+ "enableJsonFlag": false,
13509
+ "descriptionWithMarkdown": "Query the shopify.dev vector store and print the most relevant documentation chunks as JSON. Best for programmatic discovery — surfacing the relevant pieces of documentation for a topic, rather than retrieving a whole document. To download a full document verbatim, use `doc fetch`."
12273
13510
  },
12274
13511
  "docs:generate": {
12275
13512
  "aliases": [],
@@ -12540,5 +13777,5 @@
12540
13777
  "descriptionWithMarkdown": "Check whether auto-upgrade is enabled, disabled, or not yet configured.\n\n When auto-upgrade is enabled, Shopify CLI automatically updates to the latest version after each command.\n\n Run `shopify config autoupgrade on` or `shopify config autoupgrade off` to configure it.\n"
12541
13778
  }
12542
13779
  },
12543
- "version": "4.9.4"
13780
+ "version": "5.0.0"
12544
13781
  }