@shopify/cli 4.8.3 → 4.8.5

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 (308) hide show
  1. package/dist/analytics-4D5FCVMV.js +1 -0
  2. package/dist/{analytics-VCJLTHBI.js → analytics-XRYJEPWC.js} +1 -1
  3. package/dist/bootstrap.js +1 -1
  4. package/dist/{chunk-BR5CFKIN.js → chunk-2IZROVCY.js} +1 -1
  5. package/dist/{chunk-QIGFVVLB.js → chunk-2JM3XHTQ.js} +1 -1
  6. package/dist/{chunk-6NO44HAQ.js → chunk-2SOA4M4G.js} +1 -1
  7. package/dist/{chunk-ERMLZF2C.js → chunk-2WNF5BX4.js} +1 -1
  8. package/dist/{chunk-QCMGYBFD.js → chunk-2Z52XJQG.js} +1 -1
  9. package/dist/chunk-34PQ6LJC.js +1 -0
  10. package/dist/{chunk-LUSG2EHB.js → chunk-3CKUOG4B.js} +1 -1
  11. package/dist/{chunk-KLI5Z5RC.js → chunk-3NW372KT.js} +1 -1
  12. package/dist/{chunk-G52SCW6W.js → chunk-4DIR65KL.js} +1 -1
  13. package/dist/{chunk-QGYETVYA.js → chunk-4JLOCGTK.js} +1 -1
  14. package/dist/{chunk-RVEAQUUF.js → chunk-4JU7N2OF.js} +1 -1
  15. package/dist/{chunk-34YS3IUO.js → chunk-4NZ465W4.js} +1 -1
  16. package/dist/{chunk-DE3HBSUU.js → chunk-4SXHXMK6.js} +1 -1
  17. package/dist/{chunk-46ISGKTW.js → chunk-4UAJ6ULU.js} +1 -1
  18. package/dist/{chunk-HHWZV7CG.js → chunk-4UD2LW4O.js} +1 -1
  19. package/dist/{chunk-5YSO5HRH.js → chunk-4XE6E4DC.js} +1 -1
  20. package/dist/chunk-5EME57E6.js +7 -0
  21. package/dist/chunk-5GUXN2RU.js +6 -0
  22. package/dist/{chunk-C2AA5NVP.js → chunk-5N33O2RV.js} +1 -1
  23. package/dist/{chunk-2E3JUVRC.js → chunk-5PAPCPUM.js} +1 -1
  24. package/dist/{chunk-3D3IYIZ7.js → chunk-5U24BORP.js} +1 -1
  25. package/dist/{chunk-FYVFGKCJ.js → chunk-6ARAJULJ.js} +1 -1
  26. package/dist/{chunk-34EOYW4N.js → chunk-6ICRPFG4.js} +1 -1
  27. package/dist/{chunk-VCJ252CK.js → chunk-6IOVTFAH.js} +1 -1
  28. package/dist/{chunk-I44E5KLI.js → chunk-6LNTC6EK.js} +1 -1
  29. package/dist/{chunk-UU3VUYVX.js → chunk-6QU2BHVL.js} +1 -1
  30. package/dist/{chunk-HPGQGIPA.js → chunk-6QWLOSUQ.js} +1 -1
  31. package/dist/{chunk-ALDLKZJW.js → chunk-77KSMVIO.js} +1 -1
  32. package/dist/{chunk-N34YKDEK.js → chunk-7O2KMA4J.js} +1 -1
  33. package/dist/{chunk-HG63NM4M.js → chunk-7VJPQ52S.js} +1 -1
  34. package/dist/{chunk-ZRFOMQ2L.js → chunk-7ZEVVGCH.js} +1 -1
  35. package/dist/{chunk-M7YZJWY3.js → chunk-A2BZY6TE.js} +1 -1
  36. package/dist/{chunk-ETHKJFFN.js → chunk-A5FV7HOY.js} +1 -1
  37. package/dist/{chunk-5QCSJYJ4.js → chunk-ADS7BFDG.js} +1 -1
  38. package/dist/chunk-ADUMJRRY.js +1 -0
  39. package/dist/{chunk-SLZ6UMVV.js → chunk-AEPBX4GI.js} +1 -1
  40. package/dist/{chunk-6ZGCTTAD.js → chunk-AI4SPBPV.js} +1 -1
  41. package/dist/{chunk-AU2OGZBS.js → chunk-AKETXXYD.js} +1 -1
  42. package/dist/{chunk-HZASAGTU.js → chunk-ANOCIVJ3.js} +1 -1
  43. package/dist/{chunk-2AFQC53K.js → chunk-AOPEKBDL.js} +1 -1
  44. package/dist/{chunk-SZ2V5WT6.js → chunk-BMPCDXJR.js} +1 -1
  45. package/dist/{chunk-VTKZJ6MD.js → chunk-BPJRQOHO.js} +1 -1
  46. package/dist/{chunk-CRSAEF22.js → chunk-BU6LJZG7.js} +1 -1
  47. package/dist/{chunk-PYCGZSME.js → chunk-C4UCOQUP.js} +1 -1
  48. package/dist/{chunk-DGZCOTKZ.js → chunk-CAKGQWX4.js} +1 -1
  49. package/dist/{chunk-NKSLEPE2.js → chunk-CBGDD3ZG.js} +1 -1
  50. package/dist/chunk-CUGLV7UX.js +1 -0
  51. package/dist/{chunk-6QDI53VP.js → chunk-CWSQIPY5.js} +1 -1
  52. package/dist/{chunk-6TPUTSNR.js → chunk-D34ZSTCK.js} +1 -1
  53. package/dist/{chunk-4XZJKSDD.js → chunk-D6LV5CJL.js} +1 -1
  54. package/dist/{chunk-YKHDUKFK.js → chunk-DGMHUJV3.js} +1 -1
  55. package/dist/{chunk-BV4K7JX5.js → chunk-DKAWQBTI.js} +1 -1
  56. package/dist/{chunk-RM3XC2IX.js → chunk-DPMOLROM.js} +1 -1
  57. package/dist/{chunk-WE72MX7V.js → chunk-DV7FOLG4.js} +1 -1
  58. package/dist/{chunk-BO45JVQ3.js → chunk-EBBS7VG6.js} +1 -1
  59. package/dist/{chunk-E2IUEX5H.js → chunk-EJJPVVQ2.js} +1 -1
  60. package/dist/{chunk-7W7RGEII.js → chunk-ENUN2VSC.js} +1 -1
  61. package/dist/{chunk-TWTZLWO7.js → chunk-EX7Y3BEH.js} +1 -1
  62. package/dist/{chunk-AWTBC3MC.js → chunk-F33TYJM5.js} +3 -3
  63. package/dist/{chunk-ULIXS6H7.js → chunk-FDK3NDYQ.js} +1 -1
  64. package/dist/{chunk-UCP6UA7M.js → chunk-FLV6UQRA.js} +1 -1
  65. package/dist/{chunk-LOSBZZHU.js → chunk-FTC3BXSD.js} +1 -1
  66. package/dist/{chunk-B3GLHLAQ.js → chunk-FXBQKJTS.js} +1 -1
  67. package/dist/{chunk-YSOLGBU3.js → chunk-FXWNYGIW.js} +1 -1
  68. package/dist/{chunk-FKW62ZUV.js → chunk-G5272L77.js} +1 -1
  69. package/dist/{chunk-TNYPQ2UL.js → chunk-G5QSVBYP.js} +3 -3
  70. package/dist/{chunk-GKRGXRD4.js → chunk-G6SURO6V.js} +1 -1
  71. package/dist/{chunk-CM4QZI6V.js → chunk-G7C4LBG2.js} +1 -1
  72. package/dist/{chunk-CNDB4VEM.js → chunk-GBYDMHZ3.js} +1 -1
  73. package/dist/{chunk-RIWEYVNK.js → chunk-GCJAY2XJ.js} +1 -1
  74. package/dist/{chunk-2C27YWUC.js → chunk-GR6NR5QK.js} +1 -1
  75. package/dist/{chunk-6ECS5KDX.js → chunk-GUPUXFIP.js} +1 -1
  76. package/dist/{chunk-XCTRPBWM.js → chunk-GW7IEG4G.js} +1 -1
  77. package/dist/{chunk-SYJXM2RN.js → chunk-H5MENHJ2.js} +1 -1
  78. package/dist/{chunk-LZSDOB4O.js → chunk-H6TWXT6Q.js} +1 -1
  79. package/dist/chunk-HGFCNPSN.js +1 -0
  80. package/dist/{chunk-KIPKRAUB.js → chunk-HKHGJYRC.js} +1 -1
  81. package/dist/{chunk-CSNXCRPY.js → chunk-HS3VTFW3.js} +1 -1
  82. package/dist/{chunk-CYSB5AJJ.js → chunk-HSETBDXR.js} +1 -1
  83. package/dist/{chunk-U5APMZGT.js → chunk-I6DVGPJ7.js} +1 -1
  84. package/dist/{chunk-DDWJRJWW.js → chunk-IKNCFVVX.js} +1 -1
  85. package/dist/{chunk-BAUHOB76.js → chunk-IMIPD73V.js} +1 -1
  86. package/dist/{chunk-I7XKF22Z.js → chunk-IPN5OHBY.js} +1 -1
  87. package/dist/{chunk-T5I2LEDJ.js → chunk-IYFHBTJ2.js} +1 -1
  88. package/dist/{chunk-Z6MS5OET.js → chunk-J2HBEHCX.js} +1 -1
  89. package/dist/{chunk-3DXA7B3Y.js → chunk-J774336K.js} +1 -1
  90. package/dist/{chunk-VEXW766J.js → chunk-K3OI5VDE.js} +1 -1
  91. package/dist/{chunk-O4ZMMPEP.js → chunk-K5OTE6CX.js} +1 -1
  92. package/dist/{chunk-5QNB6464.js → chunk-KB43BSFM.js} +1 -1
  93. package/dist/{chunk-KSSPT7G5.js → chunk-KDMJ2BLO.js} +12 -12
  94. package/dist/{chunk-TBC5FH2W.js → chunk-KGRDHI2A.js} +1 -1
  95. package/dist/{chunk-NS7QRCJF.js → chunk-KHRZFJHM.js} +1 -1
  96. package/dist/{chunk-SUQF2LM7.js → chunk-KNCYAIJ2.js} +1 -1
  97. package/dist/{chunk-IAURXPUJ.js → chunk-KYNXMDFU.js} +5 -5
  98. package/dist/{chunk-AURREHRU.js → chunk-L7CQQML6.js} +1 -1
  99. package/dist/{chunk-JKWKFDP7.js → chunk-LCVDLQEZ.js} +1 -1
  100. package/dist/{chunk-F4S4ITHP.js → chunk-LZZAD3FW.js} +1 -1
  101. package/dist/{chunk-HLLMMIIM.js → chunk-M2M3I63K.js} +1 -1
  102. package/dist/chunk-MFP63IUM.js +272 -0
  103. package/dist/{chunk-AHJT2Z7G.js → chunk-MMHTYLTG.js} +1 -1
  104. package/dist/{chunk-3U7O3PMX.js → chunk-MNYKIPG7.js} +1 -1
  105. package/dist/{chunk-XSFF6KEB.js → chunk-MVJSQT7V.js} +1 -1
  106. package/dist/{chunk-E767ITG2.js → chunk-NAQ7KT6L.js} +1 -1
  107. package/dist/{chunk-O2YFSYDR.js → chunk-NDAUL4H4.js} +1 -1
  108. package/dist/{chunk-RAJX2CQP.js → chunk-NDFKLPHJ.js} +1 -1
  109. package/dist/{chunk-WKC5HDMY.js → chunk-NPATN7YS.js} +1 -1
  110. package/dist/{chunk-CF3PBTFV.js → chunk-NUKSSKYR.js} +1 -1
  111. package/dist/chunk-NVNDQQN6.js +8 -0
  112. package/dist/{chunk-3X7XO4LN.js → chunk-NZ3HLDJG.js} +1 -1
  113. package/dist/{chunk-OI3MNE72.js → chunk-NZE4C4OI.js} +1 -1
  114. package/dist/{chunk-777JJJYW.js → chunk-O452KNRL.js} +1 -1
  115. package/dist/{chunk-Z3JINOCM.js → chunk-OAEGTH4Q.js} +1 -1
  116. package/dist/{chunk-4CLJ6W23.js → chunk-OJSF3H2G.js} +20 -20
  117. package/dist/{chunk-OZJBUWZK.js → chunk-P5R6JZMT.js} +1 -1
  118. package/dist/{chunk-NG5FY45G.js → chunk-PDWJ2YH2.js} +1 -1
  119. package/dist/{chunk-PXAYMXQN.js → chunk-PIQI72DV.js} +1 -1
  120. package/dist/{chunk-RFORHGOR.js → chunk-PJ7L6NSD.js} +1 -1
  121. package/dist/{chunk-GO4KOSHA.js → chunk-PL7AJVTV.js} +1 -1
  122. package/dist/{chunk-PXM3ENVN.js → chunk-POOKYUTJ.js} +1 -1
  123. package/dist/{chunk-2NHLSPBM.js → chunk-PQDB3FUL.js} +1 -1
  124. package/dist/{chunk-T3IMDY72.js → chunk-PSSOCUUD.js} +3 -3
  125. package/dist/{chunk-MQM3PRVN.js → chunk-PU6KWWVK.js} +1 -1
  126. package/dist/{chunk-AQJEA33T.js → chunk-PWXGGZQB.js} +1 -1
  127. package/dist/{chunk-BU4EGAMH.js → chunk-QKUTVLRJ.js} +1 -1
  128. package/dist/{chunk-SVO2M3F5.js → chunk-QOOVB6RW.js} +1 -1
  129. package/dist/{chunk-4ZMWIIJV.js → chunk-R4TOHQH3.js} +98 -92
  130. package/dist/{chunk-UI75K6AX.js → chunk-RGJVJ22M.js} +1 -1
  131. package/dist/{chunk-TEHDOYO2.js → chunk-RSGIMVPN.js} +1 -1
  132. package/dist/{chunk-EIASA32Z.js → chunk-RU6J6QQF.js} +1 -1
  133. package/dist/{chunk-RPM2BFMN.js → chunk-RX63KGTK.js} +1 -1
  134. package/dist/{chunk-7YBBERPS.js → chunk-SOJHJ4QK.js} +1 -1
  135. package/dist/{chunk-NTV746FL.js → chunk-SYBKHTVU.js} +1 -1
  136. package/dist/{chunk-BIV3GWMB.js → chunk-T3B6KIPU.js} +1 -1
  137. package/dist/{chunk-F3FHSS7N.js → chunk-TIG7SSKB.js} +1 -1
  138. package/dist/{chunk-MF2PINFC.js → chunk-TTV2GWNE.js} +1 -1
  139. package/dist/{chunk-BR3GYG2H.js → chunk-TUWRPDTE.js} +1 -1
  140. package/dist/{chunk-PUGAY4JP.js → chunk-UBTHWHPB.js} +3 -3
  141. package/dist/chunk-UDWSRNKO.js +1 -0
  142. package/dist/{chunk-SASKWPDJ.js → chunk-UJSCQJLW.js} +1 -1
  143. package/dist/{chunk-XNMDPOYU.js → chunk-VE6BYYBP.js} +1 -1
  144. package/dist/{chunk-ZC7FWXYM.js → chunk-VIMFXQ3Q.js} +1 -1
  145. package/dist/{chunk-MPO2T5YQ.js → chunk-VPOAOUT4.js} +1 -1
  146. package/dist/{chunk-HEABWGTV.js → chunk-VVPIXC3W.js} +1 -1
  147. package/dist/chunk-W3BNL2Q5.js +1 -0
  148. package/dist/{chunk-YJCNZGPY.js → chunk-WAZL37JY.js} +1 -1
  149. package/dist/{chunk-MI5HPOXV.js → chunk-WDY5CK2T.js} +1 -1
  150. package/dist/{chunk-PZH4WAOO.js → chunk-WHXY372K.js} +1 -1
  151. package/dist/{chunk-XBL6HWDC.js → chunk-WHZKFG2B.js} +1 -1
  152. package/dist/{chunk-GK23CIPB.js → chunk-WKRX4FBZ.js} +1 -1
  153. package/dist/{chunk-PERAXNOY.js → chunk-WKTIQUQP.js} +2 -2
  154. package/dist/{chunk-T7BQYKKT.js → chunk-WLU7UG44.js} +1 -1
  155. package/dist/{chunk-EIEPBDNX.js → chunk-WM3GKSPE.js} +1 -1
  156. package/dist/{chunk-B52JFWYO.js → chunk-WNBRPWSB.js} +1 -1
  157. package/dist/{chunk-GSYVQPMP.js → chunk-WQOV3LQA.js} +1 -1
  158. package/dist/{chunk-J6BXYZRY.js → chunk-WWRLFLGM.js} +1 -1
  159. package/dist/{chunk-77QBDEU4.js → chunk-XOEBZR5C.js} +1 -1
  160. package/dist/{chunk-5VBEPL4S.js → chunk-XRWQ7AXY.js} +1 -1
  161. package/dist/{chunk-WXDINLQ6.js → chunk-YGSXN3YD.js} +1 -1
  162. package/dist/{chunk-EQ7HQXEK.js → chunk-YN5SVIOI.js} +1 -1
  163. package/dist/{chunk-56362WJR.js → chunk-YVB7ZPHR.js} +2 -2
  164. package/dist/{chunk-ASBTWQJO.js → chunk-Z4E2EXZV.js} +1 -1
  165. package/dist/{chunk-JGSHB34D.js → chunk-ZFA5DIJ3.js} +1 -1
  166. package/dist/{chunk-65DQFHSH.js → chunk-ZIAXZ5VG.js} +1 -1
  167. package/dist/{chunk-E6DIK7Z7.js → chunk-ZMD5TNU5.js} +1 -1
  168. package/dist/{chunk-ZBMPFLOH.js → chunk-ZMTTZXC4.js} +1 -1
  169. package/dist/{chunk-BQTD7UV2.js → chunk-ZZNGFCJ3.js} +1 -1
  170. package/dist/cli/commands/app/app-logs/sources.js +1 -1
  171. package/dist/cli/commands/app/build.js +1 -1
  172. package/dist/cli/commands/app/bulk/cancel.js +1 -1
  173. package/dist/cli/commands/app/bulk/execute.js +1 -1
  174. package/dist/cli/commands/app/bulk/status.js +1 -1
  175. package/dist/cli/commands/app/config/link.js +1 -1
  176. package/dist/cli/commands/app/config/pull.js +1 -1
  177. package/dist/cli/commands/app/config/use.js +1 -1
  178. package/dist/cli/commands/app/config/validate.js +1 -1
  179. package/dist/cli/commands/app/demo/watcher.js +1 -1
  180. package/dist/cli/commands/app/deploy.js +1 -1
  181. package/dist/cli/commands/app/dev/clean.js +1 -1
  182. package/dist/cli/commands/app/dev.js +1 -1
  183. package/dist/cli/commands/app/doctor/instructions.js +1 -1
  184. package/dist/cli/commands/app/doctor.js +1 -1
  185. package/dist/cli/commands/app/env/pull.js +1 -1
  186. package/dist/cli/commands/app/env/show.js +1 -1
  187. package/dist/cli/commands/app/execute.js +1 -1
  188. package/dist/cli/commands/app/function/build.js +1 -1
  189. package/dist/cli/commands/app/function/info.js +1 -1
  190. package/dist/cli/commands/app/function/replay.js +1 -1
  191. package/dist/cli/commands/app/function/run.js +1 -1
  192. package/dist/cli/commands/app/function/schema.js +1 -1
  193. package/dist/cli/commands/app/function/typegen.js +1 -1
  194. package/dist/cli/commands/app/generate/extension.js +1 -1
  195. package/dist/cli/commands/app/graphiql.js +1 -1
  196. package/dist/cli/commands/app/import-custom-data-definitions.js +1 -1
  197. package/dist/cli/commands/app/import-extensions.js +1 -1
  198. package/dist/cli/commands/app/info.js +1 -1
  199. package/dist/cli/commands/app/init.js +1 -1
  200. package/dist/cli/commands/app/logs.js +1 -1
  201. package/dist/cli/commands/app/release.js +1 -1
  202. package/dist/cli/commands/app/subscription-migrations/cancel.js +1 -1
  203. package/dist/cli/commands/app/subscription-migrations/list.js +1 -1
  204. package/dist/cli/commands/app/subscription-migrations/schedule.js +1 -1
  205. package/dist/cli/commands/app/subscription-migrations/status.js +1 -1
  206. package/dist/cli/commands/app/subscription-migrations/unschedule.js +1 -1
  207. package/dist/cli/commands/app/versions/list.js +1 -1
  208. package/dist/cli/commands/app/webhook/trigger.js +1 -1
  209. package/dist/cli/commands/auth/login.js +1 -1
  210. package/dist/cli/commands/auth/logout.js +1 -1
  211. package/dist/cli/commands/cache/clear.js +1 -1
  212. package/dist/cli/commands/config/autoupgrade/off.js +1 -1
  213. package/dist/cli/commands/config/autoupgrade/on.js +1 -1
  214. package/dist/cli/commands/config/autoupgrade/status.js +1 -1
  215. package/dist/cli/commands/debug/command-flags.js +1 -1
  216. package/dist/cli/commands/doc/fetch.js +1 -1
  217. package/dist/cli/commands/doc/search.js +1 -1
  218. package/dist/cli/commands/docs/generate.js +1 -1
  219. package/dist/cli/commands/doctor-release/doctor-release.js +1 -1
  220. package/dist/cli/commands/doctor-release/theme/index.js +1 -1
  221. package/dist/cli/commands/help.js +1 -1
  222. package/dist/cli/commands/kitchen-sink/async.js +1 -1
  223. package/dist/cli/commands/kitchen-sink/index.js +1 -1
  224. package/dist/cli/commands/kitchen-sink/prompts.js +1 -1
  225. package/dist/cli/commands/kitchen-sink/static.js +1 -1
  226. package/dist/cli/commands/notifications/generate.js +1 -1
  227. package/dist/cli/commands/notifications/list.js +1 -1
  228. package/dist/cli/commands/organization/list.js +1 -1
  229. package/dist/cli/commands/search.js +1 -1
  230. package/dist/cli/commands/send-analytics.js +1 -1
  231. package/dist/cli/commands/theme/check.js +1 -1
  232. package/dist/cli/commands/theme/console.js +1 -1
  233. package/dist/cli/commands/theme/delete.js +1 -1
  234. package/dist/cli/commands/theme/dev.js +1 -1
  235. package/dist/cli/commands/theme/duplicate.js +1 -1
  236. package/dist/cli/commands/theme/info.js +1 -1
  237. package/dist/cli/commands/theme/init.js +1 -1
  238. package/dist/cli/commands/theme/language-server.js +1 -1
  239. package/dist/cli/commands/theme/list.js +1 -1
  240. package/dist/cli/commands/theme/metafields/pull.js +1 -1
  241. package/dist/cli/commands/theme/open.js +1 -1
  242. package/dist/cli/commands/theme/package.js +1 -1
  243. package/dist/cli/commands/theme/preview.js +1 -1
  244. package/dist/cli/commands/theme/profile.js +1 -1
  245. package/dist/cli/commands/theme/publish.js +1 -1
  246. package/dist/cli/commands/theme/pull.js +1 -1
  247. package/dist/cli/commands/theme/push.js +1 -1
  248. package/dist/cli/commands/theme/rename.js +1 -1
  249. package/dist/cli/commands/theme/share.js +1 -1
  250. package/dist/cli/commands/upgrade.js +1 -1
  251. package/dist/cli/commands/version.js +1 -1
  252. package/dist/command-registry.js +1 -1
  253. package/dist/{conf-store-F4NCJPWK.js → conf-store-5UUKEHZV.js} +1 -1
  254. package/dist/configs/all.yml +8 -5
  255. package/dist/configs/recommended.yml +8 -5
  256. package/dist/data/objects.json +487 -75
  257. package/dist/data/shopify_system_translations.json +8 -7
  258. package/dist/data/tags.json +23 -0
  259. package/dist/{deprecations-PX5KIFDO.js → deprecations-DVGWC3RL.js} +1 -1
  260. package/dist/dist-CN7N5IOM.js +1 -0
  261. package/dist/dist-Q5U4WGYG.js +1 -0
  262. package/dist/{environments-TLO674UK.js → environments-M4CFP4XF.js} +1 -1
  263. package/dist/{error-YLDXWEC5.js → error-ZES2RSN7.js} +1 -1
  264. package/dist/error-handler-CRTU67VJ.js +1 -0
  265. package/dist/{fs-CDN2NZJC.js → fs-GELMKEWX.js} +1 -1
  266. package/dist/hooks/did-you-mean.js +1 -1
  267. package/dist/hooks/hydrogen-init.js +1 -1
  268. package/dist/hooks/postrun.js +1 -1
  269. package/dist/hooks/prerun.js +1 -1
  270. package/dist/hooks/public-metadata.js +1 -1
  271. package/dist/hooks/sensitive-metadata.js +1 -1
  272. package/dist/hooks/tunnel-provider.js +1 -1
  273. package/dist/hooks/tunnel-start.js +1 -1
  274. package/dist/index.js +1 -1
  275. package/dist/{is-global-KBYTYD3Y.js → is-global-X2QNCXXB.js} +1 -1
  276. package/dist/{local-IBYCFEVA.js → local-HMFFXIE3.js} +1 -1
  277. package/dist/{metadata-LOCKHSUF.js → metadata-SXJZZMCI.js} +1 -1
  278. package/dist/{node-package-manager-ESOHDRPJ.js → node-package-manager-2D2CIFTG.js} +1 -1
  279. package/dist/notifications-system-WH6MAXEN.js +1 -0
  280. package/dist/os-PY42WAOB.js +1 -0
  281. package/dist/{output-OAORC6TH.js → output-MSTNB7GI.js} +1 -1
  282. package/dist/{system-VNXEM5E7.js → system-7XRI63YJ.js} +1 -1
  283. package/dist/tsconfig.tsbuildinfo +1 -1
  284. package/dist/{ui-CIZHMGKK.js → ui-77QYNWJB.js} +1 -1
  285. package/dist/upgrade-UVPNOKKK.js +1 -0
  286. package/dist/version-DXGPL73I.js +1 -0
  287. package/dist/{version-JJYR4NOL.js → version-XMVQO6PD.js} +1 -1
  288. package/dist/{workerd-JWZNKSHU.js → workerd-SOWC66FA.js} +1 -1
  289. package/oclif.manifest.json +1 -1
  290. package/package.json +7 -7
  291. package/dist/analytics-AL5WLCEC.js +0 -1
  292. package/dist/chunk-3CFHLIBD.js +0 -7
  293. package/dist/chunk-4EHFK2OI.js +0 -1
  294. package/dist/chunk-7YDT5AOW.js +0 -8
  295. package/dist/chunk-BJ3JF35I.js +0 -6
  296. package/dist/chunk-ENEPD4BS.js +0 -1
  297. package/dist/chunk-EWKIFVW3.js +0 -273
  298. package/dist/chunk-NNCLTG6A.js +0 -1
  299. package/dist/chunk-OSMT4BVT.js +0 -1
  300. package/dist/chunk-PJH3JJEQ.js +0 -1
  301. package/dist/chunk-RV4UQZ2W.js +0 -1
  302. package/dist/dist-WO24PYXH.js +0 -1
  303. package/dist/dist-X7YIFLSP.js +0 -1
  304. package/dist/error-handler-SY45FR6A.js +0 -1
  305. package/dist/notifications-system-EMCOAF3T.js +0 -1
  306. package/dist/os-XLJNYIZF.js +0 -1
  307. package/dist/upgrade-AIZVY3E5.js +0 -1
  308. package/dist/version-CNIDTUMV.js +0 -1
