@koda-sl/baker-cli 0.489.0-dev.63e618e80 → 0.490.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (991) hide show
  1. package/README.md +170 -8
  2. package/dist/account-3H6BZO5H.js +80 -0
  3. package/dist/account-IKFDY52P.js +138 -0
  4. package/dist/account-IKFDY52P.js.map +1 -0
  5. package/dist/account-KNRDOUJP.js +79 -0
  6. package/dist/account-assets-LKZVWZAR.js +289 -0
  7. package/dist/account-assets-LKZVWZAR.js.map +1 -0
  8. package/dist/account-level-UJOZDVXY.js +608 -0
  9. package/dist/account-level-UJOZDVXY.js.map +1 -0
  10. package/dist/account-reads-GA6FVKLE.js +218 -0
  11. package/dist/account-writes-AE5IJGGW.js +66 -0
  12. package/dist/accounts-K4INATCW.js +75 -0
  13. package/dist/accounts-RTN5ZGTU.js +611 -0
  14. package/dist/accounts-RW6KXBOQ.js +77 -0
  15. package/dist/actions-HNLISA7T.js +55 -0
  16. package/dist/activecampaign-I5CILZPU.js +935 -0
  17. package/dist/activities-T253KK4Q.js +74 -0
  18. package/dist/ad-group-writes-VRSBI2Z2.js +170 -0
  19. package/dist/ad-groups-IEBVEAMS.js +68 -0
  20. package/dist/ad-writes-ALV4KFPZ.js +174 -0
  21. package/dist/add-6WKPFMLG.js +302 -0
  22. package/dist/add-XF5COUAS.js +104 -0
  23. package/dist/ads-CQZHD7FC.js +77 -0
  24. package/dist/ads-QIKZ6O2N.js +40 -0
  25. package/dist/ads-ZEY72UBN.js +114 -0
  26. package/dist/ads-ZEY72UBN.js.map +1 -0
  27. package/dist/adsets-5H3MOT3D.js +177 -0
  28. package/dist/adsets-5H3MOT3D.js.map +1 -0
  29. package/dist/advertisers-6NUM2Q3A.js +120 -0
  30. package/dist/analytics-ALOZ7ZZ4.js +1976 -0
  31. package/dist/analytics-VLHE5A2M.js +433 -0
  32. package/dist/animate-SVEPM267.js +480 -0
  33. package/dist/asset-writes-L5TMKIZC.js +47 -0
  34. package/dist/assign-6HI6TNLP.js +77 -0
  35. package/dist/audience-size-25LP2OBF.js +73 -0
  36. package/dist/audience-writes-X52VG35Y.js +324 -0
  37. package/dist/audience-writes-X52VG35Y.js.map +1 -0
  38. package/dist/audiences-AAZH56WD.js +268 -0
  39. package/dist/audiences-X3RLGOVM.js +84 -0
  40. package/dist/audiences-X3RLGOVM.js.map +1 -0
  41. package/dist/audit-YY6X2MPA.js +151 -0
  42. package/dist/autocomplete-SAWJK4NF.js +111 -0
  43. package/dist/avatars-YSFFRHDK.js +38 -0
  44. package/dist/bid-pricing-HZ74SLEB.js +100 -0
  45. package/dist/brand-T3OACVQX.js +22 -0
  46. package/dist/brief-7S6XCJIA.js +538 -0
  47. package/dist/businesses-H3HIDQX6.js +53 -0
  48. package/dist/campaign-groups-YJK767AP.js +95 -0
  49. package/dist/campaign-writes-7ZF57KLH.js +165 -0
  50. package/dist/campaign-writes-7ZF57KLH.js.map +1 -0
  51. package/dist/campaign-writes-U5PUVSMT.js +170 -0
  52. package/dist/campaigns-AV6G3AUU.js +127 -0
  53. package/dist/campaigns-AV6G3AUU.js.map +1 -0
  54. package/dist/campaigns-GALDR5KK.js +109 -0
  55. package/dist/campaigns-JEIKY2M4.js +76 -0
  56. package/dist/campaigns-VTRMKSAT.js +107 -0
  57. package/dist/canvas-SVJEQO4V.js +46 -0
  58. package/dist/capabilities-2KT6TCGZ.js +144 -0
  59. package/dist/catalog-S32MX453.js +65 -0
  60. package/dist/catalogs-OCVXZLIF.js +128 -0
  61. package/dist/catalogs-RXJTZTVX.js +778 -0
  62. package/dist/catalogs-RXJTZTVX.js.map +1 -0
  63. package/dist/changes-5TOYRKZR.js +135 -0
  64. package/dist/chatgpt-QVF2FD3E.js +47 -0
  65. package/dist/chats-QG72JB6Y.js +276 -0
  66. package/dist/chats-QG72JB6Y.js.map +1 -0
  67. package/dist/check-SLNHVYGS.js +104 -0
  68. package/dist/chunk-2C7AHPM4.js +191 -0
  69. package/dist/chunk-2C7AHPM4.js.map +1 -0
  70. package/dist/chunk-2LI6746F.js +103 -0
  71. package/dist/chunk-2PWNIEW4.js +197 -0
  72. package/dist/chunk-2WZI36D3.js +317 -0
  73. package/dist/chunk-3W6G6ARX.js +122 -0
  74. package/dist/chunk-45UK4KYJ.js +1606 -0
  75. package/dist/chunk-46GWHUKN.js +225 -0
  76. package/dist/chunk-4AMIHNNP.js +1919 -0
  77. package/dist/chunk-4KJMLYCD.js +224 -0
  78. package/dist/chunk-5C35OW7L.js +205 -0
  79. package/dist/chunk-5C35OW7L.js.map +1 -0
  80. package/dist/chunk-5GQCN2QZ.js +391 -0
  81. package/dist/chunk-5GQCN2QZ.js.map +1 -0
  82. package/dist/chunk-5HJRZFMW.js +207 -0
  83. package/dist/chunk-65Y3RCWP.js +68 -0
  84. package/dist/chunk-65Y3RCWP.js.map +1 -0
  85. package/dist/chunk-66QHX566.js +6306 -0
  86. package/dist/chunk-6NCJGU6I.js +191 -0
  87. package/dist/chunk-6WCAV27H.js +494 -0
  88. package/dist/chunk-A4MVVPJ2.js +4204 -0
  89. package/dist/chunk-A4MVVPJ2.js.map +1 -0
  90. package/dist/chunk-AO45BX6Q.js +66 -0
  91. package/dist/chunk-AQM4JH62.js +274 -0
  92. package/dist/chunk-AQM4JH62.js.map +1 -0
  93. package/dist/chunk-BDYLILMW.js +150 -0
  94. package/dist/chunk-BL2MX6CR.js +249 -0
  95. package/dist/chunk-BOPC3D6I.js +604 -0
  96. package/dist/chunk-BTY4LZBG.js +46 -0
  97. package/dist/chunk-C7NWUCLQ.js +64 -0
  98. package/dist/chunk-CP4P6YKM.js +287 -0
  99. package/dist/chunk-CP4P6YKM.js.map +1 -0
  100. package/dist/chunk-D4CKCNGW.js +547 -0
  101. package/dist/chunk-D5CUAOQX.js +297 -0
  102. package/dist/chunk-D5UXWKLQ.js +903 -0
  103. package/dist/chunk-DCBZ5CHZ.js +139 -0
  104. package/dist/chunk-E2RFM6R2.js +1518 -0
  105. package/dist/chunk-EOY6BK4C.js +148 -0
  106. package/dist/chunk-FA4YZFRV.js +392 -0
  107. package/dist/chunk-FVHJCERJ.js +942 -0
  108. package/dist/chunk-G2LGMWNG.js +627 -0
  109. package/dist/chunk-G4STCTY3.js +399 -0
  110. package/dist/chunk-G6XKD7QE.js +77 -0
  111. package/dist/chunk-GSZZLW5Q.js +831 -0
  112. package/dist/chunk-HLVRHBKL.js +1078 -0
  113. package/dist/chunk-HLVRHBKL.js.map +1 -0
  114. package/dist/chunk-HSPMBLKE.js +363 -0
  115. package/dist/chunk-IG627WWY.js +23992 -0
  116. package/dist/chunk-IG627WWY.js.map +1 -0
  117. package/dist/chunk-IJ22WP3G.js +275 -0
  118. package/dist/chunk-IKCP5NCE.js +843 -0
  119. package/dist/chunk-ILSKYRDR.js +169 -0
  120. package/dist/chunk-JAC6JVCI.js +26 -0
  121. package/dist/chunk-JKJQWRLO.js +91 -0
  122. package/dist/chunk-JQH5VG6F.js +5368 -0
  123. package/dist/chunk-JQU2LUZG.js +57 -0
  124. package/dist/chunk-JVH5A3XC.js +8914 -0
  125. package/dist/chunk-JYALBYN7.js +131 -0
  126. package/dist/chunk-KOXDXSKN.js +8939 -0
  127. package/dist/chunk-LOMH4TTC.js +1079 -0
  128. package/dist/chunk-LXQB4ZGE.js +142 -0
  129. package/dist/chunk-M6PN3VH6.js +19 -0
  130. package/dist/chunk-M7IJU77B.js +665 -0
  131. package/dist/chunk-MCJ5I5LR.js +3187 -0
  132. package/dist/chunk-MCJ5I5LR.js.map +1 -0
  133. package/dist/chunk-MVB32GPI.js +592 -0
  134. package/dist/chunk-MXH35PJ5.js +51 -0
  135. package/dist/chunk-MZPS46OR.js +76 -0
  136. package/dist/chunk-NEIUVSDK.js +206 -0
  137. package/dist/chunk-NEOUY3Q7.js +285 -0
  138. package/dist/chunk-NXZCCGES.js +159 -0
  139. package/dist/chunk-P3W6SRSQ.js +455 -0
  140. package/dist/chunk-P5FRWPG7.js +160 -0
  141. package/dist/chunk-PA4W7BCQ.js +23 -0
  142. package/dist/chunk-PQJXIY64.js +97 -0
  143. package/dist/chunk-PTGYM4J6.js +89 -0
  144. package/dist/chunk-QNLJ3GNZ.js +433 -0
  145. package/dist/chunk-QTOZ32SU.js +163 -0
  146. package/dist/chunk-QTOZ32SU.js.map +1 -0
  147. package/dist/chunk-SISA4HQR.js +61 -0
  148. package/dist/chunk-SVAB6KV5.js +219 -0
  149. package/dist/chunk-SVAB6KV5.js.map +1 -0
  150. package/dist/chunk-SVM3DGAQ.js +228 -0
  151. package/dist/chunk-TP7HKSBX.js +172 -0
  152. package/dist/chunk-TRPJJMCS.js +346 -0
  153. package/dist/chunk-UNX6BS4U.js +3868 -0
  154. package/dist/chunk-VD73V44J.js +344 -0
  155. package/dist/chunk-VL65H6YM.js +846 -0
  156. package/dist/chunk-WTJSMYY2.js +4249 -0
  157. package/dist/chunk-WTJSMYY2.js.map +1 -0
  158. package/dist/chunk-X7F4Z6UM.js +156 -0
  159. package/dist/chunk-YW7VMU5L.js +654 -0
  160. package/dist/chunk-YW7VMU5L.js.map +1 -0
  161. package/dist/chunk-ZCQVKDHV.js +98 -0
  162. package/dist/chunk-ZJSGGJ5R.js +167 -0
  163. package/dist/claim-SLGYOOWD.js +197 -0
  164. package/dist/cli.js +36 -36
  165. package/dist/companies-IVMH6YII.js +195 -0
  166. package/dist/complete-45L2FI2X.js +81 -0
  167. package/dist/connect-S54TJ6OV.js +42 -0
  168. package/dist/conversation-RIOL3OJ7.js +93 -0
  169. package/dist/conversion-report-REOHVLCI.js +125 -0
  170. package/dist/conversion-upload-command-W4GELHIQ.js +438 -0
  171. package/dist/conversion-writes-ECZBVY7D.js +120 -0
  172. package/dist/conversions-5QCSCRLI.js +76 -0
  173. package/dist/conversions-TKIXNSYR.js +135 -0
  174. package/dist/copy-writes-D2RTHAL6.js +167 -0
  175. package/dist/copy-writes-D2RTHAL6.js.map +1 -0
  176. package/dist/create-7JY2PTIZ.js +132 -0
  177. package/dist/create-ACLCRXQP.js +59 -0
  178. package/dist/create-KYBMFD32.js +207 -0
  179. package/dist/create-VAPJ52GJ.js +235 -0
  180. package/dist/creatives-5I3G5YP3.js +182 -0
  181. package/dist/creatives-MZ6ICNSY.js +88 -0
  182. package/dist/creatives-MZ6ICNSY.js.map +1 -0
  183. package/dist/creatives-PCAGWPW3.js +58 -0
  184. package/dist/credentials-YTQ6BHWV.js +287 -0
  185. package/dist/critique-BHYJYZDV.js +1458 -0
  186. package/dist/critique-NRHUPIWF.js +227 -0
  187. package/dist/crm-IKTWHWEB.js +318 -0
  188. package/dist/crm-N7K57LZJ.js +224 -0
  189. package/dist/currency-PW7HIBZ6.js +88 -0
  190. package/dist/custom-conversions-FIP6ZS34.js +127 -0
  191. package/dist/custom-conversions-FIP6ZS34.js.map +1 -0
  192. package/dist/customers-NLU7NYDC.js +56 -0
  193. package/dist/delete-26J3X3ZH.js +64 -0
  194. package/dist/delete-A4F5Z54J.js +66 -0
  195. package/dist/delete-EVXOFT2H.js +54 -0
  196. package/dist/demographics-VZKFMM4X.js +138 -0
  197. package/dist/discard-ULRVUJDV.js +66 -0
  198. package/dist/discover-PVXWX2WL.js +172 -0
  199. package/dist/domain-L4WCCX7R.js +98 -0
  200. package/dist/draft-34CGWUVA.js +281 -0
  201. package/dist/draft-4P3YO67N.js +332 -0
  202. package/dist/draft-4P3YO67N.js.map +1 -0
  203. package/dist/draft-57OQKHZI.js +306 -0
  204. package/dist/draft-L45PGCYZ.js +237 -0
  205. package/dist/draft-L45PGCYZ.js.map +1 -0
  206. package/dist/draft-O4S5RKWK.js +217 -0
  207. package/dist/draft-PAYD6GIM.js +307 -0
  208. package/dist/engine/index.js +9 -9
  209. package/dist/experiment-7N4QFRWV.js +1397 -0
  210. package/dist/facets-EHQKGGJ2.js +114 -0
  211. package/dist/feedback-O3H42V4I.js +106 -0
  212. package/dist/feedback-record-FAPN2GBS.js +260 -0
  213. package/dist/fetch-ETKT2RBC.js +176 -0
  214. package/dist/find-FSQAEGGF.js +134 -0
  215. package/dist/fit-UJQ47C4A.js +62 -0
  216. package/dist/flows-T22B77J3.js +247 -0
  217. package/dist/fonts-7VWBQPJF.js +36 -0
  218. package/dist/forecast-HB3RDBQN.js +168 -0
  219. package/dist/forecast-OI7YWZ6F.js +118 -0
  220. package/dist/funnel-7OA33VRP.js +394 -0
  221. package/dist/ga4-LPDIBNYP.js +55 -0
  222. package/dist/generate-OMXBFGGR.js +263 -0
  223. package/dist/get-2RSN4N3J.js +56 -0
  224. package/dist/get-6N7QJMIP.js +79 -0
  225. package/dist/google-5ESVO76E.js +136 -0
  226. package/dist/google-6JZBJ2ZQ.js +3265 -0
  227. package/dist/google-ads-G7REKD4A.js +195 -0
  228. package/dist/gsc-FIZTQX3N.js +30 -0
  229. package/dist/history-QKDYBSYM.js +67 -0
  230. package/dist/history-YMK2JNZU.js +133 -0
  231. package/dist/hubspot-BUFS7S33.js +779 -0
  232. package/dist/icon-CSVAZ7NE.js +137 -0
  233. package/dist/ideas-JQT422P7.js +40 -0
  234. package/dist/images-WBNWK2ZH.js +92 -0
  235. package/dist/ingest-RQUJGS7K.js +107 -0
  236. package/dist/ingest-XLTRLCDV.js +23 -0
  237. package/dist/insights-SQLE5NOJ.js +122 -0
  238. package/dist/insights-YWVJMATY.js +424 -0
  239. package/dist/insights-YWVJMATY.js.map +1 -0
  240. package/dist/inspect-KFVAMD4N.js +189 -0
  241. package/dist/inspiration-IX5N724J.js +53 -0
  242. package/dist/instant-experiences-NQ2GWIWL.js +257 -0
  243. package/dist/instant-experiences-NQ2GWIWL.js.map +1 -0
  244. package/dist/intent-4KJGYYHL.js +95 -0
  245. package/dist/keyword-gap-U64KXDR4.js +130 -0
  246. package/dist/keyword-metrics-WYF3QMCW.js +197 -0
  247. package/dist/keywords-for-site-G5L5EP3T.js +128 -0
  248. package/dist/landing-Y6QCTXCZ.js +28 -0
  249. package/dist/languages-7IPVGGW5.js +40 -0
  250. package/dist/leads-4SJ4NJOI.js +90 -0
  251. package/dist/leads-THI37ZMD.js +537 -0
  252. package/dist/leads-THI37ZMD.js.map +1 -0
  253. package/dist/learn-3BDZUWDT.js +204 -0
  254. package/dist/line-item-writes-YXKYR25W.js +208 -0
  255. package/dist/line-items-CKUD2UU4.js +103 -0
  256. package/dist/link-VBYFI7AM.js +64 -0
  257. package/dist/linkedin-UGMAFSGO.js +1057 -0
  258. package/dist/list-6ZNZGRRK.js +151 -0
  259. package/dist/list-ENYDGT3F.js +64 -0
  260. package/dist/list-VSUF2IWT.js +303 -0
  261. package/dist/locations-HM56X2MK.js +67 -0
  262. package/dist/locations-HM56X2MK.js.map +1 -0
  263. package/dist/locations-QJBYWRCN.js +40 -0
  264. package/dist/log-AACKGBDW.js +92 -0
  265. package/dist/logo-VHXH4J6A.js +18 -0
  266. package/dist/make-W2PYZXYF.js +1353 -0
  267. package/dist/map-63CQHWPI.js +433 -0
  268. package/dist/mcp-RKAXC6IP.js +714 -0
  269. package/dist/media-H6B7VDON.js +18 -0
  270. package/dist/media-H6B7VDON.js.map +1 -0
  271. package/dist/media-sources-EZKAJNVD.js +32 -0
  272. package/dist/members-SELIA674.js +44 -0
  273. package/dist/meta-YHDTGJQ6.js +122 -0
  274. package/dist/meta-YHDTGJQ6.js.map +1 -0
  275. package/dist/metrics-V6SKOVNH.js +152 -0
  276. package/dist/models-2XRYXSRA.js +155 -0
  277. package/dist/normalize-VAZPTBDX.js +141 -0
  278. package/dist/options-NSCZSQ5P.js +122 -0
  279. package/dist/organization-SHREKDST.js +881 -0
  280. package/dist/organization-SHREKDST.js.map +1 -0
  281. package/dist/page-photos-CXRG4AXV.js +115 -0
  282. package/dist/page-photos-CXRG4AXV.js.map +1 -0
  283. package/dist/pages-PTWRXAZT.js +66 -0
  284. package/dist/performance-K7E5KAZW.js +24 -0
  285. package/dist/pixels-MYT3TCHZ.js +60 -0
  286. package/dist/pixels-ZZCQUS3J.js +108 -0
  287. package/dist/preview-XOXAAPMQ.js +215 -0
  288. package/dist/preview-XOXAAPMQ.js.map +1 -0
  289. package/dist/promoted-tweet-writes-PKEO6WUK.js +180 -0
  290. package/dist/promoted-tweets-7MXVZRBI.js +119 -0
  291. package/dist/publish-MPMGRV72.js +341 -0
  292. package/dist/query-UD4OIZ3A.js +61 -0
  293. package/dist/reddit-XIHRI3CN.js +26 -0
  294. package/dist/refresh-A27N75NH.js +94 -0
  295. package/dist/release-UKRB5IUN.js +60 -0
  296. package/dist/relevant-pages-VXSHEOU2.js +99 -0
  297. package/dist/remove-AFNFVPZY.js +50 -0
  298. package/dist/reopen-M5HE6J3G.js +63 -0
  299. package/dist/rerun-5THJLQQJ.js +90 -0
  300. package/dist/research-JHDWWFL7.js +62 -0
  301. package/dist/research-U7RQXMYH.js +262 -0
  302. package/dist/reset-4CCWB2RT.js +54 -0
  303. package/dist/reset-J3KCWFMZ.js +54 -0
  304. package/dist/resolve-HEK27ANI.js +121 -0
  305. package/dist/retry-HPZIUG2S.js +62 -0
  306. package/dist/retry-VVI6N6UR.js +60 -0
  307. package/dist/rule-writes-6ZCAJDYZ.js +522 -0
  308. package/dist/rule-writes-6ZCAJDYZ.js.map +1 -0
  309. package/dist/rules-BMYOY2BM.js +216 -0
  310. package/dist/rules-BMYOY2BM.js.map +1 -0
  311. package/dist/rules-YLLFDZEM.js +96 -0
  312. package/dist/rules-add-U2GU4AGP.js +462 -0
  313. package/dist/run-M7ZDE6IA.js +66 -0
  314. package/dist/run-V5YQB6TH.js +65 -0
  315. package/dist/scaffold-ad-H4GJOKAW.js +1511 -0
  316. package/dist/scaffold-static-ad-2YIFHCTL.js +1005 -0
  317. package/dist/scaffold-video-3EJLKR2O.js +883 -0
  318. package/dist/schedule-QMOKWTJ3.js +61 -0
  319. package/dist/scheduled-agents-FCQHQ6KR.js +50 -0
  320. package/dist/schema-THFLCMBN.js +132 -0
  321. package/dist/schema-XKEEAUXP.js +69 -0
  322. package/dist/search-XIUYSWO6.js +174 -0
  323. package/dist/select-I22NPSIW.js +101 -0
  324. package/dist/set-prompt-S75OMQ7L.js +193 -0
  325. package/dist/setup-links-QVI6NAOK.js +141 -0
  326. package/dist/shared-3IBNDEFL.js +31 -0
  327. package/dist/site-PZPJY33N.js +177 -0
  328. package/dist/sources-ER7ANNG3.js +454 -0
  329. package/dist/sources-VA23PDND.js +30 -0
  330. package/dist/stale-MHTU2NQJ.js +71 -0
  331. package/dist/stats-ZAGJH4AD.js +34 -0
  332. package/dist/status-ABMJBCPJ.js +62 -0
  333. package/dist/stock-6SHHLSKG.js +179 -0
  334. package/dist/studies-4NIV4D5Y.js +249 -0
  335. package/dist/studies-4NIV4D5Y.js.map +1 -0
  336. package/dist/studio-ZLCGXFAN.js +49 -0
  337. package/dist/study-writes-L2AA2PGL.js +467 -0
  338. package/dist/study-writes-L2AA2PGL.js.map +1 -0
  339. package/dist/sync-QDD3MRJ6.js +54 -0
  340. package/dist/sync-definition-2EBSQA6A.js +64 -0
  341. package/dist/tag-manager-3CJ66GKJ.js +43 -0
  342. package/dist/tags-5JYOEYIT.js +20 -0
  343. package/dist/tags-B473RWAA.js +224 -0
  344. package/dist/tags-EWHPUM2V.js +20 -0
  345. package/dist/tags-KBCX6BDU.js +26 -0
  346. package/dist/tags-PEWN6GNZ.js +20 -0
  347. package/dist/targeting-LNDQV4EK.js +759 -0
  348. package/dist/targeting-LNDQV4EK.js.map +1 -0
  349. package/dist/targeting-criteria-EU65WUUF.js +113 -0
  350. package/dist/targets-KVXS5QKM.js +103 -0
  351. package/dist/testimonials-GR6TIS5S.js +32 -0
  352. package/dist/themes-JWWTOR3I.js +94 -0
  353. package/dist/top-companies-OOX3DITI.js +108 -0
  354. package/dist/translate-GEFUP6KQ.js +604 -0
  355. package/dist/triggers-OX2GKG4Y.js +142 -0
  356. package/dist/unlink-3USEPJSA.js +67 -0
  357. package/dist/unstage-VSCNPTAC.js +85 -0
  358. package/dist/update-6JKTH65B.js +152 -0
  359. package/dist/update-FG4ELXYJ.js +98 -0
  360. package/dist/update-GZFKHA3A.js +188 -0
  361. package/dist/update-HZHG67N6.js +63 -0
  362. package/dist/upload-BKCQ6FRW.js +126 -0
  363. package/dist/url-options-HCVRPZYU.js +130 -0
  364. package/dist/url-params-UN4DRN2H.js +98 -0
  365. package/dist/validate-NOWIOAHE.js +117 -0
  366. package/dist/videos-XMTDEHEJ.js +39 -0
  367. package/dist/viewer-check-U4XZMMS7.js +80 -0
  368. package/dist/viewer-check-U4XZMMS7.js.map +1 -0
  369. package/dist/web-UGU7YMII.js +140 -0
  370. package/dist/winning-ads-QOAYIR5U.js +84 -0
  371. package/dist/write-commands-6VR2UD3T.js +1024 -0
  372. package/dist/write-commands-PEJBTME6.js +1165 -0
  373. package/dist/write-commands-PEJBTME6.js.map +1 -0
  374. package/dist/x-VCSMV7T5.js +47 -0
  375. package/package.json +1 -1
  376. package/dist/account-7LUQWY6Q.js +0 -49
  377. package/dist/account-7LUQWY6Q.js.map +0 -1
  378. package/dist/account-ELL7ZZLM.js +0 -80
  379. package/dist/account-YVQGH2GB.js +0 -79
  380. package/dist/account-reads-5B4FFOZU.js +0 -218
  381. package/dist/account-writes-CEPERFD6.js +0 -66
  382. package/dist/accounts-6WNFCGUW.js +0 -611
  383. package/dist/accounts-UA2ZWRN4.js +0 -75
  384. package/dist/accounts-ZIE7J6RR.js +0 -77
  385. package/dist/actions-QZQTB3KR.js +0 -55
  386. package/dist/activecampaign-LIXWDX74.js +0 -935
  387. package/dist/activities-IQPJPP4B.js +0 -74
  388. package/dist/ad-group-writes-XGSCEQTW.js +0 -170
  389. package/dist/ad-groups-GKOLDGET.js +0 -68
  390. package/dist/ad-writes-VVD36JKH.js +0 -174
  391. package/dist/add-HQFI5UVS.js +0 -302
  392. package/dist/add-JWJP4CQY.js +0 -104
  393. package/dist/ads-EKZVHKPN.js +0 -77
  394. package/dist/ads-F365TPXO.js +0 -40
  395. package/dist/ads-HXX2IAFF.js +0 -113
  396. package/dist/ads-HXX2IAFF.js.map +0 -1
  397. package/dist/adsets-LPN6WFGF.js +0 -176
  398. package/dist/adsets-LPN6WFGF.js.map +0 -1
  399. package/dist/advertisers-TPIS4R73.js +0 -120
  400. package/dist/analytics-AFW7ESJW.js +0 -1976
  401. package/dist/analytics-QG7TBGMC.js +0 -433
  402. package/dist/animate-G4P3OEJE.js +0 -480
  403. package/dist/assign-VKINQVCJ.js +0 -77
  404. package/dist/audience-size-6ZEWCPX6.js +0 -73
  405. package/dist/audiences-BU4JZJT7.js +0 -268
  406. package/dist/audiences-XEZHACKH.js +0 -78
  407. package/dist/audiences-XEZHACKH.js.map +0 -1
  408. package/dist/audit-5US7TTUF.js +0 -151
  409. package/dist/autocomplete-XBVLHJ4R.js +0 -111
  410. package/dist/avatars-5IBVOF63.js +0 -38
  411. package/dist/bid-pricing-EFYUHTWP.js +0 -100
  412. package/dist/brand-Z5KRGJX4.js +0 -22
  413. package/dist/brief-DGAZ6NJG.js +0 -538
  414. package/dist/businesses-PRRYPR7H.js +0 -53
  415. package/dist/campaign-groups-AOMTKPUY.js +0 -95
  416. package/dist/campaign-writes-NSEJCINS.js +0 -170
  417. package/dist/campaign-writes-NXVLFVZ6.js +0 -165
  418. package/dist/campaign-writes-NXVLFVZ6.js.map +0 -1
  419. package/dist/campaigns-4SOLY7OR.js +0 -110
  420. package/dist/campaigns-4SOLY7OR.js.map +0 -1
  421. package/dist/campaigns-UELLCVI2.js +0 -109
  422. package/dist/campaigns-VWN2XPK2.js +0 -76
  423. package/dist/campaigns-WE42FQKM.js +0 -107
  424. package/dist/canvas-DG3CJ7FA.js +0 -46
  425. package/dist/capabilities-FDCILMJK.js +0 -144
  426. package/dist/catalog-KZNB2YJS.js +0 -65
  427. package/dist/catalogs-XH5NHH4C.js +0 -128
  428. package/dist/changes-DKP263OZ.js +0 -135
  429. package/dist/chatgpt-K6KNTME4.js +0 -47
  430. package/dist/chats-NFSZEF5L.js +0 -262
  431. package/dist/chats-NFSZEF5L.js.map +0 -1
  432. package/dist/check-6UVMPPNH.js +0 -104
  433. package/dist/chunk-2GT76KEX.js +0 -285
  434. package/dist/chunk-33XFNSBM.js +0 -433
  435. package/dist/chunk-36SU43V2.js +0 -6306
  436. package/dist/chunk-3BKNGXCL.js +0 -23992
  437. package/dist/chunk-3BKNGXCL.js.map +0 -1
  438. package/dist/chunk-3VCHJN2B.js +0 -627
  439. package/dist/chunk-5562QFVB.js +0 -275
  440. package/dist/chunk-5QW4OQM4.js +0 -831
  441. package/dist/chunk-5SRHACZW.js +0 -274
  442. package/dist/chunk-5SRHACZW.js.map +0 -1
  443. package/dist/chunk-6JWEGFM5.js +0 -174
  444. package/dist/chunk-6JWEGFM5.js.map +0 -1
  445. package/dist/chunk-6KULDLLR.js +0 -547
  446. package/dist/chunk-6OIKNJ7G.js +0 -26
  447. package/dist/chunk-6TG4CAYD.js +0 -19
  448. package/dist/chunk-6VZHOXP6.js +0 -172
  449. package/dist/chunk-7RBJ2Z7Z.js +0 -172
  450. package/dist/chunk-7RBJ2Z7Z.js.map +0 -1
  451. package/dist/chunk-7RKUHTS6.js +0 -224
  452. package/dist/chunk-AGVCQHQK.js +0 -344
  453. package/dist/chunk-AJ45PER5.js +0 -57
  454. package/dist/chunk-AL3VGEG5.js +0 -665
  455. package/dist/chunk-AQMMAB2N.js +0 -197
  456. package/dist/chunk-B6VCTXSD.js +0 -97
  457. package/dist/chunk-B7FVPHCW.js +0 -843
  458. package/dist/chunk-BITS62MF.js +0 -77
  459. package/dist/chunk-C4MJ3WPQ.js +0 -592
  460. package/dist/chunk-C6BFE4X2.js +0 -51
  461. package/dist/chunk-D2YHDDKW.js +0 -23
  462. package/dist/chunk-E4GWQFTL.js +0 -66
  463. package/dist/chunk-EIDTAHUC.js +0 -191
  464. package/dist/chunk-ERRMJ7AZ.js +0 -169
  465. package/dist/chunk-EZ5KY6I2.js +0 -1079
  466. package/dist/chunk-F3CZFUXZ.js +0 -3187
  467. package/dist/chunk-F3CZFUXZ.js.map +0 -1
  468. package/dist/chunk-F5IH7G2F.js +0 -1919
  469. package/dist/chunk-GFTDR3Z2.js +0 -604
  470. package/dist/chunk-GGY2KH3K.js +0 -249
  471. package/dist/chunk-GOJXKIFQ.js +0 -1605
  472. package/dist/chunk-GOJXKIFQ.js.map +0 -1
  473. package/dist/chunk-GYJQV3IX.js +0 -225
  474. package/dist/chunk-H5HDZ7IC.js +0 -139
  475. package/dist/chunk-HVI4DNZL.js +0 -103
  476. package/dist/chunk-HY4G44UC.js +0 -156
  477. package/dist/chunk-I2WRZJAC.js +0 -46
  478. package/dist/chunk-IHUIXQBP.js +0 -206
  479. package/dist/chunk-IMWXYSCP.js +0 -392
  480. package/dist/chunk-KIGGMKAE.js +0 -66
  481. package/dist/chunk-KIGGMKAE.js.map +0 -1
  482. package/dist/chunk-KPYDTIAI.js +0 -317
  483. package/dist/chunk-L63JZLCX.js +0 -647
  484. package/dist/chunk-L63JZLCX.js.map +0 -1
  485. package/dist/chunk-M2D7ZWEU.js +0 -150
  486. package/dist/chunk-MP5IMGKF.js +0 -148
  487. package/dist/chunk-NA2KOPW6.js +0 -363
  488. package/dist/chunk-NAA4CKZZ.js +0 -4249
  489. package/dist/chunk-NAA4CKZZ.js.map +0 -1
  490. package/dist/chunk-NDVAOHMY.js +0 -903
  491. package/dist/chunk-NLUFREI6.js +0 -160
  492. package/dist/chunk-OKLYOMQ3.js +0 -1606
  493. package/dist/chunk-ONVPV23E.js +0 -122
  494. package/dist/chunk-OP7DNHD2.js +0 -137
  495. package/dist/chunk-OP7DNHD2.js.map +0 -1
  496. package/dist/chunk-OWRFIAW2.js +0 -91
  497. package/dist/chunk-P5ENZXC2.js +0 -64
  498. package/dist/chunk-QK76OM22.js +0 -297
  499. package/dist/chunk-R5IZ6P3E.js +0 -3868
  500. package/dist/chunk-RBIWYPJQ.js +0 -159
  501. package/dist/chunk-RESDRJRP.js +0 -399
  502. package/dist/chunk-RGX7AQ2K.js +0 -131
  503. package/dist/chunk-RWLQYW2L.js +0 -8939
  504. package/dist/chunk-S7B2TOOU.js +0 -98
  505. package/dist/chunk-SIKCVWM3.js +0 -76
  506. package/dist/chunk-TBZPXGEW.js +0 -142
  507. package/dist/chunk-TFJW5CXD.js +0 -5368
  508. package/dist/chunk-TPS3X5DI.js +0 -89
  509. package/dist/chunk-UM7ESCIN.js +0 -846
  510. package/dist/chunk-UWDYGSJF.js +0 -61
  511. package/dist/chunk-V57TZQPI.js +0 -228
  512. package/dist/chunk-VLKYUZF7.js +0 -346
  513. package/dist/chunk-VYZ4KQ3C.js +0 -942
  514. package/dist/chunk-WRMMJUNJ.js +0 -494
  515. package/dist/chunk-WY5H3XYC.js +0 -167
  516. package/dist/chunk-XLJVJ5TK.js +0 -1518
  517. package/dist/chunk-Y2GH4YWA.js +0 -207
  518. package/dist/chunk-YSB26POP.js +0 -8914
  519. package/dist/chunk-YT2ZSPWF.js +0 -455
  520. package/dist/claim-7CB6TVEW.js +0 -197
  521. package/dist/companies-CACKHSY5.js +0 -195
  522. package/dist/complete-IHLTYFT2.js +0 -81
  523. package/dist/connect-J722BTO4.js +0 -42
  524. package/dist/conversation-HRNJJJW5.js +0 -93
  525. package/dist/conversion-report-KL4LIVY5.js +0 -125
  526. package/dist/conversion-upload-command-WT6C35QL.js +0 -438
  527. package/dist/conversion-writes-MPBCTVSP.js +0 -120
  528. package/dist/conversions-ACYT6K7H.js +0 -76
  529. package/dist/conversions-DE7W5T4Z.js +0 -135
  530. package/dist/create-6ZDLKC4F.js +0 -59
  531. package/dist/create-7YO6DAAT.js +0 -207
  532. package/dist/create-W7OTXLCZ.js +0 -132
  533. package/dist/create-ZU7AHBYM.js +0 -235
  534. package/dist/creatives-6UYAAC5E.js +0 -58
  535. package/dist/creatives-XUIY3MQI.js +0 -182
  536. package/dist/creatives-YJ3CXZQC.js +0 -87
  537. package/dist/creatives-YJ3CXZQC.js.map +0 -1
  538. package/dist/credentials-ADGJKYA7.js +0 -287
  539. package/dist/critique-BBHPASRE.js +0 -227
  540. package/dist/critique-T7QGPPEX.js +0 -1458
  541. package/dist/crm-EKDV2SET.js +0 -224
  542. package/dist/crm-MXT2HUKU.js +0 -318
  543. package/dist/currency-TBBXPWXU.js +0 -88
  544. package/dist/custom-conversions-YRYE65PU.js +0 -125
  545. package/dist/custom-conversions-YRYE65PU.js.map +0 -1
  546. package/dist/customers-EZEVYT4Z.js +0 -56
  547. package/dist/delete-3UDIH2ZD.js +0 -66
  548. package/dist/delete-4L3HO5B6.js +0 -54
  549. package/dist/delete-SRU4GRDT.js +0 -64
  550. package/dist/demographics-3OWQDW7B.js +0 -138
  551. package/dist/discard-UEMA5UHL.js +0 -66
  552. package/dist/discover-RTV5XWRI.js +0 -172
  553. package/dist/domain-6324IS6I.js +0 -98
  554. package/dist/draft-2KS56KCT.js +0 -307
  555. package/dist/draft-777O2UIX.js +0 -217
  556. package/dist/draft-EWDOIXSH.js +0 -233
  557. package/dist/draft-EWDOIXSH.js.map +0 -1
  558. package/dist/draft-GRL7577L.js +0 -306
  559. package/dist/draft-VOFJXUOC.js +0 -328
  560. package/dist/draft-VOFJXUOC.js.map +0 -1
  561. package/dist/draft-VXGZDBC7.js +0 -281
  562. package/dist/experiment-G3FQVAJU.js +0 -1397
  563. package/dist/facets-YV6NORA6.js +0 -114
  564. package/dist/feedback-YITFVOHX.js +0 -106
  565. package/dist/feedback-record-FW2QWFYQ.js +0 -260
  566. package/dist/fetch-EYXLTSKW.js +0 -176
  567. package/dist/find-EVY4XEIQ.js +0 -134
  568. package/dist/fit-KEFUU7QA.js +0 -62
  569. package/dist/flows-EJV7WMGD.js +0 -247
  570. package/dist/fonts-DMIBVZ6D.js +0 -36
  571. package/dist/forecast-5YKQZSE7.js +0 -118
  572. package/dist/forecast-G43FKEZE.js +0 -168
  573. package/dist/funnel-ND7OXIKT.js +0 -394
  574. package/dist/ga4-2BL5YAYN.js +0 -55
  575. package/dist/generate-D3LUXFJT.js +0 -263
  576. package/dist/get-GB6SPWCA.js +0 -79
  577. package/dist/get-PU3YHQWN.js +0 -56
  578. package/dist/google-7STODZQR.js +0 -136
  579. package/dist/google-MHB5TOFN.js +0 -3265
  580. package/dist/google-ads-XGEGKEL6.js +0 -195
  581. package/dist/gsc-UU3T2C6B.js +0 -30
  582. package/dist/history-NYWAMWAY.js +0 -133
  583. package/dist/history-OQAOTEO3.js +0 -67
  584. package/dist/hubspot-LMIVY7FR.js +0 -779
  585. package/dist/icon-GB7UH5RF.js +0 -137
  586. package/dist/ideas-W4IIVOZ4.js +0 -40
  587. package/dist/images-PPMIMPTS.js +0 -92
  588. package/dist/ingest-2YGWBWAB.js +0 -107
  589. package/dist/ingest-FRDTTPYD.js +0 -23
  590. package/dist/insights-4HT2NAYP.js +0 -423
  591. package/dist/insights-4HT2NAYP.js.map +0 -1
  592. package/dist/insights-PZXFCMX2.js +0 -122
  593. package/dist/inspect-QF2S3U2E.js +0 -189
  594. package/dist/inspiration-XQYHBJY2.js +0 -53
  595. package/dist/intent-JJTDJ732.js +0 -95
  596. package/dist/keyword-gap-4NQN56JP.js +0 -130
  597. package/dist/keyword-metrics-QCIOBMTW.js +0 -197
  598. package/dist/keywords-for-site-FS635JXM.js +0 -128
  599. package/dist/landing-6H5QEHOW.js +0 -28
  600. package/dist/languages-FNE45NXJ.js +0 -40
  601. package/dist/leads-2XOSAYP4.js +0 -293
  602. package/dist/leads-2XOSAYP4.js.map +0 -1
  603. package/dist/leads-MKLSWZO6.js +0 -90
  604. package/dist/learn-C564OA7W.js +0 -204
  605. package/dist/line-item-writes-K7QNWRQ3.js +0 -208
  606. package/dist/line-items-TBTHVKCZ.js +0 -103
  607. package/dist/link-CPJJ6T4M.js +0 -64
  608. package/dist/linkedin-HGUK624E.js +0 -1057
  609. package/dist/list-AAT5CWDA.js +0 -303
  610. package/dist/list-N5SJXLYF.js +0 -64
  611. package/dist/list-OKDU5W4D.js +0 -151
  612. package/dist/locations-FTDI4FBI.js +0 -40
  613. package/dist/locations-VL2G22Y5.js +0 -67
  614. package/dist/locations-VL2G22Y5.js.map +0 -1
  615. package/dist/log-KVRWIJS5.js +0 -92
  616. package/dist/logo-YSNUUT33.js +0 -18
  617. package/dist/make-4NTHJ4TG.js +0 -1353
  618. package/dist/map-HQ43MKEC.js +0 -433
  619. package/dist/mcp-MFLUHPL5.js +0 -714
  620. package/dist/media-ES2UBGYW.js +0 -15
  621. package/dist/media-ES2UBGYW.js.map +0 -1
  622. package/dist/media-sources-A4ICRSKB.js +0 -32
  623. package/dist/members-NRKQSSVS.js +0 -44
  624. package/dist/meta-AOIPEDV5.js +0 -69
  625. package/dist/meta-AOIPEDV5.js.map +0 -1
  626. package/dist/metrics-3BRTJNGW.js +0 -152
  627. package/dist/models-IH6KE6OH.js +0 -155
  628. package/dist/normalize-EH6BTBOB.js +0 -141
  629. package/dist/options-YEPQXXRY.js +0 -122
  630. package/dist/organization-XSWT7S5S.js +0 -836
  631. package/dist/organization-XSWT7S5S.js.map +0 -1
  632. package/dist/pages-FTI44OSH.js +0 -66
  633. package/dist/performance-YJVMM6DL.js +0 -24
  634. package/dist/pixels-DWW2TDY2.js +0 -60
  635. package/dist/pixels-MBKR4XPX.js +0 -108
  636. package/dist/preview-V4YBD45S.js +0 -169
  637. package/dist/preview-V4YBD45S.js.map +0 -1
  638. package/dist/promoted-tweet-writes-M5OVEBC5.js +0 -180
  639. package/dist/promoted-tweets-2MOIERNB.js +0 -119
  640. package/dist/publish-NPENZIHV.js +0 -341
  641. package/dist/query-3OMCFGLU.js +0 -61
  642. package/dist/reddit-LI37G5LS.js +0 -26
  643. package/dist/refresh-4BBV5SPL.js +0 -94
  644. package/dist/release-4X3TLMQT.js +0 -60
  645. package/dist/relevant-pages-DIYZM6FJ.js +0 -99
  646. package/dist/remove-Q4AES5UH.js +0 -50
  647. package/dist/reopen-SDTPL3BN.js +0 -63
  648. package/dist/rerun-NA3MH4HG.js +0 -90
  649. package/dist/research-5H265UV7.js +0 -262
  650. package/dist/research-LXQRNAQ2.js +0 -62
  651. package/dist/reset-42M5IKDI.js +0 -54
  652. package/dist/reset-52PU3CVD.js +0 -54
  653. package/dist/resolve-R4IACKIZ.js +0 -121
  654. package/dist/retry-FPF42ZNG.js +0 -62
  655. package/dist/retry-RTQGAH6G.js +0 -60
  656. package/dist/rules-CGNYJYVC.js +0 -96
  657. package/dist/rules-add-EO5476BF.js +0 -462
  658. package/dist/run-3AZJ3UQU.js +0 -66
  659. package/dist/run-AFMTXJTU.js +0 -65
  660. package/dist/scaffold-ad-OGU2IINY.js +0 -1511
  661. package/dist/scaffold-static-ad-HO4BJW4H.js +0 -1005
  662. package/dist/scaffold-video-TLQ4WSDK.js +0 -883
  663. package/dist/schedule-AWWMI5FO.js +0 -61
  664. package/dist/scheduled-agents-ELLU7BSE.js +0 -50
  665. package/dist/schema-BOOZEJPA.js +0 -69
  666. package/dist/schema-QNVLKMKG.js +0 -132
  667. package/dist/search-BZNIB2XF.js +0 -174
  668. package/dist/select-NLWZIQ7L.js +0 -101
  669. package/dist/set-prompt-QKW2L553.js +0 -193
  670. package/dist/setup-links-NMSQ4BG7.js +0 -141
  671. package/dist/shared-NDRFKAH7.js +0 -31
  672. package/dist/site-GGYFBZT5.js +0 -177
  673. package/dist/sources-KTGDMUV4.js +0 -30
  674. package/dist/sources-LPQZDTIU.js +0 -454
  675. package/dist/stale-C5JLQ4D2.js +0 -71
  676. package/dist/stats-RCLQE4HJ.js +0 -34
  677. package/dist/status-6PS3HDS5.js +0 -62
  678. package/dist/stock-ECRBD7RP.js +0 -179
  679. package/dist/studio-LMDDQWRY.js +0 -49
  680. package/dist/sync-XSATDLE6.js +0 -54
  681. package/dist/sync-definition-LSGDHMHV.js +0 -64
  682. package/dist/tag-manager-G3LBQZUL.js +0 -43
  683. package/dist/tags-5Y7TPJNZ.js +0 -20
  684. package/dist/tags-6TT5ZJVX.js +0 -26
  685. package/dist/tags-BQLIOWS4.js +0 -20
  686. package/dist/tags-EXWKO6Q6.js +0 -224
  687. package/dist/tags-OK34UGSM.js +0 -20
  688. package/dist/targeting-criteria-AWPMOX4V.js +0 -113
  689. package/dist/targets-EXYCOHEX.js +0 -103
  690. package/dist/testimonials-BTYMR3U4.js +0 -32
  691. package/dist/themes-AOU4ZZXL.js +0 -94
  692. package/dist/top-companies-FRPAURAH.js +0 -108
  693. package/dist/translate-SF234KLG.js +0 -604
  694. package/dist/triggers-SJUXDU3X.js +0 -142
  695. package/dist/unlink-RIZD3XTI.js +0 -67
  696. package/dist/unstage-MKTIVI3I.js +0 -85
  697. package/dist/update-COHXM25C.js +0 -152
  698. package/dist/update-NKX2GXAR.js +0 -63
  699. package/dist/update-OXVZXDYH.js +0 -98
  700. package/dist/update-SZLYEEU4.js +0 -188
  701. package/dist/upload-LEDO3IRC.js +0 -126
  702. package/dist/url-options-Q5SL42CV.js +0 -130
  703. package/dist/url-params-KP6D7BF3.js +0 -98
  704. package/dist/validate-7QWQZ2OL.js +0 -117
  705. package/dist/videos-VABK4KHJ.js +0 -39
  706. package/dist/viewer-check-I45HHWSW.js +0 -80
  707. package/dist/web-DZGUPZYQ.js +0 -140
  708. package/dist/winning-ads-6MDLRSKM.js +0 -84
  709. package/dist/write-commands-3VIK3VC4.js +0 -1024
  710. package/dist/write-commands-HCQI4Y27.js +0 -737
  711. package/dist/write-commands-HCQI4Y27.js.map +0 -1
  712. package/dist/x-GRDU7QC2.js +0 -47
  713. /package/dist/{account-ELL7ZZLM.js.map → account-3H6BZO5H.js.map} +0 -0
  714. /package/dist/{account-YVQGH2GB.js.map → account-KNRDOUJP.js.map} +0 -0
  715. /package/dist/{account-reads-5B4FFOZU.js.map → account-reads-GA6FVKLE.js.map} +0 -0
  716. /package/dist/{account-writes-CEPERFD6.js.map → account-writes-AE5IJGGW.js.map} +0 -0
  717. /package/dist/{accounts-UA2ZWRN4.js.map → accounts-K4INATCW.js.map} +0 -0
  718. /package/dist/{accounts-6WNFCGUW.js.map → accounts-RTN5ZGTU.js.map} +0 -0
  719. /package/dist/{accounts-ZIE7J6RR.js.map → accounts-RW6KXBOQ.js.map} +0 -0
  720. /package/dist/{actions-QZQTB3KR.js.map → actions-HNLISA7T.js.map} +0 -0
  721. /package/dist/{activecampaign-LIXWDX74.js.map → activecampaign-I5CILZPU.js.map} +0 -0
  722. /package/dist/{activities-IQPJPP4B.js.map → activities-T253KK4Q.js.map} +0 -0
  723. /package/dist/{ad-group-writes-XGSCEQTW.js.map → ad-group-writes-VRSBI2Z2.js.map} +0 -0
  724. /package/dist/{ad-groups-GKOLDGET.js.map → ad-groups-IEBVEAMS.js.map} +0 -0
  725. /package/dist/{ad-writes-VVD36JKH.js.map → ad-writes-ALV4KFPZ.js.map} +0 -0
  726. /package/dist/{add-HQFI5UVS.js.map → add-6WKPFMLG.js.map} +0 -0
  727. /package/dist/{add-JWJP4CQY.js.map → add-XF5COUAS.js.map} +0 -0
  728. /package/dist/{ads-EKZVHKPN.js.map → ads-CQZHD7FC.js.map} +0 -0
  729. /package/dist/{ads-F365TPXO.js.map → ads-QIKZ6O2N.js.map} +0 -0
  730. /package/dist/{advertisers-TPIS4R73.js.map → advertisers-6NUM2Q3A.js.map} +0 -0
  731. /package/dist/{analytics-AFW7ESJW.js.map → analytics-ALOZ7ZZ4.js.map} +0 -0
  732. /package/dist/{analytics-QG7TBGMC.js.map → analytics-VLHE5A2M.js.map} +0 -0
  733. /package/dist/{animate-G4P3OEJE.js.map → animate-SVEPM267.js.map} +0 -0
  734. /package/dist/{connect-J722BTO4.js.map → asset-writes-L5TMKIZC.js.map} +0 -0
  735. /package/dist/{assign-VKINQVCJ.js.map → assign-6HI6TNLP.js.map} +0 -0
  736. /package/dist/{audience-size-6ZEWCPX6.js.map → audience-size-25LP2OBF.js.map} +0 -0
  737. /package/dist/{audiences-BU4JZJT7.js.map → audiences-AAZH56WD.js.map} +0 -0
  738. /package/dist/{audit-5US7TTUF.js.map → audit-YY6X2MPA.js.map} +0 -0
  739. /package/dist/{autocomplete-XBVLHJ4R.js.map → autocomplete-SAWJK4NF.js.map} +0 -0
  740. /package/dist/{avatars-5IBVOF63.js.map → avatars-YSFFRHDK.js.map} +0 -0
  741. /package/dist/{bid-pricing-EFYUHTWP.js.map → bid-pricing-HZ74SLEB.js.map} +0 -0
  742. /package/dist/{brand-Z5KRGJX4.js.map → brand-T3OACVQX.js.map} +0 -0
  743. /package/dist/{brief-DGAZ6NJG.js.map → brief-7S6XCJIA.js.map} +0 -0
  744. /package/dist/{businesses-PRRYPR7H.js.map → businesses-H3HIDQX6.js.map} +0 -0
  745. /package/dist/{campaign-groups-AOMTKPUY.js.map → campaign-groups-YJK767AP.js.map} +0 -0
  746. /package/dist/{campaign-writes-NSEJCINS.js.map → campaign-writes-U5PUVSMT.js.map} +0 -0
  747. /package/dist/{campaigns-UELLCVI2.js.map → campaigns-GALDR5KK.js.map} +0 -0
  748. /package/dist/{campaigns-VWN2XPK2.js.map → campaigns-JEIKY2M4.js.map} +0 -0
  749. /package/dist/{campaigns-WE42FQKM.js.map → campaigns-VTRMKSAT.js.map} +0 -0
  750. /package/dist/{canvas-DG3CJ7FA.js.map → canvas-SVJEQO4V.js.map} +0 -0
  751. /package/dist/{capabilities-FDCILMJK.js.map → capabilities-2KT6TCGZ.js.map} +0 -0
  752. /package/dist/{catalog-KZNB2YJS.js.map → catalog-S32MX453.js.map} +0 -0
  753. /package/dist/{catalogs-XH5NHH4C.js.map → catalogs-OCVXZLIF.js.map} +0 -0
  754. /package/dist/{changes-DKP263OZ.js.map → changes-5TOYRKZR.js.map} +0 -0
  755. /package/dist/{chatgpt-K6KNTME4.js.map → chatgpt-QVF2FD3E.js.map} +0 -0
  756. /package/dist/{check-6UVMPPNH.js.map → check-SLNHVYGS.js.map} +0 -0
  757. /package/dist/{chunk-HVI4DNZL.js.map → chunk-2LI6746F.js.map} +0 -0
  758. /package/dist/{chunk-AQMMAB2N.js.map → chunk-2PWNIEW4.js.map} +0 -0
  759. /package/dist/{chunk-KPYDTIAI.js.map → chunk-2WZI36D3.js.map} +0 -0
  760. /package/dist/{chunk-ONVPV23E.js.map → chunk-3W6G6ARX.js.map} +0 -0
  761. /package/dist/{chunk-OKLYOMQ3.js.map → chunk-45UK4KYJ.js.map} +0 -0
  762. /package/dist/{chunk-GYJQV3IX.js.map → chunk-46GWHUKN.js.map} +0 -0
  763. /package/dist/{chunk-F5IH7G2F.js.map → chunk-4AMIHNNP.js.map} +0 -0
  764. /package/dist/{chunk-7RKUHTS6.js.map → chunk-4KJMLYCD.js.map} +0 -0
  765. /package/dist/{chunk-Y2GH4YWA.js.map → chunk-5HJRZFMW.js.map} +0 -0
  766. /package/dist/{chunk-36SU43V2.js.map → chunk-66QHX566.js.map} +0 -0
  767. /package/dist/{chunk-EIDTAHUC.js.map → chunk-6NCJGU6I.js.map} +0 -0
  768. /package/dist/{chunk-WRMMJUNJ.js.map → chunk-6WCAV27H.js.map} +0 -0
  769. /package/dist/{chunk-E4GWQFTL.js.map → chunk-AO45BX6Q.js.map} +0 -0
  770. /package/dist/{chunk-M2D7ZWEU.js.map → chunk-BDYLILMW.js.map} +0 -0
  771. /package/dist/{chunk-GGY2KH3K.js.map → chunk-BL2MX6CR.js.map} +0 -0
  772. /package/dist/{chunk-GFTDR3Z2.js.map → chunk-BOPC3D6I.js.map} +0 -0
  773. /package/dist/{chunk-I2WRZJAC.js.map → chunk-BTY4LZBG.js.map} +0 -0
  774. /package/dist/{chunk-P5ENZXC2.js.map → chunk-C7NWUCLQ.js.map} +0 -0
  775. /package/dist/{chunk-6KULDLLR.js.map → chunk-D4CKCNGW.js.map} +0 -0
  776. /package/dist/{chunk-QK76OM22.js.map → chunk-D5CUAOQX.js.map} +0 -0
  777. /package/dist/{chunk-NDVAOHMY.js.map → chunk-D5UXWKLQ.js.map} +0 -0
  778. /package/dist/{chunk-H5HDZ7IC.js.map → chunk-DCBZ5CHZ.js.map} +0 -0
  779. /package/dist/{chunk-XLJVJ5TK.js.map → chunk-E2RFM6R2.js.map} +0 -0
  780. /package/dist/{chunk-MP5IMGKF.js.map → chunk-EOY6BK4C.js.map} +0 -0
  781. /package/dist/{chunk-IMWXYSCP.js.map → chunk-FA4YZFRV.js.map} +0 -0
  782. /package/dist/{chunk-VYZ4KQ3C.js.map → chunk-FVHJCERJ.js.map} +0 -0
  783. /package/dist/{chunk-3VCHJN2B.js.map → chunk-G2LGMWNG.js.map} +0 -0
  784. /package/dist/{chunk-RESDRJRP.js.map → chunk-G4STCTY3.js.map} +0 -0
  785. /package/dist/{chunk-BITS62MF.js.map → chunk-G6XKD7QE.js.map} +0 -0
  786. /package/dist/{chunk-5QW4OQM4.js.map → chunk-GSZZLW5Q.js.map} +0 -0
  787. /package/dist/{chunk-NA2KOPW6.js.map → chunk-HSPMBLKE.js.map} +0 -0
  788. /package/dist/{chunk-5562QFVB.js.map → chunk-IJ22WP3G.js.map} +0 -0
  789. /package/dist/{chunk-B7FVPHCW.js.map → chunk-IKCP5NCE.js.map} +0 -0
  790. /package/dist/{chunk-ERRMJ7AZ.js.map → chunk-ILSKYRDR.js.map} +0 -0
  791. /package/dist/{chunk-6OIKNJ7G.js.map → chunk-JAC6JVCI.js.map} +0 -0
  792. /package/dist/{chunk-OWRFIAW2.js.map → chunk-JKJQWRLO.js.map} +0 -0
  793. /package/dist/{chunk-TFJW5CXD.js.map → chunk-JQH5VG6F.js.map} +0 -0
  794. /package/dist/{chunk-AJ45PER5.js.map → chunk-JQU2LUZG.js.map} +0 -0
  795. /package/dist/{chunk-YSB26POP.js.map → chunk-JVH5A3XC.js.map} +0 -0
  796. /package/dist/{chunk-RGX7AQ2K.js.map → chunk-JYALBYN7.js.map} +0 -0
  797. /package/dist/{chunk-RWLQYW2L.js.map → chunk-KOXDXSKN.js.map} +0 -0
  798. /package/dist/{chunk-EZ5KY6I2.js.map → chunk-LOMH4TTC.js.map} +0 -0
  799. /package/dist/{chunk-TBZPXGEW.js.map → chunk-LXQB4ZGE.js.map} +0 -0
  800. /package/dist/{chunk-6TG4CAYD.js.map → chunk-M6PN3VH6.js.map} +0 -0
  801. /package/dist/{chunk-AL3VGEG5.js.map → chunk-M7IJU77B.js.map} +0 -0
  802. /package/dist/{chunk-C4MJ3WPQ.js.map → chunk-MVB32GPI.js.map} +0 -0
  803. /package/dist/{chunk-C6BFE4X2.js.map → chunk-MXH35PJ5.js.map} +0 -0
  804. /package/dist/{chunk-SIKCVWM3.js.map → chunk-MZPS46OR.js.map} +0 -0
  805. /package/dist/{chunk-IHUIXQBP.js.map → chunk-NEIUVSDK.js.map} +0 -0
  806. /package/dist/{chunk-2GT76KEX.js.map → chunk-NEOUY3Q7.js.map} +0 -0
  807. /package/dist/{chunk-RBIWYPJQ.js.map → chunk-NXZCCGES.js.map} +0 -0
  808. /package/dist/{chunk-YT2ZSPWF.js.map → chunk-P3W6SRSQ.js.map} +0 -0
  809. /package/dist/{chunk-NLUFREI6.js.map → chunk-P5FRWPG7.js.map} +0 -0
  810. /package/dist/{chunk-D2YHDDKW.js.map → chunk-PA4W7BCQ.js.map} +0 -0
  811. /package/dist/{chunk-B6VCTXSD.js.map → chunk-PQJXIY64.js.map} +0 -0
  812. /package/dist/{chunk-TPS3X5DI.js.map → chunk-PTGYM4J6.js.map} +0 -0
  813. /package/dist/{chunk-33XFNSBM.js.map → chunk-QNLJ3GNZ.js.map} +0 -0
  814. /package/dist/{chunk-UWDYGSJF.js.map → chunk-SISA4HQR.js.map} +0 -0
  815. /package/dist/{chunk-V57TZQPI.js.map → chunk-SVM3DGAQ.js.map} +0 -0
  816. /package/dist/{chunk-6VZHOXP6.js.map → chunk-TP7HKSBX.js.map} +0 -0
  817. /package/dist/{chunk-VLKYUZF7.js.map → chunk-TRPJJMCS.js.map} +0 -0
  818. /package/dist/{chunk-R5IZ6P3E.js.map → chunk-UNX6BS4U.js.map} +0 -0
  819. /package/dist/{chunk-AGVCQHQK.js.map → chunk-VD73V44J.js.map} +0 -0
  820. /package/dist/{chunk-UM7ESCIN.js.map → chunk-VL65H6YM.js.map} +0 -0
  821. /package/dist/{chunk-HY4G44UC.js.map → chunk-X7F4Z6UM.js.map} +0 -0
  822. /package/dist/{chunk-S7B2TOOU.js.map → chunk-ZCQVKDHV.js.map} +0 -0
  823. /package/dist/{chunk-WY5H3XYC.js.map → chunk-ZJSGGJ5R.js.map} +0 -0
  824. /package/dist/{claim-7CB6TVEW.js.map → claim-SLGYOOWD.js.map} +0 -0
  825. /package/dist/{companies-CACKHSY5.js.map → companies-IVMH6YII.js.map} +0 -0
  826. /package/dist/{complete-IHLTYFT2.js.map → complete-45L2FI2X.js.map} +0 -0
  827. /package/dist/{customers-EZEVYT4Z.js.map → connect-S54TJ6OV.js.map} +0 -0
  828. /package/dist/{conversation-HRNJJJW5.js.map → conversation-RIOL3OJ7.js.map} +0 -0
  829. /package/dist/{conversion-report-KL4LIVY5.js.map → conversion-report-REOHVLCI.js.map} +0 -0
  830. /package/dist/{conversion-upload-command-WT6C35QL.js.map → conversion-upload-command-W4GELHIQ.js.map} +0 -0
  831. /package/dist/{conversion-writes-MPBCTVSP.js.map → conversion-writes-ECZBVY7D.js.map} +0 -0
  832. /package/dist/{conversions-ACYT6K7H.js.map → conversions-5QCSCRLI.js.map} +0 -0
  833. /package/dist/{conversions-DE7W5T4Z.js.map → conversions-TKIXNSYR.js.map} +0 -0
  834. /package/dist/{create-W7OTXLCZ.js.map → create-7JY2PTIZ.js.map} +0 -0
  835. /package/dist/{create-6ZDLKC4F.js.map → create-ACLCRXQP.js.map} +0 -0
  836. /package/dist/{create-7YO6DAAT.js.map → create-KYBMFD32.js.map} +0 -0
  837. /package/dist/{create-ZU7AHBYM.js.map → create-VAPJ52GJ.js.map} +0 -0
  838. /package/dist/{creatives-XUIY3MQI.js.map → creatives-5I3G5YP3.js.map} +0 -0
  839. /package/dist/{creatives-6UYAAC5E.js.map → creatives-PCAGWPW3.js.map} +0 -0
  840. /package/dist/{credentials-ADGJKYA7.js.map → credentials-YTQ6BHWV.js.map} +0 -0
  841. /package/dist/{critique-T7QGPPEX.js.map → critique-BHYJYZDV.js.map} +0 -0
  842. /package/dist/{critique-BBHPASRE.js.map → critique-NRHUPIWF.js.map} +0 -0
  843. /package/dist/{crm-MXT2HUKU.js.map → crm-IKTWHWEB.js.map} +0 -0
  844. /package/dist/{crm-EKDV2SET.js.map → crm-N7K57LZJ.js.map} +0 -0
  845. /package/dist/{currency-TBBXPWXU.js.map → currency-PW7HIBZ6.js.map} +0 -0
  846. /package/dist/{fit-KEFUU7QA.js.map → customers-NLU7NYDC.js.map} +0 -0
  847. /package/dist/{delete-SRU4GRDT.js.map → delete-26J3X3ZH.js.map} +0 -0
  848. /package/dist/{delete-3UDIH2ZD.js.map → delete-A4F5Z54J.js.map} +0 -0
  849. /package/dist/{delete-4L3HO5B6.js.map → delete-EVXOFT2H.js.map} +0 -0
  850. /package/dist/{demographics-3OWQDW7B.js.map → demographics-VZKFMM4X.js.map} +0 -0
  851. /package/dist/{discard-UEMA5UHL.js.map → discard-ULRVUJDV.js.map} +0 -0
  852. /package/dist/{discover-RTV5XWRI.js.map → discover-PVXWX2WL.js.map} +0 -0
  853. /package/dist/{domain-6324IS6I.js.map → domain-L4WCCX7R.js.map} +0 -0
  854. /package/dist/{draft-VXGZDBC7.js.map → draft-34CGWUVA.js.map} +0 -0
  855. /package/dist/{draft-GRL7577L.js.map → draft-57OQKHZI.js.map} +0 -0
  856. /package/dist/{draft-777O2UIX.js.map → draft-O4S5RKWK.js.map} +0 -0
  857. /package/dist/{draft-2KS56KCT.js.map → draft-PAYD6GIM.js.map} +0 -0
  858. /package/dist/{experiment-G3FQVAJU.js.map → experiment-7N4QFRWV.js.map} +0 -0
  859. /package/dist/{facets-YV6NORA6.js.map → facets-EHQKGGJ2.js.map} +0 -0
  860. /package/dist/{feedback-YITFVOHX.js.map → feedback-O3H42V4I.js.map} +0 -0
  861. /package/dist/{feedback-record-FW2QWFYQ.js.map → feedback-record-FAPN2GBS.js.map} +0 -0
  862. /package/dist/{fetch-EYXLTSKW.js.map → fetch-ETKT2RBC.js.map} +0 -0
  863. /package/dist/{find-EVY4XEIQ.js.map → find-FSQAEGGF.js.map} +0 -0
  864. /package/dist/{fonts-DMIBVZ6D.js.map → fit-UJQ47C4A.js.map} +0 -0
  865. /package/dist/{flows-EJV7WMGD.js.map → flows-T22B77J3.js.map} +0 -0
  866. /package/dist/{ideas-W4IIVOZ4.js.map → fonts-7VWBQPJF.js.map} +0 -0
  867. /package/dist/{forecast-G43FKEZE.js.map → forecast-HB3RDBQN.js.map} +0 -0
  868. /package/dist/{forecast-5YKQZSE7.js.map → forecast-OI7YWZ6F.js.map} +0 -0
  869. /package/dist/{funnel-ND7OXIKT.js.map → funnel-7OA33VRP.js.map} +0 -0
  870. /package/dist/{ga4-2BL5YAYN.js.map → ga4-LPDIBNYP.js.map} +0 -0
  871. /package/dist/{generate-D3LUXFJT.js.map → generate-OMXBFGGR.js.map} +0 -0
  872. /package/dist/{get-PU3YHQWN.js.map → get-2RSN4N3J.js.map} +0 -0
  873. /package/dist/{get-GB6SPWCA.js.map → get-6N7QJMIP.js.map} +0 -0
  874. /package/dist/{google-7STODZQR.js.map → google-5ESVO76E.js.map} +0 -0
  875. /package/dist/{google-MHB5TOFN.js.map → google-6JZBJ2ZQ.js.map} +0 -0
  876. /package/dist/{google-ads-XGEGKEL6.js.map → google-ads-G7REKD4A.js.map} +0 -0
  877. /package/dist/{gsc-UU3T2C6B.js.map → gsc-FIZTQX3N.js.map} +0 -0
  878. /package/dist/{history-OQAOTEO3.js.map → history-QKDYBSYM.js.map} +0 -0
  879. /package/dist/{history-NYWAMWAY.js.map → history-YMK2JNZU.js.map} +0 -0
  880. /package/dist/{hubspot-LMIVY7FR.js.map → hubspot-BUFS7S33.js.map} +0 -0
  881. /package/dist/{icon-GB7UH5RF.js.map → icon-CSVAZ7NE.js.map} +0 -0
  882. /package/dist/{ingest-FRDTTPYD.js.map → ideas-JQT422P7.js.map} +0 -0
  883. /package/dist/{images-PPMIMPTS.js.map → images-WBNWK2ZH.js.map} +0 -0
  884. /package/dist/{ingest-2YGWBWAB.js.map → ingest-RQUJGS7K.js.map} +0 -0
  885. /package/dist/{logo-YSNUUT33.js.map → ingest-XLTRLCDV.js.map} +0 -0
  886. /package/dist/{insights-PZXFCMX2.js.map → insights-SQLE5NOJ.js.map} +0 -0
  887. /package/dist/{inspect-QF2S3U2E.js.map → inspect-KFVAMD4N.js.map} +0 -0
  888. /package/dist/{inspiration-XQYHBJY2.js.map → inspiration-IX5N724J.js.map} +0 -0
  889. /package/dist/{intent-JJTDJ732.js.map → intent-4KJGYYHL.js.map} +0 -0
  890. /package/dist/{keyword-gap-4NQN56JP.js.map → keyword-gap-U64KXDR4.js.map} +0 -0
  891. /package/dist/{keyword-metrics-QCIOBMTW.js.map → keyword-metrics-WYF3QMCW.js.map} +0 -0
  892. /package/dist/{keywords-for-site-FS635JXM.js.map → keywords-for-site-G5L5EP3T.js.map} +0 -0
  893. /package/dist/{landing-6H5QEHOW.js.map → landing-Y6QCTXCZ.js.map} +0 -0
  894. /package/dist/{languages-FNE45NXJ.js.map → languages-7IPVGGW5.js.map} +0 -0
  895. /package/dist/{leads-MKLSWZO6.js.map → leads-4SJ4NJOI.js.map} +0 -0
  896. /package/dist/{learn-C564OA7W.js.map → learn-3BDZUWDT.js.map} +0 -0
  897. /package/dist/{line-item-writes-K7QNWRQ3.js.map → line-item-writes-YXKYR25W.js.map} +0 -0
  898. /package/dist/{line-items-TBTHVKCZ.js.map → line-items-CKUD2UU4.js.map} +0 -0
  899. /package/dist/{link-CPJJ6T4M.js.map → link-VBYFI7AM.js.map} +0 -0
  900. /package/dist/{linkedin-HGUK624E.js.map → linkedin-UGMAFSGO.js.map} +0 -0
  901. /package/dist/{list-OKDU5W4D.js.map → list-6ZNZGRRK.js.map} +0 -0
  902. /package/dist/{list-N5SJXLYF.js.map → list-ENYDGT3F.js.map} +0 -0
  903. /package/dist/{list-AAT5CWDA.js.map → list-VSUF2IWT.js.map} +0 -0
  904. /package/dist/{locations-FTDI4FBI.js.map → locations-QJBYWRCN.js.map} +0 -0
  905. /package/dist/{log-KVRWIJS5.js.map → log-AACKGBDW.js.map} +0 -0
  906. /package/dist/{performance-YJVMM6DL.js.map → logo-VHXH4J6A.js.map} +0 -0
  907. /package/dist/{make-4NTHJ4TG.js.map → make-W2PYZXYF.js.map} +0 -0
  908. /package/dist/{map-HQ43MKEC.js.map → map-63CQHWPI.js.map} +0 -0
  909. /package/dist/{mcp-MFLUHPL5.js.map → mcp-RKAXC6IP.js.map} +0 -0
  910. /package/dist/{media-sources-A4ICRSKB.js.map → media-sources-EZKAJNVD.js.map} +0 -0
  911. /package/dist/{members-NRKQSSVS.js.map → members-SELIA674.js.map} +0 -0
  912. /package/dist/{metrics-3BRTJNGW.js.map → metrics-V6SKOVNH.js.map} +0 -0
  913. /package/dist/{models-IH6KE6OH.js.map → models-2XRYXSRA.js.map} +0 -0
  914. /package/dist/{normalize-EH6BTBOB.js.map → normalize-VAZPTBDX.js.map} +0 -0
  915. /package/dist/{options-YEPQXXRY.js.map → options-NSCZSQ5P.js.map} +0 -0
  916. /package/dist/{pages-FTI44OSH.js.map → pages-PTWRXAZT.js.map} +0 -0
  917. /package/dist/{query-3OMCFGLU.js.map → performance-K7E5KAZW.js.map} +0 -0
  918. /package/dist/{pixels-DWW2TDY2.js.map → pixels-MYT3TCHZ.js.map} +0 -0
  919. /package/dist/{pixels-MBKR4XPX.js.map → pixels-ZZCQUS3J.js.map} +0 -0
  920. /package/dist/{promoted-tweet-writes-M5OVEBC5.js.map → promoted-tweet-writes-PKEO6WUK.js.map} +0 -0
  921. /package/dist/{promoted-tweets-2MOIERNB.js.map → promoted-tweets-7MXVZRBI.js.map} +0 -0
  922. /package/dist/{publish-NPENZIHV.js.map → publish-MPMGRV72.js.map} +0 -0
  923. /package/dist/{reddit-LI37G5LS.js.map → query-UD4OIZ3A.js.map} +0 -0
  924. /package/dist/{run-AFMTXJTU.js.map → reddit-XIHRI3CN.js.map} +0 -0
  925. /package/dist/{refresh-4BBV5SPL.js.map → refresh-A27N75NH.js.map} +0 -0
  926. /package/dist/{release-4X3TLMQT.js.map → release-UKRB5IUN.js.map} +0 -0
  927. /package/dist/{relevant-pages-DIYZM6FJ.js.map → relevant-pages-VXSHEOU2.js.map} +0 -0
  928. /package/dist/{remove-Q4AES5UH.js.map → remove-AFNFVPZY.js.map} +0 -0
  929. /package/dist/{reopen-SDTPL3BN.js.map → reopen-M5HE6J3G.js.map} +0 -0
  930. /package/dist/{rerun-NA3MH4HG.js.map → rerun-5THJLQQJ.js.map} +0 -0
  931. /package/dist/{research-LXQRNAQ2.js.map → research-JHDWWFL7.js.map} +0 -0
  932. /package/dist/{research-5H265UV7.js.map → research-U7RQXMYH.js.map} +0 -0
  933. /package/dist/{reset-52PU3CVD.js.map → reset-4CCWB2RT.js.map} +0 -0
  934. /package/dist/{reset-42M5IKDI.js.map → reset-J3KCWFMZ.js.map} +0 -0
  935. /package/dist/{resolve-R4IACKIZ.js.map → resolve-HEK27ANI.js.map} +0 -0
  936. /package/dist/{retry-FPF42ZNG.js.map → retry-HPZIUG2S.js.map} +0 -0
  937. /package/dist/{retry-RTQGAH6G.js.map → retry-VVI6N6UR.js.map} +0 -0
  938. /package/dist/{rules-CGNYJYVC.js.map → rules-YLLFDZEM.js.map} +0 -0
  939. /package/dist/{rules-add-EO5476BF.js.map → rules-add-U2GU4AGP.js.map} +0 -0
  940. /package/dist/{run-3AZJ3UQU.js.map → run-M7ZDE6IA.js.map} +0 -0
  941. /package/dist/{shared-NDRFKAH7.js.map → run-V5YQB6TH.js.map} +0 -0
  942. /package/dist/{scaffold-ad-OGU2IINY.js.map → scaffold-ad-H4GJOKAW.js.map} +0 -0
  943. /package/dist/{scaffold-static-ad-HO4BJW4H.js.map → scaffold-static-ad-2YIFHCTL.js.map} +0 -0
  944. /package/dist/{scaffold-video-TLQ4WSDK.js.map → scaffold-video-3EJLKR2O.js.map} +0 -0
  945. /package/dist/{schedule-AWWMI5FO.js.map → schedule-QMOKWTJ3.js.map} +0 -0
  946. /package/dist/{scheduled-agents-ELLU7BSE.js.map → scheduled-agents-FCQHQ6KR.js.map} +0 -0
  947. /package/dist/{schema-QNVLKMKG.js.map → schema-THFLCMBN.js.map} +0 -0
  948. /package/dist/{schema-BOOZEJPA.js.map → schema-XKEEAUXP.js.map} +0 -0
  949. /package/dist/{search-BZNIB2XF.js.map → search-XIUYSWO6.js.map} +0 -0
  950. /package/dist/{select-NLWZIQ7L.js.map → select-I22NPSIW.js.map} +0 -0
  951. /package/dist/{set-prompt-QKW2L553.js.map → set-prompt-S75OMQ7L.js.map} +0 -0
  952. /package/dist/{setup-links-NMSQ4BG7.js.map → setup-links-QVI6NAOK.js.map} +0 -0
  953. /package/dist/{sync-definition-LSGDHMHV.js.map → shared-3IBNDEFL.js.map} +0 -0
  954. /package/dist/{site-GGYFBZT5.js.map → site-PZPJY33N.js.map} +0 -0
  955. /package/dist/{sources-LPQZDTIU.js.map → sources-ER7ANNG3.js.map} +0 -0
  956. /package/dist/{sources-KTGDMUV4.js.map → sources-VA23PDND.js.map} +0 -0
  957. /package/dist/{stale-C5JLQ4D2.js.map → stale-MHTU2NQJ.js.map} +0 -0
  958. /package/dist/{stats-RCLQE4HJ.js.map → stats-ZAGJH4AD.js.map} +0 -0
  959. /package/dist/{status-6PS3HDS5.js.map → status-ABMJBCPJ.js.map} +0 -0
  960. /package/dist/{stock-ECRBD7RP.js.map → stock-6SHHLSKG.js.map} +0 -0
  961. /package/dist/{studio-LMDDQWRY.js.map → studio-ZLCGXFAN.js.map} +0 -0
  962. /package/dist/{sync-XSATDLE6.js.map → sync-QDD3MRJ6.js.map} +0 -0
  963. /package/dist/{viewer-check-I45HHWSW.js.map → sync-definition-2EBSQA6A.js.map} +0 -0
  964. /package/dist/{tag-manager-G3LBQZUL.js.map → tag-manager-3CJ66GKJ.js.map} +0 -0
  965. /package/dist/{tags-OK34UGSM.js.map → tags-5JYOEYIT.js.map} +0 -0
  966. /package/dist/{tags-EXWKO6Q6.js.map → tags-B473RWAA.js.map} +0 -0
  967. /package/dist/{tags-5Y7TPJNZ.js.map → tags-EWHPUM2V.js.map} +0 -0
  968. /package/dist/{tags-6TT5ZJVX.js.map → tags-KBCX6BDU.js.map} +0 -0
  969. /package/dist/{tags-BQLIOWS4.js.map → tags-PEWN6GNZ.js.map} +0 -0
  970. /package/dist/{targeting-criteria-AWPMOX4V.js.map → targeting-criteria-EU65WUUF.js.map} +0 -0
  971. /package/dist/{targets-EXYCOHEX.js.map → targets-KVXS5QKM.js.map} +0 -0
  972. /package/dist/{testimonials-BTYMR3U4.js.map → testimonials-GR6TIS5S.js.map} +0 -0
  973. /package/dist/{themes-AOU4ZZXL.js.map → themes-JWWTOR3I.js.map} +0 -0
  974. /package/dist/{top-companies-FRPAURAH.js.map → top-companies-OOX3DITI.js.map} +0 -0
  975. /package/dist/{translate-SF234KLG.js.map → translate-GEFUP6KQ.js.map} +0 -0
  976. /package/dist/{triggers-SJUXDU3X.js.map → triggers-OX2GKG4Y.js.map} +0 -0
  977. /package/dist/{unlink-RIZD3XTI.js.map → unlink-3USEPJSA.js.map} +0 -0
  978. /package/dist/{unstage-MKTIVI3I.js.map → unstage-VSCNPTAC.js.map} +0 -0
  979. /package/dist/{update-COHXM25C.js.map → update-6JKTH65B.js.map} +0 -0
  980. /package/dist/{update-OXVZXDYH.js.map → update-FG4ELXYJ.js.map} +0 -0
  981. /package/dist/{update-SZLYEEU4.js.map → update-GZFKHA3A.js.map} +0 -0
  982. /package/dist/{update-NKX2GXAR.js.map → update-HZHG67N6.js.map} +0 -0
  983. /package/dist/{upload-LEDO3IRC.js.map → upload-BKCQ6FRW.js.map} +0 -0
  984. /package/dist/{url-options-Q5SL42CV.js.map → url-options-HCVRPZYU.js.map} +0 -0
  985. /package/dist/{url-params-KP6D7BF3.js.map → url-params-UN4DRN2H.js.map} +0 -0
  986. /package/dist/{validate-7QWQZ2OL.js.map → validate-NOWIOAHE.js.map} +0 -0
  987. /package/dist/{videos-VABK4KHJ.js.map → videos-XMTDEHEJ.js.map} +0 -0
  988. /package/dist/{web-DZGUPZYQ.js.map → web-UGU7YMII.js.map} +0 -0
  989. /package/dist/{winning-ads-6MDLRSKM.js.map → winning-ads-QOAYIR5U.js.map} +0 -0
  990. /package/dist/{write-commands-3VIK3VC4.js.map → write-commands-6VR2UD3T.js.map} +0 -0
  991. /package/dist/{x-GRDU7QC2.js.map → x-VCSMV7T5.js.map} +0 -0
