@koda-sl/baker-cli 0.573.0 → 0.574.0-dev.19539e5a8
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 +1 -1
- package/dist/account-H6OOCEE3.js +82 -0
- package/dist/account-JVDP5ERG.js +82 -0
- package/dist/account-reads-OQCA5LEM.js +219 -0
- package/dist/account-users-VBPW6FPY.js +64 -0
- package/dist/account-writes-KEXINJ5D.js +68 -0
- package/dist/accounts-CNWJYCUV.js +80 -0
- package/dist/accounts-M5SCXY6W.js +713 -0
- package/dist/accounts-QR6OQ3GC.js +119 -0
- package/dist/actions-6DC3FUQF.js +55 -0
- package/dist/activecampaign-YMVIS6EN.js +938 -0
- package/dist/ad-group-writes-SVR4RCKB.js +172 -0
- package/dist/ad-groups-C726HUXS.js +70 -0
- package/dist/ad-writes-RWJIWGEL.js +176 -0
- package/dist/add-ITTW4LQC.js +305 -0
- package/dist/add-QZHZIAVE.js +107 -0
- package/dist/ads-3KK7VQPU.js +79 -0
- package/dist/ads-UZ355BQS.js +48 -0
- package/dist/advertisers-Z2WLSJEC.js +123 -0
- package/dist/analytics-64DI3ZJL.js +2437 -0
- package/dist/analytics-GILIREA3.js +447 -0
- package/dist/animate-GTUI7XX4.js +480 -0
- package/dist/assign-6RI3EC7U.js +80 -0
- package/dist/audience-size-M6NORPEU.js +76 -0
- package/dist/audiences-6L43K2T2.js +280 -0
- package/dist/audit-CPEOJSCV.js +154 -0
- package/dist/autocomplete-DCCI3W5Y.js +114 -0
- package/dist/avatars-GDRSOS6V.js +38 -0
- package/dist/bid-pricing-FQ6VJSH6.js +103 -0
- package/dist/brand-6TUMI2GH.js +22 -0
- package/dist/brief-U6ZT5UYG.js +543 -0
- package/dist/campaign-groups-RTP2MKNJ.js +99 -0
- package/dist/campaign-writes-4NVY7S4U.js +168 -0
- package/dist/campaign-writes-FUIGN5OR.js +176 -0
- package/dist/campaigns-7ZVVYTBM.js +113 -0
- package/dist/campaigns-CCDJKV7I.js +111 -0
- package/dist/campaigns-N2SWSBYT.js +78 -0
- package/dist/canvas-UYRDIRPR.js +46 -0
- package/dist/capabilities-4KGVNK4Q.js +147 -0
- package/dist/catalog-JICUCAJZ.js +66 -0
- package/dist/catalogs-G5NOKL4L.js +130 -0
- package/dist/changes-AS4RVEAL.js +167 -0
- package/dist/chatgpt-O6EEAYLF.js +47 -0
- package/dist/chats-JNL4L6GZ.js +589 -0
- package/dist/check-EXT5WAYI.js +107 -0
- package/dist/chunk-2NOFIV6M.js +5368 -0
- package/dist/chunk-3QLGV4XN.js +604 -0
- package/dist/chunk-3QNSGFE2.js +103 -0
- package/dist/chunk-5CH2JQCA.js +547 -0
- package/dist/chunk-5LEIUG5H.js +399 -0
- package/dist/chunk-5N77IAOT.js +7901 -0
- package/dist/chunk-5N77IAOT.js.map +1 -0
- package/dist/chunk-5NMKNHJI.js +46 -0
- package/dist/chunk-66LB37BF.js +455 -0
- package/dist/chunk-6D7WTUF3.js +98 -0
- package/dist/chunk-6OIKNJ7G.js +26 -0
- package/dist/chunk-6RWLCOAH.js +334 -0
- package/dist/chunk-6TNRSWNA.js +207 -0
- package/dist/chunk-7YXBMYSM.js +91 -0
- package/dist/chunk-A6LOIUWB.js +51 -0
- package/dist/chunk-AUDVBN6H.js +8985 -0
- package/dist/chunk-AUDVBN6H.js.map +1 -0
- package/dist/chunk-BBS5VXLK.js +91 -0
- package/dist/chunk-BPDUE3MT.js +312 -0
- package/dist/chunk-C3XJ46C2.js +203 -0
- package/dist/chunk-CC42TKFH.js +19 -0
- package/dist/chunk-CFF7VAOQ.js +142 -0
- package/dist/chunk-CUTTTFAU.js +783 -0
- package/dist/chunk-D32EWSMB.js +150 -0
- package/dist/chunk-EDZDYB3C.js +23 -0
- package/dist/chunk-ELFZ63XY.js +392 -0
- package/dist/chunk-EM5R3BYC.js +131 -0
- package/dist/chunk-F3CZFUXZ.js +3187 -0
- package/dist/chunk-F3CZFUXZ.js.map +1 -0
- package/dist/chunk-F5VR6HSI.js +170 -0
- package/dist/chunk-FE2MFNVT.js +5471 -0
- package/dist/chunk-FLZNYVMN.js +2235 -0
- package/dist/chunk-FLZNYVMN.js.map +1 -0
- package/dist/chunk-FPYMFYML.js +468 -0
- package/dist/chunk-FWYWLEDP.js +755 -0
- package/dist/chunk-G4TPYA7F.js +454 -0
- package/dist/chunk-GRX3JXSR.js +843 -0
- package/dist/chunk-H423YXYY.js +249 -0
- package/dist/chunk-IMS53EQU.js +4277 -0
- package/dist/chunk-IMS53EQU.js.map +1 -0
- package/dist/chunk-J4AWNWKN.js +1919 -0
- package/dist/chunk-JLAFNORO.js +285 -0
- package/dist/chunk-JQYB2DS3.js +197 -0
- package/dist/chunk-JYOP6YVT.js +66 -0
- package/dist/chunk-KOKPQE4N.js +494 -0
- package/dist/chunk-KTX7QAKP.js +831 -0
- package/dist/chunk-KTX7QAKP.js.map +1 -0
- package/dist/chunk-LAMSUL26.js +1518 -0
- package/dist/chunk-LYGZBNSC.js +224 -0
- package/dist/chunk-NI5R6Y24.js +89 -0
- package/dist/chunk-NOCBNING.js +638 -0
- package/dist/chunk-OEO2NSNC.js +297 -0
- package/dist/chunk-OZNBVJGC.js +220 -0
- package/dist/chunk-PYZVVMF4.js +430 -0
- package/dist/chunk-QGAUDVMR.js +148 -0
- package/dist/chunk-QZ4YHQLW.js +63 -0
- package/dist/chunk-RIIMF75G.js +64 -0
- package/dist/chunk-RUMHZX5N.js +225 -0
- package/dist/chunk-S36WWACM.js +3510 -0
- package/dist/chunk-SHYUXLE5.js +61 -0
- package/dist/chunk-SIKCVWM3.js +76 -0
- package/dist/chunk-SNVAE572.js +167 -0
- package/dist/chunk-UVUY6FLV.js +1254 -0
- package/dist/chunk-UZVFXGMS.js +930 -0
- package/dist/chunk-V4HS5JRL.js +1320 -0
- package/dist/chunk-VCG3Q3O4.js +479 -0
- package/dist/chunk-VKIKIN5U.js +1920 -0
- package/dist/chunk-VZIYTP3X.js +163 -0
- package/dist/chunk-WEBWXSFF.js +169 -0
- package/dist/chunk-WOHTTXLG.js +57 -0
- package/dist/chunk-WZXMZFVB.js +238 -0
- package/dist/chunk-X7USE7IA.js +24026 -0
- package/dist/chunk-X7USE7IA.js.map +1 -0
- package/dist/chunk-XY7W6MQN.js +274 -0
- package/dist/chunk-YEQTBPEB.js +344 -0
- package/dist/chunk-YHBMCP6C.js +156 -0
- package/dist/chunk-YJEG6TQ3.js +685 -0
- package/dist/chunk-YQYCWYFJ.js +962 -0
- package/dist/claim-4LKB2Z6T.js +200 -0
- package/dist/cli.js +32 -32
- package/dist/companies-KCHDEHAA.js +198 -0
- package/dist/company-C2Y7LY5H.js +308 -0
- package/dist/complete-MNN3PAZE.js +84 -0
- package/dist/connect-IABMKFGA.js +45 -0
- package/dist/conversation-FETU4KTF.js +96 -0
- package/dist/conversion-report-33SG7SHU.js +127 -0
- package/dist/conversion-upload-command-DWIGVHQZ.js +439 -0
- package/dist/conversion-writes-XGGTBML5.js +122 -0
- package/dist/conversions-PPP4QK7U.js +78 -0
- package/dist/conversions-S3WIR5R4.js +140 -0
- package/dist/create-A3ZIQVIH.js +239 -0
- package/dist/create-ESKBBBJX.js +135 -0
- package/dist/create-U2ITO4RV.js +218 -0
- package/dist/create-VNYTZJ4T.js +62 -0
- package/dist/creatives-WSCRC5GO.js +58 -0
- package/dist/creatives-XO5E4AIC.js +229 -0
- package/dist/credentials-ZV66ZUCK.js +290 -0
- package/dist/critique-ODWLA52C.js +1451 -0
- package/dist/critique-X3433R5M.js +232 -0
- package/dist/crm-WPPM2R7I.js +323 -0
- package/dist/crm-XPIQAGH7.js +229 -0
- package/dist/currency-HK2ZW2VW.js +88 -0
- package/dist/customers-GCM7WZII.js +65 -0
- package/dist/delete-GAIV2YVD.js +69 -0
- package/dist/delete-RVJLATPO.js +57 -0
- package/dist/delete-VJ5QXKZR.js +67 -0
- package/dist/demographics-XWIW3YJF.js +141 -0
- package/dist/discard-TWX2CQF5.js +69 -0
- package/dist/discover-Q5PAOIQQ.js +172 -0
- package/dist/domain-FE32BE2E.js +101 -0
- package/dist/download-5FYHTIGR.js +172 -0
- package/dist/draft-5VLO5UYZ.js +332 -0
- package/dist/draft-L2NXCIYT.js +315 -0
- package/dist/draft-L757UIW5.js +374 -0
- package/dist/draft-WK4PEMB6.js +614 -0
- package/dist/draft-ZCP3MIV6.js +220 -0
- package/dist/engine/index.js +8 -8
- package/dist/experiments-DVR7WBGQ.js +236 -0
- package/dist/extract-JM6FAWAS.js +143 -0
- package/dist/facets-IEQJK5AW.js +117 -0
- package/dist/feedback-QUJ2V4WD.js +114 -0
- package/dist/feedback-SSCN7LEP.js +115 -0
- package/dist/feedback-record-P6WK4UPP.js +269 -0
- package/dist/fetch-Q6BIDVN5.js +204 -0
- package/dist/fit-XLK5LDPS.js +65 -0
- package/dist/flows-QVGZEYCH.js +340 -0
- package/dist/fonts-GARRSRIB.js +39 -0
- package/dist/forecast-GEYNZ5PQ.js +121 -0
- package/dist/forecast-THQNGKPE.js +169 -0
- package/dist/funnel-OABL4MLZ.js +397 -0
- package/dist/generate-Y4NJEYIH.js +263 -0
- package/dist/get-63KQ62KN.js +82 -0
- package/dist/get-RDGC3QA5.js +62 -0
- package/dist/google-32BCQC7C.js +163 -0
- package/dist/google-VYCMEWUL.js +3300 -0
- package/dist/google-ads-PCXGVHZV.js +198 -0
- package/dist/history-J7ANCPWY.js +153 -0
- package/dist/history-NX67UIZ7.js +102 -0
- package/dist/history-VKRYKQ4C.js +69 -0
- package/dist/hubspot-Z3J3JBEH.js +814 -0
- package/dist/ideas-22I7JTI7.js +45 -0
- package/dist/images-3C4Y6RWL.js +92 -0
- package/dist/ingest-CFH2MPSF.js +131 -0
- package/dist/ingest-VXX2Y76C.js +28 -0
- package/dist/insights-3IPSEBYW.js +132 -0
- package/dist/inspect-LDXPOGGH.js +192 -0
- package/dist/intent-ZM4K623V.js +95 -0
- package/dist/keyword-gap-FAAF2I6V.js +130 -0
- package/dist/keyword-metrics-E36SMZSP.js +200 -0
- package/dist/keywords-for-site-AWGWDXZA.js +131 -0
- package/dist/landing-PVTDVL22.js +28 -0
- package/dist/languages-ZGDTERIQ.js +40 -0
- package/dist/leads-XC3C5HGC.js +115 -0
- package/dist/learn-NYRL53NQ.js +207 -0
- package/dist/line-item-writes-LMSYCR6G.js +211 -0
- package/dist/line-items-P24SOGVZ.js +107 -0
- package/dist/link-H3TTWJJO.js +67 -0
- package/dist/linkedin-57JHH7QN.js +1344 -0
- package/dist/linkedin-person-HKKIE32Q.js +139 -0
- package/dist/list-KHCFVTQU.js +154 -0
- package/dist/list-LC2GRYEI.js +67 -0
- package/dist/list-UCTFATXS.js +306 -0
- package/dist/locations-A65MFB7Q.js +69 -0
- package/dist/locations-WN6B3IJK.js +40 -0
- package/dist/log-SLYCPRCY.js +95 -0
- package/dist/make-HTCPU6HU.js +1367 -0
- package/dist/map-237LQ5N5.js +445 -0
- package/dist/mcp-GX5TOO7Y.js +729 -0
- package/dist/media-sources-ODNIS7A5.js +35 -0
- package/dist/members-TYQKWR7Z.js +47 -0
- package/dist/metrics-3U3ZO2RF.js +152 -0
- package/dist/models-VOSJJFO2.js +155 -0
- package/dist/normalize-MDTMKLYO.js +144 -0
- package/dist/options-MEADUZY3.js +125 -0
- package/dist/organization-BXJSHRZG.js +949 -0
- package/dist/performance-CU65TLCB.js +5565 -0
- package/dist/performance-IGCOP5VH.js +27 -0
- package/dist/pixels-U6UA662G.js +62 -0
- package/dist/preview-YQ6P5A53.js +101 -0
- package/dist/promoted-tweet-writes-X2CUNBU2.js +183 -0
- package/dist/promoted-tweets-G2NOW5OF.js +119 -0
- package/dist/publish-YPCXCU4P.js +350 -0
- package/dist/query-SAQADBM2.js +62 -0
- package/dist/reddit-XMAGZMD4.js +29 -0
- package/dist/refresh-QIK3CXLV.js +97 -0
- package/dist/release-O7KGD5MI.js +63 -0
- package/dist/relevant-pages-KTSODNNW.js +99 -0
- package/dist/remove-7FAWM2H4.js +53 -0
- package/dist/reopen-4ZWEYNCI.js +66 -0
- package/dist/rerun-IDUKOW6Z.js +97 -0
- package/dist/research-SPFILN24.js +75 -0
- package/dist/research-Y5MSZH6T.js +265 -0
- package/dist/reset-4K7BXUY6.js +57 -0
- package/dist/reset-YSDYSZ64.js +57 -0
- package/dist/resolve-DD6ES7GJ.js +124 -0
- package/dist/retry-PZTS6KMQ.js +65 -0
- package/dist/retry-YAZ3JXYL.js +63 -0
- package/dist/revenue-PLJ46IYH.js +91 -0
- package/dist/rules-I4PL72J7.js +99 -0
- package/dist/rules-add-EFD2YSLH.js +465 -0
- package/dist/run-FN365AXZ.js +72 -0
- package/dist/run-WCFKVQQQ.js +69 -0
- package/dist/scaffold-ad-PI4IHOG5.js +1513 -0
- package/dist/scaffold-static-ad-RDOCRFEP.js +1012 -0
- package/dist/scaffold-video-HPRYTHE6.js +885 -0
- package/dist/schedule-NPZPVNSO.js +64 -0
- package/dist/scheduled-agents-5TNWITKB.js +55 -0
- package/dist/schema-PMVRMIRU.js +135 -0
- package/dist/search-BRANRGRU.js +177 -0
- package/dist/select-CLDJE7VJ.js +110 -0
- package/dist/set-prompt-7VHSKVO6.js +199 -0
- package/dist/setup-links-PAA7XYV5.js +144 -0
- package/dist/shopify-VWIRGI6H.js +4009 -0
- package/dist/site-Q3PMNJ2Z.js +180 -0
- package/dist/sources-4YHNM22P.js +30 -0
- package/dist/sources-BYMGSUPZ.js +457 -0
- package/dist/stale-WO6FTPLQ.js +90 -0
- package/dist/status-B2WRAPZO.js +65 -0
- package/dist/stock-BOOSUS2C.js +212 -0
- package/dist/studio-XLC37YGX.js +49 -0
- package/dist/sync-2QIPZFSK.js +57 -0
- package/dist/sync-definition-L52PGD7B.js +70 -0
- package/dist/tags-AIE4XEU2.js +227 -0
- package/dist/tags-DF6JNSNA.js +26 -0
- package/dist/tags-SWP4MXQO.js +23 -0
- package/dist/tags-VXHV4JWM.js +23 -0
- package/dist/tags-XYQUPA6M.js +23 -0
- package/dist/targeting-criteria-UYAEVSX3.js +113 -0
- package/dist/targets-XFL7CE7N.js +106 -0
- package/dist/testimonials-DTCPATQ2.js +32 -0
- package/dist/themes-HBWSZRFM.js +95 -0
- package/dist/top-companies-SCKUWYFG.js +111 -0
- package/dist/transcript-H7VSMOMV.js +165 -0
- package/dist/translate-LCLG4NYR.js +603 -0
- package/dist/triggers-HN3O2CNG.js +144 -0
- package/dist/unlink-B5CD7ZW6.js +70 -0
- package/dist/unstage-34W4OU5D.js +88 -0
- package/dist/update-2OTR4JQV.js +101 -0
- package/dist/update-3CKLLPYX.js +66 -0
- package/dist/update-6V2A4JGZ.js +192 -0
- package/dist/update-7FBCTLFP.js +155 -0
- package/dist/upload-72ARWDHN.js +137 -0
- package/dist/url-options-6WC2XQKB.js +131 -0
- package/dist/url-params-TAZ2S675.js +101 -0
- package/dist/validate-6F3JKVQV.js +135 -0
- package/dist/videos-UCUYPQNK.js +41 -0
- package/dist/viewer-check-XZYL55G6.js +83 -0
- package/dist/web-YYXQXIH4.js +173 -0
- package/dist/winning-ads-H3HCI5QT.js +86 -0
- package/dist/write-commands-DS7WNSYA.js +1524 -0
- package/dist/x-K4N6QIH2.js +47 -0
- package/package.json +1 -1
- package/dist/account-52WDLW4Z.js +0 -82
- package/dist/account-SGHH4SIM.js +0 -82
- package/dist/account-reads-CQIJCPCH.js +0 -219
- package/dist/account-users-KP6A43DU.js +0 -64
- package/dist/account-writes-3BJSUM2V.js +0 -68
- package/dist/accounts-FV5FPX3X.js +0 -80
- package/dist/accounts-LQFSNBIC.js +0 -713
- package/dist/accounts-ZV4IXOF5.js +0 -119
- package/dist/actions-RZ62K3WT.js +0 -55
- package/dist/activecampaign-E6PM6YNO.js +0 -938
- package/dist/ad-group-writes-KU4QMQZP.js +0 -172
- package/dist/ad-groups-NMW2G32A.js +0 -70
- package/dist/ad-writes-7NOFTOM4.js +0 -176
- package/dist/add-HMAQJG4J.js +0 -305
- package/dist/add-MLTE6PPC.js +0 -107
- package/dist/ads-P4Z3MLKS.js +0 -79
- package/dist/ads-T6J6QQKX.js +0 -48
- package/dist/advertisers-FP7MTMUI.js +0 -123
- package/dist/analytics-AYYFKMF6.js +0 -2437
- package/dist/analytics-D2IA2P5E.js +0 -447
- package/dist/animate-VX7E7KJE.js +0 -480
- package/dist/assign-EE4EDOPX.js +0 -80
- package/dist/audience-size-SRNH57FA.js +0 -76
- package/dist/audiences-P3SPTAJT.js +0 -280
- package/dist/audit-R5JG3ABY.js +0 -154
- package/dist/autocomplete-AIKXLHME.js +0 -114
- package/dist/avatars-3CAQ5OBN.js +0 -38
- package/dist/bid-pricing-PDZIJGOX.js +0 -103
- package/dist/brand-2SN7MM72.js +0 -22
- package/dist/brief-FPEBHIE3.js +0 -543
- package/dist/campaign-groups-OHL6POG2.js +0 -99
- package/dist/campaign-writes-P5XPFTRK.js +0 -176
- package/dist/campaign-writes-RKCE4MSZ.js +0 -168
- package/dist/campaigns-HGMQSYUM.js +0 -113
- package/dist/campaigns-SWZJVE2T.js +0 -78
- package/dist/campaigns-UWUEENB6.js +0 -111
- package/dist/canvas-II524GS7.js +0 -46
- package/dist/capabilities-FF6NNJ5L.js +0 -147
- package/dist/catalog-TOHUVBEU.js +0 -66
- package/dist/catalogs-V7PTEJBO.js +0 -130
- package/dist/changes-5OW3UYMF.js +0 -167
- package/dist/chatgpt-JBMYNVJB.js +0 -47
- package/dist/chats-XVAFLM47.js +0 -589
- package/dist/check-FFRPBGUH.js +0 -107
- package/dist/chunk-22RM3UOO.js +0 -63
- package/dist/chunk-2EEDKWYY.js +0 -479
- package/dist/chunk-2KQQHBBQ.js +0 -547
- package/dist/chunk-2N7TB346.js +0 -5368
- package/dist/chunk-33ZP44QR.js +0 -103
- package/dist/chunk-34RDCDCF.js +0 -207
- package/dist/chunk-47VWQ7FQ.js +0 -843
- package/dist/chunk-4SAO6RT2.js +0 -962
- package/dist/chunk-4W4MLIRR.js +0 -19
- package/dist/chunk-5XB352F5.js +0 -197
- package/dist/chunk-643AA3RB.js +0 -220
- package/dist/chunk-7GFGFBWZ.js +0 -344
- package/dist/chunk-7MIOMG22.js +0 -685
- package/dist/chunk-7YEP3NFN.js +0 -163
- package/dist/chunk-AP7X3ONA.js +0 -297
- package/dist/chunk-BFAPSFS7.js +0 -1518
- package/dist/chunk-BMMXYR7A.js +0 -238
- package/dist/chunk-BNEWJXKU.js +0 -638
- package/dist/chunk-C3G56TJV.js +0 -66
- package/dist/chunk-C4BPAMAJ.js +0 -8954
- package/dist/chunk-C4BPAMAJ.js.map +0 -1
- package/dist/chunk-C57CXCTI.js +0 -455
- package/dist/chunk-C7KV5O5J.js +0 -274
- package/dist/chunk-C7LLNXRJ.js +0 -91
- package/dist/chunk-CKN4HQZM.js +0 -89
- package/dist/chunk-DXQ5DUFU.js +0 -392
- package/dist/chunk-EV2HVFTJ.js +0 -224
- package/dist/chunk-GQUBM3Z6.js +0 -249
- package/dist/chunk-H7LKYGLJ.js +0 -24026
- package/dist/chunk-H7LKYGLJ.js.map +0 -1
- package/dist/chunk-HM4NWA72.js +0 -5471
- package/dist/chunk-IB6VWG32.js +0 -755
- package/dist/chunk-ICASR3ES.js +0 -7901
- package/dist/chunk-ICASR3ES.js.map +0 -1
- package/dist/chunk-IGCS3X4F.js +0 -150
- package/dist/chunk-IJ6WA2JW.js +0 -148
- package/dist/chunk-ITIUWJGQ.js +0 -131
- package/dist/chunk-IZXYI5NB.js +0 -2234
- package/dist/chunk-IZXYI5NB.js.map +0 -1
- package/dist/chunk-J4BJLHLQ.js +0 -3510
- package/dist/chunk-JAC6JVCI.js +0 -26
- package/dist/chunk-JGK2FDZW.js +0 -1919
- package/dist/chunk-JJBO7QIR.js +0 -604
- package/dist/chunk-K7APGDEO.js +0 -430
- package/dist/chunk-L2LGHWJN.js +0 -156
- package/dist/chunk-LAOCXV6Z.js +0 -98
- package/dist/chunk-M2RXXLK3.js +0 -51
- package/dist/chunk-MCJ5I5LR.js +0 -3187
- package/dist/chunk-MCJ5I5LR.js.map +0 -1
- package/dist/chunk-MKG57P2E.js +0 -783
- package/dist/chunk-MYGPWKEI.js +0 -170
- package/dist/chunk-MZPS46OR.js +0 -76
- package/dist/chunk-N7EHQNNG.js +0 -312
- package/dist/chunk-OHVXHNUR.js +0 -57
- package/dist/chunk-OJRS3TGS.js +0 -399
- package/dist/chunk-OJZKY5UM.js +0 -46
- package/dist/chunk-OX5DS7UE.js +0 -1920
- package/dist/chunk-PRHDGULQ.js +0 -819
- package/dist/chunk-PRHDGULQ.js.map +0 -1
- package/dist/chunk-PRZBEZBA.js +0 -203
- package/dist/chunk-PTE6BNCH.js +0 -334
- package/dist/chunk-Q5DLTIYL.js +0 -142
- package/dist/chunk-QVHZTCB5.js +0 -1254
- package/dist/chunk-QVO5VPNA.js +0 -169
- package/dist/chunk-RBR5PHYJ.js +0 -91
- package/dist/chunk-RHBCKOF2.js +0 -61
- package/dist/chunk-S3XCG55E.js +0 -454
- package/dist/chunk-SPNF2V46.js +0 -468
- package/dist/chunk-SPNY52S5.js +0 -494
- package/dist/chunk-TEQEZAJI.js +0 -1320
- package/dist/chunk-U6AWJIFP.js +0 -225
- package/dist/chunk-VAV5CCDD.js +0 -167
- package/dist/chunk-VSALEVXN.js +0 -23
- package/dist/chunk-W3TZPHZO.js +0 -285
- package/dist/chunk-XHWHBGKX.js +0 -4277
- package/dist/chunk-XHWHBGKX.js.map +0 -1
- package/dist/chunk-XPV3KK6B.js +0 -930
- package/dist/chunk-Z3RGBLVJ.js +0 -64
- package/dist/claim-YABJMHON.js +0 -200
- package/dist/companies-K2IVXNC5.js +0 -198
- package/dist/company-6JAVJPSU.js +0 -308
- package/dist/complete-4R6O7TAF.js +0 -84
- package/dist/connect-FWT2IC5N.js +0 -45
- package/dist/conversation-DSRM4JIU.js +0 -96
- package/dist/conversion-report-2FREFML5.js +0 -127
- package/dist/conversion-upload-command-JAGV6GMG.js +0 -439
- package/dist/conversion-writes-JZIJSQ7T.js +0 -122
- package/dist/conversions-4D5TEPO4.js +0 -140
- package/dist/conversions-Q5EBTEXA.js +0 -78
- package/dist/create-3OYFSUR5.js +0 -62
- package/dist/create-FMGLMQZC.js +0 -218
- package/dist/create-SDFDKJGJ.js +0 -239
- package/dist/create-VW23RNWT.js +0 -135
- package/dist/creatives-B7GJ2IC5.js +0 -58
- package/dist/creatives-E33LXJG7.js +0 -229
- package/dist/credentials-WGGZFBDJ.js +0 -290
- package/dist/critique-EOYMGUIK.js +0 -232
- package/dist/critique-US4B3ZY5.js +0 -1451
- package/dist/crm-T4XPJZTR.js +0 -229
- package/dist/crm-UBQ735O6.js +0 -323
- package/dist/currency-EFDQYW5B.js +0 -88
- package/dist/customers-HHQUU3MA.js +0 -65
- package/dist/delete-JPIV5E2Y.js +0 -67
- package/dist/delete-UC5XQZWC.js +0 -69
- package/dist/delete-X5TD7P3U.js +0 -57
- package/dist/demographics-6GQYZIVR.js +0 -141
- package/dist/discard-5UNX5TEZ.js +0 -69
- package/dist/discover-BPUUWRBP.js +0 -172
- package/dist/domain-7BOPJLTP.js +0 -101
- package/dist/download-B4IV43AJ.js +0 -172
- package/dist/draft-FVB6SEP3.js +0 -332
- package/dist/draft-GCOCG4PO.js +0 -315
- package/dist/draft-GSDDK6FO.js +0 -614
- package/dist/draft-QT6MVG47.js +0 -220
- package/dist/draft-VRE52N6B.js +0 -374
- package/dist/experiments-3JSDRY5W.js +0 -236
- package/dist/extract-BVSL6H3S.js +0 -143
- package/dist/facets-NN33WFSR.js +0 -117
- package/dist/feedback-BYXZEEW3.js +0 -114
- package/dist/feedback-HN32HLFT.js +0 -115
- package/dist/feedback-record-GZNCHZFT.js +0 -269
- package/dist/fetch-3JPN4QAJ.js +0 -204
- package/dist/fit-2R5NGB7E.js +0 -65
- package/dist/flows-XM7GBTIU.js +0 -340
- package/dist/fonts-IO4X2AKN.js +0 -39
- package/dist/forecast-HMNQZFVL.js +0 -169
- package/dist/forecast-MOFJ3BKH.js +0 -121
- package/dist/funnel-FR7JQUZW.js +0 -397
- package/dist/generate-KAWRRYTT.js +0 -263
- package/dist/get-BMJIYS25.js +0 -62
- package/dist/get-MXXANBI3.js +0 -82
- package/dist/google-3CAUWNWE.js +0 -3300
- package/dist/google-MHFI5OGW.js +0 -163
- package/dist/google-ads-ULZRFDZU.js +0 -198
- package/dist/history-F3U3WNEJ.js +0 -102
- package/dist/history-SGFTHPT2.js +0 -153
- package/dist/history-YQSYXBJH.js +0 -69
- package/dist/hubspot-FASIF5U5.js +0 -814
- package/dist/ideas-TKCOPOMS.js +0 -45
- package/dist/images-K4EPTLTF.js +0 -92
- package/dist/ingest-MCCJBWYC.js +0 -131
- package/dist/ingest-T3AV5OR4.js +0 -28
- package/dist/insights-UVCFOB3N.js +0 -132
- package/dist/inspect-3OHTBHNO.js +0 -192
- package/dist/intent-F5NTOSQC.js +0 -95
- package/dist/keyword-gap-EB5QATYN.js +0 -130
- package/dist/keyword-metrics-E4PPLUYX.js +0 -200
- package/dist/keywords-for-site-HD2FOBMH.js +0 -131
- package/dist/landing-NC2A277E.js +0 -28
- package/dist/languages-4S26FJDP.js +0 -40
- package/dist/leads-LL2S6ENL.js +0 -115
- package/dist/learn-2CP2SROJ.js +0 -207
- package/dist/line-item-writes-56A4ITU6.js +0 -211
- package/dist/line-items-AIIDDTTH.js +0 -107
- package/dist/link-BIXBY5KG.js +0 -67
- package/dist/linkedin-TXX22PPH.js +0 -1344
- package/dist/linkedin-person-5KEGEX6G.js +0 -139
- package/dist/list-C5AT3LF4.js +0 -306
- package/dist/list-UQNU4QUE.js +0 -154
- package/dist/list-YBHQ3HIB.js +0 -67
- package/dist/locations-UWBQLHXW.js +0 -40
- package/dist/locations-WXGOI3VV.js +0 -69
- package/dist/log-FZJTWN3S.js +0 -95
- package/dist/make-ESUFN3T4.js +0 -1367
- package/dist/map-WDOBMEAW.js +0 -445
- package/dist/mcp-JJZ5YGSS.js +0 -729
- package/dist/media-sources-AJ5USQXV.js +0 -35
- package/dist/members-NSR7S62Y.js +0 -47
- package/dist/metrics-4AFEEDVP.js +0 -152
- package/dist/models-2ZEM64H5.js +0 -155
- package/dist/normalize-RQEHHRES.js +0 -144
- package/dist/options-4BW4P6JD.js +0 -125
- package/dist/organization-TKGXZYH6.js +0 -949
- package/dist/performance-27VHB3UA.js +0 -27
- package/dist/performance-XGHZDQGU.js +0 -5565
- package/dist/pixels-HEI5WVAO.js +0 -62
- package/dist/preview-2YRMPWI2.js +0 -101
- package/dist/promoted-tweet-writes-PT6BW64X.js +0 -183
- package/dist/promoted-tweets-SBZXEU7S.js +0 -119
- package/dist/publish-Z7ZK3XB7.js +0 -350
- package/dist/query-K7MYBRTS.js +0 -62
- package/dist/reddit-L4RQNJBL.js +0 -29
- package/dist/refresh-EWALAFUQ.js +0 -97
- package/dist/release-C2H2KBNY.js +0 -63
- package/dist/relevant-pages-XYQKVX3U.js +0 -99
- package/dist/remove-JOXARFD3.js +0 -53
- package/dist/reopen-WRW4JVO2.js +0 -66
- package/dist/rerun-GYWQOZOF.js +0 -97
- package/dist/research-422BF4O4.js +0 -265
- package/dist/research-MCTV6ZJZ.js +0 -75
- package/dist/reset-7ANRT4I3.js +0 -57
- package/dist/reset-MZDRR5VP.js +0 -57
- package/dist/resolve-KKRG65WF.js +0 -124
- package/dist/retry-PDKRPWIZ.js +0 -63
- package/dist/retry-YZCBWAHT.js +0 -65
- package/dist/revenue-F7E5ZRLB.js +0 -91
- package/dist/rules-GRLAFAZU.js +0 -99
- package/dist/rules-add-3C7LW4HD.js +0 -465
- package/dist/run-QDPXTMW6.js +0 -72
- package/dist/run-ZV73UQ3E.js +0 -69
- package/dist/scaffold-ad-LBLEARDJ.js +0 -1513
- package/dist/scaffold-static-ad-TM3JX4HS.js +0 -1012
- package/dist/scaffold-video-EINW32ZH.js +0 -885
- package/dist/schedule-X5ZKZXPC.js +0 -64
- package/dist/scheduled-agents-APZA42K2.js +0 -55
- package/dist/schema-6JF4ZNGY.js +0 -135
- package/dist/search-4VAIJA2O.js +0 -177
- package/dist/select-TNLQGGNE.js +0 -110
- package/dist/set-prompt-GU3HPWWZ.js +0 -199
- package/dist/setup-links-ORBZ5T4H.js +0 -144
- package/dist/shopify-SN3TBTL5.js +0 -4009
- package/dist/site-3ZORNMAE.js +0 -180
- package/dist/sources-WGEC6FGZ.js +0 -457
- package/dist/sources-WT6M3QIX.js +0 -30
- package/dist/stale-5YYPMXWX.js +0 -90
- package/dist/status-WED3AXTZ.js +0 -65
- package/dist/stock-33GHQWNQ.js +0 -212
- package/dist/studio-4EV5S7PR.js +0 -49
- package/dist/sync-2GLGCSRQ.js +0 -57
- package/dist/sync-definition-SNUWHPGO.js +0 -70
- package/dist/tags-AQNOA7X5.js +0 -23
- package/dist/tags-CVPMOYKI.js +0 -23
- package/dist/tags-IQY7GYMU.js +0 -227
- package/dist/tags-MYUCES3W.js +0 -26
- package/dist/tags-SCMHCPF4.js +0 -23
- package/dist/targeting-criteria-RVJHW22S.js +0 -113
- package/dist/targets-G6SN6VTL.js +0 -106
- package/dist/testimonials-JALUWWLB.js +0 -32
- package/dist/themes-FW3VWZJE.js +0 -95
- package/dist/top-companies-WR6TXTNM.js +0 -111
- package/dist/transcript-JMRRJEET.js +0 -165
- package/dist/translate-IGCEMHXS.js +0 -603
- package/dist/triggers-UUSPHGXX.js +0 -144
- package/dist/unlink-U5VBTO7P.js +0 -70
- package/dist/unstage-KSYT7FOP.js +0 -88
- package/dist/update-GFKDIJRE.js +0 -66
- package/dist/update-QF6BLM5F.js +0 -101
- package/dist/update-VBQKI72I.js +0 -192
- package/dist/update-ZIKHDZRT.js +0 -155
- package/dist/upload-UYE73VLK.js +0 -137
- package/dist/url-options-AHJPR5VY.js +0 -131
- package/dist/url-params-P6MV2HKB.js +0 -101
- package/dist/validate-HIYNINCN.js +0 -135
- package/dist/videos-XGQL37V4.js +0 -41
- package/dist/viewer-check-TYTVCSQW.js +0 -83
- package/dist/web-PIMTCU4V.js +0 -173
- package/dist/winning-ads-P4MXWYK6.js +0 -86
- package/dist/write-commands-24EOSYWL.js +0 -1524
- package/dist/x-HBA6AJJA.js +0 -47
- /package/dist/{account-SGHH4SIM.js.map → account-H6OOCEE3.js.map} +0 -0
- /package/dist/{account-52WDLW4Z.js.map → account-JVDP5ERG.js.map} +0 -0
- /package/dist/{account-reads-CQIJCPCH.js.map → account-reads-OQCA5LEM.js.map} +0 -0
- /package/dist/{account-users-KP6A43DU.js.map → account-users-VBPW6FPY.js.map} +0 -0
- /package/dist/{account-writes-3BJSUM2V.js.map → account-writes-KEXINJ5D.js.map} +0 -0
- /package/dist/{accounts-FV5FPX3X.js.map → accounts-CNWJYCUV.js.map} +0 -0
- /package/dist/{accounts-LQFSNBIC.js.map → accounts-M5SCXY6W.js.map} +0 -0
- /package/dist/{accounts-ZV4IXOF5.js.map → accounts-QR6OQ3GC.js.map} +0 -0
- /package/dist/{actions-RZ62K3WT.js.map → actions-6DC3FUQF.js.map} +0 -0
- /package/dist/{activecampaign-E6PM6YNO.js.map → activecampaign-YMVIS6EN.js.map} +0 -0
- /package/dist/{ad-group-writes-KU4QMQZP.js.map → ad-group-writes-SVR4RCKB.js.map} +0 -0
- /package/dist/{ad-groups-NMW2G32A.js.map → ad-groups-C726HUXS.js.map} +0 -0
- /package/dist/{ad-writes-7NOFTOM4.js.map → ad-writes-RWJIWGEL.js.map} +0 -0
- /package/dist/{add-HMAQJG4J.js.map → add-ITTW4LQC.js.map} +0 -0
- /package/dist/{add-MLTE6PPC.js.map → add-QZHZIAVE.js.map} +0 -0
- /package/dist/{ads-P4Z3MLKS.js.map → ads-3KK7VQPU.js.map} +0 -0
- /package/dist/{ads-T6J6QQKX.js.map → ads-UZ355BQS.js.map} +0 -0
- /package/dist/{advertisers-FP7MTMUI.js.map → advertisers-Z2WLSJEC.js.map} +0 -0
- /package/dist/{analytics-AYYFKMF6.js.map → analytics-64DI3ZJL.js.map} +0 -0
- /package/dist/{analytics-D2IA2P5E.js.map → analytics-GILIREA3.js.map} +0 -0
- /package/dist/{animate-VX7E7KJE.js.map → animate-GTUI7XX4.js.map} +0 -0
- /package/dist/{assign-EE4EDOPX.js.map → assign-6RI3EC7U.js.map} +0 -0
- /package/dist/{audience-size-SRNH57FA.js.map → audience-size-M6NORPEU.js.map} +0 -0
- /package/dist/{audiences-P3SPTAJT.js.map → audiences-6L43K2T2.js.map} +0 -0
- /package/dist/{audit-R5JG3ABY.js.map → audit-CPEOJSCV.js.map} +0 -0
- /package/dist/{autocomplete-AIKXLHME.js.map → autocomplete-DCCI3W5Y.js.map} +0 -0
- /package/dist/{avatars-3CAQ5OBN.js.map → avatars-GDRSOS6V.js.map} +0 -0
- /package/dist/{bid-pricing-PDZIJGOX.js.map → bid-pricing-FQ6VJSH6.js.map} +0 -0
- /package/dist/{brand-2SN7MM72.js.map → brand-6TUMI2GH.js.map} +0 -0
- /package/dist/{brief-FPEBHIE3.js.map → brief-U6ZT5UYG.js.map} +0 -0
- /package/dist/{campaign-groups-OHL6POG2.js.map → campaign-groups-RTP2MKNJ.js.map} +0 -0
- /package/dist/{campaign-writes-RKCE4MSZ.js.map → campaign-writes-4NVY7S4U.js.map} +0 -0
- /package/dist/{campaign-writes-P5XPFTRK.js.map → campaign-writes-FUIGN5OR.js.map} +0 -0
- /package/dist/{campaigns-HGMQSYUM.js.map → campaigns-7ZVVYTBM.js.map} +0 -0
- /package/dist/{campaigns-UWUEENB6.js.map → campaigns-CCDJKV7I.js.map} +0 -0
- /package/dist/{campaigns-SWZJVE2T.js.map → campaigns-N2SWSBYT.js.map} +0 -0
- /package/dist/{canvas-II524GS7.js.map → canvas-UYRDIRPR.js.map} +0 -0
- /package/dist/{capabilities-FF6NNJ5L.js.map → capabilities-4KGVNK4Q.js.map} +0 -0
- /package/dist/{catalog-TOHUVBEU.js.map → catalog-JICUCAJZ.js.map} +0 -0
- /package/dist/{catalogs-V7PTEJBO.js.map → catalogs-G5NOKL4L.js.map} +0 -0
- /package/dist/{changes-5OW3UYMF.js.map → changes-AS4RVEAL.js.map} +0 -0
- /package/dist/{chatgpt-JBMYNVJB.js.map → chatgpt-O6EEAYLF.js.map} +0 -0
- /package/dist/{chats-XVAFLM47.js.map → chats-JNL4L6GZ.js.map} +0 -0
- /package/dist/{check-FFRPBGUH.js.map → check-EXT5WAYI.js.map} +0 -0
- /package/dist/{chunk-2N7TB346.js.map → chunk-2NOFIV6M.js.map} +0 -0
- /package/dist/{chunk-JJBO7QIR.js.map → chunk-3QLGV4XN.js.map} +0 -0
- /package/dist/{chunk-33ZP44QR.js.map → chunk-3QNSGFE2.js.map} +0 -0
- /package/dist/{chunk-2KQQHBBQ.js.map → chunk-5CH2JQCA.js.map} +0 -0
- /package/dist/{chunk-OJRS3TGS.js.map → chunk-5LEIUG5H.js.map} +0 -0
- /package/dist/{chunk-OJZKY5UM.js.map → chunk-5NMKNHJI.js.map} +0 -0
- /package/dist/{chunk-C57CXCTI.js.map → chunk-66LB37BF.js.map} +0 -0
- /package/dist/{chunk-LAOCXV6Z.js.map → chunk-6D7WTUF3.js.map} +0 -0
- /package/dist/{chunk-JAC6JVCI.js.map → chunk-6OIKNJ7G.js.map} +0 -0
- /package/dist/{chunk-PTE6BNCH.js.map → chunk-6RWLCOAH.js.map} +0 -0
- /package/dist/{chunk-34RDCDCF.js.map → chunk-6TNRSWNA.js.map} +0 -0
- /package/dist/{chunk-RBR5PHYJ.js.map → chunk-7YXBMYSM.js.map} +0 -0
- /package/dist/{chunk-M2RXXLK3.js.map → chunk-A6LOIUWB.js.map} +0 -0
- /package/dist/{chunk-C7LLNXRJ.js.map → chunk-BBS5VXLK.js.map} +0 -0
- /package/dist/{chunk-N7EHQNNG.js.map → chunk-BPDUE3MT.js.map} +0 -0
- /package/dist/{chunk-PRZBEZBA.js.map → chunk-C3XJ46C2.js.map} +0 -0
- /package/dist/{chunk-4W4MLIRR.js.map → chunk-CC42TKFH.js.map} +0 -0
- /package/dist/{chunk-Q5DLTIYL.js.map → chunk-CFF7VAOQ.js.map} +0 -0
- /package/dist/{chunk-MKG57P2E.js.map → chunk-CUTTTFAU.js.map} +0 -0
- /package/dist/{chunk-IGCS3X4F.js.map → chunk-D32EWSMB.js.map} +0 -0
- /package/dist/{chunk-VSALEVXN.js.map → chunk-EDZDYB3C.js.map} +0 -0
- /package/dist/{chunk-DXQ5DUFU.js.map → chunk-ELFZ63XY.js.map} +0 -0
- /package/dist/{chunk-ITIUWJGQ.js.map → chunk-EM5R3BYC.js.map} +0 -0
- /package/dist/{chunk-MYGPWKEI.js.map → chunk-F5VR6HSI.js.map} +0 -0
- /package/dist/{chunk-HM4NWA72.js.map → chunk-FE2MFNVT.js.map} +0 -0
- /package/dist/{chunk-SPNF2V46.js.map → chunk-FPYMFYML.js.map} +0 -0
- /package/dist/{chunk-IB6VWG32.js.map → chunk-FWYWLEDP.js.map} +0 -0
- /package/dist/{chunk-S3XCG55E.js.map → chunk-G4TPYA7F.js.map} +0 -0
- /package/dist/{chunk-47VWQ7FQ.js.map → chunk-GRX3JXSR.js.map} +0 -0
- /package/dist/{chunk-GQUBM3Z6.js.map → chunk-H423YXYY.js.map} +0 -0
- /package/dist/{chunk-JGK2FDZW.js.map → chunk-J4AWNWKN.js.map} +0 -0
- /package/dist/{chunk-W3TZPHZO.js.map → chunk-JLAFNORO.js.map} +0 -0
- /package/dist/{chunk-5XB352F5.js.map → chunk-JQYB2DS3.js.map} +0 -0
- /package/dist/{chunk-C3G56TJV.js.map → chunk-JYOP6YVT.js.map} +0 -0
- /package/dist/{chunk-SPNY52S5.js.map → chunk-KOKPQE4N.js.map} +0 -0
- /package/dist/{chunk-BFAPSFS7.js.map → chunk-LAMSUL26.js.map} +0 -0
- /package/dist/{chunk-EV2HVFTJ.js.map → chunk-LYGZBNSC.js.map} +0 -0
- /package/dist/{chunk-CKN4HQZM.js.map → chunk-NI5R6Y24.js.map} +0 -0
- /package/dist/{chunk-BNEWJXKU.js.map → chunk-NOCBNING.js.map} +0 -0
- /package/dist/{chunk-AP7X3ONA.js.map → chunk-OEO2NSNC.js.map} +0 -0
- /package/dist/{chunk-643AA3RB.js.map → chunk-OZNBVJGC.js.map} +0 -0
- /package/dist/{chunk-K7APGDEO.js.map → chunk-PYZVVMF4.js.map} +0 -0
- /package/dist/{chunk-IJ6WA2JW.js.map → chunk-QGAUDVMR.js.map} +0 -0
- /package/dist/{chunk-22RM3UOO.js.map → chunk-QZ4YHQLW.js.map} +0 -0
- /package/dist/{chunk-Z3RGBLVJ.js.map → chunk-RIIMF75G.js.map} +0 -0
- /package/dist/{chunk-U6AWJIFP.js.map → chunk-RUMHZX5N.js.map} +0 -0
- /package/dist/{chunk-J4BJLHLQ.js.map → chunk-S36WWACM.js.map} +0 -0
- /package/dist/{chunk-RHBCKOF2.js.map → chunk-SHYUXLE5.js.map} +0 -0
- /package/dist/{chunk-MZPS46OR.js.map → chunk-SIKCVWM3.js.map} +0 -0
- /package/dist/{chunk-VAV5CCDD.js.map → chunk-SNVAE572.js.map} +0 -0
- /package/dist/{chunk-QVHZTCB5.js.map → chunk-UVUY6FLV.js.map} +0 -0
- /package/dist/{chunk-XPV3KK6B.js.map → chunk-UZVFXGMS.js.map} +0 -0
- /package/dist/{chunk-TEQEZAJI.js.map → chunk-V4HS5JRL.js.map} +0 -0
- /package/dist/{chunk-2EEDKWYY.js.map → chunk-VCG3Q3O4.js.map} +0 -0
- /package/dist/{chunk-OX5DS7UE.js.map → chunk-VKIKIN5U.js.map} +0 -0
- /package/dist/{chunk-7YEP3NFN.js.map → chunk-VZIYTP3X.js.map} +0 -0
- /package/dist/{chunk-QVO5VPNA.js.map → chunk-WEBWXSFF.js.map} +0 -0
- /package/dist/{chunk-OHVXHNUR.js.map → chunk-WOHTTXLG.js.map} +0 -0
- /package/dist/{chunk-BMMXYR7A.js.map → chunk-WZXMZFVB.js.map} +0 -0
- /package/dist/{chunk-C7KV5O5J.js.map → chunk-XY7W6MQN.js.map} +0 -0
- /package/dist/{chunk-7GFGFBWZ.js.map → chunk-YEQTBPEB.js.map} +0 -0
- /package/dist/{chunk-L2LGHWJN.js.map → chunk-YHBMCP6C.js.map} +0 -0
- /package/dist/{chunk-7MIOMG22.js.map → chunk-YJEG6TQ3.js.map} +0 -0
- /package/dist/{chunk-4SAO6RT2.js.map → chunk-YQYCWYFJ.js.map} +0 -0
- /package/dist/{claim-YABJMHON.js.map → claim-4LKB2Z6T.js.map} +0 -0
- /package/dist/{companies-K2IVXNC5.js.map → companies-KCHDEHAA.js.map} +0 -0
- /package/dist/{company-6JAVJPSU.js.map → company-C2Y7LY5H.js.map} +0 -0
- /package/dist/{complete-4R6O7TAF.js.map → complete-MNN3PAZE.js.map} +0 -0
- /package/dist/{connect-FWT2IC5N.js.map → connect-IABMKFGA.js.map} +0 -0
- /package/dist/{conversation-DSRM4JIU.js.map → conversation-FETU4KTF.js.map} +0 -0
- /package/dist/{conversion-report-2FREFML5.js.map → conversion-report-33SG7SHU.js.map} +0 -0
- /package/dist/{conversion-upload-command-JAGV6GMG.js.map → conversion-upload-command-DWIGVHQZ.js.map} +0 -0
- /package/dist/{conversion-writes-JZIJSQ7T.js.map → conversion-writes-XGGTBML5.js.map} +0 -0
- /package/dist/{conversions-Q5EBTEXA.js.map → conversions-PPP4QK7U.js.map} +0 -0
- /package/dist/{conversions-4D5TEPO4.js.map → conversions-S3WIR5R4.js.map} +0 -0
- /package/dist/{create-SDFDKJGJ.js.map → create-A3ZIQVIH.js.map} +0 -0
- /package/dist/{create-VW23RNWT.js.map → create-ESKBBBJX.js.map} +0 -0
- /package/dist/{create-FMGLMQZC.js.map → create-U2ITO4RV.js.map} +0 -0
- /package/dist/{create-3OYFSUR5.js.map → create-VNYTZJ4T.js.map} +0 -0
- /package/dist/{creatives-B7GJ2IC5.js.map → creatives-WSCRC5GO.js.map} +0 -0
- /package/dist/{creatives-E33LXJG7.js.map → creatives-XO5E4AIC.js.map} +0 -0
- /package/dist/{credentials-WGGZFBDJ.js.map → credentials-ZV66ZUCK.js.map} +0 -0
- /package/dist/{critique-US4B3ZY5.js.map → critique-ODWLA52C.js.map} +0 -0
- /package/dist/{critique-EOYMGUIK.js.map → critique-X3433R5M.js.map} +0 -0
- /package/dist/{crm-UBQ735O6.js.map → crm-WPPM2R7I.js.map} +0 -0
- /package/dist/{crm-T4XPJZTR.js.map → crm-XPIQAGH7.js.map} +0 -0
- /package/dist/{currency-EFDQYW5B.js.map → currency-HK2ZW2VW.js.map} +0 -0
- /package/dist/{customers-HHQUU3MA.js.map → customers-GCM7WZII.js.map} +0 -0
- /package/dist/{delete-UC5XQZWC.js.map → delete-GAIV2YVD.js.map} +0 -0
- /package/dist/{delete-X5TD7P3U.js.map → delete-RVJLATPO.js.map} +0 -0
- /package/dist/{delete-JPIV5E2Y.js.map → delete-VJ5QXKZR.js.map} +0 -0
- /package/dist/{demographics-6GQYZIVR.js.map → demographics-XWIW3YJF.js.map} +0 -0
- /package/dist/{discard-5UNX5TEZ.js.map → discard-TWX2CQF5.js.map} +0 -0
- /package/dist/{discover-BPUUWRBP.js.map → discover-Q5PAOIQQ.js.map} +0 -0
- /package/dist/{domain-7BOPJLTP.js.map → domain-FE32BE2E.js.map} +0 -0
- /package/dist/{download-B4IV43AJ.js.map → download-5FYHTIGR.js.map} +0 -0
- /package/dist/{draft-FVB6SEP3.js.map → draft-5VLO5UYZ.js.map} +0 -0
- /package/dist/{draft-GCOCG4PO.js.map → draft-L2NXCIYT.js.map} +0 -0
- /package/dist/{draft-VRE52N6B.js.map → draft-L757UIW5.js.map} +0 -0
- /package/dist/{draft-GSDDK6FO.js.map → draft-WK4PEMB6.js.map} +0 -0
- /package/dist/{draft-QT6MVG47.js.map → draft-ZCP3MIV6.js.map} +0 -0
- /package/dist/{experiments-3JSDRY5W.js.map → experiments-DVR7WBGQ.js.map} +0 -0
- /package/dist/{extract-BVSL6H3S.js.map → extract-JM6FAWAS.js.map} +0 -0
- /package/dist/{facets-NN33WFSR.js.map → facets-IEQJK5AW.js.map} +0 -0
- /package/dist/{feedback-BYXZEEW3.js.map → feedback-QUJ2V4WD.js.map} +0 -0
- /package/dist/{feedback-HN32HLFT.js.map → feedback-SSCN7LEP.js.map} +0 -0
- /package/dist/{feedback-record-GZNCHZFT.js.map → feedback-record-P6WK4UPP.js.map} +0 -0
- /package/dist/{fetch-3JPN4QAJ.js.map → fetch-Q6BIDVN5.js.map} +0 -0
- /package/dist/{fit-2R5NGB7E.js.map → fit-XLK5LDPS.js.map} +0 -0
- /package/dist/{flows-XM7GBTIU.js.map → flows-QVGZEYCH.js.map} +0 -0
- /package/dist/{fonts-IO4X2AKN.js.map → fonts-GARRSRIB.js.map} +0 -0
- /package/dist/{forecast-MOFJ3BKH.js.map → forecast-GEYNZ5PQ.js.map} +0 -0
- /package/dist/{forecast-HMNQZFVL.js.map → forecast-THQNGKPE.js.map} +0 -0
- /package/dist/{funnel-FR7JQUZW.js.map → funnel-OABL4MLZ.js.map} +0 -0
- /package/dist/{generate-KAWRRYTT.js.map → generate-Y4NJEYIH.js.map} +0 -0
- /package/dist/{get-MXXANBI3.js.map → get-63KQ62KN.js.map} +0 -0
- /package/dist/{get-BMJIYS25.js.map → get-RDGC3QA5.js.map} +0 -0
- /package/dist/{google-MHFI5OGW.js.map → google-32BCQC7C.js.map} +0 -0
- /package/dist/{google-3CAUWNWE.js.map → google-VYCMEWUL.js.map} +0 -0
- /package/dist/{google-ads-ULZRFDZU.js.map → google-ads-PCXGVHZV.js.map} +0 -0
- /package/dist/{history-SGFTHPT2.js.map → history-J7ANCPWY.js.map} +0 -0
- /package/dist/{history-F3U3WNEJ.js.map → history-NX67UIZ7.js.map} +0 -0
- /package/dist/{history-YQSYXBJH.js.map → history-VKRYKQ4C.js.map} +0 -0
- /package/dist/{hubspot-FASIF5U5.js.map → hubspot-Z3J3JBEH.js.map} +0 -0
- /package/dist/{ideas-TKCOPOMS.js.map → ideas-22I7JTI7.js.map} +0 -0
- /package/dist/{images-K4EPTLTF.js.map → images-3C4Y6RWL.js.map} +0 -0
- /package/dist/{ingest-MCCJBWYC.js.map → ingest-CFH2MPSF.js.map} +0 -0
- /package/dist/{ingest-T3AV5OR4.js.map → ingest-VXX2Y76C.js.map} +0 -0
- /package/dist/{insights-UVCFOB3N.js.map → insights-3IPSEBYW.js.map} +0 -0
- /package/dist/{inspect-3OHTBHNO.js.map → inspect-LDXPOGGH.js.map} +0 -0
- /package/dist/{intent-F5NTOSQC.js.map → intent-ZM4K623V.js.map} +0 -0
- /package/dist/{keyword-gap-EB5QATYN.js.map → keyword-gap-FAAF2I6V.js.map} +0 -0
- /package/dist/{keyword-metrics-E4PPLUYX.js.map → keyword-metrics-E36SMZSP.js.map} +0 -0
- /package/dist/{keywords-for-site-HD2FOBMH.js.map → keywords-for-site-AWGWDXZA.js.map} +0 -0
- /package/dist/{landing-NC2A277E.js.map → landing-PVTDVL22.js.map} +0 -0
- /package/dist/{languages-4S26FJDP.js.map → languages-ZGDTERIQ.js.map} +0 -0
- /package/dist/{leads-LL2S6ENL.js.map → leads-XC3C5HGC.js.map} +0 -0
- /package/dist/{learn-2CP2SROJ.js.map → learn-NYRL53NQ.js.map} +0 -0
- /package/dist/{line-item-writes-56A4ITU6.js.map → line-item-writes-LMSYCR6G.js.map} +0 -0
- /package/dist/{line-items-AIIDDTTH.js.map → line-items-P24SOGVZ.js.map} +0 -0
- /package/dist/{link-BIXBY5KG.js.map → link-H3TTWJJO.js.map} +0 -0
- /package/dist/{linkedin-TXX22PPH.js.map → linkedin-57JHH7QN.js.map} +0 -0
- /package/dist/{linkedin-person-5KEGEX6G.js.map → linkedin-person-HKKIE32Q.js.map} +0 -0
- /package/dist/{list-UQNU4QUE.js.map → list-KHCFVTQU.js.map} +0 -0
- /package/dist/{list-YBHQ3HIB.js.map → list-LC2GRYEI.js.map} +0 -0
- /package/dist/{list-C5AT3LF4.js.map → list-UCTFATXS.js.map} +0 -0
- /package/dist/{locations-WXGOI3VV.js.map → locations-A65MFB7Q.js.map} +0 -0
- /package/dist/{locations-UWBQLHXW.js.map → locations-WN6B3IJK.js.map} +0 -0
- /package/dist/{log-FZJTWN3S.js.map → log-SLYCPRCY.js.map} +0 -0
- /package/dist/{make-ESUFN3T4.js.map → make-HTCPU6HU.js.map} +0 -0
- /package/dist/{map-WDOBMEAW.js.map → map-237LQ5N5.js.map} +0 -0
- /package/dist/{mcp-JJZ5YGSS.js.map → mcp-GX5TOO7Y.js.map} +0 -0
- /package/dist/{media-sources-AJ5USQXV.js.map → media-sources-ODNIS7A5.js.map} +0 -0
- /package/dist/{members-NSR7S62Y.js.map → members-TYQKWR7Z.js.map} +0 -0
- /package/dist/{metrics-4AFEEDVP.js.map → metrics-3U3ZO2RF.js.map} +0 -0
- /package/dist/{models-2ZEM64H5.js.map → models-VOSJJFO2.js.map} +0 -0
- /package/dist/{normalize-RQEHHRES.js.map → normalize-MDTMKLYO.js.map} +0 -0
- /package/dist/{options-4BW4P6JD.js.map → options-MEADUZY3.js.map} +0 -0
- /package/dist/{organization-TKGXZYH6.js.map → organization-BXJSHRZG.js.map} +0 -0
- /package/dist/{performance-XGHZDQGU.js.map → performance-CU65TLCB.js.map} +0 -0
- /package/dist/{performance-27VHB3UA.js.map → performance-IGCOP5VH.js.map} +0 -0
- /package/dist/{pixels-HEI5WVAO.js.map → pixels-U6UA662G.js.map} +0 -0
- /package/dist/{preview-2YRMPWI2.js.map → preview-YQ6P5A53.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-PT6BW64X.js.map → promoted-tweet-writes-X2CUNBU2.js.map} +0 -0
- /package/dist/{promoted-tweets-SBZXEU7S.js.map → promoted-tweets-G2NOW5OF.js.map} +0 -0
- /package/dist/{publish-Z7ZK3XB7.js.map → publish-YPCXCU4P.js.map} +0 -0
- /package/dist/{query-K7MYBRTS.js.map → query-SAQADBM2.js.map} +0 -0
- /package/dist/{reddit-L4RQNJBL.js.map → reddit-XMAGZMD4.js.map} +0 -0
- /package/dist/{refresh-EWALAFUQ.js.map → refresh-QIK3CXLV.js.map} +0 -0
- /package/dist/{release-C2H2KBNY.js.map → release-O7KGD5MI.js.map} +0 -0
- /package/dist/{relevant-pages-XYQKVX3U.js.map → relevant-pages-KTSODNNW.js.map} +0 -0
- /package/dist/{remove-JOXARFD3.js.map → remove-7FAWM2H4.js.map} +0 -0
- /package/dist/{reopen-WRW4JVO2.js.map → reopen-4ZWEYNCI.js.map} +0 -0
- /package/dist/{rerun-GYWQOZOF.js.map → rerun-IDUKOW6Z.js.map} +0 -0
- /package/dist/{research-MCTV6ZJZ.js.map → research-SPFILN24.js.map} +0 -0
- /package/dist/{research-422BF4O4.js.map → research-Y5MSZH6T.js.map} +0 -0
- /package/dist/{reset-MZDRR5VP.js.map → reset-4K7BXUY6.js.map} +0 -0
- /package/dist/{reset-7ANRT4I3.js.map → reset-YSDYSZ64.js.map} +0 -0
- /package/dist/{resolve-KKRG65WF.js.map → resolve-DD6ES7GJ.js.map} +0 -0
- /package/dist/{retry-YZCBWAHT.js.map → retry-PZTS6KMQ.js.map} +0 -0
- /package/dist/{retry-PDKRPWIZ.js.map → retry-YAZ3JXYL.js.map} +0 -0
- /package/dist/{revenue-F7E5ZRLB.js.map → revenue-PLJ46IYH.js.map} +0 -0
- /package/dist/{rules-GRLAFAZU.js.map → rules-I4PL72J7.js.map} +0 -0
- /package/dist/{rules-add-3C7LW4HD.js.map → rules-add-EFD2YSLH.js.map} +0 -0
- /package/dist/{run-QDPXTMW6.js.map → run-FN365AXZ.js.map} +0 -0
- /package/dist/{run-ZV73UQ3E.js.map → run-WCFKVQQQ.js.map} +0 -0
- /package/dist/{scaffold-ad-LBLEARDJ.js.map → scaffold-ad-PI4IHOG5.js.map} +0 -0
- /package/dist/{scaffold-static-ad-TM3JX4HS.js.map → scaffold-static-ad-RDOCRFEP.js.map} +0 -0
- /package/dist/{scaffold-video-EINW32ZH.js.map → scaffold-video-HPRYTHE6.js.map} +0 -0
- /package/dist/{schedule-X5ZKZXPC.js.map → schedule-NPZPVNSO.js.map} +0 -0
- /package/dist/{scheduled-agents-APZA42K2.js.map → scheduled-agents-5TNWITKB.js.map} +0 -0
- /package/dist/{schema-6JF4ZNGY.js.map → schema-PMVRMIRU.js.map} +0 -0
- /package/dist/{search-4VAIJA2O.js.map → search-BRANRGRU.js.map} +0 -0
- /package/dist/{select-TNLQGGNE.js.map → select-CLDJE7VJ.js.map} +0 -0
- /package/dist/{set-prompt-GU3HPWWZ.js.map → set-prompt-7VHSKVO6.js.map} +0 -0
- /package/dist/{setup-links-ORBZ5T4H.js.map → setup-links-PAA7XYV5.js.map} +0 -0
- /package/dist/{shopify-SN3TBTL5.js.map → shopify-VWIRGI6H.js.map} +0 -0
- /package/dist/{site-3ZORNMAE.js.map → site-Q3PMNJ2Z.js.map} +0 -0
- /package/dist/{sources-WT6M3QIX.js.map → sources-4YHNM22P.js.map} +0 -0
- /package/dist/{sources-WGEC6FGZ.js.map → sources-BYMGSUPZ.js.map} +0 -0
- /package/dist/{stale-5YYPMXWX.js.map → stale-WO6FTPLQ.js.map} +0 -0
- /package/dist/{status-WED3AXTZ.js.map → status-B2WRAPZO.js.map} +0 -0
- /package/dist/{stock-33GHQWNQ.js.map → stock-BOOSUS2C.js.map} +0 -0
- /package/dist/{studio-4EV5S7PR.js.map → studio-XLC37YGX.js.map} +0 -0
- /package/dist/{sync-2GLGCSRQ.js.map → sync-2QIPZFSK.js.map} +0 -0
- /package/dist/{sync-definition-SNUWHPGO.js.map → sync-definition-L52PGD7B.js.map} +0 -0
- /package/dist/{tags-IQY7GYMU.js.map → tags-AIE4XEU2.js.map} +0 -0
- /package/dist/{tags-MYUCES3W.js.map → tags-DF6JNSNA.js.map} +0 -0
- /package/dist/{tags-SCMHCPF4.js.map → tags-SWP4MXQO.js.map} +0 -0
- /package/dist/{tags-CVPMOYKI.js.map → tags-VXHV4JWM.js.map} +0 -0
- /package/dist/{tags-AQNOA7X5.js.map → tags-XYQUPA6M.js.map} +0 -0
- /package/dist/{targeting-criteria-RVJHW22S.js.map → targeting-criteria-UYAEVSX3.js.map} +0 -0
- /package/dist/{targets-G6SN6VTL.js.map → targets-XFL7CE7N.js.map} +0 -0
- /package/dist/{testimonials-JALUWWLB.js.map → testimonials-DTCPATQ2.js.map} +0 -0
- /package/dist/{themes-FW3VWZJE.js.map → themes-HBWSZRFM.js.map} +0 -0
- /package/dist/{top-companies-WR6TXTNM.js.map → top-companies-SCKUWYFG.js.map} +0 -0
- /package/dist/{transcript-JMRRJEET.js.map → transcript-H7VSMOMV.js.map} +0 -0
- /package/dist/{translate-IGCEMHXS.js.map → translate-LCLG4NYR.js.map} +0 -0
- /package/dist/{triggers-UUSPHGXX.js.map → triggers-HN3O2CNG.js.map} +0 -0
- /package/dist/{unlink-U5VBTO7P.js.map → unlink-B5CD7ZW6.js.map} +0 -0
- /package/dist/{unstage-KSYT7FOP.js.map → unstage-34W4OU5D.js.map} +0 -0
- /package/dist/{update-QF6BLM5F.js.map → update-2OTR4JQV.js.map} +0 -0
- /package/dist/{update-GFKDIJRE.js.map → update-3CKLLPYX.js.map} +0 -0
- /package/dist/{update-VBQKI72I.js.map → update-6V2A4JGZ.js.map} +0 -0
- /package/dist/{update-ZIKHDZRT.js.map → update-7FBCTLFP.js.map} +0 -0
- /package/dist/{upload-UYE73VLK.js.map → upload-72ARWDHN.js.map} +0 -0
- /package/dist/{url-options-AHJPR5VY.js.map → url-options-6WC2XQKB.js.map} +0 -0
- /package/dist/{url-params-P6MV2HKB.js.map → url-params-TAZ2S675.js.map} +0 -0
- /package/dist/{validate-HIYNINCN.js.map → validate-6F3JKVQV.js.map} +0 -0
- /package/dist/{videos-XGQL37V4.js.map → videos-UCUYPQNK.js.map} +0 -0
- /package/dist/{viewer-check-TYTVCSQW.js.map → viewer-check-XZYL55G6.js.map} +0 -0
- /package/dist/{web-PIMTCU4V.js.map → web-YYXQXIH4.js.map} +0 -0
- /package/dist/{winning-ads-P4MXWYK6.js.map → winning-ads-H3HCI5QT.js.map} +0 -0
- /package/dist/{write-commands-24EOSYWL.js.map → write-commands-DS7WNSYA.js.map} +0 -0
- /package/dist/{x-HBA6AJJA.js.map → x-K4N6QIH2.js.map} +0 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import {
|
|
2
|
+
failApi
|
|
3
|
+
} from "./chunk-C3XJ46C2.js";
|
|
4
|
+
import {
|
|
5
|
+
CREATIVE_PERFORMANCE_DEFAULT_DAYS,
|
|
6
|
+
CREATIVE_PERFORMANCE_MAX_DAYS
|
|
7
|
+
} from "./chunk-5N77IAOT.js";
|
|
8
|
+
import {
|
|
9
|
+
apiPost
|
|
10
|
+
} from "./chunk-LJEJCIHR.js";
|
|
11
|
+
import {
|
|
12
|
+
registerSchema,
|
|
13
|
+
writeJson
|
|
14
|
+
} from "./chunk-NXNOXZGB.js";
|
|
15
|
+
|
|
16
|
+
// src/commands/creatives/performance.ts
|
|
17
|
+
import { readFileSync } from "fs";
|
|
18
|
+
import path from "path";
|
|
19
|
+
import { defineCommand } from "citty";
|
|
20
|
+
import { parse as parseYaml } from "yaml";
|
|
21
|
+
var DESCRIPTION = `How each Baker creative is doing in the live Meta ads that show it: spend, impressions, CTR, CPC, results, cost per result, frequency and a fatigue verdict, next to the angle, hook, mechanism and dominant slot its definition set out to test. Video creatives add hookRate (percent of impressions that watched 3 seconds) and holdRate (percent of those that reached a ThruPlay). Use it before briefing new creatives, to learn which angle and mechanism to make next and which creatives to replace.
|
|
22
|
+
|
|
23
|
+
Start here:
|
|
24
|
+
baker creatives performance # every creative in an ad, last 30 days
|
|
25
|
+
baker creatives performance --slug spring-offer # one creative
|
|
26
|
+
baker creatives performance --days 14 --full # ids, last-7-day figures, a video's watch funnel, one row per ad
|
|
27
|
+
|
|
28
|
+
Fatigue follows the Meta playbook (07-creative-audit.md): fresh, fading, fatigued, dead, or too_early (under 14 days or 1,000 impressions) and no_delivery. A low hook rate means the first 3 seconds need new hooks; a working hook with a low hold rate means the body loses people. A creative counts once a Session's publish created an ad with it.`;
|
|
29
|
+
var ARGS = {
|
|
30
|
+
slug: { type: "string", description: "Only this creative (src/creatives/<slug>/)", required: false },
|
|
31
|
+
days: {
|
|
32
|
+
type: "string",
|
|
33
|
+
description: `Reporting window in days, ending today (1-${CREATIVE_PERFORMANCE_MAX_DAYS}, default ${CREATIVE_PERFORMANCE_DEFAULT_DAYS})`,
|
|
34
|
+
required: false
|
|
35
|
+
},
|
|
36
|
+
full: {
|
|
37
|
+
type: "boolean",
|
|
38
|
+
description: "Add ids, last-7-day CTR and cost per result, and one row per ad",
|
|
39
|
+
required: false,
|
|
40
|
+
default: false
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
registerSchema({ command: "creatives.performance", description: DESCRIPTION, args: ARGS });
|
|
44
|
+
var INSIGHT_KEYS = [
|
|
45
|
+
"idea",
|
|
46
|
+
"message",
|
|
47
|
+
"evidence",
|
|
48
|
+
"angle",
|
|
49
|
+
"hook",
|
|
50
|
+
"mechanism",
|
|
51
|
+
"dominantSlot",
|
|
52
|
+
"persona",
|
|
53
|
+
"awareness",
|
|
54
|
+
"hypothesis"
|
|
55
|
+
];
|
|
56
|
+
var FRONTMATTER = /^---\r?\n([\s\S]*?)\r?\n---/;
|
|
57
|
+
function insightValue(value) {
|
|
58
|
+
if (typeof value === "string") return value.trim() || null;
|
|
59
|
+
if (typeof value === "number" || typeof value === "boolean") return String(value);
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
function definitionInsights(markdown) {
|
|
63
|
+
const block = FRONTMATTER.exec(markdown)?.[1];
|
|
64
|
+
if (!block) return null;
|
|
65
|
+
let parsed;
|
|
66
|
+
try {
|
|
67
|
+
parsed = parseYaml(block);
|
|
68
|
+
} catch {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
if (parsed === null || typeof parsed !== "object") return null;
|
|
72
|
+
const insights = {};
|
|
73
|
+
for (const [key, raw] of Object.entries(parsed)) {
|
|
74
|
+
if (!(INSIGHT_KEYS.includes(key) || key.startsWith("source") || key.startsWith("reference"))) continue;
|
|
75
|
+
const value = insightValue(raw);
|
|
76
|
+
if (value !== null) insights[key] = value;
|
|
77
|
+
}
|
|
78
|
+
return Object.keys(insights).length > 0 ? insights : null;
|
|
79
|
+
}
|
|
80
|
+
function readLocalDefinition(slug) {
|
|
81
|
+
try {
|
|
82
|
+
return readFileSync(path.join(process.cwd(), "src", "creatives", slug, "_definition.md"), "utf8");
|
|
83
|
+
} catch {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
var COMPARED_FIELDS = [
|
|
88
|
+
{ key: "angle", label: "angle", advice: "Brief the next creative on the cheapest angle with a new hook." },
|
|
89
|
+
{ key: "mechanism", label: "mechanism", advice: "Brief the next creative on the cheapest mechanism." },
|
|
90
|
+
{ key: "dominantSlot", label: "dominant slot", advice: "Lead the next creative with the cheapest dominant slot." }
|
|
91
|
+
];
|
|
92
|
+
function cheapestHint(creatives, { key, label, advice }) {
|
|
93
|
+
const byValue = /* @__PURE__ */ new Map();
|
|
94
|
+
for (const creative of creatives) {
|
|
95
|
+
const value = creative.definition?.[key];
|
|
96
|
+
if (!value || creative.costPerResult === null) continue;
|
|
97
|
+
const best = byValue.get(value);
|
|
98
|
+
if (!best || (best.costPerResult ?? Number.POSITIVE_INFINITY) > creative.costPerResult)
|
|
99
|
+
byValue.set(value, creative);
|
|
100
|
+
}
|
|
101
|
+
if (byValue.size < 2) return null;
|
|
102
|
+
const ranked = [...byValue.entries()].sort(([, a], [, b]) => (a.costPerResult ?? 0) - (b.costPerResult ?? 0)).map(
|
|
103
|
+
([value, creative]) => `"${value}" ${creative.costPerResult}${creative.currency ? ` ${creative.currency}` : ""} (${creative.slug ?? creative.title})`
|
|
104
|
+
);
|
|
105
|
+
return `Cost per result by ${label}: ${ranked.join(", ")}. ${advice}`;
|
|
106
|
+
}
|
|
107
|
+
function withDefinitions(response, readDefinition) {
|
|
108
|
+
const creatives = response.data.creatives.map((creative) => {
|
|
109
|
+
const markdown = creative.slug ? readDefinition(creative.slug) : null;
|
|
110
|
+
const definition = markdown ? definitionInsights(markdown) : null;
|
|
111
|
+
return definition ? { ...creative, definition } : creative;
|
|
112
|
+
});
|
|
113
|
+
const hints = [...response.hints ?? []];
|
|
114
|
+
for (const field of COMPARED_FIELDS) {
|
|
115
|
+
const hint = cheapestHint(creatives, field);
|
|
116
|
+
if (hint) hints.push(hint);
|
|
117
|
+
}
|
|
118
|
+
const unnamed = creatives.filter((creative) => !creative.definition?.angle).map((c) => c.slug ?? c.title);
|
|
119
|
+
if (unnamed.length > 0) {
|
|
120
|
+
hints.push(
|
|
121
|
+
`No angle recorded for: ${unnamed.join(", ")}. Add angle and hook to src/creatives/<slug>/_definition.md so results show which angle works.`
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
return { ...response, data: { ...response.data, creatives }, ...hints.length > 0 ? { hints } : {} };
|
|
125
|
+
}
|
|
126
|
+
function syncedCreativesHint(slug) {
|
|
127
|
+
return `Live Meta read. Across every platform, from the synced copy (no rate limit, full history): baker ads performance creatives ranks them against their ad-group peers (madeInBaker names this creative), and baker ads performance live-in --creative ${slug ?? "<slug>"} lists the live campaigns showing it.`;
|
|
128
|
+
}
|
|
129
|
+
function parseDays(raw) {
|
|
130
|
+
if (raw === void 0) return void 0;
|
|
131
|
+
const days = Number(raw);
|
|
132
|
+
if (!Number.isInteger(days) || days < 1 || days > CREATIVE_PERFORMANCE_MAX_DAYS) {
|
|
133
|
+
throw new Error(`--days must be a whole number from 1 to ${CREATIVE_PERFORMANCE_MAX_DAYS}`);
|
|
134
|
+
}
|
|
135
|
+
return days;
|
|
136
|
+
}
|
|
137
|
+
var performanceCommand = defineCommand({
|
|
138
|
+
meta: { name: "performance", description: DESCRIPTION },
|
|
139
|
+
args: ARGS,
|
|
140
|
+
run: async ({ args }) => {
|
|
141
|
+
try {
|
|
142
|
+
const body = {};
|
|
143
|
+
const slug = args.slug;
|
|
144
|
+
if (slug) body.slug = slug;
|
|
145
|
+
const days = parseDays(args.days);
|
|
146
|
+
if (days !== void 0) body.days = days;
|
|
147
|
+
if (args.full) body.full = true;
|
|
148
|
+
const response = await apiPost("/api/creatives/performance", body);
|
|
149
|
+
const out = withDefinitions(response, readLocalDefinition);
|
|
150
|
+
writeJson({ ...out, hints: [...out.hints ?? [], syncedCreativesHint(slug)] });
|
|
151
|
+
} catch (err) {
|
|
152
|
+
failApi(err);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
export {
|
|
158
|
+
definitionInsights,
|
|
159
|
+
withDefinitions,
|
|
160
|
+
parseDays,
|
|
161
|
+
performanceCommand
|
|
162
|
+
};
|
|
163
|
+
//# sourceMappingURL=chunk-VZIYTP3X.js.map
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseXApiError
|
|
3
|
+
} from "./chunk-FIN4ZXGJ.js";
|
|
4
|
+
import {
|
|
5
|
+
resolveXAccountId
|
|
6
|
+
} from "./chunk-3GXHML4V.js";
|
|
7
|
+
import {
|
|
8
|
+
writeAdsJson,
|
|
9
|
+
writeJsonEnvelope
|
|
10
|
+
} from "./chunk-MPTNN35I.js";
|
|
11
|
+
import {
|
|
12
|
+
X_DRAFT_BATCH_MAX,
|
|
13
|
+
xDraftOpInputSchema
|
|
14
|
+
} from "./chunk-5N77IAOT.js";
|
|
15
|
+
import {
|
|
16
|
+
ApiError,
|
|
17
|
+
apiPost
|
|
18
|
+
} from "./chunk-LJEJCIHR.js";
|
|
19
|
+
import {
|
|
20
|
+
requireChatId
|
|
21
|
+
} from "./chunk-B64KJW5C.js";
|
|
22
|
+
|
|
23
|
+
// src/commands/ads/x/write-shared.ts
|
|
24
|
+
function failWriteValidation(message) {
|
|
25
|
+
writeJsonEnvelope({ ok: false, error: { code: "VALIDATION_ERROR", message } });
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
function failPreflight(fields) {
|
|
29
|
+
writeJsonEnvelope({
|
|
30
|
+
ok: false,
|
|
31
|
+
error: {
|
|
32
|
+
code: "VALIDATION_ERROR",
|
|
33
|
+
message: fields.map((f) => f.path ? `${f.path}: ${f.message}` : f.message).join("; "),
|
|
34
|
+
fields,
|
|
35
|
+
fix: {
|
|
36
|
+
action: "reject",
|
|
37
|
+
explanation: "Fix the named fields and stage again. Nothing was staged \u2014 the draft is exactly as it was before this call."
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
function handleXWriteError(err, accountId) {
|
|
44
|
+
if (err instanceof ApiError) {
|
|
45
|
+
writeAdsJson(parseXApiError(err.message, accountId));
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
writeAdsJson({ ok: false, error: { code: "NETWORK_ERROR", message: "Unexpected error" } });
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
function decimalPlaces(value) {
|
|
52
|
+
const [mantissa, exponent] = String(value).trim().split(/e/i);
|
|
53
|
+
const written = (mantissa?.split(".")[1] ?? "").length;
|
|
54
|
+
return Math.max(0, written - (exponent ? Number(exponent) : 0));
|
|
55
|
+
}
|
|
56
|
+
function parseXMoney(value) {
|
|
57
|
+
if (value === void 0 || value === "") {
|
|
58
|
+
return { ok: true, micros: void 0 };
|
|
59
|
+
}
|
|
60
|
+
const amount = Number(value);
|
|
61
|
+
if (!Number.isFinite(amount) || amount <= 0) {
|
|
62
|
+
return { ok: false, reason: "must be a positive amount, for example 12.50" };
|
|
63
|
+
}
|
|
64
|
+
if (decimalPlaces(value) > 6) {
|
|
65
|
+
return { ok: false, reason: "is finer than X can express \u2014 it takes whole micros" };
|
|
66
|
+
}
|
|
67
|
+
return { ok: true, micros: Math.round(amount * 1e6) };
|
|
68
|
+
}
|
|
69
|
+
function microsFromArg(value, flag) {
|
|
70
|
+
const parsed = parseXMoney(value);
|
|
71
|
+
if (!parsed.ok) {
|
|
72
|
+
failWriteValidation(`${flag} ${parsed.reason}`);
|
|
73
|
+
}
|
|
74
|
+
return parsed.micros;
|
|
75
|
+
}
|
|
76
|
+
function csvArg(value) {
|
|
77
|
+
if (typeof value !== "string" || value.length === 0) {
|
|
78
|
+
return void 0;
|
|
79
|
+
}
|
|
80
|
+
const parts = value.split(",").map((s) => s.trim()).filter(Boolean);
|
|
81
|
+
return parts.length > 0 ? parts : void 0;
|
|
82
|
+
}
|
|
83
|
+
function compact(payload) {
|
|
84
|
+
return Object.fromEntries(Object.entries(payload).filter(([, value]) => value !== void 0));
|
|
85
|
+
}
|
|
86
|
+
function batchNudge(data) {
|
|
87
|
+
const count = data?.sameKindStaged;
|
|
88
|
+
if (!count) {
|
|
89
|
+
return [];
|
|
90
|
+
}
|
|
91
|
+
return [
|
|
92
|
+
`${count} other change${count === 1 ? "" : "s"} of this kind and payload ${count === 1 ? "is" : "are"} already staged \u2014 pass every id to one call (\`--ids a,b,c\`) instead of one call each.`
|
|
93
|
+
];
|
|
94
|
+
}
|
|
95
|
+
async function stageXOp(raw, hints) {
|
|
96
|
+
const preflight = xDraftOpInputSchema.safeParse(raw);
|
|
97
|
+
if (!preflight.success) {
|
|
98
|
+
failPreflight(preflight.error.issues.map((issue) => ({ path: issue.path.join("."), message: issue.message })));
|
|
99
|
+
}
|
|
100
|
+
const accountId = String(raw.accountId ?? "\u2014");
|
|
101
|
+
try {
|
|
102
|
+
const chatId = requireChatId();
|
|
103
|
+
const response = await apiPost("/api/ads/x/draft/stage", { chatId, op: preflight.data });
|
|
104
|
+
const allHints = [...batchNudge(response.data), ...hints ?? []];
|
|
105
|
+
writeJsonEnvelope(allHints.length > 0 ? { ...response, hints: allHints } : response);
|
|
106
|
+
} catch (err) {
|
|
107
|
+
handleXWriteError(err, accountId);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
async function stageXOps(rawOps, hints) {
|
|
111
|
+
if (rawOps.length === 1 && rawOps[0]) {
|
|
112
|
+
await stageXOp(rawOps[0], hints);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (rawOps.length > X_DRAFT_BATCH_MAX) {
|
|
116
|
+
failWriteValidation(`at most ${X_DRAFT_BATCH_MAX} changes can be staged in one call`);
|
|
117
|
+
}
|
|
118
|
+
const ops = [];
|
|
119
|
+
for (const [index, raw] of rawOps.entries()) {
|
|
120
|
+
const preflight = xDraftOpInputSchema.safeParse(raw);
|
|
121
|
+
if (!preflight.success) {
|
|
122
|
+
failPreflight(
|
|
123
|
+
preflight.error.issues.map((issue) => ({
|
|
124
|
+
path: `ops[${index}]${issue.path.length > 0 ? `.${issue.path.join(".")}` : ""}`,
|
|
125
|
+
message: issue.message
|
|
126
|
+
}))
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
ops.push(preflight.data);
|
|
130
|
+
}
|
|
131
|
+
const accountId = String(rawOps[0]?.accountId ?? "\u2014");
|
|
132
|
+
try {
|
|
133
|
+
const chatId = requireChatId();
|
|
134
|
+
const response = await apiPost("/api/ads/x/draft/stage-batch", { chatId, ops });
|
|
135
|
+
writeJsonEnvelope(hints && hints.length > 0 ? { ...response, hints } : response);
|
|
136
|
+
} catch (err) {
|
|
137
|
+
handleXWriteError(err, accountId);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
async function stageAccountId(args) {
|
|
141
|
+
return await resolveXAccountId(args);
|
|
142
|
+
}
|
|
143
|
+
function requireTarget(args, name) {
|
|
144
|
+
const value = args[name];
|
|
145
|
+
if (typeof value !== "string" || value.length === 0) {
|
|
146
|
+
failWriteValidation(`${name} is required`);
|
|
147
|
+
}
|
|
148
|
+
return value;
|
|
149
|
+
}
|
|
150
|
+
function requireTargets(args, name) {
|
|
151
|
+
const ids = csvArg(args[name]);
|
|
152
|
+
if (!ids) {
|
|
153
|
+
failWriteValidation(`${name} is required \u2014 pass one or more ids, comma-separated`);
|
|
154
|
+
}
|
|
155
|
+
return ids;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export {
|
|
159
|
+
failWriteValidation,
|
|
160
|
+
microsFromArg,
|
|
161
|
+
csvArg,
|
|
162
|
+
compact,
|
|
163
|
+
stageXOp,
|
|
164
|
+
stageXOps,
|
|
165
|
+
stageAccountId,
|
|
166
|
+
requireTarget,
|
|
167
|
+
requireTargets
|
|
168
|
+
};
|
|
169
|
+
//# sourceMappingURL=chunk-WEBWXSFF.js.map
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formEventKey
|
|
3
|
+
} from "./chunk-PILLZPNC.js";
|
|
4
|
+
import {
|
|
5
|
+
flowNodeTriggers
|
|
6
|
+
} from "./chunk-5N77IAOT.js";
|
|
7
|
+
|
|
8
|
+
// ../api/src/analytics/flowEventKeys.ts
|
|
9
|
+
function flowNodes(node, acc = []) {
|
|
10
|
+
if (!node || typeof node !== "object") return acc;
|
|
11
|
+
const record = node;
|
|
12
|
+
acc.push(record);
|
|
13
|
+
if (Array.isArray(record.children)) for (const child of record.children) flowNodes(child, acc);
|
|
14
|
+
return acc;
|
|
15
|
+
}
|
|
16
|
+
function flowEventKeys(tree, slug) {
|
|
17
|
+
const primary = [];
|
|
18
|
+
const secondary = [];
|
|
19
|
+
const nodes = flowNodes(tree).filter((node) => typeof node.id === "string" && node.id !== "");
|
|
20
|
+
if (nodes.length === 0) return [];
|
|
21
|
+
for (const node of nodes) {
|
|
22
|
+
const id = node.id;
|
|
23
|
+
const triggers = flowNodeTriggers(node.nodeData);
|
|
24
|
+
for (const triggerId of triggers.available) {
|
|
25
|
+
const candidate = {
|
|
26
|
+
eventKey: formEventKey(slug, id, triggerId),
|
|
27
|
+
nodeId: id,
|
|
28
|
+
nodeName: typeof node.name === "string" ? node.name : id,
|
|
29
|
+
nodeType: triggers.type,
|
|
30
|
+
triggerId,
|
|
31
|
+
isCompletion: triggers.completion === triggerId
|
|
32
|
+
};
|
|
33
|
+
(candidate.isCompletion ? primary : secondary).push(candidate);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return [
|
|
37
|
+
...primary,
|
|
38
|
+
...secondary,
|
|
39
|
+
{
|
|
40
|
+
eventKey: `submit:${slug}`,
|
|
41
|
+
nodeId: null,
|
|
42
|
+
nodeName: "the Form ran out of steps",
|
|
43
|
+
nodeType: null,
|
|
44
|
+
triggerId: null,
|
|
45
|
+
// A Form reaching its last node is as primary as an outcome gets for a
|
|
46
|
+
// Form with no widget in it — but it never fires on one that ends in a
|
|
47
|
+
// booking widget or a redirect, so it does not lead the list.
|
|
48
|
+
isCompletion: false
|
|
49
|
+
}
|
|
50
|
+
];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export {
|
|
54
|
+
flowNodes,
|
|
55
|
+
flowEventKeys
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=chunk-WOHTTXLG.js.map
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import {
|
|
2
|
+
NUMERIC_ID_REGEX
|
|
3
|
+
} from "./chunk-IMS53EQU.js";
|
|
4
|
+
|
|
5
|
+
// ../api/src/ads-google/change-history.ts
|
|
6
|
+
var CHANGE_SCOPES = ["detail", "summary"];
|
|
7
|
+
var CHANGE_SCOPE_MAX_DAYS = {
|
|
8
|
+
detail: 30,
|
|
9
|
+
summary: 90
|
|
10
|
+
};
|
|
11
|
+
var DEFAULT_CHANGE_DAYS = 7;
|
|
12
|
+
var CHANGE_RESOURCE_TYPES = [
|
|
13
|
+
"CAMPAIGN",
|
|
14
|
+
"CAMPAIGN_CRITERION",
|
|
15
|
+
"AD_GROUP",
|
|
16
|
+
"AD_GROUP_AD",
|
|
17
|
+
"AD_GROUP_CRITERION"
|
|
18
|
+
];
|
|
19
|
+
var CHANGES_MAX_LIMIT = 1e3;
|
|
20
|
+
var MAX_CHANGE_DAYS = CHANGE_SCOPE_MAX_DAYS.summary;
|
|
21
|
+
function isChangeLookbackWithinReach(days, scope) {
|
|
22
|
+
return days <= CHANGE_SCOPE_MAX_DAYS[scope];
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// ../api/src/ads-google/keyword-planning.ts
|
|
26
|
+
import { z } from "zod";
|
|
27
|
+
var ISO_DATE = /^\d{4}-\d{2}-\d{2}$/;
|
|
28
|
+
var micros = z.number().int().positive();
|
|
29
|
+
var FORECAST_MATCH_TYPES = ["EXACT", "PHRASE", "BROAD"];
|
|
30
|
+
var googleForecastBiddingSchema = z.discriminatedUnion("strategy", [
|
|
31
|
+
z.object({ strategy: z.literal("MANUAL_CPC"), maxCpcBidMicros: micros, dailyBudgetMicros: micros.optional() }),
|
|
32
|
+
z.object({
|
|
33
|
+
strategy: z.literal("MAXIMIZE_CLICKS"),
|
|
34
|
+
dailyTargetSpendMicros: micros,
|
|
35
|
+
maxCpcBidCeilingMicros: micros.optional()
|
|
36
|
+
}),
|
|
37
|
+
z.object({ strategy: z.literal("MAXIMIZE_CONVERSIONS"), dailyTargetSpendMicros: micros })
|
|
38
|
+
]);
|
|
39
|
+
var googleKeywordForecastRequestSchema = z.object({
|
|
40
|
+
customerId: z.string().regex(NUMERIC_ID_REGEX, "customerId must be the bare numeric customer id"),
|
|
41
|
+
managerId: z.string().optional(),
|
|
42
|
+
/** One forecast ad group per entry; most forecasts are a single group. */
|
|
43
|
+
adGroups: z.array(
|
|
44
|
+
z.object({
|
|
45
|
+
keywords: z.array(z.object({ text: z.string().trim().min(1).max(80), matchType: z.enum(FORECAST_MATCH_TYPES) })).min(1)
|
|
46
|
+
})
|
|
47
|
+
).min(1),
|
|
48
|
+
locationIds: z.array(z.string().regex(NUMERIC_ID_REGEX)).optional(),
|
|
49
|
+
languageId: z.string().regex(NUMERIC_ID_REGEX).optional(),
|
|
50
|
+
bidding: googleForecastBiddingSchema,
|
|
51
|
+
/** Must start in the future and end within a year. Without them Baker forecasts the 30 days from tomorrow. */
|
|
52
|
+
startDate: z.string().regex(ISO_DATE).optional(),
|
|
53
|
+
endDate: z.string().regex(ISO_DATE).optional(),
|
|
54
|
+
currencyCode: z.string().length(3).optional()
|
|
55
|
+
}).refine((body) => body.startDate === void 0 === (body.endDate === void 0), {
|
|
56
|
+
message: "Give both --start and --end, or neither (the forecast then covers the 30 days from tomorrow)",
|
|
57
|
+
path: ["endDate"]
|
|
58
|
+
});
|
|
59
|
+
var KEYWORD_FORECAST_SOURCE = "keyword_planner_forecast";
|
|
60
|
+
var googleKeywordForecastResponseSchema = z.object({
|
|
61
|
+
source: z.literal(KEYWORD_FORECAST_SOURCE),
|
|
62
|
+
period: z.object({ startDate: z.string(), endDate: z.string() }),
|
|
63
|
+
forecast_clicks: z.number().nullable(),
|
|
64
|
+
forecast_cost_micros: z.number().nullable(),
|
|
65
|
+
forecast_conversions: z.number().nullable(),
|
|
66
|
+
forecast_average_cpc_micros: z.number().nullable(),
|
|
67
|
+
forecast_average_cpa_micros: z.number().nullable()
|
|
68
|
+
});
|
|
69
|
+
var googleAdGroupThemesRequestSchema = z.object({
|
|
70
|
+
customerId: z.string().regex(NUMERIC_ID_REGEX, "customerId must be the bare numeric customer id"),
|
|
71
|
+
managerId: z.string().optional(),
|
|
72
|
+
keywords: z.array(z.string().trim().min(1)).min(1),
|
|
73
|
+
/** Existing ad groups to sort the keywords into: numeric ids or `customers/{cid}/adGroups/{id}`. */
|
|
74
|
+
adGroups: z.array(z.string().min(1)).min(1)
|
|
75
|
+
});
|
|
76
|
+
var googleAdGroupThemesResponseSchema = z.object({
|
|
77
|
+
suggestions: z.array(
|
|
78
|
+
z.object({
|
|
79
|
+
keyword: z.string(),
|
|
80
|
+
suggested_keyword: z.string(),
|
|
81
|
+
match_type: z.string(),
|
|
82
|
+
ad_group: z.string(),
|
|
83
|
+
campaign: z.string()
|
|
84
|
+
})
|
|
85
|
+
),
|
|
86
|
+
unusable_ad_groups: z.array(z.object({ ad_group: z.string(), campaign: z.string() }))
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
// ../api/src/ads-google/url-options.ts
|
|
90
|
+
import { z as z2 } from "zod";
|
|
91
|
+
var URL_OPTION_LEVELS = ["account", "campaign", "ad_group", "ad"];
|
|
92
|
+
var googleUrlOptionValueSchema = z2.discriminatedUnion("state", [
|
|
93
|
+
z2.object({ state: z2.literal("set"), value: z2.string() }),
|
|
94
|
+
z2.object({ state: z2.literal("not_set") }),
|
|
95
|
+
z2.object({ state: z2.literal("not_read"), reason: z2.string() })
|
|
96
|
+
]);
|
|
97
|
+
var googleUrlOptionsRequestSchema = z2.object({
|
|
98
|
+
customerId: z2.string().regex(NUMERIC_ID_REGEX, "customerId must be the bare numeric customer id"),
|
|
99
|
+
managerId: z2.string().optional(),
|
|
100
|
+
/** Compact by default: only campaigns that actually override the account. `full` lists every campaign. */
|
|
101
|
+
full: z2.boolean().optional(),
|
|
102
|
+
skipCache: z2.boolean().optional()
|
|
103
|
+
});
|
|
104
|
+
var googleUrlOptionsCampaignSchema = z2.object({
|
|
105
|
+
id: z2.string(),
|
|
106
|
+
name: z2.string(),
|
|
107
|
+
status: z2.string(),
|
|
108
|
+
final_url_suffix: googleUrlOptionValueSchema,
|
|
109
|
+
tracking_url_template: googleUrlOptionValueSchema
|
|
110
|
+
});
|
|
111
|
+
var googleUrlOptionsAdGroupSchema = z2.object({
|
|
112
|
+
id: z2.string(),
|
|
113
|
+
name: z2.string(),
|
|
114
|
+
status: z2.string(),
|
|
115
|
+
campaign_id: z2.string(),
|
|
116
|
+
final_url_suffix: googleUrlOptionValueSchema,
|
|
117
|
+
tracking_url_template: googleUrlOptionValueSchema
|
|
118
|
+
});
|
|
119
|
+
var googleUrlOptionsAdSchema = z2.object({
|
|
120
|
+
id: z2.string(),
|
|
121
|
+
status: z2.string(),
|
|
122
|
+
ad_group_id: z2.string(),
|
|
123
|
+
campaign_id: z2.string(),
|
|
124
|
+
final_url_suffix: googleUrlOptionValueSchema,
|
|
125
|
+
tracking_url_template: googleUrlOptionValueSchema
|
|
126
|
+
});
|
|
127
|
+
var googleUrlOptionsResponseSchema = z2.object({
|
|
128
|
+
customer_id: z2.string(),
|
|
129
|
+
account: z2.object({
|
|
130
|
+
level: z2.literal("account"),
|
|
131
|
+
read: z2.boolean(),
|
|
132
|
+
final_url_suffix: googleUrlOptionValueSchema,
|
|
133
|
+
tracking_url_template: googleUrlOptionValueSchema
|
|
134
|
+
}),
|
|
135
|
+
campaigns: z2.object({
|
|
136
|
+
level: z2.literal("campaign"),
|
|
137
|
+
read: z2.boolean(),
|
|
138
|
+
/** Campaigns actually observed. 0 with `read: true` means the account has no non-removed campaigns. */
|
|
139
|
+
campaigns_read: z2.number().int().nonnegative(),
|
|
140
|
+
/** Campaigns observed to carry no override of their own — an explicit finding, not an omission. */
|
|
141
|
+
campaigns_without_override: z2.number().int().nonnegative(),
|
|
142
|
+
overrides: z2.array(googleUrlOptionsCampaignSchema),
|
|
143
|
+
/** Compact mode only: campaigns read but not listed because they carry no override. */
|
|
144
|
+
omitted: z2.number().int().nonnegative()
|
|
145
|
+
}),
|
|
146
|
+
/**
|
|
147
|
+
* Ad groups and ads that carry an override of their own — read by asking Google only for the
|
|
148
|
+
* entities whose suffix or template IS NOT NULL, so an account of thousands of ads costs one page.
|
|
149
|
+
* `read: true` with no overrides is a finding: nothing at this level overrides the levels above.
|
|
150
|
+
* `truncated` means more overriding entities exist than one page listed.
|
|
151
|
+
*/
|
|
152
|
+
ad_groups: z2.object({
|
|
153
|
+
level: z2.literal("ad_group"),
|
|
154
|
+
read: z2.boolean(),
|
|
155
|
+
overrides: z2.array(googleUrlOptionsAdGroupSchema),
|
|
156
|
+
truncated: z2.boolean()
|
|
157
|
+
}),
|
|
158
|
+
ads: z2.object({
|
|
159
|
+
level: z2.literal("ad"),
|
|
160
|
+
read: z2.boolean(),
|
|
161
|
+
overrides: z2.array(googleUrlOptionsAdSchema),
|
|
162
|
+
truncated: z2.boolean()
|
|
163
|
+
}),
|
|
164
|
+
/** Levels this command could not read. Nothing here may be reported as "not configured". */
|
|
165
|
+
levels_not_read: z2.array(z2.object({ level: z2.enum(URL_OPTION_LEVELS), reason: z2.string() }))
|
|
166
|
+
});
|
|
167
|
+
var ACCOUNT_URL_OPTIONS_LOCATION = "Google Ads UI \u2192 Admin \u2192 Account settings \u2192 Tracking (account-level tracking template and final URL suffix)";
|
|
168
|
+
var ACCOUNT_URL_OPTIONS_STAGE_COMMAND = 'baker ads google account update --customer-id <id> --final-url-suffix "utm_agency=baker"';
|
|
169
|
+
function isSet(value) {
|
|
170
|
+
return value.state === "set";
|
|
171
|
+
}
|
|
172
|
+
function entityOverrideHints(label, plural, field, level) {
|
|
173
|
+
if (!level.read) return [];
|
|
174
|
+
const hints = [];
|
|
175
|
+
const overriding = level.overrides.filter((entity) => isSet(entity.final_url_suffix));
|
|
176
|
+
if (overriding.length > 0) {
|
|
177
|
+
const named = overriding.slice(0, 5).map((entity) => entity.name || entity.id).join(", ");
|
|
178
|
+
hints.push(
|
|
179
|
+
`${overriding.length} ${label}(s) set their own final URL suffix (${named}${overriding.length > 5 ? ", \u2026" : ""}). It REPLACES the campaign and account suffix for every click through it, so an account-wide parameter must be added to theirs too.`
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
if (level.truncated) {
|
|
183
|
+
hints.push(
|
|
184
|
+
`More ${plural} override the URL options than one page lists \u2014 read them all with \`baker ads google query\` on ${field}.final_url_suffix IS NOT NULL --all before saying which ones do.`
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
return hints;
|
|
188
|
+
}
|
|
189
|
+
function urlOptionsHints(report) {
|
|
190
|
+
const hints = [];
|
|
191
|
+
const { account, campaigns } = report;
|
|
192
|
+
if (!account.read) {
|
|
193
|
+
hints.push(
|
|
194
|
+
"The account level did NOT read \u2014 its URL options are unknown, not empty. Re-run before telling the user anything about account-wide tagging."
|
|
195
|
+
);
|
|
196
|
+
} else if (account.final_url_suffix.state === "not_set") {
|
|
197
|
+
hints.push(
|
|
198
|
+
`No account-level final URL suffix is set. An account-wide parameter (agency/partner tagging such as utm_agency=\u2026) belongs at the account level so it reaches every ad \u2014 stage it with \`${ACCOUNT_URL_OPTIONS_STAGE_COMMAND}\` (applies at Publish; the user sees it under ${ACCOUNT_URL_OPTIONS_LOCATION}).`
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
if (!campaigns.read) {
|
|
202
|
+
hints.push(
|
|
203
|
+
"Campaign-level URL options did NOT read \u2014 do not report that no campaign overrides exist. Re-run before concluding."
|
|
204
|
+
);
|
|
205
|
+
} else {
|
|
206
|
+
const overriding = campaigns.overrides.filter((c) => isSet(c.final_url_suffix));
|
|
207
|
+
if (overriding.length > 0) {
|
|
208
|
+
const named = overriding.slice(0, 5).map((c) => c.name || c.id).join(", ");
|
|
209
|
+
hints.push(
|
|
210
|
+
`A campaign's final URL suffix REPLACES the account-level one for that campaign \u2014 it does not merge. ${overriding.length} campaign(s) set their own (${named}${overriding.length > 5 ? ", \u2026" : ""}) and will not pick up an account-wide parameter until their own suffix carries it too. Every other campaign read here inherits the account level normally.`
|
|
211
|
+
);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
hints.push(...entityOverrideHints("ad group", "ad groups", "ad_group", report.ad_groups));
|
|
215
|
+
hints.push(...entityOverrideHints("ad", "ads", "ad_group_ad.ad", report.ads));
|
|
216
|
+
const overridingLevelsNotRead = report.levels_not_read.filter((level) => level.level !== "account");
|
|
217
|
+
if (overridingLevelsNotRead.length > 0) {
|
|
218
|
+
hints.push(
|
|
219
|
+
`Not read at this level: ${overridingLevelsNotRead.map((l) => l.level).join(", ")}. A suffix set there still wins over the levels above it.`
|
|
220
|
+
);
|
|
221
|
+
}
|
|
222
|
+
if (campaigns.omitted > 0) {
|
|
223
|
+
hints.push(`${campaigns.omitted} campaign(s) read with no override of their own are not listed \u2014 pass --full.`);
|
|
224
|
+
}
|
|
225
|
+
return hints;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
export {
|
|
229
|
+
CHANGE_SCOPES,
|
|
230
|
+
CHANGE_SCOPE_MAX_DAYS,
|
|
231
|
+
DEFAULT_CHANGE_DAYS,
|
|
232
|
+
CHANGE_RESOURCE_TYPES,
|
|
233
|
+
CHANGES_MAX_LIMIT,
|
|
234
|
+
isChangeLookbackWithinReach,
|
|
235
|
+
googleKeywordForecastRequestSchema,
|
|
236
|
+
urlOptionsHints
|
|
237
|
+
};
|
|
238
|
+
//# sourceMappingURL=chunk-WZXMZFVB.js.map
|