@koda-sl/baker-cli 0.554.0 → 0.556.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 +10 -4
- package/dist/account-H5CL6KUY.js +82 -0
- package/dist/account-assets-QMKT5AT7.js +290 -0
- package/dist/account-level-BELF6JHB.js +611 -0
- package/dist/account-reads-T6GTSAXE.js +219 -0
- package/dist/account-users-ZGJCVGX4.js +64 -0
- package/dist/accounts-EXQNPSYH.js +701 -0
- package/dist/accounts-GNVLFZ3X.js +80 -0
- package/dist/actions-Q2BMP27K.js +55 -0
- package/dist/activecampaign-SJO2YK6M.js +938 -0
- package/dist/add-Q3FGYX5Q.js +305 -0
- package/dist/add-YGQBSEVK.js +107 -0
- package/dist/ads-CWKKIYD6.js +48 -0
- package/dist/ads-H5AEYIY3.js +120 -0
- package/dist/adsets-BUIT7HF2.js +182 -0
- package/dist/advertisers-ZAHXMIAT.js +123 -0
- package/dist/analytics-QW5ZXDJR.js +447 -0
- package/dist/analytics-XPU5SANS.js +2437 -0
- package/dist/animate-Q43SOWB4.js +480 -0
- package/dist/asset-writes-JVFE457M.js +50 -0
- package/dist/assign-HJ2NXW4W.js +80 -0
- package/dist/audience-size-IM3N6W7C.js +76 -0
- package/dist/audience-writes-DWSCHYQF.js +327 -0
- package/dist/audiences-PYBJU2GV.js +106 -0
- package/dist/audit-N3LAQMD4.js +154 -0
- package/dist/autocomplete-FBTPT5MA.js +114 -0
- package/dist/avatars-3OMFIKOJ.js +38 -0
- package/dist/bid-pricing-UUAC4GTQ.js +103 -0
- package/dist/brand-IZYD5SBJ.js +22 -0
- package/dist/brief-TNOKTNFJ.js +543 -0
- package/dist/campaign-groups-3IUOLEK2.js +99 -0
- package/dist/campaign-writes-Y7QNFOE7.js +168 -0
- package/dist/campaigns-2Z6WXIVA.js +130 -0
- package/dist/campaigns-B2AUW4TV.js +111 -0
- package/dist/campaigns-IDEA3LOK.js +113 -0
- package/dist/canvas-PVNQ7YWV.js +46 -0
- package/dist/capabilities-FVMMLKPY.js +147 -0
- package/dist/catalog-URTZYAPU.js +66 -0
- package/dist/catalogs-OEUNVE4N.js +782 -0
- package/dist/chatgpt-6KBW7F5S.js +47 -0
- package/dist/chats-EENMDXWZ.js +449 -0
- package/dist/check-7735BPTR.js +107 -0
- package/dist/chunk-2QGGI7MF.js +831 -0
- package/dist/chunk-3OMFSYQ3.js +344 -0
- package/dist/chunk-4N3Y5QWW.js +29 -0
- package/dist/chunk-4N3Y5QWW.js.map +1 -0
- package/dist/chunk-65CQYRMK.js +98 -0
- package/dist/chunk-6MZFOMLU.js +225 -0
- package/dist/chunk-757ZFIL4.js +910 -0
- package/dist/chunk-75HAGIH6.js +61 -0
- package/dist/chunk-7BVRFQN4.js +430 -0
- package/dist/chunk-7TDJCDKT.js +163 -0
- package/dist/chunk-7WDH6OKW.js +1902 -0
- package/dist/chunk-AL4MRNYI.js +709 -0
- package/dist/chunk-AMM4JMSN.js +91 -0
- package/dist/chunk-AU3IMZZC.js +19 -0
- package/dist/chunk-BMNOMOWP.js +156 -0
- package/dist/chunk-BS2MC62Y.js +203 -0
- package/dist/chunk-C6PWVZQE.js +103 -0
- package/dist/chunk-CDTAKCJR.js +178 -0
- package/dist/chunk-CH44XVPE.js +142 -0
- package/dist/chunk-CJWLDKFO.js +494 -0
- package/dist/chunk-DWPOAU4Z.js +5471 -0
- package/dist/chunk-EENYLJUN.js +225 -0
- package/dist/chunk-EGVWSAWY.js +83 -0
- package/dist/chunk-EGVWSAWY.js.map +1 -0
- package/dist/chunk-EJBLF2LI.js +167 -0
- package/dist/chunk-EJMPKO6V.js +287 -0
- package/dist/chunk-EKXLJRO3.js +197 -0
- package/dist/chunk-EL3TDR5S.js +1744 -0
- package/dist/chunk-GRDZWZKQ.js +249 -0
- package/dist/chunk-GVUBRSD3.js +51 -0
- package/dist/chunk-GYREQDTJ.js +392 -0
- package/dist/chunk-HBRXFQQV.js +3510 -0
- package/dist/chunk-HLHR3EK2.js +23 -0
- package/dist/chunk-IMFIRELA.js +547 -0
- package/dist/chunk-IOKD77L2.js +89 -0
- package/dist/chunk-KDAINT54.js +131 -0
- package/dist/chunk-KKKZRQFY.js +297 -0
- package/dist/chunk-KLO36KTV.js +224 -0
- package/dist/chunk-LC6PVPJX.js +76 -0
- package/dist/chunk-LETR3RQE.js +275 -0
- package/dist/chunk-MAVT2CJ4.js +66 -0
- package/dist/chunk-MJDN7CR7.js +930 -0
- package/dist/chunk-MKLAZD23.js +7857 -0
- package/dist/chunk-MKLAZD23.js.map +1 -0
- package/dist/chunk-N3PASNUA.js +136 -0
- package/dist/chunk-NL77JRKE.js +170 -0
- package/dist/chunk-OTFHIGEO.js +207 -0
- package/dist/chunk-PCUWBZM3.js +169 -0
- package/dist/chunk-PNWXTOQ4.js +455 -0
- package/dist/chunk-PQFTKHDA.js +479 -0
- package/dist/chunk-Q5DFEVLE.js +148 -0
- package/dist/chunk-QAJFMVGU.js +91 -0
- package/dist/chunk-QXCGWAC6.js +399 -0
- package/dist/chunk-RKDMYL4A.js +438 -0
- package/dist/chunk-SCBSAIVV.js +392 -0
- package/dist/chunk-SPBUE7R4.js +685 -0
- package/dist/chunk-TRAMBRVO.js +191 -0
- package/dist/chunk-TWFZIHKK.js +219 -0
- package/dist/chunk-UCJAPB5Y.js +334 -0
- package/dist/chunk-VFDWUIGR.js +57 -0
- package/dist/chunk-VN3WDB4O.js +45 -0
- package/dist/chunk-VN3WDB4O.js.map +1 -0
- package/dist/chunk-WC3YSN7L.js +604 -0
- package/dist/chunk-X3GWGFZP.js +5368 -0
- package/dist/chunk-X6U3B6YK.js +343 -0
- package/dist/chunk-X6U3B6YK.js.map +1 -0
- package/dist/chunk-XZAVBONI.js +64 -0
- package/dist/chunk-Y5PNLB24.js +84 -0
- package/dist/chunk-ZC6FICZ7.js +2209 -0
- package/dist/chunk-ZEGWP4FP.js +8954 -0
- package/dist/claim-PGDIRXIC.js +200 -0
- package/dist/cli.js +36 -36
- package/dist/companies-WTPKGEB3.js +198 -0
- package/dist/company-6H2H73YP.js +308 -0
- package/dist/complete-2QBC3POO.js +84 -0
- package/dist/connect-35YPFAUL.js +45 -0
- package/dist/conversation-YZFNEWDV.js +96 -0
- package/dist/conversion-upload-command-J2FIO74Y.js +439 -0
- package/dist/conversions-UGRVDRWU.js +78 -0
- package/dist/conversions-ZFDBD3OU.js +140 -0
- package/dist/copy-writes-2B36QJUY.js +170 -0
- package/dist/create-3H67EUTO.js +62 -0
- package/dist/create-ALTOBDP4.js +239 -0
- package/dist/create-C3MWUYX2.js +210 -0
- package/dist/create-WHTT6IXY.js +135 -0
- package/dist/creatives-22BYP5VN.js +118 -0
- package/dist/creatives-IFOPXTZK.js +58 -0
- package/dist/creatives-WBBN6G7H.js +229 -0
- package/dist/creatives-WBBN6G7H.js.map +1 -0
- package/dist/credentials-J5DMQJWN.js +290 -0
- package/dist/critique-PQRVFC52.js +232 -0
- package/dist/critique-X6XVPIUG.js +1451 -0
- package/dist/crm-LWRGJYHW.js +227 -0
- package/dist/crm-RUNEJY2R.js +323 -0
- package/dist/crop-4V4P3SKI.js +113 -0
- package/dist/custom-conversions-V7QPZIB4.js +128 -0
- package/dist/customers-IDB6NLQ6.js +65 -0
- package/dist/delete-2QKVUKKB.js +67 -0
- package/dist/delete-B7BKF24X.js +57 -0
- package/dist/delete-HBRYUWAA.js +69 -0
- package/dist/demographics-JHB3NFLU.js +141 -0
- package/dist/dimensions-KI3OENZD.js +101 -0
- package/dist/discard-FEJ6YL22.js +69 -0
- package/dist/domain-JYWNXBKS.js +101 -0
- package/dist/download-H3ZDQTFG.js +337 -0
- package/dist/download-H3ZDQTFG.js.map +1 -0
- package/dist/download-LOBPOIU5.js +172 -0
- package/dist/draft-EB5ZFDVN.js +557 -0
- package/dist/draft-I2FLECEX.js +220 -0
- package/dist/draft-N56HPS36.js +374 -0
- package/dist/draft-ZLZRTPY6.js +332 -0
- package/dist/engine/index.js +5 -5
- package/dist/experiment-O6726OBP.js +1397 -0
- package/dist/experiments-WVTBHD6G.js +236 -0
- package/dist/extract-UELZV3NI.js +142 -0
- package/dist/extract-UELZV3NI.js.map +1 -0
- package/dist/facets-V2ITIUKD.js +117 -0
- package/dist/feedback-MXUZWVOL.js +115 -0
- package/dist/feedback-PXWPR3NZ.js +136 -0
- package/dist/feedback-record-76RUAHZH.js +269 -0
- package/dist/fetch-QVOOC3FA.js +204 -0
- package/dist/fit-REGMM46H.js +65 -0
- package/dist/flows-EZV3KCV6.js +250 -0
- package/dist/fonts-NUX66HEI.js +39 -0
- package/dist/forecast-W6HKYVX5.js +121 -0
- package/dist/forecast-XDRKCR65.js +169 -0
- package/dist/funnel-3YABA3G2.js +397 -0
- package/dist/ga4-XFJO7VK2.js +55 -0
- package/dist/generate-22HT24SA.js +263 -0
- package/dist/get-GQQLBE5C.js +82 -0
- package/dist/get-NL3YZFUJ.js +62 -0
- package/dist/google-BPB5JLJG.js +162 -0
- package/dist/google-BPB5JLJG.js.map +1 -0
- package/dist/google-UJ4YJGTJ.js +3285 -0
- package/dist/google-ads-RRKKSKDD.js +198 -0
- package/dist/gsc-ILEIJYWP.js +30 -0
- package/dist/history-2UANIBRN.js +102 -0
- package/dist/history-YZ727ZRG.js +153 -0
- package/dist/hubspot-KWLXJ6QD.js +782 -0
- package/dist/ideas-ZO533P5Y.js +45 -0
- package/dist/images-Z7YBWRVJ.js +92 -0
- package/dist/ingest-C2HJ5LUY.js +27 -0
- package/dist/ingest-H53JR4GK.js +123 -0
- package/dist/inspect-BM6GJHQV.js +192 -0
- package/dist/inspiration-WGUU7W5Z.js +53 -0
- package/dist/instant-experiences-U6U3FYIH.js +264 -0
- package/dist/keyword-metrics-R2QCEDYW.js +200 -0
- package/dist/keywords-for-site-NBV72C3W.js +131 -0
- package/dist/landing-5RRWTSWK.js +28 -0
- package/dist/leads-6PF7ZWCH.js +115 -0
- package/dist/leads-IG3IIHXG.js +541 -0
- package/dist/learn-V2LIBEEY.js +207 -0
- package/dist/line-item-writes-GMNWL4DI.js +211 -0
- package/dist/line-items-KPIKXLG4.js +107 -0
- package/dist/link-X7IYKR5V.js +67 -0
- package/dist/linkedin-DJ4VDOF4.js +1344 -0
- package/dist/linkedin-DJ4VDOF4.js.map +1 -0
- package/dist/linkedin-person-47XFTBIN.js +139 -0
- package/dist/list-PHNA7QIF.js +154 -0
- package/dist/list-QF3BANBM.js +306 -0
- package/dist/list-SB3SUTH6.js +67 -0
- package/dist/log-JFLSSUJ6.js +95 -0
- package/dist/make-HZ5KAYSB.js +1367 -0
- package/dist/map-NYJT2MGI.js +436 -0
- package/dist/mcp-ABQEICYR.js +729 -0
- package/dist/media-AT3VV3PU.js +18 -0
- package/dist/media-sources-DEEKEJUB.js +35 -0
- package/dist/members-BX37KHKO.js +47 -0
- package/dist/meta-XUHI3E3L.js +122 -0
- package/dist/meta-XUHI3E3L.js.map +1 -0
- package/dist/normalize-M3VMWF4W.js +806 -0
- package/dist/normalize-MA2FBBIV.js +144 -0
- package/dist/options-NMWWF2HN.js +125 -0
- package/dist/organization-GRAA6ZXU.js +949 -0
- package/dist/page-photos-ABK4CJME.js +118 -0
- package/dist/performance-MQLRSH44.js +5565 -0
- package/dist/performance-RUBIGEAQ.js +27 -0
- package/dist/posts-F7NFSUHV.js +36 -0
- package/dist/preview-IBNFQ5RQ.js +101 -0
- package/dist/preview-IBNFQ5RQ.js.map +1 -0
- package/dist/preview-OV2EZ6YF.js +245 -0
- package/dist/preview-OV2EZ6YF.js.map +1 -0
- package/dist/promoted-tweet-writes-3P6QFGLN.js +183 -0
- package/dist/promoted-tweets-TGFPH7UI.js +119 -0
- package/dist/publish-OUVO65Z5.js +344 -0
- package/dist/reddit-HWQCUSEM.js +29 -0
- package/dist/refresh-ENQDQGTK.js +97 -0
- package/dist/release-ZTVXLUQS.js +63 -0
- package/dist/remove-XAFRT7O7.js +53 -0
- package/dist/reopen-SWSZHXJZ.js +66 -0
- package/dist/rerun-X7XVOAL3.js +96 -0
- package/dist/research-JMU4C4JZ.js +75 -0
- package/dist/research-TDH4OBX6.js +265 -0
- package/dist/reset-34HTKUBQ.js +57 -0
- package/dist/reset-KMMGLM7W.js +57 -0
- package/dist/resolve-2CIIKADD.js +124 -0
- package/dist/retry-V7KZIZKR.js +63 -0
- package/dist/retry-YXM23NSB.js +65 -0
- package/dist/revenue-D4L6U2CW.js +91 -0
- package/dist/rule-writes-HUBHHYEO.js +530 -0
- package/dist/rules-47LFGCPW.js +217 -0
- package/dist/rules-F6RNUOXP.js +99 -0
- package/dist/rules-add-SAQRESVK.js +465 -0
- package/dist/run-3GCYZ2HX.js +71 -0
- package/dist/run-FRPO2WNQ.js +69 -0
- package/dist/scaffold-ad-E6DD6U46.js +1513 -0
- package/dist/scaffold-static-ad-6WNS2PXB.js +1011 -0
- package/dist/scaffold-video-QKXFQ5FC.js +885 -0
- package/dist/schedule-S4XAVVEI.js +64 -0
- package/dist/scheduled-agents-ZWAP6QLC.js +55 -0
- package/dist/schema-EJ2XPUN6.js +135 -0
- package/dist/scrape-O4X6VGV2.js +2209 -0
- package/dist/scrape-O4X6VGV2.js.map +1 -0
- package/dist/search-2BAY3KKX.js +177 -0
- package/dist/select-ABRNFFR2.js +110 -0
- package/dist/set-prompt-5LYHDT4E.js +199 -0
- package/dist/setup-links-QT63UZBR.js +144 -0
- package/dist/shopify-L4ZUI6OT.js +4009 -0
- package/dist/site-S6QVMP7W.js +180 -0
- package/dist/sources-6TWWOO7Q.js +30 -0
- package/dist/sources-ORG5KQSW.js +457 -0
- package/dist/stale-MLQPXNLZ.js +90 -0
- package/dist/status-4G2YUCZR.js +65 -0
- package/dist/stock-5SQ2PGEC.js +211 -0
- package/dist/stock-5SQ2PGEC.js.map +1 -0
- package/dist/studies-QLSKON6M.js +250 -0
- package/dist/studio-ZLBBYHNY.js +49 -0
- package/dist/study-writes-GBUUKX4O.js +471 -0
- package/dist/sync-7LJZPHM3.js +57 -0
- package/dist/sync-definition-MXVL2I2H.js +70 -0
- package/dist/tags-2ARVNEYS.js +23 -0
- package/dist/tags-F4IT7RQR.js +23 -0
- package/dist/tags-F7ZO52EM.js +23 -0
- package/dist/tags-NBGGBHXR.js +227 -0
- package/dist/tags-TCSGQYDR.js +26 -0
- package/dist/targeting-DAUTJDUB.js +762 -0
- package/dist/targeting-criteria-H42LRULY.js +113 -0
- package/dist/targets-WB4E5XL2.js +106 -0
- package/dist/testimonials-RIJSQDSB.js +32 -0
- package/dist/themes-BGBDYQQK.js +95 -0
- package/dist/top-companies-C2W5TJ7G.js +111 -0
- package/dist/transcript-S7VR2GJE.js +165 -0
- package/dist/translate-A4GHRHSP.js +603 -0
- package/dist/triggers-EOKMR74O.js +144 -0
- package/dist/unlink-PC3TMWUT.js +70 -0
- package/dist/unstage-SU2ATDSZ.js +88 -0
- package/dist/update-DKX3EEES.js +155 -0
- package/dist/update-JYZ45YJG.js +66 -0
- package/dist/update-TAZSUOAS.js +192 -0
- package/dist/update-WRJUH2NM.js +101 -0
- package/dist/upload-BLXTMK5Q.js +130 -0
- package/dist/url-params-YVOFU6MK.js +101 -0
- package/dist/validate-44PVFQH7.js +125 -0
- package/dist/videos-RWPQVXS5.js +41 -0
- package/dist/viewer-check-KTRRUVZN.js +83 -0
- package/dist/web-6KUM7Q7S.js +173 -0
- package/dist/winning-ads-IT3O4EAN.js +86 -0
- package/dist/write-commands-3U5ZMIHH.js +1524 -0
- package/dist/write-commands-F5XPPLOO.js +1169 -0
- package/dist/x-X7URL52T.js +47 -0
- package/package.json +1 -1
- package/dist/account-XIC5TTV3.js +0 -82
- package/dist/account-assets-V7KSSTVP.js +0 -290
- package/dist/account-level-2KLG6HTG.js +0 -611
- package/dist/account-reads-ZPZUCB3P.js +0 -219
- package/dist/account-users-XTUKRDWK.js +0 -64
- package/dist/accounts-25JL77F7.js +0 -701
- package/dist/accounts-AF72N4NV.js +0 -80
- package/dist/actions-IJO4JW7J.js +0 -55
- package/dist/activecampaign-PBTUMTO5.js +0 -938
- package/dist/add-KHQXXHC5.js +0 -107
- package/dist/add-YQPFRDVM.js +0 -305
- package/dist/ads-5YCCRXEU.js +0 -48
- package/dist/ads-EVQ37EV3.js +0 -120
- package/dist/adsets-4IW5TRAK.js +0 -182
- package/dist/advertisers-JNOWSZZC.js +0 -123
- package/dist/analytics-CZMCM7XC.js +0 -2437
- package/dist/analytics-K5FCQLI5.js +0 -447
- package/dist/animate-C6BRMRRD.js +0 -480
- package/dist/asset-writes-RF6XTWLY.js +0 -50
- package/dist/assign-WXZNXVJH.js +0 -80
- package/dist/audience-size-ZCWH4CFC.js +0 -76
- package/dist/audience-writes-5KT6FHUY.js +0 -327
- package/dist/audiences-ZDOK3OYC.js +0 -106
- package/dist/audit-RBRXPPKK.js +0 -154
- package/dist/autocomplete-P5OU7QVL.js +0 -114
- package/dist/avatars-UHBA2BQ3.js +0 -38
- package/dist/bid-pricing-LHNYSDG4.js +0 -103
- package/dist/brand-7WL3O74X.js +0 -22
- package/dist/brief-HWZU75WP.js +0 -543
- package/dist/campaign-groups-BYS3GNEP.js +0 -99
- package/dist/campaign-writes-N6OHAK6V.js +0 -168
- package/dist/campaigns-2E4AQBFB.js +0 -113
- package/dist/campaigns-3U5IRXSV.js +0 -130
- package/dist/campaigns-QLKGN4FB.js +0 -111
- package/dist/canvas-GGHJ26ZM.js +0 -46
- package/dist/capabilities-TKEEHR7K.js +0 -147
- package/dist/catalog-7KQN43HS.js +0 -66
- package/dist/catalogs-5CHPI4H6.js +0 -782
- package/dist/chatgpt-YBHXCXWZ.js +0 -47
- package/dist/chats-PBXYH2LT.js +0 -449
- package/dist/check-SVYI72DF.js +0 -107
- package/dist/chunk-2RL2T5JO.js +0 -142
- package/dist/chunk-3HLQZTQ3.js +0 -685
- package/dist/chunk-42JTSTQ3.js +0 -207
- package/dist/chunk-4AEAL63J.js +0 -203
- package/dist/chunk-4PM32OS3.js +0 -57
- package/dist/chunk-4ULGRGBG.js +0 -333
- package/dist/chunk-4ULGRGBG.js.map +0 -1
- package/dist/chunk-4XMPL3RU.js +0 -19
- package/dist/chunk-5AOTCCTT.js +0 -831
- package/dist/chunk-5NLUTJCQ.js +0 -5368
- package/dist/chunk-6FWVRXDW.js +0 -64
- package/dist/chunk-6MXM6DA6.js +0 -225
- package/dist/chunk-73MLPGI2.js +0 -66
- package/dist/chunk-7OVPQX4X.js +0 -163
- package/dist/chunk-B5UVOCYA.js +0 -344
- package/dist/chunk-BRNZMKO4.js +0 -604
- package/dist/chunk-CJFCQMUY.js +0 -438
- package/dist/chunk-D6VQPBVM.js +0 -5471
- package/dist/chunk-DK66PUXL.js +0 -275
- package/dist/chunk-DNH2ZPZP.js +0 -287
- package/dist/chunk-DWSSQBLO.js +0 -103
- package/dist/chunk-ESXUIV6V.js +0 -169
- package/dist/chunk-FSEFZZ2T.js +0 -930
- package/dist/chunk-I4BQTVMY.js +0 -225
- package/dist/chunk-IBBGABK2.js +0 -91
- package/dist/chunk-IC4MREQH.js +0 -219
- package/dist/chunk-IJ6NQKAT.js +0 -61
- package/dist/chunk-IZROFBH7.js +0 -167
- package/dist/chunk-J5UTL4HE.js +0 -3510
- package/dist/chunk-JBMZVC5D.js +0 -91
- package/dist/chunk-LFELUKCA.js +0 -249
- package/dist/chunk-LMOZWB4G.js +0 -98
- package/dist/chunk-LVLTWPRR.js +0 -392
- package/dist/chunk-N5AIO23H.js +0 -2209
- package/dist/chunk-NE3OMP7R.js +0 -23
- package/dist/chunk-NO52OH3Y.js +0 -156
- package/dist/chunk-NRIKX35V.js +0 -399
- package/dist/chunk-NZYWKZ3Q.js +0 -76
- package/dist/chunk-OIORUNKH.js +0 -1902
- package/dist/chunk-OKXLOLEV.js +0 -455
- package/dist/chunk-P4MXGSSJ.js +0 -178
- package/dist/chunk-PYAR343F.js +0 -479
- package/dist/chunk-QFVZIQRQ.js +0 -8954
- package/dist/chunk-QI5UKQX3.js +0 -297
- package/dist/chunk-RCNAKWK7.js +0 -7852
- package/dist/chunk-RCNAKWK7.js.map +0 -1
- package/dist/chunk-RHNNFCRY.js +0 -494
- package/dist/chunk-RJQT7QXX.js +0 -547
- package/dist/chunk-RMZLB4AH.js +0 -197
- package/dist/chunk-S4NMWYHW.js +0 -51
- package/dist/chunk-S6XZIBWV.js +0 -392
- package/dist/chunk-SFQFUQDW.js +0 -170
- package/dist/chunk-SP3MHBME.js +0 -89
- package/dist/chunk-TGT4XHLX.js +0 -131
- package/dist/chunk-VX6GTRT3.js +0 -910
- package/dist/chunk-WGJ2QEW4.js +0 -334
- package/dist/chunk-XB4NKZAQ.js +0 -136
- package/dist/chunk-XSBX3LJP.js +0 -430
- package/dist/chunk-XXBP73RV.js +0 -148
- package/dist/chunk-Y3SK6EMU.js +0 -84
- package/dist/chunk-Y4ZBNZBU.js +0 -191
- package/dist/chunk-YCAJCVW4.js +0 -224
- package/dist/chunk-ZANXEMON.js +0 -1744
- package/dist/chunk-ZMTWQDFC.js +0 -709
- package/dist/claim-Q76T3MYA.js +0 -200
- package/dist/companies-MLWRWQ73.js +0 -198
- package/dist/company-X5Z67PMK.js +0 -308
- package/dist/complete-3CFP6XVY.js +0 -84
- package/dist/connect-QXFAB4RJ.js +0 -45
- package/dist/conversation-C6K6IZTH.js +0 -96
- package/dist/conversion-upload-command-D7S5HF22.js +0 -439
- package/dist/conversions-4ILDIG3K.js +0 -140
- package/dist/conversions-CRL327RY.js +0 -78
- package/dist/copy-writes-FYXKHJDB.js +0 -170
- package/dist/create-LDQ3YHET.js +0 -62
- package/dist/create-TKOG7DNJ.js +0 -210
- package/dist/create-WFMJOZLO.js +0 -135
- package/dist/create-WQNT345R.js +0 -239
- package/dist/creatives-45SJAD3G.js +0 -118
- package/dist/creatives-E4CTMZJJ.js +0 -223
- package/dist/creatives-E4CTMZJJ.js.map +0 -1
- package/dist/creatives-Q4OXNCTT.js +0 -58
- package/dist/credentials-E2AIMWKX.js +0 -290
- package/dist/critique-EWV3O3TD.js +0 -1451
- package/dist/critique-JVT6X2T3.js +0 -232
- package/dist/crm-NQH5FTK6.js +0 -227
- package/dist/crm-YGQKK76D.js +0 -323
- package/dist/crop-KV24WHOR.js +0 -113
- package/dist/custom-conversions-EJNX4MCK.js +0 -128
- package/dist/customers-YFEPJF4G.js +0 -65
- package/dist/delete-2UJVTHRE.js +0 -67
- package/dist/delete-7QAJSOCO.js +0 -69
- package/dist/delete-O4RO2HMR.js +0 -57
- package/dist/demographics-YWBHAMZ5.js +0 -141
- package/dist/dimensions-YXOXHOXW.js +0 -101
- package/dist/discard-YX4XUXG3.js +0 -69
- package/dist/domain-5R6CYVFY.js +0 -101
- package/dist/download-D2O4RYJ3.js +0 -172
- package/dist/download-SYWQXF57.js +0 -299
- package/dist/download-SYWQXF57.js.map +0 -1
- package/dist/draft-3MPADYS4.js +0 -220
- package/dist/draft-L56EMJQT.js +0 -374
- package/dist/draft-NLSQDRVQ.js +0 -332
- package/dist/draft-SGNQOUYH.js +0 -557
- package/dist/experiment-3NDXGQK6.js +0 -1397
- package/dist/experiments-DYNNWQRB.js +0 -236
- package/dist/extract-DWDZI35Y.js +0 -121
- package/dist/extract-DWDZI35Y.js.map +0 -1
- package/dist/facets-Y2IEM37E.js +0 -117
- package/dist/feedback-HJRVTU6C.js +0 -115
- package/dist/feedback-IVSLM5PN.js +0 -136
- package/dist/feedback-record-P7CO3IGE.js +0 -269
- package/dist/fetch-V2U5VUQZ.js +0 -204
- package/dist/fit-JDG6E46O.js +0 -65
- package/dist/flows-DP574PEX.js +0 -250
- package/dist/fonts-RMROS3LX.js +0 -39
- package/dist/forecast-AAHHVTBK.js +0 -169
- package/dist/forecast-BRXNGMGD.js +0 -121
- package/dist/funnel-FQX3DOE7.js +0 -397
- package/dist/ga4-IJ2UUICC.js +0 -55
- package/dist/generate-SYOQE3F7.js +0 -263
- package/dist/get-HMTI2IR6.js +0 -82
- package/dist/get-VFDNTZ54.js +0 -62
- package/dist/google-4FP6AHBL.js +0 -3285
- package/dist/google-HWEDJ4YS.js +0 -144
- package/dist/google-HWEDJ4YS.js.map +0 -1
- package/dist/google-ads-4DLYASRC.js +0 -198
- package/dist/gsc-YAU4EA75.js +0 -30
- package/dist/history-6B6RXNV3.js +0 -102
- package/dist/history-NLZSX4BK.js +0 -153
- package/dist/hubspot-LABBRJ44.js +0 -782
- package/dist/ideas-A4ELJN23.js +0 -45
- package/dist/images-JVNT7KYM.js +0 -92
- package/dist/ingest-GQWR3RHR.js +0 -27
- package/dist/ingest-JYN2IDKV.js +0 -123
- package/dist/inspect-72DY33YD.js +0 -192
- package/dist/inspiration-DNWTXEPX.js +0 -53
- package/dist/instant-experiences-6NTBX4SL.js +0 -264
- package/dist/keyword-metrics-GP7L2MQE.js +0 -200
- package/dist/keywords-for-site-6YWAUOKJ.js +0 -131
- package/dist/landing-EKHAZS5P.js +0 -28
- package/dist/leads-RN6RYOMU.js +0 -541
- package/dist/leads-UCXIIA5K.js +0 -115
- package/dist/learn-EJEFERQZ.js +0 -207
- package/dist/line-item-writes-IMCE2FDW.js +0 -211
- package/dist/line-items-ISUC3WDO.js +0 -107
- package/dist/link-6QL4ZVSU.js +0 -67
- package/dist/linkedin-OFL77SUR.js +0 -1330
- package/dist/linkedin-OFL77SUR.js.map +0 -1
- package/dist/linkedin-person-C24CBKCH.js +0 -139
- package/dist/list-2VNI3U7I.js +0 -154
- package/dist/list-PZD2QOZL.js +0 -67
- package/dist/list-SUXUMXPJ.js +0 -306
- package/dist/log-VLI7KQF2.js +0 -95
- package/dist/make-365ZJ25L.js +0 -1367
- package/dist/map-OEFL45WA.js +0 -436
- package/dist/mcp-NCZYQXQL.js +0 -729
- package/dist/media-WASM45QW.js +0 -18
- package/dist/media-sources-CZDK4W5Q.js +0 -35
- package/dist/members-N3PQSVQC.js +0 -47
- package/dist/meta-QFLNABF5.js +0 -122
- package/dist/meta-QFLNABF5.js.map +0 -1
- package/dist/normalize-4OKUF5BJ.js +0 -806
- package/dist/normalize-6DEJPTBF.js +0 -144
- package/dist/options-OJX77MYT.js +0 -125
- package/dist/organization-URQGKFEC.js +0 -949
- package/dist/page-photos-N4S7U7FR.js +0 -118
- package/dist/performance-P5T4LJRG.js +0 -27
- package/dist/performance-SIWBDORI.js +0 -5565
- package/dist/posts-MVCGZV54.js +0 -36
- package/dist/preview-DMTQR6ZW.js +0 -218
- package/dist/preview-DMTQR6ZW.js.map +0 -1
- package/dist/promoted-tweet-writes-S2HP5DEI.js +0 -183
- package/dist/promoted-tweets-WZT4N5IR.js +0 -119
- package/dist/publish-EDYBQHGJ.js +0 -344
- package/dist/reddit-DEGGHR4M.js +0 -29
- package/dist/refresh-HPNJGI2U.js +0 -97
- package/dist/release-H7M37CEO.js +0 -63
- package/dist/remove-MV4YS72N.js +0 -53
- package/dist/reopen-EFW2SKOY.js +0 -66
- package/dist/rerun-OM4N74YK.js +0 -96
- package/dist/research-7YDQOKA6.js +0 -265
- package/dist/research-MHXKAQW4.js +0 -75
- package/dist/reset-HT4AGJPR.js +0 -57
- package/dist/reset-XPZQ5F4D.js +0 -57
- package/dist/resolve-RTTXEN2B.js +0 -124
- package/dist/retry-DVLVWHEK.js +0 -63
- package/dist/retry-SBGWOUQO.js +0 -65
- package/dist/revenue-KJLJ53XY.js +0 -91
- package/dist/rule-writes-DNXELESR.js +0 -530
- package/dist/rules-KCSET46P.js +0 -217
- package/dist/rules-NVKU732Z.js +0 -99
- package/dist/rules-add-KY42EHJE.js +0 -465
- package/dist/run-2LQ7XJEO.js +0 -69
- package/dist/run-M7YU6KCV.js +0 -71
- package/dist/scaffold-ad-6YPZ75YJ.js +0 -1513
- package/dist/scaffold-static-ad-UJEWTDU5.js +0 -1011
- package/dist/scaffold-video-M4VWSVJ6.js +0 -885
- package/dist/schedule-J7HZQ2EL.js +0 -64
- package/dist/scheduled-agents-IVUQUKF4.js +0 -55
- package/dist/schema-LHBKBUV7.js +0 -135
- package/dist/scrape-FQUGOXCG.js +0 -2241
- package/dist/scrape-FQUGOXCG.js.map +0 -1
- package/dist/search-3AW52FO6.js +0 -177
- package/dist/select-STIWQ36I.js +0 -110
- package/dist/set-prompt-TODWV2F4.js +0 -199
- package/dist/setup-links-MNBD3UMH.js +0 -144
- package/dist/shopify-RJWLTNPQ.js +0 -4009
- package/dist/site-ZZUKS6MQ.js +0 -180
- package/dist/sources-36MJ6T4V.js +0 -30
- package/dist/sources-GNLQHTSJ.js +0 -457
- package/dist/stale-GJN7UO3D.js +0 -90
- package/dist/status-6EGB6ORB.js +0 -65
- package/dist/stock-DJ6I3CTO.js +0 -187
- package/dist/stock-DJ6I3CTO.js.map +0 -1
- package/dist/studies-4XXCEAHH.js +0 -250
- package/dist/studio-OARORMDJ.js +0 -49
- package/dist/study-writes-J56UIIE3.js +0 -471
- package/dist/sync-QHM3LMAX.js +0 -57
- package/dist/sync-definition-YXGN6PIQ.js +0 -70
- package/dist/tags-GHV5R7NI.js +0 -26
- package/dist/tags-IDWUV2FY.js +0 -227
- package/dist/tags-MBBRBZJH.js +0 -23
- package/dist/tags-MQYF2JHQ.js +0 -23
- package/dist/tags-ZGXJHATH.js +0 -23
- package/dist/targeting-KJ4DI56R.js +0 -762
- package/dist/targeting-criteria-GDCXOAUD.js +0 -113
- package/dist/targets-MYHOPAYY.js +0 -106
- package/dist/testimonials-R6RFGAKP.js +0 -32
- package/dist/themes-LHVXXVTX.js +0 -95
- package/dist/top-companies-POTV3Y2A.js +0 -111
- package/dist/transcript-4RVYKDVZ.js +0 -165
- package/dist/translate-UCASCVMN.js +0 -603
- package/dist/triggers-XHMMOZJK.js +0 -144
- package/dist/unlink-3IW3EORE.js +0 -70
- package/dist/unstage-APVF6KHB.js +0 -88
- package/dist/update-2VSJH4LQ.js +0 -66
- package/dist/update-42QYBUE3.js +0 -101
- package/dist/update-ESK6PSME.js +0 -192
- package/dist/update-V7SRDGHN.js +0 -155
- package/dist/upload-42IR5RIL.js +0 -130
- package/dist/url-params-GEESXN57.js +0 -101
- package/dist/validate-Z5SSEUES.js +0 -125
- package/dist/videos-PJAPZPOT.js +0 -41
- package/dist/viewer-check-6M34VY7K.js +0 -83
- package/dist/web-PUVVFMV3.js +0 -173
- package/dist/winning-ads-ZCP4MIEQ.js +0 -86
- package/dist/write-commands-5LEEPKA7.js +0 -1169
- package/dist/write-commands-ZS4O4DSV.js +0 -1524
- package/dist/x-ZKCLP23S.js +0 -47
- /package/dist/{account-XIC5TTV3.js.map → account-H5CL6KUY.js.map} +0 -0
- /package/dist/{account-assets-V7KSSTVP.js.map → account-assets-QMKT5AT7.js.map} +0 -0
- /package/dist/{account-level-2KLG6HTG.js.map → account-level-BELF6JHB.js.map} +0 -0
- /package/dist/{account-reads-ZPZUCB3P.js.map → account-reads-T6GTSAXE.js.map} +0 -0
- /package/dist/{account-users-XTUKRDWK.js.map → account-users-ZGJCVGX4.js.map} +0 -0
- /package/dist/{accounts-25JL77F7.js.map → accounts-EXQNPSYH.js.map} +0 -0
- /package/dist/{accounts-AF72N4NV.js.map → accounts-GNVLFZ3X.js.map} +0 -0
- /package/dist/{actions-IJO4JW7J.js.map → actions-Q2BMP27K.js.map} +0 -0
- /package/dist/{activecampaign-PBTUMTO5.js.map → activecampaign-SJO2YK6M.js.map} +0 -0
- /package/dist/{add-YQPFRDVM.js.map → add-Q3FGYX5Q.js.map} +0 -0
- /package/dist/{add-KHQXXHC5.js.map → add-YGQBSEVK.js.map} +0 -0
- /package/dist/{ads-5YCCRXEU.js.map → ads-CWKKIYD6.js.map} +0 -0
- /package/dist/{ads-EVQ37EV3.js.map → ads-H5AEYIY3.js.map} +0 -0
- /package/dist/{adsets-4IW5TRAK.js.map → adsets-BUIT7HF2.js.map} +0 -0
- /package/dist/{advertisers-JNOWSZZC.js.map → advertisers-ZAHXMIAT.js.map} +0 -0
- /package/dist/{analytics-K5FCQLI5.js.map → analytics-QW5ZXDJR.js.map} +0 -0
- /package/dist/{analytics-CZMCM7XC.js.map → analytics-XPU5SANS.js.map} +0 -0
- /package/dist/{animate-C6BRMRRD.js.map → animate-Q43SOWB4.js.map} +0 -0
- /package/dist/{asset-writes-RF6XTWLY.js.map → asset-writes-JVFE457M.js.map} +0 -0
- /package/dist/{assign-WXZNXVJH.js.map → assign-HJ2NXW4W.js.map} +0 -0
- /package/dist/{audience-size-ZCWH4CFC.js.map → audience-size-IM3N6W7C.js.map} +0 -0
- /package/dist/{audience-writes-5KT6FHUY.js.map → audience-writes-DWSCHYQF.js.map} +0 -0
- /package/dist/{audiences-ZDOK3OYC.js.map → audiences-PYBJU2GV.js.map} +0 -0
- /package/dist/{audit-RBRXPPKK.js.map → audit-N3LAQMD4.js.map} +0 -0
- /package/dist/{autocomplete-P5OU7QVL.js.map → autocomplete-FBTPT5MA.js.map} +0 -0
- /package/dist/{avatars-UHBA2BQ3.js.map → avatars-3OMFIKOJ.js.map} +0 -0
- /package/dist/{bid-pricing-LHNYSDG4.js.map → bid-pricing-UUAC4GTQ.js.map} +0 -0
- /package/dist/{brand-7WL3O74X.js.map → brand-IZYD5SBJ.js.map} +0 -0
- /package/dist/{brief-HWZU75WP.js.map → brief-TNOKTNFJ.js.map} +0 -0
- /package/dist/{campaign-groups-BYS3GNEP.js.map → campaign-groups-3IUOLEK2.js.map} +0 -0
- /package/dist/{campaign-writes-N6OHAK6V.js.map → campaign-writes-Y7QNFOE7.js.map} +0 -0
- /package/dist/{campaigns-3U5IRXSV.js.map → campaigns-2Z6WXIVA.js.map} +0 -0
- /package/dist/{campaigns-QLKGN4FB.js.map → campaigns-B2AUW4TV.js.map} +0 -0
- /package/dist/{campaigns-2E4AQBFB.js.map → campaigns-IDEA3LOK.js.map} +0 -0
- /package/dist/{canvas-GGHJ26ZM.js.map → canvas-PVNQ7YWV.js.map} +0 -0
- /package/dist/{capabilities-TKEEHR7K.js.map → capabilities-FVMMLKPY.js.map} +0 -0
- /package/dist/{catalog-7KQN43HS.js.map → catalog-URTZYAPU.js.map} +0 -0
- /package/dist/{catalogs-5CHPI4H6.js.map → catalogs-OEUNVE4N.js.map} +0 -0
- /package/dist/{chatgpt-YBHXCXWZ.js.map → chatgpt-6KBW7F5S.js.map} +0 -0
- /package/dist/{chats-PBXYH2LT.js.map → chats-EENMDXWZ.js.map} +0 -0
- /package/dist/{check-SVYI72DF.js.map → check-7735BPTR.js.map} +0 -0
- /package/dist/{chunk-5AOTCCTT.js.map → chunk-2QGGI7MF.js.map} +0 -0
- /package/dist/{chunk-B5UVOCYA.js.map → chunk-3OMFSYQ3.js.map} +0 -0
- /package/dist/{chunk-LMOZWB4G.js.map → chunk-65CQYRMK.js.map} +0 -0
- /package/dist/{chunk-I4BQTVMY.js.map → chunk-6MZFOMLU.js.map} +0 -0
- /package/dist/{chunk-VX6GTRT3.js.map → chunk-757ZFIL4.js.map} +0 -0
- /package/dist/{chunk-IJ6NQKAT.js.map → chunk-75HAGIH6.js.map} +0 -0
- /package/dist/{chunk-XSBX3LJP.js.map → chunk-7BVRFQN4.js.map} +0 -0
- /package/dist/{chunk-7OVPQX4X.js.map → chunk-7TDJCDKT.js.map} +0 -0
- /package/dist/{chunk-OIORUNKH.js.map → chunk-7WDH6OKW.js.map} +0 -0
- /package/dist/{chunk-ZMTWQDFC.js.map → chunk-AL4MRNYI.js.map} +0 -0
- /package/dist/{chunk-JBMZVC5D.js.map → chunk-AMM4JMSN.js.map} +0 -0
- /package/dist/{chunk-4XMPL3RU.js.map → chunk-AU3IMZZC.js.map} +0 -0
- /package/dist/{chunk-NO52OH3Y.js.map → chunk-BMNOMOWP.js.map} +0 -0
- /package/dist/{chunk-4AEAL63J.js.map → chunk-BS2MC62Y.js.map} +0 -0
- /package/dist/{chunk-DWSSQBLO.js.map → chunk-C6PWVZQE.js.map} +0 -0
- /package/dist/{chunk-P4MXGSSJ.js.map → chunk-CDTAKCJR.js.map} +0 -0
- /package/dist/{chunk-2RL2T5JO.js.map → chunk-CH44XVPE.js.map} +0 -0
- /package/dist/{chunk-RHNNFCRY.js.map → chunk-CJWLDKFO.js.map} +0 -0
- /package/dist/{chunk-D6VQPBVM.js.map → chunk-DWPOAU4Z.js.map} +0 -0
- /package/dist/{chunk-6MXM6DA6.js.map → chunk-EENYLJUN.js.map} +0 -0
- /package/dist/{chunk-IZROFBH7.js.map → chunk-EJBLF2LI.js.map} +0 -0
- /package/dist/{chunk-DNH2ZPZP.js.map → chunk-EJMPKO6V.js.map} +0 -0
- /package/dist/{chunk-RMZLB4AH.js.map → chunk-EKXLJRO3.js.map} +0 -0
- /package/dist/{chunk-ZANXEMON.js.map → chunk-EL3TDR5S.js.map} +0 -0
- /package/dist/{chunk-LFELUKCA.js.map → chunk-GRDZWZKQ.js.map} +0 -0
- /package/dist/{chunk-S4NMWYHW.js.map → chunk-GVUBRSD3.js.map} +0 -0
- /package/dist/{chunk-LVLTWPRR.js.map → chunk-GYREQDTJ.js.map} +0 -0
- /package/dist/{chunk-J5UTL4HE.js.map → chunk-HBRXFQQV.js.map} +0 -0
- /package/dist/{chunk-NE3OMP7R.js.map → chunk-HLHR3EK2.js.map} +0 -0
- /package/dist/{chunk-RJQT7QXX.js.map → chunk-IMFIRELA.js.map} +0 -0
- /package/dist/{chunk-SP3MHBME.js.map → chunk-IOKD77L2.js.map} +0 -0
- /package/dist/{chunk-TGT4XHLX.js.map → chunk-KDAINT54.js.map} +0 -0
- /package/dist/{chunk-QI5UKQX3.js.map → chunk-KKKZRQFY.js.map} +0 -0
- /package/dist/{chunk-YCAJCVW4.js.map → chunk-KLO36KTV.js.map} +0 -0
- /package/dist/{chunk-NZYWKZ3Q.js.map → chunk-LC6PVPJX.js.map} +0 -0
- /package/dist/{chunk-DK66PUXL.js.map → chunk-LETR3RQE.js.map} +0 -0
- /package/dist/{chunk-73MLPGI2.js.map → chunk-MAVT2CJ4.js.map} +0 -0
- /package/dist/{chunk-FSEFZZ2T.js.map → chunk-MJDN7CR7.js.map} +0 -0
- /package/dist/{chunk-XB4NKZAQ.js.map → chunk-N3PASNUA.js.map} +0 -0
- /package/dist/{chunk-SFQFUQDW.js.map → chunk-NL77JRKE.js.map} +0 -0
- /package/dist/{chunk-42JTSTQ3.js.map → chunk-OTFHIGEO.js.map} +0 -0
- /package/dist/{chunk-ESXUIV6V.js.map → chunk-PCUWBZM3.js.map} +0 -0
- /package/dist/{chunk-OKXLOLEV.js.map → chunk-PNWXTOQ4.js.map} +0 -0
- /package/dist/{chunk-PYAR343F.js.map → chunk-PQFTKHDA.js.map} +0 -0
- /package/dist/{chunk-XXBP73RV.js.map → chunk-Q5DFEVLE.js.map} +0 -0
- /package/dist/{chunk-IBBGABK2.js.map → chunk-QAJFMVGU.js.map} +0 -0
- /package/dist/{chunk-NRIKX35V.js.map → chunk-QXCGWAC6.js.map} +0 -0
- /package/dist/{chunk-CJFCQMUY.js.map → chunk-RKDMYL4A.js.map} +0 -0
- /package/dist/{chunk-S6XZIBWV.js.map → chunk-SCBSAIVV.js.map} +0 -0
- /package/dist/{chunk-3HLQZTQ3.js.map → chunk-SPBUE7R4.js.map} +0 -0
- /package/dist/{chunk-Y4ZBNZBU.js.map → chunk-TRAMBRVO.js.map} +0 -0
- /package/dist/{chunk-IC4MREQH.js.map → chunk-TWFZIHKK.js.map} +0 -0
- /package/dist/{chunk-WGJ2QEW4.js.map → chunk-UCJAPB5Y.js.map} +0 -0
- /package/dist/{chunk-4PM32OS3.js.map → chunk-VFDWUIGR.js.map} +0 -0
- /package/dist/{chunk-BRNZMKO4.js.map → chunk-WC3YSN7L.js.map} +0 -0
- /package/dist/{chunk-5NLUTJCQ.js.map → chunk-X3GWGFZP.js.map} +0 -0
- /package/dist/{chunk-6FWVRXDW.js.map → chunk-XZAVBONI.js.map} +0 -0
- /package/dist/{chunk-Y3SK6EMU.js.map → chunk-Y5PNLB24.js.map} +0 -0
- /package/dist/{chunk-N5AIO23H.js.map → chunk-ZC6FICZ7.js.map} +0 -0
- /package/dist/{chunk-QFVZIQRQ.js.map → chunk-ZEGWP4FP.js.map} +0 -0
- /package/dist/{claim-Q76T3MYA.js.map → claim-PGDIRXIC.js.map} +0 -0
- /package/dist/{companies-MLWRWQ73.js.map → companies-WTPKGEB3.js.map} +0 -0
- /package/dist/{company-X5Z67PMK.js.map → company-6H2H73YP.js.map} +0 -0
- /package/dist/{complete-3CFP6XVY.js.map → complete-2QBC3POO.js.map} +0 -0
- /package/dist/{connect-QXFAB4RJ.js.map → connect-35YPFAUL.js.map} +0 -0
- /package/dist/{conversation-C6K6IZTH.js.map → conversation-YZFNEWDV.js.map} +0 -0
- /package/dist/{conversion-upload-command-D7S5HF22.js.map → conversion-upload-command-J2FIO74Y.js.map} +0 -0
- /package/dist/{conversions-CRL327RY.js.map → conversions-UGRVDRWU.js.map} +0 -0
- /package/dist/{conversions-4ILDIG3K.js.map → conversions-ZFDBD3OU.js.map} +0 -0
- /package/dist/{copy-writes-FYXKHJDB.js.map → copy-writes-2B36QJUY.js.map} +0 -0
- /package/dist/{create-LDQ3YHET.js.map → create-3H67EUTO.js.map} +0 -0
- /package/dist/{create-WQNT345R.js.map → create-ALTOBDP4.js.map} +0 -0
- /package/dist/{create-TKOG7DNJ.js.map → create-C3MWUYX2.js.map} +0 -0
- /package/dist/{create-WFMJOZLO.js.map → create-WHTT6IXY.js.map} +0 -0
- /package/dist/{creatives-45SJAD3G.js.map → creatives-22BYP5VN.js.map} +0 -0
- /package/dist/{creatives-Q4OXNCTT.js.map → creatives-IFOPXTZK.js.map} +0 -0
- /package/dist/{credentials-E2AIMWKX.js.map → credentials-J5DMQJWN.js.map} +0 -0
- /package/dist/{critique-JVT6X2T3.js.map → critique-PQRVFC52.js.map} +0 -0
- /package/dist/{critique-EWV3O3TD.js.map → critique-X6XVPIUG.js.map} +0 -0
- /package/dist/{crm-NQH5FTK6.js.map → crm-LWRGJYHW.js.map} +0 -0
- /package/dist/{crm-YGQKK76D.js.map → crm-RUNEJY2R.js.map} +0 -0
- /package/dist/{crop-KV24WHOR.js.map → crop-4V4P3SKI.js.map} +0 -0
- /package/dist/{custom-conversions-EJNX4MCK.js.map → custom-conversions-V7QPZIB4.js.map} +0 -0
- /package/dist/{customers-YFEPJF4G.js.map → customers-IDB6NLQ6.js.map} +0 -0
- /package/dist/{delete-2UJVTHRE.js.map → delete-2QKVUKKB.js.map} +0 -0
- /package/dist/{delete-O4RO2HMR.js.map → delete-B7BKF24X.js.map} +0 -0
- /package/dist/{delete-7QAJSOCO.js.map → delete-HBRYUWAA.js.map} +0 -0
- /package/dist/{demographics-YWBHAMZ5.js.map → demographics-JHB3NFLU.js.map} +0 -0
- /package/dist/{dimensions-YXOXHOXW.js.map → dimensions-KI3OENZD.js.map} +0 -0
- /package/dist/{discard-YX4XUXG3.js.map → discard-FEJ6YL22.js.map} +0 -0
- /package/dist/{domain-5R6CYVFY.js.map → domain-JYWNXBKS.js.map} +0 -0
- /package/dist/{download-D2O4RYJ3.js.map → download-LOBPOIU5.js.map} +0 -0
- /package/dist/{draft-SGNQOUYH.js.map → draft-EB5ZFDVN.js.map} +0 -0
- /package/dist/{draft-3MPADYS4.js.map → draft-I2FLECEX.js.map} +0 -0
- /package/dist/{draft-L56EMJQT.js.map → draft-N56HPS36.js.map} +0 -0
- /package/dist/{draft-NLSQDRVQ.js.map → draft-ZLZRTPY6.js.map} +0 -0
- /package/dist/{experiment-3NDXGQK6.js.map → experiment-O6726OBP.js.map} +0 -0
- /package/dist/{experiments-DYNNWQRB.js.map → experiments-WVTBHD6G.js.map} +0 -0
- /package/dist/{facets-Y2IEM37E.js.map → facets-V2ITIUKD.js.map} +0 -0
- /package/dist/{feedback-HJRVTU6C.js.map → feedback-MXUZWVOL.js.map} +0 -0
- /package/dist/{feedback-IVSLM5PN.js.map → feedback-PXWPR3NZ.js.map} +0 -0
- /package/dist/{feedback-record-P7CO3IGE.js.map → feedback-record-76RUAHZH.js.map} +0 -0
- /package/dist/{fetch-V2U5VUQZ.js.map → fetch-QVOOC3FA.js.map} +0 -0
- /package/dist/{fit-JDG6E46O.js.map → fit-REGMM46H.js.map} +0 -0
- /package/dist/{flows-DP574PEX.js.map → flows-EZV3KCV6.js.map} +0 -0
- /package/dist/{fonts-RMROS3LX.js.map → fonts-NUX66HEI.js.map} +0 -0
- /package/dist/{forecast-BRXNGMGD.js.map → forecast-W6HKYVX5.js.map} +0 -0
- /package/dist/{forecast-AAHHVTBK.js.map → forecast-XDRKCR65.js.map} +0 -0
- /package/dist/{funnel-FQX3DOE7.js.map → funnel-3YABA3G2.js.map} +0 -0
- /package/dist/{ga4-IJ2UUICC.js.map → ga4-XFJO7VK2.js.map} +0 -0
- /package/dist/{generate-SYOQE3F7.js.map → generate-22HT24SA.js.map} +0 -0
- /package/dist/{get-HMTI2IR6.js.map → get-GQQLBE5C.js.map} +0 -0
- /package/dist/{get-VFDNTZ54.js.map → get-NL3YZFUJ.js.map} +0 -0
- /package/dist/{google-4FP6AHBL.js.map → google-UJ4YJGTJ.js.map} +0 -0
- /package/dist/{google-ads-4DLYASRC.js.map → google-ads-RRKKSKDD.js.map} +0 -0
- /package/dist/{gsc-YAU4EA75.js.map → gsc-ILEIJYWP.js.map} +0 -0
- /package/dist/{history-6B6RXNV3.js.map → history-2UANIBRN.js.map} +0 -0
- /package/dist/{history-NLZSX4BK.js.map → history-YZ727ZRG.js.map} +0 -0
- /package/dist/{hubspot-LABBRJ44.js.map → hubspot-KWLXJ6QD.js.map} +0 -0
- /package/dist/{ideas-A4ELJN23.js.map → ideas-ZO533P5Y.js.map} +0 -0
- /package/dist/{images-JVNT7KYM.js.map → images-Z7YBWRVJ.js.map} +0 -0
- /package/dist/{ingest-GQWR3RHR.js.map → ingest-C2HJ5LUY.js.map} +0 -0
- /package/dist/{ingest-JYN2IDKV.js.map → ingest-H53JR4GK.js.map} +0 -0
- /package/dist/{inspect-72DY33YD.js.map → inspect-BM6GJHQV.js.map} +0 -0
- /package/dist/{inspiration-DNWTXEPX.js.map → inspiration-WGUU7W5Z.js.map} +0 -0
- /package/dist/{instant-experiences-6NTBX4SL.js.map → instant-experiences-U6U3FYIH.js.map} +0 -0
- /package/dist/{keyword-metrics-GP7L2MQE.js.map → keyword-metrics-R2QCEDYW.js.map} +0 -0
- /package/dist/{keywords-for-site-6YWAUOKJ.js.map → keywords-for-site-NBV72C3W.js.map} +0 -0
- /package/dist/{landing-EKHAZS5P.js.map → landing-5RRWTSWK.js.map} +0 -0
- /package/dist/{leads-UCXIIA5K.js.map → leads-6PF7ZWCH.js.map} +0 -0
- /package/dist/{leads-RN6RYOMU.js.map → leads-IG3IIHXG.js.map} +0 -0
- /package/dist/{learn-EJEFERQZ.js.map → learn-V2LIBEEY.js.map} +0 -0
- /package/dist/{line-item-writes-IMCE2FDW.js.map → line-item-writes-GMNWL4DI.js.map} +0 -0
- /package/dist/{line-items-ISUC3WDO.js.map → line-items-KPIKXLG4.js.map} +0 -0
- /package/dist/{link-6QL4ZVSU.js.map → link-X7IYKR5V.js.map} +0 -0
- /package/dist/{linkedin-person-C24CBKCH.js.map → linkedin-person-47XFTBIN.js.map} +0 -0
- /package/dist/{list-2VNI3U7I.js.map → list-PHNA7QIF.js.map} +0 -0
- /package/dist/{list-SUXUMXPJ.js.map → list-QF3BANBM.js.map} +0 -0
- /package/dist/{list-PZD2QOZL.js.map → list-SB3SUTH6.js.map} +0 -0
- /package/dist/{log-VLI7KQF2.js.map → log-JFLSSUJ6.js.map} +0 -0
- /package/dist/{make-365ZJ25L.js.map → make-HZ5KAYSB.js.map} +0 -0
- /package/dist/{map-OEFL45WA.js.map → map-NYJT2MGI.js.map} +0 -0
- /package/dist/{mcp-NCZYQXQL.js.map → mcp-ABQEICYR.js.map} +0 -0
- /package/dist/{media-WASM45QW.js.map → media-AT3VV3PU.js.map} +0 -0
- /package/dist/{media-sources-CZDK4W5Q.js.map → media-sources-DEEKEJUB.js.map} +0 -0
- /package/dist/{members-N3PQSVQC.js.map → members-BX37KHKO.js.map} +0 -0
- /package/dist/{normalize-4OKUF5BJ.js.map → normalize-M3VMWF4W.js.map} +0 -0
- /package/dist/{normalize-6DEJPTBF.js.map → normalize-MA2FBBIV.js.map} +0 -0
- /package/dist/{options-OJX77MYT.js.map → options-NMWWF2HN.js.map} +0 -0
- /package/dist/{organization-URQGKFEC.js.map → organization-GRAA6ZXU.js.map} +0 -0
- /package/dist/{page-photos-N4S7U7FR.js.map → page-photos-ABK4CJME.js.map} +0 -0
- /package/dist/{performance-SIWBDORI.js.map → performance-MQLRSH44.js.map} +0 -0
- /package/dist/{performance-P5T4LJRG.js.map → performance-RUBIGEAQ.js.map} +0 -0
- /package/dist/{posts-MVCGZV54.js.map → posts-F7NFSUHV.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-S2HP5DEI.js.map → promoted-tweet-writes-3P6QFGLN.js.map} +0 -0
- /package/dist/{promoted-tweets-WZT4N5IR.js.map → promoted-tweets-TGFPH7UI.js.map} +0 -0
- /package/dist/{publish-EDYBQHGJ.js.map → publish-OUVO65Z5.js.map} +0 -0
- /package/dist/{reddit-DEGGHR4M.js.map → reddit-HWQCUSEM.js.map} +0 -0
- /package/dist/{refresh-HPNJGI2U.js.map → refresh-ENQDQGTK.js.map} +0 -0
- /package/dist/{release-H7M37CEO.js.map → release-ZTVXLUQS.js.map} +0 -0
- /package/dist/{remove-MV4YS72N.js.map → remove-XAFRT7O7.js.map} +0 -0
- /package/dist/{reopen-EFW2SKOY.js.map → reopen-SWSZHXJZ.js.map} +0 -0
- /package/dist/{rerun-OM4N74YK.js.map → rerun-X7XVOAL3.js.map} +0 -0
- /package/dist/{research-MHXKAQW4.js.map → research-JMU4C4JZ.js.map} +0 -0
- /package/dist/{research-7YDQOKA6.js.map → research-TDH4OBX6.js.map} +0 -0
- /package/dist/{reset-HT4AGJPR.js.map → reset-34HTKUBQ.js.map} +0 -0
- /package/dist/{reset-XPZQ5F4D.js.map → reset-KMMGLM7W.js.map} +0 -0
- /package/dist/{resolve-RTTXEN2B.js.map → resolve-2CIIKADD.js.map} +0 -0
- /package/dist/{retry-DVLVWHEK.js.map → retry-V7KZIZKR.js.map} +0 -0
- /package/dist/{retry-SBGWOUQO.js.map → retry-YXM23NSB.js.map} +0 -0
- /package/dist/{revenue-KJLJ53XY.js.map → revenue-D4L6U2CW.js.map} +0 -0
- /package/dist/{rule-writes-DNXELESR.js.map → rule-writes-HUBHHYEO.js.map} +0 -0
- /package/dist/{rules-KCSET46P.js.map → rules-47LFGCPW.js.map} +0 -0
- /package/dist/{rules-NVKU732Z.js.map → rules-F6RNUOXP.js.map} +0 -0
- /package/dist/{rules-add-KY42EHJE.js.map → rules-add-SAQRESVK.js.map} +0 -0
- /package/dist/{run-M7YU6KCV.js.map → run-3GCYZ2HX.js.map} +0 -0
- /package/dist/{run-2LQ7XJEO.js.map → run-FRPO2WNQ.js.map} +0 -0
- /package/dist/{scaffold-ad-6YPZ75YJ.js.map → scaffold-ad-E6DD6U46.js.map} +0 -0
- /package/dist/{scaffold-static-ad-UJEWTDU5.js.map → scaffold-static-ad-6WNS2PXB.js.map} +0 -0
- /package/dist/{scaffold-video-M4VWSVJ6.js.map → scaffold-video-QKXFQ5FC.js.map} +0 -0
- /package/dist/{schedule-J7HZQ2EL.js.map → schedule-S4XAVVEI.js.map} +0 -0
- /package/dist/{scheduled-agents-IVUQUKF4.js.map → scheduled-agents-ZWAP6QLC.js.map} +0 -0
- /package/dist/{schema-LHBKBUV7.js.map → schema-EJ2XPUN6.js.map} +0 -0
- /package/dist/{search-3AW52FO6.js.map → search-2BAY3KKX.js.map} +0 -0
- /package/dist/{select-STIWQ36I.js.map → select-ABRNFFR2.js.map} +0 -0
- /package/dist/{set-prompt-TODWV2F4.js.map → set-prompt-5LYHDT4E.js.map} +0 -0
- /package/dist/{setup-links-MNBD3UMH.js.map → setup-links-QT63UZBR.js.map} +0 -0
- /package/dist/{shopify-RJWLTNPQ.js.map → shopify-L4ZUI6OT.js.map} +0 -0
- /package/dist/{site-ZZUKS6MQ.js.map → site-S6QVMP7W.js.map} +0 -0
- /package/dist/{sources-36MJ6T4V.js.map → sources-6TWWOO7Q.js.map} +0 -0
- /package/dist/{sources-GNLQHTSJ.js.map → sources-ORG5KQSW.js.map} +0 -0
- /package/dist/{stale-GJN7UO3D.js.map → stale-MLQPXNLZ.js.map} +0 -0
- /package/dist/{status-6EGB6ORB.js.map → status-4G2YUCZR.js.map} +0 -0
- /package/dist/{studies-4XXCEAHH.js.map → studies-QLSKON6M.js.map} +0 -0
- /package/dist/{studio-OARORMDJ.js.map → studio-ZLBBYHNY.js.map} +0 -0
- /package/dist/{study-writes-J56UIIE3.js.map → study-writes-GBUUKX4O.js.map} +0 -0
- /package/dist/{sync-QHM3LMAX.js.map → sync-7LJZPHM3.js.map} +0 -0
- /package/dist/{sync-definition-YXGN6PIQ.js.map → sync-definition-MXVL2I2H.js.map} +0 -0
- /package/dist/{tags-MQYF2JHQ.js.map → tags-2ARVNEYS.js.map} +0 -0
- /package/dist/{tags-ZGXJHATH.js.map → tags-F4IT7RQR.js.map} +0 -0
- /package/dist/{tags-MBBRBZJH.js.map → tags-F7ZO52EM.js.map} +0 -0
- /package/dist/{tags-IDWUV2FY.js.map → tags-NBGGBHXR.js.map} +0 -0
- /package/dist/{tags-GHV5R7NI.js.map → tags-TCSGQYDR.js.map} +0 -0
- /package/dist/{targeting-KJ4DI56R.js.map → targeting-DAUTJDUB.js.map} +0 -0
- /package/dist/{targeting-criteria-GDCXOAUD.js.map → targeting-criteria-H42LRULY.js.map} +0 -0
- /package/dist/{targets-MYHOPAYY.js.map → targets-WB4E5XL2.js.map} +0 -0
- /package/dist/{testimonials-R6RFGAKP.js.map → testimonials-RIJSQDSB.js.map} +0 -0
- /package/dist/{themes-LHVXXVTX.js.map → themes-BGBDYQQK.js.map} +0 -0
- /package/dist/{top-companies-POTV3Y2A.js.map → top-companies-C2W5TJ7G.js.map} +0 -0
- /package/dist/{transcript-4RVYKDVZ.js.map → transcript-S7VR2GJE.js.map} +0 -0
- /package/dist/{translate-UCASCVMN.js.map → translate-A4GHRHSP.js.map} +0 -0
- /package/dist/{triggers-XHMMOZJK.js.map → triggers-EOKMR74O.js.map} +0 -0
- /package/dist/{unlink-3IW3EORE.js.map → unlink-PC3TMWUT.js.map} +0 -0
- /package/dist/{unstage-APVF6KHB.js.map → unstage-SU2ATDSZ.js.map} +0 -0
- /package/dist/{update-V7SRDGHN.js.map → update-DKX3EEES.js.map} +0 -0
- /package/dist/{update-2VSJH4LQ.js.map → update-JYZ45YJG.js.map} +0 -0
- /package/dist/{update-ESK6PSME.js.map → update-TAZSUOAS.js.map} +0 -0
- /package/dist/{update-42QYBUE3.js.map → update-WRJUH2NM.js.map} +0 -0
- /package/dist/{upload-42IR5RIL.js.map → upload-BLXTMK5Q.js.map} +0 -0
- /package/dist/{url-params-GEESXN57.js.map → url-params-YVOFU6MK.js.map} +0 -0
- /package/dist/{validate-Z5SSEUES.js.map → validate-44PVFQH7.js.map} +0 -0
- /package/dist/{videos-PJAPZPOT.js.map → videos-RWPQVXS5.js.map} +0 -0
- /package/dist/{viewer-check-6M34VY7K.js.map → viewer-check-KTRRUVZN.js.map} +0 -0
- /package/dist/{web-PUVVFMV3.js.map → web-6KUM7Q7S.js.map} +0 -0
- /package/dist/{winning-ads-ZCP4MIEQ.js.map → winning-ads-IT3O4EAN.js.map} +0 -0
- /package/dist/{write-commands-ZS4O4DSV.js.map → write-commands-3U5ZMIHH.js.map} +0 -0
- /package/dist/{write-commands-5LEEPKA7.js.map → write-commands-F5XPPLOO.js.map} +0 -0
- /package/dist/{x-ZKCLP23S.js.map → x-X7URL52T.js.map} +0 -0
|
@@ -1,762 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
loadJsonFileArg
|
|
3
|
-
} from "./chunk-6MXM6DA6.js";
|
|
4
|
-
import {
|
|
5
|
-
metaTargetingSchema
|
|
6
|
-
} from "./chunk-GC5P4KWY.js";
|
|
7
|
-
import "./chunk-GDFJOCDO.js";
|
|
8
|
-
import {
|
|
9
|
-
csvOrJson,
|
|
10
|
-
handleMetaError,
|
|
11
|
-
resolveAccountIdArg
|
|
12
|
-
} from "./chunk-QY7EK6Q4.js";
|
|
13
|
-
import {
|
|
14
|
-
repeatedValues
|
|
15
|
-
} from "./chunk-ERSX3MKH.js";
|
|
16
|
-
import "./chunk-P4MXGSSJ.js";
|
|
17
|
-
import "./chunk-4NZ47VXO.js";
|
|
18
|
-
import "./chunk-D5FY4FAK.js";
|
|
19
|
-
import "./chunk-4H6XLX7E.js";
|
|
20
|
-
import "./chunk-QALAJNBG.js";
|
|
21
|
-
import {
|
|
22
|
-
writeAdsJson,
|
|
23
|
-
writeAdsOutput,
|
|
24
|
-
writeJsonEnvelope
|
|
25
|
-
} from "./chunk-QYH2UZAK.js";
|
|
26
|
-
import "./chunk-Y3SK6EMU.js";
|
|
27
|
-
import "./chunk-XB4NKZAQ.js";
|
|
28
|
-
import {
|
|
29
|
-
NO_CACHE_ARG
|
|
30
|
-
} from "./chunk-GO6ISZUZ.js";
|
|
31
|
-
import "./chunk-E56V3RFO.js";
|
|
32
|
-
import "./chunk-ZANXEMON.js";
|
|
33
|
-
import "./chunk-G6U45QD3.js";
|
|
34
|
-
import "./chunk-4ULGRGBG.js";
|
|
35
|
-
import "./chunk-SOPVIIUW.js";
|
|
36
|
-
import "./chunk-G4FG5EQO.js";
|
|
37
|
-
import "./chunk-R7XDGNZD.js";
|
|
38
|
-
import {
|
|
39
|
-
apiPost
|
|
40
|
-
} from "./chunk-GFWWHCBF.js";
|
|
41
|
-
import "./chunk-JXTNP3B5.js";
|
|
42
|
-
import "./chunk-45D6WRCJ.js";
|
|
43
|
-
import {
|
|
44
|
-
registerSchema
|
|
45
|
-
} from "./chunk-CCYZJMZ7.js";
|
|
46
|
-
import "./chunk-YQSBHWOI.js";
|
|
47
|
-
|
|
48
|
-
// ../api/src/ads-meta/discovery.ts
|
|
49
|
-
import { z } from "zod";
|
|
50
|
-
var META_TARGETING_CATEGORY_CLASSES = [
|
|
51
|
-
"interests",
|
|
52
|
-
"behaviors",
|
|
53
|
-
"demographics",
|
|
54
|
-
"life_events",
|
|
55
|
-
"industries",
|
|
56
|
-
"income",
|
|
57
|
-
"family_statuses"
|
|
58
|
-
];
|
|
59
|
-
var META_GEO_LOCATION_TYPES = [
|
|
60
|
-
"country",
|
|
61
|
-
"country_group",
|
|
62
|
-
"region",
|
|
63
|
-
"city",
|
|
64
|
-
"zip",
|
|
65
|
-
"geo_market",
|
|
66
|
-
"electoral_district",
|
|
67
|
-
"neighborhood",
|
|
68
|
-
"subcity",
|
|
69
|
-
"metro_area",
|
|
70
|
-
"medium_geo_area",
|
|
71
|
-
"place"
|
|
72
|
-
];
|
|
73
|
-
var accountIdSchema = z.string().regex(/^(act_)?\d+$/, "account id must be act_<digits>");
|
|
74
|
-
var limitSchema = z.number().int().positive().max(1e3).optional();
|
|
75
|
-
var metaTargetingRefSchema = z.object({ id: z.string().regex(/^\d+$/), type: z.string().min(1) });
|
|
76
|
-
var metaTargetingLookupRequestSchema = z.discriminatedUnion("mode", [
|
|
77
|
-
z.object({
|
|
78
|
-
mode: z.literal("search"),
|
|
79
|
-
accountId: accountIdSchema,
|
|
80
|
-
q: z.string().min(1),
|
|
81
|
-
/** A spec key (interests, behaviors, work_employers, …) to keep the search to one kind. */
|
|
82
|
-
type: z.string().min(1).optional(),
|
|
83
|
-
/** Special Ad Categories: only the options Meta allows under them come back. */
|
|
84
|
-
specialAdCategories: z.array(z.string().min(1)).optional(),
|
|
85
|
-
limit: limitSchema
|
|
86
|
-
}),
|
|
87
|
-
z.object({
|
|
88
|
-
mode: z.literal("browse"),
|
|
89
|
-
accountId: accountIdSchema,
|
|
90
|
-
type: z.string().min(1).optional(),
|
|
91
|
-
/** Kept by Baker after the read: Meta's browse takes no text filter. */
|
|
92
|
-
q: z.string().min(1).optional(),
|
|
93
|
-
limit: limitSchema
|
|
94
|
-
}),
|
|
95
|
-
z.object({
|
|
96
|
-
mode: z.literal("categories"),
|
|
97
|
-
accountId: accountIdSchema,
|
|
98
|
-
class: z.enum(META_TARGETING_CATEGORY_CLASSES),
|
|
99
|
-
q: z.string().min(1).optional(),
|
|
100
|
-
limit: limitSchema
|
|
101
|
-
}),
|
|
102
|
-
z.object({
|
|
103
|
-
mode: z.literal("suggest"),
|
|
104
|
-
accountId: accountIdSchema,
|
|
105
|
-
options: z.array(metaTargetingRefSchema).min(1).max(50),
|
|
106
|
-
limit: limitSchema
|
|
107
|
-
}),
|
|
108
|
-
z.object({
|
|
109
|
-
mode: z.literal("validate"),
|
|
110
|
-
accountId: accountIdSchema,
|
|
111
|
-
options: z.array(metaTargetingRefSchema).max(500).optional(),
|
|
112
|
-
names: z.array(z.string().min(1)).max(500).optional()
|
|
113
|
-
}),
|
|
114
|
-
z.object({
|
|
115
|
-
mode: z.literal("geo"),
|
|
116
|
-
accountId: accountIdSchema,
|
|
117
|
-
q: z.string().min(1),
|
|
118
|
-
locationTypes: z.array(z.enum(META_GEO_LOCATION_TYPES)).optional(),
|
|
119
|
-
countryCode: z.string().length(2).optional(),
|
|
120
|
-
limit: limitSchema
|
|
121
|
-
}),
|
|
122
|
-
z.object({
|
|
123
|
-
mode: z.literal("locales"),
|
|
124
|
-
accountId: accountIdSchema,
|
|
125
|
-
q: z.string().min(1),
|
|
126
|
-
limit: limitSchema
|
|
127
|
-
})
|
|
128
|
-
]);
|
|
129
|
-
var metaDeliveryEstimateRequestSchema = z.object({
|
|
130
|
-
accountId: accountIdSchema,
|
|
131
|
-
targeting: metaTargetingSchema.optional(),
|
|
132
|
-
adSetId: z.string().regex(/^\d+$/).optional(),
|
|
133
|
-
optimizationGoal: z.string().min(1).optional(),
|
|
134
|
-
promotedObject: z.record(z.string(), z.unknown()).optional()
|
|
135
|
-
}).refine((r) => r.targeting === void 0 !== (r.adSetId === void 0), {
|
|
136
|
-
message: "pass either a targeting spec or an existing ad set id, not both"
|
|
137
|
-
}).refine((r) => r.targeting === void 0 || r.optimizationGoal !== void 0, {
|
|
138
|
-
message: "a targeting spec is sized for a goal \u2014 pass --optimization-goal (the ad set's, e.g. LINK_CLICKS)",
|
|
139
|
-
path: ["optimizationGoal"]
|
|
140
|
-
});
|
|
141
|
-
var metaTargetingDescribeRequestSchema = z.object({
|
|
142
|
-
accountId: accountIdSchema,
|
|
143
|
-
targeting: metaTargetingSchema.optional(),
|
|
144
|
-
adSetId: z.string().regex(/^\d+$/).optional()
|
|
145
|
-
}).refine((r) => r.targeting === void 0 !== (r.adSetId === void 0), {
|
|
146
|
-
message: "pass either a targeting spec or an existing ad set id, not both"
|
|
147
|
-
});
|
|
148
|
-
var META_SMALL_AUDIENCE_THRESHOLD = 1e3;
|
|
149
|
-
var GEO_KEY_LISTS = {
|
|
150
|
-
region: "regions",
|
|
151
|
-
city: "cities",
|
|
152
|
-
zip: "zips",
|
|
153
|
-
geo_market: "geo_markets",
|
|
154
|
-
electoral_district: "electoral_districts",
|
|
155
|
-
neighborhood: "neighborhoods",
|
|
156
|
-
subcity: "subcities",
|
|
157
|
-
metro_area: "metro_areas",
|
|
158
|
-
medium_geo_area: "medium_geo_areas",
|
|
159
|
-
place: "places"
|
|
160
|
-
};
|
|
161
|
-
function pushTo(record, key, value) {
|
|
162
|
-
const list = record[key] ?? [];
|
|
163
|
-
list.push(value);
|
|
164
|
-
record[key] = list;
|
|
165
|
-
}
|
|
166
|
-
function geoEntry(option, type) {
|
|
167
|
-
if (type === "country") return { key: "countries", value: option.country_code ?? option.id };
|
|
168
|
-
if (type === "country_group") return { key: "country_groups", value: option.id };
|
|
169
|
-
const list = GEO_KEY_LISTS[type];
|
|
170
|
-
return list ? { key: list, value: { key: option.id } } : void 0;
|
|
171
|
-
}
|
|
172
|
-
function targetingFragment(options) {
|
|
173
|
-
const detailed = {};
|
|
174
|
-
const geo = {};
|
|
175
|
-
const locales = [];
|
|
176
|
-
for (const option of options) {
|
|
177
|
-
const type = option.type ?? "interests";
|
|
178
|
-
const place = geoEntry(option, type);
|
|
179
|
-
if (type === "locale") {
|
|
180
|
-
locales.push(Number(option.id));
|
|
181
|
-
} else if (place) {
|
|
182
|
-
pushTo(geo, place.key, place.value);
|
|
183
|
-
} else {
|
|
184
|
-
pushTo(detailed, type, option.name ? { id: option.id, name: option.name } : { id: option.id });
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
const fragment = {};
|
|
188
|
-
if (Object.keys(geo).length > 0) fragment.geo_locations = geo;
|
|
189
|
-
if (locales.length > 0) fragment.locales = locales;
|
|
190
|
-
if (Object.keys(detailed).length > 0) fragment.flexible_spec = [detailed];
|
|
191
|
-
return fragment;
|
|
192
|
-
}
|
|
193
|
-
var NOT_DETAILED_OPTIONS = /* @__PURE__ */ new Set([
|
|
194
|
-
"custom_audiences",
|
|
195
|
-
"excluded_custom_audiences",
|
|
196
|
-
"connections",
|
|
197
|
-
"excluded_connections",
|
|
198
|
-
"friends_of_connections",
|
|
199
|
-
"product_audience_specs",
|
|
200
|
-
"excluded_product_audience_specs"
|
|
201
|
-
]);
|
|
202
|
-
var NUMERIC_ID = /^\d+$/;
|
|
203
|
-
function entryId(entry) {
|
|
204
|
-
const id = typeof entry === "object" && entry !== null ? entry.id : void 0;
|
|
205
|
-
const text = typeof id === "number" && Number.isSafeInteger(id) ? String(id) : id;
|
|
206
|
-
return typeof text === "string" && NUMERIC_ID.test(text) ? text : void 0;
|
|
207
|
-
}
|
|
208
|
-
var TOP_LEVEL_DETAILED_KEYS = [
|
|
209
|
-
"interests",
|
|
210
|
-
"behaviors",
|
|
211
|
-
"life_events",
|
|
212
|
-
"industries",
|
|
213
|
-
"income",
|
|
214
|
-
"family_statuses",
|
|
215
|
-
"user_adclusters",
|
|
216
|
-
"work_employers",
|
|
217
|
-
"work_positions",
|
|
218
|
-
"education_schools",
|
|
219
|
-
"education_majors"
|
|
220
|
-
];
|
|
221
|
-
function collectEntries(type, entries, seen, out) {
|
|
222
|
-
for (const entry of entries) {
|
|
223
|
-
const id = entryId(entry);
|
|
224
|
-
if (id === void 0 || seen.has(`${type}:${id}`)) continue;
|
|
225
|
-
seen.add(`${type}:${id}`);
|
|
226
|
-
out.push({ id, type });
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
function collectFrom(group, seen, out) {
|
|
230
|
-
if (typeof group !== "object" || group === null || Array.isArray(group)) return;
|
|
231
|
-
for (const [type, entries] of Object.entries(group)) {
|
|
232
|
-
if (!NOT_DETAILED_OPTIONS.has(type) && Array.isArray(entries)) collectEntries(type, entries, seen, out);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
function targetingOptionRefs(targeting) {
|
|
236
|
-
const seen = /* @__PURE__ */ new Set();
|
|
237
|
-
const out = [];
|
|
238
|
-
const { flexible_spec, exclusions, ...topLevel } = targeting;
|
|
239
|
-
const detailed = new Set(TOP_LEVEL_DETAILED_KEYS);
|
|
240
|
-
collectFrom(Object.fromEntries(Object.entries(topLevel).filter(([key]) => detailed.has(key))), seen, out);
|
|
241
|
-
if (Array.isArray(flexible_spec)) {
|
|
242
|
-
for (const group of flexible_spec) collectFrom(group, seen, out);
|
|
243
|
-
}
|
|
244
|
-
collectFrom(exclusions, seen, out);
|
|
245
|
-
return out;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
// src/commands/ads/meta/targeting.ts
|
|
249
|
-
import { defineCommand } from "citty";
|
|
250
|
-
|
|
251
|
-
// src/commands/ads/meta/targeting-rows.ts
|
|
252
|
-
var FRAGMENT_SIZE = 5;
|
|
253
|
-
function humanCount(n) {
|
|
254
|
-
if (n >= 1e9) return `${(n / 1e9).toFixed(1).replace(/\.0$/, "")}B`;
|
|
255
|
-
if (n >= 1e6) return `${Math.round(n / 1e6)}M`;
|
|
256
|
-
if (n >= 1e4) return `${Math.round(n / 1e3)}K`;
|
|
257
|
-
return String(n);
|
|
258
|
-
}
|
|
259
|
-
function audienceRange(lower, upper) {
|
|
260
|
-
if (lower === void 0 && upper === void 0) return void 0;
|
|
261
|
-
if (lower === void 0 || upper === void 0 || lower === upper) return humanCount(upper ?? lower ?? 0);
|
|
262
|
-
return `${humanCount(lower)}\u2013${humanCount(upper)}`;
|
|
263
|
-
}
|
|
264
|
-
function compactTargetingOption(option) {
|
|
265
|
-
const row = { id: option.id, name: option.name, type: option.type };
|
|
266
|
-
if (option.path?.length) row.path = option.path.join(" > ");
|
|
267
|
-
const audience = audienceRange(option.audience_size_lower_bound, option.audience_size_upper_bound);
|
|
268
|
-
if (audience) row.audience = audience;
|
|
269
|
-
if (option.country_code) row.country = option.country_code;
|
|
270
|
-
if (option.region) row.region = option.region;
|
|
271
|
-
if (option.valid !== void 0) row.valid = option.valid;
|
|
272
|
-
if (option.status) row.status = option.status;
|
|
273
|
-
return row;
|
|
274
|
-
}
|
|
275
|
-
var DETAILED_MODES = /* @__PURE__ */ new Set(["search", "browse", "categories", "suggest"]);
|
|
276
|
-
function pasteHint(rows, where) {
|
|
277
|
-
const fragment = JSON.stringify(targetingFragment(rows.slice(0, FRAGMENT_SIZE)));
|
|
278
|
-
return `${where} \u2014 the first ${Math.min(rows.length, FRAGMENT_SIZE)} as a fragment of the ad set's --targeting-file (keep only the ones you mean): ${fragment}`;
|
|
279
|
-
}
|
|
280
|
-
function validationHints(rows) {
|
|
281
|
-
const invalid = rows.filter((row) => row.valid === false);
|
|
282
|
-
const retiring = rows.filter((row) => row.status === "DEPRECATING" || row.status === "NON-DELIVERABLE");
|
|
283
|
-
const hints = [];
|
|
284
|
-
if (invalid.length > 0) {
|
|
285
|
-
hints.push(
|
|
286
|
-
`${invalid.length} option(s) are not valid on this account (${invalid.map((r) => `${r.type ?? "?"} ${r.id}`).join(", ")}) \u2014 staging an ad set with them is refused. An id only counts under the key Meta lists it with; find the right one with \`targeting search --q <word>\` and use its \`type\`.`
|
|
287
|
-
);
|
|
288
|
-
}
|
|
289
|
-
if (retiring.length > 0) {
|
|
290
|
-
hints.push(
|
|
291
|
-
`${retiring.map((r) => `${r.name ?? r.id} (${r.status})`).join(", ")}: Meta is retiring these or no longer delivers to them \u2014 replace them; \`targeting suggest --id <type>:<id>\` lists close alternatives.`
|
|
292
|
-
);
|
|
293
|
-
}
|
|
294
|
-
if (hints.length === 0 && rows.length > 0) hints.push("Every option is valid and delivering on this account.");
|
|
295
|
-
return hints;
|
|
296
|
-
}
|
|
297
|
-
function targetingHints(mode, rows) {
|
|
298
|
-
if (mode === "validate") return validationHints(rows);
|
|
299
|
-
if (rows.length === 0) {
|
|
300
|
-
return [
|
|
301
|
-
mode === "geo" || mode === "locales" ? "Nothing matched. Meta matches the start of a place or language name \u2014 try the local spelling or a shorter word." : "Nothing matched. Meta names options in English \u2014 try an English or broader word, `targeting browse --type interests`, or `targeting categories --class behaviors`."
|
|
302
|
-
];
|
|
303
|
-
}
|
|
304
|
-
if (DETAILED_MODES.has(mode)) {
|
|
305
|
-
return [
|
|
306
|
-
pasteHint(rows, "Detailed targeting goes in flexible_spec"),
|
|
307
|
-
"Options in one flexible_spec group are OR'd (anyone matching one); a second group ANDs (must match both). `type` is the key each id goes under \u2014 never move an id to another key. Audience sizes are Meta's worldwide range for the option alone; `targeting estimate` sizes the whole spec."
|
|
308
|
-
];
|
|
309
|
-
}
|
|
310
|
-
if (mode === "geo") {
|
|
311
|
-
return [
|
|
312
|
-
pasteHint(rows, "Places go in geo_locations"),
|
|
313
|
-
'A city can take "radius" + "distance_unit" (10\u201350 mile / 17\u201380 kilometer). Special Ad Categories refuse zips and electoral districts and need a 15 mile radius on cities.'
|
|
314
|
-
];
|
|
315
|
-
}
|
|
316
|
-
return [pasteHint(rows, "Languages go in locales (numbers, not names)")];
|
|
317
|
-
}
|
|
318
|
-
function estimateHints(estimate) {
|
|
319
|
-
if (!estimate.ready) {
|
|
320
|
-
return [
|
|
321
|
-
"Meta has not finished this estimate \u2014 run it again in a few seconds before reading the numbers. If it stays unready at 0, Meta could not size the spec at all: check its ids with `targeting validate --targeting-file <file>`."
|
|
322
|
-
];
|
|
323
|
-
}
|
|
324
|
-
const upper = estimate.audienceUpperBound;
|
|
325
|
-
if (upper !== void 0 && upper <= META_SMALL_AUDIENCE_THRESHOLD) {
|
|
326
|
-
return [
|
|
327
|
-
"1,000 is the smallest estimate Meta reports, so this audience may be far smaller. Too narrow to deliver steadily or leave learning \u2014 widen places, ages or interests unless reaching only these people is the point. Staging an ad set with this audience warns the same."
|
|
328
|
-
];
|
|
329
|
-
}
|
|
330
|
-
return [
|
|
331
|
-
"Monthly people the spec can reach for this goal (Meta's range, not a forecast of results). Compare variants by re-running with a changed --targeting-file."
|
|
332
|
-
];
|
|
333
|
-
}
|
|
334
|
-
function parseOptionRef(raw) {
|
|
335
|
-
const match = /^(?:([a-z_]+):)?(\d+)$/.exec(raw.trim());
|
|
336
|
-
if (!match?.[2]) return void 0;
|
|
337
|
-
return { type: match[1] ?? "interests", id: match[2] };
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
// src/commands/ads/meta/targeting.ts
|
|
341
|
-
function failValidation(message) {
|
|
342
|
-
writeAdsJson({ ok: false, error: { code: "VALIDATION_ERROR", message } });
|
|
343
|
-
process.exit(1);
|
|
344
|
-
}
|
|
345
|
-
function limitArg(args) {
|
|
346
|
-
if (args.limit === void 0) return void 0;
|
|
347
|
-
const n = Number(args.limit);
|
|
348
|
-
if (!Number.isInteger(n) || n <= 0 || n > 1e3) failValidation("--limit must be a whole number from 1 to 1000");
|
|
349
|
-
return n;
|
|
350
|
-
}
|
|
351
|
-
function csvList(value) {
|
|
352
|
-
if (typeof value !== "string" || value.trim() === "") return void 0;
|
|
353
|
-
return value.split(",").map((part) => part.trim()).filter(Boolean);
|
|
354
|
-
}
|
|
355
|
-
function optionRefs(rawArgs, parsed) {
|
|
356
|
-
return repeatedValues(rawArgs, "id", parsed).map((raw) => {
|
|
357
|
-
const ref = parseOptionRef(raw);
|
|
358
|
-
if (!ref) failValidation(`--id "${raw}" is not <type>:<id> (e.g. interests:6003437140731) or a bare id`);
|
|
359
|
-
return ref;
|
|
360
|
-
});
|
|
361
|
-
}
|
|
362
|
-
async function runLookup(args, request) {
|
|
363
|
-
const parsed = metaTargetingLookupRequestSchema.safeParse(request);
|
|
364
|
-
if (!parsed.success) {
|
|
365
|
-
const issue = parsed.error.issues[0];
|
|
366
|
-
failValidation(issue ? `${issue.path.join(".") || "request"}: ${issue.message}` : "invalid request");
|
|
367
|
-
}
|
|
368
|
-
try {
|
|
369
|
-
const rows = await apiPost("/api/ads/meta/targeting", {
|
|
370
|
-
...parsed.data,
|
|
371
|
-
...args["no-cache"] ? { skipCache: true } : {}
|
|
372
|
-
});
|
|
373
|
-
const data = args.full ? rows.map((row) => ({ ...row })) : rows.map(compactTargetingOption);
|
|
374
|
-
const hints = targetingHints(parsed.data.mode, rows);
|
|
375
|
-
const fmt = csvOrJson(args);
|
|
376
|
-
if (fmt !== "json") {
|
|
377
|
-
writeAdsOutput(data, fmt, void 0, hints);
|
|
378
|
-
return;
|
|
379
|
-
}
|
|
380
|
-
writeJsonEnvelope({ ok: true, data, hints });
|
|
381
|
-
} catch (err) {
|
|
382
|
-
handleMetaError(err);
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
var commonArgs = {
|
|
386
|
-
"account-id": {
|
|
387
|
-
type: "string",
|
|
388
|
-
description: "Meta ad account ID (act_...) \u2014 options are looked up as this account sees them"
|
|
389
|
-
},
|
|
390
|
-
limit: { type: "string", description: "Max options (default 25, up to 1000)" },
|
|
391
|
-
full: {
|
|
392
|
-
type: "boolean",
|
|
393
|
-
description: "Every field Meta sent (description, raw audience bounds) instead of the compact row"
|
|
394
|
-
},
|
|
395
|
-
"no-cache": NO_CACHE_ARG,
|
|
396
|
-
output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
|
|
397
|
-
};
|
|
398
|
-
var schemaCommonArgs = {
|
|
399
|
-
"account-id": { type: "string", description: "Meta ad account ID (act_123)", required: false },
|
|
400
|
-
limit: { type: "string", description: "Max options (default 25)", required: false },
|
|
401
|
-
full: { type: "boolean", description: "Every field Meta sent", required: false },
|
|
402
|
-
"no-cache": { type: "boolean", description: "Bypass the cache", required: false },
|
|
403
|
-
output: { type: "string", description: "json|csv|jsonl|md", required: false, default: "json" }
|
|
404
|
-
};
|
|
405
|
-
registerSchema({
|
|
406
|
-
command: "ads.meta.targeting.search",
|
|
407
|
-
description: "Find Meta detailed-targeting ids by word \u2014 interests, behaviors, demographics, employers, job titles, schools, life events \u2014 across every kind at once. Start here before writing any interest or behavior into a --targeting-file: targeting takes ids, never names. Each row's `type` is the key it goes under.",
|
|
408
|
-
args: {
|
|
409
|
-
q: { type: "string", description: "Word to search (English names work best)", required: true },
|
|
410
|
-
type: {
|
|
411
|
-
type: "string",
|
|
412
|
-
description: "Keep to one kind: interests|behaviors|work_employers|work_positions|education_schools|life_events|\u2026",
|
|
413
|
-
required: false
|
|
414
|
-
},
|
|
415
|
-
"special-ad-category": {
|
|
416
|
-
type: "string",
|
|
417
|
-
description: "HOUSING|EMPLOYMENT|FINANCIAL_PRODUCTS_SERVICES \u2014 only options allowed under it",
|
|
418
|
-
required: false
|
|
419
|
-
},
|
|
420
|
-
...schemaCommonArgs
|
|
421
|
-
}
|
|
422
|
-
});
|
|
423
|
-
var searchCommand = defineCommand({
|
|
424
|
-
meta: {
|
|
425
|
-
name: "search",
|
|
426
|
-
description: 'Find detailed-targeting ids by word. Start here: baker ads meta targeting search --account-id act_123 --q "solar energy"'
|
|
427
|
-
},
|
|
428
|
-
args: {
|
|
429
|
-
q: { type: "string", description: "Word to search (English names work best)", required: true },
|
|
430
|
-
type: {
|
|
431
|
-
type: "string",
|
|
432
|
-
description: "Keep to one spec key, e.g. interests, behaviors, work_employers, work_positions"
|
|
433
|
-
},
|
|
434
|
-
"special-ad-category": {
|
|
435
|
-
type: "string",
|
|
436
|
-
description: "Comma list of Special Ad Categories \u2014 returns only options Meta allows under them"
|
|
437
|
-
},
|
|
438
|
-
...commonArgs
|
|
439
|
-
},
|
|
440
|
-
run: async ({ args }) => runLookup(args, {
|
|
441
|
-
mode: "search",
|
|
442
|
-
accountId: await resolveAccountIdArg(args),
|
|
443
|
-
q: args.q,
|
|
444
|
-
type: args.type,
|
|
445
|
-
specialAdCategories: csvList(args["special-ad-category"]),
|
|
446
|
-
limit: limitArg(args)
|
|
447
|
-
})
|
|
448
|
-
});
|
|
449
|
-
registerSchema({
|
|
450
|
-
command: "ads.meta.targeting.browse",
|
|
451
|
-
description: "Browse Meta's detailed-targeting tree (what exists, with no word to search for), optionally one kind and narrowed by a word in the name or path.",
|
|
452
|
-
args: {
|
|
453
|
-
type: { type: "string", description: "interests|behaviors|life_events|work_positions|\u2026", required: false },
|
|
454
|
-
q: { type: "string", description: "Keep rows whose name or path contains this", required: false },
|
|
455
|
-
...schemaCommonArgs
|
|
456
|
-
}
|
|
457
|
-
});
|
|
458
|
-
var browseCommand = defineCommand({
|
|
459
|
-
meta: {
|
|
460
|
-
name: "browse",
|
|
461
|
-
description: "Browse the detailed-targeting tree. Example: baker ads meta targeting browse --account-id act_123 --type behaviors --q travel"
|
|
462
|
-
},
|
|
463
|
-
args: {
|
|
464
|
-
type: { type: "string", description: "One spec key: interests, behaviors, life_events, \u2026" },
|
|
465
|
-
q: { type: "string", description: "Keep rows whose name or path contains this" },
|
|
466
|
-
...commonArgs
|
|
467
|
-
},
|
|
468
|
-
run: async ({ args }) => runLookup(args, {
|
|
469
|
-
mode: "browse",
|
|
470
|
-
accountId: await resolveAccountIdArg(args),
|
|
471
|
-
type: args.type,
|
|
472
|
-
q: args.q,
|
|
473
|
-
limit: limitArg(args)
|
|
474
|
-
})
|
|
475
|
-
});
|
|
476
|
-
registerSchema({
|
|
477
|
-
command: "ads.meta.targeting.categories",
|
|
478
|
-
description: "List a whole Meta targeting class (behaviors, demographics, life_events, industries, income, family_statuses, \u2026) \u2014 the fixed lists a search word rarely finds.",
|
|
479
|
-
args: {
|
|
480
|
-
class: {
|
|
481
|
-
type: "string",
|
|
482
|
-
description: "Targeting class",
|
|
483
|
-
required: true,
|
|
484
|
-
enum: [...META_TARGETING_CATEGORY_CLASSES]
|
|
485
|
-
},
|
|
486
|
-
q: { type: "string", description: "Keep rows whose name or path contains this", required: false },
|
|
487
|
-
...schemaCommonArgs
|
|
488
|
-
}
|
|
489
|
-
});
|
|
490
|
-
var categoriesCommand = defineCommand({
|
|
491
|
-
meta: {
|
|
492
|
-
name: "categories",
|
|
493
|
-
description: `List one targeting class whole. Classes: ${META_TARGETING_CATEGORY_CLASSES.join(", ")}. Example: baker ads meta targeting categories --account-id act_123 --class life_events --q parent`
|
|
494
|
-
},
|
|
495
|
-
args: {
|
|
496
|
-
class: { type: "string", description: `One of ${META_TARGETING_CATEGORY_CLASSES.join("|")}`, required: true },
|
|
497
|
-
q: { type: "string", description: "Keep rows whose name or path contains this" },
|
|
498
|
-
...commonArgs
|
|
499
|
-
},
|
|
500
|
-
run: async ({ args }) => runLookup(args, {
|
|
501
|
-
mode: "categories",
|
|
502
|
-
accountId: await resolveAccountIdArg(args),
|
|
503
|
-
class: args.class,
|
|
504
|
-
q: args.q,
|
|
505
|
-
limit: limitArg(args)
|
|
506
|
-
})
|
|
507
|
-
});
|
|
508
|
-
registerSchema({
|
|
509
|
-
command: "ads.meta.targeting.suggest",
|
|
510
|
-
description: "Options Meta suggests next to ones you already chose (Meta's 'Suggestions' in Ads Manager). Repeat --id <type>:<id>.",
|
|
511
|
-
args: {
|
|
512
|
-
id: {
|
|
513
|
-
type: "string",
|
|
514
|
-
description: "Repeatable <type>:<id>, e.g. interests:6003437140731 (a bare id is an interest)",
|
|
515
|
-
required: true
|
|
516
|
-
},
|
|
517
|
-
...schemaCommonArgs
|
|
518
|
-
}
|
|
519
|
-
});
|
|
520
|
-
var suggestCommand = defineCommand({
|
|
521
|
-
meta: {
|
|
522
|
-
name: "suggest",
|
|
523
|
-
description: "Related options for ones you picked. Example: baker ads meta targeting suggest --account-id act_123 --id interests:6003437140731 --id behaviors:6002714898572"
|
|
524
|
-
},
|
|
525
|
-
args: {
|
|
526
|
-
id: { type: "string", description: "Repeatable <type>:<id> (a bare id is read as an interest)", required: true },
|
|
527
|
-
...commonArgs
|
|
528
|
-
},
|
|
529
|
-
run: async ({ args, rawArgs }) => runLookup(args, {
|
|
530
|
-
mode: "suggest",
|
|
531
|
-
accountId: await resolveAccountIdArg(args),
|
|
532
|
-
options: optionRefs(rawArgs, args.id),
|
|
533
|
-
limit: limitArg(args)
|
|
534
|
-
})
|
|
535
|
-
});
|
|
536
|
-
registerSchema({
|
|
537
|
-
command: "ads.meta.targeting.validate",
|
|
538
|
-
description: "Check detailed-targeting ids before staging: whether Meta accepts each on this account under its key, and whether Meta is retiring it. Pass a whole --targeting-file, repeated --id <type>:<id>, or --name.",
|
|
539
|
-
args: {
|
|
540
|
-
"targeting-file": {
|
|
541
|
-
type: "string",
|
|
542
|
-
description: "The ad set's targeting JSON \u2014 every id in it is checked",
|
|
543
|
-
required: false
|
|
544
|
-
},
|
|
545
|
-
id: { type: "string", description: "Repeatable <type>:<id>", required: false },
|
|
546
|
-
name: { type: "string", description: "Repeatable option name", required: false },
|
|
547
|
-
...schemaCommonArgs
|
|
548
|
-
}
|
|
549
|
-
});
|
|
550
|
-
var validateCommand = defineCommand({
|
|
551
|
-
meta: {
|
|
552
|
-
name: "validate",
|
|
553
|
-
description: "Validate targeting ids before staging. Example: baker ads meta targeting validate --account-id act_123 --targeting-file t.json"
|
|
554
|
-
},
|
|
555
|
-
args: {
|
|
556
|
-
"targeting-file": {
|
|
557
|
-
type: "string",
|
|
558
|
-
description: "The ad set's targeting JSON \u2014 every detailed-targeting id in it"
|
|
559
|
-
},
|
|
560
|
-
id: { type: "string", description: "Repeatable <type>:<id>" },
|
|
561
|
-
name: { type: "string", description: "Repeatable option name, matched exactly" },
|
|
562
|
-
...commonArgs
|
|
563
|
-
},
|
|
564
|
-
run: async ({ args, rawArgs }) => {
|
|
565
|
-
const fromFile = args["targeting-file"] ? targetingOptionRefs(loadJsonFileArg(args["targeting-file"])) : [];
|
|
566
|
-
const options = [...fromFile, ...optionRefs(rawArgs, args.id)];
|
|
567
|
-
const names = repeatedValues(rawArgs, "name", args.name);
|
|
568
|
-
if (options.length === 0 && names.length === 0) {
|
|
569
|
-
failValidation(
|
|
570
|
-
args["targeting-file"] ? "the targeting file names no detailed-targeting ids (interests, behaviors, flexible_spec \u2026) \u2014 nothing to validate" : "pass --targeting-file, --id <type>:<id> or --name"
|
|
571
|
-
);
|
|
572
|
-
}
|
|
573
|
-
await runLookup(args, {
|
|
574
|
-
mode: "validate",
|
|
575
|
-
accountId: await resolveAccountIdArg(args),
|
|
576
|
-
...options.length > 0 ? { options } : {},
|
|
577
|
-
...names.length > 0 ? { names } : {}
|
|
578
|
-
});
|
|
579
|
-
}
|
|
580
|
-
});
|
|
581
|
-
registerSchema({
|
|
582
|
-
command: "ads.meta.targeting.geo",
|
|
583
|
-
description: "Find Meta location keys \u2014 countries, regions, cities, zips, DMAs (geo_market), electoral districts, neighborhoods \u2014 for geo_locations.",
|
|
584
|
-
args: {
|
|
585
|
-
q: { type: "string", description: "Place name", required: true },
|
|
586
|
-
"location-types": {
|
|
587
|
-
type: "string",
|
|
588
|
-
description: `Comma list of ${META_GEO_LOCATION_TYPES.join("|")}`,
|
|
589
|
-
required: false
|
|
590
|
-
},
|
|
591
|
-
country: { type: "string", description: "ISO-2 country code to search within", required: false },
|
|
592
|
-
...schemaCommonArgs
|
|
593
|
-
}
|
|
594
|
-
});
|
|
595
|
-
var geoCommand = defineCommand({
|
|
596
|
-
meta: {
|
|
597
|
-
name: "geo",
|
|
598
|
-
description: "Find location keys for geo_locations. Example: baker ads meta targeting geo --account-id act_123 --q Madrid --location-types city,region --country ES"
|
|
599
|
-
},
|
|
600
|
-
args: {
|
|
601
|
-
q: { type: "string", description: "Place name", required: true },
|
|
602
|
-
"location-types": { type: "string", description: `Comma list: ${META_GEO_LOCATION_TYPES.join(", ")}` },
|
|
603
|
-
country: { type: "string", description: "ISO-2 country code to search within (ES, US, \u2026)" },
|
|
604
|
-
...commonArgs
|
|
605
|
-
},
|
|
606
|
-
run: async ({ args }) => runLookup(args, {
|
|
607
|
-
mode: "geo",
|
|
608
|
-
accountId: await resolveAccountIdArg(args),
|
|
609
|
-
q: args.q,
|
|
610
|
-
locationTypes: csvList(args["location-types"]),
|
|
611
|
-
countryCode: args.country,
|
|
612
|
-
limit: limitArg(args)
|
|
613
|
-
})
|
|
614
|
-
});
|
|
615
|
-
registerSchema({
|
|
616
|
-
command: "ads.meta.targeting.locales",
|
|
617
|
-
description: "Find Meta locale numbers for targeting.locales (languages people use Facebook in).",
|
|
618
|
-
args: {
|
|
619
|
-
q: { type: "string", description: "Language name, e.g. Spanish", required: true },
|
|
620
|
-
...schemaCommonArgs
|
|
621
|
-
}
|
|
622
|
-
});
|
|
623
|
-
var localesCommand = defineCommand({
|
|
624
|
-
meta: {
|
|
625
|
-
name: "locales",
|
|
626
|
-
description: "Find language numbers for targeting.locales. Example: baker ads meta targeting locales --account-id act_123 --q Spanish"
|
|
627
|
-
},
|
|
628
|
-
args: {
|
|
629
|
-
q: { type: "string", description: "Language name", required: true },
|
|
630
|
-
...commonArgs
|
|
631
|
-
},
|
|
632
|
-
run: async ({ args }) => runLookup(args, { mode: "locales", accountId: await resolveAccountIdArg(args), q: args.q, limit: limitArg(args) })
|
|
633
|
-
});
|
|
634
|
-
registerSchema({
|
|
635
|
-
command: "ads.meta.targeting.estimate",
|
|
636
|
-
description: "How many people a targeting spec reaches on this account for a goal (Meta's delivery estimate), or what an existing ad set reaches. Use it to size an audience before staging and to compare variants.",
|
|
637
|
-
args: {
|
|
638
|
-
"targeting-file": { type: "string", description: "Targeting JSON, as for adsets create", required: false },
|
|
639
|
-
"adset-id": { type: "string", description: "Estimate an existing ad set instead", required: false },
|
|
640
|
-
"optimization-goal": {
|
|
641
|
-
type: "string",
|
|
642
|
-
description: "e.g. LEAD_GENERATION, OFFSITE_CONVERSIONS, LINK_CLICKS",
|
|
643
|
-
required: false
|
|
644
|
-
},
|
|
645
|
-
"promoted-object": {
|
|
646
|
-
type: "string",
|
|
647
|
-
description: 'JSON, e.g. {"pixel_id":"111","custom_event_type":"LEAD"}',
|
|
648
|
-
required: false
|
|
649
|
-
},
|
|
650
|
-
"account-id": { type: "string", description: "Meta ad account ID (act_123)", required: false }
|
|
651
|
-
}
|
|
652
|
-
});
|
|
653
|
-
function promotedObjectArg(raw) {
|
|
654
|
-
if (typeof raw !== "string" || raw === "") return void 0;
|
|
655
|
-
try {
|
|
656
|
-
const parsed = JSON.parse(raw);
|
|
657
|
-
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
|
|
658
|
-
} catch {
|
|
659
|
-
}
|
|
660
|
-
failValidation("--promoted-object must be a JSON object");
|
|
661
|
-
}
|
|
662
|
-
var estimateCommand = defineCommand({
|
|
663
|
-
meta: {
|
|
664
|
-
name: "estimate",
|
|
665
|
-
description: "Audience size for a targeting spec or an ad set. Example: baker ads meta targeting estimate --account-id act_123 --targeting-file t.json --optimization-goal LEAD_GENERATION"
|
|
666
|
-
},
|
|
667
|
-
args: {
|
|
668
|
-
"targeting-file": { type: "string", description: "Targeting JSON (the same file adsets create takes)" },
|
|
669
|
-
"adset-id": { type: "string", description: "Existing ad set to estimate instead of a file" },
|
|
670
|
-
"optimization-goal": { type: "string", description: "The ad set's optimization goal \u2014 the estimate depends on it" },
|
|
671
|
-
"promoted-object": { type: "string", description: "Promoted object JSON for conversion goals" },
|
|
672
|
-
"account-id": commonArgs["account-id"]
|
|
673
|
-
},
|
|
674
|
-
run: async ({ args }) => {
|
|
675
|
-
const parsed = metaDeliveryEstimateRequestSchema.safeParse({
|
|
676
|
-
accountId: await resolveAccountIdArg(args),
|
|
677
|
-
targeting: args["targeting-file"] ? loadJsonFileArg(args["targeting-file"]) : void 0,
|
|
678
|
-
adSetId: args["adset-id"],
|
|
679
|
-
optimizationGoal: args["optimization-goal"],
|
|
680
|
-
promotedObject: promotedObjectArg(args["promoted-object"])
|
|
681
|
-
});
|
|
682
|
-
if (!parsed.success) {
|
|
683
|
-
const issue = parsed.error.issues[0];
|
|
684
|
-
failValidation(issue ? `${issue.path.join(".") || "request"}: ${issue.message}` : "invalid request");
|
|
685
|
-
}
|
|
686
|
-
try {
|
|
687
|
-
const data = await apiPost("/api/ads/meta/delivery-estimate", parsed.data);
|
|
688
|
-
writeJsonEnvelope({ ok: true, data, hints: estimateHints(data) });
|
|
689
|
-
} catch (err) {
|
|
690
|
-
handleMetaError(err);
|
|
691
|
-
}
|
|
692
|
-
}
|
|
693
|
-
});
|
|
694
|
-
registerSchema({
|
|
695
|
-
command: "ads.meta.targeting.describe",
|
|
696
|
-
description: "A targeting spec, or a live ad set's targeting, in Meta's own words \u2014 the audience definition Ads Manager shows (locations, ages, interests, placements). Use it to say who an ad set reaches in plain words.",
|
|
697
|
-
args: {
|
|
698
|
-
"targeting-file": { type: "string", description: "Targeting JSON, as for adsets create", required: false },
|
|
699
|
-
"adset-id": { type: "string", description: "Describe an existing ad set instead", required: false },
|
|
700
|
-
"account-id": { type: "string", description: "Meta ad account ID (act_123)", required: false }
|
|
701
|
-
}
|
|
702
|
-
});
|
|
703
|
-
var describeCommand = defineCommand({
|
|
704
|
-
meta: {
|
|
705
|
-
name: "describe",
|
|
706
|
-
description: "Who a targeting spec or an ad set reaches, in Meta's words. Example: baker ads meta targeting describe --account-id act_123 --adset-id 6123"
|
|
707
|
-
},
|
|
708
|
-
args: {
|
|
709
|
-
"targeting-file": { type: "string", description: "Targeting JSON (the same file adsets create takes)" },
|
|
710
|
-
"adset-id": { type: "string", description: "Existing ad set to describe instead of a file" },
|
|
711
|
-
"account-id": commonArgs["account-id"]
|
|
712
|
-
},
|
|
713
|
-
run: async ({ args }) => {
|
|
714
|
-
const parsed = metaTargetingDescribeRequestSchema.safeParse({
|
|
715
|
-
accountId: await resolveAccountIdArg(args),
|
|
716
|
-
targeting: args["targeting-file"] ? loadJsonFileArg(args["targeting-file"]) : void 0,
|
|
717
|
-
adSetId: args["adset-id"]
|
|
718
|
-
});
|
|
719
|
-
if (!parsed.success) {
|
|
720
|
-
const issue = parsed.error.issues[0];
|
|
721
|
-
failValidation(issue ? `${issue.path.join(".") || "request"}: ${issue.message}` : "invalid request");
|
|
722
|
-
}
|
|
723
|
-
try {
|
|
724
|
-
const data = await apiPost("/api/ads/meta/targeting-describe", parsed.data);
|
|
725
|
-
writeJsonEnvelope({ ok: true, data });
|
|
726
|
-
} catch (err) {
|
|
727
|
-
handleMetaError(err);
|
|
728
|
-
}
|
|
729
|
-
}
|
|
730
|
-
});
|
|
731
|
-
var targetingCommand = defineCommand({
|
|
732
|
-
meta: {
|
|
733
|
-
name: "targeting",
|
|
734
|
-
description: `Look up the ids Meta targeting takes, check them, and size the audience \u2014 all reads, nothing staged.
|
|
735
|
-
|
|
736
|
-
Start here before writing interests, behaviors, places or languages into an ad set's --targeting-file:
|
|
737
|
-
baker ads meta targeting search --account-id act_123 --q "solar energy" \u2014 detailed targeting ids, every kind
|
|
738
|
-
baker ads meta targeting geo --account-id act_123 --q Madrid --country ES \u2014 location keys
|
|
739
|
-
baker ads meta targeting locales --account-id act_123 --q Spanish \u2014 language numbers
|
|
740
|
-
baker ads meta targeting categories --account-id act_123 --class behaviors \u2014 a whole class
|
|
741
|
-
baker ads meta targeting browse --account-id act_123 --type interests --q energy
|
|
742
|
-
baker ads meta targeting suggest --account-id act_123 --id interests:6003437140731
|
|
743
|
-
baker ads meta targeting validate --account-id act_123 --targeting-file t.json \u2014 before staging
|
|
744
|
-
baker ads meta targeting estimate --account-id act_123 --targeting-file t.json --optimization-goal LEAD_GENERATION
|
|
745
|
-
baker ads meta targeting describe --account-id act_123 --adset-id 6123 \u2014 the audience in Meta's words`
|
|
746
|
-
},
|
|
747
|
-
subCommands: {
|
|
748
|
-
search: searchCommand,
|
|
749
|
-
browse: browseCommand,
|
|
750
|
-
categories: categoriesCommand,
|
|
751
|
-
suggest: suggestCommand,
|
|
752
|
-
validate: validateCommand,
|
|
753
|
-
geo: geoCommand,
|
|
754
|
-
locales: localesCommand,
|
|
755
|
-
estimate: estimateCommand,
|
|
756
|
-
describe: describeCommand
|
|
757
|
-
}
|
|
758
|
-
});
|
|
759
|
-
export {
|
|
760
|
-
targetingCommand
|
|
761
|
-
};
|
|
762
|
-
//# sourceMappingURL=targeting-KJ4DI56R.js.map
|