@@ -1,4 +1,4 @@
1
- import{a as Ot}from"./chunk-5HBIIYSK.js";import{a as Gt}from"./chunk-GB3YC4TI.js";import{a as ce}from"./chunk-RJ5VF3QY.js";import{a as ae}from"./chunk-636CTEW7.js";import{Ab as de,sb as ue}from"./chunk-TNYPQ2UL.js";import{a as y,c as h,e as A,g as s}from"./chunk-VKWPEFWQ.js";var he=h((rr,pe)=>{s();pe.exports=fe;fe.sync=kt;var le=y("fs");function Nt(e,t){var r=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n<r.length;n++){var o=r[n].toLowerCase();if(o&&e.substr(-o.length).toLowerCase()===o)return!0}return!1}function me(e,t,r){return!e.isSymbolicLink()&&!e.isFile()?!1:Nt(t,r)}function fe(e,t,r){le.stat(e,function(n,o){r(n,n?!1:me(o,e,t))})}function kt(e,t){return me(le.statSync(e),e,t)}});var xe=h((ir,Ee)=>{s();Ee.exports=Se;Se.sync=Ut;var ge=y("fs");function Se(e,t,r){ge.stat(e,function(n,o){r(n,n?!1:ye(o,t))})}function Ut(e,t){return ye(ge.statSync(e),t)}function ye(e,t){return e.isFile()&&Lt(e,t)}function Lt(e,t){var r=e.mode,n=e.uid,o=e.gid,i=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),c=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),a=parseInt("100",8),u=parseInt("010",8),d=parseInt("001",8),l=a|u,f=r&d||r&u&&o===c||r&a&&n===i||r&l&&i===0;return f}});var we=h((ar,be)=>{s();var cr=y("fs"),$;process.platform==="win32"||global.TESTING_WINDOWS?$=he():$=xe();be.exports=U;U.sync=Mt;function U(e,t,r){if(typeof t=="function"&&(r=t,t={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,o){U(e,t||{},function(i,c){i?o(i):n(c)})})}$(e,t||{},function(n,o){n&&(n.code==="EACCES"||t&&t.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function Mt(e,t){try{return $.sync(e,t||{})}catch(r){if(t&&t.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var $e=h((dr,Ae)=>{s();var x=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Te=y("path"),Ft=x?";":":",Ie=we(),ve=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),Ce=(e,t)=>{let r=t.colon||Ft,n=e.match(/\//)||x&&e.match(/\\/)?[""]:[...x?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],o=x?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=x?o.split(r):[""];return x&&e.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:o}},Pe=(e,t,r)=>{typeof t=="function"&&(r=t,t={}),t||(t={});let{pathEnv:n,pathExt:o,pathExtExe:i}=Ce(e,t),c=[],a=d=>new Promise((l,f)=>{if(d===n.length)return t.all&&c.length?l(c):f(ve(e));let m=n[d],g=/^".*"$/.test(m)?m.slice(1,-1):m,p=Te.join(g,e),S=!g&&/^\.[\\\/]/.test(e)?e.slice(0,2)+p:p;l(u(S,d,0))}),u=(d,l,f)=>new Promise((m,g)=>{if(f===o.length)return m(a(l+1));let p=o[f];Ie(d+p,{pathExt:i},(S,E)=>{if(!S&&E)if(t.all)c.push(d+p);else return m(d+p);return m(u(d,l,f+1))})});return r?a(0).then(d=>r(null,d),r):a(0)},jt=(e,t)=>{t=t||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=Ce(e,t),i=[];for(let c=0;c<r.length;c++){let a=r[c],u=/^".*"$/.test(a)?a.slice(1,-1):a,d=Te.join(u,e),l=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;for(let f=0;f<n.length;f++){let m=l+n[f];try{if(Ie.sync(m,{pathExt:o}))if(t.all)i.push(m);else return m}catch{}}}if(t.all&&i.length)return i;if(t.nothrow)return null;throw ve(e)};Ae.exports=Pe;Pe.sync=jt});var Ge=h((mr,L)=>{"use strict";s();var Re=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};L.exports=Re;L.exports.default=Re});var Ue=h((pr,ke)=>{"use strict";s();var Oe=y("path"),Bt=$e(),Dt=Ge();function Ne(e,t){let r=e.options.env||process.env,n=process.cwd(),o=e.options.cwd!=null,i=o&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(e.options.cwd)}catch{}let c;try{c=Bt.sync(e.command,{path:r[Dt({env:r})],pathExt:t?Oe.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return c&&(c=Oe.resolve(o?e.options.cwd:"",c)),c}function qt(e){return Ne(e)||Ne(e,!0)}ke.exports=qt});var Le=h((gr,F)=>{"use strict";s();var M=/([()\][%!^"`<>&|;, *?])/g;function Wt(e){return e=e.replace(M,"^$1"),e}function _t(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(M,"^$1"),t&&(e=e.replace(M,"^$1")),e}F.exports.command=Wt;F.exports.argument=_t});var Fe=h((yr,Me)=>{"use strict";s();Me.exports=/^#!(.*)/});var Be=h((xr,je)=>{"use strict";s();var Ht=Fe();je.exports=(e="")=>{let t=e.match(Ht);if(!t)return null;let[r,n]=t[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var qe=h((wr,De)=>{"use strict";s();var j=y("fs"),zt=Be();function Xt(e){let r=Buffer.alloc(150),n;try{n=j.openSync(e,"r"),j.readSync(n,r,0,150,0),j.closeSync(n)}catch{}return zt(r.toString())}De.exports=Xt});var ze=h((Ir,He)=>{"use strict";s();var Kt=y("path"),We=Ue(),_e=Le(),Vt=qe(),Yt=process.platform==="win32",Qt=/\.(?:com|exe)$/i,Zt=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Jt(e){e.file=We(e);let t=e.file&&Vt(e.file);return t?(e.args.unshift(e.file),e.command=t,We(e)):e.file}function en(e){if(!Yt)return e;let t=Jt(e),r=!Qt.test(t);if(e.options.forceShell||r){let n=Zt.test(t);e.command=Kt.normalize(e.command),e.command=_e.command(e.command),e.args=e.args.map(i=>_e.argument(i,n));let o=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${o}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function tn(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let n={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?n:en(n)}He.exports=tn});var Ve=h((Cr,Ke)=>{"use strict";s();var B=process.platform==="win32";function D(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function nn(e,t){if(!B)return;let r=e.emit;e.emit=function(n,o){if(n==="exit"){let i=Xe(o,t);if(i)return r.call(e,"error",i)}return r.apply(e,arguments)}}function Xe(e,t){return B&&e===1&&!t.file?D(t.original,"spawn"):null}function rn(e,t){return B&&e===1&&!t.file?D(t.original,"spawnSync"):null}Ke.exports={hookChildProcess:nn,verifyENOENT:Xe,verifyENOENTSync:rn,notFoundError:D}});var Ze=h((Ar,b)=>{"use strict";s();var Ye=y("child_process"),q=ze(),W=Ve();function Qe(e,t,r){let n=q(e,t,r),o=Ye.spawn(n.command,n.args,n.options);return W.hookChildProcess(o,n),o}function on(e,t,r){let n=q(e,t,r),o=Ye.spawnSync(n.command,n.args,n.options);return o.error=o.error||W.verifyENOENTSync(o.status,n),o}b.exports=Qe;b.exports.spawn=Qe;b.exports.sync=on;b.exports._parse=q;b.exports._enoent=W});var ht=h((mo,pt)=>{"use strict";s();var{PassThrough:An}=y("stream");pt.exports=function(){var e=[],t=new An({objectMode:!0});return t.setMaxListeners(0),t.add=r,t.isEmpty=n,t.on("unpipe",o),Array.prototype.slice.call(arguments).forEach(r),t;function r(i){return Array.isArray(i)?(i.forEach(r),this):(e.push(i),i.once("end",o.bind(null,i)),i.once("error",t.emit.bind(t,"error")),i.pipe(t,{end:!1}),this)}function n(){return e.length==0}function o(i){e=e.filter(function(c){return c!==i}),!e.length&&t.readable&&t.end()}}});s();s();var At=A(Ze(),1);import{Buffer as Hn}from"node:buffer";import zn from"node:path";import ne from"node:child_process";import k from"node:process";s();function _(e){let t=typeof e=="string"?`
1
+ import{a as Ot}from"./chunk-5HBIIYSK.js";import{a as Gt}from"./chunk-GB3YC4TI.js";import{a as ce}from"./chunk-RJ5VF3QY.js";import{a as ae}from"./chunk-636CTEW7.js";import{Ab as de,sb as ue}from"./chunk-G5QSVBYP.js";import{a as y,c as h,e as A,g as s}from"./chunk-VKWPEFWQ.js";var he=h((rr,pe)=>{s();pe.exports=fe;fe.sync=kt;var le=y("fs");function Nt(e,t){var r=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n<r.length;n++){var o=r[n].toLowerCase();if(o&&e.substr(-o.length).toLowerCase()===o)return!0}return!1}function me(e,t,r){return!e.isSymbolicLink()&&!e.isFile()?!1:Nt(t,r)}function fe(e,t,r){le.stat(e,function(n,o){r(n,n?!1:me(o,e,t))})}function kt(e,t){return me(le.statSync(e),e,t)}});var xe=h((ir,Ee)=>{s();Ee.exports=Se;Se.sync=Ut;var ge=y("fs");function Se(e,t,r){ge.stat(e,function(n,o){r(n,n?!1:ye(o,t))})}function Ut(e,t){return ye(ge.statSync(e),t)}function ye(e,t){return e.isFile()&&Lt(e,t)}function Lt(e,t){var r=e.mode,n=e.uid,o=e.gid,i=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),c=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),a=parseInt("100",8),u=parseInt("010",8),d=parseInt("001",8),l=a|u,f=r&d||r&u&&o===c||r&a&&n===i||r&l&&i===0;return f}});var we=h((ar,be)=>{s();var cr=y("fs"),$;process.platform==="win32"||global.TESTING_WINDOWS?$=he():$=xe();be.exports=U;U.sync=Mt;function U(e,t,r){if(typeof t=="function"&&(r=t,t={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,o){U(e,t||{},function(i,c){i?o(i):n(c)})})}$(e,t||{},function(n,o){n&&(n.code==="EACCES"||t&&t.ignoreErrors)&&(n=null,o=!1),r(n,o)})}function Mt(e,t){try{return $.sync(e,t||{})}catch(r){if(t&&t.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var $e=h((dr,Ae)=>{s();var x=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Te=y("path"),Ft=x?";":":",Ie=we(),ve=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),Ce=(e,t)=>{let r=t.colon||Ft,n=e.match(/\//)||x&&e.match(/\\/)?[""]:[...x?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],o=x?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=x?o.split(r):[""];return x&&e.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:o}},Pe=(e,t,r)=>{typeof t=="function"&&(r=t,t={}),t||(t={});let{pathEnv:n,pathExt:o,pathExtExe:i}=Ce(e,t),c=[],a=d=>new Promise((l,f)=>{if(d===n.length)return t.all&&c.length?l(c):f(ve(e));let m=n[d],g=/^".*"$/.test(m)?m.slice(1,-1):m,p=Te.join(g,e),S=!g&&/^\.[\\\/]/.test(e)?e.slice(0,2)+p:p;l(u(S,d,0))}),u=(d,l,f)=>new Promise((m,g)=>{if(f===o.length)return m(a(l+1));let p=o[f];Ie(d+p,{pathExt:i},(S,E)=>{if(!S&&E)if(t.all)c.push(d+p);else return m(d+p);return m(u(d,l,f+1))})});return r?a(0).then(d=>r(null,d),r):a(0)},jt=(e,t)=>{t=t||{};let{pathEnv:r,pathExt:n,pathExtExe:o}=Ce(e,t),i=[];for(let c=0;c<r.length;c++){let a=r[c],u=/^".*"$/.test(a)?a.slice(1,-1):a,d=Te.join(u,e),l=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;for(let f=0;f<n.length;f++){let m=l+n[f];try{if(Ie.sync(m,{pathExt:o}))if(t.all)i.push(m);else return m}catch{}}}if(t.all&&i.length)return i;if(t.nothrow)return null;throw ve(e)};Ae.exports=Pe;Pe.sync=jt});var Ge=h((mr,L)=>{"use strict";s();var Re=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};L.exports=Re;L.exports.default=Re});var Ue=h((pr,ke)=>{"use strict";s();var Oe=y("path"),Bt=$e(),Dt=Ge();function Ne(e,t){let r=e.options.env||process.env,n=process.cwd(),o=e.options.cwd!=null,i=o&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(e.options.cwd)}catch{}let c;try{c=Bt.sync(e.command,{path:r[Dt({env:r})],pathExt:t?Oe.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return c&&(c=Oe.resolve(o?e.options.cwd:"",c)),c}function qt(e){return Ne(e)||Ne(e,!0)}ke.exports=qt});var Le=h((gr,F)=>{"use strict";s();var M=/([()\][%!^"`<>&|;, *?])/g;function Wt(e){return e=e.replace(M,"^$1"),e}function _t(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(M,"^$1"),t&&(e=e.replace(M,"^$1")),e}F.exports.command=Wt;F.exports.argument=_t});var Fe=h((yr,Me)=>{"use strict";s();Me.exports=/^#!(.*)/});var Be=h((xr,je)=>{"use strict";s();var Ht=Fe();je.exports=(e="")=>{let t=e.match(Ht);if(!t)return null;let[r,n]=t[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return o==="env"?n:n?`${o} ${n}`:o}});var qe=h((wr,De)=>{"use strict";s();var j=y("fs"),zt=Be();function Xt(e){let r=Buffer.alloc(150),n;try{n=j.openSync(e,"r"),j.readSync(n,r,0,150,0),j.closeSync(n)}catch{}return zt(r.toString())}De.exports=Xt});var ze=h((Ir,He)=>{"use strict";s();var Kt=y("path"),We=Ue(),_e=Le(),Vt=qe(),Yt=process.platform==="win32",Qt=/\.(?:com|exe)$/i,Zt=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Jt(e){e.file=We(e);let t=e.file&&Vt(e.file);return t?(e.args.unshift(e.file),e.command=t,We(e)):e.file}function en(e){if(!Yt)return e;let t=Jt(e),r=!Qt.test(t);if(e.options.forceShell||r){let n=Zt.test(t);e.command=Kt.normalize(e.command),e.command=_e.command(e.command),e.args=e.args.map(i=>_e.argument(i,n));let o=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${o}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function tn(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let n={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?n:en(n)}He.exports=tn});var Ve=h((Cr,Ke)=>{"use strict";s();var B=process.platform==="win32";function D(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function nn(e,t){if(!B)return;let r=e.emit;e.emit=function(n,o){if(n==="exit"){let i=Xe(o,t);if(i)return r.call(e,"error",i)}return r.apply(e,arguments)}}function Xe(e,t){return B&&e===1&&!t.file?D(t.original,"spawn"):null}function rn(e,t){return B&&e===1&&!t.file?D(t.original,"spawnSync"):null}Ke.exports={hookChildProcess:nn,verifyENOENT:Xe,verifyENOENTSync:rn,notFoundError:D}});var Ze=h((Ar,b)=>{"use strict";s();var Ye=y("child_process"),q=ze(),W=Ve();function Qe(e,t,r){let n=q(e,t,r),o=Ye.spawn(n.command,n.args,n.options);return W.hookChildProcess(o,n),o}function on(e,t,r){let n=q(e,t,r),o=Ye.spawnSync(n.command,n.args,n.options);return o.error=o.error||W.verifyENOENTSync(o.status,n),o}b.exports=Qe;b.exports.spawn=Qe;b.exports.sync=on;b.exports._parse=q;b.exports._enoent=W});var ht=h((mo,pt)=>{"use strict";s();var{PassThrough:An}=y("stream");pt.exports=function(){var e=[],t=new An({objectMode:!0});return t.setMaxListeners(0),t.add=r,t.isEmpty=n,t.on("unpipe",o),Array.prototype.slice.call(arguments).forEach(r),t;function r(i){return Array.isArray(i)?(i.forEach(r),this):(e.push(i),i.once("end",o.bind(null,i)),i.once("error",t.emit.bind(t,"error")),i.pipe(t,{end:!1}),this)}function n(){return e.length==0}function o(i){e=e.filter(function(c){return c!==i}),!e.length&&t.readable&&t.end()}}});s();s();var At=A(Ze(),1);import{Buffer as Hn}from"node:buffer";import zn from"node:path";import ne from"node:child_process";import k from"node:process";s();function _(e){let t=typeof e=="string"?`
2
2
  `:10,r=typeof e=="string"?"\r":13;return e[e.length-1]===t&&(e=e.slice(0,-1)),e[e.length-1]===r&&(e=e.slice(0,-1)),e}s();var R=new WeakMap,Je=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let r,n=0,o=e.displayName||e.name||"<anonymous>",i=function(...c){if(R.set(i,++n),n===1)r=e.apply(this,c),e=null;else if(t.throw===!0)throw new Error(`Function \`${o}\` can only be called once`);return r};return ce(i,e),R.set(i,n),i};Je.callCount=e=>{if(!R.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return R.get(e)};var et=Je;s();import hn from"node:process";s();import{constants as un}from"node:os";s();var tt=()=>{let e=rt-nt+1;return Array.from({length:e},sn)},sn=(e,t)=>({name:`SIGRT${t+1}`,number:nt+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),nt=34,rt=64;s();import{constants as cn}from"node:os";s();var ot=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}];var H=()=>{let e=tt();return[...ot,...e].map(an)},an=({name:e,number:t,description:r,action:n,forced:o=!1,standard:i})=>{let{signals:{[e]:c}}=cn,a=c!==void 0;return{name:e,number:a?c:t,description:r,supported:a,action:n,forced:o,standard:i}};var dn=()=>{let e=H();return Object.fromEntries(e.map(ln))},ln=({name:e,number:t,description:r,supported:n,action:o,forced:i,standard:c})=>[e,{name:e,number:t,description:r,supported:n,action:o,forced:i,standard:c}],it=dn(),mn=()=>{let e=H(),t=65,r=Array.from({length:t},(n,o)=>fn(o,e));return Object.assign({},...r)},fn=(e,t)=>{let r=pn(e,t);if(r===void 0)return{};let{name:n,description:o,supported:i,action:c,forced:a,standard:u}=r;return{[e]:{name:n,number:e,description:o,supported:i,action:c,forced:a,standard:u}}},pn=(e,t)=>{let r=t.find(({name:n})=>un.signals[n]===e);return r!==void 0?r:t.find(n=>n.number===e)},zr=mn();var gn=({timedOut:e,timeout:t,errorCode:r,signal:n,signalDescription:o,exitCode:i,isCanceled:c})=>e?`timed out after ${t} milliseconds`:c?"was canceled":r!==void 0?`failed with ${r}`:n!==void 0?`was killed with ${n} (${o})`:i!==void 0?`failed with exit code ${i}`:"failed",w=({stdout:e,stderr:t,all:r,error:n,signal:o,exitCode:i,command:c,escapedCommand:a,timedOut:u,isCanceled:d,killed:l,parsed:{options:{timeout:f,cwd:m=hn.cwd()}}})=>{i=i===null?void 0:i,o=o===null?void 0:o;let g=o===void 0?void 0:it[o].description,p=n&&n.code,E=`Command ${gn({timedOut:u,timeout:f,errorCode:p,signal:o,signalDescription:g,exitCode:i,isCanceled:d})}: ${c}`,v=Object.prototype.toString.call(n)==="[object Error]",C=v?`${E}
3
3
  ${n.message}`:E,P=[C,t,e].filter(Boolean).join(`
4
4
  `);return v?(n.originalMessage=n.message,n.message=P):n=new Error(P),n.shortMessage=C,n.command=c,n.escapedCommand=a,n.exitCode=i,n.signal=o,n.signalDescription=g,n.stdout=e,n.stderr=t,n.cwd=m,r!==void 0&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!u,n.isCanceled=d,n.killed=l&&!u,n};s();var G=["stdin","stdout","stderr"],Sn=e=>G.some(t=>e[t]!==void 0),st=e=>{if(!e)return;let{stdio:t}=e;if(t===void 0)return G.map(n=>e[n]);if(Sn(e))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${G.map(n=>`\`${n}\``).join(", ")}`);if(typeof t=="string")return t;if(!Array.isArray(t))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);let r=Math.max(t.length,G.length);return Array.from({length:r},(n,o)=>t[o])};s();var ct=A(Ot(),1);import yn from"node:os";var En=1e3*5,at=(e,t="SIGTERM",r={})=>{let n=e(t);return xn(e,t,r,n),n},xn=(e,t,r,n)=>{if(!bn(t,r,n))return;let o=Tn(r),i=setTimeout(()=>{e("SIGKILL")},o);i.unref&&i.unref()},bn=(e,{forceKillAfterTimeout:t},r)=>wn(e)&&t!==!1&&r,wn=e=>e===yn.constants.signals.SIGTERM||typeof e=="string"&&e.toUpperCase()==="SIGTERM",Tn=({forceKillAfterTimeout:e=!0})=>{if(e===!0)return En;if(!Number.isFinite(e)||e<0)throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},ut=(e,t)=>{e.kill()&&(t.isCanceled=!0)},In=(e,t,r)=>{e.kill(t),r(Object.assign(new Error("Timed out"),{timedOut:!0,signal:t}))},dt=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{if(t===0||t===void 0)return n;let o,i=new Promise((a,u)=>{o=setTimeout(()=>{In(e,r,u)},t)}),c=n.finally(()=>{clearTimeout(o)});return Promise.race([i,c])},lt=({timeout:e})=>{if(e!==void 0&&(!Number.isFinite(e)||e<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)},mt=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let o=(0,ct.default)(()=>{e.kill()});return n.finally(()=>{o()})};s();import{createWriteStream as vn}from"node:fs";import{ChildProcess as Cn}from"node:child_process";s();function O(e){return e!==null&&typeof e=="object"&&typeof e.pipe=="function"}function z(e){return O(e)&&e.writable!==!1&&typeof e._write=="function"&&typeof e._writableState=="object"}var Pn=e=>e instanceof Cn&&typeof e.then=="function",X=(e,t,r)=>{if(typeof r=="string")return e[t].pipe(vn(r)),e;if(z(r))return e[t].pipe(r),e;if(!Pn(r))throw new TypeError("The second argument must be a string, a stream or an Execa child process.");if(!z(r.stdin))throw new TypeError("The target child process's stdin must be available.");return e[t].pipe(r.stdin),r},ft=e=>{e.stdout!==null&&(e.pipeStdout=X.bind(void 0,e,"stdout")),e.stderr!==null&&(e.pipeStderr=X.bind(void 0,e,"stderr")),e.all!==void 0&&(e.pipeAll=X.bind(void 0,e,"all"))};s();import{createReadStream as $n,readFileSync as Rn}from"node:fs";var Y=A(Gt(),1),gt=A(ht(),1),St=e=>{if(e!==void 0)throw new TypeError("The `input` and `inputFile` options cannot be both set.")},Gn=({input:e,inputFile:t})=>typeof t!="string"?e:(St(e),Rn(t)),yt=e=>{let t=Gn(e);if(O(t))throw new TypeError("The `input` option cannot be a stream in sync mode");return t},On=({input:e,inputFile:t})=>typeof t!="string"?e:(St(e),$n(t)),Et=(e,t)=>{let r=On(t);r!==void 0&&(O(r)?r.pipe(e.stdin):e.stdin.end(r))},xt=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=(0,gt.default)();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r},K=async(e,t)=>{if(!(!e||t===void 0)){e.destroy();try{return await t}catch(r){return r.bufferedData}}},V=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(!(!e||!r))return t?(0,Y.default)(e,{encoding:t,maxBuffer:n}):Y.default.buffer(e,{maxBuffer:n})},bt=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:o,maxBuffer:i},c)=>{let a=V(e,{encoding:n,buffer:o,maxBuffer:i}),u=V(t,{encoding:n,buffer:o,maxBuffer:i}),d=V(r,{encoding:n,buffer:o,maxBuffer:i*2});try{return await Promise.all([c,a,u,d])}catch(l){return Promise.all([{error:l,signal:l.signal,timedOut:l.timedOut},K(e,a),K(t,u),K(r,d)])}};s();var Nn=(async()=>{})().constructor.prototype,kn=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(Nn,e)]),Q=(e,t)=>{for(let[r,n]of kn){let o=typeof t=="function"?(...i)=>Reflect.apply(n.value,t(),i):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:o})}},wt=e=>new Promise((t,r)=>{e.on("exit",(n,o)=>{t({exitCode:n,signal:o})}),e.on("error",n=>{r(n)}),e.stdin&&e.stdin.on("error",n=>{r(n)})});s();import{Buffer as Un}from"node:buffer";import{ChildProcess as Ln}from"node:child_process";var vt=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],Mn=/^[\w.-]+$/,Fn=/"/g,jn=e=>typeof e!="string"||Mn.test(e)?e:`"${e.replace(Fn,'\\"')}"`,Z=(e,t)=>vt(e,t).join(" "),J=(e,t)=>vt(e,t).map(r=>jn(r)).join(" "),Bn=/ +/g;var Tt=e=>{let t=typeof e;if(t==="string")return e;if(t==="number")return String(e);if(t==="object"&&e!==null&&!(e instanceof Ln)&&"stdout"in e){let r=typeof e.stdout;if(r==="string")return e.stdout;if(Un.isBuffer(e.stdout))return e.stdout.toString();throw new TypeError(`Unexpected "${r}" stdout in template expression`)}throw new TypeError(`Unexpected "${t}" in template expression`)},It=(e,t,r)=>r||e.length===0||t.length===0?[...e,...t]:[...e.slice(0,-1),`${e[e.length-1]}${t[0]}`,...t.slice(1)],Dn=({templates:e,expressions:t,tokens:r,index:n,template:o})=>{let i=o??e.raw[n],c=i.split(Bn).filter(Boolean),a=It(r,c,i.startsWith(" "));if(n===t.length)return a;let u=t[n],d=Array.isArray(u)?u.map(l=>Tt(l)):[Tt(u)];return It(a,d,i.endsWith(" "))},ee=(e,t)=>{let r=[];for(let[n,o]of e.entries())r=Dn({templates:e,expressions:t,tokens:r,index:n,template:o});return r};s();import{debuglog as qn}from"node:util";import Wn from"node:process";var Ct=qn("execa").enabled,N=(e,t)=>String(e).padStart(t,"0"),_n=()=>{let e=new Date;return`${N(e.getHours(),2)}:${N(e.getMinutes(),2)}:${N(e.getSeconds(),2)}.${N(e.getMilliseconds(),3)}`},te=(e,{verbose:t})=>{t&&Wn.stderr.write(`[${_n()}] ${e}
@@ -1,3 +1,3 @@
1
- import{b as g}from"./chunk-BR5CFKIN.js";import{b as y}from"./chunk-PUGAY4JP.js";import{r as u}from"./chunk-IAURXPUJ.js";import{h as r}from"./chunk-4EHFK2OI.js";import{a as R}from"./chunk-CTNBSUVU.js";import{ua as l,wa as m,wb as v,xb as w}from"./chunk-TNYPQ2UL.js";import{f as p,i as h}from"./chunk-773TIA5M.js";import{e as A,g as s}from"./chunk-VKWPEFWQ.js";s();s();var U="text/markdown",L="X-Shopify-Surface",E="cli",F=["shopify.dev"];async function S(t,e){let c;try{c=new URL(t)}catch{throw new r(`Invalid URL: ${t}`)}let{hostname:d}=c;if(!F.some(o=>d===o||d.endsWith(`.${o}`)))throw new r(`Only documents from the following hosts can be fetched: ${F.join(", ")}.`);let i=await u(t,{headers:{Accept:U,[L]:E}});if(!i.ok)throw new r(`Failed to fetch ${t}: ${i.status} ${i.statusText}`);let f=await i.text();if(e){let o=p(e);await m(h(o)),await l(o,f),w(`Saved ${t} to ${o}`);return}v(f)}var n=A(R(),1),a=class t extends y{static 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 \u2014 for example, a set of instructions an agent follows like a centrally-served skill. For finding the relevant pieces of content across shopify.dev instead, use `doc search`.";static examples=[`# fetch the Markdown version of a Shopify.dev page
1
+ import{b as g}from"./chunk-2IZROVCY.js";import{b as y}from"./chunk-UBTHWHPB.js";import{r as u}from"./chunk-KYNXMDFU.js";import{h as r}from"./chunk-W3BNL2Q5.js";import{a as R}from"./chunk-CTNBSUVU.js";import{ua as l,wa as m,wb as v,xb as w}from"./chunk-G5QSVBYP.js";import{f as p,i as h}from"./chunk-773TIA5M.js";import{e as A,g as s}from"./chunk-VKWPEFWQ.js";s();s();var U="text/markdown",L="X-Shopify-Surface",E="cli",F=["shopify.dev"];async function S(t,e){let c;try{c=new URL(t)}catch{throw new r(`Invalid URL: ${t}`)}let{hostname:d}=c;if(!F.some(o=>d===o||d.endsWith(`.${o}`)))throw new r(`Only documents from the following hosts can be fetched: ${F.join(", ")}.`);let i=await u(t,{headers:{Accept:U,[L]:E}});if(!i.ok)throw new r(`Failed to fetch ${t}: ${i.status} ${i.statusText}`);let f=await i.text();if(e){let o=p(e);await m(h(o)),await l(o,f),w(`Saved ${t} to ${o}`);return}v(f)}var n=A(R(),1),a=class t extends y{static 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 \u2014 for example, a set of instructions an agent follows like a centrally-served skill. For finding the relevant pieces of content across shopify.dev instead, use `doc search`.";static examples=[`# fetch the Markdown version of a Shopify.dev page
2
2
  shopify doc fetch --url https://shopify.dev/docs/api/shopify-cli`,`# save the document to a file instead of printing it
3
3
  shopify doc fetch --url https://shopify.dev/docs/api/shopify-cli --output docs/shopify-cli.md`];static flags={...g,url:n.Flags.string({description:"The shopify.dev URL to fetch.",env:"SHOPIFY_FLAG_URL",required:!0}),output:n.Flags.string({description:"Write the document to this file path instead of printing it to stdout.",env:"SHOPIFY_FLAG_OUTPUT"})};async run(){let{flags:e}=await this.parse(t);await S(e.url,e.output)}};export{a};
@@ -1,4 +1,4 @@
1
- import{a as U,b as xt}from"./chunk-JLGA3B7P.js";import{a as ht,b as ft,f as Ie,g as ae,h as A,i as ce,k as Et,n as Tt}from"./chunk-CSNXCRPY.js";import{a as M,l as gt,m as yt}from"./chunk-BR3GYG2H.js";import{s as ie,t as W}from"./chunk-CNDB4VEM.js";import{a as O,b as N,e as nt,g as rt,i as ot,j as it,k as at,n as ct,p as lt,q as dt,r as oe,s as $,u as ut,w as pt}from"./chunk-Q7BOSHWX.js";import{aa as mt}from"./chunk-EWKIFVW3.js";import{Aa as H,c as Ke,ya as L}from"./chunk-IAURXPUJ.js";import{A as I,B as te,C as tt,T as st,y as et}from"./chunk-T3IMDY72.js";import{h as se}from"./chunk-4EHFK2OI.js";import{Ab as F,Bb as D,O as Xe,Ta as P,Wa as C,Z as $e,bb as ke,ma as k,qb as j,sb as ne,ua as be,wa as Ze,xb as re,ya as Qe}from"./chunk-TNYPQ2UL.js";import{d as E,g as V,j as Ve,k as q}from"./chunk-773TIA5M.js";import{e as Ge,g as h}from"./chunk-VKWPEFWQ.js";h();h();h();var rs=".shopifyignore",Rt=/templates\/\*(\.(json|liquid))?$/,St=new Set;function Le(e,t={}){let s=t.ignoreFromFile??[],n=t.ignore??[],r=t.only??[],[o=[],i=[]]=_e(s),[a=[],p=[]]=_e(n),[m=[],c=[]]=_e(r),l=e.filter(B(o,".shopifyignore"));return l=l.filter(B(a,"--ignore")),l=l.filter(B(m,"--only",!0)),i.length>0&&(l=l.concat(e.filter(B(i,".shopifyignore",!0)))),p.length>0&&(l=l.concat(e.filter(B(p,"--ignore",!0)))),c.length>0&&(l=l.filter(B(c,"--only"))),Xe(l,f=>f.key)}function B(e,t,s=!1){return({key:n})=>{if(e.length===0)return!0;let r=e.some(i=>os(n,i)||cs(i)&&as(n,ls(i)));return(s?!r:r)?(F(`Ignoring theme file ${n} via ${t}...`),!1):!0}}async function wt(e){let t=E(e,rs);return await P(t)?(await k(t,{encoding:"utf8"})).split(/(\r\n|\r|\n)/).map(r=>r.trim()).filter(r=>r&&!r.startsWith("#")):[]}function _e(e){let t=e.filter(n=>n.startsWith("!")).map(n=>n.slice(1));return[e.filter(n=>!n.startsWith("!")),t]}function os(e,t){let s={matchBase:!0,noglobstar:!0};return ke(e,t,s)?!0:(!t.includes("*")&&t.endsWith("/")&&!St.has(t)&&(St.add(t),I({headline:"Directory pattern may be misleading.",body:`For more reliable matching, consider using "${t}*" or "${t}*.<file_extension>" instead.`})),is(t)?ke(e,t.replace(Rt,"templates/**/*$1"),s):!1)}function is(e){return Rt.test(e)}function as(e,t){return t.test(e)}function cs(e){return e.startsWith("/")&&e.endsWith("/")}function ls(e){return new RegExp(e.slice(1,-1))}h();import Ft from"fs/promises";var le=class{notifyPath;isValidUrl;constructor(t){this.notifyPath=t,this.isValidUrl=this.validateUrl(t),this.notifyPath===""&&D("Notification skipped: notifyPath is an empty string")}async notify(t){if(this.notifyPath!=="")try{F(`Notifying filechange listener at ${this.notifyPath}...`),this.isValidUrl?await this.notifyUrl(t):await this.notifyFile(t)}catch(s){L(s);let n=`Failed to notify filechange listener at ${this.notifyPath}`;s instanceof Error&&(n=n.concat(`: ${s.message}`)),D(n)}}async notifyUrl(t){let s=await fetch(this.notifyPath,{method:"POST",body:JSON.stringify({files:[t]}),headers:{"Content-Type":"application/json"}});if(!s.ok)throw new Error(s.statusText)}async notifyFile(t){await Ft.writeFile(this.notifyPath,t),await Ft.utimes(this.notifyPath,new Date,new Date)}validateUrl(t){try{let s=new URL(t);return s.protocol==="http:"||s.protocol==="https:"}catch{return!1}}};h();h();h();import ds from"node:events";var Pt=["assets/**/*.*","locales/**/*.json","blocks/**/*.liquid","snippets/**/*.liquid"];function vt(e){let t=new Map,s=new Set,n=new ds,r=(c,l)=>{n.emit(c,l)},o=async c=>{let l=await ue(e,c),u=de(c,l),f=typeof l=="string"?l:"",T=Buffer.isBuffer(l)?l.toString("base64"):"";return t.set(c,M({key:c,checksum:u,value:f,attachment:T})),l},i=C(Pt,{cwd:e,deep:3,ignore:W}).then(c=>Promise.all(c.map(o))),a=(c,l)=>{let u=V(e,l),f=o(u).then(()=>{let T=t.get(u);return s.add(T.key),T.value??T.attachment??""});st(5).then(()=>{s.delete(u)}).catch(()=>{}),r(c,{fileKey:u,onContent:T=>{f.then(v=>{v&&T(v)}).catch(()=>{})},onSync:T=>{}})},p=c=>{let l=V(e,c);s.delete(l),t.delete(l),r("unlink",{fileKey:l,onSync:u=>u()})},m=new Set(Pt.map(c=>E(e,c.split("/").shift()??"")));return{root:e,files:t,unsyncedFileKeys:s,ready:async()=>i.then(()=>{}),delete:async c=>{t.delete(c)},write:async c=>{t.set(c.key,c)},read:o,addEventListener:(c,l)=>{n.on(c,l)},startWatcher:async()=>{let{default:c}=await import("./chokidar-5RWEYTNQ.js");c.watch([...m],{ignored:W,persistent:!process.env.SHOPIFY_UNIT_TEST,ignoreInitial:!0}).on("add",a.bind(null,"add")).on("change",a.bind(null,"change")).on("unlink",p.bind(null))}}}h();h();var us="https://unpkg.com/@shopify/polaris@13.9.2/build/esm/styles.css";function $t(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function bt(e){return(0,String.raw)`<!DOCTYPE html>
1
+ import{a as U,b as xt}from"./chunk-JLGA3B7P.js";import{a as ht,b as ft,f as Ie,g as ae,h as A,i as ce,k as Et,n as Tt}from"./chunk-HS3VTFW3.js";import{a as M,l as gt,m as yt}from"./chunk-TUWRPDTE.js";import{s as ie,t as W}from"./chunk-GBYDMHZ3.js";import{a as D,b as O,e as nt,g as rt,i as ot,j as it,k as at,n as ct,p as lt,q as dt,r as oe,s as b,u as ut,w as pt}from"./chunk-Q7BOSHWX.js";import{aa as mt}from"./chunk-MFP63IUM.js";import{Aa as H,c as Ke,ya as L}from"./chunk-KYNXMDFU.js";import{A as I,B as te,C as tt,T as st,y as et}from"./chunk-PSSOCUUD.js";import{h as se}from"./chunk-W3BNL2Q5.js";import{Ab as P,Bb as N,O as Xe,Ta as $,Wa as C,Z as $e,bb as ke,ma as k,qb as j,sb as ne,ua as be,wa as Ze,xb as re,ya as Qe}from"./chunk-G5QSVBYP.js";import{d as T,g as V,j as Ve,k as q}from"./chunk-773TIA5M.js";import{e as Ye,g as h}from"./chunk-VKWPEFWQ.js";h();h();h();var rs=".shopifyignore",Rt=/templates\/\*(\.(json|liquid))?$/,St=new Set;function Le(e,t={}){let s=t.ignoreFromFile??[],n=t.ignore??[],r=t.only??[],[o=[],i=[]]=_e(s),[a=[],u=[]]=_e(n),[p=[],c=[]]=_e(r),l=e.filter(B(o,".shopifyignore"));return l=l.filter(B(a,"--ignore")),l=l.filter(B(p,"--only",!0)),i.length>0&&(l=l.concat(e.filter(B(i,".shopifyignore",!0)))),u.length>0&&(l=l.concat(e.filter(B(u,"--ignore",!0)))),c.length>0&&(l=l.filter(B(c,"--only"))),Xe(l,x=>x.key)}function B(e,t,s=!1){return({key:n})=>{if(e.length===0)return!0;let r=e.some(i=>os(n,i)||cs(i)&&as(n,ls(i)));return(s?!r:r)?(P(`Ignoring theme file ${n} via ${t}...`),!1):!0}}async function wt(e){let t=T(e,rs);return await $(t)?(await k(t,{encoding:"utf8"})).split(/(\r\n|\r|\n)/).map(r=>r.trim()).filter(r=>r&&!r.startsWith("#")):[]}function _e(e){let t=e.filter(n=>n.startsWith("!")).map(n=>n.slice(1));return[e.filter(n=>!n.startsWith("!")),t]}function os(e,t){let s={matchBase:!0,noglobstar:!0};return ke(e,t,s)?!0:(!t.includes("*")&&t.endsWith("/")&&!St.has(t)&&(St.add(t),I({headline:"Directory pattern may be misleading.",body:`For more reliable matching, consider using "${t}*" or "${t}*.<file_extension>" instead.`})),is(t)?ke(e,t.replace(Rt,"templates/**/*$1"),s):!1)}function is(e){return Rt.test(e)}function as(e,t){return t.test(e)}function cs(e){return e.startsWith("/")&&e.endsWith("/")}function ls(e){return new RegExp(e.slice(1,-1))}h();import Ft from"fs/promises";var le=class{notifyPath;isValidUrl;constructor(t){this.notifyPath=t,this.isValidUrl=this.validateUrl(t),this.notifyPath===""&&N("Notification skipped: notifyPath is an empty string")}async notify(t){if(this.notifyPath!=="")try{P(`Notifying filechange listener at ${this.notifyPath}...`),this.isValidUrl?await this.notifyUrl(t):await this.notifyFile(t)}catch(s){L(s);let n=`Failed to notify filechange listener at ${this.notifyPath}`;s instanceof Error&&(n=n.concat(`: ${s.message}`)),N(n)}}async notifyUrl(t){let s=await fetch(this.notifyPath,{method:"POST",body:JSON.stringify({files:[t]}),headers:{"Content-Type":"application/json"}});if(!s.ok)throw new Error(s.statusText)}async notifyFile(t){await Ft.writeFile(this.notifyPath,t),await Ft.utimes(this.notifyPath,new Date,new Date)}validateUrl(t){try{let s=new URL(t);return s.protocol==="http:"||s.protocol==="https:"}catch{return!1}}};h();h();h();import ds from"node:events";var Pt=["assets/**/*.*","locales/**/*.json","blocks/**/*.liquid","snippets/**/*.liquid"];function vt(e){let t=new Map,s=new Set,n=new ds,r=(c,l)=>{n.emit(c,l)},o=async c=>{let l=await ue(e,c),m=de(c,l),x=typeof l=="string"?l:"",f=Buffer.isBuffer(l)?l.toString("base64"):"";return t.set(c,M({key:c,checksum:m,value:x,attachment:f})),l},i=C(Pt,{cwd:e,deep:3,ignore:W}).then(c=>Promise.all(c.map(o))),a=(c,l)=>{let m=V(e,l),x=o(m).then(()=>{let f=t.get(m);return s.add(f.key),f.value??f.attachment??""});st(5).then(()=>{s.delete(m)}).catch(()=>{}),r(c,{fileKey:m,onContent:f=>{x.then(g=>{g&&f(g)}).catch(()=>{})},onSync:f=>{}})},u=c=>{let l=V(e,c);s.delete(l),t.delete(l),r("unlink",{fileKey:l,onSync:m=>m()})},p=new Set(Pt.map(c=>T(e,c.split("/").shift()??"")));return{root:e,files:t,unsyncedFileKeys:s,ready:async()=>i.then(()=>{}),delete:async c=>{t.delete(c)},write:async c=>{t.set(c.key,c)},read:o,addEventListener:(c,l)=>{n.on(c,l)},startWatcher:async()=>{let{default:c}=await import("./chokidar-5RWEYTNQ.js");c.watch([...p],{ignored:W,persistent:!process.env.SHOPIFY_UNIT_TEST,ignoreInitial:!0}).on("add",a.bind(null,"add")).on("change",a.bind(null,"change")).on("unlink",u.bind(null))}}}h();h();var us="https://unpkg.com/@shopify/polaris@13.9.2/build/esm/styles.css";function $t(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function bt(e){return(0,String.raw)`<!DOCTYPE html>
2
2
  <html>
3
3
  <head>
4
4
  <title>${e.title}</title>
@@ -66,12 +66,12 @@ import{a as U,b as xt}from"./chunk-JLGA3B7P.js";import{a as ht,b as ft,f as Ie,g
66
66
  </div>
67
67
  </div>
68
68
  </body>
69
- </html>`}h();h();var ps=/<head(\s[^>]*)?>/i,qe="https://cdn.shopify.com/storefront",ms=`${qe}/standard-events.js`,hs=`${qe}/standard-events.dev.js`,kt=`${qe}/standard-events-inspector.js`,It="shopify-cli-standard-events-inspector",fs=new RegExp(`<script\\b[^>]*(?:\\bid=["']${je(It)}["']|\\bsrc=["']${je(kt)}["'])[^>]*>`,"i"),gs=new RegExp(je(ms),"g");function pe(e){return fs.test(e)?e:e.replace(ps,t=>`${t}<script id="${It}" src="${kt}" defer></script>`)}function _t(e){return e.replace(gs,hs)}function je(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}h();var Lt=80;function X(e,t,s){if(!ys(e)||s.type==="theme-extension")return;let n=e.path.length>Lt?`${e.path.substring(0,Lt)}...`:e.path,o=t.headers.get("server-timing")?.match(/cfRequestDuration;dur=([\d.]+)/)?.[1],i=o?`${Math.round(Number(o))}ms`:"",a=Es(t.status),p=e.method.padStart(6);re(ne`• ${ie.format(new Date)} Request ${j.raw("\xBB")} ${p} ${a(String(t.status))} ${n} ${j.gray(i)}`)}function ys(e){let t=[z,J,"/checkouts","/payments"],s=[".js",".css",".json",".map"];if(t.some(o=>e.path.startsWith(o)))return!1;let[n]=e.path.split("?"),r=q(n);return!s.includes(r)}function Es(e){return e<300?j.green:e<400?j.yellow:j.errorText}var J="/cdn/",z="/ext/cdn/",Ce="/api/collect",Ts=/^\/cart\//,xs=/^\/cart(\/|\.js|\.json|$)/,Ae=/^\/checkouts\/(?!internal\/)/,jt=/^\/account(\/login\/multipass(\/[^/]+)?|\/logout)?\/?$/,Ss=new RegExp(`^${J}`),Rs=new RegExp(`^${z}`),ws=/^\/api\/(unstable|\d{4}-\d{2})\/graphql\.json/,Fs=["/.well-known","/shopify/monorail","/mini-profiler-resources","/web-pixels-manager","/web-pixels@","/wpm","/services/",Ce,"/cdn-cgi/challenge-platform"],qt="_shopify_essential",Ps=new RegExp(`${qt}=([^;]*)(;|$)`);function Ct(e,t){return $(async s=>{if(Fs.some(n=>s.path.startsWith(n)))return null;if(vs(s)){let n=s.path.split("?")[0]??"";return De(s,t).then(async r=>{if(X(s,r,t),r.ok){let o=n.split("/").at(-1)??"";if(t.localThemeFileSystem.files.has(`assets/${o}.liquid`)){let i=Z(await r.text(),t);return new Response(i,r)}}return r}).catch(async r=>{let{status:o,statusText:i,...a}=A(r,`Failed to proxy request to ${n}`);return o>=500&&!n.endsWith(".js.map")&&I(a),new Response(r.message,{status:o,statusText:i})})}})}function vs(e){if(e.method!=="GET"||e.path.match(Ts)||e.path.match(Ae)||e.path.match(jt)||e.path.match(Ss)||e.path.match(Rs))return!0;let[t]=e.path.split("?"),s=q(t),n=e.headers.get("accept")??"*/*";return s===".html"||n.includes("text/html")?!1:!!s||n!=="*/*"}function $s(e){let[t]=e.split("?");return!(xs.test(t)||Ae.test(t)||jt.test(t))}function me(e){return e.session.storeFqdn.replace(/\\/g,"\\\\").replace(/\./g,"\\.")}function bs(e){return ws.test(e.path)}function Z(e,t){let s=e,n=`(data-shs-beacon-endpoint=["'])https://${me(t)}${Ce}`,r=new RegExp(n,"g");s=s.replace(r,`$1${Ce}`);let o=new RegExp(`(https?:)?//${me(t)}${J}`,"g");s=s.replace(o,J);let i=/(?:https?:)?\/\/cdn\.shopify\.com\/(.*?\/(assets\/[^?#"'`>\s]+))/g,a=c=>c.startsWith("assets/"),p=new Set([...t.localThemeFileSystem.files.keys()].filter(a)),m=new Set([...t.localThemeExtensionFileSystem.files.keys()].filter(a));return s=s.replace(i,(c,l,u)=>{let f=u&&p.has(u),T=u&&m.has(u)&&l.startsWith("extensions/");return U(u).startsWith("image/")?c:T?`${z}${l}`:f?`${J}${l}`:c}),t.options.standardEventsDevBundle&&(s=_t(s)),s}function ks(e,t){let s=`http://${t.options.host}:${t.options.port}`,n=new RegExp(`data-base-url=["']((?:https?:)?//${me(t)})[^"']*?["']`,"g");return e.replace(n,(r,o)=>r.replace(o,s))}function Is(e,t){let s=new RegExp(`Domain=${me(t)};\\s*`,"gi");return e.map(n=>n.replace(s,""))}async function Q(e,t,s){let n=Ht(e,t);if(n.status>=300&&n.status<400)return n;t.headers.get("content-type")?.includes("application/json")||n.headers.set("content-type","text/html; charset=utf-8");let i=await n.text();return i=Z(i,e),i=ks(i,e),e.options.standardEventsInspector&&(i=pe(i)),s&&(i=s(i)??i),new Response(i,n)}var At=["connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade","expect","content-security-policy","host"];function Ht(e,t){let s=new Response(t.body,t);s.headers.delete("content-length"),s.headers.delete("content-encoding");for(let i of At)s.headers.delete(i);s.headers.delete("access-control-allow-origin"),s.headers.delete("access-control-allow-credentials"),s.headers.delete("access-control-allow-methods"),s.headers.delete("access-control-allow-headers"),s.headers.delete("access-control-expose-headers"),s.headers.delete("access-control-max-age");let n=s.headers.get("Link");n&&s.headers.set("Link",Z(n,e));let r=s.headers.get("Location");if(r){let i=new URL(r,"https://shopify.dev");Ae.test(i.pathname)||(i.searchParams.delete("_fd"),i.searchParams.delete("pb"),s.headers.set("Location",i.href.replace(i.origin,"")))}let o=s.headers.getSetCookie();if(o?.length){s.headers.set("Set-Cookie",Is(o,e).join(","));let i=o.join(",").match(Ps)?.[1];i&&(e.session.sessionCookies[qt]=i)}return s}function He(e){let t=nt(e);for(let n of At)delete t[n];delete t["upgrade-insecure-requests"];let s=rt(e);return s&&(t["X-Forwarded-For"]=s),t}function De(e,t){let s=e.path.replace(new RegExp(z,"g"),"/"),n=e.path.startsWith(z)?"cdn.shopify.com":t.session.storeFqdn,r=new URL(s,`https://${n}`);if(r.hostname!==n)return Promise.reject(new Error(`Request failed: Hostname mismatch. Expected host: ${n}. Resulting URL hostname: ${r.hostname}`));let o=ot(e),i=He(e);return bs(e)||(/\/assets\/[^/]+\.(css|js)$/.test(r.pathname)&&/\?\d+$/.test(r.search)&&(r.search=`?v=${Date.now()}`),r.searchParams.set("_fd","0"),r.searchParams.set("pb","0"),i=ft({...i,...ht(),...n===t.session.storeFqdn?t.session.crawlerSignatureHeaders:{},referer:r.origin,Cookie:Et(t.session,{headers:i}),...t.type==="theme"&&$s(e.path)?{Authorization:`Bearer ${t.session.storefrontToken}`}:{}})),fetch(r,{method:e.method,body:o,duplex:o?"half":void 0,redirect:"manual",headers:i}).then(a=>Ht(t,a)).catch(a=>{throw ae(L(a),r)})}var Oe=0,_s=5;function Ot(e,t){return $(s=>{let[n="/",r=""]=s.path.split("?");return js(s)&&(t.lastRequestedPath=s.path),t.options.errorOverlay!=="silent"&&t.localThemeFileSystem.uploadErrors.size>0?Dt(t,{status:500,statusText:"Internal Server Error"},{title:"Failed to Upload Theme Files",header:"Upload Errors",errors:Array.from(t.localThemeFileSystem.uploadErrors.entries()).map(([i,a])=>({message:i,code:a.join(`
70
- `)}))}):ce(t.session,{method:s.method,path:n,query:[...new URLSearchParams(r)],themeId:String(e.id),sectionId:"",headers:He(s),replaceExtensionTemplates:fe(t),replaceTemplates:Ne(t,n,it(s,"localization")?.toLowerCase())}).then(async i=>{if(i.status>=400&&i.status<500&&!Ls(s)){let a=await qs(s,t,i);if(a)return X(s,a,t),a}return X(s,i,t),Q(t,i,a=>(Cs(i,a,String(e.id)),Oe=0,We(a,t)))}).catch(async i=>{if(i instanceof he&&(F(`Theme ID mismatch: expected ${i.getExpectedThemeId()} but got ${i.getActualThemeId()}; refreshing session...`),H("theme-service:error-page:theme-id-mismatch"),t.session.refresh)){Oe++,Oe>_s&&(tt(new se(i.getMessage())),process.exit(1)),await t.session.refresh();let f=new URLSearchParams(r),T=new URLSearchParams([...f].filter(([Pe])=>!Pe.startsWith("__sfr"))),v=n+(T.toString()?`?${T}`:"");return new Response(null,{status:302,headers:{Location:v}})}let{status:a,statusText:p,cause:m,...c}=A(i,"Failed to render storefront"),[l,...u]=c.headline.split(`
71
- `);return te(c),Dt(t,{status:a,statusText:p},{title:l,header:l,errors:[{message:[...u,m.message].join("<br>"),code:m.stack?.replace(`${m.message}
72
- `,"")??""}]})})})}function Dt(e,t,s){let n=We(bt(s),e);return e.options.standardEventsInspector&&(n=pe(n)),H("theme-service:error-page:rendered"),new Response(n,{...t,headers:t.headers??{"Content-Type":"text/html; charset=utf-8"}})}function Ls(e){let t=new URLSearchParams(e.path.split("?")[1]);return["section_id","sections","app_block_id"].some(s=>t.has(s))}function js(e){return e.headers.get("sec-fetch-mode")==="navigate"}async function qs(e,t,s){F(`Render failed for ${e.path} with ${s.status} (x-request-id: ${s.headers.get("x-request-id")}), trying proxy...`);let n=await De(e,t).catch(r=>new Response(null,A(r)));if(n.status<400)return F(`Proxy status: ${n.status}. Returning proxy response.`),t.options.standardEventsInspector&&(n.headers.get("content-type")??"").includes("text/html")?Q(t,n):n;F(`Proxy status: ${n.status}. Returning render error.`)}function Cs(e,t,s){let n=t.match(/Shopify\.theme\s*=\s*{[^}]+?"id":\s*"?(\d+)"?(}|,)/)?.[1];if(n&&n!==s)throw new he(s,n,e)}var he=class extends Error{response;expectedThemeId;actualThemeId;constructor(t,s,n){super([`Theme ID mismatch: expected ${t} but got ${s}.`,`Request ID: ${n.headers.get("x-request-id")}`,`URL: ${n.url}`,"This is likely related to an issue in upstream Shopify APIs.","Please try again in a few minutes and report this issue:","https://community.shopify.dev/c/shopify-cli-libraries/14"].join(`
73
- `)),this.response=n,this.expectedThemeId=t,this.actualThemeId=s}getMessage(){return this.message}getResponse(){return this.response}getExpectedThemeId(){return this.expectedThemeId}getActualThemeId(){return this.actualThemeId}};h();h();function ge(e,t){let s=new RegExp(`{%-?\\s*${t}\\s*-?%}`),n=new RegExp(`{%-?\\s*end${t}\\s*-?%}`),r=s.exec(e);if(!r)return;let o=r.index+r[0].length;n.lastIndex=o;let i=n.exec(e);if(!i)return;let a=i.index;return e.slice(o,a)}h();function ye(e){let{pathname:t,search:s,searchParams:n}=new URL(e.path,"http://e.c");return{pathname:t,search:s,searchParams:n}}var As={stylesheet:new Map,javascript:new Map};function Nt(e,t){return $(async s=>{if(s.method!=="GET")return;if(Ns(s,t))return Ws(s,t);let{file:n,fileKey:r,isUnsynced:o}=Os(s,t);if(!r)return;let i=U(r);if(i.startsWith("image/")&&s.path.includes("&")&&!o)return;if(ct(s,"X-Local-Asset","true"),!n){o&&N(s,O({statusCode:404,statusMessage:"Not found"}));return}let a=n.value?Buffer.from(Z(n.value,t)):Buffer.from(n.attachment??"","base64");return oe(s,{getContents:()=>a,getMeta:()=>({type:i,size:a.length,mtime:n.stats?.mtime})})})}var Hs=/^(?:\/cdn\/(?!extensions\/).*?)?\/assets\/([^?]+)/,Ds=/^(?:\/(?:ext\/)?cdn\/extensions\/.*?)?\/assets\/([^?]+)/;function Os(e,t){let s=(n,r)=>{let o=e.path.match(n)?.[1];if(o){let i=E("assets",o),a=r.files.get(i),p=r.unsyncedFileKeys.has(i);if(a||p)return{file:a,isUnsynced:p,fileKey:i}}};return s(Hs,t.localThemeFileSystem)??s(Ds,t.localThemeExtensionFileSystem)??{isUnsynced:!1,fileKey:void 0,file:void 0}}function Ns(e,t){return t.type==="theme"&&e.path.includes("/compiled_assets")}function Ws(e,t){switch(ye(e).pathname.split("/").at(-1)){case"styles.css":return Ms(t,e);case"block-scripts.js":return Me(t,e,"block");case"snippet-scripts.js":return Me(t,e,"snippet");case"scripts.js":return Me(t,e,"section");case void 0:break;default:break}}function Ms(e,t){let s=Ee(e,"section"),n=Ee(e,"block"),r=Ee(e,"snippet"),o=[`/*** GENERATED LOCALLY ***/
74
- `];for(let[,a]of[...s,...n,...r]){let p=Wt(a,"stylesheet");p&&o.push(p)}let i=o.join(`
69
+ </html>`}h();h();var ps=/<head(\s[^>]*)?>/i,qe="https://cdn.shopify.com/storefront",ms=`${qe}/standard-events.js`,hs=`${qe}/standard-events.dev.js`,kt=`${qe}/standard-events-inspector.js`,It="shopify-cli-standard-events-inspector",fs=new RegExp(`<script\\b[^>]*(?:\\bid=["']${je(It)}["']|\\bsrc=["']${je(kt)}["'])[^>]*>`,"i"),gs=new RegExp(je(ms),"g");function pe(e){return fs.test(e)?e:e.replace(ps,t=>`${t}<script id="${It}" src="${kt}" defer></script>`)}function _t(e){return e.replace(gs,hs)}function je(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}h();var Lt=80;function X(e,t,s){if(!ys(e)||s.type==="theme-extension")return;let n=e.path.length>Lt?`${e.path.substring(0,Lt)}...`:e.path,o=t.headers.get("server-timing")?.match(/cfRequestDuration;dur=([\d.]+)/)?.[1],i=o?`${Math.round(Number(o))}ms`:"",a=Es(t.status),u=e.method.padStart(6);re(ne`• ${ie.format(new Date)} Request ${j.raw("\xBB")} ${u} ${a(String(t.status))} ${n} ${j.gray(i)}`)}function ys(e){let t=[z,J,"/checkouts","/payments"],s=[".js",".css",".json",".map"];if(t.some(o=>e.path.startsWith(o)))return!1;let[n]=e.path.split("?"),r=q(n);return!s.includes(r)}function Es(e){return e<300?j.green:e<400?j.yellow:j.errorText}var J="/cdn/",z="/ext/cdn/",Ce="/api/collect",Ts=/^\/cart\//,xs=/^\/cart(\/|\.js|\.json|$)/,Ae=/^\/checkouts\/(?!internal\/)/,jt=/^\/account(\/login\/multipass(\/[^/]+)?|\/logout)?\/?$/,Ss=new RegExp(`^${J}`),Rs=new RegExp(`^${z}`),ws=/^\/api\/(unstable|\d{4}-\d{2})\/graphql\.json/,Fs=["/.well-known","/shopify/monorail","/mini-profiler-resources","/web-pixels-manager","/web-pixels@","/wpm","/services/",Ce,"/cdn-cgi/challenge-platform"],qt="_shopify_essential",Ps=new RegExp(`${qt}=([^;]*)(;|$)`);function Ct(e,t){return b(async s=>{if(Fs.some(n=>s.path.startsWith(n)))return null;if(vs(s)){let n=s.path.split("?")[0]??"";return Ne(s,t).then(async r=>{if(X(s,r,t),r.ok){let o=n.split("/").at(-1)??"";if(t.localThemeFileSystem.files.has(`assets/${o}.liquid`)){let i=Z(await r.text(),t);return new Response(i,r)}}return r}).catch(async r=>{let{status:o,statusText:i,...a}=A(r,`Failed to proxy request to ${n}`);return o>=500&&!n.endsWith(".js.map")&&I(a),new Response(r.message,{status:o,statusText:i})})}})}function vs(e){if(e.method!=="GET"||e.path.match(Ts)||e.path.match(Ae)||e.path.match(jt)||e.path.match(Ss)||e.path.match(Rs))return!0;let[t]=e.path.split("?"),s=q(t),n=e.headers.get("accept")??"*/*";return s===".html"||n.includes("text/html")?!1:!!s||n!=="*/*"}function $s(e){let[t]=e.split("?");return!(xs.test(t)||Ae.test(t)||jt.test(t))}function me(e){return e.session.storeFqdn.replace(/\\/g,"\\\\").replace(/\./g,"\\.")}function bs(e){return ws.test(e.path)}function Z(e,t){let s=e,n=`(data-shs-beacon-endpoint=["'])https://${me(t)}${Ce}`,r=new RegExp(n,"g");s=s.replace(r,`$1${Ce}`);let o=new RegExp(`(https?:)?//${me(t)}${J}`,"g");s=s.replace(o,J);let i=/(?:https?:)?\/\/cdn\.shopify\.com\/(.*?\/(assets\/[^?#"'`>\s]+))/g,a=c=>c.startsWith("assets/"),u=new Set([...t.localThemeFileSystem.files.keys()].filter(a)),p=new Set([...t.localThemeExtensionFileSystem.files.keys()].filter(a));return s=s.replace(i,(c,l,m)=>{let x=m&&u.has(m),f=m&&p.has(m)&&l.startsWith("extensions/");return U(m).startsWith("image/")?c:f?`${z}${l}`:x?`${J}${l}`:c}),t.options.standardEventsDevBundle&&(s=_t(s)),s}function ks(e,t){let s=`http://${t.options.host}:${t.options.port}`,n=new RegExp(`data-base-url=["']((?:https?:)?//${me(t)})[^"']*?["']`,"g");return e.replace(n,(r,o)=>r.replace(o,s))}function Is(e,t){let s=new RegExp(`Domain=${me(t)};\\s*`,"gi");return e.map(n=>n.replace(s,""))}async function Q(e,t,s){let n=Ht(e,t);if(n.status>=300&&n.status<400)return n;t.headers.get("content-type")?.includes("application/json")||n.headers.set("content-type","text/html; charset=utf-8");let i=await n.text();return i=Z(i,e),i=ks(i,e),e.options.standardEventsInspector&&(i=pe(i)),s&&(i=s(i)??i),new Response(i,n)}var At=["connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade","expect","content-security-policy","host"];function Ht(e,t){let s=new Response(t.body,t);s.headers.delete("content-length"),s.headers.delete("content-encoding");for(let i of At)s.headers.delete(i);s.headers.delete("access-control-allow-origin"),s.headers.delete("access-control-allow-credentials"),s.headers.delete("access-control-allow-methods"),s.headers.delete("access-control-allow-headers"),s.headers.delete("access-control-expose-headers"),s.headers.delete("access-control-max-age");let n=s.headers.get("Link");n&&s.headers.set("Link",Z(n,e));let r=s.headers.get("Location");if(r){let i=new URL(r,"https://shopify.dev");Ae.test(i.pathname)||(i.searchParams.delete("_fd"),i.searchParams.delete("pb"),s.headers.set("Location",i.href.replace(i.origin,"")))}let o=s.headers.getSetCookie();if(o?.length){s.headers.set("Set-Cookie",Is(o,e).join(","));let i=o.join(",").match(Ps)?.[1];i&&(e.session.sessionCookies[qt]=i)}return s}function He(e){let t=nt(e);for(let n of At)delete t[n];delete t["upgrade-insecure-requests"];let s=rt(e);return s&&(t["X-Forwarded-For"]=s),t}function Ne(e,t){let s=e.path.replace(new RegExp(z,"g"),"/"),n=e.path.startsWith(z)?"cdn.shopify.com":t.session.storeFqdn,r=new URL(s,`https://${n}`);if(r.hostname!==n)return Promise.reject(new Error(`Request failed: Hostname mismatch. Expected host: ${n}. Resulting URL hostname: ${r.hostname}`));let o=ot(e),i=He(e);return bs(e)||(/\/assets\/[^/]+\.(css|js)$/.test(r.pathname)&&/\?\d+$/.test(r.search)&&(r.search=`?v=${Date.now()}`),r.searchParams.set("_fd","0"),r.searchParams.set("pb","0"),i=ft({...i,...ht(),...n===t.session.storeFqdn?t.session.crawlerSignatureHeaders:{},referer:r.origin,Cookie:Et(t.session,{headers:i}),...t.type==="theme"&&$s(e.path)?{Authorization:`Bearer ${t.session.storefrontToken}`}:{}})),fetch(r,{method:e.method,body:o,duplex:o?"half":void 0,redirect:"manual",headers:i}).then(a=>Ht(t,a)).catch(a=>{throw ae(L(a),r)})}var De=0,_s=5;function Dt(e,t){return b(s=>{let[n="/",r=""]=s.path.split("?");return js(s)&&(t.lastRequestedPath=s.path),t.options.errorOverlay!=="silent"&&t.localThemeFileSystem.uploadErrors.size>0?Nt(t,{status:500,statusText:"Internal Server Error"},{title:"Failed to Upload Theme Files",header:"Upload Errors",errors:Array.from(t.localThemeFileSystem.uploadErrors.entries()).map(([i,a])=>({message:i,code:a.join(`
70
+ `)}))}):ce(t.session,{method:s.method,path:n,query:[...new URLSearchParams(r)],themeId:String(e.id),sectionId:"",headers:He(s),replaceExtensionTemplates:fe(t),replaceTemplates:Oe(t,n,it(s,"localization")?.toLowerCase())}).then(async i=>{if(i.status>=400&&i.status<500&&!Ls(s)){let a=await qs(s,t,i);if(a)return X(s,a,t),a}return X(s,i,t),Q(t,i,a=>(Cs(i,a,String(e.id)),De=0,We(a,t)))}).catch(async i=>{if(i instanceof he&&(P(`Theme ID mismatch: expected ${i.getExpectedThemeId()} but got ${i.getActualThemeId()}; refreshing session...`),H("theme-service:error-page:theme-id-mismatch"),t.session.refresh)){De++,De>_s&&(tt(new se(i.getMessage())),process.exit(1)),await t.session.refresh();let x=new URLSearchParams(r),f=new URLSearchParams([...x].filter(([Pe])=>!Pe.startsWith("__sfr"))),g=n+(f.toString()?`?${f}`:"");return new Response(null,{status:302,headers:{Location:g}})}let{status:a,statusText:u,cause:p,...c}=A(i,"Failed to render storefront"),[l,...m]=c.headline.split(`
71
+ `);return te(c),Nt(t,{status:a,statusText:u},{title:l,header:l,errors:[{message:[...m,p.message].join("<br>"),code:p.stack?.replace(`${p.message}
72
+ `,"")??""}]})})})}function Nt(e,t,s){let n=We(bt(s),e);return e.options.standardEventsInspector&&(n=pe(n)),H("theme-service:error-page:rendered"),new Response(n,{...t,headers:t.headers??{"Content-Type":"text/html; charset=utf-8"}})}function Ls(e){let t=new URLSearchParams(e.path.split("?")[1]);return["section_id","sections","app_block_id"].some(s=>t.has(s))}function js(e){return e.headers.get("sec-fetch-mode")==="navigate"}async function qs(e,t,s){P(`Render failed for ${e.path} with ${s.status} (x-request-id: ${s.headers.get("x-request-id")}), trying proxy...`);let n=await Ne(e,t).catch(r=>new Response(null,A(r)));if(n.status<400)return P(`Proxy status: ${n.status}. Returning proxy response.`),t.options.standardEventsInspector&&(n.headers.get("content-type")??"").includes("text/html")?Q(t,n):n;P(`Proxy status: ${n.status}. Returning render error.`)}function Cs(e,t,s){let n=t.match(/Shopify\.theme\s*=\s*{[^}]+?"id":\s*"?(\d+)"?(}|,)/)?.[1];if(n&&n!==s)throw new he(s,n,e)}var he=class extends Error{response;expectedThemeId;actualThemeId;constructor(t,s,n){super([`Theme ID mismatch: expected ${t} but got ${s}.`,`Request ID: ${n.headers.get("x-request-id")}`,`URL: ${n.url}`,"This is likely related to an issue in upstream Shopify APIs.","Please try again in a few minutes and report this issue:","https://community.shopify.dev/c/shopify-cli-libraries/14"].join(`
73
+ `)),this.response=n,this.expectedThemeId=t,this.actualThemeId=s}getMessage(){return this.message}getResponse(){return this.response}getExpectedThemeId(){return this.expectedThemeId}getActualThemeId(){return this.actualThemeId}};h();h();function ge(e,t){let s=new RegExp(`{%-?\\s*${t}\\s*-?%}`),n=new RegExp(`{%-?\\s*end${t}\\s*-?%}`),r=s.exec(e);if(!r)return;let o=r.index+r[0].length;n.lastIndex=o;let i=n.exec(e);if(!i)return;let a=i.index;return e.slice(o,a)}h();function ye(e){let{pathname:t,search:s,searchParams:n}=new URL(e.path,"http://e.c");return{pathname:t,search:s,searchParams:n}}var As={stylesheet:new Map,javascript:new Map};function Ot(e,t){return b(async s=>{if(s.method!=="GET")return;if(Os(s,t))return Ws(s,t);let{file:n,fileKey:r,isUnsynced:o}=Ds(s,t);if(!r)return;let i=U(r);if(i.startsWith("image/")&&s.path.includes("&")&&!o)return;if(ct(s,"X-Local-Asset","true"),!n){o&&O(s,D({statusCode:404,statusMessage:"Not found"}));return}let a=n.value?Buffer.from(Z(n.value,t)):Buffer.from(n.attachment??"","base64");return oe(s,{getContents:()=>a,getMeta:()=>({type:i,size:a.length,mtime:n.stats?.mtime})})})}var Hs=/^(?:\/cdn\/(?!extensions\/).*?)?\/assets\/([^?]+)/,Ns=/^(?:\/(?:ext\/)?cdn\/extensions\/.*?)?\/assets\/([^?]+)/;function Ds(e,t){let s=(n,r)=>{let o=e.path.match(n)?.[1];if(o){let i=T("assets",o),a=r.files.get(i),u=r.unsyncedFileKeys.has(i);if(a||u)return{file:a,isUnsynced:u,fileKey:i}}};return s(Hs,t.localThemeFileSystem)??s(Ns,t.localThemeExtensionFileSystem)??{isUnsynced:!1,fileKey:void 0,file:void 0}}function Os(e,t){return t.type==="theme"&&e.path.includes("/compiled_assets")}function Ws(e,t){switch(ye(e).pathname.split("/").at(-1)){case"styles.css":return Ms(t,e);case"block-scripts.js":return Me(t,e,"block");case"snippet-scripts.js":return Me(t,e,"snippet");case"scripts.js":return Me(t,e,"section");case void 0:break;default:break}}function Ms(e,t){let s=Ee(e,"section"),n=Ee(e,"block"),r=Ee(e,"snippet"),o=[`/*** GENERATED LOCALLY ***/
74
+ `];for(let[,a]of[...s,...n,...r]){let u=Wt(a,"stylesheet");u&&o.push(u)}let i=o.join(`
75
75
  `);return oe(t,{getContents:()=>i,getMeta:()=>({type:"text/css",size:Buffer.byteLength(i),mtime:new Date})})}function Me(e,t,s){let n=Ee(e,s),r=`${s}s`,o=[`
76
76
  /*** GENERATED LOCALLY ***/
77
77
 
@@ -86,9 +86,9 @@ import{a as U,b as xt}from"./chunk-JLGA3B7P.js";import{a as ht,b as ft,f as Ie,g
86
86
  for (var i = 0; i < ${r}.length; i++) {
87
87
  __${r}__[${r}[i]] = true;
88
88
  }
89
- })();`];for(let[a,p]of n){let m=a.split("/").pop()?.replace(".liquid",""),c=Wt(p,"javascript")??"";m&&c&&o.push(`
89
+ })();`];for(let[a,u]of n){let p=a.split("/").pop()?.replace(".liquid",""),c=Wt(u,"javascript")??"";p&&c&&o.push(`
90
90
  (function () {
91
- if (!__${r}__["${m}"] && !Shopify.designMode) return;
91
+ if (!__${r}__["${p}"] && !Shopify.designMode) return;
92
92
  try {
93
93
  ${c}
94
94
  } catch (e) {
@@ -96,8 +96,8 @@ import{a as U,b as xt}from"./chunk-JLGA3B7P.js";import{a as ht,b as ft,f as Ie,g
96
96
  }
97
97
  })();`)}o.push("})();");let i=o.join(`
98
98
  `);return oe(t,{getContents:()=>i,getMeta:()=>({type:"text/javascript",size:Buffer.byteLength(i),mtime:new Date})})}function Ee(e,t){return[...e.localThemeFileSystem.files.entries()].filter(([s])=>s.endsWith(".liquid")&&s.startsWith(`${t}s/`)).sort(([s],[n])=>s.localeCompare(n))}function Wt(e,t){let s=As[t],n=s.get(e.key);if(n?.checksum===e.checksum)return n.content;if(s.delete(e.key),!e.value)return;let r=[`/* ${e.key} */`],o=ge(e.value??"",t)?.trimEnd();if(o&&r.push(o),r.length>1){let i=r.join(`
99
- `);return s.set(e.key,{checksum:e.checksum,content:i}),i}}h();import*as Mt from"node:os";function Us(e,t){let s=new Set,n=`:${t}`,r=e.toLowerCase().trim();if(s.add(`${r}${n}`),["localhost","127.0.0.1","::1","0.0.0.0"].includes(r)&&(s.add(`localhost${n}`),s.add(`127.0.0.1${n}`),s.add(`[::1]${n}`)),r==="0.0.0.0"||r==="::")for(let i of Object.values(Mt.networkInterfaces()))for(let a of i??[]){let p=a.address.toLowerCase().split("%")[0],c=a.family==="IPv6"?`[${p}]`:p;s.add(`${c}${n}`)}return s}function Bs(e){if(e)return e.toLowerCase().replace(/\.(?=:\d|$)/,"")}function Ut(e,t){let s=Us(e,t);return $(n=>{let r=n.node.req.headers.host,o=Bs(r);if(!o||!s.has(o))return N(n,O({statusCode:400,statusMessage:"Bad Request",message:"Invalid Host header"}))})}h();function Bt(){return Jt()}function Cr(){return Jt()}function Jt(){return{root:"",files:new Map,unsyncedFileKeys:new Set,uploadErrors:new Map,ready:()=>Promise.resolve(),delete:async e=>{},read:async e=>"",write:async e=>{},stat:async e=>({mtime:new Date,size:1}),addEventListener:()=>{},startWatcher:async()=>{}}}import{createServer as Js}from"node:http";async function Gr(e,t){let s=await Ys(e,t);return await Gs(e,s),zs(e,s)}function zs(e,t){let s=ut();s.use(Ut(t.options.host,t.options.port)),s.use(zt(e,t)),s.use(Nt(e,t)),s.use(Ct(e,t)),s.use(Ot(e,t));let n=Js(pt(s));return{dispatch:s.handler.bind(s),start:async()=>new Promise(r=>n.listen({port:t.options.port,host:t.options.host},()=>r({close:async()=>{await Promise.all([new Promise(o=>{n.closeAllConnections(),n.close(o)})])}})))}}async function Ys(e,t){let{adminSession:s,storefrontPassword:n,themeExtensionPort:r,themeExtensionDirectory:o,crawlerSignatureHeaders:i}=t,a="127.0.0.1",p=r??9293,m=Bt(),c=vt(o);return await c.ready(),{session:await Tt(e.id.toString(),s,void 0,n,i),localThemeFileSystem:m,localThemeExtensionFileSystem:c,directory:o,type:"theme-extension",lastRequestedPath:"",options:{themeEditorSync:!1,noDelete:!1,ignore:[],only:[],host:a,port:p,liveReload:"hot-reload",standardEventsDevBundle:!1,standardEventsInspector:!1,open:!1,errorOverlay:"default"}}}async function Gs(e,t){let s=t.localThemeExtensionFileSystem,n=({fileKey:r,onContent:o,onSync:i})=>{o(()=>{Te(e,t,i,{type:"update",key:r,payload:{isThemeExtension:!0}})})};return s.addEventListener("add",n),s.addEventListener("change",n),s.ready().then(async()=>s.startWatcher())}function fe(e){let t={},s=e.localThemeExtensionFileSystem;for(let n of s.unsyncedFileKeys){let r=s.files.get(n),o=r?.value??r?.attachment;o&&(t[n]=o)}return t}var Re=Ge(mt(),1);import Vs from"node:events";var Ue=new Map,K=new Map;function Yt(e,t){let s=(0,Re.parseJSON)(t,null,!0);if(!s)return;let n=s?.sections;n&&!e.startsWith("locales/")?K.set(e,Object.entries(n||{}).map(([r,{type:o}])=>[o,r])):K.delete(e)}function Be(e){return!e.startsWith("assets/")&&[".liquid",".json"].includes(q(e))}function Ne(e,t,s){let n={},r=/^templates\/.+\.json$/,o=t?`${E("templates",t.replace(/^\//,"").replace(/\.html$/,"")||"index")}.json`:"",i=!!t&&e.localThemeFileSystem.files.has(o),a=/^locales\/.+\.json$/,p=!!s&&(e.localThemeFileSystem.files.has(`locales/${s}.json`)||e.localThemeFileSystem.files.has(`locales/${s}.default.json`));for(let m of e.localThemeFileSystem.unsyncedFileKeys)if(Be(m)){if(i&&r.test(m)){if(m!==o)continue}else if(a.test(m)){if(p){if(!m.startsWith(`locales/${s}.`))continue}else if(!m.includes(".default."))continue}n[m]=e.localThemeFileSystem.files.get(m)?.value??""}return n}function uo(e,t){let s=({fileKey:r,onContent:o,onSync:i})=>{let a=q(r);o(p=>{!en(r)&&Be(r)&&a===".json"&&Yt(r,p),Te(e,t,i,{type:"update",key:r,payload:Qs(r,t)})})},n=({fileKey:r,onSync:o})=>{K.delete(r),Te(e,t,o,{type:"delete",key:r})};return t.localThemeFileSystem.addEventListener("add",s),t.localThemeFileSystem.addEventListener("change",s),t.localThemeFileSystem.addEventListener("unlink",n),t.localThemeFileSystem.ready().then(async()=>{let r=[...t.localThemeFileSystem.files];return Promise.allSettled(r.map(async([o,i])=>{if(o.endsWith(".json")){let a=i.value??await t.localThemeFileSystem.read(o);a&&typeof a=="string"&&Yt(o,a)}else o.endsWith(".liquid")&&Zt(i)}))})}var Xs="1",Vt=new Vs;function Se(e){Vt.emit("hot-reload",{...e,version:Xs})}function zt(e,t){return $(s=>{let n=s.headers.get("accept")==="text/event-stream",r=ye(s).searchParams;if(n){let o=dt(s);return Vt.on("hot-reload",i=>{o.push(JSON.stringify(i)).catch(a=>{I({headline:"Failed to send HotReload event.",body:a.stack})})}),Se({type:"open",pid:String(process.pid),themeId:String(e.id)}),o.send().then(()=>o.flush())}if(r.has("hr-log")){let o=(0,Re.parseJSON)(r.get("hr-log")??"",null);return o&&(o.headline=`[HotReload] ${o.headline}`,o.type==="error"?te(o):o.type==="warn"?I(o):o.type==="info"?et(o):I({headline:`Unknown HotReload log type: ${o.type}`})),null}if(s.path===Xt)return k(we()).then(o=>at(s,o,"application/javascript")).catch(o=>N(s,O({cause:o})));if(r.has("section_id")||r.has("app_block_id")){let o=r.get("section_key")??"",i=r.get("section_id")??"",a=r.get("app_block_id")??"",p=s.path.split("?")[0]??"",m=new URLSearchParams(r);if(m.delete("section_key"),m.delete("section_id"),m.delete("app_block_id"),m.delete("_fd"),m.delete("pb"),i===""&&a==="")return;let c={};if(i){let l=t.localThemeFileSystem.unsyncedFileKeys;if(l.has(o)){let u=t.localThemeFileSystem.files.get(o)?.value;if(!u)return"";c[o]=u}for(let u of l)if(u.endsWith(".json")){for(let[f,T]of K.get(u)??[])if(i.endsWith(`__${T}`)){let v=t.localThemeFileSystem.files.get(u)?.value;v&&(c[u]=v);continue}}}return ce(t.session,{method:s.method,path:p??"/",query:[...m.entries()],themeId:String(e.id),sectionId:i,appBlockId:a,replaceTemplates:c,headers:lt(s),replaceExtensionTemplates:fe(t)}).then(async l=>{if(!l.ok)throw H("theme-service:hot-reload:section:render-failed"),ae(l);return Q(t,l)}).catch(async l=>{let{status:u,statusText:f,...T}=A(L(l),"Failed to render section on Hot Reload");return H("theme-service:hot-reload:section:render-error"),a||I(T),new Response(null,{status:u,statusText:f})})}})}var ee=(e,t)=>Se({themeId:String(e),type:"full",key:t});function Te(e,t,s,n){let r=()=>ee(e.id,n.key);if(t.options.liveReload==="off")return;if(t.options.liveReload==="full-page"){s(r);return}let o=String(e.id);Se({sync:"local",themeId:o,...n}),s(()=>Se({sync:"remote",themeId:o,...n}),r)}function Zs(e,t){let s=new Set;if(e.endsWith(".json")){let n=t.localThemeFileSystem.files.get(e)?.value;if(n){let r=(0,Re.parseJSON)(n,null,!0)?.sections;for(let o of Object.keys(r??{}))s.add(o)}}else{let n=e.match(/^sections\/(.+)\.liquid$/)?.[1];if(n)for(let[r,o]of K)for(let[i,a]of o)i===n&&s.add(a)}return[...s]}function Qs(e,t){let[s]=e.split("/"),n=t.localThemeFileSystem.files.get(e);return{sectionNames:s==="sections"?Zs(e,t):[],replaceTemplates:Be(e)?Ne(t):{},updatedFileParts:n&&Zt(n)}}var xe="hot-reload-client",Ks="/cdn/shopifycloud/theme-hot-reload/theme-hot-reload.js",Gt=new RegExp(`<script id="${xe}"[^>]*>[^<]*</script>`),Xt="/@shopify/theme-hot-reload";function We(e,t){return t.options.liveReload==="off"?e.replace(Gt,""):process.env.SHOPIFY_CLI_LOCAL_HOT_RELOAD?e.replace(Gt,"").replace(/<\/head>/,`<script id="${xe}" src="${Xt}" defer></script></head>`):e.includes(`<script id="${xe}"`)?e:e.replace(/<\/head>/,`<script id="${xe}" src="${Ks}" defer></script></head>`)}function en(e){return e.startsWith("assets/")}function Zt(e){if(!(["sections/","snippets/","blocks/"].some(c=>e.key.startsWith(c))&&e.key.endsWith(".liquid")))return;let n={stylesheetTag:!1,javascriptTag:!1,schemaTag:!1,liquid:!1},r={checksum:e.checksum,liquid:"",stylesheetTag:"",javascriptTag:"",schemaTag:""},o=Ue.get(e.key);if(o?.checksum===e.checksum||(Ue.delete(e.key),!e.value))return n;let i=["stylesheet","javascript","schema"],a=c=>c?.replace(/\s+/g," ").trim(),p=e.value,m=(c,l)=>{p=p.replace(l,"");let u=a(l),f=`${c}Tag`;n[f]=!o||u!==o[f],r[f]=u};for(let c of i){let l=ge(e.value??"",c);l&&m(c,l)}return p=a(p.replace(/<!--[\s\S]*?-->/g,"").replace(/{%\s*comment\s*%}[\s\S]*?{%\s*endcomment\s*%}/g,"").replace(/{%\s*doc\s*%}[\s\S]*?{%\s*enddoc\s*%}/g,"")),r.liquid=p,n.liquid=!o||p!==o.liquid,Ue.set(e.key,r),n}h();var Qt=Ge(mt(),1);function tn(e){return(e.startsWith("templates/")||e.startsWith("sections/"))&&e.endsWith(".json")}async function Kt(e,t,s){if(tn(s)){let n=E(e,"listings",t,s);if(await P(n))return n}}async function es(e,t){let s=E(e,"config","settings_data.json"),n=await k(s,{encoding:"utf8"}),r=(0,Qt.parseJSON)(n,null,!0);return r?(r.current=$e(t),JSON.stringify(r,null,2)):n}async function Eo(e,t){let s=E(e,"listings"),n=E(s,t);if(await P(n))return;let o=[];await P(s)&&(o=await C("*",{cwd:s,onlyDirectories:!0,deep:1}));let i=o.length>0?`Available presets: ${o.map(a=>`"${$e(a)}"`).join(", ")}`:'No presets found under "listings/"';throw new se(`Listing preset "${t}" was not found. ${i}.`,`Add the preset to config/settings_data.json and its corresponding "listings/${t}" folder, or remove the --listing flag to use the default theme settings.`)}import sn from"node:events";import{fileURLToPath as nn}from"node:url";var rn=250,ts=["assets/**/*.*","config/**/*.json","layout/**/*.liquid","locales/**/*.json","sections/**/*.{liquid,json}","blocks/**/*.liquid","snippets/**/*.liquid","templates/**/*.{liquid,json}","templates/customers/**/*.{liquid,json}"],b={layoutLiquidRegex:/^layout\/.+\.liquid$/,sectionLiquidRegex:/^sections\/.+\.liquid$/,blockLiquidRegex:/^blocks\/.+\.liquid$/,configSchemaRegex:/^config\/settings_schema\.json$/,configDataRegex:/^config\/settings_data\.json$/,sectionJsonRegex:/^sections\/.+\.json$/,templateJsonRegex:/^templates\/.+\.json$/,jsonRegex:/^(?!config\/).*\.json$/,contextualizedJsonRegex:/\.context\.[^.]+\.json$/i,staticAssetRegex:/^assets\/(?!.*\.liquid$)/};function Ho(e,t){let s=new Map,n=new Map,r=new Set,o={ignoreFromFile:[],ignore:t?.filters?.ignore??[],only:t?.filters?.only??[]},i=new sn,a=(d,g)=>{i.emit(d,g)},p=t?.notify?new le(t.notify):void 0,m=async d=>{let g=t?.listing?await an(e,d,t.listing):await ue(e,d),y=de(d,g);return s.set(d,M({key:d,checksum:y,value:typeof g=="string"?g:"",attachment:Buffer.isBuffer(g)?g.toString("base64"):""})),g},c=C(ts,{cwd:e,deep:3,ignore:W}).then(d=>Promise.all([wt(e),...d.map(m)])).then(([d])=>{Array.isArray(d)&&o.ignoreFromFile.push(...d)}),l=d=>V(e,d),u=d=>Le([{key:d}],o).length===0;function f(d,g,y,x){if(process.env.SHOPIFY_CLI_LOCAL_HOT_RELOAD&&x===we()){ee(g,x);return}let R=l(x);if(t?.listing&&R.startsWith(`listings/${t.listing}/`)){let S=R.replace(`listings/${t.listing}/`,"");if(S.startsWith("templates/")||S.startsWith("sections/"))R=S;else return}T(R).then(()=>{switch(d){case"add":case"change":return v(d,g,y,R);case"unlink":return Pe(g,y,R,n)}}).catch(S=>{D(`Error handling file event for ${R}: ${S}`)})}function T(d){return p?.notify(d)??Promise.resolve()}let v=(d,g,y,x)=>{if(u(x))return;let R=s.get(x)?.checksum,S=m(x).then(async()=>{let w=s.get(x);if(w)return w.checksum!==R&&r.add(x),{value:w.value||void 0,attachment:w.attachment}}),_=S.then(w=>{if(w)return on(r,n,x,g,y)(w)}).catch(Ie(x,"upload"));a(d,{fileKey:x,onContent:w=>{S.then(Y=>{r.has(x)&&w(Y?.value??Y?.attachment??"")}).catch(()=>{})},onSync:(w,Y)=>{_.then(G=>{G?w():Y?.()}).catch(()=>{})}})},Pe=(d,g,y,x)=>{if(u(y))return;x.delete(y),s.delete(y),r.add(y);let R=t?.noDelete?Promise.resolve():gt(Number(d),[y],g).then(async S=>{if(!S[0]?.success)throw new Error(`Failed to delete file "${y}" from remote theme.`);return r.delete(y),ss("delete",y),!0}).catch(S=>(Ie(y,"delete")(S),!1));a("unlink",{fileKey:y,onSync:S=>{R.then(_=>{_&&S()}).catch(()=>{})}})},ve=new Set(ts.map(d=>E(e,d.split("/").shift()??"")));return t?.listing&&ve.add(E(e,"listings",t.listing)),process.env.SHOPIFY_CLI_LOCAL_HOT_RELOAD&&ve.add(we()),{root:e,files:s,unsyncedFileKeys:r,uploadErrors:n,ready:()=>c,delete:async d=>{s.delete(d),await cn(e,d)},write:async d=>{let g=(d.key.startsWith("templates/")||d.key.startsWith("sections/"))&&d.key.endsWith(".json");if(t?.listing&&g){let y=E("listings",t.listing,d.key),x=E(e,y),R=await P(x);s.set(d.key,M({key:d.key,checksum:d.checksum,value:d.value??"",attachment:d.attachment??""})),R?await Je(e,{...d,key:y}):await Je(e,d);return}s.set(d.key,M({key:d.key,checksum:d.checksum,value:d.value??"",attachment:d.attachment??""})),await Je(e,d)},read:m,applyIgnoreFilters:d=>Le(d,o),addEventListener:(d,g)=>{i.on(d,g)},startWatcher:async(d,g)=>{let{default:y}=await import("./chokidar-5RWEYTNQ.js"),x=y.watch([...ve],{ignored:W,persistent:!process.env.SHOPIFY_UNIT_TEST,ignoreInitial:!0}),R=new Map,S=(_,w)=>{let G=`${l(w)}:${_}`,Ye=R.get(G);Ye&&clearTimeout(Ye);let ns=setTimeout(()=>{R.delete(G),f(_,d,g,w)},rn);R.set(G,ns)};x.on("add",S.bind(null,"add")).on("change",S.bind(null,"change")).on("unlink",S.bind(null,"unlink")).on("error",_=>{D(`File watcher error: ${_}`),L("theme-service:file-watcher:error")})}}}function on(e,t,s,n,r){return async o=>{if(!e.has(s))return!1;let[i]=await yt(Number(n),[{key:s,...o}],r);if(!i?.success){let a=i?.errors?.asset??["Response was not successful."];throw t.set(s,a),ee(n,s),new Error(a.join(`
100
- `))}return t.delete(s)&&ee(n,s),e.delete(s),ss("update",s),!0}}async function Je(e,{key:t,attachment:s,value:n}){let r=E(e,t);if(await ln(r),s){let o=Buffer.from(s,"base64");await be(r,o,{encoding:"base64"})}else await be(r,n??"")}async function ue(e,t){let s=Fe(t)?{encoding:"utf8"}:{},n=E(e,t);if(!await P(n)){F(`File ${n} can't be read because it doesn't exist...`);return}return k(n,s)}async function an(e,t,s){if(t==="config/settings_data.json")return es(e,s);let n=await Kt(e,s,t);if(n){let r=Fe(t)?{encoding:"utf8"}:{};return k(n,r)}return ue(e,t)}async function cn(e,t){let s=E(e,t);if(!await P(s)){F(`File ${s} can't be removed because it doesn't exist...`);return}await Qe(s)}function Do(e){let t=[],s=[],n=[],r=[],o=[],i=[],a=[],p=[],m=[],c=[],l=[];return e.forEach(u=>{let f=u.key;f.endsWith(".liquid")?b.sectionLiquidRegex.test(f)?t.push(u):b.blockLiquidRegex.test(f)?c.push(u):b.layoutLiquidRegex.test(f)?l.push(u):s.push(u):b.configSchemaRegex.test(f)?a.push(u):b.configDataRegex.test(f)?p.push(u):b.jsonRegex.test(f)?b.contextualizedJsonRegex.test(f)?i.push(u):b.sectionJsonRegex.test(f)?n.push(u):b.templateJsonRegex.test(f)?r.push(u):o.push(u):b.staticAssetRegex.test(f)&&m.push(u)}),{sectionLiquidFiles:t,otherLiquidFiles:s,sectionJsonFiles:n,templateJsonFiles:r,contextualizedJsonFiles:i,otherJsonFiles:o,configSchemaFile:a,configDataFile:p,staticAssetFiles:m,blockLiquidFiles:c,layoutFiles:l}}function Fe(e){return xt({liquid:"application/liquid",sass:"text/x-sass",scss:"text/x-scss"}),["application/javascript","application/json","application/liquid","text/css","text/x-sass","text/x-scss","image/svg+xml"].includes(U(e))}async function Oo(e){let t=new Set(await C("*",{cwd:e,deep:1,onlyDirectories:!0}));return["config","layout","templates"].every(n=>t.has(n))}async function ln(e){let t=dn(e);await P(t)||await Ze(t)}function dn(e){let t=Ve(e),s=e.lastIndexOf(t);return e.substring(0,s)}function ss(e,t){re(ne`• ${ie.format(new Date)} Synced ${j.raw("\xBB")} ${e} ${t}`)}function we(){let e=process.env.SHOPIFY_CLI_LOCAL_HOT_RELOAD;return!e||e==="true"?E(nn(import.meta.url.split("/cli/")[0]??""),"theme-hot-reload/dist/theme-hot-reload.js"):e}function de(e,t){return t?Buffer.isBuffer(t)?ze(t):hn(e)?un(t):pn(e,t):""}function un(e){let t=e;return t=t.replace(/\r\n/g,`
99
+ `);return s.set(e.key,{checksum:e.checksum,content:i}),i}}h();import*as Mt from"node:os";function Us(e,t){let s=new Set,n=`:${t}`,r=e.toLowerCase().trim();if(s.add(`${r}${n}`),["localhost","127.0.0.1","::1","0.0.0.0"].includes(r)&&(s.add(`localhost${n}`),s.add(`127.0.0.1${n}`),s.add(`[::1]${n}`)),r==="0.0.0.0"||r==="::")for(let i of Object.values(Mt.networkInterfaces()))for(let a of i??[]){let u=a.address.toLowerCase().split("%")[0],c=a.family==="IPv6"?`[${u}]`:u;s.add(`${c}${n}`)}return s}function Bs(e){if(e)return e.toLowerCase().replace(/\.(?=:\d|$)/,"")}function Ut(e,t){let s=Us(e,t);return b(n=>{let r=n.node.req.headers.host,o=Bs(r);if(!o||!s.has(o))return O(n,D({statusCode:400,statusMessage:"Bad Request",message:"Invalid Host header"}))})}h();function Bt(){return Jt()}function Cr(){return Jt()}function Jt(){return{root:"",files:new Map,unsyncedFileKeys:new Set,uploadErrors:new Map,ready:()=>Promise.resolve(),delete:async e=>{},read:async e=>"",write:async e=>{},stat:async e=>({mtime:new Date,size:1}),addEventListener:()=>{},startWatcher:async()=>{}}}import{createServer as Js}from"node:http";async function Yr(e,t){let s=await Gs(e,t);return await Ys(e,s),zs(e,s)}function zs(e,t){let s=ut();s.use(Ut(t.options.host,t.options.port)),s.use(zt(e,t)),s.use(Ot(e,t)),s.use(Ct(e,t)),s.use(Dt(e,t));let n=Js(pt(s));return{dispatch:s.handler.bind(s),start:async()=>new Promise(r=>n.listen({port:t.options.port,host:t.options.host},()=>r({close:async()=>{await Promise.all([new Promise(o=>{n.closeAllConnections(),n.close(o)})])}})))}}async function Gs(e,t){let{adminSession:s,storefrontPassword:n,themeExtensionPort:r,themeExtensionDirectory:o,crawlerSignatureHeaders:i}=t,a="127.0.0.1",u=r??9293,p=Bt(),c=vt(o);return await c.ready(),{session:await Tt(e.id.toString(),s,void 0,n,i),localThemeFileSystem:p,localThemeExtensionFileSystem:c,directory:o,type:"theme-extension",lastRequestedPath:"",options:{themeEditorSync:!1,noDelete:!1,ignore:[],only:[],host:a,port:u,liveReload:"hot-reload",standardEventsDevBundle:!1,standardEventsInspector:!1,open:!1,errorOverlay:"default"}}}async function Ys(e,t){let s=t.localThemeExtensionFileSystem,n=({fileKey:r,onContent:o,onSync:i})=>{o(()=>{Te(e,t,i,{type:"update",key:r,payload:{isThemeExtension:!0}})})};return s.addEventListener("add",n),s.addEventListener("change",n),s.ready().then(async()=>s.startWatcher())}function fe(e){let t={},s=e.localThemeExtensionFileSystem;for(let n of s.unsyncedFileKeys){let r=s.files.get(n),o=r?.value??r?.attachment;o&&(t[n]=o)}return t}var Re=Ye(mt(),1);import Vs from"node:events";var Ue=new Map,K=new Map;function Gt(e,t){let s=(0,Re.parseJSON)(t,null,!0);if(!s)return;let n=s?.sections;n&&!e.startsWith("locales/")?K.set(e,Object.entries(n||{}).map(([r,{type:o}])=>[o,r])):K.delete(e)}function Be(e){return!e.startsWith("assets/")&&[".liquid",".json"].includes(q(e))}function Oe(e,t,s){let n={},r=/^templates\/.+\.json$/,o=t?`${T("templates",t.replace(/^\//,"").replace(/\.html$/,"")||"index")}.json`:"",i=!!t&&e.localThemeFileSystem.files.has(o),a=/^locales\/.+\.json$/,u=!!s&&(e.localThemeFileSystem.files.has(`locales/${s}.json`)||e.localThemeFileSystem.files.has(`locales/${s}.default.json`));for(let p of e.localThemeFileSystem.unsyncedFileKeys)if(Be(p)){if(i&&r.test(p)){if(p!==o)continue}else if(a.test(p)){if(u){if(!p.startsWith(`locales/${s}.`))continue}else if(!p.includes(".default."))continue}n[p]=e.localThemeFileSystem.files.get(p)?.value??""}return n}function uo(e,t){let s=({fileKey:r,onContent:o,onSync:i})=>{let a=q(r);o(u=>{!en(r)&&Be(r)&&a===".json"&&Gt(r,u),Te(e,t,i,{type:"update",key:r,payload:Qs(r,t)})})},n=({fileKey:r,onSync:o})=>{K.delete(r),Te(e,t,o,{type:"delete",key:r})};return t.localThemeFileSystem.addEventListener("add",s),t.localThemeFileSystem.addEventListener("change",s),t.localThemeFileSystem.addEventListener("unlink",n),t.localThemeFileSystem.ready().then(async()=>{let r=[...t.localThemeFileSystem.files];return Promise.allSettled(r.map(async([o,i])=>{if(o.endsWith(".json")){let a=i.value??await t.localThemeFileSystem.read(o);a&&typeof a=="string"&&Gt(o,a)}else o.endsWith(".liquid")&&Zt(i)}))})}var Xs="1",Vt=new Vs;function Se(e){Vt.emit("hot-reload",{...e,version:Xs})}function zt(e,t){return b(s=>{let n=s.headers.get("accept")==="text/event-stream",r=ye(s).searchParams;if(n){let o=dt(s);return Vt.on("hot-reload",i=>{o.push(JSON.stringify(i)).catch(a=>{I({headline:"Failed to send HotReload event.",body:a.stack})})}),Se({type:"open",pid:String(process.pid),themeId:String(e.id)}),o.send().then(()=>o.flush())}if(r.has("hr-log")){let o=(0,Re.parseJSON)(r.get("hr-log")??"",null);return o&&(o.headline=`[HotReload] ${o.headline}`,o.type==="error"?te(o):o.type==="warn"?I(o):o.type==="info"?et(o):I({headline:`Unknown HotReload log type: ${o.type}`})),null}if(s.path===Xt)return k(we()).then(o=>at(s,o,"application/javascript")).catch(o=>O(s,D({cause:o})));if(r.has("section_id")||r.has("app_block_id")){let o=r.get("section_key")??"",i=r.get("section_id")??"",a=r.get("app_block_id")??"",u=s.path.split("?")[0]??"",p=new URLSearchParams(r);if(p.delete("section_key"),p.delete("section_id"),p.delete("app_block_id"),p.delete("_fd"),p.delete("pb"),i===""&&a==="")return;let c={};if(i){let l=t.localThemeFileSystem.unsyncedFileKeys;if(l.has(o)){let m=t.localThemeFileSystem.files.get(o)?.value;if(!m)return"";c[o]=m}for(let m of l)if(m.endsWith(".json")){for(let[x,f]of K.get(m)??[])if(i.endsWith(`__${f}`)){let g=t.localThemeFileSystem.files.get(m)?.value;g&&(c[m]=g);continue}}}return ce(t.session,{method:s.method,path:u??"/",query:[...p.entries()],themeId:String(e.id),sectionId:i,appBlockId:a,replaceTemplates:c,headers:lt(s),replaceExtensionTemplates:fe(t)}).then(async l=>{if(!l.ok)throw H("theme-service:hot-reload:section:render-failed"),ae(l);return Q(t,l)}).catch(async l=>{let{status:m,statusText:x,...f}=A(L(l),"Failed to render section on Hot Reload");return H("theme-service:hot-reload:section:render-error"),a||I(f),new Response(null,{status:m,statusText:x})})}})}var ee=(e,t)=>Se({themeId:String(e),type:"full",key:t});function Te(e,t,s,n){let r=()=>ee(e.id,n.key);if(t.options.liveReload==="off")return;if(t.options.liveReload==="full-page"){s(r);return}let o=String(e.id);Se({sync:"local",themeId:o,...n}),s(()=>Se({sync:"remote",themeId:o,...n}),r)}function Zs(e,t){let s=new Set;if(e.endsWith(".json")){let n=t.localThemeFileSystem.files.get(e)?.value;if(n){let r=(0,Re.parseJSON)(n,null,!0)?.sections;for(let o of Object.keys(r??{}))s.add(o)}}else{let n=e.match(/^sections\/(.+)\.liquid$/)?.[1];if(n)for(let[r,o]of K)for(let[i,a]of o)i===n&&s.add(a)}return[...s]}function Qs(e,t){let[s]=e.split("/"),n=t.localThemeFileSystem.files.get(e);return{sectionNames:s==="sections"?Zs(e,t):[],replaceTemplates:Be(e)?Oe(t):{},updatedFileParts:n&&Zt(n)}}var xe="hot-reload-client",Ks="/cdn/shopifycloud/theme-hot-reload/theme-hot-reload.js",Yt=new RegExp(`<script id="${xe}"[^>]*>[^<]*</script>`),Xt="/@shopify/theme-hot-reload";function We(e,t){return t.options.liveReload==="off"?e.replace(Yt,""):process.env.SHOPIFY_CLI_LOCAL_HOT_RELOAD?e.replace(Yt,"").replace(/<\/head>/,`<script id="${xe}" src="${Xt}" defer></script></head>`):e.includes(`<script id="${xe}"`)?e:e.replace(/<\/head>/,`<script id="${xe}" src="${Ks}" defer></script></head>`)}function en(e){return e.startsWith("assets/")}function Zt(e){if(!(["sections/","snippets/","blocks/"].some(c=>e.key.startsWith(c))&&e.key.endsWith(".liquid")))return;let n={stylesheetTag:!1,javascriptTag:!1,schemaTag:!1,liquid:!1},r={checksum:e.checksum,liquid:"",stylesheetTag:"",javascriptTag:"",schemaTag:""},o=Ue.get(e.key);if(o?.checksum===e.checksum||(Ue.delete(e.key),!e.value))return n;let i=["stylesheet","javascript","schema"],a=c=>c?.replace(/\s+/g," ").trim(),u=e.value,p=(c,l)=>{u=u.replace(l,"");let m=a(l),x=`${c}Tag`;n[x]=!o||m!==o[x],r[x]=m};for(let c of i){let l=ge(e.value??"",c);l&&p(c,l)}return u=a(u.replace(/<!--[\s\S]*?-->/g,"").replace(/{%\s*comment\s*%}[\s\S]*?{%\s*endcomment\s*%}/g,"").replace(/{%\s*doc\s*%}[\s\S]*?{%\s*enddoc\s*%}/g,"")),r.liquid=u,n.liquid=!o||u!==o.liquid,Ue.set(e.key,r),n}h();var Qt=Ye(mt(),1);function tn(e){return(e.startsWith("templates/")||e.startsWith("sections/"))&&e.endsWith(".json")}async function Kt(e,t,s){if(tn(s)){let n=T(e,"listings",t,s);if(await $(n))return n}}async function es(e,t){let s=T(e,"config","settings_data.json"),n=await k(s,{encoding:"utf8"}),r=(0,Qt.parseJSON)(n,null,!0);return r?(r.current=$e(t),JSON.stringify(r,null,2)):n}async function Eo(e,t){let s=T(e,"listings"),n=T(s,t);if(await $(n))return;let o=[];await $(s)&&(o=await C("*",{cwd:s,onlyDirectories:!0,deep:1}));let i=o.length>0?`Available presets: ${o.map(a=>`"${$e(a)}"`).join(", ")}`:'No presets found under "listings/"';throw new se(`Listing preset "${t}" was not found. ${i}.`,`Add the preset to config/settings_data.json and its corresponding "listings/${t}" folder, or remove the --listing flag to use the default theme settings.`)}import sn from"node:events";import{fileURLToPath as nn}from"node:url";var rn=250,ts=["AGENTS.md","DESIGN.md","assets/**/*.*","config/**/*.json","config/styles.css","layout/**/*.liquid","locales/**/*.json","sections/**/*.{liquid,json}","blocks/**/*.liquid","snippets/**/*.liquid","templates/**/*.{liquid,json}","templates/customers/**/*.{liquid,json}"],v={documentationFilesRegex:/^(AGENTS|DESIGN)\.md$/,layoutLiquidRegex:/^layout\/.+\.liquid$/,sectionLiquidRegex:/^sections\/.+\.liquid$/,blockLiquidRegex:/^blocks\/.+\.liquid$/,configSchemaRegex:/^config\/settings_schema\.json$/,configDataRegex:/^config\/settings_data\.json$/,configStylesheetRegex:/^config\/styles\.css$/,sectionJsonRegex:/^sections\/.+\.json$/,templateJsonRegex:/^templates\/.+\.json$/,jsonRegex:/^(?!config\/).*\.json$/,contextualizedJsonRegex:/\.context\.[^.]+\.json$/i,staticAssetRegex:/^assets\/(?!.*\.liquid$)/};function Ho(e,t){let s=new Map,n=new Map,r=new Set,o={ignoreFromFile:[],ignore:t?.filters?.ignore??[],only:t?.filters?.only??[]},i=new sn,a=(d,y)=>{i.emit(d,y)},u=t?.notify?new le(t.notify):void 0,p=async d=>{let y=t?.listing?await an(e,d,t.listing):await ue(e,d),E=de(d,y);return s.set(d,M({key:d,checksum:E,value:typeof y=="string"?y:"",attachment:Buffer.isBuffer(y)?y.toString("base64"):""})),y},c=C(ts,{cwd:e,deep:3,ignore:W}).then(d=>Promise.all([wt(e),...d.map(p)])).then(([d])=>{Array.isArray(d)&&o.ignoreFromFile.push(...d)}),l=d=>V(e,d),m=d=>Le([{key:d}],o).length===0;function x(d,y,E,S){if(process.env.SHOPIFY_CLI_LOCAL_HOT_RELOAD&&S===we()){ee(y,S);return}let w=l(S);if(t?.listing&&w.startsWith(`listings/${t.listing}/`)){let R=w.replace(`listings/${t.listing}/`,"");if(R.startsWith("templates/")||R.startsWith("sections/"))w=R;else return}f(w).then(()=>{switch(d){case"add":case"change":return g(d,y,E,w);case"unlink":return Pe(y,E,w,n)}}).catch(R=>{N(`Error handling file event for ${w}: ${R}`)})}function f(d){return u?.notify(d)??Promise.resolve()}let g=(d,y,E,S)=>{if(m(S))return;let w=s.get(S)?.checksum,R=p(S).then(async()=>{let F=s.get(S);if(F)return F.checksum!==w&&r.add(S),{value:F.value||void 0,attachment:F.attachment}}),_=R.then(F=>{if(F)return on(r,n,S,y,E)(F)}).catch(Ie(S,"upload"));a(d,{fileKey:S,onContent:F=>{R.then(G=>{r.has(S)&&F(G?.value??G?.attachment??"")}).catch(()=>{})},onSync:(F,G)=>{_.then(Y=>{Y?F():G?.()}).catch(()=>{})}})},Pe=(d,y,E,S)=>{if(m(E))return;S.delete(E),s.delete(E),r.add(E);let w=t?.noDelete?Promise.resolve():gt(Number(d),[E],y).then(async R=>{if(!R[0]?.success)throw new Error(`Failed to delete file "${E}" from remote theme.`);return r.delete(E),ss("delete",E),!0}).catch(R=>(Ie(E,"delete")(R),!1));a("unlink",{fileKey:E,onSync:R=>{w.then(_=>{_&&R()}).catch(()=>{})}})},ve=new Set(ts.map(d=>T(e,d.split("/").shift()??"")));return t?.listing&&ve.add(T(e,"listings",t.listing)),process.env.SHOPIFY_CLI_LOCAL_HOT_RELOAD&&ve.add(we()),{root:e,files:s,unsyncedFileKeys:r,uploadErrors:n,ready:()=>c,delete:async d=>{s.delete(d),await cn(e,d)},write:async d=>{let y=(d.key.startsWith("templates/")||d.key.startsWith("sections/"))&&d.key.endsWith(".json");if(t?.listing&&y){let E=T("listings",t.listing,d.key),S=T(e,E),w=await $(S);s.set(d.key,M({key:d.key,checksum:d.checksum,value:d.value??"",attachment:d.attachment??""})),w?await Je(e,{...d,key:E}):await Je(e,d);return}s.set(d.key,M({key:d.key,checksum:d.checksum,value:d.value??"",attachment:d.attachment??""})),await Je(e,d)},read:p,applyIgnoreFilters:d=>Le(d,o),addEventListener:(d,y)=>{i.on(d,y)},startWatcher:async(d,y)=>{let{default:E}=await import("./chokidar-5RWEYTNQ.js"),S=E.watch([...ve],{ignored:W,persistent:!process.env.SHOPIFY_UNIT_TEST,ignoreInitial:!0}),w=new Map,R=(_,F)=>{let Y=`${l(F)}:${_}`,Ge=w.get(Y);Ge&&clearTimeout(Ge);let ns=setTimeout(()=>{w.delete(Y),x(_,d,y,F)},rn);w.set(Y,ns)};S.on("add",R.bind(null,"add")).on("change",R.bind(null,"change")).on("unlink",R.bind(null,"unlink")).on("error",_=>{N(`File watcher error: ${_}`),L("theme-service:file-watcher:error")})}}}function on(e,t,s,n,r){return async o=>{if(!e.has(s))return!1;let[i]=await yt(Number(n),[{key:s,...o}],r);if(!i?.success){let a=i?.errors?.asset??["Response was not successful."];throw t.set(s,a),ee(n,s),new Error(a.join(`
100
+ `))}return t.delete(s)&&ee(n,s),e.delete(s),ss("update",s),!0}}async function Je(e,{key:t,attachment:s,value:n}){let r=T(e,t);if(await ln(r),s){let o=Buffer.from(s,"base64");await be(r,o,{encoding:"base64"})}else await be(r,n??"")}async function ue(e,t){let s=Fe(t)?{encoding:"utf8"}:{},n=T(e,t);if(!await $(n)){P(`File ${n} can't be read because it doesn't exist...`);return}return k(n,s)}async function an(e,t,s){if(t==="config/settings_data.json")return es(e,s);let n=await Kt(e,s,t);if(n){let r=Fe(t)?{encoding:"utf8"}:{};return k(n,r)}return ue(e,t)}async function cn(e,t){let s=T(e,t);if(!await $(s)){P(`File ${s} can't be removed because it doesn't exist...`);return}await Qe(s)}function No(e){let t=[],s=[],n=[],r=[],o=[],i=[],a=[],u=[],p=[],c=[],l=[],m=[],x=[];return e.forEach(f=>{let g=f.key;v.documentationFilesRegex.test(g)?x.push(f):g.endsWith(".liquid")?v.sectionLiquidRegex.test(g)?t.push(f):v.blockLiquidRegex.test(g)?l.push(f):v.layoutLiquidRegex.test(g)?m.push(f):s.push(f):v.configSchemaRegex.test(g)?a.push(f):v.configDataRegex.test(g)?u.push(f):v.configStylesheetRegex.test(g)?p.push(f):v.jsonRegex.test(g)?v.contextualizedJsonRegex.test(g)?i.push(f):v.sectionJsonRegex.test(g)?n.push(f):v.templateJsonRegex.test(g)?r.push(f):o.push(f):v.staticAssetRegex.test(g)&&c.push(f)}),{sectionLiquidFiles:t,otherLiquidFiles:s,sectionJsonFiles:n,templateJsonFiles:r,contextualizedJsonFiles:i,otherJsonFiles:o,configSchemaFile:a,configDataFile:u,configStylesheetFiles:p,staticAssetFiles:c,blockLiquidFiles:l,layoutFiles:m,documentationFiles:x}}function Fe(e){return xt({liquid:"application/liquid",sass:"text/x-sass",scss:"text/x-scss"}),["application/javascript","application/json","application/liquid","text/css","text/x-sass","text/x-scss","image/svg+xml","text/markdown"].includes(U(e))}async function Do(e){let t=new Set(await C("*",{cwd:e,deep:1,onlyDirectories:!0}));return["config","layout","templates"].every(n=>t.has(n))}async function ln(e){let t=dn(e);await $(t)||await Ze(t)}function dn(e){let t=Ve(e),s=e.lastIndexOf(t);return e.substring(0,s)}function ss(e,t){re(ne`• ${ie.format(new Date)} Synced ${j.raw("\xBB")} ${e} ${t}`)}function we(){let e=process.env.SHOPIFY_CLI_LOCAL_HOT_RELOAD;return!e||e==="true"?T(nn(import.meta.url.split("/cli/")[0]??""),"theme-hot-reload/dist/theme-hot-reload.js"):e}function de(e,t){return t?Buffer.isBuffer(t)?ze(t):hn(e)?un(t):pn(e,t):""}function un(e){let t=e;return t=t.replace(/\r\n/g,`
101
101
  `),t=t.replace(/\/\*[\s\S]*?\*\//,""),t=mn(t),ze(t)}function pn(e,t){let s=t;return Fe(e)&&(s=s.replace(/\r\n/g,`
102
102
  `)),ze(s)}function mn(e){let t=!1,s=!1,n="";for(let r of e)r==='"'&&!s&&(t=!t),!(!t&&(r===" "||r===`
103
- `))&&(n+=r,s=r==="\\"&&!s);return n}function ze(e){let t=Buffer.isBuffer(e)?e:Buffer.from(e);return Ke(t)}function Bo(e){let t=new Set(e.filter(({key:s})=>s.startsWith("assets/")&&s.endsWith(".liquid")).map(({key:s})=>s));return e.filter(({key:s})=>s.startsWith("assets/")?!t.has(`${s}.liquid`):!0)}function hn(e){return e.endsWith("/settings_data.json")}export{Bo as a,Ct as b,Ot as c,Nt as d,Ut as e,Cr as f,Gr as g,uo as h,zt as i,ee as j,Eo as k,Ho as l,Do as m,Oo as n};
103
+ `))&&(n+=r,s=r==="\\"&&!s);return n}function ze(e){let t=Buffer.isBuffer(e)?e:Buffer.from(e);return Ke(t)}function Bo(e){let t=new Set(e.filter(({key:s})=>s.startsWith("assets/")&&s.endsWith(".liquid")).map(({key:s})=>s));return e.filter(({key:s})=>s.startsWith("assets/")?!t.has(`${s}.liquid`):!0)}function hn(e){return e.endsWith("/settings_data.json")}export{Bo as a,Ct as b,Dt as c,Ot as d,Ut as e,Cr as f,Yr as g,uo as h,zt as i,ee as j,Eo as k,Ho as l,No as m,Do as n};
@@ -1,2 +1,2 @@
1
- import{W as X,ca as z,da as j,ea as v,fa as J,ga as A,ha as W,ia as k,ja as q,ka as N,la as B,ma as L,na as K,oa as R,pa as Q}from"./chunk-NKSLEPE2.js";import{c as H}from"./chunk-J6BXYZRY.js";import{b as T,e as G,m as l}from"./chunk-6ZGCTTAD.js";import{D as x,z as U}from"./chunk-T3IMDY72.js";import{h as C,j as P}from"./chunk-4EHFK2OI.js";import{Ta as V,X as c,_ as b,qa as F,sb as $,wa as I,ya as D}from"./chunk-TNYPQ2UL.js";import{d as E,j as M}from"./chunk-773TIA5M.js";import{g as s}from"./chunk-VKWPEFWQ.js";s();s();function Y(e){switch(e){case d.Offsite:return v;case d.CreditCard:return L;case d.CustomCreditCard:return N;case d.CustomOnsite:return k;case d.Redeemable:return A;case d.CardPresent:return R}}var d;(function(e){e.Offsite="payments_app",e.CreditCard="payments_app_credit_card",e.CustomCreditCard="payments_app_custom_credit_card",e.CustomOnsite="payments_app_custom_onsite",e.Redeemable="payments_app_redeemable",e.CardPresent="payments_app_card_present"})(d||(d={}));function Z(e,t){let i=e.activeVersion?.context??e.draftVersion?.context??Y(e.type);switch(i){case v:return w(e,t,J);case L:return w(e,t,K);case N:return w(e,t,B);case k:return w(e,t,q);case A:return w(e,t,W);case R:return w(e,t,Q);default:throw new Error(`Unsupported extension: ${i}`)}}function w(e,t,i){let n=(e.activeVersion??e.draftVersion)?.config;if(!n)throw new Error("No config found for extension");let r=JSON.parse(n),p=i(r,t);p&&delete p.api_version;let a=e.activeVersion?.context??e.draftVersion?.context??Y(e.type);return{api_version:r.api_version,extensions:[{name:e.title,type:"payments_extension",handle:c(e.title.substring(0,l)),...p,targeting:[{target:`${a}`}]}]}}s();s();var pe=new Map(j.map(e=>[e[1],e[0]])),fe=(e,t)=>{let i=pe.get(e.uiType);if(!i)throw new C(`Field type ${e.uiType} is not supported`);let o={key:e.name,description:e.description??void 0,type:i};return t==="flow_action_definition"&&(o.name=e.label,o.required=e.required),o},ue=(e,t)=>{let n={type:t==="flow_action_definition"?`${e.name.replace("_id","")}_reference`:`${e.uiType}_reference`};return t==="flow_action_definition"&&(n.required=e.required),e.uiType==="marketing-activity-id"&&(n.marketingActivityCreateUrl=e.marketingActivityCreateUrl,n.marketingActivityDeleteUrl=e.marketingActivityDeleteUrl),n},ee=(e,t)=>t?t.map(o=>o.uiType==="commerce-object-id"||o.uiType==="marketing-activity-id"||z.includes(o.uiType)?ue(o,e):fe(o,e)):[];function te(e){let t=e.activeVersion?.config??e.draftVersion?.config;if(!t)throw new Error("No config found for extension");let i=e.type==="flow_action_definition"?"https://url.com/api/execute":void 0,o;if(e.type==="flow_trigger_discovery_webhook"){let n=JSON.parse(t);o={extensions:[{type:"flow_trigger_lifecycle_callback",name:e.title,handle:c(e.title.substring(0,l)),url:n.url}]}}else{let n=JSON.parse(t),r=ee(e.type,n.fields??[]);o={extensions:[{type:e.type.replace("_definition",""),name:n.title,handle:c(e.title.substring(0,l)),description:n.description,runtime_url:n.url??i,config_page_url:n.custom_configuration_page_url,config_page_preview_url:n.custom_configuration_page_preview_url,validation_url:n.validation_url}],settings:(r?.length??0)>0?{fields:r}:void 0}}return o}s();s();var ie=e=>{let t=e.split("#");if(t.length!==2||t.some(p=>p===""||p===void 0))throw new Error("Invalid context");let i="admin",o=de(t[0]??""),n=me(t[1]??""),r="link";return n==="selection"?[i,`${o}-index`,`${n}-action`,r].join("."):[i,`${o}-${n}`,"action",r].join(".")},me=e=>{switch(e.toLocaleLowerCase()){case"show":return"details";case"index":return"index";case"action":return"selection";case"fulfilled_card":return"fulfilled-card";default:throw new Error(`Invalid context location: ${e}`)}},de=e=>e.toLocaleLowerCase()==="variants"?"product-variant":b(e.toLocaleLowerCase().replace(new RegExp("(s)$"),""));function ne(e,t,i){let o=e.activeVersion?.config??e.draftVersion?.config;if(!o)throw new Error("No config found for extension");let n=e.activeVersion?.context??e.draftVersion?.context;if(!n)throw new Error("No context found for link extension");let r=JSON.parse(o);if(i.embedded)try{let a=new URL(r.url),_=a.pathname.startsWith("/")?a.pathname.substring(1):a.pathname,u=new URL(`app://${_}`);u.search=a.search,u.hash=a.hash,r.url=u.toString()}catch{}return{extensions:[{type:"admin_link",name:r.text,handle:c(e.title.substring(0,l)),targeting:[{url:r.url,target:ie(n)}]}]}}s();var ge={facebook:"social",instagram:"social",google:"search",pinterest:"social",bing:"search",email:"email",snapchat:"social",sms:"sms",verizon_media:"display",ebay:"marketplace",tiktok:"social",flow:"email"},_e={facebook:"facebook.com",instagram:"instagram.com",google:"google.com",pinterest:"pinterest.com",bing:"bing.com",snapchat:"snapchat.com",verizon_media:null,email:null,sms:null,ebay:"ebay.com",tiktok:"tiktok.com",flow:null};function ye(e){let t=new URL(e);return t.pathname+t.search+t.hash}function oe(e){let t=e.activeVersion?.config??e.draftVersion?.config;if(!t)throw new Error("No config found for extension");let i=JSON.parse(t);return{extensions:[{type:"marketing_activity",name:e.title,handle:c(e.title.substring(0,l)),title:i.title,description:i.description,api_path:ye(i.app_api_url),tactic:i.tactic,marketing_channel:ge[i.platform]??"",referring_domain:_e[i.platform]??"",is_automation:i.is_automation,use_external_editor:i.use_external_editor,preview_data:i.preview_data,fields:i.fields.map(({id:n,...r})=>r)}]}}s();function re(e){let t=e.activeVersion?.config??e.draftVersion?.config;if(!t)throw new Error("No config found for extension");let i=JSON.parse(t);return{extensions:[{type:"subscription_link_extension",name:e.title,handle:c(e.title.substring(0,l)),pattern:i.pattern}]}}var O=[{label:"Payments Extensions",value:"payments",extensionTypes:["payments_app","payments_app_credit_card","payments_app_custom_credit_card","payments_app_custom_onsite","payments_app_redeemable","payments_extension"],buildExtensionConfig:Z},{label:"Flow Extensions",value:"flow",extensionTypes:["flow_action_definition","flow_trigger_definition","flow_trigger_discovery_webhook"],buildExtensionConfig:te},{label:"Marketing Activity Extensions",value:"marketing activity",extensionTypes:["marketing_activity_extension"],buildExtensionConfig:oe},{label:"Subscription Link Extensions",value:"subscription link",extensionTypes:["subscription_link","subscription_link_extension"],buildExtensionConfig:re},{label:"Admin Link extensions",value:"link extension",extensionTypes:["app_link","bulk_action"],buildExtensionConfig:ne}];function se(e){return O.filter(t=>t.extensionTypes.some(i=>e.some(o=>o.type.toLowerCase()===i.toLowerCase())))}async function ft(e){if(e.length===1&&e[0])return e[0];let t=e.map(n=>({label:n.label,value:n.value})),i=await x({message:"Extension type to migrate",choices:t}),o=e.find(n=>n.value===i);if(o===void 0)throw new C("Invalid migration choice");return o}s();var vt=O.flatMap(e=>e.extensionTypes),g;(function(e){e.Write="write",e.Skip="skip",e.Cancel="cancel"})(g||(g={}));async function Ee({name:e,app:t}){let i=b(e),o=E(t.directory,G.extensions.directoryName,i);if(await V(o)){let n=[{label:"Overwrite local TOML with remote configuration",value:g.Write},{label:"Keep local TOML",value:g.Skip},{label:"Cancel",value:g.Cancel}],r=await x({message:`Directory "${i}" already exists. What would you like to do?`,choices:n});if(r===g.Cancel)throw new P;return{directory:o,action:r}}return await I(o),await F(E(o,T.lockFile)),{directory:o,action:g.Write}}async function Ce(e){let{app:t,remoteApp:i,extensionTypes:o,extensions:n,buildExtensionConfig:r,all:p}=e,a=n.filter(f=>o.includes(f.type.toLowerCase()));if(a=we(t,a),a.length===0)throw new C("No extensions to migrate");if(!p){let f=a.map(y=>({label:y.title,value:y.uuid}));a.length>1&&f.push({label:"All",value:"All"});let m=await x({message:"Extensions to migrate",choices:f});m!=="All"&&(a=[a.find(y=>y?.uuid===m)])}let _={},u=a.map(async f=>{let{directory:m,action:y}=await Ee({app:t,name:f.title}),ae=c(f.title.substring(0,l));if(_[ae]=f.uuid,y===g.Write){let S=r(f,n,t.configuration),ce=E(m,"shopify.extension.toml");await new H(ce,S).replace(S);let le=E(m,T.lockFile);await D(le)}return{extension:f,directory:E("extensions",M(m))}}),h=await Promise.all(u);xe(h),await X({app:t,appApiKey:i.apiKey,extensionUuids:_,command:"import-extensions"})}function we(e,t){let i=e.dotenv?.variables??{},o=e.allExtensions.map(n=>i[n.idEnvironmentVariableName]);return t.filter(n=>!o.includes(n.uuid))}async function At(e){let t=se(e.extensions);await Promise.all(t.map(async i=>Ce({...e,extensionTypes:i.extensionTypes,buildExtensionConfig:i.buildExtensionConfig,all:!0})))}function xe(e){U({headline:["Imported the following extensions from the dashboard:"],body:e.map(t=>$`• "${t.extension.title}" at: ${t.directory}`.value).join(`
1
+ import{W as X,ca as z,da as j,ea as v,fa as J,ga as A,ha as W,ia as k,ja as q,ka as N,la as B,ma as L,na as K,oa as R,pa as Q}from"./chunk-CBGDD3ZG.js";import{c as H}from"./chunk-WWRLFLGM.js";import{b as T,e as G,m as l}from"./chunk-AI4SPBPV.js";import{D as x,z as U}from"./chunk-PSSOCUUD.js";import{h as C,j as P}from"./chunk-W3BNL2Q5.js";import{Ta as V,X as c,_ as b,qa as F,sb as $,wa as I,ya as D}from"./chunk-G5QSVBYP.js";import{d as E,j as M}from"./chunk-773TIA5M.js";import{g as s}from"./chunk-VKWPEFWQ.js";s();s();function Y(e){switch(e){case d.Offsite:return v;case d.CreditCard:return L;case d.CustomCreditCard:return N;case d.CustomOnsite:return k;case d.Redeemable:return A;case d.CardPresent:return R}}var d;(function(e){e.Offsite="payments_app",e.CreditCard="payments_app_credit_card",e.CustomCreditCard="payments_app_custom_credit_card",e.CustomOnsite="payments_app_custom_onsite",e.Redeemable="payments_app_redeemable",e.CardPresent="payments_app_card_present"})(d||(d={}));function Z(e,t){let i=e.activeVersion?.context??e.draftVersion?.context??Y(e.type);switch(i){case v:return w(e,t,J);case L:return w(e,t,K);case N:return w(e,t,B);case k:return w(e,t,q);case A:return w(e,t,W);case R:return w(e,t,Q);default:throw new Error(`Unsupported extension: ${i}`)}}function w(e,t,i){let n=(e.activeVersion??e.draftVersion)?.config;if(!n)throw new Error("No config found for extension");let r=JSON.parse(n),p=i(r,t);p&&delete p.api_version;let a=e.activeVersion?.context??e.draftVersion?.context??Y(e.type);return{api_version:r.api_version,extensions:[{name:e.title,type:"payments_extension",handle:c(e.title.substring(0,l)),...p,targeting:[{target:`${a}`}]}]}}s();s();var pe=new Map(j.map(e=>[e[1],e[0]])),fe=(e,t)=>{let i=pe.get(e.uiType);if(!i)throw new C(`Field type ${e.uiType} is not supported`);let o={key:e.name,description:e.description??void 0,type:i};return t==="flow_action_definition"&&(o.name=e.label,o.required=e.required),o},ue=(e,t)=>{let n={type:t==="flow_action_definition"?`${e.name.replace("_id","")}_reference`:`${e.uiType}_reference`};return t==="flow_action_definition"&&(n.required=e.required),e.uiType==="marketing-activity-id"&&(n.marketingActivityCreateUrl=e.marketingActivityCreateUrl,n.marketingActivityDeleteUrl=e.marketingActivityDeleteUrl),n},ee=(e,t)=>t?t.map(o=>o.uiType==="commerce-object-id"||o.uiType==="marketing-activity-id"||z.includes(o.uiType)?ue(o,e):fe(o,e)):[];function te(e){let t=e.activeVersion?.config??e.draftVersion?.config;if(!t)throw new Error("No config found for extension");let i=e.type==="flow_action_definition"?"https://url.com/api/execute":void 0,o;if(e.type==="flow_trigger_discovery_webhook"){let n=JSON.parse(t);o={extensions:[{type:"flow_trigger_lifecycle_callback",name:e.title,handle:c(e.title.substring(0,l)),url:n.url}]}}else{let n=JSON.parse(t),r=ee(e.type,n.fields??[]);o={extensions:[{type:e.type.replace("_definition",""),name:n.title,handle:c(e.title.substring(0,l)),description:n.description,runtime_url:n.url??i,config_page_url:n.custom_configuration_page_url,config_page_preview_url:n.custom_configuration_page_preview_url,validation_url:n.validation_url}],settings:(r?.length??0)>0?{fields:r}:void 0}}return o}s();s();var ie=e=>{let t=e.split("#");if(t.length!==2||t.some(p=>p===""||p===void 0))throw new Error("Invalid context");let i="admin",o=de(t[0]??""),n=me(t[1]??""),r="link";return n==="selection"?[i,`${o}-index`,`${n}-action`,r].join("."):[i,`${o}-${n}`,"action",r].join(".")},me=e=>{switch(e.toLocaleLowerCase()){case"show":return"details";case"index":return"index";case"action":return"selection";case"fulfilled_card":return"fulfilled-card";default:throw new Error(`Invalid context location: ${e}`)}},de=e=>e.toLocaleLowerCase()==="variants"?"product-variant":b(e.toLocaleLowerCase().replace(new RegExp("(s)$"),""));function ne(e,t,i){let o=e.activeVersion?.config??e.draftVersion?.config;if(!o)throw new Error("No config found for extension");let n=e.activeVersion?.context??e.draftVersion?.context;if(!n)throw new Error("No context found for link extension");let r=JSON.parse(o);if(i.embedded)try{let a=new URL(r.url),_=a.pathname.startsWith("/")?a.pathname.substring(1):a.pathname,u=new URL(`app://${_}`);u.search=a.search,u.hash=a.hash,r.url=u.toString()}catch{}return{extensions:[{type:"admin_link",name:r.text,handle:c(e.title.substring(0,l)),targeting:[{url:r.url,target:ie(n)}]}]}}s();var ge={facebook:"social",instagram:"social",google:"search",pinterest:"social",bing:"search",email:"email",snapchat:"social",sms:"sms",verizon_media:"display",ebay:"marketplace",tiktok:"social",flow:"email"},_e={facebook:"facebook.com",instagram:"instagram.com",google:"google.com",pinterest:"pinterest.com",bing:"bing.com",snapchat:"snapchat.com",verizon_media:null,email:null,sms:null,ebay:"ebay.com",tiktok:"tiktok.com",flow:null};function ye(e){let t=new URL(e);return t.pathname+t.search+t.hash}function oe(e){let t=e.activeVersion?.config??e.draftVersion?.config;if(!t)throw new Error("No config found for extension");let i=JSON.parse(t);return{extensions:[{type:"marketing_activity",name:e.title,handle:c(e.title.substring(0,l)),title:i.title,description:i.description,api_path:ye(i.app_api_url),tactic:i.tactic,marketing_channel:ge[i.platform]??"",referring_domain:_e[i.platform]??"",is_automation:i.is_automation,use_external_editor:i.use_external_editor,preview_data:i.preview_data,fields:i.fields.map(({id:n,...r})=>r)}]}}s();function re(e){let t=e.activeVersion?.config??e.draftVersion?.config;if(!t)throw new Error("No config found for extension");let i=JSON.parse(t);return{extensions:[{type:"subscription_link_extension",name:e.title,handle:c(e.title.substring(0,l)),pattern:i.pattern}]}}var O=[{label:"Payments Extensions",value:"payments",extensionTypes:["payments_app","payments_app_credit_card","payments_app_custom_credit_card","payments_app_custom_onsite","payments_app_redeemable","payments_extension"],buildExtensionConfig:Z},{label:"Flow Extensions",value:"flow",extensionTypes:["flow_action_definition","flow_trigger_definition","flow_trigger_discovery_webhook"],buildExtensionConfig:te},{label:"Marketing Activity Extensions",value:"marketing activity",extensionTypes:["marketing_activity_extension"],buildExtensionConfig:oe},{label:"Subscription Link Extensions",value:"subscription link",extensionTypes:["subscription_link","subscription_link_extension"],buildExtensionConfig:re},{label:"Admin Link extensions",value:"link extension",extensionTypes:["app_link","bulk_action"],buildExtensionConfig:ne}];function se(e){return O.filter(t=>t.extensionTypes.some(i=>e.some(o=>o.type.toLowerCase()===i.toLowerCase())))}async function ft(e){if(e.length===1&&e[0])return e[0];let t=e.map(n=>({label:n.label,value:n.value})),i=await x({message:"Extension type to migrate",choices:t}),o=e.find(n=>n.value===i);if(o===void 0)throw new C("Invalid migration choice");return o}s();var vt=O.flatMap(e=>e.extensionTypes),g;(function(e){e.Write="write",e.Skip="skip",e.Cancel="cancel"})(g||(g={}));async function Ee({name:e,app:t}){let i=b(e),o=E(t.directory,G.extensions.directoryName,i);if(await V(o)){let n=[{label:"Overwrite local TOML with remote configuration",value:g.Write},{label:"Keep local TOML",value:g.Skip},{label:"Cancel",value:g.Cancel}],r=await x({message:`Directory "${i}" already exists. What would you like to do?`,choices:n});if(r===g.Cancel)throw new P;return{directory:o,action:r}}return await I(o),await F(E(o,T.lockFile)),{directory:o,action:g.Write}}async function Ce(e){let{app:t,remoteApp:i,extensionTypes:o,extensions:n,buildExtensionConfig:r,all:p}=e,a=n.filter(f=>o.includes(f.type.toLowerCase()));if(a=we(t,a),a.length===0)throw new C("No extensions to migrate");if(!p){let f=a.map(y=>({label:y.title,value:y.uuid}));a.length>1&&f.push({label:"All",value:"All"});let m=await x({message:"Extensions to migrate",choices:f});m!=="All"&&(a=[a.find(y=>y?.uuid===m)])}let _={},u=a.map(async f=>{let{directory:m,action:y}=await Ee({app:t,name:f.title}),ae=c(f.title.substring(0,l));if(_[ae]=f.uuid,y===g.Write){let S=r(f,n,t.configuration),ce=E(m,"shopify.extension.toml");await new H(ce,S).replace(S);let le=E(m,T.lockFile);await D(le)}return{extension:f,directory:E("extensions",M(m))}}),h=await Promise.all(u);xe(h),await X({app:t,appApiKey:i.apiKey,extensionUuids:_,command:"import-extensions"})}function we(e,t){let i=e.dotenv?.variables??{},o=e.allExtensions.map(n=>i[n.idEnvironmentVariableName]);return t.filter(n=>!o.includes(n.uuid))}async function At(e){let t=se(e.extensions);await Promise.all(t.map(async i=>Ce({...e,extensionTypes:i.extensionTypes,buildExtensionConfig:i.buildExtensionConfig,all:!0})))}function xe(e){U({headline:["Imported the following extensions from the dashboard:"],body:e.map(t=>$`• "${t.extension.title}" at: ${t.directory}`.value).join(`
2
2
  `)})}s();async function Lt({developerPlatformClient:e,apiKey:t,organizationId:i,extensionTypes:o,onlyDashboardManaged:n=!1}){let r=await e.appExtensionRegistrations({id:t,apiKey:t,organizationId:i}),{dashboardManagedExtensionRegistrations:p,extensionRegistrations:a}=r.app;return(n?p:a.concat(p)).filter(u=>{let h=o.includes(u.type.toLowerCase()),f=u.activeVersion&&u.activeVersion.config,m=u.draftVersion&&u.draftVersion.config;return h&&(f??m)})}export{se as a,ft as b,vt as c,Ce as d,we as e,At as f,Lt as g};
@@ -1 +1 @@
1
- import{b}from"./chunk-SVO2M3F5.js";import{j as c,l as f,o as T}from"./chunk-CSNXCRPY.js";import{a as F}from"./chunk-5VBEPL4S.js";import{p as y,v as O}from"./chunk-CNDB4VEM.js";import{b as I}from"./chunk-BR5CFKIN.js";import{s as v,xa as w}from"./chunk-IAURXPUJ.js";import{z as S}from"./chunk-T3IMDY72.js";import{h as a}from"./chunk-4EHFK2OI.js";import{a as A}from"./chunk-CTNBSUVU.js";import{Ua as l,ma as u,xb as _}from"./chunk-TNYPQ2UL.js";import{e as x,g as d}from"./chunk-VKWPEFWQ.js";d();d();d();async function P({session:e,overridesContent:r,themeId:t}){w("theme-preview:create");let m=`${f(e)}/theme_preview.json?preview_theme_id=${t}`,o=await c(e,{headers:{"Content-Type":"application/json"}}),i=await v(m,{method:"POST",body:r,headers:o});if(!i.ok)throw new a(`Theme preview request failed with status ${i.status}: ${i.statusText}`);let n=await J(i);return w("theme-preview:create"),n}async function g({session:e,overridesContent:r,themeId:t,previewIdentifier:s}){w("theme-preview:update");let o=`${f(e)}/theme_preview.json?preview_theme_id=${t}&preview_identifier=${encodeURIComponent(s)}`,i=await c(e,{headers:{"Content-Type":"application/json"}}),n=await v(o,{method:"POST",body:r,headers:i});if(!n.ok)throw new a(`Theme preview request failed with status ${n.status}: ${n.statusText}`);let E=await J(n);return w("theme-preview:update"),E}async function J(e){let r=await e.json();if(r.error)throw new a(`Theme preview failed: ${r.error}`);if(!r.url||!r.preview_identifier)throw new a("Theme preview returned an unexpected response");return{url:r.url,preview_identifier:r.preview_identifier}}async function $(e){if(!l(e.overrideJson))throw new a(`Override file not found: ${e.overrideJson}`);let r=await u(e.overrideJson),t;try{t=JSON.parse(r)}catch(i){let n=i instanceof Error?i.message:String(i);throw new a(`Failed to parse override file: ${e.overrideJson}`,n)}let s=await T(e.themeId,e.adminSession,e.password),m=JSON.stringify(t),o=e.previewIdentifier?await g({session:s,overridesContent:m,themeId:e.themeId,previewIdentifier:e.previewIdentifier}):await P({session:s,overridesContent:m,themeId:e.themeId});e.json?_(JSON.stringify({url:o.url,preview_identifier:o.preview_identifier})):S({body:[{list:{title:e.previewIdentifier?"Preview updated":"Preview is ready",items:[{link:{url:o.url}},`Preview ID: ${o.preview_identifier}`]}}]}),e.open&&b(o.url,"theme preview")}var p=x(A(),1);var h=class extends O{static summary="Applies JSON overrides to a theme and returns a preview URL.";static 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.";static description=this.descriptionWithoutMarkdown();static flags={...I,...y,theme:p.Flags.string({char:"t",description:"Theme ID or name of the remote theme.",env:"SHOPIFY_FLAG_THEME_ID",required:!0}),overrides:p.Flags.string({description:"Path to a JSON overrides file.",env:"SHOPIFY_FLAG_OVERRIDES",required:!0}),"preview-id":p.Flags.string({description:"An existing preview identifier to update instead of creating a new preview.",env:"SHOPIFY_FLAG_PREVIEW_ID"}),open:p.Flags.boolean({description:"Automatically launch the theme preview in your default web browser.",env:"SHOPIFY_FLAG_OPEN",default:!1}),json:p.Flags.boolean({description:"Output the preview URL and identifier as JSON.",env:"SHOPIFY_FLAG_JSON",default:!1})};static multiEnvironmentsFlags=null;async command(r,t){let s=await F(t,{filter:{theme:r.theme}});await $({adminSession:t,overrideJson:r.overrides,themeId:s.id.toString(),previewIdentifier:r["preview-id"],open:r.open,password:r.password,json:r.json})}};export{h as a};
1
+ import{b}from"./chunk-QOOVB6RW.js";import{j as c,l as f,o as T}from"./chunk-HS3VTFW3.js";import{a as F}from"./chunk-XRWQ7AXY.js";import{p as y,v as O}from"./chunk-GBYDMHZ3.js";import{b as I}from"./chunk-2IZROVCY.js";import{s as v,xa as w}from"./chunk-KYNXMDFU.js";import{z as S}from"./chunk-PSSOCUUD.js";import{h as a}from"./chunk-W3BNL2Q5.js";import{a as A}from"./chunk-CTNBSUVU.js";import{Ua as l,ma as u,xb as _}from"./chunk-G5QSVBYP.js";import{e as x,g as d}from"./chunk-VKWPEFWQ.js";d();d();d();async function P({session:e,overridesContent:r,themeId:t}){w("theme-preview:create");let m=`${f(e)}/theme_preview.json?preview_theme_id=${t}`,o=await c(e,{headers:{"Content-Type":"application/json"}}),i=await v(m,{method:"POST",body:r,headers:o});if(!i.ok)throw new a(`Theme preview request failed with status ${i.status}: ${i.statusText}`);let n=await J(i);return w("theme-preview:create"),n}async function g({session:e,overridesContent:r,themeId:t,previewIdentifier:s}){w("theme-preview:update");let o=`${f(e)}/theme_preview.json?preview_theme_id=${t}&preview_identifier=${encodeURIComponent(s)}`,i=await c(e,{headers:{"Content-Type":"application/json"}}),n=await v(o,{method:"POST",body:r,headers:i});if(!n.ok)throw new a(`Theme preview request failed with status ${n.status}: ${n.statusText}`);let E=await J(n);return w("theme-preview:update"),E}async function J(e){let r=await e.json();if(r.error)throw new a(`Theme preview failed: ${r.error}`);if(!r.url||!r.preview_identifier)throw new a("Theme preview returned an unexpected response");return{url:r.url,preview_identifier:r.preview_identifier}}async function $(e){if(!l(e.overrideJson))throw new a(`Override file not found: ${e.overrideJson}`);let r=await u(e.overrideJson),t;try{t=JSON.parse(r)}catch(i){let n=i instanceof Error?i.message:String(i);throw new a(`Failed to parse override file: ${e.overrideJson}`,n)}let s=await T(e.themeId,e.adminSession,e.password),m=JSON.stringify(t),o=e.previewIdentifier?await g({session:s,overridesContent:m,themeId:e.themeId,previewIdentifier:e.previewIdentifier}):await P({session:s,overridesContent:m,themeId:e.themeId});e.json?_(JSON.stringify({url:o.url,preview_identifier:o.preview_identifier})):S({body:[{list:{title:e.previewIdentifier?"Preview updated":"Preview is ready",items:[{link:{url:o.url}},`Preview ID: ${o.preview_identifier}`]}}]}),e.open&&b(o.url,"theme preview")}var p=x(A(),1);var h=class extends O{static summary="Applies JSON overrides to a theme and returns a preview URL.";static 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.";static description=this.descriptionWithoutMarkdown();static flags={...I,...y,theme:p.Flags.string({char:"t",description:"Theme ID or name of the remote theme.",env:"SHOPIFY_FLAG_THEME_ID",required:!0}),overrides:p.Flags.string({description:"Path to a JSON overrides file.",env:"SHOPIFY_FLAG_OVERRIDES",required:!0}),"preview-id":p.Flags.string({description:"An existing preview identifier to update instead of creating a new preview.",env:"SHOPIFY_FLAG_PREVIEW_ID"}),open:p.Flags.boolean({description:"Automatically launch the theme preview in your default web browser.",env:"SHOPIFY_FLAG_OPEN",default:!1}),json:p.Flags.boolean({description:"Output the preview URL and identifier as JSON.",env:"SHOPIFY_FLAG_JSON",default:!1})};static multiEnvironmentsFlags=null;async command(r,t){let s=await F(t,{filter:{theme:r.theme}});await $({adminSession:t,overrideJson:r.overrides,themeId:s.id.toString(),previewIdentifier:r["preview-id"],open:r.open,password:r.password,json:r.json})}};export{h as a};
@@ -1,4 +1,4 @@
1
- import{A as n,B as i,C as t,G as s,y as e,z as o}from"./chunk-T3IMDY72.js";import{h as d,k as l}from"./chunk-4EHFK2OI.js";import{g as r}from"./chunk-VKWPEFWQ.js";r();async function u(){e({headline:"CLI update available.",body:["Run",{command:"npm run shopify upgrade"},{char:"."}]}),e({headline:["To connect this project to your shopify store cd into:",{filePath:"/my-store/hydrogen.config.js"},{char:"."}],body:["You can also try the following steps:",{list:{items:[["Run",{command:"shopify project connect"}],["Run",{command:"hydrogen start"}]]}}]}),e({headline:"About your app.",customSections:[{body:{tabularData:[["Configuration file",{filePath:"shopify.app.scalable-transaction-app.toml"}],["App name",{userInput:"scalable-transaction-app"}],["Access scopes","read_products,write_products"]],firstColumnSubdued:!0}}]}),e({headline:[{userInput:"my-app"},"initialized and ready to build."],nextSteps:[["Run",{command:"cd verification-app"}],["To preview your project, run",{command:"npm app dev"}],["To add extensions, run",{command:"npm generate extension"}]],reference:[["Run",{command:"npm shopify help"}],{link:{label:"Dev docs",url:"https://shopify.dev"}}],customSections:[{title:"Custom section",body:{list:{items:[{link:{label:"Item 1",url:"https://shopify.com"}},"Item 2",{link:{url:"https://community.shopify.com/"}}]}}},{title:"Custom section 2",body:{list:{items:["Item 1","Item 2","Item 3"]}}}]}),o({headline:"CLI updated.",body:"You are now running version 3.47."}),o({headline:"Deployment successful.",body:"Your extensions have been uploaded to your Shopify Partners Dashboard.",nextSteps:[{link:{label:"See your deployment and set it live",url:"https://partners.shopify.com/1797046/apps/4523695/deployments"}}]}),n({headline:"You have reached your limit of checkout extensions for this app.",body:"You can free up space for a new one by deleting an existing one."}),n({headline:"Required access scope update.",body:"The deadline for re-selecting your app scopes is May 1, 2022.",reference:[{link:{label:"Dev docs",url:"https://shopify.dev/app/scopes"}}]});let a=new l("Something went wrong.");a.stack=`
1
+ import{A as n,B as i,C as t,G as s,y as e,z as o}from"./chunk-PSSOCUUD.js";import{h as d,k as l}from"./chunk-W3BNL2Q5.js";import{g as r}from"./chunk-VKWPEFWQ.js";r();async function u(){e({headline:"CLI update available.",body:["Run",{command:"npm run shopify upgrade"},{char:"."}]}),e({headline:["To connect this project to your shopify store cd into:",{filePath:"/my-store/hydrogen.config.js"},{char:"."}],body:["You can also try the following steps:",{list:{items:[["Run",{command:"shopify project connect"}],["Run",{command:"hydrogen start"}]]}}]}),e({headline:"About your app.",customSections:[{body:{tabularData:[["Configuration file",{filePath:"shopify.app.scalable-transaction-app.toml"}],["App name",{userInput:"scalable-transaction-app"}],["Access scopes","read_products,write_products"]],firstColumnSubdued:!0}}]}),e({headline:[{userInput:"my-app"},"initialized and ready to build."],nextSteps:[["Run",{command:"cd verification-app"}],["To preview your project, run",{command:"npm app dev"}],["To add extensions, run",{command:"npm generate extension"}]],reference:[["Run",{command:"npm shopify help"}],{link:{label:"Dev docs",url:"https://shopify.dev"}}],customSections:[{title:"Custom section",body:{list:{items:[{link:{label:"Item 1",url:"https://shopify.com"}},"Item 2",{link:{url:"https://community.shopify.com/"}}]}}},{title:"Custom section 2",body:{list:{items:["Item 1","Item 2","Item 3"]}}}]}),o({headline:"CLI updated.",body:"You are now running version 3.47."}),o({headline:"Deployment successful.",body:"Your extensions have been uploaded to your Shopify Partners Dashboard.",nextSteps:[{link:{label:"See your deployment and set it live",url:"https://partners.shopify.com/1797046/apps/4523695/deployments"}}]}),n({headline:"You have reached your limit of checkout extensions for this app.",body:"You can free up space for a new one by deleting an existing one."}),n({headline:"Required access scope update.",body:"The deadline for re-selecting your app scopes is May 1, 2022.",reference:[{link:{label:"Dev docs",url:"https://shopify.dev/app/scopes"}}]});let a=new l("Something went wrong.");a.stack=`
2
2
  Error: Unexpected error
3
3
  at Module._compile (internal/modules/cjs/loader.js:1137:30)
4
4
  at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)