@koda-sl/baker-cli 0.502.0 → 0.504.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 -1
- package/dist/account-RSOGF4XW.js +80 -0
- package/dist/account-WLQBAQMD.js +80 -0
- package/dist/account-assets-WZOYMT3C.js +290 -0
- package/dist/account-level-XEDTZVNJ.js +609 -0
- package/dist/account-reads-KJHPUVEV.js +219 -0
- package/dist/account-users-X7JTXBHS.js +62 -0
- package/dist/account-writes-TU3WJRSI.js +66 -0
- package/dist/accounts-CC5F7TBB.js +699 -0
- package/dist/accounts-UFPI46P5.js +78 -0
- package/dist/actions-IG2D6NRC.js +55 -0
- package/dist/activecampaign-S76P2FMN.js +936 -0
- package/dist/ad-group-writes-HLBWN4E4.js +170 -0
- package/dist/ad-groups-33NZD6J3.js +68 -0
- package/dist/ad-writes-7ZDNDZ2E.js +174 -0
- package/dist/add-GZV57GNI.js +105 -0
- package/dist/add-V4UNAGVT.js +303 -0
- package/dist/ads-IC52FMFA.js +115 -0
- package/dist/ads-MAPZYX6F.js +48 -0
- package/dist/ads-X3AM6M7L.js +77 -0
- package/dist/adsets-7N4UFAVA.js +182 -0
- package/dist/advertisers-B2YDPIMV.js +121 -0
- package/dist/analytics-4CCQYY7Z.js +2138 -0
- package/dist/analytics-XW4ZEEAR.js +445 -0
- package/dist/asset-writes-QPJDD767.js +48 -0
- package/dist/assign-HE3MH7WE.js +78 -0
- package/dist/audience-size-W33DMJ7E.js +74 -0
- package/dist/audience-writes-KO7L5YLO.js +325 -0
- package/dist/audiences-H5WVE2ZA.js +86 -0
- package/dist/audiences-WCDWN64L.js +268 -0
- package/dist/audit-EFDIMRYT.js +152 -0
- package/dist/autocomplete-H4BKQNXF.js +112 -0
- package/dist/avatars-VYXUQSSE.js +38 -0
- package/dist/bid-pricing-QK4IJUD2.js +101 -0
- package/dist/brand-JB6NXAAL.js +22 -0
- package/dist/brief-G5WEJ52V.js +541 -0
- package/dist/campaign-groups-X2WAZE64.js +97 -0
- package/dist/campaign-writes-LM6W5MIF.js +166 -0
- package/dist/campaign-writes-XO74BALZ.js +174 -0
- package/dist/campaign-writes-XO74BALZ.js.map +1 -0
- package/dist/campaigns-4ERDITZ5.js +111 -0
- package/dist/campaigns-4ERDITZ5.js.map +1 -0
- package/dist/campaigns-7PHPOERA.js +111 -0
- package/dist/campaigns-LS65QM6W.js +76 -0
- package/dist/campaigns-PCD72XQX.js +130 -0
- package/dist/canvas-YULE6CFP.js +46 -0
- package/dist/capabilities-QREOIRIH.js +145 -0
- package/dist/catalogs-OIQS5NSC.js +779 -0
- package/dist/catalogs-T23RKYFC.js +128 -0
- package/dist/changes-36C754R4.js +135 -0
- package/dist/chatgpt-SVGWMEQD.js +47 -0
- package/dist/chats-FF4PN5JC.js +277 -0
- package/dist/check-5UHPABWJ.js +105 -0
- package/dist/chunk-277FW25B.js +406 -0
- package/dist/chunk-2TOIY2WN.js +4254 -0
- package/dist/chunk-2TOIY2WN.js.map +1 -0
- package/dist/chunk-36MUCC42.js +203 -0
- package/dist/chunk-4GAEB6NK.js +228 -0
- package/dist/chunk-5DJ5RNAO.js +66 -0
- package/dist/chunk-5XTGG4PV.js +274 -0
- package/dist/chunk-7LLKJN2O.js +344 -0
- package/dist/chunk-AHUA76NQ.js +363 -0
- package/dist/chunk-BHXFGLY5.js +61 -0
- package/dist/chunk-BOE6YB2D.js +387 -0
- package/dist/chunk-BPRS7VQ3.js +349 -0
- package/dist/chunk-BRA6IXRS.js +910 -0
- package/dist/chunk-BW36QQQU.js +3868 -0
- package/dist/chunk-CCEDZTP7.js +391 -0
- package/dist/chunk-CLUJWAQE.js +207 -0
- package/dist/chunk-D2JFOD5O.js +249 -0
- package/dist/chunk-D735YLAX.js +547 -0
- package/dist/chunk-DM6CEVCN.js +197 -0
- package/dist/chunk-DTUGU4EI.js +169 -0
- package/dist/chunk-DZGXFV6A.js +97 -0
- package/dist/chunk-EXELLNQS.js +7128 -0
- package/dist/chunk-EXELLNQS.js.map +1 -0
- package/dist/chunk-F4RZHA74.js +191 -0
- package/dist/chunk-FFFJBNHA.js +63 -0
- package/dist/chunk-FM6RRYJB.js +163 -0
- package/dist/chunk-GDXJVEVG.js +592 -0
- package/dist/chunk-GJCB46L6.js +479 -0
- package/dist/chunk-GNDSD5VQ.js +297 -0
- package/dist/chunk-HD23TJIT.js +392 -0
- package/dist/chunk-IYMGQATT.js +23 -0
- package/dist/chunk-JOXNUKI7.js +676 -0
- package/dist/chunk-JYG7N6TV.js +455 -0
- package/dist/chunk-K5ZOZ2IY.js +91 -0
- package/dist/chunk-KTCWU4A4.js +494 -0
- package/dist/chunk-KYSTZP7J.js +604 -0
- package/dist/chunk-LE7VW2IU.js +224 -0
- package/dist/chunk-LLBB6OAB.js +1646 -0
- package/dist/chunk-LLBB6OAB.js.map +1 -0
- package/dist/chunk-M7HD42M6.js +24017 -0
- package/dist/chunk-M7HD42M6.js.map +1 -0
- package/dist/chunk-MGYC2IRC.js +783 -0
- package/dist/chunk-MKAYMOZY.js +25 -0
- package/dist/chunk-MKAYMOZY.js.map +1 -0
- package/dist/chunk-NALPM5QO.js +275 -0
- package/dist/chunk-PISGCYXU.js +170 -0
- package/dist/chunk-PLBITHV6.js +846 -0
- package/dist/chunk-RJY5S7RU.js +8954 -0
- package/dist/chunk-ROVV7INH.js +19 -0
- package/dist/chunk-RRJK46PC.js +103 -0
- package/dist/chunk-S335LT4B.js +207 -0
- package/dist/chunk-S3FFLLYF.js +57 -0
- package/dist/chunk-SBFP3REK.js +51 -0
- package/dist/chunk-SG2BCYWB.js +122 -0
- package/dist/chunk-T3KW63H7.js +942 -0
- package/dist/chunk-TLQOMWLQ.js +69 -0
- package/dist/chunk-TLQOMWLQ.js.map +1 -0
- package/dist/chunk-UQ7SJMGJ.js +287 -0
- package/dist/chunk-VIPKDXGU.js +4229 -0
- package/dist/chunk-VIPKDXGU.js.map +1 -0
- package/dist/chunk-WVTKUCAO.js +831 -0
- package/dist/chunk-X45ASFZW.js +142 -0
- package/dist/chunk-YLQWWLCW.js +219 -0
- package/dist/chunk-ZAM6PVHX.js +89 -0
- package/dist/chunk-ZGWXGK5S.js +156 -0
- package/dist/chunk-ZNRGH4NS.js +150 -0
- package/dist/chunk-ZQXHOHSC.js +319 -0
- package/dist/claim-JMF4O2SQ.js +198 -0
- package/dist/cli.js +32 -32
- package/dist/companies-2DHNNS34.js +196 -0
- package/dist/company-UVLP5WE7.js +306 -0
- package/dist/complete-MVR6QHON.js +82 -0
- package/dist/connect-WTDJKDTR.js +43 -0
- package/dist/conversation-O3XOVYC3.js +94 -0
- package/dist/conversion-report-DKXFHLLX.js +125 -0
- package/dist/conversion-upload-command-MHZSSJXN.js +439 -0
- package/dist/conversion-writes-7ODJDAUP.js +120 -0
- package/dist/conversions-BKVGNNC6.js +76 -0
- package/dist/conversions-HUQJ767W.js +138 -0
- package/dist/copy-writes-JH2AECES.js +168 -0
- package/dist/create-EXLN4XHF.js +237 -0
- package/dist/create-TCT3IMAU.js +208 -0
- package/dist/create-YE3VLUUP.js +60 -0
- package/dist/create-YGAMPG2C.js +133 -0
- package/dist/creatives-IXR4RTSF.js +221 -0
- package/dist/creatives-L7F4BF3F.js +89 -0
- package/dist/creatives-WUUHFCFY.js +58 -0
- package/dist/credentials-UY6OPN7W.js +288 -0
- package/dist/critique-DU7K2KVR.js +1459 -0
- package/dist/critique-ZYLCH5SO.js +230 -0
- package/dist/crm-F64BDO4X.js +225 -0
- package/dist/crm-K2QSZ2X7.js +321 -0
- package/dist/currency-R4ORE2U3.js +88 -0
- package/dist/custom-conversions-6KYF26SK.js +128 -0
- package/dist/customers-TJDVAPTR.js +57 -0
- package/dist/delete-4XHBC4UR.js +67 -0
- package/dist/delete-A4R2R7HF.js +55 -0
- package/dist/delete-SUHPUAE5.js +65 -0
- package/dist/demographics-MZBHPCT3.js +139 -0
- package/dist/discard-HUP4DXIJ.js +67 -0
- package/dist/discover-GSJRZUOC.js +172 -0
- package/dist/domain-WFT5NJNP.js +99 -0
- package/dist/download-DAWPUKXP.js +170 -0
- package/dist/download-DAWPUKXP.js.map +1 -0
- package/dist/draft-6HTSF36L.js +333 -0
- package/dist/draft-6XS36CMT.js +218 -0
- package/dist/draft-LPVK6YHI.js +281 -0
- package/dist/draft-RTZBROFS.js +308 -0
- package/dist/draft-SNKUG6UX.js +308 -0
- package/dist/experiments-PJWBABLJ.js +234 -0
- package/dist/facets-SWSXRJ5G.js +115 -0
- package/dist/feedback-HL3RH5AO.js +109 -0
- package/dist/feedback-record-YDI2MHAV.js +263 -0
- package/dist/fetch-ASLXGN7O.js +177 -0
- package/dist/fit-I3FZJKOK.js +63 -0
- package/dist/flows-BP7IQ4YA.js +248 -0
- package/dist/fonts-U23DJIT2.js +37 -0
- package/dist/forecast-DUAOZEMB.js +119 -0
- package/dist/forecast-LXTCKRZE.js +169 -0
- package/dist/funnel-727XATM5.js +395 -0
- package/dist/get-4567QZ5E.js +57 -0
- package/dist/get-PB62YT3J.js +80 -0
- package/dist/google-VPL4KZDP.js +3267 -0
- package/dist/google-ads-XM4NUOST.js +196 -0
- package/dist/history-26OX4MCJ.js +134 -0
- package/dist/history-5MRLNTCI.js +67 -0
- package/dist/hubspot-S3ED4AYK.js +780 -0
- package/dist/ideas-KNIT3KNY.js +43 -0
- package/dist/images-SCC3QYPG.js +92 -0
- package/dist/ingest-667IMIGB.js +24 -0
- package/dist/ingest-PXCOSPP5.js +108 -0
- package/dist/insights-EQW34IL4.js +437 -0
- package/dist/insights-JZVXC7IJ.js +130 -0
- package/dist/inspect-PSWSCTLJ.js +190 -0
- package/dist/instant-experiences-ABIS6KUQ.js +258 -0
- package/dist/intent-NSHW7EJT.js +95 -0
- package/dist/keyword-gap-ITTWKBWZ.js +130 -0
- package/dist/keyword-metrics-HQSNLJM3.js +198 -0
- package/dist/keywords-for-site-FX6KCUNV.js +129 -0
- package/dist/landing-X4PG6XWU.js +28 -0
- package/dist/languages-MEFQQBJ2.js +40 -0
- package/dist/leads-ONFUUBAZ.js +113 -0
- package/dist/leads-WKGUT3EA.js +538 -0
- package/dist/learn-2QPP7NHC.js +205 -0
- package/dist/line-item-writes-2XGDEEV3.js +209 -0
- package/dist/line-items-ZSQS2AWV.js +107 -0
- package/dist/line-items-ZSQS2AWV.js.map +1 -0
- package/dist/link-QL7Y2LML.js +65 -0
- package/dist/linkedin-4MGRSWXZ.js +1314 -0
- package/dist/linkedin-person-E4JJG4J5.js +137 -0
- package/dist/list-4SAXAQCN.js +152 -0
- package/dist/list-GF3LEAM7.js +65 -0
- package/dist/list-KLDAPWIB.js +304 -0
- package/dist/locations-RLWAS6AC.js +40 -0
- package/dist/locations-UKBOT6SB.js +67 -0
- package/dist/log-4LLRZB2M.js +93 -0
- package/dist/make-ZMFGPL7A.js +1368 -0
- package/dist/map-NKRFK545.js +434 -0
- package/dist/mcp-VARLEIKU.js +715 -0
- package/dist/media-LE2PO4Q4.js +18 -0
- package/dist/media-sources-4Y53RHUW.js +35 -0
- package/dist/members-HSPPVHU2.js +45 -0
- package/dist/meta-KS3SQSYZ.js +122 -0
- package/dist/metrics-K6FDCMK7.js +152 -0
- package/dist/normalize-LDIXBNSA.js +142 -0
- package/dist/options-2GEONNJF.js +123 -0
- package/dist/organization-W5JLJ4KP.js +947 -0
- package/dist/page-photos-TOM74T5U.js +116 -0
- package/dist/performance-34LV3QGQ.js +25 -0
- package/dist/performance-CIUVIFD7.js +5445 -0
- package/dist/pixels-Z7ZGXAGB.js +60 -0
- package/dist/posts-37LZKGWU.js +34 -0
- package/dist/preview-CWRGDFCP.js +216 -0
- package/dist/promoted-tweet-writes-7XGCGHPN.js +181 -0
- package/dist/promoted-tweets-EZZHHGS6.js +119 -0
- package/dist/publish-OB7UZSKT.js +342 -0
- package/dist/query-42QT56FJ.js +62 -0
- package/dist/reddit-PR2SBLQN.js +27 -0
- package/dist/refresh-EJ6XQNAQ.js +95 -0
- package/dist/release-FV6M3X4D.js +61 -0
- package/dist/relevant-pages-VOICMQ7U.js +99 -0
- package/dist/remove-6LK6L3KE.js +51 -0
- package/dist/reopen-2VHSGKNJ.js +64 -0
- package/dist/rerun-W6YHMXCK.js +93 -0
- package/dist/research-6NUBHVSB.js +263 -0
- package/dist/research-BYDRBMN5.js +72 -0
- package/dist/reset-MPGBOFJD.js +55 -0
- package/dist/reset-YO66ZZRC.js +55 -0
- package/dist/resolve-SGXOPZ4W.js +122 -0
- package/dist/retry-LXMT4I2X.js +63 -0
- package/dist/retry-Z2ZUPUQI.js +61 -0
- package/dist/revenue-MZ2C65GL.js +89 -0
- package/dist/rule-writes-KLYXCD7Z.js +523 -0
- package/dist/rules-CDMHA2KQ.js +97 -0
- package/dist/rules-NALFFFDR.js +217 -0
- package/dist/rules-add-HEXUMODD.js +463 -0
- package/dist/run-VNL34BKW.js +67 -0
- package/dist/run-WTD73KD5.js +68 -0
- package/dist/scaffold-ad-S2DZSRM4.js +1514 -0
- package/dist/scaffold-static-ad-DW6OMF3D.js +1013 -0
- package/dist/scaffold-video-EXLUICRE.js +886 -0
- package/dist/schedule-7GAFQXF7.js +62 -0
- package/dist/scheduled-agents-7JW3JIOL.js +50 -0
- package/dist/schema-PHGVKZ4X.js +133 -0
- package/dist/search-VCRWREOU.js +175 -0
- package/dist/select-BPGZYHR3.js +104 -0
- package/dist/set-prompt-E776UHMH.js +196 -0
- package/dist/setup-links-2AMTW6O5.js +142 -0
- package/dist/shopify-SUSDBUUZ.js +3956 -0
- package/dist/site-DH6Z2RX3.js +178 -0
- package/dist/sources-PSM2A5QD.js +455 -0
- package/dist/sources-ZJ7EZ6TJ.js +30 -0
- package/dist/stale-RHW4OYXY.js +74 -0
- package/dist/status-JHAVZIYW.js +63 -0
- package/dist/studies-2GPTKJCT.js +250 -0
- package/dist/study-writes-QCSAPE2G.js +468 -0
- package/dist/sync-RQ3NUCGE.js +55 -0
- package/dist/sync-definition-3DRKTX3V.js +67 -0
- package/dist/tag-manager-BVPLGLTF.js +43 -0
- package/dist/tags-A2JZRMKV.js +21 -0
- package/dist/tags-H2PQWUNE.js +26 -0
- package/dist/tags-HOZYO6FL.js +21 -0
- package/dist/tags-WH7LGHNT.js +225 -0
- package/dist/tags-WRUUTQCJ.js +21 -0
- package/dist/targeting-SOMGPSKV.js +760 -0
- package/dist/targeting-constants-236ES5HE.js +118 -0
- package/dist/targeting-criteria-APNZ7DN3.js +113 -0
- package/dist/targets-LNZBOK2B.js +104 -0
- package/dist/testimonials-Y6RADYJ5.js +32 -0
- package/dist/themes-7I6URZUW.js +95 -0
- package/dist/top-companies-HZQTHV2H.js +109 -0
- package/dist/transcript-SRHKH3JL.js +163 -0
- package/dist/translate-C5R3OMTL.js +607 -0
- package/dist/triggers-QISDVK4W.js +142 -0
- package/dist/unlink-2TDYZUCT.js +68 -0
- package/dist/unstage-KRBN7SHW.js +86 -0
- package/dist/update-GE6XVCDF.js +64 -0
- package/dist/update-KG4XAUC7.js +153 -0
- package/dist/update-PAYTKLZ2.js +190 -0
- package/dist/update-QSGTZHD4.js +99 -0
- package/dist/upload-5R5CCOE6.js +127 -0
- package/dist/url-options-LA6BL3GS.js +130 -0
- package/dist/url-params-L4WF3D2V.js +99 -0
- package/dist/validate-6AHIXVW4.js +120 -0
- package/dist/videos-3DPLRMFM.js +41 -0
- package/dist/videos-3DPLRMFM.js.map +1 -0
- package/dist/viewer-check-TEQVRF4O.js +81 -0
- package/dist/web-3G6UP3YV.js +141 -0
- package/dist/winning-ads-7SI2VN7U.js +86 -0
- package/dist/write-commands-UA3FI3EX.js +1170 -0
- package/dist/write-commands-UA3FI3EX.js.map +1 -0
- package/dist/write-commands-ZQ5JYOUB.js +1498 -0
- package/dist/write-commands-ZQ5JYOUB.js.map +1 -0
- package/dist/x-7VY6K7JS.js +47 -0
- package/package.json +1 -1
- package/dist/account-PYK5VMQ4.js +0 -80
- package/dist/account-YSMZB5ZC.js +0 -80
- package/dist/account-assets-LSXSW4RQ.js +0 -290
- package/dist/account-level-6T2WAPF3.js +0 -609
- package/dist/account-reads-2U5OGO72.js +0 -219
- package/dist/account-users-XFNFGZB7.js +0 -62
- package/dist/account-writes-4MAKFM7L.js +0 -66
- package/dist/accounts-ZKY6KPU3.js +0 -78
- package/dist/accounts-ZYOQSFX5.js +0 -699
- package/dist/actions-PF62UVHS.js +0 -55
- package/dist/activecampaign-Q7LLZSZ4.js +0 -936
- package/dist/ad-group-writes-XZ7XSJ3C.js +0 -170
- package/dist/ad-groups-HI5YNTX3.js +0 -68
- package/dist/ad-writes-E2C4BKWT.js +0 -174
- package/dist/add-3GL76LTP.js +0 -105
- package/dist/add-GDEQN43J.js +0 -303
- package/dist/ads-CE3WX7VO.js +0 -48
- package/dist/ads-K2TIHZFC.js +0 -115
- package/dist/ads-VXF5STHG.js +0 -77
- package/dist/adsets-MTB4LNE3.js +0 -182
- package/dist/advertisers-B5L4LZW2.js +0 -121
- package/dist/analytics-BBX6CU3S.js +0 -2138
- package/dist/analytics-WLV24XJE.js +0 -445
- package/dist/asset-writes-6QPHEAKF.js +0 -48
- package/dist/assign-BSV765I3.js +0 -78
- package/dist/audience-size-KJGSHN45.js +0 -74
- package/dist/audience-writes-3PSC7LRY.js +0 -325
- package/dist/audiences-SUW2NSXG.js +0 -268
- package/dist/audiences-UZ2V66OY.js +0 -86
- package/dist/audit-RKDWAPMX.js +0 -152
- package/dist/autocomplete-BNQXAPDX.js +0 -112
- package/dist/avatars-TEZP5DQN.js +0 -38
- package/dist/bid-pricing-ARPPR45O.js +0 -101
- package/dist/brand-JJDZKJSM.js +0 -22
- package/dist/brief-FSVESR44.js +0 -541
- package/dist/campaign-groups-DRUQ5WBQ.js +0 -97
- package/dist/campaign-writes-JFT4OPL5.js +0 -170
- package/dist/campaign-writes-JFT4OPL5.js.map +0 -1
- package/dist/campaign-writes-SDQ7IPHU.js +0 -166
- package/dist/campaigns-FM2V3RIE.js +0 -111
- package/dist/campaigns-UDPZIIPK.js +0 -107
- package/dist/campaigns-UDPZIIPK.js.map +0 -1
- package/dist/campaigns-XFNPYDO6.js +0 -76
- package/dist/campaigns-XSAJ3XSB.js +0 -130
- package/dist/canvas-WEU5LFUO.js +0 -46
- package/dist/capabilities-HMT6ZBPH.js +0 -145
- package/dist/catalogs-AIRFPJAJ.js +0 -779
- package/dist/catalogs-WR3D6VEY.js +0 -128
- package/dist/changes-ONEEMEMT.js +0 -135
- package/dist/chatgpt-23X76OFD.js +0 -47
- package/dist/chats-77MJ5SIT.js +0 -277
- package/dist/check-TA3HM2QA.js +0 -105
- package/dist/chunk-2572627P.js +0 -547
- package/dist/chunk-34Z4YPXD.js +0 -846
- package/dist/chunk-3HFGJFRM.js +0 -387
- package/dist/chunk-3LFPQSSC.js +0 -406
- package/dist/chunk-42YFMKEU.js +0 -191
- package/dist/chunk-457XEP63.js +0 -97
- package/dist/chunk-5KDFRTMY.js +0 -89
- package/dist/chunk-5MSRVAUZ.js +0 -7112
- package/dist/chunk-5MSRVAUZ.js.map +0 -1
- package/dist/chunk-5YFQPJVS.js +0 -287
- package/dist/chunk-5YQATOWK.js +0 -66
- package/dist/chunk-6IE7RGIC.js +0 -363
- package/dist/chunk-6QBSUYQZ.js +0 -197
- package/dist/chunk-6R2BU3FJ.js +0 -207
- package/dist/chunk-AIOICB5Q.js +0 -392
- package/dist/chunk-ANLLW3KZ.js +0 -228
- package/dist/chunk-AZH6H4TV.js +0 -783
- package/dist/chunk-BBBWMD5R.js +0 -274
- package/dist/chunk-C4I5NCMG.js +0 -224
- package/dist/chunk-EBEZFAUH.js +0 -24014
- package/dist/chunk-EBEZFAUH.js.map +0 -1
- package/dist/chunk-ERSL4WZT.js +0 -4251
- package/dist/chunk-ERSL4WZT.js.map +0 -1
- package/dist/chunk-FR6RFLFP.js +0 -942
- package/dist/chunk-GNKICND2.js +0 -604
- package/dist/chunk-GTNNH3AI.js +0 -23
- package/dist/chunk-HH7B2L3Z.js +0 -219
- package/dist/chunk-HITRGZIS.js +0 -57
- package/dist/chunk-HNS5OURO.js +0 -103
- package/dist/chunk-I2C4IUDP.js +0 -831
- package/dist/chunk-I46D7YXI.js +0 -207
- package/dist/chunk-JCRGGVV5.js +0 -910
- package/dist/chunk-JDUPYPYB.js +0 -676
- package/dist/chunk-KMRXPNQA.js +0 -297
- package/dist/chunk-LIX4S3ZM.js +0 -61
- package/dist/chunk-N4CHIGLO.js +0 -51
- package/dist/chunk-N7KICNZD.js +0 -142
- package/dist/chunk-NT3NJVPZ.js +0 -169
- package/dist/chunk-NXWEQTHL.js +0 -1628
- package/dist/chunk-NXWEQTHL.js.map +0 -1
- package/dist/chunk-PFGRHBQY.js +0 -122
- package/dist/chunk-PGRDGQ23.js +0 -150
- package/dist/chunk-QY4GBBOV.js +0 -249
- package/dist/chunk-SHLA4JF7.js +0 -391
- package/dist/chunk-SP6BZLM4.js +0 -494
- package/dist/chunk-SQCALAI7.js +0 -4229
- package/dist/chunk-SQCALAI7.js.map +0 -1
- package/dist/chunk-SSJR3FZ5.js +0 -19
- package/dist/chunk-ST2777KW.js +0 -156
- package/dist/chunk-TESOYFMQ.js +0 -319
- package/dist/chunk-TGQAEHLA.js +0 -170
- package/dist/chunk-UC5HG2UF.js +0 -275
- package/dist/chunk-UQWBJNQY.js +0 -592
- package/dist/chunk-UX45LDRM.js +0 -63
- package/dist/chunk-VAHDJ5CK.js +0 -344
- package/dist/chunk-VM4IQ75N.js +0 -163
- package/dist/chunk-VOAWBGRQ.js +0 -8954
- package/dist/chunk-VRP677NO.js +0 -455
- package/dist/chunk-WAEWKD75.js +0 -479
- package/dist/chunk-X64DJIZG.js +0 -349
- package/dist/chunk-XYBSTW3P.js +0 -203
- package/dist/chunk-YLDZFO3A.js +0 -67
- package/dist/chunk-YLDZFO3A.js.map +0 -1
- package/dist/chunk-YZYDB77W.js +0 -3868
- package/dist/chunk-ZNH45NXP.js +0 -91
- package/dist/claim-CIUU5QEZ.js +0 -198
- package/dist/companies-VV5XD3BP.js +0 -196
- package/dist/company-EZH6ZPXD.js +0 -306
- package/dist/complete-NKYCSYKX.js +0 -82
- package/dist/connect-TFH4AFFO.js +0 -43
- package/dist/conversation-S6CKSNYW.js +0 -94
- package/dist/conversion-report-V3TGPELD.js +0 -125
- package/dist/conversion-upload-command-K2SB6O6K.js +0 -439
- package/dist/conversion-writes-B2QOYL56.js +0 -120
- package/dist/conversions-ILF5HJOO.js +0 -76
- package/dist/conversions-KXYOUSBR.js +0 -138
- package/dist/copy-writes-2XW7VCDE.js +0 -168
- package/dist/create-BZWX5KLI.js +0 -60
- package/dist/create-WEIGJ4BF.js +0 -237
- package/dist/create-XKGV6TEW.js +0 -133
- package/dist/create-Y44CPUE4.js +0 -208
- package/dist/creatives-DPS46JXU.js +0 -89
- package/dist/creatives-P5MX2AZL.js +0 -58
- package/dist/creatives-WFDFLRQV.js +0 -221
- package/dist/credentials-5EOUA5VL.js +0 -288
- package/dist/critique-4ETQZBQG.js +0 -1459
- package/dist/critique-OYUMBZ4Y.js +0 -230
- package/dist/crm-6UU3GFQU.js +0 -225
- package/dist/crm-UGP57XSN.js +0 -321
- package/dist/currency-UVQIYZUP.js +0 -88
- package/dist/custom-conversions-E5RMKIPB.js +0 -128
- package/dist/customers-RT75T4ZB.js +0 -57
- package/dist/delete-37IIUYQU.js +0 -67
- package/dist/delete-E575BF73.js +0 -55
- package/dist/delete-GQYFBLMP.js +0 -65
- package/dist/demographics-3LIUI2SM.js +0 -139
- package/dist/discard-7OARQRS7.js +0 -67
- package/dist/discover-2TPMVIW7.js +0 -172
- package/dist/domain-ZRWUGUOO.js +0 -99
- package/dist/draft-5XV2BJ3N.js +0 -281
- package/dist/draft-A2I4RLMW.js +0 -308
- package/dist/draft-CVSGNA4Z.js +0 -308
- package/dist/draft-SNBK2KY6.js +0 -218
- package/dist/draft-UHNTXGY7.js +0 -333
- package/dist/experiments-IGMLMSLX.js +0 -234
- package/dist/facets-AURXB76V.js +0 -115
- package/dist/feedback-UDTPDCMS.js +0 -109
- package/dist/feedback-record-Z34XJF6K.js +0 -263
- package/dist/fetch-GR3FXFXL.js +0 -177
- package/dist/fit-SLEEJWVR.js +0 -63
- package/dist/flows-NAFSRRY2.js +0 -248
- package/dist/fonts-POBAXXBC.js +0 -37
- package/dist/forecast-CLQKEFI6.js +0 -169
- package/dist/forecast-RN6VUKLS.js +0 -119
- package/dist/funnel-O3XOHYI3.js +0 -395
- package/dist/get-2MC5LYXY.js +0 -80
- package/dist/get-UQ43T25B.js +0 -57
- package/dist/google-ZZCSZR63.js +0 -3267
- package/dist/google-ads-7DJ5STPS.js +0 -196
- package/dist/history-IXV4ZR6F.js +0 -67
- package/dist/history-QRM76S4Q.js +0 -134
- package/dist/hubspot-HVZNR2IR.js +0 -780
- package/dist/ideas-S2UXZSFB.js +0 -43
- package/dist/images-FYSBKRU6.js +0 -92
- package/dist/ingest-37F3NOLA.js +0 -24
- package/dist/ingest-YQINQGG7.js +0 -108
- package/dist/insights-7V3HWXS6.js +0 -437
- package/dist/insights-UKWLUS5P.js +0 -130
- package/dist/inspect-RVU5RDCE.js +0 -190
- package/dist/instant-experiences-47IACDUJ.js +0 -258
- package/dist/intent-57BBLPLP.js +0 -95
- package/dist/keyword-gap-TSIQBZ6G.js +0 -130
- package/dist/keyword-metrics-7XZXPSQO.js +0 -198
- package/dist/keywords-for-site-A43QNTLD.js +0 -129
- package/dist/landing-NFDGD3PQ.js +0 -28
- package/dist/languages-WKOFWZ7S.js +0 -40
- package/dist/leads-OYRLKTS6.js +0 -538
- package/dist/leads-UHJS7VNH.js +0 -113
- package/dist/learn-POJ5ORBK.js +0 -205
- package/dist/line-item-writes-K4BSUEIJ.js +0 -209
- package/dist/line-items-DLLEPPIN.js +0 -103
- package/dist/line-items-DLLEPPIN.js.map +0 -1
- package/dist/link-L2KC5EIZ.js +0 -65
- package/dist/linkedin-A4U6IGZX.js +0 -1314
- package/dist/linkedin-person-DSLAOKKN.js +0 -137
- package/dist/list-JKB33W6K.js +0 -304
- package/dist/list-PHWCEYCP.js +0 -65
- package/dist/list-Y4V276ND.js +0 -152
- package/dist/locations-EQKMPX4G.js +0 -40
- package/dist/locations-MID4EY6D.js +0 -67
- package/dist/log-O3I5JZCM.js +0 -93
- package/dist/make-GLGNEOK6.js +0 -1368
- package/dist/map-D3EH7S2T.js +0 -434
- package/dist/mcp-R4ZTYQW7.js +0 -715
- package/dist/media-2AKV75J4.js +0 -18
- package/dist/media-sources-TVGS34TE.js +0 -35
- package/dist/members-OBA4MXAQ.js +0 -45
- package/dist/meta-CUWDMZQH.js +0 -122
- package/dist/metrics-35OGYZNY.js +0 -152
- package/dist/normalize-HU37AR7G.js +0 -142
- package/dist/options-HLMTCEDW.js +0 -123
- package/dist/organization-6ZVXU5JC.js +0 -947
- package/dist/page-photos-BY7HNDX2.js +0 -116
- package/dist/performance-PIB2AXKO.js +0 -25
- package/dist/performance-V5WZCJYT.js +0 -5445
- package/dist/pixels-WHQLX4FV.js +0 -60
- package/dist/posts-QAMZRCRY.js +0 -34
- package/dist/preview-SIKDCR27.js +0 -216
- package/dist/promoted-tweet-writes-E4EJZM76.js +0 -181
- package/dist/promoted-tweets-M44AIHSQ.js +0 -119
- package/dist/publish-H7UGB5IP.js +0 -342
- package/dist/query-ZH5CWI3X.js +0 -62
- package/dist/reddit-KCPU4RW4.js +0 -27
- package/dist/refresh-WTSCSEQE.js +0 -95
- package/dist/release-SVOT7QVX.js +0 -61
- package/dist/relevant-pages-7KEKKRQ2.js +0 -99
- package/dist/remove-TY3AF5K5.js +0 -51
- package/dist/reopen-WCUZMTYE.js +0 -64
- package/dist/rerun-FKYNFNSI.js +0 -93
- package/dist/research-N2RWKIRQ.js +0 -72
- package/dist/research-X6ITCPFY.js +0 -263
- package/dist/reset-O77UZD6Z.js +0 -55
- package/dist/reset-TDAMB4BO.js +0 -55
- package/dist/resolve-NC4MLM42.js +0 -122
- package/dist/retry-QNXWTHOL.js +0 -63
- package/dist/retry-XVUWY7ZH.js +0 -61
- package/dist/revenue-D3B4DMBC.js +0 -89
- package/dist/rule-writes-BVHLNJLE.js +0 -523
- package/dist/rules-R47FOFVB.js +0 -217
- package/dist/rules-Y3BH7SO5.js +0 -97
- package/dist/rules-add-GSPFBNYU.js +0 -463
- package/dist/run-G6XAJOJ7.js +0 -67
- package/dist/run-ON72O5YS.js +0 -68
- package/dist/scaffold-ad-YF6FUEJZ.js +0 -1514
- package/dist/scaffold-static-ad-KZRXH4WS.js +0 -1013
- package/dist/scaffold-video-BUOCGJNH.js +0 -886
- package/dist/schedule-7EQLO22N.js +0 -62
- package/dist/scheduled-agents-4WCPCMYC.js +0 -50
- package/dist/schema-KM5MFQUQ.js +0 -133
- package/dist/search-YEYQDDLA.js +0 -175
- package/dist/select-QSGZYOFV.js +0 -104
- package/dist/set-prompt-4OTBGPDQ.js +0 -196
- package/dist/setup-links-E2GARNTU.js +0 -142
- package/dist/shopify-GT6PJ77M.js +0 -3956
- package/dist/site-TMF2P7JR.js +0 -178
- package/dist/sources-47LE2UCO.js +0 -455
- package/dist/sources-H6XX2WBO.js +0 -30
- package/dist/stale-JTX5U752.js +0 -74
- package/dist/status-3X3MECDY.js +0 -63
- package/dist/studies-ZYGAQVMK.js +0 -250
- package/dist/study-writes-APXFR4OK.js +0 -468
- package/dist/sync-HWTVXGOT.js +0 -55
- package/dist/sync-definition-CAPYMYIS.js +0 -67
- package/dist/tag-manager-TU3FBSYO.js +0 -43
- package/dist/tags-75QCVBQB.js +0 -26
- package/dist/tags-7BT63PUE.js +0 -21
- package/dist/tags-7K5RSCHI.js +0 -21
- package/dist/tags-IELH7YAY.js +0 -21
- package/dist/tags-UPA4KKQZ.js +0 -225
- package/dist/targeting-EMKTVFJ2.js +0 -760
- package/dist/targeting-constants-QGZOSY4Q.js +0 -118
- package/dist/targeting-criteria-HJQ2FW6E.js +0 -113
- package/dist/targets-CBZ37ALP.js +0 -104
- package/dist/testimonials-4W6HI2PQ.js +0 -32
- package/dist/themes-RDNVUJHG.js +0 -95
- package/dist/top-companies-CW77UVK3.js +0 -109
- package/dist/transcript-FA2TOVPP.js +0 -163
- package/dist/translate-7W7O6W3J.js +0 -607
- package/dist/triggers-MCP6IGTX.js +0 -142
- package/dist/unlink-RK5V4QO2.js +0 -68
- package/dist/unstage-5JTGVEB7.js +0 -86
- package/dist/update-5AAMF5JP.js +0 -153
- package/dist/update-G2KB3RIW.js +0 -64
- package/dist/update-LCE2QN53.js +0 -99
- package/dist/update-M6DFI2XC.js +0 -190
- package/dist/upload-ORFEAADP.js +0 -127
- package/dist/url-options-6U7QCTAY.js +0 -130
- package/dist/url-params-KQIUVVGX.js +0 -99
- package/dist/validate-BF656HWM.js +0 -120
- package/dist/videos-66FB7BPY.js +0 -39
- package/dist/videos-66FB7BPY.js.map +0 -1
- package/dist/viewer-check-THBLTL2G.js +0 -81
- package/dist/web-2EKHRXCS.js +0 -141
- package/dist/winning-ads-LW5SMMLB.js +0 -86
- package/dist/write-commands-2L7T43YO.js +0 -1183
- package/dist/write-commands-2L7T43YO.js.map +0 -1
- package/dist/write-commands-Z556OHHH.js +0 -1493
- package/dist/write-commands-Z556OHHH.js.map +0 -1
- package/dist/x-F5CSO2RN.js +0 -47
- /package/dist/{account-YSMZB5ZC.js.map → account-RSOGF4XW.js.map} +0 -0
- /package/dist/{account-PYK5VMQ4.js.map → account-WLQBAQMD.js.map} +0 -0
- /package/dist/{account-assets-LSXSW4RQ.js.map → account-assets-WZOYMT3C.js.map} +0 -0
- /package/dist/{account-level-6T2WAPF3.js.map → account-level-XEDTZVNJ.js.map} +0 -0
- /package/dist/{account-reads-2U5OGO72.js.map → account-reads-KJHPUVEV.js.map} +0 -0
- /package/dist/{account-users-XFNFGZB7.js.map → account-users-X7JTXBHS.js.map} +0 -0
- /package/dist/{account-writes-4MAKFM7L.js.map → account-writes-TU3WJRSI.js.map} +0 -0
- /package/dist/{accounts-ZYOQSFX5.js.map → accounts-CC5F7TBB.js.map} +0 -0
- /package/dist/{accounts-ZKY6KPU3.js.map → accounts-UFPI46P5.js.map} +0 -0
- /package/dist/{actions-PF62UVHS.js.map → actions-IG2D6NRC.js.map} +0 -0
- /package/dist/{activecampaign-Q7LLZSZ4.js.map → activecampaign-S76P2FMN.js.map} +0 -0
- /package/dist/{ad-group-writes-XZ7XSJ3C.js.map → ad-group-writes-HLBWN4E4.js.map} +0 -0
- /package/dist/{ad-groups-HI5YNTX3.js.map → ad-groups-33NZD6J3.js.map} +0 -0
- /package/dist/{ad-writes-E2C4BKWT.js.map → ad-writes-7ZDNDZ2E.js.map} +0 -0
- /package/dist/{add-3GL76LTP.js.map → add-GZV57GNI.js.map} +0 -0
- /package/dist/{add-GDEQN43J.js.map → add-V4UNAGVT.js.map} +0 -0
- /package/dist/{ads-K2TIHZFC.js.map → ads-IC52FMFA.js.map} +0 -0
- /package/dist/{ads-CE3WX7VO.js.map → ads-MAPZYX6F.js.map} +0 -0
- /package/dist/{ads-VXF5STHG.js.map → ads-X3AM6M7L.js.map} +0 -0
- /package/dist/{adsets-MTB4LNE3.js.map → adsets-7N4UFAVA.js.map} +0 -0
- /package/dist/{advertisers-B5L4LZW2.js.map → advertisers-B2YDPIMV.js.map} +0 -0
- /package/dist/{analytics-BBX6CU3S.js.map → analytics-4CCQYY7Z.js.map} +0 -0
- /package/dist/{analytics-WLV24XJE.js.map → analytics-XW4ZEEAR.js.map} +0 -0
- /package/dist/{asset-writes-6QPHEAKF.js.map → asset-writes-QPJDD767.js.map} +0 -0
- /package/dist/{assign-BSV765I3.js.map → assign-HE3MH7WE.js.map} +0 -0
- /package/dist/{audience-size-KJGSHN45.js.map → audience-size-W33DMJ7E.js.map} +0 -0
- /package/dist/{audience-writes-3PSC7LRY.js.map → audience-writes-KO7L5YLO.js.map} +0 -0
- /package/dist/{audiences-UZ2V66OY.js.map → audiences-H5WVE2ZA.js.map} +0 -0
- /package/dist/{audiences-SUW2NSXG.js.map → audiences-WCDWN64L.js.map} +0 -0
- /package/dist/{audit-RKDWAPMX.js.map → audit-EFDIMRYT.js.map} +0 -0
- /package/dist/{autocomplete-BNQXAPDX.js.map → autocomplete-H4BKQNXF.js.map} +0 -0
- /package/dist/{avatars-TEZP5DQN.js.map → avatars-VYXUQSSE.js.map} +0 -0
- /package/dist/{bid-pricing-ARPPR45O.js.map → bid-pricing-QK4IJUD2.js.map} +0 -0
- /package/dist/{brand-JJDZKJSM.js.map → brand-JB6NXAAL.js.map} +0 -0
- /package/dist/{brief-FSVESR44.js.map → brief-G5WEJ52V.js.map} +0 -0
- /package/dist/{campaign-groups-DRUQ5WBQ.js.map → campaign-groups-X2WAZE64.js.map} +0 -0
- /package/dist/{campaign-writes-SDQ7IPHU.js.map → campaign-writes-LM6W5MIF.js.map} +0 -0
- /package/dist/{campaigns-FM2V3RIE.js.map → campaigns-7PHPOERA.js.map} +0 -0
- /package/dist/{campaigns-XFNPYDO6.js.map → campaigns-LS65QM6W.js.map} +0 -0
- /package/dist/{campaigns-XSAJ3XSB.js.map → campaigns-PCD72XQX.js.map} +0 -0
- /package/dist/{canvas-WEU5LFUO.js.map → canvas-YULE6CFP.js.map} +0 -0
- /package/dist/{capabilities-HMT6ZBPH.js.map → capabilities-QREOIRIH.js.map} +0 -0
- /package/dist/{catalogs-AIRFPJAJ.js.map → catalogs-OIQS5NSC.js.map} +0 -0
- /package/dist/{catalogs-WR3D6VEY.js.map → catalogs-T23RKYFC.js.map} +0 -0
- /package/dist/{changes-ONEEMEMT.js.map → changes-36C754R4.js.map} +0 -0
- /package/dist/{chatgpt-23X76OFD.js.map → chatgpt-SVGWMEQD.js.map} +0 -0
- /package/dist/{chats-77MJ5SIT.js.map → chats-FF4PN5JC.js.map} +0 -0
- /package/dist/{check-TA3HM2QA.js.map → check-5UHPABWJ.js.map} +0 -0
- /package/dist/{chunk-3LFPQSSC.js.map → chunk-277FW25B.js.map} +0 -0
- /package/dist/{chunk-XYBSTW3P.js.map → chunk-36MUCC42.js.map} +0 -0
- /package/dist/{chunk-ANLLW3KZ.js.map → chunk-4GAEB6NK.js.map} +0 -0
- /package/dist/{chunk-5YQATOWK.js.map → chunk-5DJ5RNAO.js.map} +0 -0
- /package/dist/{chunk-BBBWMD5R.js.map → chunk-5XTGG4PV.js.map} +0 -0
- /package/dist/{chunk-VAHDJ5CK.js.map → chunk-7LLKJN2O.js.map} +0 -0
- /package/dist/{chunk-6IE7RGIC.js.map → chunk-AHUA76NQ.js.map} +0 -0
- /package/dist/{chunk-LIX4S3ZM.js.map → chunk-BHXFGLY5.js.map} +0 -0
- /package/dist/{chunk-3HFGJFRM.js.map → chunk-BOE6YB2D.js.map} +0 -0
- /package/dist/{chunk-X64DJIZG.js.map → chunk-BPRS7VQ3.js.map} +0 -0
- /package/dist/{chunk-JCRGGVV5.js.map → chunk-BRA6IXRS.js.map} +0 -0
- /package/dist/{chunk-YZYDB77W.js.map → chunk-BW36QQQU.js.map} +0 -0
- /package/dist/{chunk-SHLA4JF7.js.map → chunk-CCEDZTP7.js.map} +0 -0
- /package/dist/{chunk-I46D7YXI.js.map → chunk-CLUJWAQE.js.map} +0 -0
- /package/dist/{chunk-QY4GBBOV.js.map → chunk-D2JFOD5O.js.map} +0 -0
- /package/dist/{chunk-2572627P.js.map → chunk-D735YLAX.js.map} +0 -0
- /package/dist/{chunk-6QBSUYQZ.js.map → chunk-DM6CEVCN.js.map} +0 -0
- /package/dist/{chunk-NT3NJVPZ.js.map → chunk-DTUGU4EI.js.map} +0 -0
- /package/dist/{chunk-457XEP63.js.map → chunk-DZGXFV6A.js.map} +0 -0
- /package/dist/{chunk-42YFMKEU.js.map → chunk-F4RZHA74.js.map} +0 -0
- /package/dist/{chunk-UX45LDRM.js.map → chunk-FFFJBNHA.js.map} +0 -0
- /package/dist/{chunk-VM4IQ75N.js.map → chunk-FM6RRYJB.js.map} +0 -0
- /package/dist/{chunk-UQWBJNQY.js.map → chunk-GDXJVEVG.js.map} +0 -0
- /package/dist/{chunk-WAEWKD75.js.map → chunk-GJCB46L6.js.map} +0 -0
- /package/dist/{chunk-KMRXPNQA.js.map → chunk-GNDSD5VQ.js.map} +0 -0
- /package/dist/{chunk-AIOICB5Q.js.map → chunk-HD23TJIT.js.map} +0 -0
- /package/dist/{chunk-GTNNH3AI.js.map → chunk-IYMGQATT.js.map} +0 -0
- /package/dist/{chunk-JDUPYPYB.js.map → chunk-JOXNUKI7.js.map} +0 -0
- /package/dist/{chunk-VRP677NO.js.map → chunk-JYG7N6TV.js.map} +0 -0
- /package/dist/{chunk-ZNH45NXP.js.map → chunk-K5ZOZ2IY.js.map} +0 -0
- /package/dist/{chunk-SP6BZLM4.js.map → chunk-KTCWU4A4.js.map} +0 -0
- /package/dist/{chunk-GNKICND2.js.map → chunk-KYSTZP7J.js.map} +0 -0
- /package/dist/{chunk-C4I5NCMG.js.map → chunk-LE7VW2IU.js.map} +0 -0
- /package/dist/{chunk-AZH6H4TV.js.map → chunk-MGYC2IRC.js.map} +0 -0
- /package/dist/{chunk-UC5HG2UF.js.map → chunk-NALPM5QO.js.map} +0 -0
- /package/dist/{chunk-TGQAEHLA.js.map → chunk-PISGCYXU.js.map} +0 -0
- /package/dist/{chunk-34Z4YPXD.js.map → chunk-PLBITHV6.js.map} +0 -0
- /package/dist/{chunk-VOAWBGRQ.js.map → chunk-RJY5S7RU.js.map} +0 -0
- /package/dist/{chunk-SSJR3FZ5.js.map → chunk-ROVV7INH.js.map} +0 -0
- /package/dist/{chunk-HNS5OURO.js.map → chunk-RRJK46PC.js.map} +0 -0
- /package/dist/{chunk-6R2BU3FJ.js.map → chunk-S335LT4B.js.map} +0 -0
- /package/dist/{chunk-HITRGZIS.js.map → chunk-S3FFLLYF.js.map} +0 -0
- /package/dist/{chunk-N4CHIGLO.js.map → chunk-SBFP3REK.js.map} +0 -0
- /package/dist/{chunk-PFGRHBQY.js.map → chunk-SG2BCYWB.js.map} +0 -0
- /package/dist/{chunk-FR6RFLFP.js.map → chunk-T3KW63H7.js.map} +0 -0
- /package/dist/{chunk-5YFQPJVS.js.map → chunk-UQ7SJMGJ.js.map} +0 -0
- /package/dist/{chunk-I2C4IUDP.js.map → chunk-WVTKUCAO.js.map} +0 -0
- /package/dist/{chunk-N7KICNZD.js.map → chunk-X45ASFZW.js.map} +0 -0
- /package/dist/{chunk-HH7B2L3Z.js.map → chunk-YLQWWLCW.js.map} +0 -0
- /package/dist/{chunk-5KDFRTMY.js.map → chunk-ZAM6PVHX.js.map} +0 -0
- /package/dist/{chunk-ST2777KW.js.map → chunk-ZGWXGK5S.js.map} +0 -0
- /package/dist/{chunk-PGRDGQ23.js.map → chunk-ZNRGH4NS.js.map} +0 -0
- /package/dist/{chunk-TESOYFMQ.js.map → chunk-ZQXHOHSC.js.map} +0 -0
- /package/dist/{claim-CIUU5QEZ.js.map → claim-JMF4O2SQ.js.map} +0 -0
- /package/dist/{companies-VV5XD3BP.js.map → companies-2DHNNS34.js.map} +0 -0
- /package/dist/{company-EZH6ZPXD.js.map → company-UVLP5WE7.js.map} +0 -0
- /package/dist/{complete-NKYCSYKX.js.map → complete-MVR6QHON.js.map} +0 -0
- /package/dist/{connect-TFH4AFFO.js.map → connect-WTDJKDTR.js.map} +0 -0
- /package/dist/{conversation-S6CKSNYW.js.map → conversation-O3XOVYC3.js.map} +0 -0
- /package/dist/{conversion-report-V3TGPELD.js.map → conversion-report-DKXFHLLX.js.map} +0 -0
- /package/dist/{conversion-upload-command-K2SB6O6K.js.map → conversion-upload-command-MHZSSJXN.js.map} +0 -0
- /package/dist/{conversion-writes-B2QOYL56.js.map → conversion-writes-7ODJDAUP.js.map} +0 -0
- /package/dist/{conversions-ILF5HJOO.js.map → conversions-BKVGNNC6.js.map} +0 -0
- /package/dist/{conversions-KXYOUSBR.js.map → conversions-HUQJ767W.js.map} +0 -0
- /package/dist/{copy-writes-2XW7VCDE.js.map → copy-writes-JH2AECES.js.map} +0 -0
- /package/dist/{create-WEIGJ4BF.js.map → create-EXLN4XHF.js.map} +0 -0
- /package/dist/{create-Y44CPUE4.js.map → create-TCT3IMAU.js.map} +0 -0
- /package/dist/{create-BZWX5KLI.js.map → create-YE3VLUUP.js.map} +0 -0
- /package/dist/{create-XKGV6TEW.js.map → create-YGAMPG2C.js.map} +0 -0
- /package/dist/{creatives-WFDFLRQV.js.map → creatives-IXR4RTSF.js.map} +0 -0
- /package/dist/{creatives-DPS46JXU.js.map → creatives-L7F4BF3F.js.map} +0 -0
- /package/dist/{creatives-P5MX2AZL.js.map → creatives-WUUHFCFY.js.map} +0 -0
- /package/dist/{credentials-5EOUA5VL.js.map → credentials-UY6OPN7W.js.map} +0 -0
- /package/dist/{critique-4ETQZBQG.js.map → critique-DU7K2KVR.js.map} +0 -0
- /package/dist/{critique-OYUMBZ4Y.js.map → critique-ZYLCH5SO.js.map} +0 -0
- /package/dist/{crm-6UU3GFQU.js.map → crm-F64BDO4X.js.map} +0 -0
- /package/dist/{crm-UGP57XSN.js.map → crm-K2QSZ2X7.js.map} +0 -0
- /package/dist/{currency-UVQIYZUP.js.map → currency-R4ORE2U3.js.map} +0 -0
- /package/dist/{custom-conversions-E5RMKIPB.js.map → custom-conversions-6KYF26SK.js.map} +0 -0
- /package/dist/{customers-RT75T4ZB.js.map → customers-TJDVAPTR.js.map} +0 -0
- /package/dist/{delete-37IIUYQU.js.map → delete-4XHBC4UR.js.map} +0 -0
- /package/dist/{delete-E575BF73.js.map → delete-A4R2R7HF.js.map} +0 -0
- /package/dist/{delete-GQYFBLMP.js.map → delete-SUHPUAE5.js.map} +0 -0
- /package/dist/{demographics-3LIUI2SM.js.map → demographics-MZBHPCT3.js.map} +0 -0
- /package/dist/{discard-7OARQRS7.js.map → discard-HUP4DXIJ.js.map} +0 -0
- /package/dist/{discover-2TPMVIW7.js.map → discover-GSJRZUOC.js.map} +0 -0
- /package/dist/{domain-ZRWUGUOO.js.map → domain-WFT5NJNP.js.map} +0 -0
- /package/dist/{draft-UHNTXGY7.js.map → draft-6HTSF36L.js.map} +0 -0
- /package/dist/{draft-SNBK2KY6.js.map → draft-6XS36CMT.js.map} +0 -0
- /package/dist/{draft-5XV2BJ3N.js.map → draft-LPVK6YHI.js.map} +0 -0
- /package/dist/{draft-CVSGNA4Z.js.map → draft-RTZBROFS.js.map} +0 -0
- /package/dist/{draft-A2I4RLMW.js.map → draft-SNKUG6UX.js.map} +0 -0
- /package/dist/{experiments-IGMLMSLX.js.map → experiments-PJWBABLJ.js.map} +0 -0
- /package/dist/{facets-AURXB76V.js.map → facets-SWSXRJ5G.js.map} +0 -0
- /package/dist/{feedback-UDTPDCMS.js.map → feedback-HL3RH5AO.js.map} +0 -0
- /package/dist/{feedback-record-Z34XJF6K.js.map → feedback-record-YDI2MHAV.js.map} +0 -0
- /package/dist/{fetch-GR3FXFXL.js.map → fetch-ASLXGN7O.js.map} +0 -0
- /package/dist/{fit-SLEEJWVR.js.map → fit-I3FZJKOK.js.map} +0 -0
- /package/dist/{flows-NAFSRRY2.js.map → flows-BP7IQ4YA.js.map} +0 -0
- /package/dist/{fonts-POBAXXBC.js.map → fonts-U23DJIT2.js.map} +0 -0
- /package/dist/{forecast-RN6VUKLS.js.map → forecast-DUAOZEMB.js.map} +0 -0
- /package/dist/{forecast-CLQKEFI6.js.map → forecast-LXTCKRZE.js.map} +0 -0
- /package/dist/{funnel-O3XOHYI3.js.map → funnel-727XATM5.js.map} +0 -0
- /package/dist/{get-UQ43T25B.js.map → get-4567QZ5E.js.map} +0 -0
- /package/dist/{get-2MC5LYXY.js.map → get-PB62YT3J.js.map} +0 -0
- /package/dist/{google-ZZCSZR63.js.map → google-VPL4KZDP.js.map} +0 -0
- /package/dist/{google-ads-7DJ5STPS.js.map → google-ads-XM4NUOST.js.map} +0 -0
- /package/dist/{history-QRM76S4Q.js.map → history-26OX4MCJ.js.map} +0 -0
- /package/dist/{history-IXV4ZR6F.js.map → history-5MRLNTCI.js.map} +0 -0
- /package/dist/{hubspot-HVZNR2IR.js.map → hubspot-S3ED4AYK.js.map} +0 -0
- /package/dist/{ideas-S2UXZSFB.js.map → ideas-KNIT3KNY.js.map} +0 -0
- /package/dist/{images-FYSBKRU6.js.map → images-SCC3QYPG.js.map} +0 -0
- /package/dist/{ingest-37F3NOLA.js.map → ingest-667IMIGB.js.map} +0 -0
- /package/dist/{ingest-YQINQGG7.js.map → ingest-PXCOSPP5.js.map} +0 -0
- /package/dist/{insights-7V3HWXS6.js.map → insights-EQW34IL4.js.map} +0 -0
- /package/dist/{insights-UKWLUS5P.js.map → insights-JZVXC7IJ.js.map} +0 -0
- /package/dist/{inspect-RVU5RDCE.js.map → inspect-PSWSCTLJ.js.map} +0 -0
- /package/dist/{instant-experiences-47IACDUJ.js.map → instant-experiences-ABIS6KUQ.js.map} +0 -0
- /package/dist/{intent-57BBLPLP.js.map → intent-NSHW7EJT.js.map} +0 -0
- /package/dist/{keyword-gap-TSIQBZ6G.js.map → keyword-gap-ITTWKBWZ.js.map} +0 -0
- /package/dist/{keyword-metrics-7XZXPSQO.js.map → keyword-metrics-HQSNLJM3.js.map} +0 -0
- /package/dist/{keywords-for-site-A43QNTLD.js.map → keywords-for-site-FX6KCUNV.js.map} +0 -0
- /package/dist/{landing-NFDGD3PQ.js.map → landing-X4PG6XWU.js.map} +0 -0
- /package/dist/{languages-WKOFWZ7S.js.map → languages-MEFQQBJ2.js.map} +0 -0
- /package/dist/{leads-UHJS7VNH.js.map → leads-ONFUUBAZ.js.map} +0 -0
- /package/dist/{leads-OYRLKTS6.js.map → leads-WKGUT3EA.js.map} +0 -0
- /package/dist/{learn-POJ5ORBK.js.map → learn-2QPP7NHC.js.map} +0 -0
- /package/dist/{line-item-writes-K4BSUEIJ.js.map → line-item-writes-2XGDEEV3.js.map} +0 -0
- /package/dist/{link-L2KC5EIZ.js.map → link-QL7Y2LML.js.map} +0 -0
- /package/dist/{linkedin-A4U6IGZX.js.map → linkedin-4MGRSWXZ.js.map} +0 -0
- /package/dist/{linkedin-person-DSLAOKKN.js.map → linkedin-person-E4JJG4J5.js.map} +0 -0
- /package/dist/{list-Y4V276ND.js.map → list-4SAXAQCN.js.map} +0 -0
- /package/dist/{list-PHWCEYCP.js.map → list-GF3LEAM7.js.map} +0 -0
- /package/dist/{list-JKB33W6K.js.map → list-KLDAPWIB.js.map} +0 -0
- /package/dist/{locations-EQKMPX4G.js.map → locations-RLWAS6AC.js.map} +0 -0
- /package/dist/{locations-MID4EY6D.js.map → locations-UKBOT6SB.js.map} +0 -0
- /package/dist/{log-O3I5JZCM.js.map → log-4LLRZB2M.js.map} +0 -0
- /package/dist/{make-GLGNEOK6.js.map → make-ZMFGPL7A.js.map} +0 -0
- /package/dist/{map-D3EH7S2T.js.map → map-NKRFK545.js.map} +0 -0
- /package/dist/{mcp-R4ZTYQW7.js.map → mcp-VARLEIKU.js.map} +0 -0
- /package/dist/{media-2AKV75J4.js.map → media-LE2PO4Q4.js.map} +0 -0
- /package/dist/{media-sources-TVGS34TE.js.map → media-sources-4Y53RHUW.js.map} +0 -0
- /package/dist/{members-OBA4MXAQ.js.map → members-HSPPVHU2.js.map} +0 -0
- /package/dist/{meta-CUWDMZQH.js.map → meta-KS3SQSYZ.js.map} +0 -0
- /package/dist/{metrics-35OGYZNY.js.map → metrics-K6FDCMK7.js.map} +0 -0
- /package/dist/{normalize-HU37AR7G.js.map → normalize-LDIXBNSA.js.map} +0 -0
- /package/dist/{options-HLMTCEDW.js.map → options-2GEONNJF.js.map} +0 -0
- /package/dist/{organization-6ZVXU5JC.js.map → organization-W5JLJ4KP.js.map} +0 -0
- /package/dist/{page-photos-BY7HNDX2.js.map → page-photos-TOM74T5U.js.map} +0 -0
- /package/dist/{performance-PIB2AXKO.js.map → performance-34LV3QGQ.js.map} +0 -0
- /package/dist/{performance-V5WZCJYT.js.map → performance-CIUVIFD7.js.map} +0 -0
- /package/dist/{pixels-WHQLX4FV.js.map → pixels-Z7ZGXAGB.js.map} +0 -0
- /package/dist/{posts-QAMZRCRY.js.map → posts-37LZKGWU.js.map} +0 -0
- /package/dist/{preview-SIKDCR27.js.map → preview-CWRGDFCP.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-E4EJZM76.js.map → promoted-tweet-writes-7XGCGHPN.js.map} +0 -0
- /package/dist/{promoted-tweets-M44AIHSQ.js.map → promoted-tweets-EZZHHGS6.js.map} +0 -0
- /package/dist/{publish-H7UGB5IP.js.map → publish-OB7UZSKT.js.map} +0 -0
- /package/dist/{query-ZH5CWI3X.js.map → query-42QT56FJ.js.map} +0 -0
- /package/dist/{reddit-KCPU4RW4.js.map → reddit-PR2SBLQN.js.map} +0 -0
- /package/dist/{refresh-WTSCSEQE.js.map → refresh-EJ6XQNAQ.js.map} +0 -0
- /package/dist/{release-SVOT7QVX.js.map → release-FV6M3X4D.js.map} +0 -0
- /package/dist/{relevant-pages-7KEKKRQ2.js.map → relevant-pages-VOICMQ7U.js.map} +0 -0
- /package/dist/{remove-TY3AF5K5.js.map → remove-6LK6L3KE.js.map} +0 -0
- /package/dist/{reopen-WCUZMTYE.js.map → reopen-2VHSGKNJ.js.map} +0 -0
- /package/dist/{rerun-FKYNFNSI.js.map → rerun-W6YHMXCK.js.map} +0 -0
- /package/dist/{research-X6ITCPFY.js.map → research-6NUBHVSB.js.map} +0 -0
- /package/dist/{research-N2RWKIRQ.js.map → research-BYDRBMN5.js.map} +0 -0
- /package/dist/{reset-TDAMB4BO.js.map → reset-MPGBOFJD.js.map} +0 -0
- /package/dist/{reset-O77UZD6Z.js.map → reset-YO66ZZRC.js.map} +0 -0
- /package/dist/{resolve-NC4MLM42.js.map → resolve-SGXOPZ4W.js.map} +0 -0
- /package/dist/{retry-QNXWTHOL.js.map → retry-LXMT4I2X.js.map} +0 -0
- /package/dist/{retry-XVUWY7ZH.js.map → retry-Z2ZUPUQI.js.map} +0 -0
- /package/dist/{revenue-D3B4DMBC.js.map → revenue-MZ2C65GL.js.map} +0 -0
- /package/dist/{rule-writes-BVHLNJLE.js.map → rule-writes-KLYXCD7Z.js.map} +0 -0
- /package/dist/{rules-Y3BH7SO5.js.map → rules-CDMHA2KQ.js.map} +0 -0
- /package/dist/{rules-R47FOFVB.js.map → rules-NALFFFDR.js.map} +0 -0
- /package/dist/{rules-add-GSPFBNYU.js.map → rules-add-HEXUMODD.js.map} +0 -0
- /package/dist/{run-G6XAJOJ7.js.map → run-VNL34BKW.js.map} +0 -0
- /package/dist/{run-ON72O5YS.js.map → run-WTD73KD5.js.map} +0 -0
- /package/dist/{scaffold-ad-YF6FUEJZ.js.map → scaffold-ad-S2DZSRM4.js.map} +0 -0
- /package/dist/{scaffold-static-ad-KZRXH4WS.js.map → scaffold-static-ad-DW6OMF3D.js.map} +0 -0
- /package/dist/{scaffold-video-BUOCGJNH.js.map → scaffold-video-EXLUICRE.js.map} +0 -0
- /package/dist/{schedule-7EQLO22N.js.map → schedule-7GAFQXF7.js.map} +0 -0
- /package/dist/{scheduled-agents-4WCPCMYC.js.map → scheduled-agents-7JW3JIOL.js.map} +0 -0
- /package/dist/{schema-KM5MFQUQ.js.map → schema-PHGVKZ4X.js.map} +0 -0
- /package/dist/{search-YEYQDDLA.js.map → search-VCRWREOU.js.map} +0 -0
- /package/dist/{select-QSGZYOFV.js.map → select-BPGZYHR3.js.map} +0 -0
- /package/dist/{set-prompt-4OTBGPDQ.js.map → set-prompt-E776UHMH.js.map} +0 -0
- /package/dist/{setup-links-E2GARNTU.js.map → setup-links-2AMTW6O5.js.map} +0 -0
- /package/dist/{shopify-GT6PJ77M.js.map → shopify-SUSDBUUZ.js.map} +0 -0
- /package/dist/{site-TMF2P7JR.js.map → site-DH6Z2RX3.js.map} +0 -0
- /package/dist/{sources-47LE2UCO.js.map → sources-PSM2A5QD.js.map} +0 -0
- /package/dist/{sources-H6XX2WBO.js.map → sources-ZJ7EZ6TJ.js.map} +0 -0
- /package/dist/{stale-JTX5U752.js.map → stale-RHW4OYXY.js.map} +0 -0
- /package/dist/{status-3X3MECDY.js.map → status-JHAVZIYW.js.map} +0 -0
- /package/dist/{studies-ZYGAQVMK.js.map → studies-2GPTKJCT.js.map} +0 -0
- /package/dist/{study-writes-APXFR4OK.js.map → study-writes-QCSAPE2G.js.map} +0 -0
- /package/dist/{sync-HWTVXGOT.js.map → sync-RQ3NUCGE.js.map} +0 -0
- /package/dist/{sync-definition-CAPYMYIS.js.map → sync-definition-3DRKTX3V.js.map} +0 -0
- /package/dist/{tag-manager-TU3FBSYO.js.map → tag-manager-BVPLGLTF.js.map} +0 -0
- /package/dist/{tags-IELH7YAY.js.map → tags-A2JZRMKV.js.map} +0 -0
- /package/dist/{tags-75QCVBQB.js.map → tags-H2PQWUNE.js.map} +0 -0
- /package/dist/{tags-7BT63PUE.js.map → tags-HOZYO6FL.js.map} +0 -0
- /package/dist/{tags-UPA4KKQZ.js.map → tags-WH7LGHNT.js.map} +0 -0
- /package/dist/{tags-7K5RSCHI.js.map → tags-WRUUTQCJ.js.map} +0 -0
- /package/dist/{targeting-EMKTVFJ2.js.map → targeting-SOMGPSKV.js.map} +0 -0
- /package/dist/{targeting-constants-QGZOSY4Q.js.map → targeting-constants-236ES5HE.js.map} +0 -0
- /package/dist/{targeting-criteria-HJQ2FW6E.js.map → targeting-criteria-APNZ7DN3.js.map} +0 -0
- /package/dist/{targets-CBZ37ALP.js.map → targets-LNZBOK2B.js.map} +0 -0
- /package/dist/{testimonials-4W6HI2PQ.js.map → testimonials-Y6RADYJ5.js.map} +0 -0
- /package/dist/{themes-RDNVUJHG.js.map → themes-7I6URZUW.js.map} +0 -0
- /package/dist/{top-companies-CW77UVK3.js.map → top-companies-HZQTHV2H.js.map} +0 -0
- /package/dist/{transcript-FA2TOVPP.js.map → transcript-SRHKH3JL.js.map} +0 -0
- /package/dist/{translate-7W7O6W3J.js.map → translate-C5R3OMTL.js.map} +0 -0
- /package/dist/{triggers-MCP6IGTX.js.map → triggers-QISDVK4W.js.map} +0 -0
- /package/dist/{unlink-RK5V4QO2.js.map → unlink-2TDYZUCT.js.map} +0 -0
- /package/dist/{unstage-5JTGVEB7.js.map → unstage-KRBN7SHW.js.map} +0 -0
- /package/dist/{update-G2KB3RIW.js.map → update-GE6XVCDF.js.map} +0 -0
- /package/dist/{update-5AAMF5JP.js.map → update-KG4XAUC7.js.map} +0 -0
- /package/dist/{update-M6DFI2XC.js.map → update-PAYTKLZ2.js.map} +0 -0
- /package/dist/{update-LCE2QN53.js.map → update-QSGTZHD4.js.map} +0 -0
- /package/dist/{upload-ORFEAADP.js.map → upload-5R5CCOE6.js.map} +0 -0
- /package/dist/{url-options-6U7QCTAY.js.map → url-options-LA6BL3GS.js.map} +0 -0
- /package/dist/{url-params-KQIUVVGX.js.map → url-params-L4WF3D2V.js.map} +0 -0
- /package/dist/{validate-BF656HWM.js.map → validate-6AHIXVW4.js.map} +0 -0
- /package/dist/{viewer-check-THBLTL2G.js.map → viewer-check-TEQVRF4O.js.map} +0 -0
- /package/dist/{web-2EKHRXCS.js.map → web-3G6UP3YV.js.map} +0 -0
- /package/dist/{winning-ads-LW5SMMLB.js.map → winning-ads-7SI2VN7U.js.map} +0 -0
- /package/dist/{x-F5CSO2RN.js.map → x-7VY6K7JS.js.map} +0 -0
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DATE_ORDERS,
|
|
3
|
+
customerListBatches,
|
|
4
|
+
customerListFromFile,
|
|
5
|
+
customerListUploadRefusal
|
|
6
|
+
} from "./chunk-CCEDZTP7.js";
|
|
7
|
+
import {
|
|
8
|
+
bareAccountId,
|
|
9
|
+
failWriteValidation,
|
|
10
|
+
repeatedListFlag,
|
|
11
|
+
requireTarget,
|
|
12
|
+
stageOp
|
|
13
|
+
} from "./chunk-S335LT4B.js";
|
|
14
|
+
import {
|
|
15
|
+
CUSTOMER_LIST_BATCH_ROWS,
|
|
16
|
+
CUSTOMER_LIST_MAX_BATCHES,
|
|
17
|
+
brandSafetyTargetingFields
|
|
18
|
+
} from "./chunk-VIPKDXGU.js";
|
|
19
|
+
import "./chunk-GDFJOCDO.js";
|
|
20
|
+
import {
|
|
21
|
+
csvOrJson,
|
|
22
|
+
handleMetaError,
|
|
23
|
+
resolveAccountIdArg
|
|
24
|
+
} from "./chunk-B2POVFR2.js";
|
|
25
|
+
import "./chunk-ERSX3MKH.js";
|
|
26
|
+
import "./chunk-KJZPCLQE.js";
|
|
27
|
+
import "./chunk-4NZ47VXO.js";
|
|
28
|
+
import "./chunk-D5FY4FAK.js";
|
|
29
|
+
import "./chunk-QPESDKZC.js";
|
|
30
|
+
import "./chunk-Y2JZX6JB.js";
|
|
31
|
+
import {
|
|
32
|
+
writeAdsOutput,
|
|
33
|
+
writeJsonEnvelope
|
|
34
|
+
} from "./chunk-ZRP7Y2DM.js";
|
|
35
|
+
import "./chunk-E44NXCTL.js";
|
|
36
|
+
import "./chunk-EJGAJHLB.js";
|
|
37
|
+
import "./chunk-LNNTHEL7.js";
|
|
38
|
+
import "./chunk-FOMFU2RX.js";
|
|
39
|
+
import "./chunk-PSGIHSNC.js";
|
|
40
|
+
import "./chunk-PONLPYD7.js";
|
|
41
|
+
import "./chunk-UI6BKYQD.js";
|
|
42
|
+
import {
|
|
43
|
+
apiGet,
|
|
44
|
+
apiPost
|
|
45
|
+
} from "./chunk-X7VQFLHI.js";
|
|
46
|
+
import "./chunk-LU4HI4KI.js";
|
|
47
|
+
import {
|
|
48
|
+
requireChatId
|
|
49
|
+
} from "./chunk-LGK7UWBN.js";
|
|
50
|
+
import {
|
|
51
|
+
registerSchema
|
|
52
|
+
} from "./chunk-Q7US4OOA.js";
|
|
53
|
+
import "./chunk-YQSBHWOI.js";
|
|
54
|
+
|
|
55
|
+
// src/commands/ads/meta/audience-writes.ts
|
|
56
|
+
import { readFileSync } from "fs";
|
|
57
|
+
import { defineCommand } from "citty";
|
|
58
|
+
var STAGED_NOTE = "Staged until publish \u2014 review with `baker ads meta draft`.";
|
|
59
|
+
var membersArgs = {
|
|
60
|
+
id: {
|
|
61
|
+
type: "positional",
|
|
62
|
+
description: "Customer-list audience id, or a meta_temp_* ref created in this chat",
|
|
63
|
+
required: true
|
|
64
|
+
},
|
|
65
|
+
"account-id": { type: "string", description: "Meta ad account ID (act_123)" },
|
|
66
|
+
file: {
|
|
67
|
+
type: "string",
|
|
68
|
+
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"
|
|
69
|
+
},
|
|
70
|
+
country: {
|
|
71
|
+
type: "string",
|
|
72
|
+
description: "Two-letter country for phones written without their country code (when the row has no country column)"
|
|
73
|
+
},
|
|
74
|
+
"value-column": {
|
|
75
|
+
type: "string",
|
|
76
|
+
description: "Value-based list only: the column with each person's value (e.g. revenue)"
|
|
77
|
+
},
|
|
78
|
+
columns: {
|
|
79
|
+
type: "string",
|
|
80
|
+
description: "For a file without a header row: what each column is, in order (email,phone,country \u2014 comma-separated or repeated)"
|
|
81
|
+
},
|
|
82
|
+
"date-format": {
|
|
83
|
+
type: "string",
|
|
84
|
+
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"
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
function schemaArgs(args) {
|
|
88
|
+
return Object.fromEntries(
|
|
89
|
+
Object.entries(args).map(([key, arg]) => [
|
|
90
|
+
key,
|
|
91
|
+
{ type: arg.type, description: arg.description, required: arg.required === true }
|
|
92
|
+
])
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
var ACTION_NOTES = {
|
|
96
|
+
add: "Adds the people in the file to the list; those already in it stay.",
|
|
97
|
+
remove: "Removes the people in the file from the list.",
|
|
98
|
+
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."
|
|
99
|
+
};
|
|
100
|
+
function dateFormatFlag(value) {
|
|
101
|
+
if (value === void 0) return void 0;
|
|
102
|
+
const upperValue = String(value).toUpperCase();
|
|
103
|
+
if (!DATE_ORDERS.includes(upperValue)) {
|
|
104
|
+
failWriteValidation(`--date-format takes ${DATE_ORDERS.join(" or ")}, not ${String(value)}`);
|
|
105
|
+
}
|
|
106
|
+
return upperValue;
|
|
107
|
+
}
|
|
108
|
+
function readList(args, rawArgs) {
|
|
109
|
+
const path = typeof args.file === "string" ? args.file : "";
|
|
110
|
+
if (!path) {
|
|
111
|
+
failWriteValidation("pass --file with the customer list (CSV in the workspace)");
|
|
112
|
+
}
|
|
113
|
+
let content;
|
|
114
|
+
try {
|
|
115
|
+
content = readFileSync(path, "utf8");
|
|
116
|
+
} catch (err) {
|
|
117
|
+
failWriteValidation(`could not read ${path}: ${err instanceof Error ? err.message : String(err)}`);
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
return customerListFromFile(content, {
|
|
121
|
+
defaultCountry: typeof args.country === "string" ? args.country : void 0,
|
|
122
|
+
valueColumn: typeof args["value-column"] === "string" ? args["value-column"] : void 0,
|
|
123
|
+
columns: repeatedListFlag(rawArgs, "columns", args.columns),
|
|
124
|
+
dateFormat: dateFormatFlag(args["date-format"])
|
|
125
|
+
});
|
|
126
|
+
} catch (err) {
|
|
127
|
+
failWriteValidation(err instanceof Error ? err.message : String(err));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function listHints(list) {
|
|
131
|
+
const hints = [`${list.rows.length.toLocaleString("en-US")} people read from the file, hashed before upload`];
|
|
132
|
+
const unreadable = Object.entries(list.unreadable).map(([key, count]) => `${count} ${key}`);
|
|
133
|
+
if (unreadable.length > 0) {
|
|
134
|
+
hints.push(`values that could not be read and were left out: ${unreadable.join(", ")}`);
|
|
135
|
+
}
|
|
136
|
+
if (list.skippedRows > 0) {
|
|
137
|
+
hints.push(
|
|
138
|
+
`${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`
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
if (list.ignoredColumns.length > 0) {
|
|
142
|
+
hints.push(`columns not sent (Meta does not match on them): ${list.ignoredColumns.join(", ")}`);
|
|
143
|
+
}
|
|
144
|
+
if (list.rows.length < 100) {
|
|
145
|
+
hints.push("Meta needs about 100 matched people before a list can be used for ads or as a lookalike seed");
|
|
146
|
+
}
|
|
147
|
+
return hints;
|
|
148
|
+
}
|
|
149
|
+
async function stageMembers(action, args, rawArgs) {
|
|
150
|
+
const accountId = bareAccountId(args);
|
|
151
|
+
const audienceId = requireTarget(args, "audience");
|
|
152
|
+
const list = readList(args, rawArgs);
|
|
153
|
+
if (list.rows.length === 0) {
|
|
154
|
+
failWriteValidation("no one in this file can be matched \u2014 check the columns (email, phone, \u2026) and their values");
|
|
155
|
+
}
|
|
156
|
+
const batches = customerListBatches(list.rows);
|
|
157
|
+
if (batches.length > CUSTOMER_LIST_MAX_BATCHES) {
|
|
158
|
+
failWriteValidation(
|
|
159
|
+
`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`
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
const refusal = customerListUploadRefusal(audienceId, action, list);
|
|
163
|
+
if (refusal) {
|
|
164
|
+
failWriteValidation(refusal);
|
|
165
|
+
}
|
|
166
|
+
const stored = [];
|
|
167
|
+
try {
|
|
168
|
+
const chatId = requireChatId();
|
|
169
|
+
for (const rows of batches) {
|
|
170
|
+
const response = await apiPost(
|
|
171
|
+
"/api/ads/meta/draft/customer-list-batch",
|
|
172
|
+
{ chatId, accountId, batch: { schema: list.schema, rows } },
|
|
173
|
+
{ timeoutMs: 12e4 }
|
|
174
|
+
);
|
|
175
|
+
stored.push(response.data);
|
|
176
|
+
}
|
|
177
|
+
} catch (err) {
|
|
178
|
+
handleMetaError(err);
|
|
179
|
+
}
|
|
180
|
+
await stageOp(
|
|
181
|
+
{
|
|
182
|
+
kind: "customAudience.members",
|
|
183
|
+
accountId,
|
|
184
|
+
payload: { audience_id: audienceId, action, schema: list.schema, batches: stored }
|
|
185
|
+
},
|
|
186
|
+
listHints(list)
|
|
187
|
+
);
|
|
188
|
+
}
|
|
189
|
+
function membersCommand(action) {
|
|
190
|
+
registerSchema({
|
|
191
|
+
command: `ads.meta.audiences.members.${action}`,
|
|
192
|
+
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; only counts are printed. Applied at publish; Meta takes up to 24h to match.`,
|
|
193
|
+
args: schemaArgs(membersArgs)
|
|
194
|
+
});
|
|
195
|
+
return defineCommand({
|
|
196
|
+
meta: {
|
|
197
|
+
name: action,
|
|
198
|
+
description: `${ACTION_NOTES[action]} ${STAGED_NOTE}
|
|
199
|
+
Example: baker ads meta audiences members ${action} 120249492603650208 --file customers.csv --country ES`
|
|
200
|
+
},
|
|
201
|
+
args: membersArgs,
|
|
202
|
+
run: async ({ args, rawArgs }) => {
|
|
203
|
+
await stageMembers(action, args, rawArgs);
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
var audiencesMembersCommand = defineCommand({
|
|
208
|
+
meta: {
|
|
209
|
+
name: "members",
|
|
210
|
+
description: `Change who is in a customer-list audience, from a CSV in the workspace. Hashed here before upload. ${STAGED_NOTE}
|
|
211
|
+
baker ads meta audiences members add <audienceId|meta_temp_\u2026> --file customers.csv [--country ES]
|
|
212
|
+
baker ads meta audiences members remove <audienceId> --file unsubscribed.csv
|
|
213
|
+
baker ads meta audiences members replace <audienceId> --file customers.csv
|
|
214
|
+
value-based list: add --value-column revenue`
|
|
215
|
+
},
|
|
216
|
+
subCommands: {
|
|
217
|
+
add: membersCommand("add"),
|
|
218
|
+
remove: membersCommand("remove"),
|
|
219
|
+
replace: membersCommand("replace")
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
registerSchema({
|
|
223
|
+
command: "ads.meta.audiences.delete",
|
|
224
|
+
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).",
|
|
225
|
+
args: {
|
|
226
|
+
id: { type: "positional", description: "Audience id", required: true },
|
|
227
|
+
"account-id": { type: "string", description: "Meta ad account ID (act_123)", required: false }
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
var audiencesDeleteCommand = defineCommand({
|
|
231
|
+
meta: {
|
|
232
|
+
name: "delete",
|
|
233
|
+
description: `Stage deleting an audience \u2014 permanent: ads that target it stop for good. Only when the user asked to delete it. ${STAGED_NOTE}`
|
|
234
|
+
},
|
|
235
|
+
args: {
|
|
236
|
+
id: { type: "positional", description: "Audience id", required: true },
|
|
237
|
+
"account-id": { type: "string", description: "Meta ad account ID (act_123)" }
|
|
238
|
+
},
|
|
239
|
+
run: async ({ args }) => {
|
|
240
|
+
await stageOp({
|
|
241
|
+
kind: "customAudience.update",
|
|
242
|
+
accountId: bareAccountId(args),
|
|
243
|
+
target: requireTarget(args, "audience"),
|
|
244
|
+
payload: { status: "DELETED" }
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
registerSchema({
|
|
249
|
+
command: "ads.meta.audiences.saved",
|
|
250
|
+
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>`.",
|
|
251
|
+
args: {
|
|
252
|
+
"account-id": { type: "string", description: "Meta ad account ID (act_123)", required: false },
|
|
253
|
+
"saved-audience-id": {
|
|
254
|
+
type: "string",
|
|
255
|
+
description: "One saved audience, with its full targeting",
|
|
256
|
+
required: false
|
|
257
|
+
},
|
|
258
|
+
full: { type: "boolean", description: "Include each audience's whole targeting spec", required: false },
|
|
259
|
+
output: { type: "string", description: "json|csv|jsonl|md", required: false, default: "json" }
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
var savedAudiencesCommand = defineCommand({
|
|
263
|
+
meta: {
|
|
264
|
+
name: "saved",
|
|
265
|
+
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>`"
|
|
266
|
+
},
|
|
267
|
+
args: {
|
|
268
|
+
"account-id": { type: "string", description: "Meta ad account ID (act_123)" },
|
|
269
|
+
"saved-audience-id": { type: "string", description: "One saved audience, with its full targeting" },
|
|
270
|
+
full: { type: "boolean", description: "Include each audience's whole targeting spec" },
|
|
271
|
+
output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
|
|
272
|
+
},
|
|
273
|
+
run: async ({ args }) => {
|
|
274
|
+
const accountId = resolveAccountIdArg(args);
|
|
275
|
+
try {
|
|
276
|
+
const params = { "account-id": accountId };
|
|
277
|
+
if (args["saved-audience-id"]) params["saved-audience-id"] = String(args["saved-audience-id"]);
|
|
278
|
+
const rows = await apiGet("/api/ads/meta/saved-audiences", params);
|
|
279
|
+
const shown = args.full || args["saved-audience-id"] ? rows : rows.map(({ targeting: _targeting, ...row }) => row);
|
|
280
|
+
const hints = rows.length === 0 ? [
|
|
281
|
+
"This account has no saved audiences \u2014 Meta's API cannot create one; build the targeting on the ad set instead."
|
|
282
|
+
] : [
|
|
283
|
+
"Use one on a new ad set: `baker ads meta adsets create \u2026 --saved-audience <id>` (its targeting is copied)."
|
|
284
|
+
];
|
|
285
|
+
const fmt = csvOrJson(args);
|
|
286
|
+
if (fmt !== "json") {
|
|
287
|
+
writeAdsOutput(shown, fmt, void 0, hints);
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
writeJsonEnvelope({ ok: true, data: shown, hints });
|
|
291
|
+
} catch (err) {
|
|
292
|
+
handleMetaError(err);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
function targetingFromSavedAudience(saved, flagged) {
|
|
297
|
+
if (flagged === void 0) return { targeting: saved };
|
|
298
|
+
if (!Object.keys(flagged).every((key) => key in brandSafetyTargetingFields)) {
|
|
299
|
+
return { refusal: "--saved-audience brings the targeting \u2014 pass it or --targeting-file, not both" };
|
|
300
|
+
}
|
|
301
|
+
return { targeting: { ...saved, ...flagged } };
|
|
302
|
+
}
|
|
303
|
+
async function savedAudienceTargeting(accountId, savedAudienceId) {
|
|
304
|
+
try {
|
|
305
|
+
const rows = await apiGet("/api/ads/meta/saved-audiences", {
|
|
306
|
+
"account-id": accountId,
|
|
307
|
+
"saved-audience-id": savedAudienceId
|
|
308
|
+
});
|
|
309
|
+
const targeting = rows[0]?.targeting;
|
|
310
|
+
if (!targeting) {
|
|
311
|
+
failWriteValidation(`saved audience ${savedAudienceId} has no targeting to copy`);
|
|
312
|
+
}
|
|
313
|
+
return targeting;
|
|
314
|
+
} catch (err) {
|
|
315
|
+
handleMetaError(err);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
export {
|
|
319
|
+
audiencesDeleteCommand,
|
|
320
|
+
audiencesMembersCommand,
|
|
321
|
+
savedAudienceTargeting,
|
|
322
|
+
savedAudiencesCommand,
|
|
323
|
+
targetingFromSavedAudience
|
|
324
|
+
};
|
|
325
|
+
//# sourceMappingURL=audience-writes-KO7L5YLO.js.map
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import {
|
|
2
|
+
csvOrJson,
|
|
3
|
+
handleMetaError,
|
|
4
|
+
resolveAccountIdArg
|
|
5
|
+
} from "./chunk-B2POVFR2.js";
|
|
6
|
+
import "./chunk-Y2JZX6JB.js";
|
|
7
|
+
import {
|
|
8
|
+
writeAdsJson,
|
|
9
|
+
writeAdsOutput
|
|
10
|
+
} from "./chunk-ZRP7Y2DM.js";
|
|
11
|
+
import {
|
|
12
|
+
NO_CACHE_ARG
|
|
13
|
+
} from "./chunk-AGBBTTKA.js";
|
|
14
|
+
import {
|
|
15
|
+
apiGet
|
|
16
|
+
} from "./chunk-X7VQFLHI.js";
|
|
17
|
+
import "./chunk-LU4HI4KI.js";
|
|
18
|
+
import "./chunk-LGK7UWBN.js";
|
|
19
|
+
import "./chunk-Q7US4OOA.js";
|
|
20
|
+
import "./chunk-YQSBHWOI.js";
|
|
21
|
+
|
|
22
|
+
// src/commands/ads/meta/audiences.ts
|
|
23
|
+
import { defineCommand } from "citty";
|
|
24
|
+
var listArgs = {
|
|
25
|
+
"account-id": { type: "string", description: "Meta ad account ID" },
|
|
26
|
+
limit: { type: "string", description: "Max rows" },
|
|
27
|
+
"no-cache": NO_CACHE_ARG,
|
|
28
|
+
output: { type: "string", description: "Output format", default: "json" }
|
|
29
|
+
};
|
|
30
|
+
var listCommand = defineCommand({
|
|
31
|
+
meta: {
|
|
32
|
+
name: "list",
|
|
33
|
+
description: "List custom audiences. Runs by default when no subcommand is given. Example: baker ads meta audiences --account-id act_123"
|
|
34
|
+
},
|
|
35
|
+
args: listArgs,
|
|
36
|
+
run: async ({ args }) => {
|
|
37
|
+
const accountId = resolveAccountIdArg(args);
|
|
38
|
+
try {
|
|
39
|
+
const params = { "account-id": accountId };
|
|
40
|
+
if (args.limit) params.limit = args.limit;
|
|
41
|
+
if (args["no-cache"]) params["skip-cache"] = "true";
|
|
42
|
+
const data = await apiGet("/api/ads/meta/audiences", params);
|
|
43
|
+
const fmt = csvOrJson(args);
|
|
44
|
+
if (fmt !== "json") {
|
|
45
|
+
writeAdsOutput(data, fmt);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
writeAdsJson({ ok: true, data });
|
|
49
|
+
} catch (err) {
|
|
50
|
+
handleMetaError(err);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
var audiencesCommand = defineCommand({
|
|
55
|
+
meta: {
|
|
56
|
+
name: "audiences",
|
|
57
|
+
description: `List custom audiences, or stage writes (create/update/delete, members add|remove|replace). Write subcommands stage ops on this chat's draft.
|
|
58
|
+
Includes lookalikes, website-pixel audiences, customer-file audiences. Meta hides exact size when count < 1000.
|
|
59
|
+
|
|
60
|
+
Examples:
|
|
61
|
+
baker ads meta audiences --account-id act_123
|
|
62
|
+
baker ads meta audiences create --name "Site 30d" --subtype WEBSITE --file rule.json
|
|
63
|
+
baker ads meta audiences create --name "Past buyers" --subtype CUSTOM --file buyers.json # {"members":[{"email":"\u2026"}]}
|
|
64
|
+
baker ads meta audiences create --name "Customers" --subtype CUSTOM --customer-file-source USER_PROVIDED_ONLY
|
|
65
|
+
baker ads meta audiences members add meta_temp_ab12 --file customers.csv --country ES
|
|
66
|
+
baker ads meta audiences saved --account-id act_123 \u2014 saved audiences (read-only)`
|
|
67
|
+
},
|
|
68
|
+
subCommands: {
|
|
69
|
+
list: listCommand,
|
|
70
|
+
create: () => import("./write-commands-UA3FI3EX.js").then((m) => m.audiencesCreateCommand),
|
|
71
|
+
update: () => import("./write-commands-UA3FI3EX.js").then((m) => m.audiencesUpdateCommand),
|
|
72
|
+
delete: () => import("./audience-writes-KO7L5YLO.js").then((m) => m.audiencesDeleteCommand),
|
|
73
|
+
members: () => import("./audience-writes-KO7L5YLO.js").then((m) => m.audiencesMembersCommand),
|
|
74
|
+
saved: () => import("./audience-writes-KO7L5YLO.js").then((m) => m.savedAudiencesCommand)
|
|
75
|
+
},
|
|
76
|
+
// `args` stays even though the parent has no `run`: citty scans rawArgs for the
|
|
77
|
+
// subcommand name using THIS command's arg defs, so without them `--account-id act_1`
|
|
78
|
+
// would read `act_1` as a subcommand. `default` (not `run`) dispatches the bare
|
|
79
|
+
// invocation — citty falls through to `run` after a subcommand, double-executing it.
|
|
80
|
+
args: listArgs,
|
|
81
|
+
default: "list"
|
|
82
|
+
});
|
|
83
|
+
export {
|
|
84
|
+
audiencesCommand
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=audiences-H5WVE2ZA.js.map
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import {
|
|
2
|
+
csvArg,
|
|
3
|
+
failWriteValidation,
|
|
4
|
+
requireTarget,
|
|
5
|
+
requireTargets,
|
|
6
|
+
schemaArgs,
|
|
7
|
+
stageChatgptOp,
|
|
8
|
+
stageChatgptOps
|
|
9
|
+
} from "./chunk-5XTGG4PV.js";
|
|
10
|
+
import {
|
|
11
|
+
CHATGPT_ADS_REFERENCE,
|
|
12
|
+
CHATGPT_AUDIENCE_USES,
|
|
13
|
+
CHATGPT_MAX_STAGED_MEMBERS,
|
|
14
|
+
runChatgptListRead
|
|
15
|
+
} from "./chunk-M7HD42M6.js";
|
|
16
|
+
import "./chunk-ZRP7Y2DM.js";
|
|
17
|
+
import "./chunk-X7VQFLHI.js";
|
|
18
|
+
import "./chunk-LU4HI4KI.js";
|
|
19
|
+
import "./chunk-LGK7UWBN.js";
|
|
20
|
+
import {
|
|
21
|
+
registerSchema
|
|
22
|
+
} from "./chunk-Q7US4OOA.js";
|
|
23
|
+
import "./chunk-YQSBHWOI.js";
|
|
24
|
+
|
|
25
|
+
// src/commands/ads/chatgpt/audiences.ts
|
|
26
|
+
import { readFileSync } from "fs";
|
|
27
|
+
import { defineCommand } from "citty";
|
|
28
|
+
|
|
29
|
+
// src/commands/ads/chatgpt/audience-members.ts
|
|
30
|
+
import { createHash } from "crypto";
|
|
31
|
+
import { parse } from "csv-parse/sync";
|
|
32
|
+
import { isSupportedCountry, parsePhoneNumberFromString } from "libphonenumber-js";
|
|
33
|
+
function sha256(value) {
|
|
34
|
+
return createHash("sha256").update(value, "utf8").digest("hex");
|
|
35
|
+
}
|
|
36
|
+
function normalizedEmail(value) {
|
|
37
|
+
const email = value.trim().toLowerCase();
|
|
38
|
+
return /^[^@\s;,|]+@[^@\s;,|]+\.[^@\s;,|]+$/.test(email) ? email : void 0;
|
|
39
|
+
}
|
|
40
|
+
function normalizedPhone(value, defaultCountry) {
|
|
41
|
+
const country = defaultCountry && isSupportedCountry(defaultCountry) ? defaultCountry : void 0;
|
|
42
|
+
const phone = parsePhoneNumberFromString(value.trim(), country);
|
|
43
|
+
return phone?.isValid() ? phone.number : void 0;
|
|
44
|
+
}
|
|
45
|
+
function hashedMembers(input) {
|
|
46
|
+
const rejected = [];
|
|
47
|
+
const emailHashes = /* @__PURE__ */ new Set();
|
|
48
|
+
const phoneHashes = /* @__PURE__ */ new Set();
|
|
49
|
+
for (const value of input.emails) {
|
|
50
|
+
const email = normalizedEmail(value);
|
|
51
|
+
email ? emailHashes.add(sha256(email)) : rejected.push(value.trim());
|
|
52
|
+
}
|
|
53
|
+
for (const value of input.phones) {
|
|
54
|
+
const phone = normalizedPhone(value, input.defaultCountry);
|
|
55
|
+
phone ? phoneHashes.add(sha256(phone)) : rejected.push(value.trim());
|
|
56
|
+
}
|
|
57
|
+
return { emailHashes: [...emailHashes], phoneHashes: [...phoneHashes], rejected };
|
|
58
|
+
}
|
|
59
|
+
function headerWords(cell) {
|
|
60
|
+
return cell.normalize("NFD").replace(new RegExp("\\p{Diacritic}", "gu"), "").toLowerCase().replace(/[^a-z0-9]+/g, " ").trim();
|
|
61
|
+
}
|
|
62
|
+
var EMAIL_HEADER = /\b(e ?mail|correo|mail)\b/;
|
|
63
|
+
var PHONE_HEADER = /\b(phone|telefono|movil|mobile|tel|celular)\b/;
|
|
64
|
+
function membersFromFile(content) {
|
|
65
|
+
const rows = parse(content, {
|
|
66
|
+
bom: true,
|
|
67
|
+
skip_empty_lines: true,
|
|
68
|
+
relax_column_count: true,
|
|
69
|
+
trim: true,
|
|
70
|
+
delimiter: [",", ";", " "]
|
|
71
|
+
});
|
|
72
|
+
const header = (rows[0] ?? []).map(headerWords);
|
|
73
|
+
const emailColumn = header.findIndex((cell) => EMAIL_HEADER.test(cell));
|
|
74
|
+
const phoneColumn = header.findIndex((cell) => !EMAIL_HEADER.test(cell) && PHONE_HEADER.test(cell));
|
|
75
|
+
if (emailColumn >= 0 || phoneColumn >= 0) {
|
|
76
|
+
const cells = (column) => column < 0 ? [] : rows.slice(1).flatMap((row) => row[column] ? [row[column]] : []);
|
|
77
|
+
return { emails: cells(emailColumn), phones: cells(phoneColumn) };
|
|
78
|
+
}
|
|
79
|
+
const values = rows.flatMap((row) => row[0] ? [row[0]] : []);
|
|
80
|
+
return values.some((value) => value.includes("@")) ? { emails: values, phones: [] } : { emails: [], phones: values };
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// src/commands/ads/chatgpt/audiences.ts
|
|
84
|
+
var REFERENCE = CHATGPT_ADS_REFERENCE.audiences;
|
|
85
|
+
var MEMBER_ARGS = {
|
|
86
|
+
emails: { type: "string", description: "Emails, comma-separated" },
|
|
87
|
+
phones: { type: "string", description: "Phones, comma-separated \u2014 E.164 (+34\u2026), or local with --country" },
|
|
88
|
+
file: {
|
|
89
|
+
type: "string",
|
|
90
|
+
description: "A CSV with an email and/or phone column, or one email or phone per line \u2014 the company's own customers"
|
|
91
|
+
},
|
|
92
|
+
country: { type: "string", description: "Country of phones written without a +code, e.g. ES" }
|
|
93
|
+
};
|
|
94
|
+
function membersFromArgs(args, readFile = (path) => readFileSync(path, "utf8")) {
|
|
95
|
+
const fromFile = typeof args.file === "string" && args.file ? membersFromFile(readFile(args.file)) : { emails: [], phones: [] };
|
|
96
|
+
const given = [...csvArg(args.emails) ?? [], ...fromFile.emails];
|
|
97
|
+
const givenPhones = [...csvArg(args.phones) ?? [], ...fromFile.phones];
|
|
98
|
+
const members = hashedMembers({
|
|
99
|
+
emails: given,
|
|
100
|
+
phones: givenPhones,
|
|
101
|
+
defaultCountry: typeof args.country === "string" ? args.country.toUpperCase() : void 0
|
|
102
|
+
});
|
|
103
|
+
const count = members.emailHashes.length + members.phoneHashes.length;
|
|
104
|
+
const offered = given.length + givenPhones.length + (typeof args.file === "string" && args.file ? 1 : 0);
|
|
105
|
+
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;
|
|
106
|
+
return {
|
|
107
|
+
payload: {
|
|
108
|
+
...members.emailHashes.length > 0 ? { emailHashes: members.emailHashes } : {},
|
|
109
|
+
...members.phoneHashes.length > 0 ? { phoneHashes: members.phoneHashes } : {}
|
|
110
|
+
},
|
|
111
|
+
rejected: members.rejected.length,
|
|
112
|
+
...refusal ? { refusal } : {}
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
function rejectedHint(rejected) {
|
|
116
|
+
return rejected > 0 ? [
|
|
117
|
+
`${rejected} value(s) were neither an email nor a valid phone and were left out \u2014 phones need a +country code, or --country.`
|
|
118
|
+
] : [];
|
|
119
|
+
}
|
|
120
|
+
var LIST_ARGS = {
|
|
121
|
+
"eligible-for": {
|
|
122
|
+
type: "string",
|
|
123
|
+
description: `Only audiences ChatGPT Ads lets serve this use: ${CHATGPT_AUDIENCE_USES.join("|")}`
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
registerSchema({
|
|
127
|
+
command: "ads.chatgpt.audiences.list",
|
|
128
|
+
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.",
|
|
129
|
+
args: schemaArgs(LIST_ARGS)
|
|
130
|
+
});
|
|
131
|
+
var audiencesListCommand = defineCommand({
|
|
132
|
+
meta: { name: "list", description: "List the account's custom audiences." },
|
|
133
|
+
args: LIST_ARGS,
|
|
134
|
+
run: async ({ args }) => {
|
|
135
|
+
const use = typeof args["eligible-for"] === "string" ? args["eligible-for"] : void 0;
|
|
136
|
+
await runChatgptListRead(
|
|
137
|
+
REFERENCE,
|
|
138
|
+
"/api/ads/chatgpt/audiences",
|
|
139
|
+
use ? { eligible_for: use } : void 0,
|
|
140
|
+
(rows) => rows.length === 0 ? ["No audience. Stage one with `baker ads chatgpt audiences create --name \u2026 --file customers.csv`."] : [
|
|
141
|
+
"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."
|
|
142
|
+
]
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
var CREATE_ARGS = {
|
|
147
|
+
name: { type: "string", description: "Audience name (3+ characters)", required: true },
|
|
148
|
+
description: { type: "string", description: "What the list is" },
|
|
149
|
+
...MEMBER_ARGS
|
|
150
|
+
};
|
|
151
|
+
registerSchema({
|
|
152
|
+
command: "ads.chatgpt.audiences.create",
|
|
153
|
+
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.",
|
|
154
|
+
args: schemaArgs(CREATE_ARGS)
|
|
155
|
+
});
|
|
156
|
+
var audiencesCreateCommand = defineCommand({
|
|
157
|
+
meta: {
|
|
158
|
+
name: "create",
|
|
159
|
+
description: `Stage a custom audience (applies when the chat is published). Members are hashed here; nothing raw is sent.
|
|
160
|
+
|
|
161
|
+
Examples:
|
|
162
|
+
baker ads chatgpt audiences create --name "Customers 2026" --file customers.csv --country ES
|
|
163
|
+
baker ads chatgpt audiences create --name "Recent buyers" # empty, fill it later with add`
|
|
164
|
+
},
|
|
165
|
+
args: CREATE_ARGS,
|
|
166
|
+
run: async ({ args }) => {
|
|
167
|
+
const { payload, rejected, refusal } = membersFromArgs(args);
|
|
168
|
+
if (refusal) {
|
|
169
|
+
failWriteValidation(refusal);
|
|
170
|
+
}
|
|
171
|
+
await stageChatgptOp(
|
|
172
|
+
{
|
|
173
|
+
kind: "audience.create",
|
|
174
|
+
payload: { name: args.name, ...args.description ? { description: args.description } : {}, ...payload }
|
|
175
|
+
},
|
|
176
|
+
REFERENCE,
|
|
177
|
+
(staged) => [
|
|
178
|
+
...rejectedHint(rejected),
|
|
179
|
+
`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.)`
|
|
180
|
+
]
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
function membersCommand(verb) {
|
|
185
|
+
const args = {
|
|
186
|
+
id: { type: "positional", description: "Audience id (caud_\u2026)", required: true },
|
|
187
|
+
...MEMBER_ARGS
|
|
188
|
+
};
|
|
189
|
+
registerSchema({
|
|
190
|
+
command: `ads.chatgpt.audiences.${verb}`,
|
|
191
|
+
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.`,
|
|
192
|
+
args: schemaArgs(args)
|
|
193
|
+
});
|
|
194
|
+
return defineCommand({
|
|
195
|
+
meta: {
|
|
196
|
+
name: verb,
|
|
197
|
+
description: `Stage ${verb === "add" ? "adding" : "removing"} members.
|
|
198
|
+
|
|
199
|
+
Example:
|
|
200
|
+
baker ads chatgpt audiences ${verb} caud_123 --emails ana@example.com,luis@example.com`
|
|
201
|
+
},
|
|
202
|
+
args,
|
|
203
|
+
run: async ({ args: parsed }) => {
|
|
204
|
+
const { payload, rejected, refusal } = membersFromArgs(parsed);
|
|
205
|
+
if (refusal) {
|
|
206
|
+
failWriteValidation(refusal);
|
|
207
|
+
}
|
|
208
|
+
if (!payload.emailHashes && !payload.phoneHashes) {
|
|
209
|
+
failWriteValidation("name at least one email or phone with --emails, --phones or --file");
|
|
210
|
+
}
|
|
211
|
+
await stageChatgptOp(
|
|
212
|
+
{ kind: `audience.${verb}`, target: requireTarget(parsed, "id"), payload },
|
|
213
|
+
REFERENCE,
|
|
214
|
+
() => rejectedHint(rejected)
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
var ARCHIVE_ARGS = {
|
|
220
|
+
ids: { type: "positional", description: "Audience ids, comma-separated", required: true }
|
|
221
|
+
};
|
|
222
|
+
registerSchema({
|
|
223
|
+
command: "ads.chatgpt.audiences.archive",
|
|
224
|
+
description: "Stage archiving custom audiences \u2014 for good: ChatGPT Ads cannot bring one back. Pass every id in one call.",
|
|
225
|
+
args: schemaArgs(ARCHIVE_ARGS)
|
|
226
|
+
});
|
|
227
|
+
var audiencesArchiveCommand = defineCommand({
|
|
228
|
+
meta: {
|
|
229
|
+
name: "archive",
|
|
230
|
+
description: `Stage archiving audiences, for good.
|
|
231
|
+
|
|
232
|
+
Example:
|
|
233
|
+
baker ads chatgpt audiences archive caud_123`
|
|
234
|
+
},
|
|
235
|
+
args: ARCHIVE_ARGS,
|
|
236
|
+
run: async ({ args }) => {
|
|
237
|
+
await stageChatgptOps(
|
|
238
|
+
requireTargets(args, "ids").map((id) => ({ kind: "audience.archive", target: id, payload: {} })),
|
|
239
|
+
REFERENCE
|
|
240
|
+
);
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
var audiencesCommand = defineCommand({
|
|
244
|
+
meta: {
|
|
245
|
+
name: "audiences",
|
|
246
|
+
description: `Custom audiences \u2014 the company's own customer lists a campaign serves to or leaves out.
|
|
247
|
+
|
|
248
|
+
Examples:
|
|
249
|
+
baker ads chatgpt audiences
|
|
250
|
+
baker ads chatgpt audiences create --name "Customers 2026" --file customers.csv --country ES
|
|
251
|
+
baker ads chatgpt audiences add caud_123 --emails ana@example.com`
|
|
252
|
+
},
|
|
253
|
+
subCommands: {
|
|
254
|
+
list: audiencesListCommand,
|
|
255
|
+
create: audiencesCreateCommand,
|
|
256
|
+
add: membersCommand("add"),
|
|
257
|
+
remove: membersCommand("remove"),
|
|
258
|
+
archive: audiencesArchiveCommand
|
|
259
|
+
},
|
|
260
|
+
// A parent must never declare `run`: citty falls through to it after the matched subcommand.
|
|
261
|
+
args: {},
|
|
262
|
+
default: "list"
|
|
263
|
+
});
|
|
264
|
+
export {
|
|
265
|
+
audiencesCommand,
|
|
266
|
+
membersFromArgs
|
|
267
|
+
};
|
|
268
|
+
//# sourceMappingURL=audiences-WCDWN64L.js.map
|