@koda-sl/baker-cli 0.489.0 → 0.491.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 (859) hide show
  1. package/README.md +169 -7
  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-VGSYM7LY.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-writes-AE5IJGGW.js +66 -0
  11. package/dist/accounts-2ARS6XP2.js +77 -0
  12. package/dist/accounts-AQFW4ZUM.js +611 -0
  13. package/dist/accounts-K4INATCW.js +75 -0
  14. package/dist/actions-QMUHOAXG.js +55 -0
  15. package/dist/activecampaign-J3QN5FMG.js +935 -0
  16. package/dist/activities-T253KK4Q.js +74 -0
  17. package/dist/ad-group-writes-VRSBI2Z2.js +170 -0
  18. package/dist/ad-groups-IEBVEAMS.js +68 -0
  19. package/dist/ad-writes-ALV4KFPZ.js +174 -0
  20. package/dist/add-VDUA6OWM.js +104 -0
  21. package/dist/add-XHOKCSW5.js +302 -0
  22. package/dist/ads-CQZHD7FC.js +77 -0
  23. package/dist/ads-HGDPNIT6.js +40 -0
  24. package/dist/ads-ZEY72UBN.js +114 -0
  25. package/dist/ads-ZEY72UBN.js.map +1 -0
  26. package/dist/adsets-5H3MOT3D.js +177 -0
  27. package/dist/adsets-5H3MOT3D.js.map +1 -0
  28. package/dist/advertisers-UDSEFMP7.js +120 -0
  29. package/dist/analytics-TBETZOPJ.js +433 -0
  30. package/dist/analytics-VH74LMMC.js +1976 -0
  31. package/dist/asset-writes-L5TMKIZC.js +47 -0
  32. package/dist/assign-6IE2ASFC.js +77 -0
  33. package/dist/audience-size-CSBWDFEP.js +73 -0
  34. package/dist/audience-writes-X52VG35Y.js +324 -0
  35. package/dist/audience-writes-X52VG35Y.js.map +1 -0
  36. package/dist/audiences-AAZH56WD.js +268 -0
  37. package/dist/audiences-X3RLGOVM.js +84 -0
  38. package/dist/audiences-X3RLGOVM.js.map +1 -0
  39. package/dist/audit-AEENRVGD.js +151 -0
  40. package/dist/autocomplete-AAGTJHVL.js +111 -0
  41. package/dist/avatars-VEATUUKU.js +38 -0
  42. package/dist/bid-pricing-SZTGCZTV.js +100 -0
  43. package/dist/brand-MXGETE4R.js +22 -0
  44. package/dist/brief-3GHSHOGM.js +538 -0
  45. package/dist/businesses-H3HIDQX6.js +53 -0
  46. package/dist/campaign-groups-WRI56M5X.js +95 -0
  47. package/dist/campaign-writes-PYGKSCPS.js +165 -0
  48. package/dist/campaign-writes-PYGKSCPS.js.map +1 -0
  49. package/dist/campaign-writes-U5PUVSMT.js +170 -0
  50. package/dist/campaigns-4QWC2JE7.js +109 -0
  51. package/dist/campaigns-AV6G3AUU.js +127 -0
  52. package/dist/campaigns-AV6G3AUU.js.map +1 -0
  53. package/dist/campaigns-JEIKY2M4.js +76 -0
  54. package/dist/campaigns-Q4HN7HBY.js +107 -0
  55. package/dist/canvas-VJ3XKCAC.js +46 -0
  56. package/dist/capabilities-SNGGAOV3.js +144 -0
  57. package/dist/catalog-S32MX453.js +65 -0
  58. package/dist/catalogs-OCVXZLIF.js +128 -0
  59. package/dist/catalogs-RXJTZTVX.js +778 -0
  60. package/dist/catalogs-RXJTZTVX.js.map +1 -0
  61. package/dist/chatgpt-QVF2FD3E.js +47 -0
  62. package/dist/chats-2DRTB7GK.js +276 -0
  63. package/dist/chats-2DRTB7GK.js.map +1 -0
  64. package/dist/check-Z6UMIQKD.js +104 -0
  65. package/dist/chunk-2C7AHPM4.js +191 -0
  66. package/dist/chunk-2C7AHPM4.js.map +1 -0
  67. package/dist/chunk-2WZI36D3.js +317 -0
  68. package/dist/chunk-3AMLOCXY.js +392 -0
  69. package/dist/chunk-3CVAEQMZ.js +156 -0
  70. package/dist/chunk-3WAYZQNV.js +61 -0
  71. package/dist/chunk-46GWHUKN.js +225 -0
  72. package/dist/chunk-4O6T76A3.js +191 -0
  73. package/dist/chunk-5C35OW7L.js +205 -0
  74. package/dist/chunk-5C35OW7L.js.map +1 -0
  75. package/dist/chunk-5GQCN2QZ.js +391 -0
  76. package/dist/chunk-5GQCN2QZ.js.map +1 -0
  77. package/dist/chunk-5MCVK4A3.js +903 -0
  78. package/dist/chunk-5ZLN23V5.js +97 -0
  79. package/dist/chunk-65Y3RCWP.js +68 -0
  80. package/dist/chunk-65Y3RCWP.js.map +1 -0
  81. package/dist/chunk-77ULVP62.js +547 -0
  82. package/dist/chunk-A4MVVPJ2.js +4204 -0
  83. package/dist/chunk-A4MVVPJ2.js.map +1 -0
  84. package/dist/chunk-AQM4JH62.js +274 -0
  85. package/dist/chunk-AQM4JH62.js.map +1 -0
  86. package/dist/chunk-AW2GKIGS.js +433 -0
  87. package/dist/chunk-BRLY6XD6.js +249 -0
  88. package/dist/chunk-C7NWUCLQ.js +64 -0
  89. package/dist/chunk-CP4P6YKM.js +287 -0
  90. package/dist/chunk-CP4P6YKM.js.map +1 -0
  91. package/dist/chunk-D4HKJBEW.js +23 -0
  92. package/dist/chunk-DAO63OOP.js +6352 -0
  93. package/dist/chunk-DAO63OOP.js.map +1 -0
  94. package/dist/chunk-DCBZ5CHZ.js +139 -0
  95. package/dist/chunk-G6XKD7QE.js +77 -0
  96. package/dist/chunk-GBFL4TD2.js +172 -0
  97. package/dist/chunk-H5SCKWFT.js +224 -0
  98. package/dist/chunk-HLVRHBKL.js +1078 -0
  99. package/dist/chunk-HLVRHBKL.js.map +1 -0
  100. package/dist/chunk-HXPK6KAL.js +363 -0
  101. package/dist/chunk-I7GOSMWT.js +197 -0
  102. package/dist/chunk-IBY44U2M.js +1079 -0
  103. package/dist/chunk-ITNHIZKK.js +275 -0
  104. package/dist/chunk-J33P2JNS.js +455 -0
  105. package/dist/chunk-JH2L5CQD.js +206 -0
  106. package/dist/chunk-JQH5VG6F.js +5368 -0
  107. package/dist/chunk-JVH5A3XC.js +8914 -0
  108. package/dist/chunk-KTOYQP6D.js +169 -0
  109. package/dist/chunk-LO3IF5PS.js +399 -0
  110. package/dist/chunk-LRRFGOW3.js +604 -0
  111. package/dist/chunk-LTPTJWZC.js +942 -0
  112. package/dist/chunk-MRQHJW5U.js +159 -0
  113. package/dist/chunk-NHYI7ORL.js +346 -0
  114. package/dist/chunk-NLI7C3K2.js +51 -0
  115. package/dist/chunk-NSEMXBUB.js +91 -0
  116. package/dist/chunk-OM2BRYXJ.js +3868 -0
  117. package/dist/chunk-OY4SKCIU.js +103 -0
  118. package/dist/chunk-OYAJNTRO.js +494 -0
  119. package/dist/chunk-PL7J3DPQ.js +831 -0
  120. package/dist/chunk-PUSBUMYM.js +89 -0
  121. package/dist/chunk-QTOZ32SU.js +163 -0
  122. package/dist/chunk-QTOZ32SU.js.map +1 -0
  123. package/dist/chunk-RRADFRPI.js +297 -0
  124. package/dist/chunk-SGEPZB3D.js +344 -0
  125. package/dist/chunk-SVAB6KV5.js +219 -0
  126. package/dist/chunk-SVAB6KV5.js.map +1 -0
  127. package/dist/chunk-TFTZDWCX.js +66 -0
  128. package/dist/chunk-TG4NCHFS.js +142 -0
  129. package/dist/chunk-TTHM66TA.js +207 -0
  130. package/dist/chunk-VL2GNXZY.js +19 -0
  131. package/dist/chunk-VQPZDM6N.js +160 -0
  132. package/dist/chunk-XCKINS7K.js +57 -0
  133. package/dist/chunk-YLYXSJ6O.js +8939 -0
  134. package/dist/chunk-ZAPO6UWS.js +592 -0
  135. package/dist/chunk-ZEPUDYPL.js +122 -0
  136. package/dist/chunk-ZJSGGJ5R.js +167 -0
  137. package/dist/claim-J2LYNHZK.js +197 -0
  138. package/dist/cli.js +34 -34
  139. package/dist/companies-VYY22B6T.js +195 -0
  140. package/dist/complete-5I32XM7P.js +81 -0
  141. package/dist/connect-EUFFQQ7O.js +42 -0
  142. package/dist/conversation-D6KZHGPP.js +93 -0
  143. package/dist/conversion-writes-ECZBVY7D.js +120 -0
  144. package/dist/conversions-5QCSCRLI.js +76 -0
  145. package/dist/conversions-Y3X6ZTTF.js +135 -0
  146. package/dist/copy-writes-D2RTHAL6.js +167 -0
  147. package/dist/copy-writes-D2RTHAL6.js.map +1 -0
  148. package/dist/create-2JCRTQJL.js +59 -0
  149. package/dist/create-LMSQPHPB.js +235 -0
  150. package/dist/create-MBLNB5RY.js +132 -0
  151. package/dist/create-VR7RXKL7.js +207 -0
  152. package/dist/creatives-5C42BDMW.js +182 -0
  153. package/dist/creatives-HYPSTANO.js +58 -0
  154. package/dist/creatives-MZ6ICNSY.js +88 -0
  155. package/dist/creatives-MZ6ICNSY.js.map +1 -0
  156. package/dist/credentials-4H4AUYJN.js +287 -0
  157. package/dist/critique-UOJZWDG2.js +1458 -0
  158. package/dist/critique-WCWMQQVV.js +227 -0
  159. package/dist/crm-B7OTHMBP.js +318 -0
  160. package/dist/crm-DZRWKJ6V.js +224 -0
  161. package/dist/custom-conversions-FIP6ZS34.js +127 -0
  162. package/dist/custom-conversions-FIP6ZS34.js.map +1 -0
  163. package/dist/customers-AOFJJCGD.js +56 -0
  164. package/dist/delete-DEG5KOBY.js +64 -0
  165. package/dist/delete-EFIODCXG.js +54 -0
  166. package/dist/delete-PQIMW2LK.js +66 -0
  167. package/dist/demographics-F26DIOCM.js +138 -0
  168. package/dist/discard-2EJY6UGP.js +66 -0
  169. package/dist/domain-XLJABLWB.js +98 -0
  170. package/dist/draft-2YND6T4U.js +217 -0
  171. package/dist/draft-34CGWUVA.js +281 -0
  172. package/dist/draft-L45PGCYZ.js +237 -0
  173. package/dist/draft-L45PGCYZ.js.map +1 -0
  174. package/dist/draft-TCPK6XYW.js +332 -0
  175. package/dist/draft-TCPK6XYW.js.map +1 -0
  176. package/dist/draft-WRVEANL5.js +306 -0
  177. package/dist/engine/index.js +4 -4
  178. package/dist/experiment-7N4QFRWV.js +1397 -0
  179. package/dist/facets-OPTNDPW2.js +114 -0
  180. package/dist/feedback-43BPXNBI.js +106 -0
  181. package/dist/feedback-record-35ZSDL6Z.js +260 -0
  182. package/dist/fetch-O46XBA7S.js +176 -0
  183. package/dist/find-FSQAEGGF.js +134 -0
  184. package/dist/fit-CWJ5QQ4R.js +62 -0
  185. package/dist/flows-CVORIQ4B.js +247 -0
  186. package/dist/fonts-6TPYR6IW.js +36 -0
  187. package/dist/forecast-2VLA6NJA.js +118 -0
  188. package/dist/funnel-XLKDLXMG.js +394 -0
  189. package/dist/ga4-LPDIBNYP.js +55 -0
  190. package/dist/get-O56GGN3V.js +56 -0
  191. package/dist/get-WFQ4XEAW.js +79 -0
  192. package/dist/google-5ESVO76E.js +136 -0
  193. package/dist/google-ads-DZMOTUY5.js +195 -0
  194. package/dist/gsc-FIZTQX3N.js +30 -0
  195. package/dist/history-43BBQZOB.js +133 -0
  196. package/dist/history-QKDYBSYM.js +67 -0
  197. package/dist/hubspot-S44MPK3G.js +779 -0
  198. package/dist/icon-CSVAZ7NE.js +137 -0
  199. package/dist/ideas-SLP5WXFF.js +40 -0
  200. package/dist/images-TWZOROCT.js +92 -0
  201. package/dist/ingest-5GCZ5ZBV.js +23 -0
  202. package/dist/ingest-P54J4W3V.js +107 -0
  203. package/dist/insights-YWVJMATY.js +424 -0
  204. package/dist/insights-YWVJMATY.js.map +1 -0
  205. package/dist/inspect-S4COGUBC.js +189 -0
  206. package/dist/inspiration-IX5N724J.js +53 -0
  207. package/dist/instant-experiences-NQ2GWIWL.js +257 -0
  208. package/dist/instant-experiences-NQ2GWIWL.js.map +1 -0
  209. package/dist/keyword-metrics-26CCKFZK.js +197 -0
  210. package/dist/keywords-for-site-JWWECF63.js +128 -0
  211. package/dist/landing-VFDRADZY.js +28 -0
  212. package/dist/leads-DTKKYSKH.js +90 -0
  213. package/dist/leads-THI37ZMD.js +537 -0
  214. package/dist/leads-THI37ZMD.js.map +1 -0
  215. package/dist/learn-GQ75IPRK.js +204 -0
  216. package/dist/line-item-writes-DVVHVR3Y.js +208 -0
  217. package/dist/line-items-EOZMK7A5.js +103 -0
  218. package/dist/link-R5NGCQ5H.js +64 -0
  219. package/dist/linkedin-DHZO3IJX.js +1057 -0
  220. package/dist/list-57QBEGLM.js +303 -0
  221. package/dist/list-Q44BBHDI.js +64 -0
  222. package/dist/list-W6G2NTG5.js +151 -0
  223. package/dist/locations-HM56X2MK.js +67 -0
  224. package/dist/locations-HM56X2MK.js.map +1 -0
  225. package/dist/log-B6X5EPKA.js +92 -0
  226. package/dist/logo-VHXH4J6A.js +18 -0
  227. package/dist/make-OIFLF3QS.js +1353 -0
  228. package/dist/map-PIOZT2MQ.js +433 -0
  229. package/dist/mcp-GFKHLWDB.js +714 -0
  230. package/dist/media-H6B7VDON.js +18 -0
  231. package/dist/media-H6B7VDON.js.map +1 -0
  232. package/dist/media-sources-VMMMW5UM.js +32 -0
  233. package/dist/members-W2QBMNIW.js +44 -0
  234. package/dist/meta-YHDTGJQ6.js +122 -0
  235. package/dist/meta-YHDTGJQ6.js.map +1 -0
  236. package/dist/normalize-N6XC3SLC.js +141 -0
  237. package/dist/options-XYJY2OEQ.js +122 -0
  238. package/dist/organization-BVTXCZIV.js +942 -0
  239. package/dist/organization-BVTXCZIV.js.map +1 -0
  240. package/dist/page-photos-CXRG4AXV.js +115 -0
  241. package/dist/page-photos-CXRG4AXV.js.map +1 -0
  242. package/dist/pages-PTWRXAZT.js +66 -0
  243. package/dist/performance-7NEZTOJ5.js +24 -0
  244. package/dist/pixels-MYT3TCHZ.js +60 -0
  245. package/dist/pixels-ZZCQUS3J.js +108 -0
  246. package/dist/preview-XOXAAPMQ.js +215 -0
  247. package/dist/preview-XOXAAPMQ.js.map +1 -0
  248. package/dist/promoted-tweet-writes-X2F7R2AE.js +180 -0
  249. package/dist/promoted-tweets-XCSD6VKP.js +119 -0
  250. package/dist/publish-OBY6E43R.js +341 -0
  251. package/dist/reddit-WJ6KHYBC.js +26 -0
  252. package/dist/refresh-G5BQ2LWU.js +94 -0
  253. package/dist/release-PBZO35KY.js +60 -0
  254. package/dist/remove-VJ2MEUPM.js +50 -0
  255. package/dist/reopen-W3LYOHSR.js +63 -0
  256. package/dist/rerun-4GDNBFNM.js +90 -0
  257. package/dist/research-4YTFPGH7.js +262 -0
  258. package/dist/research-LOQRIBO6.js +62 -0
  259. package/dist/reset-55CCQGXB.js +54 -0
  260. package/dist/reset-AVTQEJPZ.js +54 -0
  261. package/dist/resolve-E6FNMFE3.js +121 -0
  262. package/dist/retry-HBJ7MKVI.js +60 -0
  263. package/dist/retry-QBRYM6MG.js +62 -0
  264. package/dist/rule-writes-6ZCAJDYZ.js +522 -0
  265. package/dist/rule-writes-6ZCAJDYZ.js.map +1 -0
  266. package/dist/rules-BMYOY2BM.js +216 -0
  267. package/dist/rules-BMYOY2BM.js.map +1 -0
  268. package/dist/rules-XNDBGOIS.js +96 -0
  269. package/dist/rules-add-UM3ZKSVD.js +462 -0
  270. package/dist/run-D4YHZ4Z4.js +66 -0
  271. package/dist/run-ZCJ7NP63.js +65 -0
  272. package/dist/scaffold-ad-VQZAP32M.js +1511 -0
  273. package/dist/scaffold-static-ad-LEU4M44N.js +1005 -0
  274. package/dist/scaffold-video-PSWSYRSC.js +883 -0
  275. package/dist/schedule-AAH7HYFK.js +61 -0
  276. package/dist/scheduled-agents-HDABMHZI.js +50 -0
  277. package/dist/schema-OH5OWMVQ.js +132 -0
  278. package/dist/search-BSDPVSGA.js +174 -0
  279. package/dist/select-EI4QF4YZ.js +101 -0
  280. package/dist/set-prompt-RKDAGUWG.js +193 -0
  281. package/dist/setup-links-CNNJA7AB.js +141 -0
  282. package/dist/shared-3IBNDEFL.js +31 -0
  283. package/dist/site-NV4U7PIF.js +177 -0
  284. package/dist/sources-ATONL7W5.js +454 -0
  285. package/dist/sources-C3TGHKLQ.js +30 -0
  286. package/dist/stale-6QPXL6BZ.js +71 -0
  287. package/dist/stats-ZAGJH4AD.js +34 -0
  288. package/dist/status-BML3F4MZ.js +62 -0
  289. package/dist/stock-6SHHLSKG.js +179 -0
  290. package/dist/studies-4NIV4D5Y.js +249 -0
  291. package/dist/studies-4NIV4D5Y.js.map +1 -0
  292. package/dist/studio-ZLCGXFAN.js +49 -0
  293. package/dist/study-writes-L2AA2PGL.js +467 -0
  294. package/dist/study-writes-L2AA2PGL.js.map +1 -0
  295. package/dist/sync-DZAOUQPE.js +54 -0
  296. package/dist/sync-definition-RFEL65JE.js +64 -0
  297. package/dist/tag-manager-3CJ66GKJ.js +43 -0
  298. package/dist/tags-2KSXCJRZ.js +20 -0
  299. package/dist/tags-662KZJLV.js +26 -0
  300. package/dist/tags-6QBVW25V.js +20 -0
  301. package/dist/tags-LQCEJGIL.js +20 -0
  302. package/dist/tags-RIVD54ZG.js +224 -0
  303. package/dist/targeting-LNDQV4EK.js +759 -0
  304. package/dist/targeting-LNDQV4EK.js.map +1 -0
  305. package/dist/targeting-criteria-XNLYPIL2.js +113 -0
  306. package/dist/targets-OYIVS5KJ.js +103 -0
  307. package/dist/testimonials-WT43CF7V.js +32 -0
  308. package/dist/top-companies-6QQMOS2Y.js +108 -0
  309. package/dist/translate-7QN7JFGU.js +604 -0
  310. package/dist/triggers-LVQY3QJ2.js +142 -0
  311. package/dist/unlink-5ASZTCS2.js +67 -0
  312. package/dist/unstage-LNZTEATR.js +85 -0
  313. package/dist/update-7BIR4GYO.js +152 -0
  314. package/dist/update-BRLM5DB3.js +98 -0
  315. package/dist/update-DRZAAJQ2.js +63 -0
  316. package/dist/update-NOWC3ICD.js +188 -0
  317. package/dist/upload-457Q4ANZ.js +126 -0
  318. package/dist/url-params-KM4NJGYC.js +98 -0
  319. package/dist/validate-COLEPJBA.js +117 -0
  320. package/dist/videos-5IDZTEWC.js +39 -0
  321. package/dist/viewer-check-433AZPBC.js +80 -0
  322. package/dist/viewer-check-433AZPBC.js.map +1 -0
  323. package/dist/web-FZYOCCYN.js +140 -0
  324. package/dist/winning-ads-I4DMP7RU.js +84 -0
  325. package/dist/write-commands-FYB6QG7K.js +1024 -0
  326. package/dist/write-commands-PEJBTME6.js +1165 -0
  327. package/dist/write-commands-PEJBTME6.js.map +1 -0
  328. package/dist/x-OMN5DDLM.js +47 -0
  329. package/package.json +1 -1
  330. package/dist/account-7LUQWY6Q.js +0 -49
  331. package/dist/account-7LUQWY6Q.js.map +0 -1
  332. package/dist/account-KNRDOUJP.js +0 -79
  333. package/dist/account-Z65CPOWE.js +0 -80
  334. package/dist/account-writes-4N2MA2ZR.js +0 -66
  335. package/dist/accounts-RTN5ZGTU.js +0 -611
  336. package/dist/accounts-RW6KXBOQ.js +0 -77
  337. package/dist/accounts-UA2ZWRN4.js +0 -75
  338. package/dist/actions-HNLISA7T.js +0 -55
  339. package/dist/activecampaign-I5CILZPU.js +0 -935
  340. package/dist/activities-IQPJPP4B.js +0 -74
  341. package/dist/ad-group-writes-EUTMPBMK.js +0 -170
  342. package/dist/ad-groups-OVPAI5RM.js +0 -68
  343. package/dist/ad-writes-DACTYFEO.js +0 -174
  344. package/dist/add-6WKPFMLG.js +0 -302
  345. package/dist/add-XF5COUAS.js +0 -104
  346. package/dist/ads-G6AS5L7G.js +0 -40
  347. package/dist/ads-HXX2IAFF.js +0 -113
  348. package/dist/ads-HXX2IAFF.js.map +0 -1
  349. package/dist/ads-L65JIKCD.js +0 -77
  350. package/dist/adsets-LPN6WFGF.js +0 -176
  351. package/dist/adsets-LPN6WFGF.js.map +0 -1
  352. package/dist/advertisers-6NUM2Q3A.js +0 -120
  353. package/dist/analytics-QKP3A5F3.js +0 -1976
  354. package/dist/analytics-VLHE5A2M.js +0 -433
  355. package/dist/assign-6HI6TNLP.js +0 -77
  356. package/dist/audience-size-25LP2OBF.js +0 -73
  357. package/dist/audiences-RPLVMO4H.js +0 -268
  358. package/dist/audiences-XEZHACKH.js +0 -78
  359. package/dist/audiences-XEZHACKH.js.map +0 -1
  360. package/dist/audit-YY6X2MPA.js +0 -151
  361. package/dist/autocomplete-SAWJK4NF.js +0 -111
  362. package/dist/avatars-MXTI74VC.js +0 -38
  363. package/dist/bid-pricing-HZ74SLEB.js +0 -100
  364. package/dist/brand-T3OACVQX.js +0 -22
  365. package/dist/brief-BN4UGUXF.js +0 -538
  366. package/dist/businesses-PRRYPR7H.js +0 -53
  367. package/dist/campaign-groups-YJK767AP.js +0 -95
  368. package/dist/campaign-writes-BAFB5E7A.js +0 -165
  369. package/dist/campaign-writes-BAFB5E7A.js.map +0 -1
  370. package/dist/campaign-writes-U5LTDTYK.js +0 -170
  371. package/dist/campaigns-4SOLY7OR.js +0 -110
  372. package/dist/campaigns-4SOLY7OR.js.map +0 -1
  373. package/dist/campaigns-GALDR5KK.js +0 -109
  374. package/dist/campaigns-NR6TNQFN.js +0 -107
  375. package/dist/campaigns-TFEQTSO3.js +0 -76
  376. package/dist/canvas-GJAQAVS6.js +0 -46
  377. package/dist/capabilities-2KT6TCGZ.js +0 -144
  378. package/dist/catalog-USZL4SGX.js +0 -65
  379. package/dist/catalogs-A7XMEEEP.js +0 -128
  380. package/dist/chatgpt-4PEWDJKP.js +0 -47
  381. package/dist/chats-INN2OHSH.js +0 -262
  382. package/dist/chats-INN2OHSH.js.map +0 -1
  383. package/dist/check-MMJGFFZS.js +0 -104
  384. package/dist/chunk-2LI6746F.js +0 -103
  385. package/dist/chunk-2PWNIEW4.js +0 -197
  386. package/dist/chunk-2XRMPSEV.js +0 -142
  387. package/dist/chunk-3TZVZXM6.js +0 -224
  388. package/dist/chunk-3UXMQ3K2.js +0 -274
  389. package/dist/chunk-3UXMQ3K2.js.map +0 -1
  390. package/dist/chunk-5HJRZFMW.js +0 -207
  391. package/dist/chunk-62JQQUAU.js +0 -5368
  392. package/dist/chunk-66QHX566.js +0 -6306
  393. package/dist/chunk-66QHX566.js.map +0 -1
  394. package/dist/chunk-6JWEGFM5.js +0 -174
  395. package/dist/chunk-6JWEGFM5.js.map +0 -1
  396. package/dist/chunk-6WCAV27H.js +0 -494
  397. package/dist/chunk-6WXV5GTA.js +0 -8914
  398. package/dist/chunk-7RBJ2Z7Z.js +0 -172
  399. package/dist/chunk-7RBJ2Z7Z.js.map +0 -1
  400. package/dist/chunk-AVNSH2JE.js +0 -8939
  401. package/dist/chunk-BITS62MF.js +0 -77
  402. package/dist/chunk-BL2MX6CR.js +0 -249
  403. package/dist/chunk-BOPC3D6I.js +0 -604
  404. package/dist/chunk-C6EYCD5J.js +0 -942
  405. package/dist/chunk-CSZFZKVX.js +0 -97
  406. package/dist/chunk-D5CUAOQX.js +0 -297
  407. package/dist/chunk-D5UXWKLQ.js +0 -903
  408. package/dist/chunk-FA4YZFRV.js +0 -392
  409. package/dist/chunk-FUKDI2UK.js +0 -122
  410. package/dist/chunk-G4STCTY3.js +0 -399
  411. package/dist/chunk-GOJXKIFQ.js +0 -1605
  412. package/dist/chunk-GOJXKIFQ.js.map +0 -1
  413. package/dist/chunk-H5HDZ7IC.js +0 -139
  414. package/dist/chunk-HSPMBLKE.js +0 -363
  415. package/dist/chunk-IJ22WP3G.js +0 -275
  416. package/dist/chunk-ILSKYRDR.js +0 -169
  417. package/dist/chunk-JQU2LUZG.js +0 -57
  418. package/dist/chunk-JWSEPW7F.js +0 -225
  419. package/dist/chunk-KIGGMKAE.js +0 -66
  420. package/dist/chunk-KIGGMKAE.js.map +0 -1
  421. package/dist/chunk-KPYDTIAI.js +0 -317
  422. package/dist/chunk-LBO2YAZY.js +0 -3868
  423. package/dist/chunk-LOMH4TTC.js +0 -1079
  424. package/dist/chunk-LPXSM2DI.js +0 -66
  425. package/dist/chunk-MVB32GPI.js +0 -592
  426. package/dist/chunk-MXH35PJ5.js +0 -51
  427. package/dist/chunk-NEIUVSDK.js +0 -206
  428. package/dist/chunk-NPMAATZG.js +0 -64
  429. package/dist/chunk-NXZCCGES.js +0 -159
  430. package/dist/chunk-OP7DNHD2.js +0 -137
  431. package/dist/chunk-OP7DNHD2.js.map +0 -1
  432. package/dist/chunk-OWA7ZLC4.js +0 -547
  433. package/dist/chunk-P3W6SRSQ.js +0 -455
  434. package/dist/chunk-PA4W7BCQ.js +0 -23
  435. package/dist/chunk-PTGYM4J6.js +0 -89
  436. package/dist/chunk-QE3JEJXF.js +0 -831
  437. package/dist/chunk-QNLJ3GNZ.js +0 -433
  438. package/dist/chunk-R3EKM2P2.js +0 -191
  439. package/dist/chunk-SISA4HQR.js +0 -61
  440. package/dist/chunk-TP7HKSBX.js +0 -172
  441. package/dist/chunk-TPANP5A2.js +0 -91
  442. package/dist/chunk-TRPJJMCS.js +0 -346
  443. package/dist/chunk-TZEVD4Q6.js +0 -160
  444. package/dist/chunk-UWXDNVS5.js +0 -167
  445. package/dist/chunk-VD73V44J.js +0 -344
  446. package/dist/chunk-X7F4Z6UM.js +0 -156
  447. package/dist/chunk-ZL23HA4N.js +0 -19
  448. package/dist/claim-SLGYOOWD.js +0 -197
  449. package/dist/companies-IVMH6YII.js +0 -195
  450. package/dist/complete-45L2FI2X.js +0 -81
  451. package/dist/connect-WBGCBBFJ.js +0 -42
  452. package/dist/conversation-RIOL3OJ7.js +0 -93
  453. package/dist/conversion-writes-JU7Q2MUO.js +0 -120
  454. package/dist/conversions-3ISBR3TS.js +0 -76
  455. package/dist/conversions-TKIXNSYR.js +0 -135
  456. package/dist/create-7JY2PTIZ.js +0 -132
  457. package/dist/create-ACLCRXQP.js +0 -59
  458. package/dist/create-KYBMFD32.js +0 -207
  459. package/dist/create-VAPJ52GJ.js +0 -235
  460. package/dist/creatives-S5QUWUL6.js +0 -58
  461. package/dist/creatives-VQO2TKE3.js +0 -182
  462. package/dist/creatives-YJ3CXZQC.js +0 -87
  463. package/dist/creatives-YJ3CXZQC.js.map +0 -1
  464. package/dist/credentials-YTQ6BHWV.js +0 -287
  465. package/dist/critique-5LCG5TYF.js +0 -227
  466. package/dist/critique-BHYJYZDV.js +0 -1458
  467. package/dist/crm-IKTWHWEB.js +0 -318
  468. package/dist/crm-N7K57LZJ.js +0 -224
  469. package/dist/custom-conversions-YRYE65PU.js +0 -125
  470. package/dist/custom-conversions-YRYE65PU.js.map +0 -1
  471. package/dist/customers-NLU7NYDC.js +0 -56
  472. package/dist/delete-26J3X3ZH.js +0 -64
  473. package/dist/delete-A4F5Z54J.js +0 -66
  474. package/dist/delete-EVXOFT2H.js +0 -54
  475. package/dist/demographics-VZKFMM4X.js +0 -138
  476. package/dist/discard-ULRVUJDV.js +0 -66
  477. package/dist/domain-L4WCCX7R.js +0 -98
  478. package/dist/draft-57OQKHZI.js +0 -306
  479. package/dist/draft-EWDOIXSH.js +0 -233
  480. package/dist/draft-EWDOIXSH.js.map +0 -1
  481. package/dist/draft-GPN3HOAG.js +0 -328
  482. package/dist/draft-GPN3HOAG.js.map +0 -1
  483. package/dist/draft-O4S5RKWK.js +0 -217
  484. package/dist/draft-Y2QJE2NM.js +0 -281
  485. package/dist/experiment-G3FQVAJU.js +0 -1397
  486. package/dist/facets-EHQKGGJ2.js +0 -114
  487. package/dist/feedback-CAOZPGTT.js +0 -106
  488. package/dist/feedback-record-EXV5H6OS.js +0 -260
  489. package/dist/fetch-ETKT2RBC.js +0 -176
  490. package/dist/find-EVY4XEIQ.js +0 -134
  491. package/dist/fit-UJQ47C4A.js +0 -62
  492. package/dist/flows-Z7355RMD.js +0 -247
  493. package/dist/fonts-7VWBQPJF.js +0 -36
  494. package/dist/forecast-OI7YWZ6F.js +0 -118
  495. package/dist/funnel-2B3JXJPX.js +0 -394
  496. package/dist/ga4-2BL5YAYN.js +0 -55
  497. package/dist/get-2RSN4N3J.js +0 -56
  498. package/dist/get-6N7QJMIP.js +0 -79
  499. package/dist/google-7STODZQR.js +0 -136
  500. package/dist/google-ads-G7REKD4A.js +0 -195
  501. package/dist/gsc-UU3T2C6B.js +0 -30
  502. package/dist/history-IQ33J5PB.js +0 -67
  503. package/dist/history-YMK2JNZU.js +0 -133
  504. package/dist/hubspot-BUFS7S33.js +0 -779
  505. package/dist/icon-GB7UH5RF.js +0 -137
  506. package/dist/ideas-F6CIGTVU.js +0 -40
  507. package/dist/images-WCKTD6Z2.js +0 -92
  508. package/dist/ingest-RQUJGS7K.js +0 -107
  509. package/dist/ingest-XLTRLCDV.js +0 -23
  510. package/dist/insights-4HT2NAYP.js +0 -423
  511. package/dist/insights-4HT2NAYP.js.map +0 -1
  512. package/dist/inspect-KFVAMD4N.js +0 -189
  513. package/dist/inspiration-XQYHBJY2.js +0 -53
  514. package/dist/keyword-metrics-WYF3QMCW.js +0 -197
  515. package/dist/keywords-for-site-G5L5EP3T.js +0 -128
  516. package/dist/landing-WUILAWDS.js +0 -28
  517. package/dist/leads-2XOSAYP4.js +0 -293
  518. package/dist/leads-2XOSAYP4.js.map +0 -1
  519. package/dist/leads-4SJ4NJOI.js +0 -90
  520. package/dist/learn-CC6Q5IK2.js +0 -204
  521. package/dist/line-item-writes-YXKYR25W.js +0 -208
  522. package/dist/line-items-CKUD2UU4.js +0 -103
  523. package/dist/link-VBYFI7AM.js +0 -64
  524. package/dist/linkedin-XKVPSCLV.js +0 -1057
  525. package/dist/list-6ZNZGRRK.js +0 -151
  526. package/dist/list-ENYDGT3F.js +0 -64
  527. package/dist/list-VSUF2IWT.js +0 -303
  528. package/dist/locations-YA7NZY44.js +0 -67
  529. package/dist/locations-YA7NZY44.js.map +0 -1
  530. package/dist/log-AACKGBDW.js +0 -92
  531. package/dist/logo-YSNUUT33.js +0 -18
  532. package/dist/make-ED7HBLH3.js +0 -1353
  533. package/dist/map-63CQHWPI.js +0 -433
  534. package/dist/mcp-RKAXC6IP.js +0 -714
  535. package/dist/media-ES2UBGYW.js +0 -15
  536. package/dist/media-ES2UBGYW.js.map +0 -1
  537. package/dist/media-sources-PEHUMH7C.js +0 -32
  538. package/dist/members-SELIA674.js +0 -44
  539. package/dist/meta-AOIPEDV5.js +0 -69
  540. package/dist/meta-AOIPEDV5.js.map +0 -1
  541. package/dist/normalize-VAZPTBDX.js +0 -141
  542. package/dist/options-6FCNFWUF.js +0 -122
  543. package/dist/organization-SHREKDST.js +0 -881
  544. package/dist/organization-SHREKDST.js.map +0 -1
  545. package/dist/pages-FTI44OSH.js +0 -66
  546. package/dist/performance-K7E5KAZW.js +0 -24
  547. package/dist/pixels-6IUB3Y3H.js +0 -60
  548. package/dist/pixels-MBKR4XPX.js +0 -108
  549. package/dist/preview-V4YBD45S.js +0 -169
  550. package/dist/preview-V4YBD45S.js.map +0 -1
  551. package/dist/promoted-tweet-writes-PKEO6WUK.js +0 -180
  552. package/dist/promoted-tweets-7MXVZRBI.js +0 -119
  553. package/dist/publish-MPMGRV72.js +0 -341
  554. package/dist/reddit-XIHRI3CN.js +0 -26
  555. package/dist/refresh-A27N75NH.js +0 -94
  556. package/dist/release-UKRB5IUN.js +0 -60
  557. package/dist/remove-AFNFVPZY.js +0 -50
  558. package/dist/reopen-M5HE6J3G.js +0 -63
  559. package/dist/rerun-A2XHGFZS.js +0 -90
  560. package/dist/research-BLDY5UWH.js +0 -62
  561. package/dist/research-U7RQXMYH.js +0 -262
  562. package/dist/reset-4CCWB2RT.js +0 -54
  563. package/dist/reset-J3KCWFMZ.js +0 -54
  564. package/dist/resolve-HEK27ANI.js +0 -121
  565. package/dist/retry-HPZIUG2S.js +0 -62
  566. package/dist/retry-VVI6N6UR.js +0 -60
  567. package/dist/rules-SK5DFFPY.js +0 -96
  568. package/dist/rules-add-YQNYSME7.js +0 -462
  569. package/dist/run-KBN5K7LE.js +0 -65
  570. package/dist/run-M7ZDE6IA.js +0 -66
  571. package/dist/scaffold-ad-6BN5LWQH.js +0 -1511
  572. package/dist/scaffold-static-ad-VVZRAWBR.js +0 -1005
  573. package/dist/scaffold-video-LFIYI4GP.js +0 -883
  574. package/dist/schedule-QMOKWTJ3.js +0 -61
  575. package/dist/scheduled-agents-FCQHQ6KR.js +0 -50
  576. package/dist/schema-THFLCMBN.js +0 -132
  577. package/dist/search-XIUYSWO6.js +0 -174
  578. package/dist/select-QBU6ED4K.js +0 -101
  579. package/dist/set-prompt-TL64CRBQ.js +0 -193
  580. package/dist/setup-links-QVI6NAOK.js +0 -141
  581. package/dist/shared-NDRFKAH7.js +0 -31
  582. package/dist/site-PZPJY33N.js +0 -177
  583. package/dist/sources-ER7ANNG3.js +0 -454
  584. package/dist/sources-RMNFV4CA.js +0 -30
  585. package/dist/stale-ITFCPOER.js +0 -71
  586. package/dist/stats-RCLQE4HJ.js +0 -34
  587. package/dist/status-ABMJBCPJ.js +0 -62
  588. package/dist/stock-ECRBD7RP.js +0 -179
  589. package/dist/studio-MARZ22J2.js +0 -49
  590. package/dist/sync-QDD3MRJ6.js +0 -54
  591. package/dist/sync-definition-C6ROLKJ4.js +0 -64
  592. package/dist/tag-manager-G3LBQZUL.js +0 -43
  593. package/dist/tags-5JYOEYIT.js +0 -20
  594. package/dist/tags-B473RWAA.js +0 -224
  595. package/dist/tags-EWHPUM2V.js +0 -20
  596. package/dist/tags-KBCX6BDU.js +0 -26
  597. package/dist/tags-PEWN6GNZ.js +0 -20
  598. package/dist/targeting-criteria-EU65WUUF.js +0 -113
  599. package/dist/targets-KVXS5QKM.js +0 -103
  600. package/dist/testimonials-YMMA5YWL.js +0 -32
  601. package/dist/top-companies-OOX3DITI.js +0 -108
  602. package/dist/translate-OXVIMYHE.js +0 -604
  603. package/dist/triggers-OX2GKG4Y.js +0 -142
  604. package/dist/unlink-3USEPJSA.js +0 -67
  605. package/dist/unstage-VSCNPTAC.js +0 -85
  606. package/dist/update-6JKTH65B.js +0 -152
  607. package/dist/update-FG4ELXYJ.js +0 -98
  608. package/dist/update-GZFKHA3A.js +0 -188
  609. package/dist/update-HZHG67N6.js +0 -63
  610. package/dist/upload-BKCQ6FRW.js +0 -126
  611. package/dist/url-params-UN4DRN2H.js +0 -98
  612. package/dist/validate-ZS2M5Q3V.js +0 -117
  613. package/dist/videos-I6YXFBFT.js +0 -39
  614. package/dist/viewer-check-7ZG7KHEN.js +0 -80
  615. package/dist/web-UGU7YMII.js +0 -140
  616. package/dist/winning-ads-ABN5OULS.js +0 -84
  617. package/dist/write-commands-6VR2UD3T.js +0 -1024
  618. package/dist/write-commands-HCQI4Y27.js +0 -737
  619. package/dist/write-commands-HCQI4Y27.js.map +0 -1
  620. package/dist/x-WK2VQDPF.js +0 -47
  621. /package/dist/{account-Z65CPOWE.js.map → account-3H6BZO5H.js.map} +0 -0
  622. /package/dist/{account-KNRDOUJP.js.map → account-VGSYM7LY.js.map} +0 -0
  623. /package/dist/{account-writes-4N2MA2ZR.js.map → account-writes-AE5IJGGW.js.map} +0 -0
  624. /package/dist/{accounts-RW6KXBOQ.js.map → accounts-2ARS6XP2.js.map} +0 -0
  625. /package/dist/{accounts-RTN5ZGTU.js.map → accounts-AQFW4ZUM.js.map} +0 -0
  626. /package/dist/{accounts-UA2ZWRN4.js.map → accounts-K4INATCW.js.map} +0 -0
  627. /package/dist/{actions-HNLISA7T.js.map → actions-QMUHOAXG.js.map} +0 -0
  628. /package/dist/{activecampaign-I5CILZPU.js.map → activecampaign-J3QN5FMG.js.map} +0 -0
  629. /package/dist/{activities-IQPJPP4B.js.map → activities-T253KK4Q.js.map} +0 -0
  630. /package/dist/{ad-group-writes-EUTMPBMK.js.map → ad-group-writes-VRSBI2Z2.js.map} +0 -0
  631. /package/dist/{ad-groups-OVPAI5RM.js.map → ad-groups-IEBVEAMS.js.map} +0 -0
  632. /package/dist/{ad-writes-DACTYFEO.js.map → ad-writes-ALV4KFPZ.js.map} +0 -0
  633. /package/dist/{add-XF5COUAS.js.map → add-VDUA6OWM.js.map} +0 -0
  634. /package/dist/{add-6WKPFMLG.js.map → add-XHOKCSW5.js.map} +0 -0
  635. /package/dist/{ads-L65JIKCD.js.map → ads-CQZHD7FC.js.map} +0 -0
  636. /package/dist/{ads-G6AS5L7G.js.map → ads-HGDPNIT6.js.map} +0 -0
  637. /package/dist/{advertisers-6NUM2Q3A.js.map → advertisers-UDSEFMP7.js.map} +0 -0
  638. /package/dist/{analytics-VLHE5A2M.js.map → analytics-TBETZOPJ.js.map} +0 -0
  639. /package/dist/{analytics-QKP3A5F3.js.map → analytics-VH74LMMC.js.map} +0 -0
  640. /package/dist/{connect-WBGCBBFJ.js.map → asset-writes-L5TMKIZC.js.map} +0 -0
  641. /package/dist/{assign-6HI6TNLP.js.map → assign-6IE2ASFC.js.map} +0 -0
  642. /package/dist/{audience-size-25LP2OBF.js.map → audience-size-CSBWDFEP.js.map} +0 -0
  643. /package/dist/{audiences-RPLVMO4H.js.map → audiences-AAZH56WD.js.map} +0 -0
  644. /package/dist/{audit-YY6X2MPA.js.map → audit-AEENRVGD.js.map} +0 -0
  645. /package/dist/{autocomplete-SAWJK4NF.js.map → autocomplete-AAGTJHVL.js.map} +0 -0
  646. /package/dist/{avatars-MXTI74VC.js.map → avatars-VEATUUKU.js.map} +0 -0
  647. /package/dist/{bid-pricing-HZ74SLEB.js.map → bid-pricing-SZTGCZTV.js.map} +0 -0
  648. /package/dist/{brand-T3OACVQX.js.map → brand-MXGETE4R.js.map} +0 -0
  649. /package/dist/{brief-BN4UGUXF.js.map → brief-3GHSHOGM.js.map} +0 -0
  650. /package/dist/{businesses-PRRYPR7H.js.map → businesses-H3HIDQX6.js.map} +0 -0
  651. /package/dist/{campaign-groups-YJK767AP.js.map → campaign-groups-WRI56M5X.js.map} +0 -0
  652. /package/dist/{campaign-writes-U5LTDTYK.js.map → campaign-writes-U5PUVSMT.js.map} +0 -0
  653. /package/dist/{campaigns-GALDR5KK.js.map → campaigns-4QWC2JE7.js.map} +0 -0
  654. /package/dist/{campaigns-TFEQTSO3.js.map → campaigns-JEIKY2M4.js.map} +0 -0
  655. /package/dist/{campaigns-NR6TNQFN.js.map → campaigns-Q4HN7HBY.js.map} +0 -0
  656. /package/dist/{canvas-GJAQAVS6.js.map → canvas-VJ3XKCAC.js.map} +0 -0
  657. /package/dist/{capabilities-2KT6TCGZ.js.map → capabilities-SNGGAOV3.js.map} +0 -0
  658. /package/dist/{catalog-USZL4SGX.js.map → catalog-S32MX453.js.map} +0 -0
  659. /package/dist/{catalogs-A7XMEEEP.js.map → catalogs-OCVXZLIF.js.map} +0 -0
  660. /package/dist/{chatgpt-4PEWDJKP.js.map → chatgpt-QVF2FD3E.js.map} +0 -0
  661. /package/dist/{check-MMJGFFZS.js.map → check-Z6UMIQKD.js.map} +0 -0
  662. /package/dist/{chunk-KPYDTIAI.js.map → chunk-2WZI36D3.js.map} +0 -0
  663. /package/dist/{chunk-FA4YZFRV.js.map → chunk-3AMLOCXY.js.map} +0 -0
  664. /package/dist/{chunk-X7F4Z6UM.js.map → chunk-3CVAEQMZ.js.map} +0 -0
  665. /package/dist/{chunk-SISA4HQR.js.map → chunk-3WAYZQNV.js.map} +0 -0
  666. /package/dist/{chunk-JWSEPW7F.js.map → chunk-46GWHUKN.js.map} +0 -0
  667. /package/dist/{chunk-R3EKM2P2.js.map → chunk-4O6T76A3.js.map} +0 -0
  668. /package/dist/{chunk-D5UXWKLQ.js.map → chunk-5MCVK4A3.js.map} +0 -0
  669. /package/dist/{chunk-CSZFZKVX.js.map → chunk-5ZLN23V5.js.map} +0 -0
  670. /package/dist/{chunk-OWA7ZLC4.js.map → chunk-77ULVP62.js.map} +0 -0
  671. /package/dist/{chunk-QNLJ3GNZ.js.map → chunk-AW2GKIGS.js.map} +0 -0
  672. /package/dist/{chunk-BL2MX6CR.js.map → chunk-BRLY6XD6.js.map} +0 -0
  673. /package/dist/{chunk-NPMAATZG.js.map → chunk-C7NWUCLQ.js.map} +0 -0
  674. /package/dist/{chunk-PA4W7BCQ.js.map → chunk-D4HKJBEW.js.map} +0 -0
  675. /package/dist/{chunk-H5HDZ7IC.js.map → chunk-DCBZ5CHZ.js.map} +0 -0
  676. /package/dist/{chunk-BITS62MF.js.map → chunk-G6XKD7QE.js.map} +0 -0
  677. /package/dist/{chunk-TP7HKSBX.js.map → chunk-GBFL4TD2.js.map} +0 -0
  678. /package/dist/{chunk-3TZVZXM6.js.map → chunk-H5SCKWFT.js.map} +0 -0
  679. /package/dist/{chunk-HSPMBLKE.js.map → chunk-HXPK6KAL.js.map} +0 -0
  680. /package/dist/{chunk-2PWNIEW4.js.map → chunk-I7GOSMWT.js.map} +0 -0
  681. /package/dist/{chunk-LOMH4TTC.js.map → chunk-IBY44U2M.js.map} +0 -0
  682. /package/dist/{chunk-IJ22WP3G.js.map → chunk-ITNHIZKK.js.map} +0 -0
  683. /package/dist/{chunk-P3W6SRSQ.js.map → chunk-J33P2JNS.js.map} +0 -0
  684. /package/dist/{chunk-NEIUVSDK.js.map → chunk-JH2L5CQD.js.map} +0 -0
  685. /package/dist/{chunk-62JQQUAU.js.map → chunk-JQH5VG6F.js.map} +0 -0
  686. /package/dist/{chunk-6WXV5GTA.js.map → chunk-JVH5A3XC.js.map} +0 -0
  687. /package/dist/{chunk-ILSKYRDR.js.map → chunk-KTOYQP6D.js.map} +0 -0
  688. /package/dist/{chunk-G4STCTY3.js.map → chunk-LO3IF5PS.js.map} +0 -0
  689. /package/dist/{chunk-BOPC3D6I.js.map → chunk-LRRFGOW3.js.map} +0 -0
  690. /package/dist/{chunk-C6EYCD5J.js.map → chunk-LTPTJWZC.js.map} +0 -0
  691. /package/dist/{chunk-NXZCCGES.js.map → chunk-MRQHJW5U.js.map} +0 -0
  692. /package/dist/{chunk-TRPJJMCS.js.map → chunk-NHYI7ORL.js.map} +0 -0
  693. /package/dist/{chunk-MXH35PJ5.js.map → chunk-NLI7C3K2.js.map} +0 -0
  694. /package/dist/{chunk-TPANP5A2.js.map → chunk-NSEMXBUB.js.map} +0 -0
  695. /package/dist/{chunk-LBO2YAZY.js.map → chunk-OM2BRYXJ.js.map} +0 -0
  696. /package/dist/{chunk-2LI6746F.js.map → chunk-OY4SKCIU.js.map} +0 -0
  697. /package/dist/{chunk-6WCAV27H.js.map → chunk-OYAJNTRO.js.map} +0 -0
  698. /package/dist/{chunk-QE3JEJXF.js.map → chunk-PL7J3DPQ.js.map} +0 -0
  699. /package/dist/{chunk-PTGYM4J6.js.map → chunk-PUSBUMYM.js.map} +0 -0
  700. /package/dist/{chunk-D5CUAOQX.js.map → chunk-RRADFRPI.js.map} +0 -0
  701. /package/dist/{chunk-VD73V44J.js.map → chunk-SGEPZB3D.js.map} +0 -0
  702. /package/dist/{chunk-LPXSM2DI.js.map → chunk-TFTZDWCX.js.map} +0 -0
  703. /package/dist/{chunk-2XRMPSEV.js.map → chunk-TG4NCHFS.js.map} +0 -0
  704. /package/dist/{chunk-5HJRZFMW.js.map → chunk-TTHM66TA.js.map} +0 -0
  705. /package/dist/{chunk-ZL23HA4N.js.map → chunk-VL2GNXZY.js.map} +0 -0
  706. /package/dist/{chunk-TZEVD4Q6.js.map → chunk-VQPZDM6N.js.map} +0 -0
  707. /package/dist/{chunk-JQU2LUZG.js.map → chunk-XCKINS7K.js.map} +0 -0
  708. /package/dist/{chunk-AVNSH2JE.js.map → chunk-YLYXSJ6O.js.map} +0 -0
  709. /package/dist/{chunk-MVB32GPI.js.map → chunk-ZAPO6UWS.js.map} +0 -0
  710. /package/dist/{chunk-FUKDI2UK.js.map → chunk-ZEPUDYPL.js.map} +0 -0
  711. /package/dist/{chunk-UWXDNVS5.js.map → chunk-ZJSGGJ5R.js.map} +0 -0
  712. /package/dist/{claim-SLGYOOWD.js.map → claim-J2LYNHZK.js.map} +0 -0
  713. /package/dist/{companies-IVMH6YII.js.map → companies-VYY22B6T.js.map} +0 -0
  714. /package/dist/{complete-45L2FI2X.js.map → complete-5I32XM7P.js.map} +0 -0
  715. /package/dist/{customers-NLU7NYDC.js.map → connect-EUFFQQ7O.js.map} +0 -0
  716. /package/dist/{conversation-RIOL3OJ7.js.map → conversation-D6KZHGPP.js.map} +0 -0
  717. /package/dist/{conversion-writes-JU7Q2MUO.js.map → conversion-writes-ECZBVY7D.js.map} +0 -0
  718. /package/dist/{conversions-3ISBR3TS.js.map → conversions-5QCSCRLI.js.map} +0 -0
  719. /package/dist/{conversions-TKIXNSYR.js.map → conversions-Y3X6ZTTF.js.map} +0 -0
  720. /package/dist/{create-ACLCRXQP.js.map → create-2JCRTQJL.js.map} +0 -0
  721. /package/dist/{create-VAPJ52GJ.js.map → create-LMSQPHPB.js.map} +0 -0
  722. /package/dist/{create-7JY2PTIZ.js.map → create-MBLNB5RY.js.map} +0 -0
  723. /package/dist/{create-KYBMFD32.js.map → create-VR7RXKL7.js.map} +0 -0
  724. /package/dist/{creatives-VQO2TKE3.js.map → creatives-5C42BDMW.js.map} +0 -0
  725. /package/dist/{creatives-S5QUWUL6.js.map → creatives-HYPSTANO.js.map} +0 -0
  726. /package/dist/{credentials-YTQ6BHWV.js.map → credentials-4H4AUYJN.js.map} +0 -0
  727. /package/dist/{critique-BHYJYZDV.js.map → critique-UOJZWDG2.js.map} +0 -0
  728. /package/dist/{critique-5LCG5TYF.js.map → critique-WCWMQQVV.js.map} +0 -0
  729. /package/dist/{crm-IKTWHWEB.js.map → crm-B7OTHMBP.js.map} +0 -0
  730. /package/dist/{crm-N7K57LZJ.js.map → crm-DZRWKJ6V.js.map} +0 -0
  731. /package/dist/{fit-UJQ47C4A.js.map → customers-AOFJJCGD.js.map} +0 -0
  732. /package/dist/{delete-26J3X3ZH.js.map → delete-DEG5KOBY.js.map} +0 -0
  733. /package/dist/{delete-EVXOFT2H.js.map → delete-EFIODCXG.js.map} +0 -0
  734. /package/dist/{delete-A4F5Z54J.js.map → delete-PQIMW2LK.js.map} +0 -0
  735. /package/dist/{demographics-VZKFMM4X.js.map → demographics-F26DIOCM.js.map} +0 -0
  736. /package/dist/{discard-ULRVUJDV.js.map → discard-2EJY6UGP.js.map} +0 -0
  737. /package/dist/{domain-L4WCCX7R.js.map → domain-XLJABLWB.js.map} +0 -0
  738. /package/dist/{draft-O4S5RKWK.js.map → draft-2YND6T4U.js.map} +0 -0
  739. /package/dist/{draft-Y2QJE2NM.js.map → draft-34CGWUVA.js.map} +0 -0
  740. /package/dist/{draft-57OQKHZI.js.map → draft-WRVEANL5.js.map} +0 -0
  741. /package/dist/{experiment-G3FQVAJU.js.map → experiment-7N4QFRWV.js.map} +0 -0
  742. /package/dist/{facets-EHQKGGJ2.js.map → facets-OPTNDPW2.js.map} +0 -0
  743. /package/dist/{feedback-CAOZPGTT.js.map → feedback-43BPXNBI.js.map} +0 -0
  744. /package/dist/{feedback-record-EXV5H6OS.js.map → feedback-record-35ZSDL6Z.js.map} +0 -0
  745. /package/dist/{fetch-ETKT2RBC.js.map → fetch-O46XBA7S.js.map} +0 -0
  746. /package/dist/{find-EVY4XEIQ.js.map → find-FSQAEGGF.js.map} +0 -0
  747. /package/dist/{fonts-7VWBQPJF.js.map → fit-CWJ5QQ4R.js.map} +0 -0
  748. /package/dist/{flows-Z7355RMD.js.map → flows-CVORIQ4B.js.map} +0 -0
  749. /package/dist/{ideas-F6CIGTVU.js.map → fonts-6TPYR6IW.js.map} +0 -0
  750. /package/dist/{forecast-OI7YWZ6F.js.map → forecast-2VLA6NJA.js.map} +0 -0
  751. /package/dist/{funnel-2B3JXJPX.js.map → funnel-XLKDLXMG.js.map} +0 -0
  752. /package/dist/{ga4-2BL5YAYN.js.map → ga4-LPDIBNYP.js.map} +0 -0
  753. /package/dist/{get-2RSN4N3J.js.map → get-O56GGN3V.js.map} +0 -0
  754. /package/dist/{get-6N7QJMIP.js.map → get-WFQ4XEAW.js.map} +0 -0
  755. /package/dist/{google-7STODZQR.js.map → google-5ESVO76E.js.map} +0 -0
  756. /package/dist/{google-ads-G7REKD4A.js.map → google-ads-DZMOTUY5.js.map} +0 -0
  757. /package/dist/{gsc-UU3T2C6B.js.map → gsc-FIZTQX3N.js.map} +0 -0
  758. /package/dist/{history-YMK2JNZU.js.map → history-43BBQZOB.js.map} +0 -0
  759. /package/dist/{history-IQ33J5PB.js.map → history-QKDYBSYM.js.map} +0 -0
  760. /package/dist/{hubspot-BUFS7S33.js.map → hubspot-S44MPK3G.js.map} +0 -0
  761. /package/dist/{icon-GB7UH5RF.js.map → icon-CSVAZ7NE.js.map} +0 -0
  762. /package/dist/{ingest-XLTRLCDV.js.map → ideas-SLP5WXFF.js.map} +0 -0
  763. /package/dist/{images-WCKTD6Z2.js.map → images-TWZOROCT.js.map} +0 -0
  764. /package/dist/{logo-YSNUUT33.js.map → ingest-5GCZ5ZBV.js.map} +0 -0
  765. /package/dist/{ingest-RQUJGS7K.js.map → ingest-P54J4W3V.js.map} +0 -0
  766. /package/dist/{inspect-KFVAMD4N.js.map → inspect-S4COGUBC.js.map} +0 -0
  767. /package/dist/{inspiration-XQYHBJY2.js.map → inspiration-IX5N724J.js.map} +0 -0
  768. /package/dist/{keyword-metrics-WYF3QMCW.js.map → keyword-metrics-26CCKFZK.js.map} +0 -0
  769. /package/dist/{keywords-for-site-G5L5EP3T.js.map → keywords-for-site-JWWECF63.js.map} +0 -0
  770. /package/dist/{landing-WUILAWDS.js.map → landing-VFDRADZY.js.map} +0 -0
  771. /package/dist/{leads-4SJ4NJOI.js.map → leads-DTKKYSKH.js.map} +0 -0
  772. /package/dist/{learn-CC6Q5IK2.js.map → learn-GQ75IPRK.js.map} +0 -0
  773. /package/dist/{line-item-writes-YXKYR25W.js.map → line-item-writes-DVVHVR3Y.js.map} +0 -0
  774. /package/dist/{line-items-CKUD2UU4.js.map → line-items-EOZMK7A5.js.map} +0 -0
  775. /package/dist/{link-VBYFI7AM.js.map → link-R5NGCQ5H.js.map} +0 -0
  776. /package/dist/{linkedin-XKVPSCLV.js.map → linkedin-DHZO3IJX.js.map} +0 -0
  777. /package/dist/{list-VSUF2IWT.js.map → list-57QBEGLM.js.map} +0 -0
  778. /package/dist/{list-ENYDGT3F.js.map → list-Q44BBHDI.js.map} +0 -0
  779. /package/dist/{list-6ZNZGRRK.js.map → list-W6G2NTG5.js.map} +0 -0
  780. /package/dist/{log-AACKGBDW.js.map → log-B6X5EPKA.js.map} +0 -0
  781. /package/dist/{performance-K7E5KAZW.js.map → logo-VHXH4J6A.js.map} +0 -0
  782. /package/dist/{make-ED7HBLH3.js.map → make-OIFLF3QS.js.map} +0 -0
  783. /package/dist/{map-63CQHWPI.js.map → map-PIOZT2MQ.js.map} +0 -0
  784. /package/dist/{mcp-RKAXC6IP.js.map → mcp-GFKHLWDB.js.map} +0 -0
  785. /package/dist/{media-sources-PEHUMH7C.js.map → media-sources-VMMMW5UM.js.map} +0 -0
  786. /package/dist/{members-SELIA674.js.map → members-W2QBMNIW.js.map} +0 -0
  787. /package/dist/{normalize-VAZPTBDX.js.map → normalize-N6XC3SLC.js.map} +0 -0
  788. /package/dist/{options-6FCNFWUF.js.map → options-XYJY2OEQ.js.map} +0 -0
  789. /package/dist/{pages-FTI44OSH.js.map → pages-PTWRXAZT.js.map} +0 -0
  790. /package/dist/{reddit-XIHRI3CN.js.map → performance-7NEZTOJ5.js.map} +0 -0
  791. /package/dist/{pixels-6IUB3Y3H.js.map → pixels-MYT3TCHZ.js.map} +0 -0
  792. /package/dist/{pixels-MBKR4XPX.js.map → pixels-ZZCQUS3J.js.map} +0 -0
  793. /package/dist/{promoted-tweet-writes-PKEO6WUK.js.map → promoted-tweet-writes-X2F7R2AE.js.map} +0 -0
  794. /package/dist/{promoted-tweets-7MXVZRBI.js.map → promoted-tweets-XCSD6VKP.js.map} +0 -0
  795. /package/dist/{publish-MPMGRV72.js.map → publish-OBY6E43R.js.map} +0 -0
  796. /package/dist/{run-KBN5K7LE.js.map → reddit-WJ6KHYBC.js.map} +0 -0
  797. /package/dist/{refresh-A27N75NH.js.map → refresh-G5BQ2LWU.js.map} +0 -0
  798. /package/dist/{release-UKRB5IUN.js.map → release-PBZO35KY.js.map} +0 -0
  799. /package/dist/{remove-AFNFVPZY.js.map → remove-VJ2MEUPM.js.map} +0 -0
  800. /package/dist/{reopen-M5HE6J3G.js.map → reopen-W3LYOHSR.js.map} +0 -0
  801. /package/dist/{rerun-A2XHGFZS.js.map → rerun-4GDNBFNM.js.map} +0 -0
  802. /package/dist/{research-U7RQXMYH.js.map → research-4YTFPGH7.js.map} +0 -0
  803. /package/dist/{research-BLDY5UWH.js.map → research-LOQRIBO6.js.map} +0 -0
  804. /package/dist/{reset-4CCWB2RT.js.map → reset-55CCQGXB.js.map} +0 -0
  805. /package/dist/{reset-J3KCWFMZ.js.map → reset-AVTQEJPZ.js.map} +0 -0
  806. /package/dist/{resolve-HEK27ANI.js.map → resolve-E6FNMFE3.js.map} +0 -0
  807. /package/dist/{retry-VVI6N6UR.js.map → retry-HBJ7MKVI.js.map} +0 -0
  808. /package/dist/{retry-HPZIUG2S.js.map → retry-QBRYM6MG.js.map} +0 -0
  809. /package/dist/{rules-SK5DFFPY.js.map → rules-XNDBGOIS.js.map} +0 -0
  810. /package/dist/{rules-add-YQNYSME7.js.map → rules-add-UM3ZKSVD.js.map} +0 -0
  811. /package/dist/{run-M7ZDE6IA.js.map → run-D4YHZ4Z4.js.map} +0 -0
  812. /package/dist/{shared-NDRFKAH7.js.map → run-ZCJ7NP63.js.map} +0 -0
  813. /package/dist/{scaffold-ad-6BN5LWQH.js.map → scaffold-ad-VQZAP32M.js.map} +0 -0
  814. /package/dist/{scaffold-static-ad-VVZRAWBR.js.map → scaffold-static-ad-LEU4M44N.js.map} +0 -0
  815. /package/dist/{scaffold-video-LFIYI4GP.js.map → scaffold-video-PSWSYRSC.js.map} +0 -0
  816. /package/dist/{schedule-QMOKWTJ3.js.map → schedule-AAH7HYFK.js.map} +0 -0
  817. /package/dist/{scheduled-agents-FCQHQ6KR.js.map → scheduled-agents-HDABMHZI.js.map} +0 -0
  818. /package/dist/{schema-THFLCMBN.js.map → schema-OH5OWMVQ.js.map} +0 -0
  819. /package/dist/{search-XIUYSWO6.js.map → search-BSDPVSGA.js.map} +0 -0
  820. /package/dist/{select-QBU6ED4K.js.map → select-EI4QF4YZ.js.map} +0 -0
  821. /package/dist/{set-prompt-TL64CRBQ.js.map → set-prompt-RKDAGUWG.js.map} +0 -0
  822. /package/dist/{setup-links-QVI6NAOK.js.map → setup-links-CNNJA7AB.js.map} +0 -0
  823. /package/dist/{sync-definition-C6ROLKJ4.js.map → shared-3IBNDEFL.js.map} +0 -0
  824. /package/dist/{site-PZPJY33N.js.map → site-NV4U7PIF.js.map} +0 -0
  825. /package/dist/{sources-ER7ANNG3.js.map → sources-ATONL7W5.js.map} +0 -0
  826. /package/dist/{sources-RMNFV4CA.js.map → sources-C3TGHKLQ.js.map} +0 -0
  827. /package/dist/{stale-ITFCPOER.js.map → stale-6QPXL6BZ.js.map} +0 -0
  828. /package/dist/{stats-RCLQE4HJ.js.map → stats-ZAGJH4AD.js.map} +0 -0
  829. /package/dist/{status-ABMJBCPJ.js.map → status-BML3F4MZ.js.map} +0 -0
  830. /package/dist/{stock-ECRBD7RP.js.map → stock-6SHHLSKG.js.map} +0 -0
  831. /package/dist/{studio-MARZ22J2.js.map → studio-ZLCGXFAN.js.map} +0 -0
  832. /package/dist/{sync-QDD3MRJ6.js.map → sync-DZAOUQPE.js.map} +0 -0
  833. /package/dist/{viewer-check-7ZG7KHEN.js.map → sync-definition-RFEL65JE.js.map} +0 -0
  834. /package/dist/{tag-manager-G3LBQZUL.js.map → tag-manager-3CJ66GKJ.js.map} +0 -0
  835. /package/dist/{tags-EWHPUM2V.js.map → tags-2KSXCJRZ.js.map} +0 -0
  836. /package/dist/{tags-KBCX6BDU.js.map → tags-662KZJLV.js.map} +0 -0
  837. /package/dist/{tags-5JYOEYIT.js.map → tags-6QBVW25V.js.map} +0 -0
  838. /package/dist/{tags-PEWN6GNZ.js.map → tags-LQCEJGIL.js.map} +0 -0
  839. /package/dist/{tags-B473RWAA.js.map → tags-RIVD54ZG.js.map} +0 -0
  840. /package/dist/{targeting-criteria-EU65WUUF.js.map → targeting-criteria-XNLYPIL2.js.map} +0 -0
  841. /package/dist/{targets-KVXS5QKM.js.map → targets-OYIVS5KJ.js.map} +0 -0
  842. /package/dist/{testimonials-YMMA5YWL.js.map → testimonials-WT43CF7V.js.map} +0 -0
  843. /package/dist/{top-companies-OOX3DITI.js.map → top-companies-6QQMOS2Y.js.map} +0 -0
  844. /package/dist/{translate-OXVIMYHE.js.map → translate-7QN7JFGU.js.map} +0 -0
  845. /package/dist/{triggers-OX2GKG4Y.js.map → triggers-LVQY3QJ2.js.map} +0 -0
  846. /package/dist/{unlink-3USEPJSA.js.map → unlink-5ASZTCS2.js.map} +0 -0
  847. /package/dist/{unstage-VSCNPTAC.js.map → unstage-LNZTEATR.js.map} +0 -0
  848. /package/dist/{update-6JKTH65B.js.map → update-7BIR4GYO.js.map} +0 -0
  849. /package/dist/{update-FG4ELXYJ.js.map → update-BRLM5DB3.js.map} +0 -0
  850. /package/dist/{update-HZHG67N6.js.map → update-DRZAAJQ2.js.map} +0 -0
  851. /package/dist/{update-GZFKHA3A.js.map → update-NOWC3ICD.js.map} +0 -0
  852. /package/dist/{upload-BKCQ6FRW.js.map → upload-457Q4ANZ.js.map} +0 -0
  853. /package/dist/{url-params-UN4DRN2H.js.map → url-params-KM4NJGYC.js.map} +0 -0
  854. /package/dist/{validate-ZS2M5Q3V.js.map → validate-COLEPJBA.js.map} +0 -0
  855. /package/dist/{videos-I6YXFBFT.js.map → videos-5IDZTEWC.js.map} +0 -0
  856. /package/dist/{web-UGU7YMII.js.map → web-FZYOCCYN.js.map} +0 -0
  857. /package/dist/{winning-ads-ABN5OULS.js.map → winning-ads-I4DMP7RU.js.map} +0 -0
  858. /package/dist/{write-commands-6VR2UD3T.js.map → write-commands-FYB6QG7K.js.map} +0 -0
  859. /package/dist/{x-WK2VQDPF.js.map → x-OMN5DDLM.js.map} +0 -0
