@koda-sl/baker-cli 0.538.0-dev.fc2958a1d → 0.539.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 -5
- package/dist/account-LO57QU6O.js +82 -0
- package/dist/account-V5XHQY2D.js +82 -0
- package/dist/account-reads-CPL3HLZ5.js +219 -0
- package/dist/account-users-RF3VN6VL.js +64 -0
- package/dist/account-writes-MFKCVMMV.js +68 -0
- package/dist/accounts-DTHZLL3R.js +701 -0
- package/dist/accounts-SJ5MKHKE.js +80 -0
- package/dist/actions-LRJRQXC3.js +55 -0
- package/dist/activecampaign-DMFUWRD6.js +938 -0
- package/dist/activities-OC3CJX4I.js +75 -0
- package/dist/ad-group-writes-WFYPFO7R.js +172 -0
- package/dist/ad-groups-IPY3TJUX.js +70 -0
- package/dist/ad-writes-LDNNN72V.js +176 -0
- package/dist/add-HSF5S544.js +107 -0
- package/dist/add-IOIY44HY.js +305 -0
- package/dist/ads-HCK2GF2V.js +120 -0
- package/dist/ads-NTDJRTEG.js +79 -0
- package/dist/ads-XZ43D67L.js +48 -0
- package/dist/adsets-TC2VPFXW.js +182 -0
- package/dist/advertisers-T4AGXFN4.js +123 -0
- package/dist/analytics-MDIE5CPL.js +2437 -0
- package/dist/analytics-TLEWXYXV.js +447 -0
- package/dist/animate-CQON6SZE.js +480 -0
- package/dist/assign-N5PNZWUW.js +80 -0
- package/dist/audience-size-GMANWKU5.js +76 -0
- package/dist/audiences-KRI7E7FY.js +280 -0
- package/dist/audiences-UJCOT423.js +106 -0
- package/dist/audiences-UJCOT423.js.map +1 -0
- package/dist/audit-EGLLMYFY.js +154 -0
- package/dist/autocomplete-6DUDQLRT.js +114 -0
- package/dist/avatars-UZN75NVZ.js +38 -0
- package/dist/bid-pricing-SQERHWYU.js +103 -0
- package/dist/brand-XY7EVNPW.js +22 -0
- package/dist/brief-NMACLLA2.js +543 -0
- package/dist/campaign-groups-VWSLBQKJ.js +99 -0
- package/dist/campaign-writes-DAL4EFIV.js +176 -0
- package/dist/campaign-writes-FBIQOLRS.js +168 -0
- package/dist/campaigns-64JH3U6Z.js +113 -0
- package/dist/campaigns-JCKEU2NC.js +130 -0
- package/dist/campaigns-KYI6WAXT.js +111 -0
- package/dist/campaigns-TKQDXU5H.js +78 -0
- package/dist/canvas-DTJM2LTE.js +46 -0
- package/dist/capabilities-O5UVQ4KK.js +147 -0
- package/dist/catalog-6CXOEKBI.js +66 -0
- package/dist/catalogs-ETVY5OZ5.js +130 -0
- package/dist/changes-2P2P4LAU.js +143 -0
- package/dist/changes-2P2P4LAU.js.map +1 -0
- package/dist/chatgpt-GINMQJBI.js +47 -0
- package/dist/chats-NUO3CA4N.js +384 -0
- package/dist/check-RRHOCY2U.js +107 -0
- package/dist/chunk-24SPBLU4.js +1646 -0
- package/dist/chunk-2AJ5UNOF.js +131 -0
- package/dist/chunk-2Y3VZILY.js +98 -0
- package/dist/chunk-3BOPIUO6.js +163 -0
- package/dist/chunk-3LH5ANM4.js +7712 -0
- package/dist/chunk-3RWSYI6N.js +63 -0
- package/dist/chunk-4PWC4KAK.js +843 -0
- package/dist/chunk-5MMAYAWR.js +103 -0
- package/dist/chunk-5VVXF3OS.js +676 -0
- package/dist/chunk-5Y3EEI52.js +224 -0
- package/dist/chunk-6EMVPPSQ.js +89 -0
- package/dist/chunk-77MDZIHK.js +23 -0
- package/dist/chunk-A5PQYKVO.js +344 -0
- package/dist/chunk-AA3WWPX2.js +392 -0
- package/dist/chunk-AGEWPMBR.js +288 -0
- package/dist/chunk-AGEWPMBR.js.map +1 -0
- package/dist/chunk-AL6373J7.js +930 -0
- package/dist/chunk-AMHVCMBW.js +3510 -0
- package/dist/chunk-BQYSBQZ3.js +91 -0
- package/dist/chunk-BYZQ43VI.js +592 -0
- package/dist/chunk-C54JXXV3.js +24026 -0
- package/dist/chunk-C54JXXV3.js.map +1 -0
- package/dist/chunk-C753PJBU.js +91 -0
- package/dist/chunk-CB7GZQVN.js +249 -0
- package/dist/chunk-CTBDVZ5E.js +274 -0
- package/dist/chunk-CV35AJYT.js +57 -0
- package/dist/chunk-EJBHZ7AQ.js +387 -0
- package/dist/chunk-EKQCHHZW.js +319 -0
- package/dist/chunk-FOD5VSHH.js +51 -0
- package/dist/chunk-FSLSISPI.js +46 -0
- package/dist/chunk-G523URK2.js +438 -0
- package/dist/chunk-G6KE737R.js +377 -0
- package/dist/chunk-GNZM7SWV.js +156 -0
- package/dist/chunk-GRXBD43G.js +169 -0
- package/dist/chunk-GT76FWES.js +1919 -0
- package/dist/chunk-GTIQUOYC.js +148 -0
- package/dist/chunk-GTV62WIS.js +479 -0
- package/dist/chunk-GY6N42PE.js +142 -0
- package/dist/chunk-H27R5IVQ.js +64 -0
- package/dist/chunk-HHQYP6RM.js +783 -0
- package/dist/chunk-HN7GK5UX.js +910 -0
- package/dist/chunk-I6W6FAUZ.js +547 -0
- package/dist/chunk-IJ5DWALA.js +225 -0
- package/dist/chunk-JAC6JVCI.js +26 -0
- package/dist/chunk-K5CEP7W4.js +66 -0
- package/dist/chunk-KJOEW2PI.js +297 -0
- package/dist/chunk-KSECMOHE.js +857 -0
- package/dist/chunk-KSECMOHE.js.map +1 -0
- package/dist/chunk-KVBNUGQ6.js +197 -0
- package/dist/chunk-MCJ5I5LR.js +3187 -0
- package/dist/chunk-MCJ5I5LR.js.map +1 -0
- package/dist/chunk-MZPS46OR.js +76 -0
- package/dist/chunk-N2MZLW6O.js +170 -0
- package/dist/chunk-NGXZQESA.js +5471 -0
- package/dist/chunk-NJIRVF2B.js +8954 -0
- package/dist/chunk-NNG4QCKJ.js +207 -0
- package/dist/chunk-NPF4KTRK.js +191 -0
- package/dist/chunk-NQ5O2NCJ.js +5368 -0
- package/dist/chunk-OU4TDC2P.js +275 -0
- package/dist/chunk-P7WISPGE.js +61 -0
- package/dist/chunk-R2VP7FK4.js +831 -0
- package/dist/chunk-RD63FPG6.js +150 -0
- package/dist/chunk-RFR7ZN3P.js +604 -0
- package/dist/chunk-RW32BYY3.js +1518 -0
- package/dist/chunk-SMDJW5W4.js +19 -0
- package/dist/chunk-THV7SMY6.js +203 -0
- package/dist/chunk-TI4UL56R.js +4266 -0
- package/dist/chunk-TI4UL56R.js.map +1 -0
- package/dist/chunk-TNQJDM2P.js +1902 -0
- package/dist/chunk-TQDZQT6U.js +167 -0
- package/dist/chunk-UC46M2KW.js +494 -0
- package/dist/chunk-UIPSSTMA.js +228 -0
- package/dist/chunk-VMUJ6JHR.js +2209 -0
- package/dist/chunk-VWKFQ4ZY.js +285 -0
- package/dist/chunk-WTYKTPZP.js +455 -0
- package/dist/chunk-XFMFZAWL.js +429 -0
- package/dist/chunk-YFIWCMVC.js +638 -0
- package/dist/claim-ZKKC5472.js +200 -0
- package/dist/cli.js +31 -31
- package/dist/cli.js.map +1 -1
- package/dist/companies-CJFQ63MC.js +198 -0
- package/dist/company-7K4EDRIN.js +308 -0
- package/dist/complete-ODOQLGSO.js +84 -0
- package/dist/connect-APAK3WAY.js +45 -0
- package/dist/conversation-B6V3VCT5.js +96 -0
- package/dist/conversion-report-JNWBTLA5.js +127 -0
- package/dist/conversion-upload-command-6OKMSO2T.js +439 -0
- package/dist/conversion-writes-2VOWP4RD.js +122 -0
- package/dist/conversions-D32UTEPH.js +140 -0
- package/dist/conversions-JGIBYLK5.js +78 -0
- package/dist/create-ALMXIVHA.js +239 -0
- package/dist/create-EUQYK2SH.js +135 -0
- package/dist/create-TOCR7EFZ.js +62 -0
- package/dist/create-VAGPIZTU.js +210 -0
- package/dist/creatives-62PV7BIF.js +223 -0
- package/dist/creatives-ARJMZYXM.js +118 -0
- package/dist/creatives-ARJMZYXM.js.map +1 -0
- package/dist/creatives-HUDKBUDS.js +58 -0
- package/dist/credentials-WCD4F225.js +290 -0
- package/dist/critique-KJXHSKLT.js +1451 -0
- package/dist/critique-OO6SORTA.js +232 -0
- package/dist/crm-5CYCCV34.js +323 -0
- package/dist/crm-YVRIT2RL.js +227 -0
- package/dist/currency-JDAVYMD3.js +88 -0
- package/dist/customers-FSOXPMOU.js +59 -0
- package/dist/delete-EEU6WJ6M.js +67 -0
- package/dist/delete-H7IWZGUZ.js +69 -0
- package/dist/delete-QXZFJNUS.js +57 -0
- package/dist/demographics-RM5PA54R.js +141 -0
- package/dist/discard-6XOYXNZ6.js +69 -0
- package/dist/discover-VEHKBNCY.js +172 -0
- package/dist/domain-X7MT3XUG.js +101 -0
- package/dist/download-YQYR5GUP.js +172 -0
- package/dist/draft-DUAFRL2G.js +283 -0
- package/dist/draft-FXMGEY3E.js +220 -0
- package/dist/draft-V7VGPJK4.js +396 -0
- package/dist/draft-XWHU5C5Z.js +335 -0
- package/dist/draft-YXGASP7M.js +310 -0
- package/dist/engine/index.js +8 -8
- package/dist/experiments-2XOC77Y7.js +236 -0
- package/dist/facets-7Q36JF2D.js +117 -0
- package/dist/feedback-WPV2RKJS.js +115 -0
- package/dist/feedback-record-UEWS4FZJ.js +269 -0
- package/dist/fetch-AARAG6UL.js +179 -0
- package/dist/fit-T4ALNNXL.js +65 -0
- package/dist/flows-PYPA2FM3.js +250 -0
- package/dist/fonts-H2GG2JXA.js +39 -0
- package/dist/forecast-LMSPNY6X.js +121 -0
- package/dist/forecast-UYBYSH3Y.js +169 -0
- package/dist/funnel-KIYPFPIY.js +397 -0
- package/dist/generate-QG7GX6WO.js +263 -0
- package/dist/get-IN6UXQRX.js +59 -0
- package/dist/get-ROETYEYF.js +82 -0
- package/dist/google-UQLYCYSX.js +3267 -0
- package/dist/google-ads-CBJZKTXG.js +198 -0
- package/dist/history-EUL7GBUK.js +153 -0
- package/dist/history-EUL7GBUK.js.map +1 -0
- package/dist/history-GTT55ZP7.js +102 -0
- package/dist/history-XOB23MLX.js +69 -0
- package/dist/hubspot-B6Z77JY6.js +782 -0
- package/dist/ideas-RVK4RNKN.js +45 -0
- package/dist/images-RGJZ6FJL.js +92 -0
- package/dist/ingest-7FHCKRYR.js +27 -0
- package/dist/ingest-GBWY2ZEP.js +123 -0
- package/dist/insights-7CQJOBWX.js +132 -0
- package/dist/inspect-RC6GKLIF.js +192 -0
- package/dist/intent-P75BDP4H.js +95 -0
- package/dist/keyword-gap-54F6CZLM.js +130 -0
- package/dist/keyword-metrics-PL5IYZGN.js +200 -0
- package/dist/keywords-for-site-4FMJ5IGN.js +131 -0
- package/dist/landing-24TVKWTP.js +28 -0
- package/dist/languages-PEGOE365.js +40 -0
- package/dist/leads-6TFBPYMM.js +115 -0
- package/dist/learn-4LGNFGWH.js +207 -0
- package/dist/line-item-writes-AOTRDB4L.js +211 -0
- package/dist/line-items-ERV3F2EI.js +107 -0
- package/dist/link-QZXI5YJP.js +67 -0
- package/dist/linkedin-4BKZ5KUE.js +1328 -0
- package/dist/linkedin-person-ZLXMOG2U.js +139 -0
- package/dist/list-7FB6764Q.js +67 -0
- package/dist/list-QHAYR2IQ.js +154 -0
- package/dist/list-UCQEHPIR.js +306 -0
- package/dist/locations-MXWGZIGU.js +69 -0
- package/dist/locations-SHYN5J4Q.js +40 -0
- package/dist/log-WPZRUMZU.js +95 -0
- package/dist/make-VCAS2M2W.js +1367 -0
- package/dist/map-5EQO2VXB.js +436 -0
- package/dist/mcp-CKOYL4IU.js +729 -0
- package/dist/media-sources-EDZ2PBJY.js +35 -0
- package/dist/members-E2AGJIU6.js +47 -0
- package/dist/meta-MBW5LM5V.js +122 -0
- package/dist/meta-MBW5LM5V.js.map +1 -0
- package/dist/metrics-25LYUEB7.js +152 -0
- package/dist/models-EU3NO4IY.js +155 -0
- package/dist/normalize-PHJT5CAD.js +144 -0
- package/dist/options-KFABOCWK.js +125 -0
- package/dist/organization-BP5DTWL7.js +949 -0
- package/dist/performance-C4M3GJPC.js +27 -0
- package/dist/performance-H3SJD3SN.js +5565 -0
- package/dist/pixels-NLH2PN6Q.js +62 -0
- package/dist/promoted-tweet-writes-ATWAKV6N.js +183 -0
- package/dist/promoted-tweets-TWQP3MDP.js +119 -0
- package/dist/publish-Q4W7MI7P.js +344 -0
- package/dist/query-SRJXJVDY.js +62 -0
- package/dist/reddit-JWZYSUAG.js +29 -0
- package/dist/refresh-VRBHP4AA.js +97 -0
- package/dist/release-OV4ZDCXG.js +63 -0
- package/dist/relevant-pages-VJHTUJMB.js +99 -0
- package/dist/remove-DBCSQSEP.js +53 -0
- package/dist/reopen-5ZOEKYQ5.js +66 -0
- package/dist/rerun-YMRW6BHM.js +96 -0
- package/dist/research-HUM6CF74.js +265 -0
- package/dist/research-M3QPWTYX.js +72 -0
- package/dist/reset-BPAFOW6M.js +57 -0
- package/dist/reset-WAY3BSZX.js +57 -0
- package/dist/resolve-AQ6UFEMN.js +124 -0
- package/dist/retry-3KYFTPXZ.js +65 -0
- package/dist/retry-XO54CIRK.js +63 -0
- package/dist/revenue-PPDMQO3H.js +91 -0
- package/dist/rules-4ENXG5XW.js +99 -0
- package/dist/rules-add-FTBOOE6L.js +465 -0
- package/dist/run-2ZRTKR7A.js +69 -0
- package/dist/run-UECCNQ63.js +71 -0
- package/dist/scaffold-ad-DFKFUOOZ.js +1513 -0
- package/dist/scaffold-static-ad-II3TUE5I.js +1011 -0
- package/dist/scaffold-video-IKVYICIY.js +885 -0
- package/dist/schedule-ERHKGQID.js +64 -0
- package/dist/scheduled-agents-ICXFV7NP.js +55 -0
- package/dist/schema-NUUZ3MG7.js +135 -0
- package/dist/search-B2APYHV6.js +177 -0
- package/dist/select-WVNPJDXP.js +110 -0
- package/dist/sends-H7WMLJ5H.js +349 -0
- package/dist/sends-H7WMLJ5H.js.map +1 -0
- package/dist/set-prompt-KHBDWDXA.js +199 -0
- package/dist/setup-links-R3FH7WK4.js +144 -0
- package/dist/shopify-34CFN6SG.js +3958 -0
- package/dist/site-H6AMVMIX.js +180 -0
- package/dist/sources-2VJMHUH7.js +30 -0
- package/dist/sources-S63224S7.js +457 -0
- package/dist/sources-S63224S7.js.map +1 -0
- package/dist/stale-6BEHWQZ7.js +90 -0
- package/dist/status-MCMOSDVX.js +65 -0
- package/dist/studio-4QOFG7MQ.js +49 -0
- package/dist/sync-WJCJHNET.js +57 -0
- package/dist/sync-definition-THVMBGJR.js +70 -0
- package/dist/tags-AGFUJ2BB.js +227 -0
- package/dist/tags-OPMPPJY2.js +23 -0
- package/dist/tags-VGJ76RJT.js +26 -0
- package/dist/tags-VOCMMZ75.js +23 -0
- package/dist/tags-WK6P5A4D.js +23 -0
- package/dist/targeting-criteria-KRIMZRVI.js +113 -0
- package/dist/targets-MCOEM4XQ.js +106 -0
- package/dist/testimonials-A2AFXSZV.js +32 -0
- package/dist/themes-JBX6W4SP.js +95 -0
- package/dist/top-companies-ESCRXLSK.js +111 -0
- package/dist/transcript-N2ZWN4CI.js +165 -0
- package/dist/translate-YGUYVOGA.js +603 -0
- package/dist/triggers-G4EW5XG6.js +144 -0
- package/dist/unlink-DRIVH2GT.js +70 -0
- package/dist/unstage-WUQV6QBV.js +88 -0
- package/dist/update-5GIAKABM.js +66 -0
- package/dist/update-COXCKREW.js +101 -0
- package/dist/update-NA4M4J5D.js +155 -0
- package/dist/update-T7PSOZES.js +192 -0
- package/dist/upload-IXVEJLZU.js +130 -0
- package/dist/url-options-JSRAMMEM.js +131 -0
- package/dist/url-params-IL2M2WZI.js +101 -0
- package/dist/validate-QAJJ7QCJ.js +125 -0
- package/dist/videos-I7PCC2EC.js +41 -0
- package/dist/viewer-check-PUAWVYWP.js +83 -0
- package/dist/web-O2MCPPB5.js +143 -0
- package/dist/winning-ads-FTMP4FUC.js +86 -0
- package/dist/write-commands-NKKNWQIM.js +1525 -0
- package/dist/x-FPRMRQLQ.js +47 -0
- package/package.json +1 -1
- package/dist/account-2RNYGT6E.js +0 -82
- package/dist/account-T26J6HSJ.js +0 -82
- package/dist/account-reads-P2WXB3NZ.js +0 -219
- package/dist/account-users-REWJY2TN.js +0 -64
- package/dist/account-writes-QEZQCU46.js +0 -68
- package/dist/accounts-MJ7AGPOW.js +0 -701
- package/dist/accounts-PGSNRUNV.js +0 -80
- package/dist/actions-NGBCTPNG.js +0 -55
- package/dist/activecampaign-ASE4IVTD.js +0 -938
- package/dist/activities-FXYVPCRJ.js +0 -75
- package/dist/ad-group-writes-MVQKICSC.js +0 -172
- package/dist/ad-groups-5OGD7PJ7.js +0 -70
- package/dist/ad-writes-OVD6EESQ.js +0 -176
- package/dist/add-QBEF2C7Z.js +0 -107
- package/dist/add-YJP43JWJ.js +0 -305
- package/dist/ads-4O4TPDAU.js +0 -120
- package/dist/ads-GF7QLKBX.js +0 -48
- package/dist/ads-SCWCG2YI.js +0 -79
- package/dist/adsets-OVFVN5NX.js +0 -182
- package/dist/advertisers-SUZT4NRJ.js +0 -123
- package/dist/analytics-NJBF3U54.js +0 -2437
- package/dist/analytics-PI6SXDW4.js +0 -447
- package/dist/animate-HV2QJWVE.js +0 -480
- package/dist/assign-6YG56OCM.js +0 -80
- package/dist/audience-size-5X3BHQ6Q.js +0 -76
- package/dist/audiences-6N5B7CA2.js +0 -280
- package/dist/audiences-O464BZ6J.js +0 -86
- package/dist/audiences-O464BZ6J.js.map +0 -1
- package/dist/audit-PLXF2NAS.js +0 -154
- package/dist/autocomplete-YJSDRTMT.js +0 -114
- package/dist/avatars-BDQWTQKY.js +0 -38
- package/dist/bid-pricing-BUNOVWUB.js +0 -103
- package/dist/brand-MHFSUXWN.js +0 -22
- package/dist/brief-A5AEZBZL.js +0 -543
- package/dist/campaign-groups-UYNINWXX.js +0 -99
- package/dist/campaign-writes-RCA52SAP.js +0 -168
- package/dist/campaign-writes-TFRV62VN.js +0 -176
- package/dist/campaigns-CIQIZ46G.js +0 -113
- package/dist/campaigns-EETR5UJR.js +0 -111
- package/dist/campaigns-KPUA4GP2.js +0 -78
- package/dist/campaigns-N75G2BDU.js +0 -130
- package/dist/canvas-M3RXWJ2T.js +0 -46
- package/dist/capabilities-XFLST37G.js +0 -147
- package/dist/catalog-JVBRY2U6.js +0 -66
- package/dist/catalogs-QYAAPTMV.js +0 -130
- package/dist/changes-Y4NAQ2IV.js +0 -135
- package/dist/changes-Y4NAQ2IV.js.map +0 -1
- package/dist/chatgpt-KJAUJBRK.js +0 -47
- package/dist/chats-5BNHZWO7.js +0 -384
- package/dist/check-ESD3QPIZ.js +0 -107
- package/dist/chunk-2EVHGBQY.js +0 -319
- package/dist/chunk-2JFCDUZO.js +0 -156
- package/dist/chunk-2MAQKELK.js +0 -494
- package/dist/chunk-2OCUXPWT.js +0 -1919
- package/dist/chunk-3ANPDWU7.js +0 -438
- package/dist/chunk-3C3IR2F6.js +0 -2209
- package/dist/chunk-3GMJEM4C.js +0 -377
- package/dist/chunk-4YWSFFOP.js +0 -831
- package/dist/chunk-5JG77PP3.js +0 -57
- package/dist/chunk-5TWI6FFY.js +0 -344
- package/dist/chunk-65HTWFKN.js +0 -224
- package/dist/chunk-6OIKNJ7G.js +0 -26
- package/dist/chunk-6RUHIXVA.js +0 -455
- package/dist/chunk-6X4XAANZ.js +0 -191
- package/dist/chunk-6Z32HS4D.js +0 -91
- package/dist/chunk-7MK4TND6.js +0 -163
- package/dist/chunk-AUO4QNMI.js +0 -148
- package/dist/chunk-B6WOWVAA.js +0 -285
- package/dist/chunk-BF32BRMX.js +0 -98
- package/dist/chunk-BIFK5OGB.js +0 -249
- package/dist/chunk-BNO3EFGR.js +0 -4266
- package/dist/chunk-BNO3EFGR.js.map +0 -1
- package/dist/chunk-BUXPBPAP.js +0 -142
- package/dist/chunk-CDRS2QAP.js +0 -392
- package/dist/chunk-CFVVZKSU.js +0 -387
- package/dist/chunk-D3KWV63D.js +0 -19
- package/dist/chunk-D5LV3ECR.js +0 -23
- package/dist/chunk-DBLOEIJ2.js +0 -5368
- package/dist/chunk-DQIPDAPH.js +0 -274
- package/dist/chunk-EFBJ35ZS.js +0 -930
- package/dist/chunk-EMXBMLQ4.js +0 -91
- package/dist/chunk-EZVRXFCC.js +0 -169
- package/dist/chunk-F3CZFUXZ.js +0 -3187
- package/dist/chunk-F3CZFUXZ.js.map +0 -1
- package/dist/chunk-GCFC2MNR.js +0 -228
- package/dist/chunk-GQ4D3BT6.js +0 -207
- package/dist/chunk-HMFIOE4P.js +0 -63
- package/dist/chunk-HXLCETLB.js +0 -3510
- package/dist/chunk-JZ6XRIXG.js +0 -846
- package/dist/chunk-JZ6XRIXG.js.map +0 -1
- package/dist/chunk-KAUW3OFC.js +0 -843
- package/dist/chunk-KFHW5TCM.js +0 -167
- package/dist/chunk-MFAFGQ7Z.js +0 -200
- package/dist/chunk-MFAFGQ7Z.js.map +0 -1
- package/dist/chunk-MHRFRSQ6.js +0 -676
- package/dist/chunk-MQZXGTGI.js +0 -479
- package/dist/chunk-NNNMTRGI.js +0 -547
- package/dist/chunk-NQF5U6FX.js +0 -150
- package/dist/chunk-OROWRGRJ.js +0 -170
- package/dist/chunk-OWJGBIQ2.js +0 -1646
- package/dist/chunk-PAU4VS7H.js +0 -103
- package/dist/chunk-PTGC7CVG.js +0 -429
- package/dist/chunk-RAO7FTMY.js +0 -64
- package/dist/chunk-RM5T4MA6.js +0 -783
- package/dist/chunk-RP2PU3CA.js +0 -275
- package/dist/chunk-RSKU45CU.js +0 -89
- package/dist/chunk-SA6XZ3FP.js +0 -1902
- package/dist/chunk-SIKCVWM3.js +0 -76
- package/dist/chunk-SPQHISWX.js +0 -8954
- package/dist/chunk-SQVT243W.js +0 -51
- package/dist/chunk-T267DS5U.js +0 -297
- package/dist/chunk-UQKDP46G.js +0 -197
- package/dist/chunk-UVVOG5A7.js +0 -61
- package/dist/chunk-UZGZS35I.js +0 -592
- package/dist/chunk-W7BORINM.js +0 -66
- package/dist/chunk-WM6JHUPY.js +0 -5471
- package/dist/chunk-XBMZNFN7.js +0 -203
- package/dist/chunk-XHW24Q5Q.js +0 -910
- package/dist/chunk-XMHTLWWE.js +0 -225
- package/dist/chunk-XPXHJ6EP.js +0 -24026
- package/dist/chunk-XPXHJ6EP.js.map +0 -1
- package/dist/chunk-XXS6SUVM.js +0 -7712
- package/dist/chunk-Y3ESEQRI.js +0 -46
- package/dist/chunk-YAX5CGUY.js +0 -638
- package/dist/chunk-ZCN2XUPQ.js +0 -604
- package/dist/chunk-ZJOXRK2G.js +0 -1518
- package/dist/chunk-ZPHHJPDG.js +0 -131
- package/dist/claim-NM5T33W6.js +0 -200
- package/dist/companies-VBNBS6LR.js +0 -198
- package/dist/company-3KOV3TJT.js +0 -308
- package/dist/complete-TVY4F5YX.js +0 -84
- package/dist/connect-W6H3DT2C.js +0 -45
- package/dist/conversation-LCGWNPUG.js +0 -96
- package/dist/conversion-report-GK2FUT2R.js +0 -127
- package/dist/conversion-upload-command-Q7LZFFZL.js +0 -439
- package/dist/conversion-writes-STESFLTB.js +0 -122
- package/dist/conversions-D2RPIL3I.js +0 -140
- package/dist/conversions-JBRU7CGB.js +0 -78
- package/dist/create-DHIXUD4Q.js +0 -135
- package/dist/create-OW2BLTBE.js +0 -239
- package/dist/create-TYG5SAQE.js +0 -210
- package/dist/create-XGDJKMDB.js +0 -62
- package/dist/creatives-3ZPFUAKL.js +0 -58
- package/dist/creatives-HRA4X22I.js +0 -89
- package/dist/creatives-HRA4X22I.js.map +0 -1
- package/dist/creatives-PN6EQYVU.js +0 -223
- package/dist/credentials-AVRHDGM5.js +0 -290
- package/dist/critique-76EMERXI.js +0 -1451
- package/dist/critique-SZSKQYUL.js +0 -232
- package/dist/crm-4O65STFF.js +0 -227
- package/dist/crm-JMIIB55O.js +0 -323
- package/dist/currency-HQW6FJS5.js +0 -88
- package/dist/customers-GV3AD6B6.js +0 -59
- package/dist/delete-CJGW5MKC.js +0 -69
- package/dist/delete-ISAOQTI5.js +0 -57
- package/dist/delete-WFF5EVIL.js +0 -67
- package/dist/demographics-XSMD6KI4.js +0 -141
- package/dist/discard-B5QMX35Q.js +0 -69
- package/dist/discover-DLGO3VW6.js +0 -172
- package/dist/domain-WA4HAHCE.js +0 -101
- package/dist/download-67IB5DPC.js +0 -172
- package/dist/draft-4MKYX4VU.js +0 -396
- package/dist/draft-I7HIRQ6F.js +0 -283
- package/dist/draft-NXGJ3DD4.js +0 -220
- package/dist/draft-P73N5PT4.js +0 -310
- package/dist/draft-QAPMXYBR.js +0 -335
- package/dist/experiments-YEI3HSBU.js +0 -236
- package/dist/facets-EQLEOMDT.js +0 -117
- package/dist/feedback-JNSHN7DE.js +0 -115
- package/dist/feedback-record-JV43NSJI.js +0 -269
- package/dist/fetch-O4EYJVMN.js +0 -179
- package/dist/fit-7N7AHYQF.js +0 -65
- package/dist/flows-DTZGIGZS.js +0 -250
- package/dist/fonts-TYDQXRIU.js +0 -39
- package/dist/forecast-AODSMD7S.js +0 -169
- package/dist/forecast-VO7XY46L.js +0 -121
- package/dist/funnel-CV4DZXUS.js +0 -397
- package/dist/generate-HSDSCKDW.js +0 -263
- package/dist/get-4S4XRZ2J.js +0 -82
- package/dist/get-FDZZEB5R.js +0 -59
- package/dist/google-DPBZJ3TV.js +0 -3267
- package/dist/google-ads-EPFX2NA4.js +0 -198
- package/dist/history-7UJW5TRO.js +0 -102
- package/dist/history-JCLXT3AO.js +0 -136
- package/dist/history-JCLXT3AO.js.map +0 -1
- package/dist/history-SHQVK5I7.js +0 -69
- package/dist/hubspot-J6372OWH.js +0 -782
- package/dist/ideas-TKMMQ557.js +0 -45
- package/dist/images-J7LJETPR.js +0 -92
- package/dist/ingest-LVAH5OF5.js +0 -123
- package/dist/ingest-UBP7TEXU.js +0 -27
- package/dist/insights-UMPXHRKD.js +0 -132
- package/dist/inspect-22G3OPFK.js +0 -192
- package/dist/intent-NBP5IDND.js +0 -95
- package/dist/keyword-gap-67UJ2LDD.js +0 -130
- package/dist/keyword-metrics-QP5ZNOC6.js +0 -200
- package/dist/keywords-for-site-QTE332T7.js +0 -131
- package/dist/landing-TOYYCWFX.js +0 -28
- package/dist/languages-TM7SHGRO.js +0 -40
- package/dist/leads-FTWBDLBQ.js +0 -115
- package/dist/learn-3N7M3UHA.js +0 -207
- package/dist/line-item-writes-VFPXT4W6.js +0 -211
- package/dist/line-items-HB2N7RKO.js +0 -107
- package/dist/link-KAY6VYFH.js +0 -67
- package/dist/linkedin-CDSEMSCF.js +0 -1328
- package/dist/linkedin-person-HR6HKFUU.js +0 -139
- package/dist/list-INU27RQJ.js +0 -306
- package/dist/list-QWCU77C3.js +0 -67
- package/dist/list-VJ3CVEDW.js +0 -154
- package/dist/locations-HAXZUHJP.js +0 -40
- package/dist/locations-JFBM4XBL.js +0 -69
- package/dist/log-AUN4NOPP.js +0 -95
- package/dist/make-B5HDRFCX.js +0 -1367
- package/dist/map-CCBSITK7.js +0 -436
- package/dist/mcp-45YWYNYM.js +0 -729
- package/dist/media-sources-N7MBY3GE.js +0 -35
- package/dist/members-2P2QCBJO.js +0 -47
- package/dist/meta-CTKXBVXT.js +0 -122
- package/dist/meta-CTKXBVXT.js.map +0 -1
- package/dist/metrics-XWHE4LYQ.js +0 -152
- package/dist/models-3C6BWHEC.js +0 -155
- package/dist/normalize-MLRJ6IYU.js +0 -144
- package/dist/options-6QAJ67XB.js +0 -125
- package/dist/organization-P5LAMNMT.js +0 -949
- package/dist/performance-3PH7UYQN.js +0 -27
- package/dist/performance-6BMFU6IJ.js +0 -5565
- package/dist/pixels-PMPL63ON.js +0 -62
- package/dist/promoted-tweet-writes-EPXZFIUP.js +0 -183
- package/dist/promoted-tweets-Q46HUYN6.js +0 -119
- package/dist/publish-DHDRUTXM.js +0 -344
- package/dist/query-IR3LCFON.js +0 -62
- package/dist/reddit-2FQOS3B3.js +0 -29
- package/dist/refresh-VJPKAPJM.js +0 -97
- package/dist/release-O233BAQA.js +0 -63
- package/dist/relevant-pages-NPUSAV3K.js +0 -99
- package/dist/remove-HNSOYQVB.js +0 -53
- package/dist/reopen-B7KHVN5X.js +0 -66
- package/dist/rerun-KAB7AXTY.js +0 -96
- package/dist/research-I4ZQ4YQ3.js +0 -72
- package/dist/research-Z2SE775C.js +0 -265
- package/dist/reset-4T6XUNOO.js +0 -57
- package/dist/reset-YHEMD5N5.js +0 -57
- package/dist/resolve-5RJD2ELK.js +0 -124
- package/dist/retry-S3EC6FCA.js +0 -65
- package/dist/retry-WKYMY2KB.js +0 -63
- package/dist/revenue-C4E4PRLL.js +0 -91
- package/dist/rules-JGTKFXM3.js +0 -99
- package/dist/rules-add-3DTRLVGR.js +0 -465
- package/dist/run-2TKYHCN2.js +0 -71
- package/dist/run-TYJLOJW7.js +0 -69
- package/dist/scaffold-ad-RFRUPUKW.js +0 -1513
- package/dist/scaffold-static-ad-N5QCJFGP.js +0 -1011
- package/dist/scaffold-video-VAG3WN5W.js +0 -885
- package/dist/schedule-6UYJLE5K.js +0 -64
- package/dist/scheduled-agents-YEHJ4XIB.js +0 -55
- package/dist/schema-BCCCNVNO.js +0 -135
- package/dist/search-J43ZG7W3.js +0 -177
- package/dist/select-I2UPGGZ5.js +0 -110
- package/dist/sends-CEZAPEQN.js +0 -349
- package/dist/sends-CEZAPEQN.js.map +0 -1
- package/dist/set-prompt-SU7YM7FW.js +0 -199
- package/dist/setup-links-VWK4MBI3.js +0 -144
- package/dist/shopify-6KNHPC4R.js +0 -3958
- package/dist/site-PHTJ5VI3.js +0 -180
- package/dist/sources-255OGK6K.js +0 -30
- package/dist/sources-52N253A7.js +0 -457
- package/dist/sources-52N253A7.js.map +0 -1
- package/dist/stale-KN2ZOJ5T.js +0 -90
- package/dist/status-BJH7ODU4.js +0 -65
- package/dist/studio-C2UVCTDD.js +0 -49
- package/dist/sync-MIKA6IM6.js +0 -57
- package/dist/sync-definition-LO425HBD.js +0 -70
- package/dist/tags-DKSJ4E7E.js +0 -227
- package/dist/tags-JEGCEFMZ.js +0 -23
- package/dist/tags-MNHBZ7FH.js +0 -23
- package/dist/tags-S5XY63D3.js +0 -23
- package/dist/tags-VVO3BT66.js +0 -26
- package/dist/targeting-criteria-BIIGZTLQ.js +0 -113
- package/dist/targets-SX3NMYQ3.js +0 -106
- package/dist/testimonials-U3KBI3VU.js +0 -32
- package/dist/themes-32CUPT4M.js +0 -95
- package/dist/top-companies-DFM4F2SE.js +0 -111
- package/dist/transcript-4BSUSOQ4.js +0 -165
- package/dist/translate-JE7CZJ26.js +0 -603
- package/dist/triggers-SRI27OAP.js +0 -144
- package/dist/unlink-U7HZ4CYW.js +0 -70
- package/dist/unstage-JJGZJVHT.js +0 -88
- package/dist/update-JN75LN32.js +0 -66
- package/dist/update-PU5LSQ7W.js +0 -192
- package/dist/update-PUWD5HX4.js +0 -101
- package/dist/update-R4EEEWT4.js +0 -155
- package/dist/upload-4CUPZI3X.js +0 -130
- package/dist/url-options-P3UTLYUY.js +0 -131
- package/dist/url-params-V7KQMWK3.js +0 -101
- package/dist/validate-6GRMJKZI.js +0 -125
- package/dist/videos-6ZZ6LLTL.js +0 -41
- package/dist/viewer-check-B36TNSZI.js +0 -83
- package/dist/web-H5CWLHRA.js +0 -143
- package/dist/winning-ads-SHNXPIYB.js +0 -86
- package/dist/write-commands-RI6UP4YG.js +0 -1525
- package/dist/x-CI2XPNBR.js +0 -47
- /package/dist/{account-2RNYGT6E.js.map → account-LO57QU6O.js.map} +0 -0
- /package/dist/{account-T26J6HSJ.js.map → account-V5XHQY2D.js.map} +0 -0
- /package/dist/{account-reads-P2WXB3NZ.js.map → account-reads-CPL3HLZ5.js.map} +0 -0
- /package/dist/{account-users-REWJY2TN.js.map → account-users-RF3VN6VL.js.map} +0 -0
- /package/dist/{account-writes-QEZQCU46.js.map → account-writes-MFKCVMMV.js.map} +0 -0
- /package/dist/{accounts-MJ7AGPOW.js.map → accounts-DTHZLL3R.js.map} +0 -0
- /package/dist/{accounts-PGSNRUNV.js.map → accounts-SJ5MKHKE.js.map} +0 -0
- /package/dist/{actions-NGBCTPNG.js.map → actions-LRJRQXC3.js.map} +0 -0
- /package/dist/{activecampaign-ASE4IVTD.js.map → activecampaign-DMFUWRD6.js.map} +0 -0
- /package/dist/{activities-FXYVPCRJ.js.map → activities-OC3CJX4I.js.map} +0 -0
- /package/dist/{ad-group-writes-MVQKICSC.js.map → ad-group-writes-WFYPFO7R.js.map} +0 -0
- /package/dist/{ad-groups-5OGD7PJ7.js.map → ad-groups-IPY3TJUX.js.map} +0 -0
- /package/dist/{ad-writes-OVD6EESQ.js.map → ad-writes-LDNNN72V.js.map} +0 -0
- /package/dist/{add-QBEF2C7Z.js.map → add-HSF5S544.js.map} +0 -0
- /package/dist/{add-YJP43JWJ.js.map → add-IOIY44HY.js.map} +0 -0
- /package/dist/{ads-4O4TPDAU.js.map → ads-HCK2GF2V.js.map} +0 -0
- /package/dist/{ads-SCWCG2YI.js.map → ads-NTDJRTEG.js.map} +0 -0
- /package/dist/{ads-GF7QLKBX.js.map → ads-XZ43D67L.js.map} +0 -0
- /package/dist/{adsets-OVFVN5NX.js.map → adsets-TC2VPFXW.js.map} +0 -0
- /package/dist/{advertisers-SUZT4NRJ.js.map → advertisers-T4AGXFN4.js.map} +0 -0
- /package/dist/{analytics-NJBF3U54.js.map → analytics-MDIE5CPL.js.map} +0 -0
- /package/dist/{analytics-PI6SXDW4.js.map → analytics-TLEWXYXV.js.map} +0 -0
- /package/dist/{animate-HV2QJWVE.js.map → animate-CQON6SZE.js.map} +0 -0
- /package/dist/{assign-6YG56OCM.js.map → assign-N5PNZWUW.js.map} +0 -0
- /package/dist/{audience-size-5X3BHQ6Q.js.map → audience-size-GMANWKU5.js.map} +0 -0
- /package/dist/{audiences-6N5B7CA2.js.map → audiences-KRI7E7FY.js.map} +0 -0
- /package/dist/{audit-PLXF2NAS.js.map → audit-EGLLMYFY.js.map} +0 -0
- /package/dist/{autocomplete-YJSDRTMT.js.map → autocomplete-6DUDQLRT.js.map} +0 -0
- /package/dist/{avatars-BDQWTQKY.js.map → avatars-UZN75NVZ.js.map} +0 -0
- /package/dist/{bid-pricing-BUNOVWUB.js.map → bid-pricing-SQERHWYU.js.map} +0 -0
- /package/dist/{brand-MHFSUXWN.js.map → brand-XY7EVNPW.js.map} +0 -0
- /package/dist/{brief-A5AEZBZL.js.map → brief-NMACLLA2.js.map} +0 -0
- /package/dist/{campaign-groups-UYNINWXX.js.map → campaign-groups-VWSLBQKJ.js.map} +0 -0
- /package/dist/{campaign-writes-TFRV62VN.js.map → campaign-writes-DAL4EFIV.js.map} +0 -0
- /package/dist/{campaign-writes-RCA52SAP.js.map → campaign-writes-FBIQOLRS.js.map} +0 -0
- /package/dist/{campaigns-CIQIZ46G.js.map → campaigns-64JH3U6Z.js.map} +0 -0
- /package/dist/{campaigns-N75G2BDU.js.map → campaigns-JCKEU2NC.js.map} +0 -0
- /package/dist/{campaigns-EETR5UJR.js.map → campaigns-KYI6WAXT.js.map} +0 -0
- /package/dist/{campaigns-KPUA4GP2.js.map → campaigns-TKQDXU5H.js.map} +0 -0
- /package/dist/{canvas-M3RXWJ2T.js.map → canvas-DTJM2LTE.js.map} +0 -0
- /package/dist/{capabilities-XFLST37G.js.map → capabilities-O5UVQ4KK.js.map} +0 -0
- /package/dist/{catalog-JVBRY2U6.js.map → catalog-6CXOEKBI.js.map} +0 -0
- /package/dist/{catalogs-QYAAPTMV.js.map → catalogs-ETVY5OZ5.js.map} +0 -0
- /package/dist/{chatgpt-KJAUJBRK.js.map → chatgpt-GINMQJBI.js.map} +0 -0
- /package/dist/{chats-5BNHZWO7.js.map → chats-NUO3CA4N.js.map} +0 -0
- /package/dist/{check-ESD3QPIZ.js.map → check-RRHOCY2U.js.map} +0 -0
- /package/dist/{chunk-OWJGBIQ2.js.map → chunk-24SPBLU4.js.map} +0 -0
- /package/dist/{chunk-ZPHHJPDG.js.map → chunk-2AJ5UNOF.js.map} +0 -0
- /package/dist/{chunk-BF32BRMX.js.map → chunk-2Y3VZILY.js.map} +0 -0
- /package/dist/{chunk-7MK4TND6.js.map → chunk-3BOPIUO6.js.map} +0 -0
- /package/dist/{chunk-XXS6SUVM.js.map → chunk-3LH5ANM4.js.map} +0 -0
- /package/dist/{chunk-HMFIOE4P.js.map → chunk-3RWSYI6N.js.map} +0 -0
- /package/dist/{chunk-KAUW3OFC.js.map → chunk-4PWC4KAK.js.map} +0 -0
- /package/dist/{chunk-PAU4VS7H.js.map → chunk-5MMAYAWR.js.map} +0 -0
- /package/dist/{chunk-MHRFRSQ6.js.map → chunk-5VVXF3OS.js.map} +0 -0
- /package/dist/{chunk-65HTWFKN.js.map → chunk-5Y3EEI52.js.map} +0 -0
- /package/dist/{chunk-RSKU45CU.js.map → chunk-6EMVPPSQ.js.map} +0 -0
- /package/dist/{chunk-D5LV3ECR.js.map → chunk-77MDZIHK.js.map} +0 -0
- /package/dist/{chunk-5TWI6FFY.js.map → chunk-A5PQYKVO.js.map} +0 -0
- /package/dist/{chunk-CDRS2QAP.js.map → chunk-AA3WWPX2.js.map} +0 -0
- /package/dist/{chunk-EFBJ35ZS.js.map → chunk-AL6373J7.js.map} +0 -0
- /package/dist/{chunk-HXLCETLB.js.map → chunk-AMHVCMBW.js.map} +0 -0
- /package/dist/{chunk-EMXBMLQ4.js.map → chunk-BQYSBQZ3.js.map} +0 -0
- /package/dist/{chunk-UZGZS35I.js.map → chunk-BYZQ43VI.js.map} +0 -0
- /package/dist/{chunk-6Z32HS4D.js.map → chunk-C753PJBU.js.map} +0 -0
- /package/dist/{chunk-BIFK5OGB.js.map → chunk-CB7GZQVN.js.map} +0 -0
- /package/dist/{chunk-DQIPDAPH.js.map → chunk-CTBDVZ5E.js.map} +0 -0
- /package/dist/{chunk-5JG77PP3.js.map → chunk-CV35AJYT.js.map} +0 -0
- /package/dist/{chunk-CFVVZKSU.js.map → chunk-EJBHZ7AQ.js.map} +0 -0
- /package/dist/{chunk-2EVHGBQY.js.map → chunk-EKQCHHZW.js.map} +0 -0
- /package/dist/{chunk-SQVT243W.js.map → chunk-FOD5VSHH.js.map} +0 -0
- /package/dist/{chunk-Y3ESEQRI.js.map → chunk-FSLSISPI.js.map} +0 -0
- /package/dist/{chunk-3ANPDWU7.js.map → chunk-G523URK2.js.map} +0 -0
- /package/dist/{chunk-3GMJEM4C.js.map → chunk-G6KE737R.js.map} +0 -0
- /package/dist/{chunk-2JFCDUZO.js.map → chunk-GNZM7SWV.js.map} +0 -0
- /package/dist/{chunk-EZVRXFCC.js.map → chunk-GRXBD43G.js.map} +0 -0
- /package/dist/{chunk-2OCUXPWT.js.map → chunk-GT76FWES.js.map} +0 -0
- /package/dist/{chunk-AUO4QNMI.js.map → chunk-GTIQUOYC.js.map} +0 -0
- /package/dist/{chunk-MQZXGTGI.js.map → chunk-GTV62WIS.js.map} +0 -0
- /package/dist/{chunk-BUXPBPAP.js.map → chunk-GY6N42PE.js.map} +0 -0
- /package/dist/{chunk-RAO7FTMY.js.map → chunk-H27R5IVQ.js.map} +0 -0
- /package/dist/{chunk-RM5T4MA6.js.map → chunk-HHQYP6RM.js.map} +0 -0
- /package/dist/{chunk-XHW24Q5Q.js.map → chunk-HN7GK5UX.js.map} +0 -0
- /package/dist/{chunk-NNNMTRGI.js.map → chunk-I6W6FAUZ.js.map} +0 -0
- /package/dist/{chunk-XMHTLWWE.js.map → chunk-IJ5DWALA.js.map} +0 -0
- /package/dist/{chunk-6OIKNJ7G.js.map → chunk-JAC6JVCI.js.map} +0 -0
- /package/dist/{chunk-W7BORINM.js.map → chunk-K5CEP7W4.js.map} +0 -0
- /package/dist/{chunk-T267DS5U.js.map → chunk-KJOEW2PI.js.map} +0 -0
- /package/dist/{chunk-UQKDP46G.js.map → chunk-KVBNUGQ6.js.map} +0 -0
- /package/dist/{chunk-SIKCVWM3.js.map → chunk-MZPS46OR.js.map} +0 -0
- /package/dist/{chunk-OROWRGRJ.js.map → chunk-N2MZLW6O.js.map} +0 -0
- /package/dist/{chunk-WM6JHUPY.js.map → chunk-NGXZQESA.js.map} +0 -0
- /package/dist/{chunk-SPQHISWX.js.map → chunk-NJIRVF2B.js.map} +0 -0
- /package/dist/{chunk-GQ4D3BT6.js.map → chunk-NNG4QCKJ.js.map} +0 -0
- /package/dist/{chunk-6X4XAANZ.js.map → chunk-NPF4KTRK.js.map} +0 -0
- /package/dist/{chunk-DBLOEIJ2.js.map → chunk-NQ5O2NCJ.js.map} +0 -0
- /package/dist/{chunk-RP2PU3CA.js.map → chunk-OU4TDC2P.js.map} +0 -0
- /package/dist/{chunk-UVVOG5A7.js.map → chunk-P7WISPGE.js.map} +0 -0
- /package/dist/{chunk-4YWSFFOP.js.map → chunk-R2VP7FK4.js.map} +0 -0
- /package/dist/{chunk-NQF5U6FX.js.map → chunk-RD63FPG6.js.map} +0 -0
- /package/dist/{chunk-ZCN2XUPQ.js.map → chunk-RFR7ZN3P.js.map} +0 -0
- /package/dist/{chunk-ZJOXRK2G.js.map → chunk-RW32BYY3.js.map} +0 -0
- /package/dist/{chunk-D3KWV63D.js.map → chunk-SMDJW5W4.js.map} +0 -0
- /package/dist/{chunk-XBMZNFN7.js.map → chunk-THV7SMY6.js.map} +0 -0
- /package/dist/{chunk-SA6XZ3FP.js.map → chunk-TNQJDM2P.js.map} +0 -0
- /package/dist/{chunk-KFHW5TCM.js.map → chunk-TQDZQT6U.js.map} +0 -0
- /package/dist/{chunk-2MAQKELK.js.map → chunk-UC46M2KW.js.map} +0 -0
- /package/dist/{chunk-GCFC2MNR.js.map → chunk-UIPSSTMA.js.map} +0 -0
- /package/dist/{chunk-3C3IR2F6.js.map → chunk-VMUJ6JHR.js.map} +0 -0
- /package/dist/{chunk-B6WOWVAA.js.map → chunk-VWKFQ4ZY.js.map} +0 -0
- /package/dist/{chunk-6RUHIXVA.js.map → chunk-WTYKTPZP.js.map} +0 -0
- /package/dist/{chunk-PTGC7CVG.js.map → chunk-XFMFZAWL.js.map} +0 -0
- /package/dist/{chunk-YAX5CGUY.js.map → chunk-YFIWCMVC.js.map} +0 -0
- /package/dist/{claim-NM5T33W6.js.map → claim-ZKKC5472.js.map} +0 -0
- /package/dist/{companies-VBNBS6LR.js.map → companies-CJFQ63MC.js.map} +0 -0
- /package/dist/{company-3KOV3TJT.js.map → company-7K4EDRIN.js.map} +0 -0
- /package/dist/{complete-TVY4F5YX.js.map → complete-ODOQLGSO.js.map} +0 -0
- /package/dist/{connect-W6H3DT2C.js.map → connect-APAK3WAY.js.map} +0 -0
- /package/dist/{conversation-LCGWNPUG.js.map → conversation-B6V3VCT5.js.map} +0 -0
- /package/dist/{conversion-report-GK2FUT2R.js.map → conversion-report-JNWBTLA5.js.map} +0 -0
- /package/dist/{conversion-upload-command-Q7LZFFZL.js.map → conversion-upload-command-6OKMSO2T.js.map} +0 -0
- /package/dist/{conversion-writes-STESFLTB.js.map → conversion-writes-2VOWP4RD.js.map} +0 -0
- /package/dist/{conversions-D2RPIL3I.js.map → conversions-D32UTEPH.js.map} +0 -0
- /package/dist/{conversions-JBRU7CGB.js.map → conversions-JGIBYLK5.js.map} +0 -0
- /package/dist/{create-OW2BLTBE.js.map → create-ALMXIVHA.js.map} +0 -0
- /package/dist/{create-DHIXUD4Q.js.map → create-EUQYK2SH.js.map} +0 -0
- /package/dist/{create-XGDJKMDB.js.map → create-TOCR7EFZ.js.map} +0 -0
- /package/dist/{create-TYG5SAQE.js.map → create-VAGPIZTU.js.map} +0 -0
- /package/dist/{creatives-PN6EQYVU.js.map → creatives-62PV7BIF.js.map} +0 -0
- /package/dist/{creatives-3ZPFUAKL.js.map → creatives-HUDKBUDS.js.map} +0 -0
- /package/dist/{credentials-AVRHDGM5.js.map → credentials-WCD4F225.js.map} +0 -0
- /package/dist/{critique-76EMERXI.js.map → critique-KJXHSKLT.js.map} +0 -0
- /package/dist/{critique-SZSKQYUL.js.map → critique-OO6SORTA.js.map} +0 -0
- /package/dist/{crm-JMIIB55O.js.map → crm-5CYCCV34.js.map} +0 -0
- /package/dist/{crm-4O65STFF.js.map → crm-YVRIT2RL.js.map} +0 -0
- /package/dist/{currency-HQW6FJS5.js.map → currency-JDAVYMD3.js.map} +0 -0
- /package/dist/{customers-GV3AD6B6.js.map → customers-FSOXPMOU.js.map} +0 -0
- /package/dist/{delete-WFF5EVIL.js.map → delete-EEU6WJ6M.js.map} +0 -0
- /package/dist/{delete-CJGW5MKC.js.map → delete-H7IWZGUZ.js.map} +0 -0
- /package/dist/{delete-ISAOQTI5.js.map → delete-QXZFJNUS.js.map} +0 -0
- /package/dist/{demographics-XSMD6KI4.js.map → demographics-RM5PA54R.js.map} +0 -0
- /package/dist/{discard-B5QMX35Q.js.map → discard-6XOYXNZ6.js.map} +0 -0
- /package/dist/{discover-DLGO3VW6.js.map → discover-VEHKBNCY.js.map} +0 -0
- /package/dist/{domain-WA4HAHCE.js.map → domain-X7MT3XUG.js.map} +0 -0
- /package/dist/{download-67IB5DPC.js.map → download-YQYR5GUP.js.map} +0 -0
- /package/dist/{draft-I7HIRQ6F.js.map → draft-DUAFRL2G.js.map} +0 -0
- /package/dist/{draft-NXGJ3DD4.js.map → draft-FXMGEY3E.js.map} +0 -0
- /package/dist/{draft-4MKYX4VU.js.map → draft-V7VGPJK4.js.map} +0 -0
- /package/dist/{draft-QAPMXYBR.js.map → draft-XWHU5C5Z.js.map} +0 -0
- /package/dist/{draft-P73N5PT4.js.map → draft-YXGASP7M.js.map} +0 -0
- /package/dist/{experiments-YEI3HSBU.js.map → experiments-2XOC77Y7.js.map} +0 -0
- /package/dist/{facets-EQLEOMDT.js.map → facets-7Q36JF2D.js.map} +0 -0
- /package/dist/{feedback-JNSHN7DE.js.map → feedback-WPV2RKJS.js.map} +0 -0
- /package/dist/{feedback-record-JV43NSJI.js.map → feedback-record-UEWS4FZJ.js.map} +0 -0
- /package/dist/{fetch-O4EYJVMN.js.map → fetch-AARAG6UL.js.map} +0 -0
- /package/dist/{fit-7N7AHYQF.js.map → fit-T4ALNNXL.js.map} +0 -0
- /package/dist/{flows-DTZGIGZS.js.map → flows-PYPA2FM3.js.map} +0 -0
- /package/dist/{fonts-TYDQXRIU.js.map → fonts-H2GG2JXA.js.map} +0 -0
- /package/dist/{forecast-VO7XY46L.js.map → forecast-LMSPNY6X.js.map} +0 -0
- /package/dist/{forecast-AODSMD7S.js.map → forecast-UYBYSH3Y.js.map} +0 -0
- /package/dist/{funnel-CV4DZXUS.js.map → funnel-KIYPFPIY.js.map} +0 -0
- /package/dist/{generate-HSDSCKDW.js.map → generate-QG7GX6WO.js.map} +0 -0
- /package/dist/{get-FDZZEB5R.js.map → get-IN6UXQRX.js.map} +0 -0
- /package/dist/{get-4S4XRZ2J.js.map → get-ROETYEYF.js.map} +0 -0
- /package/dist/{google-DPBZJ3TV.js.map → google-UQLYCYSX.js.map} +0 -0
- /package/dist/{google-ads-EPFX2NA4.js.map → google-ads-CBJZKTXG.js.map} +0 -0
- /package/dist/{history-7UJW5TRO.js.map → history-GTT55ZP7.js.map} +0 -0
- /package/dist/{history-SHQVK5I7.js.map → history-XOB23MLX.js.map} +0 -0
- /package/dist/{hubspot-J6372OWH.js.map → hubspot-B6Z77JY6.js.map} +0 -0
- /package/dist/{ideas-TKMMQ557.js.map → ideas-RVK4RNKN.js.map} +0 -0
- /package/dist/{images-J7LJETPR.js.map → images-RGJZ6FJL.js.map} +0 -0
- /package/dist/{ingest-UBP7TEXU.js.map → ingest-7FHCKRYR.js.map} +0 -0
- /package/dist/{ingest-LVAH5OF5.js.map → ingest-GBWY2ZEP.js.map} +0 -0
- /package/dist/{insights-UMPXHRKD.js.map → insights-7CQJOBWX.js.map} +0 -0
- /package/dist/{inspect-22G3OPFK.js.map → inspect-RC6GKLIF.js.map} +0 -0
- /package/dist/{intent-NBP5IDND.js.map → intent-P75BDP4H.js.map} +0 -0
- /package/dist/{keyword-gap-67UJ2LDD.js.map → keyword-gap-54F6CZLM.js.map} +0 -0
- /package/dist/{keyword-metrics-QP5ZNOC6.js.map → keyword-metrics-PL5IYZGN.js.map} +0 -0
- /package/dist/{keywords-for-site-QTE332T7.js.map → keywords-for-site-4FMJ5IGN.js.map} +0 -0
- /package/dist/{landing-TOYYCWFX.js.map → landing-24TVKWTP.js.map} +0 -0
- /package/dist/{languages-TM7SHGRO.js.map → languages-PEGOE365.js.map} +0 -0
- /package/dist/{leads-FTWBDLBQ.js.map → leads-6TFBPYMM.js.map} +0 -0
- /package/dist/{learn-3N7M3UHA.js.map → learn-4LGNFGWH.js.map} +0 -0
- /package/dist/{line-item-writes-VFPXT4W6.js.map → line-item-writes-AOTRDB4L.js.map} +0 -0
- /package/dist/{line-items-HB2N7RKO.js.map → line-items-ERV3F2EI.js.map} +0 -0
- /package/dist/{link-KAY6VYFH.js.map → link-QZXI5YJP.js.map} +0 -0
- /package/dist/{linkedin-CDSEMSCF.js.map → linkedin-4BKZ5KUE.js.map} +0 -0
- /package/dist/{linkedin-person-HR6HKFUU.js.map → linkedin-person-ZLXMOG2U.js.map} +0 -0
- /package/dist/{list-QWCU77C3.js.map → list-7FB6764Q.js.map} +0 -0
- /package/dist/{list-VJ3CVEDW.js.map → list-QHAYR2IQ.js.map} +0 -0
- /package/dist/{list-INU27RQJ.js.map → list-UCQEHPIR.js.map} +0 -0
- /package/dist/{locations-JFBM4XBL.js.map → locations-MXWGZIGU.js.map} +0 -0
- /package/dist/{locations-HAXZUHJP.js.map → locations-SHYN5J4Q.js.map} +0 -0
- /package/dist/{log-AUN4NOPP.js.map → log-WPZRUMZU.js.map} +0 -0
- /package/dist/{make-B5HDRFCX.js.map → make-VCAS2M2W.js.map} +0 -0
- /package/dist/{map-CCBSITK7.js.map → map-5EQO2VXB.js.map} +0 -0
- /package/dist/{mcp-45YWYNYM.js.map → mcp-CKOYL4IU.js.map} +0 -0
- /package/dist/{media-sources-N7MBY3GE.js.map → media-sources-EDZ2PBJY.js.map} +0 -0
- /package/dist/{members-2P2QCBJO.js.map → members-E2AGJIU6.js.map} +0 -0
- /package/dist/{metrics-XWHE4LYQ.js.map → metrics-25LYUEB7.js.map} +0 -0
- /package/dist/{models-3C6BWHEC.js.map → models-EU3NO4IY.js.map} +0 -0
- /package/dist/{normalize-MLRJ6IYU.js.map → normalize-PHJT5CAD.js.map} +0 -0
- /package/dist/{options-6QAJ67XB.js.map → options-KFABOCWK.js.map} +0 -0
- /package/dist/{organization-P5LAMNMT.js.map → organization-BP5DTWL7.js.map} +0 -0
- /package/dist/{performance-3PH7UYQN.js.map → performance-C4M3GJPC.js.map} +0 -0
- /package/dist/{performance-6BMFU6IJ.js.map → performance-H3SJD3SN.js.map} +0 -0
- /package/dist/{pixels-PMPL63ON.js.map → pixels-NLH2PN6Q.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-EPXZFIUP.js.map → promoted-tweet-writes-ATWAKV6N.js.map} +0 -0
- /package/dist/{promoted-tweets-Q46HUYN6.js.map → promoted-tweets-TWQP3MDP.js.map} +0 -0
- /package/dist/{publish-DHDRUTXM.js.map → publish-Q4W7MI7P.js.map} +0 -0
- /package/dist/{query-IR3LCFON.js.map → query-SRJXJVDY.js.map} +0 -0
- /package/dist/{reddit-2FQOS3B3.js.map → reddit-JWZYSUAG.js.map} +0 -0
- /package/dist/{refresh-VJPKAPJM.js.map → refresh-VRBHP4AA.js.map} +0 -0
- /package/dist/{release-O233BAQA.js.map → release-OV4ZDCXG.js.map} +0 -0
- /package/dist/{relevant-pages-NPUSAV3K.js.map → relevant-pages-VJHTUJMB.js.map} +0 -0
- /package/dist/{remove-HNSOYQVB.js.map → remove-DBCSQSEP.js.map} +0 -0
- /package/dist/{reopen-B7KHVN5X.js.map → reopen-5ZOEKYQ5.js.map} +0 -0
- /package/dist/{rerun-KAB7AXTY.js.map → rerun-YMRW6BHM.js.map} +0 -0
- /package/dist/{research-Z2SE775C.js.map → research-HUM6CF74.js.map} +0 -0
- /package/dist/{research-I4ZQ4YQ3.js.map → research-M3QPWTYX.js.map} +0 -0
- /package/dist/{reset-4T6XUNOO.js.map → reset-BPAFOW6M.js.map} +0 -0
- /package/dist/{reset-YHEMD5N5.js.map → reset-WAY3BSZX.js.map} +0 -0
- /package/dist/{resolve-5RJD2ELK.js.map → resolve-AQ6UFEMN.js.map} +0 -0
- /package/dist/{retry-S3EC6FCA.js.map → retry-3KYFTPXZ.js.map} +0 -0
- /package/dist/{retry-WKYMY2KB.js.map → retry-XO54CIRK.js.map} +0 -0
- /package/dist/{revenue-C4E4PRLL.js.map → revenue-PPDMQO3H.js.map} +0 -0
- /package/dist/{rules-JGTKFXM3.js.map → rules-4ENXG5XW.js.map} +0 -0
- /package/dist/{rules-add-3DTRLVGR.js.map → rules-add-FTBOOE6L.js.map} +0 -0
- /package/dist/{run-TYJLOJW7.js.map → run-2ZRTKR7A.js.map} +0 -0
- /package/dist/{run-2TKYHCN2.js.map → run-UECCNQ63.js.map} +0 -0
- /package/dist/{scaffold-ad-RFRUPUKW.js.map → scaffold-ad-DFKFUOOZ.js.map} +0 -0
- /package/dist/{scaffold-static-ad-N5QCJFGP.js.map → scaffold-static-ad-II3TUE5I.js.map} +0 -0
- /package/dist/{scaffold-video-VAG3WN5W.js.map → scaffold-video-IKVYICIY.js.map} +0 -0
- /package/dist/{schedule-6UYJLE5K.js.map → schedule-ERHKGQID.js.map} +0 -0
- /package/dist/{scheduled-agents-YEHJ4XIB.js.map → scheduled-agents-ICXFV7NP.js.map} +0 -0
- /package/dist/{schema-BCCCNVNO.js.map → schema-NUUZ3MG7.js.map} +0 -0
- /package/dist/{search-J43ZG7W3.js.map → search-B2APYHV6.js.map} +0 -0
- /package/dist/{select-I2UPGGZ5.js.map → select-WVNPJDXP.js.map} +0 -0
- /package/dist/{set-prompt-SU7YM7FW.js.map → set-prompt-KHBDWDXA.js.map} +0 -0
- /package/dist/{setup-links-VWK4MBI3.js.map → setup-links-R3FH7WK4.js.map} +0 -0
- /package/dist/{shopify-6KNHPC4R.js.map → shopify-34CFN6SG.js.map} +0 -0
- /package/dist/{site-PHTJ5VI3.js.map → site-H6AMVMIX.js.map} +0 -0
- /package/dist/{sources-255OGK6K.js.map → sources-2VJMHUH7.js.map} +0 -0
- /package/dist/{stale-KN2ZOJ5T.js.map → stale-6BEHWQZ7.js.map} +0 -0
- /package/dist/{status-BJH7ODU4.js.map → status-MCMOSDVX.js.map} +0 -0
- /package/dist/{studio-C2UVCTDD.js.map → studio-4QOFG7MQ.js.map} +0 -0
- /package/dist/{sync-MIKA6IM6.js.map → sync-WJCJHNET.js.map} +0 -0
- /package/dist/{sync-definition-LO425HBD.js.map → sync-definition-THVMBGJR.js.map} +0 -0
- /package/dist/{tags-DKSJ4E7E.js.map → tags-AGFUJ2BB.js.map} +0 -0
- /package/dist/{tags-JEGCEFMZ.js.map → tags-OPMPPJY2.js.map} +0 -0
- /package/dist/{tags-VVO3BT66.js.map → tags-VGJ76RJT.js.map} +0 -0
- /package/dist/{tags-MNHBZ7FH.js.map → tags-VOCMMZ75.js.map} +0 -0
- /package/dist/{tags-S5XY63D3.js.map → tags-WK6P5A4D.js.map} +0 -0
- /package/dist/{targeting-criteria-BIIGZTLQ.js.map → targeting-criteria-KRIMZRVI.js.map} +0 -0
- /package/dist/{targets-SX3NMYQ3.js.map → targets-MCOEM4XQ.js.map} +0 -0
- /package/dist/{testimonials-U3KBI3VU.js.map → testimonials-A2AFXSZV.js.map} +0 -0
- /package/dist/{themes-32CUPT4M.js.map → themes-JBX6W4SP.js.map} +0 -0
- /package/dist/{top-companies-DFM4F2SE.js.map → top-companies-ESCRXLSK.js.map} +0 -0
- /package/dist/{transcript-4BSUSOQ4.js.map → transcript-N2ZWN4CI.js.map} +0 -0
- /package/dist/{translate-JE7CZJ26.js.map → translate-YGUYVOGA.js.map} +0 -0
- /package/dist/{triggers-SRI27OAP.js.map → triggers-G4EW5XG6.js.map} +0 -0
- /package/dist/{unlink-U7HZ4CYW.js.map → unlink-DRIVH2GT.js.map} +0 -0
- /package/dist/{unstage-JJGZJVHT.js.map → unstage-WUQV6QBV.js.map} +0 -0
- /package/dist/{update-JN75LN32.js.map → update-5GIAKABM.js.map} +0 -0
- /package/dist/{update-PUWD5HX4.js.map → update-COXCKREW.js.map} +0 -0
- /package/dist/{update-R4EEEWT4.js.map → update-NA4M4J5D.js.map} +0 -0
- /package/dist/{update-PU5LSQ7W.js.map → update-T7PSOZES.js.map} +0 -0
- /package/dist/{upload-4CUPZI3X.js.map → upload-IXVEJLZU.js.map} +0 -0
- /package/dist/{url-options-P3UTLYUY.js.map → url-options-JSRAMMEM.js.map} +0 -0
- /package/dist/{url-params-V7KQMWK3.js.map → url-params-IL2M2WZI.js.map} +0 -0
- /package/dist/{validate-6GRMJKZI.js.map → validate-QAJJ7QCJ.js.map} +0 -0
- /package/dist/{videos-6ZZ6LLTL.js.map → videos-I7PCC2EC.js.map} +0 -0
- /package/dist/{viewer-check-B36TNSZI.js.map → viewer-check-PUAWVYWP.js.map} +0 -0
- /package/dist/{web-H5CWLHRA.js.map → web-O2MCPPB5.js.map} +0 -0
- /package/dist/{winning-ads-SHNXPIYB.js.map → winning-ads-FTMP4FUC.js.map} +0 -0
- /package/dist/{write-commands-RI6UP4YG.js.map → write-commands-NKKNWQIM.js.map} +0 -0
- /package/dist/{x-CI2XPNBR.js.map → x-FPRMRQLQ.js.map} +0 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import {
|
|
2
|
+
csvArg,
|
|
3
|
+
failWriteValidation,
|
|
4
|
+
requireTarget,
|
|
5
|
+
requireTargets,
|
|
6
|
+
schemaArgs,
|
|
7
|
+
stageChatgptOp,
|
|
8
|
+
stageChatgptOps
|
|
9
|
+
} from "./chunk-CTBDVZ5E.js";
|
|
10
|
+
import {
|
|
11
|
+
CHATGPT_ADS_REFERENCE,
|
|
12
|
+
CHATGPT_AUDIENCE_USES,
|
|
13
|
+
CHATGPT_MAX_STAGED_MEMBERS,
|
|
14
|
+
runChatgptListRead
|
|
15
|
+
} from "./chunk-C54JXXV3.js";
|
|
16
|
+
import "./chunk-EAHBTBVR.js";
|
|
17
|
+
import {
|
|
18
|
+
PEOPLE_PREVIEW_ROWS,
|
|
19
|
+
maskPersonValue
|
|
20
|
+
} from "./chunk-SOPVIIUW.js";
|
|
21
|
+
import "./chunk-G4FG5EQO.js";
|
|
22
|
+
import "./chunk-C35UMKYG.js";
|
|
23
|
+
import "./chunk-ELAYD7O3.js";
|
|
24
|
+
import "./chunk-LBIF6FJY.js";
|
|
25
|
+
import {
|
|
26
|
+
registerSchema
|
|
27
|
+
} from "./chunk-TRXGJZDL.js";
|
|
28
|
+
import "./chunk-YQSBHWOI.js";
|
|
29
|
+
|
|
30
|
+
// src/commands/ads/chatgpt/audiences.ts
|
|
31
|
+
import { readFileSync } from "fs";
|
|
32
|
+
import { defineCommand } from "citty";
|
|
33
|
+
|
|
34
|
+
// src/commands/ads/chatgpt/audience-members.ts
|
|
35
|
+
import { createHash } from "crypto";
|
|
36
|
+
import { parse } from "csv-parse/sync";
|
|
37
|
+
import { isSupportedCountry, parsePhoneNumberFromString } from "libphonenumber-js";
|
|
38
|
+
function sha256(value) {
|
|
39
|
+
return createHash("sha256").update(value, "utf8").digest("hex");
|
|
40
|
+
}
|
|
41
|
+
function normalizedEmail(value) {
|
|
42
|
+
const email = value.trim().toLowerCase();
|
|
43
|
+
return /^[^@\s;,|]+@[^@\s;,|]+\.[^@\s;,|]+$/.test(email) ? email : void 0;
|
|
44
|
+
}
|
|
45
|
+
function normalizedPhone(value, defaultCountry) {
|
|
46
|
+
const country = defaultCountry && isSupportedCountry(defaultCountry) ? defaultCountry : void 0;
|
|
47
|
+
const phone = parsePhoneNumberFromString(value.trim(), country);
|
|
48
|
+
return phone?.isValid() ? phone.number : void 0;
|
|
49
|
+
}
|
|
50
|
+
function hashedMembers(input) {
|
|
51
|
+
const rejected = [];
|
|
52
|
+
const emails = /* @__PURE__ */ new Map();
|
|
53
|
+
const phones = /* @__PURE__ */ new Map();
|
|
54
|
+
for (const value of input.emails) {
|
|
55
|
+
const email = normalizedEmail(value);
|
|
56
|
+
email ? emails.set(sha256(email), maskPersonValue("email", email)) : rejected.push(value.trim());
|
|
57
|
+
}
|
|
58
|
+
for (const value of input.phones) {
|
|
59
|
+
const phone = normalizedPhone(value, input.defaultCountry);
|
|
60
|
+
phone ? phones.set(sha256(phone), maskPersonValue("phone", phone)) : rejected.push(value.trim());
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
emailHashes: [...emails.keys()],
|
|
64
|
+
phoneHashes: [...phones.keys()],
|
|
65
|
+
// The review shows the first of them; the rest are counted.
|
|
66
|
+
previews: [...emails.values(), ...phones.values()].slice(0, PEOPLE_PREVIEW_ROWS),
|
|
67
|
+
rejected
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function headerWords(cell) {
|
|
71
|
+
return cell.normalize("NFD").replace(new RegExp("\\p{Diacritic}", "gu"), "").toLowerCase().replace(/[^a-z0-9]+/g, " ").trim();
|
|
72
|
+
}
|
|
73
|
+
var EMAIL_HEADER = /\b(e ?mail|correo|mail)\b/;
|
|
74
|
+
var PHONE_HEADER = /\b(phone|telefono|movil|mobile|tel|celular)\b/;
|
|
75
|
+
function membersFromFile(content) {
|
|
76
|
+
const rows = parse(content, {
|
|
77
|
+
bom: true,
|
|
78
|
+
skip_empty_lines: true,
|
|
79
|
+
relax_column_count: true,
|
|
80
|
+
trim: true,
|
|
81
|
+
delimiter: [",", ";", " "]
|
|
82
|
+
});
|
|
83
|
+
const header = (rows[0] ?? []).map(headerWords);
|
|
84
|
+
const emailColumn = header.findIndex((cell) => EMAIL_HEADER.test(cell));
|
|
85
|
+
const phoneColumn = header.findIndex((cell) => !EMAIL_HEADER.test(cell) && PHONE_HEADER.test(cell));
|
|
86
|
+
if (emailColumn >= 0 || phoneColumn >= 0) {
|
|
87
|
+
const cells = (column) => column < 0 ? [] : rows.slice(1).flatMap((row) => row[column] ? [row[column]] : []);
|
|
88
|
+
return { emails: cells(emailColumn), phones: cells(phoneColumn) };
|
|
89
|
+
}
|
|
90
|
+
const values = rows.flatMap((row) => row[0] ? [row[0]] : []);
|
|
91
|
+
return values.some((value) => value.includes("@")) ? { emails: values, phones: [] } : { emails: [], phones: values };
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// src/commands/ads/chatgpt/audiences.ts
|
|
95
|
+
var REFERENCE = CHATGPT_ADS_REFERENCE.audiences;
|
|
96
|
+
var MEMBER_ARGS = {
|
|
97
|
+
emails: { type: "string", description: "Emails, comma-separated" },
|
|
98
|
+
phones: { type: "string", description: "Phones, comma-separated \u2014 E.164 (+34\u2026), or local with --country" },
|
|
99
|
+
file: {
|
|
100
|
+
type: "string",
|
|
101
|
+
description: "A CSV with an email and/or phone column, or one email or phone per line \u2014 the company's own customers"
|
|
102
|
+
},
|
|
103
|
+
country: { type: "string", description: "Country of phones written without a +code, e.g. ES" }
|
|
104
|
+
};
|
|
105
|
+
function membersFromArgs(args, readFile = (path) => readFileSync(path, "utf8")) {
|
|
106
|
+
const fromFile = typeof args.file === "string" && args.file ? membersFromFile(readFile(args.file)) : { emails: [], phones: [] };
|
|
107
|
+
const given = [...csvArg(args.emails) ?? [], ...fromFile.emails];
|
|
108
|
+
const givenPhones = [...csvArg(args.phones) ?? [], ...fromFile.phones];
|
|
109
|
+
const members = hashedMembers({
|
|
110
|
+
emails: given,
|
|
111
|
+
phones: givenPhones,
|
|
112
|
+
defaultCountry: typeof args.country === "string" ? args.country.toUpperCase() : void 0
|
|
113
|
+
});
|
|
114
|
+
const count = members.emailHashes.length + members.phoneHashes.length;
|
|
115
|
+
const offered = given.length + givenPhones.length + (typeof args.file === "string" && args.file ? 1 : 0);
|
|
116
|
+
const refusal = count > CHATGPT_MAX_STAGED_MEMBERS ? `${count} members \u2014 at most ${CHATGPT_MAX_STAGED_MEMBERS} per change; split the file` : count === 0 && offered > 0 ? "none of the values was an email or a valid phone \u2014 name the columns email and phone, and give phones a +country code or --country" : void 0;
|
|
117
|
+
return {
|
|
118
|
+
payload: {
|
|
119
|
+
...members.emailHashes.length > 0 ? { emailHashes: members.emailHashes } : {},
|
|
120
|
+
...members.phoneHashes.length > 0 ? { phoneHashes: members.phoneHashes } : {},
|
|
121
|
+
...members.previews.length > 0 ? { memberPreviews: members.previews } : {}
|
|
122
|
+
},
|
|
123
|
+
rejected: members.rejected.length,
|
|
124
|
+
...refusal ? { refusal } : {}
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
function rejectedHint(rejected) {
|
|
128
|
+
return rejected > 0 ? [
|
|
129
|
+
`${rejected} value(s) were neither an email nor a valid phone and were left out \u2014 phones need a +country code, or --country.`
|
|
130
|
+
] : [];
|
|
131
|
+
}
|
|
132
|
+
var LIST_ARGS = {
|
|
133
|
+
"eligible-for": {
|
|
134
|
+
type: "string",
|
|
135
|
+
description: `Only audiences ChatGPT Ads lets serve this use: ${CHATGPT_AUDIENCE_USES.join("|")}`
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
registerSchema({
|
|
139
|
+
command: "ads.chatgpt.audiences.list",
|
|
140
|
+
description: "The account's custom audiences: status, and matched people as a privacy range (under_25k\u2026). `ready` is not eligibility \u2014 pass --eligible-for to list only those a use accepts.",
|
|
141
|
+
args: schemaArgs(LIST_ARGS)
|
|
142
|
+
});
|
|
143
|
+
var audiencesListCommand = defineCommand({
|
|
144
|
+
meta: { name: "list", description: "List the account's custom audiences." },
|
|
145
|
+
args: LIST_ARGS,
|
|
146
|
+
run: async ({ args }) => {
|
|
147
|
+
const use = typeof args["eligible-for"] === "string" ? args["eligible-for"] : void 0;
|
|
148
|
+
await runChatgptListRead(
|
|
149
|
+
REFERENCE,
|
|
150
|
+
"/api/ads/chatgpt/audiences",
|
|
151
|
+
use ? { eligible_for: use } : void 0,
|
|
152
|
+
(rows) => rows.length === 0 ? ["No audience. Stage one with `baker ads chatgpt audiences create --name \u2026 --file customers.csv`."] : [
|
|
153
|
+
"Including an audience needs about 25,000 matched people; excluding works at any size. Custom audiences do not work in campaigns serving the EEA or Switzerland."
|
|
154
|
+
]
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
var CREATE_ARGS = {
|
|
159
|
+
name: { type: "string", description: "Audience name (3+ characters)", required: true },
|
|
160
|
+
description: { type: "string", description: "What the list is" },
|
|
161
|
+
...MEMBER_ARGS
|
|
162
|
+
};
|
|
163
|
+
registerSchema({
|
|
164
|
+
command: "ads.chatgpt.audiences.create",
|
|
165
|
+
description: "Stage a custom audience from the company's own customers (emails and/or phones, hashed on this machine), or an empty one. Created when the chat is published; only first-party data the company may use for ads.",
|
|
166
|
+
args: schemaArgs(CREATE_ARGS)
|
|
167
|
+
});
|
|
168
|
+
var audiencesCreateCommand = defineCommand({
|
|
169
|
+
meta: {
|
|
170
|
+
name: "create",
|
|
171
|
+
description: `Stage a custom audience (applies when the chat is published). Members are hashed here; nothing raw is sent.
|
|
172
|
+
|
|
173
|
+
Examples:
|
|
174
|
+
baker ads chatgpt audiences create --name "Customers 2026" --file customers.csv --country ES
|
|
175
|
+
baker ads chatgpt audiences create --name "Recent buyers" # empty, fill it later with add`
|
|
176
|
+
},
|
|
177
|
+
args: CREATE_ARGS,
|
|
178
|
+
run: async ({ args }) => {
|
|
179
|
+
const { payload, rejected, refusal } = membersFromArgs(args);
|
|
180
|
+
if (refusal) {
|
|
181
|
+
failWriteValidation(refusal);
|
|
182
|
+
}
|
|
183
|
+
await stageChatgptOp(
|
|
184
|
+
{
|
|
185
|
+
kind: "audience.create",
|
|
186
|
+
payload: { name: args.name, ...args.description ? { description: args.description } : {}, ...payload }
|
|
187
|
+
},
|
|
188
|
+
REFERENCE,
|
|
189
|
+
(staged) => [
|
|
190
|
+
...rejectedHint(rejected),
|
|
191
|
+
`Use it on a campaign after the publish, once \`audiences\` shows it ready: campaigns update <cmpn_id> --excluded-audience-ids <caud_id>. (${staged.ref} is its ref in this chat.)`
|
|
192
|
+
]
|
|
193
|
+
);
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
function membersCommand(verb) {
|
|
197
|
+
const args = {
|
|
198
|
+
id: { type: "positional", description: "Audience id (caud_\u2026)", required: true },
|
|
199
|
+
...MEMBER_ARGS
|
|
200
|
+
};
|
|
201
|
+
registerSchema({
|
|
202
|
+
command: `ads.chatgpt.audiences.${verb}`,
|
|
203
|
+
description: `Stage ${verb === "add" ? "adding" : "removing"} members ${verb === "add" ? "to" : "from"} a live custom audience, hashed on this machine. Applies when the chat is published.`,
|
|
204
|
+
args: schemaArgs(args)
|
|
205
|
+
});
|
|
206
|
+
return defineCommand({
|
|
207
|
+
meta: {
|
|
208
|
+
name: verb,
|
|
209
|
+
description: `Stage ${verb === "add" ? "adding" : "removing"} members.
|
|
210
|
+
|
|
211
|
+
Example:
|
|
212
|
+
baker ads chatgpt audiences ${verb} caud_123 --emails ana@example.com,luis@example.com`
|
|
213
|
+
},
|
|
214
|
+
args,
|
|
215
|
+
run: async ({ args: parsed }) => {
|
|
216
|
+
const { payload, rejected, refusal } = membersFromArgs(parsed);
|
|
217
|
+
if (refusal) {
|
|
218
|
+
failWriteValidation(refusal);
|
|
219
|
+
}
|
|
220
|
+
if (!payload.emailHashes && !payload.phoneHashes) {
|
|
221
|
+
failWriteValidation("name at least one email or phone with --emails, --phones or --file");
|
|
222
|
+
}
|
|
223
|
+
await stageChatgptOp(
|
|
224
|
+
{ kind: `audience.${verb}`, target: requireTarget(parsed, "id"), payload },
|
|
225
|
+
REFERENCE,
|
|
226
|
+
() => rejectedHint(rejected)
|
|
227
|
+
);
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
var ARCHIVE_ARGS = {
|
|
232
|
+
ids: { type: "positional", description: "Audience ids, comma-separated", required: true }
|
|
233
|
+
};
|
|
234
|
+
registerSchema({
|
|
235
|
+
command: "ads.chatgpt.audiences.archive",
|
|
236
|
+
description: "Stage archiving custom audiences \u2014 for good: ChatGPT Ads cannot bring one back. Pass every id in one call.",
|
|
237
|
+
args: schemaArgs(ARCHIVE_ARGS)
|
|
238
|
+
});
|
|
239
|
+
var audiencesArchiveCommand = defineCommand({
|
|
240
|
+
meta: {
|
|
241
|
+
name: "archive",
|
|
242
|
+
description: `Stage archiving audiences, for good.
|
|
243
|
+
|
|
244
|
+
Example:
|
|
245
|
+
baker ads chatgpt audiences archive caud_123`
|
|
246
|
+
},
|
|
247
|
+
args: ARCHIVE_ARGS,
|
|
248
|
+
run: async ({ args }) => {
|
|
249
|
+
await stageChatgptOps(
|
|
250
|
+
requireTargets(args, "ids").map((id) => ({ kind: "audience.archive", target: id, payload: {} })),
|
|
251
|
+
REFERENCE
|
|
252
|
+
);
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
var audiencesCommand = defineCommand({
|
|
256
|
+
meta: {
|
|
257
|
+
name: "audiences",
|
|
258
|
+
description: `Custom audiences \u2014 the company's own customer lists a campaign serves to or leaves out.
|
|
259
|
+
|
|
260
|
+
Examples:
|
|
261
|
+
baker ads chatgpt audiences
|
|
262
|
+
baker ads chatgpt audiences create --name "Customers 2026" --file customers.csv --country ES
|
|
263
|
+
baker ads chatgpt audiences add caud_123 --emails ana@example.com`
|
|
264
|
+
},
|
|
265
|
+
subCommands: {
|
|
266
|
+
list: audiencesListCommand,
|
|
267
|
+
create: audiencesCreateCommand,
|
|
268
|
+
add: membersCommand("add"),
|
|
269
|
+
remove: membersCommand("remove"),
|
|
270
|
+
archive: audiencesArchiveCommand
|
|
271
|
+
},
|
|
272
|
+
// A parent must never declare `run`: citty falls through to it after the matched subcommand.
|
|
273
|
+
args: {},
|
|
274
|
+
default: "list"
|
|
275
|
+
});
|
|
276
|
+
export {
|
|
277
|
+
audiencesCommand,
|
|
278
|
+
membersFromArgs
|
|
279
|
+
};
|
|
280
|
+
//# sourceMappingURL=audiences-KRI7E7FY.js.map
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import {
|
|
2
|
+
META_LIST_SHAPE_ARGS,
|
|
3
|
+
registerMetaListSchema,
|
|
4
|
+
shapeMetaListRows,
|
|
5
|
+
writeMetaListRows
|
|
6
|
+
} from "./chunk-AGEWPMBR.js";
|
|
7
|
+
import {
|
|
8
|
+
csvOrJson,
|
|
9
|
+
handleMetaError,
|
|
10
|
+
resolveAccountIdArg
|
|
11
|
+
} from "./chunk-KDDHMKTU.js";
|
|
12
|
+
import "./chunk-QALAJNBG.js";
|
|
13
|
+
import "./chunk-EAHBTBVR.js";
|
|
14
|
+
import {
|
|
15
|
+
NO_CACHE_ARG
|
|
16
|
+
} from "./chunk-3PG7O3ZW.js";
|
|
17
|
+
import "./chunk-65Y3RCWP.js";
|
|
18
|
+
import {
|
|
19
|
+
apiGet
|
|
20
|
+
} from "./chunk-C35UMKYG.js";
|
|
21
|
+
import "./chunk-ELAYD7O3.js";
|
|
22
|
+
import "./chunk-LBIF6FJY.js";
|
|
23
|
+
import "./chunk-TRXGJZDL.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-TPPJHGMT.js").then((m) => m.audiencesCreateCommand),
|
|
91
|
+
update: () => import("./write-commands-TPPJHGMT.js").then((m) => m.audiencesUpdateCommand),
|
|
92
|
+
delete: () => import("./audience-writes-BUWFC5W4.js").then((m) => m.audiencesDeleteCommand),
|
|
93
|
+
members: () => import("./audience-writes-BUWFC5W4.js").then((m) => m.audiencesMembersCommand),
|
|
94
|
+
saved: () => import("./audience-writes-BUWFC5W4.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-UJCOT423.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/ads/meta/audiences.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiGet } from \"../../../client.ts\";\nimport { META_LIST_SHAPE_ARGS, registerMetaListSchema, shapeMetaListRows, writeMetaListRows } from \"./list-rows.ts\";\nimport { csvOrJson, handleMetaError, resolveAccountIdArg } from \"./shared.ts\";\n\nconst listArgs = {\n \"account-id\": { type: \"string\", description: \"Meta ad account ID\" },\n \"name-contains\": {\n type: \"string\",\n description:\n \"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>\",\n },\n seed: {\n type: \"string\",\n description:\n \"Only the lookalikes built from this source audience id, whatever they are named: --seed 120240480760260208\",\n },\n limit: { type: \"string\", description: \"Max rows (default 500)\" },\n \"no-cache\": NO_CACHE_ARG,\n ...META_LIST_SHAPE_ARGS,\n} as const;\n\nregisterMetaListSchema(\n \"audiences\",\n \"List custom and lookalike audiences, as a table by default: id, name, subtype, size_min, size_max, retention_days, updated_date — 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.\",\n listArgs,\n);\n\nconst listCommand = defineCommand({\n meta: {\n name: \"list\",\n description:\n \"List custom audiences. Runs by default when no subcommand is given. Example: baker ads meta audiences --name-contains buyers\",\n },\n args: listArgs,\n run: async ({ args }) => {\n const accountId = await resolveAccountIdArg(args);\n try {\n const params: Record<string, string> = { \"account-id\": accountId };\n if (args[\"name-contains\"]) params[\"name-contains\"] = args[\"name-contains\"] as string;\n if (args.seed) params.seed = args.seed as string;\n if (args.limit) params.limit = args.limit as string;\n if (args[\"no-cache\"]) params[\"skip-cache\"] = \"true\";\n const data = await apiGet<Array<Record<string, unknown>>>(\"/api/ads/meta/audiences\", params);\n writeMetaListRows(\"audiences\", shapeMetaListRows(\"audiences\", data, args), csvOrJson(args));\n } catch (err) {\n handleMetaError(err);\n }\n },\n});\n\nexport const audiencesCommand = defineCommand({\n meta: {\n name: \"audiences\",\n description: `List custom audiences, or stage writes (create/update/delete, members add|remove|replace). Write subcommands stage ops on this chat's draft.\nIncludes lookalikes, website-pixel audiences, customer-file audiences. Meta hides exact size when count < 1000.\n\nListings print a table by default: id, name, subtype, size_min, size_max, retention_days, updated_date, plus\ndelivery and seed_id when a row has one. The rule and data source are --fields (dotted paths) or --full away.\n\nExamples:\n baker ads meta audiences --account-id act_123\n baker ads meta audiences --name-contains Cerradas — find one audience by name\n baker ads meta audiences --seed 120240480760260208 — the lookalikes built from that audience\n baker ads meta audiences --name-contains Leads --fields id,name,rule,retention_days --output json\n baker ads meta audiences create --name \"Site 30d\" --subtype WEBSITE --file rule.json\n baker ads meta audiences create --name \"Past buyers\" --subtype CUSTOM --file buyers.json # {\"members\":[{\"email\":\"…\"}]}\n baker ads meta audiences create --name \"Customers\" --subtype CUSTOM --customer-file-source USER_PROVIDED_ONLY\n baker ads meta audiences members add meta_temp_ab12 --file customers.csv --country ES\n baker ads meta audiences saved --account-id act_123 — saved audiences (read-only)`,\n },\n subCommands: {\n list: listCommand,\n create: () => import(\"./write-commands.ts\").then((m) => m.audiencesCreateCommand),\n update: () => import(\"./write-commands.ts\").then((m) => m.audiencesUpdateCommand),\n delete: () => import(\"./audience-writes.ts\").then((m) => m.audiencesDeleteCommand),\n members: () => import(\"./audience-writes.ts\").then((m) => m.audiencesMembersCommand),\n saved: () => import(\"./audience-writes.ts\").then((m) => m.savedAudiencesCommand),\n },\n // `args` stays even though the parent has no `run`: citty scans rawArgs for the\n // subcommand name using THIS command's arg defs, so without them `--account-id act_1`\n // would read `act_1` as a subcommand. `default` (not `run`) dispatches the bare\n // invocation — citty falls through to `run` after a subcommand, double-executing it.\n args: listArgs,\n default: \"list\",\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAM9B,IAAM,WAAW;AAAA,EACf,cAAc,EAAE,MAAM,UAAU,aAAa,qBAAqB;AAAA,EAClE,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,OAAO,EAAE,MAAM,UAAU,aAAa,yBAAyB;AAAA,EAC/D,YAAY;AAAA,EACZ,GAAG;AACL;AAEA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,cAAc,cAAc;AAAA,EAChC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,EACN,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,YAAY,MAAM,oBAAoB,IAAI;AAChD,QAAI;AACF,YAAM,SAAiC,EAAE,cAAc,UAAU;AACjE,UAAI,KAAK,eAAe,EAAG,QAAO,eAAe,IAAI,KAAK,eAAe;AACzE,UAAI,KAAK,KAAM,QAAO,OAAO,KAAK;AAClC,UAAI,KAAK,MAAO,QAAO,QAAQ,KAAK;AACpC,UAAI,KAAK,UAAU,EAAG,QAAO,YAAY,IAAI;AAC7C,YAAM,OAAO,MAAM,OAAuC,2BAA2B,MAAM;AAC3F,wBAAkB,aAAa,kBAAkB,aAAa,MAAM,IAAI,GAAG,UAAU,IAAI,CAAC;AAAA,IAC5F,SAAS,KAAK;AACZ,sBAAgB,GAAG;AAAA,IACrB;AAAA,EACF;AACF,CAAC;AAEM,IAAM,mBAAmB,cAAc;AAAA,EAC5C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBf;AAAA,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,QAAQ,MAAM,OAAO,8BAAqB,EAAE,KAAK,CAAC,MAAM,EAAE,sBAAsB;AAAA,IAChF,QAAQ,MAAM,OAAO,8BAAqB,EAAE,KAAK,CAAC,MAAM,EAAE,sBAAsB;AAAA,IAChF,QAAQ,MAAM,OAAO,+BAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,sBAAsB;AAAA,IACjF,SAAS,MAAM,OAAO,+BAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,uBAAuB;AAAA,IACnF,OAAO,MAAM,OAAO,+BAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,qBAAqB;AAAA,EACjF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM;AAAA,EACN,SAAS;AACX,CAAC;","names":[]}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import {
|
|
2
|
+
handleLinkedinError,
|
|
3
|
+
resolveAccountIdArg
|
|
4
|
+
} from "./chunk-NNG4QCKJ.js";
|
|
5
|
+
import {
|
|
6
|
+
writeAdsJson
|
|
7
|
+
} from "./chunk-EAHBTBVR.js";
|
|
8
|
+
import {
|
|
9
|
+
NO_CACHE_ARG
|
|
10
|
+
} from "./chunk-3PG7O3ZW.js";
|
|
11
|
+
import "./chunk-3LH5ANM4.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-NSBNIPIW.js";
|
|
18
|
+
import "./chunk-TI4UL56R.js";
|
|
19
|
+
import {
|
|
20
|
+
apiPost
|
|
21
|
+
} from "./chunk-C35UMKYG.js";
|
|
22
|
+
import "./chunk-ELAYD7O3.js";
|
|
23
|
+
import "./chunk-LBIF6FJY.js";
|
|
24
|
+
import "./chunk-TRXGJZDL.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-EGLLMYFY.js.map
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import {
|
|
2
|
+
noSerpRowsHints
|
|
3
|
+
} from "./chunk-EKQCHHZW.js";
|
|
4
|
+
import {
|
|
5
|
+
RESEARCH_DATA_NOTE,
|
|
6
|
+
handleResearchError,
|
|
7
|
+
writeResearchHints,
|
|
8
|
+
writeResearchJson,
|
|
9
|
+
writeResearchOutput
|
|
10
|
+
} from "./chunk-UMQCYEAL.js";
|
|
11
|
+
import {
|
|
12
|
+
buildResearchQueryContext,
|
|
13
|
+
warnDefaults
|
|
14
|
+
} from "./chunk-RD63FPG6.js";
|
|
15
|
+
import "./chunk-UIPSSTMA.js";
|
|
16
|
+
import "./chunk-3LH5ANM4.js";
|
|
17
|
+
import "./chunk-QV6AST5T.js";
|
|
18
|
+
import "./chunk-WCU362Z6.js";
|
|
19
|
+
import "./chunk-GIWHHCD6.js";
|
|
20
|
+
import "./chunk-SOPVIIUW.js";
|
|
21
|
+
import "./chunk-G4FG5EQO.js";
|
|
22
|
+
import "./chunk-NSBNIPIW.js";
|
|
23
|
+
import "./chunk-TI4UL56R.js";
|
|
24
|
+
import {
|
|
25
|
+
apiPost
|
|
26
|
+
} from "./chunk-C35UMKYG.js";
|
|
27
|
+
import "./chunk-ELAYD7O3.js";
|
|
28
|
+
import "./chunk-LBIF6FJY.js";
|
|
29
|
+
import {
|
|
30
|
+
registerSchema
|
|
31
|
+
} from "./chunk-TRXGJZDL.js";
|
|
32
|
+
import "./chunk-YQSBHWOI.js";
|
|
33
|
+
|
|
34
|
+
// src/commands/research/autocomplete.ts
|
|
35
|
+
import { defineCommand } from "citty";
|
|
36
|
+
registerSchema({
|
|
37
|
+
command: "research.autocomplete",
|
|
38
|
+
description: "Get Google Autocomplete suggestions for a seed keyword. Useful for keyword expansion and discovering what people actually search for. If --location and --language are omitted, defaults to United States (us) and English (en).",
|
|
39
|
+
args: {
|
|
40
|
+
keyword: { type: "string", description: "Seed keyword (positional)", required: true },
|
|
41
|
+
location: {
|
|
42
|
+
type: "string",
|
|
43
|
+
description: "Country code (us, uk, es, de...) or DataForSEO location code. Defaults to us (United States) if omitted",
|
|
44
|
+
required: false
|
|
45
|
+
},
|
|
46
|
+
language: {
|
|
47
|
+
type: "string",
|
|
48
|
+
description: "Language code or name. Defaults to en (English) if omitted",
|
|
49
|
+
required: false
|
|
50
|
+
},
|
|
51
|
+
limit: { type: "string", description: "Max suggestions (default: 10, max: 20)", required: false },
|
|
52
|
+
"no-cache": { type: "boolean", description: "Skip server cache, hit API directly", required: false }
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
var FIELDS = {
|
|
56
|
+
suggestion: "Autocomplete suggestion from Google"
|
|
57
|
+
};
|
|
58
|
+
var autocompleteCommand = defineCommand({
|
|
59
|
+
meta: {
|
|
60
|
+
name: "autocomplete",
|
|
61
|
+
description: `Get Google Autocomplete suggestions for keyword expansion.
|
|
62
|
+
|
|
63
|
+
Examples:
|
|
64
|
+
baker research autocomplete "running shoes"
|
|
65
|
+
baker research autocomplete "crm" --location uk --limit 5`
|
|
66
|
+
},
|
|
67
|
+
args: {
|
|
68
|
+
keyword: { type: "positional", description: "Seed keyword", required: true },
|
|
69
|
+
location: { type: "string", description: "Country code or location code (default: us)", required: false },
|
|
70
|
+
language: { type: "string", description: "Language code or name (default: en)", required: false },
|
|
71
|
+
limit: { type: "string", description: "Max suggestions (default: 10, max: 20)", required: false },
|
|
72
|
+
output: { type: "string", description: "Format: json|csv|md|jsonl", required: false, default: "json" },
|
|
73
|
+
"no-cache": { type: "boolean", description: "Skip server cache, hit API directly", required: false }
|
|
74
|
+
},
|
|
75
|
+
run: async ({ args }) => {
|
|
76
|
+
const keyword = args.keyword;
|
|
77
|
+
const location = args.location || void 0;
|
|
78
|
+
const language = args.language || void 0;
|
|
79
|
+
const limit = args.limit ? Number(args.limit) : void 0;
|
|
80
|
+
const skipCache = args["no-cache"] ? true : void 0;
|
|
81
|
+
const queryContext = buildResearchQueryContext(location, language);
|
|
82
|
+
try {
|
|
83
|
+
const data = await apiPost("/api/research/autocomplete", {
|
|
84
|
+
keyword,
|
|
85
|
+
location,
|
|
86
|
+
language,
|
|
87
|
+
limit,
|
|
88
|
+
skipCache
|
|
89
|
+
});
|
|
90
|
+
warnDefaults(queryContext);
|
|
91
|
+
const format = args.output || "json";
|
|
92
|
+
const hints = noSerpRowsHints(data.length, queryContext);
|
|
93
|
+
if (format !== "json") {
|
|
94
|
+
writeResearchOutput(data, format);
|
|
95
|
+
writeResearchHints(hints, format);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
writeResearchJson({
|
|
99
|
+
ok: true,
|
|
100
|
+
data,
|
|
101
|
+
fields: FIELDS,
|
|
102
|
+
note: RESEARCH_DATA_NOTE,
|
|
103
|
+
query_context: queryContext,
|
|
104
|
+
hints
|
|
105
|
+
});
|
|
106
|
+
} catch (err) {
|
|
107
|
+
handleResearchError(err);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
export {
|
|
112
|
+
autocompleteCommand
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=autocomplete-6DUDQLRT.js.map
|