shopify 4.9.1 → 4.9.3
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.
- package/dist/analytics-CLYTLX2B.js +1 -0
- package/dist/analytics-K6IFFIPX.js +1 -0
- package/dist/assets/hydrogen/starter/CHANGELOG.md +14 -0
- package/dist/assets/hydrogen/starter/package.json +2 -2
- package/dist/bootstrap.js +1 -1
- package/dist/{chunk-P6ID3ULA.js → chunk-2E2NYRQH.js} +1 -1
- package/dist/{chunk-VEIZLSMG.js → chunk-2GYIQINP.js} +1 -1
- package/dist/{chunk-MZJKZLCC.js → chunk-2NRFFAV4.js} +1 -1
- package/dist/{chunk-EVQPVO4P.js → chunk-2S7WRX2J.js} +1 -1
- package/dist/{chunk-23ITMFUO.js → chunk-2WQGEYBB.js} +1 -1
- package/dist/{chunk-JF47WERF.js → chunk-32HWTEOM.js} +1 -1
- package/dist/chunk-3B3CJS5I.js +1 -0
- package/dist/chunk-3FCN4NS6.js +6 -0
- package/dist/{chunk-K5KUOPEF.js → chunk-3FPVTPQO.js} +1 -1
- package/dist/{chunk-DUWU7CL7.js → chunk-3JN6OWIO.js} +1 -1
- package/dist/{chunk-MIMOKFDI.js → chunk-3U2OMG7L.js} +1 -1
- package/dist/{chunk-Z6VWYOKN.js → chunk-3YAD263J.js} +1 -1
- package/dist/{chunk-JCOQDVEB.js → chunk-43DSLBSX.js} +1 -1
- package/dist/{chunk-YQZPL4K3.js → chunk-46I3BQZH.js} +1 -1
- package/dist/{chunk-ADIHYUQC.js → chunk-4J7HQGWI.js} +1 -1
- package/dist/{chunk-4AXLWDKW.js → chunk-4LTQEQ4O.js} +1 -1
- package/dist/{chunk-2AZXDU2R.js → chunk-4MUH4E2U.js} +1 -1
- package/dist/{chunk-CUZQRXTV.js → chunk-4Q5TSWQL.js} +3 -3
- package/dist/{chunk-7H4IM6PX.js → chunk-4Q7NZI5A.js} +1 -1
- package/dist/{chunk-QZDFPNYT.js → chunk-4RFKEFWW.js} +1 -1
- package/dist/{chunk-N56BJ3F7.js → chunk-4TF7ER72.js} +1 -1
- package/dist/{chunk-AJOTU26E.js → chunk-52ZHZWF7.js} +1 -1
- package/dist/{chunk-IQ4VOPT7.js → chunk-543SYIY6.js} +1 -1
- package/dist/chunk-5BGUKF7L.js +1 -0
- package/dist/{chunk-QEF43PR2.js → chunk-5LONOHNN.js} +1 -1
- package/dist/chunk-5LZ5L2FF.js +70 -0
- package/dist/{chunk-DREP3FRJ.js → chunk-5RJ6KQHZ.js} +1 -1
- package/dist/{chunk-DCSSFNW7.js → chunk-66JMKA7C.js} +1 -1
- package/dist/{chunk-PTS7J2JO.js → chunk-6BVQSX7D.js} +1 -1
- package/dist/{chunk-254XYKPN.js → chunk-6HWDGTSX.js} +1 -1
- package/dist/{chunk-LRKJSNM3.js → chunk-6JOZHD34.js} +1 -1
- package/dist/{chunk-S6YUSGTF.js → chunk-6ZSI3C4G.js} +1 -1
- package/dist/{chunk-U2WUTGPI.js → chunk-73LX4DOM.js} +1 -1
- package/dist/{chunk-7IS6Q756.js → chunk-7AP5E5CF.js} +1 -1
- package/dist/chunk-7E4MJCVE.js +10 -0
- package/dist/{chunk-LOKVWZD2.js → chunk-7IYSJGFF.js} +1 -1
- package/dist/{chunk-SHDGD2WJ.js → chunk-7KCHSZ6H.js} +1 -1
- package/dist/{chunk-JJ4MYCVU.js → chunk-7KVTQDRW.js} +1 -1
- package/dist/{chunk-LIB64ZJW.js → chunk-7NHCYOKI.js} +1 -1
- package/dist/{chunk-LBBYCPZP.js → chunk-7SIY6GZD.js} +1 -1
- package/dist/{chunk-55JDA75S.js → chunk-A36J5FWZ.js} +1 -1
- package/dist/{chunk-IPWU2ALH.js → chunk-A6KNDSNT.js} +1 -1
- package/dist/{chunk-UJD7OQ3I.js → chunk-A6NAQ2Y3.js} +1 -1
- package/dist/{chunk-ICFM55ZS.js → chunk-A75SA57D.js} +1 -1
- package/dist/{chunk-2QV5FHXJ.js → chunk-A76YYGZT.js} +1 -1
- package/dist/{chunk-33D7HGAI.js → chunk-ACGPDJ6Q.js} +1 -1
- package/dist/{chunk-GF75CMTJ.js → chunk-ADGPOQ5M.js} +1 -1
- package/dist/{chunk-TGUAZMI2.js → chunk-ADL6JSX7.js} +1 -1
- package/dist/{chunk-NWBAD3AV.js → chunk-ADVNRGOU.js} +1 -1
- package/dist/{chunk-2TOIR7YQ.js → chunk-AF36J7R7.js} +1 -1
- package/dist/{chunk-VEQDI5AB.js → chunk-B32O5KET.js} +1 -1
- package/dist/{chunk-ZDRQUKLN.js → chunk-BHOZAIHS.js} +1 -1
- package/dist/{chunk-NYNSMHKY.js → chunk-BWCPDFEY.js} +1 -1
- package/dist/{chunk-DEY5P63E.js → chunk-BZSCRXYR.js} +3 -3
- package/dist/{chunk-GHO2S3W3.js → chunk-C4G7OKJD.js} +1 -1
- package/dist/{chunk-3WMFKHIM.js → chunk-CB6QT5K5.js} +1 -1
- package/dist/{chunk-DUWS6Q7C.js → chunk-CGCM5DB7.js} +1 -1
- package/dist/{chunk-JWQBRHVY.js → chunk-CNA5YGXA.js} +1 -1
- package/dist/{chunk-DP7SBNLN.js → chunk-CNHO3T4F.js} +1 -1
- package/dist/{chunk-3GVSG4S6.js → chunk-CPT2VBMR.js} +1 -1
- package/dist/{chunk-FNITLQDL.js → chunk-CQKZSB7Z.js} +1 -1
- package/dist/{chunk-NGQDG4CJ.js → chunk-CTDETNGR.js} +1 -1
- package/dist/{chunk-MEFJND2V.js → chunk-CTVOXVXG.js} +1 -1
- package/dist/{chunk-NZRQKFUB.js → chunk-DE5BUQL5.js} +1 -1
- package/dist/{chunk-OJ7KRWUH.js → chunk-DHWY73OS.js} +1 -1
- package/dist/chunk-DPGUL2TW.js +1 -0
- package/dist/{chunk-P676C7UT.js → chunk-DWDR7XMI.js} +1 -1
- package/dist/{chunk-CPKLTBLZ.js → chunk-E7PW5SVD.js} +1 -1
- package/dist/{chunk-2KBTFKSM.js → chunk-EA5LKCRF.js} +1 -1
- package/dist/{chunk-63GEZEYP.js → chunk-EJ46P6A3.js} +1 -1
- package/dist/{chunk-HJ3DOUAL.js → chunk-EM6KPZCM.js} +1 -1
- package/dist/{chunk-GILHUPUG.js → chunk-FHOBQUQT.js} +1 -1
- package/dist/{chunk-C4QR7Z4N.js → chunk-FKGN6F3F.js} +1 -1
- package/dist/{chunk-2NBNVDDA.js → chunk-FLPWT4AK.js} +1 -1
- package/dist/{chunk-HT2JVMLK.js → chunk-FMBC7LZB.js} +1 -1
- package/dist/{chunk-H3QLPW7Q.js → chunk-GB4WR6DY.js} +1 -1
- package/dist/{chunk-J4SJHG3M.js → chunk-GBG6SUK4.js} +1 -1
- package/dist/{chunk-GPRUQBQX.js → chunk-GIGA7EU3.js} +1 -1
- package/dist/{chunk-TH4D7IGZ.js → chunk-GOBTF2ZH.js} +1 -1
- package/dist/{chunk-WRVB4JCZ.js → chunk-GPJAWTR7.js} +1 -1
- package/dist/{chunk-EDLID4PK.js → chunk-GQZ3KCWJ.js} +3 -3
- package/dist/{chunk-GRKZRK4G.js → chunk-H3N5LKJD.js} +1 -1
- package/dist/{chunk-7AD5YCLL.js → chunk-H4PXFC7T.js} +1 -1
- package/dist/{chunk-OSA6BKSU.js → chunk-H5ZPH2EC.js} +1 -1
- package/dist/{chunk-5MJX7RKQ.js → chunk-HHNMV6GX.js} +1 -1
- package/dist/{chunk-WR2MMFJO.js → chunk-HJPAHR2V.js} +1 -1
- package/dist/{chunk-MDMKTILJ.js → chunk-HQ4JWC5M.js} +1 -1
- package/dist/{chunk-JA2QZ635.js → chunk-I3J63RFV.js} +1 -1
- package/dist/{chunk-ET2CGROE.js → chunk-IGE4Y5SE.js} +1 -1
- package/dist/{chunk-2AAHKMPP.js → chunk-IH2CB73H.js} +1 -1
- package/dist/{chunk-JCVQB6MX.js → chunk-IJM576XA.js} +1 -1
- package/dist/{chunk-W6TPRWEE.js → chunk-IKN6ICJR.js} +1 -1
- package/dist/{chunk-KCHERKZO.js → chunk-IN634BRF.js} +88 -88
- package/dist/{chunk-HVOYSAB3.js → chunk-IR6OW5R2.js} +1 -1
- package/dist/{chunk-RX27ER4R.js → chunk-ISU7Q2EB.js} +1 -1
- package/dist/{chunk-RDCHRPKV.js → chunk-J6BK6SNB.js} +1 -1
- package/dist/{chunk-TOLPNBZK.js → chunk-JFBCE4HN.js} +1 -1
- package/dist/{chunk-77QYKF34.js → chunk-JQ3DMPI6.js} +1 -1
- package/dist/{chunk-C7YSU4R5.js → chunk-JTXQPPKQ.js} +1 -1
- package/dist/{chunk-I4FS7HYY.js → chunk-JYWFR6VL.js} +1 -1
- package/dist/chunk-KD5AYVA2.js +1 -0
- package/dist/{chunk-AKSOCKVF.js → chunk-KEI3OJVP.js} +2 -2
- package/dist/{chunk-RNXWL6DS.js → chunk-KFOU4WLJ.js} +1 -1
- package/dist/{chunk-HQK6QRXN.js → chunk-KI3VRWBP.js} +1 -1
- package/dist/{chunk-QEEA2KEN.js → chunk-KRL7FE6M.js} +1 -1
- package/dist/{chunk-YFR53MWF.js → chunk-KWKRJYTY.js} +1 -1
- package/dist/{chunk-NHEUJKAO.js → chunk-KXZQKOKF.js} +1 -1
- package/dist/{chunk-OKX6PKAW.js → chunk-KY4WH4ZK.js} +1 -1
- package/dist/{chunk-OUSRNKZG.js → chunk-KZ54OSBH.js} +1 -1
- package/dist/{chunk-NE32WJR5.js → chunk-KZE6JT42.js} +1 -1
- package/dist/{chunk-OVOOQFRY.js → chunk-KZWYFH7M.js} +1 -1
- package/dist/chunk-L4DFMMOI.js +1 -0
- package/dist/{chunk-EYB45DUG.js → chunk-LGRZQTQL.js} +1 -1
- package/dist/{chunk-LAHZ6FO5.js → chunk-LIE6QSQ2.js} +1 -1
- package/dist/{chunk-RFDOSK57.js → chunk-LOTMFUSV.js} +1 -1
- package/dist/{chunk-F34MAI7X.js → chunk-MAQ3SRQF.js} +1 -1
- package/dist/{chunk-3MEL3WLG.js → chunk-MBE23GGW.js} +1 -1
- package/dist/{chunk-DZS4GBQX.js → chunk-MDGF3K45.js} +1 -1
- package/dist/{chunk-YACDI6IK.js → chunk-ME4EYPKZ.js} +1 -1
- package/dist/{chunk-S3IDGHAZ.js → chunk-MMCDBR23.js} +1 -1
- package/dist/{chunk-STLYSBD5.js → chunk-MNHZWEXI.js} +1 -1
- package/dist/{chunk-LEFAUWKH.js → chunk-MROQ2FRU.js} +1 -1
- package/dist/{chunk-VX2CDHRQ.js → chunk-MVFBLQ4J.js} +1 -1
- package/dist/{chunk-7WWPAHVE.js → chunk-MWVT5HYW.js} +1 -1
- package/dist/{chunk-RRBI2IRE.js → chunk-MYIN4HYW.js} +1 -1
- package/dist/{chunk-ISIPFEFB.js → chunk-MYP6QEJW.js} +1 -1
- package/dist/{chunk-77QKJLBG.js → chunk-NC64STMQ.js} +1 -1
- package/dist/{chunk-B7Y2LMPU.js → chunk-NL6DJQJG.js} +1 -1
- package/dist/{chunk-BATQEAGE.js → chunk-NO3QDX7R.js} +1 -1
- package/dist/{chunk-X6Y3HDXN.js → chunk-NYVG34OW.js} +1 -1
- package/dist/{chunk-5UDBNXNH.js → chunk-O36EB75H.js} +1 -1
- package/dist/{chunk-QNR3U4IO.js → chunk-O7YHDFOO.js} +1 -1
- package/dist/{chunk-VWYZCCRE.js → chunk-OSGXBBUJ.js} +5 -5
- package/dist/{chunk-SKK7CPUY.js → chunk-OUO2T3CC.js} +1 -1
- package/dist/{chunk-YS5RZ6D5.js → chunk-OVTWO3W7.js} +1 -1
- package/dist/{chunk-UVSXPMUN.js → chunk-P4MNJULR.js} +1 -1
- package/dist/{chunk-5ZSN73EA.js → chunk-P7YDAQ53.js} +1 -1
- package/dist/{chunk-S3J3BYQ3.js → chunk-PE6H7U6N.js} +1 -1
- package/dist/{chunk-UZTL2UET.js → chunk-PFBESNYV.js} +64 -53
- package/dist/{chunk-VL3XMULV.js → chunk-PFPVFPHV.js} +1 -1
- package/dist/{chunk-HDQXFGYG.js → chunk-PIZDYS7T.js} +60 -60
- package/dist/{chunk-X3WFHNF5.js → chunk-PQEFZTEJ.js} +1 -1
- package/dist/chunk-Q54LU5W4.js +1 -0
- package/dist/{chunk-XCXQPV5W.js → chunk-QKJ542VO.js} +1 -1
- package/dist/{chunk-ZQKZC2KN.js → chunk-QKSN6ZYW.js} +1 -1
- package/dist/{chunk-5I5HKOQU.js → chunk-QZGVZMB5.js} +1 -1
- package/dist/{chunk-JOEWOCHY.js → chunk-RJGFFGEN.js} +1 -1
- package/dist/{chunk-2RVMF4QP.js → chunk-S34ZYEZS.js} +1 -1
- package/dist/{chunk-XY2SSJQD.js → chunk-SZLNUMWO.js} +1 -1
- package/dist/{chunk-VXHLE5UQ.js → chunk-T3LZJIZN.js} +1 -1
- package/dist/{chunk-WGBUSO27.js → chunk-TFB4JJFQ.js} +1 -1
- package/dist/{chunk-LQ7ENG4V.js → chunk-TQ7URMGS.js} +1 -1
- package/dist/{chunk-3VOMVINB.js → chunk-TWT5LVEM.js} +1 -1
- package/dist/{chunk-IUUKRTKF.js → chunk-UGJN5Q6Y.js} +1 -1
- package/dist/{chunk-T7BUP75N.js → chunk-UKINO57E.js} +1 -1
- package/dist/chunk-UWHAOGO4.js +4 -0
- package/dist/{chunk-COFGQT76.js → chunk-UYWRJHAJ.js} +3 -3
- package/dist/{chunk-7UV53AU2.js → chunk-UZL4B7LA.js} +1 -1
- package/dist/{chunk-2FHVYY3B.js → chunk-V4F4LQBQ.js} +1 -1
- package/dist/chunk-VCAYMY7D.js +275 -0
- package/dist/{chunk-XUJURYN5.js → chunk-VDE7IIYQ.js} +1 -1
- package/dist/{chunk-B4YDR22W.js → chunk-VOOYVTYA.js} +1 -1
- package/dist/{chunk-3VXXYY6S.js → chunk-VWDVWHV7.js} +1 -1
- package/dist/{chunk-AZCPTV4A.js → chunk-WEB63XPH.js} +1 -1
- package/dist/{chunk-XW33ZO7F.js → chunk-WS54VCDC.js} +1 -1
- package/dist/{chunk-7ZONBOEZ.js → chunk-WUGFTI5M.js} +1 -1
- package/dist/{chunk-WBTR5JZ6.js → chunk-X5VBX2QA.js} +1 -1
- package/dist/{chunk-NSHKVJST.js → chunk-XBCFYD3T.js} +1 -1
- package/dist/{chunk-5CANB25O.js → chunk-XGFY6FV4.js} +1 -1
- package/dist/{chunk-DYHRCMH6.js → chunk-XMPLZWXP.js} +1 -1
- package/dist/{chunk-KXSUEB4Y.js → chunk-XSGYQXWO.js} +1 -1
- package/dist/{chunk-QF6EH4HX.js → chunk-XVOUKPGD.js} +1 -1
- package/dist/{chunk-3UZYLXCB.js → chunk-XZHUUA6U.js} +1 -1
- package/dist/{chunk-KVZXRZ7U.js → chunk-XZOSPVMV.js} +1 -1
- package/dist/{chunk-FJCNEHTH.js → chunk-Y45QFHVA.js} +1 -1
- package/dist/{chunk-WR6KP7RT.js → chunk-YKK4PGCQ.js} +1 -1
- package/dist/{chunk-5KILOX2V.js → chunk-YMAVVMN5.js} +1 -1
- package/dist/{chunk-ON3YXHON.js → chunk-YN3NT2RC.js} +1 -1
- package/dist/{chunk-46IUD46F.js → chunk-YPGZANN3.js} +1 -1
- package/dist/{chunk-CKLS5LTU.js → chunk-YS447QGN.js} +1 -1
- package/dist/{chunk-VPH2AAHJ.js → chunk-YUM5XGSV.js} +1 -1
- package/dist/{chunk-6WGHVCYY.js → chunk-YVX2OJ7N.js} +1 -1
- package/dist/{chunk-RFB7RXTA.js → chunk-YWS2OTSC.js} +1 -1
- package/dist/{chunk-QH5R32AA.js → chunk-YZXNXWDR.js} +1 -1
- package/dist/{chunk-HKNFZUAM.js → chunk-Z5M2VWQZ.js} +107 -107
- package/dist/{chunk-VY7UGJZK.js → chunk-ZBMEU2CE.js} +1 -1
- package/dist/{chunk-JSGOBMF6.js → chunk-ZIL2P7FL.js} +1 -1
- package/dist/{chunk-FROK2K3X.js → chunk-ZRW47MJT.js} +1 -1
- package/dist/{chunk-QPCDSJ4J.js → chunk-ZZWGNETX.js} +1 -1
- package/dist/cli/commands/app/app-logs/sources.js +1 -1
- package/dist/cli/commands/app/build.js +1 -1
- package/dist/cli/commands/app/bulk/cancel.js +1 -1
- package/dist/cli/commands/app/bulk/execute.js +1 -1
- package/dist/cli/commands/app/bulk/status.js +1 -1
- package/dist/cli/commands/app/config/link.js +1 -1
- package/dist/cli/commands/app/config/pull.js +1 -1
- package/dist/cli/commands/app/config/use.js +1 -1
- package/dist/cli/commands/app/config/validate.js +1 -1
- package/dist/cli/commands/app/demo/watcher.js +1 -1
- package/dist/cli/commands/app/deploy.js +1 -1
- package/dist/cli/commands/app/dev/clean.js +1 -1
- package/dist/cli/commands/app/dev.js +1 -1
- package/dist/cli/commands/app/env/pull.js +1 -1
- package/dist/cli/commands/app/env/show.js +1 -1
- package/dist/cli/commands/app/execute.js +1 -1
- package/dist/cli/commands/app/function/build.js +1 -1
- package/dist/cli/commands/app/function/info.js +1 -1
- package/dist/cli/commands/app/function/replay.js +1 -1
- package/dist/cli/commands/app/function/run.js +1 -1
- package/dist/cli/commands/app/function/schema.js +1 -1
- package/dist/cli/commands/app/function/typegen.js +1 -1
- package/dist/cli/commands/app/generate/extension.js +1 -1
- package/dist/cli/commands/app/graphiql.js +1 -1
- package/dist/cli/commands/app/import/channel-config.js +1 -1
- package/dist/cli/commands/app/import/custom-data-definitions.js +1 -1
- package/dist/cli/commands/app/import/dashboard-extensions.js +1 -1
- package/dist/cli/commands/app/import-custom-data-definitions.js +1 -1
- package/dist/cli/commands/app/import-extensions.js +1 -1
- package/dist/cli/commands/app/info.js +1 -1
- package/dist/cli/commands/app/init.js +1 -1
- package/dist/cli/commands/app/logs.js +1 -1
- package/dist/cli/commands/app/release.js +1 -1
- package/dist/cli/commands/app/security/check.js +1 -1
- package/dist/cli/commands/app/security/clean.js +1 -1
- package/dist/cli/commands/app/security/instructions.js +1 -1
- package/dist/cli/commands/app/security/record.js +1 -1
- package/dist/cli/commands/app/security/review.js +1 -1
- package/dist/cli/commands/app/subscription-migrations/cancel.js +1 -1
- package/dist/cli/commands/app/subscription-migrations/list.js +1 -1
- package/dist/cli/commands/app/subscription-migrations/schedule.js +1 -1
- package/dist/cli/commands/app/subscription-migrations/status.js +1 -1
- package/dist/cli/commands/app/subscription-migrations/unschedule.js +1 -1
- package/dist/cli/commands/app/versions/list.js +1 -1
- package/dist/cli/commands/app/webhook/trigger.js +1 -1
- package/dist/cli/commands/auth/login.js +1 -1
- package/dist/cli/commands/auth/logout.js +1 -1
- package/dist/cli/commands/cache/clear.js +1 -1
- package/dist/cli/commands/config/autoupgrade/off.js +1 -1
- package/dist/cli/commands/config/autoupgrade/on.js +1 -1
- package/dist/cli/commands/config/autoupgrade/status.js +1 -1
- package/dist/cli/commands/debug/command-flags.js +1 -1
- package/dist/cli/commands/doc/fetch.js +1 -1
- package/dist/cli/commands/doc/search.js +1 -1
- package/dist/cli/commands/docs/generate.js +1 -1
- package/dist/cli/commands/doctor-release/doctor-release.js +1 -1
- package/dist/cli/commands/doctor-release/theme/index.js +1 -1
- package/dist/cli/commands/help.js +1 -1
- package/dist/cli/commands/kitchen-sink/async.js +1 -1
- package/dist/cli/commands/kitchen-sink/index.js +1 -1
- package/dist/cli/commands/kitchen-sink/prompts.js +1 -1
- package/dist/cli/commands/kitchen-sink/static.js +1 -1
- package/dist/cli/commands/notifications/generate.js +1 -1
- package/dist/cli/commands/notifications/list.js +1 -1
- package/dist/cli/commands/organization/list.js +1 -1
- package/dist/cli/commands/search.js +1 -1
- package/dist/cli/commands/send-analytics.js +1 -1
- package/dist/cli/commands/theme/check.js +1 -1
- package/dist/cli/commands/theme/console.js +1 -1
- package/dist/cli/commands/theme/delete.js +1 -1
- package/dist/cli/commands/theme/dev.js +1 -1
- package/dist/cli/commands/theme/duplicate.js +1 -1
- package/dist/cli/commands/theme/info.js +1 -1
- package/dist/cli/commands/theme/init.js +1 -1
- package/dist/cli/commands/theme/language-server.js +1 -1
- package/dist/cli/commands/theme/list.js +1 -1
- package/dist/cli/commands/theme/metafields/pull.js +1 -1
- package/dist/cli/commands/theme/open.js +1 -1
- package/dist/cli/commands/theme/package.js +1 -1
- package/dist/cli/commands/theme/preview.js +1 -1
- package/dist/cli/commands/theme/profile.js +1 -1
- package/dist/cli/commands/theme/publish.js +1 -1
- package/dist/cli/commands/theme/pull.js +1 -1
- package/dist/cli/commands/theme/push.js +1 -1
- package/dist/cli/commands/theme/rename.js +1 -1
- package/dist/cli/commands/theme/share.js +1 -1
- package/dist/cli/commands/upgrade.js +1 -1
- package/dist/cli/commands/version.js +1 -1
- package/dist/cli/help.js +1 -1
- package/dist/{command-json-schema-SU56F3T4.js → command-json-schema-AWZEAYEU.js} +1 -1
- package/dist/command-registry.js +1 -1
- package/dist/{conf-store-WDYDHG6V.js → conf-store-TBERV4YJ.js} +1 -1
- package/dist/{custom-oclif-loader-CP4XJAPS.js → custom-oclif-loader-RHFO4GO3.js} +1 -1
- package/dist/{deprecations-CBSMNYL3.js → deprecations-FNYLBULK.js} +1 -1
- package/dist/dist-HV5W7PYL.js +1 -0
- package/dist/dist-VKKGDJQ2.js +1 -0
- package/dist/environments-XC6OMZY2.js +1 -0
- package/dist/{error-LNWX6IWE.js → error-SI2QH7DT.js} +1 -1
- package/dist/error-handler-XOEXJ4TY.js +1 -0
- package/dist/{fs-Y33QBYY5.js → fs-J67RRM6W.js} +1 -1
- package/dist/hooks/did-you-mean.js +1 -1
- package/dist/hooks/hydrogen-init.js +1 -1
- package/dist/hooks/plugin-plugins.js +1 -1
- package/dist/hooks/postrun.js +1 -1
- package/dist/hooks/prerun.js +1 -1
- package/dist/hooks/public-metadata.js +1 -1
- package/dist/hooks/sensitive-metadata.js +1 -1
- package/dist/hooks/tunnel-provider.js +1 -1
- package/dist/hooks/tunnel-start.js +1 -1
- package/dist/index.js +1 -1
- package/dist/is-global-BSY2VR5F.js +1 -0
- package/dist/{json-error-UR2OILQ6.js → json-error-BVX244JK.js} +1 -1
- package/dist/lib-55QUD4AJ.js +1 -0
- package/dist/lib-PH52G55H.js +1 -0
- package/dist/lib-TYM5B75S.js +1 -0
- package/dist/{local-77XQ4CX3.js → local-VCJXKA4Z.js} +1 -1
- package/dist/{metadata-BC3BGHRY.js → metadata-G7M7BSIE.js} +1 -1
- package/dist/{morph-42EXMN3K.js → morph-BABFBRSW.js} +1 -1
- package/dist/{node-package-manager-6UZUTDCP.js → node-package-manager-PMTBCYAX.js} +1 -1
- package/dist/notifications-system-O2R4VN7A.js +1 -0
- package/dist/os-MMNGCSNT.js +1 -0
- package/dist/{output-GGY66WEM.js → output-2Q6CSC33.js} +1 -1
- package/dist/system-DQ2SKK6C.js +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/typescript-ISACCMJN.js +1 -0
- package/dist/ui-QOSX5V7Z.js +1 -0
- package/dist/upgrade-7HYLPUVK.js +1 -0
- package/dist/version-BPEZT4N3.js +1 -0
- package/dist/version-VNCEYJRH.js +1 -0
- package/dist/{workerd-MEAM3XYI.js → workerd-2RFRLQVH.js} +1 -1
- package/oclif.manifest.json +5 -5
- package/package.json +8 -8
- package/dist/analytics-EPKJADE2.js +0 -1
- package/dist/analytics-TVCGKQGZ.js +0 -1
- package/dist/chunk-32B4LIKH.js +0 -1
- package/dist/chunk-5XO6PAMV.js +0 -1
- package/dist/chunk-7UZO72KN.js +0 -278
- package/dist/chunk-7Y7AZRL3.js +0 -10
- package/dist/chunk-A6OSIGQI.js +0 -1
- package/dist/chunk-F3TMLDLC.js +0 -1
- package/dist/chunk-HSTNTHWM.js +0 -1
- package/dist/chunk-MFXBSQDH.js +0 -12
- package/dist/chunk-MINDMVTH.js +0 -1
- package/dist/chunk-NTFIW3VK.js +0 -6
- package/dist/chunk-PCKWLJW2.js +0 -1
- package/dist/chunk-SMZ74TME.js +0 -64
- package/dist/dist-HI6AAP5V.js +0 -1
- package/dist/dist-W25ND3PJ.js +0 -1
- package/dist/environments-PUH6A5BU.js +0 -1
- package/dist/error-handler-24QGAUUD.js +0 -1
- package/dist/is-global-KY3QE3OZ.js +0 -1
- package/dist/lib-AD2G3QH3.js +0 -1
- package/dist/lib-VEVNMHDE.js +0 -1
- package/dist/lib-ZQW4E7QU.js +0 -1
- package/dist/notifications-system-4UDT72DQ.js +0 -1
- package/dist/os-U3LELTCV.js +0 -1
- package/dist/system-MCWAHFXK.js +0 -1
- package/dist/typescript-5R4Y7PXE.js +0 -1
- package/dist/ui-SYB4LLWY.js +0 -1
- package/dist/upgrade-V4GCQJBN.js +0 -1
- package/dist/version-HQPFW4QN.js +0 -1
- package/dist/version-VOSHQCYM.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{k as P,t as F}from"./chunk-
|
|
1
|
+
import{k as P,t as F}from"./chunk-XBCFYD3T.js";import{a as N}from"./chunk-Q7BOSHWX.js";import{a as T}from"./chunk-QKSN6ZYW.js";import{I as H,K as q,k as $,pa as d,ra as h}from"./chunk-OSGXBBUJ.js";import{a as x}from"./chunk-DPGUL2TW.js";import{B as I,C as L,T as v}from"./chunk-IN634BRF.js";import{i as l}from"./chunk-VDE7IIYQ.js";import{Cb as C,Eb as U,Nb as c}from"./chunk-UYWRJHAJ.js";import{u as O}from"./chunk-FKGN6F3F.js";import{g as p}from"./chunk-VKWPEFWQ.js";p();p();function D(e){let t=new URLSearchParams;for(let[r,o]of Object.entries(e.replaceTemplates??[]))t.append(`replace_templates[${r}]`,o);for(let[r,o]of Object.entries(e.replaceExtensionTemplates??[])){let n=r.split("/")[0];t.append(`replace_extension_templates[${n}][${r}]`,o)}return t.append("_method",e.method),t}function w(){return{"User-Agent":`Shopify CLI; v=${x}`}}function k(e){return delete e.cookie,delete e.authorization,e}p();function S(e){let t={};return e.split(";").forEach(r=>{let o=r.match(/(.*?)=(.*)$/)??[],n=o[1]?.trim(),s=o[2]?.trim()??"";n&&(t[n]=s)}),t}function E(e){return Object.entries(e).map(([t,r])=>`${t}=${r}`).join("; ")}var y=class extends l{};async function Re(e){return F(e)}async function be(e,t,r){let o=M(t),n=new URLSearchParams;n.append("form_type","storefront_password"),n.append("utf8","\u2713"),n.append("password",e??""),h("theme-service:storefront-session:check-storefront-password");let s={"cache-control":"no-cache","content-type":"application/x-www-form-urlencoded",...r},a=await $(`${o}/password`,{headers:s,body:n.toString(),method:"POST",redirect:"manual"});if(a.status===429)throw d(new l(`Too many incorrect password attempts. Please try again after ${a.headers.get("retry-after")} seconds.`));return B(a,o)}async function j(e,t,r,o,n={}){let s={},a=await G(e,r,n),i=M(t);if(s._shopify_essential=a,h(`theme-service:storefront-session:is-password-protected:${!!o}`),!o)return s;let u=await ee(a,e,i,o,n);return{...s,...u}}async function G(e,t,r,o=1){let n=new URLSearchParams({preview_theme_id:t,_fd:"0",pb:"0"}),s=`${e}?${n}`;h("theme-service:storefront-session:get-session-essential-cookie");let a={...r,...w()},i=await $(s,{method:"HEAD",redirect:"manual",headers:a}),u=i.headers.raw()["set-cookie"]??[],f=_(u,"_shopify_essential");if(!f){if(c(`Failed to obtain _shopify_essential cookie.
|
|
2
2
|
|
|
3
3
|
-Request ID: ${i.headers.get("x-request-id")??"unknown"}
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as p}from"./chunk-
|
|
1
|
+
import{a as p}from"./chunk-5LONOHNN.js";import{a as r,b as c}from"./chunk-WUGFTI5M.js";import{d as s}from"./chunk-IH2CB73H.js";import{a}from"./chunk-3B3CJS5I.js";import{Ha as n}from"./chunk-KEI3OJVP.js";import{g as o}from"./chunk-VKWPEFWQ.js";o();var e=class d extends a{static summary="Reverses app subscription migrations that are still scheduled.";static descriptionWithMarkdown="Reverses scheduled app subscription migrations that have not migrated yet.\n\nWhen `--input` is omitted, the command reads CSV data from stdin. Use `--input <path>` to read from a file. `--input -` is also supported as an explicit stdin path.\n\n- Required CSV header: `shop_id`.\n- Example row: `123456789`.\n\nThe CSV can contain only the `shop_id` header, or it can reuse the complete CSV supplied to `schedule`; schedule-only columns are ignored.\n\nUnscheduling is not a rollback after a subscription has migrated. The command validates the entire CSV before sending any mutation. Use `--force` to skip confirmation and immediately submit every valid row.\n\nOperations are submitted in batches of 250 shops. Preserve every operation GID printed by the command so you can check or cancel the submitted operations. With `--watch`, human-readable output shows accepted identifiers before polling begins, then displays operation progress and the final outcome. With `--json --watch`, the command outputs one structured JSON document after every operation reaches a terminal status.\n\nRun the command from an app project. By default, it uses the Client ID from the active app configuration. Use `--path` to select an app directory or `--config` to select a configuration. Pass `--client-id` to select a different app within the project. Use `--reset` to relink the app.";static description=this.descriptionWithoutMarkdown();static examples=["<%= config.bin %> <%= command.id %> --input migrations.csv --force","cat migrations.csv | <%= config.bin %> <%= command.id %> --force","<%= config.bin %> <%= command.id %> --input migrations.csv --path ../my-app --config staging --force --json","<%= config.bin %> <%= command.id %> --input migrations.csv --client-id <client-id> --force","<%= config.bin %> <%= command.id %> --input - --force --watch"];static flags={...s};async run(){let{flags:t}=await this.parse(d),{app:m,remoteApp:u}=await n({directory:t.path,clientId:t["client-id"],forceRelink:t.reset,userProvidedConfigName:t.config}),h=await p({action:"unschedule",input:t.input??"-",clientId:u.apiKey,skipConfirmation:t.force,watch:t.watch,...t.watch&&!t.json?{onSubmissionAccepted:r}:{}}),i=c(h,{json:t.json,watch:t.watch});return i!==0&&(process.exitCode=i),{app:m}}};export{e as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as a,g as c,i as p,j as f}from"./chunk-
|
|
1
|
+
import{b as a,g as c,i as p,j as f}from"./chunk-XBCFYD3T.js";import{l as h}from"./chunk-VDE7IIYQ.js";import{g as i}from"./chunk-VKWPEFWQ.js";i();i();i();function d(n){let e=/[^\p{Letter}\p{Number}\p{Mark}-]/gu;return n.replace(e,"-")}import{randomBytes as l}from"crypto";import{hostname as g}from"os";var T=50;function m(n){let e=g().split(".")[0],r=l(3).toString("hex"),t=`${n} ()`,s=T-t.length-r.length-1,o=d(`${r}-${e.substring(0,s)}`);return`${n} (${o})`}var u=class{adminSession;themeId;constructor(e){this.adminSession=e}async findOrCreate(e,r){let t=await this.fetch(e,r);return t?this.setTheme(t.id.toString()):t=await this.create(r,e),t}async fetch(e,r){if(!this.themeId&&!e)return;let t=e&&r===a?await p(e,this.adminSession):await c(parseInt(this.themeId,10),this.adminSession);return t||this.removeTheme(),t}generateThemeName(e){return m(e)}async create(e,r){let t=r??m(this.context),s=e??a,o=await f({name:t,role:s},this.adminSession);if(!o)throw new h(`Could not create theme with name "${t}" and role "${s}"`);return this.setTheme(o.id.toString()),o}};export{u as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as t}from"./chunk-
|
|
1
|
+
import{a as t}from"./chunk-H4PXFC7T.js";import{g as a}from"./chunk-VKWPEFWQ.js";a();async function r(d){await t.addPublicMetadata(()=>d)}export{r as a};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{A as x,a as oe,b as ne,c as M,d as ie,e as ae,g as L,i as P,j as le,k as ce,m as ue,n as pe,o as me,r as fe,s as de,t as ge,u as Ee,v,w as he,x as ye,y as Te,z as A}from"./chunk-55JDA75S.js";import{a as se}from"./chunk-STLYSBD5.js";import{a as re}from"./chunk-MINDMVTH.js";import{a as K}from"./chunk-RFDOSK57.js";import{Ha as te,I as z,aa as Z,ca as ee,l as X}from"./chunk-AKSOCKVF.js";import{sa as W}from"./chunk-WBTR5JZ6.js";import{b as Q,c as Y}from"./chunk-2KBTFKSM.js";import{u as $}from"./chunk-VWYZCCRE.js";import{d as N,e as m,f as o,l as H,y as G}from"./chunk-KCHERKZO.js";import{i as C}from"./chunk-XUJURYN5.js";import{Ib as F,Kb as I,ga as V}from"./chunk-COFGQT76.js";import{b as Ce}from"./chunk-JA2QZ635.js";import{j}from"./chunk-3VYOLEQE.js";import{e as k,g}from"./chunk-VKWPEFWQ.js";g();g();g();g();g();g();var _=k(N(),1);function be(t){let s=(0,_.useRef)(t);(0,_.useEffect)(()=>{s.current=t},[t]),(0,_.useEffect)(()=>{let n;function i(){s.current().then(({retryIntervalMs:l})=>{l&&(n=setTimeout(i,l))}).catch(()=>{})}return n=setTimeout(i,0),()=>n&&clearTimeout(n)},[])}g();var U=async({pollOptions:{jwtToken:t,cursor:s,filters:n},developerPlatformClient:i,organizationId:a})=>{let l=await i.appLogs({jwtToken:t,cursor:s},a),{errors:f,status:u}=l;if(u!==200){if(u===401||u===429||u>=500)return{errors:f.map(y=>({status:u,message:y}))};throw new C(`${f.join(", ")} while fetching app logs`)}let{cursor:r,app_logs:c}=l,E=_e(c,n);return{cursor:r,appLogs:E}};function _e(t,s){let n=t;return(s.status!==void 0||s.sources!==void 0)&&(n=n.filter(i=>{let a=s.status===void 0?!0:i.status===s.status,l=s.sources===void 0?!0:s.sources.includes(`${i.source_namespace}.${i.source}`);return a&&l})),n}var R=k(N(),1);async function Ne({jwtToken:t,cursor:s,filters:n,storeNameById:i,organizationId:a,setErrors:l,setAppLogOutputs:f,resubscribeCallback:u,developerPlatformClient:r}){let c=t,E=L,y=s,b=await U({pollOptions:{jwtToken:t,cursor:s,filters:n},developerPlatformClient:r,organizationId:a}),p="not_attempted",w=b;if(w.errors){let h=await v({response:w,onThrottle:d=>{l(["Request throttled while polling app logs.",`Retrying in ${d/1e3}s`])},onUnknownError:d=>{l(["Error while polling app logs",`Retrying in ${d/1e3}s`])},onResubscribe:()=>u()});p=h.resubscribeResult,h.nextJwtToken&&(c=h.nextJwtToken),E=h.retryIntervalMs}else{l(d=>d.length?[]:d);let{appLogs:h}=b;if(y=b.cursor,h)for(let d of h){let T,S,q,J=i.get(d.shop_id.toString());if(J===void 0)continue;switch(d.log_type){case ce:T=fe(d.payload),S=`export "${T.export}" executed in ${(T.fuelConsumed/le).toFixed(4)}M instructions`;break;case ue:T=de(d.payload),S="network access response retrieved from cache";break;case pe:T=ge(d.payload),S="network access request executing in background";break;case me:T=Ee(d.payload),q=T.connectTimeMs&&T.writeReadTimeMs?T.connectTimeMs+T.writeReadTimeMs:null,S=`network access request executed${q?` in ${q} ms`:""}`;break;default:continue}let Se={status:d.status==="success"?"Success":"Failure",source:d.source,storeName:J,description:S,logTimestamp:V(d.log_timestamp)};T&&f(ke=>[...ke,{appLog:T,prefix:Se}])}}return{nextJwtToken:c,retryIntervalMs:E,cursor:y??s,resubscribeResult:p}}function we({initialJwt:t,filters:s,resubscribeCallback:n,storeNameById:i,developerPlatformClient:a,organizationId:l}){let[f,u]=(0,R.useState)([]),[r,c]=(0,R.useState)([]),E=(0,R.useRef)(t),y=(0,R.useRef)(0),b=(0,R.useRef)(""),p=(0,R.useRef)(0),w=(0,R.useCallback)(async()=>{let h=await Ne({jwtToken:E.current,cursor:b.current,filters:s,storeNameById:i,setErrors:u,setAppLogOutputs:c,resubscribeCallback:n,developerPlatformClient:a,organizationId:l});if(h.resubscribeResult==="failed"){if(p.current+=1,p.current>=P)return u(["App log streaming session has expired. Please restart your dev session."]),{retryIntervalMs:0}}else h.resubscribeResult==="succeeded"&&(p.current=0);return E.current=h.nextJwtToken,b.current=h.cursor,y.current=h.retryIntervalMs,{retryIntervalMs:y.current}},[]);return be(w),{appLogOutputs:r,errors:f}}var e=k(N(),1);var Fe=t=>{switch(t){case M.NoCachedResponse:return"No cached response available";case M.CacheAboutToExpire:return"Cache is about to expire";case M.Unknown:return"Unknown reason"}},Re=({pollOptions:{jwtToken:t,filters:s},resubscribeCallback:n,storeNameById:i,developerPlatformClient:a,organizationId:l})=>{let{appLogOutputs:f,errors:u}=we({filters:s,initialJwt:t,resubscribeCallback:n,storeNameById:i,developerPlatformClient:a,organizationId:l});return e.default.createElement(e.default.Fragment,null,f.map(({appLog:r,prefix:c},E)=>e.default.createElement(m,{flexDirection:"column",key:E},e.default.createElement(m,{flexDirection:"row",gap:1},e.default.createElement(o,null,e.default.createElement(o,{color:"green"},c.logTimestamp," "),e.default.createElement(o,{color:"blueBright"},`${c.storeName.split(".")[0]}`," "),e.default.createElement(o,{color:"blueBright"},c.source," "),e.default.createElement(o,{color:c.status==="Success"?"green":"red"},c.status," "),e.default.createElement(o,null,c.description))),e.default.createElement(m,{flexDirection:"column",marginLeft:4},r instanceof oe&&e.default.createElement(m,{flexDirection:"column"},e.default.createElement(o,null,r.logs),r.inputQueryVariablesMetafieldKey&&r.inputQueryVariablesMetafieldNamespace?e.default.createElement(m,{flexDirection:"column",marginTop:1},e.default.createElement(o,{bold:!0},"Input Query Variables:"),e.default.createElement(m,{flexDirection:"row",marginLeft:1,marginTop:1},e.default.createElement(o,{dimColor:!0},"Namespace:"),e.default.createElement(o,null," ",r.inputQueryVariablesMetafieldNamespace)),e.default.createElement(m,{flexDirection:"row",marginLeft:1},e.default.createElement(o,{dimColor:!0},"Key:"),e.default.createElement(o,null," ",r.inputQueryVariablesMetafieldKey)),e.default.createElement(m,{marginLeft:1,marginTop:1},e.default.createElement(o,null,x(r.inputQueryVariablesMetafieldValue)??e.default.createElement(o,{color:"red"},"Metafield is not set")))):null,r.input?e.default.createElement(m,{flexDirection:"column",marginTop:1},e.default.createElement(o,{bold:!0},"Input ",e.default.createElement(o,{dimColor:!0},"(",r.inputBytes," bytes):")),e.default.createElement(m,{marginLeft:1,marginTop:1},e.default.createElement(o,null,x(r.input)))):null,r.output?e.default.createElement(m,{flexDirection:"column",marginTop:1},e.default.createElement(o,{bold:!0},"Output ",e.default.createElement(o,{dimColor:!0},"(",r.outputBytes," bytes):")),e.default.createElement(m,{marginLeft:1,marginTop:1},e.default.createElement(o,null,x(r.output)))):null),r instanceof ne&&e.default.createElement(m,{flexDirection:"column"},e.default.createElement(o,null,"Cache write time: ",new Date(r.cacheEntryEpochMs).toISOString()),e.default.createElement(o,null,"Cache TTL: ",r.cacheTtlMs/1e3," s"),e.default.createElement(o,null,"HTTP request:"),e.default.createElement(o,null,x(r.httpRequest)),e.default.createElement(o,null,"HTTP response:"),e.default.createElement(o,null,x(r.httpResponse))),r instanceof ie&&e.default.createElement(m,{flexDirection:"column"},e.default.createElement(o,null,"Reason: ",Fe(r.reason)),e.default.createElement(o,null,"HTTP request:"),e.default.createElement(o,null,x(r.httpRequest))),r instanceof ae&&e.default.createElement(m,{flexDirection:"column"},e.default.createElement(o,null,"Attempt: ",r.attempt),r.connectTimeMs?e.default.createElement(o,null,"Connect time: ",r.connectTimeMs," ms"):null,r.writeReadTimeMs?e.default.createElement(o,null,"Write read time: ",r.writeReadTimeMs," ms"):null,e.default.createElement(o,null,"HTTP request:"),e.default.createElement(o,null,x(r.httpRequest)),r.httpResponse?e.default.createElement(m,{flexDirection:"column"},e.default.createElement(o,null,"HTTP response:"),e.default.createElement(o,null,x(r.httpResponse))):null,r.error?e.default.createElement(o,null,"Error: ",r.error):null)))),u.length>0&&e.default.createElement(m,{flexDirection:"column"},u.map((r,c)=>e.default.createElement(m,{key:c},e.default.createElement(o,{color:"red"},r)))))};var xe=k(N(),1);async function Ie({pollOptions:t,options:{variables:s,developerPlatformClient:n},storeNameById:i,organizationId:a}){let l=async()=>A(n,s,a);return H(xe.default.createElement(Re,{pollOptions:t,resubscribeCallback:l,storeNameById:i,developerPlatformClient:n,organizationId:a}))}g();async function D({pollOptions:t,options:{variables:s,developerPlatformClient:n},storeNameById:i,organizationId:a,consecutiveResubscribeFailures:l=0}){let f=await U({pollOptions:t,developerPlatformClient:n,organizationId:a}),u=L,r=t.jwtToken,c=l,E=f;if(E.errors){let p=await v({response:E,onThrottle:w=>{I(JSON.stringify({message:"Request throttled while polling app logs.",retry_in_ms:w}))},onUnknownError:w=>{I(JSON.stringify({message:"Error while polling app logs.",retry_in_ms:w}))},onResubscribe:()=>A(n,s,a)});if(p.resubscribeResult==="failed"){if(c+=1,c>=P){I(JSON.stringify({message:"App log streaming session has expired. Please restart your dev session."}));return}}else p.resubscribeResult==="succeeded"&&(c=0);p.nextJwtToken&&(r=p.nextJwtToken),u=p.retryIntervalMs}else c=0;let{cursor:y,appLogs:b}=f;b&&b.forEach(p=>{let w=i.get(p.shop_id?.toString());w!==void 0&&F(ye({appLog:p,appLogPayload:Te(p.payload,p.log_type),storeName:w,prettyPrint:!1}))}),setTimeout(()=>{D({options:{variables:s,developerPlatformClient:n},pollOptions:{jwtToken:r||t.jwtToken,cursor:y??t.cursor,filters:t.filters},storeNameById:i,organizationId:a,consecutiveResubscribeFailures:c}).catch(p=>{throw p})},u)}async function Ae(t){let{app:s,remoteApp:n,developerPlatformClient:i}=t,a=await Me(t),l=he(s);if(l.length===0)throw new C("This app has no log sources. Learn more about app logs at https://shopify.dev/docs/api/shopify-cli/app/app-logs");if(t.sources){let y=t.sources.filter(b=>!l.includes(b));if(y.length)throw new C(`Invalid sources: ${y.join(", ")}. Valid sources are: ${l.join(", ")}`)}let f={shopIds:a.storeIds.map(Number),apiKey:n.apiKey},u=await A(i,f,t.organization.id),r={status:t.status,sources:t.sources},c={jwtToken:u,filters:r};t.format==="json"&&F(JSON.stringify({subscribedToStores:t.storeFqdns})),I(`Waiting for app logs...
|
|
1
|
+
import{A as x,a as oe,b as ne,c as M,d as ie,e as ae,g as L,i as P,j as le,k as ce,m as ue,n as pe,o as me,r as fe,s as de,t as ge,u as Ee,v,w as he,x as ye,y as Te,z as A}from"./chunk-A36J5FWZ.js";import{a as se}from"./chunk-MNHZWEXI.js";import{a as re}from"./chunk-3B3CJS5I.js";import{a as K}from"./chunk-LOTMFUSV.js";import{Ha as te,I as z,aa as Z,ca as ee,l as X}from"./chunk-KEI3OJVP.js";import{sa as W}from"./chunk-X5VBX2QA.js";import{b as Q,c as Y}from"./chunk-EA5LKCRF.js";import{u as $}from"./chunk-OSGXBBUJ.js";import{d as N,e as m,f as o,l as H,y as G}from"./chunk-IN634BRF.js";import{i as C}from"./chunk-VDE7IIYQ.js";import{Ib as F,Kb as I,ga as V}from"./chunk-UYWRJHAJ.js";import{b as Ce}from"./chunk-I3J63RFV.js";import{j}from"./chunk-3VYOLEQE.js";import{e as k,g}from"./chunk-VKWPEFWQ.js";g();g();g();g();g();g();var _=k(N(),1);function be(t){let s=(0,_.useRef)(t);(0,_.useEffect)(()=>{s.current=t},[t]),(0,_.useEffect)(()=>{let n;function i(){s.current().then(({retryIntervalMs:l})=>{l&&(n=setTimeout(i,l))}).catch(()=>{})}return n=setTimeout(i,0),()=>n&&clearTimeout(n)},[])}g();var U=async({pollOptions:{jwtToken:t,cursor:s,filters:n},developerPlatformClient:i,organizationId:a})=>{let l=await i.appLogs({jwtToken:t,cursor:s},a),{errors:f,status:u}=l;if(u!==200){if(u===401||u===429||u>=500)return{errors:f.map(y=>({status:u,message:y}))};throw new C(`${f.join(", ")} while fetching app logs`)}let{cursor:r,app_logs:c}=l,E=_e(c,n);return{cursor:r,appLogs:E}};function _e(t,s){let n=t;return(s.status!==void 0||s.sources!==void 0)&&(n=n.filter(i=>{let a=s.status===void 0?!0:i.status===s.status,l=s.sources===void 0?!0:s.sources.includes(`${i.source_namespace}.${i.source}`);return a&&l})),n}var R=k(N(),1);async function Ne({jwtToken:t,cursor:s,filters:n,storeNameById:i,organizationId:a,setErrors:l,setAppLogOutputs:f,resubscribeCallback:u,developerPlatformClient:r}){let c=t,E=L,y=s,b=await U({pollOptions:{jwtToken:t,cursor:s,filters:n},developerPlatformClient:r,organizationId:a}),p="not_attempted",w=b;if(w.errors){let h=await v({response:w,onThrottle:d=>{l(["Request throttled while polling app logs.",`Retrying in ${d/1e3}s`])},onUnknownError:d=>{l(["Error while polling app logs",`Retrying in ${d/1e3}s`])},onResubscribe:()=>u()});p=h.resubscribeResult,h.nextJwtToken&&(c=h.nextJwtToken),E=h.retryIntervalMs}else{l(d=>d.length?[]:d);let{appLogs:h}=b;if(y=b.cursor,h)for(let d of h){let T,S,q,J=i.get(d.shop_id.toString());if(J===void 0)continue;switch(d.log_type){case ce:T=fe(d.payload),S=`export "${T.export}" executed in ${(T.fuelConsumed/le).toFixed(4)}M instructions`;break;case ue:T=de(d.payload),S="network access response retrieved from cache";break;case pe:T=ge(d.payload),S="network access request executing in background";break;case me:T=Ee(d.payload),q=T.connectTimeMs&&T.writeReadTimeMs?T.connectTimeMs+T.writeReadTimeMs:null,S=`network access request executed${q?` in ${q} ms`:""}`;break;default:continue}let Se={status:d.status==="success"?"Success":"Failure",source:d.source,storeName:J,description:S,logTimestamp:V(d.log_timestamp)};T&&f(ke=>[...ke,{appLog:T,prefix:Se}])}}return{nextJwtToken:c,retryIntervalMs:E,cursor:y??s,resubscribeResult:p}}function we({initialJwt:t,filters:s,resubscribeCallback:n,storeNameById:i,developerPlatformClient:a,organizationId:l}){let[f,u]=(0,R.useState)([]),[r,c]=(0,R.useState)([]),E=(0,R.useRef)(t),y=(0,R.useRef)(0),b=(0,R.useRef)(""),p=(0,R.useRef)(0),w=(0,R.useCallback)(async()=>{let h=await Ne({jwtToken:E.current,cursor:b.current,filters:s,storeNameById:i,setErrors:u,setAppLogOutputs:c,resubscribeCallback:n,developerPlatformClient:a,organizationId:l});if(h.resubscribeResult==="failed"){if(p.current+=1,p.current>=P)return u(["App log streaming session has expired. Please restart your dev session."]),{retryIntervalMs:0}}else h.resubscribeResult==="succeeded"&&(p.current=0);return E.current=h.nextJwtToken,b.current=h.cursor,y.current=h.retryIntervalMs,{retryIntervalMs:y.current}},[]);return be(w),{appLogOutputs:r,errors:f}}var e=k(N(),1);var Fe=t=>{switch(t){case M.NoCachedResponse:return"No cached response available";case M.CacheAboutToExpire:return"Cache is about to expire";case M.Unknown:return"Unknown reason"}},Re=({pollOptions:{jwtToken:t,filters:s},resubscribeCallback:n,storeNameById:i,developerPlatformClient:a,organizationId:l})=>{let{appLogOutputs:f,errors:u}=we({filters:s,initialJwt:t,resubscribeCallback:n,storeNameById:i,developerPlatformClient:a,organizationId:l});return e.default.createElement(e.default.Fragment,null,f.map(({appLog:r,prefix:c},E)=>e.default.createElement(m,{flexDirection:"column",key:E},e.default.createElement(m,{flexDirection:"row",gap:1},e.default.createElement(o,null,e.default.createElement(o,{color:"green"},c.logTimestamp," "),e.default.createElement(o,{color:"blueBright"},`${c.storeName.split(".")[0]}`," "),e.default.createElement(o,{color:"blueBright"},c.source," "),e.default.createElement(o,{color:c.status==="Success"?"green":"red"},c.status," "),e.default.createElement(o,null,c.description))),e.default.createElement(m,{flexDirection:"column",marginLeft:4},r instanceof oe&&e.default.createElement(m,{flexDirection:"column"},e.default.createElement(o,null,r.logs),r.inputQueryVariablesMetafieldKey&&r.inputQueryVariablesMetafieldNamespace?e.default.createElement(m,{flexDirection:"column",marginTop:1},e.default.createElement(o,{bold:!0},"Input Query Variables:"),e.default.createElement(m,{flexDirection:"row",marginLeft:1,marginTop:1},e.default.createElement(o,{dimColor:!0},"Namespace:"),e.default.createElement(o,null," ",r.inputQueryVariablesMetafieldNamespace)),e.default.createElement(m,{flexDirection:"row",marginLeft:1},e.default.createElement(o,{dimColor:!0},"Key:"),e.default.createElement(o,null," ",r.inputQueryVariablesMetafieldKey)),e.default.createElement(m,{marginLeft:1,marginTop:1},e.default.createElement(o,null,x(r.inputQueryVariablesMetafieldValue)??e.default.createElement(o,{color:"red"},"Metafield is not set")))):null,r.input?e.default.createElement(m,{flexDirection:"column",marginTop:1},e.default.createElement(o,{bold:!0},"Input ",e.default.createElement(o,{dimColor:!0},"(",r.inputBytes," bytes):")),e.default.createElement(m,{marginLeft:1,marginTop:1},e.default.createElement(o,null,x(r.input)))):null,r.output?e.default.createElement(m,{flexDirection:"column",marginTop:1},e.default.createElement(o,{bold:!0},"Output ",e.default.createElement(o,{dimColor:!0},"(",r.outputBytes," bytes):")),e.default.createElement(m,{marginLeft:1,marginTop:1},e.default.createElement(o,null,x(r.output)))):null),r instanceof ne&&e.default.createElement(m,{flexDirection:"column"},e.default.createElement(o,null,"Cache write time: ",new Date(r.cacheEntryEpochMs).toISOString()),e.default.createElement(o,null,"Cache TTL: ",r.cacheTtlMs/1e3," s"),e.default.createElement(o,null,"HTTP request:"),e.default.createElement(o,null,x(r.httpRequest)),e.default.createElement(o,null,"HTTP response:"),e.default.createElement(o,null,x(r.httpResponse))),r instanceof ie&&e.default.createElement(m,{flexDirection:"column"},e.default.createElement(o,null,"Reason: ",Fe(r.reason)),e.default.createElement(o,null,"HTTP request:"),e.default.createElement(o,null,x(r.httpRequest))),r instanceof ae&&e.default.createElement(m,{flexDirection:"column"},e.default.createElement(o,null,"Attempt: ",r.attempt),r.connectTimeMs?e.default.createElement(o,null,"Connect time: ",r.connectTimeMs," ms"):null,r.writeReadTimeMs?e.default.createElement(o,null,"Write read time: ",r.writeReadTimeMs," ms"):null,e.default.createElement(o,null,"HTTP request:"),e.default.createElement(o,null,x(r.httpRequest)),r.httpResponse?e.default.createElement(m,{flexDirection:"column"},e.default.createElement(o,null,"HTTP response:"),e.default.createElement(o,null,x(r.httpResponse))):null,r.error?e.default.createElement(o,null,"Error: ",r.error):null)))),u.length>0&&e.default.createElement(m,{flexDirection:"column"},u.map((r,c)=>e.default.createElement(m,{key:c},e.default.createElement(o,{color:"red"},r)))))};var xe=k(N(),1);async function Ie({pollOptions:t,options:{variables:s,developerPlatformClient:n},storeNameById:i,organizationId:a}){let l=async()=>A(n,s,a);return H(xe.default.createElement(Re,{pollOptions:t,resubscribeCallback:l,storeNameById:i,developerPlatformClient:n,organizationId:a}))}g();async function D({pollOptions:t,options:{variables:s,developerPlatformClient:n},storeNameById:i,organizationId:a,consecutiveResubscribeFailures:l=0}){let f=await U({pollOptions:t,developerPlatformClient:n,organizationId:a}),u=L,r=t.jwtToken,c=l,E=f;if(E.errors){let p=await v({response:E,onThrottle:w=>{I(JSON.stringify({message:"Request throttled while polling app logs.",retry_in_ms:w}))},onUnknownError:w=>{I(JSON.stringify({message:"Error while polling app logs.",retry_in_ms:w}))},onResubscribe:()=>A(n,s,a)});if(p.resubscribeResult==="failed"){if(c+=1,c>=P){I(JSON.stringify({message:"App log streaming session has expired. Please restart your dev session."}));return}}else p.resubscribeResult==="succeeded"&&(c=0);p.nextJwtToken&&(r=p.nextJwtToken),u=p.retryIntervalMs}else c=0;let{cursor:y,appLogs:b}=f;b&&b.forEach(p=>{let w=i.get(p.shop_id?.toString());w!==void 0&&F(ye({appLog:p,appLogPayload:Te(p.payload,p.log_type),storeName:w,prettyPrint:!1}))}),setTimeout(()=>{D({options:{variables:s,developerPlatformClient:n},pollOptions:{jwtToken:r||t.jwtToken,cursor:y??t.cursor,filters:t.filters},storeNameById:i,organizationId:a,consecutiveResubscribeFailures:c}).catch(p=>{throw p})},u)}async function Ae(t){let{app:s,remoteApp:n,developerPlatformClient:i}=t,a=await Me(t),l=he(s);if(l.length===0)throw new C("This app has no log sources. Learn more about app logs at https://shopify.dev/docs/api/shopify-cli/app/app-logs");if(t.sources){let y=t.sources.filter(b=>!l.includes(b));if(y.length)throw new C(`Invalid sources: ${y.join(", ")}. Valid sources are: ${l.join(", ")}`)}let f={shopIds:a.storeIds.map(Number),apiKey:n.apiKey},u=await A(i,f,t.organization.id),r={status:t.status,sources:t.sources},c={jwtToken:u,filters:r};t.format==="json"&&F(JSON.stringify({subscribedToStores:t.storeFqdns})),I(`Waiting for app logs...
|
|
2
2
|
`),await(t.format==="json"?D:Ie)({options:{variables:f,developerPlatformClient:i},pollOptions:c,storeNameById:a.storeNameById,organizationId:t.organization.id})}async function Me(t){let{app:s,remoteApp:n,developerPlatformClient:i,primaryStore:a,organization:l}=t,f=j(s.configPath);Le(n.title,a.shopDomain,t.storeFqdns,f,l.businessName);let u=new Map;return u.set(a.shopId,a.shopDomain),t.storeFqdns&&t.storeFqdns.length>1&&await Promise.all(t.storeFqdns?.slice(1).map(async c=>{let E=await W(l,c,i);u.set(E.shopId,c)})),{storeIds:Array.from(u.keys()),storeNameById:u}}function Le(t,s,n,i,a){let l=n&&n.length>0?n:[s],f=i?X(i):void 0;G({headline:i?`Using ${f} for default values:`:"Using these settings:",body:Z({appName:t,org:a,devStores:l,messages:[ee]})})}var O=k(Ce(),1);var B=class t extends re{static summary="Stream detailed logs for your Shopify app.";static descriptionWithMarkdown="\n Opens a real-time stream of detailed app logs from the selected app and store.\n Use the `--source` argument to limit output to a particular log source, such as a specific Shopify Function handle. Use the `shopify app logs sources` command to view a list of sources.\n Use the `--status` argument to filter on status, either `success` or `failure`.\n ```\n shopify app logs --status=success --source=extension.discount-function\n ```\n ";static description=this.descriptionForHelp();static flags={...Q,...K,...Y,store:O.Flags.string({char:"s",description:"Store URL. Must be an existing development or Shopify Plus sandbox store.",env:"SHOPIFY_FLAG_STORE",multiple:!0,parse:async s=>$(s)}),source:O.Flags.string({description:"Filters output to the specified log source.",env:"SHOPIFY_FLAG_SOURCE",multiple:!0}),status:O.Flags.string({description:"Filters output to the specified status (success or failure).",options:["success","failure"],env:"SHOPIFY_FLAG_STATUS"})};async run(){let{flags:s}=await this.parse(t);await z(s.path);let n=await te({directory:s.path,clientId:s["client-id"],forceRelink:s.reset,userProvidedConfigName:s.config}),i=await se({appContextResult:n,storeFqdn:s.store?.[0],forceReselectStore:s.reset}),a={...n,primaryStore:i,storeFqdns:s.store,sources:s.source,status:s.status,format:s.json?"json":"text"};return await Ae(a),{app:n.app}}};export{B as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{q as r}from"./chunk-
|
|
1
|
+
import{q as r}from"./chunk-X5VBX2QA.js";import{d as t}from"./chunk-EA5LKCRF.js";import{b as a}from"./chunk-4Q5TSWQL.js";import{g as s}from"./chunk-VKWPEFWQ.js";s();var e=class extends a{static baseFlags={...a.baseFlags,...t};environmentsFilename(){return r.appEnvironments}};export{e as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as i}from"./chunk-
|
|
1
|
+
import{a as i}from"./chunk-2S7WRX2J.js";import{b as e}from"./chunk-4Q5TSWQL.js";import{g as o}from"./chunk-VKWPEFWQ.js";o();var t=class extends e{static description="View the UI kit components prompts";static hidden=!0;async run(){await i()}};export{t as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as A}from"./chunk-
|
|
1
|
+
import{n as A}from"./chunk-LIE6QSQ2.js";import{a as P}from"./chunk-7KVTQDRW.js";import{c as C}from"./chunk-DE5BUQL5.js";import{s as T}from"./chunk-XBCFYD3T.js";import{r as w}from"./chunk-4MUH4E2U.js";import{a as D}from"./chunk-4LTQEQ4O.js";import{K as u}from"./chunk-OSGXBBUJ.js";import{B as y,z as h}from"./chunk-IN634BRF.js";import{Nb as O,za as p}from"./chunk-UYWRJHAJ.js";import{d,q as m}from"./chunk-3VYOLEQE.js";import{g as l}from"./chunk-VKWPEFWQ.js";l();async function q(e){P({verbose:e.verbose,noColor:e.noColor});let t=w({store:e.store}),o=await u(t,e.password);await R(o,{path:e.path??m(),force:e.force??!1,silent:e.silent??!1})}var E={article:"ARTICLE",blog:"BLOG",collection:"COLLECTION",company:"COMPANY",company_location:"COMPANY_LOCATION",location:"LOCATION",market:"MARKET",order:"ORDER",page:"PAGE",product:"PRODUCT",variant:"PRODUCTVARIANT",shop:"SHOP"};async function R(e,t){let{force:o,path:i,silent:n}=t;if(!await A(i)&&(process.env.SHOPIFY_LANGUAGE_SERVER==="1"||!await C(o)))return;let f=[],r=[];for(let[a,s]of Object.entries(E))f.push(T(s,e).catch(c=>(r.push(s),[])).then(c=>({[a]:c})));let b=(await Promise.all(f)).reduce((a,s)=>({...a,...s}));if(r.length===Object.values(E).length){n||y({body:"Failed to fetch metafield definitions.",nextSteps:["Check your network connection and try again.","Ensure you have the permission to fetch metafield definitions."],reference:[{link:{label:"Metafield Definition API",url:"https://shopify.dev/docs/api/admin-graphql/latest/queries/metafieldDefinition"}}]});return}await S(i,b),r.length>0&&O(`Failed to fetch metafield definitions for the following owner types: ${r.join(", ")}`),n||h({body:"Metafield definitions have been successfully downloaded."})}async function S(e,t){let o=await D(e),i=d(o,"metafields.json"),n=JSON.stringify(t,null,2);p(i,n)}export{q as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as a}from"./chunk-
|
|
1
|
+
import{b as a}from"./chunk-A6KNDSNT.js";import{b as s}from"./chunk-4Q5TSWQL.js";import{ya as i}from"./chunk-OSGXBBUJ.js";import{b as m}from"./chunk-I3J63RFV.js";import{e as d,g as e}from"./chunk-VKWPEFWQ.js";e();var n=d(m(),1);var t=class c extends s{static description="List current notifications configured for the CLI.";static hidden=!0;static flags={"ignore-errors":n.Flags.boolean({hidden:!1,description:"Don't fail if an error occurs.",env:"SHOPIFY_FLAG_IGNORE_ERRORS"})};async run(){let{flags:f}=await this.parse(c);try{await a()}catch(r){let o="Error fetching notifications";if(r instanceof Error&&(o=o.concat(`: ${r.message}`)),await i(o,"expected_error"),!f["ignore-errors"])throw r}}};export{t as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as m}from"./chunk-
|
|
1
|
+
import{b as m}from"./chunk-4Q5TSWQL.js";import{G as f}from"./chunk-IN634BRF.js";import{Ib as c}from"./chunk-UYWRJHAJ.js";import{b as N}from"./chunk-I3J63RFV.js";import{e as v,g}from"./chunk-VKWPEFWQ.js";g();var d=v(N(),1),i=class h extends m{static description="View all the available command flags";static hidden=!0;static flags={csv:d.Flags.boolean({description:"Output as CSV",env:"SHOPIFY_FLAG_OUTPUT_CSV",default:!1})};async run(){let{flags:p}=await this.parse(h),s=[];for(let[t,a]of this.config.plugins)for(let o of a.commands){let l=await o.load(),n;a.name.startsWith("@shopify")?n=a.name.substring(9):n=a.name.startsWith("@oclif")?a.name.substring(7):a.name;let e=l.flags;if(e)for(let[u,r]of Object.entries(e))s.push({pluginName:n,command:o.id,flagName:`--${u}`,flagChar:r.char?`-${r.char}`:"",flagEnv:r.env})}if(p.csv){let t=["pluginName","command","flagName","flagChar","flagEnv"],a=`${t.join(",")}
|
|
2
2
|
`,o=s.map(n=>t.map(e=>n[e]).join(",")).join(`
|
|
3
3
|
`),l=`${a}${o}
|
|
4
4
|
`;c(l)}else f({rows:s,columns:{pluginName:{header:"plugin",color:"red"},command:{},flagName:{header:"long flag",color:"green"},flagChar:{header:"short flag",color:"green"},flagEnv:{header:"env variable",color:"blueBright"}}})}};export{i as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as J}from"./chunk-
|
|
1
|
+
import{c as J}from"./chunk-QZGVZMB5.js";import{b as k}from"./chunk-6HWDGTSX.js";import{a as re}from"./chunk-73LX4DOM.js";import{a as ae}from"./chunk-3B3CJS5I.js";import{a as z}from"./chunk-LOTMFUSV.js";import{Ha as ne,I as ee,K as te,d as Q,e as Z}from"./chunk-KEI3OJVP.js";import{q as F,s as X,t as K}from"./chunk-X5VBX2QA.js";import{a as T}from"./chunk-H4PXFC7T.js";import{b as H,f as I}from"./chunk-EA5LKCRF.js";import{C as $,p as b,x as G,y as _}from"./chunk-3FCN4NS6.js";import{A as q,D as Y,F as V,H as O,J as W,z as U}from"./chunk-IN634BRF.js";import{e as E}from"./chunk-YTJ3EPD3.js";import{i as u}from"./chunk-VDE7IIYQ.js";import{$ as f,Aa as w,Ca as v,Db as P,Sa as D,Xa as h,Ya as j,_a as L,ca as S,oa as g,ua as N}from"./chunk-UYWRJHAJ.js";import{f as B}from"./chunk-FKGN6F3F.js";import{b as ge}from"./chunk-I3J63RFV.js";import{d as p,n as R}from"./chunk-3VYOLEQE.js";import{e as xe,g as d}from"./chunk-VKWPEFWQ.js";d();d();d();async function ie(e,t,r,n={}){let{templates:a,groupOrder:i}=await e.templateSpecifications(t,n);return{templates:a.filter(o=>r.includes(o.identifier)||r.includes(o.type)),groupOrder:i}}d();d();async function oe(e,t){let r=e?.path??"",n=p(t,r);if(!await h(n))throw new u(`
|
|
2
2
|
The extension is not available for ${e?.value}`);return n}async function se({name:e,app:t}){let r=S(e),n=p(t.directory,K.extensions.directoryName,r);if(await h(n))throw new u(`
|
|
3
3
|
A directory with this name (${r}) already exists.
|
|
4
4
|
Choose a new name for your extension.`);return await w(n),await N(p(n,F.lockFile)),n}function A(e){switch(e){case"vanilla-js":case"preact":case"react":case"typescript":case"typescript-react":return"javascript";case"rust":case"wasm":return e;case void 0:case"liquid":case"config-only":return}}async function ce(e){let t=e.extensionChoices.name,r=e.extensionChoices.flavor,n=e.extensionTemplate.supportedFlavors.find(o=>o.value===r),a=await se({app:e.app,name:t}),i=e.cloneUrl??e.extensionTemplate.url,s={directory:a,url:i,app:e.app,project:e.project,type:e.extensionTemplate.type,name:t,extensionFlavor:n,onGetTemplateRepository:e.onGetTemplateRepository??(async(o,c)=>{await J({repoUrl:o,destination:c,shallow:!0})})};return await we(s),{directory:R(a),extensionTemplate:e.extensionTemplate}}async function we(e){try{switch(e.type){case"theme":await Pe(e);break;case"function":await ke(e);break;default:await Fe(e);break}let t=p(e.directory,F.lockFile);await v(t)}catch(t){throw await ve(e.directory),e.project.packageManager==="pnpm"&&Ee(t)?new u("Your extension couldn't be generated because pnpm blocked the build scripts of some of its dependencies.",null,[["Run",{command:"pnpm approve-builds"},"in your app directory to approve the build scripts."],["Run",{command:P(e.project.packageManager,"shopify app generate extension")},"again."]]):t}}async function ve(e){try{await v(e,{maxRetries:10,retryDelay:100})}catch{q({headline:["Couldn't remove",{filePath:e},{char:"."}],body:"Delete this directory manually before generating an extension with the same name."})}}function Ee(e){return e instanceof Error&&e.message.includes("ERR_PNPM_IGNORED_BUILDS")}async function Pe({directory:e,url:t,type:r,name:n,extensionFlavor:a,onGetTemplateRepository:i}){return g(async s=>{let o=await M(t,a,s,i);await k(o,e,{name:n,type:r,uid:E(f(n))})})}async function ke({directory:e,url:t,app:r,project:n,name:a,extensionFlavor:i,onGetTemplateRepository:s}){let o=A(i?.value),c=[];c.push({title:"Generating function extension",task:async()=>{if(await g(async l=>{let m=await M(t,i,l,s);await k(m,e,{name:a,handle:f(a),flavor:i?.value,uid:E(f(a))})}),o==="javascript"){let l=le(i?.value??"rust");await pe(e,l,"!(*.graphql)")}}}),o==="javascript"&&c.push({title:"Installing additional dependencies",task:async()=>{n.usesWorkspaces&&await b({packageManager:n.packageManager,directory:n.directory});let l=Te(o);await _(l,{packageManager:n.packageManager,type:"prod",directory:n.usesWorkspaces?e:n.directory})}}),o==="javascript"&&c.push({title:"Building GraphQL types",task:async()=>{await Z({directory:e,isJavaScript:!0},{stdout:process.stdout,stderr:process.stderr,app:r})}}),await O(c)}async function Fe({directory:e,url:t,app:r,project:n,name:a,extensionFlavor:i,onGetTemplateRepository:s}){let o=A(i?.value),c=[{title:"Generating extension",task:async()=>{let l=le(i?.value??"vanilla-js");await g(async m=>{let y=await M(t,i,m,s);await k(y,e,{srcFileExtension:l,name:a,handle:f(a),flavor:i?.value??"",uid:E(f(a))})}),o==="javascript"&&await pe(e,l)}},{title:"Installing dependencies",task:async()=>{let l=n.packageManager;if(n.usesWorkspaces)A(i?.value)==="javascript"&&await b({packageManager:l,directory:n.directory});else{await be(n.directory,i?.value);let m=p(e,"package.json"),y=await _e(m);await _(y,{packageManager:l,type:"prod",directory:n.directory}),await v(m)}}}];c.push({title:"Update shared type definition",task:async()=>{await te(r)}}),await O(c)}function le(e){return{"vanilla-js":"js",preact:"jsx",react:"jsx",typescript:"ts","typescript-react":"tsx",rust:"rs",wasm:"wasm",liquid:"liquid","config-only":""}[e]??"js"}function Te(e){let t=[];return e==="javascript"&&t.push({name:"@shopify/shopify_function",version:`~${Q}.0.0`}),t}async function pe(e,t,r="*"){let n=await L(p(e,"src",r)),a=[];for(let i of n)a.push(D(i,`${i}.${t}`));await Promise.all(a)}async function be(e,t){t==="typescript-react"&&await $(e,{"@types/react":X.reactTypes})}async function _e(e){if(!await h(e))return[];let t=await G(e);return Object.entries(t?.dependencies??{}).map(([r,n])=>({name:r,version:n}))}async function M(e,t,r,n){let a=p(r,"download");return await w(a),await n(e,a),oe(t,a)}d();function Oe(e,t=[]){let r=[...e.map(a=>({label:a.name,value:a.identifier,group:a.group||"Other",sortPriority:a.sortPriority??Number.MAX_SAFE_INTEGER})),...t.map(a=>({label:`${a.name} (limit reached)`,value:a.identifier,group:a.group||"Other",disabled:!0,sortPriority:a.sortPriority??Number.MAX_SAFE_INTEGER}))],n=(a,i)=>a.sortPriority===i.sortPriority?a.label.localeCompare(i.label):a.sortPriority-i.sortPriority;return r.sort(n)}var Ie=async e=>{let t=e.extensionTemplates,r=e.templateType,n=e.extensionFlavor;if(!r){if(n&&(t=t.filter(c=>c.supportedFlavors.map(l=>l.value).includes(n))),t.length===0)throw new u("You have reached the limit for the number of extensions you can create.");r=await V({message:"Type of extension?",choices:Oe(t,e.unavailableExtensions),groupOrder:e.groupOrder})}let a=t.find(c=>c.identifier===r),i=e.name||await de(e.directory,a.defaultName),s=e.extensionFlavor??await Ae(a);return{extensionTemplate:a,extensionContent:{name:i,flavor:s}}};async function de(e,t,r=1){let n=t.includes(" ")?" ":"-",a=r<=1?t:`${t}${n}${r}`,i=p(e,f(a));return j(i)?de(e,t,r+1):W({message:"Name your extension:",defaultValue:a})}async function Ae(e){if(e.supportedFlavors.length!==0)return e.supportedFlavors.length===1&&e.supportedFlavors[0]?e.supportedFlavors[0].value:Y({message:"What would you like to work in?",choices:e.supportedFlavors.map(t=>({label:t.name,value:t.value})),defaultValue:"react"})}var ue=Ie;async function Me(e){let{app:t,developerPlatformClient:r,remoteApp:n,specifications:a,template:i}=e,s=a.map(he=>he.identifier),{templates:o,groupOrder:c}=await ie(r,n,s,{requestedTemplate:i}),l=await Ce(o,c,a,t,e),m=await ue(l);await Se(m,i);let y=Ne(m,t,e,r),ye=await ce(y);De(ye,e.project.packageManager)}async function Ce(e,t,r,n,a){let i=await Ge(a.template,n,e,r);je(i,a.flavor);let{validTemplates:s,templatesOverlimit:o}=Re(e,r,n);return{templateType:i?.identifier,name:a.name,extensionFlavor:a.flavor,directory:p(a.directory,"extensions"),app:n,extensionTemplates:s??[],unavailableExtensions:o??[],reset:a.reset,groupOrder:t}}function Re(e,t,r){return re(e,a=>!me(r,t,a)?"validTemplates":"templatesOverlimit")}function me(e,t,r){let n=r.type,a=t.find(s=>s.identifier===n||s.externalIdentifier===n);return e.extensionsForType({identifier:n,externalIdentifier:n}).length>=(a?.registrationLimit??1)}async function Se(e,t){let{extensionContent:r}=e;return T.addPublicMetadata(()=>({cmd_scaffold_template_flavor:r.flavor,cmd_scaffold_type:e.extensionTemplate.identifier,cmd_scaffold_used_prompts_for_type:!t}))}function Ne(e,t,r,n){return{app:t,project:r.project,cloneUrl:r.cloneUrl,extensionChoices:e.extensionContent,extensionTemplate:e.extensionTemplate,developerPlatformClient:n}}function De(e,t){let r=Le(e.extensionTemplate,e.directory,t);U(r)}function je(e,t){if(!t||!e)return;let r=e.supportedFlavors.map(n=>n.value);if(!r.includes(t))throw new u("Invalid template for extension type",`Expected template to be one of the following: ${r.join(", ")}.`)}function Le(e,t,r){let n={headline:["Your extension was created in",{filePath:t},{char:"."}],nextSteps:[],reference:[]};return e.type!=="function"&&n.nextSteps.push(["To preview this extension along with the rest of the project, run",{command:P(r,"shopify app dev")}]),e.supportLinks[0]&&n.reference.push(["For more details, see the",{link:{label:"docs",url:e.supportLinks[0]}}]),n}async function Ge(e,t,r,n){if(!e)return;let a=r.find(i=>i.identifier===e);if(!a){let i=await B(),s=r.map(c=>c.identifier),o=i?"You might need to enable some flags on your Organization or App":void 0;throw new u(`Unknown extension type: ${e}.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as U}from"./chunk-
|
|
1
|
+
import{a as U}from"./chunk-73LX4DOM.js";import{K as H}from"./chunk-KEI3OJVP.js";import{a as q}from"./chunk-VJEKDBGZ.js";import{q as I}from"./chunk-X5VBX2QA.js";import{a as O,o as D,w as k}from"./chunk-IN634BRF.js";import{i as N}from"./chunk-VDE7IIYQ.js";import{Aa as g,Ga as F,Nb as h,Xa as A,Ya as P,fb as y,ra as R}from"./chunk-UYWRJHAJ.js";import{g as S}from"./chunk-FKGN6F3F.js";import{d as x,e as E,g as v,i as C}from"./chunk-3VYOLEQE.js";import{e as X,g as m}from"./chunk-VKWPEFWQ.js";m();function w(){return process.hrtime()}function M(r){let t=process.hrtime(r);return(t[0]*1e3+t[1]/1e6).toFixed(2)}m();m();var $=X(q(),1),G=200,K=6e4,L=200,Q=500,_=class{currentEvents=[];extensionPaths=[];app;options;onChangeCallback;watcher;debouncedEmit;ignored={};extensionWatchedFiles=new Map;constructor(t,e,s=G){this.app=t,this.options=e,this.debouncedEmit=k(this.emitEvents.bind(this),s,{leading:!0,trailing:!0}),this.updateApp(t)}onChange(t){this.onChangeCallback=t}async start(){let e=[...this.app.configuration.extension_directories??["extensions"]].map(n=>x(this.app.directory,n));await Promise.all(e.map(async n=>{try{await g(n.replace(/\/\*+$/,""))}catch{}}));let s=[this.app.configPath,...e],i=this.getAllWatchedFiles();s.push(...i),this.close();let{default:o}=await import("./chokidar-5RWEYTNQ.js");this.watcher=o.watch(s,{ignored:["**/node_modules/**","**/.git/**"],persistent:!0,ignoreInitial:!0}),this.watcher.on("all",this.handleFileEvent),this.addAbortListener(),h(`File watcher started with ${s.length} paths`,this.options.stdout)}updateApp(t){this.app=t,this.extensionPaths=this.app.nonConfigExtensions.map(e=>E(e.directory)).filter(e=>e!==this.app.directory),this.extensionPaths.forEach(e=>{this.ignored[e]??=this.createIgnoreInstance(e)})}addAbortListener(){this.options.signal.removeEventListener("abort",this.close),this.options.signal.addEventListener("abort",this.close)}getAllWatchedFiles(){this.extensionWatchedFiles.clear();let t=this.app.realExtensions.map(s=>({extension:s,watchedFiles:s.watchedFiles()})),e=new Set;for(let{extension:s,watchedFiles:i}of t)for(let o of i){let n=E(o);e.add(n);let a=this.extensionWatchedFiles.get(n)??new Set;a.add(s.handle),this.extensionWatchedFiles.set(n,a)}return Array.from(e)}emitEvents=()=>{let t=this.currentEvents;this.currentEvents=[];let e=`\u{1F509} ${t.length} EVENTS EMITTED in files: ${t.map(s=>s.path).join(`
|
|
2
2
|
`)}`;h(e,this.options.stdout),this.onChangeCallback?.(t)};pushEvent(t){this.shouldIgnoreEvent(t)||(t.type==="extension_folder_created"&&(this.ignored[t.path]=this.createIgnoreInstance(t.path)),!this.currentEvents.some(e=>e.path===t.path&&e.type===t.type&&e.extensionHandle===t.extensionHandle)&&this.currentEvents.push(t))}shouldIgnoreEvent(t){if(t.type==="extension_folder_deleted"||t.type==="extension_folder_created"||t.extensionHandle&&this.extensionWatchedFiles.get(E(t.path))?.has(t.extensionHandle))return!1;let s=(t.extensionHandle?this.app.realExtensions.find(o=>o.handle===t.extensionHandle):void 0)?.watchedFiles(),i=this.ignored[t.extensionPath];if(s)return!s.some(n=>y(t.path,n));if(i){let o=v(t.extensionPath,t.path);return i.ignores(o)}return!1}handleFileEvent=(t,e)=>{let s=w(),i=E(e),o=e===this.app.configPath,n=e.endsWith(".extension.toml");if(h(`\u{1F300}: ${t} ${e.replace(this.app.directory,"")}
|
|
3
3
|
`),o)this.handleEventForExtension(t,e,this.app.directory,s,!1);else{let a=this.extensionWatchedFiles.get(i),d=a===void 0||a.size===0;if(d&&t==="add"&&!n){let c=this.discoverFileOwners(i);c.size>0&&(this.extensionWatchedFiles.set(i,c),a=c,d=!1)}if(d&&!n&&!o){h(`\u{1F300}: File ${e} is not watched by any extension`,this.options.stdout);return}for(let c of a??[]){let l=this.app.realExtensions.find(f=>f.handle===c),u=l?E(l.directory):this.app.directory;this.handleEventForExtension(t,e,u,s,!1,c)}d&&this.handleEventForExtension(t,e,this.app.directory,s,!0)}this.debouncedEmit()};discoverFileOwners(t){let e=new Set;for(let s of this.app.realExtensions){let i=E(s.directory);i!==this.app.directory&&t.startsWith(`${i}/`)&&this.pathMatchesWatchPatterns(t,s)&&e.add(s.handle)}return e}pathMatchesWatchPatterns(t,e){let{paths:s,ignore:i}=e.watchPatterns(),o=v(E(e.directory),t);return i.some(n=>y(o,n))?!1:s.some(n=>y(o,n))}handleEventForExtension(t,e,s,i,o,n){let a=e.endsWith(".extension.toml"),d=e===this.app.configPath;switch(t){case"change":if(o)break;a||d?this.pushEvent({type:"extensions_config_updated",path:e,extensionPath:s,extensionHandle:n,startTime:i}):this.pushEvent({type:"file_updated",path:e,extensionPath:s,extensionHandle:n,startTime:i});break;case"add":if(!a){this.pushEvent({type:"file_created",path:e,extensionPath:s,extensionHandle:n,startTime:i});break}let c=0,l=C(e),u=setInterval(()=>{P(x(l,I.lockFile))?(h(`Waiting for extension to complete creation: ${e}
|
|
4
4
|
`),c+=L):(clearInterval(u),this.extensionPaths.push(l),this.pushEvent({type:"extension_folder_created",path:l,extensionPath:s,startTime:i}),this.debouncedEmit()),c>=K&&(clearInterval(u),this.options.stderr.write(`Error loading new extension at path: ${e}.
|