@@ -0,0 +1,467 @@
1
+ import {
2
+ bareAccountId,
3
+ failWriteValidation,
4
+ loadJsonFileArg,
5
+ requireTarget,
6
+ stageOp
7
+ } from "./chunk-5C35OW7L.js";
8
+ import "./chunk-A4MVVPJ2.js";
9
+ import "./chunk-HLVRHBKL.js";
10
+ import "./chunk-QTOZ32SU.js";
11
+ import {
12
+ repeatedValues
13
+ } from "./chunk-ERSX3MKH.js";
14
+ import "./chunk-SFJW2KED.js";
15
+ import "./chunk-4NZ47VXO.js";
16
+ import "./chunk-D5FY4FAK.js";
17
+ import "./chunk-FNA277HP.js";
18
+ import "./chunk-SWL4AAPP.js";
19
+ import "./chunk-5WMTPYKT.js";
20
+ import "./chunk-23H4ZJRP.js";
21
+ import "./chunk-DWX44QL6.js";
22
+ import "./chunk-2FSEESJU.js";
23
+ import "./chunk-CVBKW75S.js";
24
+ import "./chunk-BLAHHMPF.js";
25
+ import "./chunk-XQIOCIDO.js";
26
+ import "./chunk-XDZVBX6L.js";
27
+ import "./chunk-N5O67GK5.js";
28
+ import "./chunk-EE72SSB2.js";
29
+ import {
30
+ registerSchema
31
+ } from "./chunk-WNSE7N75.js";
32
+ import "./chunk-YQSBHWOI.js";
33
+
34
+ // src/commands/ads/meta/study-writes.ts
35
+ import { defineCommand } from "citty";
36
+
37
+ // src/commands/ads/meta/study-flags.ts
38
+ var DAY_SECONDS = 86400;
39
+ function studyTimeFlag(value, flag) {
40
+ if (/^\d{10}$/.test(value)) return Number(value);
41
+ if (/^\d{13}$/.test(value)) return Math.floor(Number(value) / 1e3);
42
+ const ms = Date.parse(value);
43
+ if (Number.isNaN(ms)) {
44
+ throw new Error(`${flag} must be an ISO date/time (2026-10-20T08:00Z) or epoch seconds`);
45
+ }
46
+ return Math.floor(ms / 1e3);
47
+ }
48
+ function numberFlag(value, flag) {
49
+ const n = Number(value.replace(/%$/, ""));
50
+ if (!Number.isFinite(n)) throw new Error(`${flag} must be a number, got "${value}"`);
51
+ return n;
52
+ }
53
+ function evenSplit(count) {
54
+ const base = Math.floor(100 / count * 100) / 100;
55
+ const first = Math.round((100 - base * (count - 1)) * 100) / 100;
56
+ return Array.from({ length: count }, (_, index) => index === 0 ? first : base);
57
+ }
58
+ function endTime(flags, start) {
59
+ if (flags.end) return studyTimeFlag(flags.end, "--end");
60
+ if (flags.days !== void 0) {
61
+ if (start === void 0) throw new Error("--days counts from --start \u2014 pass --start too, or --end");
62
+ return start + Math.round(numberFlag(flags.days, "--days") * DAY_SECONDS);
63
+ }
64
+ return void 0;
65
+ }
66
+ function confidence(value) {
67
+ if (value === void 0) return void 0;
68
+ const n = numberFlag(value, "--confidence");
69
+ return n > 1 ? n / 100 : n;
70
+ }
71
+ function measure(flags) {
72
+ const events = [flags["measure-event"] ?? []].flat().filter(Boolean);
73
+ if (flags["measure-pixel"]) {
74
+ if (events.length === 0) {
75
+ throw new Error("--measure-pixel needs --measure-event (the pixel event that counts, e.g. Lead or Purchase)");
76
+ }
77
+ const name = flags["measure-name"] ?? events.join(" or ");
78
+ return [
79
+ { name, type: "CONVERSIONS", is_primary: true, adspixels: [{ id: flags["measure-pixel"], event_names: events }] }
80
+ ];
81
+ }
82
+ if (flags["measure-conversion"]) {
83
+ const name = flags["measure-name"] ?? "Custom conversion";
84
+ return [{ name, type: "CONVERSIONS", is_primary: true, customconversions: [{ id: flags["measure-conversion"] }] }];
85
+ }
86
+ if (events.length > 0) throw new Error("--measure-event counts on a pixel \u2014 pass --measure-pixel too");
87
+ return void 0;
88
+ }
89
+ function versionLetter(index) {
90
+ return `Version ${String.fromCharCode(65 + index)}`;
91
+ }
92
+ function observationEnd(flags) {
93
+ const until = flags["observe-until"];
94
+ return until ? { observation_end_time: studyTimeFlag(until, "--observe-until") } : {};
95
+ }
96
+ function liftFromFlags(flags, start, end) {
97
+ const level = flags.adsets?.length ? "adsets" : flags.campaigns?.length ? "campaigns" : void 0;
98
+ if (!level) throw new Error("a lift study measures --campaigns or --adsets (comma-separated, all in one group)");
99
+ if (flags.split) {
100
+ throw new Error(
101
+ "a lift study shows the ads to everyone but a held-out share \u2014 set that share with --holdout (e.g. --holdout 10), not --split"
102
+ );
103
+ }
104
+ const names = flags["version-names"] ?? [];
105
+ if (names.length > 1) {
106
+ throw new Error("a lift study runs as one group \u2014 pass one --version-names for it, or none (default Lift)");
107
+ }
108
+ const holdout = flags.holdout === void 0 ? 10 : numberFlag(flags.holdout, "--holdout");
109
+ const objectives = measure(flags);
110
+ const conf = confidence(flags.confidence);
111
+ if (!objectives)
112
+ throw new Error(
113
+ "a lift study needs a measure: --measure-pixel <id> --measure-event Lead, or --measure-conversion <id>"
114
+ );
115
+ return {
116
+ name: flags.name ?? "",
117
+ ...flags.description ? { description: flags.description } : {},
118
+ type: "LIFT",
119
+ start_time: start,
120
+ end_time: end,
121
+ ...observationEnd(flags),
122
+ cells: [
123
+ {
124
+ name: names[0] ?? "Lift",
125
+ treatment_percentage: 100 - holdout,
126
+ control_percentage: holdout,
127
+ [level]: (level === "adsets" ? flags.adsets : flags.campaigns) ?? []
128
+ }
129
+ ],
130
+ objectives,
131
+ ...conf !== void 0 ? { confidence_level: conf } : {}
132
+ };
133
+ }
134
+ function creativeTestFromFlags(flags, start, end) {
135
+ const ads = flags.ads ?? [];
136
+ if (ads.length < 2) throw new Error("a creative test compares 2 to 5 ads of one ad set: --ads <ad>,<ad>");
137
+ if (!flags["test-daily-budget"])
138
+ throw new Error("pass --test-daily-budget: the part of the ad set's daily budget the test spends");
139
+ const shares = flags.split?.map((share) => numberFlag(share, "--split")) ?? evenSplit(ads.length);
140
+ const names = flags["version-names"] ?? [];
141
+ const objectives = measure(flags);
142
+ const conf = confidence(flags.confidence);
143
+ return {
144
+ name: flags.name ?? "",
145
+ ...flags.description ? { description: flags.description } : {},
146
+ type: "SPLIT_TEST_V2",
147
+ start_time: start,
148
+ end_time: end,
149
+ ...observationEnd(flags),
150
+ testDailyBudget: { amount: flags["test-daily-budget"] },
151
+ cells: ads.map((id, index) => ({
152
+ name: names[index] ?? versionLetter(index),
153
+ treatment_percentage: shares[index] ?? 0,
154
+ ads: [id]
155
+ })),
156
+ ...conf !== void 0 ? { confidence_level: conf } : {},
157
+ ...objectives ? { objectives } : {}
158
+ };
159
+ }
160
+ function otherStudyFromFlags(flags, type) {
161
+ if (!flags.start) throw new Error("pass --start: when the test begins (ISO, in the future)");
162
+ const start = studyTimeFlag(flags.start, "--start");
163
+ const end = endTime(flags, start);
164
+ if (end === void 0) throw new Error("pass --days or --end");
165
+ return type === "lift" ? liftFromFlags(flags, start, end) : creativeTestFromFlags(flags, start, end);
166
+ }
167
+ var TYPE_FLAGS = {
168
+ adsets: ["split", "lift"],
169
+ campaigns: ["split", "lift"],
170
+ ads: ["creative"],
171
+ holdout: ["lift"],
172
+ "test-daily-budget": ["creative"],
173
+ "observe-until": ["lift", "creative"]
174
+ };
175
+ function refuseForeignFlags(flags, kind) {
176
+ for (const [flag, kinds] of Object.entries(TYPE_FLAGS)) {
177
+ const value = flags[flag];
178
+ const given = Array.isArray(value) ? value.length > 0 : value !== void 0 && value !== "";
179
+ if (given && !kinds.includes(kind)) {
180
+ throw new Error(
181
+ `--${flag} is for ${kinds.map((other) => `--type ${other}`).join(" or ")}, not a ${kind} test \u2014 drop it, or pass the --type it belongs to`
182
+ );
183
+ }
184
+ }
185
+ }
186
+ function studyCreateFromFlags(flags) {
187
+ const kind = flags.type ?? "split";
188
+ if (kind !== "split" && kind !== "lift" && kind !== "creative") throw new Error("--type is split, lift or creative");
189
+ refuseForeignFlags(flags, kind);
190
+ return kind === "split" ? splitTestFromFlags(flags) : otherStudyFromFlags(flags, kind);
191
+ }
192
+ function splitTestFromFlags(flags) {
193
+ const level = flags.adsets?.length ? "adsets" : flags.campaigns?.length ? "campaigns" : void 0;
194
+ if (!level) {
195
+ throw new Error("pass --adsets or --campaigns: one id per version, e.g. --adsets 6123,6124");
196
+ }
197
+ const ids = (level === "adsets" ? flags.adsets : flags.campaigns) ?? [];
198
+ if (!flags.start) {
199
+ throw new Error("pass --start: when the test begins (ISO, in the future \u2014 after this chat publishes)");
200
+ }
201
+ const start = studyTimeFlag(flags.start, "--start");
202
+ const end = endTime(flags, start);
203
+ if (end === void 0) throw new Error("pass --days (how long it runs, 7\u201330 recommended) or --end");
204
+ const shares = flags.split?.map((share) => numberFlag(share, "--split")) ?? evenSplit(ids.length);
205
+ if (shares.length !== ids.length) {
206
+ throw new Error(`--split gives one share per version, in order: ${ids.length} versions, ${shares.length} shares`);
207
+ }
208
+ const names = flags["version-names"] ?? [];
209
+ const objectives = measure(flags);
210
+ const conf = confidence(flags.confidence);
211
+ return {
212
+ name: flags.name ?? "",
213
+ ...flags.description ? { description: flags.description } : {},
214
+ type: "SPLIT_TEST",
215
+ start_time: start,
216
+ end_time: end,
217
+ cells: ids.map((id, index) => ({
218
+ name: names[index] ?? versionLetter(index),
219
+ treatment_percentage: shares[index] ?? 0,
220
+ [level]: [id]
221
+ })),
222
+ ...conf !== void 0 ? { confidence_level: conf } : {},
223
+ ...objectives ? { objectives } : {}
224
+ };
225
+ }
226
+ function studyUpdateFromFlags(flags) {
227
+ const start = flags.start ? studyTimeFlag(flags.start, "--start") : void 0;
228
+ const end = endTime(flags, start);
229
+ const cells = flags.split?.map((pair) => {
230
+ const match = /^(\d+)=(.+)$/.exec(pair);
231
+ if (!match?.[1] || !match[2]) {
232
+ throw new Error(
233
+ `--split on a live test names each version by its cell id: --split 2231801141074157=60 (\`studies --study-id\` lists them), got "${pair}"`
234
+ );
235
+ }
236
+ return { id: match[1], treatment_percentage: numberFlag(match[2], "--split") };
237
+ });
238
+ const conf = confidence(flags.confidence);
239
+ const update = {};
240
+ if (flags.name) update.name = flags.name;
241
+ if (flags.description) update.description = flags.description;
242
+ if (start !== void 0) update.start_time = start;
243
+ if (end !== void 0) update.end_time = end;
244
+ if (conf !== void 0) update.confidence_level = conf;
245
+ if (cells) update.cells = cells;
246
+ return update;
247
+ }
248
+ var FILE_COMPANION_FLAGS = /* @__PURE__ */ new Set(["file", "name", "account-id"]);
249
+ function studyFileIgnoredFlags(args) {
250
+ const given = Object.entries(args).filter(([key, value]) => key !== "_" && value !== void 0 && value !== false && value !== "").map(([key]) => key.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`)).filter((key) => !FILE_COMPANION_FLAGS.has(key));
251
+ return [...new Set(given)].map((key) => `--${key}`);
252
+ }
253
+
254
+ // src/commands/ads/meta/study-writes.ts
255
+ var STAGED_NOTE = "Staged until publish \u2014 review with `baker ads meta draft`.";
256
+ var timeArgs = {
257
+ start: {
258
+ type: "string",
259
+ description: "When the test begins: ISO date/time (2026-10-20T08:00Z) or epoch seconds \u2014 in the future, after this chat publishes"
260
+ },
261
+ end: { type: "string", description: "When it ends (ISO or epoch seconds). Or --days" },
262
+ days: { type: "string", description: "How long it runs, from --start: 1\u201330 days (Meta recommends at least 7)" }
263
+ };
264
+ var createArgs = {
265
+ "account-id": { type: "string", description: "Numeric account ID or act_N" },
266
+ name: { type: "string", description: "Test name, shown in Ads Manager \u2192 Experiments" },
267
+ description: { type: "string", description: "What the test answers, e.g. which audience brings cheaper leads" },
268
+ adsets: {
269
+ type: "string",
270
+ description: "One ad set per version (repeatable or comma-separated; meta_temp_* refs from this chat work) \u2014 ad sets that differ in ONE thing"
271
+ },
272
+ campaigns: { type: "string", description: "One campaign per version instead (repeatable or comma-separated)" },
273
+ "version-names": {
274
+ type: "string",
275
+ description: 'A name for each version, in order \u2014 repeat once per version: --version-names Broad --version-names "Lookalike, 1%" (default Version A, Version B, \u2026; --type lift takes one, for its group)'
276
+ },
277
+ split: {
278
+ type: "string",
279
+ description: "Each version's share of the audience in %, in order, adding up to 100 (default even). Not for --type lift, which splits by --holdout"
280
+ },
281
+ ...timeArgs,
282
+ confidence: { type: "string", description: "How sure Meta must be to call a winner: 80, 90 or 95 (%)" },
283
+ "measure-pixel": {
284
+ type: "string",
285
+ description: "Decide on cost per pixel event: the pixel id (with --measure-event)"
286
+ },
287
+ "measure-event": {
288
+ type: "string",
289
+ description: "The pixel event that counts: Lead, Purchase, CompleteRegistration, \u2026"
290
+ },
291
+ "measure-conversion": { type: "string", description: "Decide on cost per custom conversion instead: its id" },
292
+ "measure-name": { type: "string", description: "What to call the measure in the review (default: the event)" },
293
+ type: {
294
+ type: "string",
295
+ description: "split (default: A/B test of ad sets or campaigns) | lift (a held-out group shows what the ads add \u2014 needs a measure) | creative (2\u20135 ads of one ad set, --ads)"
296
+ },
297
+ ads: { type: "string", description: "--type creative: one ad per version (comma-separated or repeatable)" },
298
+ holdout: { type: "string", description: "--type lift: % of the audience that never sees the ads (default 10)" },
299
+ "test-daily-budget": {
300
+ type: "string",
301
+ description: "--type creative: the part of the ad set's daily budget the test spends, e.g. 2"
302
+ },
303
+ "observe-until": {
304
+ type: "string",
305
+ description: "--type lift or creative: count results until this time (ISO) \u2014 after the end, for late conversions (default the end)"
306
+ },
307
+ file: {
308
+ type: "string",
309
+ description: "JSON with the full test in Meta's shape \u2014 {name, start_time, end_time, cells:[{name, treatment_percentage, adsets|campaigns}], objectives, confidence_level}, times in unix seconds. Needed for several ad sets per version. --name overrides its name; any other flag beside --file is refused."
310
+ }
311
+ };
312
+ function schemaArgs(args) {
313
+ return Object.fromEntries(Object.entries(args).map(([key, arg]) => [key, { ...arg, required: false }]));
314
+ }
315
+ function listValues(rawArgs, flag, parsed) {
316
+ const values = repeatedValues(rawArgs, flag, parsed).flatMap((value) => value.split(",")).map((value) => value.trim()).filter(Boolean);
317
+ return values.length > 0 ? values : void 0;
318
+ }
319
+ function wholeValues(rawArgs, flag, parsed) {
320
+ const values = repeatedValues(rawArgs, flag, parsed).map((value) => value.trim()).filter(Boolean);
321
+ return values.length > 0 ? values : void 0;
322
+ }
323
+ function studyFlagsFromArgs(args, rawArgs) {
324
+ const text = (key) => typeof args[key] === "string" && args[key] !== "" ? String(args[key]) : void 0;
325
+ return {
326
+ name: text("name"),
327
+ description: text("description"),
328
+ adsets: listValues(rawArgs, "adsets", args.adsets),
329
+ campaigns: listValues(rawArgs, "campaigns", args.campaigns),
330
+ "version-names": wholeValues(rawArgs, "version-names", args["version-names"]),
331
+ split: listValues(rawArgs, "split", args.split),
332
+ start: text("start"),
333
+ end: text("end"),
334
+ days: text("days"),
335
+ confidence: text("confidence"),
336
+ "measure-name": text("measure-name"),
337
+ "measure-pixel": text("measure-pixel"),
338
+ "measure-event": listValues(rawArgs, "measure-event", args["measure-event"]),
339
+ "measure-conversion": text("measure-conversion"),
340
+ type: text("type"),
341
+ ads: listValues(rawArgs, "ads", args.ads),
342
+ holdout: text("holdout"),
343
+ "test-daily-budget": text("test-daily-budget"),
344
+ "observe-until": text("observe-until")
345
+ };
346
+ }
347
+ function orFail(build) {
348
+ try {
349
+ return build();
350
+ } catch (err) {
351
+ failWriteValidation(err instanceof Error ? err.message : String(err));
352
+ }
353
+ }
354
+ registerSchema({
355
+ command: "ads.meta.studies.create",
356
+ description: "Stage a Meta A/B test (split test) \u2014 created at publish. Meta splits the audience so each person sees one version and calls the winner. Shorthand: --adsets <a>,<b> (or --campaigns) --start <ISO> --days 14 [--split 50,50] [--version-names \u2026] [--confidence 90] [--measure-pixel <id> --measure-event Lead | --measure-conversion <id>]. Without a measure Meta decides on cost per result of the campaigns' objective. Or --file with Meta's shape. --type lift: a held-out group (--holdout, default 10%) shows what the --campaigns/--adsets add, needs a measure. --type creative: 2\u20135 --ads of one ad set compared on --test-daily-budget.",
357
+ args: schemaArgs(createArgs)
358
+ });
359
+ var studiesCreateCommand = defineCommand({
360
+ meta: {
361
+ name: "create",
362
+ description: `Stage a Meta A/B test. ${STAGED_NOTE}
363
+ Set it up properly: versions that differ in ONE thing (duplicate the ad set with \`adsets duplicate\`, change the audience, placement or creative on the copy), each with its own budget, none in another running test.
364
+ Examples:
365
+ baker ads meta studies create --name "Broad vs lookalike" --adsets 6123,6124 --start 2026-10-20T08:00Z --days 14
366
+ baker ads meta studies create --name "Lead cost" --adsets 6123,meta_temp_ab12 --start 2026-10-20T08:00Z --days 14 --confidence 90 --measure-pixel 1275507706837548 --measure-event Lead
367
+ baker ads meta studies create --file test.json`
368
+ },
369
+ args: createArgs,
370
+ run: async ({ args, rawArgs }) => {
371
+ const accountId = bareAccountId(args);
372
+ const file = loadJsonFileArg(args.file);
373
+ const ignored = Object.keys(file).length > 0 ? studyFileIgnoredFlags(args) : [];
374
+ if (ignored.length > 0) {
375
+ failWriteValidation(
376
+ `--file holds the whole test, so ${ignored.join(", ")} would be ignored \u2014 put them in the file, or drop --file`
377
+ );
378
+ }
379
+ const flags = studyFlagsFromArgs(args, rawArgs);
380
+ const payload = Object.keys(file).length > 0 ? { ...file, ...flags.name ? { name: flags.name } : {} } : orFail(() => studyCreateFromFlags(flags));
381
+ await stageOp({ kind: "adStudy.create", accountId, payload });
382
+ }
383
+ });
384
+ var updateArgs = {
385
+ id: { type: "positional", description: "Test id (or a meta_temp_* ref staged in this chat)", required: true },
386
+ "account-id": createArgs["account-id"],
387
+ name: createArgs.name,
388
+ description: createArgs.description,
389
+ ...timeArgs,
390
+ split: {
391
+ type: "string",
392
+ description: "New shares by cell id, adding up to 100: --split 2231801141074157=60,1425644426371372=40 (`studies --study-id` lists the cell ids). Only before it starts."
393
+ },
394
+ confidence: createArgs.confidence
395
+ };
396
+ registerSchema({
397
+ command: "ads.meta.studies.update",
398
+ description: "Stage a change to a Meta A/B test: rename, describe, move the end (--end; --days counts from a new --start), re-time or re-split it (--start, --split <cell_id>=60,\u2026) before it starts, change the confidence. A running test keeps its start and split \u2014 end it and start a new one to change those.",
399
+ args: {
400
+ id: updateArgs.id,
401
+ ...schemaArgs(Object.fromEntries(Object.entries(updateArgs).filter(([key]) => key !== "id")))
402
+ }
403
+ });
404
+ var studiesUpdateCommand = defineCommand({
405
+ meta: {
406
+ name: "update",
407
+ description: `Stage a change to an A/B test. ${STAGED_NOTE}
408
+ Example: baker ads meta studies update 6123 --end 2026-11-10T08:00Z`
409
+ },
410
+ args: updateArgs,
411
+ run: async ({ args, rawArgs }) => {
412
+ const accountId = bareAccountId(args);
413
+ const target = requireTarget(args, "test");
414
+ const payload = orFail(() => studyUpdateFromFlags(studyFlagsFromArgs(args, rawArgs)));
415
+ if (Object.keys(payload).length === 0) {
416
+ failWriteValidation("nothing to change \u2014 pass --name, --description, --start, --end, --split or --confidence");
417
+ }
418
+ await stageOp({ kind: "adStudy.update", accountId, target, payload });
419
+ }
420
+ });
421
+ var ACTIONS = {
422
+ end: {
423
+ payload: { end_now: true },
424
+ note: "The test stops a few minutes after publish and keeps its results \u2014 use this to stop a running test early."
425
+ },
426
+ delete: {
427
+ payload: { status: "DELETED" },
428
+ note: "Deleting removes the test from Meta, results and all. For a running or finished test prefer `studies end` unless the user asked to delete it; for one that has not started, deleting is how to cancel it."
429
+ }
430
+ };
431
+ function actionCommand(name) {
432
+ const { payload, note } = ACTIONS[name];
433
+ registerSchema({
434
+ command: `ads.meta.studies.${name}`,
435
+ description: `Stage ${name === "end" ? "ending" : "deleting"} a Meta A/B test. ${note}`,
436
+ args: {
437
+ id: { type: "positional", description: "Test id", required: true },
438
+ "account-id": { type: "string", description: "Meta ad account ID (act_123)", required: false }
439
+ }
440
+ });
441
+ return defineCommand({
442
+ meta: { name, description: `Stage ${name === "end" ? "ending" : "deleting"} an A/B test. ${note} ${STAGED_NOTE}` },
443
+ args: {
444
+ id: { type: "positional", description: "Test id", required: true },
445
+ "account-id": createArgs["account-id"]
446
+ },
447
+ run: async ({ args }) => {
448
+ const accountId = bareAccountId(args);
449
+ await stageOp({
450
+ kind: "adStudy.update",
451
+ accountId,
452
+ target: requireTarget(args, "test"),
453
+ payload
454
+ });
455
+ }
456
+ });
457
+ }
458
+ var studiesEndCommand = actionCommand("end");
459
+ var studiesDeleteCommand = actionCommand("delete");
460
+ export {
461
+ studiesCreateCommand,
462
+ studiesDeleteCommand,
463
+ studiesEndCommand,
464
+ studiesUpdateCommand,
465
+ studyFlagsFromArgs
466
+ };
467
+ //# sourceMappingURL=study-writes-L2AA2PGL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/meta/study-writes.ts","../src/commands/ads/meta/study-flags.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { repeatedValues } from \"../../../lib/repeatedFlags.ts\";\nimport { registerSchema } from \"../../../schemas.ts\";\nimport { type StudyFlags, studyCreateFromFlags, studyFileIgnoredFlags, studyUpdateFromFlags } from \"./study-flags.ts\";\nimport { bareAccountId, failWriteValidation, loadJsonFileArg, requireTarget, stageOp } from \"./write-shared.ts\";\n\n/**\n * Staged Meta A/B test writes. Nothing here reaches Meta: each command stages\n * an op on this chat's draft, and the test is created, changed, ended or\n * deleted when the chat publishes — after the ad sets or campaigns it names\n * that the same draft creates.\n */\n\nconst STAGED_NOTE = \"Staged until publish — review with `baker ads meta draft`.\";\n\nconst timeArgs = {\n start: {\n type: \"string\",\n description:\n \"When the test begins: ISO date/time (2026-10-20T08:00Z) or epoch seconds — in the future, after this chat publishes\",\n },\n end: { type: \"string\", description: \"When it ends (ISO or epoch seconds). Or --days\" },\n days: { type: \"string\", description: \"How long it runs, from --start: 1–30 days (Meta recommends at least 7)\" },\n} as const;\n\nconst createArgs = {\n \"account-id\": { type: \"string\", description: \"Numeric account ID or act_N\" },\n name: { type: \"string\", description: \"Test name, shown in Ads Manager → Experiments\" },\n description: { type: \"string\", description: \"What the test answers, e.g. which audience brings cheaper leads\" },\n adsets: {\n type: \"string\",\n description:\n \"One ad set per version (repeatable or comma-separated; meta_temp_* refs from this chat work) — ad sets that differ in ONE thing\",\n },\n campaigns: { type: \"string\", description: \"One campaign per version instead (repeatable or comma-separated)\" },\n \"version-names\": {\n type: \"string\",\n description:\n 'A name for each version, in order — repeat once per version: --version-names Broad --version-names \"Lookalike, 1%\" (default Version A, Version B, …; --type lift takes one, for its group)',\n },\n split: {\n type: \"string\",\n description:\n \"Each version's share of the audience in %, in order, adding up to 100 (default even). Not for --type lift, which splits by --holdout\",\n },\n ...timeArgs,\n confidence: { type: \"string\", description: \"How sure Meta must be to call a winner: 80, 90 or 95 (%)\" },\n \"measure-pixel\": {\n type: \"string\",\n description: \"Decide on cost per pixel event: the pixel id (with --measure-event)\",\n },\n \"measure-event\": {\n type: \"string\",\n description: \"The pixel event that counts: Lead, Purchase, CompleteRegistration, …\",\n },\n \"measure-conversion\": { type: \"string\", description: \"Decide on cost per custom conversion instead: its id\" },\n \"measure-name\": { type: \"string\", description: \"What to call the measure in the review (default: the event)\" },\n type: {\n type: \"string\",\n description:\n \"split (default: A/B test of ad sets or campaigns) | lift (a held-out group shows what the ads add — needs a measure) | creative (2–5 ads of one ad set, --ads)\",\n },\n ads: { type: \"string\", description: \"--type creative: one ad per version (comma-separated or repeatable)\" },\n holdout: { type: \"string\", description: \"--type lift: % of the audience that never sees the ads (default 10)\" },\n \"test-daily-budget\": {\n type: \"string\",\n description: \"--type creative: the part of the ad set's daily budget the test spends, e.g. 2\",\n },\n \"observe-until\": {\n type: \"string\",\n description:\n \"--type lift or creative: count results until this time (ISO) — after the end, for late conversions (default the end)\",\n },\n file: {\n type: \"string\",\n description:\n \"JSON with the full test in Meta's shape — {name, start_time, end_time, cells:[{name, treatment_percentage, adsets|campaigns}], objectives, confidence_level}, times in unix seconds. Needed for several ad sets per version. --name overrides its name; any other flag beside --file is refused.\",\n },\n} as const;\n\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[] | undefined {\n const values = repeatedValues(rawArgs, flag, parsed)\n .flatMap((value) => value.split(\",\"))\n .map((value) => value.trim())\n .filter(Boolean);\n return values.length > 0 ? values : undefined;\n}\n\n/** A free-text flag, one value per occurrence and never split: a version's name may hold a comma. */\nfunction wholeValues(rawArgs: readonly string[] | undefined, flag: string, parsed: unknown): string[] | undefined {\n const values = repeatedValues(rawArgs, flag, parsed)\n .map((value) => value.trim())\n .filter(Boolean);\n return values.length > 0 ? values : undefined;\n}\n\n/** The command line as study flags, every repeatable flag read whole (citty keeps only the last). */\nexport function studyFlagsFromArgs(args: Record<string, unknown>, rawArgs: readonly string[] | undefined): StudyFlags {\n const text = (key: string) => (typeof args[key] === \"string\" && args[key] !== \"\" ? String(args[key]) : undefined);\n return {\n name: text(\"name\"),\n description: text(\"description\"),\n adsets: listValues(rawArgs, \"adsets\", args.adsets),\n campaigns: listValues(rawArgs, \"campaigns\", args.campaigns),\n \"version-names\": wholeValues(rawArgs, \"version-names\", args[\"version-names\"]),\n split: listValues(rawArgs, \"split\", args.split),\n start: text(\"start\"),\n end: text(\"end\"),\n days: text(\"days\"),\n confidence: text(\"confidence\"),\n \"measure-name\": text(\"measure-name\"),\n \"measure-pixel\": text(\"measure-pixel\"),\n \"measure-event\": listValues(rawArgs, \"measure-event\", args[\"measure-event\"]),\n \"measure-conversion\": text(\"measure-conversion\"),\n type: text(\"type\"),\n ads: listValues(rawArgs, \"ads\", args.ads),\n holdout: text(\"holdout\"),\n \"test-daily-budget\": text(\"test-daily-budget\"),\n \"observe-until\": text(\"observe-until\"),\n };\n}\n\nfunction orFail<T>(build: () => T): T {\n try {\n return build();\n } catch (err) {\n failWriteValidation(err instanceof Error ? err.message : String(err));\n }\n}\n\nregisterSchema({\n command: \"ads.meta.studies.create\",\n description:\n \"Stage a Meta A/B test (split test) — created at publish. Meta splits the audience so each person sees one version and calls the winner. Shorthand: --adsets <a>,<b> (or --campaigns) --start <ISO> --days 14 [--split 50,50] [--version-names …] [--confidence 90] [--measure-pixel <id> --measure-event Lead | --measure-conversion <id>]. Without a measure Meta decides on cost per result of the campaigns' objective. Or --file with Meta's shape. --type lift: a held-out group (--holdout, default 10%) shows what the --campaigns/--adsets add, needs a measure. --type creative: 2–5 --ads of one ad set compared on --test-daily-budget.\",\n args: schemaArgs(createArgs),\n});\n\nexport const studiesCreateCommand = defineCommand({\n meta: {\n name: \"create\",\n description: `Stage a Meta A/B test. ${STAGED_NOTE}\nSet it up properly: versions that differ in ONE thing (duplicate the ad set with \\`adsets duplicate\\`, change the audience, placement or creative on the copy), each with its own budget, none in another running test.\nExamples:\n baker ads meta studies create --name \"Broad vs lookalike\" --adsets 6123,6124 --start 2026-10-20T08:00Z --days 14\n baker ads meta studies create --name \"Lead cost\" --adsets 6123,meta_temp_ab12 --start 2026-10-20T08:00Z --days 14 --confidence 90 --measure-pixel 1275507706837548 --measure-event Lead\n baker ads meta studies create --file test.json`,\n },\n args: createArgs,\n run: async ({ args, rawArgs }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n const file = loadJsonFileArg(args.file);\n const ignored = Object.keys(file).length > 0 ? studyFileIgnoredFlags(args as Record<string, unknown>) : [];\n if (ignored.length > 0) {\n failWriteValidation(\n `--file holds the whole test, so ${ignored.join(\", \")} would be ignored — put them in the file, or drop --file`,\n );\n }\n const flags = studyFlagsFromArgs(args, rawArgs);\n const payload =\n Object.keys(file).length > 0\n ? { ...file, ...(flags.name ? { name: flags.name } : {}) }\n : orFail(() => studyCreateFromFlags(flags));\n await stageOp({ kind: \"adStudy.create\", accountId, payload });\n },\n});\n\nconst updateArgs = {\n id: { type: \"positional\", description: \"Test id (or a meta_temp_* ref staged in this chat)\", required: true },\n \"account-id\": createArgs[\"account-id\"],\n name: createArgs.name,\n description: createArgs.description,\n ...timeArgs,\n split: {\n type: \"string\",\n description:\n \"New shares by cell id, adding up to 100: --split 2231801141074157=60,1425644426371372=40 (`studies --study-id` lists the cell ids). Only before it starts.\",\n },\n confidence: createArgs.confidence,\n} as const;\n\nregisterSchema({\n command: \"ads.meta.studies.update\",\n description:\n \"Stage a change to a Meta A/B test: rename, describe, move the end (--end; --days counts from a new --start), re-time or re-split it (--start, --split <cell_id>=60,…) before it starts, change the confidence. A running test keeps its start and split — end it and start a new one to change those.\",\n args: {\n id: updateArgs.id,\n ...schemaArgs(Object.fromEntries(Object.entries(updateArgs).filter(([key]) => key !== \"id\"))),\n },\n});\n\nexport const studiesUpdateCommand = defineCommand({\n meta: {\n name: \"update\",\n description: `Stage a change to an A/B test. ${STAGED_NOTE}\nExample: baker ads meta studies update 6123 --end 2026-11-10T08:00Z`,\n },\n args: updateArgs,\n run: async ({ args, rawArgs }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n const target = requireTarget(args as Record<string, unknown>, \"test\");\n const payload = orFail(() => studyUpdateFromFlags(studyFlagsFromArgs(args, rawArgs)));\n if (Object.keys(payload).length === 0) {\n failWriteValidation(\"nothing to change — pass --name, --description, --start, --end, --split or --confidence\");\n }\n await stageOp({ kind: \"adStudy.update\", accountId, target, payload });\n },\n});\n\nconst ACTIONS = {\n end: {\n payload: { end_now: true },\n note: \"The test stops a few minutes after publish and keeps its results — use this to stop a running test early.\",\n },\n delete: {\n payload: { status: \"DELETED\" },\n note: \"Deleting removes the test from Meta, results and all. For a running or finished test prefer `studies end` unless the user asked to delete it; for one that has not started, deleting is how to cancel it.\",\n },\n} as const;\n\nfunction actionCommand(name: keyof typeof ACTIONS) {\n const { payload, note } = ACTIONS[name];\n registerSchema({\n command: `ads.meta.studies.${name}`,\n description: `Stage ${name === \"end\" ? \"ending\" : \"deleting\"} a Meta A/B test. ${note}`,\n args: {\n id: { type: \"positional\", description: \"Test 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 === \"end\" ? \"ending\" : \"deleting\"} an A/B test. ${note} ${STAGED_NOTE}` },\n args: {\n id: { type: \"positional\", description: \"Test id\", required: true },\n \"account-id\": createArgs[\"account-id\"],\n },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n await stageOp({\n kind: \"adStudy.update\",\n accountId,\n target: requireTarget(args as Record<string, unknown>, \"test\"),\n payload,\n });\n },\n });\n}\n\nexport const studiesEndCommand = actionCommand(\"end\");\nexport const studiesDeleteCommand = actionCommand(\"delete\");\n","import type { AdStudyCreate, AdStudyObjective, AdStudyUpdate } from \"@baker/api/ads-meta/adStudies\";\n\n/**\n * The marketer's shorthand for a Meta A/B test, read into Meta's own shape.\n * One version per ad set (or campaign), split evenly unless told; times as ISO\n * or epoch; confidence in percent. A test that needs several ad sets per\n * version is staged with `--file` in Meta's shape instead.\n */\n\nexport interface StudyFlags {\n name?: string;\n description?: string;\n adsets?: string[];\n campaigns?: string[];\n \"version-names\"?: string[];\n split?: string[];\n start?: string;\n end?: string;\n days?: string;\n confidence?: string;\n \"measure-name\"?: string;\n \"measure-pixel\"?: string;\n \"measure-event\"?: string[] | string;\n \"measure-conversion\"?: string;\n /** split (default) | lift | creative */\n type?: string;\n /** A creative test: one ad per version. */\n ads?: string[];\n /** A lift study: the share of the audience held out from the ads, in %. */\n holdout?: string;\n \"test-daily-budget\"?: string;\n \"observe-until\"?: string;\n}\n\nconst DAY_SECONDS = 86_400;\n\n/** ISO date/time or epoch seconds/milliseconds, as unix seconds. */\nexport function studyTimeFlag(value: string, flag: string): number {\n if (/^\\d{10}$/.test(value)) return Number(value);\n if (/^\\d{13}$/.test(value)) return Math.floor(Number(value) / 1000);\n const ms = Date.parse(value);\n if (Number.isNaN(ms)) {\n throw new Error(`${flag} must be an ISO date/time (2026-10-20T08:00Z) or epoch seconds`);\n }\n return Math.floor(ms / 1000);\n}\n\nfunction numberFlag(value: string, flag: string): number {\n const n = Number(value.replace(/%$/, \"\"));\n if (!Number.isFinite(n)) throw new Error(`${flag} must be a number, got \"${value}\"`);\n return n;\n}\n\n/** n shares that add up to exactly 100, the remainder on the first: 3 → 33.34, 33.33, 33.33. */\nexport function evenSplit(count: number): number[] {\n const base = Math.floor((100 / count) * 100) / 100;\n const first = Math.round((100 - base * (count - 1)) * 100) / 100;\n return Array.from({ length: count }, (_, index) => (index === 0 ? first : base));\n}\n\nfunction endTime(flags: StudyFlags, start: number | undefined): number | undefined {\n if (flags.end) return studyTimeFlag(flags.end, \"--end\");\n if (flags.days !== undefined) {\n if (start === undefined) throw new Error(\"--days counts from --start — pass --start too, or --end\");\n return start + Math.round(numberFlag(flags.days, \"--days\") * DAY_SECONDS);\n }\n return undefined;\n}\n\nfunction confidence(value: string | undefined): number | undefined {\n if (value === undefined) return undefined;\n const n = numberFlag(value, \"--confidence\");\n return n > 1 ? n / 100 : n;\n}\n\nfunction measure(flags: StudyFlags): AdStudyObjective[] | undefined {\n const events = [flags[\"measure-event\"] ?? []].flat().filter(Boolean);\n if (flags[\"measure-pixel\"]) {\n if (events.length === 0) {\n throw new Error(\"--measure-pixel needs --measure-event (the pixel event that counts, e.g. Lead or Purchase)\");\n }\n const name = flags[\"measure-name\"] ?? events.join(\" or \");\n return [\n { name, type: \"CONVERSIONS\", is_primary: true, adspixels: [{ id: flags[\"measure-pixel\"], event_names: events }] },\n ];\n }\n if (flags[\"measure-conversion\"]) {\n const name = flags[\"measure-name\"] ?? \"Custom conversion\";\n return [{ name, type: \"CONVERSIONS\", is_primary: true, customconversions: [{ id: flags[\"measure-conversion\"] }] }];\n }\n if (events.length > 0) throw new Error(\"--measure-event counts on a pixel — pass --measure-pixel too\");\n return undefined;\n}\n\nfunction versionLetter(index: number): string {\n return `Version ${String.fromCharCode(65 + index)}`;\n}\n\n/** A lift study or creative test: when Meta stops counting results (default the end). */\nfunction observationEnd(flags: StudyFlags): { observation_end_time?: number } {\n const until = flags[\"observe-until\"];\n return until ? { observation_end_time: studyTimeFlag(until, \"--observe-until\") } : {};\n}\n\n/** A lift study: every ad set or campaign named runs in one cell, with a share held out (default 10%). */\nfunction liftFromFlags(flags: StudyFlags, start: number, end: number): AdStudyCreate {\n const level = flags.adsets?.length ? \"adsets\" : flags.campaigns?.length ? \"campaigns\" : undefined;\n if (!level) throw new Error(\"a lift study measures --campaigns or --adsets (comma-separated, all in one group)\");\n if (flags.split) {\n throw new Error(\n \"a lift study shows the ads to everyone but a held-out share — set that share with --holdout (e.g. --holdout 10), not --split\",\n );\n }\n const names = flags[\"version-names\"] ?? [];\n if (names.length > 1) {\n throw new Error(\"a lift study runs as one group — pass one --version-names for it, or none (default Lift)\");\n }\n const holdout = flags.holdout === undefined ? 10 : numberFlag(flags.holdout, \"--holdout\");\n const objectives = measure(flags);\n const conf = confidence(flags.confidence);\n if (!objectives)\n throw new Error(\n \"a lift study needs a measure: --measure-pixel <id> --measure-event Lead, or --measure-conversion <id>\",\n );\n return {\n name: flags.name ?? \"\",\n ...(flags.description ? { description: flags.description } : {}),\n type: \"LIFT\",\n start_time: start,\n end_time: end,\n ...observationEnd(flags),\n cells: [\n {\n name: names[0] ?? \"Lift\",\n treatment_percentage: 100 - holdout,\n control_percentage: holdout,\n [level]: (level === \"adsets\" ? flags.adsets : flags.campaigns) ?? [],\n },\n ],\n objectives,\n ...(conf !== undefined ? { confidence_level: conf } : {}),\n };\n}\n\n/** A creative test: one ad per version, split evenly unless told, on a share of the ad set's daily budget. */\nfunction creativeTestFromFlags(flags: StudyFlags, start: number, end: number): AdStudyCreate {\n const ads = flags.ads ?? [];\n if (ads.length < 2) throw new Error(\"a creative test compares 2 to 5 ads of one ad set: --ads <ad>,<ad>\");\n if (!flags[\"test-daily-budget\"])\n throw new Error(\"pass --test-daily-budget: the part of the ad set's daily budget the test spends\");\n const shares = flags.split?.map((share) => numberFlag(share, \"--split\")) ?? evenSplit(ads.length);\n const names = flags[\"version-names\"] ?? [];\n const objectives = measure(flags);\n const conf = confidence(flags.confidence);\n return {\n name: flags.name ?? \"\",\n ...(flags.description ? { description: flags.description } : {}),\n type: \"SPLIT_TEST_V2\",\n start_time: start,\n end_time: end,\n ...observationEnd(flags),\n testDailyBudget: { amount: flags[\"test-daily-budget\"] },\n cells: ads.map((id, index) => ({\n name: names[index] ?? versionLetter(index),\n treatment_percentage: shares[index] ?? 0,\n ads: [id],\n })),\n ...(conf !== undefined ? { confidence_level: conf } : {}),\n ...(objectives ? { objectives } : {}),\n };\n}\n\n/** A lift study or a creative test, from its own flags. */\nfunction otherStudyFromFlags(flags: StudyFlags, type: \"lift\" | \"creative\"): AdStudyCreate {\n if (!flags.start) throw new Error(\"pass --start: when the test begins (ISO, in the future)\");\n const start = studyTimeFlag(flags.start, \"--start\");\n const end = endTime(flags, start);\n if (end === undefined) throw new Error(\"pass --days or --end\");\n return type === \"lift\" ? liftFromFlags(flags, start, end) : creativeTestFromFlags(flags, start, end);\n}\n\ntype StudyKind = \"split\" | \"lift\" | \"creative\";\n\n/** The flags only some types of test take, and which. */\nconst TYPE_FLAGS: Readonly<Partial<Record<keyof StudyFlags, readonly StudyKind[]>>> = {\n adsets: [\"split\", \"lift\"],\n campaigns: [\"split\", \"lift\"],\n ads: [\"creative\"],\n holdout: [\"lift\"],\n \"test-daily-budget\": [\"creative\"],\n \"observe-until\": [\"lift\", \"creative\"],\n};\n\n/** A flag the type does not take is refused, never dropped: the test would not be the one asked for. */\nfunction refuseForeignFlags(flags: StudyFlags, kind: StudyKind): void {\n for (const [flag, kinds] of Object.entries(TYPE_FLAGS) as [keyof StudyFlags, readonly StudyKind[]][]) {\n const value = flags[flag];\n const given = Array.isArray(value) ? value.length > 0 : value !== undefined && value !== \"\";\n if (given && !kinds.includes(kind)) {\n throw new Error(\n `--${flag} is for ${kinds.map((other) => `--type ${other}`).join(\" or \")}, not a ${kind} test — drop it, or pass the --type it belongs to`,\n );\n }\n }\n}\n\nexport function studyCreateFromFlags(flags: StudyFlags): AdStudyCreate {\n const kind = flags.type ?? \"split\";\n if (kind !== \"split\" && kind !== \"lift\" && kind !== \"creative\") throw new Error(\"--type is split, lift or creative\");\n refuseForeignFlags(flags, kind);\n return kind === \"split\" ? splitTestFromFlags(flags) : otherStudyFromFlags(flags, kind);\n}\n\n/** An A/B test: one version per ad set (or campaign), split evenly unless told. */\nfunction splitTestFromFlags(flags: StudyFlags): AdStudyCreate {\n const level = flags.adsets?.length ? \"adsets\" : flags.campaigns?.length ? \"campaigns\" : undefined;\n if (!level) {\n throw new Error(\"pass --adsets or --campaigns: one id per version, e.g. --adsets 6123,6124\");\n }\n const ids = (level === \"adsets\" ? flags.adsets : flags.campaigns) ?? [];\n if (!flags.start) {\n throw new Error(\"pass --start: when the test begins (ISO, in the future — after this chat publishes)\");\n }\n const start = studyTimeFlag(flags.start, \"--start\");\n const end = endTime(flags, start);\n if (end === undefined) throw new Error(\"pass --days (how long it runs, 7–30 recommended) or --end\");\n const shares = flags.split?.map((share) => numberFlag(share, \"--split\")) ?? evenSplit(ids.length);\n if (shares.length !== ids.length) {\n throw new Error(`--split gives one share per version, in order: ${ids.length} versions, ${shares.length} shares`);\n }\n const names = flags[\"version-names\"] ?? [];\n const objectives = measure(flags);\n const conf = confidence(flags.confidence);\n return {\n name: flags.name ?? \"\",\n ...(flags.description ? { description: flags.description } : {}),\n type: \"SPLIT_TEST\",\n start_time: start,\n end_time: end,\n cells: ids.map((id, index) => ({\n name: names[index] ?? versionLetter(index),\n treatment_percentage: shares[index] ?? 0,\n [level]: [id],\n })),\n ...(conf !== undefined ? { confidence_level: conf } : {}),\n ...(objectives ? { objectives } : {}),\n };\n}\n\nexport function studyUpdateFromFlags(flags: StudyFlags): AdStudyUpdate {\n const start = flags.start ? studyTimeFlag(flags.start, \"--start\") : undefined;\n const end = endTime(flags, start);\n const cells = flags.split?.map((pair) => {\n const match = /^(\\d+)=(.+)$/.exec(pair);\n if (!match?.[1] || !match[2]) {\n throw new Error(\n `--split on a live test names each version by its cell id: --split 2231801141074157=60 (\\`studies --study-id\\` lists them), got \"${pair}\"`,\n );\n }\n return { id: match[1], treatment_percentage: numberFlag(match[2], \"--split\") };\n });\n const conf = confidence(flags.confidence);\n const update: AdStudyUpdate = {};\n if (flags.name) update.name = flags.name;\n if (flags.description) update.description = flags.description;\n if (start !== undefined) update.start_time = start;\n if (end !== undefined) update.end_time = end;\n if (conf !== undefined) update.confidence_level = conf;\n if (cells) update.cells = cells;\n return update;\n}\n\n/** Flags a `--file` test takes beside the file: its name, and the account. */\nconst FILE_COMPANION_FLAGS = new Set([\"file\", \"name\", \"account-id\"]);\n\n/**\n * The flags given beside `--file` that the file would silently win over. The\n * file is the whole test in Meta's shape, so only `--name` overrides it; any\n * other flag is refused rather than dropped.\n */\nexport function studyFileIgnoredFlags(args: Record<string, unknown>): string[] {\n const given = Object.entries(args)\n .filter(([key, value]) => key !== \"_\" && value !== undefined && value !== false && value !== \"\")\n // citty hands each flag over under its kebab and its camelCase name alike.\n .map(([key]) => key.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`))\n .filter((key) => !FILE_COMPANION_FLAGS.has(key));\n return [...new Set(given)].map((key) => `--${key}`);\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,54 @@
1
+ import {
2
+ reportError,
3
+ reportInvalid
4
+ } from "./chunk-GDLQ6SGW.js";
5
+ import {
6
+ testimonialSourcesSyncRequestSchema
7
+ } from "./chunk-DAO63OOP.js";
8
+ import "./chunk-GXDLWBOY.js";
9
+ import "./chunk-GIWHHCD6.js";
10
+ import "./chunk-XQIOCIDO.js";
11
+ import "./chunk-WTJSMYY2.js";
12
+ import {
13
+ apiPost
14
+ } from "./chunk-XDZVBX6L.js";
15
+ import "./chunk-N5O67GK5.js";
16
+ import "./chunk-EE72SSB2.js";
17
+ import {
18
+ registerSchema,
19
+ writeJson
20
+ } from "./chunk-WNSE7N75.js";
21
+ import "./chunk-YQSBHWOI.js";
22
+
23
+ // src/commands/testimonials/sources/sync.ts
24
+ import { defineCommand } from "citty";
25
+ registerSchema({
26
+ command: "testimonials.sources.sync",
27
+ description: "Import a review source's new reviews now. Only reviews newer than the last import are read where the site allows it.",
28
+ args: { id: { type: "string", description: "Source id from `testimonials sources list`", required: true } }
29
+ });
30
+ var syncCommand = defineCommand({
31
+ meta: {
32
+ name: "sync",
33
+ description: "Import a review source's new reviews now.\n\nExample: baker testimonials sources sync <source-id>"
34
+ },
35
+ args: { id: { type: "positional", description: "Source id from `testimonials sources list`", required: true } },
36
+ run: async ({ args }) => {
37
+ const parsed = testimonialSourcesSyncRequestSchema.safeParse({ id: String(args.id ?? "") });
38
+ if (!parsed.success) reportInvalid(parsed.error.issues[0]);
39
+ try {
40
+ const data = await apiPost("/api/testimonials/sources/sync", parsed.data);
41
+ writeJson({
42
+ ok: true,
43
+ data,
44
+ hints: data.started ? void 0 : ["An import was already running for this source; nothing new was started."]
45
+ });
46
+ } catch (err) {
47
+ reportError(err);
48
+ }
49
+ }
50
+ });
51
+ export {
52
+ syncCommand
53
+ };
54
+ //# sourceMappingURL=sync-DZAOUQPE.js.map