@koda-sl/baker-cli 0.513.0 → 0.514.0-dev.555f7007e

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.
Files changed (1156) hide show
  1. package/README.md +19 -2
  2. package/dist/account-QX4G4BJ7.js +82 -0
  3. package/dist/account-QX4G4BJ7.js.map +1 -0
  4. package/dist/account-UFYZS3K6.js +82 -0
  5. package/dist/account-UFYZS3K6.js.map +1 -0
  6. package/dist/account-assets-J5Z4URLQ.js +290 -0
  7. package/dist/account-level-4SBYYHRS.js +611 -0
  8. package/dist/account-level-4SBYYHRS.js.map +1 -0
  9. package/dist/account-reads-FOEVPWDP.js +219 -0
  10. package/dist/account-users-UTIF7MIT.js +64 -0
  11. package/dist/account-users-UTIF7MIT.js.map +1 -0
  12. package/dist/account-writes-QAQXRIEY.js +68 -0
  13. package/dist/account-writes-QAQXRIEY.js.map +1 -0
  14. package/dist/accounts-JK3OAS5U.js +701 -0
  15. package/dist/accounts-JK3OAS5U.js.map +1 -0
  16. package/dist/accounts-OE33CKWD.js +80 -0
  17. package/dist/accounts-OE33CKWD.js.map +1 -0
  18. package/dist/actions-QZDSLFFK.js +55 -0
  19. package/dist/activecampaign-U6TKRR45.js +938 -0
  20. package/dist/activecampaign-U6TKRR45.js.map +1 -0
  21. package/dist/ad-group-writes-XY5JYTKT.js +172 -0
  22. package/dist/ad-group-writes-XY5JYTKT.js.map +1 -0
  23. package/dist/ad-groups-YEO5ZS5U.js +70 -0
  24. package/dist/ad-groups-YEO5ZS5U.js.map +1 -0
  25. package/dist/ad-writes-XRCPK4SP.js +176 -0
  26. package/dist/ad-writes-XRCPK4SP.js.map +1 -0
  27. package/dist/add-2EF7S4NK.js +305 -0
  28. package/dist/add-2EF7S4NK.js.map +1 -0
  29. package/dist/add-YCJ6RXPG.js +107 -0
  30. package/dist/add-YCJ6RXPG.js.map +1 -0
  31. package/dist/ads-AYJAYLFR.js +48 -0
  32. package/dist/ads-H7H7H2CM.js +79 -0
  33. package/dist/ads-H7H7H2CM.js.map +1 -0
  34. package/dist/ads-MAOI7S6V.js +115 -0
  35. package/dist/adsets-QRKICEFD.js +182 -0
  36. package/dist/advertisers-JLSU3G35.js +123 -0
  37. package/dist/advertisers-JLSU3G35.js.map +1 -0
  38. package/dist/analytics-ADIWEM6G.js +2437 -0
  39. package/dist/analytics-ADIWEM6G.js.map +1 -0
  40. package/dist/analytics-XB6FRNVJ.js +447 -0
  41. package/dist/analytics-XB6FRNVJ.js.map +1 -0
  42. package/dist/animate-HRWFVE2N.js +480 -0
  43. package/dist/asset-writes-JLVUAVUZ.js +50 -0
  44. package/dist/assign-IWZ2OPFL.js +80 -0
  45. package/dist/assign-IWZ2OPFL.js.map +1 -0
  46. package/dist/audience-size-P5L6MZ4C.js +76 -0
  47. package/dist/audience-size-P5L6MZ4C.js.map +1 -0
  48. package/dist/audience-writes-CDKQB3SM.js +327 -0
  49. package/dist/audience-writes-CDKQB3SM.js.map +1 -0
  50. package/dist/audiences-CDDI5HR5.js +86 -0
  51. package/dist/audiences-XKERWKKE.js +280 -0
  52. package/dist/audiences-XKERWKKE.js.map +1 -0
  53. package/dist/audit-SEADLC6F.js +154 -0
  54. package/dist/audit-SEADLC6F.js.map +1 -0
  55. package/dist/autocomplete-AJQBJS5R.js +114 -0
  56. package/dist/autocomplete-AJQBJS5R.js.map +1 -0
  57. package/dist/avatars-4HCGWBOL.js +38 -0
  58. package/dist/bid-pricing-NWSUO3VM.js +103 -0
  59. package/dist/bid-pricing-NWSUO3VM.js.map +1 -0
  60. package/dist/brand-C6OB6Q4U.js +22 -0
  61. package/dist/brief-LCWWQ4OC.js +543 -0
  62. package/dist/brief-LCWWQ4OC.js.map +1 -0
  63. package/dist/campaign-groups-PH64UXZJ.js +99 -0
  64. package/dist/campaign-groups-PH64UXZJ.js.map +1 -0
  65. package/dist/campaign-writes-BN3EGDK5.js +168 -0
  66. package/dist/campaign-writes-BN3EGDK5.js.map +1 -0
  67. package/dist/campaign-writes-CLV5ZSUK.js +176 -0
  68. package/dist/campaign-writes-CLV5ZSUK.js.map +1 -0
  69. package/dist/campaigns-5XRY27JZ.js +78 -0
  70. package/dist/campaigns-5XRY27JZ.js.map +1 -0
  71. package/dist/campaigns-HES5MDUG.js +130 -0
  72. package/dist/campaigns-JF4TYYUP.js +113 -0
  73. package/dist/campaigns-JF4TYYUP.js.map +1 -0
  74. package/dist/campaigns-ZYU4BXDP.js +111 -0
  75. package/dist/canvas-AI34UBGU.js +46 -0
  76. package/dist/capabilities-TRHAPTUU.js +147 -0
  77. package/dist/capabilities-TRHAPTUU.js.map +1 -0
  78. package/dist/catalog-ZY3MFT55.js +65 -0
  79. package/dist/catalogs-6XLBWAUS.js +130 -0
  80. package/dist/catalogs-6XLBWAUS.js.map +1 -0
  81. package/dist/catalogs-TGLSJEK5.js +781 -0
  82. package/dist/catalogs-TGLSJEK5.js.map +1 -0
  83. package/dist/changes-OOUVQDBY.js +135 -0
  84. package/dist/chatgpt-NAXIFWXV.js +47 -0
  85. package/dist/chats-I5RHBRS5.js +279 -0
  86. package/dist/chats-I5RHBRS5.js.map +1 -0
  87. package/dist/check-3E64VBUE.js +107 -0
  88. package/dist/check-3E64VBUE.js.map +1 -0
  89. package/dist/chunk-3CHYJYSS.js +319 -0
  90. package/dist/chunk-3G3GC5N4.js +429 -0
  91. package/dist/chunk-3M45PYU7.js +274 -0
  92. package/dist/chunk-3QHXF3QI.js +23 -0
  93. package/dist/chunk-3XPHUMLJ.js +3868 -0
  94. package/dist/chunk-45EERHDB.js +783 -0
  95. package/dist/chunk-4FGTANFK.js +387 -0
  96. package/dist/chunk-4IHWT7PH.js +167 -0
  97. package/dist/chunk-4LF4AYPT.js +846 -0
  98. package/dist/chunk-4UQRXKYJ.js +219 -0
  99. package/dist/chunk-5JJD33Y2.js +455 -0
  100. package/dist/chunk-5K4QYYOJ.js +831 -0
  101. package/dist/chunk-5LJ6E4YU.js +163 -0
  102. package/dist/chunk-5T73MMBL.js +275 -0
  103. package/dist/chunk-64MAHLTK.js +363 -0
  104. package/dist/chunk-6OIKNJ7G.js +26 -0
  105. package/dist/chunk-6ZFSDYWV.js +131 -0
  106. package/dist/chunk-7BUIOP36.js +287 -0
  107. package/dist/chunk-7I6ZVBLM.js +358 -0
  108. package/dist/chunk-7I6ZVBLM.js.map +1 -0
  109. package/dist/chunk-AN4OEQXE.js +122 -0
  110. package/dist/chunk-AULSX5ZA.js +5368 -0
  111. package/dist/chunk-AVYUFJQQ.js +46 -0
  112. package/dist/chunk-B4YF7VQF.js +97 -0
  113. package/dist/chunk-BDOYNGUL.js +98 -0
  114. package/dist/chunk-BJOK7QD4.js +207 -0
  115. package/dist/chunk-CMCGFSUS.js +197 -0
  116. package/dist/chunk-DMJUIUAL.js +676 -0
  117. package/dist/chunk-DUCUOZLS.js +225 -0
  118. package/dist/chunk-EW7JSTRZ.js +24026 -0
  119. package/dist/chunk-EW7JSTRZ.js.map +1 -0
  120. package/dist/chunk-F3CZFUXZ.js +3187 -0
  121. package/dist/chunk-F3CZFUXZ.js.map +1 -0
  122. package/dist/chunk-FJZYOVSW.js +843 -0
  123. package/dist/chunk-FKP4ECJY.js +19 -0
  124. package/dist/chunk-G4FG5EQO.js +110 -0
  125. package/dist/chunk-G4FG5EQO.js.map +1 -0
  126. package/dist/chunk-GAYRBIEF.js +712 -0
  127. package/dist/chunk-GAYRBIEF.js.map +1 -0
  128. package/dist/chunk-GNMEOU46.js +8954 -0
  129. package/dist/chunk-GYKYXWUQ.js +156 -0
  130. package/dist/chunk-GYPLRU4Y.js +297 -0
  131. package/dist/chunk-I43ZEWJQ.js +285 -0
  132. package/dist/chunk-IZABTTW5.js +228 -0
  133. package/dist/chunk-JOE42ZW6.js +2984 -0
  134. package/dist/chunk-JOE42ZW6.js.map +1 -0
  135. package/dist/chunk-K7IE6UYV.js +1646 -0
  136. package/dist/chunk-KH5YHHJV.js +604 -0
  137. package/dist/chunk-KMY7AD3N.js +51 -0
  138. package/dist/chunk-KPCHWDJM.js +8914 -0
  139. package/dist/chunk-KTZCLJ2D.js +148 -0
  140. package/dist/chunk-MKUA54QE.js +638 -0
  141. package/dist/chunk-MTV2RSGY.js +63 -0
  142. package/dist/chunk-MUS2UTWU.js +4254 -0
  143. package/dist/chunk-MUS2UTWU.js.map +1 -0
  144. package/dist/chunk-N2QX57K3.js +392 -0
  145. package/dist/chunk-NB2FU6EZ.js +179 -0
  146. package/dist/chunk-NEYWS2DQ.js +479 -0
  147. package/dist/chunk-NKQWDEB7.js +115 -0
  148. package/dist/chunk-NKQWDEB7.js.map +1 -0
  149. package/dist/chunk-NWF2LRKO.js +188 -0
  150. package/dist/chunk-NZ34KM46.js +7211 -0
  151. package/dist/chunk-NZ34KM46.js.map +1 -0
  152. package/dist/chunk-OTC6UMJ2.js +191 -0
  153. package/dist/chunk-OUY2IAWL.js +224 -0
  154. package/dist/chunk-PJXNCRMR.js +344 -0
  155. package/dist/chunk-PYQ3GF7R.js +91 -0
  156. package/dist/chunk-Q3EIVZAR.js +170 -0
  157. package/dist/chunk-Q3GSVLE5.js +4274 -0
  158. package/dist/chunk-Q3GSVLE5.js.map +1 -0
  159. package/dist/chunk-QDQZ62FL.js +207 -0
  160. package/dist/chunk-QHZE62GP.js +1919 -0
  161. package/dist/chunk-RGR6TSTJ.js +103 -0
  162. package/dist/chunk-SAAXU7QR.js +203 -0
  163. package/dist/chunk-SHTKLRI6.js +66 -0
  164. package/dist/chunk-SIKCVWM3.js +76 -0
  165. package/dist/chunk-SOPVIIUW.js +68 -0
  166. package/dist/chunk-SOPVIIUW.js.map +1 -0
  167. package/dist/chunk-SSXG53CZ.js +89 -0
  168. package/dist/chunk-TBWAM577.js +547 -0
  169. package/dist/chunk-TGPGQTZA.js +169 -0
  170. package/dist/chunk-UMIX2BMM.js +1518 -0
  171. package/dist/chunk-URMAEVZO.js +150 -0
  172. package/dist/chunk-VBO3ZVUU.js +61 -0
  173. package/dist/chunk-VFLYMHTO.js +592 -0
  174. package/dist/chunk-VGYIVXIZ.js +249 -0
  175. package/dist/chunk-VIB7R533.js +57 -0
  176. package/dist/chunk-WLESMH4J.js +45 -0
  177. package/dist/chunk-WVWLPXBO.js +910 -0
  178. package/dist/chunk-XEH5XAP6.js +494 -0
  179. package/dist/chunk-XEOKVL4E.js +142 -0
  180. package/dist/chunk-XOGQJYXH.js +64 -0
  181. package/dist/chunk-XOQNM7I4.js +396 -0
  182. package/dist/chunk-XOQNM7I4.js.map +1 -0
  183. package/dist/chunk-XUXRA7IB.js +942 -0
  184. package/dist/claim-FIK2YTLM.js +200 -0
  185. package/dist/claim-FIK2YTLM.js.map +1 -0
  186. package/dist/cli.js +34 -33
  187. package/dist/cli.js.map +1 -1
  188. package/dist/companies-KMMV6EJW.js +198 -0
  189. package/dist/companies-KMMV6EJW.js.map +1 -0
  190. package/dist/company-B54URPJG.js +308 -0
  191. package/dist/company-B54URPJG.js.map +1 -0
  192. package/dist/complete-PPCWEXS3.js +84 -0
  193. package/dist/complete-PPCWEXS3.js.map +1 -0
  194. package/dist/connect-IAXSZPGA.js +45 -0
  195. package/dist/conversation-KHTZBGX2.js +96 -0
  196. package/dist/conversation-KHTZBGX2.js.map +1 -0
  197. package/dist/conversion-report-U66HW6JM.js +127 -0
  198. package/dist/conversion-report-U66HW6JM.js.map +1 -0
  199. package/dist/conversion-upload-command-IHFKVX2M.js +439 -0
  200. package/dist/conversion-writes-RSGDOAET.js +122 -0
  201. package/dist/conversion-writes-RSGDOAET.js.map +1 -0
  202. package/dist/conversions-BVOL43W4.js +78 -0
  203. package/dist/conversions-BVOL43W4.js.map +1 -0
  204. package/dist/conversions-SUMZAV2T.js +140 -0
  205. package/dist/conversions-SUMZAV2T.js.map +1 -0
  206. package/dist/copy-writes-CIHIFLY6.js +170 -0
  207. package/dist/copy-writes-CIHIFLY6.js.map +1 -0
  208. package/dist/create-732HQL3C.js +210 -0
  209. package/dist/create-732HQL3C.js.map +1 -0
  210. package/dist/create-TFR6R2KF.js +239 -0
  211. package/dist/create-TFR6R2KF.js.map +1 -0
  212. package/dist/create-UC57ULRL.js +62 -0
  213. package/dist/create-UC57ULRL.js.map +1 -0
  214. package/dist/create-UL2OYXOA.js +135 -0
  215. package/dist/create-UL2OYXOA.js.map +1 -0
  216. package/dist/creatives-BB6S2OF6.js +89 -0
  217. package/dist/creatives-BZEVJ6ER.js +58 -0
  218. package/dist/creatives-FU3YELGU.js +223 -0
  219. package/dist/creatives-FU3YELGU.js.map +1 -0
  220. package/dist/credentials-AYV5YQE4.js +290 -0
  221. package/dist/credentials-AYV5YQE4.js.map +1 -0
  222. package/dist/critique-FKIJB72I.js +1451 -0
  223. package/dist/critique-FKIJB72I.js.map +1 -0
  224. package/dist/critique-IQYNDXCN.js +232 -0
  225. package/dist/critique-IQYNDXCN.js.map +1 -0
  226. package/dist/crm-ILQMNJPX.js +323 -0
  227. package/dist/crm-ILQMNJPX.js.map +1 -0
  228. package/dist/crm-MQQRBITZ.js +227 -0
  229. package/dist/crm-MQQRBITZ.js.map +1 -0
  230. package/dist/currency-CGKO5GKH.js +88 -0
  231. package/dist/custom-conversions-HAGG72LF.js +128 -0
  232. package/dist/customers-NKKU6S7G.js +59 -0
  233. package/dist/delete-2TCCNRMH.js +57 -0
  234. package/dist/delete-2TCCNRMH.js.map +1 -0
  235. package/dist/delete-HCZTISBT.js +69 -0
  236. package/dist/delete-HCZTISBT.js.map +1 -0
  237. package/dist/delete-UIKB5ZXS.js +67 -0
  238. package/dist/delete-UIKB5ZXS.js.map +1 -0
  239. package/dist/demographics-ABZODD45.js +141 -0
  240. package/dist/demographics-ABZODD45.js.map +1 -0
  241. package/dist/discard-V3K5PZ4W.js +69 -0
  242. package/dist/discard-V3K5PZ4W.js.map +1 -0
  243. package/dist/discover-VM3O7CQM.js +172 -0
  244. package/dist/domain-A66DHOTQ.js +101 -0
  245. package/dist/domain-A66DHOTQ.js.map +1 -0
  246. package/dist/download-LSAZD5JO.js +172 -0
  247. package/dist/download-LSAZD5JO.js.map +1 -0
  248. package/dist/draft-5UUJC675.js +335 -0
  249. package/dist/draft-5UUJC675.js.map +1 -0
  250. package/dist/draft-BATA5CVI.js +283 -0
  251. package/dist/draft-BATA5CVI.js.map +1 -0
  252. package/dist/draft-CRDBU6LF.js +308 -0
  253. package/dist/draft-P7IDMXWR.js +310 -0
  254. package/dist/draft-P7IDMXWR.js.map +1 -0
  255. package/dist/draft-YBNL4ZZA.js +220 -0
  256. package/dist/draft-YBNL4ZZA.js.map +1 -0
  257. package/dist/engine/index.js +7 -7
  258. package/dist/experiments-MLLTHMMS.js +236 -0
  259. package/dist/experiments-MLLTHMMS.js.map +1 -0
  260. package/dist/facets-KSHR3MBE.js +117 -0
  261. package/dist/facets-KSHR3MBE.js.map +1 -0
  262. package/dist/feedback-4GCPXZSI.js +111 -0
  263. package/dist/feedback-4GCPXZSI.js.map +1 -0
  264. package/dist/feedback-record-VEFHUIUJ.js +265 -0
  265. package/dist/feedback-record-VEFHUIUJ.js.map +1 -0
  266. package/dist/fetch-42QL56JC.js +179 -0
  267. package/dist/fetch-42QL56JC.js.map +1 -0
  268. package/dist/fit-Q5GRVF2O.js +65 -0
  269. package/dist/flows-M3WBZQET.js +250 -0
  270. package/dist/flows-M3WBZQET.js.map +1 -0
  271. package/dist/fonts-GD4YRXQU.js +39 -0
  272. package/dist/forecast-HT46MFL4.js +121 -0
  273. package/dist/forecast-HT46MFL4.js.map +1 -0
  274. package/dist/forecast-ONVS2QAI.js +169 -0
  275. package/dist/funnel-76BAD64Q.js +397 -0
  276. package/dist/funnel-76BAD64Q.js.map +1 -0
  277. package/dist/generate-VBEY3N3L.js +263 -0
  278. package/dist/get-4KFAO475.js +82 -0
  279. package/dist/get-4KFAO475.js.map +1 -0
  280. package/dist/get-QV5NIADE.js +59 -0
  281. package/dist/get-QV5NIADE.js.map +1 -0
  282. package/dist/google-7EZP7I6J.js +3267 -0
  283. package/dist/google-ads-J7WHTJO4.js +198 -0
  284. package/dist/google-ads-J7WHTJO4.js.map +1 -0
  285. package/dist/history-EULKWQUS.js +136 -0
  286. package/dist/history-EULKWQUS.js.map +1 -0
  287. package/dist/history-FEBJHFHJ.js +69 -0
  288. package/dist/history-FEBJHFHJ.js.map +1 -0
  289. package/dist/history-RDVV7KBN.js +102 -0
  290. package/dist/history-RDVV7KBN.js.map +1 -0
  291. package/dist/hubspot-A3RQNMYN.js +782 -0
  292. package/dist/hubspot-A3RQNMYN.js.map +1 -0
  293. package/dist/ideas-WX7EBPSF.js +45 -0
  294. package/dist/images-4AXF4LAC.js +92 -0
  295. package/dist/ingest-AM5YDTRH.js +110 -0
  296. package/dist/ingest-AM5YDTRH.js.map +1 -0
  297. package/dist/ingest-C3M4GUO6.js +26 -0
  298. package/dist/insights-UTCMSWSC.js +132 -0
  299. package/dist/insights-UTCMSWSC.js.map +1 -0
  300. package/dist/insights-XZL2EM53.js +439 -0
  301. package/dist/insights-XZL2EM53.js.map +1 -0
  302. package/dist/inspect-DWCLRZGR.js +192 -0
  303. package/dist/inspect-DWCLRZGR.js.map +1 -0
  304. package/dist/instant-experiences-RM4MLJTL.js +260 -0
  305. package/dist/instant-experiences-RM4MLJTL.js.map +1 -0
  306. package/dist/intent-ZMYMFGB4.js +95 -0
  307. package/dist/keyword-gap-XSJO2R77.js +130 -0
  308. package/dist/keyword-metrics-M46FCTAS.js +200 -0
  309. package/dist/keyword-metrics-M46FCTAS.js.map +1 -0
  310. package/dist/keywords-for-site-XNSLX7EA.js +131 -0
  311. package/dist/keywords-for-site-XNSLX7EA.js.map +1 -0
  312. package/dist/landing-MUNYZQNA.js +28 -0
  313. package/dist/languages-DIQ3OG3E.js +40 -0
  314. package/dist/lead-routes-XBO2GOBL.js +608 -0
  315. package/dist/lead-routes-XBO2GOBL.js.map +1 -0
  316. package/dist/leads-LAATTW5G.js +115 -0
  317. package/dist/leads-LAATTW5G.js.map +1 -0
  318. package/dist/leads-ULYHTG22.js +540 -0
  319. package/dist/leads-ULYHTG22.js.map +1 -0
  320. package/dist/learn-3GLY4G3H.js +207 -0
  321. package/dist/learn-3GLY4G3H.js.map +1 -0
  322. package/dist/line-item-writes-XJTTA3X5.js +211 -0
  323. package/dist/line-item-writes-XJTTA3X5.js.map +1 -0
  324. package/dist/line-items-JR25T2C5.js +107 -0
  325. package/dist/link-7DSLIF3I.js +67 -0
  326. package/dist/link-7DSLIF3I.js.map +1 -0
  327. package/dist/linkedin-W5BJ6HEH.js +1316 -0
  328. package/dist/linkedin-W5BJ6HEH.js.map +1 -0
  329. package/dist/linkedin-person-2ZYSOHYR.js +139 -0
  330. package/dist/linkedin-person-2ZYSOHYR.js.map +1 -0
  331. package/dist/list-3653DIYB.js +67 -0
  332. package/dist/list-3653DIYB.js.map +1 -0
  333. package/dist/list-G66HVYCR.js +306 -0
  334. package/dist/list-G66HVYCR.js.map +1 -0
  335. package/dist/list-Z4M53MS5.js +154 -0
  336. package/dist/list-Z4M53MS5.js.map +1 -0
  337. package/dist/locations-HTVYJSDJ.js +40 -0
  338. package/dist/locations-M2B5XDU4.js +69 -0
  339. package/dist/locations-M2B5XDU4.js.map +1 -0
  340. package/dist/log-2RJU5BOW.js +95 -0
  341. package/dist/log-2RJU5BOW.js.map +1 -0
  342. package/dist/lookup-S5VG7AWH.js +23 -0
  343. package/dist/make-MJ6JMU5T.js +1370 -0
  344. package/dist/make-MJ6JMU5T.js.map +1 -0
  345. package/dist/map-27IPOBY6.js +436 -0
  346. package/dist/map-27IPOBY6.js.map +1 -0
  347. package/dist/mcp-TFQTME4P.js +717 -0
  348. package/dist/mcp-TFQTME4P.js.map +1 -0
  349. package/dist/media-P4T4ZBNS.js +18 -0
  350. package/dist/media-sources-P246GM7W.js +35 -0
  351. package/dist/members-KOKBTUC2.js +47 -0
  352. package/dist/members-KOKBTUC2.js.map +1 -0
  353. package/dist/meta-IPLWNYC7.js +122 -0
  354. package/dist/metrics-WYWUX6Y5.js +152 -0
  355. package/dist/models-HJ7Y55AH.js +155 -0
  356. package/dist/normalize-GXBUNTYJ.js +144 -0
  357. package/dist/normalize-GXBUNTYJ.js.map +1 -0
  358. package/dist/options-MA25RNXF.js +125 -0
  359. package/dist/options-MA25RNXF.js.map +1 -0
  360. package/dist/organization-NLEVNGKQ.js +949 -0
  361. package/dist/organization-NLEVNGKQ.js.map +1 -0
  362. package/dist/page-photos-OQ5QATQH.js +118 -0
  363. package/dist/page-photos-OQ5QATQH.js.map +1 -0
  364. package/dist/performance-34EUP5KL.js +5541 -0
  365. package/dist/performance-34EUP5KL.js.map +1 -0
  366. package/dist/performance-J3DLNI2W.js +27 -0
  367. package/dist/pixels-THEGYRXT.js +62 -0
  368. package/dist/pixels-THEGYRXT.js.map +1 -0
  369. package/dist/plan-7UF76Q6U.js +208 -0
  370. package/dist/plan-7UF76Q6U.js.map +1 -0
  371. package/dist/preview-LRJOQ7LM.js +218 -0
  372. package/dist/preview-LRJOQ7LM.js.map +1 -0
  373. package/dist/promoted-tweet-writes-SBXWKO23.js +183 -0
  374. package/dist/promoted-tweet-writes-SBXWKO23.js.map +1 -0
  375. package/dist/promoted-tweets-W42FNWS7.js +119 -0
  376. package/dist/publish-YG76GOA7.js +344 -0
  377. package/dist/publish-YG76GOA7.js.map +1 -0
  378. package/dist/query-IQICLABN.js +62 -0
  379. package/dist/questionnaire-DWEH5II4.js +94 -0
  380. package/dist/questionnaire-DWEH5II4.js.map +1 -0
  381. package/dist/reddit-X4CERXYF.js +29 -0
  382. package/dist/refresh-A36GA7JN.js +97 -0
  383. package/dist/refresh-A36GA7JN.js.map +1 -0
  384. package/dist/release-3NCMZIDI.js +63 -0
  385. package/dist/release-3NCMZIDI.js.map +1 -0
  386. package/dist/relevant-pages-UDDQOYLD.js +99 -0
  387. package/dist/remove-6LE3XNRG.js +53 -0
  388. package/dist/remove-6LE3XNRG.js.map +1 -0
  389. package/dist/reopen-XLADJ2UU.js +66 -0
  390. package/dist/reopen-XLADJ2UU.js.map +1 -0
  391. package/dist/rerun-QVMFJZA2.js +95 -0
  392. package/dist/rerun-QVMFJZA2.js.map +1 -0
  393. package/dist/research-D5UUJF74.js +72 -0
  394. package/dist/research-QCI5ISUE.js +265 -0
  395. package/dist/research-QCI5ISUE.js.map +1 -0
  396. package/dist/reset-DD37KDXQ.js +57 -0
  397. package/dist/reset-DD37KDXQ.js.map +1 -0
  398. package/dist/reset-FLZPKY2N.js +57 -0
  399. package/dist/reset-FLZPKY2N.js.map +1 -0
  400. package/dist/resolve-KRKIJKT7.js +124 -0
  401. package/dist/resolve-KRKIJKT7.js.map +1 -0
  402. package/dist/retry-ALXYEKFV.js +65 -0
  403. package/dist/retry-ALXYEKFV.js.map +1 -0
  404. package/dist/retry-MIXKW4EW.js +63 -0
  405. package/dist/retry-MIXKW4EW.js.map +1 -0
  406. package/dist/revenue-UBZUTSXN.js +91 -0
  407. package/dist/revenue-UBZUTSXN.js.map +1 -0
  408. package/dist/rule-writes-UAVWT4XS.js +525 -0
  409. package/dist/rule-writes-UAVWT4XS.js.map +1 -0
  410. package/dist/rules-SO6P44B6.js +99 -0
  411. package/dist/rules-SO6P44B6.js.map +1 -0
  412. package/dist/rules-ZVS2MWED.js +217 -0
  413. package/dist/rules-add-XN3BZKFO.js +465 -0
  414. package/dist/rules-add-XN3BZKFO.js.map +1 -0
  415. package/dist/run-K2DOMOAN.js +69 -0
  416. package/dist/run-K2DOMOAN.js.map +1 -0
  417. package/dist/run-T7XAH2W5.js +70 -0
  418. package/dist/scaffold-ad-TWIT7R4U.js +1516 -0
  419. package/dist/scaffold-ad-TWIT7R4U.js.map +1 -0
  420. package/dist/scaffold-static-ad-GPJKOGOI.js +1015 -0
  421. package/dist/scaffold-static-ad-GPJKOGOI.js.map +1 -0
  422. package/dist/scaffold-video-7BQNOJ4S.js +888 -0
  423. package/dist/scaffold-video-7BQNOJ4S.js.map +1 -0
  424. package/dist/schedule-UTRVEWPE.js +64 -0
  425. package/dist/schedule-UTRVEWPE.js.map +1 -0
  426. package/dist/scheduled-agents-ZGCUZ6SB.js +55 -0
  427. package/dist/schema-D6BMZAPB.js +69 -0
  428. package/dist/schema-DSMF6ELE.js +135 -0
  429. package/dist/schema-DSMF6ELE.js.map +1 -0
  430. package/dist/search-2P72GSKY.js +177 -0
  431. package/dist/search-2P72GSKY.js.map +1 -0
  432. package/dist/select-N7VWQ2ZQ.js +106 -0
  433. package/dist/select-N7VWQ2ZQ.js.map +1 -0
  434. package/dist/sends-LAY5C74B.js +349 -0
  435. package/dist/sends-LAY5C74B.js.map +1 -0
  436. package/dist/set-prompt-3N3HMHT6.js +198 -0
  437. package/dist/set-prompt-3N3HMHT6.js.map +1 -0
  438. package/dist/setup-links-I5RFZTS4.js +144 -0
  439. package/dist/setup-links-I5RFZTS4.js.map +1 -0
  440. package/dist/shopify-LXSR37XI.js +3958 -0
  441. package/dist/shopify-LXSR37XI.js.map +1 -0
  442. package/dist/site-AI3BFWRK.js +180 -0
  443. package/dist/site-AI3BFWRK.js.map +1 -0
  444. package/dist/sources-AOF2YDYX.js +457 -0
  445. package/dist/sources-AOF2YDYX.js.map +1 -0
  446. package/dist/sources-DVMJEXEX.js +30 -0
  447. package/dist/stale-P4GGOLIB.js +76 -0
  448. package/dist/stale-P4GGOLIB.js.map +1 -0
  449. package/dist/status-O25MXHU4.js +65 -0
  450. package/dist/status-O25MXHU4.js.map +1 -0
  451. package/dist/studies-EPO2AM4M.js +250 -0
  452. package/dist/studio-5Z4NMA4K.js +49 -0
  453. package/dist/study-writes-7FP443QQ.js +470 -0
  454. package/dist/study-writes-7FP443QQ.js.map +1 -0
  455. package/dist/sync-2AI7LKKN.js +57 -0
  456. package/dist/sync-2AI7LKKN.js.map +1 -0
  457. package/dist/sync-definition-F3CXG6KG.js +69 -0
  458. package/dist/tags-SEZ2CQJM.js +26 -0
  459. package/dist/tags-TJDZXOXS.js +227 -0
  460. package/dist/tags-TJDZXOXS.js.map +1 -0
  461. package/dist/tags-YSC7ZILI.js +23 -0
  462. package/dist/tags-YSC7ZILI.js.map +1 -0
  463. package/dist/tags-Z6EALYOS.js +23 -0
  464. package/dist/tags-Z6EALYOS.js.map +1 -0
  465. package/dist/tags-ZXSVW6XO.js +23 -0
  466. package/dist/tags-ZXSVW6XO.js.map +1 -0
  467. package/dist/targeting-NKZFEZD7.js +762 -0
  468. package/dist/targeting-NKZFEZD7.js.map +1 -0
  469. package/dist/targeting-criteria-AU5CSMAU.js +113 -0
  470. package/dist/targets-IOIH5JYS.js +106 -0
  471. package/dist/targets-IOIH5JYS.js.map +1 -0
  472. package/dist/testimonials-Y6PUV6AL.js +32 -0
  473. package/dist/themes-PGPIAKAO.js +95 -0
  474. package/dist/top-companies-FSITN3ZR.js +111 -0
  475. package/dist/top-companies-FSITN3ZR.js.map +1 -0
  476. package/dist/transcript-CGPX7Y37.js +165 -0
  477. package/dist/transcript-CGPX7Y37.js.map +1 -0
  478. package/dist/translate-QCBMGOKR.js +609 -0
  479. package/dist/translate-QCBMGOKR.js.map +1 -0
  480. package/dist/triggers-MONMZSKT.js +144 -0
  481. package/dist/triggers-MONMZSKT.js.map +1 -0
  482. package/dist/unlink-I7QFQQKO.js +70 -0
  483. package/dist/unlink-I7QFQQKO.js.map +1 -0
  484. package/dist/unstage-JXG5AU5Q.js +88 -0
  485. package/dist/unstage-JXG5AU5Q.js.map +1 -0
  486. package/dist/unstage-ZA3WQBEA.js +96 -0
  487. package/dist/unstage-ZA3WQBEA.js.map +1 -0
  488. package/dist/update-BVZGM54I.js +66 -0
  489. package/dist/update-BVZGM54I.js.map +1 -0
  490. package/dist/update-EI2BHUM2.js +101 -0
  491. package/dist/update-EI2BHUM2.js.map +1 -0
  492. package/dist/update-RZSV4NYP.js +155 -0
  493. package/dist/update-RZSV4NYP.js.map +1 -0
  494. package/dist/update-WLDNOZ5U.js +192 -0
  495. package/dist/update-WLDNOZ5U.js.map +1 -0
  496. package/dist/upload-BP3YEQSF.js +129 -0
  497. package/dist/upload-BP3YEQSF.js.map +1 -0
  498. package/dist/url-options-63DED6CR.js +131 -0
  499. package/dist/url-options-63DED6CR.js.map +1 -0
  500. package/dist/url-params-TRFI2PMD.js +101 -0
  501. package/dist/url-params-TRFI2PMD.js.map +1 -0
  502. package/dist/validate-SNCR25A7.js +122 -0
  503. package/dist/validate-SNCR25A7.js.map +1 -0
  504. package/dist/videos-SVZV5YYC.js +41 -0
  505. package/dist/viewer-check-LUAEGV6H.js +83 -0
  506. package/dist/web-MJQEK7BB.js +143 -0
  507. package/dist/web-MJQEK7BB.js.map +1 -0
  508. package/dist/winning-ads-KNLJHHCO.js +86 -0
  509. package/dist/write-commands-NVCX7IAU.js +1502 -0
  510. package/dist/write-commands-NVCX7IAU.js.map +1 -0
  511. package/dist/write-commands-OGVDWWBV.js +1172 -0
  512. package/dist/write-commands-OGVDWWBV.js.map +1 -0
  513. package/dist/x-ZQNHYIDU.js +47 -0
  514. package/package.json +1 -1
  515. package/dist/account-UUAEQWO3.js +0 -80
  516. package/dist/account-UUAEQWO3.js.map +0 -1
  517. package/dist/account-WLQBAQMD.js +0 -80
  518. package/dist/account-WLQBAQMD.js.map +0 -1
  519. package/dist/account-assets-O7IA37RE.js +0 -290
  520. package/dist/account-level-EU7BWCO7.js +0 -609
  521. package/dist/account-level-EU7BWCO7.js.map +0 -1
  522. package/dist/account-reads-SNOWDHHF.js +0 -219
  523. package/dist/account-users-NV37Z2XJ.js +0 -62
  524. package/dist/account-users-NV37Z2XJ.js.map +0 -1
  525. package/dist/account-writes-TU3WJRSI.js +0 -66
  526. package/dist/account-writes-TU3WJRSI.js.map +0 -1
  527. package/dist/accounts-MZ6SETJJ.js +0 -78
  528. package/dist/accounts-MZ6SETJJ.js.map +0 -1
  529. package/dist/accounts-U7ZBEAY6.js +0 -699
  530. package/dist/accounts-U7ZBEAY6.js.map +0 -1
  531. package/dist/actions-4JYHXRFH.js +0 -55
  532. package/dist/activecampaign-IDBV26HH.js +0 -936
  533. package/dist/activecampaign-IDBV26HH.js.map +0 -1
  534. package/dist/ad-group-writes-HLBWN4E4.js +0 -170
  535. package/dist/ad-group-writes-HLBWN4E4.js.map +0 -1
  536. package/dist/ad-groups-33NZD6J3.js +0 -68
  537. package/dist/ad-groups-33NZD6J3.js.map +0 -1
  538. package/dist/ad-writes-7ZDNDZ2E.js +0 -174
  539. package/dist/ad-writes-7ZDNDZ2E.js.map +0 -1
  540. package/dist/add-AF42LQQQ.js +0 -105
  541. package/dist/add-AF42LQQQ.js.map +0 -1
  542. package/dist/add-LJRZYJ7I.js +0 -303
  543. package/dist/add-LJRZYJ7I.js.map +0 -1
  544. package/dist/ads-KBE5JXCH.js +0 -115
  545. package/dist/ads-LXWXOQHX.js +0 -48
  546. package/dist/ads-X3AM6M7L.js +0 -77
  547. package/dist/ads-X3AM6M7L.js.map +0 -1
  548. package/dist/adsets-YWBJFPAZ.js +0 -182
  549. package/dist/advertisers-6FOCN2W3.js +0 -121
  550. package/dist/advertisers-6FOCN2W3.js.map +0 -1
  551. package/dist/analytics-64HBRJJE.js +0 -2435
  552. package/dist/analytics-64HBRJJE.js.map +0 -1
  553. package/dist/analytics-VY5NL2GL.js +0 -445
  554. package/dist/analytics-VY5NL2GL.js.map +0 -1
  555. package/dist/animate-2BMHZ4FM.js +0 -480
  556. package/dist/asset-writes-72DEVXGO.js +0 -48
  557. package/dist/assign-N2I2BM67.js +0 -78
  558. package/dist/assign-N2I2BM67.js.map +0 -1
  559. package/dist/audience-size-H5DEZXJN.js +0 -74
  560. package/dist/audience-size-H5DEZXJN.js.map +0 -1
  561. package/dist/audience-writes-KCHLNFSI.js +0 -325
  562. package/dist/audience-writes-KCHLNFSI.js.map +0 -1
  563. package/dist/audiences-QAH42HIM.js +0 -86
  564. package/dist/audiences-WCDWN64L.js +0 -268
  565. package/dist/audiences-WCDWN64L.js.map +0 -1
  566. package/dist/audit-2AAF6AOX.js +0 -152
  567. package/dist/audit-2AAF6AOX.js.map +0 -1
  568. package/dist/autocomplete-3GSKRNCZ.js +0 -112
  569. package/dist/autocomplete-3GSKRNCZ.js.map +0 -1
  570. package/dist/avatars-N6W6HUPP.js +0 -38
  571. package/dist/bid-pricing-IMITXHXN.js +0 -101
  572. package/dist/bid-pricing-IMITXHXN.js.map +0 -1
  573. package/dist/brand-ITWQVZD2.js +0 -22
  574. package/dist/brief-JJNEYPYB.js +0 -541
  575. package/dist/brief-JJNEYPYB.js.map +0 -1
  576. package/dist/campaign-groups-TTQLP32Q.js +0 -97
  577. package/dist/campaign-groups-TTQLP32Q.js.map +0 -1
  578. package/dist/campaign-writes-MAKPHQ3V.js +0 -166
  579. package/dist/campaign-writes-MAKPHQ3V.js.map +0 -1
  580. package/dist/campaign-writes-XO74BALZ.js +0 -174
  581. package/dist/campaign-writes-XO74BALZ.js.map +0 -1
  582. package/dist/campaigns-5BIDXYSR.js +0 -111
  583. package/dist/campaigns-LS65QM6W.js +0 -76
  584. package/dist/campaigns-LS65QM6W.js.map +0 -1
  585. package/dist/campaigns-XZOQ2VTK.js +0 -130
  586. package/dist/campaigns-XZPXCS7I.js +0 -111
  587. package/dist/campaigns-XZPXCS7I.js.map +0 -1
  588. package/dist/canvas-SL3RMOY5.js +0 -46
  589. package/dist/capabilities-LSR5GCE6.js +0 -145
  590. package/dist/capabilities-LSR5GCE6.js.map +0 -1
  591. package/dist/catalog-TZLU5NWI.js +0 -65
  592. package/dist/catalogs-JLCSFZYC.js +0 -779
  593. package/dist/catalogs-JLCSFZYC.js.map +0 -1
  594. package/dist/catalogs-T23RKYFC.js +0 -128
  595. package/dist/catalogs-T23RKYFC.js.map +0 -1
  596. package/dist/changes-36C754R4.js +0 -135
  597. package/dist/chatgpt-3WFOPURY.js +0 -47
  598. package/dist/chats-GGYTXNJS.js +0 -277
  599. package/dist/chats-GGYTXNJS.js.map +0 -1
  600. package/dist/check-P7UPBBG7.js +0 -105
  601. package/dist/check-P7UPBBG7.js.map +0 -1
  602. package/dist/chunk-2TOIY2WN.js +0 -4254
  603. package/dist/chunk-2TOIY2WN.js.map +0 -1
  604. package/dist/chunk-3YJNSUNF.js +0 -131
  605. package/dist/chunk-4D46PS6J.js +0 -344
  606. package/dist/chunk-4GAEB6NK.js +0 -228
  607. package/dist/chunk-5XTGG4PV.js +0 -274
  608. package/dist/chunk-6JCX3YLM.js +0 -249
  609. package/dist/chunk-6KWEF6HF.js +0 -8914
  610. package/dist/chunk-7HZSORAB.js +0 -843
  611. package/dist/chunk-7J3NZBPV.js +0 -2982
  612. package/dist/chunk-7J3NZBPV.js.map +0 -1
  613. package/dist/chunk-A3IQAONL.js +0 -638
  614. package/dist/chunk-ALMYGH5U.js +0 -479
  615. package/dist/chunk-AQKRSEBQ.js +0 -103
  616. package/dist/chunk-ASRS37QE.js +0 -710
  617. package/dist/chunk-ASRS37QE.js.map +0 -1
  618. package/dist/chunk-BL6RTOK3.js +0 -297
  619. package/dist/chunk-C6CBBZBO.js +0 -203
  620. package/dist/chunk-CCEDZTP7.js +0 -391
  621. package/dist/chunk-CCEDZTP7.js.map +0 -1
  622. package/dist/chunk-CKQTJ2LV.js +0 -89
  623. package/dist/chunk-D3KLDIPQ.js +0 -45
  624. package/dist/chunk-DL2UJNJ7.js +0 -8954
  625. package/dist/chunk-DQ54POZN.js +0 -363
  626. package/dist/chunk-EDLZGTGN.js +0 -216
  627. package/dist/chunk-EDLZGTGN.js.map +0 -1
  628. package/dist/chunk-EXSHBYNQ.js +0 -349
  629. package/dist/chunk-EXSHBYNQ.js.map +0 -1
  630. package/dist/chunk-F4YQ5PVR.js +0 -1518
  631. package/dist/chunk-FFFJBNHA.js +0 -63
  632. package/dist/chunk-FFG2OYVV.js +0 -64
  633. package/dist/chunk-FKQK22IX.js +0 -51
  634. package/dist/chunk-FLK6QHOY.js +0 -142
  635. package/dist/chunk-GACSA5A6.js +0 -1646
  636. package/dist/chunk-HJKYTNAZ.js +0 -61
  637. package/dist/chunk-HML3VQIW.js +0 -225
  638. package/dist/chunk-INUU3752.js +0 -392
  639. package/dist/chunk-IQHO2ABF.js +0 -197
  640. package/dist/chunk-J3UWMBOP.js +0 -547
  641. package/dist/chunk-JAC6JVCI.js +0 -26
  642. package/dist/chunk-JDR3HUEL.js +0 -191
  643. package/dist/chunk-JI77AKT6.js +0 -19
  644. package/dist/chunk-JNURZHZJ.js +0 -942
  645. package/dist/chunk-JSNMKTFM.js +0 -592
  646. package/dist/chunk-K4FLWDEX.js +0 -122
  647. package/dist/chunk-KBRJSPIM.js +0 -676
  648. package/dist/chunk-LAC6YHHX.js +0 -97
  649. package/dist/chunk-LRV6M2WB.js +0 -1919
  650. package/dist/chunk-M7HD42M6.js +0 -24017
  651. package/dist/chunk-M7HD42M6.js.map +0 -1
  652. package/dist/chunk-MCJ5I5LR.js +0 -3187
  653. package/dist/chunk-MCJ5I5LR.js.map +0 -1
  654. package/dist/chunk-MGYC2IRC.js +0 -783
  655. package/dist/chunk-MI4HXE7M.js +0 -23
  656. package/dist/chunk-MJ7RNDD4.js +0 -910
  657. package/dist/chunk-MVD7QIXI.js +0 -46
  658. package/dist/chunk-MZPS46OR.js +0 -76
  659. package/dist/chunk-OBJCNGZL.js +0 -207
  660. package/dist/chunk-OJGYYH6K.js +0 -179
  661. package/dist/chunk-OLBLXJNI.js +0 -224
  662. package/dist/chunk-PFTYKINE.js +0 -207
  663. package/dist/chunk-PLBITHV6.js +0 -846
  664. package/dist/chunk-PX3PUDK7.js +0 -167
  665. package/dist/chunk-Q6JMMBSQ.js +0 -831
  666. package/dist/chunk-RAQHUMKS.js +0 -169
  667. package/dist/chunk-SA22KXWT.js +0 -163
  668. package/dist/chunk-SIXU5PDF.js +0 -66
  669. package/dist/chunk-SWN6OHXG.js +0 -148
  670. package/dist/chunk-SXMK5AEJ.js +0 -494
  671. package/dist/chunk-TTLD66NI.js +0 -319
  672. package/dist/chunk-TVAIOC77.js +0 -287
  673. package/dist/chunk-TVTSA4EN.js +0 -188
  674. package/dist/chunk-TX7CQTD4.js +0 -5368
  675. package/dist/chunk-UKSSNYLU.js +0 -98
  676. package/dist/chunk-V5NHJU3M.js +0 -604
  677. package/dist/chunk-VIPKDXGU.js +0 -4229
  678. package/dist/chunk-VIPKDXGU.js.map +0 -1
  679. package/dist/chunk-W4D7C74B.js +0 -387
  680. package/dist/chunk-WF25CCLD.js +0 -170
  681. package/dist/chunk-WQPUX3BA.js +0 -275
  682. package/dist/chunk-WR3FR3K3.js +0 -156
  683. package/dist/chunk-XDNJC62G.js +0 -91
  684. package/dist/chunk-XE6N4SZI.js +0 -429
  685. package/dist/chunk-XGPU2VDU.js +0 -219
  686. package/dist/chunk-XUJZO7MZ.js +0 -57
  687. package/dist/chunk-Y67LUJBE.js +0 -455
  688. package/dist/chunk-Y7XSDJEA.js +0 -3868
  689. package/dist/chunk-YNYAT2TZ.js +0 -285
  690. package/dist/chunk-ZNNQK366.js +0 -7198
  691. package/dist/chunk-ZNNQK366.js.map +0 -1
  692. package/dist/chunk-ZNRGH4NS.js +0 -150
  693. package/dist/claim-4KUETSW3.js +0 -198
  694. package/dist/claim-4KUETSW3.js.map +0 -1
  695. package/dist/companies-XFO6WPVT.js +0 -196
  696. package/dist/companies-XFO6WPVT.js.map +0 -1
  697. package/dist/company-OJGISG7K.js +0 -306
  698. package/dist/company-OJGISG7K.js.map +0 -1
  699. package/dist/complete-CXOST5J3.js +0 -82
  700. package/dist/complete-CXOST5J3.js.map +0 -1
  701. package/dist/connect-HPQ32KGV.js +0 -43
  702. package/dist/conversation-D5HKCTDA.js +0 -94
  703. package/dist/conversation-D5HKCTDA.js.map +0 -1
  704. package/dist/conversion-report-DKXFHLLX.js +0 -125
  705. package/dist/conversion-report-DKXFHLLX.js.map +0 -1
  706. package/dist/conversion-upload-command-KTYAY7IG.js +0 -439
  707. package/dist/conversion-writes-7ODJDAUP.js +0 -120
  708. package/dist/conversion-writes-7ODJDAUP.js.map +0 -1
  709. package/dist/conversions-BKVGNNC6.js +0 -76
  710. package/dist/conversions-BKVGNNC6.js.map +0 -1
  711. package/dist/conversions-SYNDEB6D.js +0 -138
  712. package/dist/conversions-SYNDEB6D.js.map +0 -1
  713. package/dist/copy-writes-P4WK6OPM.js +0 -168
  714. package/dist/copy-writes-P4WK6OPM.js.map +0 -1
  715. package/dist/create-7D4VD4TC.js +0 -208
  716. package/dist/create-7D4VD4TC.js.map +0 -1
  717. package/dist/create-7QDEAWZS.js +0 -133
  718. package/dist/create-7QDEAWZS.js.map +0 -1
  719. package/dist/create-IQSYEC4M.js +0 -60
  720. package/dist/create-IQSYEC4M.js.map +0 -1
  721. package/dist/create-TQSCM7MG.js +0 -237
  722. package/dist/create-TQSCM7MG.js.map +0 -1
  723. package/dist/creatives-JPKA2RHU.js +0 -89
  724. package/dist/creatives-RNOL4F4E.js +0 -58
  725. package/dist/creatives-RXI27T2D.js +0 -221
  726. package/dist/creatives-RXI27T2D.js.map +0 -1
  727. package/dist/credentials-PYW55B52.js +0 -288
  728. package/dist/credentials-PYW55B52.js.map +0 -1
  729. package/dist/critique-2SYHNAW5.js +0 -1449
  730. package/dist/critique-2SYHNAW5.js.map +0 -1
  731. package/dist/critique-72GFZSHA.js +0 -230
  732. package/dist/critique-72GFZSHA.js.map +0 -1
  733. package/dist/crm-EATDSXXB.js +0 -225
  734. package/dist/crm-EATDSXXB.js.map +0 -1
  735. package/dist/crm-XXP3VBYD.js +0 -321
  736. package/dist/crm-XXP3VBYD.js.map +0 -1
  737. package/dist/currency-R4ORE2U3.js +0 -88
  738. package/dist/custom-conversions-5HJBB5XL.js +0 -128
  739. package/dist/customers-OFZTEXST.js +0 -57
  740. package/dist/delete-FGVZIK4R.js +0 -55
  741. package/dist/delete-FGVZIK4R.js.map +0 -1
  742. package/dist/delete-HBZZL4UA.js +0 -67
  743. package/dist/delete-HBZZL4UA.js.map +0 -1
  744. package/dist/delete-JOUXMRIX.js +0 -65
  745. package/dist/delete-JOUXMRIX.js.map +0 -1
  746. package/dist/demographics-SB7NBYOI.js +0 -139
  747. package/dist/demographics-SB7NBYOI.js.map +0 -1
  748. package/dist/discard-YYGIRDII.js +0 -67
  749. package/dist/discard-YYGIRDII.js.map +0 -1
  750. package/dist/discover-GSJRZUOC.js +0 -172
  751. package/dist/domain-3KRAJAUH.js +0 -99
  752. package/dist/domain-3KRAJAUH.js.map +0 -1
  753. package/dist/download-QCBKJ6OR.js +0 -170
  754. package/dist/download-QCBKJ6OR.js.map +0 -1
  755. package/dist/draft-7CGFFZTH.js +0 -333
  756. package/dist/draft-7CGFFZTH.js.map +0 -1
  757. package/dist/draft-BI4NW6AU.js +0 -308
  758. package/dist/draft-BI4NW6AU.js.map +0 -1
  759. package/dist/draft-LPVK6YHI.js +0 -281
  760. package/dist/draft-LPVK6YHI.js.map +0 -1
  761. package/dist/draft-QF5JEUTH.js +0 -218
  762. package/dist/draft-QF5JEUTH.js.map +0 -1
  763. package/dist/draft-WYDMLNYA.js +0 -308
  764. package/dist/experiments-ZCEYRP3H.js +0 -234
  765. package/dist/experiments-ZCEYRP3H.js.map +0 -1
  766. package/dist/facets-G7ZDPI5Q.js +0 -115
  767. package/dist/facets-G7ZDPI5Q.js.map +0 -1
  768. package/dist/feedback-3U3CL2VB.js +0 -109
  769. package/dist/feedback-3U3CL2VB.js.map +0 -1
  770. package/dist/feedback-record-4ZHPENIP.js +0 -263
  771. package/dist/feedback-record-4ZHPENIP.js.map +0 -1
  772. package/dist/fetch-PNVNNWTP.js +0 -177
  773. package/dist/fetch-PNVNNWTP.js.map +0 -1
  774. package/dist/fit-53DGYRFD.js +0 -63
  775. package/dist/flows-JXLQBP5Q.js +0 -248
  776. package/dist/flows-JXLQBP5Q.js.map +0 -1
  777. package/dist/fonts-LFMBUT4R.js +0 -37
  778. package/dist/forecast-4AG5F7YC.js +0 -169
  779. package/dist/forecast-VZAXI74O.js +0 -119
  780. package/dist/forecast-VZAXI74O.js.map +0 -1
  781. package/dist/funnel-EACC35UD.js +0 -395
  782. package/dist/funnel-EACC35UD.js.map +0 -1
  783. package/dist/generate-NWHPM2GQ.js +0 -263
  784. package/dist/get-AXBVYGAC.js +0 -57
  785. package/dist/get-AXBVYGAC.js.map +0 -1
  786. package/dist/get-D6A27Q4E.js +0 -80
  787. package/dist/get-D6A27Q4E.js.map +0 -1
  788. package/dist/google-NAA4BASO.js +0 -3267
  789. package/dist/google-ads-OIYUNDXQ.js +0 -196
  790. package/dist/google-ads-OIYUNDXQ.js.map +0 -1
  791. package/dist/history-5MRLNTCI.js +0 -67
  792. package/dist/history-5MRLNTCI.js.map +0 -1
  793. package/dist/history-IDYNIB6R.js +0 -134
  794. package/dist/history-IDYNIB6R.js.map +0 -1
  795. package/dist/history-IOUKN3WD.js +0 -100
  796. package/dist/history-IOUKN3WD.js.map +0 -1
  797. package/dist/hubspot-HL6WGC4G.js +0 -780
  798. package/dist/hubspot-HL6WGC4G.js.map +0 -1
  799. package/dist/ideas-NK3KQHAK.js +0 -43
  800. package/dist/images-2XS3JT7E.js +0 -92
  801. package/dist/ingest-DHXWZZX4.js +0 -24
  802. package/dist/ingest-FGTJRCWK.js +0 -108
  803. package/dist/ingest-FGTJRCWK.js.map +0 -1
  804. package/dist/insights-M3CYB22P.js +0 -437
  805. package/dist/insights-M3CYB22P.js.map +0 -1
  806. package/dist/insights-XCT3ONC7.js +0 -130
  807. package/dist/insights-XCT3ONC7.js.map +0 -1
  808. package/dist/inspect-53GGYRC4.js +0 -190
  809. package/dist/inspect-53GGYRC4.js.map +0 -1
  810. package/dist/instant-experiences-HT3HB4QZ.js +0 -258
  811. package/dist/instant-experiences-HT3HB4QZ.js.map +0 -1
  812. package/dist/intent-NSHW7EJT.js +0 -95
  813. package/dist/keyword-gap-ITTWKBWZ.js +0 -130
  814. package/dist/keyword-metrics-LWPE3HHW.js +0 -198
  815. package/dist/keyword-metrics-LWPE3HHW.js.map +0 -1
  816. package/dist/keywords-for-site-5K25VJ35.js +0 -129
  817. package/dist/keywords-for-site-5K25VJ35.js.map +0 -1
  818. package/dist/landing-QONUUP3C.js +0 -28
  819. package/dist/languages-MEFQQBJ2.js +0 -40
  820. package/dist/leads-FSSISJGL.js +0 -113
  821. package/dist/leads-FSSISJGL.js.map +0 -1
  822. package/dist/leads-SZOGCQFK.js +0 -538
  823. package/dist/leads-SZOGCQFK.js.map +0 -1
  824. package/dist/learn-FWWJWBDN.js +0 -205
  825. package/dist/learn-FWWJWBDN.js.map +0 -1
  826. package/dist/line-item-writes-A3UQ44NG.js +0 -209
  827. package/dist/line-item-writes-A3UQ44NG.js.map +0 -1
  828. package/dist/line-items-OH426JGT.js +0 -107
  829. package/dist/link-67E4NVEX.js +0 -65
  830. package/dist/link-67E4NVEX.js.map +0 -1
  831. package/dist/linkedin-CT2OSQ2I.js +0 -1314
  832. package/dist/linkedin-CT2OSQ2I.js.map +0 -1
  833. package/dist/linkedin-person-OSNLPLJJ.js +0 -137
  834. package/dist/linkedin-person-OSNLPLJJ.js.map +0 -1
  835. package/dist/list-J4OUXAKN.js +0 -65
  836. package/dist/list-J4OUXAKN.js.map +0 -1
  837. package/dist/list-L2OQK4W3.js +0 -304
  838. package/dist/list-L2OQK4W3.js.map +0 -1
  839. package/dist/list-LHMDAA2D.js +0 -152
  840. package/dist/list-LHMDAA2D.js.map +0 -1
  841. package/dist/locations-RLWAS6AC.js +0 -40
  842. package/dist/locations-UKBOT6SB.js +0 -67
  843. package/dist/locations-UKBOT6SB.js.map +0 -1
  844. package/dist/log-4EIV54V4.js +0 -93
  845. package/dist/log-4EIV54V4.js.map +0 -1
  846. package/dist/lookup-ZJIP2M4X.js +0 -22
  847. package/dist/make-MFU3CSN7.js +0 -1368
  848. package/dist/make-MFU3CSN7.js.map +0 -1
  849. package/dist/map-VWWWMQLK.js +0 -434
  850. package/dist/map-VWWWMQLK.js.map +0 -1
  851. package/dist/mcp-EKLO2VD7.js +0 -715
  852. package/dist/mcp-EKLO2VD7.js.map +0 -1
  853. package/dist/media-ZWN7E777.js +0 -18
  854. package/dist/media-sources-7L622UTF.js +0 -35
  855. package/dist/members-QK5M5NCJ.js +0 -45
  856. package/dist/members-QK5M5NCJ.js.map +0 -1
  857. package/dist/meta-EHKXH257.js +0 -122
  858. package/dist/metrics-K6FDCMK7.js +0 -152
  859. package/dist/models-JQEPSPNQ.js +0 -155
  860. package/dist/normalize-WI4OGKH5.js +0 -142
  861. package/dist/normalize-WI4OGKH5.js.map +0 -1
  862. package/dist/options-FKJ2QXI6.js +0 -123
  863. package/dist/options-FKJ2QXI6.js.map +0 -1
  864. package/dist/organization-7A7MPUDG.js +0 -947
  865. package/dist/organization-7A7MPUDG.js.map +0 -1
  866. package/dist/page-photos-HWKQOSCU.js +0 -116
  867. package/dist/page-photos-HWKQOSCU.js.map +0 -1
  868. package/dist/performance-K4VB6L6Z.js +0 -25
  869. package/dist/performance-LHAL53YO.js +0 -5539
  870. package/dist/performance-LHAL53YO.js.map +0 -1
  871. package/dist/pixels-Z7ZGXAGB.js +0 -60
  872. package/dist/pixels-Z7ZGXAGB.js.map +0 -1
  873. package/dist/plan-TVQSEKYL.js +0 -207
  874. package/dist/plan-TVQSEKYL.js.map +0 -1
  875. package/dist/preview-CWRGDFCP.js +0 -216
  876. package/dist/preview-CWRGDFCP.js.map +0 -1
  877. package/dist/promoted-tweet-writes-V4ZVJOJU.js +0 -181
  878. package/dist/promoted-tweet-writes-V4ZVJOJU.js.map +0 -1
  879. package/dist/promoted-tweets-KPG4IUVD.js +0 -119
  880. package/dist/publish-Y465CVUD.js +0 -342
  881. package/dist/publish-Y465CVUD.js.map +0 -1
  882. package/dist/query-QM7MBQD7.js +0 -62
  883. package/dist/questionnaire-LEZJLMAV.js +0 -93
  884. package/dist/questionnaire-LEZJLMAV.js.map +0 -1
  885. package/dist/reddit-Z7DOVIGR.js +0 -27
  886. package/dist/refresh-A6TW2Z2F.js +0 -95
  887. package/dist/refresh-A6TW2Z2F.js.map +0 -1
  888. package/dist/release-UFESJ4TM.js +0 -61
  889. package/dist/release-UFESJ4TM.js.map +0 -1
  890. package/dist/relevant-pages-VOICMQ7U.js +0 -99
  891. package/dist/remove-YONNYA4G.js +0 -51
  892. package/dist/remove-YONNYA4G.js.map +0 -1
  893. package/dist/reopen-FYJU2IPO.js +0 -64
  894. package/dist/reopen-FYJU2IPO.js.map +0 -1
  895. package/dist/rerun-B5SBG6ZE.js +0 -93
  896. package/dist/rerun-B5SBG6ZE.js.map +0 -1
  897. package/dist/research-HW4EVOZU.js +0 -72
  898. package/dist/research-OV53DIBX.js +0 -263
  899. package/dist/research-OV53DIBX.js.map +0 -1
  900. package/dist/reset-R4SIQXFH.js +0 -55
  901. package/dist/reset-R4SIQXFH.js.map +0 -1
  902. package/dist/reset-X6ODAKYH.js +0 -55
  903. package/dist/reset-X6ODAKYH.js.map +0 -1
  904. package/dist/resolve-DNRJCLCR.js +0 -122
  905. package/dist/resolve-DNRJCLCR.js.map +0 -1
  906. package/dist/retry-D5MKBHUB.js +0 -63
  907. package/dist/retry-D5MKBHUB.js.map +0 -1
  908. package/dist/retry-DVFLE7JY.js +0 -61
  909. package/dist/retry-DVFLE7JY.js.map +0 -1
  910. package/dist/revenue-QGI6XWSK.js +0 -89
  911. package/dist/revenue-QGI6XWSK.js.map +0 -1
  912. package/dist/rule-writes-S3RN47OG.js +0 -523
  913. package/dist/rule-writes-S3RN47OG.js.map +0 -1
  914. package/dist/rules-KTJ2ZZ62.js +0 -217
  915. package/dist/rules-TR6BAC23.js +0 -97
  916. package/dist/rules-TR6BAC23.js.map +0 -1
  917. package/dist/rules-add-T5ZO5RLR.js +0 -463
  918. package/dist/rules-add-T5ZO5RLR.js.map +0 -1
  919. package/dist/run-WZ5IXWA4.js +0 -67
  920. package/dist/run-WZ5IXWA4.js.map +0 -1
  921. package/dist/run-YRR3KOUU.js +0 -68
  922. package/dist/scaffold-ad-DNUCGCIH.js +0 -1514
  923. package/dist/scaffold-ad-DNUCGCIH.js.map +0 -1
  924. package/dist/scaffold-static-ad-VR65EZAG.js +0 -1013
  925. package/dist/scaffold-static-ad-VR65EZAG.js.map +0 -1
  926. package/dist/scaffold-video-JLMKCCWE.js +0 -886
  927. package/dist/scaffold-video-JLMKCCWE.js.map +0 -1
  928. package/dist/schedule-VRHCVBZA.js +0 -62
  929. package/dist/schedule-VRHCVBZA.js.map +0 -1
  930. package/dist/scheduled-agents-DG7FTCUZ.js +0 -55
  931. package/dist/schema-6Y3IXFDC.js +0 -69
  932. package/dist/schema-WZKDWF5N.js +0 -133
  933. package/dist/schema-WZKDWF5N.js.map +0 -1
  934. package/dist/search-MN66QIKJ.js +0 -175
  935. package/dist/search-MN66QIKJ.js.map +0 -1
  936. package/dist/select-IPSM2BF2.js +0 -104
  937. package/dist/select-IPSM2BF2.js.map +0 -1
  938. package/dist/sends-6FI7WELX.js +0 -348
  939. package/dist/sends-6FI7WELX.js.map +0 -1
  940. package/dist/set-prompt-N6BD3DME.js +0 -196
  941. package/dist/set-prompt-N6BD3DME.js.map +0 -1
  942. package/dist/setup-links-GTA2AROS.js +0 -142
  943. package/dist/setup-links-GTA2AROS.js.map +0 -1
  944. package/dist/shopify-S4TG6WJH.js +0 -3956
  945. package/dist/shopify-S4TG6WJH.js.map +0 -1
  946. package/dist/site-NY622E3H.js +0 -178
  947. package/dist/site-NY622E3H.js.map +0 -1
  948. package/dist/sources-4F2XO7Z6.js +0 -455
  949. package/dist/sources-4F2XO7Z6.js.map +0 -1
  950. package/dist/sources-562ITR77.js +0 -30
  951. package/dist/stale-JKM6MXJF.js +0 -74
  952. package/dist/stale-JKM6MXJF.js.map +0 -1
  953. package/dist/status-AUWMUDA4.js +0 -63
  954. package/dist/status-AUWMUDA4.js.map +0 -1
  955. package/dist/studies-ZOEUY6YP.js +0 -250
  956. package/dist/studio-T5L7UEX6.js +0 -49
  957. package/dist/study-writes-DTGMCNFP.js +0 -468
  958. package/dist/study-writes-DTGMCNFP.js.map +0 -1
  959. package/dist/sync-76MCGHX4.js +0 -55
  960. package/dist/sync-76MCGHX4.js.map +0 -1
  961. package/dist/sync-definition-NJPT6ABG.js +0 -67
  962. package/dist/tags-5KBOJJ5R.js +0 -26
  963. package/dist/tags-CSMLTHTU.js +0 -21
  964. package/dist/tags-CSMLTHTU.js.map +0 -1
  965. package/dist/tags-IFRZYM3G.js +0 -21
  966. package/dist/tags-IFRZYM3G.js.map +0 -1
  967. package/dist/tags-S44ADJ75.js +0 -21
  968. package/dist/tags-S44ADJ75.js.map +0 -1
  969. package/dist/tags-WR7IY3OT.js +0 -225
  970. package/dist/tags-WR7IY3OT.js.map +0 -1
  971. package/dist/targeting-VBQY3HUN.js +0 -760
  972. package/dist/targeting-VBQY3HUN.js.map +0 -1
  973. package/dist/targeting-criteria-FJWNK53T.js +0 -113
  974. package/dist/targets-2EHMMXD4.js +0 -104
  975. package/dist/targets-2EHMMXD4.js.map +0 -1
  976. package/dist/testimonials-WAPFIGFJ.js +0 -32
  977. package/dist/themes-B4LCQUXB.js +0 -95
  978. package/dist/top-companies-DJ2XQKMW.js +0 -109
  979. package/dist/top-companies-DJ2XQKMW.js.map +0 -1
  980. package/dist/transcript-J3LGOHCM.js +0 -163
  981. package/dist/transcript-J3LGOHCM.js.map +0 -1
  982. package/dist/translate-6RXO4C6Z.js +0 -607
  983. package/dist/translate-6RXO4C6Z.js.map +0 -1
  984. package/dist/triggers-CYXPNHQB.js +0 -142
  985. package/dist/triggers-CYXPNHQB.js.map +0 -1
  986. package/dist/unlink-5FJI7XZB.js +0 -68
  987. package/dist/unlink-5FJI7XZB.js.map +0 -1
  988. package/dist/unstage-54ZE2SZK.js +0 -86
  989. package/dist/unstage-54ZE2SZK.js.map +0 -1
  990. package/dist/unstage-MDSSPUKV.js +0 -95
  991. package/dist/unstage-MDSSPUKV.js.map +0 -1
  992. package/dist/update-BVBFNFMO.js +0 -99
  993. package/dist/update-BVBFNFMO.js.map +0 -1
  994. package/dist/update-GV3T7ZRC.js +0 -190
  995. package/dist/update-GV3T7ZRC.js.map +0 -1
  996. package/dist/update-PUQWUGPJ.js +0 -64
  997. package/dist/update-PUQWUGPJ.js.map +0 -1
  998. package/dist/update-YQBK6C3L.js +0 -153
  999. package/dist/update-YQBK6C3L.js.map +0 -1
  1000. package/dist/upload-PXT5JAEV.js +0 -127
  1001. package/dist/upload-PXT5JAEV.js.map +0 -1
  1002. package/dist/url-options-IHL4OU4C.js +0 -130
  1003. package/dist/url-options-IHL4OU4C.js.map +0 -1
  1004. package/dist/url-params-IYUI6SFJ.js +0 -99
  1005. package/dist/url-params-IYUI6SFJ.js.map +0 -1
  1006. package/dist/validate-AD7F7LQ5.js +0 -120
  1007. package/dist/validate-AD7F7LQ5.js.map +0 -1
  1008. package/dist/videos-ZJCTODEB.js +0 -41
  1009. package/dist/viewer-check-GWZNGWCO.js +0 -81
  1010. package/dist/web-76CWAZNW.js +0 -141
  1011. package/dist/web-76CWAZNW.js.map +0 -1
  1012. package/dist/winning-ads-W7GTXTX7.js +0 -86
  1013. package/dist/write-commands-K6M3RTVK.js +0 -1170
  1014. package/dist/write-commands-K6M3RTVK.js.map +0 -1
  1015. package/dist/write-commands-VPU53DLB.js +0 -1498
  1016. package/dist/write-commands-VPU53DLB.js.map +0 -1
  1017. package/dist/x-V4NNNWRU.js +0 -47
  1018. /package/dist/{account-assets-O7IA37RE.js.map → account-assets-J5Z4URLQ.js.map} +0 -0
  1019. /package/dist/{account-reads-SNOWDHHF.js.map → account-reads-FOEVPWDP.js.map} +0 -0
  1020. /package/dist/{actions-4JYHXRFH.js.map → actions-QZDSLFFK.js.map} +0 -0
  1021. /package/dist/{ads-LXWXOQHX.js.map → ads-AYJAYLFR.js.map} +0 -0
  1022. /package/dist/{ads-KBE5JXCH.js.map → ads-MAOI7S6V.js.map} +0 -0
  1023. /package/dist/{adsets-YWBJFPAZ.js.map → adsets-QRKICEFD.js.map} +0 -0
  1024. /package/dist/{animate-2BMHZ4FM.js.map → animate-HRWFVE2N.js.map} +0 -0
  1025. /package/dist/{asset-writes-72DEVXGO.js.map → asset-writes-JLVUAVUZ.js.map} +0 -0
  1026. /package/dist/{audiences-QAH42HIM.js.map → audiences-CDDI5HR5.js.map} +0 -0
  1027. /package/dist/{avatars-N6W6HUPP.js.map → avatars-4HCGWBOL.js.map} +0 -0
  1028. /package/dist/{brand-ITWQVZD2.js.map → brand-C6OB6Q4U.js.map} +0 -0
  1029. /package/dist/{campaigns-XZOQ2VTK.js.map → campaigns-HES5MDUG.js.map} +0 -0
  1030. /package/dist/{campaigns-5BIDXYSR.js.map → campaigns-ZYU4BXDP.js.map} +0 -0
  1031. /package/dist/{canvas-SL3RMOY5.js.map → canvas-AI34UBGU.js.map} +0 -0
  1032. /package/dist/{catalog-TZLU5NWI.js.map → catalog-ZY3MFT55.js.map} +0 -0
  1033. /package/dist/{changes-36C754R4.js.map → changes-OOUVQDBY.js.map} +0 -0
  1034. /package/dist/{chatgpt-3WFOPURY.js.map → chatgpt-NAXIFWXV.js.map} +0 -0
  1035. /package/dist/{chunk-TTLD66NI.js.map → chunk-3CHYJYSS.js.map} +0 -0
  1036. /package/dist/{chunk-XE6N4SZI.js.map → chunk-3G3GC5N4.js.map} +0 -0
  1037. /package/dist/{chunk-5XTGG4PV.js.map → chunk-3M45PYU7.js.map} +0 -0
  1038. /package/dist/{chunk-MI4HXE7M.js.map → chunk-3QHXF3QI.js.map} +0 -0
  1039. /package/dist/{chunk-Y7XSDJEA.js.map → chunk-3XPHUMLJ.js.map} +0 -0
  1040. /package/dist/{chunk-MGYC2IRC.js.map → chunk-45EERHDB.js.map} +0 -0
  1041. /package/dist/{chunk-W4D7C74B.js.map → chunk-4FGTANFK.js.map} +0 -0
  1042. /package/dist/{chunk-PX3PUDK7.js.map → chunk-4IHWT7PH.js.map} +0 -0
  1043. /package/dist/{chunk-PLBITHV6.js.map → chunk-4LF4AYPT.js.map} +0 -0
  1044. /package/dist/{chunk-XGPU2VDU.js.map → chunk-4UQRXKYJ.js.map} +0 -0
  1045. /package/dist/{chunk-Y67LUJBE.js.map → chunk-5JJD33Y2.js.map} +0 -0
  1046. /package/dist/{chunk-Q6JMMBSQ.js.map → chunk-5K4QYYOJ.js.map} +0 -0
  1047. /package/dist/{chunk-SA22KXWT.js.map → chunk-5LJ6E4YU.js.map} +0 -0
  1048. /package/dist/{chunk-WQPUX3BA.js.map → chunk-5T73MMBL.js.map} +0 -0
  1049. /package/dist/{chunk-DQ54POZN.js.map → chunk-64MAHLTK.js.map} +0 -0
  1050. /package/dist/{chunk-JAC6JVCI.js.map → chunk-6OIKNJ7G.js.map} +0 -0
  1051. /package/dist/{chunk-3YJNSUNF.js.map → chunk-6ZFSDYWV.js.map} +0 -0
  1052. /package/dist/{chunk-TVAIOC77.js.map → chunk-7BUIOP36.js.map} +0 -0
  1053. /package/dist/{chunk-K4FLWDEX.js.map → chunk-AN4OEQXE.js.map} +0 -0
  1054. /package/dist/{chunk-TX7CQTD4.js.map → chunk-AULSX5ZA.js.map} +0 -0
  1055. /package/dist/{chunk-MVD7QIXI.js.map → chunk-AVYUFJQQ.js.map} +0 -0
  1056. /package/dist/{chunk-LAC6YHHX.js.map → chunk-B4YF7VQF.js.map} +0 -0
  1057. /package/dist/{chunk-UKSSNYLU.js.map → chunk-BDOYNGUL.js.map} +0 -0
  1058. /package/dist/{chunk-PFTYKINE.js.map → chunk-BJOK7QD4.js.map} +0 -0
  1059. /package/dist/{chunk-IQHO2ABF.js.map → chunk-CMCGFSUS.js.map} +0 -0
  1060. /package/dist/{chunk-KBRJSPIM.js.map → chunk-DMJUIUAL.js.map} +0 -0
  1061. /package/dist/{chunk-HML3VQIW.js.map → chunk-DUCUOZLS.js.map} +0 -0
  1062. /package/dist/{chunk-7HZSORAB.js.map → chunk-FJZYOVSW.js.map} +0 -0
  1063. /package/dist/{chunk-JI77AKT6.js.map → chunk-FKP4ECJY.js.map} +0 -0
  1064. /package/dist/{chunk-DL2UJNJ7.js.map → chunk-GNMEOU46.js.map} +0 -0
  1065. /package/dist/{chunk-WR3FR3K3.js.map → chunk-GYKYXWUQ.js.map} +0 -0
  1066. /package/dist/{chunk-BL6RTOK3.js.map → chunk-GYPLRU4Y.js.map} +0 -0
  1067. /package/dist/{chunk-YNYAT2TZ.js.map → chunk-I43ZEWJQ.js.map} +0 -0
  1068. /package/dist/{chunk-4GAEB6NK.js.map → chunk-IZABTTW5.js.map} +0 -0
  1069. /package/dist/{chunk-GACSA5A6.js.map → chunk-K7IE6UYV.js.map} +0 -0
  1070. /package/dist/{chunk-V5NHJU3M.js.map → chunk-KH5YHHJV.js.map} +0 -0
  1071. /package/dist/{chunk-FKQK22IX.js.map → chunk-KMY7AD3N.js.map} +0 -0
  1072. /package/dist/{chunk-6KWEF6HF.js.map → chunk-KPCHWDJM.js.map} +0 -0
  1073. /package/dist/{chunk-SWN6OHXG.js.map → chunk-KTZCLJ2D.js.map} +0 -0
  1074. /package/dist/{chunk-A3IQAONL.js.map → chunk-MKUA54QE.js.map} +0 -0
  1075. /package/dist/{chunk-FFFJBNHA.js.map → chunk-MTV2RSGY.js.map} +0 -0
  1076. /package/dist/{chunk-INUU3752.js.map → chunk-N2QX57K3.js.map} +0 -0
  1077. /package/dist/{chunk-OJGYYH6K.js.map → chunk-NB2FU6EZ.js.map} +0 -0
  1078. /package/dist/{chunk-ALMYGH5U.js.map → chunk-NEYWS2DQ.js.map} +0 -0
  1079. /package/dist/{chunk-TVTSA4EN.js.map → chunk-NWF2LRKO.js.map} +0 -0
  1080. /package/dist/{chunk-JDR3HUEL.js.map → chunk-OTC6UMJ2.js.map} +0 -0
  1081. /package/dist/{chunk-OLBLXJNI.js.map → chunk-OUY2IAWL.js.map} +0 -0
  1082. /package/dist/{chunk-4D46PS6J.js.map → chunk-PJXNCRMR.js.map} +0 -0
  1083. /package/dist/{chunk-XDNJC62G.js.map → chunk-PYQ3GF7R.js.map} +0 -0
  1084. /package/dist/{chunk-WF25CCLD.js.map → chunk-Q3EIVZAR.js.map} +0 -0
  1085. /package/dist/{chunk-OBJCNGZL.js.map → chunk-QDQZ62FL.js.map} +0 -0
  1086. /package/dist/{chunk-LRV6M2WB.js.map → chunk-QHZE62GP.js.map} +0 -0
  1087. /package/dist/{chunk-AQKRSEBQ.js.map → chunk-RGR6TSTJ.js.map} +0 -0
  1088. /package/dist/{chunk-C6CBBZBO.js.map → chunk-SAAXU7QR.js.map} +0 -0
  1089. /package/dist/{chunk-SIXU5PDF.js.map → chunk-SHTKLRI6.js.map} +0 -0
  1090. /package/dist/{chunk-MZPS46OR.js.map → chunk-SIKCVWM3.js.map} +0 -0
  1091. /package/dist/{chunk-CKQTJ2LV.js.map → chunk-SSXG53CZ.js.map} +0 -0
  1092. /package/dist/{chunk-J3UWMBOP.js.map → chunk-TBWAM577.js.map} +0 -0
  1093. /package/dist/{chunk-RAQHUMKS.js.map → chunk-TGPGQTZA.js.map} +0 -0
  1094. /package/dist/{chunk-F4YQ5PVR.js.map → chunk-UMIX2BMM.js.map} +0 -0
  1095. /package/dist/{chunk-ZNRGH4NS.js.map → chunk-URMAEVZO.js.map} +0 -0
  1096. /package/dist/{chunk-HJKYTNAZ.js.map → chunk-VBO3ZVUU.js.map} +0 -0
  1097. /package/dist/{chunk-JSNMKTFM.js.map → chunk-VFLYMHTO.js.map} +0 -0
  1098. /package/dist/{chunk-6JCX3YLM.js.map → chunk-VGYIVXIZ.js.map} +0 -0
  1099. /package/dist/{chunk-XUJZO7MZ.js.map → chunk-VIB7R533.js.map} +0 -0
  1100. /package/dist/{chunk-D3KLDIPQ.js.map → chunk-WLESMH4J.js.map} +0 -0
  1101. /package/dist/{chunk-MJ7RNDD4.js.map → chunk-WVWLPXBO.js.map} +0 -0
  1102. /package/dist/{chunk-SXMK5AEJ.js.map → chunk-XEH5XAP6.js.map} +0 -0
  1103. /package/dist/{chunk-FLK6QHOY.js.map → chunk-XEOKVL4E.js.map} +0 -0
  1104. /package/dist/{chunk-FFG2OYVV.js.map → chunk-XOGQJYXH.js.map} +0 -0
  1105. /package/dist/{chunk-JNURZHZJ.js.map → chunk-XUXRA7IB.js.map} +0 -0
  1106. /package/dist/{connect-HPQ32KGV.js.map → connect-IAXSZPGA.js.map} +0 -0
  1107. /package/dist/{conversion-upload-command-KTYAY7IG.js.map → conversion-upload-command-IHFKVX2M.js.map} +0 -0
  1108. /package/dist/{creatives-JPKA2RHU.js.map → creatives-BB6S2OF6.js.map} +0 -0
  1109. /package/dist/{creatives-RNOL4F4E.js.map → creatives-BZEVJ6ER.js.map} +0 -0
  1110. /package/dist/{currency-R4ORE2U3.js.map → currency-CGKO5GKH.js.map} +0 -0
  1111. /package/dist/{custom-conversions-5HJBB5XL.js.map → custom-conversions-HAGG72LF.js.map} +0 -0
  1112. /package/dist/{customers-OFZTEXST.js.map → customers-NKKU6S7G.js.map} +0 -0
  1113. /package/dist/{discover-GSJRZUOC.js.map → discover-VM3O7CQM.js.map} +0 -0
  1114. /package/dist/{draft-WYDMLNYA.js.map → draft-CRDBU6LF.js.map} +0 -0
  1115. /package/dist/{fit-53DGYRFD.js.map → fit-Q5GRVF2O.js.map} +0 -0
  1116. /package/dist/{fonts-LFMBUT4R.js.map → fonts-GD4YRXQU.js.map} +0 -0
  1117. /package/dist/{forecast-4AG5F7YC.js.map → forecast-ONVS2QAI.js.map} +0 -0
  1118. /package/dist/{generate-NWHPM2GQ.js.map → generate-VBEY3N3L.js.map} +0 -0
  1119. /package/dist/{google-NAA4BASO.js.map → google-7EZP7I6J.js.map} +0 -0
  1120. /package/dist/{ideas-NK3KQHAK.js.map → ideas-WX7EBPSF.js.map} +0 -0
  1121. /package/dist/{images-2XS3JT7E.js.map → images-4AXF4LAC.js.map} +0 -0
  1122. /package/dist/{ingest-DHXWZZX4.js.map → ingest-C3M4GUO6.js.map} +0 -0
  1123. /package/dist/{intent-NSHW7EJT.js.map → intent-ZMYMFGB4.js.map} +0 -0
  1124. /package/dist/{keyword-gap-ITTWKBWZ.js.map → keyword-gap-XSJO2R77.js.map} +0 -0
  1125. /package/dist/{landing-QONUUP3C.js.map → landing-MUNYZQNA.js.map} +0 -0
  1126. /package/dist/{languages-MEFQQBJ2.js.map → languages-DIQ3OG3E.js.map} +0 -0
  1127. /package/dist/{line-items-OH426JGT.js.map → line-items-JR25T2C5.js.map} +0 -0
  1128. /package/dist/{locations-RLWAS6AC.js.map → locations-HTVYJSDJ.js.map} +0 -0
  1129. /package/dist/{lookup-ZJIP2M4X.js.map → lookup-S5VG7AWH.js.map} +0 -0
  1130. /package/dist/{media-ZWN7E777.js.map → media-P4T4ZBNS.js.map} +0 -0
  1131. /package/dist/{media-sources-7L622UTF.js.map → media-sources-P246GM7W.js.map} +0 -0
  1132. /package/dist/{meta-EHKXH257.js.map → meta-IPLWNYC7.js.map} +0 -0
  1133. /package/dist/{metrics-K6FDCMK7.js.map → metrics-WYWUX6Y5.js.map} +0 -0
  1134. /package/dist/{models-JQEPSPNQ.js.map → models-HJ7Y55AH.js.map} +0 -0
  1135. /package/dist/{performance-K4VB6L6Z.js.map → performance-J3DLNI2W.js.map} +0 -0
  1136. /package/dist/{promoted-tweets-KPG4IUVD.js.map → promoted-tweets-W42FNWS7.js.map} +0 -0
  1137. /package/dist/{query-QM7MBQD7.js.map → query-IQICLABN.js.map} +0 -0
  1138. /package/dist/{reddit-Z7DOVIGR.js.map → reddit-X4CERXYF.js.map} +0 -0
  1139. /package/dist/{relevant-pages-VOICMQ7U.js.map → relevant-pages-UDDQOYLD.js.map} +0 -0
  1140. /package/dist/{research-HW4EVOZU.js.map → research-D5UUJF74.js.map} +0 -0
  1141. /package/dist/{rules-KTJ2ZZ62.js.map → rules-ZVS2MWED.js.map} +0 -0
  1142. /package/dist/{run-YRR3KOUU.js.map → run-T7XAH2W5.js.map} +0 -0
  1143. /package/dist/{scheduled-agents-DG7FTCUZ.js.map → scheduled-agents-ZGCUZ6SB.js.map} +0 -0
  1144. /package/dist/{schema-6Y3IXFDC.js.map → schema-D6BMZAPB.js.map} +0 -0
  1145. /package/dist/{sources-562ITR77.js.map → sources-DVMJEXEX.js.map} +0 -0
  1146. /package/dist/{studies-ZOEUY6YP.js.map → studies-EPO2AM4M.js.map} +0 -0
  1147. /package/dist/{studio-T5L7UEX6.js.map → studio-5Z4NMA4K.js.map} +0 -0
  1148. /package/dist/{sync-definition-NJPT6ABG.js.map → sync-definition-F3CXG6KG.js.map} +0 -0
  1149. /package/dist/{tags-5KBOJJ5R.js.map → tags-SEZ2CQJM.js.map} +0 -0
  1150. /package/dist/{targeting-criteria-FJWNK53T.js.map → targeting-criteria-AU5CSMAU.js.map} +0 -0
  1151. /package/dist/{testimonials-WAPFIGFJ.js.map → testimonials-Y6PUV6AL.js.map} +0 -0
  1152. /package/dist/{themes-B4LCQUXB.js.map → themes-PGPIAKAO.js.map} +0 -0
  1153. /package/dist/{videos-ZJCTODEB.js.map → videos-SVZV5YYC.js.map} +0 -0
  1154. /package/dist/{viewer-check-GWZNGWCO.js.map → viewer-check-LUAEGV6H.js.map} +0 -0
  1155. /package/dist/{winning-ads-W7GTXTX7.js.map → winning-ads-KNLJHHCO.js.map} +0 -0
  1156. /package/dist/{x-V4NNNWRU.js.map → x-ZQNHYIDU.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../api/src/ads-meta/discovery.ts","../src/commands/ads/meta/targeting.ts","../src/commands/ads/meta/targeting-rows.ts"],"sourcesContent":["/**\n * Wire contract for Meta's discovery reads — the lookups an agent needs before\n * it can write targeting at all, because Meta's targeting spec takes ids, never\n * names: detailed targeting (interests, behaviors, demographics, employers…),\n * places, languages, and the audience size a spec reaches.\n *\n * Shared by the CLI (which builds the request) and the backend route (which\n * parses it), so the two cannot drift.\n */\nimport { z } from \"zod\";\nimport { metaTargetingSchema } from \"./ops\";\n\n/**\n * `adTargetingCategory` classes Meta lists whole (v25.0). Each returns every\n * option of that class with its spec key in `type`, so a category is the way to\n * browse what exists when there is no word to search for.\n *\n * `user_device` and `user_os` are classes too, but their rows carry no id —\n * those keys take plain strings (`\"iPhone\"`, `\"iOS_ver_14.0_and_above\"`) — so\n * they are not listed here as options to paste.\n */\nexport const META_TARGETING_CATEGORY_CLASSES = [\n \"interests\",\n \"behaviors\",\n \"demographics\",\n \"life_events\",\n \"industries\",\n \"income\",\n \"family_statuses\",\n] as const;\n\n/**\n * `adgeolocation` location types. All of these answered a live search on v25.0\n * (2026-10-14); `location_types` on an ad set's own geo_locations is a separate,\n * retired modifier (1870199) and has nothing to do with this list.\n */\nexport const META_GEO_LOCATION_TYPES = [\n \"country\",\n \"country_group\",\n \"region\",\n \"city\",\n \"zip\",\n \"geo_market\",\n \"electoral_district\",\n \"neighborhood\",\n \"subcity\",\n \"metro_area\",\n \"medium_geo_area\",\n \"place\",\n] as const;\n\nconst accountIdSchema = z.string().regex(/^(act_)?\\d+$/, \"account id must be act_<digits>\");\nconst limitSchema = z.number().int().positive().max(1000).optional();\n\n/** A detailed-targeting option named by its spec key, as targeting_list wants it. */\nexport const metaTargetingRefSchema = z.object({ id: z.string().regex(/^\\d+$/), type: z.string().min(1) });\nexport type MetaTargetingRef = z.infer<typeof metaTargetingRefSchema>;\n\nexport const metaTargetingLookupRequestSchema = z.discriminatedUnion(\"mode\", [\n z.object({\n mode: z.literal(\"search\"),\n accountId: accountIdSchema,\n q: z.string().min(1),\n /** A spec key (interests, behaviors, work_employers, …) to keep the search to one kind. */\n type: z.string().min(1).optional(),\n /** Special Ad Categories: only the options Meta allows under them come back. */\n specialAdCategories: z.array(z.string().min(1)).optional(),\n limit: limitSchema,\n }),\n z.object({\n mode: z.literal(\"browse\"),\n accountId: accountIdSchema,\n type: z.string().min(1).optional(),\n /** Kept by Baker after the read: Meta's browse takes no text filter. */\n q: z.string().min(1).optional(),\n limit: limitSchema,\n }),\n z.object({\n mode: z.literal(\"categories\"),\n accountId: accountIdSchema,\n class: z.enum(META_TARGETING_CATEGORY_CLASSES),\n q: z.string().min(1).optional(),\n limit: limitSchema,\n }),\n z.object({\n mode: z.literal(\"suggest\"),\n accountId: accountIdSchema,\n options: z.array(metaTargetingRefSchema).min(1).max(50),\n limit: limitSchema,\n }),\n z.object({\n mode: z.literal(\"validate\"),\n accountId: accountIdSchema,\n options: z.array(metaTargetingRefSchema).max(500).optional(),\n names: z.array(z.string().min(1)).max(500).optional(),\n }),\n z.object({\n mode: z.literal(\"geo\"),\n accountId: accountIdSchema,\n q: z.string().min(1),\n locationTypes: z.array(z.enum(META_GEO_LOCATION_TYPES)).optional(),\n countryCode: z.string().length(2).optional(),\n limit: limitSchema,\n }),\n z.object({\n mode: z.literal(\"locales\"),\n accountId: accountIdSchema,\n q: z.string().min(1),\n limit: limitSchema,\n }),\n]);\nexport type MetaTargetingLookupRequest = z.infer<typeof metaTargetingLookupRequestSchema>;\nexport type MetaTargetingLookupMode = MetaTargetingLookupRequest[\"mode\"];\n\n/**\n * One option, whatever the lookup. `type` is the key it goes under in a\n * targeting spec (`interests`, `work_employers`, `city`, `locale`…), and for a\n * place or a language `id` is Meta's `key`.\n */\nexport interface MetaTargetingOption {\n id: string;\n name?: string;\n type?: string;\n path?: string[];\n description?: string;\n audience_size_lower_bound?: number;\n audience_size_upper_bound?: number;\n /** validate only: whether Meta accepts the option on this account. */\n valid?: boolean;\n /** validate only: Meta's delivery status for a valid option — NORMAL, DEPRECATING, NON-DELIVERABLE. */\n status?: string;\n country_code?: string;\n country_name?: string;\n region?: string;\n}\n\nexport const metaDeliveryEstimateRequestSchema = z\n .object({\n accountId: accountIdSchema,\n targeting: metaTargetingSchema.optional(),\n adSetId: z.string().regex(/^\\d+$/).optional(),\n optimizationGoal: z.string().min(1).optional(),\n promotedObject: z.record(z.string(), z.unknown()).optional(),\n })\n .refine((r) => (r.targeting === undefined) !== (r.adSetId === undefined), {\n message: \"pass either a targeting spec or an existing ad set id, not both\",\n })\n // An ad set carries its own goal; a bare spec has none, and Meta's estimate refuses it without one.\n .refine((r) => r.targeting === undefined || r.optimizationGoal !== undefined, {\n message: \"a targeting spec is sized for a goal — pass --optimization-goal (the ad set's, e.g. LINK_CLICKS)\",\n path: [\"optimizationGoal\"],\n });\nexport type MetaDeliveryEstimateRequest = z.infer<typeof metaDeliveryEstimateRequestSchema>;\n\n/**\n * A targeting spec, or a live ad set's, in Meta's own words — the lines Ads\n * Manager prints under \"Audience definition\" (`targetingsentencelines`).\n */\nexport const metaTargetingDescribeRequestSchema = z\n .object({\n accountId: accountIdSchema,\n targeting: metaTargetingSchema.optional(),\n adSetId: z.string().regex(/^\\d+$/).optional(),\n })\n .refine((r) => (r.targeting === undefined) !== (r.adSetId === undefined), {\n message: \"pass either a targeting spec or an existing ad set id, not both\",\n });\nexport type MetaTargetingDescribeRequest = z.infer<typeof metaTargetingDescribeRequestSchema>;\n\n/** Meta's sentence lines as one line each: \"Location - living in: Spain\". */\nexport function targetingSentences(lines: ReadonlyArray<{ content?: unknown; children?: unknown }>): string[] {\n return lines.flatMap((line) => {\n const head = typeof line.content === \"string\" ? line.content.trim() : \"\";\n const items = Array.isArray(line.children) ? line.children.filter((c): c is string => typeof c === \"string\") : [];\n if (!head && items.length === 0) return [];\n return [items.length > 0 ? `${head} ${items.join(\"; \")}`.trim() : head];\n });\n}\n\nexport interface MetaDeliveryEstimate {\n /** Monthly active people the spec can reach, as Meta's range. */\n audienceLowerBound?: number;\n audienceUpperBound?: number;\n /** False while Meta is still computing; ask again in a moment. */\n ready: boolean;\n}\n\n/**\n * At or below this many people Meta may not deliver at all, and an ad set that\n * does cannot exit learning. It is also the smallest number Meta's delivery\n * estimate ever reports: live on v25.0 a few-hundred-person spec estimated as\n * exactly 1000–1000, so an estimate AT the floor is the narrow one.\n */\nexport const META_SMALL_AUDIENCE_THRESHOLD = 1000;\n\n/** `geo_locations` key for each geo type that is listed as `[{ key }]`. */\nconst GEO_KEY_LISTS: Readonly<Record<string, string>> = {\n region: \"regions\",\n city: \"cities\",\n zip: \"zips\",\n geo_market: \"geo_markets\",\n electoral_district: \"electoral_districts\",\n neighborhood: \"neighborhoods\",\n subcity: \"subcities\",\n metro_area: \"metro_areas\",\n medium_geo_area: \"medium_geo_areas\",\n place: \"places\",\n};\n\ntype Fragment = Record<string, unknown>;\n\nfunction pushTo<T>(record: Record<string, T[]>, key: string, value: T): void {\n const list = record[key] ?? [];\n list.push(value);\n record[key] = list;\n}\n\n/** Where a place goes in geo_locations, and as what; undefined for anything that is not a place. */\nfunction geoEntry(option: MetaTargetingOption, type: string): { key: string; value: unknown } | undefined {\n if (type === \"country\") return { key: \"countries\", value: option.country_code ?? option.id };\n if (type === \"country_group\") return { key: \"country_groups\", value: option.id };\n const list = GEO_KEY_LISTS[type];\n return list ? { key: list, value: { key: option.id } } : undefined;\n}\n\n/**\n * The targeting fragment the given options make, ready to paste into the\n * `--targeting-file` of `adsets create|update`. Detailed options share one\n * flexible_spec group — Meta ORs inside a group and ANDs across groups — so a\n * fragment of interests and behaviors reaches people with ANY of them; places\n * become geo_locations, languages become locales.\n */\nexport function targetingFragment(options: readonly MetaTargetingOption[]): Fragment {\n const detailed: Record<string, Array<{ id: string; name?: string }>> = {};\n const geo: Record<string, unknown[]> = {};\n const locales: number[] = [];\n for (const option of options) {\n const type = option.type ?? \"interests\";\n const place = geoEntry(option, type);\n if (type === \"locale\") {\n locales.push(Number(option.id));\n } else if (place) {\n pushTo(geo, place.key, place.value);\n } else {\n pushTo(detailed, type, option.name ? { id: option.id, name: option.name } : { id: option.id });\n }\n }\n const fragment: Fragment = {};\n if (Object.keys(geo).length > 0) fragment.geo_locations = geo;\n if (locales.length > 0) fragment.locales = locales;\n if (Object.keys(detailed).length > 0) fragment.flexible_spec = [detailed];\n return fragment;\n}\n\n/** Keys whose entries are audiences or connections, never Targeting Search options. */\nconst NOT_DETAILED_OPTIONS = new Set([\n \"custom_audiences\",\n \"excluded_custom_audiences\",\n \"connections\",\n \"excluded_connections\",\n \"friends_of_connections\",\n \"product_audience_specs\",\n \"excluded_product_audience_specs\",\n]);\n\nconst NUMERIC_ID = /^\\d+$/;\n\nfunction entryId(entry: unknown): string | undefined {\n const id = typeof entry === \"object\" && entry !== null ? (entry as { id?: unknown }).id : undefined;\n // An id written as a JSON number is the same option; Meta takes either.\n const text = typeof id === \"number\" && Number.isSafeInteger(id) ? String(id) : id;\n return typeof text === \"string\" && NUMERIC_ID.test(text) ? text : undefined;\n}\n\n/**\n * The detailed-targeting keys a spec may carry at its top level as well as in\n * a flexible_spec group (Meta's detailed-targeting reference). Everything else\n * at the top level — places, ages, placements, audiences, demographic codes\n * written as bare numbers — is not a Targeting Search option.\n */\nconst TOP_LEVEL_DETAILED_KEYS = [\n \"interests\",\n \"behaviors\",\n \"life_events\",\n \"industries\",\n \"income\",\n \"family_statuses\",\n \"user_adclusters\",\n \"work_employers\",\n \"work_positions\",\n \"education_schools\",\n \"education_majors\",\n] as const;\n\nfunction collectEntries(type: string, entries: unknown[], seen: Set<string>, out: MetaTargetingRef[]): void {\n for (const entry of entries) {\n const id = entryId(entry);\n if (id === undefined || seen.has(`${type}:${id}`)) continue;\n seen.add(`${type}:${id}`);\n out.push({ id, type });\n }\n}\n\nfunction collectFrom(group: unknown, seen: Set<string>, out: MetaTargetingRef[]): void {\n if (typeof group !== \"object\" || group === null || Array.isArray(group)) return;\n for (const [type, entries] of Object.entries(group)) {\n if (!NOT_DETAILED_OPTIONS.has(type) && Array.isArray(entries)) collectEntries(type, entries, seen, out);\n }\n}\n\n/**\n * Every detailed-targeting option a spec names — at the top level, in each\n * flexible_spec group, and in exclusions — once each, with the key\n * it sits under, which is the `type` Meta's targeting validation needs.\n */\nexport function targetingOptionRefs(targeting: Record<string, unknown>): MetaTargetingRef[] {\n const seen = new Set<string>();\n const out: MetaTargetingRef[] = [];\n const { flexible_spec, exclusions, ...topLevel } = targeting;\n const detailed: ReadonlySet<string> = new Set(TOP_LEVEL_DETAILED_KEYS);\n collectFrom(Object.fromEntries(Object.entries(topLevel).filter(([key]) => detailed.has(key))), seen, out);\n if (Array.isArray(flexible_spec)) {\n for (const group of flexible_spec) collectFrom(group, seen, out);\n }\n collectFrom(exclusions, seen, out);\n return out;\n}\n","import {\n META_GEO_LOCATION_TYPES,\n META_TARGETING_CATEGORY_CLASSES,\n type MetaDeliveryEstimate,\n type MetaTargetingOption,\n type MetaTargetingRef,\n metaDeliveryEstimateRequestSchema,\n metaTargetingDescribeRequestSchema,\n metaTargetingLookupRequestSchema,\n targetingOptionRefs,\n} from \"@baker/api/ads-meta/discovery\";\nimport { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiPost } from \"../../../client.ts\";\nimport { repeatedValues } from \"../../../lib/repeatedFlags.ts\";\nimport { registerSchema } from \"../../../schemas.ts\";\nimport { writeAdsJson, writeAdsOutput, writeJsonEnvelope } from \"../output.ts\";\nimport { csvOrJson, handleMetaError, resolveAccountIdArg } from \"./shared.ts\";\nimport { compactTargetingOption, estimateHints, parseOptionRef, targetingHints } from \"./targeting-rows.ts\";\nimport { loadJsonFileArg } from \"./write-shared.ts\";\n\ntype Args = Record<string, unknown>;\n\nfunction failValidation(message: string): never {\n writeAdsJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message } });\n process.exit(1);\n}\n\nfunction limitArg(args: Args): number | undefined {\n if (args.limit === undefined) return undefined;\n const n = Number(args.limit);\n if (!Number.isInteger(n) || n <= 0 || n > 1000) failValidation(\"--limit must be a whole number from 1 to 1000\");\n return n;\n}\n\nfunction csvList(value: unknown): string[] | undefined {\n if (typeof value !== \"string\" || value.trim() === \"\") return undefined;\n return value\n .split(\",\")\n .map((part) => part.trim())\n .filter(Boolean);\n}\n\nfunction optionRefs(rawArgs: readonly string[] | undefined, parsed: unknown): MetaTargetingRef[] {\n return repeatedValues(rawArgs, \"id\", parsed).map((raw) => {\n const ref = parseOptionRef(raw);\n if (!ref) failValidation(`--id \"${raw}\" is not <type>:<id> (e.g. interests:6003437140731) or a bare id`);\n return ref;\n });\n}\n\nasync function runLookup(args: Args, request: Record<string, unknown>): Promise<void> {\n const parsed = metaTargetingLookupRequestSchema.safeParse(request);\n if (!parsed.success) {\n const issue = parsed.error.issues[0];\n failValidation(issue ? `${issue.path.join(\".\") || \"request\"}: ${issue.message}` : \"invalid request\");\n }\n try {\n const rows = await apiPost<MetaTargetingOption[]>(\"/api/ads/meta/targeting\", {\n ...parsed.data,\n ...(args[\"no-cache\"] ? { skipCache: true } : {}),\n });\n const data = args.full ? rows.map((row) => ({ ...row })) : rows.map(compactTargetingOption);\n const hints = targetingHints(parsed.data.mode, rows);\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n writeAdsOutput(data, fmt, undefined, hints);\n return;\n }\n writeJsonEnvelope({ ok: true, data, hints });\n } catch (err) {\n handleMetaError(err);\n }\n}\n\nconst commonArgs = {\n \"account-id\": {\n type: \"string\",\n description: \"Meta ad account ID (act_...) — options are looked up as this account sees them\",\n },\n limit: { type: \"string\", description: \"Max options (default 25, up to 1000)\" },\n full: {\n type: \"boolean\",\n description: \"Every field Meta sent (description, raw audience bounds) instead of the compact row\",\n },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json|csv|jsonl|md\", default: \"json\" },\n} as const;\n\nconst schemaCommonArgs = {\n \"account-id\": { type: \"string\", description: \"Meta ad account ID (act_123)\", required: false },\n limit: { type: \"string\", description: \"Max options (default 25)\", required: false },\n full: { type: \"boolean\", description: \"Every field Meta sent\", required: false },\n \"no-cache\": { type: \"boolean\", description: \"Bypass the cache\", required: false },\n output: { type: \"string\", description: \"json|csv|jsonl|md\", required: false, default: \"json\" },\n};\n\nregisterSchema({\n command: \"ads.meta.targeting.search\",\n description:\n \"Find Meta detailed-targeting ids by word — interests, behaviors, demographics, employers, job titles, schools, life events — across every kind at once. Start here before writing any interest or behavior into a --targeting-file: targeting takes ids, never names. Each row's `type` is the key it goes under.\",\n args: {\n q: { type: \"string\", description: \"Word to search (English names work best)\", required: true },\n type: {\n type: \"string\",\n description:\n \"Keep to one kind: interests|behaviors|work_employers|work_positions|education_schools|life_events|…\",\n required: false,\n },\n \"special-ad-category\": {\n type: \"string\",\n description: \"HOUSING|EMPLOYMENT|FINANCIAL_PRODUCTS_SERVICES — only options allowed under it\",\n required: false,\n },\n ...schemaCommonArgs,\n },\n});\n\nconst searchCommand = defineCommand({\n meta: {\n name: \"search\",\n description:\n 'Find detailed-targeting ids by word. Start here: baker ads meta targeting search --account-id act_123 --q \"solar energy\"',\n },\n args: {\n q: { type: \"string\", description: \"Word to search (English names work best)\", required: true },\n type: {\n type: \"string\",\n description: \"Keep to one spec key, e.g. interests, behaviors, work_employers, work_positions\",\n },\n \"special-ad-category\": {\n type: \"string\",\n description: \"Comma list of Special Ad Categories — returns only options Meta allows under them\",\n },\n ...commonArgs,\n },\n run: async ({ args }) =>\n runLookup(args, {\n mode: \"search\",\n accountId: resolveAccountIdArg(args),\n q: args.q,\n type: args.type,\n specialAdCategories: csvList(args[\"special-ad-category\"]),\n limit: limitArg(args),\n }),\n});\n\nregisterSchema({\n command: \"ads.meta.targeting.browse\",\n description:\n \"Browse Meta's detailed-targeting tree (what exists, with no word to search for), optionally one kind and narrowed by a word in the name or path.\",\n args: {\n type: { type: \"string\", description: \"interests|behaviors|life_events|work_positions|…\", required: false },\n q: { type: \"string\", description: \"Keep rows whose name or path contains this\", required: false },\n ...schemaCommonArgs,\n },\n});\n\nconst browseCommand = defineCommand({\n meta: {\n name: \"browse\",\n description:\n \"Browse the detailed-targeting tree. Example: baker ads meta targeting browse --account-id act_123 --type behaviors --q travel\",\n },\n args: {\n type: { type: \"string\", description: \"One spec key: interests, behaviors, life_events, …\" },\n q: { type: \"string\", description: \"Keep rows whose name or path contains this\" },\n ...commonArgs,\n },\n run: async ({ args }) =>\n runLookup(args, {\n mode: \"browse\",\n accountId: resolveAccountIdArg(args),\n type: args.type,\n q: args.q,\n limit: limitArg(args),\n }),\n});\n\nregisterSchema({\n command: \"ads.meta.targeting.categories\",\n description:\n \"List a whole Meta targeting class (behaviors, demographics, life_events, industries, income, family_statuses, …) — the fixed lists a search word rarely finds.\",\n args: {\n class: {\n type: \"string\",\n description: \"Targeting class\",\n required: true,\n enum: [...META_TARGETING_CATEGORY_CLASSES],\n },\n q: { type: \"string\", description: \"Keep rows whose name or path contains this\", required: false },\n ...schemaCommonArgs,\n },\n});\n\nconst categoriesCommand = defineCommand({\n meta: {\n name: \"categories\",\n description: `List one targeting class whole. Classes: ${META_TARGETING_CATEGORY_CLASSES.join(\", \")}. Example: baker ads meta targeting categories --account-id act_123 --class life_events --q parent`,\n },\n args: {\n class: { type: \"string\", description: `One of ${META_TARGETING_CATEGORY_CLASSES.join(\"|\")}`, required: true },\n q: { type: \"string\", description: \"Keep rows whose name or path contains this\" },\n ...commonArgs,\n },\n run: async ({ args }) =>\n runLookup(args, {\n mode: \"categories\",\n accountId: resolveAccountIdArg(args),\n class: args.class,\n q: args.q,\n limit: limitArg(args),\n }),\n});\n\nregisterSchema({\n command: \"ads.meta.targeting.suggest\",\n description:\n \"Options Meta suggests next to ones you already chose (Meta's 'Suggestions' in Ads Manager). Repeat --id <type>:<id>.\",\n args: {\n id: {\n type: \"string\",\n description: \"Repeatable <type>:<id>, e.g. interests:6003437140731 (a bare id is an interest)\",\n required: true,\n },\n ...schemaCommonArgs,\n },\n});\n\nconst suggestCommand = defineCommand({\n meta: {\n name: \"suggest\",\n description:\n \"Related options for ones you picked. Example: baker ads meta targeting suggest --account-id act_123 --id interests:6003437140731 --id behaviors:6002714898572\",\n },\n args: {\n id: { type: \"string\", description: \"Repeatable <type>:<id> (a bare id is read as an interest)\", required: true },\n ...commonArgs,\n },\n run: async ({ args, rawArgs }) =>\n runLookup(args, {\n mode: \"suggest\",\n accountId: resolveAccountIdArg(args),\n options: optionRefs(rawArgs, args.id),\n limit: limitArg(args),\n }),\n});\n\nregisterSchema({\n command: \"ads.meta.targeting.validate\",\n description:\n \"Check detailed-targeting ids before staging: whether Meta accepts each on this account under its key, and whether Meta is retiring it. Pass a whole --targeting-file, repeated --id <type>:<id>, or --name.\",\n args: {\n \"targeting-file\": {\n type: \"string\",\n description: \"The ad set's targeting JSON — every id in it is checked\",\n required: false,\n },\n id: { type: \"string\", description: \"Repeatable <type>:<id>\", required: false },\n name: { type: \"string\", description: \"Repeatable option name\", required: false },\n ...schemaCommonArgs,\n },\n});\n\nconst validateCommand = defineCommand({\n meta: {\n name: \"validate\",\n description:\n \"Validate targeting ids before staging. Example: baker ads meta targeting validate --account-id act_123 --targeting-file t.json\",\n },\n args: {\n \"targeting-file\": {\n type: \"string\",\n description: \"The ad set's targeting JSON — every detailed-targeting id in it\",\n },\n id: { type: \"string\", description: \"Repeatable <type>:<id>\" },\n name: { type: \"string\", description: \"Repeatable option name, matched exactly\" },\n ...commonArgs,\n },\n run: async ({ args, rawArgs }) => {\n const fromFile = args[\"targeting-file\"] ? targetingOptionRefs(loadJsonFileArg(args[\"targeting-file\"])) : [];\n const options = [...fromFile, ...optionRefs(rawArgs, args.id)];\n const names = repeatedValues(rawArgs, \"name\", args.name);\n if (options.length === 0 && names.length === 0) {\n failValidation(\n args[\"targeting-file\"]\n ? \"the targeting file names no detailed-targeting ids (interests, behaviors, flexible_spec …) — nothing to validate\"\n : \"pass --targeting-file, --id <type>:<id> or --name\",\n );\n }\n await runLookup(args, {\n mode: \"validate\",\n accountId: resolveAccountIdArg(args),\n ...(options.length > 0 ? { options } : {}),\n ...(names.length > 0 ? { names } : {}),\n });\n },\n});\n\nregisterSchema({\n command: \"ads.meta.targeting.geo\",\n description:\n \"Find Meta location keys — countries, regions, cities, zips, DMAs (geo_market), electoral districts, neighborhoods — for geo_locations.\",\n args: {\n q: { type: \"string\", description: \"Place name\", required: true },\n \"location-types\": {\n type: \"string\",\n description: `Comma list of ${META_GEO_LOCATION_TYPES.join(\"|\")}`,\n required: false,\n },\n country: { type: \"string\", description: \"ISO-2 country code to search within\", required: false },\n ...schemaCommonArgs,\n },\n});\n\nconst geoCommand = defineCommand({\n meta: {\n name: \"geo\",\n description:\n \"Find location keys for geo_locations. Example: baker ads meta targeting geo --account-id act_123 --q Madrid --location-types city,region --country ES\",\n },\n args: {\n q: { type: \"string\", description: \"Place name\", required: true },\n \"location-types\": { type: \"string\", description: `Comma list: ${META_GEO_LOCATION_TYPES.join(\", \")}` },\n country: { type: \"string\", description: \"ISO-2 country code to search within (ES, US, …)\" },\n ...commonArgs,\n },\n run: async ({ args }) =>\n runLookup(args, {\n mode: \"geo\",\n accountId: resolveAccountIdArg(args),\n q: args.q,\n locationTypes: csvList(args[\"location-types\"]),\n countryCode: args.country,\n limit: limitArg(args),\n }),\n});\n\nregisterSchema({\n command: \"ads.meta.targeting.locales\",\n description: \"Find Meta locale numbers for targeting.locales (languages people use Facebook in).\",\n args: {\n q: { type: \"string\", description: \"Language name, e.g. Spanish\", required: true },\n ...schemaCommonArgs,\n },\n});\n\nconst localesCommand = defineCommand({\n meta: {\n name: \"locales\",\n description:\n \"Find language numbers for targeting.locales. Example: baker ads meta targeting locales --account-id act_123 --q Spanish\",\n },\n args: {\n q: { type: \"string\", description: \"Language name\", required: true },\n ...commonArgs,\n },\n run: async ({ args }) =>\n runLookup(args, { mode: \"locales\", accountId: resolveAccountIdArg(args), q: args.q, limit: limitArg(args) }),\n});\n\nregisterSchema({\n command: \"ads.meta.targeting.estimate\",\n description:\n \"How many people a targeting spec reaches on this account for a goal (Meta's delivery estimate), or what an existing ad set reaches. Use it to size an audience before staging and to compare variants.\",\n args: {\n \"targeting-file\": { type: \"string\", description: \"Targeting JSON, as for adsets create\", required: false },\n \"adset-id\": { type: \"string\", description: \"Estimate an existing ad set instead\", required: false },\n \"optimization-goal\": {\n type: \"string\",\n description: \"e.g. LEAD_GENERATION, OFFSITE_CONVERSIONS, LINK_CLICKS\",\n required: false,\n },\n \"promoted-object\": {\n type: \"string\",\n description: 'JSON, e.g. {\"pixel_id\":\"111\",\"custom_event_type\":\"LEAD\"}',\n required: false,\n },\n \"account-id\": { type: \"string\", description: \"Meta ad account ID (act_123)\", required: false },\n },\n});\n\nfunction promotedObjectArg(raw: unknown): Record<string, unknown> | undefined {\n if (typeof raw !== \"string\" || raw === \"\") return undefined;\n try {\n const parsed = JSON.parse(raw) as unknown;\n if (parsed && typeof parsed === \"object\" && !Array.isArray(parsed)) return parsed as Record<string, unknown>;\n } catch {\n /* refused below */\n }\n failValidation(\"--promoted-object must be a JSON object\");\n}\n\nconst estimateCommand = defineCommand({\n meta: {\n name: \"estimate\",\n description:\n \"Audience size for a targeting spec or an ad set. Example: baker ads meta targeting estimate --account-id act_123 --targeting-file t.json --optimization-goal LEAD_GENERATION\",\n },\n args: {\n \"targeting-file\": { type: \"string\", description: \"Targeting JSON (the same file adsets create takes)\" },\n \"adset-id\": { type: \"string\", description: \"Existing ad set to estimate instead of a file\" },\n \"optimization-goal\": { type: \"string\", description: \"The ad set's optimization goal — the estimate depends on it\" },\n \"promoted-object\": { type: \"string\", description: \"Promoted object JSON for conversion goals\" },\n \"account-id\": commonArgs[\"account-id\"],\n },\n run: async ({ args }) => {\n const parsed = metaDeliveryEstimateRequestSchema.safeParse({\n accountId: resolveAccountIdArg(args),\n targeting: args[\"targeting-file\"] ? loadJsonFileArg(args[\"targeting-file\"]) : undefined,\n adSetId: args[\"adset-id\"],\n optimizationGoal: args[\"optimization-goal\"],\n promotedObject: promotedObjectArg(args[\"promoted-object\"]),\n });\n if (!parsed.success) {\n const issue = parsed.error.issues[0];\n failValidation(issue ? `${issue.path.join(\".\") || \"request\"}: ${issue.message}` : \"invalid request\");\n }\n try {\n const data = await apiPost<MetaDeliveryEstimate>(\"/api/ads/meta/delivery-estimate\", parsed.data);\n writeJsonEnvelope({ ok: true, data, hints: estimateHints(data) });\n } catch (err) {\n handleMetaError(err);\n }\n },\n});\n\nregisterSchema({\n command: \"ads.meta.targeting.describe\",\n description:\n \"A targeting spec, or a live ad set's targeting, in Meta's own words — the audience definition Ads Manager shows (locations, ages, interests, placements). Use it to say who an ad set reaches in plain words.\",\n args: {\n \"targeting-file\": { type: \"string\", description: \"Targeting JSON, as for adsets create\", required: false },\n \"adset-id\": { type: \"string\", description: \"Describe an existing ad set instead\", required: false },\n \"account-id\": { type: \"string\", description: \"Meta ad account ID (act_123)\", required: false },\n },\n});\n\nconst describeCommand = defineCommand({\n meta: {\n name: \"describe\",\n description:\n \"Who a targeting spec or an ad set reaches, in Meta's words. Example: baker ads meta targeting describe --account-id act_123 --adset-id 6123\",\n },\n args: {\n \"targeting-file\": { type: \"string\", description: \"Targeting JSON (the same file adsets create takes)\" },\n \"adset-id\": { type: \"string\", description: \"Existing ad set to describe instead of a file\" },\n \"account-id\": commonArgs[\"account-id\"],\n },\n run: async ({ args }) => {\n const parsed = metaTargetingDescribeRequestSchema.safeParse({\n accountId: resolveAccountIdArg(args),\n targeting: args[\"targeting-file\"] ? loadJsonFileArg(args[\"targeting-file\"]) : undefined,\n adSetId: args[\"adset-id\"],\n });\n if (!parsed.success) {\n const issue = parsed.error.issues[0];\n failValidation(issue ? `${issue.path.join(\".\") || \"request\"}: ${issue.message}` : \"invalid request\");\n }\n try {\n const data = await apiPost<string[]>(\"/api/ads/meta/targeting-describe\", parsed.data);\n writeJsonEnvelope({ ok: true, data });\n } catch (err) {\n handleMetaError(err);\n }\n },\n});\n\nexport const targetingCommand = defineCommand({\n meta: {\n name: \"targeting\",\n description: `Look up the ids Meta targeting takes, check them, and size the audience — all reads, nothing staged.\n\nStart here before writing interests, behaviors, places or languages into an ad set's --targeting-file:\n baker ads meta targeting search --account-id act_123 --q \"solar energy\" — detailed targeting ids, every kind\n baker ads meta targeting geo --account-id act_123 --q Madrid --country ES — location keys\n baker ads meta targeting locales --account-id act_123 --q Spanish — language numbers\n baker ads meta targeting categories --account-id act_123 --class behaviors — a whole class\n baker ads meta targeting browse --account-id act_123 --type interests --q energy\n baker ads meta targeting suggest --account-id act_123 --id interests:6003437140731\n baker ads meta targeting validate --account-id act_123 --targeting-file t.json — before staging\n baker ads meta targeting estimate --account-id act_123 --targeting-file t.json --optimization-goal LEAD_GENERATION\n baker ads meta targeting describe --account-id act_123 --adset-id 6123 — the audience in Meta's words`,\n },\n subCommands: {\n search: searchCommand,\n browse: browseCommand,\n categories: categoriesCommand,\n suggest: suggestCommand,\n validate: validateCommand,\n geo: geoCommand,\n locales: localesCommand,\n estimate: estimateCommand,\n describe: describeCommand,\n },\n});\n","import {\n META_SMALL_AUDIENCE_THRESHOLD,\n type MetaDeliveryEstimate,\n type MetaTargetingLookupMode,\n type MetaTargetingOption,\n type MetaTargetingRef,\n targetingFragment,\n} from \"@baker/api/ads-meta/discovery\";\n\n/** How many options the paste-ready fragment in the hints carries. */\nconst FRAGMENT_SIZE = 5;\n\nfunction humanCount(n: number): string {\n if (n >= 1e9) return `${(n / 1e9).toFixed(1).replace(/\\.0$/, \"\")}B`;\n if (n >= 1e6) return `${Math.round(n / 1e6)}M`;\n if (n >= 1e4) return `${Math.round(n / 1e3)}K`;\n return String(n);\n}\n\nexport function audienceRange(lower: number | undefined, upper: number | undefined): string | undefined {\n if (lower === undefined && upper === undefined) return undefined;\n if (lower === undefined || upper === undefined || lower === upper) return humanCount(upper ?? lower ?? 0);\n return `${humanCount(lower)}–${humanCount(upper)}`;\n}\n\n/** One option as the agent picks from it; the description and raw bounds sit behind --full. */\nexport function compactTargetingOption(option: MetaTargetingOption): Record<string, unknown> {\n const row: Record<string, unknown> = { id: option.id, name: option.name, type: option.type };\n if (option.path?.length) row.path = option.path.join(\" > \");\n const audience = audienceRange(option.audience_size_lower_bound, option.audience_size_upper_bound);\n if (audience) row.audience = audience;\n if (option.country_code) row.country = option.country_code;\n if (option.region) row.region = option.region;\n if (option.valid !== undefined) row.valid = option.valid;\n if (option.status) row.status = option.status;\n return row;\n}\n\nconst DETAILED_MODES: ReadonlySet<MetaTargetingLookupMode> = new Set([\"search\", \"browse\", \"categories\", \"suggest\"]);\n\nfunction pasteHint(rows: readonly MetaTargetingOption[], where: string): string {\n const fragment = JSON.stringify(targetingFragment(rows.slice(0, FRAGMENT_SIZE)));\n return `${where} — the first ${Math.min(rows.length, FRAGMENT_SIZE)} as a fragment of the ad set's --targeting-file (keep only the ones you mean): ${fragment}`;\n}\n\nfunction validationHints(rows: readonly MetaTargetingOption[]): string[] {\n const invalid = rows.filter((row) => row.valid === false);\n const retiring = rows.filter((row) => row.status === \"DEPRECATING\" || row.status === \"NON-DELIVERABLE\");\n const hints: string[] = [];\n if (invalid.length > 0) {\n hints.push(\n `${invalid.length} option(s) are not valid on this account (${invalid.map((r) => `${r.type ?? \"?\"} ${r.id}`).join(\", \")}) — staging an ad set with them is refused. An id only counts under the key Meta lists it with; find the right one with \\`targeting search --q <word>\\` and use its \\`type\\`.`,\n );\n }\n if (retiring.length > 0) {\n hints.push(\n `${retiring.map((r) => `${r.name ?? r.id} (${r.status})`).join(\", \")}: Meta is retiring these or no longer delivers to them — replace them; \\`targeting suggest --id <type>:<id>\\` lists close alternatives.`,\n );\n }\n if (hints.length === 0 && rows.length > 0) hints.push(\"Every option is valid and delivering on this account.\");\n return hints;\n}\n\n/** What to say about a lookup's rows, once: how to use them, or why there are none. */\nexport function targetingHints(mode: MetaTargetingLookupMode, rows: readonly MetaTargetingOption[]): string[] {\n if (mode === \"validate\") return validationHints(rows);\n if (rows.length === 0) {\n return [\n mode === \"geo\" || mode === \"locales\"\n ? \"Nothing matched. Meta matches the start of a place or language name — try the local spelling or a shorter word.\"\n : \"Nothing matched. Meta names options in English — try an English or broader word, `targeting browse --type interests`, or `targeting categories --class behaviors`.\",\n ];\n }\n if (DETAILED_MODES.has(mode)) {\n return [\n pasteHint(rows, \"Detailed targeting goes in flexible_spec\"),\n \"Options in one flexible_spec group are OR'd (anyone matching one); a second group ANDs (must match both). `type` is the key each id goes under — never move an id to another key. Audience sizes are Meta's worldwide range for the option alone; `targeting estimate` sizes the whole spec.\",\n ];\n }\n if (mode === \"geo\") {\n return [\n pasteHint(rows, \"Places go in geo_locations\"),\n 'A city can take \"radius\" + \"distance_unit\" (10–50 mile / 17–80 kilometer). Special Ad Categories refuse zips and electoral districts and need a 15 mile radius on cities.',\n ];\n }\n return [pasteHint(rows, \"Languages go in locales (numbers, not names)\")];\n}\n\nexport function estimateHints(estimate: MetaDeliveryEstimate): string[] {\n if (!estimate.ready) {\n return [\n \"Meta has not finished this estimate — run it again in a few seconds before reading the numbers. If it stays unready at 0, Meta could not size the spec at all: check its ids with `targeting validate --targeting-file <file>`.\",\n ];\n }\n const upper = estimate.audienceUpperBound;\n if (upper !== undefined && upper <= META_SMALL_AUDIENCE_THRESHOLD) {\n return [\n \"1,000 is the smallest estimate Meta reports, so this audience may be far smaller. Too narrow to deliver steadily or leave learning — widen places, ages or interests unless reaching only these people is the point. Staging an ad set with this audience warns the same.\",\n ];\n }\n return [\n \"Monthly people the spec can reach for this goal (Meta's range, not a forecast of results). Compare variants by re-running with a changed --targeting-file.\",\n ];\n}\n\n/**\n * `--id <type>:<id>` — the spec key and id a search row carries. A bare id is\n * read as an interest, the case almost every suggestion starts from; Meta needs\n * the type, and refuses a suggestion request without it (subcode 1870017).\n */\nexport function parseOptionRef(raw: string): MetaTargetingRef | undefined {\n const match = /^(?:([a-z_]+):)?(\\d+)$/.exec(raw.trim());\n if (!match?.[2]) return undefined;\n return { type: match[1] ?? \"interests\", id: match[2] };\n}\n"],"mappings":"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","names":[]}
