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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (991) hide show
  1. package/README.md +170 -8
  2. package/dist/account-3H6BZO5H.js +80 -0
  3. package/dist/account-IKFDY52P.js +138 -0
  4. package/dist/account-IKFDY52P.js.map +1 -0
  5. package/dist/account-KNRDOUJP.js +79 -0
  6. package/dist/account-assets-LKZVWZAR.js +289 -0
  7. package/dist/account-assets-LKZVWZAR.js.map +1 -0
  8. package/dist/account-level-UJOZDVXY.js +608 -0
  9. package/dist/account-level-UJOZDVXY.js.map +1 -0
  10. package/dist/account-reads-GA6FVKLE.js +218 -0
  11. package/dist/account-writes-AE5IJGGW.js +66 -0
  12. package/dist/accounts-K4INATCW.js +75 -0
  13. package/dist/accounts-RTN5ZGTU.js +611 -0
  14. package/dist/accounts-RW6KXBOQ.js +77 -0
  15. package/dist/actions-HNLISA7T.js +55 -0
  16. package/dist/activecampaign-I5CILZPU.js +935 -0
  17. package/dist/activities-T253KK4Q.js +74 -0
  18. package/dist/ad-group-writes-VRSBI2Z2.js +170 -0
  19. package/dist/ad-groups-IEBVEAMS.js +68 -0
  20. package/dist/ad-writes-ALV4KFPZ.js +174 -0
  21. package/dist/add-6WKPFMLG.js +302 -0
  22. package/dist/add-XF5COUAS.js +104 -0
  23. package/dist/ads-CQZHD7FC.js +77 -0
  24. package/dist/ads-QIKZ6O2N.js +40 -0
  25. package/dist/ads-ZEY72UBN.js +114 -0
  26. package/dist/ads-ZEY72UBN.js.map +1 -0
  27. package/dist/adsets-5H3MOT3D.js +177 -0
  28. package/dist/adsets-5H3MOT3D.js.map +1 -0
  29. package/dist/advertisers-6NUM2Q3A.js +120 -0
  30. package/dist/analytics-ALOZ7ZZ4.js +1976 -0
  31. package/dist/analytics-VLHE5A2M.js +433 -0
  32. package/dist/animate-SVEPM267.js +480 -0
  33. package/dist/asset-writes-L5TMKIZC.js +47 -0
  34. package/dist/assign-6HI6TNLP.js +77 -0
  35. package/dist/audience-size-25LP2OBF.js +73 -0
  36. package/dist/audience-writes-X52VG35Y.js +324 -0
  37. package/dist/audience-writes-X52VG35Y.js.map +1 -0
  38. package/dist/audiences-AAZH56WD.js +268 -0
  39. package/dist/audiences-X3RLGOVM.js +84 -0
  40. package/dist/audiences-X3RLGOVM.js.map +1 -0
  41. package/dist/audit-YY6X2MPA.js +151 -0
  42. package/dist/autocomplete-SAWJK4NF.js +111 -0
  43. package/dist/avatars-YSFFRHDK.js +38 -0
  44. package/dist/bid-pricing-HZ74SLEB.js +100 -0
  45. package/dist/brand-T3OACVQX.js +22 -0
  46. package/dist/brief-7S6XCJIA.js +538 -0
  47. package/dist/businesses-H3HIDQX6.js +53 -0
  48. package/dist/campaign-groups-YJK767AP.js +95 -0
  49. package/dist/campaign-writes-7ZF57KLH.js +165 -0
  50. package/dist/campaign-writes-7ZF57KLH.js.map +1 -0
  51. package/dist/campaign-writes-U5PUVSMT.js +170 -0
  52. package/dist/campaigns-AV6G3AUU.js +127 -0
  53. package/dist/campaigns-AV6G3AUU.js.map +1 -0
  54. package/dist/campaigns-GALDR5KK.js +109 -0
  55. package/dist/campaigns-JEIKY2M4.js +76 -0
  56. package/dist/campaigns-VTRMKSAT.js +107 -0
  57. package/dist/canvas-SVJEQO4V.js +46 -0
  58. package/dist/capabilities-2KT6TCGZ.js +144 -0
  59. package/dist/catalog-S32MX453.js +65 -0
  60. package/dist/catalogs-OCVXZLIF.js +128 -0
  61. package/dist/catalogs-RXJTZTVX.js +778 -0
  62. package/dist/catalogs-RXJTZTVX.js.map +1 -0
  63. package/dist/changes-5TOYRKZR.js +135 -0
  64. package/dist/chatgpt-QVF2FD3E.js +47 -0
  65. package/dist/chats-QG72JB6Y.js +276 -0
  66. package/dist/chats-QG72JB6Y.js.map +1 -0
  67. package/dist/check-SLNHVYGS.js +104 -0
  68. package/dist/chunk-2C7AHPM4.js +191 -0
  69. package/dist/chunk-2C7AHPM4.js.map +1 -0
  70. package/dist/chunk-2LI6746F.js +103 -0
  71. package/dist/chunk-2PWNIEW4.js +197 -0
  72. package/dist/chunk-2WZI36D3.js +317 -0
  73. package/dist/chunk-3W6G6ARX.js +122 -0
  74. package/dist/chunk-45UK4KYJ.js +1606 -0
  75. package/dist/chunk-46GWHUKN.js +225 -0
  76. package/dist/chunk-4AMIHNNP.js +1919 -0
  77. package/dist/chunk-4KJMLYCD.js +224 -0
  78. package/dist/chunk-5C35OW7L.js +205 -0
  79. package/dist/chunk-5C35OW7L.js.map +1 -0
  80. package/dist/chunk-5GQCN2QZ.js +391 -0
  81. package/dist/chunk-5GQCN2QZ.js.map +1 -0
  82. package/dist/chunk-5HJRZFMW.js +207 -0
  83. package/dist/chunk-65Y3RCWP.js +68 -0
  84. package/dist/chunk-65Y3RCWP.js.map +1 -0
  85. package/dist/chunk-66QHX566.js +6306 -0
  86. package/dist/chunk-6NCJGU6I.js +191 -0
  87. package/dist/chunk-6WCAV27H.js +494 -0
  88. package/dist/chunk-A4MVVPJ2.js +4204 -0
  89. package/dist/chunk-A4MVVPJ2.js.map +1 -0
  90. package/dist/chunk-AO45BX6Q.js +66 -0
  91. package/dist/chunk-AQM4JH62.js +274 -0
  92. package/dist/chunk-AQM4JH62.js.map +1 -0
  93. package/dist/chunk-BDYLILMW.js +150 -0
  94. package/dist/chunk-BL2MX6CR.js +249 -0
  95. package/dist/chunk-BOPC3D6I.js +604 -0
  96. package/dist/chunk-BTY4LZBG.js +46 -0
  97. package/dist/chunk-C7NWUCLQ.js +64 -0
  98. package/dist/chunk-CP4P6YKM.js +287 -0
  99. package/dist/chunk-CP4P6YKM.js.map +1 -0
  100. package/dist/chunk-D4CKCNGW.js +547 -0
  101. package/dist/chunk-D5CUAOQX.js +297 -0
  102. package/dist/chunk-D5UXWKLQ.js +903 -0
  103. package/dist/chunk-DCBZ5CHZ.js +139 -0
  104. package/dist/chunk-E2RFM6R2.js +1518 -0
  105. package/dist/chunk-EOY6BK4C.js +148 -0
  106. package/dist/chunk-FA4YZFRV.js +392 -0
  107. package/dist/chunk-FVHJCERJ.js +942 -0
  108. package/dist/chunk-G2LGMWNG.js +627 -0
  109. package/dist/chunk-G4STCTY3.js +399 -0
  110. package/dist/chunk-G6XKD7QE.js +77 -0
  111. package/dist/chunk-GSZZLW5Q.js +831 -0
  112. package/dist/chunk-HLVRHBKL.js +1078 -0
  113. package/dist/chunk-HLVRHBKL.js.map +1 -0
  114. package/dist/chunk-HSPMBLKE.js +363 -0
  115. package/dist/chunk-IG627WWY.js +23992 -0
  116. package/dist/chunk-IG627WWY.js.map +1 -0
  117. package/dist/chunk-IJ22WP3G.js +275 -0
  118. package/dist/chunk-IKCP5NCE.js +843 -0
  119. package/dist/chunk-ILSKYRDR.js +169 -0
  120. package/dist/chunk-JAC6JVCI.js +26 -0
  121. package/dist/chunk-JKJQWRLO.js +91 -0
  122. package/dist/chunk-JQH5VG6F.js +5368 -0
  123. package/dist/chunk-JQU2LUZG.js +57 -0
  124. package/dist/chunk-JVH5A3XC.js +8914 -0
  125. package/dist/chunk-JYALBYN7.js +131 -0
  126. package/dist/chunk-KOXDXSKN.js +8939 -0
  127. package/dist/chunk-LOMH4TTC.js +1079 -0
  128. package/dist/chunk-LXQB4ZGE.js +142 -0
  129. package/dist/chunk-M6PN3VH6.js +19 -0
  130. package/dist/chunk-M7IJU77B.js +665 -0
  131. package/dist/chunk-MCJ5I5LR.js +3187 -0
  132. package/dist/chunk-MCJ5I5LR.js.map +1 -0
  133. package/dist/chunk-MVB32GPI.js +592 -0
  134. package/dist/chunk-MXH35PJ5.js +51 -0
  135. package/dist/chunk-MZPS46OR.js +76 -0
  136. package/dist/chunk-NEIUVSDK.js +206 -0
  137. package/dist/chunk-NEOUY3Q7.js +285 -0
  138. package/dist/chunk-NXZCCGES.js +159 -0
  139. package/dist/chunk-P3W6SRSQ.js +455 -0
  140. package/dist/chunk-P5FRWPG7.js +160 -0
  141. package/dist/chunk-PA4W7BCQ.js +23 -0
  142. package/dist/chunk-PQJXIY64.js +97 -0
  143. package/dist/chunk-PTGYM4J6.js +89 -0
  144. package/dist/chunk-QNLJ3GNZ.js +433 -0
  145. package/dist/chunk-QTOZ32SU.js +163 -0
  146. package/dist/chunk-QTOZ32SU.js.map +1 -0
  147. package/dist/chunk-SISA4HQR.js +61 -0
  148. package/dist/chunk-SVAB6KV5.js +219 -0
  149. package/dist/chunk-SVAB6KV5.js.map +1 -0
  150. package/dist/chunk-SVM3DGAQ.js +228 -0
  151. package/dist/chunk-TP7HKSBX.js +172 -0
  152. package/dist/chunk-TRPJJMCS.js +346 -0
  153. package/dist/chunk-UNX6BS4U.js +3868 -0
  154. package/dist/chunk-VD73V44J.js +344 -0
  155. package/dist/chunk-VL65H6YM.js +846 -0
  156. package/dist/chunk-WTJSMYY2.js +4249 -0
  157. package/dist/chunk-WTJSMYY2.js.map +1 -0
  158. package/dist/chunk-X7F4Z6UM.js +156 -0
  159. package/dist/chunk-YW7VMU5L.js +654 -0
  160. package/dist/chunk-YW7VMU5L.js.map +1 -0
  161. package/dist/chunk-ZCQVKDHV.js +98 -0
  162. package/dist/chunk-ZJSGGJ5R.js +167 -0
  163. package/dist/claim-SLGYOOWD.js +197 -0
  164. package/dist/cli.js +36 -36
  165. package/dist/companies-IVMH6YII.js +195 -0
  166. package/dist/complete-45L2FI2X.js +81 -0
  167. package/dist/connect-S54TJ6OV.js +42 -0
  168. package/dist/conversation-RIOL3OJ7.js +93 -0
  169. package/dist/conversion-report-REOHVLCI.js +125 -0
  170. package/dist/conversion-upload-command-W4GELHIQ.js +438 -0
  171. package/dist/conversion-writes-ECZBVY7D.js +120 -0
  172. package/dist/conversions-5QCSCRLI.js +76 -0
  173. package/dist/conversions-TKIXNSYR.js +135 -0
  174. package/dist/copy-writes-D2RTHAL6.js +167 -0
  175. package/dist/copy-writes-D2RTHAL6.js.map +1 -0
  176. package/dist/create-7JY2PTIZ.js +132 -0
  177. package/dist/create-ACLCRXQP.js +59 -0
  178. package/dist/create-KYBMFD32.js +207 -0
  179. package/dist/create-VAPJ52GJ.js +235 -0
  180. package/dist/creatives-5I3G5YP3.js +182 -0
  181. package/dist/creatives-MZ6ICNSY.js +88 -0
  182. package/dist/creatives-MZ6ICNSY.js.map +1 -0
  183. package/dist/creatives-PCAGWPW3.js +58 -0
  184. package/dist/credentials-YTQ6BHWV.js +287 -0
  185. package/dist/critique-BHYJYZDV.js +1458 -0
  186. package/dist/critique-NRHUPIWF.js +227 -0
  187. package/dist/crm-IKTWHWEB.js +318 -0
  188. package/dist/crm-N7K57LZJ.js +224 -0
  189. package/dist/currency-PW7HIBZ6.js +88 -0
  190. package/dist/custom-conversions-FIP6ZS34.js +127 -0
  191. package/dist/custom-conversions-FIP6ZS34.js.map +1 -0
  192. package/dist/customers-NLU7NYDC.js +56 -0
  193. package/dist/delete-26J3X3ZH.js +64 -0
  194. package/dist/delete-A4F5Z54J.js +66 -0
  195. package/dist/delete-EVXOFT2H.js +54 -0
  196. package/dist/demographics-VZKFMM4X.js +138 -0
  197. package/dist/discard-ULRVUJDV.js +66 -0
  198. package/dist/discover-PVXWX2WL.js +172 -0
  199. package/dist/domain-L4WCCX7R.js +98 -0
  200. package/dist/draft-34CGWUVA.js +281 -0
  201. package/dist/draft-4P3YO67N.js +332 -0
  202. package/dist/draft-4P3YO67N.js.map +1 -0
  203. package/dist/draft-57OQKHZI.js +306 -0
  204. package/dist/draft-L45PGCYZ.js +237 -0
  205. package/dist/draft-L45PGCYZ.js.map +1 -0
  206. package/dist/draft-O4S5RKWK.js +217 -0
  207. package/dist/draft-PAYD6GIM.js +307 -0
  208. package/dist/engine/index.js +9 -9
  209. package/dist/experiment-7N4QFRWV.js +1397 -0
  210. package/dist/facets-EHQKGGJ2.js +114 -0
  211. package/dist/feedback-O3H42V4I.js +106 -0
  212. package/dist/feedback-record-FAPN2GBS.js +260 -0
  213. package/dist/fetch-ETKT2RBC.js +176 -0
  214. package/dist/find-FSQAEGGF.js +134 -0
  215. package/dist/fit-UJQ47C4A.js +62 -0
  216. package/dist/flows-T22B77J3.js +247 -0
  217. package/dist/fonts-7VWBQPJF.js +36 -0
  218. package/dist/forecast-HB3RDBQN.js +168 -0
  219. package/dist/forecast-OI7YWZ6F.js +118 -0
  220. package/dist/funnel-7OA33VRP.js +394 -0
  221. package/dist/ga4-LPDIBNYP.js +55 -0
  222. package/dist/generate-OMXBFGGR.js +263 -0
  223. package/dist/get-2RSN4N3J.js +56 -0
  224. package/dist/get-6N7QJMIP.js +79 -0
  225. package/dist/google-5ESVO76E.js +136 -0
  226. package/dist/google-6JZBJ2ZQ.js +3265 -0
  227. package/dist/google-ads-G7REKD4A.js +195 -0
  228. package/dist/gsc-FIZTQX3N.js +30 -0
  229. package/dist/history-QKDYBSYM.js +67 -0
  230. package/dist/history-YMK2JNZU.js +133 -0
  231. package/dist/hubspot-BUFS7S33.js +779 -0
  232. package/dist/icon-CSVAZ7NE.js +137 -0
  233. package/dist/ideas-JQT422P7.js +40 -0
  234. package/dist/images-WBNWK2ZH.js +92 -0
  235. package/dist/ingest-RQUJGS7K.js +107 -0
  236. package/dist/ingest-XLTRLCDV.js +23 -0
  237. package/dist/insights-SQLE5NOJ.js +122 -0
  238. package/dist/insights-YWVJMATY.js +424 -0
  239. package/dist/insights-YWVJMATY.js.map +1 -0
  240. package/dist/inspect-KFVAMD4N.js +189 -0
  241. package/dist/inspiration-IX5N724J.js +53 -0
  242. package/dist/instant-experiences-NQ2GWIWL.js +257 -0
  243. package/dist/instant-experiences-NQ2GWIWL.js.map +1 -0
  244. package/dist/intent-4KJGYYHL.js +95 -0
  245. package/dist/keyword-gap-U64KXDR4.js +130 -0
  246. package/dist/keyword-metrics-WYF3QMCW.js +197 -0
  247. package/dist/keywords-for-site-G5L5EP3T.js +128 -0
  248. package/dist/landing-Y6QCTXCZ.js +28 -0
  249. package/dist/languages-7IPVGGW5.js +40 -0
  250. package/dist/leads-4SJ4NJOI.js +90 -0
  251. package/dist/leads-THI37ZMD.js +537 -0
  252. package/dist/leads-THI37ZMD.js.map +1 -0
  253. package/dist/learn-3BDZUWDT.js +204 -0
  254. package/dist/line-item-writes-YXKYR25W.js +208 -0
  255. package/dist/line-items-CKUD2UU4.js +103 -0
  256. package/dist/link-VBYFI7AM.js +64 -0
  257. package/dist/linkedin-UGMAFSGO.js +1057 -0
  258. package/dist/list-6ZNZGRRK.js +151 -0
  259. package/dist/list-ENYDGT3F.js +64 -0
  260. package/dist/list-VSUF2IWT.js +303 -0
  261. package/dist/locations-HM56X2MK.js +67 -0
  262. package/dist/locations-HM56X2MK.js.map +1 -0
  263. package/dist/locations-QJBYWRCN.js +40 -0
  264. package/dist/log-AACKGBDW.js +92 -0
  265. package/dist/logo-VHXH4J6A.js +18 -0
  266. package/dist/make-W2PYZXYF.js +1353 -0
  267. package/dist/map-63CQHWPI.js +433 -0
  268. package/dist/mcp-RKAXC6IP.js +714 -0
  269. package/dist/media-H6B7VDON.js +18 -0
  270. package/dist/media-H6B7VDON.js.map +1 -0
  271. package/dist/media-sources-EZKAJNVD.js +32 -0
  272. package/dist/members-SELIA674.js +44 -0
  273. package/dist/meta-YHDTGJQ6.js +122 -0
  274. package/dist/meta-YHDTGJQ6.js.map +1 -0
  275. package/dist/metrics-V6SKOVNH.js +152 -0
  276. package/dist/models-2XRYXSRA.js +155 -0
  277. package/dist/normalize-VAZPTBDX.js +141 -0
  278. package/dist/options-NSCZSQ5P.js +122 -0
  279. package/dist/organization-SHREKDST.js +881 -0
  280. package/dist/organization-SHREKDST.js.map +1 -0
  281. package/dist/page-photos-CXRG4AXV.js +115 -0
  282. package/dist/page-photos-CXRG4AXV.js.map +1 -0
  283. package/dist/pages-PTWRXAZT.js +66 -0
  284. package/dist/performance-K7E5KAZW.js +24 -0
  285. package/dist/pixels-MYT3TCHZ.js +60 -0
  286. package/dist/pixels-ZZCQUS3J.js +108 -0
  287. package/dist/preview-XOXAAPMQ.js +215 -0
  288. package/dist/preview-XOXAAPMQ.js.map +1 -0
  289. package/dist/promoted-tweet-writes-PKEO6WUK.js +180 -0
  290. package/dist/promoted-tweets-7MXVZRBI.js +119 -0
  291. package/dist/publish-MPMGRV72.js +341 -0
  292. package/dist/query-UD4OIZ3A.js +61 -0
  293. package/dist/reddit-XIHRI3CN.js +26 -0
  294. package/dist/refresh-A27N75NH.js +94 -0
  295. package/dist/release-UKRB5IUN.js +60 -0
  296. package/dist/relevant-pages-VXSHEOU2.js +99 -0
  297. package/dist/remove-AFNFVPZY.js +50 -0
  298. package/dist/reopen-M5HE6J3G.js +63 -0
  299. package/dist/rerun-5THJLQQJ.js +90 -0
  300. package/dist/research-JHDWWFL7.js +62 -0
  301. package/dist/research-U7RQXMYH.js +262 -0
  302. package/dist/reset-4CCWB2RT.js +54 -0
  303. package/dist/reset-J3KCWFMZ.js +54 -0
  304. package/dist/resolve-HEK27ANI.js +121 -0
  305. package/dist/retry-HPZIUG2S.js +62 -0
  306. package/dist/retry-VVI6N6UR.js +60 -0
  307. package/dist/rule-writes-6ZCAJDYZ.js +522 -0
  308. package/dist/rule-writes-6ZCAJDYZ.js.map +1 -0
  309. package/dist/rules-BMYOY2BM.js +216 -0
  310. package/dist/rules-BMYOY2BM.js.map +1 -0
  311. package/dist/rules-YLLFDZEM.js +96 -0
  312. package/dist/rules-add-U2GU4AGP.js +462 -0
  313. package/dist/run-M7ZDE6IA.js +66 -0
  314. package/dist/run-V5YQB6TH.js +65 -0
  315. package/dist/scaffold-ad-H4GJOKAW.js +1511 -0
  316. package/dist/scaffold-static-ad-2YIFHCTL.js +1005 -0
  317. package/dist/scaffold-video-3EJLKR2O.js +883 -0
  318. package/dist/schedule-QMOKWTJ3.js +61 -0
  319. package/dist/scheduled-agents-FCQHQ6KR.js +50 -0
  320. package/dist/schema-THFLCMBN.js +132 -0
  321. package/dist/schema-XKEEAUXP.js +69 -0
  322. package/dist/search-XIUYSWO6.js +174 -0
  323. package/dist/select-I22NPSIW.js +101 -0
  324. package/dist/set-prompt-S75OMQ7L.js +193 -0
  325. package/dist/setup-links-QVI6NAOK.js +141 -0
  326. package/dist/shared-3IBNDEFL.js +31 -0
  327. package/dist/site-PZPJY33N.js +177 -0
  328. package/dist/sources-ER7ANNG3.js +454 -0
  329. package/dist/sources-VA23PDND.js +30 -0
  330. package/dist/stale-MHTU2NQJ.js +71 -0
  331. package/dist/stats-ZAGJH4AD.js +34 -0
  332. package/dist/status-ABMJBCPJ.js +62 -0
  333. package/dist/stock-6SHHLSKG.js +179 -0
  334. package/dist/studies-4NIV4D5Y.js +249 -0
  335. package/dist/studies-4NIV4D5Y.js.map +1 -0
  336. package/dist/studio-ZLCGXFAN.js +49 -0
  337. package/dist/study-writes-L2AA2PGL.js +467 -0
  338. package/dist/study-writes-L2AA2PGL.js.map +1 -0
  339. package/dist/sync-QDD3MRJ6.js +54 -0
  340. package/dist/sync-definition-2EBSQA6A.js +64 -0
  341. package/dist/tag-manager-3CJ66GKJ.js +43 -0
  342. package/dist/tags-5JYOEYIT.js +20 -0
  343. package/dist/tags-B473RWAA.js +224 -0
  344. package/dist/tags-EWHPUM2V.js +20 -0
  345. package/dist/tags-KBCX6BDU.js +26 -0
  346. package/dist/tags-PEWN6GNZ.js +20 -0
  347. package/dist/targeting-LNDQV4EK.js +759 -0
  348. package/dist/targeting-LNDQV4EK.js.map +1 -0
  349. package/dist/targeting-criteria-EU65WUUF.js +113 -0
  350. package/dist/targets-KVXS5QKM.js +103 -0
  351. package/dist/testimonials-GR6TIS5S.js +32 -0
  352. package/dist/themes-JWWTOR3I.js +94 -0
  353. package/dist/top-companies-OOX3DITI.js +108 -0
  354. package/dist/translate-GEFUP6KQ.js +604 -0
  355. package/dist/triggers-OX2GKG4Y.js +142 -0
  356. package/dist/unlink-3USEPJSA.js +67 -0
  357. package/dist/unstage-VSCNPTAC.js +85 -0
  358. package/dist/update-6JKTH65B.js +152 -0
  359. package/dist/update-FG4ELXYJ.js +98 -0
  360. package/dist/update-GZFKHA3A.js +188 -0
  361. package/dist/update-HZHG67N6.js +63 -0
  362. package/dist/upload-BKCQ6FRW.js +126 -0
  363. package/dist/url-options-HCVRPZYU.js +130 -0
  364. package/dist/url-params-UN4DRN2H.js +98 -0
  365. package/dist/validate-NOWIOAHE.js +117 -0
  366. package/dist/videos-XMTDEHEJ.js +39 -0
  367. package/dist/viewer-check-U4XZMMS7.js +80 -0
  368. package/dist/viewer-check-U4XZMMS7.js.map +1 -0
  369. package/dist/web-UGU7YMII.js +140 -0
  370. package/dist/winning-ads-QOAYIR5U.js +84 -0
  371. package/dist/write-commands-6VR2UD3T.js +1024 -0
  372. package/dist/write-commands-PEJBTME6.js +1165 -0
  373. package/dist/write-commands-PEJBTME6.js.map +1 -0
  374. package/dist/x-VCSMV7T5.js +47 -0
  375. package/package.json +1 -1
  376. package/dist/account-7LUQWY6Q.js +0 -49
  377. package/dist/account-7LUQWY6Q.js.map +0 -1
  378. package/dist/account-ELL7ZZLM.js +0 -80
  379. package/dist/account-YVQGH2GB.js +0 -79
  380. package/dist/account-reads-5B4FFOZU.js +0 -218
  381. package/dist/account-writes-CEPERFD6.js +0 -66
  382. package/dist/accounts-6WNFCGUW.js +0 -611
  383. package/dist/accounts-UA2ZWRN4.js +0 -75
  384. package/dist/accounts-ZIE7J6RR.js +0 -77
  385. package/dist/actions-QZQTB3KR.js +0 -55
  386. package/dist/activecampaign-LIXWDX74.js +0 -935
  387. package/dist/activities-IQPJPP4B.js +0 -74
  388. package/dist/ad-group-writes-XGSCEQTW.js +0 -170
  389. package/dist/ad-groups-GKOLDGET.js +0 -68
  390. package/dist/ad-writes-VVD36JKH.js +0 -174
  391. package/dist/add-HQFI5UVS.js +0 -302
  392. package/dist/add-JWJP4CQY.js +0 -104
  393. package/dist/ads-EKZVHKPN.js +0 -77
  394. package/dist/ads-F365TPXO.js +0 -40
  395. package/dist/ads-HXX2IAFF.js +0 -113
  396. package/dist/ads-HXX2IAFF.js.map +0 -1
  397. package/dist/adsets-LPN6WFGF.js +0 -176
  398. package/dist/adsets-LPN6WFGF.js.map +0 -1
  399. package/dist/advertisers-TPIS4R73.js +0 -120
  400. package/dist/analytics-AFW7ESJW.js +0 -1976
  401. package/dist/analytics-QG7TBGMC.js +0 -433
  402. package/dist/animate-G4P3OEJE.js +0 -480
  403. package/dist/assign-VKINQVCJ.js +0 -77
  404. package/dist/audience-size-6ZEWCPX6.js +0 -73
  405. package/dist/audiences-BU4JZJT7.js +0 -268
  406. package/dist/audiences-XEZHACKH.js +0 -78
  407. package/dist/audiences-XEZHACKH.js.map +0 -1
  408. package/dist/audit-5US7TTUF.js +0 -151
  409. package/dist/autocomplete-XBVLHJ4R.js +0 -111
  410. package/dist/avatars-5IBVOF63.js +0 -38
  411. package/dist/bid-pricing-EFYUHTWP.js +0 -100
  412. package/dist/brand-Z5KRGJX4.js +0 -22
  413. package/dist/brief-DGAZ6NJG.js +0 -538
  414. package/dist/businesses-PRRYPR7H.js +0 -53
  415. package/dist/campaign-groups-AOMTKPUY.js +0 -95
  416. package/dist/campaign-writes-NSEJCINS.js +0 -170
  417. package/dist/campaign-writes-NXVLFVZ6.js +0 -165
  418. package/dist/campaign-writes-NXVLFVZ6.js.map +0 -1
  419. package/dist/campaigns-4SOLY7OR.js +0 -110
  420. package/dist/campaigns-4SOLY7OR.js.map +0 -1
  421. package/dist/campaigns-UELLCVI2.js +0 -109
  422. package/dist/campaigns-VWN2XPK2.js +0 -76
  423. package/dist/campaigns-WE42FQKM.js +0 -107
  424. package/dist/canvas-DG3CJ7FA.js +0 -46
  425. package/dist/capabilities-FDCILMJK.js +0 -144
  426. package/dist/catalog-KZNB2YJS.js +0 -65
  427. package/dist/catalogs-XH5NHH4C.js +0 -128
  428. package/dist/changes-DKP263OZ.js +0 -135
  429. package/dist/chatgpt-K6KNTME4.js +0 -47
  430. package/dist/chats-NFSZEF5L.js +0 -262
  431. package/dist/chats-NFSZEF5L.js.map +0 -1
  432. package/dist/check-6UVMPPNH.js +0 -104
  433. package/dist/chunk-2GT76KEX.js +0 -285
  434. package/dist/chunk-33XFNSBM.js +0 -433
  435. package/dist/chunk-36SU43V2.js +0 -6306
  436. package/dist/chunk-3BKNGXCL.js +0 -23992
  437. package/dist/chunk-3BKNGXCL.js.map +0 -1
  438. package/dist/chunk-3VCHJN2B.js +0 -627
  439. package/dist/chunk-5562QFVB.js +0 -275
  440. package/dist/chunk-5QW4OQM4.js +0 -831
  441. package/dist/chunk-5SRHACZW.js +0 -274
  442. package/dist/chunk-5SRHACZW.js.map +0 -1
  443. package/dist/chunk-6JWEGFM5.js +0 -174
  444. package/dist/chunk-6JWEGFM5.js.map +0 -1
  445. package/dist/chunk-6KULDLLR.js +0 -547
  446. package/dist/chunk-6OIKNJ7G.js +0 -26
  447. package/dist/chunk-6TG4CAYD.js +0 -19
  448. package/dist/chunk-6VZHOXP6.js +0 -172
  449. package/dist/chunk-7RBJ2Z7Z.js +0 -172
  450. package/dist/chunk-7RBJ2Z7Z.js.map +0 -1
  451. package/dist/chunk-7RKUHTS6.js +0 -224
  452. package/dist/chunk-AGVCQHQK.js +0 -344
  453. package/dist/chunk-AJ45PER5.js +0 -57
  454. package/dist/chunk-AL3VGEG5.js +0 -665
  455. package/dist/chunk-AQMMAB2N.js +0 -197
  456. package/dist/chunk-B6VCTXSD.js +0 -97
  457. package/dist/chunk-B7FVPHCW.js +0 -843
  458. package/dist/chunk-BITS62MF.js +0 -77
  459. package/dist/chunk-C4MJ3WPQ.js +0 -592
  460. package/dist/chunk-C6BFE4X2.js +0 -51
  461. package/dist/chunk-D2YHDDKW.js +0 -23
  462. package/dist/chunk-E4GWQFTL.js +0 -66
  463. package/dist/chunk-EIDTAHUC.js +0 -191
  464. package/dist/chunk-ERRMJ7AZ.js +0 -169
  465. package/dist/chunk-EZ5KY6I2.js +0 -1079
  466. package/dist/chunk-F3CZFUXZ.js +0 -3187
  467. package/dist/chunk-F3CZFUXZ.js.map +0 -1
  468. package/dist/chunk-F5IH7G2F.js +0 -1919
  469. package/dist/chunk-GFTDR3Z2.js +0 -604
  470. package/dist/chunk-GGY2KH3K.js +0 -249
  471. package/dist/chunk-GOJXKIFQ.js +0 -1605
  472. package/dist/chunk-GOJXKIFQ.js.map +0 -1
  473. package/dist/chunk-GYJQV3IX.js +0 -225
  474. package/dist/chunk-H5HDZ7IC.js +0 -139
  475. package/dist/chunk-HVI4DNZL.js +0 -103
  476. package/dist/chunk-HY4G44UC.js +0 -156
  477. package/dist/chunk-I2WRZJAC.js +0 -46
  478. package/dist/chunk-IHUIXQBP.js +0 -206
  479. package/dist/chunk-IMWXYSCP.js +0 -392
  480. package/dist/chunk-KIGGMKAE.js +0 -66
  481. package/dist/chunk-KIGGMKAE.js.map +0 -1
  482. package/dist/chunk-KPYDTIAI.js +0 -317
  483. package/dist/chunk-L63JZLCX.js +0 -647
  484. package/dist/chunk-L63JZLCX.js.map +0 -1
  485. package/dist/chunk-M2D7ZWEU.js +0 -150
  486. package/dist/chunk-MP5IMGKF.js +0 -148
  487. package/dist/chunk-NA2KOPW6.js +0 -363
  488. package/dist/chunk-NAA4CKZZ.js +0 -4249
  489. package/dist/chunk-NAA4CKZZ.js.map +0 -1
  490. package/dist/chunk-NDVAOHMY.js +0 -903
  491. package/dist/chunk-NLUFREI6.js +0 -160
  492. package/dist/chunk-OKLYOMQ3.js +0 -1606
  493. package/dist/chunk-ONVPV23E.js +0 -122
  494. package/dist/chunk-OP7DNHD2.js +0 -137
  495. package/dist/chunk-OP7DNHD2.js.map +0 -1
  496. package/dist/chunk-OWRFIAW2.js +0 -91
  497. package/dist/chunk-P5ENZXC2.js +0 -64
  498. package/dist/chunk-QK76OM22.js +0 -297
  499. package/dist/chunk-R5IZ6P3E.js +0 -3868
  500. package/dist/chunk-RBIWYPJQ.js +0 -159
  501. package/dist/chunk-RESDRJRP.js +0 -399
  502. package/dist/chunk-RGX7AQ2K.js +0 -131
  503. package/dist/chunk-RWLQYW2L.js +0 -8939
  504. package/dist/chunk-S7B2TOOU.js +0 -98
  505. package/dist/chunk-SIKCVWM3.js +0 -76
  506. package/dist/chunk-TBZPXGEW.js +0 -142
  507. package/dist/chunk-TFJW5CXD.js +0 -5368
  508. package/dist/chunk-TPS3X5DI.js +0 -89
  509. package/dist/chunk-UM7ESCIN.js +0 -846
  510. package/dist/chunk-UWDYGSJF.js +0 -61
  511. package/dist/chunk-V57TZQPI.js +0 -228
  512. package/dist/chunk-VLKYUZF7.js +0 -346
  513. package/dist/chunk-VYZ4KQ3C.js +0 -942
  514. package/dist/chunk-WRMMJUNJ.js +0 -494
  515. package/dist/chunk-WY5H3XYC.js +0 -167
  516. package/dist/chunk-XLJVJ5TK.js +0 -1518
  517. package/dist/chunk-Y2GH4YWA.js +0 -207
  518. package/dist/chunk-YSB26POP.js +0 -8914
  519. package/dist/chunk-YT2ZSPWF.js +0 -455
  520. package/dist/claim-7CB6TVEW.js +0 -197
  521. package/dist/companies-CACKHSY5.js +0 -195
  522. package/dist/complete-IHLTYFT2.js +0 -81
  523. package/dist/connect-J722BTO4.js +0 -42
  524. package/dist/conversation-HRNJJJW5.js +0 -93
  525. package/dist/conversion-report-KL4LIVY5.js +0 -125
  526. package/dist/conversion-upload-command-WT6C35QL.js +0 -438
  527. package/dist/conversion-writes-MPBCTVSP.js +0 -120
  528. package/dist/conversions-ACYT6K7H.js +0 -76
  529. package/dist/conversions-DE7W5T4Z.js +0 -135
  530. package/dist/create-6ZDLKC4F.js +0 -59
  531. package/dist/create-7YO6DAAT.js +0 -207
  532. package/dist/create-W7OTXLCZ.js +0 -132
  533. package/dist/create-ZU7AHBYM.js +0 -235
  534. package/dist/creatives-6UYAAC5E.js +0 -58
  535. package/dist/creatives-XUIY3MQI.js +0 -182
  536. package/dist/creatives-YJ3CXZQC.js +0 -87
  537. package/dist/creatives-YJ3CXZQC.js.map +0 -1
  538. package/dist/credentials-ADGJKYA7.js +0 -287
  539. package/dist/critique-BBHPASRE.js +0 -227
  540. package/dist/critique-T7QGPPEX.js +0 -1458
  541. package/dist/crm-EKDV2SET.js +0 -224
  542. package/dist/crm-MXT2HUKU.js +0 -318
  543. package/dist/currency-TBBXPWXU.js +0 -88
  544. package/dist/custom-conversions-YRYE65PU.js +0 -125
  545. package/dist/custom-conversions-YRYE65PU.js.map +0 -1
  546. package/dist/customers-EZEVYT4Z.js +0 -56
  547. package/dist/delete-3UDIH2ZD.js +0 -66
  548. package/dist/delete-4L3HO5B6.js +0 -54
  549. package/dist/delete-SRU4GRDT.js +0 -64
  550. package/dist/demographics-3OWQDW7B.js +0 -138
  551. package/dist/discard-UEMA5UHL.js +0 -66
  552. package/dist/discover-RTV5XWRI.js +0 -172
  553. package/dist/domain-6324IS6I.js +0 -98
  554. package/dist/draft-2KS56KCT.js +0 -307
  555. package/dist/draft-777O2UIX.js +0 -217
  556. package/dist/draft-EWDOIXSH.js +0 -233
  557. package/dist/draft-EWDOIXSH.js.map +0 -1
  558. package/dist/draft-GRL7577L.js +0 -306
  559. package/dist/draft-VOFJXUOC.js +0 -328
  560. package/dist/draft-VOFJXUOC.js.map +0 -1
  561. package/dist/draft-VXGZDBC7.js +0 -281
  562. package/dist/experiment-G3FQVAJU.js +0 -1397
  563. package/dist/facets-YV6NORA6.js +0 -114
  564. package/dist/feedback-YITFVOHX.js +0 -106
  565. package/dist/feedback-record-FW2QWFYQ.js +0 -260
  566. package/dist/fetch-EYXLTSKW.js +0 -176
  567. package/dist/find-EVY4XEIQ.js +0 -134
  568. package/dist/fit-KEFUU7QA.js +0 -62
  569. package/dist/flows-EJV7WMGD.js +0 -247
  570. package/dist/fonts-DMIBVZ6D.js +0 -36
  571. package/dist/forecast-5YKQZSE7.js +0 -118
  572. package/dist/forecast-G43FKEZE.js +0 -168
  573. package/dist/funnel-ND7OXIKT.js +0 -394
  574. package/dist/ga4-2BL5YAYN.js +0 -55
  575. package/dist/generate-D3LUXFJT.js +0 -263
  576. package/dist/get-GB6SPWCA.js +0 -79
  577. package/dist/get-PU3YHQWN.js +0 -56
  578. package/dist/google-7STODZQR.js +0 -136
  579. package/dist/google-MHB5TOFN.js +0 -3265
  580. package/dist/google-ads-XGEGKEL6.js +0 -195
  581. package/dist/gsc-UU3T2C6B.js +0 -30
  582. package/dist/history-NYWAMWAY.js +0 -133
  583. package/dist/history-OQAOTEO3.js +0 -67
  584. package/dist/hubspot-LMIVY7FR.js +0 -779
  585. package/dist/icon-GB7UH5RF.js +0 -137
  586. package/dist/ideas-W4IIVOZ4.js +0 -40
  587. package/dist/images-PPMIMPTS.js +0 -92
  588. package/dist/ingest-2YGWBWAB.js +0 -107
  589. package/dist/ingest-FRDTTPYD.js +0 -23
  590. package/dist/insights-4HT2NAYP.js +0 -423
  591. package/dist/insights-4HT2NAYP.js.map +0 -1
  592. package/dist/insights-PZXFCMX2.js +0 -122
  593. package/dist/inspect-QF2S3U2E.js +0 -189
  594. package/dist/inspiration-XQYHBJY2.js +0 -53
  595. package/dist/intent-JJTDJ732.js +0 -95
  596. package/dist/keyword-gap-4NQN56JP.js +0 -130
  597. package/dist/keyword-metrics-QCIOBMTW.js +0 -197
  598. package/dist/keywords-for-site-FS635JXM.js +0 -128
  599. package/dist/landing-6H5QEHOW.js +0 -28
  600. package/dist/languages-FNE45NXJ.js +0 -40
  601. package/dist/leads-2XOSAYP4.js +0 -293
  602. package/dist/leads-2XOSAYP4.js.map +0 -1
  603. package/dist/leads-MKLSWZO6.js +0 -90
  604. package/dist/learn-C564OA7W.js +0 -204
  605. package/dist/line-item-writes-K7QNWRQ3.js +0 -208
  606. package/dist/line-items-TBTHVKCZ.js +0 -103
  607. package/dist/link-CPJJ6T4M.js +0 -64
  608. package/dist/linkedin-HGUK624E.js +0 -1057
  609. package/dist/list-AAT5CWDA.js +0 -303
  610. package/dist/list-N5SJXLYF.js +0 -64
  611. package/dist/list-OKDU5W4D.js +0 -151
  612. package/dist/locations-FTDI4FBI.js +0 -40
  613. package/dist/locations-VL2G22Y5.js +0 -67
  614. package/dist/locations-VL2G22Y5.js.map +0 -1
  615. package/dist/log-KVRWIJS5.js +0 -92
  616. package/dist/logo-YSNUUT33.js +0 -18
  617. package/dist/make-4NTHJ4TG.js +0 -1353
  618. package/dist/map-HQ43MKEC.js +0 -433
  619. package/dist/mcp-MFLUHPL5.js +0 -714
  620. package/dist/media-ES2UBGYW.js +0 -15
  621. package/dist/media-ES2UBGYW.js.map +0 -1
  622. package/dist/media-sources-A4ICRSKB.js +0 -32
  623. package/dist/members-NRKQSSVS.js +0 -44
  624. package/dist/meta-AOIPEDV5.js +0 -69
  625. package/dist/meta-AOIPEDV5.js.map +0 -1
  626. package/dist/metrics-3BRTJNGW.js +0 -152
  627. package/dist/models-IH6KE6OH.js +0 -155
  628. package/dist/normalize-EH6BTBOB.js +0 -141
  629. package/dist/options-YEPQXXRY.js +0 -122
  630. package/dist/organization-XSWT7S5S.js +0 -836
  631. package/dist/organization-XSWT7S5S.js.map +0 -1
  632. package/dist/pages-FTI44OSH.js +0 -66
  633. package/dist/performance-YJVMM6DL.js +0 -24
  634. package/dist/pixels-DWW2TDY2.js +0 -60
  635. package/dist/pixels-MBKR4XPX.js +0 -108
  636. package/dist/preview-V4YBD45S.js +0 -169
  637. package/dist/preview-V4YBD45S.js.map +0 -1
  638. package/dist/promoted-tweet-writes-M5OVEBC5.js +0 -180
  639. package/dist/promoted-tweets-2MOIERNB.js +0 -119
  640. package/dist/publish-NPENZIHV.js +0 -341
  641. package/dist/query-3OMCFGLU.js +0 -61
  642. package/dist/reddit-LI37G5LS.js +0 -26
  643. package/dist/refresh-4BBV5SPL.js +0 -94
  644. package/dist/release-4X3TLMQT.js +0 -60
  645. package/dist/relevant-pages-DIYZM6FJ.js +0 -99
  646. package/dist/remove-Q4AES5UH.js +0 -50
  647. package/dist/reopen-SDTPL3BN.js +0 -63
  648. package/dist/rerun-NA3MH4HG.js +0 -90
  649. package/dist/research-5H265UV7.js +0 -262
  650. package/dist/research-LXQRNAQ2.js +0 -62
  651. package/dist/reset-42M5IKDI.js +0 -54
  652. package/dist/reset-52PU3CVD.js +0 -54
  653. package/dist/resolve-R4IACKIZ.js +0 -121
  654. package/dist/retry-FPF42ZNG.js +0 -62
  655. package/dist/retry-RTQGAH6G.js +0 -60
  656. package/dist/rules-CGNYJYVC.js +0 -96
  657. package/dist/rules-add-EO5476BF.js +0 -462
  658. package/dist/run-3AZJ3UQU.js +0 -66
  659. package/dist/run-AFMTXJTU.js +0 -65
  660. package/dist/scaffold-ad-OGU2IINY.js +0 -1511
  661. package/dist/scaffold-static-ad-HO4BJW4H.js +0 -1005
  662. package/dist/scaffold-video-TLQ4WSDK.js +0 -883
  663. package/dist/schedule-AWWMI5FO.js +0 -61
  664. package/dist/scheduled-agents-ELLU7BSE.js +0 -50
  665. package/dist/schema-BOOZEJPA.js +0 -69
  666. package/dist/schema-QNVLKMKG.js +0 -132
  667. package/dist/search-BZNIB2XF.js +0 -174
  668. package/dist/select-NLWZIQ7L.js +0 -101
  669. package/dist/set-prompt-QKW2L553.js +0 -193
  670. package/dist/setup-links-NMSQ4BG7.js +0 -141
  671. package/dist/shared-NDRFKAH7.js +0 -31
  672. package/dist/site-GGYFBZT5.js +0 -177
  673. package/dist/sources-KTGDMUV4.js +0 -30
  674. package/dist/sources-LPQZDTIU.js +0 -454
  675. package/dist/stale-C5JLQ4D2.js +0 -71
  676. package/dist/stats-RCLQE4HJ.js +0 -34
  677. package/dist/status-6PS3HDS5.js +0 -62
  678. package/dist/stock-ECRBD7RP.js +0 -179
  679. package/dist/studio-LMDDQWRY.js +0 -49
  680. package/dist/sync-XSATDLE6.js +0 -54
  681. package/dist/sync-definition-LSGDHMHV.js +0 -64
  682. package/dist/tag-manager-G3LBQZUL.js +0 -43
  683. package/dist/tags-5Y7TPJNZ.js +0 -20
  684. package/dist/tags-6TT5ZJVX.js +0 -26
  685. package/dist/tags-BQLIOWS4.js +0 -20
  686. package/dist/tags-EXWKO6Q6.js +0 -224
  687. package/dist/tags-OK34UGSM.js +0 -20
  688. package/dist/targeting-criteria-AWPMOX4V.js +0 -113
  689. package/dist/targets-EXYCOHEX.js +0 -103
  690. package/dist/testimonials-BTYMR3U4.js +0 -32
  691. package/dist/themes-AOU4ZZXL.js +0 -94
  692. package/dist/top-companies-FRPAURAH.js +0 -108
  693. package/dist/translate-SF234KLG.js +0 -604
  694. package/dist/triggers-SJUXDU3X.js +0 -142
  695. package/dist/unlink-RIZD3XTI.js +0 -67
  696. package/dist/unstage-MKTIVI3I.js +0 -85
  697. package/dist/update-COHXM25C.js +0 -152
  698. package/dist/update-NKX2GXAR.js +0 -63
  699. package/dist/update-OXVZXDYH.js +0 -98
  700. package/dist/update-SZLYEEU4.js +0 -188
  701. package/dist/upload-LEDO3IRC.js +0 -126
  702. package/dist/url-options-Q5SL42CV.js +0 -130
  703. package/dist/url-params-KP6D7BF3.js +0 -98
  704. package/dist/validate-7QWQZ2OL.js +0 -117
  705. package/dist/videos-VABK4KHJ.js +0 -39
  706. package/dist/viewer-check-I45HHWSW.js +0 -80
  707. package/dist/web-DZGUPZYQ.js +0 -140
  708. package/dist/winning-ads-6MDLRSKM.js +0 -84
  709. package/dist/write-commands-3VIK3VC4.js +0 -1024
  710. package/dist/write-commands-HCQI4Y27.js +0 -737
  711. package/dist/write-commands-HCQI4Y27.js.map +0 -1
  712. package/dist/x-GRDU7QC2.js +0 -47
  713. /package/dist/{account-ELL7ZZLM.js.map → account-3H6BZO5H.js.map} +0 -0
  714. /package/dist/{account-YVQGH2GB.js.map → account-KNRDOUJP.js.map} +0 -0
  715. /package/dist/{account-reads-5B4FFOZU.js.map → account-reads-GA6FVKLE.js.map} +0 -0
  716. /package/dist/{account-writes-CEPERFD6.js.map → account-writes-AE5IJGGW.js.map} +0 -0
  717. /package/dist/{accounts-UA2ZWRN4.js.map → accounts-K4INATCW.js.map} +0 -0
  718. /package/dist/{accounts-6WNFCGUW.js.map → accounts-RTN5ZGTU.js.map} +0 -0
  719. /package/dist/{accounts-ZIE7J6RR.js.map → accounts-RW6KXBOQ.js.map} +0 -0
  720. /package/dist/{actions-QZQTB3KR.js.map → actions-HNLISA7T.js.map} +0 -0
  721. /package/dist/{activecampaign-LIXWDX74.js.map → activecampaign-I5CILZPU.js.map} +0 -0
  722. /package/dist/{activities-IQPJPP4B.js.map → activities-T253KK4Q.js.map} +0 -0
  723. /package/dist/{ad-group-writes-XGSCEQTW.js.map → ad-group-writes-VRSBI2Z2.js.map} +0 -0
  724. /package/dist/{ad-groups-GKOLDGET.js.map → ad-groups-IEBVEAMS.js.map} +0 -0
  725. /package/dist/{ad-writes-VVD36JKH.js.map → ad-writes-ALV4KFPZ.js.map} +0 -0
  726. /package/dist/{add-HQFI5UVS.js.map → add-6WKPFMLG.js.map} +0 -0
  727. /package/dist/{add-JWJP4CQY.js.map → add-XF5COUAS.js.map} +0 -0
  728. /package/dist/{ads-EKZVHKPN.js.map → ads-CQZHD7FC.js.map} +0 -0
  729. /package/dist/{ads-F365TPXO.js.map → ads-QIKZ6O2N.js.map} +0 -0
  730. /package/dist/{advertisers-TPIS4R73.js.map → advertisers-6NUM2Q3A.js.map} +0 -0
  731. /package/dist/{analytics-AFW7ESJW.js.map → analytics-ALOZ7ZZ4.js.map} +0 -0
  732. /package/dist/{analytics-QG7TBGMC.js.map → analytics-VLHE5A2M.js.map} +0 -0
  733. /package/dist/{animate-G4P3OEJE.js.map → animate-SVEPM267.js.map} +0 -0
  734. /package/dist/{connect-J722BTO4.js.map → asset-writes-L5TMKIZC.js.map} +0 -0
  735. /package/dist/{assign-VKINQVCJ.js.map → assign-6HI6TNLP.js.map} +0 -0
  736. /package/dist/{audience-size-6ZEWCPX6.js.map → audience-size-25LP2OBF.js.map} +0 -0
  737. /package/dist/{audiences-BU4JZJT7.js.map → audiences-AAZH56WD.js.map} +0 -0
  738. /package/dist/{audit-5US7TTUF.js.map → audit-YY6X2MPA.js.map} +0 -0
  739. /package/dist/{autocomplete-XBVLHJ4R.js.map → autocomplete-SAWJK4NF.js.map} +0 -0
  740. /package/dist/{avatars-5IBVOF63.js.map → avatars-YSFFRHDK.js.map} +0 -0
  741. /package/dist/{bid-pricing-EFYUHTWP.js.map → bid-pricing-HZ74SLEB.js.map} +0 -0
  742. /package/dist/{brand-Z5KRGJX4.js.map → brand-T3OACVQX.js.map} +0 -0
  743. /package/dist/{brief-DGAZ6NJG.js.map → brief-7S6XCJIA.js.map} +0 -0
  744. /package/dist/{businesses-PRRYPR7H.js.map → businesses-H3HIDQX6.js.map} +0 -0
  745. /package/dist/{campaign-groups-AOMTKPUY.js.map → campaign-groups-YJK767AP.js.map} +0 -0
  746. /package/dist/{campaign-writes-NSEJCINS.js.map → campaign-writes-U5PUVSMT.js.map} +0 -0
  747. /package/dist/{campaigns-UELLCVI2.js.map → campaigns-GALDR5KK.js.map} +0 -0
  748. /package/dist/{campaigns-VWN2XPK2.js.map → campaigns-JEIKY2M4.js.map} +0 -0
  749. /package/dist/{campaigns-WE42FQKM.js.map → campaigns-VTRMKSAT.js.map} +0 -0
  750. /package/dist/{canvas-DG3CJ7FA.js.map → canvas-SVJEQO4V.js.map} +0 -0
  751. /package/dist/{capabilities-FDCILMJK.js.map → capabilities-2KT6TCGZ.js.map} +0 -0
  752. /package/dist/{catalog-KZNB2YJS.js.map → catalog-S32MX453.js.map} +0 -0
  753. /package/dist/{catalogs-XH5NHH4C.js.map → catalogs-OCVXZLIF.js.map} +0 -0
  754. /package/dist/{changes-DKP263OZ.js.map → changes-5TOYRKZR.js.map} +0 -0
  755. /package/dist/{chatgpt-K6KNTME4.js.map → chatgpt-QVF2FD3E.js.map} +0 -0
  756. /package/dist/{check-6UVMPPNH.js.map → check-SLNHVYGS.js.map} +0 -0
  757. /package/dist/{chunk-HVI4DNZL.js.map → chunk-2LI6746F.js.map} +0 -0
  758. /package/dist/{chunk-AQMMAB2N.js.map → chunk-2PWNIEW4.js.map} +0 -0
  759. /package/dist/{chunk-KPYDTIAI.js.map → chunk-2WZI36D3.js.map} +0 -0
  760. /package/dist/{chunk-ONVPV23E.js.map → chunk-3W6G6ARX.js.map} +0 -0
  761. /package/dist/{chunk-OKLYOMQ3.js.map → chunk-45UK4KYJ.js.map} +0 -0
  762. /package/dist/{chunk-GYJQV3IX.js.map → chunk-46GWHUKN.js.map} +0 -0
  763. /package/dist/{chunk-F5IH7G2F.js.map → chunk-4AMIHNNP.js.map} +0 -0
  764. /package/dist/{chunk-7RKUHTS6.js.map → chunk-4KJMLYCD.js.map} +0 -0
  765. /package/dist/{chunk-Y2GH4YWA.js.map → chunk-5HJRZFMW.js.map} +0 -0
  766. /package/dist/{chunk-36SU43V2.js.map → chunk-66QHX566.js.map} +0 -0
  767. /package/dist/{chunk-EIDTAHUC.js.map → chunk-6NCJGU6I.js.map} +0 -0
  768. /package/dist/{chunk-WRMMJUNJ.js.map → chunk-6WCAV27H.js.map} +0 -0
  769. /package/dist/{chunk-E4GWQFTL.js.map → chunk-AO45BX6Q.js.map} +0 -0
  770. /package/dist/{chunk-M2D7ZWEU.js.map → chunk-BDYLILMW.js.map} +0 -0
  771. /package/dist/{chunk-GGY2KH3K.js.map → chunk-BL2MX6CR.js.map} +0 -0
  772. /package/dist/{chunk-GFTDR3Z2.js.map → chunk-BOPC3D6I.js.map} +0 -0
  773. /package/dist/{chunk-I2WRZJAC.js.map → chunk-BTY4LZBG.js.map} +0 -0
  774. /package/dist/{chunk-P5ENZXC2.js.map → chunk-C7NWUCLQ.js.map} +0 -0
  775. /package/dist/{chunk-6KULDLLR.js.map → chunk-D4CKCNGW.js.map} +0 -0
  776. /package/dist/{chunk-QK76OM22.js.map → chunk-D5CUAOQX.js.map} +0 -0
  777. /package/dist/{chunk-NDVAOHMY.js.map → chunk-D5UXWKLQ.js.map} +0 -0
  778. /package/dist/{chunk-H5HDZ7IC.js.map → chunk-DCBZ5CHZ.js.map} +0 -0
  779. /package/dist/{chunk-XLJVJ5TK.js.map → chunk-E2RFM6R2.js.map} +0 -0
  780. /package/dist/{chunk-MP5IMGKF.js.map → chunk-EOY6BK4C.js.map} +0 -0
  781. /package/dist/{chunk-IMWXYSCP.js.map → chunk-FA4YZFRV.js.map} +0 -0
  782. /package/dist/{chunk-VYZ4KQ3C.js.map → chunk-FVHJCERJ.js.map} +0 -0
  783. /package/dist/{chunk-3VCHJN2B.js.map → chunk-G2LGMWNG.js.map} +0 -0
  784. /package/dist/{chunk-RESDRJRP.js.map → chunk-G4STCTY3.js.map} +0 -0
  785. /package/dist/{chunk-BITS62MF.js.map → chunk-G6XKD7QE.js.map} +0 -0
  786. /package/dist/{chunk-5QW4OQM4.js.map → chunk-GSZZLW5Q.js.map} +0 -0
  787. /package/dist/{chunk-NA2KOPW6.js.map → chunk-HSPMBLKE.js.map} +0 -0
  788. /package/dist/{chunk-5562QFVB.js.map → chunk-IJ22WP3G.js.map} +0 -0
  789. /package/dist/{chunk-B7FVPHCW.js.map → chunk-IKCP5NCE.js.map} +0 -0
  790. /package/dist/{chunk-ERRMJ7AZ.js.map → chunk-ILSKYRDR.js.map} +0 -0
  791. /package/dist/{chunk-6OIKNJ7G.js.map → chunk-JAC6JVCI.js.map} +0 -0
  792. /package/dist/{chunk-OWRFIAW2.js.map → chunk-JKJQWRLO.js.map} +0 -0
  793. /package/dist/{chunk-TFJW5CXD.js.map → chunk-JQH5VG6F.js.map} +0 -0
  794. /package/dist/{chunk-AJ45PER5.js.map → chunk-JQU2LUZG.js.map} +0 -0
  795. /package/dist/{chunk-YSB26POP.js.map → chunk-JVH5A3XC.js.map} +0 -0
  796. /package/dist/{chunk-RGX7AQ2K.js.map → chunk-JYALBYN7.js.map} +0 -0
  797. /package/dist/{chunk-RWLQYW2L.js.map → chunk-KOXDXSKN.js.map} +0 -0
  798. /package/dist/{chunk-EZ5KY6I2.js.map → chunk-LOMH4TTC.js.map} +0 -0
  799. /package/dist/{chunk-TBZPXGEW.js.map → chunk-LXQB4ZGE.js.map} +0 -0
  800. /package/dist/{chunk-6TG4CAYD.js.map → chunk-M6PN3VH6.js.map} +0 -0
  801. /package/dist/{chunk-AL3VGEG5.js.map → chunk-M7IJU77B.js.map} +0 -0
  802. /package/dist/{chunk-C4MJ3WPQ.js.map → chunk-MVB32GPI.js.map} +0 -0
  803. /package/dist/{chunk-C6BFE4X2.js.map → chunk-MXH35PJ5.js.map} +0 -0
  804. /package/dist/{chunk-SIKCVWM3.js.map → chunk-MZPS46OR.js.map} +0 -0
  805. /package/dist/{chunk-IHUIXQBP.js.map → chunk-NEIUVSDK.js.map} +0 -0
  806. /package/dist/{chunk-2GT76KEX.js.map → chunk-NEOUY3Q7.js.map} +0 -0
  807. /package/dist/{chunk-RBIWYPJQ.js.map → chunk-NXZCCGES.js.map} +0 -0
  808. /package/dist/{chunk-YT2ZSPWF.js.map → chunk-P3W6SRSQ.js.map} +0 -0
  809. /package/dist/{chunk-NLUFREI6.js.map → chunk-P5FRWPG7.js.map} +0 -0
  810. /package/dist/{chunk-D2YHDDKW.js.map → chunk-PA4W7BCQ.js.map} +0 -0
  811. /package/dist/{chunk-B6VCTXSD.js.map → chunk-PQJXIY64.js.map} +0 -0
  812. /package/dist/{chunk-TPS3X5DI.js.map → chunk-PTGYM4J6.js.map} +0 -0
  813. /package/dist/{chunk-33XFNSBM.js.map → chunk-QNLJ3GNZ.js.map} +0 -0
  814. /package/dist/{chunk-UWDYGSJF.js.map → chunk-SISA4HQR.js.map} +0 -0
  815. /package/dist/{chunk-V57TZQPI.js.map → chunk-SVM3DGAQ.js.map} +0 -0
  816. /package/dist/{chunk-6VZHOXP6.js.map → chunk-TP7HKSBX.js.map} +0 -0
  817. /package/dist/{chunk-VLKYUZF7.js.map → chunk-TRPJJMCS.js.map} +0 -0
  818. /package/dist/{chunk-R5IZ6P3E.js.map → chunk-UNX6BS4U.js.map} +0 -0
  819. /package/dist/{chunk-AGVCQHQK.js.map → chunk-VD73V44J.js.map} +0 -0
  820. /package/dist/{chunk-UM7ESCIN.js.map → chunk-VL65H6YM.js.map} +0 -0
  821. /package/dist/{chunk-HY4G44UC.js.map → chunk-X7F4Z6UM.js.map} +0 -0
  822. /package/dist/{chunk-S7B2TOOU.js.map → chunk-ZCQVKDHV.js.map} +0 -0
  823. /package/dist/{chunk-WY5H3XYC.js.map → chunk-ZJSGGJ5R.js.map} +0 -0
  824. /package/dist/{claim-7CB6TVEW.js.map → claim-SLGYOOWD.js.map} +0 -0
  825. /package/dist/{companies-CACKHSY5.js.map → companies-IVMH6YII.js.map} +0 -0
  826. /package/dist/{complete-IHLTYFT2.js.map → complete-45L2FI2X.js.map} +0 -0
  827. /package/dist/{customers-EZEVYT4Z.js.map → connect-S54TJ6OV.js.map} +0 -0
  828. /package/dist/{conversation-HRNJJJW5.js.map → conversation-RIOL3OJ7.js.map} +0 -0
  829. /package/dist/{conversion-report-KL4LIVY5.js.map → conversion-report-REOHVLCI.js.map} +0 -0
  830. /package/dist/{conversion-upload-command-WT6C35QL.js.map → conversion-upload-command-W4GELHIQ.js.map} +0 -0
  831. /package/dist/{conversion-writes-MPBCTVSP.js.map → conversion-writes-ECZBVY7D.js.map} +0 -0
  832. /package/dist/{conversions-ACYT6K7H.js.map → conversions-5QCSCRLI.js.map} +0 -0
  833. /package/dist/{conversions-DE7W5T4Z.js.map → conversions-TKIXNSYR.js.map} +0 -0
  834. /package/dist/{create-W7OTXLCZ.js.map → create-7JY2PTIZ.js.map} +0 -0
  835. /package/dist/{create-6ZDLKC4F.js.map → create-ACLCRXQP.js.map} +0 -0
  836. /package/dist/{create-7YO6DAAT.js.map → create-KYBMFD32.js.map} +0 -0
  837. /package/dist/{create-ZU7AHBYM.js.map → create-VAPJ52GJ.js.map} +0 -0
  838. /package/dist/{creatives-XUIY3MQI.js.map → creatives-5I3G5YP3.js.map} +0 -0
  839. /package/dist/{creatives-6UYAAC5E.js.map → creatives-PCAGWPW3.js.map} +0 -0
  840. /package/dist/{credentials-ADGJKYA7.js.map → credentials-YTQ6BHWV.js.map} +0 -0
  841. /package/dist/{critique-T7QGPPEX.js.map → critique-BHYJYZDV.js.map} +0 -0
  842. /package/dist/{critique-BBHPASRE.js.map → critique-NRHUPIWF.js.map} +0 -0
  843. /package/dist/{crm-MXT2HUKU.js.map → crm-IKTWHWEB.js.map} +0 -0
  844. /package/dist/{crm-EKDV2SET.js.map → crm-N7K57LZJ.js.map} +0 -0
  845. /package/dist/{currency-TBBXPWXU.js.map → currency-PW7HIBZ6.js.map} +0 -0
  846. /package/dist/{fit-KEFUU7QA.js.map → customers-NLU7NYDC.js.map} +0 -0
  847. /package/dist/{delete-SRU4GRDT.js.map → delete-26J3X3ZH.js.map} +0 -0
  848. /package/dist/{delete-3UDIH2ZD.js.map → delete-A4F5Z54J.js.map} +0 -0
  849. /package/dist/{delete-4L3HO5B6.js.map → delete-EVXOFT2H.js.map} +0 -0
  850. /package/dist/{demographics-3OWQDW7B.js.map → demographics-VZKFMM4X.js.map} +0 -0
  851. /package/dist/{discard-UEMA5UHL.js.map → discard-ULRVUJDV.js.map} +0 -0
  852. /package/dist/{discover-RTV5XWRI.js.map → discover-PVXWX2WL.js.map} +0 -0
  853. /package/dist/{domain-6324IS6I.js.map → domain-L4WCCX7R.js.map} +0 -0
  854. /package/dist/{draft-VXGZDBC7.js.map → draft-34CGWUVA.js.map} +0 -0
  855. /package/dist/{draft-GRL7577L.js.map → draft-57OQKHZI.js.map} +0 -0
  856. /package/dist/{draft-777O2UIX.js.map → draft-O4S5RKWK.js.map} +0 -0
  857. /package/dist/{draft-2KS56KCT.js.map → draft-PAYD6GIM.js.map} +0 -0
  858. /package/dist/{experiment-G3FQVAJU.js.map → experiment-7N4QFRWV.js.map} +0 -0
  859. /package/dist/{facets-YV6NORA6.js.map → facets-EHQKGGJ2.js.map} +0 -0
  860. /package/dist/{feedback-YITFVOHX.js.map → feedback-O3H42V4I.js.map} +0 -0
  861. /package/dist/{feedback-record-FW2QWFYQ.js.map → feedback-record-FAPN2GBS.js.map} +0 -0
  862. /package/dist/{fetch-EYXLTSKW.js.map → fetch-ETKT2RBC.js.map} +0 -0
  863. /package/dist/{find-EVY4XEIQ.js.map → find-FSQAEGGF.js.map} +0 -0
  864. /package/dist/{fonts-DMIBVZ6D.js.map → fit-UJQ47C4A.js.map} +0 -0
  865. /package/dist/{flows-EJV7WMGD.js.map → flows-T22B77J3.js.map} +0 -0
  866. /package/dist/{ideas-W4IIVOZ4.js.map → fonts-7VWBQPJF.js.map} +0 -0
  867. /package/dist/{forecast-G43FKEZE.js.map → forecast-HB3RDBQN.js.map} +0 -0
  868. /package/dist/{forecast-5YKQZSE7.js.map → forecast-OI7YWZ6F.js.map} +0 -0
  869. /package/dist/{funnel-ND7OXIKT.js.map → funnel-7OA33VRP.js.map} +0 -0
  870. /package/dist/{ga4-2BL5YAYN.js.map → ga4-LPDIBNYP.js.map} +0 -0
  871. /package/dist/{generate-D3LUXFJT.js.map → generate-OMXBFGGR.js.map} +0 -0
  872. /package/dist/{get-PU3YHQWN.js.map → get-2RSN4N3J.js.map} +0 -0
  873. /package/dist/{get-GB6SPWCA.js.map → get-6N7QJMIP.js.map} +0 -0
  874. /package/dist/{google-7STODZQR.js.map → google-5ESVO76E.js.map} +0 -0
  875. /package/dist/{google-MHB5TOFN.js.map → google-6JZBJ2ZQ.js.map} +0 -0
  876. /package/dist/{google-ads-XGEGKEL6.js.map → google-ads-G7REKD4A.js.map} +0 -0
  877. /package/dist/{gsc-UU3T2C6B.js.map → gsc-FIZTQX3N.js.map} +0 -0
  878. /package/dist/{history-OQAOTEO3.js.map → history-QKDYBSYM.js.map} +0 -0
  879. /package/dist/{history-NYWAMWAY.js.map → history-YMK2JNZU.js.map} +0 -0
  880. /package/dist/{hubspot-LMIVY7FR.js.map → hubspot-BUFS7S33.js.map} +0 -0
  881. /package/dist/{icon-GB7UH5RF.js.map → icon-CSVAZ7NE.js.map} +0 -0
  882. /package/dist/{ingest-FRDTTPYD.js.map → ideas-JQT422P7.js.map} +0 -0
  883. /package/dist/{images-PPMIMPTS.js.map → images-WBNWK2ZH.js.map} +0 -0
  884. /package/dist/{ingest-2YGWBWAB.js.map → ingest-RQUJGS7K.js.map} +0 -0
  885. /package/dist/{logo-YSNUUT33.js.map → ingest-XLTRLCDV.js.map} +0 -0
  886. /package/dist/{insights-PZXFCMX2.js.map → insights-SQLE5NOJ.js.map} +0 -0
  887. /package/dist/{inspect-QF2S3U2E.js.map → inspect-KFVAMD4N.js.map} +0 -0
  888. /package/dist/{inspiration-XQYHBJY2.js.map → inspiration-IX5N724J.js.map} +0 -0
  889. /package/dist/{intent-JJTDJ732.js.map → intent-4KJGYYHL.js.map} +0 -0
  890. /package/dist/{keyword-gap-4NQN56JP.js.map → keyword-gap-U64KXDR4.js.map} +0 -0
  891. /package/dist/{keyword-metrics-QCIOBMTW.js.map → keyword-metrics-WYF3QMCW.js.map} +0 -0
  892. /package/dist/{keywords-for-site-FS635JXM.js.map → keywords-for-site-G5L5EP3T.js.map} +0 -0
  893. /package/dist/{landing-6H5QEHOW.js.map → landing-Y6QCTXCZ.js.map} +0 -0
  894. /package/dist/{languages-FNE45NXJ.js.map → languages-7IPVGGW5.js.map} +0 -0
  895. /package/dist/{leads-MKLSWZO6.js.map → leads-4SJ4NJOI.js.map} +0 -0
  896. /package/dist/{learn-C564OA7W.js.map → learn-3BDZUWDT.js.map} +0 -0
  897. /package/dist/{line-item-writes-K7QNWRQ3.js.map → line-item-writes-YXKYR25W.js.map} +0 -0
  898. /package/dist/{line-items-TBTHVKCZ.js.map → line-items-CKUD2UU4.js.map} +0 -0
  899. /package/dist/{link-CPJJ6T4M.js.map → link-VBYFI7AM.js.map} +0 -0
  900. /package/dist/{linkedin-HGUK624E.js.map → linkedin-UGMAFSGO.js.map} +0 -0
  901. /package/dist/{list-OKDU5W4D.js.map → list-6ZNZGRRK.js.map} +0 -0
  902. /package/dist/{list-N5SJXLYF.js.map → list-ENYDGT3F.js.map} +0 -0
  903. /package/dist/{list-AAT5CWDA.js.map → list-VSUF2IWT.js.map} +0 -0
  904. /package/dist/{locations-FTDI4FBI.js.map → locations-QJBYWRCN.js.map} +0 -0
  905. /package/dist/{log-KVRWIJS5.js.map → log-AACKGBDW.js.map} +0 -0
  906. /package/dist/{performance-YJVMM6DL.js.map → logo-VHXH4J6A.js.map} +0 -0
  907. /package/dist/{make-4NTHJ4TG.js.map → make-W2PYZXYF.js.map} +0 -0
  908. /package/dist/{map-HQ43MKEC.js.map → map-63CQHWPI.js.map} +0 -0
  909. /package/dist/{mcp-MFLUHPL5.js.map → mcp-RKAXC6IP.js.map} +0 -0
  910. /package/dist/{media-sources-A4ICRSKB.js.map → media-sources-EZKAJNVD.js.map} +0 -0
  911. /package/dist/{members-NRKQSSVS.js.map → members-SELIA674.js.map} +0 -0
  912. /package/dist/{metrics-3BRTJNGW.js.map → metrics-V6SKOVNH.js.map} +0 -0
  913. /package/dist/{models-IH6KE6OH.js.map → models-2XRYXSRA.js.map} +0 -0
  914. /package/dist/{normalize-EH6BTBOB.js.map → normalize-VAZPTBDX.js.map} +0 -0
  915. /package/dist/{options-YEPQXXRY.js.map → options-NSCZSQ5P.js.map} +0 -0
  916. /package/dist/{pages-FTI44OSH.js.map → pages-PTWRXAZT.js.map} +0 -0
  917. /package/dist/{query-3OMCFGLU.js.map → performance-K7E5KAZW.js.map} +0 -0
  918. /package/dist/{pixels-DWW2TDY2.js.map → pixels-MYT3TCHZ.js.map} +0 -0
  919. /package/dist/{pixels-MBKR4XPX.js.map → pixels-ZZCQUS3J.js.map} +0 -0
  920. /package/dist/{promoted-tweet-writes-M5OVEBC5.js.map → promoted-tweet-writes-PKEO6WUK.js.map} +0 -0
  921. /package/dist/{promoted-tweets-2MOIERNB.js.map → promoted-tweets-7MXVZRBI.js.map} +0 -0
  922. /package/dist/{publish-NPENZIHV.js.map → publish-MPMGRV72.js.map} +0 -0
  923. /package/dist/{reddit-LI37G5LS.js.map → query-UD4OIZ3A.js.map} +0 -0
  924. /package/dist/{run-AFMTXJTU.js.map → reddit-XIHRI3CN.js.map} +0 -0
  925. /package/dist/{refresh-4BBV5SPL.js.map → refresh-A27N75NH.js.map} +0 -0
  926. /package/dist/{release-4X3TLMQT.js.map → release-UKRB5IUN.js.map} +0 -0
  927. /package/dist/{relevant-pages-DIYZM6FJ.js.map → relevant-pages-VXSHEOU2.js.map} +0 -0
  928. /package/dist/{remove-Q4AES5UH.js.map → remove-AFNFVPZY.js.map} +0 -0
  929. /package/dist/{reopen-SDTPL3BN.js.map → reopen-M5HE6J3G.js.map} +0 -0
  930. /package/dist/{rerun-NA3MH4HG.js.map → rerun-5THJLQQJ.js.map} +0 -0
  931. /package/dist/{research-LXQRNAQ2.js.map → research-JHDWWFL7.js.map} +0 -0
  932. /package/dist/{research-5H265UV7.js.map → research-U7RQXMYH.js.map} +0 -0
  933. /package/dist/{reset-52PU3CVD.js.map → reset-4CCWB2RT.js.map} +0 -0
  934. /package/dist/{reset-42M5IKDI.js.map → reset-J3KCWFMZ.js.map} +0 -0
  935. /package/dist/{resolve-R4IACKIZ.js.map → resolve-HEK27ANI.js.map} +0 -0
  936. /package/dist/{retry-FPF42ZNG.js.map → retry-HPZIUG2S.js.map} +0 -0
  937. /package/dist/{retry-RTQGAH6G.js.map → retry-VVI6N6UR.js.map} +0 -0
  938. /package/dist/{rules-CGNYJYVC.js.map → rules-YLLFDZEM.js.map} +0 -0
  939. /package/dist/{rules-add-EO5476BF.js.map → rules-add-U2GU4AGP.js.map} +0 -0
  940. /package/dist/{run-3AZJ3UQU.js.map → run-M7ZDE6IA.js.map} +0 -0
  941. /package/dist/{shared-NDRFKAH7.js.map → run-V5YQB6TH.js.map} +0 -0
  942. /package/dist/{scaffold-ad-OGU2IINY.js.map → scaffold-ad-H4GJOKAW.js.map} +0 -0
  943. /package/dist/{scaffold-static-ad-HO4BJW4H.js.map → scaffold-static-ad-2YIFHCTL.js.map} +0 -0
  944. /package/dist/{scaffold-video-TLQ4WSDK.js.map → scaffold-video-3EJLKR2O.js.map} +0 -0
  945. /package/dist/{schedule-AWWMI5FO.js.map → schedule-QMOKWTJ3.js.map} +0 -0
  946. /package/dist/{scheduled-agents-ELLU7BSE.js.map → scheduled-agents-FCQHQ6KR.js.map} +0 -0
  947. /package/dist/{schema-QNVLKMKG.js.map → schema-THFLCMBN.js.map} +0 -0
  948. /package/dist/{schema-BOOZEJPA.js.map → schema-XKEEAUXP.js.map} +0 -0
  949. /package/dist/{search-BZNIB2XF.js.map → search-XIUYSWO6.js.map} +0 -0
  950. /package/dist/{select-NLWZIQ7L.js.map → select-I22NPSIW.js.map} +0 -0
  951. /package/dist/{set-prompt-QKW2L553.js.map → set-prompt-S75OMQ7L.js.map} +0 -0
  952. /package/dist/{setup-links-NMSQ4BG7.js.map → setup-links-QVI6NAOK.js.map} +0 -0
  953. /package/dist/{sync-definition-LSGDHMHV.js.map → shared-3IBNDEFL.js.map} +0 -0
  954. /package/dist/{site-GGYFBZT5.js.map → site-PZPJY33N.js.map} +0 -0
  955. /package/dist/{sources-LPQZDTIU.js.map → sources-ER7ANNG3.js.map} +0 -0
  956. /package/dist/{sources-KTGDMUV4.js.map → sources-VA23PDND.js.map} +0 -0
  957. /package/dist/{stale-C5JLQ4D2.js.map → stale-MHTU2NQJ.js.map} +0 -0
  958. /package/dist/{stats-RCLQE4HJ.js.map → stats-ZAGJH4AD.js.map} +0 -0
  959. /package/dist/{status-6PS3HDS5.js.map → status-ABMJBCPJ.js.map} +0 -0
  960. /package/dist/{stock-ECRBD7RP.js.map → stock-6SHHLSKG.js.map} +0 -0
  961. /package/dist/{studio-LMDDQWRY.js.map → studio-ZLCGXFAN.js.map} +0 -0
  962. /package/dist/{sync-XSATDLE6.js.map → sync-QDD3MRJ6.js.map} +0 -0
  963. /package/dist/{viewer-check-I45HHWSW.js.map → sync-definition-2EBSQA6A.js.map} +0 -0
  964. /package/dist/{tag-manager-G3LBQZUL.js.map → tag-manager-3CJ66GKJ.js.map} +0 -0
  965. /package/dist/{tags-OK34UGSM.js.map → tags-5JYOEYIT.js.map} +0 -0
  966. /package/dist/{tags-EXWKO6Q6.js.map → tags-B473RWAA.js.map} +0 -0
  967. /package/dist/{tags-5Y7TPJNZ.js.map → tags-EWHPUM2V.js.map} +0 -0
  968. /package/dist/{tags-6TT5ZJVX.js.map → tags-KBCX6BDU.js.map} +0 -0
  969. /package/dist/{tags-BQLIOWS4.js.map → tags-PEWN6GNZ.js.map} +0 -0
  970. /package/dist/{targeting-criteria-AWPMOX4V.js.map → targeting-criteria-EU65WUUF.js.map} +0 -0
  971. /package/dist/{targets-EXYCOHEX.js.map → targets-KVXS5QKM.js.map} +0 -0
  972. /package/dist/{testimonials-BTYMR3U4.js.map → testimonials-GR6TIS5S.js.map} +0 -0
  973. /package/dist/{themes-AOU4ZZXL.js.map → themes-JWWTOR3I.js.map} +0 -0
  974. /package/dist/{top-companies-FRPAURAH.js.map → top-companies-OOX3DITI.js.map} +0 -0
  975. /package/dist/{translate-SF234KLG.js.map → translate-GEFUP6KQ.js.map} +0 -0
  976. /package/dist/{triggers-SJUXDU3X.js.map → triggers-OX2GKG4Y.js.map} +0 -0
  977. /package/dist/{unlink-RIZD3XTI.js.map → unlink-3USEPJSA.js.map} +0 -0
  978. /package/dist/{unstage-MKTIVI3I.js.map → unstage-VSCNPTAC.js.map} +0 -0
  979. /package/dist/{update-COHXM25C.js.map → update-6JKTH65B.js.map} +0 -0
  980. /package/dist/{update-OXVZXDYH.js.map → update-FG4ELXYJ.js.map} +0 -0
  981. /package/dist/{update-SZLYEEU4.js.map → update-GZFKHA3A.js.map} +0 -0
  982. /package/dist/{update-NKX2GXAR.js.map → update-HZHG67N6.js.map} +0 -0
  983. /package/dist/{upload-LEDO3IRC.js.map → upload-BKCQ6FRW.js.map} +0 -0
  984. /package/dist/{url-options-Q5SL42CV.js.map → url-options-HCVRPZYU.js.map} +0 -0
  985. /package/dist/{url-params-KP6D7BF3.js.map → url-params-UN4DRN2H.js.map} +0 -0
  986. /package/dist/{validate-7QWQZ2OL.js.map → validate-NOWIOAHE.js.map} +0 -0
  987. /package/dist/{videos-VABK4KHJ.js.map → videos-XMTDEHEJ.js.map} +0 -0
  988. /package/dist/{web-DZGUPZYQ.js.map → web-UGU7YMII.js.map} +0 -0
  989. /package/dist/{winning-ads-6MDLRSKM.js.map → winning-ads-QOAYIR5U.js.map} +0 -0
  990. /package/dist/{write-commands-3VIK3VC4.js.map → write-commands-6VR2UD3T.js.map} +0 -0
  991. /package/dist/{x-GRDU7QC2.js.map → x-VCSMV7T5.js.map} +0 -0
