@koda-sl/baker-cli 0.553.0 → 0.555.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 +8 -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-7QKQEHKT.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-B6ER4TQ7.js +2437 -0
- package/dist/analytics-QW5ZXDJR.js +447 -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-Y3DALQIU.js +38 -0
- package/dist/bid-pricing-UUAC4GTQ.js +103 -0
- package/dist/brand-IZYD5SBJ.js +22 -0
- package/dist/brief-NA3E2W4P.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-WHFDCHUP.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-YBHXCXWZ.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-3HKZU3Y5.js +19 -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-6PT22YSR.js +91 -0
- package/dist/chunk-6WVYBY2G.js +8954 -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-AL4MRNYI.js +709 -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-DAMC4FKK.js +224 -0
- package/dist/chunk-DSDI5DY3.js +115 -0
- package/dist/chunk-DSDI5DY3.js.map +1 -0
- package/dist/chunk-DWPOAU4Z.js +5471 -0
- package/dist/chunk-EENYLJUN.js +225 -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-KOEXPN3G.js +2209 -0
- package/dist/chunk-KT5JVIPZ.js +91 -0
- package/dist/chunk-LC6PVPJX.js +76 -0
- package/dist/chunk-LETR3RQE.js +275 -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-OBQ5YUOZ.js +1902 -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-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-TWFZIHKK.js +219 -0
- package/dist/chunk-U6G6ALXP.js +66 -0
- package/dist/chunk-UCJAPB5Y.js +334 -0
- package/dist/chunk-VFDWUIGR.js +57 -0
- package/dist/chunk-WC3YSN7L.js +604 -0
- package/dist/chunk-WIOPEK7K.js +930 -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-XYKODRQR.js +191 -0
- package/dist/chunk-XZAVBONI.js +64 -0
- package/dist/chunk-Y5PNLB24.js +84 -0
- package/dist/claim-PGDIRXIC.js +200 -0
- package/dist/cli.js +34 -34
- 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-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-LTIV3XPT.js +58 -0
- package/dist/creatives-Y2WLGDJW.js +223 -0
- package/dist/credentials-J5DMQJWN.js +290 -0
- package/dist/critique-RFTS2I46.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-2JVWCYRF.js +134 -0
- package/dist/draft-2JVWCYRF.js.map +1 -0
- package/dist/draft-4WMYCA7I.js +315 -0
- package/dist/draft-4WMYCA7I.js.map +1 -0
- package/dist/draft-7VGBJIJU.js +260 -0
- package/dist/draft-7VGBJIJU.js.map +1 -0
- package/dist/draft-DR5BJK7V.js +138 -0
- package/dist/draft-DR5BJK7V.js.map +1 -0
- package/dist/draft-EB5ZFDVN.js +557 -0
- package/dist/draft-EB5ZFDVN.js.map +1 -0
- package/dist/draft-I2FLECEX.js +220 -0
- package/dist/draft-N56HPS36.js +374 -0
- package/dist/draft-N56HPS36.js.map +1 -0
- package/dist/draft-ZLZRTPY6.js +332 -0
- package/dist/draft-ZLZRTPY6.js.map +1 -0
- package/dist/engine/index.js +5 -5
- 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-PXWPR3NZ.js +136 -0
- package/dist/feedback-QSIPSNAL.js +115 -0
- package/dist/feedback-record-DJHJWJAF.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-IJ2UUICC.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/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-VUWUKGD6.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/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-L3WDTW4D.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-RONIUYLJ.js +1330 -0
- package/dist/linkedin-RONIUYLJ.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-ZIJQZD5K.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-L4BI7HFL.js +35 -0
- package/dist/members-BX37KHKO.js +47 -0
- package/dist/meta-2GJZPVKM.js +122 -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/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-MA2GB6WL.js +96 -0
- package/dist/research-TDH4OBX6.js +265 -0
- package/dist/research-WWJUNYSJ.js +75 -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-FRPO2WNQ.js +69 -0
- package/dist/run-HENSSAQW.js +71 -0
- package/dist/scaffold-ad-QQBCUYUO.js +1513 -0
- package/dist/scaffold-static-ad-WUOAQEXS.js +1011 -0
- package/dist/scaffold-video-KFQAKQUO.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/search-2BAY3KKX.js +177 -0
- package/dist/select-K2SXPDDJ.js +110 -0
- package/dist/set-prompt-BZFOV3EB.js +199 -0
- package/dist/setup-links-QT63UZBR.js +144 -0
- package/dist/shopify-Q7TQIQ6N.js +4009 -0
- package/dist/shopify-Q7TQIQ6N.js.map +1 -0
- package/dist/site-S6QVMP7W.js +180 -0
- package/dist/sources-DTQ4NQAM.js +30 -0
- package/dist/sources-ORG5KQSW.js +457 -0
- package/dist/stale-5O7BQVTN.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-IDXFTGHP.js +49 -0
- package/dist/study-writes-GBUUKX4O.js +471 -0
- package/dist/sync-7LJZPHM3.js +57 -0
- package/dist/sync-definition-Q3XUSEZJ.js +70 -0
- package/dist/tag-manager-5WZPX2FJ.js +43 -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-KLF3Y4QO.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-CBITGC7C.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-SAQEORZY.js +125 -0
- package/dist/videos-GOIDZVVD.js +41 -0
- package/dist/viewer-check-KTRRUVZN.js +83 -0
- package/dist/web-6KUM7Q7S.js +173 -0
- package/dist/winning-ads-LOMI72Q2.js +86 -0
- package/dist/write-commands-3U5ZMIHH.js +1524 -0
- package/dist/write-commands-F5XPPLOO.js +1169 -0
- package/dist/x-APVY4YHX.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-EVQ37EV3.js +0 -120
- package/dist/ads-O5PUYU7H.js +0 -48
- 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-RQQWU7AP.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/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-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-2NKXOBT6.js +0 -106
- package/dist/draft-2NKXOBT6.js.map +0 -1
- package/dist/draft-3MPADYS4.js +0 -220
- package/dist/draft-AAEGEQZZ.js +0 -247
- package/dist/draft-AAEGEQZZ.js.map +0 -1
- package/dist/draft-CRDQR5I3.js +0 -342
- package/dist/draft-CRDQR5I3.js.map +0 -1
- package/dist/draft-I63QQ7LY.js +0 -106
- package/dist/draft-I63QQ7LY.js.map +0 -1
- package/dist/draft-PO5X4UVA.js +0 -313
- package/dist/draft-PO5X4UVA.js.map +0 -1
- package/dist/draft-QCKJT7XQ.js +0 -288
- package/dist/draft-QCKJT7XQ.js.map +0 -1
- package/dist/draft-VMLXZQQX.js +0 -408
- package/dist/draft-VMLXZQQX.js.map +0 -1
- 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-A3HLGTSI.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-HWEDJ4YS.js +0 -144
- package/dist/google-HWEDJ4YS.js.map +0 -1
- package/dist/google-WH3IXXMX.js +0 -3285
- package/dist/google-ads-4DLYASRC.js +0 -198
- 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/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-ZOBYUBGV.js +0 -1330
- package/dist/linkedin-ZOBYUBGV.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-IRXPQRBH.js +0 -122
- 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/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/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-PVMHMVIC.js +0 -3980
- package/dist/shopify-PVMHMVIC.js.map +0 -1
- 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/tag-manager-XAX5AI42.js +0 -43
- 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-2IZMW46M.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-O5PUYU7H.js.map → ads-7QKQEHKT.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-CZMCM7XC.js.map → analytics-B6ER4TQ7.js.map} +0 -0
- /package/dist/{analytics-K5FCQLI5.js.map → analytics-QW5ZXDJR.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-Y3DALQIU.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-NA3E2W4P.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-WHFDCHUP.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-RQQWU7AP.js.map → chatgpt-YBHXCXWZ.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-4XMPL3RU.js.map → chunk-3HKZU3Y5.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-IBBGABK2.js.map → chunk-6PT22YSR.js.map} +0 -0
- /package/dist/{chunk-QFVZIQRQ.js.map → chunk-6WVYBY2G.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-ZMTWQDFC.js.map → chunk-AL4MRNYI.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-YCAJCVW4.js.map → chunk-DAMC4FKK.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-N5AIO23H.js.map → chunk-KOEXPN3G.js.map} +0 -0
- /package/dist/{chunk-JBMZVC5D.js.map → chunk-KT5JVIPZ.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-XB4NKZAQ.js.map → chunk-N3PASNUA.js.map} +0 -0
- /package/dist/{chunk-SFQFUQDW.js.map → chunk-NL77JRKE.js.map} +0 -0
- /package/dist/{chunk-OIORUNKH.js.map → chunk-OBQ5YUOZ.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-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-IC4MREQH.js.map → chunk-TWFZIHKK.js.map} +0 -0
- /package/dist/{chunk-73MLPGI2.js.map → chunk-U6G6ALXP.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-FSEFZZ2T.js.map → chunk-WIOPEK7K.js.map} +0 -0
- /package/dist/{chunk-5NLUTJCQ.js.map → chunk-X3GWGFZP.js.map} +0 -0
- /package/dist/{chunk-Y4ZBNZBU.js.map → chunk-XYKODRQR.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/{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-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-LTIV3XPT.js.map} +0 -0
- /package/dist/{creatives-E4CTMZJJ.js.map → creatives-Y2WLGDJW.js.map} +0 -0
- /package/dist/{credentials-E2AIMWKX.js.map → credentials-J5DMQJWN.js.map} +0 -0
- /package/dist/{critique-JVT6X2T3.js.map → critique-RFTS2I46.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-3MPADYS4.js.map → draft-I2FLECEX.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-IVSLM5PN.js.map → feedback-PXWPR3NZ.js.map} +0 -0
- /package/dist/{feedback-HJRVTU6C.js.map → feedback-QSIPSNAL.js.map} +0 -0
- /package/dist/{feedback-record-P7CO3IGE.js.map → feedback-record-DJHJWJAF.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-A3HLGTSI.js.map → ga4-IJ2UUICC.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-WH3IXXMX.js.map → google-UJ4YJGTJ.js.map} +0 -0
- /package/dist/{google-ads-4DLYASRC.js.map → google-ads-RRKKSKDD.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-VUWUKGD6.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/{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-L3WDTW4D.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-ZIJQZD5K.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-L4BI7HFL.js.map} +0 -0
- /package/dist/{members-N3PQSVQC.js.map → members-BX37KHKO.js.map} +0 -0
- /package/dist/{meta-IRXPQRBH.js.map → meta-2GJZPVKM.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/{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-MA2GB6WL.js.map} +0 -0
- /package/dist/{research-7YDQOKA6.js.map → research-TDH4OBX6.js.map} +0 -0
- /package/dist/{research-MHXKAQW4.js.map → research-WWJUNYSJ.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-2LQ7XJEO.js.map → run-FRPO2WNQ.js.map} +0 -0
- /package/dist/{run-M7YU6KCV.js.map → run-HENSSAQW.js.map} +0 -0
- /package/dist/{scaffold-ad-6YPZ75YJ.js.map → scaffold-ad-QQBCUYUO.js.map} +0 -0
- /package/dist/{scaffold-static-ad-UJEWTDU5.js.map → scaffold-static-ad-WUOAQEXS.js.map} +0 -0
- /package/dist/{scaffold-video-M4VWSVJ6.js.map → scaffold-video-KFQAKQUO.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-K2SXPDDJ.js.map} +0 -0
- /package/dist/{set-prompt-TODWV2F4.js.map → set-prompt-BZFOV3EB.js.map} +0 -0
- /package/dist/{setup-links-MNBD3UMH.js.map → setup-links-QT63UZBR.js.map} +0 -0
- /package/dist/{site-ZZUKS6MQ.js.map → site-S6QVMP7W.js.map} +0 -0
- /package/dist/{sources-36MJ6T4V.js.map → sources-DTQ4NQAM.js.map} +0 -0
- /package/dist/{sources-GNLQHTSJ.js.map → sources-ORG5KQSW.js.map} +0 -0
- /package/dist/{stale-GJN7UO3D.js.map → stale-5O7BQVTN.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-IDXFTGHP.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-Q3XUSEZJ.js.map} +0 -0
- /package/dist/{tag-manager-XAX5AI42.js.map → tag-manager-5WZPX2FJ.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-KLF3Y4QO.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-CBITGC7C.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-SAQEORZY.js.map} +0 -0
- /package/dist/{videos-PJAPZPOT.js.map → videos-GOIDZVVD.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-LOMI72Q2.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-2IZMW46M.js.map → x-APVY4YHX.js.map} +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import {
|
|
2
|
+
handleLinkedinError,
|
|
3
|
+
loadTargetingArg,
|
|
4
|
+
resolveAccountIdArg
|
|
5
|
+
} from "./chunk-OTFHIGEO.js";
|
|
6
|
+
import {
|
|
7
|
+
writeAdsJson
|
|
8
|
+
} from "./chunk-QYH2UZAK.js";
|
|
9
|
+
import {
|
|
10
|
+
NO_CACHE_ARG
|
|
11
|
+
} from "./chunk-GO6ISZUZ.js";
|
|
12
|
+
import "./chunk-MKLAZD23.js";
|
|
13
|
+
import "./chunk-QV6AST5T.js";
|
|
14
|
+
import "./chunk-WCU362Z6.js";
|
|
15
|
+
import "./chunk-GIWHHCD6.js";
|
|
16
|
+
import "./chunk-SOPVIIUW.js";
|
|
17
|
+
import "./chunk-G4FG5EQO.js";
|
|
18
|
+
import "./chunk-R7XDGNZD.js";
|
|
19
|
+
import "./chunk-MSMTG6OC.js";
|
|
20
|
+
import {
|
|
21
|
+
apiPost
|
|
22
|
+
} from "./chunk-GFWWHCBF.js";
|
|
23
|
+
import "./chunk-JXTNP3B5.js";
|
|
24
|
+
import "./chunk-45D6WRCJ.js";
|
|
25
|
+
import "./chunk-CCYZJMZ7.js";
|
|
26
|
+
import "./chunk-YQSBHWOI.js";
|
|
27
|
+
|
|
28
|
+
// src/commands/ads/linkedin/audience-size.ts
|
|
29
|
+
import { defineCommand } from "citty";
|
|
30
|
+
var audienceSizeCommand = defineCommand({
|
|
31
|
+
meta: {
|
|
32
|
+
name: "audience-size",
|
|
33
|
+
description: `Estimate audience size for a targeting payload \u2014 pre-launch sanity check.
|
|
34
|
+
|
|
35
|
+
Returns total + active counts plus playbook \xA704 warnings:
|
|
36
|
+
size <20K \u2192 too narrow (will not deliver)
|
|
37
|
+
size <50K \u2192 outside the 50K\u2013500K sweet spot
|
|
38
|
+
size >500K \u2192 outside the sweet spot
|
|
39
|
+
size >1M \u2192 too broad, refine ICP
|
|
40
|
+
|
|
41
|
+
The targeting payload must follow LinkedIn's 'targetingCriteria' shape \u2014 an
|
|
42
|
+
include/exclude tree of and/or boolean operators with adTargetingFacet keys.
|
|
43
|
+
The simplest form:
|
|
44
|
+
{ "include": { "and": [{ "or": { "urn:li:adTargetingFacet:locations": ["urn:li:geo:103644278"] }}]}}
|
|
45
|
+
|
|
46
|
+
Examples:
|
|
47
|
+
baker ads linkedin audience-size --account-id 503001492 --targeting-file targeting.json
|
|
48
|
+
baker ads linkedin audience-size --account-id 503001492 --targeting '{"include":{"and":[]}}'`
|
|
49
|
+
},
|
|
50
|
+
args: {
|
|
51
|
+
"account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
|
|
52
|
+
"account-urn": { type: "string", description: "Alias for --account-id" },
|
|
53
|
+
targeting: { type: "string", description: "Inline JSON targetingCriteria payload" },
|
|
54
|
+
"targeting-file": { type: "string", description: "Path to JSON file with targetingCriteria" },
|
|
55
|
+
"no-cache": NO_CACHE_ARG,
|
|
56
|
+
output: { type: "string", description: "json", default: "json" }
|
|
57
|
+
},
|
|
58
|
+
run: async ({ args }) => {
|
|
59
|
+
const accountId = resolveAccountIdArg(args);
|
|
60
|
+
const targetingCriteria = loadTargetingArg(args);
|
|
61
|
+
try {
|
|
62
|
+
const data = await apiPost("/api/ads/linkedin/audience-size", {
|
|
63
|
+
accountId,
|
|
64
|
+
targetingCriteria,
|
|
65
|
+
skipCache: Boolean(args["no-cache"])
|
|
66
|
+
});
|
|
67
|
+
writeAdsJson({ ok: true, data });
|
|
68
|
+
} catch (err) {
|
|
69
|
+
handleLinkedinError(err);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
export {
|
|
74
|
+
audienceSizeCommand
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=audience-size-IM3N6W7C.js.map
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DATE_ORDERS,
|
|
3
|
+
customerListBatches,
|
|
4
|
+
customerListFromFile,
|
|
5
|
+
customerListUploadRefusal
|
|
6
|
+
} from "./chunk-VBGRHAEX.js";
|
|
7
|
+
import {
|
|
8
|
+
bareAccountId,
|
|
9
|
+
failWriteValidation,
|
|
10
|
+
repeatedListFlag,
|
|
11
|
+
requireTarget,
|
|
12
|
+
stageOp
|
|
13
|
+
} from "./chunk-EENYLJUN.js";
|
|
14
|
+
import {
|
|
15
|
+
CUSTOMER_LIST_BATCH_ROWS,
|
|
16
|
+
CUSTOMER_LIST_MAX_BATCHES,
|
|
17
|
+
brandSafetyTargetingFields
|
|
18
|
+
} from "./chunk-GC5P4KWY.js";
|
|
19
|
+
import "./chunk-GDFJOCDO.js";
|
|
20
|
+
import {
|
|
21
|
+
csvOrJson,
|
|
22
|
+
handleMetaError,
|
|
23
|
+
resolveAccountIdArg
|
|
24
|
+
} from "./chunk-QY7EK6Q4.js";
|
|
25
|
+
import "./chunk-ERSX3MKH.js";
|
|
26
|
+
import "./chunk-CDTAKCJR.js";
|
|
27
|
+
import "./chunk-4NZ47VXO.js";
|
|
28
|
+
import "./chunk-D5FY4FAK.js";
|
|
29
|
+
import "./chunk-4H6XLX7E.js";
|
|
30
|
+
import "./chunk-QALAJNBG.js";
|
|
31
|
+
import {
|
|
32
|
+
writeAdsOutput,
|
|
33
|
+
writeJsonEnvelope
|
|
34
|
+
} from "./chunk-QYH2UZAK.js";
|
|
35
|
+
import "./chunk-Y5PNLB24.js";
|
|
36
|
+
import "./chunk-N3PASNUA.js";
|
|
37
|
+
import "./chunk-E56V3RFO.js";
|
|
38
|
+
import "./chunk-EL3TDR5S.js";
|
|
39
|
+
import "./chunk-G6U45QD3.js";
|
|
40
|
+
import "./chunk-X6U3B6YK.js";
|
|
41
|
+
import "./chunk-SOPVIIUW.js";
|
|
42
|
+
import "./chunk-G4FG5EQO.js";
|
|
43
|
+
import "./chunk-R7XDGNZD.js";
|
|
44
|
+
import {
|
|
45
|
+
apiGet,
|
|
46
|
+
apiPost
|
|
47
|
+
} from "./chunk-GFWWHCBF.js";
|
|
48
|
+
import "./chunk-JXTNP3B5.js";
|
|
49
|
+
import {
|
|
50
|
+
requireChatId
|
|
51
|
+
} from "./chunk-45D6WRCJ.js";
|
|
52
|
+
import {
|
|
53
|
+
registerSchema
|
|
54
|
+
} from "./chunk-CCYZJMZ7.js";
|
|
55
|
+
import "./chunk-YQSBHWOI.js";
|
|
56
|
+
|
|
57
|
+
// src/commands/ads/meta/audience-writes.ts
|
|
58
|
+
import { readFileSync } from "fs";
|
|
59
|
+
import { defineCommand } from "citty";
|
|
60
|
+
var STAGED_NOTE = "Staged until publish \u2014 review with `baker ads meta draft`.";
|
|
61
|
+
var membersArgs = {
|
|
62
|
+
id: {
|
|
63
|
+
type: "positional",
|
|
64
|
+
description: "Customer-list audience id, or a meta_temp_* ref created in this chat",
|
|
65
|
+
required: true
|
|
66
|
+
},
|
|
67
|
+
"account-id": { type: "string", description: "Meta ad account ID (act_123)" },
|
|
68
|
+
file: {
|
|
69
|
+
type: "string",
|
|
70
|
+
description: "CSV (or ;/tab separated) in the workspace with a header row: email, phone, first name, last name, city, state, zip, country, birthday, gender, madid, external id"
|
|
71
|
+
},
|
|
72
|
+
country: {
|
|
73
|
+
type: "string",
|
|
74
|
+
description: "Two-letter country for phones written without their country code (when the row has no country column)"
|
|
75
|
+
},
|
|
76
|
+
"value-column": {
|
|
77
|
+
type: "string",
|
|
78
|
+
description: "Value-based list only: the column with each person's value (e.g. revenue)"
|
|
79
|
+
},
|
|
80
|
+
columns: {
|
|
81
|
+
type: "string",
|
|
82
|
+
description: "For a file without a header row: what each column is, in order (email,phone,country \u2014 comma-separated or repeated)"
|
|
83
|
+
},
|
|
84
|
+
"date-format": {
|
|
85
|
+
type: "string",
|
|
86
|
+
description: "How birthdays like 03/07/1990 are written: DMY (day first) or MDY (month first, US). Needed only when no date in the file shows it"
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
function schemaArgs(args) {
|
|
90
|
+
return Object.fromEntries(
|
|
91
|
+
Object.entries(args).map(([key, arg]) => [
|
|
92
|
+
key,
|
|
93
|
+
{ type: arg.type, description: arg.description, required: arg.required === true }
|
|
94
|
+
])
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
var ACTION_NOTES = {
|
|
98
|
+
add: "Adds the people in the file to the list; those already in it stay.",
|
|
99
|
+
remove: "Removes the people in the file from the list.",
|
|
100
|
+
replace: "Replaces the whole list with the file \u2014 everyone not in it leaves. Runs alone: not beside another change to the same list in this chat."
|
|
101
|
+
};
|
|
102
|
+
function dateFormatFlag(value) {
|
|
103
|
+
if (value === void 0) return void 0;
|
|
104
|
+
const upperValue = String(value).toUpperCase();
|
|
105
|
+
if (!DATE_ORDERS.includes(upperValue)) {
|
|
106
|
+
failWriteValidation(`--date-format takes ${DATE_ORDERS.join(" or ")}, not ${String(value)}`);
|
|
107
|
+
}
|
|
108
|
+
return upperValue;
|
|
109
|
+
}
|
|
110
|
+
function readList(args, rawArgs) {
|
|
111
|
+
const path = typeof args.file === "string" ? args.file : "";
|
|
112
|
+
if (!path) {
|
|
113
|
+
failWriteValidation("pass --file with the customer list (CSV in the workspace)");
|
|
114
|
+
}
|
|
115
|
+
let content;
|
|
116
|
+
try {
|
|
117
|
+
content = readFileSync(path, "utf8");
|
|
118
|
+
} catch (err) {
|
|
119
|
+
failWriteValidation(`could not read ${path}: ${err instanceof Error ? err.message : String(err)}`);
|
|
120
|
+
}
|
|
121
|
+
try {
|
|
122
|
+
return customerListFromFile(content, {
|
|
123
|
+
defaultCountry: typeof args.country === "string" ? args.country : void 0,
|
|
124
|
+
valueColumn: typeof args["value-column"] === "string" ? args["value-column"] : void 0,
|
|
125
|
+
columns: repeatedListFlag(rawArgs, "columns", args.columns),
|
|
126
|
+
dateFormat: dateFormatFlag(args["date-format"])
|
|
127
|
+
});
|
|
128
|
+
} catch (err) {
|
|
129
|
+
failWriteValidation(err instanceof Error ? err.message : String(err));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function listHints(list) {
|
|
133
|
+
const hints = [`${list.rows.length.toLocaleString("en-US")} people read from the file, hashed before upload`];
|
|
134
|
+
const unreadable = Object.entries(list.unreadable).map(([key, count]) => `${count} ${key}`);
|
|
135
|
+
if (unreadable.length > 0) {
|
|
136
|
+
hints.push(`values that could not be read and were left out: ${unreadable.join(", ")}`);
|
|
137
|
+
}
|
|
138
|
+
if (list.skippedRows > 0) {
|
|
139
|
+
hints.push(
|
|
140
|
+
`${list.skippedRows} rows had nothing Meta can match on (no readable email, phone or id${list.schema.includes("LOOKALIKE_VALUE") ? ", or no readable value" : ""}) and were left out`
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
if (list.ignoredColumns.length > 0) {
|
|
144
|
+
hints.push(`columns not sent (Meta does not match on them): ${list.ignoredColumns.join(", ")}`);
|
|
145
|
+
}
|
|
146
|
+
if (list.rows.length < 100) {
|
|
147
|
+
hints.push("Meta needs about 100 matched people before a list can be used for ads or as a lookalike seed");
|
|
148
|
+
}
|
|
149
|
+
return hints;
|
|
150
|
+
}
|
|
151
|
+
async function stageMembers(action, args, rawArgs) {
|
|
152
|
+
const accountId = await bareAccountId(args);
|
|
153
|
+
const audienceId = requireTarget(args, "audience");
|
|
154
|
+
const list = readList(args, rawArgs);
|
|
155
|
+
if (list.rows.length === 0) {
|
|
156
|
+
failWriteValidation("no one in this file can be matched \u2014 check the columns (email, phone, \u2026) and their values");
|
|
157
|
+
}
|
|
158
|
+
const batches = customerListBatches(list);
|
|
159
|
+
if (batches.length > CUSTOMER_LIST_MAX_BATCHES) {
|
|
160
|
+
failWriteValidation(
|
|
161
|
+
`this file holds ${list.rows.length.toLocaleString("en-US")} people; one change carries at most ${(CUSTOMER_LIST_BATCH_ROWS * CUSTOMER_LIST_MAX_BATCHES).toLocaleString("en-US")} \u2014 split the file and stage one add per part`
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
const refusal = customerListUploadRefusal(audienceId, action, list);
|
|
165
|
+
if (refusal) {
|
|
166
|
+
failWriteValidation(refusal);
|
|
167
|
+
}
|
|
168
|
+
const stored = [];
|
|
169
|
+
try {
|
|
170
|
+
const chatId = requireChatId();
|
|
171
|
+
for (const batch of batches) {
|
|
172
|
+
const response = await apiPost(
|
|
173
|
+
"/api/ads/meta/draft/customer-list-batch",
|
|
174
|
+
{ chatId, accountId, batch },
|
|
175
|
+
{ timeoutMs: 12e4 }
|
|
176
|
+
);
|
|
177
|
+
stored.push(response.data);
|
|
178
|
+
}
|
|
179
|
+
} catch (err) {
|
|
180
|
+
handleMetaError(err);
|
|
181
|
+
}
|
|
182
|
+
await stageOp(
|
|
183
|
+
{
|
|
184
|
+
kind: "customAudience.members",
|
|
185
|
+
accountId,
|
|
186
|
+
payload: { audience_id: audienceId, action, schema: list.schema, batches: stored }
|
|
187
|
+
},
|
|
188
|
+
listHints(list)
|
|
189
|
+
);
|
|
190
|
+
}
|
|
191
|
+
function membersCommand(action) {
|
|
192
|
+
registerSchema({
|
|
193
|
+
command: `ads.meta.audiences.members.${action}`,
|
|
194
|
+
description: `Stage ${action === "add" ? "adding people to" : action === "remove" ? "removing people from" : "replacing everyone in"} a Meta customer list from a CSV in the workspace. ${ACTION_NOTES[action]} Every value is normalized and SHA-256 hashed on this machine before upload, as Meta asks, with a masked copy of each person (l***@empresa.com) for the review; only counts are printed. Applied at publish; Meta takes up to 24h to match.`,
|
|
195
|
+
args: schemaArgs(membersArgs)
|
|
196
|
+
});
|
|
197
|
+
return defineCommand({
|
|
198
|
+
meta: {
|
|
199
|
+
name: action,
|
|
200
|
+
description: `${ACTION_NOTES[action]} ${STAGED_NOTE}
|
|
201
|
+
Example: baker ads meta audiences members ${action} 120249492603650208 --file customers.csv --country ES`
|
|
202
|
+
},
|
|
203
|
+
args: membersArgs,
|
|
204
|
+
run: async ({ args, rawArgs }) => {
|
|
205
|
+
await stageMembers(action, args, rawArgs);
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
var audiencesMembersCommand = defineCommand({
|
|
210
|
+
meta: {
|
|
211
|
+
name: "members",
|
|
212
|
+
description: `Change who is in a customer-list audience, from a CSV in the workspace. Hashed here before upload. ${STAGED_NOTE}
|
|
213
|
+
baker ads meta audiences members add <audienceId|meta_temp_\u2026> --file customers.csv [--country ES]
|
|
214
|
+
baker ads meta audiences members remove <audienceId> --file unsubscribed.csv
|
|
215
|
+
baker ads meta audiences members replace <audienceId> --file customers.csv
|
|
216
|
+
value-based list: add --value-column revenue`
|
|
217
|
+
},
|
|
218
|
+
subCommands: {
|
|
219
|
+
add: membersCommand("add"),
|
|
220
|
+
remove: membersCommand("remove"),
|
|
221
|
+
replace: membersCommand("replace")
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
registerSchema({
|
|
225
|
+
command: "ads.meta.audiences.delete",
|
|
226
|
+
description: "Stage deleting a Meta custom audience \u2014 permanent, applied at publish. Every ad that targets it stops and cannot be restarted; Meta refuses while a lookalike is built from it (delete the lookalike first).",
|
|
227
|
+
args: {
|
|
228
|
+
id: { type: "positional", description: "Audience id", required: true },
|
|
229
|
+
"account-id": { type: "string", description: "Meta ad account ID (act_123)", required: false }
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
var audiencesDeleteCommand = defineCommand({
|
|
233
|
+
meta: {
|
|
234
|
+
name: "delete",
|
|
235
|
+
description: `Stage deleting an audience \u2014 permanent: ads that target it stop for good. Only when the user asked to delete it. ${STAGED_NOTE}`
|
|
236
|
+
},
|
|
237
|
+
args: {
|
|
238
|
+
id: { type: "positional", description: "Audience id", required: true },
|
|
239
|
+
"account-id": { type: "string", description: "Meta ad account ID (act_123)" }
|
|
240
|
+
},
|
|
241
|
+
run: async ({ args }) => {
|
|
242
|
+
await stageOp({
|
|
243
|
+
kind: "customAudience.update",
|
|
244
|
+
accountId: await bareAccountId(args),
|
|
245
|
+
target: requireTarget(args, "audience"),
|
|
246
|
+
payload: { status: "DELETED" }
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
registerSchema({
|
|
251
|
+
command: "ads.meta.audiences.saved",
|
|
252
|
+
description: "List the ad account's saved audiences (targeting saved in Ads Manager), or one with --saved-audience-id. Read-only \u2014 Meta's API cannot create or change one. Use one on a new ad set with `adsets create --saved-audience <id>`.",
|
|
253
|
+
args: {
|
|
254
|
+
"account-id": { type: "string", description: "Meta ad account ID (act_123)", required: false },
|
|
255
|
+
"saved-audience-id": {
|
|
256
|
+
type: "string",
|
|
257
|
+
description: "One saved audience, with its full targeting",
|
|
258
|
+
required: false
|
|
259
|
+
},
|
|
260
|
+
full: { type: "boolean", description: "Include each audience's whole targeting spec", required: false },
|
|
261
|
+
output: { type: "string", description: "json|csv|jsonl|md", required: false, default: "json" }
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
var savedAudiencesCommand = defineCommand({
|
|
265
|
+
meta: {
|
|
266
|
+
name: "saved",
|
|
267
|
+
description: "Saved audiences on the account (read-only). Example: baker ads meta audiences saved --account-id act_123; use one with `adsets create --saved-audience <id>`"
|
|
268
|
+
},
|
|
269
|
+
args: {
|
|
270
|
+
"account-id": { type: "string", description: "Meta ad account ID (act_123)" },
|
|
271
|
+
"saved-audience-id": { type: "string", description: "One saved audience, with its full targeting" },
|
|
272
|
+
full: { type: "boolean", description: "Include each audience's whole targeting spec" },
|
|
273
|
+
output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
|
|
274
|
+
},
|
|
275
|
+
run: async ({ args }) => {
|
|
276
|
+
const accountId = await resolveAccountIdArg(args);
|
|
277
|
+
try {
|
|
278
|
+
const params = { "account-id": accountId };
|
|
279
|
+
if (args["saved-audience-id"]) params["saved-audience-id"] = String(args["saved-audience-id"]);
|
|
280
|
+
const rows = await apiGet("/api/ads/meta/saved-audiences", params);
|
|
281
|
+
const shown = args.full || args["saved-audience-id"] ? rows : rows.map(({ targeting: _targeting, ...row }) => row);
|
|
282
|
+
const hints = rows.length === 0 ? [
|
|
283
|
+
"This account has no saved audiences \u2014 Meta's API cannot create one; build the targeting on the ad set instead."
|
|
284
|
+
] : [
|
|
285
|
+
"Use one on a new ad set: `baker ads meta adsets create \u2026 --saved-audience <id>` (its targeting is copied)."
|
|
286
|
+
];
|
|
287
|
+
const fmt = csvOrJson(args);
|
|
288
|
+
if (fmt !== "json") {
|
|
289
|
+
writeAdsOutput(shown, fmt, void 0, hints);
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
writeJsonEnvelope({ ok: true, data: shown, hints });
|
|
293
|
+
} catch (err) {
|
|
294
|
+
handleMetaError(err);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
function targetingFromSavedAudience(saved, flagged) {
|
|
299
|
+
if (flagged === void 0) return { targeting: saved };
|
|
300
|
+
if (!Object.keys(flagged).every((key) => key in brandSafetyTargetingFields)) {
|
|
301
|
+
return { refusal: "--saved-audience brings the targeting \u2014 pass it or --targeting-file, not both" };
|
|
302
|
+
}
|
|
303
|
+
return { targeting: { ...saved, ...flagged } };
|
|
304
|
+
}
|
|
305
|
+
async function savedAudienceTargeting(accountId, savedAudienceId) {
|
|
306
|
+
try {
|
|
307
|
+
const rows = await apiGet("/api/ads/meta/saved-audiences", {
|
|
308
|
+
"account-id": accountId,
|
|
309
|
+
"saved-audience-id": savedAudienceId
|
|
310
|
+
});
|
|
311
|
+
const targeting = rows[0]?.targeting;
|
|
312
|
+
if (!targeting) {
|
|
313
|
+
failWriteValidation(`saved audience ${savedAudienceId} has no targeting to copy`);
|
|
314
|
+
}
|
|
315
|
+
return targeting;
|
|
316
|
+
} catch (err) {
|
|
317
|
+
handleMetaError(err);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
export {
|
|
321
|
+
audiencesDeleteCommand,
|
|
322
|
+
audiencesMembersCommand,
|
|
323
|
+
savedAudienceTargeting,
|
|
324
|
+
savedAudiencesCommand,
|
|
325
|
+
targetingFromSavedAudience
|
|
326
|
+
};
|
|
327
|
+
//# sourceMappingURL=audience-writes-DWSCHYQF.js.map
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import {
|
|
2
|
+
META_LIST_SHAPE_ARGS,
|
|
3
|
+
registerMetaListSchema,
|
|
4
|
+
shapeMetaListRows,
|
|
5
|
+
writeMetaListRows
|
|
6
|
+
} from "./chunk-ZW2CN6L6.js";
|
|
7
|
+
import {
|
|
8
|
+
csvOrJson,
|
|
9
|
+
handleMetaError,
|
|
10
|
+
resolveAccountIdArg
|
|
11
|
+
} from "./chunk-QY7EK6Q4.js";
|
|
12
|
+
import "./chunk-QALAJNBG.js";
|
|
13
|
+
import "./chunk-QYH2UZAK.js";
|
|
14
|
+
import {
|
|
15
|
+
NO_CACHE_ARG
|
|
16
|
+
} from "./chunk-GO6ISZUZ.js";
|
|
17
|
+
import "./chunk-65Y3RCWP.js";
|
|
18
|
+
import {
|
|
19
|
+
apiGet
|
|
20
|
+
} from "./chunk-GFWWHCBF.js";
|
|
21
|
+
import "./chunk-JXTNP3B5.js";
|
|
22
|
+
import "./chunk-45D6WRCJ.js";
|
|
23
|
+
import "./chunk-CCYZJMZ7.js";
|
|
24
|
+
import "./chunk-YQSBHWOI.js";
|
|
25
|
+
|
|
26
|
+
// src/commands/ads/meta/audiences.ts
|
|
27
|
+
import { defineCommand } from "citty";
|
|
28
|
+
var listArgs = {
|
|
29
|
+
"account-id": { type: "string", description: "Meta ad account ID" },
|
|
30
|
+
"name-contains": {
|
|
31
|
+
type: "string",
|
|
32
|
+
description: "Only audiences whose name contains this text, matched by Meta before anything is returned: --name-contains Cerradas. A lookalike can be named anything, so find one audience's lookalikes with --seed <its id>"
|
|
33
|
+
},
|
|
34
|
+
seed: {
|
|
35
|
+
type: "string",
|
|
36
|
+
description: "Only the lookalikes built from this source audience id, whatever they are named: --seed 120240480760260208"
|
|
37
|
+
},
|
|
38
|
+
limit: { type: "string", description: "Max rows (default 500)" },
|
|
39
|
+
"no-cache": NO_CACHE_ARG,
|
|
40
|
+
...META_LIST_SHAPE_ARGS
|
|
41
|
+
};
|
|
42
|
+
registerMetaListSchema(
|
|
43
|
+
"audiences",
|
|
44
|
+
"List custom and lookalike audiences, as a table by default: id, name, subtype, size_min, size_max, retention_days, updated_date \u2014 plus delivery (why Meta says it cannot be used) and seed_id (the audience a lookalike was built from) when a row has one. The rule, data source and pixel are one --fields away (--fields id,name,rule) or --full. Start here to find one audience: baker ads meta audiences --name-contains <text>; then its lookalikes, whatever they are named: --seed <its id>. --output json returns the rows in the envelope.",
|
|
45
|
+
listArgs
|
|
46
|
+
);
|
|
47
|
+
var listCommand = defineCommand({
|
|
48
|
+
meta: {
|
|
49
|
+
name: "list",
|
|
50
|
+
description: "List custom audiences. Runs by default when no subcommand is given. Example: baker ads meta audiences --name-contains buyers"
|
|
51
|
+
},
|
|
52
|
+
args: listArgs,
|
|
53
|
+
run: async ({ args }) => {
|
|
54
|
+
const accountId = await resolveAccountIdArg(args);
|
|
55
|
+
try {
|
|
56
|
+
const params = { "account-id": accountId };
|
|
57
|
+
if (args["name-contains"]) params["name-contains"] = args["name-contains"];
|
|
58
|
+
if (args.seed) params.seed = args.seed;
|
|
59
|
+
if (args.limit) params.limit = args.limit;
|
|
60
|
+
if (args["no-cache"]) params["skip-cache"] = "true";
|
|
61
|
+
const data = await apiGet("/api/ads/meta/audiences", params);
|
|
62
|
+
writeMetaListRows("audiences", shapeMetaListRows("audiences", data, args), csvOrJson(args));
|
|
63
|
+
} catch (err) {
|
|
64
|
+
handleMetaError(err);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
var audiencesCommand = defineCommand({
|
|
69
|
+
meta: {
|
|
70
|
+
name: "audiences",
|
|
71
|
+
description: `List custom audiences, or stage writes (create/update/delete, members add|remove|replace). Write subcommands stage ops on this chat's draft.
|
|
72
|
+
Includes lookalikes, website-pixel audiences, customer-file audiences. Meta hides exact size when count < 1000.
|
|
73
|
+
|
|
74
|
+
Listings print a table by default: id, name, subtype, size_min, size_max, retention_days, updated_date, plus
|
|
75
|
+
delivery and seed_id when a row has one. The rule and data source are --fields (dotted paths) or --full away.
|
|
76
|
+
|
|
77
|
+
Examples:
|
|
78
|
+
baker ads meta audiences --account-id act_123
|
|
79
|
+
baker ads meta audiences --name-contains Cerradas \u2014 find one audience by name
|
|
80
|
+
baker ads meta audiences --seed 120240480760260208 \u2014 the lookalikes built from that audience
|
|
81
|
+
baker ads meta audiences --name-contains Leads --fields id,name,rule,retention_days --output json
|
|
82
|
+
baker ads meta audiences create --name "Site 30d" --subtype WEBSITE --file rule.json
|
|
83
|
+
baker ads meta audiences create --name "Past buyers" --subtype CUSTOM --file buyers.json # {"members":[{"email":"\u2026"}]}
|
|
84
|
+
baker ads meta audiences create --name "Customers" --subtype CUSTOM --customer-file-source USER_PROVIDED_ONLY
|
|
85
|
+
baker ads meta audiences members add meta_temp_ab12 --file customers.csv --country ES
|
|
86
|
+
baker ads meta audiences saved --account-id act_123 \u2014 saved audiences (read-only)`
|
|
87
|
+
},
|
|
88
|
+
subCommands: {
|
|
89
|
+
list: listCommand,
|
|
90
|
+
create: () => import("./write-commands-F5XPPLOO.js").then((m) => m.audiencesCreateCommand),
|
|
91
|
+
update: () => import("./write-commands-F5XPPLOO.js").then((m) => m.audiencesUpdateCommand),
|
|
92
|
+
delete: () => import("./audience-writes-DWSCHYQF.js").then((m) => m.audiencesDeleteCommand),
|
|
93
|
+
members: () => import("./audience-writes-DWSCHYQF.js").then((m) => m.audiencesMembersCommand),
|
|
94
|
+
saved: () => import("./audience-writes-DWSCHYQF.js").then((m) => m.savedAudiencesCommand)
|
|
95
|
+
},
|
|
96
|
+
// `args` stays even though the parent has no `run`: citty scans rawArgs for the
|
|
97
|
+
// subcommand name using THIS command's arg defs, so without them `--account-id act_1`
|
|
98
|
+
// would read `act_1` as a subcommand. `default` (not `run`) dispatches the bare
|
|
99
|
+
// invocation — citty falls through to `run` after a subcommand, double-executing it.
|
|
100
|
+
args: listArgs,
|
|
101
|
+
default: "list"
|
|
102
|
+
});
|
|
103
|
+
export {
|
|
104
|
+
audiencesCommand
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=audiences-PYBJU2GV.js.map
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import {
|
|
2
|
+
handleLinkedinError,
|
|
3
|
+
resolveAccountIdArg
|
|
4
|
+
} from "./chunk-OTFHIGEO.js";
|
|
5
|
+
import {
|
|
6
|
+
writeAdsJson
|
|
7
|
+
} from "./chunk-QYH2UZAK.js";
|
|
8
|
+
import {
|
|
9
|
+
NO_CACHE_ARG
|
|
10
|
+
} from "./chunk-GO6ISZUZ.js";
|
|
11
|
+
import "./chunk-MKLAZD23.js";
|
|
12
|
+
import "./chunk-QV6AST5T.js";
|
|
13
|
+
import "./chunk-WCU362Z6.js";
|
|
14
|
+
import "./chunk-GIWHHCD6.js";
|
|
15
|
+
import "./chunk-SOPVIIUW.js";
|
|
16
|
+
import "./chunk-G4FG5EQO.js";
|
|
17
|
+
import "./chunk-R7XDGNZD.js";
|
|
18
|
+
import "./chunk-MSMTG6OC.js";
|
|
19
|
+
import {
|
|
20
|
+
apiPost
|
|
21
|
+
} from "./chunk-GFWWHCBF.js";
|
|
22
|
+
import "./chunk-JXTNP3B5.js";
|
|
23
|
+
import "./chunk-45D6WRCJ.js";
|
|
24
|
+
import "./chunk-CCYZJMZ7.js";
|
|
25
|
+
import "./chunk-YQSBHWOI.js";
|
|
26
|
+
|
|
27
|
+
// src/commands/ads/linkedin/audit.ts
|
|
28
|
+
import { defineCommand } from "citty";
|
|
29
|
+
var SEVERITY_RANK = {
|
|
30
|
+
critical: 0,
|
|
31
|
+
high: 1,
|
|
32
|
+
medium: 2,
|
|
33
|
+
low: 3
|
|
34
|
+
};
|
|
35
|
+
var STATUS_RANK = {
|
|
36
|
+
fail: 0,
|
|
37
|
+
warn: 1,
|
|
38
|
+
partial: 2,
|
|
39
|
+
pass: 3,
|
|
40
|
+
n_a: 4
|
|
41
|
+
};
|
|
42
|
+
function filterFindings(findings, severity, area) {
|
|
43
|
+
return findings.filter((f) => {
|
|
44
|
+
if (severity && !severity.includes(f.severity)) return false;
|
|
45
|
+
if (area && !area.includes(f.area)) return false;
|
|
46
|
+
return true;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function sortFindings(findings) {
|
|
50
|
+
return [...findings].sort((a, b) => {
|
|
51
|
+
const sa = STATUS_RANK[a.status] - STATUS_RANK[b.status];
|
|
52
|
+
if (sa !== 0) return sa;
|
|
53
|
+
return SEVERITY_RANK[a.severity] - SEVERITY_RANK[b.severity];
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function renderMarkdown(result) {
|
|
57
|
+
const lines = [];
|
|
58
|
+
lines.push(`# LinkedIn Ads Audit \u2014 ${result.account.name} (${result.account.id})`);
|
|
59
|
+
lines.push("");
|
|
60
|
+
lines.push(
|
|
61
|
+
`**Scope:** ${result.scope.campaigns} campaigns, ${result.scope.creatives} creatives, last ${result.scope.windowDays}d`
|
|
62
|
+
);
|
|
63
|
+
lines.push("");
|
|
64
|
+
lines.push(
|
|
65
|
+
`**Summary:** ${result.summary.pass} pass \u2022 ${result.summary.critical} critical \u2022 ${result.summary.high} high \u2022 ${result.summary.medium} medium \u2022 ${result.summary.low} low \u2022 ${result.summary.n_a} n/a (${result.summary.totalChecks} total)`
|
|
66
|
+
);
|
|
67
|
+
lines.push("");
|
|
68
|
+
lines.push("| # | Area | Check | Status | Severity | Notes |");
|
|
69
|
+
lines.push("|---|------|-------|--------|----------|-------|");
|
|
70
|
+
result.findings.forEach((f, idx) => {
|
|
71
|
+
const note = noteOf(f);
|
|
72
|
+
lines.push(
|
|
73
|
+
`| ${idx + 1} | ${f.area} | ${escapeMd(f.check)} | ${f.status.toUpperCase()} | ${f.severity} | ${escapeMd(note)} |`
|
|
74
|
+
);
|
|
75
|
+
});
|
|
76
|
+
return lines.join("\n");
|
|
77
|
+
}
|
|
78
|
+
function escapeMd(text) {
|
|
79
|
+
return text.replace(/\|/g, "\\|").replace(/\n/g, " ");
|
|
80
|
+
}
|
|
81
|
+
function noteOf(f) {
|
|
82
|
+
if (f.status === "pass") return "";
|
|
83
|
+
const ev = f.evidence ? JSON.stringify(f.evidence) : "";
|
|
84
|
+
const fix = f.fix?.explanation ?? "";
|
|
85
|
+
return [fix, ev].filter(Boolean).join(" \u2014 ");
|
|
86
|
+
}
|
|
87
|
+
var auditCommand = defineCommand({
|
|
88
|
+
meta: {
|
|
89
|
+
name: "audit",
|
|
90
|
+
description: `Run a LinkedIn Ads playbook audit \u2014 30+ checks across Settings, Tracking,
|
|
91
|
+
Audience, Campaigns, Creative, Performance, Bidding, and Compliance.
|
|
92
|
+
|
|
93
|
+
Each finding has {id, area, check, status, severity, evidence, fix} fields with
|
|
94
|
+
playbook citations. The default JSON output is agent-friendly; --format md
|
|
95
|
+
renders a deliverable-ready table that mirrors the google-ads-playbook
|
|
96
|
+
10-audit-summary.md style.
|
|
97
|
+
|
|
98
|
+
Exit code 0 always. Use the JSON 'summary' counts to decide if action is needed.
|
|
99
|
+
|
|
100
|
+
Examples:
|
|
101
|
+
baker ads linkedin audit --account-id 503001492
|
|
102
|
+
baker ads linkedin audit --account-id 503001492 --campaign-id 1234 # narrow scope
|
|
103
|
+
baker ads linkedin audit --account-id 503001492 --window-days 90
|
|
104
|
+
baker ads linkedin audit --account-id 503001492 --severity critical,high
|
|
105
|
+
baker ads linkedin audit --account-id 503001492 --area Settings,Tracking
|
|
106
|
+
baker ads linkedin audit --account-id 503001492 --format md`
|
|
107
|
+
},
|
|
108
|
+
args: {
|
|
109
|
+
"account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
|
|
110
|
+
"account-urn": { type: "string", description: "Alias for --account-id" },
|
|
111
|
+
"campaign-id": { type: "string", description: "Narrow scope to a single campaign" },
|
|
112
|
+
"window-days": { type: "string", description: "Lookback window for performance checks (default: 30)" },
|
|
113
|
+
severity: { type: "string", description: "CSV severity filter: critical,high,medium,low" },
|
|
114
|
+
area: {
|
|
115
|
+
type: "string",
|
|
116
|
+
description: "CSV area filter: Settings,Tracking,Audience,Campaigns,Creative,Performance,Bidding,Compliance,Hygiene"
|
|
117
|
+
},
|
|
118
|
+
format: { type: "string", description: "Output format: json | md (default: json)" },
|
|
119
|
+
"no-cache": NO_CACHE_ARG
|
|
120
|
+
},
|
|
121
|
+
run: async ({ args }) => {
|
|
122
|
+
const accountId = resolveAccountIdArg(args);
|
|
123
|
+
const windowDays = args["window-days"] ? Number(args["window-days"]) : 30;
|
|
124
|
+
if (!Number.isFinite(windowDays) || windowDays < 1 || windowDays > 365) {
|
|
125
|
+
handleLinkedinError(new Error("--window-days must be 1..365"));
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
const data = await apiPost("/api/ads/linkedin/audit", {
|
|
129
|
+
accountId,
|
|
130
|
+
campaignId: args["campaign-id"] ? String(args["campaign-id"]) : void 0,
|
|
131
|
+
windowDays,
|
|
132
|
+
skipCache: Boolean(args["no-cache"])
|
|
133
|
+
});
|
|
134
|
+
const severityFilter = args.severity?.split(",").map((s) => s.trim().toLowerCase()).filter(Boolean);
|
|
135
|
+
const areaFilter = args.area?.split(",").map((s) => s.trim()).filter(Boolean);
|
|
136
|
+
const filtered = filterFindings(data.findings, severityFilter, areaFilter);
|
|
137
|
+
const sorted = sortFindings(filtered);
|
|
138
|
+
const result = { ...data, findings: sorted };
|
|
139
|
+
const fmt = args.format ?? "json";
|
|
140
|
+
if (fmt === "md") {
|
|
141
|
+
process.stdout.write(`${renderMarkdown(result)}
|
|
142
|
+
`);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
writeAdsJson({ ok: true, data: result });
|
|
146
|
+
} catch (err) {
|
|
147
|
+
handleLinkedinError(err);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
export {
|
|
152
|
+
auditCommand
|
|
153
|
+
};
|
|
154
|
+
//# sourceMappingURL=audit-N3LAQMD4.js.map
|