@koda-sl/baker-cli 0.386.0-dev.4e118c09a → 0.386.0-dev.d6e55699d

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 (967) hide show
  1. package/README.md +1057 -215
  2. package/canvas/tiktok-captions-composition/index.html +5 -6
  3. package/canvas/tiktok-captions-composition/meta.json +5 -0
  4. package/dist/account-5TGX45FO.js +79 -0
  5. package/dist/account-5TGX45FO.js.map +1 -0
  6. package/dist/account-CLOKMTTC.js +49 -0
  7. package/dist/account-CLOKMTTC.js.map +1 -0
  8. package/dist/account-XFK6VX2R.js +80 -0
  9. package/dist/account-XFK6VX2R.js.map +1 -0
  10. package/dist/account-reads-ZK5RMLB2.js +218 -0
  11. package/dist/account-reads-ZK5RMLB2.js.map +1 -0
  12. package/dist/account-writes-Y7EQXDXF.js +66 -0
  13. package/dist/account-writes-Y7EQXDXF.js.map +1 -0
  14. package/dist/accounts-7YD457YN.js +114 -0
  15. package/dist/accounts-7YD457YN.js.map +1 -0
  16. package/dist/accounts-BJ3X5JQT.js +115 -0
  17. package/dist/accounts-BJ3X5JQT.js.map +1 -0
  18. package/dist/accounts-HGAFFOA7.js +77 -0
  19. package/dist/accounts-HGAFFOA7.js.map +1 -0
  20. package/dist/accounts-OWMXUT6D.js +611 -0
  21. package/dist/accounts-OWMXUT6D.js.map +1 -0
  22. package/dist/accounts-RYBDLQ6H.js +75 -0
  23. package/dist/accounts-RYBDLQ6H.js.map +1 -0
  24. package/dist/actions-NSQYW7YS.js +55 -0
  25. package/dist/actions-NSQYW7YS.js.map +1 -0
  26. package/dist/active-entities-R6GZIO6Z.js +103 -0
  27. package/dist/active-entities-R6GZIO6Z.js.map +1 -0
  28. package/dist/activities-ESBF3GFS.js +74 -0
  29. package/dist/activities-ESBF3GFS.js.map +1 -0
  30. package/dist/ad-group-writes-I225OYDZ.js +170 -0
  31. package/dist/ad-group-writes-I225OYDZ.js.map +1 -0
  32. package/dist/ad-groups-O35MWNF6.js +68 -0
  33. package/dist/ad-groups-O35MWNF6.js.map +1 -0
  34. package/dist/ad-writes-SS5YZO5W.js +174 -0
  35. package/dist/ad-writes-SS5YZO5W.js.map +1 -0
  36. package/dist/add-HWIE5PGR.js +302 -0
  37. package/dist/add-HWIE5PGR.js.map +1 -0
  38. package/dist/add-IIW3NHZH.js +104 -0
  39. package/dist/add-IIW3NHZH.js.map +1 -0
  40. package/dist/add-QZHAWUBA.js +97 -0
  41. package/dist/add-QZHAWUBA.js.map +1 -0
  42. package/dist/add-TGQIVVXH.js +105 -0
  43. package/dist/add-TGQIVVXH.js.map +1 -0
  44. package/dist/add-accounts-6QYPOPR2.js +91 -0
  45. package/dist/add-accounts-6QYPOPR2.js.map +1 -0
  46. package/dist/ads-AUSRB4GU.js +128 -0
  47. package/dist/ads-AUSRB4GU.js.map +1 -0
  48. package/dist/ads-COYOTEKE.js +77 -0
  49. package/dist/ads-COYOTEKE.js.map +1 -0
  50. package/dist/ads-D6KKCQ3Q.js +40 -0
  51. package/dist/ads-D6KKCQ3Q.js.map +1 -0
  52. package/dist/ads-QKIHHXP5.js +113 -0
  53. package/dist/ads-QKIHHXP5.js.map +1 -0
  54. package/dist/adsets-7WMWU45E.js +176 -0
  55. package/dist/adsets-7WMWU45E.js.map +1 -0
  56. package/dist/advertisers-6NZ2M57X.js +120 -0
  57. package/dist/advertisers-6NZ2M57X.js.map +1 -0
  58. package/dist/advertisers-BCGKUMEH.js +125 -0
  59. package/dist/advertisers-BCGKUMEH.js.map +1 -0
  60. package/dist/analytics-QJC2BTZY.js +433 -0
  61. package/dist/analytics-QJC2BTZY.js.map +1 -0
  62. package/dist/analytics-SN6K7J7M.js +1980 -0
  63. package/dist/analytics-SN6K7J7M.js.map +1 -0
  64. package/dist/animate-JXIT77Y5.js +480 -0
  65. package/dist/animate-JXIT77Y5.js.map +1 -0
  66. package/dist/assign-XFDA42KL.js +77 -0
  67. package/dist/assign-XFDA42KL.js.map +1 -0
  68. package/dist/audience-size-DJPFYHPJ.js +94 -0
  69. package/dist/audience-size-DJPFYHPJ.js.map +1 -0
  70. package/dist/audiences-DC3IOG34.js +85 -0
  71. package/dist/audiences-DC3IOG34.js.map +1 -0
  72. package/dist/audiences-NEW3LLQR.js +268 -0
  73. package/dist/audiences-NEW3LLQR.js.map +1 -0
  74. package/dist/audiences-VXTIBZP6.js +78 -0
  75. package/dist/audiences-VXTIBZP6.js.map +1 -0
  76. package/dist/audit-M5B7TZGT.js +151 -0
  77. package/dist/audit-M5B7TZGT.js.map +1 -0
  78. package/dist/audit-UIPMTI5C.js +88 -0
  79. package/dist/audit-UIPMTI5C.js.map +1 -0
  80. package/dist/autocomplete-NWHEASQY.js +111 -0
  81. package/dist/autocomplete-NWHEASQY.js.map +1 -0
  82. package/dist/avatars-RNMUVMFM.js +38 -0
  83. package/dist/avatars-RNMUVMFM.js.map +1 -0
  84. package/dist/bid-pricing-EAY3HAHY.js +99 -0
  85. package/dist/bid-pricing-EAY3HAHY.js.map +1 -0
  86. package/dist/brand-XBHWYPMT.js +22 -0
  87. package/dist/brand-XBHWYPMT.js.map +1 -0
  88. package/dist/brief-XBAAPKRR.js +492 -0
  89. package/dist/brief-XBAAPKRR.js.map +1 -0
  90. package/dist/businesses-J7OP7MSK.js +53 -0
  91. package/dist/businesses-J7OP7MSK.js.map +1 -0
  92. package/dist/campaign-groups-7KA2RA5V.js +95 -0
  93. package/dist/campaign-groups-7KA2RA5V.js.map +1 -0
  94. package/dist/campaign-writes-5XA727KI.js +170 -0
  95. package/dist/campaign-writes-5XA727KI.js.map +1 -0
  96. package/dist/campaign-writes-D2UID2I6.js +165 -0
  97. package/dist/campaign-writes-D2UID2I6.js.map +1 -0
  98. package/dist/campaigns-JPYNVFQI.js +76 -0
  99. package/dist/campaigns-JPYNVFQI.js.map +1 -0
  100. package/dist/campaigns-NJ3KOPJS.js +107 -0
  101. package/dist/campaigns-NJ3KOPJS.js.map +1 -0
  102. package/dist/campaigns-QUTTH2TB.js +110 -0
  103. package/dist/campaigns-QUTTH2TB.js.map +1 -0
  104. package/dist/campaigns-SOO5RHYG.js +109 -0
  105. package/dist/campaigns-SOO5RHYG.js.map +1 -0
  106. package/dist/canvas-3VZ46BCF.js +46 -0
  107. package/dist/canvas-3VZ46BCF.js.map +1 -0
  108. package/dist/capabilities-KAYDPH7E.js +144 -0
  109. package/dist/capabilities-KAYDPH7E.js.map +1 -0
  110. package/dist/cards-7H32TNMO.js +85 -0
  111. package/dist/cards-7H32TNMO.js.map +1 -0
  112. package/dist/catalog-OTICZPJA.js +64 -0
  113. package/dist/catalog-OTICZPJA.js.map +1 -0
  114. package/dist/catalogs-ABCQLCDU.js +128 -0
  115. package/dist/catalogs-ABCQLCDU.js.map +1 -0
  116. package/dist/changes-22EO52IY.js +135 -0
  117. package/dist/changes-22EO52IY.js.map +1 -0
  118. package/dist/chatgpt-B3NHRJUE.js +47 -0
  119. package/dist/chatgpt-B3NHRJUE.js.map +1 -0
  120. package/dist/chats-QG3IRHOD.js +262 -0
  121. package/dist/chats-QG3IRHOD.js.map +1 -0
  122. package/dist/chunk-2CV7LX23.js +474 -0
  123. package/dist/chunk-2CV7LX23.js.map +1 -0
  124. package/dist/chunk-2SQJL7ZN.js +56 -0
  125. package/dist/chunk-2SQJL7ZN.js.map +1 -0
  126. package/dist/chunk-2Y5V23PU.js +29 -0
  127. package/dist/chunk-2Y5V23PU.js.map +1 -0
  128. package/dist/chunk-32CPGJPL.js +149 -0
  129. package/dist/chunk-32CPGJPL.js.map +1 -0
  130. package/dist/chunk-32PSERWG.js +363 -0
  131. package/dist/chunk-32PSERWG.js.map +1 -0
  132. package/dist/chunk-3ACMDRSE.js +39 -0
  133. package/dist/chunk-3ACMDRSE.js.map +1 -0
  134. package/dist/chunk-3UDSYYND.js +42 -0
  135. package/dist/chunk-3UDSYYND.js.map +1 -0
  136. package/dist/chunk-3V5E5SVE.js +382 -0
  137. package/dist/chunk-3V5E5SVE.js.map +1 -0
  138. package/dist/chunk-455BTAHM.js +57 -0
  139. package/dist/chunk-455BTAHM.js.map +1 -0
  140. package/dist/chunk-4MH6LONO.js +274 -0
  141. package/dist/chunk-4MH6LONO.js.map +1 -0
  142. package/dist/chunk-4NZ47VXO.js +137 -0
  143. package/dist/chunk-4NZ47VXO.js.map +1 -0
  144. package/dist/chunk-4OBO75XU.js +275 -0
  145. package/dist/chunk-4OBO75XU.js.map +1 -0
  146. package/dist/chunk-5HYSKH77.js +315 -0
  147. package/dist/chunk-5HYSKH77.js.map +1 -0
  148. package/dist/chunk-5MBPIONY.js +29 -0
  149. package/dist/chunk-5MBPIONY.js.map +1 -0
  150. package/dist/chunk-5OVOLYY3.js +74 -0
  151. package/dist/chunk-5OVOLYY3.js.map +1 -0
  152. package/dist/chunk-66USKCVY.js +4410 -0
  153. package/dist/chunk-66USKCVY.js.map +1 -0
  154. package/dist/chunk-6I7SYEYN.js +166 -0
  155. package/dist/chunk-6I7SYEYN.js.map +1 -0
  156. package/dist/chunk-6O7ISBC7.js +65 -0
  157. package/dist/chunk-6O7ISBC7.js.map +1 -0
  158. package/dist/chunk-752S7JF6.js +35 -0
  159. package/dist/chunk-752S7JF6.js.map +1 -0
  160. package/dist/chunk-AFJGYJ7Z.js +45 -0
  161. package/dist/chunk-AFJGYJ7Z.js.map +1 -0
  162. package/dist/chunk-AR7PU7BB.js +76 -0
  163. package/dist/chunk-AR7PU7BB.js.map +1 -0
  164. package/dist/chunk-ASL7JFBD.js +96 -0
  165. package/dist/chunk-ASL7JFBD.js.map +1 -0
  166. package/dist/chunk-AUCITRRT.js +310 -0
  167. package/dist/chunk-AUCITRRT.js.map +1 -0
  168. package/dist/chunk-AUSKKFVH.js +84 -0
  169. package/dist/chunk-AUSKKFVH.js.map +1 -0
  170. package/dist/chunk-BEGARAVC.js +174 -0
  171. package/dist/chunk-BEGARAVC.js.map +1 -0
  172. package/dist/{chunk-WWCLT3RG.js → chunk-BVM5IRZW.js} +16 -8
  173. package/dist/chunk-BVM5IRZW.js.map +1 -0
  174. package/dist/chunk-CAMX6OHF.js +3182 -0
  175. package/dist/chunk-CAMX6OHF.js.map +1 -0
  176. package/dist/chunk-CKI3RLMU.js +159 -0
  177. package/dist/chunk-CKI3RLMU.js.map +1 -0
  178. package/dist/chunk-CZENWCBS.js +333 -0
  179. package/dist/chunk-CZENWCBS.js.map +1 -0
  180. package/dist/chunk-D5FY4FAK.js +24 -0
  181. package/dist/chunk-D5FY4FAK.js.map +1 -0
  182. package/dist/chunk-DGCUPJZD.js +39 -0
  183. package/dist/chunk-DGCUPJZD.js.map +1 -0
  184. package/dist/chunk-DIICZGIS.js +509 -0
  185. package/dist/chunk-DIICZGIS.js.map +1 -0
  186. package/dist/chunk-DNCLWSHO.js +41 -0
  187. package/dist/chunk-DNCLWSHO.js.map +1 -0
  188. package/dist/chunk-DX4GIDO7.js +296 -0
  189. package/dist/chunk-DX4GIDO7.js.map +1 -0
  190. package/dist/chunk-DYZJBWT2.js +1079 -0
  191. package/dist/chunk-DYZJBWT2.js.map +1 -0
  192. package/dist/chunk-EDLZGTGN.js +216 -0
  193. package/dist/chunk-EDLZGTGN.js.map +1 -0
  194. package/dist/chunk-EDNX3AOS.js +76 -0
  195. package/dist/chunk-EDNX3AOS.js.map +1 -0
  196. package/dist/chunk-EF5DP6EB.js +52 -0
  197. package/dist/chunk-EF5DP6EB.js.map +1 -0
  198. package/dist/chunk-EQEZAYPL.js +541 -0
  199. package/dist/chunk-EQEZAYPL.js.map +1 -0
  200. package/dist/chunk-ERSX3MKH.js +34 -0
  201. package/dist/chunk-ERSX3MKH.js.map +1 -0
  202. package/dist/chunk-FKOECEVC.js +126 -0
  203. package/dist/chunk-FKOECEVC.js.map +1 -0
  204. package/dist/chunk-FYWWTMXP.js +2902 -0
  205. package/dist/chunk-FYWWTMXP.js.map +1 -0
  206. package/dist/chunk-G7AFVTUS.js +106 -0
  207. package/dist/chunk-G7AFVTUS.js.map +1 -0
  208. package/dist/chunk-GIW7ABMM.js +74 -0
  209. package/dist/chunk-GIW7ABMM.js.map +1 -0
  210. package/dist/chunk-GIWHHCD6.js +145 -0
  211. package/dist/chunk-GIWHHCD6.js.map +1 -0
  212. package/dist/chunk-GOJXKIFQ.js +1605 -0
  213. package/dist/chunk-GOJXKIFQ.js.map +1 -0
  214. package/dist/chunk-GPXIUYIA.js +592 -0
  215. package/dist/chunk-GPXIUYIA.js.map +1 -0
  216. package/dist/chunk-GRQ2AXDX.js +9 -0
  217. package/dist/chunk-GRQ2AXDX.js.map +1 -0
  218. package/dist/chunk-GXDLWBOY.js +73 -0
  219. package/dist/chunk-GXDLWBOY.js.map +1 -0
  220. package/dist/chunk-H7MLHG2I.js +94 -0
  221. package/dist/chunk-H7MLHG2I.js.map +1 -0
  222. package/dist/chunk-HAE4WWFQ.js +455 -0
  223. package/dist/chunk-HAE4WWFQ.js.map +1 -0
  224. package/dist/chunk-HB3LNR4Y.js +197 -0
  225. package/dist/chunk-HB3LNR4Y.js.map +1 -0
  226. package/dist/chunk-HDHWIEJJ.js +136 -0
  227. package/dist/chunk-HDHWIEJJ.js.map +1 -0
  228. package/dist/chunk-HJTIBTF7.js +98 -0
  229. package/dist/chunk-HJTIBTF7.js.map +1 -0
  230. package/dist/{chunk-VZEDAFAR.js → chunk-HLXWKMTK.js} +47 -8
  231. package/dist/chunk-HLXWKMTK.js.map +1 -0
  232. package/dist/{chunk-MF7YA62W.js → chunk-HREWXNTO.js} +10 -5
  233. package/dist/chunk-HREWXNTO.js.map +1 -0
  234. package/dist/chunk-HVJUMQYY.js +494 -0
  235. package/dist/chunk-HVJUMQYY.js.map +1 -0
  236. package/dist/chunk-I3DIZWN5.js +97 -0
  237. package/dist/chunk-I3DIZWN5.js.map +1 -0
  238. package/dist/chunk-IJMWEO4P.js +57 -0
  239. package/dist/chunk-IJMWEO4P.js.map +1 -0
  240. package/dist/chunk-IMORFIUT.js +207 -0
  241. package/dist/chunk-IMORFIUT.js.map +1 -0
  242. package/dist/chunk-IOCSDFF2.js +23992 -0
  243. package/dist/chunk-IOCSDFF2.js.map +1 -0
  244. package/dist/chunk-IRTYTT5D.js +665 -0
  245. package/dist/chunk-IRTYTT5D.js.map +1 -0
  246. package/dist/chunk-IVIJJXXT.js +62 -0
  247. package/dist/chunk-IVIJJXXT.js.map +1 -0
  248. package/dist/chunk-J57GWTPK.js +106 -0
  249. package/dist/chunk-J57GWTPK.js.map +1 -0
  250. package/dist/chunk-JAYT43KX.js +4227 -0
  251. package/dist/chunk-JAYT43KX.js.map +1 -0
  252. package/dist/chunk-JPK34QPS.js +134 -0
  253. package/dist/chunk-JPK34QPS.js.map +1 -0
  254. package/dist/chunk-JRCFCIE3.js +188 -0
  255. package/dist/chunk-JRCFCIE3.js.map +1 -0
  256. package/dist/chunk-JRGPCPT2.js +479 -0
  257. package/dist/chunk-JRGPCPT2.js.map +1 -0
  258. package/dist/chunk-JUAIGJ2A.js +76 -0
  259. package/dist/chunk-JUAIGJ2A.js.map +1 -0
  260. package/dist/chunk-K2RYUZ5Y.js +51 -0
  261. package/dist/chunk-K2RYUZ5Y.js.map +1 -0
  262. package/dist/chunk-K5OQES4V.js +58 -0
  263. package/dist/chunk-K5OQES4V.js.map +1 -0
  264. package/dist/chunk-KAHMADFH.js +455 -0
  265. package/dist/chunk-KAHMADFH.js.map +1 -0
  266. package/dist/chunk-KIGGMKAE.js +66 -0
  267. package/dist/chunk-KIGGMKAE.js.map +1 -0
  268. package/dist/chunk-KKJ4KJCW.js +29 -0
  269. package/dist/chunk-KKJ4KJCW.js.map +1 -0
  270. package/dist/chunk-KLK6KQLQ.js +55 -0
  271. package/dist/chunk-KLK6KQLQ.js.map +1 -0
  272. package/dist/chunk-KRIK2JR4.js +6212 -0
  273. package/dist/chunk-KRIK2JR4.js.map +1 -0
  274. package/dist/chunk-KZUHRZ2C.js +5187 -0
  275. package/dist/chunk-KZUHRZ2C.js.map +1 -0
  276. package/dist/chunk-L5WIRYNB.js +19 -0
  277. package/dist/chunk-L5WIRYNB.js.map +1 -0
  278. package/dist/chunk-LA6PPSNA.js +65 -0
  279. package/dist/chunk-LA6PPSNA.js.map +1 -0
  280. package/dist/chunk-LEIQAHWF.js +25 -0
  281. package/dist/chunk-LEIQAHWF.js.map +1 -0
  282. package/dist/chunk-LWBWCIWL.js +297 -0
  283. package/dist/chunk-LWBWCIWL.js.map +1 -0
  284. package/dist/chunk-M4PPFVYL.js +346 -0
  285. package/dist/chunk-M4PPFVYL.js.map +1 -0
  286. package/dist/chunk-M6UNISGO.js +66 -0
  287. package/dist/chunk-M6UNISGO.js.map +1 -0
  288. package/dist/chunk-MGKHFGLV.js +75 -0
  289. package/dist/chunk-MGKHFGLV.js.map +1 -0
  290. package/dist/chunk-MUVSWFLL.js +111 -0
  291. package/dist/chunk-MUVSWFLL.js.map +1 -0
  292. package/dist/chunk-NFSLRRIE.js +77 -0
  293. package/dist/chunk-NFSLRRIE.js.map +1 -0
  294. package/dist/chunk-NHU33T2S.js +60 -0
  295. package/dist/chunk-NHU33T2S.js.map +1 -0
  296. package/dist/chunk-O6QKCJE4.js +455 -0
  297. package/dist/chunk-O6QKCJE4.js.map +1 -0
  298. package/dist/chunk-OBNWER4H.js +1599 -0
  299. package/dist/chunk-OBNWER4H.js.map +1 -0
  300. package/dist/chunk-OFFAMC5H.js +225 -0
  301. package/dist/chunk-OFFAMC5H.js.map +1 -0
  302. package/dist/chunk-P4NSJS54.js +20 -0
  303. package/dist/chunk-P4NSJS54.js.map +1 -0
  304. package/dist/chunk-P5T7OZKV.js +26 -0
  305. package/dist/chunk-P5T7OZKV.js.map +1 -0
  306. package/dist/chunk-PAHLJMC3.js +175 -0
  307. package/dist/chunk-PAHLJMC3.js.map +1 -0
  308. package/dist/chunk-PBVLPFJ6.js +169 -0
  309. package/dist/chunk-PBVLPFJ6.js.map +1 -0
  310. package/dist/chunk-PFBQERWX.js +10 -0
  311. package/dist/chunk-PFBQERWX.js.map +1 -0
  312. package/dist/chunk-Q6ULQMWG.js +41 -0
  313. package/dist/chunk-Q6ULQMWG.js.map +1 -0
  314. package/dist/chunk-QKE7GXZ7.js +6683 -0
  315. package/dist/chunk-QKE7GXZ7.js.map +1 -0
  316. package/dist/chunk-QL573PLH.js +150 -0
  317. package/dist/chunk-QL573PLH.js.map +1 -0
  318. package/dist/chunk-QO23YHLK.js +84 -0
  319. package/dist/chunk-QO23YHLK.js.map +1 -0
  320. package/dist/chunk-R5OQM7FF.js +179 -0
  321. package/dist/chunk-R5OQM7FF.js.map +1 -0
  322. package/dist/chunk-RDLB54KF.js +629 -0
  323. package/dist/chunk-RDLB54KF.js.map +1 -0
  324. package/dist/chunk-RGIXQEGJ.js +502 -0
  325. package/dist/chunk-RGIXQEGJ.js.map +1 -0
  326. package/dist/chunk-RRIAHUWP.js +304 -0
  327. package/dist/chunk-RRIAHUWP.js.map +1 -0
  328. package/dist/chunk-S4LZ7KTG.js +160 -0
  329. package/dist/chunk-S4LZ7KTG.js.map +1 -0
  330. package/dist/chunk-SHTESUB6.js +1442 -0
  331. package/dist/chunk-SHTESUB6.js.map +1 -0
  332. package/dist/chunk-SLB46MSS.js +64 -0
  333. package/dist/chunk-SLB46MSS.js.map +1 -0
  334. package/dist/chunk-T7M4WFNV.js +172 -0
  335. package/dist/chunk-T7M4WFNV.js.map +1 -0
  336. package/dist/{chunk-JTZXQRXI.js → chunk-TPXI2GCW.js} +4 -4
  337. package/dist/chunk-TWNFQUBS.js +23 -0
  338. package/dist/chunk-TWNFQUBS.js.map +1 -0
  339. package/dist/chunk-U6VRBDNQ.js +1830 -0
  340. package/dist/chunk-U6VRBDNQ.js.map +1 -0
  341. package/dist/chunk-U7BBXM67.js +1743 -0
  342. package/dist/chunk-U7BBXM67.js.map +1 -0
  343. package/dist/chunk-UI6BKYQD.js +225 -0
  344. package/dist/chunk-UI6BKYQD.js.map +1 -0
  345. package/dist/chunk-USL5ARRE.js +26 -0
  346. package/dist/chunk-USL5ARRE.js.map +1 -0
  347. package/dist/chunk-UYC45JNS.js +139 -0
  348. package/dist/chunk-UYC45JNS.js.map +1 -0
  349. package/dist/chunk-V5GSRREZ.js +846 -0
  350. package/dist/chunk-V5GSRREZ.js.map +1 -0
  351. package/dist/chunk-V5HDRJQW.js +337 -0
  352. package/dist/chunk-V5HDRJQW.js.map +1 -0
  353. package/dist/chunk-VS4C7VAR.js +533 -0
  354. package/dist/chunk-VS4C7VAR.js.map +1 -0
  355. package/dist/chunk-W4W4ZRBP.js +191 -0
  356. package/dist/chunk-W4W4ZRBP.js.map +1 -0
  357. package/dist/chunk-WIRBRCTJ.js +228 -0
  358. package/dist/chunk-WIRBRCTJ.js.map +1 -0
  359. package/dist/chunk-WN4KX7GE.js +25 -0
  360. package/dist/chunk-WN4KX7GE.js.map +1 -0
  361. package/dist/chunk-WNFTXSGR.js +111 -0
  362. package/dist/chunk-WNFTXSGR.js.map +1 -0
  363. package/dist/chunk-WOTDHRNF.js +2109 -0
  364. package/dist/chunk-WOTDHRNF.js.map +1 -0
  365. package/dist/chunk-WPKOEFOE.js +103 -0
  366. package/dist/chunk-WPKOEFOE.js.map +1 -0
  367. package/dist/chunk-XE3WS3QE.js +183 -0
  368. package/dist/chunk-XE3WS3QE.js.map +1 -0
  369. package/dist/chunk-XGWKTYXQ.js +67 -0
  370. package/dist/chunk-XGWKTYXQ.js.map +1 -0
  371. package/dist/chunk-XIGIJJSF.js +66 -0
  372. package/dist/chunk-XIGIJJSF.js.map +1 -0
  373. package/dist/chunk-XNUXB63I.js +817 -0
  374. package/dist/chunk-XNUXB63I.js.map +1 -0
  375. package/dist/chunk-XQ3CCNJD.js +610 -0
  376. package/dist/chunk-XQ3CCNJD.js.map +1 -0
  377. package/dist/chunk-Y362QH54.js +98 -0
  378. package/dist/chunk-Y362QH54.js.map +1 -0
  379. package/dist/chunk-Y4HZNSBN.js +3151 -0
  380. package/dist/chunk-Y4HZNSBN.js.map +1 -0
  381. package/dist/chunk-Y4T6ATDQ.js +74 -0
  382. package/dist/chunk-Y4T6ATDQ.js.map +1 -0
  383. package/dist/chunk-YIMGUMXX.js +206 -0
  384. package/dist/chunk-YIMGUMXX.js.map +1 -0
  385. package/dist/chunk-YQSBHWOI.js +41 -0
  386. package/dist/chunk-YU26SDNT.js +46 -0
  387. package/dist/chunk-YU26SDNT.js.map +1 -0
  388. package/dist/chunk-YULENNA7.js +501 -0
  389. package/dist/chunk-YULENNA7.js.map +1 -0
  390. package/dist/chunk-YYSZYSAG.js +150 -0
  391. package/dist/chunk-YYSZYSAG.js.map +1 -0
  392. package/dist/chunk-Z3ENMCFE.js +94 -0
  393. package/dist/chunk-Z3ENMCFE.js.map +1 -0
  394. package/dist/chunk-ZCFSHQBF.js +92 -0
  395. package/dist/chunk-ZCFSHQBF.js.map +1 -0
  396. package/dist/chunk-ZH7ZM3ZM.js +125 -0
  397. package/dist/chunk-ZH7ZM3ZM.js.map +1 -0
  398. package/dist/chunk-ZIXHS6AM.js +42 -0
  399. package/dist/chunk-ZIXHS6AM.js.map +1 -0
  400. package/dist/chunk-ZLLJKSNS.js +96 -0
  401. package/dist/chunk-ZLLJKSNS.js.map +1 -0
  402. package/dist/claim-4AFNDV3A.js +197 -0
  403. package/dist/claim-4AFNDV3A.js.map +1 -0
  404. package/dist/cli.js +104 -71708
  405. package/dist/cli.js.map +1 -1
  406. package/dist/client-26SAJ46D.js +19 -0
  407. package/dist/code-MOWYJMDH.js +76 -0
  408. package/dist/code-MOWYJMDH.js.map +1 -0
  409. package/dist/companies-PZRRZZNV.js +195 -0
  410. package/dist/companies-PZRRZZNV.js.map +1 -0
  411. package/dist/complete-IBW5DNVZ.js +81 -0
  412. package/dist/complete-IBW5DNVZ.js.map +1 -0
  413. package/dist/config-X6GKOVQ6.js +88 -0
  414. package/dist/config-X6GKOVQ6.js.map +1 -0
  415. package/dist/connect-WYUYS5V4.js +42 -0
  416. package/dist/content-UYZC4AKN.js +85 -0
  417. package/dist/content-UYZC4AKN.js.map +1 -0
  418. package/dist/conversation-6AG3UBYY.js +93 -0
  419. package/dist/conversation-6AG3UBYY.js.map +1 -0
  420. package/dist/conversion-report-R4GJWWTK.js +125 -0
  421. package/dist/conversion-report-R4GJWWTK.js.map +1 -0
  422. package/dist/conversion-upload-command-YML2UNJB.js +438 -0
  423. package/dist/conversion-upload-command-YML2UNJB.js.map +1 -0
  424. package/dist/conversion-writes-WHFFUWWL.js +120 -0
  425. package/dist/conversion-writes-WHFFUWWL.js.map +1 -0
  426. package/dist/conversions-NOBBFNIU.js +135 -0
  427. package/dist/conversions-NOBBFNIU.js.map +1 -0
  428. package/dist/conversions-OXJAX5GB.js +76 -0
  429. package/dist/conversions-OXJAX5GB.js.map +1 -0
  430. package/dist/countries-PBXNB3BR.js +82 -0
  431. package/dist/countries-PBXNB3BR.js.map +1 -0
  432. package/dist/create-JK42P564.js +59 -0
  433. package/dist/create-JK42P564.js.map +1 -0
  434. package/dist/create-LAWUVPCY.js +207 -0
  435. package/dist/create-LAWUVPCY.js.map +1 -0
  436. package/dist/create-MUPQ5CTH.js +138 -0
  437. package/dist/create-MUPQ5CTH.js.map +1 -0
  438. package/dist/create-NQJNCFRO.js +236 -0
  439. package/dist/create-NQJNCFRO.js.map +1 -0
  440. package/dist/creatives-KCWFZIM5.js +182 -0
  441. package/dist/creatives-KCWFZIM5.js.map +1 -0
  442. package/dist/creatives-NNDWCSKJ.js +51 -0
  443. package/dist/creatives-NNDWCSKJ.js.map +1 -0
  444. package/dist/creatives-RHNHTS2R.js +87 -0
  445. package/dist/creatives-RHNHTS2R.js.map +1 -0
  446. package/dist/credentials-CEKGXR2C.js +287 -0
  447. package/dist/credentials-CEKGXR2C.js.map +1 -0
  448. package/dist/critique-HDDYER52.js +1449 -0
  449. package/dist/critique-HDDYER52.js.map +1 -0
  450. package/dist/critique-QIN2FO4F.js +216 -0
  451. package/dist/critique-QIN2FO4F.js.map +1 -0
  452. package/dist/crm-KBPWZC6J.js +318 -0
  453. package/dist/crm-KBPWZC6J.js.map +1 -0
  454. package/dist/crm-QBWD7CWB.js +224 -0
  455. package/dist/crm-QBWD7CWB.js.map +1 -0
  456. package/dist/crop-U3AD4DDR.js +113 -0
  457. package/dist/crop-U3AD4DDR.js.map +1 -0
  458. package/dist/currency-XTFGZFGB.js +88 -0
  459. package/dist/currency-XTFGZFGB.js.map +1 -0
  460. package/dist/custom-conversions-W3K33V33.js +125 -0
  461. package/dist/custom-conversions-W3K33V33.js.map +1 -0
  462. package/dist/customers-HYE7N2H5.js +56 -0
  463. package/dist/decide-YTHCBKM6.js +199 -0
  464. package/dist/decide-YTHCBKM6.js.map +1 -0
  465. package/dist/delete-64REPCY2.js +54 -0
  466. package/dist/delete-64REPCY2.js.map +1 -0
  467. package/dist/delete-AY3KL3N3.js +63 -0
  468. package/dist/delete-AY3KL3N3.js.map +1 -0
  469. package/dist/delete-DZUDLYPC.js +69 -0
  470. package/dist/delete-DZUDLYPC.js.map +1 -0
  471. package/dist/delete-NZGZP4YP.js +71 -0
  472. package/dist/delete-NZGZP4YP.js.map +1 -0
  473. package/dist/delete-VO2LZXE4.js +66 -0
  474. package/dist/delete-VO2LZXE4.js.map +1 -0
  475. package/dist/delete-VQMU56OH.js +71 -0
  476. package/dist/delete-VQMU56OH.js.map +1 -0
  477. package/dist/demographics-KOFLMGVW.js +138 -0
  478. package/dist/demographics-KOFLMGVW.js.map +1 -0
  479. package/dist/describe-JNTCQZNL.js +97 -0
  480. package/dist/describe-JNTCQZNL.js.map +1 -0
  481. package/dist/describe-MT4334NG.js +97 -0
  482. package/dist/describe-MT4334NG.js.map +1 -0
  483. package/dist/dimensions-FEZUJRAG.js +101 -0
  484. package/dist/dimensions-FEZUJRAG.js.map +1 -0
  485. package/dist/discard-H4RPXZHX.js +66 -0
  486. package/dist/discard-H4RPXZHX.js.map +1 -0
  487. package/dist/discover-4GD7QSF5.js +93 -0
  488. package/dist/discover-4GD7QSF5.js.map +1 -0
  489. package/dist/discover-L7OVXW4V.js +172 -0
  490. package/dist/discover-L7OVXW4V.js.map +1 -0
  491. package/dist/domain-HURQ23KR.js +98 -0
  492. package/dist/domain-HURQ23KR.js.map +1 -0
  493. package/dist/download-L27HWEOE.js +299 -0
  494. package/dist/download-L27HWEOE.js.map +1 -0
  495. package/dist/draft-25G2P2TE.js +281 -0
  496. package/dist/draft-25G2P2TE.js.map +1 -0
  497. package/dist/draft-5VH2PW3R.js +307 -0
  498. package/dist/draft-5VH2PW3R.js.map +1 -0
  499. package/dist/draft-D6UTKSAA.js +217 -0
  500. package/dist/draft-D6UTKSAA.js.map +1 -0
  501. package/dist/draft-KLULNBWP.js +233 -0
  502. package/dist/draft-KLULNBWP.js.map +1 -0
  503. package/dist/draft-MI7RWY2K.js +100 -0
  504. package/dist/draft-MI7RWY2K.js.map +1 -0
  505. package/dist/draft-P4IVYTY3.js +103 -0
  506. package/dist/draft-P4IVYTY3.js.map +1 -0
  507. package/dist/draft-UQYWDZS7.js +306 -0
  508. package/dist/draft-UQYWDZS7.js.map +1 -0
  509. package/dist/draft-YFAJHCKM.js +328 -0
  510. package/dist/draft-YFAJHCKM.js.map +1 -0
  511. package/dist/engine/index.d.ts +213 -127
  512. package/dist/engine/index.js +18 -4
  513. package/dist/{env-4P5HOGNA.js → env-FBTHZKGN.js} +12 -2
  514. package/dist/env-FBTHZKGN.js.map +1 -0
  515. package/dist/experiment-HDYTJPUY.js +1397 -0
  516. package/dist/experiment-HDYTJPUY.js.map +1 -0
  517. package/dist/export-TS5GYEMA.js +168 -0
  518. package/dist/export-TS5GYEMA.js.map +1 -0
  519. package/dist/extract-QVQFUOIK.js +113 -0
  520. package/dist/extract-QVQFUOIK.js.map +1 -0
  521. package/dist/facets-WYQUZMFJ.js +114 -0
  522. package/dist/facets-WYQUZMFJ.js.map +1 -0
  523. package/dist/favorites-7QP7BY5K.js +178 -0
  524. package/dist/favorites-7QP7BY5K.js.map +1 -0
  525. package/dist/feed-EETRO2FG.js +177 -0
  526. package/dist/feed-EETRO2FG.js.map +1 -0
  527. package/dist/feedback-SIMPRE37.js +66 -0
  528. package/dist/feedback-SIMPRE37.js.map +1 -0
  529. package/dist/feedback-record-L4MPIVML.js +177 -0
  530. package/dist/feedback-record-L4MPIVML.js.map +1 -0
  531. package/dist/fetch-DTBM3DE2.js +176 -0
  532. package/dist/fetch-DTBM3DE2.js.map +1 -0
  533. package/dist/fetch-Z7O3ZL4D.js +139 -0
  534. package/dist/fetch-Z7O3ZL4D.js.map +1 -0
  535. package/dist/find-KAQ6JDMO.js +134 -0
  536. package/dist/find-KAQ6JDMO.js.map +1 -0
  537. package/dist/fit-MY5GVZZZ.js +45 -0
  538. package/dist/fit-MY5GVZZZ.js.map +1 -0
  539. package/dist/flows-IUDXVDOS.js +247 -0
  540. package/dist/flows-IUDXVDOS.js.map +1 -0
  541. package/dist/follow-IX4XVK5Y.js +94 -0
  542. package/dist/follow-IX4XVK5Y.js.map +1 -0
  543. package/dist/follow-competitors-UZBUOYTH.js +112 -0
  544. package/dist/follow-competitors-UZBUOYTH.js.map +1 -0
  545. package/dist/following-VGOIUCIZ.js +113 -0
  546. package/dist/following-VGOIUCIZ.js.map +1 -0
  547. package/dist/fonts-EUDHI6CA.js +34 -0
  548. package/dist/fonts-EUDHI6CA.js.map +1 -0
  549. package/dist/forecast-BRSEH2H3.js +104 -0
  550. package/dist/forecast-BRSEH2H3.js.map +1 -0
  551. package/dist/forecast-QV4U7TOY.js +168 -0
  552. package/dist/forecast-QV4U7TOY.js.map +1 -0
  553. package/dist/funding-H5YO37OW.js +85 -0
  554. package/dist/funding-H5YO37OW.js.map +1 -0
  555. package/dist/funnel-JLF77MLF.js +394 -0
  556. package/dist/funnel-JLF77MLF.js.map +1 -0
  557. package/dist/ga4-YHJ2XMLC.js +55 -0
  558. package/dist/ga4-YHJ2XMLC.js.map +1 -0
  559. package/dist/generate-M2ZX5DMI.js +262 -0
  560. package/dist/generate-M2ZX5DMI.js.map +1 -0
  561. package/dist/get-4EYKCZ6F.js +59 -0
  562. package/dist/get-4EYKCZ6F.js.map +1 -0
  563. package/dist/get-637GALM2.js +63 -0
  564. package/dist/get-637GALM2.js.map +1 -0
  565. package/dist/get-AYX5HS64.js +56 -0
  566. package/dist/get-AYX5HS64.js.map +1 -0
  567. package/dist/get-AZARFR6O.js +61 -0
  568. package/dist/get-AZARFR6O.js.map +1 -0
  569. package/dist/get-EG2U7MIL.js +78 -0
  570. package/dist/get-EG2U7MIL.js.map +1 -0
  571. package/dist/get-N4BPOQCB.js +63 -0
  572. package/dist/get-N4BPOQCB.js.map +1 -0
  573. package/dist/get-RPZHLQ56.js +92 -0
  574. package/dist/get-RPZHLQ56.js.map +1 -0
  575. package/dist/gif-6PRTB2VR.js +94 -0
  576. package/dist/gif-6PRTB2VR.js.map +1 -0
  577. package/dist/google-52JRH7X3.js +136 -0
  578. package/dist/google-52JRH7X3.js.map +1 -0
  579. package/dist/google-ITTPCJ7N.js +3190 -0
  580. package/dist/google-ITTPCJ7N.js.map +1 -0
  581. package/dist/google-ads-U3JFFQLU.js +195 -0
  582. package/dist/google-ads-U3JFFQLU.js.map +1 -0
  583. package/dist/group-AAZ5QKC3.js +43 -0
  584. package/dist/group-AAZ5QKC3.js.map +1 -0
  585. package/dist/group-GSYCZORC.js +43 -0
  586. package/dist/group-GSYCZORC.js.map +1 -0
  587. package/dist/gsc-TS5T7ML2.js +30 -0
  588. package/dist/gsc-TS5T7ML2.js.map +1 -0
  589. package/dist/history-EW6LFFCX.js +67 -0
  590. package/dist/history-EW6LFFCX.js.map +1 -0
  591. package/dist/history-YTNCWSV3.js +133 -0
  592. package/dist/history-YTNCWSV3.js.map +1 -0
  593. package/dist/hubspot-LXWQNKKB.js +779 -0
  594. package/dist/hubspot-LXWQNKKB.js.map +1 -0
  595. package/dist/icon-K75KI6BV.js +137 -0
  596. package/dist/icon-K75KI6BV.js.map +1 -0
  597. package/dist/ideas-JJIHQFV4.js +35 -0
  598. package/dist/ideas-JJIHQFV4.js.map +1 -0
  599. package/dist/images-MWETBYKB.js +90 -0
  600. package/dist/images-MWETBYKB.js.map +1 -0
  601. package/dist/improve-L3BW4EQG.js +86 -0
  602. package/dist/improve-L3BW4EQG.js.map +1 -0
  603. package/dist/ingest-THFAV4NO.js +107 -0
  604. package/dist/ingest-THFAV4NO.js.map +1 -0
  605. package/dist/ingest-U6B7GR4A.js +23 -0
  606. package/dist/ingest-U6B7GR4A.js.map +1 -0
  607. package/dist/insights-FA6T6PT6.js +423 -0
  608. package/dist/insights-FA6T6PT6.js.map +1 -0
  609. package/dist/insights-PELVD4RY.js +122 -0
  610. package/dist/insights-PELVD4RY.js.map +1 -0
  611. package/dist/inspect-N2WVVWGP.js +189 -0
  612. package/dist/inspect-N2WVVWGP.js.map +1 -0
  613. package/dist/inspiration-Y2J2PUPC.js +53 -0
  614. package/dist/inspiration-Y2J2PUPC.js.map +1 -0
  615. package/dist/intent-YNAAVNHK.js +95 -0
  616. package/dist/intent-YNAAVNHK.js.map +1 -0
  617. package/dist/job-E2U4FS5P.js +202 -0
  618. package/dist/job-E2U4FS5P.js.map +1 -0
  619. package/dist/job-create-DFYCHVQ7.js +109 -0
  620. package/dist/job-create-DFYCHVQ7.js.map +1 -0
  621. package/dist/job-status-FFPMTSHB.js +74 -0
  622. package/dist/job-status-FFPMTSHB.js.map +1 -0
  623. package/dist/keep-GYZS2UTL.js +78 -0
  624. package/dist/keep-GYZS2UTL.js.map +1 -0
  625. package/dist/keyword-gap-4JKLWIBJ.js +130 -0
  626. package/dist/keyword-gap-4JKLWIBJ.js.map +1 -0
  627. package/dist/keyword-metrics-KU3OHTQK.js +197 -0
  628. package/dist/keyword-metrics-KU3OHTQK.js.map +1 -0
  629. package/dist/keywords-for-site-M4MFWMVK.js +128 -0
  630. package/dist/keywords-for-site-M4MFWMVK.js.map +1 -0
  631. package/dist/landing-7UVZ7IPP.js +28 -0
  632. package/dist/landing-7UVZ7IPP.js.map +1 -0
  633. package/dist/landings-F7LOAEJE.js +151 -0
  634. package/dist/landings-F7LOAEJE.js.map +1 -0
  635. package/dist/languages-PKYCZNUB.js +40 -0
  636. package/dist/languages-PKYCZNUB.js.map +1 -0
  637. package/dist/languages-XEJKTIFP.js +55 -0
  638. package/dist/languages-XEJKTIFP.js.map +1 -0
  639. package/dist/launches-TCFAYUA5.js +19 -0
  640. package/dist/launches-TCFAYUA5.js.map +1 -0
  641. package/dist/layerize-ZSKFIPZA.js +190 -0
  642. package/dist/layerize-ZSKFIPZA.js.map +1 -0
  643. package/dist/leads-CSRESOB2.js +293 -0
  644. package/dist/leads-CSRESOB2.js.map +1 -0
  645. package/dist/leads-MQPEA7DG.js +90 -0
  646. package/dist/leads-MQPEA7DG.js.map +1 -0
  647. package/dist/learn-K5YBUMBT.js +203 -0
  648. package/dist/learn-K5YBUMBT.js.map +1 -0
  649. package/dist/library-IP2UKNRU.js +109 -0
  650. package/dist/library-IP2UKNRU.js.map +1 -0
  651. package/dist/lighthouse-57XBJRCO.js +75 -0
  652. package/dist/lighthouse-57XBJRCO.js.map +1 -0
  653. package/dist/line-item-writes-73NR2J5L.js +208 -0
  654. package/dist/line-item-writes-73NR2J5L.js.map +1 -0
  655. package/dist/line-items-2YBGXOAQ.js +103 -0
  656. package/dist/line-items-2YBGXOAQ.js.map +1 -0
  657. package/dist/link-GVAWECJO.js +64 -0
  658. package/dist/link-GVAWECJO.js.map +1 -0
  659. package/dist/linkedin-PZDT22AT.js +1008 -0
  660. package/dist/linkedin-PZDT22AT.js.map +1 -0
  661. package/dist/list-6IKPWQGG.js +57 -0
  662. package/dist/list-6IKPWQGG.js.map +1 -0
  663. package/dist/list-CAUH3BMG.js +65 -0
  664. package/dist/list-CAUH3BMG.js.map +1 -0
  665. package/dist/list-FNDRV25Y.js +151 -0
  666. package/dist/list-FNDRV25Y.js.map +1 -0
  667. package/dist/list-GTOSN7DP.js +50 -0
  668. package/dist/list-GTOSN7DP.js.map +1 -0
  669. package/dist/list-HLJP4NVE.js +51 -0
  670. package/dist/list-HLJP4NVE.js.map +1 -0
  671. package/dist/list-LCUPF7EF.js +76 -0
  672. package/dist/list-LCUPF7EF.js.map +1 -0
  673. package/dist/list-REZGFWC5.js +63 -0
  674. package/dist/list-REZGFWC5.js.map +1 -0
  675. package/dist/list-S6MNXDTV.js +303 -0
  676. package/dist/list-S6MNXDTV.js.map +1 -0
  677. package/dist/locations-2BYWKIYA.js +67 -0
  678. package/dist/locations-2BYWKIYA.js.map +1 -0
  679. package/dist/locations-GJHHMV6Z.js +40 -0
  680. package/dist/locations-GJHHMV6Z.js.map +1 -0
  681. package/dist/log-HGDNLDUX.js +92 -0
  682. package/dist/log-HGDNLDUX.js.map +1 -0
  683. package/dist/logo-AJK2TDQU.js +18 -0
  684. package/dist/logo-AJK2TDQU.js.map +1 -0
  685. package/dist/lookup-H5GEM77H.js +22 -0
  686. package/dist/lookup-H5GEM77H.js.map +1 -0
  687. package/dist/make-BT26YJXZ.js +640 -0
  688. package/dist/make-BT26YJXZ.js.map +1 -0
  689. package/dist/map-J5EX4HOX.js +404 -0
  690. package/dist/map-J5EX4HOX.js.map +1 -0
  691. package/dist/mcp-MHDW6AFL.js +463 -0
  692. package/dist/mcp-MHDW6AFL.js.map +1 -0
  693. package/dist/media-RAGEJTZX.js +89 -0
  694. package/dist/media-RAGEJTZX.js.map +1 -0
  695. package/dist/media-RNB7JFJP.js +15 -0
  696. package/dist/media-RNB7JFJP.js.map +1 -0
  697. package/dist/media-sources-4NN3DWSG.js +32 -0
  698. package/dist/media-sources-4NN3DWSG.js.map +1 -0
  699. package/dist/members-AIWMXAQD.js +44 -0
  700. package/dist/members-AIWMXAQD.js.map +1 -0
  701. package/dist/meta-WAPZMZI7.js +69 -0
  702. package/dist/meta-WAPZMZI7.js.map +1 -0
  703. package/dist/metrics-6EHC4ESN.js +152 -0
  704. package/dist/metrics-6EHC4ESN.js.map +1 -0
  705. package/dist/models-5J4WFUD3.js +155 -0
  706. package/dist/models-5J4WFUD3.js.map +1 -0
  707. package/dist/normalize-DSFVTRXN.js +806 -0
  708. package/dist/normalize-DSFVTRXN.js.map +1 -0
  709. package/dist/normalize-ZAWN4XCS.js +141 -0
  710. package/dist/normalize-ZAWN4XCS.js.map +1 -0
  711. package/dist/options-3CZNT5KP.js +121 -0
  712. package/dist/options-3CZNT5KP.js.map +1 -0
  713. package/dist/output-DTCLVPUF.js +24 -0
  714. package/dist/output-DTCLVPUF.js.map +1 -0
  715. package/dist/page-N2ZO3O7F.js +105 -0
  716. package/dist/page-N2ZO3O7F.js.map +1 -0
  717. package/dist/pages-FQ4CBAJ2.js +66 -0
  718. package/dist/pages-FQ4CBAJ2.js.map +1 -0
  719. package/dist/performance-GOMJMHPE.js +24 -0
  720. package/dist/performance-GOMJMHPE.js.map +1 -0
  721. package/dist/pinterest-NV5XTNJE.js +96 -0
  722. package/dist/pinterest-NV5XTNJE.js.map +1 -0
  723. package/dist/pixels-CTJ43FZ4.js +108 -0
  724. package/dist/pixels-CTJ43FZ4.js.map +1 -0
  725. package/dist/pixels-HKINGZCH.js +60 -0
  726. package/dist/pixels-HKINGZCH.js.map +1 -0
  727. package/dist/plan-ZYTWLGWK.js +207 -0
  728. package/dist/plan-ZYTWLGWK.js.map +1 -0
  729. package/dist/preview-UKYLPAW2.js +169 -0
  730. package/dist/preview-UKYLPAW2.js.map +1 -0
  731. package/dist/profile-Q3PHR6FU.js +159 -0
  732. package/dist/profile-Q3PHR6FU.js.map +1 -0
  733. package/dist/promoted-tweet-writes-IYOAZTA5.js +180 -0
  734. package/dist/promoted-tweet-writes-IYOAZTA5.js.map +1 -0
  735. package/dist/promoted-tweets-G3XFD5YM.js +119 -0
  736. package/dist/promoted-tweets-G3XFD5YM.js.map +1 -0
  737. package/dist/properties-WLL6M2P6.js +101 -0
  738. package/dist/properties-WLL6M2P6.js.map +1 -0
  739. package/dist/publish-ZG4J2GTH.js +322 -0
  740. package/dist/publish-ZG4J2GTH.js.map +1 -0
  741. package/dist/query-7AGG77WH.js +61 -0
  742. package/dist/query-7AGG77WH.js.map +1 -0
  743. package/dist/query-IYZN5KHO.js +236 -0
  744. package/dist/query-IYZN5KHO.js.map +1 -0
  745. package/dist/query-UN2P6DBA.js +247 -0
  746. package/dist/query-UN2P6DBA.js.map +1 -0
  747. package/dist/questionnaire-Z2ZIKNBV.js +93 -0
  748. package/dist/questionnaire-Z2ZIKNBV.js.map +1 -0
  749. package/dist/read-GM7PQYJA.js +141 -0
  750. package/dist/read-GM7PQYJA.js.map +1 -0
  751. package/dist/reddit-FTO4SFQE.js +26 -0
  752. package/dist/reddit-FTO4SFQE.js.map +1 -0
  753. package/dist/refresh-OUENQ2FS.js +94 -0
  754. package/dist/refresh-OUENQ2FS.js.map +1 -0
  755. package/dist/release-5OG7AAFY.js +60 -0
  756. package/dist/release-5OG7AAFY.js.map +1 -0
  757. package/dist/relevant-pages-KUVDZPRU.js +99 -0
  758. package/dist/relevant-pages-KUVDZPRU.js.map +1 -0
  759. package/dist/remove-33HI27KM.js +50 -0
  760. package/dist/remove-33HI27KM.js.map +1 -0
  761. package/dist/remove-GOYW2G4R.js +48 -0
  762. package/dist/remove-GOYW2G4R.js.map +1 -0
  763. package/dist/reopen-KFFYE53A.js +63 -0
  764. package/dist/reopen-KFFYE53A.js.map +1 -0
  765. package/dist/rerun-P6XACA5Z.js +86 -0
  766. package/dist/rerun-P6XACA5Z.js.map +1 -0
  767. package/dist/research-BEO3JMZI.js +262 -0
  768. package/dist/research-BEO3JMZI.js.map +1 -0
  769. package/dist/research-QOC53DLS.js +62 -0
  770. package/dist/research-QOC53DLS.js.map +1 -0
  771. package/dist/reset-E3OWE2WF.js +54 -0
  772. package/dist/reset-E3OWE2WF.js.map +1 -0
  773. package/dist/reset-I7M3HYMB.js +54 -0
  774. package/dist/reset-I7M3HYMB.js.map +1 -0
  775. package/dist/resolve-GP7BHM6L.js +121 -0
  776. package/dist/resolve-GP7BHM6L.js.map +1 -0
  777. package/dist/retry-33ZJCNQI.js +62 -0
  778. package/dist/retry-33ZJCNQI.js.map +1 -0
  779. package/dist/retry-X5PU7QO3.js +60 -0
  780. package/dist/retry-X5PU7QO3.js.map +1 -0
  781. package/dist/retry-failed-BEFWRV4Z.js +45 -0
  782. package/dist/retry-failed-BEFWRV4Z.js.map +1 -0
  783. package/dist/run-REK3TEGY.js +65 -0
  784. package/dist/run-REK3TEGY.js.map +1 -0
  785. package/dist/run-TH2662IC.js +61 -0
  786. package/dist/run-TH2662IC.js.map +1 -0
  787. package/dist/scaffold-ad-3WDRKUFT.js +1550 -0
  788. package/dist/scaffold-ad-3WDRKUFT.js.map +1 -0
  789. package/dist/scaffold-static-ad-X5NT52NF.js +973 -0
  790. package/dist/scaffold-static-ad-X5NT52NF.js.map +1 -0
  791. package/dist/scaffold-video-WZPVACLE.js +874 -0
  792. package/dist/scaffold-video-WZPVACLE.js.map +1 -0
  793. package/dist/schedule-KQ7UIR3N.js +66 -0
  794. package/dist/schedule-KQ7UIR3N.js.map +1 -0
  795. package/dist/schedule-V4UHGY3V.js +61 -0
  796. package/dist/schedule-V4UHGY3V.js.map +1 -0
  797. package/dist/scheduled-agents-KLQ5H2PA.js +49 -0
  798. package/dist/scheduled-agents-KLQ5H2PA.js.map +1 -0
  799. package/dist/schema-G3T4PZDI.js +132 -0
  800. package/dist/schema-G3T4PZDI.js.map +1 -0
  801. package/dist/schema-QXTDLZVC.js +63 -0
  802. package/dist/schema-QXTDLZVC.js.map +1 -0
  803. package/dist/scrape-7YKJWFZE.js +2241 -0
  804. package/dist/scrape-7YKJWFZE.js.map +1 -0
  805. package/dist/screenshot-ZHBSG3SI.js +102 -0
  806. package/dist/screenshot-ZHBSG3SI.js.map +1 -0
  807. package/dist/search-332KFYZ6.js +224 -0
  808. package/dist/search-332KFYZ6.js.map +1 -0
  809. package/dist/search-4PBMXXUY.js +91 -0
  810. package/dist/search-4PBMXXUY.js.map +1 -0
  811. package/dist/search-6XKEGABN.js +174 -0
  812. package/dist/search-6XKEGABN.js.map +1 -0
  813. package/dist/search-AVNUU6TJ.js +26 -0
  814. package/dist/search-AVNUU6TJ.js.map +1 -0
  815. package/dist/search-F5INRFFK.js +92 -0
  816. package/dist/search-F5INRFFK.js.map +1 -0
  817. package/dist/search-copy-DZVBYG2B.js +168 -0
  818. package/dist/search-copy-DZVBYG2B.js.map +1 -0
  819. package/dist/seeds-5JTQN5WI.js +101 -0
  820. package/dist/seeds-5JTQN5WI.js.map +1 -0
  821. package/dist/select-N2V55BEX.js +96 -0
  822. package/dist/select-N2V55BEX.js.map +1 -0
  823. package/dist/sends-3L6QBS46.js +309 -0
  824. package/dist/sends-3L6QBS46.js.map +1 -0
  825. package/dist/sequences-YKFV7BDH.js +146 -0
  826. package/dist/sequences-YKFV7BDH.js.map +1 -0
  827. package/dist/set-prompt-7HVHERRU.js +188 -0
  828. package/dist/set-prompt-7HVHERRU.js.map +1 -0
  829. package/dist/setup-links-4VVNQVPU.js +141 -0
  830. package/dist/setup-links-4VVNQVPU.js.map +1 -0
  831. package/dist/{shared-AVM74EX7.js → shared-QAMP7FZV.js} +8 -6
  832. package/dist/shared-QAMP7FZV.js.map +1 -0
  833. package/dist/shopify-FSHM5M4I.js +3346 -0
  834. package/dist/shopify-FSHM5M4I.js.map +1 -0
  835. package/dist/site-Q2HTRLIW.js +177 -0
  836. package/dist/site-Q2HTRLIW.js.map +1 -0
  837. package/dist/sitemaps-XPGLW24S.js +87 -0
  838. package/dist/sitemaps-XPGLW24S.js.map +1 -0
  839. package/dist/sites-WMBY2HJV.js +101 -0
  840. package/dist/sites-WMBY2HJV.js.map +1 -0
  841. package/dist/skills-3HEILQCU.js +47 -0
  842. package/dist/skills-3HEILQCU.js.map +1 -0
  843. package/dist/sources-2KN4RJNJ.js +30 -0
  844. package/dist/sources-2KN4RJNJ.js.map +1 -0
  845. package/dist/sources-4I2YMS2K.js +421 -0
  846. package/dist/sources-4I2YMS2K.js.map +1 -0
  847. package/dist/stale-IN7WSBLC.js +66 -0
  848. package/dist/stale-IN7WSBLC.js.map +1 -0
  849. package/dist/stats-GNILHSKK.js +34 -0
  850. package/dist/stats-GNILHSKK.js.map +1 -0
  851. package/dist/status-6SLKZWNR.js +62 -0
  852. package/dist/status-6SLKZWNR.js.map +1 -0
  853. package/dist/sticker-KCV3VZHY.js +94 -0
  854. package/dist/sticker-KCV3VZHY.js.map +1 -0
  855. package/dist/stock-VTORKR4C.js +179 -0
  856. package/dist/stock-VTORKR4C.js.map +1 -0
  857. package/dist/studio-QCRA6BY5.js +49 -0
  858. package/dist/studio-QCRA6BY5.js.map +1 -0
  859. package/dist/sync-455DB46Y.js +54 -0
  860. package/dist/sync-455DB46Y.js.map +1 -0
  861. package/dist/sync-A4KKQ3B6.js +265 -0
  862. package/dist/sync-A4KKQ3B6.js.map +1 -0
  863. package/dist/sync-LFZV5NBN.js +54 -0
  864. package/dist/sync-LFZV5NBN.js.map +1 -0
  865. package/dist/sync-definition-IJISZ5VQ.js +55 -0
  866. package/dist/sync-definition-IJISZ5VQ.js.map +1 -0
  867. package/dist/tag-manager-E7QTXBWQ.js +43 -0
  868. package/dist/tag-manager-E7QTXBWQ.js.map +1 -0
  869. package/dist/tags-6OAZOQYO.js +26 -0
  870. package/dist/tags-6OAZOQYO.js.map +1 -0
  871. package/dist/tags-6YRMDX3R.js +20 -0
  872. package/dist/tags-6YRMDX3R.js.map +1 -0
  873. package/dist/tags-EWXZSZYE.js +20 -0
  874. package/dist/tags-EWXZSZYE.js.map +1 -0
  875. package/dist/tags-SZCNPE2D.js +224 -0
  876. package/dist/tags-SZCNPE2D.js.map +1 -0
  877. package/dist/tags-TCFFP534.js +20 -0
  878. package/dist/tags-TCFFP534.js.map +1 -0
  879. package/dist/targeting-constants-D64YO3E7.js +118 -0
  880. package/dist/targeting-constants-D64YO3E7.js.map +1 -0
  881. package/dist/targeting-criteria-ESOC7KNX.js +113 -0
  882. package/dist/targeting-criteria-ESOC7KNX.js.map +1 -0
  883. package/dist/targets-IPBEB5KU.js +102 -0
  884. package/dist/targets-IPBEB5KU.js.map +1 -0
  885. package/dist/templates-IJ7FR3LA.js +178 -0
  886. package/dist/templates-IJ7FR3LA.js.map +1 -0
  887. package/dist/testimonials-IXS7CP6P.js +32 -0
  888. package/dist/testimonials-IXS7CP6P.js.map +1 -0
  889. package/dist/themes-MXNKJWMW.js +94 -0
  890. package/dist/themes-MXNKJWMW.js.map +1 -0
  891. package/dist/top-companies-NO6L2V6M.js +108 -0
  892. package/dist/top-companies-NO6L2V6M.js.map +1 -0
  893. package/dist/translate-QCE5ZB7M.js +600 -0
  894. package/dist/translate-QCE5ZB7M.js.map +1 -0
  895. package/dist/triggers-KXUDMDSA.js +141 -0
  896. package/dist/triggers-KXUDMDSA.js.map +1 -0
  897. package/dist/tweets-ZUKQAAUQ.js +123 -0
  898. package/dist/tweets-ZUKQAAUQ.js.map +1 -0
  899. package/dist/unfollow-A4JVCJBF.js +46 -0
  900. package/dist/unfollow-A4JVCJBF.js.map +1 -0
  901. package/dist/unlink-E3N36NYQ.js +67 -0
  902. package/dist/unlink-E3N36NYQ.js.map +1 -0
  903. package/dist/unstage-TRMHSHED.js +84 -0
  904. package/dist/unstage-TRMHSHED.js.map +1 -0
  905. package/dist/unstage-ZRLLCSQF.js +95 -0
  906. package/dist/unstage-ZRLLCSQF.js.map +1 -0
  907. package/dist/update-EWGWAXAQ.js +142 -0
  908. package/dist/update-EWGWAXAQ.js.map +1 -0
  909. package/dist/update-OKOQE7U2.js +155 -0
  910. package/dist/update-OKOQE7U2.js.map +1 -0
  911. package/dist/update-VSFHID2D.js +63 -0
  912. package/dist/update-VSFHID2D.js.map +1 -0
  913. package/dist/update-XGCGQDJ4.js +98 -0
  914. package/dist/update-XGCGQDJ4.js.map +1 -0
  915. package/dist/upload-BOYMDDEQ.js +126 -0
  916. package/dist/upload-BOYMDDEQ.js.map +1 -0
  917. package/dist/upload-XEHWYMJG.js +150 -0
  918. package/dist/upload-XEHWYMJG.js.map +1 -0
  919. package/dist/upscale-I5P2OHTN.js +109 -0
  920. package/dist/upscale-I5P2OHTN.js.map +1 -0
  921. package/dist/url-options-PCZEQE66.js +130 -0
  922. package/dist/url-options-PCZEQE66.js.map +1 -0
  923. package/dist/url-params-DV37GEQF.js +98 -0
  924. package/dist/url-params-DV37GEQF.js.map +1 -0
  925. package/dist/use-U4HG2NF3.js +95 -0
  926. package/dist/use-U4HG2NF3.js.map +1 -0
  927. package/dist/validate-5AV4FJZ5.js +91 -0
  928. package/dist/validate-5AV4FJZ5.js.map +1 -0
  929. package/dist/variant-FOVE6URJ.js +338 -0
  930. package/dist/variant-FOVE6URJ.js.map +1 -0
  931. package/dist/videos-IJ67PPJV.js +39 -0
  932. package/dist/videos-IJ67PPJV.js.map +1 -0
  933. package/dist/view-HRI3FHCH.js +121 -0
  934. package/dist/view-HRI3FHCH.js.map +1 -0
  935. package/dist/viewer-check-JYUE24M6.js +68 -0
  936. package/dist/viewer-check-JYUE24M6.js.map +1 -0
  937. package/dist/web-LJ36FRWD.js +140 -0
  938. package/dist/web-LJ36FRWD.js.map +1 -0
  939. package/dist/winners-SMMDN6LW.js +113 -0
  940. package/dist/winners-SMMDN6LW.js.map +1 -0
  941. package/dist/winning-ads-JIG2MQHJ.js +84 -0
  942. package/dist/winning-ads-JIG2MQHJ.js.map +1 -0
  943. package/dist/write-commands-7Z34WG2J.js +206 -0
  944. package/dist/write-commands-7Z34WG2J.js.map +1 -0
  945. package/dist/write-commands-BLT2SEC4.js +713 -0
  946. package/dist/write-commands-BLT2SEC4.js.map +1 -0
  947. package/dist/write-commands-GOZU6ENR.js +1015 -0
  948. package/dist/write-commands-GOZU6ENR.js.map +1 -0
  949. package/dist/write-commands-KA3QXVSF.js +737 -0
  950. package/dist/write-commands-KA3QXVSF.js.map +1 -0
  951. package/dist/x-6HBVXIKH.js +47 -0
  952. package/dist/x-6HBVXIKH.js.map +1 -0
  953. package/package.json +9 -2
  954. package/dist/chunk-HJEMOSPH.js +0 -1292
  955. package/dist/chunk-HJEMOSPH.js.map +0 -1
  956. package/dist/chunk-JHKW6IDX.js +0 -9989
  957. package/dist/chunk-JHKW6IDX.js.map +0 -1
  958. package/dist/chunk-MF7YA62W.js.map +0 -1
  959. package/dist/chunk-VZEDAFAR.js.map +0 -1
  960. package/dist/chunk-WWCLT3RG.js.map +0 -1
  961. package/dist/client-GR6YL3YX.js +0 -17
  962. package/dist/output-VQSTVRH7.js +0 -18
  963. /package/dist/{chunk-JTZXQRXI.js.map → chunk-TPXI2GCW.js.map} +0 -0
  964. /package/dist/{client-GR6YL3YX.js.map → chunk-YQSBHWOI.js.map} +0 -0
  965. /package/dist/{env-4P5HOGNA.js.map → client-26SAJ46D.js.map} +0 -0
  966. /package/dist/{output-VQSTVRH7.js.map → connect-WYUYS5V4.js.map} +0 -0
  967. /package/dist/{shared-AVM74EX7.js.map → customers-HYE7N2H5.js.map} +0 -0