@@ -0,0 +1 @@
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":[]}
@@ -0,0 +1,113 @@
1
+ import {
2
+ parseXApiError
3
+ } from "./chunk-M6UNISGO.js";
4
+ import {
5
+ resolveXAccountId
6
+ } from "./chunk-JYBLCIRN.js";
7
+ import {
8
+ cacheGet,
9
+ cacheSet,
10
+ writeAdsJson,
11
+ writeAdsOutput
12
+ } from "./chunk-SWL4AAPP.js";
13
+ import {
14
+ ApiError,
15
+ apiGet
16
+ } from "./chunk-XDZVBX6L.js";
17
+ import "./chunk-N5O67GK5.js";
18
+ import "./chunk-EE72SSB2.js";
19
+ import {
20
+ registerSchema
21
+ } from "./chunk-WNSE7N75.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-PKEO6WUK.js").then((m) => m.targetingCriteriaCreateCommand),
100
+ remove: () => import("./promoted-tweet-writes-PKEO6WUK.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-EU65WUUF.js.map
@@ -0,0 +1,103 @@
1
+ import {
2
+ chatBody,
3
+ failApi,
4
+ failValidation
5
+ } from "./chunk-G4STCTY3.js";
6
+ import "./chunk-YW7VMU5L.js";
7
+ import {
8
+ TRIGGER_KIND_IDS,
9
+ TRIGGER_TARGET_FIELD_IDS
10
+ } from "./chunk-66QHX566.js";
11
+ import "./chunk-GXDLWBOY.js";
12
+ import "./chunk-GIWHHCD6.js";
13
+ import "./chunk-XQIOCIDO.js";
14
+ import "./chunk-WTJSMYY2.js";
15
+ import {
16
+ apiPost
17
+ } from "./chunk-XDZVBX6L.js";
18
+ import "./chunk-N5O67GK5.js";
19
+ import "./chunk-EE72SSB2.js";
20
+ import {
21
+ registerSchema,
22
+ writeJson
23
+ } from "./chunk-WNSE7N75.js";
24
+ import "./chunk-YQSBHWOI.js";
25
+
26
+ // src/commands/scheduled-agents/targets.ts
27
+ import { defineCommand } from "citty";
28
+ var ARGS = {
29
+ trigger: {
30
+ type: "string",
31
+ description: "The trigger kind to point, e.g. task.claimed. `baker scheduled-agents triggers --trigger <kind>` lists its `pointAt` fields.",
32
+ required: true
33
+ },
34
+ field: {
35
+ type: "string",
36
+ description: `Which of its narrowings to list: ${TRIGGER_TARGET_FIELD_IDS.join(", ")}. Defaults to the kind's first.`,
37
+ required: false
38
+ },
39
+ search: { type: "string", description: "Only options whose name contains this.", required: false },
40
+ form: {
41
+ type: "string",
42
+ description: "With --field stepId: the Form (slug) whose steps to list.",
43
+ required: false
44
+ },
45
+ app: {
46
+ type: "string",
47
+ description: "With --trigger app.event and --field appEvent or account: the connected tool (slug) to list for.",
48
+ required: false
49
+ },
50
+ event: {
51
+ type: "string",
52
+ 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.",
53
+ required: false
54
+ }
55
+ };
56
+ registerSchema({
57
+ command: "scheduled-agents.targets",
58
+ 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.",
59
+ args: ARGS
60
+ });
61
+ var targetsCommand = defineCommand({
62
+ meta: {
63
+ name: "targets",
64
+ description: `What a trigger can be pointed at \u2014 so "when a Task is picked up" becomes "when THIS Task is picked up".
65
+
66
+ 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.
67
+
68
+ Examples:
69
+ baker scheduled-agents targets --trigger task.claimed --field taskId --search hero
70
+ baker scheduled-agents targets --trigger session.published --field agentId
71
+ baker scheduled-agents targets --trigger flow.step.submitted --field stepId --form quote
72
+ baker scheduled-agents targets --trigger advertiser.new_ads
73
+ baker scheduled-agents targets --trigger app.event --field toolkit
74
+ baker scheduled-agents targets --trigger app.event --field appEvent --app gmail
75
+ baker scheduled-agents targets --trigger app.event --field appEvent --app gmail --event GMAIL_NEW_GMAIL_MESSAGE
76
+ Full guide: __tooling__/docs/tools/baker/scheduled-agents.md`
77
+ },
78
+ args: ARGS,
79
+ run: async ({ args }) => {
80
+ const trigger = args.trigger;
81
+ if (!TRIGGER_KIND_IDS.some((kind) => kind === trigger)) {
82
+ failValidation(`--trigger must be one of: ${TRIGGER_KIND_IDS.join(", ")}.`);
83
+ }
84
+ try {
85
+ const response = await apiPost("/api/scheduled-agents/targets", {
86
+ trigger,
87
+ ...args.field ? { field: args.field } : {},
88
+ ...args.search ? { search: args.search } : {},
89
+ ...args.form ? { flowId: args.form } : {},
90
+ ...args.app ? { toolkit: args.app } : {},
91
+ ...args.event ? { event: args.event } : {},
92
+ ...chatBody()
93
+ });
94
+ writeJson(response);
95
+ } catch (err) {
96
+ failApi(err);
97
+ }
98
+ }
99
+ });
100
+ export {
101
+ targetsCommand
102
+ };
103
+ //# sourceMappingURL=targets-KVXS5QKM.js.map
@@ -0,0 +1,32 @@
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-6RZU4M6W.js").then((m) => m.getCommand),
22
+ search: () => import("./search-XIUYSWO6.js").then((m) => m.searchCommand),
23
+ list: () => import("./list-6ZNZGRRK.js").then((m) => m.listCommand),
24
+ delete: () => import("./delete-A4F5Z54J.js").then((m) => m.deleteCommand),
25
+ tags: () => import("./tags-EWHPUM2V.js").then((m) => m.tagsCommand),
26
+ sources: () => import("./sources-VA23PDND.js").then((m) => m.sourcesCommand)
27
+ }
28
+ });
29
+ export {
30
+ testimonialsCommand
31
+ };
32
+ //# sourceMappingURL=testimonials-GR6TIS5S.js.map
@@ -0,0 +1,94 @@
1
+ import {
2
+ exitWithServiceReadError
3
+ } from "./chunk-D4LKZJYJ.js";
4
+ import {
5
+ failWriteValidation,
6
+ listFlag,
7
+ requireCustomerId
8
+ } from "./chunk-M7IJU77B.js";
9
+ import "./chunk-ERSX3MKH.js";
10
+ import "./chunk-SFJW2KED.js";
11
+ import "./chunk-4NZ47VXO.js";
12
+ import "./chunk-D5FY4FAK.js";
13
+ import "./chunk-FNA277HP.js";
14
+ import "./chunk-SVM3DGAQ.js";
15
+ import {
16
+ getManagerIdForCustomer,
17
+ writeJsonEnvelope
18
+ } from "./chunk-SWL4AAPP.js";
19
+ import "./chunk-5WMTPYKT.js";
20
+ import "./chunk-23H4ZJRP.js";
21
+ import "./chunk-DWX44QL6.js";
22
+ import "./chunk-2FSEESJU.js";
23
+ import "./chunk-CVBKW75S.js";
24
+ import "./chunk-BLAHHMPF.js";
25
+ import "./chunk-XQIOCIDO.js";
26
+ import "./chunk-WTJSMYY2.js";
27
+ import {
28
+ apiPost
29
+ } from "./chunk-XDZVBX6L.js";
30
+ import "./chunk-N5O67GK5.js";
31
+ import "./chunk-EE72SSB2.js";
32
+ import {
33
+ registerSchema
34
+ } from "./chunk-WNSE7N75.js";
35
+ import "./chunk-YQSBHWOI.js";
36
+
37
+ // src/commands/ads/google/keywords/themes.ts
38
+ import { defineCommand } from "citty";
39
+ var ARGS = {
40
+ "customer-id": { type: "string", description: "Google Ads customer ID (10 digits, no dashes)" },
41
+ keywords: { type: "string", description: "Comma-separated keywords to place" },
42
+ "ad-groups": {
43
+ type: "string",
44
+ description: "Comma-separated existing ad group ids (or resource names) to sort them into \u2014 read them with `ad-groups list`"
45
+ }
46
+ };
47
+ registerSchema({
48
+ command: "ads.google.keywords.themes",
49
+ 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).",
50
+ args: Object.fromEntries(
51
+ Object.entries(ARGS).map(([name, arg]) => [
52
+ name,
53
+ { type: arg.type, description: arg.description, required: false }
54
+ ])
55
+ )
56
+ });
57
+ var themesCommand = defineCommand({
58
+ meta: {
59
+ name: "themes",
60
+ description: `Sort keywords into the existing ad groups whose theme fits them (Keyword Planner).
61
+
62
+ Example:
63
+ baker ads google keywords themes --customer-id 1234567890 --keywords "solar panels,heat pumps" --ad-groups 111,222`
64
+ },
65
+ args: ARGS,
66
+ run: async ({ args }) => {
67
+ const customerId = requireCustomerId(args);
68
+ const keywords = listFlag(args.keywords);
69
+ const adGroups = listFlag(args["ad-groups"]);
70
+ if (!keywords?.length || !adGroups?.length) failWriteValidation("pass --keywords and --ad-groups");
71
+ const managerId = getManagerIdForCustomer(customerId);
72
+ try {
73
+ const { data } = await apiPost(
74
+ "/api/ads/google/keywords/themes",
75
+ {
76
+ customerId,
77
+ ...managerId ? { managerId } : {},
78
+ keywords,
79
+ adGroups
80
+ }
81
+ );
82
+ const hints = data.unusable_ad_groups.length > 0 ? [
83
+ `${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.`
84
+ ] : [];
85
+ writeJsonEnvelope(hints.length > 0 ? { ok: true, data, hints } : { ok: true, data });
86
+ } catch (err) {
87
+ exitWithServiceReadError(err);
88
+ }
89
+ }
90
+ });
91
+ export {
92
+ themesCommand
93
+ };
94
+ //# sourceMappingURL=themes-JWWTOR3I.js.map
@@ -0,0 +1,108 @@
1
+ import {
2
+ csvOrJson,
3
+ daysAgoIso,
4
+ handleLinkedinError,
5
+ todayIso
6
+ } from "./chunk-5HJRZFMW.js";
7
+ import {
8
+ TABLE_OUTPUT_FORMATS,
9
+ outputFormatRefusal,
10
+ writeAdsJson,
11
+ writeAdsOutput,
12
+ writeJsonEnvelope
13
+ } from "./chunk-SWL4AAPP.js";
14
+ import {
15
+ NO_CACHE_ARG
16
+ } from "./chunk-K3TNTBZJ.js";
17
+ import "./chunk-66QHX566.js";
18
+ import "./chunk-GXDLWBOY.js";
19
+ import "./chunk-GIWHHCD6.js";
20
+ import "./chunk-XQIOCIDO.js";
21
+ import "./chunk-WTJSMYY2.js";
22
+ import {
23
+ apiPost
24
+ } from "./chunk-XDZVBX6L.js";
25
+ import "./chunk-N5O67GK5.js";
26
+ import "./chunk-EE72SSB2.js";
27
+ import "./chunk-WNSE7N75.js";
28
+ import "./chunk-YQSBHWOI.js";
29
+
30
+ // src/commands/ads/linkedin/top-companies.ts
31
+ import { defineCommand } from "citty";
32
+ var COMPANIES_HINT = "For whole-account reach over months (one row per company, --by month|campaign, --with-domains), use `baker ads linkedin companies`.";
33
+ var topCompaniesCommand = defineCommand({
34
+ meta: {
35
+ name: "top-companies",
36
+ description: `Top companies whose employees saw / clicked / converted on a campaign.
37
+
38
+ Wrapper for: analytics --pivot company. Returns rows sorted by impressions desc.
39
+ Each row's pivot[] contains { urn, id, name } \u2014 org names are resolved automatically.
40
+ Cross-reference names against your target account list to spot audience leakage.
41
+
42
+ Demographic data is delayed 12-24h with a \u22653-event privacy floor.
43
+
44
+ Examples:
45
+ baker ads linkedin top-companies --campaign-id 1234 --last-days 30
46
+ baker ads linkedin top-companies --campaign-id 1,2,3 --intent revenue --last-days 90 --top-n 50
47
+ baker ads linkedin top-companies --campaign-id 1234 --output csv`
48
+ },
49
+ args: {
50
+ "campaign-id": { type: "string", description: "Comma-separated campaign IDs (required)" },
51
+ intent: { type: "string", description: "baseline | revenue | funnel | engagement | lead-gen (default: baseline)" },
52
+ "top-n": { type: "string", description: "Top rows by impressions (default: 25)" },
53
+ start: { type: "string", description: "Start date YYYY-MM-DD" },
54
+ end: { type: "string", description: "End date YYYY-MM-DD" },
55
+ "last-days": { type: "string", description: "Window relative to today (default: 30)" },
56
+ "no-cache": NO_CACHE_ARG,
57
+ output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
58
+ },
59
+ run: async ({ args }) => {
60
+ const campaignIdsRaw = args["campaign-id"];
61
+ 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);
62
+ if (invalid !== null || !campaignIdsRaw) {
63
+ writeAdsJson({ ok: false, error: { code: "INVALID_ARGS", message: invalid ?? "" } });
64
+ process.exit(1);
65
+ }
66
+ const ids = campaignIdsRaw.split(",").map((s) => s.trim()).filter(Boolean);
67
+ const intent = args.intent ?? "baseline";
68
+ const topN = args["top-n"] ? Number(args["top-n"]) : 25;
69
+ const start = args.start ?? daysAgoIso(args["last-days"] ? Number(args["last-days"]) : 30);
70
+ const end = args.end ?? todayIso();
71
+ try {
72
+ const data = await apiPost("/api/ads/linkedin/analytics", {
73
+ request: {
74
+ level: "campaign",
75
+ ids,
76
+ intent,
77
+ pivot: "company",
78
+ start,
79
+ end,
80
+ granularity: "ALL",
81
+ limit: 500
82
+ },
83
+ skipCache: Boolean(args["no-cache"])
84
+ });
85
+ const top = [...data.rows].sort((a, b) => Number(b.impressions ?? 0) - Number(a.impressions ?? 0)).slice(0, topN);
86
+ const fmt = csvOrJson(args);
87
+ if (fmt !== "json") {
88
+ writeAdsOutput(top, fmt, data.fields, [COMPANIES_HINT]);
89
+ return;
90
+ }
91
+ writeJsonEnvelope({
92
+ ok: true,
93
+ data: {
94
+ query: { campaigns: ids, start, end, intent, topN },
95
+ rows: top,
96
+ warnings: data.warnings
97
+ },
98
+ hints: [COMPANIES_HINT]
99
+ });
100
+ } catch (err) {
101
+ handleLinkedinError(err);
102
+ }
103
+ }
104
+ });
105
+ export {
106
+ topCompaniesCommand
107
+ };
108
+ //# sourceMappingURL=top-companies-OOX3DITI.js.map