@@ -0,0 +1,522 @@
1
+ import {
2
+ decimalMarkShown
3
+ } from "./chunk-5GQCN2QZ.js";
4
+ import {
5
+ bareAccountId,
6
+ failWriteValidation,
7
+ requireTarget,
8
+ stageOp
9
+ } from "./chunk-5C35OW7L.js";
10
+ import "./chunk-A4MVVPJ2.js";
11
+ import "./chunk-HLVRHBKL.js";
12
+ import "./chunk-QTOZ32SU.js";
13
+ import {
14
+ repeatedValues
15
+ } from "./chunk-ERSX3MKH.js";
16
+ import "./chunk-SFJW2KED.js";
17
+ import "./chunk-4NZ47VXO.js";
18
+ import "./chunk-D5FY4FAK.js";
19
+ import "./chunk-FNA277HP.js";
20
+ import "./chunk-SWL4AAPP.js";
21
+ import "./chunk-5WMTPYKT.js";
22
+ import "./chunk-23H4ZJRP.js";
23
+ import "./chunk-DWX44QL6.js";
24
+ import "./chunk-2FSEESJU.js";
25
+ import "./chunk-CVBKW75S.js";
26
+ import "./chunk-BLAHHMPF.js";
27
+ import "./chunk-XQIOCIDO.js";
28
+ import "./chunk-XDZVBX6L.js";
29
+ import "./chunk-N5O67GK5.js";
30
+ import "./chunk-EE72SSB2.js";
31
+ import {
32
+ registerSchema
33
+ } from "./chunk-WNSE7N75.js";
34
+ import "./chunk-YQSBHWOI.js";
35
+
36
+ // src/commands/ads/meta/rule-writes.ts
37
+ import { readFileSync } from "fs";
38
+ import { defineCommand } from "citty";
39
+
40
+ // src/commands/ads/meta/rule-flags.ts
41
+ var METRIC_ALIASES = {
42
+ cost_per_result: "cost_per",
43
+ cpr: "cost_per",
44
+ cost_per_lead: "cost_per_lead_fb",
45
+ cost_per_purchase: "cost_per_purchase_fb",
46
+ cost_per_add_to_cart: "cost_per_add_to_cart_fb",
47
+ cost_per_registration: "cost_per_complete_registration_fb",
48
+ roas: "website_purchase_roas",
49
+ purchase_roas: "website_purchase_roas",
50
+ spend: "spent",
51
+ amount_spent: "spent",
52
+ link_clicks: "link_click",
53
+ leads: "offsite_conversion.fb_pixel_lead",
54
+ purchases: "offsite_conversion.fb_pixel_purchase"
55
+ };
56
+ var CONDITION_HELP = 'write a condition as "cost_per_result>20", "ctr<0.8", "spend between 10 and 50" or "frequency outside 1 and 3" \u2014 money in the account currency, a dot or a comma for decimals (12.5 or 12,5)';
57
+ function metric(raw) {
58
+ const key = raw.trim().toLowerCase();
59
+ const dot = key.lastIndexOf(".");
60
+ const prefix = dot > 0 && !key.startsWith("offsite_conversion") ? key.slice(0, dot + 1) : "";
61
+ const base = prefix ? key.slice(prefix.length) : key;
62
+ return `${prefix}${METRIC_ALIASES[base] ?? base}`;
63
+ }
64
+ function number(raw) {
65
+ const cleaned = raw.replace(/\s/g, "");
66
+ const mark = decimalMarkShown(cleaned) ?? (cleaned.includes(",") ? void 0 : ".");
67
+ if (!mark) {
68
+ throw new Error(
69
+ `"${raw}" is ambiguous \u2014 it could be ${cleaned.replace(/,/g, "")} or ${cleaned.replace(",", ".")}; write it with a dot for decimals and no thousands separator (1234 or 1.234)`
70
+ );
71
+ }
72
+ const plain = cleaned.split(mark === "," ? "." : ",").join("").replace(",", ".");
73
+ const value = plain === "" ? Number.NaN : Number(plain);
74
+ if (!Number.isFinite(value)) throw new Error(`"${raw}" is not a number \u2014 ${CONDITION_HELP}`);
75
+ return value;
76
+ }
77
+ function ruleConditionFromFlag(raw) {
78
+ const range = /^\s*([\w.:]+)\s+(between|outside)\s+(-?[\d.,]+)\s+and\s+(-?[\d.,]+)\s*$/i.exec(raw);
79
+ if (range?.[1] && range[2] && range[3] && range[4]) {
80
+ return {
81
+ field: metric(range[1]),
82
+ operator: range[2].toLowerCase() === "between" ? "IN_RANGE" : "NOT_IN_RANGE",
83
+ value: [number(range[3]), number(range[4])]
84
+ };
85
+ }
86
+ const compare = /^\s*([\w.:]+)\s*(>|<|=|\babove\b|\bbelow\b)\s*(-?[\d.,]+)\s*$/i.exec(raw);
87
+ if (compare?.[1] && compare[2] && compare[3]) {
88
+ const word = compare[2].toLowerCase();
89
+ const operator = word === ">" || word === "above" ? "GREATER_THAN" : word === "<" || word === "below" ? "LESS_THAN" : "EQUAL";
90
+ return { field: metric(compare[1]), operator, value: number(compare[3]) };
91
+ }
92
+ throw new Error(`could not read --when "${raw}" \u2014 ${CONDITION_HELP}`);
93
+ }
94
+ var LEVELS = {
95
+ ad: "AD",
96
+ ads: "AD",
97
+ adset: "ADSET",
98
+ adsets: "ADSET",
99
+ "ad-set": "ADSET",
100
+ campaign: "CAMPAIGN",
101
+ campaigns: "CAMPAIGN"
102
+ };
103
+ var EVALUATION_FLAGS = [
104
+ "apply-to",
105
+ "ids",
106
+ "in-campaigns",
107
+ "in-adsets",
108
+ "name-contains",
109
+ "when",
110
+ "window",
111
+ "realtime"
112
+ ];
113
+ var EXECUTION_FLAGS = ["action", "by", "cap", "max-times", "every", "notify-user-ids"];
114
+ var SCHEDULE_FLAGS = ["schedule", "at", "between", "days"];
115
+ function given(flags, names) {
116
+ return names.some((name) => {
117
+ const value = flags[name];
118
+ return Array.isArray(value) ? value.length > 0 : value !== void 0 && value !== false && value !== "";
119
+ });
120
+ }
121
+ function ruleLevel(flags) {
122
+ const raw = flags["apply-to"];
123
+ if (!raw) return isRotate(flags) ? "AD" : void 0;
124
+ const level = LEVELS[raw.toLowerCase()];
125
+ if (!level) throw new Error(`--apply-to takes ad, adset or campaign \u2014 not "${raw}"`);
126
+ return level;
127
+ }
128
+ function listFilter(field, ids) {
129
+ return ids?.length ? [{ field, operator: "IN", value: ids }] : [];
130
+ }
131
+ function isRotate(flags) {
132
+ return flags.action?.toLowerCase() === "rotate";
133
+ }
134
+ function scopeFilters(flags, level) {
135
+ return [
136
+ ...level ? [{ field: "entity_type", operator: "EQUAL", value: level }] : [],
137
+ ...listFilter(isRotate(flags) ? "adset.id" : "id", flags.ids),
138
+ ...listFilter("campaign.id", flags["in-campaigns"]),
139
+ ...listFilter("adset.id", flags["in-adsets"]),
140
+ ...flags["name-contains"] ? [{ field: "name", operator: "CONTAIN", value: flags["name-contains"] }] : []
141
+ ];
142
+ }
143
+ function evaluationFromFlags(flags) {
144
+ const level = ruleLevel(flags);
145
+ if (!level && !flags.ids?.length) {
146
+ throw new Error(
147
+ "say what the rule watches: --apply-to ad|adset|campaign (every one in the account), plus --ids to name them"
148
+ );
149
+ }
150
+ const conditions = (flags.when ?? []).map(ruleConditionFromFlag);
151
+ const [first, ...rest] = conditions;
152
+ const trigger = flags.realtime ? first : void 0;
153
+ if (flags.realtime && !trigger) throw new Error("--realtime needs a --when condition to react to");
154
+ const filters = scopeFilters(flags, level);
155
+ if (conditions.length > 0 || flags.window) {
156
+ const preset = (flags.window ?? (flags.realtime ? "TODAY" : "LAST_7D")).toUpperCase();
157
+ filters.push({ field: "time_preset", operator: "EQUAL", value: preset });
158
+ }
159
+ filters.push(...trigger ? rest : conditions);
160
+ return {
161
+ evaluation_type: trigger ? "TRIGGER" : "SCHEDULE",
162
+ filters,
163
+ ...trigger ? { trigger: { type: "STATS_CHANGE", ...trigger } } : {}
164
+ };
165
+ }
166
+ var ACTIONS = {
167
+ pause: { type: "PAUSE" },
168
+ unpause: { type: "UNPAUSE" },
169
+ "turn-on": { type: "UNPAUSE" },
170
+ notify: { type: "NOTIFICATION" },
171
+ "raise-budget": { type: "CHANGE_BUDGET", sign: 1 },
172
+ "lower-budget": { type: "CHANGE_BUDGET", sign: -1 },
173
+ "raise-bid": { type: "CHANGE_BID", sign: 1 },
174
+ "lower-bid": { type: "CHANGE_BID", sign: -1 },
175
+ rotate: { type: "ROTATE" }
176
+ };
177
+ function minutes(raw) {
178
+ const match = /^\s*(\d+)\s*(m|min|h|d)?\s*$/i.exec(raw);
179
+ if (!match?.[1]) throw new Error(`--every takes minutes, or hours/days like 12h or 7d \u2014 not "${raw}"`);
180
+ const unit = (match[2] ?? "m").toLowerCase();
181
+ return Number(match[1]) * (unit === "d" ? 1440 : unit === "h" ? 60 : 1);
182
+ }
183
+ function changeSpec(flags, sign) {
184
+ if (!flags.by)
185
+ throw new Error(`--action ${flags.action} needs --by: a percentage like 20% or an amount in the account currency`);
186
+ const percent = flags.by.trim().endsWith("%");
187
+ const amount = number(flags.by.replace("%", "")) * sign;
188
+ return {
189
+ amount,
190
+ unit: percent ? "PERCENTAGE" : "ACCOUNT_CURRENCY",
191
+ ...flags.cap ? { limit: number(flags.cap) } : {}
192
+ };
193
+ }
194
+ function executionFromFlags(flags, level) {
195
+ const action = flags.action ? ACTIONS[flags.action.toLowerCase()] : void 0;
196
+ if (!action) {
197
+ throw new Error(
198
+ `--action takes ${Object.keys(ACTIONS).join(", ")}${flags.action ? ` \u2014 not "${flags.action}"` : ""}`
199
+ );
200
+ }
201
+ const type = action.type === "CHANGE_BUDGET" && level === "CAMPAIGN" ? "CHANGE_CAMPAIGN_BUDGET" : action.type;
202
+ const options = [];
203
+ if (action.sign) options.push({ field: "change_spec", operator: "EQUAL", value: changeSpec(flags, action.sign) });
204
+ if (flags["max-times"])
205
+ options.push({ field: "execution_count_limit", operator: "EQUAL", value: number(flags["max-times"]) });
206
+ if (flags.every) options.push({ field: "action_frequency", operator: "EQUAL", value: minutes(flags.every) });
207
+ if (flags["notify-user-ids"]?.length)
208
+ options.push({ field: "user_ids", operator: "EQUAL", value: flags["notify-user-ids"] });
209
+ return { execution_type: type, ...options.length > 0 ? { execution_options: options } : {} };
210
+ }
211
+ var DAY_NUMBERS = { sun: 0, mon: 1, tue: 2, wed: 3, thu: 4, fri: 5, sat: 6 };
212
+ function clockMinutes(raw) {
213
+ const match = /^\s*(\d{1,2}):(\d{2})\s*$/.exec(raw);
214
+ if (!match?.[1] || !match[2]) throw new Error(`times are HH:MM on the half hour, like 09:30 \u2014 not "${raw}"`);
215
+ return Number(match[1]) * 60 + Number(match[2]);
216
+ }
217
+ function days(raw) {
218
+ if (!raw) return void 0;
219
+ return raw.split(",").map((day) => {
220
+ const value = DAY_NUMBERS[day.trim().slice(0, 3).toLowerCase()];
221
+ if (value === void 0) throw new Error(`--days takes mon,tue,wed,thu,fri,sat,sun \u2014 not "${day}"`);
222
+ return value;
223
+ });
224
+ }
225
+ var SCHEDULE_TYPES = {
226
+ daily: "DAILY",
227
+ hourly: "HOURLY",
228
+ "half-hourly": "SEMI_HOURLY",
229
+ "semi-hourly": "SEMI_HOURLY",
230
+ custom: "CUSTOM"
231
+ };
232
+ function scheduleFromFlags(flags) {
233
+ const custom = Boolean(flags.at?.length || flags.between || flags.days);
234
+ const type = flags.schedule ? SCHEDULE_TYPES[flags.schedule.toLowerCase()] : custom ? "CUSTOM" : "DAILY";
235
+ if (!type) throw new Error(`--schedule takes daily, hourly, half-hourly or custom \u2014 not "${flags.schedule}"`);
236
+ if (type !== "CUSTOM" && custom) {
237
+ throw new Error(
238
+ `--at, --between and --days set a custom timetable, which --schedule ${flags.schedule} does not take \u2014 use --schedule custom (or leave --schedule out)`
239
+ );
240
+ }
241
+ if (type !== "CUSTOM") return { schedule_type: type };
242
+ const dayList = days(flags.days);
243
+ const withDays = dayList ? { days: dayList } : {};
244
+ const items = (flags.at ?? []).map((at) => ({
245
+ start_minute: clockMinutes(at),
246
+ ...withDays
247
+ }));
248
+ if (flags.between) {
249
+ const [from, to] = flags.between.split("-");
250
+ if (!from || !to) throw new Error(`--between takes a time range like 09:00-17:00 \u2014 not "${flags.between}"`);
251
+ items.push({ start_minute: clockMinutes(from), end_minute: clockMinutes(to), ...withDays });
252
+ }
253
+ return { schedule_type: "CUSTOM", schedule: items.length > 0 ? items : [withDays] };
254
+ }
255
+ var READ_ONLY_RULE_KEYS = /* @__PURE__ */ new Set([
256
+ "id",
257
+ "account_id",
258
+ "created_time",
259
+ "updated_time",
260
+ "created_by",
261
+ "disable_error_code",
262
+ "description",
263
+ "currencyCode"
264
+ ]);
265
+ function ruleFileForStaging(raw, { update = false } = {}) {
266
+ const unwrapped = raw && typeof raw === "object" && !Array.isArray(raw) && "data" in raw ? raw.data : raw;
267
+ const list = Array.isArray(unwrapped) ? unwrapped : [unwrapped];
268
+ if (list.length !== 1) {
269
+ throw new Error(`holds ${list.length} rules \u2014 keep the one to stage`);
270
+ }
271
+ const rule = list[0];
272
+ if (!rule || typeof rule !== "object" || Array.isArray(rule)) {
273
+ throw new Error("must contain a JSON object with the rule");
274
+ }
275
+ return Object.fromEntries(
276
+ Object.entries(rule).filter(([key]) => !READ_ONLY_RULE_KEYS.has(key) && !(update && key === "status"))
277
+ );
278
+ }
279
+ function rulePayloadFromFlags(flags, { update = false } = {}) {
280
+ if (flags.realtime && given(flags, SCHEDULE_FLAGS)) {
281
+ throw new Error(
282
+ "--realtime rules react the moment a metric changes and run on no schedule \u2014 drop --schedule/--at/--between/--days, or drop --realtime"
283
+ );
284
+ }
285
+ const evaluation = !update || given(flags, EVALUATION_FLAGS) ? evaluationFromFlags(flags) : void 0;
286
+ const level = ruleLevel(flags);
287
+ const execution = !update || given(flags, EXECUTION_FLAGS) ? executionFromFlags(flags, level) : void 0;
288
+ const realtime = evaluation?.evaluation_type === "TRIGGER";
289
+ const schedule = !realtime && (!update || given(flags, SCHEDULE_FLAGS)) ? scheduleFromFlags(flags) : void 0;
290
+ return {
291
+ ...flags.name ? { name: flags.name } : {},
292
+ ...flags.status ? { status: flags.status.toUpperCase() } : {},
293
+ ...evaluation ? { evaluation_spec: evaluation } : {},
294
+ ...execution ? { execution_spec: execution } : {},
295
+ ...schedule ? { schedule_spec: schedule } : {}
296
+ };
297
+ }
298
+
299
+ // src/commands/ads/meta/rule-writes.ts
300
+ var STAGED_NOTE = "Staged until publish \u2014 review with `baker ads meta draft`.";
301
+ var ruleArgs = {
302
+ "account-id": { type: "string", description: "Numeric account ID or act_N" },
303
+ name: { type: "string", description: "Rule name, shown in Ads Manager \u2192 Automated rules" },
304
+ "apply-to": {
305
+ type: "string",
306
+ description: "What the rule watches and acts on: ad | adset | campaign. Alone, it means every one in the account."
307
+ },
308
+ ids: {
309
+ type: "string",
310
+ description: "Only these ads / ad sets / campaigns (repeatable or comma-separated; meta_temp_* refs from this chat work). With --action rotate: the ad sets whose ads take turns"
311
+ },
312
+ "in-campaigns": { type: "string", description: "Only what sits in these campaigns (repeatable or comma-separated)" },
313
+ "in-adsets": { type: "string", description: "Only what sits in these ad sets (repeatable or comma-separated)" },
314
+ "name-contains": { type: "string", description: "Only objects whose name contains this text" },
315
+ when: {
316
+ type: "string",
317
+ description: 'A condition, repeatable (all must hold): "cost_per_result>20", "ctr<0.8", "spend between 10 and 50", "frequency outside 1 and 3". Money in the account currency. Metrics: cost_per_result, cpa, cpc, cpm, ctr, frequency, spend, results, impressions, reach, roas, cost_per_lead, cost_per_purchase, or any Meta rule field.'
318
+ },
319
+ window: {
320
+ type: "string",
321
+ description: "Time range the metrics are read over (default LAST_7D \u2014 the last 7 full days): TODAY, YESTERDAY, LAST_3D, LAST_7D, LAST_14D, LAST_30D, LAST_7_DAYS (today included), LIFETIME, THIS_MONTH"
322
+ },
323
+ realtime: {
324
+ type: "boolean",
325
+ description: "React the moment the first --when condition becomes true (a trigger rule) instead of on a schedule. Only pause, unpause and notify; the window must include today."
326
+ },
327
+ action: {
328
+ type: "string",
329
+ description: "pause | unpause | notify | raise-budget | lower-budget | raise-bid | lower-bid | rotate"
330
+ },
331
+ by: { type: "string", description: "For a budget or bid change: 20% or an amount in the account currency" },
332
+ cap: {
333
+ type: "string",
334
+ description: "Highest (raise) or lowest (lower) the budget or bid may reach, account currency"
335
+ },
336
+ "max-times": { type: "string", description: "Change each object at most this many times" },
337
+ every: { type: "string", description: "Wait at least this long before changing the same object again: 90, 12h, 7d" },
338
+ "notify-user-ids": {
339
+ type: "string",
340
+ description: "Facebook user ids to notify (default: whoever connected Meta); repeatable or comma-separated"
341
+ },
342
+ schedule: { type: "string", description: "daily (default) | hourly | half-hourly | custom" },
343
+ at: { type: "string", description: "Custom schedule: run at HH:MM (half hours), repeatable" },
344
+ between: { type: "string", description: "Custom schedule: run every 30 minutes in this window, e.g. 09:00-17:00" },
345
+ days: { type: "string", description: "Custom schedule: only these days, e.g. mon,wed,fri" },
346
+ file: {
347
+ type: "string",
348
+ description: "JSON with the full rule \u2014 {name, status, evaluation_spec, execution_spec, schedule_spec} in Meta's shape. What `rules --rule-id <id>` prints can be saved and passed as it is (its id and timestamps are left out). Flags override its name and status."
349
+ }
350
+ };
351
+ function schemaArgs(args) {
352
+ return Object.fromEntries(Object.entries(args).map(([key, arg]) => [key, { ...arg, required: false }]));
353
+ }
354
+ function listValues(rawArgs, flag, parsed) {
355
+ return repeatedValues(rawArgs, flag, parsed).flatMap((value) => value.split(",")).map((value) => value.trim()).filter(Boolean);
356
+ }
357
+ function ruleFlagsFromArgs(args, rawArgs) {
358
+ const text = (key) => typeof args[key] === "string" && args[key] !== "" ? String(args[key]) : void 0;
359
+ return {
360
+ name: text("name"),
361
+ status: text("status"),
362
+ "apply-to": text("apply-to"),
363
+ ids: listValues(rawArgs, "ids", args.ids),
364
+ "in-campaigns": listValues(rawArgs, "in-campaigns", args["in-campaigns"]),
365
+ "in-adsets": listValues(rawArgs, "in-adsets", args["in-adsets"]),
366
+ "name-contains": text("name-contains"),
367
+ when: repeatedValues(rawArgs, "when", args.when),
368
+ window: text("window"),
369
+ realtime: args.realtime === true,
370
+ action: text("action"),
371
+ by: text("by"),
372
+ cap: text("cap"),
373
+ "max-times": text("max-times"),
374
+ every: text("every"),
375
+ "notify-user-ids": listValues(rawArgs, "notify-user-ids", args["notify-user-ids"]),
376
+ schedule: text("schedule"),
377
+ at: repeatedValues(rawArgs, "at", args.at),
378
+ between: text("between"),
379
+ days: listValues(rawArgs, "days", args.days).join(",") || void 0
380
+ };
381
+ }
382
+ function payloadOrFail(flags, update) {
383
+ try {
384
+ return rulePayloadFromFlags(flags, { update });
385
+ } catch (err) {
386
+ failWriteValidation(err instanceof Error ? err.message : String(err));
387
+ }
388
+ }
389
+ function loadRuleFile(path, update) {
390
+ if (typeof path !== "string" || path.length === 0) {
391
+ return {};
392
+ }
393
+ try {
394
+ return ruleFileForStaging(JSON.parse(readFileSync(path, "utf8")), { update });
395
+ } catch (err) {
396
+ failWriteValidation(`${path}: ${err instanceof Error ? err.message : String(err)}`);
397
+ }
398
+ }
399
+ function rulePayload(args, rawArgs, update) {
400
+ const file = loadRuleFile(args.file, update);
401
+ const flags = ruleFlagsFromArgs(args, rawArgs);
402
+ const fromFile = Object.keys(file).length > 0;
403
+ const fromFlags = fromFile ? payloadOrFail(flags, true) : payloadOrFail(flags, update);
404
+ return { ...file, ...fromFlags };
405
+ }
406
+ registerSchema({
407
+ command: "ads.meta.rules.create",
408
+ description: `Stage a new Meta automated rule \u2014 it is created at publish and then runs on Meta, unattended. Shorthand: --apply-to ad|adset|campaign [--ids \u2026] --when "cost_per_result>20" [--window LAST_7D] --action pause|unpause|notify|raise-budget|lower-budget|raise-bid|lower-bid|rotate [--by 20%] [--cap 500] [--schedule daily|hourly|custom --at 09:00 --days mon,fri] [--realtime]. Or --file with the full rule in Meta's shape. Fields Meta compares: Insights metrics (cost_per, spent, results, impressions, reach, frequency, cpc, cpm, ctr, cpa, link_ctr, website_purchase_roas, cost_per_lead_fb, \u2026) and metadata (name, daily_budget, hours_since_creation, effective_status, \u2026), optionally prefixed ad./adset./campaign. Starts switched on unless --status DISABLED.`,
409
+ args: schemaArgs({ ...ruleArgs, status: { type: "string", description: "ENABLED (default) or DISABLED" } })
410
+ });
411
+ var rulesCreateCommand = defineCommand({
412
+ meta: {
413
+ name: "create",
414
+ description: `Stage a new Meta automated rule. ${STAGED_NOTE}
415
+ It runs on Meta from publish on, with nobody watching \u2014 say what it will do back to the user before publishing.
416
+ Examples:
417
+ baker ads meta rules create --name "Stop expensive ads" --apply-to ad --when "cost_per_result>20" --action pause
418
+ baker ads meta rules create --name "Scale winners" --apply-to adset --in-campaigns 6123 --when "roas>3" --when "spend>50" --window LAST_3D --action raise-budget --by 20% --cap 500 --max-times 3
419
+ baker ads meta rules create --name "CPM alarm" --apply-to campaign --when "cpm>15" --window TODAY --action notify --realtime
420
+ baker ads meta rules create --file rule.json`
421
+ },
422
+ args: { ...ruleArgs, status: { type: "string", description: "ENABLED (default) or DISABLED" } },
423
+ run: async ({ args, rawArgs }) => {
424
+ const accountId = bareAccountId(args);
425
+ await stageOp({ kind: "adRule.create", accountId, payload: rulePayload(args, rawArgs, false) });
426
+ }
427
+ });
428
+ registerSchema({
429
+ command: "ads.meta.rules.update",
430
+ description: "Stage a change to a live rule (or amend one staged in this chat by its meta_temp_* ref). Each part you change is replaced whole: any of --apply-to/--ids/--in-*/--name-contains/--when/--window/--realtime rebuilds what it checks, --action/--by/--cap/--max-times/--every/--notify-user-ids what it does, --schedule/--at/--between/--days when it runs. Restate every condition you keep \u2014 read it first with `rules --rule-id`.",
431
+ args: { id: { type: "positional", description: "Rule id", required: true }, ...schemaArgs(ruleArgs) }
432
+ });
433
+ var rulesUpdateCommand = defineCommand({
434
+ meta: {
435
+ name: "update",
436
+ description: `Stage a change to a rule. ${STAGED_NOTE}
437
+ Each part you change is replaced whole \u2014 restate every condition you keep (read the rule first: \`rules --rule-id <id>\`). Switch with enable/disable; remove with delete.
438
+ Example: baker ads meta rules update 1132635173044914 --apply-to ad --when "cost_per_result>25" --window LAST_7D`
439
+ },
440
+ args: { id: { type: "positional", description: "Rule id or meta_temp_* ref", required: true }, ...ruleArgs },
441
+ run: async ({ args, rawArgs }) => {
442
+ const accountId = bareAccountId(args);
443
+ const target = requireTarget(args, "rule");
444
+ const payload = rulePayload(args, rawArgs, true);
445
+ if (payload.status === "DELETED") {
446
+ failWriteValidation(
447
+ "update does not delete \u2014 use `baker ads meta rules delete <id>` if the user asked to remove it"
448
+ );
449
+ }
450
+ await stageOp({ kind: "adRule.update", accountId, target, payload });
451
+ }
452
+ });
453
+ var STATUS_COMMANDS = {
454
+ enable: { status: "ENABLED", note: "It starts running on its schedule from publish on." },
455
+ disable: { status: "DISABLED", note: "It stops running and keeps its settings; enable brings it back." },
456
+ delete: {
457
+ status: "DELETED",
458
+ note: "Deleting is permanent \u2014 Meta removes the rule from the account. Prefer disable unless the user asked to delete it."
459
+ }
460
+ };
461
+ function statusCommand(name) {
462
+ const { status, note } = STATUS_COMMANDS[name];
463
+ registerSchema({
464
+ command: `ads.meta.rules.${name}`,
465
+ description: `Stage ${name} for an automated rule. ${note}`,
466
+ args: {
467
+ id: { type: "positional", description: "Rule id", required: true },
468
+ "account-id": { type: "string", description: "Meta ad account ID (act_123)", required: false }
469
+ }
470
+ });
471
+ return defineCommand({
472
+ meta: { name, description: `Stage ${name} for an automated rule. ${note} ${STAGED_NOTE}` },
473
+ args: { id: { type: "positional", description: "Rule id", required: true }, "account-id": ruleArgs["account-id"] },
474
+ run: async ({ args }) => {
475
+ const accountId = bareAccountId(args);
476
+ await stageOp({
477
+ kind: "adRule.update",
478
+ accountId,
479
+ target: requireTarget(args, "rule"),
480
+ payload: { status }
481
+ });
482
+ }
483
+ });
484
+ }
485
+ var rulesEnableCommand = statusCommand("enable");
486
+ var rulesDisableCommand = statusCommand("disable");
487
+ var rulesDeleteCommand = statusCommand("delete");
488
+ registerSchema({
489
+ command: "ads.meta.rules.run",
490
+ description: "Stage running an automated rule once, at publish \u2014 it acts on whatever matches it then, whatever its schedule and even while it is off. Check what it would act on first with `rules preview <id>`.",
491
+ args: {
492
+ id: { type: "positional", description: "Rule id", required: true },
493
+ "account-id": { type: "string", description: "Meta ad account ID (act_123)", required: false }
494
+ }
495
+ });
496
+ var rulesRunCommand = defineCommand({
497
+ meta: {
498
+ name: "run",
499
+ description: `Stage running a rule once, at publish. ${STAGED_NOTE}
500
+ The rule acts on whatever matches it when the chat is published (pauses, budget changes, notifications) \u2014 Meta runs it then, whatever its schedule, even while it is off. Start here: baker ads meta rules preview <id>, then baker ads meta rules history --rule-id <id> after publishing.
501
+ Example: baker ads meta rules run 1132635173044914`
502
+ },
503
+ args: { id: { type: "positional", description: "Rule id", required: true }, "account-id": ruleArgs["account-id"] },
504
+ run: async ({ args }) => {
505
+ const accountId = bareAccountId(args);
506
+ const target = requireTarget(args, "rule");
507
+ if (target.startsWith("meta_temp_")) {
508
+ failWriteValidation("a rule this chat creates exists only at publish \u2014 run it in a later chat, once it is live");
509
+ }
510
+ await stageOp({ kind: "adRule.update", accountId, target, payload: { run_now: true } });
511
+ }
512
+ });
513
+ export {
514
+ ruleFlagsFromArgs,
515
+ rulesCreateCommand,
516
+ rulesDeleteCommand,
517
+ rulesDisableCommand,
518
+ rulesEnableCommand,
519
+ rulesRunCommand,
520
+ rulesUpdateCommand
521
+ };
522
+ //# sourceMappingURL=rule-writes-6ZCAJDYZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/meta/rule-writes.ts","../src/commands/ads/meta/rule-flags.ts"],"sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { defineCommand } from \"citty\";\nimport { repeatedValues } from \"../../../lib/repeatedFlags.ts\";\nimport { registerSchema } from \"../../../schemas.ts\";\nimport { type RuleFlags, ruleFileForStaging, rulePayloadFromFlags } from \"./rule-flags.ts\";\nimport { bareAccountId, failWriteValidation, requireTarget, stageOp } from \"./write-shared.ts\";\n\n/**\n * Staged Meta automated-rule writes. Nothing here reaches Meta: each command\n * stages an op on this chat's draft, and the rule is created, changed or\n * deleted when the chat publishes — after anything it names that the same\n * draft creates.\n */\n\nconst STAGED_NOTE = \"Staged until publish — review with `baker ads meta draft`.\";\n\nconst ruleArgs = {\n \"account-id\": { type: \"string\", description: \"Numeric account ID or act_N\" },\n name: { type: \"string\", description: \"Rule name, shown in Ads Manager → Automated rules\" },\n \"apply-to\": {\n type: \"string\",\n description: \"What the rule watches and acts on: ad | adset | campaign. Alone, it means every one in the account.\",\n },\n ids: {\n type: \"string\",\n description:\n \"Only these ads / ad sets / campaigns (repeatable or comma-separated; meta_temp_* refs from this chat work). With --action rotate: the ad sets whose ads take turns\",\n },\n \"in-campaigns\": { type: \"string\", description: \"Only what sits in these campaigns (repeatable or comma-separated)\" },\n \"in-adsets\": { type: \"string\", description: \"Only what sits in these ad sets (repeatable or comma-separated)\" },\n \"name-contains\": { type: \"string\", description: \"Only objects whose name contains this text\" },\n when: {\n type: \"string\",\n description:\n 'A condition, repeatable (all must hold): \"cost_per_result>20\", \"ctr<0.8\", \"spend between 10 and 50\", \"frequency outside 1 and 3\". Money in the account currency. Metrics: cost_per_result, cpa, cpc, cpm, ctr, frequency, spend, results, impressions, reach, roas, cost_per_lead, cost_per_purchase, or any Meta rule field.',\n },\n window: {\n type: \"string\",\n description:\n \"Time range the metrics are read over (default LAST_7D — the last 7 full days): TODAY, YESTERDAY, LAST_3D, LAST_7D, LAST_14D, LAST_30D, LAST_7_DAYS (today included), LIFETIME, THIS_MONTH\",\n },\n realtime: {\n type: \"boolean\",\n description:\n \"React the moment the first --when condition becomes true (a trigger rule) instead of on a schedule. Only pause, unpause and notify; the window must include today.\",\n },\n action: {\n type: \"string\",\n description: \"pause | unpause | notify | raise-budget | lower-budget | raise-bid | lower-bid | rotate\",\n },\n by: { type: \"string\", description: \"For a budget or bid change: 20% or an amount in the account currency\" },\n cap: {\n type: \"string\",\n description: \"Highest (raise) or lowest (lower) the budget or bid may reach, account currency\",\n },\n \"max-times\": { type: \"string\", description: \"Change each object at most this many times\" },\n every: { type: \"string\", description: \"Wait at least this long before changing the same object again: 90, 12h, 7d\" },\n \"notify-user-ids\": {\n type: \"string\",\n description: \"Facebook user ids to notify (default: whoever connected Meta); repeatable or comma-separated\",\n },\n schedule: { type: \"string\", description: \"daily (default) | hourly | half-hourly | custom\" },\n at: { type: \"string\", description: \"Custom schedule: run at HH:MM (half hours), repeatable\" },\n between: { type: \"string\", description: \"Custom schedule: run every 30 minutes in this window, e.g. 09:00-17:00\" },\n days: { type: \"string\", description: \"Custom schedule: only these days, e.g. mon,wed,fri\" },\n file: {\n type: \"string\",\n description:\n \"JSON with the full rule — {name, status, evaluation_spec, execution_spec, schedule_spec} in Meta's shape. What `rules --rule-id <id>` prints can be saved and passed as it is (its id and timestamps are left out). Flags override its name and status.\",\n },\n} as const;\n\n/** `ruleArgs` as `baker schema` lists them: every flag optional, as the shorthand and --file trade off. */\nfunction schemaArgs(\n args: Record<string, { type: string; description: string }>,\n): Record<string, { type: string; description: string; required: boolean }> {\n return Object.fromEntries(Object.entries(args).map(([key, arg]) => [key, { ...arg, required: false }]));\n}\n\nfunction listValues(rawArgs: readonly string[] | undefined, flag: string, parsed: unknown): string[] {\n return repeatedValues(rawArgs, flag, parsed)\n .flatMap((value) => value.split(\",\"))\n .map((value) => value.trim())\n .filter(Boolean);\n}\n\n/** The command line as rule flags, with every repeatable flag read whole (citty keeps only the last). */\nexport function ruleFlagsFromArgs(args: Record<string, unknown>, rawArgs: readonly string[] | undefined): RuleFlags {\n const text = (key: string) => (typeof args[key] === \"string\" && args[key] !== \"\" ? String(args[key]) : undefined);\n return {\n name: text(\"name\"),\n status: text(\"status\"),\n \"apply-to\": text(\"apply-to\"),\n ids: listValues(rawArgs, \"ids\", args.ids),\n \"in-campaigns\": listValues(rawArgs, \"in-campaigns\", args[\"in-campaigns\"]),\n \"in-adsets\": listValues(rawArgs, \"in-adsets\", args[\"in-adsets\"]),\n \"name-contains\": text(\"name-contains\"),\n when: repeatedValues(rawArgs, \"when\", args.when),\n window: text(\"window\"),\n realtime: args.realtime === true,\n action: text(\"action\"),\n by: text(\"by\"),\n cap: text(\"cap\"),\n \"max-times\": text(\"max-times\"),\n every: text(\"every\"),\n \"notify-user-ids\": listValues(rawArgs, \"notify-user-ids\", args[\"notify-user-ids\"]),\n schedule: text(\"schedule\"),\n at: repeatedValues(rawArgs, \"at\", args.at),\n between: text(\"between\"),\n days: listValues(rawArgs, \"days\", args.days).join(\",\") || undefined,\n };\n}\n\nfunction payloadOrFail(flags: RuleFlags, update: boolean): Record<string, unknown> {\n try {\n return rulePayloadFromFlags(flags, { update });\n } catch (err) {\n failWriteValidation(err instanceof Error ? err.message : String(err));\n }\n}\n\nfunction loadRuleFile(path: unknown, update: boolean): Record<string, unknown> {\n if (typeof path !== \"string\" || path.length === 0) {\n return {};\n }\n try {\n return ruleFileForStaging(JSON.parse(readFileSync(path, \"utf8\")) as unknown, { update });\n } catch (err) {\n failWriteValidation(`${path}: ${err instanceof Error ? err.message : String(err)}`);\n }\n}\n\n/** A `--file` rule as the base, the flags on top: name and status always, a whole spec when its flags are given. */\nfunction rulePayload(args: Record<string, unknown>, rawArgs: readonly string[] | undefined, update: boolean) {\n const file = loadRuleFile(args.file, update);\n const flags = ruleFlagsFromArgs(args, rawArgs);\n const fromFile = Object.keys(file).length > 0;\n const fromFlags = fromFile ? payloadOrFail(flags, true) : payloadOrFail(flags, update);\n return { ...file, ...fromFlags };\n}\n\nregisterSchema({\n command: \"ads.meta.rules.create\",\n description:\n 'Stage a new Meta automated rule — it is created at publish and then runs on Meta, unattended. Shorthand: --apply-to ad|adset|campaign [--ids …] --when \"cost_per_result>20\" [--window LAST_7D] --action pause|unpause|notify|raise-budget|lower-budget|raise-bid|lower-bid|rotate [--by 20%] [--cap 500] [--schedule daily|hourly|custom --at 09:00 --days mon,fri] [--realtime]. Or --file with the full rule in Meta\\'s shape. Fields Meta compares: Insights metrics (cost_per, spent, results, impressions, reach, frequency, cpc, cpm, ctr, cpa, link_ctr, website_purchase_roas, cost_per_lead_fb, …) and metadata (name, daily_budget, hours_since_creation, effective_status, …), optionally prefixed ad./adset./campaign. Starts switched on unless --status DISABLED.',\n args: schemaArgs({ ...ruleArgs, status: { type: \"string\", description: \"ENABLED (default) or DISABLED\" } }),\n});\n\nexport const rulesCreateCommand = defineCommand({\n meta: {\n name: \"create\",\n description: `Stage a new Meta automated rule. ${STAGED_NOTE}\nIt runs on Meta from publish on, with nobody watching — say what it will do back to the user before publishing.\nExamples:\n baker ads meta rules create --name \"Stop expensive ads\" --apply-to ad --when \"cost_per_result>20\" --action pause\n baker ads meta rules create --name \"Scale winners\" --apply-to adset --in-campaigns 6123 --when \"roas>3\" --when \"spend>50\" --window LAST_3D --action raise-budget --by 20% --cap 500 --max-times 3\n baker ads meta rules create --name \"CPM alarm\" --apply-to campaign --when \"cpm>15\" --window TODAY --action notify --realtime\n baker ads meta rules create --file rule.json`,\n },\n args: { ...ruleArgs, status: { type: \"string\", description: \"ENABLED (default) or DISABLED\" } },\n run: async ({ args, rawArgs }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n await stageOp({ kind: \"adRule.create\", accountId, payload: rulePayload(args, rawArgs, false) });\n },\n});\n\nregisterSchema({\n command: \"ads.meta.rules.update\",\n description:\n \"Stage a change to a live rule (or amend one staged in this chat by its meta_temp_* ref). Each part you change is replaced whole: any of --apply-to/--ids/--in-*/--name-contains/--when/--window/--realtime rebuilds what it checks, --action/--by/--cap/--max-times/--every/--notify-user-ids what it does, --schedule/--at/--between/--days when it runs. Restate every condition you keep — read it first with `rules --rule-id`.\",\n args: { id: { type: \"positional\", description: \"Rule id\", required: true }, ...schemaArgs(ruleArgs) },\n});\n\nexport const rulesUpdateCommand = defineCommand({\n meta: {\n name: \"update\",\n description: `Stage a change to a rule. ${STAGED_NOTE}\nEach part you change is replaced whole — restate every condition you keep (read the rule first: \\`rules --rule-id <id>\\`). Switch with enable/disable; remove with delete.\nExample: baker ads meta rules update 1132635173044914 --apply-to ad --when \"cost_per_result>25\" --window LAST_7D`,\n },\n args: { id: { type: \"positional\", description: \"Rule id or meta_temp_* ref\", required: true }, ...ruleArgs },\n run: async ({ args, rawArgs }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n const target = requireTarget(args as Record<string, unknown>, \"rule\");\n const payload = rulePayload(args, rawArgs, true);\n if (payload.status === \"DELETED\") {\n failWriteValidation(\n \"update does not delete — use `baker ads meta rules delete <id>` if the user asked to remove it\",\n );\n }\n await stageOp({ kind: \"adRule.update\", accountId, target, payload });\n },\n});\n\nconst STATUS_COMMANDS = {\n enable: { status: \"ENABLED\", note: \"It starts running on its schedule from publish on.\" },\n disable: { status: \"DISABLED\", note: \"It stops running and keeps its settings; enable brings it back.\" },\n delete: {\n status: \"DELETED\",\n note: \"Deleting is permanent — Meta removes the rule from the account. Prefer disable unless the user asked to delete it.\",\n },\n} as const;\n\nfunction statusCommand(name: keyof typeof STATUS_COMMANDS) {\n const { status, note } = STATUS_COMMANDS[name];\n registerSchema({\n command: `ads.meta.rules.${name}`,\n description: `Stage ${name} for an automated rule. ${note}`,\n args: {\n id: { type: \"positional\", description: \"Rule id\", required: true },\n \"account-id\": { type: \"string\", description: \"Meta ad account ID (act_123)\", required: false },\n },\n });\n return defineCommand({\n meta: { name, description: `Stage ${name} for an automated rule. ${note} ${STAGED_NOTE}` },\n args: { id: { type: \"positional\", description: \"Rule id\", required: true }, \"account-id\": ruleArgs[\"account-id\"] },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n await stageOp({\n kind: \"adRule.update\",\n accountId,\n target: requireTarget(args as Record<string, unknown>, \"rule\"),\n payload: { status },\n });\n },\n });\n}\n\nexport const rulesEnableCommand = statusCommand(\"enable\");\nexport const rulesDisableCommand = statusCommand(\"disable\");\nexport const rulesDeleteCommand = statusCommand(\"delete\");\n\nregisterSchema({\n command: \"ads.meta.rules.run\",\n description:\n \"Stage running an automated rule once, at publish — it acts on whatever matches it then, whatever its schedule and even while it is off. Check what it would act on first with `rules preview <id>`.\",\n args: {\n id: { type: \"positional\", description: \"Rule id\", required: true },\n \"account-id\": { type: \"string\", description: \"Meta ad account ID (act_123)\", required: false },\n },\n});\n\nexport const rulesRunCommand = defineCommand({\n meta: {\n name: \"run\",\n description: `Stage running a rule once, at publish. ${STAGED_NOTE}\nThe rule acts on whatever matches it when the chat is published (pauses, budget changes, notifications) — Meta runs it then, whatever its schedule, even while it is off. Start here: baker ads meta rules preview <id>, then baker ads meta rules history --rule-id <id> after publishing.\nExample: baker ads meta rules run 1132635173044914`,\n },\n args: { id: { type: \"positional\", description: \"Rule id\", required: true }, \"account-id\": ruleArgs[\"account-id\"] },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n const target = requireTarget(args as Record<string, unknown>, \"rule\");\n if (target.startsWith(\"meta_temp_\")) {\n failWriteValidation(\"a rule this chat creates exists only at publish — run it in a later chat, once it is live\");\n }\n await stageOp({ kind: \"adRule.update\", accountId, target, payload: { run_now: true } });\n },\n});\n","import type {\n AdRuleEvaluationSpec,\n AdRuleExecutionOption,\n AdRuleExecutionSpec,\n AdRuleFilter,\n AdRuleScheduleSpec,\n} from \"@baker/api/ads-meta/adRules\";\nimport { decimalMarkShown } from \"./customer-list.ts\";\n\n/**\n * The flag shorthand for Meta automated rules — `--apply-to ad --when\n * \"cost_per_result>20\" --action pause` — as the rule payload Meta's own\n * vocabulary describes. Pure: the command collects repeated flags and prints\n * refusals; everything here returns a payload or throws a message the agent can\n * act on.\n */\n\n/** Words marketers use for a metric → Meta's rule field. Anything else is passed through as a Meta field. */\nconst METRIC_ALIASES: Readonly<Record<string, string>> = {\n cost_per_result: \"cost_per\",\n cpr: \"cost_per\",\n cost_per_lead: \"cost_per_lead_fb\",\n cost_per_purchase: \"cost_per_purchase_fb\",\n cost_per_add_to_cart: \"cost_per_add_to_cart_fb\",\n cost_per_registration: \"cost_per_complete_registration_fb\",\n roas: \"website_purchase_roas\",\n purchase_roas: \"website_purchase_roas\",\n spend: \"spent\",\n amount_spent: \"spent\",\n link_clicks: \"link_click\",\n leads: \"offsite_conversion.fb_pixel_lead\",\n purchases: \"offsite_conversion.fb_pixel_purchase\",\n};\n\nconst CONDITION_HELP =\n 'write a condition as \"cost_per_result>20\", \"ctr<0.8\", \"spend between 10 and 50\" or \"frequency outside 1 and 3\" — money in the account currency, a dot or a comma for decimals (12.5 or 12,5)';\n\nfunction metric(raw: string): string {\n const key = raw.trim().toLowerCase();\n const dot = key.lastIndexOf(\".\");\n const prefix = dot > 0 && !key.startsWith(\"offsite_conversion\") ? key.slice(0, dot + 1) : \"\";\n const base = prefix ? key.slice(prefix.length) : key;\n return `${prefix}${METRIC_ALIASES[base] ?? base}`;\n}\n\n/**\n * A number as the marketer wrote it: a dot or a comma as the decimal mark\n * (\"12.5\", \"12,50\"), thousands grouped either way (\"1,234.50\", \"12,345,678\",\n * \"1.234,50\"). A lone comma before three digits (\"1,234\") could be either and is\n * refused, never guessed — a hundredfold budget change is not a typo to absorb.\n */\nfunction number(raw: string): number {\n const cleaned = raw.replace(/\\s/g, \"\");\n const mark = decimalMarkShown(cleaned) ?? (cleaned.includes(\",\") ? undefined : \".\");\n if (!mark) {\n throw new Error(\n `\"${raw}\" is ambiguous — it could be ${cleaned.replace(/,/g, \"\")} or ${cleaned.replace(\",\", \".\")}; write it with a dot for decimals and no thousands separator (1234 or 1.234)`,\n );\n }\n const plain = cleaned\n .split(mark === \",\" ? \".\" : \",\")\n .join(\"\")\n .replace(\",\", \".\");\n const value = plain === \"\" ? Number.NaN : Number(plain);\n if (!Number.isFinite(value)) throw new Error(`\"${raw}\" is not a number — ${CONDITION_HELP}`);\n return value;\n}\n\n/** One `--when` condition as a rule filter. */\nexport function ruleConditionFromFlag(raw: string): AdRuleFilter {\n const range = /^\\s*([\\w.:]+)\\s+(between|outside)\\s+(-?[\\d.,]+)\\s+and\\s+(-?[\\d.,]+)\\s*$/i.exec(raw);\n if (range?.[1] && range[2] && range[3] && range[4]) {\n return {\n field: metric(range[1]),\n operator: range[2].toLowerCase() === \"between\" ? \"IN_RANGE\" : \"NOT_IN_RANGE\",\n value: [number(range[3]), number(range[4])],\n };\n }\n const compare = /^\\s*([\\w.:]+)\\s*(>|<|=|\\babove\\b|\\bbelow\\b)\\s*(-?[\\d.,]+)\\s*$/i.exec(raw);\n if (compare?.[1] && compare[2] && compare[3]) {\n const word = compare[2].toLowerCase();\n const operator =\n word === \">\" || word === \"above\" ? \"GREATER_THAN\" : word === \"<\" || word === \"below\" ? \"LESS_THAN\" : \"EQUAL\";\n return { field: metric(compare[1]), operator, value: number(compare[3]) };\n }\n throw new Error(`could not read --when \"${raw}\" — ${CONDITION_HELP}`);\n}\n\n// --- Flags ---\n\nexport interface RuleFlags {\n name?: string;\n status?: string;\n \"apply-to\"?: string;\n ids?: string[];\n \"in-campaigns\"?: string[];\n \"in-adsets\"?: string[];\n \"name-contains\"?: string;\n when?: string[];\n window?: string;\n realtime?: boolean;\n action?: string;\n by?: string;\n cap?: string;\n \"max-times\"?: string;\n every?: string;\n \"notify-user-ids\"?: string[];\n schedule?: string;\n at?: string[];\n between?: string;\n days?: string;\n}\n\nconst LEVELS: Readonly<Record<string, string>> = {\n ad: \"AD\",\n ads: \"AD\",\n adset: \"ADSET\",\n adsets: \"ADSET\",\n \"ad-set\": \"ADSET\",\n campaign: \"CAMPAIGN\",\n campaigns: \"CAMPAIGN\",\n};\n\nconst EVALUATION_FLAGS = [\n \"apply-to\",\n \"ids\",\n \"in-campaigns\",\n \"in-adsets\",\n \"name-contains\",\n \"when\",\n \"window\",\n \"realtime\",\n] as const;\nconst EXECUTION_FLAGS = [\"action\", \"by\", \"cap\", \"max-times\", \"every\", \"notify-user-ids\"] as const;\nconst SCHEDULE_FLAGS = [\"schedule\", \"at\", \"between\", \"days\"] as const;\n\nfunction given(flags: RuleFlags, names: readonly (keyof RuleFlags)[]): boolean {\n return names.some((name) => {\n const value = flags[name];\n return Array.isArray(value) ? value.length > 0 : value !== undefined && value !== false && value !== \"\";\n });\n}\n\nfunction ruleLevel(flags: RuleFlags): string | undefined {\n const raw = flags[\"apply-to\"];\n if (!raw) return isRotate(flags) ? \"AD\" : undefined;\n const level = LEVELS[raw.toLowerCase()];\n if (!level) throw new Error(`--apply-to takes ad, adset or campaign — not \"${raw}\"`);\n return level;\n}\n\nfunction listFilter(field: string, ids: string[] | undefined): AdRuleFilter[] {\n return ids?.length ? [{ field, operator: \"IN\", value: ids }] : [];\n}\n\n/** What the rule watches: its level, the objects it names, and a name match. */\nfunction isRotate(flags: RuleFlags): boolean {\n return flags.action?.toLowerCase() === \"rotate\";\n}\n\n/**\n * A rotate rule acts on ads but names the ad sets it rotates within; Meta takes\n * those as `adset.id` beside entity_type AD and refuses a bare `id` (live).\n */\nfunction scopeFilters(flags: RuleFlags, level: string | undefined): AdRuleFilter[] {\n return [\n ...(level ? [{ field: \"entity_type\", operator: \"EQUAL\" as const, value: level }] : []),\n ...listFilter(isRotate(flags) ? \"adset.id\" : \"id\", flags.ids),\n ...listFilter(\"campaign.id\", flags[\"in-campaigns\"]),\n ...listFilter(\"adset.id\", flags[\"in-adsets\"]),\n ...(flags[\"name-contains\"] ? [{ field: \"name\", operator: \"CONTAIN\" as const, value: flags[\"name-contains\"] }] : []),\n ];\n}\n\nfunction evaluationFromFlags(flags: RuleFlags): AdRuleEvaluationSpec {\n const level = ruleLevel(flags);\n if (!level && !flags.ids?.length) {\n throw new Error(\n \"say what the rule watches: --apply-to ad|adset|campaign (every one in the account), plus --ids to name them\",\n );\n }\n const conditions = (flags.when ?? []).map(ruleConditionFromFlag);\n const [first, ...rest] = conditions;\n const trigger = flags.realtime ? first : undefined;\n if (flags.realtime && !trigger) throw new Error(\"--realtime needs a --when condition to react to\");\n const filters = scopeFilters(flags, level);\n if (conditions.length > 0 || flags.window) {\n const preset = (flags.window ?? (flags.realtime ? \"TODAY\" : \"LAST_7D\")).toUpperCase();\n filters.push({ field: \"time_preset\", operator: \"EQUAL\", value: preset });\n }\n filters.push(...(trigger ? rest : conditions));\n return {\n evaluation_type: trigger ? \"TRIGGER\" : \"SCHEDULE\",\n filters,\n ...(trigger ? { trigger: { type: \"STATS_CHANGE\" as const, ...trigger } } : {}),\n };\n}\n\nconst ACTIONS: Readonly<Record<string, { type: AdRuleExecutionSpec[\"execution_type\"]; sign?: 1 | -1 }>> = {\n pause: { type: \"PAUSE\" },\n unpause: { type: \"UNPAUSE\" },\n \"turn-on\": { type: \"UNPAUSE\" },\n notify: { type: \"NOTIFICATION\" },\n \"raise-budget\": { type: \"CHANGE_BUDGET\", sign: 1 },\n \"lower-budget\": { type: \"CHANGE_BUDGET\", sign: -1 },\n \"raise-bid\": { type: \"CHANGE_BID\", sign: 1 },\n \"lower-bid\": { type: \"CHANGE_BID\", sign: -1 },\n rotate: { type: \"ROTATE\" },\n};\n\n/** `90` minutes, `12h`, `7d` → minutes. */\nfunction minutes(raw: string): number {\n const match = /^\\s*(\\d+)\\s*(m|min|h|d)?\\s*$/i.exec(raw);\n if (!match?.[1]) throw new Error(`--every takes minutes, or hours/days like 12h or 7d — not \"${raw}\"`);\n const unit = (match[2] ?? \"m\").toLowerCase();\n return Number(match[1]) * (unit === \"d\" ? 1440 : unit === \"h\" ? 60 : 1);\n}\n\nfunction changeSpec(flags: RuleFlags, sign: 1 | -1): Record<string, unknown> {\n if (!flags.by)\n throw new Error(`--action ${flags.action} needs --by: a percentage like 20% or an amount in the account currency`);\n const percent = flags.by.trim().endsWith(\"%\");\n const amount = number(flags.by.replace(\"%\", \"\")) * sign;\n return {\n amount,\n unit: percent ? \"PERCENTAGE\" : \"ACCOUNT_CURRENCY\",\n ...(flags.cap ? { limit: number(flags.cap) } : {}),\n };\n}\n\nfunction executionFromFlags(flags: RuleFlags, level: string | undefined): AdRuleExecutionSpec {\n const action = flags.action ? ACTIONS[flags.action.toLowerCase()] : undefined;\n if (!action) {\n throw new Error(\n `--action takes ${Object.keys(ACTIONS).join(\", \")}${flags.action ? ` — not \"${flags.action}\"` : \"\"}`,\n );\n }\n // A campaign's budget is its own action on Meta (Advantage campaign budget).\n const type = action.type === \"CHANGE_BUDGET\" && level === \"CAMPAIGN\" ? \"CHANGE_CAMPAIGN_BUDGET\" : action.type;\n const options: AdRuleExecutionOption[] = [];\n if (action.sign) options.push({ field: \"change_spec\", operator: \"EQUAL\", value: changeSpec(flags, action.sign) });\n if (flags[\"max-times\"])\n options.push({ field: \"execution_count_limit\", operator: \"EQUAL\", value: number(flags[\"max-times\"]) });\n if (flags.every) options.push({ field: \"action_frequency\", operator: \"EQUAL\", value: minutes(flags.every) });\n if (flags[\"notify-user-ids\"]?.length)\n options.push({ field: \"user_ids\", operator: \"EQUAL\", value: flags[\"notify-user-ids\"] });\n return { execution_type: type, ...(options.length > 0 ? { execution_options: options } : {}) };\n}\n\nconst DAY_NUMBERS: Readonly<Record<string, number>> = { sun: 0, mon: 1, tue: 2, wed: 3, thu: 4, fri: 5, sat: 6 };\n\nfunction clockMinutes(raw: string): number {\n const match = /^\\s*(\\d{1,2}):(\\d{2})\\s*$/.exec(raw);\n if (!match?.[1] || !match[2]) throw new Error(`times are HH:MM on the half hour, like 09:30 — not \"${raw}\"`);\n return Number(match[1]) * 60 + Number(match[2]);\n}\n\nfunction days(raw: string | undefined): number[] | undefined {\n if (!raw) return undefined;\n return raw.split(\",\").map((day) => {\n const value = DAY_NUMBERS[day.trim().slice(0, 3).toLowerCase()];\n if (value === undefined) throw new Error(`--days takes mon,tue,wed,thu,fri,sat,sun — not \"${day}\"`);\n return value;\n });\n}\n\nconst SCHEDULE_TYPES: Readonly<Record<string, AdRuleScheduleSpec[\"schedule_type\"]>> = {\n daily: \"DAILY\",\n hourly: \"HOURLY\",\n \"half-hourly\": \"SEMI_HOURLY\",\n \"semi-hourly\": \"SEMI_HOURLY\",\n custom: \"CUSTOM\",\n};\n\nfunction scheduleFromFlags(flags: RuleFlags): AdRuleScheduleSpec {\n const custom = Boolean(flags.at?.length || flags.between || flags.days);\n const type = flags.schedule ? SCHEDULE_TYPES[flags.schedule.toLowerCase()] : custom ? \"CUSTOM\" : \"DAILY\";\n if (!type) throw new Error(`--schedule takes daily, hourly, half-hourly or custom — not \"${flags.schedule}\"`);\n // Times and days only belong to a custom schedule: refused, not dropped, so the\n // rule never runs on a timetable nobody asked for.\n if (type !== \"CUSTOM\" && custom) {\n throw new Error(\n `--at, --between and --days set a custom timetable, which --schedule ${flags.schedule} does not take — use --schedule custom (or leave --schedule out)`,\n );\n }\n if (type !== \"CUSTOM\") return { schedule_type: type };\n const dayList = days(flags.days);\n const withDays = dayList ? { days: dayList } : {};\n const items: NonNullable<AdRuleScheduleSpec[\"schedule\"]> = (flags.at ?? []).map((at) => ({\n start_minute: clockMinutes(at),\n ...withDays,\n }));\n if (flags.between) {\n const [from, to] = flags.between.split(\"-\");\n if (!from || !to) throw new Error(`--between takes a time range like 09:00-17:00 — not \"${flags.between}\"`);\n items.push({ start_minute: clockMinutes(from), end_minute: clockMinutes(to), ...withDays });\n }\n return { schedule_type: \"CUSTOM\", schedule: items.length > 0 ? items : [withDays] };\n}\n\n/**\n * The rule payload the flags describe. On an update, a part (what it checks,\n * what it does, when it runs) is built only when one of its flags is given —\n * and then whole, since Meta replaces a spec rather than merging it.\n */\n/** What a rule read carries that Meta sets itself — never sent back. */\nconst READ_ONLY_RULE_KEYS = new Set([\n \"id\",\n \"account_id\",\n \"created_time\",\n \"updated_time\",\n \"created_by\",\n \"disable_error_code\",\n \"description\",\n \"currencyCode\",\n]);\n\n/**\n * A rule file as staging takes it. It may be exactly what `rules --rule-id`\n * printed — the envelope, its `data` list of one, or the rule — so a read can\n * be edited and passed back; the fields Meta keeps for itself are left out.\n */\nexport function ruleFileForStaging(\n raw: unknown,\n { update = false }: { update?: boolean } = {},\n): Record<string, unknown> {\n const unwrapped =\n raw && typeof raw === \"object\" && !Array.isArray(raw) && \"data\" in raw ? (raw as { data: unknown }).data : raw;\n const list = Array.isArray(unwrapped) ? unwrapped : [unwrapped];\n if (list.length !== 1) {\n throw new Error(`holds ${list.length} rules — keep the one to stage`);\n }\n const rule = list[0];\n if (!rule || typeof rule !== \"object\" || Array.isArray(rule)) {\n throw new Error(\"must contain a JSON object with the rule\");\n }\n // An update switches a rule only through enable/disable: restating the read's\n // status would be refused as \"already DISABLED\".\n return Object.fromEntries(\n Object.entries(rule).filter(([key]) => !READ_ONLY_RULE_KEYS.has(key) && !(update && key === \"status\")),\n );\n}\n\nexport function rulePayloadFromFlags(\n flags: RuleFlags,\n { update = false }: { update?: boolean } = {},\n): Record<string, unknown> & { evaluation_spec?: AdRuleEvaluationSpec; schedule_spec?: AdRuleScheduleSpec } {\n if (flags.realtime && given(flags, SCHEDULE_FLAGS)) {\n throw new Error(\n \"--realtime rules react the moment a metric changes and run on no schedule — drop --schedule/--at/--between/--days, or drop --realtime\",\n );\n }\n const evaluation = !update || given(flags, EVALUATION_FLAGS) ? evaluationFromFlags(flags) : undefined;\n const level = ruleLevel(flags);\n const execution = !update || given(flags, EXECUTION_FLAGS) ? executionFromFlags(flags, level) : undefined;\n const realtime = evaluation?.evaluation_type === \"TRIGGER\";\n const schedule = !realtime && (!update || given(flags, SCHEDULE_FLAGS)) ? scheduleFromFlags(flags) : undefined;\n return {\n ...(flags.name ? { name: flags.name } : {}),\n ...(flags.status ? { status: flags.status.toUpperCase() } : {}),\n ...(evaluation ? { evaluation_spec: evaluation } : {}),\n ...(execution ? { execution_spec: execution } : {}),\n ...(schedule ? { schedule_spec: schedule } : {}),\n };\n}\n"],"mappings":"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","names":[]}