@koda-sl/baker-cli 0.553.0 → 0.555.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (857) hide show
  1. package/README.md +8 -4
  2. package/dist/account-H5CL6KUY.js +82 -0
  3. package/dist/account-assets-QMKT5AT7.js +290 -0
  4. package/dist/account-level-BELF6JHB.js +611 -0
  5. package/dist/account-reads-T6GTSAXE.js +219 -0
  6. package/dist/account-users-ZGJCVGX4.js +64 -0
  7. package/dist/accounts-EXQNPSYH.js +701 -0
  8. package/dist/accounts-GNVLFZ3X.js +80 -0
  9. package/dist/actions-Q2BMP27K.js +55 -0
  10. package/dist/activecampaign-SJO2YK6M.js +938 -0
  11. package/dist/add-Q3FGYX5Q.js +305 -0
  12. package/dist/add-YGQBSEVK.js +107 -0
  13. package/dist/ads-7QKQEHKT.js +48 -0
  14. package/dist/ads-H5AEYIY3.js +120 -0
  15. package/dist/adsets-BUIT7HF2.js +182 -0
  16. package/dist/advertisers-ZAHXMIAT.js +123 -0
  17. package/dist/analytics-B6ER4TQ7.js +2437 -0
  18. package/dist/analytics-QW5ZXDJR.js +447 -0
  19. package/dist/animate-Q43SOWB4.js +480 -0
  20. package/dist/asset-writes-JVFE457M.js +50 -0
  21. package/dist/assign-HJ2NXW4W.js +80 -0
  22. package/dist/audience-size-IM3N6W7C.js +76 -0
  23. package/dist/audience-writes-DWSCHYQF.js +327 -0
  24. package/dist/audiences-PYBJU2GV.js +106 -0
  25. package/dist/audit-N3LAQMD4.js +154 -0
  26. package/dist/autocomplete-FBTPT5MA.js +114 -0
  27. package/dist/avatars-Y3DALQIU.js +38 -0
  28. package/dist/bid-pricing-UUAC4GTQ.js +103 -0
  29. package/dist/brand-IZYD5SBJ.js +22 -0
  30. package/dist/brief-NA3E2W4P.js +543 -0
  31. package/dist/campaign-groups-3IUOLEK2.js +99 -0
  32. package/dist/campaign-writes-Y7QNFOE7.js +168 -0
  33. package/dist/campaigns-2Z6WXIVA.js +130 -0
  34. package/dist/campaigns-B2AUW4TV.js +111 -0
  35. package/dist/campaigns-IDEA3LOK.js +113 -0
  36. package/dist/canvas-WHFDCHUP.js +46 -0
  37. package/dist/capabilities-FVMMLKPY.js +147 -0
  38. package/dist/catalog-URTZYAPU.js +66 -0
  39. package/dist/catalogs-OEUNVE4N.js +782 -0
  40. package/dist/chatgpt-YBHXCXWZ.js +47 -0
  41. package/dist/chats-EENMDXWZ.js +449 -0
  42. package/dist/check-7735BPTR.js +107 -0
  43. package/dist/chunk-2QGGI7MF.js +831 -0
  44. package/dist/chunk-3HKZU3Y5.js +19 -0
  45. package/dist/chunk-3OMFSYQ3.js +344 -0
  46. package/dist/chunk-4N3Y5QWW.js +29 -0
  47. package/dist/chunk-4N3Y5QWW.js.map +1 -0
  48. package/dist/chunk-65CQYRMK.js +98 -0
  49. package/dist/chunk-6MZFOMLU.js +225 -0
  50. package/dist/chunk-6PT22YSR.js +91 -0
  51. package/dist/chunk-6WVYBY2G.js +8954 -0
  52. package/dist/chunk-757ZFIL4.js +910 -0
  53. package/dist/chunk-75HAGIH6.js +61 -0
  54. package/dist/chunk-7BVRFQN4.js +430 -0
  55. package/dist/chunk-7TDJCDKT.js +163 -0
  56. package/dist/chunk-AL4MRNYI.js +709 -0
  57. package/dist/chunk-BMNOMOWP.js +156 -0
  58. package/dist/chunk-BS2MC62Y.js +203 -0
  59. package/dist/chunk-C6PWVZQE.js +103 -0
  60. package/dist/chunk-CDTAKCJR.js +178 -0
  61. package/dist/chunk-CH44XVPE.js +142 -0
  62. package/dist/chunk-CJWLDKFO.js +494 -0
  63. package/dist/chunk-DAMC4FKK.js +224 -0
  64. package/dist/chunk-DSDI5DY3.js +115 -0
  65. package/dist/chunk-DSDI5DY3.js.map +1 -0
  66. package/dist/chunk-DWPOAU4Z.js +5471 -0
  67. package/dist/chunk-EENYLJUN.js +225 -0
  68. package/dist/chunk-EJBLF2LI.js +167 -0
  69. package/dist/chunk-EJMPKO6V.js +287 -0
  70. package/dist/chunk-EKXLJRO3.js +197 -0
  71. package/dist/chunk-EL3TDR5S.js +1744 -0
  72. package/dist/chunk-GRDZWZKQ.js +249 -0
  73. package/dist/chunk-GVUBRSD3.js +51 -0
  74. package/dist/chunk-GYREQDTJ.js +392 -0
  75. package/dist/chunk-HBRXFQQV.js +3510 -0
  76. package/dist/chunk-HLHR3EK2.js +23 -0
  77. package/dist/chunk-IMFIRELA.js +547 -0
  78. package/dist/chunk-IOKD77L2.js +89 -0
  79. package/dist/chunk-KDAINT54.js +131 -0
  80. package/dist/chunk-KKKZRQFY.js +297 -0
  81. package/dist/chunk-KOEXPN3G.js +2209 -0
  82. package/dist/chunk-KT5JVIPZ.js +91 -0
  83. package/dist/chunk-LC6PVPJX.js +76 -0
  84. package/dist/chunk-LETR3RQE.js +275 -0
  85. package/dist/chunk-MKLAZD23.js +7857 -0
  86. package/dist/chunk-MKLAZD23.js.map +1 -0
  87. package/dist/chunk-N3PASNUA.js +136 -0
  88. package/dist/chunk-NL77JRKE.js +170 -0
  89. package/dist/chunk-OBQ5YUOZ.js +1902 -0
  90. package/dist/chunk-OTFHIGEO.js +207 -0
  91. package/dist/chunk-PCUWBZM3.js +169 -0
  92. package/dist/chunk-PNWXTOQ4.js +455 -0
  93. package/dist/chunk-PQFTKHDA.js +479 -0
  94. package/dist/chunk-Q5DFEVLE.js +148 -0
  95. package/dist/chunk-QXCGWAC6.js +399 -0
  96. package/dist/chunk-RKDMYL4A.js +438 -0
  97. package/dist/chunk-SCBSAIVV.js +392 -0
  98. package/dist/chunk-SPBUE7R4.js +685 -0
  99. package/dist/chunk-TWFZIHKK.js +219 -0
  100. package/dist/chunk-U6G6ALXP.js +66 -0
  101. package/dist/chunk-UCJAPB5Y.js +334 -0
  102. package/dist/chunk-VFDWUIGR.js +57 -0
  103. package/dist/chunk-WC3YSN7L.js +604 -0
  104. package/dist/chunk-WIOPEK7K.js +930 -0
  105. package/dist/chunk-X3GWGFZP.js +5368 -0
  106. package/dist/chunk-X6U3B6YK.js +343 -0
  107. package/dist/chunk-X6U3B6YK.js.map +1 -0
  108. package/dist/chunk-XYKODRQR.js +191 -0
  109. package/dist/chunk-XZAVBONI.js +64 -0
  110. package/dist/chunk-Y5PNLB24.js +84 -0
  111. package/dist/claim-PGDIRXIC.js +200 -0
  112. package/dist/cli.js +34 -34
  113. package/dist/companies-WTPKGEB3.js +198 -0
  114. package/dist/company-6H2H73YP.js +308 -0
  115. package/dist/complete-2QBC3POO.js +84 -0
  116. package/dist/connect-35YPFAUL.js +45 -0
  117. package/dist/conversation-YZFNEWDV.js +96 -0
  118. package/dist/conversion-upload-command-J2FIO74Y.js +439 -0
  119. package/dist/conversions-ZFDBD3OU.js +140 -0
  120. package/dist/copy-writes-2B36QJUY.js +170 -0
  121. package/dist/create-3H67EUTO.js +62 -0
  122. package/dist/create-ALTOBDP4.js +239 -0
  123. package/dist/create-C3MWUYX2.js +210 -0
  124. package/dist/create-WHTT6IXY.js +135 -0
  125. package/dist/creatives-22BYP5VN.js +118 -0
  126. package/dist/creatives-LTIV3XPT.js +58 -0
  127. package/dist/creatives-Y2WLGDJW.js +223 -0
  128. package/dist/credentials-J5DMQJWN.js +290 -0
  129. package/dist/critique-RFTS2I46.js +232 -0
  130. package/dist/critique-X6XVPIUG.js +1451 -0
  131. package/dist/crm-LWRGJYHW.js +227 -0
  132. package/dist/crm-RUNEJY2R.js +323 -0
  133. package/dist/crop-4V4P3SKI.js +113 -0
  134. package/dist/custom-conversions-V7QPZIB4.js +128 -0
  135. package/dist/customers-IDB6NLQ6.js +65 -0
  136. package/dist/delete-2QKVUKKB.js +67 -0
  137. package/dist/delete-B7BKF24X.js +57 -0
  138. package/dist/delete-HBRYUWAA.js +69 -0
  139. package/dist/demographics-JHB3NFLU.js +141 -0
  140. package/dist/dimensions-KI3OENZD.js +101 -0
  141. package/dist/discard-FEJ6YL22.js +69 -0
  142. package/dist/domain-JYWNXBKS.js +101 -0
  143. package/dist/download-H3ZDQTFG.js +337 -0
  144. package/dist/download-H3ZDQTFG.js.map +1 -0
  145. package/dist/download-LOBPOIU5.js +172 -0
  146. package/dist/draft-2JVWCYRF.js +134 -0
  147. package/dist/draft-2JVWCYRF.js.map +1 -0
  148. package/dist/draft-4WMYCA7I.js +315 -0
  149. package/dist/draft-4WMYCA7I.js.map +1 -0
  150. package/dist/draft-7VGBJIJU.js +260 -0
  151. package/dist/draft-7VGBJIJU.js.map +1 -0
  152. package/dist/draft-DR5BJK7V.js +138 -0
  153. package/dist/draft-DR5BJK7V.js.map +1 -0
  154. package/dist/draft-EB5ZFDVN.js +557 -0
  155. package/dist/draft-EB5ZFDVN.js.map +1 -0
  156. package/dist/draft-I2FLECEX.js +220 -0
  157. package/dist/draft-N56HPS36.js +374 -0
  158. package/dist/draft-N56HPS36.js.map +1 -0
  159. package/dist/draft-ZLZRTPY6.js +332 -0
  160. package/dist/draft-ZLZRTPY6.js.map +1 -0
  161. package/dist/engine/index.js +5 -5
  162. package/dist/experiments-WVTBHD6G.js +236 -0
  163. package/dist/extract-UELZV3NI.js +142 -0
  164. package/dist/extract-UELZV3NI.js.map +1 -0
  165. package/dist/facets-V2ITIUKD.js +117 -0
  166. package/dist/feedback-PXWPR3NZ.js +136 -0
  167. package/dist/feedback-QSIPSNAL.js +115 -0
  168. package/dist/feedback-record-DJHJWJAF.js +269 -0
  169. package/dist/fetch-QVOOC3FA.js +204 -0
  170. package/dist/fit-REGMM46H.js +65 -0
  171. package/dist/flows-EZV3KCV6.js +250 -0
  172. package/dist/fonts-NUX66HEI.js +39 -0
  173. package/dist/forecast-W6HKYVX5.js +121 -0
  174. package/dist/forecast-XDRKCR65.js +169 -0
  175. package/dist/funnel-3YABA3G2.js +397 -0
  176. package/dist/ga4-IJ2UUICC.js +55 -0
  177. package/dist/generate-22HT24SA.js +263 -0
  178. package/dist/get-GQQLBE5C.js +82 -0
  179. package/dist/get-NL3YZFUJ.js +62 -0
  180. package/dist/google-BPB5JLJG.js +162 -0
  181. package/dist/google-BPB5JLJG.js.map +1 -0
  182. package/dist/google-UJ4YJGTJ.js +3285 -0
  183. package/dist/google-ads-RRKKSKDD.js +198 -0
  184. package/dist/history-2UANIBRN.js +102 -0
  185. package/dist/history-YZ727ZRG.js +153 -0
  186. package/dist/hubspot-KWLXJ6QD.js +782 -0
  187. package/dist/ideas-ZO533P5Y.js +45 -0
  188. package/dist/images-VUWUKGD6.js +92 -0
  189. package/dist/ingest-C2HJ5LUY.js +27 -0
  190. package/dist/ingest-H53JR4GK.js +123 -0
  191. package/dist/inspect-BM6GJHQV.js +192 -0
  192. package/dist/instant-experiences-U6U3FYIH.js +264 -0
  193. package/dist/keyword-metrics-R2QCEDYW.js +200 -0
  194. package/dist/keywords-for-site-NBV72C3W.js +131 -0
  195. package/dist/landing-L3WDTW4D.js +28 -0
  196. package/dist/leads-6PF7ZWCH.js +115 -0
  197. package/dist/leads-IG3IIHXG.js +541 -0
  198. package/dist/learn-V2LIBEEY.js +207 -0
  199. package/dist/line-item-writes-GMNWL4DI.js +211 -0
  200. package/dist/line-items-KPIKXLG4.js +107 -0
  201. package/dist/link-X7IYKR5V.js +67 -0
  202. package/dist/linkedin-RONIUYLJ.js +1330 -0
  203. package/dist/linkedin-RONIUYLJ.js.map +1 -0
  204. package/dist/linkedin-person-47XFTBIN.js +139 -0
  205. package/dist/list-PHNA7QIF.js +154 -0
  206. package/dist/list-QF3BANBM.js +306 -0
  207. package/dist/list-SB3SUTH6.js +67 -0
  208. package/dist/log-JFLSSUJ6.js +95 -0
  209. package/dist/make-ZIJQZD5K.js +1367 -0
  210. package/dist/map-NYJT2MGI.js +436 -0
  211. package/dist/mcp-ABQEICYR.js +729 -0
  212. package/dist/media-AT3VV3PU.js +18 -0
  213. package/dist/media-sources-L4BI7HFL.js +35 -0
  214. package/dist/members-BX37KHKO.js +47 -0
  215. package/dist/meta-2GJZPVKM.js +122 -0
  216. package/dist/normalize-M3VMWF4W.js +806 -0
  217. package/dist/normalize-MA2FBBIV.js +144 -0
  218. package/dist/options-NMWWF2HN.js +125 -0
  219. package/dist/organization-GRAA6ZXU.js +949 -0
  220. package/dist/page-photos-ABK4CJME.js +118 -0
  221. package/dist/performance-MQLRSH44.js +5565 -0
  222. package/dist/performance-RUBIGEAQ.js +27 -0
  223. package/dist/promoted-tweet-writes-3P6QFGLN.js +183 -0
  224. package/dist/promoted-tweets-TGFPH7UI.js +119 -0
  225. package/dist/publish-OUVO65Z5.js +344 -0
  226. package/dist/reddit-HWQCUSEM.js +29 -0
  227. package/dist/refresh-ENQDQGTK.js +97 -0
  228. package/dist/release-ZTVXLUQS.js +63 -0
  229. package/dist/remove-XAFRT7O7.js +53 -0
  230. package/dist/reopen-SWSZHXJZ.js +66 -0
  231. package/dist/rerun-MA2GB6WL.js +96 -0
  232. package/dist/research-TDH4OBX6.js +265 -0
  233. package/dist/research-WWJUNYSJ.js +75 -0
  234. package/dist/reset-34HTKUBQ.js +57 -0
  235. package/dist/reset-KMMGLM7W.js +57 -0
  236. package/dist/resolve-2CIIKADD.js +124 -0
  237. package/dist/retry-V7KZIZKR.js +63 -0
  238. package/dist/retry-YXM23NSB.js +65 -0
  239. package/dist/revenue-D4L6U2CW.js +91 -0
  240. package/dist/rule-writes-HUBHHYEO.js +530 -0
  241. package/dist/rules-47LFGCPW.js +217 -0
  242. package/dist/rules-F6RNUOXP.js +99 -0
  243. package/dist/rules-add-SAQRESVK.js +465 -0
  244. package/dist/run-FRPO2WNQ.js +69 -0
  245. package/dist/run-HENSSAQW.js +71 -0
  246. package/dist/scaffold-ad-QQBCUYUO.js +1513 -0
  247. package/dist/scaffold-static-ad-WUOAQEXS.js +1011 -0
  248. package/dist/scaffold-video-KFQAKQUO.js +885 -0
  249. package/dist/schedule-S4XAVVEI.js +64 -0
  250. package/dist/scheduled-agents-ZWAP6QLC.js +55 -0
  251. package/dist/schema-EJ2XPUN6.js +135 -0
  252. package/dist/search-2BAY3KKX.js +177 -0
  253. package/dist/select-K2SXPDDJ.js +110 -0
  254. package/dist/set-prompt-BZFOV3EB.js +199 -0
  255. package/dist/setup-links-QT63UZBR.js +144 -0
  256. package/dist/shopify-Q7TQIQ6N.js +4009 -0
  257. package/dist/shopify-Q7TQIQ6N.js.map +1 -0
  258. package/dist/site-S6QVMP7W.js +180 -0
  259. package/dist/sources-DTQ4NQAM.js +30 -0
  260. package/dist/sources-ORG5KQSW.js +457 -0
  261. package/dist/stale-5O7BQVTN.js +90 -0
  262. package/dist/status-4G2YUCZR.js +65 -0
  263. package/dist/stock-5SQ2PGEC.js +211 -0
  264. package/dist/stock-5SQ2PGEC.js.map +1 -0
  265. package/dist/studies-QLSKON6M.js +250 -0
  266. package/dist/studio-IDXFTGHP.js +49 -0
  267. package/dist/study-writes-GBUUKX4O.js +471 -0
  268. package/dist/sync-7LJZPHM3.js +57 -0
  269. package/dist/sync-definition-Q3XUSEZJ.js +70 -0
  270. package/dist/tag-manager-5WZPX2FJ.js +43 -0
  271. package/dist/tags-2ARVNEYS.js +23 -0
  272. package/dist/tags-F4IT7RQR.js +23 -0
  273. package/dist/tags-F7ZO52EM.js +23 -0
  274. package/dist/tags-NBGGBHXR.js +227 -0
  275. package/dist/tags-TCSGQYDR.js +26 -0
  276. package/dist/targeting-DAUTJDUB.js +762 -0
  277. package/dist/targeting-criteria-H42LRULY.js +113 -0
  278. package/dist/targets-WB4E5XL2.js +106 -0
  279. package/dist/testimonials-KLF3Y4QO.js +32 -0
  280. package/dist/themes-BGBDYQQK.js +95 -0
  281. package/dist/top-companies-C2W5TJ7G.js +111 -0
  282. package/dist/transcript-S7VR2GJE.js +165 -0
  283. package/dist/translate-CBITGC7C.js +603 -0
  284. package/dist/triggers-EOKMR74O.js +144 -0
  285. package/dist/unlink-PC3TMWUT.js +70 -0
  286. package/dist/unstage-SU2ATDSZ.js +88 -0
  287. package/dist/update-DKX3EEES.js +155 -0
  288. package/dist/update-JYZ45YJG.js +66 -0
  289. package/dist/update-TAZSUOAS.js +192 -0
  290. package/dist/update-WRJUH2NM.js +101 -0
  291. package/dist/upload-BLXTMK5Q.js +130 -0
  292. package/dist/url-params-YVOFU6MK.js +101 -0
  293. package/dist/validate-SAQEORZY.js +125 -0
  294. package/dist/videos-GOIDZVVD.js +41 -0
  295. package/dist/viewer-check-KTRRUVZN.js +83 -0
  296. package/dist/web-6KUM7Q7S.js +173 -0
  297. package/dist/winning-ads-LOMI72Q2.js +86 -0
  298. package/dist/write-commands-3U5ZMIHH.js +1524 -0
  299. package/dist/write-commands-F5XPPLOO.js +1169 -0
  300. package/dist/x-APVY4YHX.js +47 -0
  301. package/package.json +1 -1
  302. package/dist/account-XIC5TTV3.js +0 -82
  303. package/dist/account-assets-V7KSSTVP.js +0 -290
  304. package/dist/account-level-2KLG6HTG.js +0 -611
  305. package/dist/account-reads-ZPZUCB3P.js +0 -219
  306. package/dist/account-users-XTUKRDWK.js +0 -64
  307. package/dist/accounts-25JL77F7.js +0 -701
  308. package/dist/accounts-AF72N4NV.js +0 -80
  309. package/dist/actions-IJO4JW7J.js +0 -55
  310. package/dist/activecampaign-PBTUMTO5.js +0 -938
  311. package/dist/add-KHQXXHC5.js +0 -107
  312. package/dist/add-YQPFRDVM.js +0 -305
  313. package/dist/ads-EVQ37EV3.js +0 -120
  314. package/dist/ads-O5PUYU7H.js +0 -48
  315. package/dist/adsets-4IW5TRAK.js +0 -182
  316. package/dist/advertisers-JNOWSZZC.js +0 -123
  317. package/dist/analytics-CZMCM7XC.js +0 -2437
  318. package/dist/analytics-K5FCQLI5.js +0 -447
  319. package/dist/animate-C6BRMRRD.js +0 -480
  320. package/dist/asset-writes-RF6XTWLY.js +0 -50
  321. package/dist/assign-WXZNXVJH.js +0 -80
  322. package/dist/audience-size-ZCWH4CFC.js +0 -76
  323. package/dist/audience-writes-5KT6FHUY.js +0 -327
  324. package/dist/audiences-ZDOK3OYC.js +0 -106
  325. package/dist/audit-RBRXPPKK.js +0 -154
  326. package/dist/autocomplete-P5OU7QVL.js +0 -114
  327. package/dist/avatars-UHBA2BQ3.js +0 -38
  328. package/dist/bid-pricing-LHNYSDG4.js +0 -103
  329. package/dist/brand-7WL3O74X.js +0 -22
  330. package/dist/brief-HWZU75WP.js +0 -543
  331. package/dist/campaign-groups-BYS3GNEP.js +0 -99
  332. package/dist/campaign-writes-N6OHAK6V.js +0 -168
  333. package/dist/campaigns-2E4AQBFB.js +0 -113
  334. package/dist/campaigns-3U5IRXSV.js +0 -130
  335. package/dist/campaigns-QLKGN4FB.js +0 -111
  336. package/dist/canvas-GGHJ26ZM.js +0 -46
  337. package/dist/capabilities-TKEEHR7K.js +0 -147
  338. package/dist/catalog-7KQN43HS.js +0 -66
  339. package/dist/catalogs-5CHPI4H6.js +0 -782
  340. package/dist/chatgpt-RQQWU7AP.js +0 -47
  341. package/dist/chats-PBXYH2LT.js +0 -449
  342. package/dist/check-SVYI72DF.js +0 -107
  343. package/dist/chunk-2RL2T5JO.js +0 -142
  344. package/dist/chunk-3HLQZTQ3.js +0 -685
  345. package/dist/chunk-42JTSTQ3.js +0 -207
  346. package/dist/chunk-4AEAL63J.js +0 -203
  347. package/dist/chunk-4PM32OS3.js +0 -57
  348. package/dist/chunk-4ULGRGBG.js +0 -333
  349. package/dist/chunk-4ULGRGBG.js.map +0 -1
  350. package/dist/chunk-4XMPL3RU.js +0 -19
  351. package/dist/chunk-5AOTCCTT.js +0 -831
  352. package/dist/chunk-5NLUTJCQ.js +0 -5368
  353. package/dist/chunk-6FWVRXDW.js +0 -64
  354. package/dist/chunk-6MXM6DA6.js +0 -225
  355. package/dist/chunk-73MLPGI2.js +0 -66
  356. package/dist/chunk-7OVPQX4X.js +0 -163
  357. package/dist/chunk-B5UVOCYA.js +0 -344
  358. package/dist/chunk-BRNZMKO4.js +0 -604
  359. package/dist/chunk-CJFCQMUY.js +0 -438
  360. package/dist/chunk-D6VQPBVM.js +0 -5471
  361. package/dist/chunk-DK66PUXL.js +0 -275
  362. package/dist/chunk-DNH2ZPZP.js +0 -287
  363. package/dist/chunk-DWSSQBLO.js +0 -103
  364. package/dist/chunk-ESXUIV6V.js +0 -169
  365. package/dist/chunk-FSEFZZ2T.js +0 -930
  366. package/dist/chunk-I4BQTVMY.js +0 -225
  367. package/dist/chunk-IBBGABK2.js +0 -91
  368. package/dist/chunk-IC4MREQH.js +0 -219
  369. package/dist/chunk-IJ6NQKAT.js +0 -61
  370. package/dist/chunk-IZROFBH7.js +0 -167
  371. package/dist/chunk-J5UTL4HE.js +0 -3510
  372. package/dist/chunk-JBMZVC5D.js +0 -91
  373. package/dist/chunk-LFELUKCA.js +0 -249
  374. package/dist/chunk-LMOZWB4G.js +0 -98
  375. package/dist/chunk-LVLTWPRR.js +0 -392
  376. package/dist/chunk-N5AIO23H.js +0 -2209
  377. package/dist/chunk-NE3OMP7R.js +0 -23
  378. package/dist/chunk-NO52OH3Y.js +0 -156
  379. package/dist/chunk-NRIKX35V.js +0 -399
  380. package/dist/chunk-NZYWKZ3Q.js +0 -76
  381. package/dist/chunk-OIORUNKH.js +0 -1902
  382. package/dist/chunk-OKXLOLEV.js +0 -455
  383. package/dist/chunk-P4MXGSSJ.js +0 -178
  384. package/dist/chunk-PYAR343F.js +0 -479
  385. package/dist/chunk-QFVZIQRQ.js +0 -8954
  386. package/dist/chunk-QI5UKQX3.js +0 -297
  387. package/dist/chunk-RCNAKWK7.js +0 -7852
  388. package/dist/chunk-RCNAKWK7.js.map +0 -1
  389. package/dist/chunk-RHNNFCRY.js +0 -494
  390. package/dist/chunk-RJQT7QXX.js +0 -547
  391. package/dist/chunk-RMZLB4AH.js +0 -197
  392. package/dist/chunk-S4NMWYHW.js +0 -51
  393. package/dist/chunk-S6XZIBWV.js +0 -392
  394. package/dist/chunk-SFQFUQDW.js +0 -170
  395. package/dist/chunk-SP3MHBME.js +0 -89
  396. package/dist/chunk-TGT4XHLX.js +0 -131
  397. package/dist/chunk-VX6GTRT3.js +0 -910
  398. package/dist/chunk-WGJ2QEW4.js +0 -334
  399. package/dist/chunk-XB4NKZAQ.js +0 -136
  400. package/dist/chunk-XSBX3LJP.js +0 -430
  401. package/dist/chunk-XXBP73RV.js +0 -148
  402. package/dist/chunk-Y3SK6EMU.js +0 -84
  403. package/dist/chunk-Y4ZBNZBU.js +0 -191
  404. package/dist/chunk-YCAJCVW4.js +0 -224
  405. package/dist/chunk-ZANXEMON.js +0 -1744
  406. package/dist/chunk-ZMTWQDFC.js +0 -709
  407. package/dist/claim-Q76T3MYA.js +0 -200
  408. package/dist/companies-MLWRWQ73.js +0 -198
  409. package/dist/company-X5Z67PMK.js +0 -308
  410. package/dist/complete-3CFP6XVY.js +0 -84
  411. package/dist/connect-QXFAB4RJ.js +0 -45
  412. package/dist/conversation-C6K6IZTH.js +0 -96
  413. package/dist/conversion-upload-command-D7S5HF22.js +0 -439
  414. package/dist/conversions-4ILDIG3K.js +0 -140
  415. package/dist/copy-writes-FYXKHJDB.js +0 -170
  416. package/dist/create-LDQ3YHET.js +0 -62
  417. package/dist/create-TKOG7DNJ.js +0 -210
  418. package/dist/create-WFMJOZLO.js +0 -135
  419. package/dist/create-WQNT345R.js +0 -239
  420. package/dist/creatives-45SJAD3G.js +0 -118
  421. package/dist/creatives-E4CTMZJJ.js +0 -223
  422. package/dist/creatives-Q4OXNCTT.js +0 -58
  423. package/dist/credentials-E2AIMWKX.js +0 -290
  424. package/dist/critique-EWV3O3TD.js +0 -1451
  425. package/dist/critique-JVT6X2T3.js +0 -232
  426. package/dist/crm-NQH5FTK6.js +0 -227
  427. package/dist/crm-YGQKK76D.js +0 -323
  428. package/dist/crop-KV24WHOR.js +0 -113
  429. package/dist/custom-conversions-EJNX4MCK.js +0 -128
  430. package/dist/customers-YFEPJF4G.js +0 -65
  431. package/dist/delete-2UJVTHRE.js +0 -67
  432. package/dist/delete-7QAJSOCO.js +0 -69
  433. package/dist/delete-O4RO2HMR.js +0 -57
  434. package/dist/demographics-YWBHAMZ5.js +0 -141
  435. package/dist/dimensions-YXOXHOXW.js +0 -101
  436. package/dist/discard-YX4XUXG3.js +0 -69
  437. package/dist/domain-5R6CYVFY.js +0 -101
  438. package/dist/download-D2O4RYJ3.js +0 -172
  439. package/dist/download-SYWQXF57.js +0 -299
  440. package/dist/download-SYWQXF57.js.map +0 -1
  441. package/dist/draft-2NKXOBT6.js +0 -106
  442. package/dist/draft-2NKXOBT6.js.map +0 -1
  443. package/dist/draft-3MPADYS4.js +0 -220
  444. package/dist/draft-AAEGEQZZ.js +0 -247
  445. package/dist/draft-AAEGEQZZ.js.map +0 -1
  446. package/dist/draft-CRDQR5I3.js +0 -342
  447. package/dist/draft-CRDQR5I3.js.map +0 -1
  448. package/dist/draft-I63QQ7LY.js +0 -106
  449. package/dist/draft-I63QQ7LY.js.map +0 -1
  450. package/dist/draft-PO5X4UVA.js +0 -313
  451. package/dist/draft-PO5X4UVA.js.map +0 -1
  452. package/dist/draft-QCKJT7XQ.js +0 -288
  453. package/dist/draft-QCKJT7XQ.js.map +0 -1
  454. package/dist/draft-VMLXZQQX.js +0 -408
  455. package/dist/draft-VMLXZQQX.js.map +0 -1
  456. package/dist/experiments-DYNNWQRB.js +0 -236
  457. package/dist/extract-DWDZI35Y.js +0 -121
  458. package/dist/extract-DWDZI35Y.js.map +0 -1
  459. package/dist/facets-Y2IEM37E.js +0 -117
  460. package/dist/feedback-HJRVTU6C.js +0 -115
  461. package/dist/feedback-IVSLM5PN.js +0 -136
  462. package/dist/feedback-record-P7CO3IGE.js +0 -269
  463. package/dist/fetch-V2U5VUQZ.js +0 -204
  464. package/dist/fit-JDG6E46O.js +0 -65
  465. package/dist/flows-DP574PEX.js +0 -250
  466. package/dist/fonts-RMROS3LX.js +0 -39
  467. package/dist/forecast-AAHHVTBK.js +0 -169
  468. package/dist/forecast-BRXNGMGD.js +0 -121
  469. package/dist/funnel-FQX3DOE7.js +0 -397
  470. package/dist/ga4-A3HLGTSI.js +0 -55
  471. package/dist/generate-SYOQE3F7.js +0 -263
  472. package/dist/get-HMTI2IR6.js +0 -82
  473. package/dist/get-VFDNTZ54.js +0 -62
  474. package/dist/google-HWEDJ4YS.js +0 -144
  475. package/dist/google-HWEDJ4YS.js.map +0 -1
  476. package/dist/google-WH3IXXMX.js +0 -3285
  477. package/dist/google-ads-4DLYASRC.js +0 -198
  478. package/dist/history-6B6RXNV3.js +0 -102
  479. package/dist/history-NLZSX4BK.js +0 -153
  480. package/dist/hubspot-LABBRJ44.js +0 -782
  481. package/dist/ideas-A4ELJN23.js +0 -45
  482. package/dist/images-JVNT7KYM.js +0 -92
  483. package/dist/ingest-GQWR3RHR.js +0 -27
  484. package/dist/ingest-JYN2IDKV.js +0 -123
  485. package/dist/inspect-72DY33YD.js +0 -192
  486. package/dist/instant-experiences-6NTBX4SL.js +0 -264
  487. package/dist/keyword-metrics-GP7L2MQE.js +0 -200
  488. package/dist/keywords-for-site-6YWAUOKJ.js +0 -131
  489. package/dist/landing-EKHAZS5P.js +0 -28
  490. package/dist/leads-RN6RYOMU.js +0 -541
  491. package/dist/leads-UCXIIA5K.js +0 -115
  492. package/dist/learn-EJEFERQZ.js +0 -207
  493. package/dist/line-item-writes-IMCE2FDW.js +0 -211
  494. package/dist/line-items-ISUC3WDO.js +0 -107
  495. package/dist/link-6QL4ZVSU.js +0 -67
  496. package/dist/linkedin-ZOBYUBGV.js +0 -1330
  497. package/dist/linkedin-ZOBYUBGV.js.map +0 -1
  498. package/dist/linkedin-person-C24CBKCH.js +0 -139
  499. package/dist/list-2VNI3U7I.js +0 -154
  500. package/dist/list-PZD2QOZL.js +0 -67
  501. package/dist/list-SUXUMXPJ.js +0 -306
  502. package/dist/log-VLI7KQF2.js +0 -95
  503. package/dist/make-365ZJ25L.js +0 -1367
  504. package/dist/map-OEFL45WA.js +0 -436
  505. package/dist/mcp-NCZYQXQL.js +0 -729
  506. package/dist/media-WASM45QW.js +0 -18
  507. package/dist/media-sources-CZDK4W5Q.js +0 -35
  508. package/dist/members-N3PQSVQC.js +0 -47
  509. package/dist/meta-IRXPQRBH.js +0 -122
  510. package/dist/normalize-4OKUF5BJ.js +0 -806
  511. package/dist/normalize-6DEJPTBF.js +0 -144
  512. package/dist/options-OJX77MYT.js +0 -125
  513. package/dist/organization-URQGKFEC.js +0 -949
  514. package/dist/page-photos-N4S7U7FR.js +0 -118
  515. package/dist/performance-P5T4LJRG.js +0 -27
  516. package/dist/performance-SIWBDORI.js +0 -5565
  517. package/dist/promoted-tweet-writes-S2HP5DEI.js +0 -183
  518. package/dist/promoted-tweets-WZT4N5IR.js +0 -119
  519. package/dist/publish-EDYBQHGJ.js +0 -344
  520. package/dist/reddit-DEGGHR4M.js +0 -29
  521. package/dist/refresh-HPNJGI2U.js +0 -97
  522. package/dist/release-H7M37CEO.js +0 -63
  523. package/dist/remove-MV4YS72N.js +0 -53
  524. package/dist/reopen-EFW2SKOY.js +0 -66
  525. package/dist/rerun-OM4N74YK.js +0 -96
  526. package/dist/research-7YDQOKA6.js +0 -265
  527. package/dist/research-MHXKAQW4.js +0 -75
  528. package/dist/reset-HT4AGJPR.js +0 -57
  529. package/dist/reset-XPZQ5F4D.js +0 -57
  530. package/dist/resolve-RTTXEN2B.js +0 -124
  531. package/dist/retry-DVLVWHEK.js +0 -63
  532. package/dist/retry-SBGWOUQO.js +0 -65
  533. package/dist/revenue-KJLJ53XY.js +0 -91
  534. package/dist/rule-writes-DNXELESR.js +0 -530
  535. package/dist/rules-KCSET46P.js +0 -217
  536. package/dist/rules-NVKU732Z.js +0 -99
  537. package/dist/rules-add-KY42EHJE.js +0 -465
  538. package/dist/run-2LQ7XJEO.js +0 -69
  539. package/dist/run-M7YU6KCV.js +0 -71
  540. package/dist/scaffold-ad-6YPZ75YJ.js +0 -1513
  541. package/dist/scaffold-static-ad-UJEWTDU5.js +0 -1011
  542. package/dist/scaffold-video-M4VWSVJ6.js +0 -885
  543. package/dist/schedule-J7HZQ2EL.js +0 -64
  544. package/dist/scheduled-agents-IVUQUKF4.js +0 -55
  545. package/dist/schema-LHBKBUV7.js +0 -135
  546. package/dist/search-3AW52FO6.js +0 -177
  547. package/dist/select-STIWQ36I.js +0 -110
  548. package/dist/set-prompt-TODWV2F4.js +0 -199
  549. package/dist/setup-links-MNBD3UMH.js +0 -144
  550. package/dist/shopify-PVMHMVIC.js +0 -3980
  551. package/dist/shopify-PVMHMVIC.js.map +0 -1
  552. package/dist/site-ZZUKS6MQ.js +0 -180
  553. package/dist/sources-36MJ6T4V.js +0 -30
  554. package/dist/sources-GNLQHTSJ.js +0 -457
  555. package/dist/stale-GJN7UO3D.js +0 -90
  556. package/dist/status-6EGB6ORB.js +0 -65
  557. package/dist/stock-DJ6I3CTO.js +0 -187
  558. package/dist/stock-DJ6I3CTO.js.map +0 -1
  559. package/dist/studies-4XXCEAHH.js +0 -250
  560. package/dist/studio-OARORMDJ.js +0 -49
  561. package/dist/study-writes-J56UIIE3.js +0 -471
  562. package/dist/sync-QHM3LMAX.js +0 -57
  563. package/dist/sync-definition-YXGN6PIQ.js +0 -70
  564. package/dist/tag-manager-XAX5AI42.js +0 -43
  565. package/dist/tags-GHV5R7NI.js +0 -26
  566. package/dist/tags-IDWUV2FY.js +0 -227
  567. package/dist/tags-MBBRBZJH.js +0 -23
  568. package/dist/tags-MQYF2JHQ.js +0 -23
  569. package/dist/tags-ZGXJHATH.js +0 -23
  570. package/dist/targeting-KJ4DI56R.js +0 -762
  571. package/dist/targeting-criteria-GDCXOAUD.js +0 -113
  572. package/dist/targets-MYHOPAYY.js +0 -106
  573. package/dist/testimonials-R6RFGAKP.js +0 -32
  574. package/dist/themes-LHVXXVTX.js +0 -95
  575. package/dist/top-companies-POTV3Y2A.js +0 -111
  576. package/dist/transcript-4RVYKDVZ.js +0 -165
  577. package/dist/translate-UCASCVMN.js +0 -603
  578. package/dist/triggers-XHMMOZJK.js +0 -144
  579. package/dist/unlink-3IW3EORE.js +0 -70
  580. package/dist/unstage-APVF6KHB.js +0 -88
  581. package/dist/update-2VSJH4LQ.js +0 -66
  582. package/dist/update-42QYBUE3.js +0 -101
  583. package/dist/update-ESK6PSME.js +0 -192
  584. package/dist/update-V7SRDGHN.js +0 -155
  585. package/dist/upload-42IR5RIL.js +0 -130
  586. package/dist/url-params-GEESXN57.js +0 -101
  587. package/dist/validate-Z5SSEUES.js +0 -125
  588. package/dist/videos-PJAPZPOT.js +0 -41
  589. package/dist/viewer-check-6M34VY7K.js +0 -83
  590. package/dist/web-PUVVFMV3.js +0 -173
  591. package/dist/winning-ads-ZCP4MIEQ.js +0 -86
  592. package/dist/write-commands-5LEEPKA7.js +0 -1169
  593. package/dist/write-commands-ZS4O4DSV.js +0 -1524
  594. package/dist/x-2IZMW46M.js +0 -47
  595. /package/dist/{account-XIC5TTV3.js.map → account-H5CL6KUY.js.map} +0 -0
  596. /package/dist/{account-assets-V7KSSTVP.js.map → account-assets-QMKT5AT7.js.map} +0 -0
  597. /package/dist/{account-level-2KLG6HTG.js.map → account-level-BELF6JHB.js.map} +0 -0
  598. /package/dist/{account-reads-ZPZUCB3P.js.map → account-reads-T6GTSAXE.js.map} +0 -0
  599. /package/dist/{account-users-XTUKRDWK.js.map → account-users-ZGJCVGX4.js.map} +0 -0
  600. /package/dist/{accounts-25JL77F7.js.map → accounts-EXQNPSYH.js.map} +0 -0
  601. /package/dist/{accounts-AF72N4NV.js.map → accounts-GNVLFZ3X.js.map} +0 -0
  602. /package/dist/{actions-IJO4JW7J.js.map → actions-Q2BMP27K.js.map} +0 -0
  603. /package/dist/{activecampaign-PBTUMTO5.js.map → activecampaign-SJO2YK6M.js.map} +0 -0
  604. /package/dist/{add-YQPFRDVM.js.map → add-Q3FGYX5Q.js.map} +0 -0
  605. /package/dist/{add-KHQXXHC5.js.map → add-YGQBSEVK.js.map} +0 -0
  606. /package/dist/{ads-O5PUYU7H.js.map → ads-7QKQEHKT.js.map} +0 -0
  607. /package/dist/{ads-EVQ37EV3.js.map → ads-H5AEYIY3.js.map} +0 -0
  608. /package/dist/{adsets-4IW5TRAK.js.map → adsets-BUIT7HF2.js.map} +0 -0
  609. /package/dist/{advertisers-JNOWSZZC.js.map → advertisers-ZAHXMIAT.js.map} +0 -0
  610. /package/dist/{analytics-CZMCM7XC.js.map → analytics-B6ER4TQ7.js.map} +0 -0
  611. /package/dist/{analytics-K5FCQLI5.js.map → analytics-QW5ZXDJR.js.map} +0 -0
  612. /package/dist/{animate-C6BRMRRD.js.map → animate-Q43SOWB4.js.map} +0 -0
  613. /package/dist/{asset-writes-RF6XTWLY.js.map → asset-writes-JVFE457M.js.map} +0 -0
  614. /package/dist/{assign-WXZNXVJH.js.map → assign-HJ2NXW4W.js.map} +0 -0
  615. /package/dist/{audience-size-ZCWH4CFC.js.map → audience-size-IM3N6W7C.js.map} +0 -0
  616. /package/dist/{audience-writes-5KT6FHUY.js.map → audience-writes-DWSCHYQF.js.map} +0 -0
  617. /package/dist/{audiences-ZDOK3OYC.js.map → audiences-PYBJU2GV.js.map} +0 -0
  618. /package/dist/{audit-RBRXPPKK.js.map → audit-N3LAQMD4.js.map} +0 -0
  619. /package/dist/{autocomplete-P5OU7QVL.js.map → autocomplete-FBTPT5MA.js.map} +0 -0
  620. /package/dist/{avatars-UHBA2BQ3.js.map → avatars-Y3DALQIU.js.map} +0 -0
  621. /package/dist/{bid-pricing-LHNYSDG4.js.map → bid-pricing-UUAC4GTQ.js.map} +0 -0
  622. /package/dist/{brand-7WL3O74X.js.map → brand-IZYD5SBJ.js.map} +0 -0
  623. /package/dist/{brief-HWZU75WP.js.map → brief-NA3E2W4P.js.map} +0 -0
  624. /package/dist/{campaign-groups-BYS3GNEP.js.map → campaign-groups-3IUOLEK2.js.map} +0 -0
  625. /package/dist/{campaign-writes-N6OHAK6V.js.map → campaign-writes-Y7QNFOE7.js.map} +0 -0
  626. /package/dist/{campaigns-3U5IRXSV.js.map → campaigns-2Z6WXIVA.js.map} +0 -0
  627. /package/dist/{campaigns-QLKGN4FB.js.map → campaigns-B2AUW4TV.js.map} +0 -0
  628. /package/dist/{campaigns-2E4AQBFB.js.map → campaigns-IDEA3LOK.js.map} +0 -0
  629. /package/dist/{canvas-GGHJ26ZM.js.map → canvas-WHFDCHUP.js.map} +0 -0
  630. /package/dist/{capabilities-TKEEHR7K.js.map → capabilities-FVMMLKPY.js.map} +0 -0
  631. /package/dist/{catalog-7KQN43HS.js.map → catalog-URTZYAPU.js.map} +0 -0
  632. /package/dist/{catalogs-5CHPI4H6.js.map → catalogs-OEUNVE4N.js.map} +0 -0
  633. /package/dist/{chatgpt-RQQWU7AP.js.map → chatgpt-YBHXCXWZ.js.map} +0 -0
  634. /package/dist/{chats-PBXYH2LT.js.map → chats-EENMDXWZ.js.map} +0 -0
  635. /package/dist/{check-SVYI72DF.js.map → check-7735BPTR.js.map} +0 -0
  636. /package/dist/{chunk-5AOTCCTT.js.map → chunk-2QGGI7MF.js.map} +0 -0
  637. /package/dist/{chunk-4XMPL3RU.js.map → chunk-3HKZU3Y5.js.map} +0 -0
  638. /package/dist/{chunk-B5UVOCYA.js.map → chunk-3OMFSYQ3.js.map} +0 -0
  639. /package/dist/{chunk-LMOZWB4G.js.map → chunk-65CQYRMK.js.map} +0 -0
  640. /package/dist/{chunk-I4BQTVMY.js.map → chunk-6MZFOMLU.js.map} +0 -0
  641. /package/dist/{chunk-IBBGABK2.js.map → chunk-6PT22YSR.js.map} +0 -0
  642. /package/dist/{chunk-QFVZIQRQ.js.map → chunk-6WVYBY2G.js.map} +0 -0
  643. /package/dist/{chunk-VX6GTRT3.js.map → chunk-757ZFIL4.js.map} +0 -0
  644. /package/dist/{chunk-IJ6NQKAT.js.map → chunk-75HAGIH6.js.map} +0 -0
  645. /package/dist/{chunk-XSBX3LJP.js.map → chunk-7BVRFQN4.js.map} +0 -0
  646. /package/dist/{chunk-7OVPQX4X.js.map → chunk-7TDJCDKT.js.map} +0 -0
  647. /package/dist/{chunk-ZMTWQDFC.js.map → chunk-AL4MRNYI.js.map} +0 -0
  648. /package/dist/{chunk-NO52OH3Y.js.map → chunk-BMNOMOWP.js.map} +0 -0
  649. /package/dist/{chunk-4AEAL63J.js.map → chunk-BS2MC62Y.js.map} +0 -0
  650. /package/dist/{chunk-DWSSQBLO.js.map → chunk-C6PWVZQE.js.map} +0 -0
  651. /package/dist/{chunk-P4MXGSSJ.js.map → chunk-CDTAKCJR.js.map} +0 -0
  652. /package/dist/{chunk-2RL2T5JO.js.map → chunk-CH44XVPE.js.map} +0 -0
  653. /package/dist/{chunk-RHNNFCRY.js.map → chunk-CJWLDKFO.js.map} +0 -0
  654. /package/dist/{chunk-YCAJCVW4.js.map → chunk-DAMC4FKK.js.map} +0 -0
  655. /package/dist/{chunk-D6VQPBVM.js.map → chunk-DWPOAU4Z.js.map} +0 -0
  656. /package/dist/{chunk-6MXM6DA6.js.map → chunk-EENYLJUN.js.map} +0 -0
  657. /package/dist/{chunk-IZROFBH7.js.map → chunk-EJBLF2LI.js.map} +0 -0
  658. /package/dist/{chunk-DNH2ZPZP.js.map → chunk-EJMPKO6V.js.map} +0 -0
  659. /package/dist/{chunk-RMZLB4AH.js.map → chunk-EKXLJRO3.js.map} +0 -0
  660. /package/dist/{chunk-ZANXEMON.js.map → chunk-EL3TDR5S.js.map} +0 -0
  661. /package/dist/{chunk-LFELUKCA.js.map → chunk-GRDZWZKQ.js.map} +0 -0
  662. /package/dist/{chunk-S4NMWYHW.js.map → chunk-GVUBRSD3.js.map} +0 -0
  663. /package/dist/{chunk-LVLTWPRR.js.map → chunk-GYREQDTJ.js.map} +0 -0
  664. /package/dist/{chunk-J5UTL4HE.js.map → chunk-HBRXFQQV.js.map} +0 -0
  665. /package/dist/{chunk-NE3OMP7R.js.map → chunk-HLHR3EK2.js.map} +0 -0
  666. /package/dist/{chunk-RJQT7QXX.js.map → chunk-IMFIRELA.js.map} +0 -0
  667. /package/dist/{chunk-SP3MHBME.js.map → chunk-IOKD77L2.js.map} +0 -0
  668. /package/dist/{chunk-TGT4XHLX.js.map → chunk-KDAINT54.js.map} +0 -0
  669. /package/dist/{chunk-QI5UKQX3.js.map → chunk-KKKZRQFY.js.map} +0 -0
  670. /package/dist/{chunk-N5AIO23H.js.map → chunk-KOEXPN3G.js.map} +0 -0
  671. /package/dist/{chunk-JBMZVC5D.js.map → chunk-KT5JVIPZ.js.map} +0 -0
  672. /package/dist/{chunk-NZYWKZ3Q.js.map → chunk-LC6PVPJX.js.map} +0 -0
  673. /package/dist/{chunk-DK66PUXL.js.map → chunk-LETR3RQE.js.map} +0 -0
  674. /package/dist/{chunk-XB4NKZAQ.js.map → chunk-N3PASNUA.js.map} +0 -0
  675. /package/dist/{chunk-SFQFUQDW.js.map → chunk-NL77JRKE.js.map} +0 -0
  676. /package/dist/{chunk-OIORUNKH.js.map → chunk-OBQ5YUOZ.js.map} +0 -0
  677. /package/dist/{chunk-42JTSTQ3.js.map → chunk-OTFHIGEO.js.map} +0 -0
  678. /package/dist/{chunk-ESXUIV6V.js.map → chunk-PCUWBZM3.js.map} +0 -0
  679. /package/dist/{chunk-OKXLOLEV.js.map → chunk-PNWXTOQ4.js.map} +0 -0
  680. /package/dist/{chunk-PYAR343F.js.map → chunk-PQFTKHDA.js.map} +0 -0
  681. /package/dist/{chunk-XXBP73RV.js.map → chunk-Q5DFEVLE.js.map} +0 -0
  682. /package/dist/{chunk-NRIKX35V.js.map → chunk-QXCGWAC6.js.map} +0 -0
  683. /package/dist/{chunk-CJFCQMUY.js.map → chunk-RKDMYL4A.js.map} +0 -0
  684. /package/dist/{chunk-S6XZIBWV.js.map → chunk-SCBSAIVV.js.map} +0 -0
  685. /package/dist/{chunk-3HLQZTQ3.js.map → chunk-SPBUE7R4.js.map} +0 -0
  686. /package/dist/{chunk-IC4MREQH.js.map → chunk-TWFZIHKK.js.map} +0 -0
  687. /package/dist/{chunk-73MLPGI2.js.map → chunk-U6G6ALXP.js.map} +0 -0
  688. /package/dist/{chunk-WGJ2QEW4.js.map → chunk-UCJAPB5Y.js.map} +0 -0
  689. /package/dist/{chunk-4PM32OS3.js.map → chunk-VFDWUIGR.js.map} +0 -0
  690. /package/dist/{chunk-BRNZMKO4.js.map → chunk-WC3YSN7L.js.map} +0 -0
  691. /package/dist/{chunk-FSEFZZ2T.js.map → chunk-WIOPEK7K.js.map} +0 -0
  692. /package/dist/{chunk-5NLUTJCQ.js.map → chunk-X3GWGFZP.js.map} +0 -0
  693. /package/dist/{chunk-Y4ZBNZBU.js.map → chunk-XYKODRQR.js.map} +0 -0
  694. /package/dist/{chunk-6FWVRXDW.js.map → chunk-XZAVBONI.js.map} +0 -0
  695. /package/dist/{chunk-Y3SK6EMU.js.map → chunk-Y5PNLB24.js.map} +0 -0
  696. /package/dist/{claim-Q76T3MYA.js.map → claim-PGDIRXIC.js.map} +0 -0
  697. /package/dist/{companies-MLWRWQ73.js.map → companies-WTPKGEB3.js.map} +0 -0
  698. /package/dist/{company-X5Z67PMK.js.map → company-6H2H73YP.js.map} +0 -0
  699. /package/dist/{complete-3CFP6XVY.js.map → complete-2QBC3POO.js.map} +0 -0
  700. /package/dist/{connect-QXFAB4RJ.js.map → connect-35YPFAUL.js.map} +0 -0
  701. /package/dist/{conversation-C6K6IZTH.js.map → conversation-YZFNEWDV.js.map} +0 -0
  702. /package/dist/{conversion-upload-command-D7S5HF22.js.map → conversion-upload-command-J2FIO74Y.js.map} +0 -0
  703. /package/dist/{conversions-4ILDIG3K.js.map → conversions-ZFDBD3OU.js.map} +0 -0
  704. /package/dist/{copy-writes-FYXKHJDB.js.map → copy-writes-2B36QJUY.js.map} +0 -0
  705. /package/dist/{create-LDQ3YHET.js.map → create-3H67EUTO.js.map} +0 -0
  706. /package/dist/{create-WQNT345R.js.map → create-ALTOBDP4.js.map} +0 -0
  707. /package/dist/{create-TKOG7DNJ.js.map → create-C3MWUYX2.js.map} +0 -0
  708. /package/dist/{create-WFMJOZLO.js.map → create-WHTT6IXY.js.map} +0 -0
  709. /package/dist/{creatives-45SJAD3G.js.map → creatives-22BYP5VN.js.map} +0 -0
  710. /package/dist/{creatives-Q4OXNCTT.js.map → creatives-LTIV3XPT.js.map} +0 -0
  711. /package/dist/{creatives-E4CTMZJJ.js.map → creatives-Y2WLGDJW.js.map} +0 -0
  712. /package/dist/{credentials-E2AIMWKX.js.map → credentials-J5DMQJWN.js.map} +0 -0
  713. /package/dist/{critique-JVT6X2T3.js.map → critique-RFTS2I46.js.map} +0 -0
  714. /package/dist/{critique-EWV3O3TD.js.map → critique-X6XVPIUG.js.map} +0 -0
  715. /package/dist/{crm-NQH5FTK6.js.map → crm-LWRGJYHW.js.map} +0 -0
  716. /package/dist/{crm-YGQKK76D.js.map → crm-RUNEJY2R.js.map} +0 -0
  717. /package/dist/{crop-KV24WHOR.js.map → crop-4V4P3SKI.js.map} +0 -0
  718. /package/dist/{custom-conversions-EJNX4MCK.js.map → custom-conversions-V7QPZIB4.js.map} +0 -0
  719. /package/dist/{customers-YFEPJF4G.js.map → customers-IDB6NLQ6.js.map} +0 -0
  720. /package/dist/{delete-2UJVTHRE.js.map → delete-2QKVUKKB.js.map} +0 -0
  721. /package/dist/{delete-O4RO2HMR.js.map → delete-B7BKF24X.js.map} +0 -0
  722. /package/dist/{delete-7QAJSOCO.js.map → delete-HBRYUWAA.js.map} +0 -0
  723. /package/dist/{demographics-YWBHAMZ5.js.map → demographics-JHB3NFLU.js.map} +0 -0
  724. /package/dist/{dimensions-YXOXHOXW.js.map → dimensions-KI3OENZD.js.map} +0 -0
  725. /package/dist/{discard-YX4XUXG3.js.map → discard-FEJ6YL22.js.map} +0 -0
  726. /package/dist/{domain-5R6CYVFY.js.map → domain-JYWNXBKS.js.map} +0 -0
  727. /package/dist/{download-D2O4RYJ3.js.map → download-LOBPOIU5.js.map} +0 -0
  728. /package/dist/{draft-3MPADYS4.js.map → draft-I2FLECEX.js.map} +0 -0
  729. /package/dist/{experiments-DYNNWQRB.js.map → experiments-WVTBHD6G.js.map} +0 -0
  730. /package/dist/{facets-Y2IEM37E.js.map → facets-V2ITIUKD.js.map} +0 -0
  731. /package/dist/{feedback-IVSLM5PN.js.map → feedback-PXWPR3NZ.js.map} +0 -0
  732. /package/dist/{feedback-HJRVTU6C.js.map → feedback-QSIPSNAL.js.map} +0 -0
  733. /package/dist/{feedback-record-P7CO3IGE.js.map → feedback-record-DJHJWJAF.js.map} +0 -0
  734. /package/dist/{fetch-V2U5VUQZ.js.map → fetch-QVOOC3FA.js.map} +0 -0
  735. /package/dist/{fit-JDG6E46O.js.map → fit-REGMM46H.js.map} +0 -0
  736. /package/dist/{flows-DP574PEX.js.map → flows-EZV3KCV6.js.map} +0 -0
  737. /package/dist/{fonts-RMROS3LX.js.map → fonts-NUX66HEI.js.map} +0 -0
  738. /package/dist/{forecast-BRXNGMGD.js.map → forecast-W6HKYVX5.js.map} +0 -0
  739. /package/dist/{forecast-AAHHVTBK.js.map → forecast-XDRKCR65.js.map} +0 -0
  740. /package/dist/{funnel-FQX3DOE7.js.map → funnel-3YABA3G2.js.map} +0 -0
  741. /package/dist/{ga4-A3HLGTSI.js.map → ga4-IJ2UUICC.js.map} +0 -0
  742. /package/dist/{generate-SYOQE3F7.js.map → generate-22HT24SA.js.map} +0 -0
  743. /package/dist/{get-HMTI2IR6.js.map → get-GQQLBE5C.js.map} +0 -0
  744. /package/dist/{get-VFDNTZ54.js.map → get-NL3YZFUJ.js.map} +0 -0
  745. /package/dist/{google-WH3IXXMX.js.map → google-UJ4YJGTJ.js.map} +0 -0
  746. /package/dist/{google-ads-4DLYASRC.js.map → google-ads-RRKKSKDD.js.map} +0 -0
  747. /package/dist/{history-6B6RXNV3.js.map → history-2UANIBRN.js.map} +0 -0
  748. /package/dist/{history-NLZSX4BK.js.map → history-YZ727ZRG.js.map} +0 -0
  749. /package/dist/{hubspot-LABBRJ44.js.map → hubspot-KWLXJ6QD.js.map} +0 -0
  750. /package/dist/{ideas-A4ELJN23.js.map → ideas-ZO533P5Y.js.map} +0 -0
  751. /package/dist/{images-JVNT7KYM.js.map → images-VUWUKGD6.js.map} +0 -0
  752. /package/dist/{ingest-GQWR3RHR.js.map → ingest-C2HJ5LUY.js.map} +0 -0
  753. /package/dist/{ingest-JYN2IDKV.js.map → ingest-H53JR4GK.js.map} +0 -0
  754. /package/dist/{inspect-72DY33YD.js.map → inspect-BM6GJHQV.js.map} +0 -0
  755. /package/dist/{instant-experiences-6NTBX4SL.js.map → instant-experiences-U6U3FYIH.js.map} +0 -0
  756. /package/dist/{keyword-metrics-GP7L2MQE.js.map → keyword-metrics-R2QCEDYW.js.map} +0 -0
  757. /package/dist/{keywords-for-site-6YWAUOKJ.js.map → keywords-for-site-NBV72C3W.js.map} +0 -0
  758. /package/dist/{landing-EKHAZS5P.js.map → landing-L3WDTW4D.js.map} +0 -0
  759. /package/dist/{leads-UCXIIA5K.js.map → leads-6PF7ZWCH.js.map} +0 -0
  760. /package/dist/{leads-RN6RYOMU.js.map → leads-IG3IIHXG.js.map} +0 -0
  761. /package/dist/{learn-EJEFERQZ.js.map → learn-V2LIBEEY.js.map} +0 -0
  762. /package/dist/{line-item-writes-IMCE2FDW.js.map → line-item-writes-GMNWL4DI.js.map} +0 -0
  763. /package/dist/{line-items-ISUC3WDO.js.map → line-items-KPIKXLG4.js.map} +0 -0
  764. /package/dist/{link-6QL4ZVSU.js.map → link-X7IYKR5V.js.map} +0 -0
  765. /package/dist/{linkedin-person-C24CBKCH.js.map → linkedin-person-47XFTBIN.js.map} +0 -0
  766. /package/dist/{list-2VNI3U7I.js.map → list-PHNA7QIF.js.map} +0 -0
  767. /package/dist/{list-SUXUMXPJ.js.map → list-QF3BANBM.js.map} +0 -0
  768. /package/dist/{list-PZD2QOZL.js.map → list-SB3SUTH6.js.map} +0 -0
  769. /package/dist/{log-VLI7KQF2.js.map → log-JFLSSUJ6.js.map} +0 -0
  770. /package/dist/{make-365ZJ25L.js.map → make-ZIJQZD5K.js.map} +0 -0
  771. /package/dist/{map-OEFL45WA.js.map → map-NYJT2MGI.js.map} +0 -0
  772. /package/dist/{mcp-NCZYQXQL.js.map → mcp-ABQEICYR.js.map} +0 -0
  773. /package/dist/{media-WASM45QW.js.map → media-AT3VV3PU.js.map} +0 -0
  774. /package/dist/{media-sources-CZDK4W5Q.js.map → media-sources-L4BI7HFL.js.map} +0 -0
  775. /package/dist/{members-N3PQSVQC.js.map → members-BX37KHKO.js.map} +0 -0
  776. /package/dist/{meta-IRXPQRBH.js.map → meta-2GJZPVKM.js.map} +0 -0
  777. /package/dist/{normalize-4OKUF5BJ.js.map → normalize-M3VMWF4W.js.map} +0 -0
  778. /package/dist/{normalize-6DEJPTBF.js.map → normalize-MA2FBBIV.js.map} +0 -0
  779. /package/dist/{options-OJX77MYT.js.map → options-NMWWF2HN.js.map} +0 -0
  780. /package/dist/{organization-URQGKFEC.js.map → organization-GRAA6ZXU.js.map} +0 -0
  781. /package/dist/{page-photos-N4S7U7FR.js.map → page-photos-ABK4CJME.js.map} +0 -0
  782. /package/dist/{performance-SIWBDORI.js.map → performance-MQLRSH44.js.map} +0 -0
  783. /package/dist/{performance-P5T4LJRG.js.map → performance-RUBIGEAQ.js.map} +0 -0
  784. /package/dist/{promoted-tweet-writes-S2HP5DEI.js.map → promoted-tweet-writes-3P6QFGLN.js.map} +0 -0
  785. /package/dist/{promoted-tweets-WZT4N5IR.js.map → promoted-tweets-TGFPH7UI.js.map} +0 -0
  786. /package/dist/{publish-EDYBQHGJ.js.map → publish-OUVO65Z5.js.map} +0 -0
  787. /package/dist/{reddit-DEGGHR4M.js.map → reddit-HWQCUSEM.js.map} +0 -0
  788. /package/dist/{refresh-HPNJGI2U.js.map → refresh-ENQDQGTK.js.map} +0 -0
  789. /package/dist/{release-H7M37CEO.js.map → release-ZTVXLUQS.js.map} +0 -0
  790. /package/dist/{remove-MV4YS72N.js.map → remove-XAFRT7O7.js.map} +0 -0
  791. /package/dist/{reopen-EFW2SKOY.js.map → reopen-SWSZHXJZ.js.map} +0 -0
  792. /package/dist/{rerun-OM4N74YK.js.map → rerun-MA2GB6WL.js.map} +0 -0
  793. /package/dist/{research-7YDQOKA6.js.map → research-TDH4OBX6.js.map} +0 -0
  794. /package/dist/{research-MHXKAQW4.js.map → research-WWJUNYSJ.js.map} +0 -0
  795. /package/dist/{reset-HT4AGJPR.js.map → reset-34HTKUBQ.js.map} +0 -0
  796. /package/dist/{reset-XPZQ5F4D.js.map → reset-KMMGLM7W.js.map} +0 -0
  797. /package/dist/{resolve-RTTXEN2B.js.map → resolve-2CIIKADD.js.map} +0 -0
  798. /package/dist/{retry-DVLVWHEK.js.map → retry-V7KZIZKR.js.map} +0 -0
  799. /package/dist/{retry-SBGWOUQO.js.map → retry-YXM23NSB.js.map} +0 -0
  800. /package/dist/{revenue-KJLJ53XY.js.map → revenue-D4L6U2CW.js.map} +0 -0
  801. /package/dist/{rule-writes-DNXELESR.js.map → rule-writes-HUBHHYEO.js.map} +0 -0
  802. /package/dist/{rules-KCSET46P.js.map → rules-47LFGCPW.js.map} +0 -0
  803. /package/dist/{rules-NVKU732Z.js.map → rules-F6RNUOXP.js.map} +0 -0
  804. /package/dist/{rules-add-KY42EHJE.js.map → rules-add-SAQRESVK.js.map} +0 -0
  805. /package/dist/{run-2LQ7XJEO.js.map → run-FRPO2WNQ.js.map} +0 -0
  806. /package/dist/{run-M7YU6KCV.js.map → run-HENSSAQW.js.map} +0 -0
  807. /package/dist/{scaffold-ad-6YPZ75YJ.js.map → scaffold-ad-QQBCUYUO.js.map} +0 -0
  808. /package/dist/{scaffold-static-ad-UJEWTDU5.js.map → scaffold-static-ad-WUOAQEXS.js.map} +0 -0
  809. /package/dist/{scaffold-video-M4VWSVJ6.js.map → scaffold-video-KFQAKQUO.js.map} +0 -0
  810. /package/dist/{schedule-J7HZQ2EL.js.map → schedule-S4XAVVEI.js.map} +0 -0
  811. /package/dist/{scheduled-agents-IVUQUKF4.js.map → scheduled-agents-ZWAP6QLC.js.map} +0 -0
  812. /package/dist/{schema-LHBKBUV7.js.map → schema-EJ2XPUN6.js.map} +0 -0
  813. /package/dist/{search-3AW52FO6.js.map → search-2BAY3KKX.js.map} +0 -0
  814. /package/dist/{select-STIWQ36I.js.map → select-K2SXPDDJ.js.map} +0 -0
  815. /package/dist/{set-prompt-TODWV2F4.js.map → set-prompt-BZFOV3EB.js.map} +0 -0
  816. /package/dist/{setup-links-MNBD3UMH.js.map → setup-links-QT63UZBR.js.map} +0 -0
  817. /package/dist/{site-ZZUKS6MQ.js.map → site-S6QVMP7W.js.map} +0 -0
  818. /package/dist/{sources-36MJ6T4V.js.map → sources-DTQ4NQAM.js.map} +0 -0
  819. /package/dist/{sources-GNLQHTSJ.js.map → sources-ORG5KQSW.js.map} +0 -0
  820. /package/dist/{stale-GJN7UO3D.js.map → stale-5O7BQVTN.js.map} +0 -0
  821. /package/dist/{status-6EGB6ORB.js.map → status-4G2YUCZR.js.map} +0 -0
  822. /package/dist/{studies-4XXCEAHH.js.map → studies-QLSKON6M.js.map} +0 -0
  823. /package/dist/{studio-OARORMDJ.js.map → studio-IDXFTGHP.js.map} +0 -0
  824. /package/dist/{study-writes-J56UIIE3.js.map → study-writes-GBUUKX4O.js.map} +0 -0
  825. /package/dist/{sync-QHM3LMAX.js.map → sync-7LJZPHM3.js.map} +0 -0
  826. /package/dist/{sync-definition-YXGN6PIQ.js.map → sync-definition-Q3XUSEZJ.js.map} +0 -0
  827. /package/dist/{tag-manager-XAX5AI42.js.map → tag-manager-5WZPX2FJ.js.map} +0 -0
  828. /package/dist/{tags-MQYF2JHQ.js.map → tags-2ARVNEYS.js.map} +0 -0
  829. /package/dist/{tags-ZGXJHATH.js.map → tags-F4IT7RQR.js.map} +0 -0
  830. /package/dist/{tags-MBBRBZJH.js.map → tags-F7ZO52EM.js.map} +0 -0
  831. /package/dist/{tags-IDWUV2FY.js.map → tags-NBGGBHXR.js.map} +0 -0
  832. /package/dist/{tags-GHV5R7NI.js.map → tags-TCSGQYDR.js.map} +0 -0
  833. /package/dist/{targeting-KJ4DI56R.js.map → targeting-DAUTJDUB.js.map} +0 -0
  834. /package/dist/{targeting-criteria-GDCXOAUD.js.map → targeting-criteria-H42LRULY.js.map} +0 -0
  835. /package/dist/{targets-MYHOPAYY.js.map → targets-WB4E5XL2.js.map} +0 -0
  836. /package/dist/{testimonials-R6RFGAKP.js.map → testimonials-KLF3Y4QO.js.map} +0 -0
  837. /package/dist/{themes-LHVXXVTX.js.map → themes-BGBDYQQK.js.map} +0 -0
  838. /package/dist/{top-companies-POTV3Y2A.js.map → top-companies-C2W5TJ7G.js.map} +0 -0
  839. /package/dist/{transcript-4RVYKDVZ.js.map → transcript-S7VR2GJE.js.map} +0 -0
  840. /package/dist/{translate-UCASCVMN.js.map → translate-CBITGC7C.js.map} +0 -0
  841. /package/dist/{triggers-XHMMOZJK.js.map → triggers-EOKMR74O.js.map} +0 -0
  842. /package/dist/{unlink-3IW3EORE.js.map → unlink-PC3TMWUT.js.map} +0 -0
  843. /package/dist/{unstage-APVF6KHB.js.map → unstage-SU2ATDSZ.js.map} +0 -0
  844. /package/dist/{update-V7SRDGHN.js.map → update-DKX3EEES.js.map} +0 -0
  845. /package/dist/{update-2VSJH4LQ.js.map → update-JYZ45YJG.js.map} +0 -0
  846. /package/dist/{update-ESK6PSME.js.map → update-TAZSUOAS.js.map} +0 -0
  847. /package/dist/{update-42QYBUE3.js.map → update-WRJUH2NM.js.map} +0 -0
  848. /package/dist/{upload-42IR5RIL.js.map → upload-BLXTMK5Q.js.map} +0 -0
  849. /package/dist/{url-params-GEESXN57.js.map → url-params-YVOFU6MK.js.map} +0 -0
  850. /package/dist/{validate-Z5SSEUES.js.map → validate-SAQEORZY.js.map} +0 -0
  851. /package/dist/{videos-PJAPZPOT.js.map → videos-GOIDZVVD.js.map} +0 -0
  852. /package/dist/{viewer-check-6M34VY7K.js.map → viewer-check-KTRRUVZN.js.map} +0 -0
  853. /package/dist/{web-PUVVFMV3.js.map → web-6KUM7Q7S.js.map} +0 -0
  854. /package/dist/{winning-ads-ZCP4MIEQ.js.map → winning-ads-LOMI72Q2.js.map} +0 -0
  855. /package/dist/{write-commands-ZS4O4DSV.js.map → write-commands-3U5ZMIHH.js.map} +0 -0
  856. /package/dist/{write-commands-5LEEPKA7.js.map → write-commands-F5XPPLOO.js.map} +0 -0
  857. /package/dist/{x-2IZMW46M.js.map → x-APVY4YHX.js.map} +0 -0