@@ -1,113 +0,0 @@
1
- import {
2
- parseXApiError
3
- } from "./chunk-FIN4ZXGJ.js";
4
- import {
5
- resolveXAccountId
6
- } from "./chunk-7NF73SCB.js";
7
- import {
8
- cacheGet,
9
- cacheSet,
10
- writeAdsJson,
11
- writeAdsOutput
12
- } from "./chunk-ZRP7Y2DM.js";
13
- import {
14
- ApiError,
15
- apiGet
16
- } from "./chunk-X7VQFLHI.js";
17
- import "./chunk-LU4HI4KI.js";
18
- import "./chunk-LGK7UWBN.js";
19
- import {
20
- registerSchema
21
- } from "./chunk-Q7US4OOA.js";
22
- import "./chunk-YQSBHWOI.js";
23
-
24
- // src/commands/ads/x/targeting-criteria.ts
25
- import { defineCommand } from "citty";
26
- registerSchema({
27
- command: "ads.x.targetingCriteria",
28
- description: "List targeting criteria attached to line items in an X Ads account. Returns targeting_type, targeting_value, name, operator_type per criterion. Filter by line-item-ids.",
29
- args: {
30
- "account-id": { type: "string", description: "X Ads account ID", required: false },
31
- "line-item-ids": { type: "string", description: "CSV of line item IDs", required: false },
32
- "no-cache": { type: "boolean", description: "Skip cache", required: false }
33
- }
34
- });
35
- var targetingCriteriaListCommand = defineCommand({
36
- meta: {
37
- name: "targeting-criteria",
38
- description: `List targeting criteria attached to line items.
39
-
40
- Examples:
41
- baker ads x targeting-criteria --account-id 18ce53xyz --line-item-ids abc`
42
- },
43
- args: {
44
- "account-id": { type: "string", description: "X Ads account ID", required: false },
45
- "line-item-ids": { type: "string", description: "CSV of line item IDs", required: false },
46
- "no-cache": { type: "boolean", description: "Skip cache", required: false },
47
- output: { type: "string", description: "Format: json|csv|md", required: false, default: "json" }
48
- },
49
- run: async ({ args }) => {
50
- const accountId = await resolveXAccountId(args);
51
- const useCache = !args["no-cache"];
52
- const cacheKey = `targeting-criteria:${accountId}:${args["line-item-ids"] ?? ""}`;
53
- if (useCache) {
54
- const cached = cacheGet("x-account-data", cacheKey);
55
- if (cached) {
56
- writeAdsJson({ ok: true, data: cached.data, cached: true });
57
- return;
58
- }
59
- }
60
- try {
61
- const params = { "account-id": accountId };
62
- if (args["line-item-ids"]) params["line-item-ids"] = args["line-item-ids"];
63
- if (!useCache) params["skip-cache"] = "true";
64
- const data = await apiGet("/api/ads/x/targeting-criteria", params);
65
- if (useCache) {
66
- cacheSet("x-account-data", cacheKey, data, 60 * 60 * 1e3);
67
- }
68
- const format = args.output || "json";
69
- if (format !== "json") {
70
- writeAdsOutput(data, format);
71
- return;
72
- }
73
- writeAdsJson({ ok: true, data });
74
- } catch (err) {
75
- if (err instanceof ApiError) {
76
- writeAdsJson(parseXApiError(err.message, accountId));
77
- process.exit(1);
78
- }
79
- writeAdsJson({ ok: false, error: { code: "NETWORK_ERROR", message: "Unexpected error" } });
80
- process.exit(1);
81
- }
82
- }
83
- });
84
- var targetingCriteriaCommand = defineCommand({
85
- meta: {
86
- name: "targeting-criteria",
87
- description: `Targeting attached to ad groups \u2014 read it, or stage a change.
88
-
89
- X stores each criterion as its own entity, so one op targets one value. Look
90
- values up with \`baker ads x targeting-constants\` first.
91
-
92
- Examples:
93
- baker ads x targeting-criteria --line-item-ids wiee9
94
- baker ads x targeting-criteria create --line-item-id wiee9 --type LOCATION --value 96683cc9126741d1
95
- baker ads x targeting-criteria remove 1dmtken`
96
- },
97
- subCommands: {
98
- list: targetingCriteriaListCommand,
99
- create: () => import("./promoted-tweet-writes-V4ZVJOJU.js").then((m) => m.targetingCriteriaCreateCommand),
100
- remove: () => import("./promoted-tweet-writes-V4ZVJOJU.js").then((m) => m.targetingCriteriaRemoveCommand)
101
- },
102
- args: {
103
- "account-id": { type: "string", description: "X Ads account ID" },
104
- "line-item-ids": { type: "string", description: "CSV of line item IDs" },
105
- "no-cache": { type: "boolean", description: "Skip cache" },
106
- output: { type: "string", description: "Format: json|csv|md", default: "json" }
107
- },
108
- default: "list"
109
- });
110
- export {
111
- targetingCriteriaCommand
112
- };
113
- //# sourceMappingURL=targeting-criteria-FJWNK53T.js.map
@@ -1,104 +0,0 @@
1
- import {
2
- chatBody,
3
- failApi,
4
- failValidation
5
- } from "./chunk-XE6N4SZI.js";
6
- import "./chunk-ASRS37QE.js";
7
- import {
8
- TRIGGER_KIND_IDS,
9
- TRIGGER_TARGET_FIELD_IDS
10
- } from "./chunk-ZNNQK366.js";
11
- import "./chunk-CAZGM2NX.js";
12
- import "./chunk-NZS3KEQ2.js";
13
- import "./chunk-GIWHHCD6.js";
14
- import "./chunk-NSBNIPIW.js";
15
- import "./chunk-2TOIY2WN.js";
16
- import {
17
- apiPost
18
- } from "./chunk-X7VQFLHI.js";
19
- import "./chunk-LU4HI4KI.js";
20
- import "./chunk-LGK7UWBN.js";
21
- import {
22
- registerSchema,
23
- writeJson
24
- } from "./chunk-Q7US4OOA.js";
25
- import "./chunk-YQSBHWOI.js";
26
-
27
- // src/commands/scheduled-agents/targets.ts
28
- import { defineCommand } from "citty";
29
- var ARGS = {
30
- trigger: {
31
- type: "string",
32
- description: "The trigger kind to point, e.g. task.claimed. `baker scheduled-agents triggers --trigger <kind>` lists its `pointAt` fields.",
33
- required: true
34
- },
35
- field: {
36
- type: "string",
37
- description: `Which of its narrowings to list: ${TRIGGER_TARGET_FIELD_IDS.join(", ")}. Defaults to the kind's first.`,
38
- required: false
39
- },
40
- search: { type: "string", description: "Only options whose name contains this.", required: false },
41
- form: {
42
- type: "string",
43
- description: "With --field stepId: the Form (slug) whose steps to list.",
44
- required: false
45
- },
46
- app: {
47
- type: "string",
48
- description: "With --trigger app.event and --field appEvent or account: the connected tool (slug) to list for.",
49
- required: false
50
- },
51
- event: {
52
- type: "string",
53
- description: "With --field appEvent --app <tool>: describe ONE event whole \u2014 every setting (description, default, examples) and every field it sends. Read it before narrowing.",
54
- required: false
55
- }
56
- };
57
- registerSchema({
58
- command: "scheduled-agents.targets",
59
- description: "What a trigger can be pointed at: the open Tasks, the company's scheduled agents, its review sources, followed competitors, pages, Forms and their steps, Knowledge collections, tools. Returns each option's value (pass it to the matching flag on create/update) with its name.",
60
- args: ARGS
61
- });
62
- var targetsCommand = defineCommand({
63
- meta: {
64
- name: "targets",
65
- description: `What a trigger can be pointed at \u2014 so "when a Task is picked up" becomes "when THIS Task is picked up".
66
-
67
- Each trigger's narrowings (\`pointAt\` in \`triggers\`) are chosen from a list, the same list the user's picker shows. Pass an option's \`value\` to the flag the response names; leave the flag off to run on any.
68
-
69
- Examples:
70
- baker scheduled-agents targets --trigger task.claimed --field taskId --search hero
71
- baker scheduled-agents targets --trigger session.published --field agentId
72
- baker scheduled-agents targets --trigger flow.step.submitted --field stepId --form quote
73
- baker scheduled-agents targets --trigger advertiser.new_ads
74
- baker scheduled-agents targets --trigger app.event --field toolkit
75
- baker scheduled-agents targets --trigger app.event --field appEvent --app gmail
76
- baker scheduled-agents targets --trigger app.event --field appEvent --app gmail --event GMAIL_NEW_GMAIL_MESSAGE
77
- Full guide: __tooling__/docs/tools/baker/scheduled-agents.md`
78
- },
79
- args: ARGS,
80
- run: async ({ args }) => {
81
- const trigger = args.trigger;
82
- if (!TRIGGER_KIND_IDS.some((kind) => kind === trigger)) {
83
- failValidation(`--trigger must be one of: ${TRIGGER_KIND_IDS.join(", ")}.`);
84
- }
85
- try {
86
- const response = await apiPost("/api/scheduled-agents/targets", {
87
- trigger,
88
- ...args.field ? { field: args.field } : {},
89
- ...args.search ? { search: args.search } : {},
90
- ...args.form ? { flowId: args.form } : {},
91
- ...args.app ? { toolkit: args.app } : {},
92
- ...args.event ? { event: args.event } : {},
93
- ...chatBody()
94
- });
95
- writeJson(response);
96
- } catch (err) {
97
- failApi(err);
98
- }
99
- }
100
- });
101
- export {
102
- targetsCommand
103
- };
104
- //# sourceMappingURL=targets-2EHMMXD4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/scheduled-agents/targets.ts"],"sourcesContent":["import { TRIGGER_KIND_IDS, TRIGGER_TARGET_FIELD_IDS } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { chatBody, failApi, failValidation } from \"./shared.ts\";\n\nconst ARGS = {\n trigger: {\n type: \"string\" as const,\n description:\n \"The trigger kind to point, e.g. task.claimed. `baker scheduled-agents triggers --trigger <kind>` lists its `pointAt` fields.\",\n required: true,\n },\n field: {\n type: \"string\" as const,\n description: `Which of its narrowings to list: ${TRIGGER_TARGET_FIELD_IDS.join(\", \")}. Defaults to the kind's first.`,\n required: false,\n },\n search: { type: \"string\" as const, description: \"Only options whose name contains this.\", required: false },\n form: {\n type: \"string\" as const,\n description: \"With --field stepId: the Form (slug) whose steps to list.\",\n required: false,\n },\n app: {\n type: \"string\" as const,\n description: \"With --trigger app.event and --field appEvent or account: the connected tool (slug) to list for.\",\n required: false,\n },\n event: {\n type: \"string\" as const,\n description:\n \"With --field appEvent --app <tool>: describe ONE event whole — every setting (description, default, examples) and every field it sends. Read it before narrowing.\",\n required: false,\n },\n};\n\nregisterSchema({\n command: \"scheduled-agents.targets\",\n description:\n \"What a trigger can be pointed at: the open Tasks, the company's scheduled agents, its review sources, followed competitors, pages, Forms and their steps, Knowledge collections, tools. Returns each option's value (pass it to the matching flag on create/update) with its name.\",\n args: ARGS,\n});\n\nexport const targetsCommand = defineCommand({\n meta: {\n name: \"targets\",\n description: `What a trigger can be pointed at — so \"when a Task is picked up\" becomes \"when THIS Task is picked up\".\n\nEach trigger's narrowings (\\`pointAt\\` in \\`triggers\\`) are chosen from a list, the same list the user's picker shows. Pass an option's \\`value\\` to the flag the response names; leave the flag off to run on any.\n\nExamples:\n baker scheduled-agents targets --trigger task.claimed --field taskId --search hero\n baker scheduled-agents targets --trigger session.published --field agentId\n baker scheduled-agents targets --trigger flow.step.submitted --field stepId --form quote\n baker scheduled-agents targets --trigger advertiser.new_ads\n baker scheduled-agents targets --trigger app.event --field toolkit\n baker scheduled-agents targets --trigger app.event --field appEvent --app gmail\n baker scheduled-agents targets --trigger app.event --field appEvent --app gmail --event GMAIL_NEW_GMAIL_MESSAGE\nFull guide: __tooling__/docs/tools/baker/scheduled-agents.md`,\n },\n args: ARGS,\n run: async ({ args }) => {\n const trigger = args.trigger;\n if (!TRIGGER_KIND_IDS.some((kind) => kind === trigger)) {\n failValidation(`--trigger must be one of: ${TRIGGER_KIND_IDS.join(\", \")}.`);\n }\n try {\n const response = await apiPost<{ ok: true; data: unknown }>(\"/api/scheduled-agents/targets\", {\n trigger,\n ...(args.field ? { field: args.field } : {}),\n ...(args.search ? { search: args.search } : {}),\n ...(args.form ? { flowId: args.form } : {}),\n ...(args.app ? { toolkit: args.app } : {}),\n ...(args.event ? { event: args.event } : {}),\n ...chatBody(),\n });\n writeJson(response);\n } catch (err) {\n failApi(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,qBAAqB;AAM9B,IAAM,OAAO;AAAA,EACX,SAAS;AAAA,IACP,MAAM;AAAA,IACN,aACE;AAAA,IACF,UAAU;AAAA,EACZ;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,aAAa,oCAAoC,yBAAyB,KAAK,IAAI,CAAC;AAAA,IACpF,UAAU;AAAA,EACZ;AAAA,EACA,QAAQ,EAAE,MAAM,UAAmB,aAAa,0CAA0C,UAAU,MAAM;AAAA,EAC1G,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,UAAU;AAAA,EACZ;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,aAAa;AAAA,IACb,UAAU;AAAA,EACZ;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,aACE;AAAA,IACF,UAAU;AAAA,EACZ;AACF;AAEA,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AACR,CAAC;AAEM,IAAM,iBAAiB,cAAc;AAAA,EAC1C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaf;AAAA,EACA,MAAM;AAAA,EACN,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,UAAU,KAAK;AACrB,QAAI,CAAC,iBAAiB,KAAK,CAAC,SAAS,SAAS,OAAO,GAAG;AACtD,qBAAe,6BAA6B,iBAAiB,KAAK,IAAI,CAAC,GAAG;AAAA,IAC5E;AACA,QAAI;AACF,YAAM,WAAW,MAAM,QAAqC,iCAAiC;AAAA,QAC3F;AAAA,QACA,GAAI,KAAK,QAAQ,EAAE,OAAO,KAAK,MAAM,IAAI,CAAC;AAAA,QAC1C,GAAI,KAAK,SAAS,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC;AAAA,QAC7C,GAAI,KAAK,OAAO,EAAE,QAAQ,KAAK,KAAK,IAAI,CAAC;AAAA,QACzC,GAAI,KAAK,MAAM,EAAE,SAAS,KAAK,IAAI,IAAI,CAAC;AAAA,QACxC,GAAI,KAAK,QAAQ,EAAE,OAAO,KAAK,MAAM,IAAI,CAAC;AAAA,QAC1C,GAAG,SAAS;AAAA,MACd,CAAC;AACD,gBAAU,QAAQ;AAAA,IACpB,SAAS,KAAK;AACZ,cAAQ,GAAG;AAAA,IACb;AAAA,EACF;AACF,CAAC;","names":[]}
@@ -1,32 +0,0 @@
1
- import "./chunk-YQSBHWOI.js";
2
-
3
- // src/commands/testimonials/index.ts
4
- import { defineCommand } from "citty";
5
- var testimonialsCommand = defineCommand({
6
- meta: {
7
- name: "testimonials",
8
- description: `Find and browse testimonials in Baker, and manage the review pages they come from. Subcommands: search, get, list, delete, tags, sources.
9
-
10
- Examples:
11
- baker testimonials search "great customer service" --limit 5
12
- baker testimonials search "value for money" --rating-min 4
13
- baker testimonials get <testimonial-id>
14
- baker testimonials list --source google --sentiment positive
15
- baker testimonials delete <testimonial-id> --dry-run
16
- baker testimonials tags
17
- baker testimonials sources add https://www.yelp.com/biz/acme-bakery-madrid
18
- Full guide: __tooling__/docs/tools/baker/testimonials.md`
19
- },
20
- subCommands: {
21
- get: () => import("./get-OB3UGRPN.js").then((m) => m.getCommand),
22
- search: () => import("./search-MN66QIKJ.js").then((m) => m.searchCommand),
23
- list: () => import("./list-LHMDAA2D.js").then((m) => m.listCommand),
24
- delete: () => import("./delete-HBZZL4UA.js").then((m) => m.deleteCommand),
25
- tags: () => import("./tags-S44ADJ75.js").then((m) => m.tagsCommand),
26
- sources: () => import("./sources-562ITR77.js").then((m) => m.sourcesCommand)
27
- }
28
- });
29
- export {
30
- testimonialsCommand
31
- };
32
- //# sourceMappingURL=testimonials-WAPFIGFJ.js.map
@@ -1,95 +0,0 @@
1
- import {
2
- exitWithServiceReadError
3
- } from "./chunk-HGUYC5K6.js";
4
- import {
5
- failWriteValidation,
6
- listFlag,
7
- requireCustomerId
8
- } from "./chunk-KBRJSPIM.js";
9
- import "./chunk-ERSX3MKH.js";
10
- import "./chunk-SCAGMX2I.js";
11
- import "./chunk-4NZ47VXO.js";
12
- import "./chunk-D5FY4FAK.js";
13
- import "./chunk-QPESDKZC.js";
14
- import "./chunk-Y2JZX6JB.js";
15
- import "./chunk-4GAEB6NK.js";
16
- import {
17
- getManagerIdForCustomer,
18
- writeJsonEnvelope
19
- } from "./chunk-ZRP7Y2DM.js";
20
- import "./chunk-E44NXCTL.js";
21
- import "./chunk-EJGAJHLB.js";
22
- import "./chunk-LNNTHEL7.js";
23
- import "./chunk-FOMFU2RX.js";
24
- import "./chunk-PSGIHSNC.js";
25
- import "./chunk-PONLPYD7.js";
26
- import "./chunk-NSBNIPIW.js";
27
- import "./chunk-2TOIY2WN.js";
28
- import {
29
- apiPost
30
- } from "./chunk-X7VQFLHI.js";
31
- import "./chunk-LU4HI4KI.js";
32
- import "./chunk-LGK7UWBN.js";
33
- import {
34
- registerSchema
35
- } from "./chunk-Q7US4OOA.js";
36
- import "./chunk-YQSBHWOI.js";
37
-
38
- // src/commands/ads/google/keywords/themes.ts
39
- import { defineCommand } from "citty";
40
- var ARGS = {
41
- "customer-id": { type: "string", description: "Google Ads customer ID (10 digits, no dashes)" },
42
- keywords: { type: "string", description: "Comma-separated keywords to place" },
43
- "ad-groups": {
44
- type: "string",
45
- description: "Comma-separated existing ad group ids (or resource names) to sort them into \u2014 read them with `ad-groups list`"
46
- }
47
- };
48
- registerSchema({
49
- command: "ads.google.keywords.themes",
50
- description: "Which existing ad group each keyword belongs in, by Google's reading of the ad groups' themes (Keyword Planner GenerateAdGroupThemes). Start here: `baker ads google keywords themes --customer-id 1234567890 --keywords \"solar panels,heat pumps\" --ad-groups 111,222`. Returns suggestions (keyword \u2192 suggested keyword, match type, ad group) and unusable_ad_groups (ones Google could not read a theme from).",
51
- args: Object.fromEntries(
52
- Object.entries(ARGS).map(([name, arg]) => [
53
- name,
54
- { type: arg.type, description: arg.description, required: false }
55
- ])
56
- )
57
- });
58
- var themesCommand = defineCommand({
59
- meta: {
60
- name: "themes",
61
- description: `Sort keywords into the existing ad groups whose theme fits them (Keyword Planner).
62
-
63
- Example:
64
- baker ads google keywords themes --customer-id 1234567890 --keywords "solar panels,heat pumps" --ad-groups 111,222`
65
- },
66
- args: ARGS,
67
- run: async ({ args }) => {
68
- const customerId = requireCustomerId(args);
69
- const keywords = listFlag(args.keywords);
70
- const adGroups = listFlag(args["ad-groups"]);
71
- if (!keywords?.length || !adGroups?.length) failWriteValidation("pass --keywords and --ad-groups");
72
- const managerId = getManagerIdForCustomer(customerId);
73
- try {
74
- const { data } = await apiPost(
75
- "/api/ads/google/keywords/themes",
76
- {
77
- customerId,
78
- ...managerId ? { managerId } : {},
79
- keywords,
80
- adGroups
81
- }
82
- );
83
- const hints = data.unusable_ad_groups.length > 0 ? [
84
- `${data.unusable_ad_groups.length} ad group(s) gave Google no theme to match against (removed, empty or under a removed campaign) \u2014 they received no keywords.`
85
- ] : [];
86
- writeJsonEnvelope(hints.length > 0 ? { ok: true, data, hints } : { ok: true, data });
87
- } catch (err) {
88
- exitWithServiceReadError(err);
89
- }
90
- }
91
- });
92
- export {
93
- themesCommand
94
- };
95
- //# sourceMappingURL=themes-B4LCQUXB.js.map
@@ -1,109 +0,0 @@
1
- import {
2
- csvOrJson,
3
- daysAgoIso,
4
- handleLinkedinError,
5
- todayIso
6
- } from "./chunk-PFTYKINE.js";
7
- import {
8
- TABLE_OUTPUT_FORMATS,
9
- outputFormatRefusal,
10
- writeAdsJson,
11
- writeAdsOutput,
12
- writeJsonEnvelope
13
- } from "./chunk-ZRP7Y2DM.js";
14
- import {
15
- NO_CACHE_ARG
16
- } from "./chunk-AGBBTTKA.js";
17
- import "./chunk-ZNNQK366.js";
18
- import "./chunk-CAZGM2NX.js";
19
- import "./chunk-NZS3KEQ2.js";
20
- import "./chunk-GIWHHCD6.js";
21
- import "./chunk-NSBNIPIW.js";
22
- import "./chunk-2TOIY2WN.js";
23
- import {
24
- apiPost
25
- } from "./chunk-X7VQFLHI.js";
26
- import "./chunk-LU4HI4KI.js";
27
- import "./chunk-LGK7UWBN.js";
28
- import "./chunk-Q7US4OOA.js";
29
- import "./chunk-YQSBHWOI.js";
30
-
31
- // src/commands/ads/linkedin/top-companies.ts
32
- import { defineCommand } from "citty";
33
- var COMPANIES_HINT = "For whole-account reach over months (one row per company, --by month|campaign, --with-domains), use `baker ads linkedin companies`.";
34
- var topCompaniesCommand = defineCommand({
35
- meta: {
36
- name: "top-companies",
37
- description: `Top companies whose employees saw / clicked / converted on a campaign.
38
-
39
- Wrapper for: analytics --pivot company. Returns rows sorted by impressions desc.
40
- Each row's pivot[] contains { urn, id, name } \u2014 org names are resolved automatically.
41
- Cross-reference names against your target account list to spot audience leakage.
42
-
43
- Demographic data is delayed 12-24h with a \u22653-event privacy floor.
44
-
45
- Examples:
46
- baker ads linkedin top-companies --campaign-id 1234 --last-days 30
47
- baker ads linkedin top-companies --campaign-id 1,2,3 --intent revenue --last-days 90 --top-n 50
48
- baker ads linkedin top-companies --campaign-id 1234 --output csv`
49
- },
50
- args: {
51
- "campaign-id": { type: "string", description: "Comma-separated campaign IDs (required)" },
52
- intent: { type: "string", description: "baseline | revenue | funnel | engagement | lead-gen (default: baseline)" },
53
- "top-n": { type: "string", description: "Top rows by impressions (default: 25)" },
54
- start: { type: "string", description: "Start date YYYY-MM-DD" },
55
- end: { type: "string", description: "End date YYYY-MM-DD" },
56
- "last-days": { type: "string", description: "Window relative to today (default: 30)" },
57
- "no-cache": NO_CACHE_ARG,
58
- output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
59
- },
60
- run: async ({ args }) => {
61
- const campaignIdsRaw = args["campaign-id"];
62
- const invalid = !campaignIdsRaw ? "--campaign-id is required: one campaign id, or several comma-separated. For every company the whole ad account reached, use `baker ads linkedin companies`." : outputFormatRefusal(csvOrJson(args), TABLE_OUTPUT_FORMATS);
63
- if (invalid !== null || !campaignIdsRaw) {
64
- writeAdsJson({ ok: false, error: { code: "INVALID_ARGS", message: invalid ?? "" } });
65
- process.exit(1);
66
- }
67
- const ids = campaignIdsRaw.split(",").map((s) => s.trim()).filter(Boolean);
68
- const intent = args.intent ?? "baseline";
69
- const topN = args["top-n"] ? Number(args["top-n"]) : 25;
70
- const start = args.start ?? daysAgoIso(args["last-days"] ? Number(args["last-days"]) : 30);
71
- const end = args.end ?? todayIso();
72
- try {
73
- const data = await apiPost("/api/ads/linkedin/analytics", {
74
- request: {
75
- level: "campaign",
76
- ids,
77
- intent,
78
- pivot: "company",
79
- start,
80
- end,
81
- granularity: "ALL",
82
- limit: 500
83
- },
84
- skipCache: Boolean(args["no-cache"])
85
- });
86
- const top = [...data.rows].sort((a, b) => Number(b.impressions ?? 0) - Number(a.impressions ?? 0)).slice(0, topN);
87
- const fmt = csvOrJson(args);
88
- if (fmt !== "json") {
89
- writeAdsOutput(top, fmt, data.fields, [COMPANIES_HINT]);
90
- return;
91
- }
92
- writeJsonEnvelope({
93
- ok: true,
94
- data: {
95
- query: { campaigns: ids, start, end, intent, topN },
96
- rows: top,
97
- warnings: data.warnings
98
- },
99
- hints: [COMPANIES_HINT]
100
- });
101
- } catch (err) {
102
- handleLinkedinError(err);
103
- }
104
- }
105
- });
106
- export {
107
- topCompaniesCommand
108
- };
109
- //# sourceMappingURL=top-companies-DJ2XQKMW.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/ads/linkedin/top-companies.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiPost } from \"../../../client.ts\";\nimport {\n outputFormatRefusal,\n TABLE_OUTPUT_FORMATS,\n writeAdsJson,\n writeAdsOutput,\n writeJsonEnvelope,\n} from \"../output.ts\";\nimport { csvOrJson, daysAgoIso, handleLinkedinError, todayIso } from \"./shared.ts\";\n\nconst COMPANIES_HINT =\n \"For whole-account reach over months (one row per company, --by month|campaign, --with-domains), use `baker ads linkedin companies`.\";\n\ninterface AnalyticsResponse {\n rows: Array<Record<string, unknown>>;\n fields: string[];\n warnings: Array<{ code: string; message: string }>;\n}\n\n/**\n * Top-companies — pivot=MEMBER_COMPANY shortcut. The single highest-leverage\n * LinkedIn-native query for ABM.\n *\n * pivotValues come back as [\"urn:li:organization:1234567\"]. The backend resolves\n * these org URNs to company names automatically (one batched, cached call), so\n * each row's pivot[] carries a `name`. URNs LinkedIn can't resolve stay unnamed —\n * use `baker ads linkedin resolve` to probe them individually.\n */\nexport const topCompaniesCommand = defineCommand({\n meta: {\n name: \"top-companies\",\n description: `Top companies whose employees saw / clicked / converted on a campaign.\n\nWrapper for: analytics --pivot company. Returns rows sorted by impressions desc.\nEach row's pivot[] contains { urn, id, name } — org names are resolved automatically.\nCross-reference names against your target account list to spot audience leakage.\n\nDemographic data is delayed 12-24h with a ≥3-event privacy floor.\n\nExamples:\n baker ads linkedin top-companies --campaign-id 1234 --last-days 30\n baker ads linkedin top-companies --campaign-id 1,2,3 --intent revenue --last-days 90 --top-n 50\n baker ads linkedin top-companies --campaign-id 1234 --output csv`,\n },\n args: {\n \"campaign-id\": { type: \"string\", description: \"Comma-separated campaign IDs (required)\" },\n intent: { type: \"string\", description: \"baseline | revenue | funnel | engagement | lead-gen (default: baseline)\" },\n \"top-n\": { type: \"string\", description: \"Top rows by impressions (default: 25)\" },\n start: { type: \"string\", description: \"Start date YYYY-MM-DD\" },\n end: { type: \"string\", description: \"End date YYYY-MM-DD\" },\n \"last-days\": { type: \"string\", description: \"Window relative to today (default: 30)\" },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json|csv|jsonl|md\", default: \"json\" },\n },\n run: async ({ args }) => {\n const campaignIdsRaw = args[\"campaign-id\"] as string | undefined;\n const invalid = !campaignIdsRaw\n ? \"--campaign-id is required: one campaign id, or several comma-separated. For every company the whole ad account reached, use `baker ads linkedin companies`.\"\n : outputFormatRefusal(csvOrJson(args), TABLE_OUTPUT_FORMATS);\n if (invalid !== null || !campaignIdsRaw) {\n writeAdsJson({ ok: false, error: { code: \"INVALID_ARGS\", message: invalid ?? \"\" } });\n process.exit(1);\n }\n const ids = campaignIdsRaw\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean);\n const intent = (args.intent as string | undefined) ?? \"baseline\";\n const topN = args[\"top-n\"] ? Number(args[\"top-n\"]) : 25;\n\n const start = (args.start as string | undefined) ?? daysAgoIso(args[\"last-days\"] ? Number(args[\"last-days\"]) : 30);\n const end = (args.end as string | undefined) ?? todayIso();\n\n try {\n const data = await apiPost<AnalyticsResponse>(\"/api/ads/linkedin/analytics\", {\n request: {\n level: \"campaign\",\n ids,\n intent,\n pivot: \"company\",\n start,\n end,\n granularity: \"ALL\",\n limit: 500,\n },\n skipCache: Boolean(args[\"no-cache\"]),\n });\n\n const top = [...data.rows].sort((a, b) => Number(b.impressions ?? 0) - Number(a.impressions ?? 0)).slice(0, topN);\n\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n writeAdsOutput(top, fmt, data.fields, [COMPANIES_HINT]);\n return;\n }\n writeJsonEnvelope({\n ok: true,\n data: {\n query: { campaigns: ids, start, end, intent, topN },\n rows: top,\n warnings: data.warnings,\n },\n hints: [COMPANIES_HINT],\n });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAY9B,IAAM,iBACJ;AAiBK,IAAM,sBAAsB,cAAc;AAAA,EAC/C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYf;AAAA,EACA,MAAM;AAAA,IACJ,eAAe,EAAE,MAAM,UAAU,aAAa,0CAA0C;AAAA,IACxF,QAAQ,EAAE,MAAM,UAAU,aAAa,0EAA0E;AAAA,IACjH,SAAS,EAAE,MAAM,UAAU,aAAa,wCAAwC;AAAA,IAChF,OAAO,EAAE,MAAM,UAAU,aAAa,wBAAwB;AAAA,IAC9D,KAAK,EAAE,MAAM,UAAU,aAAa,sBAAsB;AAAA,IAC1D,aAAa,EAAE,MAAM,UAAU,aAAa,yCAAyC;AAAA,IACrF,YAAY;AAAA,IACZ,QAAQ,EAAE,MAAM,UAAU,aAAa,qBAAqB,SAAS,OAAO;AAAA,EAC9E;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,iBAAiB,KAAK,aAAa;AACzC,UAAM,UAAU,CAAC,iBACb,gKACA,oBAAoB,UAAU,IAAI,GAAG,oBAAoB;AAC7D,QAAI,YAAY,QAAQ,CAAC,gBAAgB;AACvC,mBAAa,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,gBAAgB,SAAS,WAAW,GAAG,EAAE,CAAC;AACnF,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,UAAM,MAAM,eACT,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EACnB,OAAO,OAAO;AACjB,UAAM,SAAU,KAAK,UAAiC;AACtD,UAAM,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,OAAO,CAAC,IAAI;AAErD,UAAM,QAAS,KAAK,SAAgC,WAAW,KAAK,WAAW,IAAI,OAAO,KAAK,WAAW,CAAC,IAAI,EAAE;AACjH,UAAM,MAAO,KAAK,OAA8B,SAAS;AAEzD,QAAI;AACF,YAAM,OAAO,MAAM,QAA2B,+BAA+B;AAAA,QAC3E,SAAS;AAAA,UACP,OAAO;AAAA,UACP;AAAA,UACA;AAAA,UACA,OAAO;AAAA,UACP;AAAA,UACA;AAAA,UACA,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,QACA,WAAW,QAAQ,KAAK,UAAU,CAAC;AAAA,MACrC,CAAC;AAED,YAAM,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,EAAE,eAAe,CAAC,IAAI,OAAO,EAAE,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;AAEhH,YAAM,MAAM,UAAU,IAAI;AAC1B,UAAI,QAAQ,QAAQ;AAClB,uBAAe,KAAK,KAAK,KAAK,QAAQ,CAAC,cAAc,CAAC;AACtD;AAAA,MACF;AACA,wBAAkB;AAAA,QAChB,IAAI;AAAA,QACJ,MAAM;AAAA,UACJ,OAAO,EAAE,WAAW,KAAK,OAAO,KAAK,QAAQ,KAAK;AAAA,UAClD,MAAM;AAAA,UACN,UAAU,KAAK;AAAA,QACjB;AAAA,QACA,OAAO,CAAC,cAAc;AAAA,MACxB,CAAC;AAAA,IACH,SAAS,KAAK;AACZ,0BAAoB,GAAG;AAAA,IACzB;AAAA,EACF;AACF,CAAC;","names":[]}