@koda-sl/baker-cli 0.489.0 → 0.490.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +169 -7
- package/dist/{account-Z65CPOWE.js → account-3H6BZO5H.js} +2 -2
- package/dist/account-IKFDY52P.js +138 -0
- package/dist/account-IKFDY52P.js.map +1 -0
- package/dist/account-assets-LKZVWZAR.js +289 -0
- package/dist/account-assets-LKZVWZAR.js.map +1 -0
- package/dist/account-level-UJOZDVXY.js +608 -0
- package/dist/account-level-UJOZDVXY.js.map +1 -0
- package/dist/{account-writes-4N2MA2ZR.js → account-writes-AE5IJGGW.js} +2 -2
- package/dist/{accounts-UA2ZWRN4.js → accounts-K4INATCW.js} +2 -2
- package/dist/{activities-IQPJPP4B.js → activities-T253KK4Q.js} +4 -4
- package/dist/{ad-group-writes-EUTMPBMK.js → ad-group-writes-VRSBI2Z2.js} +2 -2
- package/dist/{ad-groups-OVPAI5RM.js → ad-groups-IEBVEAMS.js} +6 -6
- package/dist/{ad-writes-DACTYFEO.js → ad-writes-ALV4KFPZ.js} +2 -2
- package/dist/{ads-L65JIKCD.js → ads-CQZHD7FC.js} +7 -7
- package/dist/{ads-G6AS5L7G.js → ads-QIKZ6O2N.js} +5 -5
- package/dist/{ads-HXX2IAFF.js → ads-ZEY72UBN.js} +14 -13
- package/dist/ads-ZEY72UBN.js.map +1 -0
- package/dist/{adsets-LPN6WFGF.js → adsets-5H3MOT3D.js} +15 -14
- package/dist/{adsets-LPN6WFGF.js.map → adsets-5H3MOT3D.js.map} +1 -1
- package/dist/{analytics-QKP3A5F3.js → analytics-ALOZ7ZZ4.js} +1 -1
- package/dist/asset-writes-L5TMKIZC.js +47 -0
- package/dist/audience-writes-X52VG35Y.js +324 -0
- package/dist/audience-writes-X52VG35Y.js.map +1 -0
- package/dist/{audiences-RPLVMO4H.js → audiences-AAZH56WD.js} +2 -2
- package/dist/{audiences-XEZHACKH.js → audiences-X3RLGOVM.js} +12 -6
- package/dist/audiences-X3RLGOVM.js.map +1 -0
- package/dist/{avatars-MXTI74VC.js → avatars-YSFFRHDK.js} +1 -1
- package/dist/{brief-BN4UGUXF.js → brief-7S6XCJIA.js} +15 -15
- package/dist/{businesses-PRRYPR7H.js → businesses-H3HIDQX6.js} +2 -2
- package/dist/{campaign-writes-BAFB5E7A.js → campaign-writes-7ZF57KLH.js} +3 -3
- package/dist/campaign-writes-7ZF57KLH.js.map +1 -0
- package/dist/{campaign-writes-U5LTDTYK.js → campaign-writes-U5PUVSMT.js} +2 -2
- package/dist/{campaigns-4SOLY7OR.js → campaigns-AV6G3AUU.js} +32 -15
- package/dist/campaigns-AV6G3AUU.js.map +1 -0
- package/dist/{campaigns-TFEQTSO3.js → campaigns-JEIKY2M4.js} +6 -6
- package/dist/{campaigns-NR6TNQFN.js → campaigns-VTRMKSAT.js} +5 -5
- package/dist/{canvas-GJAQAVS6.js → canvas-SVJEQO4V.js} +13 -13
- package/dist/{catalog-USZL4SGX.js → catalog-S32MX453.js} +5 -5
- package/dist/{catalogs-A7XMEEEP.js → catalogs-OCVXZLIF.js} +2 -2
- package/dist/catalogs-RXJTZTVX.js +778 -0
- package/dist/catalogs-RXJTZTVX.js.map +1 -0
- package/dist/{chatgpt-4PEWDJKP.js → chatgpt-QVF2FD3E.js} +12 -12
- package/dist/{chats-INN2OHSH.js → chats-QG72JB6Y.js} +22 -8
- package/dist/chats-QG72JB6Y.js.map +1 -0
- package/dist/{check-MMJGFFZS.js → check-SLNHVYGS.js} +4 -4
- package/dist/{chunk-7RBJ2Z7Z.js → chunk-2C7AHPM4.js} +25 -6
- package/dist/chunk-2C7AHPM4.js.map +1 -0
- package/dist/{chunk-KPYDTIAI.js → chunk-2WZI36D3.js} +2 -2
- package/dist/{chunk-FUKDI2UK.js → chunk-3W6G6ARX.js} +2 -2
- package/dist/{chunk-JWSEPW7F.js → chunk-46GWHUKN.js} +2 -2
- package/dist/{chunk-3TZVZXM6.js → chunk-4KJMLYCD.js} +6 -6
- package/dist/{chunk-6JWEGFM5.js → chunk-5C35OW7L.js} +38 -7
- package/dist/chunk-5C35OW7L.js.map +1 -0
- package/dist/chunk-5GQCN2QZ.js +391 -0
- package/dist/chunk-5GQCN2QZ.js.map +1 -0
- package/dist/{chunk-KIGGMKAE.js → chunk-65Y3RCWP.js} +4 -2
- package/dist/chunk-65Y3RCWP.js.map +1 -0
- package/dist/{chunk-R3EKM2P2.js → chunk-6NCJGU6I.js} +5 -5
- package/dist/chunk-A4MVVPJ2.js +4204 -0
- package/dist/chunk-A4MVVPJ2.js.map +1 -0
- package/dist/{chunk-LPXSM2DI.js → chunk-AO45BX6Q.js} +3 -3
- package/dist/{chunk-3UXMQ3K2.js → chunk-AQM4JH62.js} +2 -2
- package/dist/chunk-AQM4JH62.js.map +1 -0
- package/dist/{chunk-NPMAATZG.js → chunk-C7NWUCLQ.js} +2 -2
- package/dist/chunk-CP4P6YKM.js +287 -0
- package/dist/chunk-CP4P6YKM.js.map +1 -0
- package/dist/{chunk-OWA7ZLC4.js → chunk-D4CKCNGW.js} +4 -4
- package/dist/{chunk-H5HDZ7IC.js → chunk-DCBZ5CHZ.js} +4 -4
- package/dist/{chunk-C6EYCD5J.js → chunk-FVHJCERJ.js} +5 -5
- package/dist/{chunk-BITS62MF.js → chunk-G6XKD7QE.js} +2 -2
- package/dist/{chunk-QE3JEJXF.js → chunk-GSZZLW5Q.js} +4 -4
- package/dist/chunk-HLVRHBKL.js +1078 -0
- package/dist/chunk-HLVRHBKL.js.map +1 -0
- package/dist/{chunk-TPANP5A2.js → chunk-JKJQWRLO.js} +2 -2
- package/dist/{chunk-62JQQUAU.js → chunk-JQH5VG6F.js} +2 -2
- package/dist/{chunk-6WXV5GTA.js → chunk-JVH5A3XC.js} +2 -2
- package/dist/{chunk-AVNSH2JE.js → chunk-KOXDXSKN.js} +7 -7
- package/dist/{chunk-2XRMPSEV.js → chunk-LXQB4ZGE.js} +2 -2
- package/dist/{chunk-ZL23HA4N.js → chunk-M6PN3VH6.js} +2 -2
- package/dist/{chunk-TZEVD4Q6.js → chunk-P5FRWPG7.js} +2 -2
- package/dist/{chunk-CSZFZKVX.js → chunk-PQJXIY64.js} +5 -5
- package/dist/{chunk-OP7DNHD2.js → chunk-QTOZ32SU.js} +27 -1
- package/dist/chunk-QTOZ32SU.js.map +1 -0
- package/dist/chunk-SVAB6KV5.js +219 -0
- package/dist/chunk-SVAB6KV5.js.map +1 -0
- package/dist/{chunk-LBO2YAZY.js → chunk-UNX6BS4U.js} +15 -15
- package/dist/{chunk-UWXDNVS5.js → chunk-ZJSGGJ5R.js} +2 -2
- package/dist/cli.js +20 -20
- package/dist/{connect-WBGCBBFJ.js → connect-S54TJ6OV.js} +3 -3
- package/dist/{conversion-writes-JU7Q2MUO.js → conversion-writes-ECZBVY7D.js} +2 -2
- package/dist/{conversions-3ISBR3TS.js → conversions-5QCSCRLI.js} +3 -3
- package/dist/copy-writes-D2RTHAL6.js +167 -0
- package/dist/copy-writes-D2RTHAL6.js.map +1 -0
- package/dist/{creatives-VQO2TKE3.js → creatives-5I3G5YP3.js} +2 -2
- package/dist/{creatives-YJ3CXZQC.js → creatives-MZ6ICNSY.js} +5 -4
- package/dist/{creatives-YJ3CXZQC.js.map → creatives-MZ6ICNSY.js.map} +1 -1
- package/dist/{creatives-S5QUWUL6.js → creatives-PCAGWPW3.js} +10 -10
- package/dist/{critique-5LCG5TYF.js → critique-NRHUPIWF.js} +7 -7
- package/dist/{custom-conversions-YRYE65PU.js → custom-conversions-FIP6ZS34.js} +5 -3
- package/dist/{custom-conversions-YRYE65PU.js.map → custom-conversions-FIP6ZS34.js.map} +1 -1
- package/dist/{draft-Y2QJE2NM.js → draft-34CGWUVA.js} +2 -2
- package/dist/{draft-GPN3HOAG.js → draft-4P3YO67N.js} +9 -5
- package/dist/draft-4P3YO67N.js.map +1 -0
- package/dist/{draft-EWDOIXSH.js → draft-L45PGCYZ.js} +7 -3
- package/dist/draft-L45PGCYZ.js.map +1 -0
- package/dist/engine/index.js +4 -4
- package/dist/{experiment-G3FQVAJU.js → experiment-7N4QFRWV.js} +4 -4
- package/dist/{feedback-CAOZPGTT.js → feedback-O3H42V4I.js} +10 -10
- package/dist/{feedback-record-EXV5H6OS.js → feedback-record-FAPN2GBS.js} +12 -12
- package/dist/{find-EVY4XEIQ.js → find-FSQAEGGF.js} +4 -4
- package/dist/{flows-Z7355RMD.js → flows-T22B77J3.js} +3 -3
- package/dist/{funnel-2B3JXJPX.js → funnel-7OA33VRP.js} +5 -5
- package/dist/{ga4-2BL5YAYN.js → ga4-LPDIBNYP.js} +1 -1
- package/dist/{google-7STODZQR.js → google-5ESVO76E.js} +5 -5
- package/dist/{gsc-UU3T2C6B.js → gsc-FIZTQX3N.js} +1 -1
- package/dist/{history-IQ33J5PB.js → history-QKDYBSYM.js} +2 -2
- package/dist/{icon-GB7UH5RF.js → icon-CSVAZ7NE.js} +4 -4
- package/dist/{ideas-F6CIGTVU.js → ideas-JQT422P7.js} +4 -4
- package/dist/{images-WCKTD6Z2.js → images-WBNWK2ZH.js} +6 -6
- package/dist/{insights-4HT2NAYP.js → insights-YWVJMATY.js} +4 -3
- package/dist/{insights-4HT2NAYP.js.map → insights-YWVJMATY.js.map} +1 -1
- package/dist/{inspiration-XQYHBJY2.js → inspiration-IX5N724J.js} +1 -1
- package/dist/instant-experiences-NQ2GWIWL.js +257 -0
- package/dist/instant-experiences-NQ2GWIWL.js.map +1 -0
- package/dist/{landing-WUILAWDS.js → landing-Y6QCTXCZ.js} +2 -2
- package/dist/leads-THI37ZMD.js +537 -0
- package/dist/leads-THI37ZMD.js.map +1 -0
- package/dist/{learn-CC6Q5IK2.js → learn-3BDZUWDT.js} +5 -5
- package/dist/{linkedin-XKVPSCLV.js → linkedin-UGMAFSGO.js} +2 -2
- package/dist/{locations-YA7NZY44.js → locations-HM56X2MK.js} +2 -2
- package/dist/locations-HM56X2MK.js.map +1 -0
- package/dist/{logo-YSNUUT33.js → logo-VHXH4J6A.js} +3 -3
- package/dist/{make-ED7HBLH3.js → make-W2PYZXYF.js} +39 -39
- package/dist/media-H6B7VDON.js +18 -0
- package/dist/media-H6B7VDON.js.map +1 -0
- package/dist/{media-sources-PEHUMH7C.js → media-sources-EZKAJNVD.js} +1 -1
- package/dist/meta-YHDTGJQ6.js +122 -0
- package/dist/meta-YHDTGJQ6.js.map +1 -0
- package/dist/{options-6FCNFWUF.js → options-NSCZSQ5P.js} +3 -3
- package/dist/page-photos-CXRG4AXV.js +115 -0
- package/dist/page-photos-CXRG4AXV.js.map +1 -0
- package/dist/{pages-FTI44OSH.js → pages-PTWRXAZT.js} +2 -2
- package/dist/{pixels-6IUB3Y3H.js → pixels-MYT3TCHZ.js} +2 -2
- package/dist/{pixels-MBKR4XPX.js → pixels-ZZCQUS3J.js} +2 -2
- package/dist/{preview-V4YBD45S.js → preview-XOXAAPMQ.js} +73 -27
- package/dist/preview-XOXAAPMQ.js.map +1 -0
- package/dist/{rerun-A2XHGFZS.js → rerun-5THJLQQJ.js} +18 -18
- package/dist/{research-BLDY5UWH.js → research-JHDWWFL7.js} +1 -1
- package/dist/rule-writes-6ZCAJDYZ.js +522 -0
- package/dist/rule-writes-6ZCAJDYZ.js.map +1 -0
- package/dist/rules-BMYOY2BM.js +216 -0
- package/dist/rules-BMYOY2BM.js.map +1 -0
- package/dist/{rules-SK5DFFPY.js → rules-YLLFDZEM.js} +3 -3
- package/dist/{rules-add-YQNYSME7.js → rules-add-U2GU4AGP.js} +4 -4
- package/dist/{run-KBN5K7LE.js → run-V5YQB6TH.js} +18 -18
- package/dist/{scaffold-ad-6BN5LWQH.js → scaffold-ad-H4GJOKAW.js} +12 -12
- package/dist/{scaffold-static-ad-VVZRAWBR.js → scaffold-static-ad-2YIFHCTL.js} +25 -25
- package/dist/{scaffold-video-LFIYI4GP.js → scaffold-video-3EJLKR2O.js} +14 -14
- package/dist/{select-QBU6ED4K.js → select-I22NPSIW.js} +9 -9
- package/dist/{set-prompt-TL64CRBQ.js → set-prompt-S75OMQ7L.js} +8 -8
- package/dist/{shared-NDRFKAH7.js → shared-3IBNDEFL.js} +2 -2
- package/dist/{sources-RMNFV4CA.js → sources-VA23PDND.js} +1 -1
- package/dist/{stale-ITFCPOER.js → stale-MHTU2NQJ.js} +8 -8
- package/dist/{stats-RCLQE4HJ.js → stats-ZAGJH4AD.js} +1 -1
- package/dist/{stock-ECRBD7RP.js → stock-6SHHLSKG.js} +5 -5
- package/dist/studies-4NIV4D5Y.js +249 -0
- package/dist/studies-4NIV4D5Y.js.map +1 -0
- package/dist/{studio-MARZ22J2.js → studio-ZLCGXFAN.js} +1 -1
- package/dist/study-writes-L2AA2PGL.js +467 -0
- package/dist/study-writes-L2AA2PGL.js.map +1 -0
- package/dist/{sync-definition-C6ROLKJ4.js → sync-definition-2EBSQA6A.js} +11 -11
- package/dist/{tag-manager-G3LBQZUL.js → tag-manager-3CJ66GKJ.js} +1 -1
- package/dist/targeting-LNDQV4EK.js +759 -0
- package/dist/targeting-LNDQV4EK.js.map +1 -0
- package/dist/{testimonials-YMMA5YWL.js → testimonials-GR6TIS5S.js} +2 -2
- package/dist/{translate-OXVIMYHE.js → translate-GEFUP6KQ.js} +18 -18
- package/dist/{validate-ZS2M5Q3V.js → validate-NOWIOAHE.js} +11 -11
- package/dist/{videos-I6YXFBFT.js → videos-XMTDEHEJ.js} +1 -1
- package/dist/{viewer-check-7ZG7KHEN.js → viewer-check-U4XZMMS7.js} +6 -6
- package/dist/viewer-check-U4XZMMS7.js.map +1 -0
- package/dist/{winning-ads-ABN5OULS.js → winning-ads-QOAYIR5U.js} +1 -1
- package/dist/{write-commands-HCQI4Y27.js → write-commands-PEJBTME6.js} +485 -57
- package/dist/write-commands-PEJBTME6.js.map +1 -0
- package/dist/{x-WK2VQDPF.js → x-VCSMV7T5.js} +4 -4
- package/package.json +1 -1
- package/dist/account-7LUQWY6Q.js +0 -49
- package/dist/account-7LUQWY6Q.js.map +0 -1
- package/dist/ads-HXX2IAFF.js.map +0 -1
- package/dist/audiences-XEZHACKH.js.map +0 -1
- package/dist/campaign-writes-BAFB5E7A.js.map +0 -1
- package/dist/campaigns-4SOLY7OR.js.map +0 -1
- package/dist/chats-INN2OHSH.js.map +0 -1
- package/dist/chunk-3UXMQ3K2.js.map +0 -1
- package/dist/chunk-6JWEGFM5.js.map +0 -1
- package/dist/chunk-7RBJ2Z7Z.js.map +0 -1
- package/dist/chunk-GOJXKIFQ.js +0 -1605
- package/dist/chunk-GOJXKIFQ.js.map +0 -1
- package/dist/chunk-KIGGMKAE.js.map +0 -1
- package/dist/chunk-OP7DNHD2.js.map +0 -1
- package/dist/draft-EWDOIXSH.js.map +0 -1
- package/dist/draft-GPN3HOAG.js.map +0 -1
- package/dist/leads-2XOSAYP4.js +0 -293
- package/dist/leads-2XOSAYP4.js.map +0 -1
- package/dist/locations-YA7NZY44.js.map +0 -1
- package/dist/media-ES2UBGYW.js +0 -15
- package/dist/media-ES2UBGYW.js.map +0 -1
- package/dist/meta-AOIPEDV5.js +0 -69
- package/dist/meta-AOIPEDV5.js.map +0 -1
- package/dist/preview-V4YBD45S.js.map +0 -1
- package/dist/write-commands-HCQI4Y27.js.map +0 -1
- /package/dist/{account-Z65CPOWE.js.map → account-3H6BZO5H.js.map} +0 -0
- /package/dist/{account-writes-4N2MA2ZR.js.map → account-writes-AE5IJGGW.js.map} +0 -0
- /package/dist/{accounts-UA2ZWRN4.js.map → accounts-K4INATCW.js.map} +0 -0
- /package/dist/{activities-IQPJPP4B.js.map → activities-T253KK4Q.js.map} +0 -0
- /package/dist/{ad-group-writes-EUTMPBMK.js.map → ad-group-writes-VRSBI2Z2.js.map} +0 -0
- /package/dist/{ad-groups-OVPAI5RM.js.map → ad-groups-IEBVEAMS.js.map} +0 -0
- /package/dist/{ad-writes-DACTYFEO.js.map → ad-writes-ALV4KFPZ.js.map} +0 -0
- /package/dist/{ads-L65JIKCD.js.map → ads-CQZHD7FC.js.map} +0 -0
- /package/dist/{ads-G6AS5L7G.js.map → ads-QIKZ6O2N.js.map} +0 -0
- /package/dist/{analytics-QKP3A5F3.js.map → analytics-ALOZ7ZZ4.js.map} +0 -0
- /package/dist/{connect-WBGCBBFJ.js.map → asset-writes-L5TMKIZC.js.map} +0 -0
- /package/dist/{audiences-RPLVMO4H.js.map → audiences-AAZH56WD.js.map} +0 -0
- /package/dist/{avatars-MXTI74VC.js.map → avatars-YSFFRHDK.js.map} +0 -0
- /package/dist/{brief-BN4UGUXF.js.map → brief-7S6XCJIA.js.map} +0 -0
- /package/dist/{businesses-PRRYPR7H.js.map → businesses-H3HIDQX6.js.map} +0 -0
- /package/dist/{campaign-writes-U5LTDTYK.js.map → campaign-writes-U5PUVSMT.js.map} +0 -0
- /package/dist/{campaigns-TFEQTSO3.js.map → campaigns-JEIKY2M4.js.map} +0 -0
- /package/dist/{campaigns-NR6TNQFN.js.map → campaigns-VTRMKSAT.js.map} +0 -0
- /package/dist/{canvas-GJAQAVS6.js.map → canvas-SVJEQO4V.js.map} +0 -0
- /package/dist/{catalog-USZL4SGX.js.map → catalog-S32MX453.js.map} +0 -0
- /package/dist/{catalogs-A7XMEEEP.js.map → catalogs-OCVXZLIF.js.map} +0 -0
- /package/dist/{chatgpt-4PEWDJKP.js.map → chatgpt-QVF2FD3E.js.map} +0 -0
- /package/dist/{check-MMJGFFZS.js.map → check-SLNHVYGS.js.map} +0 -0
- /package/dist/{chunk-KPYDTIAI.js.map → chunk-2WZI36D3.js.map} +0 -0
- /package/dist/{chunk-FUKDI2UK.js.map → chunk-3W6G6ARX.js.map} +0 -0
- /package/dist/{chunk-JWSEPW7F.js.map → chunk-46GWHUKN.js.map} +0 -0
- /package/dist/{chunk-3TZVZXM6.js.map → chunk-4KJMLYCD.js.map} +0 -0
- /package/dist/{chunk-R3EKM2P2.js.map → chunk-6NCJGU6I.js.map} +0 -0
- /package/dist/{chunk-LPXSM2DI.js.map → chunk-AO45BX6Q.js.map} +0 -0
- /package/dist/{chunk-NPMAATZG.js.map → chunk-C7NWUCLQ.js.map} +0 -0
- /package/dist/{chunk-OWA7ZLC4.js.map → chunk-D4CKCNGW.js.map} +0 -0
- /package/dist/{chunk-H5HDZ7IC.js.map → chunk-DCBZ5CHZ.js.map} +0 -0
- /package/dist/{chunk-C6EYCD5J.js.map → chunk-FVHJCERJ.js.map} +0 -0
- /package/dist/{chunk-BITS62MF.js.map → chunk-G6XKD7QE.js.map} +0 -0
- /package/dist/{chunk-QE3JEJXF.js.map → chunk-GSZZLW5Q.js.map} +0 -0
- /package/dist/{chunk-TPANP5A2.js.map → chunk-JKJQWRLO.js.map} +0 -0
- /package/dist/{chunk-62JQQUAU.js.map → chunk-JQH5VG6F.js.map} +0 -0
- /package/dist/{chunk-6WXV5GTA.js.map → chunk-JVH5A3XC.js.map} +0 -0
- /package/dist/{chunk-AVNSH2JE.js.map → chunk-KOXDXSKN.js.map} +0 -0
- /package/dist/{chunk-2XRMPSEV.js.map → chunk-LXQB4ZGE.js.map} +0 -0
- /package/dist/{chunk-ZL23HA4N.js.map → chunk-M6PN3VH6.js.map} +0 -0
- /package/dist/{chunk-TZEVD4Q6.js.map → chunk-P5FRWPG7.js.map} +0 -0
- /package/dist/{chunk-CSZFZKVX.js.map → chunk-PQJXIY64.js.map} +0 -0
- /package/dist/{chunk-LBO2YAZY.js.map → chunk-UNX6BS4U.js.map} +0 -0
- /package/dist/{chunk-UWXDNVS5.js.map → chunk-ZJSGGJ5R.js.map} +0 -0
- /package/dist/{ideas-F6CIGTVU.js.map → connect-S54TJ6OV.js.map} +0 -0
- /package/dist/{conversion-writes-JU7Q2MUO.js.map → conversion-writes-ECZBVY7D.js.map} +0 -0
- /package/dist/{conversions-3ISBR3TS.js.map → conversions-5QCSCRLI.js.map} +0 -0
- /package/dist/{creatives-VQO2TKE3.js.map → creatives-5I3G5YP3.js.map} +0 -0
- /package/dist/{creatives-S5QUWUL6.js.map → creatives-PCAGWPW3.js.map} +0 -0
- /package/dist/{critique-5LCG5TYF.js.map → critique-NRHUPIWF.js.map} +0 -0
- /package/dist/{draft-Y2QJE2NM.js.map → draft-34CGWUVA.js.map} +0 -0
- /package/dist/{experiment-G3FQVAJU.js.map → experiment-7N4QFRWV.js.map} +0 -0
- /package/dist/{feedback-CAOZPGTT.js.map → feedback-O3H42V4I.js.map} +0 -0
- /package/dist/{feedback-record-EXV5H6OS.js.map → feedback-record-FAPN2GBS.js.map} +0 -0
- /package/dist/{find-EVY4XEIQ.js.map → find-FSQAEGGF.js.map} +0 -0
- /package/dist/{flows-Z7355RMD.js.map → flows-T22B77J3.js.map} +0 -0
- /package/dist/{funnel-2B3JXJPX.js.map → funnel-7OA33VRP.js.map} +0 -0
- /package/dist/{ga4-2BL5YAYN.js.map → ga4-LPDIBNYP.js.map} +0 -0
- /package/dist/{google-7STODZQR.js.map → google-5ESVO76E.js.map} +0 -0
- /package/dist/{gsc-UU3T2C6B.js.map → gsc-FIZTQX3N.js.map} +0 -0
- /package/dist/{history-IQ33J5PB.js.map → history-QKDYBSYM.js.map} +0 -0
- /package/dist/{icon-GB7UH5RF.js.map → icon-CSVAZ7NE.js.map} +0 -0
- /package/dist/{logo-YSNUUT33.js.map → ideas-JQT422P7.js.map} +0 -0
- /package/dist/{images-WCKTD6Z2.js.map → images-WBNWK2ZH.js.map} +0 -0
- /package/dist/{inspiration-XQYHBJY2.js.map → inspiration-IX5N724J.js.map} +0 -0
- /package/dist/{landing-WUILAWDS.js.map → landing-Y6QCTXCZ.js.map} +0 -0
- /package/dist/{learn-CC6Q5IK2.js.map → learn-3BDZUWDT.js.map} +0 -0
- /package/dist/{linkedin-XKVPSCLV.js.map → linkedin-UGMAFSGO.js.map} +0 -0
- /package/dist/{run-KBN5K7LE.js.map → logo-VHXH4J6A.js.map} +0 -0
- /package/dist/{make-ED7HBLH3.js.map → make-W2PYZXYF.js.map} +0 -0
- /package/dist/{media-sources-PEHUMH7C.js.map → media-sources-EZKAJNVD.js.map} +0 -0
- /package/dist/{options-6FCNFWUF.js.map → options-NSCZSQ5P.js.map} +0 -0
- /package/dist/{pages-FTI44OSH.js.map → pages-PTWRXAZT.js.map} +0 -0
- /package/dist/{pixels-6IUB3Y3H.js.map → pixels-MYT3TCHZ.js.map} +0 -0
- /package/dist/{pixels-MBKR4XPX.js.map → pixels-ZZCQUS3J.js.map} +0 -0
- /package/dist/{rerun-A2XHGFZS.js.map → rerun-5THJLQQJ.js.map} +0 -0
- /package/dist/{research-BLDY5UWH.js.map → research-JHDWWFL7.js.map} +0 -0
- /package/dist/{rules-SK5DFFPY.js.map → rules-YLLFDZEM.js.map} +0 -0
- /package/dist/{rules-add-YQNYSME7.js.map → rules-add-U2GU4AGP.js.map} +0 -0
- /package/dist/{shared-NDRFKAH7.js.map → run-V5YQB6TH.js.map} +0 -0
- /package/dist/{scaffold-ad-6BN5LWQH.js.map → scaffold-ad-H4GJOKAW.js.map} +0 -0
- /package/dist/{scaffold-static-ad-VVZRAWBR.js.map → scaffold-static-ad-2YIFHCTL.js.map} +0 -0
- /package/dist/{scaffold-video-LFIYI4GP.js.map → scaffold-video-3EJLKR2O.js.map} +0 -0
- /package/dist/{select-QBU6ED4K.js.map → select-I22NPSIW.js.map} +0 -0
- /package/dist/{set-prompt-TL64CRBQ.js.map → set-prompt-S75OMQ7L.js.map} +0 -0
- /package/dist/{sync-definition-C6ROLKJ4.js.map → shared-3IBNDEFL.js.map} +0 -0
- /package/dist/{sources-RMNFV4CA.js.map → sources-VA23PDND.js.map} +0 -0
- /package/dist/{stale-ITFCPOER.js.map → stale-MHTU2NQJ.js.map} +0 -0
- /package/dist/{stats-RCLQE4HJ.js.map → stats-ZAGJH4AD.js.map} +0 -0
- /package/dist/{stock-ECRBD7RP.js.map → stock-6SHHLSKG.js.map} +0 -0
- /package/dist/{studio-MARZ22J2.js.map → studio-ZLCGXFAN.js.map} +0 -0
- /package/dist/{viewer-check-7ZG7KHEN.js.map → sync-definition-2EBSQA6A.js.map} +0 -0
- /package/dist/{tag-manager-G3LBQZUL.js.map → tag-manager-3CJ66GKJ.js.map} +0 -0
- /package/dist/{testimonials-YMMA5YWL.js.map → testimonials-GR6TIS5S.js.map} +0 -0
- /package/dist/{translate-OXVIMYHE.js.map → translate-GEFUP6KQ.js.map} +0 -0
- /package/dist/{validate-ZS2M5Q3V.js.map → validate-NOWIOAHE.js.map} +0 -0
- /package/dist/{videos-I6YXFBFT.js.map → videos-XMTDEHEJ.js.map} +0 -0
- /package/dist/{winning-ads-ABN5OULS.js.map → winning-ads-QOAYIR5U.js.map} +0 -0
- /package/dist/{x-WK2VQDPF.js.map → x-VCSMV7T5.js.map} +0 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import {
|
|
2
|
+
bareAccountId,
|
|
3
|
+
failWriteValidation,
|
|
4
|
+
numberFlag,
|
|
5
|
+
requireTarget,
|
|
6
|
+
stageOp,
|
|
7
|
+
stageOps
|
|
8
|
+
} from "./chunk-5C35OW7L.js";
|
|
9
|
+
import {
|
|
10
|
+
repeatedValues
|
|
11
|
+
} from "./chunk-ERSX3MKH.js";
|
|
12
|
+
import {
|
|
13
|
+
registerSchema
|
|
14
|
+
} from "./chunk-WNSE7N75.js";
|
|
15
|
+
|
|
16
|
+
// src/commands/ads/meta/asset-writes.ts
|
|
17
|
+
import { defineCommand } from "citty";
|
|
18
|
+
var STAGED_NOTE = "Staged until publish \u2014 review with `baker ads meta draft`.";
|
|
19
|
+
var accountArg = { type: "string", description: "Meta ad account ID (act_123)" };
|
|
20
|
+
var schemaId = (what) => ({ type: "positional", description: what, required: true });
|
|
21
|
+
function command(input) {
|
|
22
|
+
registerSchema({
|
|
23
|
+
command: input.schema,
|
|
24
|
+
description: input.schemaDescription,
|
|
25
|
+
args: Object.fromEntries(
|
|
26
|
+
Object.entries(input.args).map(([key, arg]) => [
|
|
27
|
+
key,
|
|
28
|
+
{ type: arg.type, description: arg.description, required: arg.required === true }
|
|
29
|
+
])
|
|
30
|
+
)
|
|
31
|
+
});
|
|
32
|
+
return defineCommand({
|
|
33
|
+
meta: { name: input.name, description: `${input.description} ${STAGED_NOTE}` },
|
|
34
|
+
args: input.args,
|
|
35
|
+
run: async ({ args, rawArgs }) => {
|
|
36
|
+
await input.run(args, rawArgs);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
var creativesDeleteCommand = command({
|
|
41
|
+
schema: "ads.meta.creatives.delete",
|
|
42
|
+
name: "delete",
|
|
43
|
+
description: "Stage deleting an ad creative. Meta deletes only a creative no ad runs \u2014 repoint or delete the ad first. Permanent.",
|
|
44
|
+
schemaDescription: "Stage deleting a Meta ad creative (status DELETED) \u2014 applied at publish, permanent. Meta refuses a creative an ad still runs.",
|
|
45
|
+
args: { id: { type: "positional", description: "Creative id", required: true }, "account-id": accountArg },
|
|
46
|
+
run: async (args) => {
|
|
47
|
+
await stageOp({
|
|
48
|
+
kind: "adCreative.update",
|
|
49
|
+
accountId: bareAccountId(args),
|
|
50
|
+
target: requireTarget(args, "creative"),
|
|
51
|
+
payload: { status: "DELETED" }
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
var mediaDeleteCommand = command({
|
|
56
|
+
schema: "ads.meta.media.delete",
|
|
57
|
+
name: "delete",
|
|
58
|
+
description: "Stage taking an image out of the ad account's image library, by its hash (`baker ads meta images`), or one of its videos by id (`--video-id`, from `baker ads meta media`). Meta refuses an image a creative still uses.",
|
|
59
|
+
schemaDescription: "Stage deleting an image from a Meta ad account's image library by hash, or a video from its video library by id \u2014 applied at publish. Meta refuses an image a creative uses.",
|
|
60
|
+
args: {
|
|
61
|
+
"account-id": accountArg,
|
|
62
|
+
"image-hash": { type: "string", description: "The image's hash" },
|
|
63
|
+
"video-id": { type: "string", description: "Or a video of the ad account, by id" }
|
|
64
|
+
},
|
|
65
|
+
run: async (args) => {
|
|
66
|
+
const imageHash = typeof args["image-hash"] === "string" ? args["image-hash"] : void 0;
|
|
67
|
+
const videoId = typeof args["video-id"] === "string" ? args["video-id"] : void 0;
|
|
68
|
+
if (imageHash === void 0 === (videoId === void 0)) {
|
|
69
|
+
failWriteValidation("pass --image-hash (from `baker ads meta images`) or --video-id \u2014 one of them");
|
|
70
|
+
}
|
|
71
|
+
await stageOp({ kind: "media.delete", accountId: bareAccountId(args), payload: { imageHash, videoId } });
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
var customConversionsUpdateCommand = command({
|
|
75
|
+
schema: "ads.meta.custom-conversions.update",
|
|
76
|
+
name: "update",
|
|
77
|
+
description: "Stage renaming a Custom Conversion, its description or its value per conversion. Meta keeps a conversion's rule and event category for good \u2014 a conversion that counts something else is a new one.",
|
|
78
|
+
schemaDescription: "Stage a change to a Meta Custom Conversion: --name, --description, --value (value per conversion, account currency). The rule and event category cannot change (Meta accepts and ignores them).",
|
|
79
|
+
args: {
|
|
80
|
+
id: { type: "positional", description: "Custom conversion id", required: true },
|
|
81
|
+
"account-id": accountArg,
|
|
82
|
+
name: { type: "string", description: "New name" },
|
|
83
|
+
description: { type: "string", description: "New description" },
|
|
84
|
+
value: { type: "string", description: "Value of one conversion, in the account currency" }
|
|
85
|
+
},
|
|
86
|
+
run: async (args) => {
|
|
87
|
+
const payload = Object.fromEntries(
|
|
88
|
+
Object.entries({
|
|
89
|
+
name: args.name,
|
|
90
|
+
description: args.description,
|
|
91
|
+
default_conversion_value: numberFlag(args.value, "--value")
|
|
92
|
+
}).filter(([, value]) => value !== void 0)
|
|
93
|
+
);
|
|
94
|
+
await stageOp({
|
|
95
|
+
kind: "customConversion.update",
|
|
96
|
+
accountId: bareAccountId(args),
|
|
97
|
+
target: requireTarget(args, "custom conversion"),
|
|
98
|
+
payload
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
var customConversionsDeleteCommand = command({
|
|
103
|
+
schema: "ads.meta.custom-conversions.delete",
|
|
104
|
+
name: "delete",
|
|
105
|
+
description: "Stage deleting a Custom Conversion. Meta archives it: it stops counting and leaves the active list, and still uses one of the account's slots. Ad sets optimizing toward it stop finding conversions.",
|
|
106
|
+
schemaDescription: "Stage deleting (archiving) a Meta Custom Conversion \u2014 applied at publish. Not reversible; it keeps its slot in the account's cap.",
|
|
107
|
+
args: { id: schemaId("Custom conversion id"), "account-id": accountArg },
|
|
108
|
+
run: async (args) => {
|
|
109
|
+
await stageOp({
|
|
110
|
+
kind: "customConversion.update",
|
|
111
|
+
accountId: bareAccountId(args),
|
|
112
|
+
target: requireTarget(args, "custom conversion"),
|
|
113
|
+
payload: { status: "DELETED" }
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
var labelsCreateCommand = command({
|
|
118
|
+
schema: "ads.meta.labels.create",
|
|
119
|
+
name: "create",
|
|
120
|
+
description: 'Stage a new ad label. File things under it with `labels attach <ref> --campaigns \u2026` in the same chat. Example: baker ads meta labels create --name "Q4 launch"',
|
|
121
|
+
schemaDescription: "Stage a new Meta ad label (created at publish). Returns a meta_temp_* ref `labels attach` takes.",
|
|
122
|
+
args: { "account-id": accountArg, name: { type: "string", description: "Label name" } },
|
|
123
|
+
run: async (args) => {
|
|
124
|
+
await stageOp({ kind: "adLabel.create", accountId: bareAccountId(args), payload: { name: args.name } });
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
var labelsRenameCommand = command({
|
|
128
|
+
schema: "ads.meta.labels.rename",
|
|
129
|
+
name: "rename",
|
|
130
|
+
description: "Stage renaming an ad label.",
|
|
131
|
+
schemaDescription: "Stage renaming a Meta ad label.",
|
|
132
|
+
args: { id: schemaId("Label id"), "account-id": accountArg, name: { type: "string", description: "New name" } },
|
|
133
|
+
run: async (args) => {
|
|
134
|
+
await stageOp({
|
|
135
|
+
kind: "adLabel.update",
|
|
136
|
+
accountId: bareAccountId(args),
|
|
137
|
+
target: requireTarget(args, "label"),
|
|
138
|
+
payload: { name: args.name }
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
var labelsDeleteCommand = command({
|
|
143
|
+
schema: "ads.meta.labels.delete",
|
|
144
|
+
name: "delete",
|
|
145
|
+
description: "Stage deleting an ad label. Everything filed under it keeps running, unlabelled.",
|
|
146
|
+
schemaDescription: "Stage deleting a Meta ad label \u2014 applied at publish; labelled objects keep running.",
|
|
147
|
+
args: { id: schemaId("Label id"), "account-id": accountArg },
|
|
148
|
+
run: async (args) => {
|
|
149
|
+
await stageOp({
|
|
150
|
+
kind: "adLabel.update",
|
|
151
|
+
accountId: bareAccountId(args),
|
|
152
|
+
target: requireTarget(args, "label"),
|
|
153
|
+
payload: { status: "DELETED" }
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
var LABELLED = [
|
|
158
|
+
["campaigns", "campaign.update"],
|
|
159
|
+
["adsets", "adSet.update"],
|
|
160
|
+
["ads", "ad.update"],
|
|
161
|
+
["creatives", "adCreative.update"]
|
|
162
|
+
];
|
|
163
|
+
var targetArgs = {
|
|
164
|
+
campaigns: { type: "string", description: "Campaign ids (comma-separated or repeated)" },
|
|
165
|
+
adsets: { type: "string", description: "Ad set ids" },
|
|
166
|
+
ads: { type: "string", description: "Ad ids" },
|
|
167
|
+
creatives: {
|
|
168
|
+
type: "string",
|
|
169
|
+
description: "Creative ids (live ones \u2014 a creative created in this chat is labelled later)"
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
function idsOf(rawArgs, flag, parsed) {
|
|
173
|
+
return repeatedValues(rawArgs, flag, parsed).flatMap((value) => value.split(",")).map((value) => value.trim()).filter(Boolean);
|
|
174
|
+
}
|
|
175
|
+
async function stageLabelChange(verb, args, rawArgs) {
|
|
176
|
+
const accountId = bareAccountId(args);
|
|
177
|
+
const label = requireTarget(args, "label");
|
|
178
|
+
const targets = LABELLED.flatMap(([flag, kind]) => idsOf(rawArgs, flag, args[flag]).map((id) => ({ kind, id })));
|
|
179
|
+
if (targets.length === 0) {
|
|
180
|
+
failWriteValidation("name what to label: --campaigns, --adsets, --ads or --creatives");
|
|
181
|
+
}
|
|
182
|
+
await stageOps(
|
|
183
|
+
targets.map((target) => ({ kind: target.kind, accountId, target: target.id, payload: { [verb]: [label] } }))
|
|
184
|
+
);
|
|
185
|
+
}
|
|
186
|
+
var labelsAttachCommand = command({
|
|
187
|
+
schema: "ads.meta.labels.attach",
|
|
188
|
+
name: "attach",
|
|
189
|
+
description: "Stage filing campaigns, ad sets, ads or creatives under a label (a label id, or a meta_temp_* ref from `labels create`). Their other labels stay. Example: baker ads meta labels attach 120249 --campaigns 6123,6124",
|
|
190
|
+
schemaDescription: "Stage adding a Meta ad label to campaigns/ad sets/ads/creatives (--campaigns, --adsets, --ads, --creatives; comma-separated). One staged change per object; other labels kept.",
|
|
191
|
+
args: { id: schemaId("Label id or meta_temp_* ref"), "account-id": accountArg, ...targetArgs },
|
|
192
|
+
run: async (args, rawArgs) => {
|
|
193
|
+
await stageLabelChange("addLabels", args, rawArgs);
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
var labelsDetachCommand = command({
|
|
197
|
+
schema: "ads.meta.labels.detach",
|
|
198
|
+
name: "detach",
|
|
199
|
+
description: "Stage taking a label off campaigns, ad sets, ads or creatives. Their other labels stay.",
|
|
200
|
+
schemaDescription: "Stage removing a Meta ad label from campaigns/ad sets/ads/creatives (--campaigns, --adsets, --ads, --creatives). Other labels kept.",
|
|
201
|
+
args: { id: schemaId("Label id"), "account-id": accountArg, ...targetArgs },
|
|
202
|
+
run: async (args, rawArgs) => {
|
|
203
|
+
await stageLabelChange("removeLabels", args, rawArgs);
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
export {
|
|
208
|
+
command,
|
|
209
|
+
creativesDeleteCommand,
|
|
210
|
+
mediaDeleteCommand,
|
|
211
|
+
customConversionsUpdateCommand,
|
|
212
|
+
customConversionsDeleteCommand,
|
|
213
|
+
labelsCreateCommand,
|
|
214
|
+
labelsRenameCommand,
|
|
215
|
+
labelsDeleteCommand,
|
|
216
|
+
labelsAttachCommand,
|
|
217
|
+
labelsDetachCommand
|
|
218
|
+
};
|
|
219
|
+
//# sourceMappingURL=chunk-SVAB6KV5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/ads/meta/asset-writes.ts"],"sourcesContent":["import { type ArgsDef, type CommandDef, defineCommand } from \"citty\";\nimport { repeatedValues } from \"../../../lib/repeatedFlags.ts\";\nimport { registerSchema } from \"../../../schemas.ts\";\nimport { bareAccountId, failWriteValidation, numberFlag, requireTarget, stageOp, stageOps } from \"./write-shared.ts\";\n\n/**\n * Staged writes on the account's own assets: deleting a creative or an image,\n * changing or deleting a Custom Conversion, and ad labels — creating, renaming,\n * deleting them, and filing campaigns, ad sets, ads and creatives under them.\n * Nothing reaches Meta until the chat publishes.\n */\n\nconst STAGED_NOTE = \"Staged until publish — review with `baker ads meta draft`.\";\nconst accountArg = { type: \"string\", description: \"Meta ad account ID (act_123)\" } as const;\nconst schemaId = (what: string) => ({ type: \"positional\", description: what, required: true });\n\nexport function command(input: {\n schema: string;\n name: string;\n description: string;\n schemaDescription: string;\n args: Record<string, { type: string; description: string; required?: boolean }>;\n run: (args: Record<string, unknown>, rawArgs: readonly string[] | undefined) => Promise<void>;\n}): CommandDef<ArgsDef> {\n registerSchema({\n command: input.schema,\n description: input.schemaDescription,\n args: Object.fromEntries(\n Object.entries(input.args).map(([key, arg]) => [\n key,\n { type: arg.type, description: arg.description, required: arg.required === true },\n ]),\n ),\n });\n return defineCommand<ArgsDef>({\n meta: { name: input.name, description: `${input.description} ${STAGED_NOTE}` },\n args: input.args as ArgsDef,\n run: async ({ args, rawArgs }) => {\n await input.run(args as Record<string, unknown>, rawArgs);\n },\n });\n}\n\n// --- Creatives ---\n\nexport const creativesDeleteCommand = command({\n schema: \"ads.meta.creatives.delete\",\n name: \"delete\",\n description:\n \"Stage deleting an ad creative. Meta deletes only a creative no ad runs — repoint or delete the ad first. Permanent.\",\n schemaDescription:\n \"Stage deleting a Meta ad creative (status DELETED) — applied at publish, permanent. Meta refuses a creative an ad still runs.\",\n args: { id: { type: \"positional\", description: \"Creative id\", required: true }, \"account-id\": accountArg },\n run: async (args) => {\n await stageOp({\n kind: \"adCreative.update\",\n accountId: bareAccountId(args),\n target: requireTarget(args, \"creative\"),\n payload: { status: \"DELETED\" },\n });\n },\n});\n\n// --- Images ---\n\nexport const mediaDeleteCommand = command({\n schema: \"ads.meta.media.delete\",\n name: \"delete\",\n description:\n \"Stage taking an image out of the ad account's image library, by its hash (`baker ads meta images`), or one of its videos by id (`--video-id`, from `baker ads meta media`). Meta refuses an image a creative still uses.\",\n schemaDescription:\n \"Stage deleting an image from a Meta ad account's image library by hash, or a video from its video library by id — applied at publish. Meta refuses an image a creative uses.\",\n args: {\n \"account-id\": accountArg,\n \"image-hash\": { type: \"string\", description: \"The image's hash\" },\n \"video-id\": { type: \"string\", description: \"Or a video of the ad account, by id\" },\n },\n run: async (args) => {\n const imageHash = typeof args[\"image-hash\"] === \"string\" ? args[\"image-hash\"] : undefined;\n const videoId = typeof args[\"video-id\"] === \"string\" ? args[\"video-id\"] : undefined;\n if ((imageHash === undefined) === (videoId === undefined)) {\n failWriteValidation(\"pass --image-hash (from `baker ads meta images`) or --video-id — one of them\");\n }\n await stageOp({ kind: \"media.delete\", accountId: bareAccountId(args), payload: { imageHash, videoId } });\n },\n});\n\n// --- Custom conversions ---\n\nexport const customConversionsUpdateCommand = command({\n schema: \"ads.meta.custom-conversions.update\",\n name: \"update\",\n description:\n \"Stage renaming a Custom Conversion, its description or its value per conversion. Meta keeps a conversion's rule and event category for good — a conversion that counts something else is a new one.\",\n schemaDescription:\n \"Stage a change to a Meta Custom Conversion: --name, --description, --value (value per conversion, account currency). The rule and event category cannot change (Meta accepts and ignores them).\",\n args: {\n id: { type: \"positional\", description: \"Custom conversion id\", required: true },\n \"account-id\": accountArg,\n name: { type: \"string\", description: \"New name\" },\n description: { type: \"string\", description: \"New description\" },\n value: { type: \"string\", description: \"Value of one conversion, in the account currency\" },\n },\n run: async (args) => {\n const payload = Object.fromEntries(\n Object.entries({\n name: args.name,\n description: args.description,\n default_conversion_value: numberFlag(args.value, \"--value\"),\n }).filter(([, value]) => value !== undefined),\n );\n await stageOp({\n kind: \"customConversion.update\",\n accountId: bareAccountId(args),\n target: requireTarget(args, \"custom conversion\"),\n payload,\n });\n },\n});\n\nexport const customConversionsDeleteCommand = command({\n schema: \"ads.meta.custom-conversions.delete\",\n name: \"delete\",\n description:\n \"Stage deleting a Custom Conversion. Meta archives it: it stops counting and leaves the active list, and still uses one of the account's slots. Ad sets optimizing toward it stop finding conversions.\",\n schemaDescription:\n \"Stage deleting (archiving) a Meta Custom Conversion — applied at publish. Not reversible; it keeps its slot in the account's cap.\",\n args: { id: schemaId(\"Custom conversion id\"), \"account-id\": accountArg },\n run: async (args) => {\n await stageOp({\n kind: \"customConversion.update\",\n accountId: bareAccountId(args),\n target: requireTarget(args, \"custom conversion\"),\n payload: { status: \"DELETED\" },\n });\n },\n});\n\n// --- Labels ---\n\nexport const labelsCreateCommand = command({\n schema: \"ads.meta.labels.create\",\n name: \"create\",\n description:\n 'Stage a new ad label. File things under it with `labels attach <ref> --campaigns …` in the same chat. Example: baker ads meta labels create --name \"Q4 launch\"',\n schemaDescription: \"Stage a new Meta ad label (created at publish). Returns a meta_temp_* ref `labels attach` takes.\",\n args: { \"account-id\": accountArg, name: { type: \"string\", description: \"Label name\" } },\n run: async (args) => {\n await stageOp({ kind: \"adLabel.create\", accountId: bareAccountId(args), payload: { name: args.name } });\n },\n});\n\nexport const labelsRenameCommand = command({\n schema: \"ads.meta.labels.rename\",\n name: \"rename\",\n description: \"Stage renaming an ad label.\",\n schemaDescription: \"Stage renaming a Meta ad label.\",\n args: { id: schemaId(\"Label id\"), \"account-id\": accountArg, name: { type: \"string\", description: \"New name\" } },\n run: async (args) => {\n await stageOp({\n kind: \"adLabel.update\",\n accountId: bareAccountId(args),\n target: requireTarget(args, \"label\"),\n payload: { name: args.name },\n });\n },\n});\n\nexport const labelsDeleteCommand = command({\n schema: \"ads.meta.labels.delete\",\n name: \"delete\",\n description: \"Stage deleting an ad label. Everything filed under it keeps running, unlabelled.\",\n schemaDescription: \"Stage deleting a Meta ad label — applied at publish; labelled objects keep running.\",\n args: { id: schemaId(\"Label id\"), \"account-id\": accountArg },\n run: async (args) => {\n await stageOp({\n kind: \"adLabel.update\",\n accountId: bareAccountId(args),\n target: requireTarget(args, \"label\"),\n payload: { status: \"DELETED\" },\n });\n },\n});\n\nconst LABELLED = [\n [\"campaigns\", \"campaign.update\"],\n [\"adsets\", \"adSet.update\"],\n [\"ads\", \"ad.update\"],\n [\"creatives\", \"adCreative.update\"],\n] as const;\n\nconst targetArgs = {\n campaigns: { type: \"string\", description: \"Campaign ids (comma-separated or repeated)\" },\n adsets: { type: \"string\", description: \"Ad set ids\" },\n ads: { type: \"string\", description: \"Ad ids\" },\n creatives: {\n type: \"string\",\n description: \"Creative ids (live ones — a creative created in this chat is labelled later)\",\n },\n} as const;\n\nfunction idsOf(rawArgs: readonly string[] | undefined, flag: string, parsed: unknown): string[] {\n return repeatedValues(rawArgs, flag, parsed)\n .flatMap((value) => value.split(\",\"))\n .map((value) => value.trim())\n .filter(Boolean);\n}\n\n/**\n * One staged update per object. Each names only the label to add or take\n * away; staging reads the labels the object has now and stages the whole set,\n * because Meta replaces an object's labels with the set it is sent.\n */\nasync function stageLabelChange(\n verb: \"addLabels\" | \"removeLabels\",\n args: Record<string, unknown>,\n rawArgs: readonly string[] | undefined,\n): Promise<void> {\n const accountId = bareAccountId(args);\n const label = requireTarget(args, \"label\");\n const targets = LABELLED.flatMap(([flag, kind]) => idsOf(rawArgs, flag, args[flag]).map((id) => ({ kind, id })));\n if (targets.length === 0) {\n failWriteValidation(\"name what to label: --campaigns, --adsets, --ads or --creatives\");\n }\n await stageOps(\n targets.map((target) => ({ kind: target.kind, accountId, target: target.id, payload: { [verb]: [label] } })),\n );\n}\n\nexport const labelsAttachCommand = command({\n schema: \"ads.meta.labels.attach\",\n name: \"attach\",\n description:\n \"Stage filing campaigns, ad sets, ads or creatives under a label (a label id, or a meta_temp_* ref from `labels create`). Their other labels stay. Example: baker ads meta labels attach 120249 --campaigns 6123,6124\",\n schemaDescription:\n \"Stage adding a Meta ad label to campaigns/ad sets/ads/creatives (--campaigns, --adsets, --ads, --creatives; comma-separated). One staged change per object; other labels kept.\",\n args: { id: schemaId(\"Label id or meta_temp_* ref\"), \"account-id\": accountArg, ...targetArgs },\n run: async (args, rawArgs) => {\n await stageLabelChange(\"addLabels\", args, rawArgs);\n },\n});\n\nexport const labelsDetachCommand = command({\n schema: \"ads.meta.labels.detach\",\n name: \"detach\",\n description: \"Stage taking a label off campaigns, ad sets, ads or creatives. Their other labels stay.\",\n schemaDescription:\n \"Stage removing a Meta ad label from campaigns/ad sets/ads/creatives (--campaigns, --adsets, --ads, --creatives). Other labels kept.\",\n args: { id: schemaId(\"Label id\"), \"account-id\": accountArg, ...targetArgs },\n run: async (args, rawArgs) => {\n await stageLabelChange(\"removeLabels\", args, rawArgs);\n },\n});\n"],"mappings":"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","names":[]}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
nodeParamsPreview
|
|
3
|
-
} from "./chunk-NPMAATZG.js";
|
|
4
1
|
import {
|
|
5
2
|
outputRatioWarningsFor,
|
|
6
3
|
shownBaseline,
|
|
7
4
|
shownVersion
|
|
8
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6NCJGU6I.js";
|
|
6
|
+
import {
|
|
7
|
+
nodeParamsPreview
|
|
8
|
+
} from "./chunk-C7NWUCLQ.js";
|
|
9
9
|
import {
|
|
10
10
|
waitForSheet
|
|
11
11
|
} from "./chunk-WN4KX7GE.js";
|
|
12
12
|
import {
|
|
13
13
|
fetchBrandLogo
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-DCBZ5CHZ.js";
|
|
15
15
|
import {
|
|
16
16
|
advanceDefinitionStatus
|
|
17
17
|
} from "./chunk-3ACMDRSE.js";
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
variantImage,
|
|
37
37
|
versionRun,
|
|
38
38
|
writeSeriesMemberCanvas
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-FVHJCERJ.js";
|
|
40
40
|
import {
|
|
41
41
|
buildFailedRunRecord,
|
|
42
42
|
buildInitialRunRecord,
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
finalOutputLabelsFromCanvas,
|
|
47
47
|
nodeOutputsToRecord,
|
|
48
48
|
withFacts
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-ZJSGGJ5R.js";
|
|
50
50
|
import {
|
|
51
51
|
clearLegacyDirtyMarker,
|
|
52
52
|
readRenderState,
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
recordReviewOutcome,
|
|
56
56
|
recordSeriesLeadRun,
|
|
57
57
|
recordSnapshot
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-3W6G6ARX.js";
|
|
59
59
|
import {
|
|
60
60
|
BRAND_LOGO_ROLE,
|
|
61
61
|
CLAIMS_MODEL,
|
|
@@ -85,7 +85,7 @@ import {
|
|
|
85
85
|
uncastPeople,
|
|
86
86
|
wireNamedPeople,
|
|
87
87
|
wireProofBadges
|
|
88
|
-
} from "./chunk-
|
|
88
|
+
} from "./chunk-KOXDXSKN.js";
|
|
89
89
|
import {
|
|
90
90
|
ViewerAnswerSchema,
|
|
91
91
|
describeViewer,
|
|
@@ -105,10 +105,10 @@ import {
|
|
|
105
105
|
viewerCheckBeforeRender,
|
|
106
106
|
viewerCheckSkip,
|
|
107
107
|
viewerChecksSpent
|
|
108
|
-
} from "./chunk-
|
|
108
|
+
} from "./chunk-GSZZLW5Q.js";
|
|
109
109
|
import {
|
|
110
110
|
heldRules
|
|
111
|
-
} from "./chunk-
|
|
111
|
+
} from "./chunk-LXQB4ZGE.js";
|
|
112
112
|
import {
|
|
113
113
|
readAvatars,
|
|
114
114
|
writeAvatars
|
|
@@ -142,7 +142,7 @@ import {
|
|
|
142
142
|
resolveConcurrency,
|
|
143
143
|
sizeDifferenceFinding,
|
|
144
144
|
ulid
|
|
145
|
-
} from "./chunk-
|
|
145
|
+
} from "./chunk-JVH5A3XC.js";
|
|
146
146
|
import {
|
|
147
147
|
BackendClient,
|
|
148
148
|
LOGO_COMPOSITE_ROLE,
|
|
@@ -177,7 +177,7 @@ import {
|
|
|
177
177
|
staticMasterFormat,
|
|
178
178
|
textColourSource,
|
|
179
179
|
usesTextColour
|
|
180
|
-
} from "./chunk-
|
|
180
|
+
} from "./chunk-JQH5VG6F.js";
|
|
181
181
|
import {
|
|
182
182
|
bytesOf,
|
|
183
183
|
judgeWinner,
|
|
@@ -223,7 +223,7 @@ import {
|
|
|
223
223
|
} from "./chunk-MCJ5I5LR.js";
|
|
224
224
|
import {
|
|
225
225
|
describeMarket
|
|
226
|
-
} from "./chunk-
|
|
226
|
+
} from "./chunk-2WZI36D3.js";
|
|
227
227
|
import {
|
|
228
228
|
LayerExecutionError,
|
|
229
229
|
RunAbortedError,
|
|
@@ -3865,4 +3865,4 @@ export {
|
|
|
3865
3865
|
executeCanvasRun,
|
|
3866
3866
|
buildBackendClient
|
|
3867
3867
|
};
|
|
3868
|
-
//# sourceMappingURL=chunk-
|
|
3868
|
+
//# sourceMappingURL=chunk-UNX6BS4U.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
parseRefExpr
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JQH5VG6F.js";
|
|
4
4
|
import {
|
|
5
5
|
collectAssetRefLikes,
|
|
6
6
|
isPersistedAssetRef
|
|
@@ -164,4 +164,4 @@ export {
|
|
|
164
164
|
buildInitialRunRecord,
|
|
165
165
|
buildFailedRunRecord
|
|
166
166
|
};
|
|
167
|
-
//# sourceMappingURL=chunk-
|
|
167
|
+
//# sourceMappingURL=chunk-ZJSGGJ5R.js.map
|
package/dist/cli.js
CHANGED
|
@@ -115,34 +115,34 @@ Introspection: Run 'baker schema <command>' to inspect argument schemas.`
|
|
|
115
115
|
capabilities: () => import("./capabilities-2KT6TCGZ.js").then((m) => m.capabilitiesCommand),
|
|
116
116
|
actions: () => import("./actions-HNLISA7T.js").then((m) => m.actionsCommand),
|
|
117
117
|
"scheduled-agents": () => import("./scheduled-agents-FCQHQ6KR.js").then((m) => m.scheduledAgentsCommand),
|
|
118
|
-
ads: () => import("./ads-
|
|
118
|
+
ads: () => import("./ads-QIKZ6O2N.js").then((m) => m.adsCommand),
|
|
119
119
|
brand: () => import("./brand-T3OACVQX.js").then((m) => m.brandCommand),
|
|
120
|
-
analytics: () => import("./analytics-
|
|
121
|
-
experiment: () => import("./experiment-
|
|
122
|
-
ga4: () => import("./ga4-
|
|
123
|
-
gsc: () => import("./gsc-
|
|
124
|
-
research: () => import("./research-
|
|
120
|
+
analytics: () => import("./analytics-ALOZ7ZZ4.js").then((m) => m.analyticsCommand),
|
|
121
|
+
experiment: () => import("./experiment-7N4QFRWV.js").then((m) => m.experimentCommand),
|
|
122
|
+
ga4: () => import("./ga4-LPDIBNYP.js").then((m) => m.ga4Command),
|
|
123
|
+
gsc: () => import("./gsc-FIZTQX3N.js").then((m) => m.gscCommand),
|
|
124
|
+
research: () => import("./research-JHDWWFL7.js").then((m) => m.researchCommand),
|
|
125
125
|
decide: () => import("./decide-TWKH5QQU.js").then((m) => m.decideCommand),
|
|
126
|
-
creatives: () => import("./creatives-
|
|
127
|
-
flows: () => import("./flows-
|
|
128
|
-
funnel: () => import("./funnel-
|
|
129
|
-
images: () => import("./images-
|
|
130
|
-
studio: () => import("./studio-
|
|
131
|
-
avatars: () => import("./avatars-
|
|
132
|
-
landing: () => import("./landing-
|
|
133
|
-
videos: () => import("./videos-
|
|
134
|
-
testimonials: () => import("./testimonials-
|
|
135
|
-
canvas: () => import("./canvas-
|
|
126
|
+
creatives: () => import("./creatives-PCAGWPW3.js").then((m) => m.creativesCommand),
|
|
127
|
+
flows: () => import("./flows-T22B77J3.js").then((m) => m.flowsCommand),
|
|
128
|
+
funnel: () => import("./funnel-7OA33VRP.js").then((m) => m.funnelCommand),
|
|
129
|
+
images: () => import("./images-WBNWK2ZH.js").then((m) => m.imagesCommand),
|
|
130
|
+
studio: () => import("./studio-ZLCGXFAN.js").then((m) => m.studioCommand),
|
|
131
|
+
avatars: () => import("./avatars-YSFFRHDK.js").then((m) => m.avatarsCommand),
|
|
132
|
+
landing: () => import("./landing-Y6QCTXCZ.js").then((m) => m.landingCommand),
|
|
133
|
+
videos: () => import("./videos-XMTDEHEJ.js").then((m) => m.videosCommand),
|
|
134
|
+
testimonials: () => import("./testimonials-GR6TIS5S.js").then((m) => m.testimonialsCommand),
|
|
135
|
+
canvas: () => import("./canvas-SVJEQO4V.js").then((m) => m.canvasCommand),
|
|
136
136
|
tags: () => import("./tags-B473RWAA.js").then((m) => m.tagsCommand),
|
|
137
|
-
"tag-manager": () => import("./tag-manager-
|
|
138
|
-
chats: () => import("./chats-
|
|
137
|
+
"tag-manager": () => import("./tag-manager-3CJ66GKJ.js").then((m) => m.tagManagerCommand),
|
|
138
|
+
chats: () => import("./chats-QG72JB6Y.js").then((m) => m.chatsCommand),
|
|
139
139
|
history: () => import("./history-YMK2JNZU.js").then((m) => m.historyCommand),
|
|
140
140
|
credentials: () => import("./credentials-YTQ6BHWV.js").then((m) => m.credentialsCommand),
|
|
141
141
|
hubspot: () => import("./hubspot-BUFS7S33.js").then((m) => m.hubspotCommand),
|
|
142
142
|
activecampaign: () => import("./activecampaign-I5CILZPU.js").then((m) => m.activecampaignCommand),
|
|
143
143
|
accounts: () => import("./accounts-RTN5ZGTU.js").then((m) => m.accountsCommand),
|
|
144
|
-
"winning-ads": () => import("./winning-ads-
|
|
145
|
-
"media-sources": () => import("./media-sources-
|
|
144
|
+
"winning-ads": () => import("./winning-ads-QOAYIR5U.js").then((m) => m.winningAdsCommand),
|
|
145
|
+
"media-sources": () => import("./media-sources-EZKAJNVD.js").then((m) => m.mediaSourcesCommand),
|
|
146
146
|
site: () => import("./site-PZPJY33N.js").then((m) => m.siteCommand),
|
|
147
147
|
mcp: () => import("./mcp-RKAXC6IP.js").then((m) => m.mcpCommand),
|
|
148
148
|
"setup-links": () => import("./setup-links-QVI6NAOK.js").then((m) => m.setupLinksCommand),
|
|
@@ -11,9 +11,9 @@ import {
|
|
|
11
11
|
unpickedSteps,
|
|
12
12
|
unwiredHubspotForms,
|
|
13
13
|
unwiredSideEffects
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-IJ22WP3G.js";
|
|
14
|
+
} from "./chunk-D4CKCNGW.js";
|
|
16
15
|
import "./chunk-MXH35PJ5.js";
|
|
16
|
+
import "./chunk-IJ22WP3G.js";
|
|
17
17
|
import "./chunk-TP7HKSBX.js";
|
|
18
18
|
import "./chunk-66QHX566.js";
|
|
19
19
|
import "./chunk-GXDLWBOY.js";
|
|
@@ -39,4 +39,4 @@ export {
|
|
|
39
39
|
unwiredHubspotForms,
|
|
40
40
|
unwiredSideEffects
|
|
41
41
|
};
|
|
42
|
-
//# sourceMappingURL=connect-
|
|
42
|
+
//# sourceMappingURL=connect-S54TJ6OV.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
lowerArg,
|
|
4
4
|
schemaArgs,
|
|
5
5
|
stageChatgptOp
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AQM4JH62.js";
|
|
7
7
|
import {
|
|
8
8
|
CHATGPT_ADS_REFERENCE,
|
|
9
9
|
runChatgptRead
|
|
@@ -117,4 +117,4 @@ export {
|
|
|
117
117
|
conversionsCreateCommand,
|
|
118
118
|
conversionsEventsCommand
|
|
119
119
|
};
|
|
120
|
-
//# sourceMappingURL=conversion-writes-
|
|
120
|
+
//# sourceMappingURL=conversion-writes-ECZBVY7D.js.map
|
|
@@ -61,8 +61,8 @@ Examples:
|
|
|
61
61
|
},
|
|
62
62
|
subCommands: {
|
|
63
63
|
list: conversionsListCommand,
|
|
64
|
-
create: () => import("./conversion-writes-
|
|
65
|
-
events: () => import("./conversion-writes-
|
|
64
|
+
create: () => import("./conversion-writes-ECZBVY7D.js").then((m) => m.conversionsCreateCommand),
|
|
65
|
+
events: () => import("./conversion-writes-ECZBVY7D.js").then((m) => m.conversionsEventsCommand),
|
|
66
66
|
report: () => import("./conversion-report-REOHVLCI.js").then((m) => m.conversionsReportCommand)
|
|
67
67
|
},
|
|
68
68
|
// A parent must never declare `run`: citty falls through to it after the matched subcommand.
|
|
@@ -73,4 +73,4 @@ export {
|
|
|
73
73
|
conversionHints,
|
|
74
74
|
conversionsCommand
|
|
75
75
|
};
|
|
76
|
-
//# sourceMappingURL=conversions-
|
|
76
|
+
//# sourceMappingURL=conversions-5QCSCRLI.js.map
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import {
|
|
2
|
+
command
|
|
3
|
+
} from "./chunk-SVAB6KV5.js";
|
|
4
|
+
import {
|
|
5
|
+
bareAccountId,
|
|
6
|
+
failWriteValidation,
|
|
7
|
+
parseDateFlag,
|
|
8
|
+
requireTarget,
|
|
9
|
+
stageOp,
|
|
10
|
+
upper
|
|
11
|
+
} from "./chunk-5C35OW7L.js";
|
|
12
|
+
import "./chunk-A4MVVPJ2.js";
|
|
13
|
+
import "./chunk-HLVRHBKL.js";
|
|
14
|
+
import "./chunk-QTOZ32SU.js";
|
|
15
|
+
import "./chunk-ERSX3MKH.js";
|
|
16
|
+
import "./chunk-SFJW2KED.js";
|
|
17
|
+
import "./chunk-4NZ47VXO.js";
|
|
18
|
+
import "./chunk-D5FY4FAK.js";
|
|
19
|
+
import "./chunk-FNA277HP.js";
|
|
20
|
+
import "./chunk-SWL4AAPP.js";
|
|
21
|
+
import "./chunk-5WMTPYKT.js";
|
|
22
|
+
import "./chunk-23H4ZJRP.js";
|
|
23
|
+
import "./chunk-DWX44QL6.js";
|
|
24
|
+
import "./chunk-2FSEESJU.js";
|
|
25
|
+
import "./chunk-CVBKW75S.js";
|
|
26
|
+
import "./chunk-BLAHHMPF.js";
|
|
27
|
+
import "./chunk-XQIOCIDO.js";
|
|
28
|
+
import "./chunk-XDZVBX6L.js";
|
|
29
|
+
import "./chunk-N5O67GK5.js";
|
|
30
|
+
import "./chunk-EE72SSB2.js";
|
|
31
|
+
import "./chunk-WNSE7N75.js";
|
|
32
|
+
import "./chunk-YQSBHWOI.js";
|
|
33
|
+
|
|
34
|
+
// src/commands/ads/meta/copy-writes.ts
|
|
35
|
+
var STATUS_WORDS = {
|
|
36
|
+
PAUSED: "PAUSED",
|
|
37
|
+
ACTIVE: "ACTIVE",
|
|
38
|
+
INHERITED: "INHERITED_FROM_SOURCE",
|
|
39
|
+
INHERITED_FROM_SOURCE: "INHERITED_FROM_SOURCE",
|
|
40
|
+
SAME: "INHERITED_FROM_SOURCE"
|
|
41
|
+
};
|
|
42
|
+
var RENAME_WORDS = {
|
|
43
|
+
TOP: "ONLY_TOP_LEVEL_RENAME",
|
|
44
|
+
ONLY_TOP_LEVEL_RENAME: "ONLY_TOP_LEVEL_RENAME",
|
|
45
|
+
DEEP: "DEEP_RENAME",
|
|
46
|
+
ALL: "DEEP_RENAME",
|
|
47
|
+
DEEP_RENAME: "DEEP_RENAME",
|
|
48
|
+
NONE: "NO_RENAME",
|
|
49
|
+
NO_RENAME: "NO_RENAME"
|
|
50
|
+
};
|
|
51
|
+
function mapped(words, value, flag, allowed) {
|
|
52
|
+
const key = upper(value);
|
|
53
|
+
if (key === void 0) {
|
|
54
|
+
return void 0;
|
|
55
|
+
}
|
|
56
|
+
const word = words[key];
|
|
57
|
+
if (!word) {
|
|
58
|
+
failWriteValidation(`${flag} takes ${allowed}`);
|
|
59
|
+
}
|
|
60
|
+
return word;
|
|
61
|
+
}
|
|
62
|
+
function copyPayloadFromFlags(level, args) {
|
|
63
|
+
const payload = {
|
|
64
|
+
source_id: args.id,
|
|
65
|
+
status_option: mapped(STATUS_WORDS, args.status, "--status", "PAUSED, ACTIVE or INHERITED"),
|
|
66
|
+
rename_strategy: mapped(RENAME_WORDS, args.rename, "--rename", "top, deep or none"),
|
|
67
|
+
rename_prefix: args["rename-prefix"],
|
|
68
|
+
rename_suffix: args["rename-suffix"]
|
|
69
|
+
};
|
|
70
|
+
if (level !== "ad") {
|
|
71
|
+
payload.deep_copy = args.deep === true ? true : void 0;
|
|
72
|
+
payload.start_time = parseDateFlag(args.start, "--start");
|
|
73
|
+
payload.end_time = parseDateFlag(args.end, "--end");
|
|
74
|
+
}
|
|
75
|
+
if (level === "adSet") {
|
|
76
|
+
payload.campaign_id = args["to-campaign"];
|
|
77
|
+
}
|
|
78
|
+
if (level === "ad") {
|
|
79
|
+
payload.adset_id = args["to-adset"];
|
|
80
|
+
}
|
|
81
|
+
return Object.fromEntries(Object.entries(payload).filter(([, value]) => value !== void 0));
|
|
82
|
+
}
|
|
83
|
+
var accountArg = { type: "string", description: "Meta ad account ID (act_123)" };
|
|
84
|
+
var naming = {
|
|
85
|
+
status: {
|
|
86
|
+
type: "string",
|
|
87
|
+
description: "PAUSED (default) | ACTIVE \u2014 the copy delivers and spends once published | INHERITED \u2014 the original's"
|
|
88
|
+
},
|
|
89
|
+
rename: {
|
|
90
|
+
type: "string",
|
|
91
|
+
description: "top (default: only the copied object is renamed) | deep (its ad sets and ads too) | none"
|
|
92
|
+
},
|
|
93
|
+
"rename-prefix": { type: "string", description: "Put this before each renamed name" },
|
|
94
|
+
"rename-suffix": {
|
|
95
|
+
type: "string",
|
|
96
|
+
description: `Put this after each renamed name instead of Meta's " - Copy" (in the account's language)`
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
var schedule = {
|
|
100
|
+
start: { type: "string", description: "When the copied ad sets start (ISO date or datetime); else the original's" },
|
|
101
|
+
end: { type: "string", description: "When the copied ad sets end; else the original's" }
|
|
102
|
+
};
|
|
103
|
+
var WHEN_TO_COPY = `copy is Meta's own copy: it keeps everything Meta holds \u2014 creatives, placements, every setting Baker cannot read back \u2014 and, with --deep, everything underneath. Use \`duplicate\` instead when the copy must differ in the same step (a new name, budget or targeting); or copy, then change the copy by its ref (\`adsets update <ref> --daily-budget 30\`), which applies once Meta has made it.`;
|
|
104
|
+
function copyArgs(level, label) {
|
|
105
|
+
const args = {
|
|
106
|
+
id: { type: "positional", description: `${label} id to copy (a published one)`, required: true },
|
|
107
|
+
"account-id": accountArg
|
|
108
|
+
};
|
|
109
|
+
if (level !== "ad") {
|
|
110
|
+
const children = level === "campaign" ? "ad sets and ads" : "ads";
|
|
111
|
+
args.deep = { type: "boolean", description: `Copy its ${children} too (Meta copies at most 51 ads in one go)` };
|
|
112
|
+
}
|
|
113
|
+
if (level === "adSet") {
|
|
114
|
+
args["to-campaign"] = {
|
|
115
|
+
type: "string",
|
|
116
|
+
description: "Campaign id or meta_temp_* ref to put the copy in; else beside the original"
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
if (level === "ad") {
|
|
120
|
+
args["to-adset"] = {
|
|
121
|
+
type: "string",
|
|
122
|
+
description: "Ad set id or meta_temp_* ref to put the copy in; else beside the original"
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
Object.assign(args, naming, level === "ad" ? {} : schedule);
|
|
126
|
+
return args;
|
|
127
|
+
}
|
|
128
|
+
function copyCommand(level, input) {
|
|
129
|
+
return command({
|
|
130
|
+
schema: `ads.meta.${input.family}.copy`,
|
|
131
|
+
name: "copy",
|
|
132
|
+
description: `Stage Meta's own copy of a ${input.label}${level === "ad" ? "" : " (with --deep, of everything under it)"}, paused unless --status. Prints a meta_temp_* ref for the copy that later changes in this chat can name. ${WHEN_TO_COPY}
|
|
133
|
+
Example: ${input.extra}`,
|
|
134
|
+
schemaDescription: `Stage a copy of a Meta ${input.label} through Meta's copies edge \u2014 applied at publish; the copy's ref resolves to its new id.`,
|
|
135
|
+
args: copyArgs(level, input.label),
|
|
136
|
+
run: async (args) => {
|
|
137
|
+
requireTarget(args, input.label);
|
|
138
|
+
await stageOp({
|
|
139
|
+
kind: `${level}.copy`,
|
|
140
|
+
accountId: bareAccountId(args),
|
|
141
|
+
payload: copyPayloadFromFlags(level, args)
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
var campaignsCopyCommand = copyCommand("campaign", {
|
|
147
|
+
family: "campaigns",
|
|
148
|
+
label: "campaign",
|
|
149
|
+
extra: 'baker ads meta campaigns copy 6123 --deep --rename-suffix " \u2013 Q4" --start 2026-11-01'
|
|
150
|
+
});
|
|
151
|
+
var adSetsCopyCommand = copyCommand("adSet", {
|
|
152
|
+
family: "adsets",
|
|
153
|
+
label: "ad set",
|
|
154
|
+
extra: "baker ads meta adsets copy 6124 --deep --to-campaign meta_temp_ab12"
|
|
155
|
+
});
|
|
156
|
+
var adsCopyCommand = copyCommand("ad", {
|
|
157
|
+
family: "ads",
|
|
158
|
+
label: "ad",
|
|
159
|
+
extra: "baker ads meta ads copy 6125 --to-adset 6130"
|
|
160
|
+
});
|
|
161
|
+
export {
|
|
162
|
+
adSetsCopyCommand,
|
|
163
|
+
adsCopyCommand,
|
|
164
|
+
campaignsCopyCommand,
|
|
165
|
+
copyPayloadFromFlags
|
|
166
|
+
};
|
|
167
|
+
//# sourceMappingURL=copy-writes-D2RTHAL6.js.map
|