@@ -1,1169 +0,0 @@
1
- import {
2
- adSetDeliveryArgs,
3
- adSetDeliveryFromFlags,
4
- boostEditArgs,
5
- boostEditsFromFlags,
6
- budgetBoostArg,
7
- budgetBoostsFromFlags,
8
- clearArg,
9
- clearFromFlags
10
- } from "./chunk-DNH2ZPZP.js";
11
- import {
12
- bareAccountId,
13
- failWriteValidation,
14
- fileArg,
15
- listFlag,
16
- loadJsonFileArg,
17
- mergePayload,
18
- numberFlag,
19
- parseDateFlag,
20
- parseMoneyFlag,
21
- refuseDeleteByUpdate,
22
- repeatedListFlag,
23
- requireTarget,
24
- stageOp,
25
- stageStatusChange,
26
- upper
27
- } from "./chunk-6MXM6DA6.js";
28
- import {
29
- buildCustomConversionRule
30
- } from "./chunk-GC5P4KWY.js";
31
- import {
32
- VISUAL_ENHANCEMENT_FEATURES
33
- } from "./chunk-GDFJOCDO.js";
34
- import "./chunk-QY7EK6Q4.js";
35
- import {
36
- repeatedValues
37
- } from "./chunk-ERSX3MKH.js";
38
- import "./chunk-P4MXGSSJ.js";
39
- import "./chunk-4NZ47VXO.js";
40
- import "./chunk-D5FY4FAK.js";
41
- import "./chunk-4H6XLX7E.js";
42
- import "./chunk-QALAJNBG.js";
43
- import "./chunk-QYH2UZAK.js";
44
- import "./chunk-Y3SK6EMU.js";
45
- import "./chunk-XB4NKZAQ.js";
46
- import "./chunk-E56V3RFO.js";
47
- import "./chunk-ZANXEMON.js";
48
- import "./chunk-G6U45QD3.js";
49
- import "./chunk-4ULGRGBG.js";
50
- import "./chunk-SOPVIIUW.js";
51
- import "./chunk-G4FG5EQO.js";
52
- import "./chunk-R7XDGNZD.js";
53
- import "./chunk-GFWWHCBF.js";
54
- import "./chunk-JXTNP3B5.js";
55
- import "./chunk-45D6WRCJ.js";
56
- import "./chunk-CCYZJMZ7.js";
57
- import "./chunk-YQSBHWOI.js";
58
-
59
- // src/commands/ads/meta/write-commands.ts
60
- import { defineCommand } from "citty";
61
-
62
- // src/commands/ads/meta/creative-flags.ts
63
- function parseEnroll(value) {
64
- const raw = String(value).toLowerCase();
65
- if (raw === "on" || raw === "true" || raw === "opt_in") return "OPT_IN";
66
- if (raw === "off" || raw === "false" || raw === "opt_out") return "OPT_OUT";
67
- failWriteValidation("--standard-enhancements must be on|off");
68
- }
69
- function creativeEnhancementsFromFlags(args, rawArgs) {
70
- const visual = repeatedValues(rawArgs, "visual-enhancement", args["visual-enhancement"]);
71
- const unknown = visual.filter((feature) => !(feature in VISUAL_ENHANCEMENT_FEATURES));
72
- if (unknown.length > 0) {
73
- failWriteValidation(
74
- `--visual-enhancement ${unknown.join(", ")} is not a feature that changes the media \u2014 one of ${Object.keys(VISUAL_ENHANCEMENT_FEATURES).join(", ")}`
75
- );
76
- }
77
- const standard = args["standard-enhancements"] !== void 0 ? parseEnroll(args["standard-enhancements"]) : void 0;
78
- if (!standard && visual.length === 0) return void 0;
79
- return {
80
- ...standard ? { standardEnhancements: standard } : {},
81
- ...visual.length > 0 ? { features: Object.fromEntries(visual.map((feature) => [feature, "OPT_IN"])) } : {}
82
- };
83
- }
84
- function carouselFlags(args) {
85
- const order = args["card-order"];
86
- if (order !== void 0 && order !== "fixed" && order !== "optimized") {
87
- failWriteValidation("--card-order must be fixed (the order you built) or optimized (Meta reorders)");
88
- }
89
- const endCard = args["end-card"];
90
- return {
91
- ...order !== void 0 ? { card_order: String(order) } : {},
92
- ...endCard !== void 0 ? { end_card: parseEnroll(endCard) === "OPT_IN" } : {}
93
- };
94
- }
95
- function welcomeMessageFromFlags(args, rawArgs) {
96
- const breakers = repeatedValues(rawArgs, "ice-breaker", args["ice-breaker"]).map((entry) => {
97
- const [question, ...rest] = entry.split("=>");
98
- const answer = rest.join("=>").trim();
99
- if (!question?.trim() || !answer) {
100
- failWriteValidation(`--ice-breaker takes "Question => Answer" \u2014 got "${entry}"`);
101
- }
102
- return { question: question.trim(), answer };
103
- });
104
- if (args.greeting === void 0 && breakers.length === 0 && args.autofill === void 0) return void 0;
105
- return {
106
- ...args.greeting !== void 0 ? { greeting: String(args.greeting) } : {},
107
- ...breakers.length > 0 ? { iceBreakers: breakers } : {},
108
- ...args.autofill !== void 0 ? { autofill: String(args.autofill) } : {}
109
- };
110
- }
111
- var BUTTON_OPENS = {
112
- MESSAGE_PAGE: "MESSENGER",
113
- WHATSAPP_MESSAGE: "WHATSAPP",
114
- INSTAGRAM_MESSAGE: "INSTAGRAM_DIRECT"
115
- };
116
- function conversationAndAppCta(args) {
117
- const cta = args.cta === void 0 ? void 0 : String(args.cta).toUpperCase();
118
- const destination = args["app-destination"] !== void 0 ? String(args["app-destination"]).toUpperCase() : cta ? BUTTON_OPENS[cta] : void 0;
119
- return {
120
- ...destination ? { app_destination: destination } : {},
121
- ...args["deep-link"] !== void 0 ? { app_link: String(args["deep-link"]) } : {},
122
- ...args["app-id"] !== void 0 ? { application: String(args["app-id"]) } : {}
123
- };
124
- }
125
-
126
- // src/commands/ads/meta/write-commands.ts
127
- var STAGED_NOTE = "Staged until publish \u2014 review with `baker ads meta draft`.";
128
- var accountArgs = {
129
- "account-id": { type: "string", description: "Numeric account ID or act_N" }
130
- };
131
- function campaignPayloadFromFlags(args) {
132
- return {
133
- name: args.name,
134
- objective: upper(args.objective),
135
- status: upper(args.status),
136
- special_ad_categories: listFlag(args["special-ad-categories"])?.map((c) => c.toUpperCase()),
137
- special_ad_category_country: listFlag(args["special-ad-category-country"])?.map((c) => c.toUpperCase()),
138
- buying_type: upper(args["buying-type"]),
139
- bid_strategy: upper(args["bid-strategy"]),
140
- dailyBudget: parseMoneyFlag(args["daily-budget"], args.currency, "--daily-budget"),
141
- lifetimeBudget: parseMoneyFlag(args["lifetime-budget"], args.currency, "--lifetime-budget"),
142
- spendCap: parseMoneyFlag(args["spend-cap"], args.currency, "--spend-cap"),
143
- adSetBudgetSharing: args["adset-budget-sharing"] === void 0 ? void 0 : Boolean(args["adset-budget-sharing"]),
144
- start_time: parseDateFlag(args.start, "--start"),
145
- stop_time: parseDateFlag(args.stop, "--stop"),
146
- promoted_object: args["catalog-id"] ? { product_catalog_id: String(args["catalog-id"]) } : void 0
147
- };
148
- }
149
- var campaignBudgetArgs = {
150
- "daily-budget": { type: "string", description: "Daily budget (Advantage campaign budget / CBO)" },
151
- "lifetime-budget": { type: "string", description: "Lifetime budget" },
152
- "spend-cap": { type: "string", description: "Campaign spend cap" },
153
- currency: { type: "string", description: "3-letter currency (defaults to the account currency)" },
154
- "bid-strategy": {
155
- type: "string",
156
- description: "LOWEST_COST_WITHOUT_CAP|LOWEST_COST_WITH_BID_CAP|COST_CAP|LOWEST_COST_WITH_MIN_ROAS"
157
- },
158
- start: { type: "string", description: "Start time (ISO date or epoch ms)" },
159
- stop: { type: "string", description: "Stop time" },
160
- ...budgetBoostArg
161
- };
162
- var campaignsCreateCommand = defineCommand({
163
- meta: {
164
- name: "create",
165
- description: `Stage a new campaign. ${STAGED_NOTE}
166
- Example: baker ads meta campaigns create --name "Q3 Prospecting" --objective OUTCOME_LEADS --daily-budget 50
167
- Advantage+ (Meta's own "Advantage+ campaign" state) is not a setting: it follows from a campaign budget here, Advantage+ audience (targeting_automation.advantage_audience 1) and automatic placements (no placement lists) on every ad set. Read it back with \`baker ads meta campaigns --fields id,name,advantage_state_info\`.
168
- Black Friday boost: baker ads meta campaigns create --name "BF" --objective OUTCOME_SALES --daily-budget 50 --budget-boost 2027-11-27T00:00Z..2027-11-28T00:00Z=+100%`
169
- },
170
- args: {
171
- ...accountArgs,
172
- name: { type: "string", description: "Campaign name" },
173
- objective: {
174
- type: "string",
175
- description: "OUTCOME_TRAFFIC|OUTCOME_ENGAGEMENT|OUTCOME_LEADS|OUTCOME_SALES|OUTCOME_AWARENESS|OUTCOME_APP_PROMOTION"
176
- },
177
- status: { type: "string", description: "ACTIVE|PAUSED (default PAUSED)" },
178
- "special-ad-categories": { type: "string", description: "CSV: NONE|HOUSING|EMPLOYMENT|CREDIT|\u2026 (default NONE)" },
179
- "special-ad-category-country": { type: "string", description: "CSV of 2-letter country codes" },
180
- "buying-type": { type: "string", description: "AUCTION|RESERVED (default AUCTION)" },
181
- "adset-budget-sharing": {
182
- type: "boolean",
183
- description: "Let ad sets lend up to 20% of their budget to each other (off unless set; ignored with a campaign budget)"
184
- },
185
- ...campaignBudgetArgs,
186
- "catalog-id": {
187
- type: "string",
188
- description: "Advantage+ catalog ads: the product catalog the campaign sells from (OUTCOME_SALES) \u2014 from `baker ads meta catalogs`. Fixed at creation; each ad set then names one of its product sets with --product-set-id"
189
- },
190
- ...fileArg("campaign.create", "JSON file with the full payload; flags override file keys")
191
- },
192
- run: async ({ args, rawArgs }) => {
193
- const accountId = await bareAccountId(args);
194
- const payload = mergePayload(loadJsonFileArg(args.file), {
195
- ...campaignPayloadFromFlags(args),
196
- budgetSchedules: budgetBoostsFromFlags(args, rawArgs)
197
- });
198
- await stageOp({ kind: "campaign.create", accountId, payload });
199
- }
200
- });
201
- var campaignsUpdateCommand = defineCommand({
202
- meta: {
203
- name: "update",
204
- description: `Stage changes to a campaign. ${STAGED_NOTE}
205
- Pass a meta_temp_* ref to amend a campaign staged in this chat. Example: baker ads meta campaigns update 6123 --daily-budget 80
206
- Budget boosts on a live campaign need its daily budget restated in the same command (Meta reads it from the request): baker ads meta campaigns update 6123 --daily-budget 50 --budget-boost 2027-11-27T00:00Z..2027-11-28T00:00Z=+25
207
- A boost is ADDED to the ones the campaign has (Meta keeps them, even overlapping); take them all away with --clear boosts, or one at a time with --remove-boost / --move-boost (ids from \`baker ads meta high-demand-periods --campaign-id 6123\`): baker ads meta campaigns update 6123 --move-boost 1633135568548763=2027-11-27T06:00Z..2027-11-27T12:00Z`
208
- },
209
- args: {
210
- id: { type: "positional", description: "Campaign id or meta_temp_* ref", required: true },
211
- ...accountArgs,
212
- name: { type: "string", description: "New name" },
213
- status: { type: "string", description: "ACTIVE|PAUSED|ARCHIVED" },
214
- ...campaignBudgetArgs,
215
- clear: { type: "string", description: "boosts \u2014 take away every budget boost the campaign has now" },
216
- ...boostEditArgs,
217
- ...fileArg("campaign.update", "JSON file with fields to change")
218
- },
219
- run: async ({ args, rawArgs }) => {
220
- const accountId = await bareAccountId(args);
221
- const payload = mergePayload(loadJsonFileArg(args.file), {
222
- name: args.name,
223
- status: upper(args.status),
224
- budgetSchedules: budgetBoostsFromFlags(args, rawArgs),
225
- clear: clearOrFail(rawArgs, "campaign"),
226
- ...boostEditsFromFlags(args, rawArgs),
227
- bid_strategy: upper(args["bid-strategy"]),
228
- dailyBudget: parseMoneyFlag(args["daily-budget"], args.currency, "--daily-budget"),
229
- lifetimeBudget: parseMoneyFlag(args["lifetime-budget"], args.currency, "--lifetime-budget"),
230
- spendCap: parseMoneyFlag(args["spend-cap"], args.currency, "--spend-cap"),
231
- start_time: parseDateFlag(args.start, "--start"),
232
- stop_time: parseDateFlag(args.stop, "--stop")
233
- });
234
- refuseDeleteByUpdate(payload, "campaigns");
235
- await stageOp({
236
- kind: "campaign.update",
237
- accountId,
238
- target: requireTarget(args, "campaign"),
239
- payload
240
- });
241
- }
242
- });
243
- function clearOrFail(rawArgs, entity) {
244
- try {
245
- return clearFromFlags(rawArgs, entity);
246
- } catch (err) {
247
- failWriteValidation(err instanceof Error ? err.message : String(err));
248
- }
249
- }
250
- function adSetPayloadFromFlags(args, rawArgs, file) {
251
- const promotedObject = args["promoted-object-file"] ? loadJsonFileArg(args["promoted-object-file"]) : buildPromotedObject(args);
252
- return {
253
- ...adSetDeliveryFromFlags(args, rawArgs),
254
- budgetSchedules: budgetBoostsFromFlags(args, rawArgs),
255
- name: args.name,
256
- campaign_id: args.campaign,
257
- status: upper(args.status),
258
- optimization_goal: upper(args["optimization-goal"]),
259
- billing_event: upper(args["billing-event"]),
260
- destination_type: upper(args["destination-type"]),
261
- dailyBudget: parseMoneyFlag(args["daily-budget"], args.currency, "--daily-budget"),
262
- lifetimeBudget: parseMoneyFlag(args["lifetime-budget"], args.currency, "--lifetime-budget"),
263
- bidAmount: parseMoneyFlag(args["bid-amount"], args.currency, "--bid-amount"),
264
- bid_strategy: upper(args["bid-strategy"]),
265
- start_time: parseDateFlag(args.start, "--start"),
266
- end_time: parseDateFlag(args.end, "--end"),
267
- targeting: targetingFromFlags(args, rawArgs, targetingOf(file)),
268
- rf_prediction_id: args.reservation,
269
- promoted_object: promotedObject && Object.keys(promotedObject).length > 0 ? promotedObject : void 0
270
- };
271
- }
272
- function targetingOf(file) {
273
- const targeting = file.targeting;
274
- return targeting && typeof targeting === "object" && !Array.isArray(targeting) ? targeting : void 0;
275
- }
276
- function targetingFromFlags(args, rawArgs, fileTargeting) {
277
- const file = args["targeting-file"] ? loadJsonFileArg(args["targeting-file"]) : void 0;
278
- const base = file ?? fileTargeting;
279
- const lists = repeatedValues(rawArgs, "block-list", args["block-list"]);
280
- const filters = repeatedValues(rawArgs, "content-filter", args["content-filter"]).map((value) => value.toUpperCase());
281
- const categories = repeatedValues(rawArgs, "exclude-publisher-category", args["exclude-publisher-category"]).map(
282
- (value) => value.toLowerCase()
283
- );
284
- const safety = {
285
- ...lists.length > 0 ? { excluded_publisher_list_ids: lists } : {},
286
- ...filters.length > 0 ? { brand_safety_content_filter_levels: filters } : {},
287
- ...categories.length > 0 ? { excluded_publisher_categories: categories } : {}
288
- };
289
- if (Object.keys(safety).length === 0) return file;
290
- return { ...base ?? {}, ...safety };
291
- }
292
- function buildPromotedObject(args) {
293
- const out = {};
294
- if (args["page-id"]) out.page_id = String(args["page-id"]);
295
- if (args["pixel-id"]) out.pixel_id = String(args["pixel-id"]);
296
- if (args["custom-event-type"]) out.custom_event_type = upper(args["custom-event-type"]);
297
- if (args["custom-conversion-id"]) out.custom_conversion_id = String(args["custom-conversion-id"]);
298
- if (args["product-set-id"]) out.product_set_id = String(args["product-set-id"]);
299
- if (args["app-id"]) out.application_id = String(args["app-id"]);
300
- if (args["app-store-url"]) out.object_store_url = String(args["app-store-url"]);
301
- if (args["whatsapp-number"]) out.whatsapp_phone_number = String(args["whatsapp-number"]);
302
- return out;
303
- }
304
- function customConversionRuleFromFlags(args) {
305
- const urlContains = args["url-contains"];
306
- const ruleFile = args["rule-file"];
307
- if (urlContains && ruleFile) {
308
- failWriteValidation(
309
- "pass either --url-contains or --rule-file, not both \u2014 they are two ways to say the same thing"
310
- );
311
- }
312
- if (ruleFile) {
313
- return loadJsonFileArg(ruleFile);
314
- }
315
- if (!urlContains) {
316
- failWriteValidation(
317
- "a custom conversion needs a rule \u2014 pass --url-contains '/thank-you' (the common case), or --rule-file with Meta's filter JSON"
318
- );
319
- }
320
- return buildCustomConversionRule({
321
- event: args.event ? String(args.event) : void 0,
322
- urlContains: String(urlContains)
323
- });
324
- }
325
- var customConversionsCreateCommand = defineCommand({
326
- meta: {
327
- name: "create",
328
- description: `Stage a new Custom Conversion \u2014 a pixel event narrowed by a rule, which an ad set can then optimize toward. ${STAGED_NOTE}
329
- Meta caps an account at 100 and its delete only archives one, so a duplicate is permanent: check \`baker ads meta custom-conversions\` first.
330
- Chain an ad set to it in the same chat with --custom-conversion-id meta_temp_*.
331
- Example: baker ads meta custom-conversions create --name "Lead formulario" --pixel-id 645971030024859 --custom-event-type LEAD --url-contains "/gracias"`
332
- },
333
- args: {
334
- ...accountArgs,
335
- name: { type: "string", description: "What the marketer will see in Events Manager and in reports" },
336
- "pixel-id": { type: "string", description: "The pixel it counts from \u2014 from `baker ads meta pixels`" },
337
- "custom-event-type": {
338
- type: "string",
339
- description: "Event category Meta files it under: LEAD|PURCHASE|COMPLETE_REGISTRATION|CONTACT|\u2026"
340
- },
341
- "url-contains": {
342
- type: "string",
343
- description: "Count the event when the URL contains this, e.g. '/gracias'. The common case."
344
- },
345
- event: { type: "string", description: "Pixel event the URL narrows (default PageView)" },
346
- "rule-file": { type: "string", description: "JSON file with Meta's raw filter, instead of --url-contains" },
347
- description: { type: "string", description: "Free-text note shown in Events Manager" },
348
- value: { type: "string", description: "Default value of one conversion, when the site sends no value" }
349
- },
350
- run: async ({ args }) => {
351
- const accountId = await bareAccountId(args);
352
- await stageOp({
353
- kind: "customConversion.create",
354
- accountId,
355
- payload: {
356
- name: args.name,
357
- description: args.description,
358
- pixel_id: args["pixel-id"] ? String(args["pixel-id"]) : void 0,
359
- custom_event_type: upper(args["custom-event-type"]),
360
- rule: customConversionRuleFromFlags(args),
361
- default_conversion_value: numberFlag(args.value, "--value")
362
- }
363
- });
364
- }
365
- });
366
- var adSetWriteArgs = {
367
- ...accountArgs,
368
- name: { type: "string", description: "Ad set name" },
369
- status: { type: "string", description: "ACTIVE|PAUSED|ARCHIVED" },
370
- "optimization-goal": { type: "string", description: "LINK_CLICKS|OFFSITE_CONVERSIONS|REACH|LEAD_GENERATION|\u2026" },
371
- "billing-event": { type: "string", description: "IMPRESSIONS|LINK_CLICKS|THRUPLAY|\u2026" },
372
- "destination-type": { type: "string", description: "WEBSITE|APP|MESSENGER|ON_AD|WHATSAPP|\u2026" },
373
- "daily-budget": { type: "string", description: "Daily budget (ABO; omit if the campaign uses CBO)" },
374
- "lifetime-budget": { type: "string", description: "Lifetime budget (needs --end)" },
375
- "bid-amount": { type: "string", description: "Bid amount (required for COST_CAP / bid-cap strategies)" },
376
- "bid-strategy": {
377
- type: "string",
378
- description: "LOWEST_COST_WITHOUT_CAP (auto-bid) | LOWEST_COST_WITH_BID_CAP | COST_CAP \u2014 needs --bid-amount | LOWEST_COST_WITH_MIN_ROAS \u2014 needs --min-roas. Omit and Baker sets auto-bid (or min-ROAS when --min-roas is given); never leave it to Meta, whose default is a bid cap that then fails without an amount."
379
- },
380
- ...adSetDeliveryArgs,
381
- currency: { type: "string", description: "3-letter currency (defaults to the account currency)" },
382
- start: { type: "string", description: "Start time" },
383
- end: { type: "string", description: "End time" },
384
- "targeting-file": {
385
- type: "string",
386
- description: "JSON file with the full Meta targeting spec. Ids, never names: look them up with `baker ads meta targeting search|geo|locales` and size it with `targeting estimate`"
387
- },
388
- "block-list": {
389
- type: "string",
390
- description: "Repeatable. Keep the ad set off a publisher block list \u2014 an id from `baker ads meta block-lists` or a meta_temp_* ref. On update without --targeting-file, the rest of the live targeting is kept"
391
- },
392
- "content-filter": {
393
- type: "string",
394
- description: "Repeatable, one per family: FEED_|FACEBOOK_|AN_ + RELAXED|STANDARD|STRICT \u2014 how strict Meta's content filter next to the ad is (feeds, in-stream/Reels, Audience Network)"
395
- },
396
- "exclude-publisher-category": {
397
- type: "string",
398
- description: "Repeatable: dating|gambling (and, for Audience Network / in-stream, debated_social_issues|mature_audiences|tragedy_and_conflict)"
399
- },
400
- reservation: {
401
- type: "string",
402
- description: "Create only: a reach-and-frequency reservation this ad set is bought on (id or meta_temp_* from `reach-frequency reserve`); its campaign is --buying-type RESERVED and it takes no budget"
403
- },
404
- "promoted-object-file": { type: "string", description: "JSON file with the promoted_object" },
405
- "page-id": {
406
- type: "string",
407
- description: "promoted_object.page_id shortcut (required for LEAD_GENERATION / QUALITY_LEAD / PAGE_LIKES goals)"
408
- },
409
- "pixel-id": { type: "string", description: "promoted_object.pixel_id shortcut" },
410
- "custom-event-type": { type: "string", description: "promoted_object.custom_event_type (PURCHASE|LEAD|\u2026)" },
411
- "custom-conversion-id": {
412
- type: "string",
413
- description: "Optimize toward a Custom Conversion \u2014 the id from `baker ads meta custom-conversions`. Use it instead of --pixel-id/--custom-event-type, not alongside: Baker reads the conversion off Meta and fills its pixel, event category and rule."
414
- },
415
- "product-set-id": {
416
- type: "string",
417
- description: "Advantage+ catalog ads: the product set this ad set shows (promoted_object.product_set_id) \u2014 from `baker ads meta catalogs --catalog-id <id>`. With OFFSITE_CONVERSIONS pass --custom-event-type (PURCHASE, ADD_TO_CART\u2026); no pixel needed"
418
- },
419
- "app-id": {
420
- type: "string",
421
- description: "App ads: the app to promote (promoted_object.application_id) \u2014 from `baker ads meta apps`; needs --app-store-url"
422
- },
423
- "app-store-url": {
424
- type: "string",
425
- description: "App ads: the app's App Store / Google Play page (promoted_object.object_store_url)"
426
- },
427
- "whatsapp-number": {
428
- type: "string",
429
- description: "Click-to-WhatsApp: the WhatsApp Business number connected to the Page (promoted_object.whatsapp_phone_number)"
430
- },
431
- file: { type: "string", description: "JSON file with the full payload; flags override" }
432
- };
433
- var adSetsCreateCommand = defineCommand({
434
- meta: {
435
- name: "create",
436
- description: `Stage a new ad set. ${STAGED_NOTE}
437
- Chain to a campaign with --campaign (real id or meta_temp_* ref).
438
- Lead-form goals (LEAD_GENERATION, QUALITY_LEAD) and PAGE_LIKES need --page-id (the Facebook Page the leads/likes belong to).
439
- Conversion goals take EITHER --pixel-id + --custom-event-type (a standard event) OR --custom-conversion-id (the marketer's own conversion, from 'baker ads meta custom-conversions').
440
- Example: baker ads meta adsets create --campaign meta_temp_ab12 --name "US 25-54" --optimization-goal LINK_CLICKS --billing-event IMPRESSIONS --daily-budget 50 --targeting-file t.json
441
- Delivery controls: --min-roas (ROAS goal bidding), --frequency-cap 2/7 (REACH/THRUPLAY), --schedule "Mon-Fri 09-18" (dayparting, lifetime budget only), --pacing no_pacing (bid cap only), --daily-spend-cap/--daily-min-spend (an ad set's share of a campaign budget), --budget-boost (high-demand periods), --attribution 7d_click,1d_view, --dynamic-creative (create only).
442
- Example: baker ads meta adsets create --campaign 6123 --name "Reach ES" --optimization-goal REACH --billing-event IMPRESSIONS --lifetime-budget 300 --end 2027-02-01 --frequency-cap 2/7 --schedule "Mon-Fri 09-18" --targeting-file t.json`
443
- },
444
- args: {
445
- campaign: { type: "string", description: "Parent campaign id or meta_temp_* ref" },
446
- ...adSetWriteArgs,
447
- ...fileArg("adSet.create", adSetWriteArgs.file.description),
448
- "budget-boost": {
449
- type: "string",
450
- description: "Raise this ad set's daily budget for a high-demand period, repeatable (on a live ad set, `adsets update --budget-boost` adds one beside those it has): START..END=+AMOUNT or START..END=+PERCENT% (max 800%), at least 3 hours, on quarter hours, all amounts or all percentages. Needs --daily-budget. Example: --budget-boost 2027-11-27T00:00Z..2027-11-28T00:00Z=+50%"
451
- },
452
- "dynamic-creative": {
453
- type: "boolean",
454
- description: "Make this a Dynamic Creative ad set: its ONE ad runs a creativeType dynamic creative (Meta mixes the images, videos and texts). Create-only \u2014 Meta fixes it for the ad set's life."
455
- },
456
- "saved-audience": {
457
- type: "string",
458
- description: "Start from a saved audience's targeting (id from `baker ads meta audiences saved`) \u2014 copied into the ad set; instead of --targeting-file, and --block-list / --content-filter / --exclude-publisher-category join it"
459
- }
460
- },
461
- run: async ({ args, rawArgs }) => {
462
- const accountId = await bareAccountId(args);
463
- const file = loadJsonFileArg(args.file);
464
- const payload = mergePayload(file, adSetPayloadFromFlags(args, rawArgs, file));
465
- if (args["saved-audience"]) {
466
- const { savedAudienceTargeting, targetingFromSavedAudience } = await import("./audience-writes-5KT6FHUY.js");
467
- const saved = await savedAudienceTargeting(accountId, String(args["saved-audience"]));
468
- const merged = targetingFromSavedAudience(saved, payload.targeting);
469
- if ("refusal" in merged) failWriteValidation(merged.refusal);
470
- payload.targeting = merged.targeting;
471
- }
472
- await stageOp({ kind: "adSet.create", accountId, payload });
473
- }
474
- });
475
- var adSetsUpdateCommand = defineCommand({
476
- meta: {
477
- name: "update",
478
- description: `Stage changes to an ad set. ${STAGED_NOTE}
479
- Switching --optimization-goal to a lead-form goal (LEAD_GENERATION, QUALITY_LEAD) or PAGE_LIKES needs --page-id in the same change.
480
- Take a control away with --clear: baker ads meta adsets update 6123 --clear daily-spend-cap,schedule
481
- Budget boosts on a live ad set with its own daily budget: add with --budget-boost, take one away with --remove-boost, re-time one with --move-boost (ids from \`baker ads meta high-demand-periods --campaign-id <ad set id>\`).
482
- Example: baker ads meta adsets update 6123 --daily-budget 80`
483
- },
484
- args: {
485
- id: { type: "positional", description: "Ad set id or meta_temp_* ref", required: true },
486
- ...adSetWriteArgs,
487
- ...fileArg("adSet.update", adSetWriteArgs.file.description),
488
- "budget-boost": {
489
- type: "string",
490
- description: "Add a budget boost to this ad set (its own daily budget is raised for a high-demand period), repeatable: START..END=+AMOUNT or START..END=+PERCENT% (max 800%), at least 3 hours, on quarter hours. Sent to Meta's boost list for the ad set, so the budget need not be restated. Example: --budget-boost 2027-11-27T00:00Z..2027-11-28T00:00Z=+50%"
491
- },
492
- ...boostEditArgs,
493
- ...clearArg
494
- },
495
- run: async ({ args, rawArgs }) => {
496
- const accountId = await bareAccountId(args);
497
- const file = loadJsonFileArg(args.file);
498
- const {
499
- campaign_id: _drop,
500
- billing_event: _be,
501
- ...payload
502
- } = adSetPayloadFromFlags(args, rawArgs, file);
503
- const merged = mergePayload(file, {
504
- ...payload,
505
- ...boostEditsFromFlags(args, rawArgs),
506
- clear: clearOrFail(rawArgs, "adSet")
507
- });
508
- refuseDeleteByUpdate(merged, "adsets");
509
- await stageOp({
510
- kind: "adSet.update",
511
- accountId,
512
- target: requireTarget(args, "ad set"),
513
- payload: merged
514
- });
515
- }
516
- });
517
- function creativePayloadFromFlags(args, rawArgs) {
518
- const enhancements = creativeEnhancementsFromFlags(args, rawArgs);
519
- return {
520
- // Leave undefined when --type is omitted so a --file's creativeType survives
521
- // mergePayload (any defined flag overrides the file). Defaulted after merge.
522
- creativeType: args.type ? String(args.type) : void 0,
523
- name: args.name,
524
- page_id: args.page,
525
- instagram_user_id: args["instagram-user"],
526
- message: args.message,
527
- link: args.link,
528
- headline: args.headline,
529
- description: args.description,
530
- caption: args.caption,
531
- call_to_action: creativeCta(args),
532
- welcome_message: welcomeMessageFromFlags(args, rawArgs),
533
- applink_treatment: args["applink-treatment"],
534
- product_set_id: args["product-set-id"],
535
- canvas_id: args["canvas-id"],
536
- format: args.format,
537
- imageHash: args["image-hash"],
538
- imageRef: args["image-ref"],
539
- videoId: args["video-id"],
540
- videoRef: args["video-ref"],
541
- thumbnailHash: args["thumbnail-hash"],
542
- thumbnailRef: args["thumbnail-ref"],
543
- url_tags: args["url-tags"],
544
- shop_destination: args["shop-destination"],
545
- multi_advertiser: args["multi-advertiser"],
546
- partner: partnerFromFlags(args),
547
- object_story_id: args["post-id"],
548
- source_instagram_media_id: args["instagram-media-id"],
549
- instagram_ad_code: args["ad-code"],
550
- collection_thumbnails: collectionThumbnailsFromFlags(rawArgs, args["collection-thumbnail"]),
551
- enhancements,
552
- ...carouselFlags(args)
553
- };
554
- }
555
- function collectionThumbnailsFromFlags(rawArgs, parsed) {
556
- const values = repeatedValues(rawArgs, "collection-thumbnail", parsed);
557
- if (values.length === 0) return void 0;
558
- return values.map((value) => {
559
- const [elementId = "", index] = value.split(":");
560
- return index === void 0 ? { element_id: elementId } : { element_id: elementId, element_child_index: Number(index) };
561
- });
562
- }
563
- function partnerFromFlags(args) {
564
- const partner = {
565
- facebook_page_id: args["partner-page"],
566
- instagram_user_id: args["partner-instagram"],
567
- ad_format: args["partner-format"]
568
- };
569
- return Object.values(partner).some((value) => value !== void 0) ? partner : void 0;
570
- }
571
- function ctaPatchFromFlags(args) {
572
- const patch = {
573
- ...args.cta ? { type: String(upper(args.cta)) } : {},
574
- ...args["lead-form"] === void 0 ? {} : { lead_gen_form_id: String(args["lead-form"]) },
575
- ...conversationAndAppCta(args)
576
- };
577
- return Object.keys(patch).length > 0 ? patch : void 0;
578
- }
579
- function creativeCta(args) {
580
- const patch = ctaPatchFromFlags(args);
581
- if (!patch) return void 0;
582
- const opener = Object.entries({
583
- MESSENGER: "MESSAGE_PAGE",
584
- WHATSAPP: "WHATSAPP_MESSAGE",
585
- INSTAGRAM_DIRECT: "INSTAGRAM_MESSAGE"
586
- }).find(([app]) => app === patch.app_destination)?.[1];
587
- return { type: opener ?? (patch.app_link || patch.application ? "INSTALL_MOBILE_APP" : "SIGN_UP"), ...patch };
588
- }
589
- function creativeContentPatch(file, args) {
590
- const cta = ctaPatchFromFlags(args);
591
- if (!cta) {
592
- return void 0;
593
- }
594
- const fileContent = file.content ?? {};
595
- const fileCta = fileContent.call_to_action ?? {};
596
- return { ...fileContent, call_to_action: { ...fileCta, ...cta } };
597
- }
598
- var adCreativesCreateCommand = defineCommand({
599
- meta: {
600
- name: "create",
601
- description: `Stage a new ad creative. ${STAGED_NOTE}
602
- Single-image/video via flags; carousel/dynamic via --file (creativeType carousel|dynamic).
603
- Click-to-message: --cta MESSAGE_PAGE|WHATSAPP_MESSAGE|INSTAGRAM_MESSAGE (opens Messenger|WhatsApp|Instagram Direct) + --greeting "Hi!" --ice-breaker "Prices? => From 99 EUR." (ad set: --destination-type MESSENGER --optimization-goal CONVERSATIONS --page-id).
604
- App ads: --link <App Store / Google Play URL> --cta INSTALL_MOBILE_APP|USE_MOBILE_APP --deep-link myapp://x --app-id <id> --applink-treatment deeplink_with_appstore_fallback.
605
- Catalog (Advantage+ catalog ads): --type catalog --product-set-id <id> --message "{{product.name}}" --headline "{{product.price}}" --link https://shop.example --format carousel|single|slideshow.
606
- Instant Experience / collection: --type instant_experience --canvas-id <id or meta_temp_*> --message \u2026 --image-hash \u2026 [--format collection] (build one with \`baker ads meta instant-experiences create\`).
607
- Reference media by --image-hash (already on Meta) or --image-ref meta_temp_* (a staged media upload).
608
- Example: baker ads meta creatives create --page 555 --message "Save now" --link https://x.com --headline "Best cover" --image-hash abc123\u2026 --cta SHOP_NOW`
609
- },
610
- args: {
611
- ...accountArgs,
612
- type: {
613
- type: "string",
614
- description: "single|carousel|dynamic|existing_post|catalog|instant_experience (default single)"
615
- },
616
- "product-set-id": {
617
- type: "string",
618
- description: "--type catalog: the product set the template shows \u2014 from `baker ads meta catalogs --catalog-id <id>`"
619
- },
620
- "canvas-id": {
621
- type: "string",
622
- description: "--type instant_experience: the Instant Experience the ad opens \u2014 an id from `baker ads meta instant-experiences --page-id <id>` (published) or the meta_temp_* ref of one this chat creates"
623
- },
624
- format: {
625
- type: "string",
626
- description: "--type catalog: carousel (default) | single (one product per ad) | slideshow. --type instant_experience: standard (default) | collection (products or photos under the ad)"
627
- },
628
- greeting: {
629
- type: "string",
630
- description: "Click-to-message: the first message the person reads when the conversation opens (\u2264300 chars)"
631
- },
632
- "ice-breaker": {
633
- type: "string",
634
- description: 'Click-to-message, repeatable (max 4): a question the person can tap and your answer \u2014 "Question => Answer"'
635
- },
636
- autofill: {
637
- type: "string",
638
- description: "Click-to-message (instead of ice breakers): a message pre-filled for the person to send"
639
- },
640
- "app-destination": {
641
- type: "string",
642
- description: "Click-to-message: MESSENGER|WHATSAPP|INSTAGRAM_DIRECT \u2014 implied by --cta MESSAGE_PAGE|WHATSAPP_MESSAGE|INSTAGRAM_MESSAGE"
643
- },
644
- "deep-link": {
645
- type: "string",
646
- description: "App ads: where the button opens inside the installed app (e.g. myapp://product/12). --link must be the App Store / Google Play page"
647
- },
648
- "app-id": {
649
- type: "string",
650
- description: "App ads: the app the button installs or opens \u2014 from `baker ads meta apps`"
651
- },
652
- "applink-treatment": {
653
- type: "string",
654
- description: "App ads: how a deep link opens \u2014 deeplink_with_web_fallback|deeplink_with_appstore_fallback|web_only|automatic"
655
- },
656
- name: { type: "string", description: "Creative name" },
657
- page: { type: "string", description: "Facebook Page id (identity)" },
658
- "instagram-user": {
659
- type: "string",
660
- description: "Instagram account id for IG placements \u2014 from `baker ads meta instagram-accounts`"
661
- },
662
- message: { type: "string", description: "Primary text" },
663
- link: { type: "string", description: "Destination URL (https)" },
664
- headline: { type: "string", description: "Headline" },
665
- description: { type: "string", description: "Description" },
666
- caption: { type: "string", description: "Display URL / caption" },
667
- cta: { type: "string", description: "Call-to-action type (SHOP_NOW|LEARN_MORE|SIGN_UP|\u2026)" },
668
- "lead-form": {
669
- type: "string",
670
- description: "Instant form id or meta_temp_* ref from `baker ads meta lead-forms create` \u2014 REQUIRED for an ad set that collects leads on the ad. With a form, --cta must be APPLY_NOW|DOWNLOAD|GET_QUOTE|LEARN_MORE|SIGN_UP|SUBSCRIBE"
671
- },
672
- "image-hash": { type: "string", description: "Meta ad-image hash (already uploaded)" },
673
- "image-ref": { type: "string", description: "meta_temp_* ref of a staged media upload" },
674
- "video-id": { type: "string", description: "Meta video id (already uploaded)" },
675
- "video-ref": { type: "string", description: "meta_temp_* ref of a staged video upload" },
676
- "thumbnail-hash": {
677
- type: "string",
678
- description: "Cover for a video ad: a picture hash already in the ad account (Meta's own frame is used when no cover is given)"
679
- },
680
- "thumbnail-ref": {
681
- type: "string",
682
- description: "Cover for a video ad: meta_temp_* ref of a staged `media upload --kind image` \u2014 how a cover picked from the library is used"
683
- },
684
- "url-tags": { type: "string", description: "URL tracking params (utm_source=fb&\u2026)" },
685
- "shop-destination": {
686
- type: "string",
687
- description: "website_only keeps a shop advertiser's ad on the website (Meta's v26 default also sends it to the shop); website_and_shop asks for both"
688
- },
689
- "standard-enhancements": {
690
- type: "string",
691
- description: "Meta's suggestions to the ad's TEXT on|off \u2014 never changes the picture or video"
692
- },
693
- "multi-advertiser": {
694
- type: "string",
695
- description: "opt_out keeps the ad from being shown beside other advertisers' ads after someone engages (Meta opts every new ad IN by default); opt_in asks for it"
696
- },
697
- "partner-page": {
698
- type: "string",
699
- description: "Partnership ad: the partner's (creator's or other brand's) Facebook Page id, shown beside yours. Needs --instagram-user on the ad and the partner's approval before it runs"
700
- },
701
- "partner-instagram": { type: "string", description: "Partnership ad: the partner's Instagram account id" },
702
- "partner-format": {
703
- type: "string",
704
- description: "Partnership ad: both (default \u2014 both identities) | first_only | auto (Meta picks, Instagram only)"
705
- },
706
- "collection-thumbnail": {
707
- type: "string",
708
- description: "--format collection over a photo experience, repeat 4 times: an element id of the live experience (`instant-experiences --page-id`), or <product-set element id>:<product index>"
709
- },
710
- "post-id": {
711
- type: "string",
712
- description: "--type existing_post: the Facebook post to boost, <page_id>_<post_id> \u2014 from `baker ads meta page-posts --page-id <id>`"
713
- },
714
- "instagram-media-id": {
715
- type: "string",
716
- description: "--type existing_post: the Instagram post to boost (with --page and --instagram-user) \u2014 from `baker ads meta instagram-media`"
717
- },
718
- "ad-code": {
719
- type: "string",
720
- description: "--type existing_post: a creator's partnership ad code for their Instagram post (with --page)"
721
- },
722
- "card-order": {
723
- type: "string",
724
- description: "Carousel only: fixed (default \u2014 every card, in the order built) or optimized (Meta reorders by performance and may show only the top 5)"
725
- },
726
- "end-card": {
727
- type: "string",
728
- description: "Carousel only: on adds Meta's card linking to the Page after the last card (default off)"
729
- },
730
- "visual-enhancement": {
731
- type: "string",
732
- description: "Repeatable. Let Meta change the media with this feature (e.g. image_uncrop, image_animation, music_generation) \u2014 ONLY when the user asked for it by name; every such feature is off otherwise"
733
- },
734
- ...fileArg("adCreative.create", "JSON file with the full creative payload (carousel cards / dynamic assets)")
735
- },
736
- run: async ({ args, rawArgs }) => {
737
- const accountId = await bareAccountId(args);
738
- const payload = mergePayload(
739
- loadJsonFileArg(args.file),
740
- creativePayloadFromFlags(args, rawArgs)
741
- );
742
- if (payload.creativeType === void 0) {
743
- payload.creativeType = "single";
744
- }
745
- await stageOp({ kind: "adCreative.create", accountId, payload });
746
- }
747
- });
748
- var adCreativesUpdateCommand = defineCommand({
749
- meta: {
750
- name: "update",
751
- description: `Stage name/status changes to an ad creative. ${STAGED_NOTE}
752
- Meta creatives are immutable \u2014 to change content, stage a new creative and repoint the ad.
753
- Amending a staged (meta_temp_*) creative merges fields into the create. Example: baker ads meta creatives update 998 --name "Renamed"`
754
- },
755
- args: {
756
- id: { type: "positional", description: "Creative id or meta_temp_* ref", required: true },
757
- ...accountArgs,
758
- name: { type: "string", description: "New name" },
759
- status: { type: "string", description: "ACTIVE|PAUSED|ARCHIVED" },
760
- cta: { type: "string", description: "Call-to-action type (staged creatives only)" },
761
- "lead-form": {
762
- type: "string",
763
- description: "Instant form id the button opens (staged creatives only) \u2014 `baker ads meta lead-forms` lists them"
764
- },
765
- ...fileArg("adCreative.update", "JSON file with fields to change (content only merges into a staged creative)")
766
- },
767
- run: async ({ args }) => {
768
- const accountId = await bareAccountId(args);
769
- const file = loadJsonFileArg(args.file);
770
- const payload = mergePayload(file, {
771
- name: args.name,
772
- status: upper(args.status),
773
- // A creative's content is immutable on Meta, so this only ever lands on a
774
- // creative still staged in this chat — which is exactly the fix path when
775
- // staging an ad refuses it for naming no instant form.
776
- content: creativeContentPatch(file, args)
777
- });
778
- if (payload.status === "DELETED") {
779
- failWriteValidation(
780
- "update does not delete \u2014 use `baker ads meta creatives delete <id>` if the user asked to delete it"
781
- );
782
- }
783
- await stageOp({
784
- kind: "adCreative.update",
785
- accountId,
786
- target: requireTarget(args, "creative"),
787
- payload
788
- });
789
- }
790
- });
791
- var adsCreateCommand = defineCommand({
792
- meta: {
793
- name: "create",
794
- description: `Stage a new ad linking an ad set to a creative. ${STAGED_NOTE}
795
- Example: baker ads meta ads create --name "Ad 1" --adset meta_temp_as01 --creative meta_temp_cr01`
796
- },
797
- args: {
798
- ...accountArgs,
799
- name: { type: "string", description: "Ad name" },
800
- adset: { type: "string", description: "Ad set id or meta_temp_* ref" },
801
- creative: { type: "string", description: "Creative id or meta_temp_* ref" },
802
- status: { type: "string", description: "ACTIVE|PAUSED (default PAUSED)" },
803
- "tracking-file": { type: "string", description: "JSON file with tracking_specs" },
804
- "conversion-domain": {
805
- type: "string",
806
- description: "The website domain conversions are counted on (example.com \u2014 no www., no https://). Meta fills it from the link when left out; set it when the site and the pixel's domain differ"
807
- },
808
- ...fileArg("ad.create", "JSON file with the full payload")
809
- },
810
- run: async ({ args }) => {
811
- const accountId = await bareAccountId(args);
812
- const tracking = args["tracking-file"] ? loadJsonFileArg(args["tracking-file"]).tracking_specs : void 0;
813
- const payload = mergePayload(loadJsonFileArg(args.file), {
814
- name: args.name,
815
- adset_id: args.adset,
816
- creative: args.creative ? { creative_id: String(args.creative) } : void 0,
817
- status: upper(args.status),
818
- tracking_specs: tracking,
819
- conversion_domain: args["conversion-domain"]
820
- });
821
- await stageOp({ kind: "ad.create", accountId, payload });
822
- }
823
- });
824
- var adsUpdateCommand = defineCommand({
825
- meta: {
826
- name: "update",
827
- description: `Stage changes to an ad (name/status, or swap its creative). ${STAGED_NOTE}
828
- Example: baker ads meta ads update 6123 --creative meta_temp_cr02`
829
- },
830
- args: {
831
- id: { type: "positional", description: "Ad id or meta_temp_* ref", required: true },
832
- ...accountArgs,
833
- name: { type: "string", description: "New name" },
834
- status: { type: "string", description: "ACTIVE|PAUSED|ARCHIVED" },
835
- creative: { type: "string", description: "New creative id or meta_temp_* ref" },
836
- ...fileArg("ad.update", "JSON file with fields to change")
837
- },
838
- run: async ({ args }) => {
839
- const accountId = await bareAccountId(args);
840
- const payload = mergePayload(loadJsonFileArg(args.file), {
841
- name: args.name,
842
- status: upper(args.status),
843
- creative: args.creative ? { creative_id: String(args.creative) } : void 0
844
- });
845
- refuseDeleteByUpdate(payload, "ads");
846
- await stageOp({
847
- kind: "ad.update",
848
- accountId,
849
- target: requireTarget(args, "ad"),
850
- payload
851
- });
852
- }
853
- });
854
- var adsRetagCommand = defineCommand({
855
- meta: {
856
- name: "retag",
857
- description: `Stage new URL tracking parameters on a LIVE ad \u2014 the fix for a wrong utm_medium, a missing ad id, or any tag already running. ${STAGED_NOTE}
858
- Start here when a report attributes paid traffic to the wrong channel: --set rewrites only the keys you name and leaves the rest of the string alone.
859
- Baker clones the ad's own creative behind the scenes, so every button, text variant and enhancement is carried across exactly as Meta holds them \u2014 nothing is retyped.
860
- Example: baker ads meta ads retag 120252158038400247 --set "utm_medium=paid-social&utm_placement={{placement}}"
861
- Example: baker ads meta ads retag 120252158038400247 --url-tags "utm_source={{site_source_name}}&utm_medium=paid-social&ad_id={{ad.id}}"`
862
- },
863
- args: {
864
- id: { type: "positional", description: "Ad id (a live ad \u2014 not a meta_temp_* ref)", required: true },
865
- ...accountArgs,
866
- "url-tags": { type: "string", description: "Replace the WHOLE tracking string" },
867
- set: {
868
- type: "string",
869
- description: 'Rewrite only these keys, keeping the rest: "utm_medium=paid-social&ad_id={{ad.id}}" (repeatable: --set a=1 --set b=2)'
870
- }
871
- },
872
- run: async ({ args, rawArgs }) => {
873
- const { apiPost } = await import("./client-45COYUUH.js");
874
- const { requireChatId } = await import("./env-2RHPS2VF.js");
875
- const { writeJsonEnvelope } = await import("./output-2MGOSPDE.js");
876
- const { handleMetaError } = await import("./shared-V5ZS25EO.js");
877
- try {
878
- const accountId = await bareAccountId(args);
879
- const urlTags = typeof args["url-tags"] === "string" ? args["url-tags"] : void 0;
880
- const setRaw = typeof args.set === "string" ? args.set : void 0;
881
- if (urlTags === void 0 === (setRaw === void 0)) {
882
- failWriteValidation("pass either --url-tags (the whole string) or --set (the keys to change), not both");
883
- }
884
- const response = await apiPost("/api/ads/meta/draft/retag", {
885
- chatId: requireChatId(),
886
- accountId,
887
- adId: requireTarget(args, "ad"),
888
- urlTags,
889
- set: setRaw === void 0 ? void 0 : retagSetPairs(rawArgs, setRaw)
890
- });
891
- writeJsonEnvelope(response);
892
- } catch (err) {
893
- handleMetaError(err);
894
- }
895
- }
896
- });
897
- function retagSetPairs(rawArgs, parsed) {
898
- return parseSetPairs(repeatedValues(rawArgs, "set", parsed).join("&"));
899
- }
900
- function parseSetPairs(raw) {
901
- const pairs = {};
902
- for (const part of raw.replace(/^[?&]+/, "").split("&")) {
903
- if (part.length === 0) continue;
904
- const eq = part.indexOf("=");
905
- if (eq <= 0) {
906
- failWriteValidation(`--set expects key=value pairs joined by & \u2014 could not read "${part}"`);
907
- }
908
- pairs[part.slice(0, eq)] = part.slice(eq + 1);
909
- }
910
- if (Object.keys(pairs).length === 0) {
911
- failWriteValidation("--set needs at least one key=value pair");
912
- }
913
- return pairs;
914
- }
915
- var audiencesCreateCommand = defineCommand({
916
- meta: {
917
- name: "create",
918
- description: `Stage a new custom audience. ${STAGED_NOTE}
919
- Inline customer list: --subtype CUSTOM --file with "members": [{"email","phone","country"}] (up to 2,000 people, hashed before storage, uploaded after creation at Publish).
920
- Customer list: --subtype CUSTOM --customer-file-source USER_PROVIDED_ONLY, then put people in it with \`audiences members add <ref> --file list.csv\` (hashed on this machine). --value-based for a list where each person carries a value (needs the account's value-based terms).
921
- Lookalike: --subtype LOOKALIKE --lookalike-of <seed audience> --ratio 0.02 --country ES (or --countries ES,PT; --starting-ratio 0.01 for the 1%\u20132% band). The seed needs 100+ people in those countries. Or seed it from the people who converted in live campaigns: --lookalike-of-conversions <campaign or ad set id,\u2026>.
922
- WEBSITE/ENGAGEMENT: the rule via --file. A rule carries its own window in retention_seconds, so --retention-days is refused next to one, and one audience covers one kind of event source (a Page and an Instagram profile are two audiences).
923
- Example: baker ads meta audiences create --name "Site visitors 30d" --subtype WEBSITE --file rule.json
924
- Example: baker ads meta audiences create --name "Customers" --subtype CUSTOM --customer-file-source USER_PROVIDED_ONLY`
925
- },
926
- args: {
927
- ...accountArgs,
928
- name: { type: "string", description: "Audience name" },
929
- subtype: { type: "string", description: "CUSTOM|WEBSITE|ENGAGEMENT|LOOKALIKE" },
930
- description: { type: "string", description: "Description" },
931
- "retention-days": {
932
- type: "string",
933
- description: "Retention window in days \u2014 customer-file audiences only; a rule carries its own retention_seconds"
934
- },
935
- "customer-file-source": {
936
- type: "string",
937
- description: "Customer list: where its people came from \u2014 USER_PROVIDED_ONLY (collected from customers directly) | PARTNER_PROVIDED_ONLY | BOTH_USER_AND_PARTNER_PROVIDED"
938
- },
939
- "value-based": {
940
- type: "boolean",
941
- description: "Customer list where each person carries a value (LOOKALIKE_VALUE column)"
942
- },
943
- "lookalike-of": {
944
- type: "string",
945
- description: "Lookalike: the seed audience id (a live audience \u2014 one this chat creates cannot be a seed yet)"
946
- },
947
- "lookalike-of-conversions": {
948
- type: "string",
949
- description: "Lookalike seeded from the people who converted in live campaigns or ad sets (ids, comma-separated or repeated) instead of an audience. Meta wants 100+ conversions in the lookalike's countries."
950
- },
951
- ratio: { type: "string", description: "Lookalike size: 0.01\u20130.20 of the country, in 0.01 steps" },
952
- "starting-ratio": {
953
- type: "string",
954
- description: "Lookalike band start, below --ratio (0.01 with --ratio 0.03 = the 1%\u20133% band)"
955
- },
956
- country: { type: "string", description: "Lookalike: one country (ES)" },
957
- countries: { type: "string", description: "Lookalike: several countries (ES,PT \u2014 comma-separated or repeated)" },
958
- "allow-international-seeds": {
959
- type: "boolean",
960
- description: "Lookalike: let Meta use seed people from other countries when the seed is thin in these"
961
- },
962
- ...fileArg("customAudience.create", "JSON (a path, or inline) with lookalike_spec / rule / members / full payload")
963
- },
964
- run: async ({ args, rawArgs }) => {
965
- const accountId = await bareAccountId(args);
966
- const file = loadJsonFileArg(args.file);
967
- const payload = mergePayload(file, {
968
- name: args.name,
969
- subtype: upper(args.subtype),
970
- description: args.description,
971
- retention_days: numberFlag(args["retention-days"], "--retention-days"),
972
- customer_file_source: upper(args["customer-file-source"]),
973
- is_value_based: args["value-based"] ? true : void 0,
974
- lookalike_spec: lookalikeSpecFromFlags(args, file.lookalike_spec, rawArgs)
975
- });
976
- await stageOp({ kind: "customAudience.create", accountId, payload });
977
- }
978
- });
979
- function lookalikeSpecFromFlags(args, fromFile, rawArgs) {
980
- const base = fromFile && typeof fromFile === "object" ? fromFile : {};
981
- const flags = {
982
- origin: typeof args["lookalike-of"] === "string" ? [{ id: args["lookalike-of"] }] : void 0,
983
- conversions_of: repeatedListFlag(rawArgs, "lookalike-of-conversions", args["lookalike-of-conversions"]),
984
- ratio: numberFlag(args.ratio, "--ratio"),
985
- starting_ratio: numberFlag(args["starting-ratio"], "--starting-ratio"),
986
- country: typeof args.country === "string" ? args.country.toUpperCase() : void 0,
987
- countries: repeatedListFlag(rawArgs, "countries", args.countries)?.map((code) => code.toUpperCase()),
988
- allow_international_seeds: args["allow-international-seeds"] ? true : void 0
989
- };
990
- const merged = mergePayload(base, flags);
991
- return Object.keys(merged).length > 0 ? merged : void 0;
992
- }
993
- var audiencesUpdateCommand = defineCommand({
994
- meta: {
995
- name: "update",
996
- description: `Stage changes to a custom audience: name, description, where a customer list came from, its opt-out link, or a website/engagement rule (--file {"rule": \u2026}). A customer list's retention and a lookalike's seed and size are fixed \u2014 a different one is a new audience. Delete with \`audiences delete\`. ${STAGED_NOTE}`
997
- },
998
- args: {
999
- id: { type: "positional", description: "Audience id or meta_temp_* ref", required: true },
1000
- ...accountArgs,
1001
- name: { type: "string", description: "New name" },
1002
- description: { type: "string", description: "New description" },
1003
- "customer-file-source": {
1004
- type: "string",
1005
- description: "USER_PROVIDED_ONLY | PARTNER_PROVIDED_ONLY | BOTH_USER_AND_PARTNER_PROVIDED"
1006
- },
1007
- "opt-out-link": { type: "string", description: "https link where people can opt out of this audience" },
1008
- ...fileArg("customAudience.update", "JSON file with fields to change (rule for a website/engagement audience)")
1009
- },
1010
- run: async ({ args }) => {
1011
- const accountId = await bareAccountId(args);
1012
- const payload = mergePayload(loadJsonFileArg(args.file), {
1013
- name: args.name,
1014
- description: args.description,
1015
- customer_file_source: upper(args["customer-file-source"]),
1016
- opt_out_link: args["opt-out-link"]
1017
- });
1018
- if (payload.status === "DELETED") {
1019
- failWriteValidation(
1020
- "update does not delete \u2014 use `baker ads meta audiences delete <id>` if the user asked to delete it"
1021
- );
1022
- }
1023
- await stageOp({
1024
- kind: "customAudience.update",
1025
- accountId,
1026
- target: requireTarget(args, "audience"),
1027
- payload
1028
- });
1029
- }
1030
- });
1031
- var mediaUploadCommand = defineCommand({
1032
- meta: {
1033
- name: "upload",
1034
- description: `Stage a Baker library image/video upload to Meta. Publishes the hash/id a creative references by --image-ref/--video-ref. ${STAGED_NOTE}
1035
- Example: baker ads meta media upload --kind image --image-id <bakerImageId>`
1036
- },
1037
- args: {
1038
- ...accountArgs,
1039
- kind: { type: "string", description: "image|video" },
1040
- "image-id": { type: "string", description: "Baker library image id (for --kind image)" },
1041
- "video-id": { type: "string", description: "Baker library video id (for --kind video)" },
1042
- name: { type: "string", description: "Display name / filename hint" }
1043
- },
1044
- run: async ({ args }) => {
1045
- const accountId = await bareAccountId(args);
1046
- const kind = String(args.kind ?? "").toLowerCase();
1047
- if (kind !== "image" && kind !== "video") {
1048
- failWriteValidation("--kind must be image or video");
1049
- }
1050
- await stageOp({
1051
- kind: "media.upload",
1052
- accountId,
1053
- payload: { kind, bakerImageId: args["image-id"], bakerVideoId: args["video-id"], name: args.name }
1054
- });
1055
- }
1056
- });
1057
- var STATUS_BY_COMMAND = { pause: "PAUSED", resume: "ACTIVE", archive: "ARCHIVED", delete: "DELETED" };
1058
- var STATUS_COMMAND_NOTE = {
1059
- archive: "Archived stays readable in Ads Manager and can be found with --effective-status ARCHIVED.",
1060
- delete: "Deleting is permanent and cannot be undone \u2014 Meta removes it and everything under it. Prefer pause or archive unless the user asked to delete."
1061
- };
1062
- function statusCommand(name, kind, label) {
1063
- const status = STATUS_BY_COMMAND[name];
1064
- const note = STATUS_COMMAND_NOTE[name];
1065
- return defineCommand({
1066
- meta: { name, description: `Stage ${name} for a ${label}. ${note ? `${note} ` : ""}${STAGED_NOTE}` },
1067
- args: { id: { type: "positional", description: `${label} id`, required: true }, ...accountArgs },
1068
- run: async ({ args }) => {
1069
- const accountId = await bareAccountId(args);
1070
- await stageStatusChange({
1071
- kind,
1072
- accountId,
1073
- target: requireTarget(args, label),
1074
- status
1075
- });
1076
- }
1077
- });
1078
- }
1079
- function duplicateCommand(entity, label) {
1080
- return defineCommand({
1081
- meta: {
1082
- name: "duplicate",
1083
- description: `Stage a paused copy of an existing ${label} (reconstructed from its live snapshot). ${STAGED_NOTE}
1084
- --replace also stages a pause of the original, gated on the copy publishing.`
1085
- },
1086
- args: {
1087
- id: { type: "positional", description: `Source ${label} id`, required: true },
1088
- ...accountArgs,
1089
- name: { type: "string", description: "Override the copy's name" },
1090
- replace: { type: "boolean", description: "Pause the original once the copy publishes" }
1091
- },
1092
- run: async ({ args }) => {
1093
- const { apiPost } = await import("./client-45COYUUH.js");
1094
- const { requireChatId } = await import("./env-2RHPS2VF.js");
1095
- const { writeJsonEnvelope } = await import("./output-2MGOSPDE.js");
1096
- const { handleMetaError } = await import("./shared-V5ZS25EO.js");
1097
- try {
1098
- const accountId = await bareAccountId(args);
1099
- const chatId = requireChatId();
1100
- const response = await apiPost("/api/ads/meta/draft/duplicate", {
1101
- chatId,
1102
- accountId,
1103
- entity,
1104
- sourceId: requireTarget(args, label),
1105
- overrides: args.name ? { name: args.name } : void 0,
1106
- replace: Boolean(args.replace)
1107
- });
1108
- writeJsonEnvelope(response);
1109
- } catch (err) {
1110
- handleMetaError(err);
1111
- }
1112
- }
1113
- });
1114
- }
1115
- var campaignsPauseCommand = statusCommand("pause", "campaign.update", "campaign");
1116
- var campaignsResumeCommand = statusCommand("resume", "campaign.update", "campaign");
1117
- var campaignsArchiveCommand = statusCommand("archive", "campaign.update", "campaign");
1118
- var campaignsDeleteCommand = statusCommand("delete", "campaign.update", "campaign");
1119
- var campaignsDuplicateCommand = duplicateCommand("campaign", "campaign");
1120
- var adSetsPauseCommand = statusCommand("pause", "adSet.update", "ad set");
1121
- var adSetsResumeCommand = statusCommand("resume", "adSet.update", "ad set");
1122
- var adSetsArchiveCommand = statusCommand("archive", "adSet.update", "ad set");
1123
- var adSetsDeleteCommand = statusCommand("delete", "adSet.update", "ad set");
1124
- var adSetsDuplicateCommand = duplicateCommand("adSet", "ad set");
1125
- var adsPauseCommand = statusCommand("pause", "ad.update", "ad");
1126
- var adsResumeCommand = statusCommand("resume", "ad.update", "ad");
1127
- var adsArchiveCommand = statusCommand("archive", "ad.update", "ad");
1128
- var adsDeleteCommand = statusCommand("delete", "ad.update", "ad");
1129
- var adsDuplicateCommand = duplicateCommand("ad", "ad");
1130
- export {
1131
- adCreativesCreateCommand,
1132
- adCreativesUpdateCommand,
1133
- adSetsArchiveCommand,
1134
- adSetsCreateCommand,
1135
- adSetsDeleteCommand,
1136
- adSetsDuplicateCommand,
1137
- adSetsPauseCommand,
1138
- adSetsResumeCommand,
1139
- adSetsUpdateCommand,
1140
- adsArchiveCommand,
1141
- adsCreateCommand,
1142
- adsDeleteCommand,
1143
- adsDuplicateCommand,
1144
- adsPauseCommand,
1145
- adsResumeCommand,
1146
- adsRetagCommand,
1147
- adsUpdateCommand,
1148
- audiencesCreateCommand,
1149
- audiencesUpdateCommand,
1150
- campaignsArchiveCommand,
1151
- campaignsCreateCommand,
1152
- campaignsDeleteCommand,
1153
- campaignsDuplicateCommand,
1154
- campaignsPauseCommand,
1155
- campaignsResumeCommand,
1156
- campaignsUpdateCommand,
1157
- collectionThumbnailsFromFlags,
1158
- creativeContentPatch,
1159
- creativeCta,
1160
- ctaPatchFromFlags,
1161
- customConversionRuleFromFlags,
1162
- customConversionsCreateCommand,
1163
- lookalikeSpecFromFlags,
1164
- mediaUploadCommand,
1165
- partnerFromFlags,
1166
- retagSetPairs,
1167
- targetingFromFlags
1168
- };
1169
- //# sourceMappingURL=write-commands-5LEEPKA7.js.map