@@ -0,0 +1,170 @@
1
+ import {
2
+ clearableArg,
3
+ compact,
4
+ failWriteValidation,
5
+ lowerArg,
6
+ microsFromArg,
7
+ productFiltersArg,
8
+ requireTarget,
9
+ schemaArgs,
10
+ stageChatgptOp,
11
+ statusCommand
12
+ } from "./chunk-4MH6LONO.js";
13
+ import {
14
+ CHATGPT_ADS_REFERENCE
15
+ } from "./chunk-IOCSDFF2.js";
16
+ import "./chunk-BVM5IRZW.js";
17
+ import "./chunk-HREWXNTO.js";
18
+ import "./chunk-HLXWKMTK.js";
19
+ import "./chunk-O6QKCJE4.js";
20
+ import {
21
+ registerSchema
22
+ } from "./chunk-WOTDHRNF.js";
23
+ import "./chunk-YQSBHWOI.js";
24
+
25
+ // src/commands/ads/chatgpt/ad-group-writes.ts
26
+ import { defineCommand } from "citty";
27
+ var REFERENCE = CHATGPT_ADS_REFERENCE.adGroups;
28
+ var SHARED_ARGS = {
29
+ name: { type: "string", description: "Ad group name (3+ characters)" },
30
+ description: { type: "string", description: "Internal description" },
31
+ "context-hints": {
32
+ type: "string",
33
+ description: "When the ad would be useful, short phrases separated by commas \u2014 or by | when a phrase has a comma. ChatGPT's counterpart to keywords, written in the language of the campaign's countries, as people ask ChatGPT. On update it replaces the whole list; none clears it"
34
+ },
35
+ "bid-strategy": {
36
+ type: "string",
37
+ description: "fixed_bid (default, needs --max-bid) | maximize_clicks | maximize_conversions"
38
+ },
39
+ "max-bid": { type: "string", description: "Bid in account currency, e.g. 2.50 \u2014 fixed_bid only" },
40
+ "tracking-template": {
41
+ type: "string",
42
+ description: "Query string added to this ad group's landing pages, e.g. ad_group_id={ad_group_id} \u2014 none clears"
43
+ },
44
+ "audience-bids": {
45
+ type: "string",
46
+ description: "Raise or lower the fixed bid for people in an audience: audience=multiplier pairs, 0.1 to 10, e.g. caud_123=1.5,caud_456=0.8. Audiences of ~25,000 people only; not in the EEA or Switzerland. On update it replaces them; none clears"
47
+ },
48
+ "product-filters": {
49
+ type: "string",
50
+ description: "Catalog campaigns only: which products it shows \u2014 e.g. brand in Acme; price lte 5000 (preview with `catalogs products`). On update it replaces the set; none shows the whole catalog"
51
+ },
52
+ status: { type: "string", description: "paused (default) | active" }
53
+ };
54
+ var CREATE_ARGS = {
55
+ ...SHARED_ARGS,
56
+ "campaign-id": { type: "string", description: "cmpn_\u2026 or a staged chatgpt_temp_ ref", required: true },
57
+ name: { type: "string", description: "Ad group name (3+ characters)", required: true }
58
+ };
59
+ var UPDATE_ARGS = {
60
+ id: { type: "positional", description: "Ad group id (adgrp_\u2026) or a staged chatgpt_temp_ ref", required: true },
61
+ ...SHARED_ARGS
62
+ };
63
+ function contextHintsArg(value) {
64
+ if (typeof value !== "string" || value.trim() === "") {
65
+ return void 0;
66
+ }
67
+ if (value.trim().toLowerCase() === "none") {
68
+ return [];
69
+ }
70
+ const separator = value.includes("|") ? "|" : ",";
71
+ return value.split(separator).map((hint) => hint.trim()).filter(Boolean);
72
+ }
73
+ function audienceBidsArg(value) {
74
+ if (typeof value !== "string" || value.trim() === "") {
75
+ return void 0;
76
+ }
77
+ if (value.trim().toLowerCase() === "none") {
78
+ return [];
79
+ }
80
+ return value.split(",").map((pair) => pair.trim()).filter(Boolean).map((pair) => {
81
+ const [audienceId = "", multiplier = ""] = pair.split("=").map((part) => part.trim());
82
+ const times = Number(multiplier.replace(",", "."));
83
+ if (!audienceId || !Number.isFinite(times)) {
84
+ failWriteValidation(`"${pair}" is not an audience bid \u2014 write audience=multiplier, e.g. caud_123=1.5`);
85
+ }
86
+ return { audienceId, multiplierMicros: Math.round(times * 1e6) };
87
+ });
88
+ }
89
+ function productSetArg(value) {
90
+ const filters = productFiltersArg(value);
91
+ return filters === void 0 ? void 0 : { filters };
92
+ }
93
+ function sharedPayload(args) {
94
+ return {
95
+ name: args.name,
96
+ description: args.description,
97
+ contextHints: contextHintsArg(args["context-hints"]),
98
+ bidStrategy: lowerArg(args["bid-strategy"]),
99
+ maxBidMicros: microsFromArg(args["max-bid"], "--max-bid"),
100
+ trackingTemplate: clearableArg(args["tracking-template"]),
101
+ productSet: productSetArg(args["product-filters"]),
102
+ audienceBidMultipliers: audienceBidsArg(args["audience-bids"]),
103
+ status: lowerArg(args.status)
104
+ };
105
+ }
106
+ function adGroupCreateOp(args) {
107
+ return { kind: "adGroup.create", payload: compact({ ...sharedPayload(args), campaignId: args["campaign-id"] }) };
108
+ }
109
+ registerSchema({
110
+ command: "ads.chatgpt.ad-groups.create",
111
+ description: "Stage a new ad group under a live campaign (cmpn_\u2026) or one staged in this chat (its chatgpt_temp_ ref). Context hints decide where the ad shows; a fixed bid needs --max-bid.",
112
+ args: schemaArgs(CREATE_ARGS)
113
+ });
114
+ var adGroupsCreateCommand = defineCommand({
115
+ meta: {
116
+ name: "create",
117
+ description: `Stage a new ad group (applies when the chat is published).
118
+
119
+ Examples:
120
+ baker ads chatgpt ad-groups create --campaign-id cmpn_123 --name "Rooftop owners" --context-hints "solar panels for my house,cut my electricity bill" --max-bid 2.50
121
+ baker ads chatgpt ad-groups create --campaign-id chatgpt_temp_ab12 --name "Auto" --bid-strategy maximize_clicks`
122
+ },
123
+ args: CREATE_ARGS,
124
+ run: async ({ args }) => {
125
+ await stageChatgptOp(adGroupCreateOp(args), REFERENCE, (staged) => [
126
+ adGroupNextHint(staged.ref, args["product-filters"] !== void 0)
127
+ ]);
128
+ }
129
+ });
130
+ registerSchema({
131
+ command: "ads.chatgpt.ad-groups.update",
132
+ description: "Stage a change to an ad group \u2014 name, context hints, bid or status. --context-hints replaces the whole list: read the ad group first and pass every hint to keep.",
133
+ args: schemaArgs(UPDATE_ARGS)
134
+ });
135
+ var adGroupsUpdateCommand = defineCommand({
136
+ meta: {
137
+ name: "update",
138
+ description: `Stage a change to an ad group. --context-hints replaces the whole list.
139
+
140
+ Examples:
141
+ baker ads chatgpt ad-groups update adgrp_123 --max-bid 3
142
+ baker ads chatgpt ad-groups update adgrp_123 --context-hints "solar panels,home battery,cut my electricity bill"`
143
+ },
144
+ args: UPDATE_ARGS,
145
+ run: async ({ args }) => {
146
+ await stageChatgptOp(
147
+ { kind: "adGroup.update", target: requireTarget(args, "id"), payload: compact(sharedPayload(args)) },
148
+ REFERENCE
149
+ );
150
+ }
151
+ });
152
+ var adGroupsPauseCommand = statusCommand("adGroup", "pause", REFERENCE);
153
+ var adGroupsResumeCommand = statusCommand("adGroup", "resume", REFERENCE);
154
+ var adGroupsArchiveCommand = statusCommand("adGroup", "archive", REFERENCE);
155
+ function adGroupNextHint(ref, productFilters) {
156
+ const productAd = `baker ads chatgpt ads create-product --ad-group-id ${ref} --name "\u2026"`;
157
+ return productFilters ? `Next, give it its product ad: ${productAd}` : `Next, give it a card: baker ads chatgpt ads create --ad-group-id ${ref} --name "\u2026" --title "\u2026" --body "\u2026" --target-url https://\u2026 --image-url https://\u2026 \u2014 under a catalog campaign, its product ad instead: ${productAd}`;
158
+ }
159
+ export {
160
+ adGroupCreateOp,
161
+ adGroupNextHint,
162
+ adGroupsArchiveCommand,
163
+ adGroupsCreateCommand,
164
+ adGroupsPauseCommand,
165
+ adGroupsResumeCommand,
166
+ adGroupsUpdateCommand,
167
+ audienceBidsArg,
168
+ contextHintsArg
169
+ };
170
+ //# sourceMappingURL=ad-group-writes-I225OYDZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/chatgpt/ad-group-writes.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { registerSchema } from \"../../../schemas.ts\";\nimport { CHATGPT_ADS_REFERENCE } from \"./shared.ts\";\nimport {\n clearableArg,\n compact,\n failWriteValidation,\n lowerArg,\n microsFromArg,\n productFiltersArg,\n requireTarget,\n schemaArgs,\n stageChatgptOp,\n statusCommand,\n} from \"./write-shared.ts\";\n\n/**\n * Staged ad group writes. The billing event follows the campaign's objective and\n * is filled in by the backend; an update's bidding is completed from the live\n * ad group, so passing only --max-bid keeps the strategy.\n */\n\nconst REFERENCE = CHATGPT_ADS_REFERENCE.adGroups;\n\nconst SHARED_ARGS = {\n name: { type: \"string\", description: \"Ad group name (3+ characters)\" },\n description: { type: \"string\", description: \"Internal description\" },\n \"context-hints\": {\n type: \"string\",\n description:\n \"When the ad would be useful, short phrases separated by commas — or by | when a phrase has a comma. ChatGPT's counterpart to keywords, written in the language of the campaign's countries, as people ask ChatGPT. On update it replaces the whole list; none clears it\",\n },\n \"bid-strategy\": {\n type: \"string\",\n description: \"fixed_bid (default, needs --max-bid) | maximize_clicks | maximize_conversions\",\n },\n \"max-bid\": { type: \"string\", description: \"Bid in account currency, e.g. 2.50 — fixed_bid only\" },\n \"tracking-template\": {\n type: \"string\",\n description: \"Query string added to this ad group's landing pages, e.g. ad_group_id={ad_group_id} — none clears\",\n },\n \"audience-bids\": {\n type: \"string\",\n description:\n \"Raise or lower the fixed bid for people in an audience: audience=multiplier pairs, 0.1 to 10, e.g. caud_123=1.5,caud_456=0.8. Audiences of ~25,000 people only; not in the EEA or Switzerland. On update it replaces them; none clears\",\n },\n \"product-filters\": {\n type: \"string\",\n description:\n \"Catalog campaigns only: which products it shows — e.g. brand in Acme; price lte 5000 (preview with `catalogs products`). On update it replaces the set; none shows the whole catalog\",\n },\n status: { type: \"string\", description: \"paused (default) | active\" },\n} as const;\n\nconst CREATE_ARGS = {\n ...SHARED_ARGS,\n \"campaign-id\": { type: \"string\", description: \"cmpn_… or a staged chatgpt_temp_ ref\", required: true },\n name: { type: \"string\", description: \"Ad group name (3+ characters)\", required: true },\n} as const;\n\nconst UPDATE_ARGS = {\n id: { type: \"positional\", description: \"Ad group id (adgrp_…) or a staged chatgpt_temp_ ref\", required: true },\n ...SHARED_ARGS,\n} as const;\n\ntype Args = Record<string, unknown>;\n\n/**\n * Hints are plain phrases, which carry commas — so `|` splits them when it is\n * there, commas otherwise. `none` clears the list, which ChatGPT Ads takes as\n * an empty one.\n */\nexport function contextHintsArg(value: unknown): string[] | undefined {\n if (typeof value !== \"string\" || value.trim() === \"\") {\n return undefined;\n }\n if (value.trim().toLowerCase() === \"none\") {\n return [];\n }\n const separator = value.includes(\"|\") ? \"|\" : \",\";\n return value\n .split(separator)\n .map((hint) => hint.trim())\n .filter(Boolean);\n}\n\n/** `caud_1=1.5,caud_2=0.8` as micros; `none` clears the adjustments. */\nexport function audienceBidsArg(value: unknown): Array<{ audienceId: string; multiplierMicros: number }> | undefined {\n if (typeof value !== \"string\" || value.trim() === \"\") {\n return undefined;\n }\n if (value.trim().toLowerCase() === \"none\") {\n return [];\n }\n return value\n .split(\",\")\n .map((pair) => pair.trim())\n .filter(Boolean)\n .map((pair) => {\n const [audienceId = \"\", multiplier = \"\"] = pair.split(\"=\").map((part) => part.trim());\n const times = Number(multiplier.replace(\",\", \".\"));\n if (!audienceId || !Number.isFinite(times)) {\n failWriteValidation(`\"${pair}\" is not an audience bid — write audience=multiplier, e.g. caud_123=1.5`);\n }\n return { audienceId, multiplierMicros: Math.round(times * 1_000_000) };\n });\n}\n\nfunction productSetArg(value: unknown) {\n const filters = productFiltersArg(value);\n return filters === undefined ? undefined : { filters };\n}\n\nfunction sharedPayload(args: Args): Record<string, unknown> {\n return {\n name: args.name,\n description: args.description,\n contextHints: contextHintsArg(args[\"context-hints\"]),\n bidStrategy: lowerArg(args[\"bid-strategy\"]),\n maxBidMicros: microsFromArg(args[\"max-bid\"], \"--max-bid\"),\n trackingTemplate: clearableArg(args[\"tracking-template\"]),\n productSet: productSetArg(args[\"product-filters\"]),\n audienceBidMultipliers: audienceBidsArg(args[\"audience-bids\"]),\n status: lowerArg(args.status),\n };\n}\n\nexport function adGroupCreateOp(args: Args): Record<string, unknown> {\n return { kind: \"adGroup.create\", payload: compact({ ...sharedPayload(args), campaignId: args[\"campaign-id\"] }) };\n}\n\nregisterSchema({\n command: \"ads.chatgpt.ad-groups.create\",\n description:\n \"Stage a new ad group under a live campaign (cmpn_…) or one staged in this chat (its chatgpt_temp_ ref). Context hints decide where the ad shows; a fixed bid needs --max-bid.\",\n args: schemaArgs(CREATE_ARGS),\n});\n\nexport const adGroupsCreateCommand = defineCommand({\n meta: {\n name: \"create\",\n description: `Stage a new ad group (applies when the chat is published).\n\nExamples:\n baker ads chatgpt ad-groups create --campaign-id cmpn_123 --name \"Rooftop owners\" --context-hints \"solar panels for my house,cut my electricity bill\" --max-bid 2.50\n baker ads chatgpt ad-groups create --campaign-id chatgpt_temp_ab12 --name \"Auto\" --bid-strategy maximize_clicks`,\n },\n args: CREATE_ARGS,\n run: async ({ args }) => {\n await stageChatgptOp(adGroupCreateOp(args), REFERENCE, (staged) => [\n adGroupNextHint(staged.ref, args[\"product-filters\"] !== undefined),\n ]);\n },\n});\n\nregisterSchema({\n command: \"ads.chatgpt.ad-groups.update\",\n description:\n \"Stage a change to an ad group — name, context hints, bid or status. --context-hints replaces the whole list: read the ad group first and pass every hint to keep.\",\n args: schemaArgs(UPDATE_ARGS),\n});\n\nexport const adGroupsUpdateCommand = defineCommand({\n meta: {\n name: \"update\",\n description: `Stage a change to an ad group. --context-hints replaces the whole list.\n\nExamples:\n baker ads chatgpt ad-groups update adgrp_123 --max-bid 3\n baker ads chatgpt ad-groups update adgrp_123 --context-hints \"solar panels,home battery,cut my electricity bill\"`,\n },\n args: UPDATE_ARGS,\n run: async ({ args }) => {\n await stageChatgptOp(\n { kind: \"adGroup.update\", target: requireTarget(args, \"id\"), payload: compact(sharedPayload(args)) },\n REFERENCE,\n );\n },\n});\n\nexport const adGroupsPauseCommand = statusCommand(\"adGroup\", \"pause\", REFERENCE);\nexport const adGroupsResumeCommand = statusCommand(\"adGroup\", \"resume\", REFERENCE);\nexport const adGroupsArchiveCommand = statusCommand(\"adGroup\", \"archive\", REFERENCE);\n\n/** What an ad group needs next: a card, or — under a catalog campaign — its one product ad. */\nexport function adGroupNextHint(ref: string, productFilters: boolean): string {\n const productAd = `baker ads chatgpt ads create-product --ad-group-id ${ref} --name \"…\"`;\n return productFilters\n ? `Next, give it its product ad: ${productAd}`\n : `Next, give it a card: baker ads chatgpt ads create --ad-group-id ${ref} --name \"…\" --title \"…\" --body \"…\" --target-url https://… --image-url https://… — under a catalog campaign, its product ad instead: ${productAd}`;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,68 @@
1
+ import {
2
+ CHATGPT_ADS_REFERENCE,
3
+ runChatgptListRead
4
+ } from "./chunk-IOCSDFF2.js";
5
+ import "./chunk-BVM5IRZW.js";
6
+ import "./chunk-HREWXNTO.js";
7
+ import "./chunk-HLXWKMTK.js";
8
+ import "./chunk-O6QKCJE4.js";
9
+ import {
10
+ registerSchema
11
+ } from "./chunk-WOTDHRNF.js";
12
+ import "./chunk-YQSBHWOI.js";
13
+
14
+ // src/commands/ads/chatgpt/ad-groups.ts
15
+ import { defineCommand } from "citty";
16
+ var args = {
17
+ "campaign-id": { type: "string", description: "Only this campaign's ad groups (cmpn_\u2026)", required: false },
18
+ full: { type: "boolean", description: "Return ChatGPT Ads' own ad group objects", required: false }
19
+ };
20
+ registerSchema({
21
+ command: "ads.chatgpt.ad-groups",
22
+ description: "Ad groups in the connected ChatGPT Ads account, or in one campaign: bid strategy, billing event, max bid (currency units), context hints (when the ad should show \u2014 ChatGPT's counterpart to keywords) and serving issues.",
23
+ args
24
+ });
25
+ var adGroupsListCommand = defineCommand({
26
+ meta: {
27
+ name: "list",
28
+ description: "ChatGPT Ads ad groups. Example: baker ads chatgpt ad-groups --campaign-id cmpn_123"
29
+ },
30
+ args,
31
+ run: async ({ args: input }) => {
32
+ const params = {};
33
+ if (input["campaign-id"]) {
34
+ params["campaign-id"] = input["campaign-id"];
35
+ }
36
+ if (input.full) {
37
+ params.full = "true";
38
+ }
39
+ await runChatgptListRead(CHATGPT_ADS_REFERENCE.adGroups, "/api/ads/chatgpt/ad-groups", params);
40
+ }
41
+ });
42
+ var adGroupsCommand = defineCommand({
43
+ meta: {
44
+ name: "ad-groups",
45
+ description: `ChatGPT Ads ad groups: how each one bids and the context hints that decide where it shows \u2014 or stage a change that applies when the chat is published.
46
+
47
+ Examples:
48
+ baker ads chatgpt ad-groups --campaign-id cmpn_123
49
+ baker ads chatgpt ad-groups create --campaign-id cmpn_123 --name "Rooftop owners" --context-hints "solar panels for my house" --max-bid 2.50
50
+ baker ads chatgpt ad-groups update adgrp_123 --max-bid 3
51
+ baker ads chatgpt ad-groups pause adgrp_123`
52
+ },
53
+ subCommands: {
54
+ list: adGroupsListCommand,
55
+ create: () => import("./ad-group-writes-I225OYDZ.js").then((m) => m.adGroupsCreateCommand),
56
+ update: () => import("./ad-group-writes-I225OYDZ.js").then((m) => m.adGroupsUpdateCommand),
57
+ pause: () => import("./ad-group-writes-I225OYDZ.js").then((m) => m.adGroupsPauseCommand),
58
+ resume: () => import("./ad-group-writes-I225OYDZ.js").then((m) => m.adGroupsResumeCommand),
59
+ archive: () => import("./ad-group-writes-I225OYDZ.js").then((m) => m.adGroupsArchiveCommand)
60
+ },
61
+ // A parent must never declare `run`: citty falls through to it after the matched subcommand.
62
+ args,
63
+ default: "list"
64
+ });
65
+ export {
66
+ adGroupsCommand
67
+ };
68
+ //# sourceMappingURL=ad-groups-O35MWNF6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/chatgpt/ad-groups.ts"],"sourcesContent":["import type { ChatgptAdsAdGroup } from \"@baker/api/ads-chatgpt\";\nimport { defineCommand } from \"citty\";\nimport { registerSchema } from \"../../../schemas.ts\";\nimport { CHATGPT_ADS_REFERENCE, runChatgptListRead } from \"./shared.ts\";\n\nconst args = {\n \"campaign-id\": { type: \"string\", description: \"Only this campaign's ad groups (cmpn_…)\", required: false },\n full: { type: \"boolean\", description: \"Return ChatGPT Ads' own ad group objects\", required: false },\n} as const;\n\nregisterSchema({\n command: \"ads.chatgpt.ad-groups\",\n description:\n \"Ad groups in the connected ChatGPT Ads account, or in one campaign: bid strategy, billing event, max bid (currency units), context hints (when the ad should show — ChatGPT's counterpart to keywords) and serving issues.\",\n args,\n});\n\nconst adGroupsListCommand = defineCommand({\n meta: {\n name: \"list\",\n description: \"ChatGPT Ads ad groups. Example: baker ads chatgpt ad-groups --campaign-id cmpn_123\",\n },\n args,\n run: async ({ args: input }) => {\n const params: Record<string, string> = {};\n if (input[\"campaign-id\"]) {\n params[\"campaign-id\"] = input[\"campaign-id\"];\n }\n if (input.full) {\n params.full = \"true\";\n }\n await runChatgptListRead<ChatgptAdsAdGroup[]>(CHATGPT_ADS_REFERENCE.adGroups, \"/api/ads/chatgpt/ad-groups\", params);\n },\n});\n\nexport const adGroupsCommand = defineCommand({\n meta: {\n name: \"ad-groups\",\n description: `ChatGPT Ads ad groups: how each one bids and the context hints that decide where it shows — or stage a change that applies when the chat is published.\n\nExamples:\n baker ads chatgpt ad-groups --campaign-id cmpn_123\n baker ads chatgpt ad-groups create --campaign-id cmpn_123 --name \"Rooftop owners\" --context-hints \"solar panels for my house\" --max-bid 2.50\n baker ads chatgpt ad-groups update adgrp_123 --max-bid 3\n baker ads chatgpt ad-groups pause adgrp_123`,\n },\n subCommands: {\n list: adGroupsListCommand,\n create: () => import(\"./ad-group-writes.ts\").then((m) => m.adGroupsCreateCommand),\n update: () => import(\"./ad-group-writes.ts\").then((m) => m.adGroupsUpdateCommand),\n pause: () => import(\"./ad-group-writes.ts\").then((m) => m.adGroupsPauseCommand),\n resume: () => import(\"./ad-group-writes.ts\").then((m) => m.adGroupsResumeCommand),\n archive: () => import(\"./ad-group-writes.ts\").then((m) => m.adGroupsArchiveCommand),\n },\n // A parent must never declare `run`: citty falls through to it after the matched subcommand.\n args,\n default: \"list\",\n});\n"],"mappings":";;;;;;;;;;;;;;AACA,SAAS,qBAAqB;AAI9B,IAAM,OAAO;AAAA,EACX,eAAe,EAAE,MAAM,UAAU,aAAa,gDAA2C,UAAU,MAAM;AAAA,EACzG,MAAM,EAAE,MAAM,WAAW,aAAa,4CAA4C,UAAU,MAAM;AACpG;AAEA,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF;AACF,CAAC;AAED,IAAM,sBAAsB,cAAc;AAAA,EACxC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA;AAAA,EACA,KAAK,OAAO,EAAE,MAAM,MAAM,MAAM;AAC9B,UAAM,SAAiC,CAAC;AACxC,QAAI,MAAM,aAAa,GAAG;AACxB,aAAO,aAAa,IAAI,MAAM,aAAa;AAAA,IAC7C;AACA,QAAI,MAAM,MAAM;AACd,aAAO,OAAO;AAAA,IAChB;AACA,UAAM,mBAAwC,sBAAsB,UAAU,8BAA8B,MAAM;AAAA,EACpH;AACF,CAAC;AAEM,IAAM,kBAAkB,cAAc;AAAA,EAC3C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOf;AAAA,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,QAAQ,MAAM,OAAO,+BAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,qBAAqB;AAAA,IAChF,QAAQ,MAAM,OAAO,+BAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,qBAAqB;AAAA,IAChF,OAAO,MAAM,OAAO,+BAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,oBAAoB;AAAA,IAC9E,QAAQ,MAAM,OAAO,+BAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,qBAAqB;AAAA,IAChF,SAAS,MAAM,OAAO,+BAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,sBAAsB;AAAA,EACpF;AAAA;AAAA,EAEA;AAAA,EACA,SAAS;AACX,CAAC;","names":[]}
@@ -0,0 +1,174 @@
1
+ import {
2
+ clearableArg,
3
+ compact,
4
+ cropArg,
5
+ lowerArg,
6
+ requireTarget,
7
+ schemaArgs,
8
+ stageChatgptOp,
9
+ statusCommand
10
+ } from "./chunk-4MH6LONO.js";
11
+ import {
12
+ CHATGPT_ADS_REFERENCE
13
+ } from "./chunk-IOCSDFF2.js";
14
+ import "./chunk-BVM5IRZW.js";
15
+ import "./chunk-HREWXNTO.js";
16
+ import "./chunk-HLXWKMTK.js";
17
+ import "./chunk-O6QKCJE4.js";
18
+ import {
19
+ registerSchema
20
+ } from "./chunk-WOTDHRNF.js";
21
+ import "./chunk-YQSBHWOI.js";
22
+
23
+ // src/commands/ads/chatgpt/ad-writes.ts
24
+ import { defineCommand } from "citty";
25
+ var REFERENCE = CHATGPT_ADS_REFERENCE.ads;
26
+ var SHARED_ARGS = {
27
+ name: { type: "string", description: "Internal ad name (3+ characters)" },
28
+ title: { type: "string", description: "Card title, 3\u201350 characters" },
29
+ body: { type: "string", description: "Card text, up to 100 characters" },
30
+ "target-url": { type: "string", description: "Landing page, https://" },
31
+ "image-url": {
32
+ type: "string",
33
+ description: "Card image, https:// \u2014 PNG, JPEG, WebP or AVIF; square and 640 \xD7 640 px or larger reads best"
34
+ },
35
+ "image-crop": {
36
+ type: "string",
37
+ description: "The square of the image the card shows, as x,y,width,height shares from 0 to 1, e.g. 0.1,0,0.8,0.8 (default: chosen by ChatGPT Ads)"
38
+ },
39
+ "tracking-template": {
40
+ type: "string",
41
+ description: "Query string added to this card's landing page, e.g. ad_id={ad_id} \u2014 none clears"
42
+ },
43
+ status: { type: "string", description: "paused (default) | active" }
44
+ };
45
+ var CREATE_ARGS = {
46
+ ...SHARED_ARGS,
47
+ "ad-group-id": { type: "string", description: "adgrp_\u2026 or a staged chatgpt_temp_ ref", required: true },
48
+ name: { type: "string", description: "Internal ad name (3+ characters)", required: true },
49
+ title: { type: "string", description: "Card title, 3\u201350 characters", required: true },
50
+ body: { type: "string", description: "Card text, up to 100 characters", required: true },
51
+ "target-url": { type: "string", description: "Landing page, https://", required: true },
52
+ "image-url": { type: "string", description: "Card image, https://, at least 640 \xD7 640 px", required: true }
53
+ };
54
+ var UPDATE_ARGS = {
55
+ id: { type: "positional", description: "Ad id (ad_\u2026) or a staged chatgpt_temp_ ref", required: true },
56
+ ...SHARED_ARGS
57
+ };
58
+ function sharedPayload(args) {
59
+ return {
60
+ name: args.name,
61
+ title: args.title,
62
+ body: args.body,
63
+ targetUrl: args["target-url"],
64
+ imageUrl: args["image-url"],
65
+ imageCrop: cropArg(args["image-crop"], "--image-crop"),
66
+ trackingTemplate: clearableArg(args["tracking-template"]),
67
+ status: lowerArg(args.status)
68
+ };
69
+ }
70
+ function adCreateOp(args) {
71
+ return { kind: "ad.create", payload: compact({ ...sharedPayload(args), adGroupId: args["ad-group-id"] }) };
72
+ }
73
+ registerSchema({
74
+ command: "ads.chatgpt.ads.create",
75
+ description: "Stage a new chat card under a live ad group (adgrp_\u2026) or one staged in this chat. Every new card goes through ChatGPT Ads' review after publish before it serves.",
76
+ args: schemaArgs(CREATE_ARGS)
77
+ });
78
+ var adsCreateCommand = defineCommand({
79
+ meta: {
80
+ name: "create",
81
+ description: `Stage a new chat card (applies when the chat is published).
82
+
83
+ Example:
84
+ baker ads chatgpt ads create --ad-group-id adgrp_123 --name "Card A" --title "Solar from 0 upfront" \\
85
+ --body "Get a quote in two minutes." --target-url https://example.com/solar --image-url https://example.com/card.png`
86
+ },
87
+ args: CREATE_ARGS,
88
+ run: async ({ args }) => {
89
+ await stageChatgptOp(adCreateOp(args), REFERENCE, () => [
90
+ "Review everything staged with `baker ads chatgpt draft`. It applies when the chat is published."
91
+ ]);
92
+ }
93
+ });
94
+ registerSchema({
95
+ command: "ads.chatgpt.ads.update",
96
+ description: "Stage a change to a chat card \u2014 any of title, body, landing page, image, name or status; the rest is kept from the live card. Changing the card sends it back to review.",
97
+ args: schemaArgs(UPDATE_ARGS)
98
+ });
99
+ var adsUpdateCommand = defineCommand({
100
+ meta: {
101
+ name: "update",
102
+ description: `Stage a change to a chat card; what you do not pass is kept.
103
+
104
+ Examples:
105
+ baker ads chatgpt ads update ad_123 --title "Solar with no upfront cost"
106
+ baker ads chatgpt ads update ad_123 --target-url https://example.com/solar-v2`
107
+ },
108
+ args: UPDATE_ARGS,
109
+ run: async ({ args }) => {
110
+ await stageChatgptOp(
111
+ { kind: "ad.update", target: requireTarget(args, "id"), payload: compact(sharedPayload(args)) },
112
+ REFERENCE
113
+ );
114
+ }
115
+ });
116
+ var adsPauseCommand = statusCommand("ad", "pause", REFERENCE);
117
+ var adsResumeCommand = statusCommand("ad", "resume", REFERENCE);
118
+ var adsArchiveCommand = statusCommand("ad", "archive", REFERENCE);
119
+ var PRODUCT_ARGS = {
120
+ "ad-group-id": {
121
+ type: "string",
122
+ description: "adgrp_\u2026 under a catalog campaign, or a staged chatgpt_temp_ ref",
123
+ required: true
124
+ },
125
+ name: { type: "string", description: "Internal ad name (3+ characters)", required: true },
126
+ title: {
127
+ type: "string",
128
+ description: "Title template (default {{product.title}}) \u2014 text with {{brand}}, {{product.title}}, {{product.body}}, {{product.price}}"
129
+ },
130
+ "tracking-template": { type: "string", description: "Query string added to each product's landing page" },
131
+ status: { type: "string", description: "paused (default) | active" }
132
+ };
133
+ function productAdCreateOp(args) {
134
+ return {
135
+ kind: "ad.create",
136
+ payload: compact({
137
+ format: "product_template",
138
+ adGroupId: args["ad-group-id"],
139
+ name: args.name,
140
+ title: args.title,
141
+ trackingTemplate: args["tracking-template"],
142
+ status: lowerArg(args.status)
143
+ })
144
+ };
145
+ }
146
+ registerSchema({
147
+ command: "ads.chatgpt.ads.create-product",
148
+ description: "Stage the product ad of a catalog ad group: one template each product fills with its own title, text, price, image and link. One per ad group.",
149
+ args: schemaArgs(PRODUCT_ARGS)
150
+ });
151
+ var adsCreateProductCommand = defineCommand({
152
+ meta: {
153
+ name: "create-product",
154
+ description: `Stage a product ad for a catalog ad group (applies when the chat is published).
155
+
156
+ Example:
157
+ baker ads chatgpt ads create-product --ad-group-id adgrp_123 --name "Catalog ad" --title "{{brand}}: {{product.title}}"`
158
+ },
159
+ args: PRODUCT_ARGS,
160
+ run: async ({ args }) => {
161
+ await stageChatgptOp(productAdCreateOp(args), REFERENCE);
162
+ }
163
+ });
164
+ export {
165
+ adCreateOp,
166
+ adsArchiveCommand,
167
+ adsCreateCommand,
168
+ adsCreateProductCommand,
169
+ adsPauseCommand,
170
+ adsResumeCommand,
171
+ adsUpdateCommand,
172
+ productAdCreateOp
173
+ };
174
+ //# sourceMappingURL=ad-writes-SS5YZO5W.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/chatgpt/ad-writes.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { registerSchema } from \"../../../schemas.ts\";\nimport { CHATGPT_ADS_REFERENCE } from \"./shared.ts\";\nimport {\n clearableArg,\n compact,\n cropArg,\n lowerArg,\n requireTarget,\n schemaArgs,\n stageChatgptOp,\n statusCommand,\n} from \"./write-shared.ts\";\n\n/**\n * Staged ad (chat card) writes. The image is uploaded to ChatGPT Ads at\n * publish, not now; an update is completed from the live card, since ChatGPT\n * Ads replaces a card whole.\n */\n\nconst REFERENCE = CHATGPT_ADS_REFERENCE.ads;\n\nconst SHARED_ARGS = {\n name: { type: \"string\", description: \"Internal ad name (3+ characters)\" },\n title: { type: \"string\", description: \"Card title, 3–50 characters\" },\n body: { type: \"string\", description: \"Card text, up to 100 characters\" },\n \"target-url\": { type: \"string\", description: \"Landing page, https://\" },\n \"image-url\": {\n type: \"string\",\n description: \"Card image, https:// — PNG, JPEG, WebP or AVIF; square and 640 × 640 px or larger reads best\",\n },\n \"image-crop\": {\n type: \"string\",\n description:\n \"The square of the image the card shows, as x,y,width,height shares from 0 to 1, e.g. 0.1,0,0.8,0.8 (default: chosen by ChatGPT Ads)\",\n },\n \"tracking-template\": {\n type: \"string\",\n description: \"Query string added to this card's landing page, e.g. ad_id={ad_id} — none clears\",\n },\n status: { type: \"string\", description: \"paused (default) | active\" },\n} as const;\n\nconst CREATE_ARGS = {\n ...SHARED_ARGS,\n \"ad-group-id\": { type: \"string\", description: \"adgrp_… or a staged chatgpt_temp_ ref\", required: true },\n name: { type: \"string\", description: \"Internal ad name (3+ characters)\", required: true },\n title: { type: \"string\", description: \"Card title, 3–50 characters\", required: true },\n body: { type: \"string\", description: \"Card text, up to 100 characters\", required: true },\n \"target-url\": { type: \"string\", description: \"Landing page, https://\", required: true },\n \"image-url\": { type: \"string\", description: \"Card image, https://, at least 640 × 640 px\", required: true },\n} as const;\n\nconst UPDATE_ARGS = {\n id: { type: \"positional\", description: \"Ad id (ad_…) or a staged chatgpt_temp_ ref\", required: true },\n ...SHARED_ARGS,\n} as const;\n\ntype Args = Record<string, unknown>;\n\nfunction sharedPayload(args: Args): Record<string, unknown> {\n return {\n name: args.name,\n title: args.title,\n body: args.body,\n targetUrl: args[\"target-url\"],\n imageUrl: args[\"image-url\"],\n imageCrop: cropArg(args[\"image-crop\"], \"--image-crop\"),\n trackingTemplate: clearableArg(args[\"tracking-template\"]),\n status: lowerArg(args.status),\n };\n}\n\nexport function adCreateOp(args: Args): Record<string, unknown> {\n return { kind: \"ad.create\", payload: compact({ ...sharedPayload(args), adGroupId: args[\"ad-group-id\"] }) };\n}\n\nregisterSchema({\n command: \"ads.chatgpt.ads.create\",\n description:\n \"Stage a new chat card under a live ad group (adgrp_…) or one staged in this chat. Every new card goes through ChatGPT Ads' review after publish before it serves.\",\n args: schemaArgs(CREATE_ARGS),\n});\n\nexport const adsCreateCommand = defineCommand({\n meta: {\n name: \"create\",\n description: `Stage a new chat card (applies when the chat is published).\n\nExample:\n baker ads chatgpt ads create --ad-group-id adgrp_123 --name \"Card A\" --title \"Solar from 0 upfront\" \\\\\n --body \"Get a quote in two minutes.\" --target-url https://example.com/solar --image-url https://example.com/card.png`,\n },\n args: CREATE_ARGS,\n run: async ({ args }) => {\n await stageChatgptOp(adCreateOp(args), REFERENCE, () => [\n \"Review everything staged with `baker ads chatgpt draft`. It applies when the chat is published.\",\n ]);\n },\n});\n\nregisterSchema({\n command: \"ads.chatgpt.ads.update\",\n description:\n \"Stage a change to a chat card — any of title, body, landing page, image, name or status; the rest is kept from the live card. Changing the card sends it back to review.\",\n args: schemaArgs(UPDATE_ARGS),\n});\n\nexport const adsUpdateCommand = defineCommand({\n meta: {\n name: \"update\",\n description: `Stage a change to a chat card; what you do not pass is kept.\n\nExamples:\n baker ads chatgpt ads update ad_123 --title \"Solar with no upfront cost\"\n baker ads chatgpt ads update ad_123 --target-url https://example.com/solar-v2`,\n },\n args: UPDATE_ARGS,\n run: async ({ args }) => {\n await stageChatgptOp(\n { kind: \"ad.update\", target: requireTarget(args, \"id\"), payload: compact(sharedPayload(args)) },\n REFERENCE,\n );\n },\n});\n\nexport const adsPauseCommand = statusCommand(\"ad\", \"pause\", REFERENCE);\nexport const adsResumeCommand = statusCommand(\"ad\", \"resume\", REFERENCE);\nexport const adsArchiveCommand = statusCommand(\"ad\", \"archive\", REFERENCE);\n\nconst PRODUCT_ARGS = {\n \"ad-group-id\": {\n type: \"string\",\n description: \"adgrp_… under a catalog campaign, or a staged chatgpt_temp_ ref\",\n required: true,\n },\n name: { type: \"string\", description: \"Internal ad name (3+ characters)\", required: true },\n title: {\n type: \"string\",\n description:\n \"Title template (default {{product.title}}) — text with {{brand}}, {{product.title}}, {{product.body}}, {{product.price}}\",\n },\n \"tracking-template\": { type: \"string\", description: \"Query string added to each product's landing page\" },\n status: { type: \"string\", description: \"paused (default) | active\" },\n} as const;\n\nexport function productAdCreateOp(args: Args): Record<string, unknown> {\n return {\n kind: \"ad.create\",\n payload: compact({\n format: \"product_template\",\n adGroupId: args[\"ad-group-id\"],\n name: args.name,\n title: args.title,\n trackingTemplate: args[\"tracking-template\"],\n status: lowerArg(args.status),\n }),\n };\n}\n\nregisterSchema({\n command: \"ads.chatgpt.ads.create-product\",\n description:\n \"Stage the product ad of a catalog ad group: one template each product fills with its own title, text, price, image and link. One per ad group.\",\n args: schemaArgs(PRODUCT_ARGS),\n});\n\nexport const adsCreateProductCommand = defineCommand({\n meta: {\n name: \"create-product\",\n description: `Stage a product ad for a catalog ad group (applies when the chat is published).\n\nExample:\n baker ads chatgpt ads create-product --ad-group-id adgrp_123 --name \"Catalog ad\" --title \"{{brand}}: {{product.title}}\"`,\n },\n args: PRODUCT_ARGS,\n run: async ({ args }) => {\n await stageChatgptOp(productAdCreateOp(args), REFERENCE);\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAoB9B,IAAM,YAAY,sBAAsB;AAExC,IAAM,cAAc;AAAA,EAClB,MAAM,EAAE,MAAM,UAAU,aAAa,mCAAmC;AAAA,EACxE,OAAO,EAAE,MAAM,UAAU,aAAa,mCAA8B;AAAA,EACpE,MAAM,EAAE,MAAM,UAAU,aAAa,kCAAkC;AAAA,EACvE,cAAc,EAAE,MAAM,UAAU,aAAa,yBAAyB;AAAA,EACtE,aAAa;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,qBAAqB;AAAA,IACnB,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,QAAQ,EAAE,MAAM,UAAU,aAAa,4BAA4B;AACrE;AAEA,IAAM,cAAc;AAAA,EAClB,GAAG;AAAA,EACH,eAAe,EAAE,MAAM,UAAU,aAAa,8CAAyC,UAAU,KAAK;AAAA,EACtG,MAAM,EAAE,MAAM,UAAU,aAAa,oCAAoC,UAAU,KAAK;AAAA,EACxF,OAAO,EAAE,MAAM,UAAU,aAAa,oCAA+B,UAAU,KAAK;AAAA,EACpF,MAAM,EAAE,MAAM,UAAU,aAAa,mCAAmC,UAAU,KAAK;AAAA,EACvF,cAAc,EAAE,MAAM,UAAU,aAAa,0BAA0B,UAAU,KAAK;AAAA,EACtF,aAAa,EAAE,MAAM,UAAU,aAAa,kDAA+C,UAAU,KAAK;AAC5G;AAEA,IAAM,cAAc;AAAA,EAClB,IAAI,EAAE,MAAM,cAAc,aAAa,mDAA8C,UAAU,KAAK;AAAA,EACpG,GAAG;AACL;AAIA,SAAS,cAAc,MAAqC;AAC1D,SAAO;AAAA,IACL,MAAM,KAAK;AAAA,IACX,OAAO,KAAK;AAAA,IACZ,MAAM,KAAK;AAAA,IACX,WAAW,KAAK,YAAY;AAAA,IAC5B,UAAU,KAAK,WAAW;AAAA,IAC1B,WAAW,QAAQ,KAAK,YAAY,GAAG,cAAc;AAAA,IACrD,kBAAkB,aAAa,KAAK,mBAAmB,CAAC;AAAA,IACxD,QAAQ,SAAS,KAAK,MAAM;AAAA,EAC9B;AACF;AAEO,SAAS,WAAW,MAAqC;AAC9D,SAAO,EAAE,MAAM,aAAa,SAAS,QAAQ,EAAE,GAAG,cAAc,IAAI,GAAG,WAAW,KAAK,aAAa,EAAE,CAAC,EAAE;AAC3G;AAEA,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM,WAAW,WAAW;AAC9B,CAAC;AAEM,IAAM,mBAAmB,cAAc;AAAA,EAC5C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAKf;AAAA,EACA,MAAM;AAAA,EACN,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,eAAe,WAAW,IAAI,GAAG,WAAW,MAAM;AAAA,MACtD;AAAA,IACF,CAAC;AAAA,EACH;AACF,CAAC;AAED,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM,WAAW,WAAW;AAC9B,CAAC;AAEM,IAAM,mBAAmB,cAAc;AAAA,EAC5C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAKf;AAAA,EACA,MAAM;AAAA,EACN,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM;AAAA,MACJ,EAAE,MAAM,aAAa,QAAQ,cAAc,MAAM,IAAI,GAAG,SAAS,QAAQ,cAAc,IAAI,CAAC,EAAE;AAAA,MAC9F;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAEM,IAAM,kBAAkB,cAAc,MAAM,SAAS,SAAS;AAC9D,IAAM,mBAAmB,cAAc,MAAM,UAAU,SAAS;AAChE,IAAM,oBAAoB,cAAc,MAAM,WAAW,SAAS;AAEzE,IAAM,eAAe;AAAA,EACnB,eAAe;AAAA,IACb,MAAM;AAAA,IACN,aAAa;AAAA,IACb,UAAU;AAAA,EACZ;AAAA,EACA,MAAM,EAAE,MAAM,UAAU,aAAa,oCAAoC,UAAU,KAAK;AAAA,EACxF,OAAO;AAAA,IACL,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,qBAAqB,EAAE,MAAM,UAAU,aAAa,oDAAoD;AAAA,EACxG,QAAQ,EAAE,MAAM,UAAU,aAAa,4BAA4B;AACrE;AAEO,SAAS,kBAAkB,MAAqC;AACrE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS,QAAQ;AAAA,MACf,QAAQ;AAAA,MACR,WAAW,KAAK,aAAa;AAAA,MAC7B,MAAM,KAAK;AAAA,MACX,OAAO,KAAK;AAAA,MACZ,kBAAkB,KAAK,mBAAmB;AAAA,MAC1C,QAAQ,SAAS,KAAK,MAAM;AAAA,IAC9B,CAAC;AAAA,EACH;AACF;AAEA,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM,WAAW,YAAY;AAC/B,CAAC;AAEM,IAAM,0BAA0B,cAAc;AAAA,EACnD,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA,EAIf;AAAA,EACA,MAAM;AAAA,EACN,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,eAAe,kBAAkB,IAAI,GAAG,SAAS;AAAA,EACzD;AACF,CAAC;","names":[]}