@koda-sl/baker-cli 0.387.0 → 0.389.0-dev.8065ad8f0

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 +1090 -211
  2. package/canvas/tiktok-captions-composition/index.html +5 -6
  3. package/canvas/tiktok-captions-composition/meta.json +5 -0
  4. package/dist/account-CLOKMTTC.js +49 -0
  5. package/dist/account-CLOKMTTC.js.map +1 -0
  6. package/dist/account-V5Y2QHAK.js +79 -0
  7. package/dist/account-V5Y2QHAK.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-S5VXX2QU.js +218 -0
  11. package/dist/account-reads-S5VXX2QU.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-LOJ4WLIX.js +77 -0
  19. package/dist/accounts-LOJ4WLIX.js.map +1 -0
  20. package/dist/accounts-RYBDLQ6H.js +75 -0
  21. package/dist/accounts-RYBDLQ6H.js.map +1 -0
  22. package/dist/accounts-UO4XBWM2.js +611 -0
  23. package/dist/accounts-UO4XBWM2.js.map +1 -0
  24. package/dist/actions-3AW3R63U.js +55 -0
  25. package/dist/actions-3AW3R63U.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-43DUOVNR.js +104 -0
  37. package/dist/add-43DUOVNR.js.map +1 -0
  38. package/dist/add-IE5WDELB.js +302 -0
  39. package/dist/add-IE5WDELB.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-MALHYD2D.js +40 -0
  51. package/dist/ads-MALHYD2D.js.map +1 -0
  52. package/dist/ads-XZCMSPM5.js +113 -0
  53. package/dist/ads-XZCMSPM5.js.map +1 -0
  54. package/dist/adsets-AKR75THA.js +176 -0
  55. package/dist/adsets-AKR75THA.js.map +1 -0
  56. package/dist/advertisers-52FMMBTQ.js +120 -0
  57. package/dist/advertisers-52FMMBTQ.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-JPDBKETM.js +1980 -0
  61. package/dist/analytics-JPDBKETM.js.map +1 -0
  62. package/dist/analytics-YVQ6H4BG.js +433 -0
  63. package/dist/analytics-YVQ6H4BG.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-66NTWTR2.js +77 -0
  67. package/dist/assign-66NTWTR2.js.map +1 -0
  68. package/dist/audience-size-LVQJWQAS.js +94 -0
  69. package/dist/audience-size-LVQJWQAS.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-NYGMBGQ3.js +79 -0
  75. package/dist/audiences-NYGMBGQ3.js.map +1 -0
  76. package/dist/audit-UIPMTI5C.js +88 -0
  77. package/dist/audit-UIPMTI5C.js.map +1 -0
  78. package/dist/audit-XGN2OFLN.js +151 -0
  79. package/dist/audit-XGN2OFLN.js.map +1 -0
  80. package/dist/autocomplete-LVPDV3JE.js +111 -0
  81. package/dist/autocomplete-LVPDV3JE.js.map +1 -0
  82. package/dist/avatars-S6NSLMJK.js +38 -0
  83. package/dist/avatars-S6NSLMJK.js.map +1 -0
  84. package/dist/bid-pricing-2LYULXU2.js +99 -0
  85. package/dist/bid-pricing-2LYULXU2.js.map +1 -0
  86. package/dist/brand-WWHUZ72R.js +22 -0
  87. package/dist/brand-WWHUZ72R.js.map +1 -0
  88. package/dist/brief-XY3TFWBC.js +492 -0
  89. package/dist/brief-XY3TFWBC.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-N4TZ2F3L.js +95 -0
  93. package/dist/campaign-groups-N4TZ2F3L.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-7YFRQIQT.js +165 -0
  97. package/dist/campaign-writes-7YFRQIQT.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-L43ZUKAI.js +107 -0
  101. package/dist/campaigns-L43ZUKAI.js.map +1 -0
  102. package/dist/campaigns-OD7Z332M.js +109 -0
  103. package/dist/campaigns-OD7Z332M.js.map +1 -0
  104. package/dist/campaigns-R4DXIR2Q.js +110 -0
  105. package/dist/campaigns-R4DXIR2Q.js.map +1 -0
  106. package/dist/canvas-J7SLIVL7.js +46 -0
  107. package/dist/canvas-J7SLIVL7.js.map +1 -0
  108. package/dist/capabilities-FVTZAFPV.js +144 -0
  109. package/dist/capabilities-FVTZAFPV.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-7ZIGNUW6.js +135 -0
  117. package/dist/changes-7ZIGNUW6.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-E7DBRHBF.js +262 -0
  121. package/dist/chats-E7DBRHBF.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-2HCI5BXB.js +479 -0
  125. package/dist/chunk-2HCI5BXB.js.map +1 -0
  126. package/dist/chunk-2SQJL7ZN.js +56 -0
  127. package/dist/chunk-2SQJL7ZN.js.map +1 -0
  128. package/dist/chunk-2Y5V23PU.js +29 -0
  129. package/dist/chunk-2Y5V23PU.js.map +1 -0
  130. package/dist/chunk-32CPGJPL.js +149 -0
  131. package/dist/chunk-32CPGJPL.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-3CIXGQJS.js +150 -0
  135. package/dist/chunk-3CIXGQJS.js.map +1 -0
  136. package/dist/chunk-3U7TDBIB.js +275 -0
  137. package/dist/chunk-3U7TDBIB.js.map +1 -0
  138. package/dist/chunk-3UDSYYND.js +42 -0
  139. package/dist/chunk-3UDSYYND.js.map +1 -0
  140. package/dist/chunk-3ZWWXAQZ.js +150 -0
  141. package/dist/chunk-3ZWWXAQZ.js.map +1 -0
  142. package/dist/chunk-4MH6LONO.js +274 -0
  143. package/dist/chunk-4MH6LONO.js.map +1 -0
  144. package/dist/chunk-4NZ47VXO.js +137 -0
  145. package/dist/chunk-4NZ47VXO.js.map +1 -0
  146. package/dist/chunk-564AEU2Q.js +541 -0
  147. package/dist/chunk-564AEU2Q.js.map +1 -0
  148. package/dist/chunk-5HYSKH77.js +315 -0
  149. package/dist/chunk-5HYSKH77.js.map +1 -0
  150. package/dist/chunk-5MBPIONY.js +29 -0
  151. package/dist/chunk-5MBPIONY.js.map +1 -0
  152. package/dist/chunk-5OVOLYY3.js +74 -0
  153. package/dist/chunk-5OVOLYY3.js.map +1 -0
  154. package/dist/chunk-66USKCVY.js +4410 -0
  155. package/dist/chunk-66USKCVY.js.map +1 -0
  156. package/dist/chunk-6I7SYEYN.js +166 -0
  157. package/dist/chunk-6I7SYEYN.js.map +1 -0
  158. package/dist/chunk-6O7ISBC7.js +65 -0
  159. package/dist/chunk-6O7ISBC7.js.map +1 -0
  160. package/dist/chunk-752S7JF6.js +35 -0
  161. package/dist/chunk-752S7JF6.js.map +1 -0
  162. package/dist/chunk-77DN7R35.js +228 -0
  163. package/dist/chunk-77DN7R35.js.map +1 -0
  164. package/dist/chunk-7F7MFMLI.js +175 -0
  165. package/dist/chunk-7F7MFMLI.js.map +1 -0
  166. package/dist/chunk-7THBBTJJ.js +183 -0
  167. package/dist/chunk-7THBBTJJ.js.map +1 -0
  168. package/dist/chunk-7XU3HKMX.js +1599 -0
  169. package/dist/chunk-7XU3HKMX.js.map +1 -0
  170. package/dist/chunk-A2CBZLQ6.js +111 -0
  171. package/dist/chunk-A2CBZLQ6.js.map +1 -0
  172. package/dist/chunk-AFJGYJ7Z.js +45 -0
  173. package/dist/chunk-AFJGYJ7Z.js.map +1 -0
  174. package/dist/chunk-AR7PU7BB.js +76 -0
  175. package/dist/chunk-AR7PU7BB.js.map +1 -0
  176. package/dist/chunk-ASL7JFBD.js +96 -0
  177. package/dist/chunk-ASL7JFBD.js.map +1 -0
  178. package/dist/chunk-AUSKKFVH.js +84 -0
  179. package/dist/chunk-AUSKKFVH.js.map +1 -0
  180. package/dist/chunk-B52DCYL2.js +159 -0
  181. package/dist/chunk-B52DCYL2.js.map +1 -0
  182. package/dist/{chunk-XHC4LMK4.js → chunk-BVM5IRZW.js} +16 -8
  183. package/dist/chunk-BVM5IRZW.js.map +1 -0
  184. package/dist/chunk-CAMX6OHF.js +3182 -0
  185. package/dist/chunk-CAMX6OHF.js.map +1 -0
  186. package/dist/chunk-CYBLKMXQ.js +310 -0
  187. package/dist/chunk-CYBLKMXQ.js.map +1 -0
  188. package/dist/chunk-CZENWCBS.js +333 -0
  189. package/dist/chunk-CZENWCBS.js.map +1 -0
  190. package/dist/chunk-D5FY4FAK.js +24 -0
  191. package/dist/chunk-D5FY4FAK.js.map +1 -0
  192. package/dist/chunk-DGCUPJZD.js +39 -0
  193. package/dist/chunk-DGCUPJZD.js.map +1 -0
  194. package/dist/chunk-DNCLWSHO.js +41 -0
  195. package/dist/chunk-DNCLWSHO.js.map +1 -0
  196. package/dist/chunk-DX4GIDO7.js +296 -0
  197. package/dist/chunk-DX4GIDO7.js.map +1 -0
  198. package/dist/chunk-EDLZGTGN.js +216 -0
  199. package/dist/chunk-EDLZGTGN.js.map +1 -0
  200. package/dist/chunk-EDNKALM6.js +304 -0
  201. package/dist/chunk-EDNKALM6.js.map +1 -0
  202. package/dist/chunk-EDNX3AOS.js +76 -0
  203. package/dist/chunk-EDNX3AOS.js.map +1 -0
  204. package/dist/chunk-EF5DP6EB.js +52 -0
  205. package/dist/chunk-EF5DP6EB.js.map +1 -0
  206. package/dist/chunk-ERSX3MKH.js +34 -0
  207. package/dist/chunk-ERSX3MKH.js.map +1 -0
  208. package/dist/chunk-F3IJSR7O.js +346 -0
  209. package/dist/chunk-F3IJSR7O.js.map +1 -0
  210. package/dist/chunk-FKOECEVC.js +126 -0
  211. package/dist/chunk-FKOECEVC.js.map +1 -0
  212. package/dist/chunk-FWT55B3O.js +509 -0
  213. package/dist/chunk-FWT55B3O.js.map +1 -0
  214. package/dist/chunk-FYWWTMXP.js +2902 -0
  215. package/dist/chunk-FYWWTMXP.js.map +1 -0
  216. package/dist/chunk-FZGCAW46.js +64 -0
  217. package/dist/chunk-FZGCAW46.js.map +1 -0
  218. package/dist/chunk-G7AFVTUS.js +106 -0
  219. package/dist/chunk-G7AFVTUS.js.map +1 -0
  220. package/dist/chunk-GIW7ABMM.js +74 -0
  221. package/dist/chunk-GIW7ABMM.js.map +1 -0
  222. package/dist/chunk-GIWHHCD6.js +145 -0
  223. package/dist/chunk-GIWHHCD6.js.map +1 -0
  224. package/dist/chunk-GRQ2AXDX.js +9 -0
  225. package/dist/chunk-GRQ2AXDX.js.map +1 -0
  226. package/dist/chunk-GXDLWBOY.js +73 -0
  227. package/dist/chunk-GXDLWBOY.js.map +1 -0
  228. package/dist/chunk-GYABNLWW.js +629 -0
  229. package/dist/chunk-GYABNLWW.js.map +1 -0
  230. package/dist/chunk-H7MLHG2I.js +94 -0
  231. package/dist/chunk-H7MLHG2I.js.map +1 -0
  232. package/dist/chunk-H7XVKLIY.js +206 -0
  233. package/dist/chunk-H7XVKLIY.js.map +1 -0
  234. package/dist/chunk-HAE4WWFQ.js +455 -0
  235. package/dist/chunk-HAE4WWFQ.js.map +1 -0
  236. package/dist/chunk-HDHWIEJJ.js +136 -0
  237. package/dist/chunk-HDHWIEJJ.js.map +1 -0
  238. package/dist/chunk-HJTIBTF7.js +98 -0
  239. package/dist/chunk-HJTIBTF7.js.map +1 -0
  240. package/dist/{chunk-VZEDAFAR.js → chunk-HLXWKMTK.js} +47 -8
  241. package/dist/chunk-HLXWKMTK.js.map +1 -0
  242. package/dist/{chunk-MF7YA62W.js → chunk-HREWXNTO.js} +10 -5
  243. package/dist/chunk-HREWXNTO.js.map +1 -0
  244. package/dist/chunk-HYXKRNRV.js +176 -0
  245. package/dist/chunk-HYXKRNRV.js.map +1 -0
  246. package/dist/chunk-I3DIZWN5.js +97 -0
  247. package/dist/chunk-I3DIZWN5.js.map +1 -0
  248. package/dist/chunk-IJMWEO4P.js +57 -0
  249. package/dist/chunk-IJMWEO4P.js.map +1 -0
  250. package/dist/chunk-IOCSDFF2.js +23992 -0
  251. package/dist/chunk-IOCSDFF2.js.map +1 -0
  252. package/dist/chunk-IVIJJXXT.js +62 -0
  253. package/dist/chunk-IVIJJXXT.js.map +1 -0
  254. package/dist/chunk-J57GWTPK.js +106 -0
  255. package/dist/chunk-J57GWTPK.js.map +1 -0
  256. package/dist/chunk-JPK34QPS.js +134 -0
  257. package/dist/chunk-JPK34QPS.js.map +1 -0
  258. package/dist/chunk-JRCFCIE3.js +188 -0
  259. package/dist/chunk-JRCFCIE3.js.map +1 -0
  260. package/dist/chunk-JUAIGJ2A.js +76 -0
  261. package/dist/chunk-JUAIGJ2A.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-KBS5GH4T.js +1626 -0
  265. package/dist/chunk-KBS5GH4T.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-KXGG6EQM.js +382 -0
  273. package/dist/chunk-KXGG6EQM.js.map +1 -0
  274. package/dist/chunk-KXRKPZZY.js +169 -0
  275. package/dist/chunk-KXRKPZZY.js.map +1 -0
  276. package/dist/chunk-KZUHRZ2C.js +5187 -0
  277. package/dist/chunk-KZUHRZ2C.js.map +1 -0
  278. package/dist/chunk-L45A3IYV.js +1079 -0
  279. package/dist/chunk-L45A3IYV.js.map +1 -0
  280. package/dist/chunk-LA6PPSNA.js +65 -0
  281. package/dist/chunk-LA6PPSNA.js.map +1 -0
  282. package/dist/chunk-LEIQAHWF.js +25 -0
  283. package/dist/chunk-LEIQAHWF.js.map +1 -0
  284. package/dist/chunk-LERWCRY5.js +297 -0
  285. package/dist/chunk-LERWCRY5.js.map +1 -0
  286. package/dist/chunk-LLPFY3NI.js +207 -0
  287. package/dist/chunk-LLPFY3NI.js.map +1 -0
  288. package/dist/chunk-M6UNISGO.js +66 -0
  289. package/dist/chunk-M6UNISGO.js.map +1 -0
  290. package/dist/chunk-MDATIJPM.js +92 -0
  291. package/dist/chunk-MDATIJPM.js.map +1 -0
  292. package/dist/chunk-MGKHFGLV.js +75 -0
  293. package/dist/chunk-MGKHFGLV.js.map +1 -0
  294. package/dist/chunk-MZWC6HHA.js +455 -0
  295. package/dist/chunk-MZWC6HHA.js.map +1 -0
  296. package/dist/chunk-N3XJ434P.js +197 -0
  297. package/dist/chunk-N3XJ434P.js.map +1 -0
  298. package/dist/chunk-NFSLRRIE.js +77 -0
  299. package/dist/chunk-NFSLRRIE.js.map +1 -0
  300. package/dist/chunk-NHU33T2S.js +60 -0
  301. package/dist/chunk-NHU33T2S.js.map +1 -0
  302. package/dist/chunk-NJEZM4OB.js +51 -0
  303. package/dist/chunk-NJEZM4OB.js.map +1 -0
  304. package/dist/chunk-O6QKCJE4.js +455 -0
  305. package/dist/chunk-O6QKCJE4.js.map +1 -0
  306. package/dist/chunk-OFFAMC5H.js +225 -0
  307. package/dist/chunk-OFFAMC5H.js.map +1 -0
  308. package/dist/chunk-OHGTCFFE.js +57 -0
  309. package/dist/chunk-OHGTCFFE.js.map +1 -0
  310. package/dist/chunk-P4NSJS54.js +20 -0
  311. package/dist/chunk-P4NSJS54.js.map +1 -0
  312. package/dist/chunk-P5T7OZKV.js +26 -0
  313. package/dist/chunk-P5T7OZKV.js.map +1 -0
  314. package/dist/chunk-PFBQERWX.js +10 -0
  315. package/dist/chunk-PFBQERWX.js.map +1 -0
  316. package/dist/chunk-PUPEGICD.js +103 -0
  317. package/dist/chunk-PUPEGICD.js.map +1 -0
  318. package/dist/chunk-Q6ULQMWG.js +41 -0
  319. package/dist/chunk-Q6ULQMWG.js.map +1 -0
  320. package/dist/chunk-QO23YHLK.js +84 -0
  321. package/dist/chunk-QO23YHLK.js.map +1 -0
  322. package/dist/chunk-QSGIWV4P.js +337 -0
  323. package/dist/chunk-QSGIWV4P.js.map +1 -0
  324. package/dist/chunk-R4Y5P3PB.js +19 -0
  325. package/dist/chunk-R4Y5P3PB.js.map +1 -0
  326. package/dist/chunk-R5OQM7FF.js +179 -0
  327. package/dist/chunk-R5OQM7FF.js.map +1 -0
  328. package/dist/chunk-RODLBWIR.js +592 -0
  329. package/dist/chunk-RODLBWIR.js.map +1 -0
  330. package/dist/chunk-RY7TYEIX.js +504 -0
  331. package/dist/chunk-RY7TYEIX.js.map +1 -0
  332. package/dist/chunk-S4LZ7KTG.js +160 -0
  333. package/dist/chunk-S4LZ7KTG.js.map +1 -0
  334. package/dist/chunk-SHTESUB6.js +1442 -0
  335. package/dist/chunk-SHTESUB6.js.map +1 -0
  336. package/dist/chunk-SJH4EOZH.js +23 -0
  337. package/dist/chunk-SJH4EOZH.js.map +1 -0
  338. package/dist/chunk-SMIENBNX.js +6212 -0
  339. package/dist/chunk-SMIENBNX.js.map +1 -0
  340. package/dist/chunk-T7GT22KA.js +494 -0
  341. package/dist/chunk-T7GT22KA.js.map +1 -0
  342. package/dist/chunk-T7M4WFNV.js +172 -0
  343. package/dist/chunk-T7M4WFNV.js.map +1 -0
  344. package/dist/chunk-TIFVHGQL.js +6683 -0
  345. package/dist/chunk-TIFVHGQL.js.map +1 -0
  346. package/dist/chunk-TMIDUSOR.js +665 -0
  347. package/dist/chunk-TMIDUSOR.js.map +1 -0
  348. package/dist/{chunk-WLDM2TRF.js → chunk-TPXI2GCW.js} +4 -4
  349. package/dist/chunk-U6VRBDNQ.js +1830 -0
  350. package/dist/chunk-U6VRBDNQ.js.map +1 -0
  351. package/dist/chunk-U7BBXM67.js +1743 -0
  352. package/dist/chunk-U7BBXM67.js.map +1 -0
  353. package/dist/chunk-UI6BKYQD.js +225 -0
  354. package/dist/chunk-UI6BKYQD.js.map +1 -0
  355. package/dist/chunk-UOI5S62H.js +846 -0
  356. package/dist/chunk-UOI5S62H.js.map +1 -0
  357. package/dist/chunk-USL5ARRE.js +26 -0
  358. package/dist/chunk-USL5ARRE.js.map +1 -0
  359. package/dist/chunk-UYC45JNS.js +139 -0
  360. package/dist/chunk-UYC45JNS.js.map +1 -0
  361. package/dist/chunk-VNKVBY54.js +363 -0
  362. package/dist/chunk-VNKVBY54.js.map +1 -0
  363. package/dist/chunk-VS4C7VAR.js +533 -0
  364. package/dist/chunk-VS4C7VAR.js.map +1 -0
  365. package/dist/chunk-VZMDYVNS.js +3151 -0
  366. package/dist/chunk-VZMDYVNS.js.map +1 -0
  367. package/dist/chunk-W4W4ZRBP.js +191 -0
  368. package/dist/chunk-W4W4ZRBP.js.map +1 -0
  369. package/dist/chunk-WN4KX7GE.js +25 -0
  370. package/dist/chunk-WN4KX7GE.js.map +1 -0
  371. package/dist/chunk-WNFTXSGR.js +111 -0
  372. package/dist/chunk-WNFTXSGR.js.map +1 -0
  373. package/dist/chunk-WOTDHRNF.js +2109 -0
  374. package/dist/chunk-WOTDHRNF.js.map +1 -0
  375. package/dist/chunk-XGWKTYXQ.js +67 -0
  376. package/dist/chunk-XGWKTYXQ.js.map +1 -0
  377. package/dist/chunk-XIGIJJSF.js +66 -0
  378. package/dist/chunk-XIGIJJSF.js.map +1 -0
  379. package/dist/chunk-XNUXB63I.js +817 -0
  380. package/dist/chunk-XNUXB63I.js.map +1 -0
  381. package/dist/chunk-XQ3CCNJD.js +610 -0
  382. package/dist/chunk-XQ3CCNJD.js.map +1 -0
  383. package/dist/chunk-XX6ZMCY5.js +4227 -0
  384. package/dist/chunk-XX6ZMCY5.js.map +1 -0
  385. package/dist/chunk-Y362QH54.js +98 -0
  386. package/dist/chunk-Y362QH54.js.map +1 -0
  387. package/dist/chunk-Y4T6ATDQ.js +74 -0
  388. package/dist/chunk-Y4T6ATDQ.js.map +1 -0
  389. package/dist/chunk-YQSBHWOI.js +41 -0
  390. package/dist/chunk-YU26SDNT.js +46 -0
  391. package/dist/chunk-YU26SDNT.js.map +1 -0
  392. package/dist/chunk-YULENNA7.js +501 -0
  393. package/dist/chunk-YULENNA7.js.map +1 -0
  394. package/dist/chunk-Z3ENMCFE.js +94 -0
  395. package/dist/chunk-Z3ENMCFE.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-LF6VQ7OR.js +197 -0
  403. package/dist/claim-LF6VQ7OR.js.map +1 -0
  404. package/dist/cli.js +104 -70041
  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-6HSK5BLK.js +195 -0
  410. package/dist/companies-6HSK5BLK.js.map +1 -0
  411. package/dist/complete-2PUAFQEC.js +81 -0
  412. package/dist/complete-2PUAFQEC.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-RXPMAJQI.js +42 -0
  416. package/dist/content-UYZC4AKN.js +85 -0
  417. package/dist/content-UYZC4AKN.js.map +1 -0
  418. package/dist/conversation-Y3NB2VDI.js +93 -0
  419. package/dist/conversation-Y3NB2VDI.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-YP4DGTPP.js +438 -0
  423. package/dist/conversion-upload-command-YP4DGTPP.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-K7C32DPW.js +135 -0
  427. package/dist/conversions-K7C32DPW.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-AJ4KPSJ4.js +59 -0
  433. package/dist/create-AJ4KPSJ4.js.map +1 -0
  434. package/dist/create-ALKOAD5J.js +138 -0
  435. package/dist/create-ALKOAD5J.js.map +1 -0
  436. package/dist/create-HTKZMXKB.js +207 -0
  437. package/dist/create-HTKZMXKB.js.map +1 -0
  438. package/dist/create-TZMAOFBR.js +236 -0
  439. package/dist/create-TZMAOFBR.js.map +1 -0
  440. package/dist/creatives-MBTZTIAA.js +51 -0
  441. package/dist/creatives-MBTZTIAA.js.map +1 -0
  442. package/dist/creatives-OZHVU4WB.js +182 -0
  443. package/dist/creatives-OZHVU4WB.js.map +1 -0
  444. package/dist/creatives-VMGY5SU4.js +87 -0
  445. package/dist/creatives-VMGY5SU4.js.map +1 -0
  446. package/dist/credentials-FY4UH6TF.js +287 -0
  447. package/dist/credentials-FY4UH6TF.js.map +1 -0
  448. package/dist/critique-2UTP4DR3.js +216 -0
  449. package/dist/critique-2UTP4DR3.js.map +1 -0
  450. package/dist/critique-B3H7QFM2.js +1449 -0
  451. package/dist/critique-B3H7QFM2.js.map +1 -0
  452. package/dist/crm-2IBLUHDB.js +318 -0
  453. package/dist/crm-2IBLUHDB.js.map +1 -0
  454. package/dist/crm-YMYO4U53.js +224 -0
  455. package/dist/crm-YMYO4U53.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-S6KWZSZ6.js +88 -0
  459. package/dist/currency-S6KWZSZ6.js.map +1 -0
  460. package/dist/custom-conversions-FABS6YVT.js +125 -0
  461. package/dist/custom-conversions-FABS6YVT.js.map +1 -0
  462. package/dist/customers-P6LLLJHK.js +56 -0
  463. package/dist/decide-YTHCBKM6.js +199 -0
  464. package/dist/decide-YTHCBKM6.js.map +1 -0
  465. package/dist/delete-B2TDEW7H.js +63 -0
  466. package/dist/delete-B2TDEW7H.js.map +1 -0
  467. package/dist/delete-DZUDLYPC.js +69 -0
  468. package/dist/delete-DZUDLYPC.js.map +1 -0
  469. package/dist/delete-NZGZP4YP.js +71 -0
  470. package/dist/delete-NZGZP4YP.js.map +1 -0
  471. package/dist/delete-SDOZNDWQ.js +54 -0
  472. package/dist/delete-SDOZNDWQ.js.map +1 -0
  473. package/dist/delete-VQMU56OH.js +71 -0
  474. package/dist/delete-VQMU56OH.js.map +1 -0
  475. package/dist/delete-WKQPMVAM.js +66 -0
  476. package/dist/delete-WKQPMVAM.js.map +1 -0
  477. package/dist/demographics-Q3DCXULY.js +138 -0
  478. package/dist/demographics-Q3DCXULY.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-NEZM5CHF.js +66 -0
  486. package/dist/discard-NEZM5CHF.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-6K3IOYXR.js +172 -0
  490. package/dist/discover-6K3IOYXR.js.map +1 -0
  491. package/dist/domain-7Y256IDR.js +98 -0
  492. package/dist/domain-7Y256IDR.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-F6TUGXAY.js +307 -0
  498. package/dist/draft-F6TUGXAY.js.map +1 -0
  499. package/dist/draft-KLULNBWP.js +233 -0
  500. package/dist/draft-KLULNBWP.js.map +1 -0
  501. package/dist/draft-LY5ZPF73.js +217 -0
  502. package/dist/draft-LY5ZPF73.js.map +1 -0
  503. package/dist/draft-M4ZHDQ46.js +306 -0
  504. package/dist/draft-M4ZHDQ46.js.map +1 -0
  505. package/dist/draft-MI7RWY2K.js +100 -0
  506. package/dist/draft-MI7RWY2K.js.map +1 -0
  507. package/dist/draft-P4IVYTY3.js +103 -0
  508. package/dist/draft-P4IVYTY3.js.map +1 -0
  509. package/dist/draft-QQMCVDDS.js +328 -0
  510. package/dist/draft-QQMCVDDS.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-7MBSM7BP.js +114 -0
  522. package/dist/facets-7MBSM7BP.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-PLMFRAQW.js +66 -0
  528. package/dist/feedback-PLMFRAQW.js.map +1 -0
  529. package/dist/feedback-record-QEHHGVYC.js +177 -0
  530. package/dist/feedback-record-QEHHGVYC.js.map +1 -0
  531. package/dist/fetch-QE3EB756.js +176 -0
  532. package/dist/fetch-QE3EB756.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-C67KEMDU.js +247 -0
  540. package/dist/flows-C67KEMDU.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-UR7XZ5XZ.js +34 -0
  548. package/dist/fonts-UR7XZ5XZ.js.map +1 -0
  549. package/dist/forecast-3F4SZNAK.js +104 -0
  550. package/dist/forecast-3F4SZNAK.js.map +1 -0
  551. package/dist/forecast-K5E7CTKX.js +168 -0
  552. package/dist/forecast-K5E7CTKX.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-2PPEPAMY.js +394 -0
  556. package/dist/funnel-2PPEPAMY.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-AZARFR6O.js +61 -0
  566. package/dist/get-AZARFR6O.js.map +1 -0
  567. package/dist/get-BPMEHRUG.js +56 -0
  568. package/dist/get-BPMEHRUG.js.map +1 -0
  569. package/dist/get-MQ6MMIZ7.js +78 -0
  570. package/dist/get-MQ6MMIZ7.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-X2AQR3RB.js +3190 -0
  580. package/dist/google-X2AQR3RB.js.map +1 -0
  581. package/dist/google-ads-PWX7OF5Z.js +195 -0
  582. package/dist/google-ads-PWX7OF5Z.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-XI5ABCFO.js +133 -0
  592. package/dist/history-XI5ABCFO.js.map +1 -0
  593. package/dist/hubspot-AVUOILRE.js +779 -0
  594. package/dist/hubspot-AVUOILRE.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-L3SZSIZP.js +35 -0
  598. package/dist/ideas-L3SZSIZP.js.map +1 -0
  599. package/dist/images-CD53I2W5.js +90 -0
  600. package/dist/images-CD53I2W5.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-KRJOYTCQ.js +107 -0
  604. package/dist/ingest-KRJOYTCQ.js.map +1 -0
  605. package/dist/ingest-WE3SPPND.js +23 -0
  606. package/dist/ingest-WE3SPPND.js.map +1 -0
  607. package/dist/insights-PELVD4RY.js +122 -0
  608. package/dist/insights-PELVD4RY.js.map +1 -0
  609. package/dist/insights-XCA4BUJW.js +423 -0
  610. package/dist/insights-XCA4BUJW.js.map +1 -0
  611. package/dist/inspect-QKETG5UJ.js +189 -0
  612. package/dist/inspect-QKETG5UJ.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-YJOJGNVJ.js +95 -0
  616. package/dist/intent-YJOJGNVJ.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-QU7O7UKC.js +130 -0
  626. package/dist/keyword-gap-QU7O7UKC.js.map +1 -0
  627. package/dist/keyword-metrics-HLCM3QU7.js +197 -0
  628. package/dist/keyword-metrics-HLCM3QU7.js.map +1 -0
  629. package/dist/keywords-for-site-BDKPQKWB.js +128 -0
  630. package/dist/keywords-for-site-BDKPQKWB.js.map +1 -0
  631. package/dist/landing-4K6XYNFM.js +28 -0
  632. package/dist/landing-4K6XYNFM.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-P3ZM6R2A.js +40 -0
  636. package/dist/languages-P3ZM6R2A.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-GDF4S2AM.js +90 -0
  644. package/dist/leads-GDF4S2AM.js.map +1 -0
  645. package/dist/leads-TPB5OFSQ.js +293 -0
  646. package/dist/leads-TPB5OFSQ.js.map +1 -0
  647. package/dist/learn-NMFEA5H5.js +203 -0
  648. package/dist/learn-NMFEA5H5.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-O6SSS5NQ.js +208 -0
  654. package/dist/line-item-writes-O6SSS5NQ.js.map +1 -0
  655. package/dist/line-items-ZZAKH3YZ.js +103 -0
  656. package/dist/line-items-ZZAKH3YZ.js.map +1 -0
  657. package/dist/link-CRY57R3E.js +64 -0
  658. package/dist/link-CRY57R3E.js.map +1 -0
  659. package/dist/linkedin-WC7LGYPP.js +1008 -0
  660. package/dist/linkedin-WC7LGYPP.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-CWAKX5TH.js +63 -0
  666. package/dist/list-CWAKX5TH.js.map +1 -0
  667. package/dist/list-FJ5FSVL6.js +151 -0
  668. package/dist/list-FJ5FSVL6.js.map +1 -0
  669. package/dist/list-GTOSN7DP.js +50 -0
  670. package/dist/list-GTOSN7DP.js.map +1 -0
  671. package/dist/list-HLJP4NVE.js +51 -0
  672. package/dist/list-HLJP4NVE.js.map +1 -0
  673. package/dist/list-LCUPF7EF.js +76 -0
  674. package/dist/list-LCUPF7EF.js.map +1 -0
  675. package/dist/list-NH4ZRZTL.js +303 -0
  676. package/dist/list-NH4ZRZTL.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-LVVDOSXO.js +40 -0
  680. package/dist/locations-LVVDOSXO.js.map +1 -0
  681. package/dist/log-6JOWOY5G.js +92 -0
  682. package/dist/log-6JOWOY5G.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-N3WZ6OSS.js +640 -0
  688. package/dist/make-N3WZ6OSS.js.map +1 -0
  689. package/dist/map-4KOYFHAN.js +404 -0
  690. package/dist/map-4KOYFHAN.js.map +1 -0
  691. package/dist/mcp-LSS2DHYL.js +463 -0
  692. package/dist/mcp-LSS2DHYL.js.map +1 -0
  693. package/dist/media-JBCN6V4X.js +15 -0
  694. package/dist/media-JBCN6V4X.js.map +1 -0
  695. package/dist/media-RAGEJTZX.js +89 -0
  696. package/dist/media-RAGEJTZX.js.map +1 -0
  697. package/dist/media-sources-GSPAV7HT.js +32 -0
  698. package/dist/media-sources-GSPAV7HT.js.map +1 -0
  699. package/dist/members-GUUVEK2Y.js +44 -0
  700. package/dist/members-GUUVEK2Y.js.map +1 -0
  701. package/dist/meta-Z37ZR3PJ.js +69 -0
  702. package/dist/meta-Z37ZR3PJ.js.map +1 -0
  703. package/dist/metrics-KW6SDULI.js +152 -0
  704. package/dist/metrics-KW6SDULI.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-EUDI5HEM.js +141 -0
  710. package/dist/normalize-EUDI5HEM.js.map +1 -0
  711. package/dist/options-P4PPJQH4.js +121 -0
  712. package/dist/options-P4PPJQH4.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-A66LYIZX.js +24 -0
  720. package/dist/performance-A66LYIZX.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-5ROBOQG7.js +169 -0
  730. package/dist/preview-5ROBOQG7.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-AEOUK2LK.js +180 -0
  734. package/dist/promoted-tweet-writes-AEOUK2LK.js.map +1 -0
  735. package/dist/promoted-tweets-L2CEC2BJ.js +119 -0
  736. package/dist/promoted-tweets-L2CEC2BJ.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-KHNR5ARF.js +322 -0
  740. package/dist/publish-KHNR5ARF.js.map +1 -0
  741. package/dist/query-A34J7BGX.js +61 -0
  742. package/dist/query-A34J7BGX.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-5NPFULGD.js +26 -0
  752. package/dist/reddit-5NPFULGD.js.map +1 -0
  753. package/dist/refresh-FGXW4Y4X.js +94 -0
  754. package/dist/refresh-FGXW4Y4X.js.map +1 -0
  755. package/dist/release-OKZMC73N.js +60 -0
  756. package/dist/release-OKZMC73N.js.map +1 -0
  757. package/dist/relevant-pages-J76ZKNKF.js +99 -0
  758. package/dist/relevant-pages-J76ZKNKF.js.map +1 -0
  759. package/dist/remove-CA2J6ACH.js +50 -0
  760. package/dist/remove-CA2J6ACH.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-XPKSOE6O.js +63 -0
  764. package/dist/reopen-XPKSOE6O.js.map +1 -0
  765. package/dist/rerun-QA6ISKVO.js +86 -0
  766. package/dist/rerun-QA6ISKVO.js.map +1 -0
  767. package/dist/research-FZ63UZTE.js +62 -0
  768. package/dist/research-FZ63UZTE.js.map +1 -0
  769. package/dist/research-YGQQ6CNG.js +262 -0
  770. package/dist/research-YGQQ6CNG.js.map +1 -0
  771. package/dist/reset-BGPZ4HMA.js +54 -0
  772. package/dist/reset-BGPZ4HMA.js.map +1 -0
  773. package/dist/reset-HTD6LCIT.js +54 -0
  774. package/dist/reset-HTD6LCIT.js.map +1 -0
  775. package/dist/resolve-NRDZ6N2B.js +121 -0
  776. package/dist/resolve-NRDZ6N2B.js.map +1 -0
  777. package/dist/retry-PF4BGKJV.js +60 -0
  778. package/dist/retry-PF4BGKJV.js.map +1 -0
  779. package/dist/retry-XL26JDAV.js +62 -0
  780. package/dist/retry-XL26JDAV.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-3ZDGCCTH.js +61 -0
  784. package/dist/run-3ZDGCCTH.js.map +1 -0
  785. package/dist/run-EMJLI7LR.js +65 -0
  786. package/dist/run-EMJLI7LR.js.map +1 -0
  787. package/dist/scaffold-ad-QW75LLYR.js +1550 -0
  788. package/dist/scaffold-ad-QW75LLYR.js.map +1 -0
  789. package/dist/scaffold-static-ad-S3UOKLJ3.js +973 -0
  790. package/dist/scaffold-static-ad-S3UOKLJ3.js.map +1 -0
  791. package/dist/scaffold-video-3BJQOUAA.js +874 -0
  792. package/dist/scaffold-video-3BJQOUAA.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-PKPNSISL.js +61 -0
  796. package/dist/schedule-PKPNSISL.js.map +1 -0
  797. package/dist/scheduled-agents-LP5LITA3.js +49 -0
  798. package/dist/scheduled-agents-LP5LITA3.js.map +1 -0
  799. package/dist/schema-B6J6VPTO.js +132 -0
  800. package/dist/schema-B6J6VPTO.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-6WNUKCMP.js +174 -0
  812. package/dist/search-6WNUKCMP.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-2V6CHATD.js +96 -0
  822. package/dist/select-2V6CHATD.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-XGZXW63I.js +188 -0
  828. package/dist/set-prompt-XGZXW63I.js.map +1 -0
  829. package/dist/setup-links-6H5ONDCQ.js +141 -0
  830. package/dist/setup-links-6H5ONDCQ.js.map +1 -0
  831. package/dist/{shared-6762QE6R.js → shared-QAMP7FZV.js} +8 -6
  832. package/dist/shared-QAMP7FZV.js.map +1 -0
  833. package/dist/shopify-D3GNV5O6.js +3715 -0
  834. package/dist/shopify-D3GNV5O6.js.map +1 -0
  835. package/dist/site-TBPERLY3.js +177 -0
  836. package/dist/site-TBPERLY3.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-JFQKTK2L.js +421 -0
  844. package/dist/sources-JFQKTK2L.js.map +1 -0
  845. package/dist/sources-Q3I6DDV7.js +30 -0
  846. package/dist/sources-Q3I6DDV7.js.map +1 -0
  847. package/dist/stale-4SERZW2D.js +66 -0
  848. package/dist/stale-4SERZW2D.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-LIZWJYS4.js +62 -0
  852. package/dist/status-LIZWJYS4.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-ULKWDFXM.js +54 -0
  864. package/dist/sync-ULKWDFXM.js.map +1 -0
  865. package/dist/sync-definition-YTBLMLX2.js +55 -0
  866. package/dist/sync-definition-YTBLMLX2.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-4Q4I5GQJ.js +20 -0
  870. package/dist/tags-4Q4I5GQJ.js.map +1 -0
  871. package/dist/tags-AMEVAQZ4.js +26 -0
  872. package/dist/tags-AMEVAQZ4.js.map +1 -0
  873. package/dist/tags-DPLOLH3E.js +20 -0
  874. package/dist/tags-DPLOLH3E.js.map +1 -0
  875. package/dist/tags-LDHXONR3.js +224 -0
  876. package/dist/tags-LDHXONR3.js.map +1 -0
  877. package/dist/tags-UW3WJTAQ.js +20 -0
  878. package/dist/tags-UW3WJTAQ.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-BP6VJA7X.js +113 -0
  882. package/dist/targeting-criteria-BP6VJA7X.js.map +1 -0
  883. package/dist/targets-CQWO2UXD.js +102 -0
  884. package/dist/targets-CQWO2UXD.js.map +1 -0
  885. package/dist/templates-WZSTNRNZ.js +178 -0
  886. package/dist/templates-WZSTNRNZ.js.map +1 -0
  887. package/dist/testimonials-ETHSNWUH.js +32 -0
  888. package/dist/testimonials-ETHSNWUH.js.map +1 -0
  889. package/dist/themes-YU663LQH.js +94 -0
  890. package/dist/themes-YU663LQH.js.map +1 -0
  891. package/dist/top-companies-KTXHS472.js +108 -0
  892. package/dist/top-companies-KTXHS472.js.map +1 -0
  893. package/dist/translate-6QAJ5ZUU.js +600 -0
  894. package/dist/translate-6QAJ5ZUU.js.map +1 -0
  895. package/dist/triggers-4EDFLNGH.js +141 -0
  896. package/dist/triggers-4EDFLNGH.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-KY2OEKMD.js +67 -0
  902. package/dist/unlink-KY2OEKMD.js.map +1 -0
  903. package/dist/unstage-FHUG67RI.js +84 -0
  904. package/dist/unstage-FHUG67RI.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-27LGM65V.js +63 -0
  908. package/dist/update-27LGM65V.js.map +1 -0
  909. package/dist/update-AIY46I2Q.js +155 -0
  910. package/dist/update-AIY46I2Q.js.map +1 -0
  911. package/dist/update-QYD2XZFM.js +142 -0
  912. package/dist/update-QYD2XZFM.js.map +1 -0
  913. package/dist/update-W2OSRNFO.js +98 -0
  914. package/dist/update-W2OSRNFO.js.map +1 -0
  915. package/dist/upload-JGBTSKGH.js +126 -0
  916. package/dist/upload-JGBTSKGH.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-QHGA42RP.js +130 -0
  922. package/dist/url-options-QHGA42RP.js.map +1 -0
  923. package/dist/url-params-NWSUHWRE.js +98 -0
  924. package/dist/url-params-NWSUHWRE.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-DOQ6AI62.js +91 -0
  928. package/dist/validate-DOQ6AI62.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-DP3VCSYG.js +39 -0
  932. package/dist/videos-DP3VCSYG.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-AFUIWPFU.js +140 -0
  938. package/dist/web-AFUIWPFU.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-PCIJUYVA.js +84 -0
  942. package/dist/winning-ads-PCIJUYVA.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-N4FSGRVQ.js +743 -0
  948. package/dist/write-commands-N4FSGRVQ.js.map +1 -0
  949. package/dist/write-commands-Q4MQ3BGM.js +1015 -0
  950. package/dist/write-commands-Q4MQ3BGM.js.map +1 -0
  951. package/dist/x-AUOZJNWE.js +47 -0
  952. package/dist/x-AUOZJNWE.js.map +1 -0
  953. package/package.json +9 -2
  954. package/dist/chunk-FGHMWBUD.js +0 -9989
  955. package/dist/chunk-FGHMWBUD.js.map +0 -1
  956. package/dist/chunk-HJEMOSPH.js +0 -1292
  957. package/dist/chunk-HJEMOSPH.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-XHC4LMK4.js.map +0 -1
  961. package/dist/client-GR6YL3YX.js +0 -17
  962. package/dist/output-NMQXZF3Z.js +0 -18
  963. /package/dist/{chunk-WLDM2TRF.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-NMQXZF3Z.js.map → connect-RXPMAJQI.js.map} +0 -0
  967. /package/dist/{shared-6762QE6R.js.map → customers-P6LLLJHK.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/research/keyword-metrics.ts","../src/commands/research/keyword-metrics-rows.ts"],"sourcesContent":["import { RESEARCH_KEYWORD_METRICS_MAX_KEYWORDS, type ResearchKeywordMetricsRow } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { buildResearchQueryContext, warnDefaults } from \"../../geo-context.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { keywordMetricsHints } from \"./hints.ts\";\nimport { keywordMetricsFields, toOutputRow } from \"./keyword-metrics-rows.ts\";\nimport {\n handleResearchError,\n RESEARCH_DATA_NOTE,\n writeResearchHints,\n writeResearchJson,\n writeResearchOutput,\n} from \"./output.ts\";\n\nregisterSchema({\n command: \"research.keyword-metrics\",\n description:\n \"Search volume, CPC, top-of-page bids and competition for a list of keywords you name — no domain needed. This is the command for sizing a market you have keywords for; the domain-bound ones (keywords-for-site, keyword-gap) answer a different question and should not be used as a workaround for this one. The volume is Google's Keyword Planner figure resold by DataForSEO, so it is not a second opinion on `baker ads google keywords metrics` — for that, pass --clickstream. If --location and --language are omitted, defaults to United States (us) and English (en). The response includes a query_context object showing which location/language were used.\",\n args: {\n keywords: {\n type: \"string\",\n description: `Comma-separated keywords (max ${RESEARCH_KEYWORD_METRICS_MAX_KEYWORDS}, 80 chars each)`,\n required: true,\n },\n location: {\n type: \"string\",\n description:\n \"Country code (us, mx, br, es...) or DataForSEO location code. Defaults to us (United States) if omitted — always set this for non-US markets\",\n required: false,\n },\n language: {\n type: \"string\",\n description:\n \"Language code or name. Defaults to en (English) if omitted — always set this for non-English markets\",\n required: false,\n },\n clickstream: {\n type: \"boolean\",\n description:\n \"Also return DataForSEO's own panel-derived volume (clickstream_search_volume), the only genuinely independent estimate of demand available here. Costs 2x.\",\n required: false,\n },\n full: {\n type: \"boolean\",\n description: \"Add keyword difficulty, search intent and the 12-month volume trend to each row\",\n required: false,\n },\n \"no-cache\": { type: \"boolean\", description: \"Skip server cache, hit API directly\", required: false },\n },\n});\n\nexport const keywordMetricsCommand = defineCommand({\n meta: {\n name: \"keyword-metrics\",\n description: `Volume, CPC and competition for keywords you name. No domain required.\n\nNumbers are Keyword Planner ESTIMATES of total market volume, resold by DataForSEO — every column carrying one is named planner_. Pass --clickstream for DataForSEO's own independent estimate alongside.\n\nExamples:\n baker research keyword-metrics \"chatbot whatsapp,agente whatsapp ecommerce\" --location mx --language es\n baker research keyword-metrics \"chatbot whatsapp\" --location br --language pt --clickstream\n baker research keyword-metrics \"crm software,best crm\" --full --output md`,\n },\n args: {\n keywords: { type: \"positional\", description: \"Comma-separated keywords\", required: true },\n location: { type: \"string\", description: \"Country code or location code (default: us)\", required: false },\n language: { type: \"string\", description: \"Language code or name (default: en)\", required: false },\n clickstream: { type: \"boolean\", description: \"Add DataForSEO's own volume estimate (costs 2x)\", required: false },\n full: { type: \"boolean\", description: \"Add difficulty, intent and the 12-month trend\", required: false },\n output: { type: \"string\", description: \"Format: json|csv|md|jsonl\", required: false, default: \"json\" },\n \"no-cache\": { type: \"boolean\", description: \"Skip server cache, hit API directly\", required: false },\n },\n run: async ({ args }) => {\n const keywords = (args.keywords as string)\n .split(\",\")\n .map((k) => k.trim())\n .filter(Boolean);\n\n if (keywords.length === 0) {\n writeResearchJson({\n ok: false,\n error: { code: \"VALIDATION_ERROR\", message: \"Provide at least one keyword\" },\n });\n process.exit(1);\n }\n if (keywords.length > RESEARCH_KEYWORD_METRICS_MAX_KEYWORDS) {\n writeResearchJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: `Maximum ${RESEARCH_KEYWORD_METRICS_MAX_KEYWORDS} keywords per request`,\n fix: {\n action: \"retry_with_changes\",\n explanation: `You sent ${keywords.length}. Split the list into batches of ${RESEARCH_KEYWORD_METRICS_MAX_KEYWORDS} and run the command once per batch — each batch is a separate charge, so batch by priority.`,\n },\n },\n });\n process.exit(1);\n }\n\n const location = (args.location as string) || undefined;\n const language = (args.language as string) || undefined;\n const clickstream = Boolean(args.clickstream);\n const full = Boolean(args.full);\n const queryContext = buildResearchQueryContext(location, language);\n\n try {\n const result = await apiPost<{ data: ResearchKeywordMetricsRow[] }>(\"/api/research/keyword-metrics\", {\n keywords,\n location,\n language,\n includeClickstream: clickstream,\n skipCache: args[\"no-cache\"] ? true : undefined,\n });\n\n const columns = { clickstream, full };\n const rows = result.data.map((row) => toOutputRow(row, columns));\n const hints = keywordMetricsHints({ rows: result.data, asked: keywords, clickstream, queryContext });\n\n warnDefaults(queryContext);\n const format = (args.output as string) || \"json\";\n if (format !== \"json\") {\n writeResearchOutput(rows, format);\n writeResearchHints([...hints, RESEARCH_DATA_NOTE], format);\n return;\n }\n writeResearchJson({\n ok: true,\n data: rows,\n fields: keywordMetricsFields(columns),\n note: RESEARCH_DATA_NOTE,\n hints,\n query_context: queryContext,\n });\n } catch (err) {\n handleResearchError(err);\n }\n },\n});\n","/**\n * Naming the rows of `baker research keyword-metrics` after where each number\n * came from.\n *\n * DataForSEO does not measure Google's search volume — it resells the Keyword\n * Planner figure, so `search_volume` here and `planner_avg_monthly_searches`\n * from `baker ads google keywords metrics` are one number with two names. A run\n * that did not know that presented the two side by side as agreeing sources and\n * reported the agreement as validation; they matched to the digit in all seven\n * rows because they are the same row. The only defence that survives a CSV in\n * /tmp is the column name, which is the same conclusion `ads/google/keywords/\n * provenance.ts` reached for the other half of the pair — so the same prefix is\n * used deliberately.\n *\n * The exception is clickstream: `clickstream_search_volume` is DataForSEO's own\n * panel-derived estimate and genuinely is a second opinion. It keeps its own\n * prefix so it can never be read as Google's, or Google's as it.\n */\nimport type { ResearchKeywordMetricsRow } from \"@baker/api\";\n\nexport const KEYWORD_METRICS_SOURCE = \"keyword_planner_estimate_via_dataforseo\";\n\nexport type KeywordMetricsOutputRow = Record<string, unknown>;\n\nexport interface KeywordMetricsColumnOptions {\n /** The request asked for DataForSEO's panel volume alongside Google's. */\n clickstream: boolean;\n /** Add difficulty, intent and the 12-month trend. */\n full: boolean;\n}\n\nexport function toOutputRow(\n row: ResearchKeywordMetricsRow,\n options: KeywordMetricsColumnOptions,\n): KeywordMetricsOutputRow {\n const out: KeywordMetricsOutputRow = {\n source: KEYWORD_METRICS_SOURCE,\n keyword: row.keyword,\n planner_search_volume: row.search_volume,\n planner_cpc: row.cpc,\n planner_low_top_of_page_bid: row.low_top_of_page_bid,\n planner_high_top_of_page_bid: row.high_top_of_page_bid,\n planner_competition: row.competition,\n planner_competition_index: row.competition_index,\n };\n if (options.clickstream) {\n out.clickstream_search_volume = row.clickstream_search_volume;\n }\n if (options.full) {\n out.keyword_difficulty = row.keyword_difficulty;\n out.main_intent = row.main_intent;\n out.planner_monthly_searches = row.monthly_searches;\n }\n return out;\n}\n\nexport function keywordMetricsFields(options: KeywordMetricsColumnOptions): Record<string, string> {\n const fields: Record<string, string> = {\n source: `Always \"${KEYWORD_METRICS_SOURCE}\". Every planner_ column below is Google's Keyword Planner ESTIMATE of total market volume, resold by DataForSEO — the same number \\`baker ads google keywords metrics\\` returns, not an independent measurement of it. Columns without the planner_ prefix are DataForSEO's own.`,\n keyword:\n \"The keyword asked for. A row with every metric null means DataForSEO holds no data on it — not that nobody searches it.\",\n planner_search_volume: \"ESTIMATE: average monthly searches across the whole market, last 12 months\",\n planner_cpc: \"ESTIMATE: average cost per click in USD (a single blended figure, not a top-of-page range)\",\n planner_low_top_of_page_bid: \"ESTIMATE: low-range top-of-page bid in USD\",\n planner_high_top_of_page_bid: \"ESTIMATE: high-range top-of-page bid in USD\",\n planner_competition: \"ESTIMATE: competition level — LOW, MEDIUM or HIGH\",\n planner_competition_index: \"ESTIMATE: competition index 0-100 (higher = more advertisers)\",\n };\n if (options.clickstream) {\n fields.clickstream_search_volume =\n \"DataForSEO's OWN volume estimate, from clickstream panels — not Google's, and the only number here that is a genuine second opinion on demand. Expect it to differ from planner_search_volume; that is the point.\";\n }\n if (options.full) {\n fields.keyword_difficulty = \"DataForSEO's 0-100 estimate of how hard ranking in the organic top 10 would be\";\n fields.main_intent = \"DataForSEO's intent classification: informational, navigational, commercial or transactional\";\n fields.planner_monthly_searches = \"ESTIMATE: 12-month volume breakdown ({year, month, search_volume})\";\n }\n return fields;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,128 @@
1
+ import {
2
+ keywordsForSiteHints
3
+ } from "./chunk-H7XVKLIY.js";
4
+ import {
5
+ RESEARCH_DATA_NOTE,
6
+ handleResearchError,
7
+ writeResearchHints,
8
+ writeResearchJson,
9
+ writeResearchOutput
10
+ } from "./chunk-Y362QH54.js";
11
+ import {
12
+ buildResearchQueryContext,
13
+ warnDefaults
14
+ } from "./chunk-3ZWWXAQZ.js";
15
+ import "./chunk-77DN7R35.js";
16
+ import "./chunk-SMIENBNX.js";
17
+ import "./chunk-GXDLWBOY.js";
18
+ import "./chunk-GIWHHCD6.js";
19
+ import "./chunk-UI6BKYQD.js";
20
+ import "./chunk-XX6ZMCY5.js";
21
+ import {
22
+ apiPost
23
+ } from "./chunk-HREWXNTO.js";
24
+ import "./chunk-HLXWKMTK.js";
25
+ import "./chunk-O6QKCJE4.js";
26
+ import {
27
+ registerSchema
28
+ } from "./chunk-WOTDHRNF.js";
29
+ import "./chunk-YQSBHWOI.js";
30
+
31
+ // src/commands/research/keywords-for-site.ts
32
+ import { defineCommand } from "citty";
33
+ registerSchema({
34
+ command: "research.keywords-for-site",
35
+ description: "Get keywords a competitor targets in Google. Use --type paid to see only paid keywords, --type organic for organic only. If --location and --language are omitted, defaults to United States (us) and English (en). The response includes a query_context object showing which location/language were used.",
36
+ args: {
37
+ target: { type: "string", description: "Domain or URL to analyze (positional)", required: true },
38
+ location: {
39
+ type: "string",
40
+ description: "Country code (us, uk, es, de...) or DataForSEO location code. Defaults to us (United States) if omitted \u2014 always set this for non-US markets",
41
+ required: false
42
+ },
43
+ language: {
44
+ type: "string",
45
+ description: "Language code or name. Defaults to en (English) if omitted \u2014 always set this for non-English markets",
46
+ required: false
47
+ },
48
+ sort: {
49
+ type: "string",
50
+ description: "Sort: search_volume, competition, cpc (default: search_volume)",
51
+ required: false
52
+ },
53
+ type: { type: "string", description: "Filter: paid, organic, all (default: all)", required: false },
54
+ limit: { type: "string", description: "Max results (default: 50, max: 1000)", required: false },
55
+ "no-cache": { type: "boolean", description: "Skip server cache, hit API directly", required: false }
56
+ }
57
+ });
58
+ var FIELDS = {
59
+ keyword: "Keyword the site targets",
60
+ search_volume: "Monthly search volume",
61
+ cpc: "Cost per click in USD",
62
+ competition: "LOW, MEDIUM, or HIGH",
63
+ competition_index: "Competition score 0-100"
64
+ };
65
+ var keywordsForSiteCommand = defineCommand({
66
+ meta: {
67
+ name: "keywords-for-site",
68
+ description: `Get keywords a competitor targets in Google. Use --type to filter paid/organic.
69
+
70
+ Examples:
71
+ baker research keywords-for-site "competitor.com"
72
+ baker research keywords-for-site "competitor.com" --type paid --limit 20
73
+ baker research keywords-for-site "competitor.com" --type organic --location uk`
74
+ },
75
+ args: {
76
+ target: { type: "positional", description: "Domain or URL to analyze", required: true },
77
+ location: { type: "string", description: "Country code or location code (default: us)", required: false },
78
+ language: { type: "string", description: "Language code or name (default: en)", required: false },
79
+ sort: { type: "string", description: "Sort: search_volume, competition, cpc", required: false },
80
+ type: { type: "string", description: "Filter: paid, organic, all (default: all)", required: false },
81
+ limit: { type: "string", description: "Max results (default: 50, max: 1000)", required: false },
82
+ output: { type: "string", description: "Format: json|csv|md|jsonl", required: false, default: "json" },
83
+ "no-cache": { type: "boolean", description: "Skip server cache, hit API directly", required: false }
84
+ },
85
+ run: async ({ args }) => {
86
+ const target = args.target;
87
+ const location = args.location || void 0;
88
+ const language = args.language || void 0;
89
+ const sort = args.sort || void 0;
90
+ const type = args.type || void 0;
91
+ const limit = args.limit ? Number(args.limit) : void 0;
92
+ const skipCache = args["no-cache"] ? true : void 0;
93
+ const queryContext = buildResearchQueryContext(location, language);
94
+ try {
95
+ const data = await apiPost("/api/research/keywords-for-site", {
96
+ target,
97
+ location,
98
+ language,
99
+ sort,
100
+ type,
101
+ limit,
102
+ skipCache
103
+ });
104
+ warnDefaults(queryContext);
105
+ const format = args.output || "json";
106
+ const hints = keywordsForSiteHints(data.length, queryContext, type);
107
+ if (format !== "json") {
108
+ writeResearchOutput(data, format);
109
+ writeResearchHints(hints, format);
110
+ return;
111
+ }
112
+ writeResearchJson({
113
+ ok: true,
114
+ data,
115
+ fields: FIELDS,
116
+ note: RESEARCH_DATA_NOTE,
117
+ query_context: queryContext,
118
+ hints
119
+ });
120
+ } catch (err) {
121
+ handleResearchError(err);
122
+ }
123
+ }
124
+ });
125
+ export {
126
+ keywordsForSiteCommand
127
+ };
128
+ //# sourceMappingURL=keywords-for-site-BDKPQKWB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/research/keywords-for-site.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { buildResearchQueryContext, warnDefaults } from \"../../geo-context.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { keywordsForSiteHints } from \"./hints.ts\";\nimport {\n handleResearchError,\n RESEARCH_DATA_NOTE,\n writeResearchHints,\n writeResearchJson,\n writeResearchOutput,\n} from \"./output.ts\";\n\nregisterSchema({\n command: \"research.keywords-for-site\",\n description:\n \"Get keywords a competitor targets in Google. Use --type paid to see only paid keywords, --type organic for organic only. If --location and --language are omitted, defaults to United States (us) and English (en). The response includes a query_context object showing which location/language were used.\",\n args: {\n target: { type: \"string\", description: \"Domain or URL to analyze (positional)\", required: true },\n location: {\n type: \"string\",\n description:\n \"Country code (us, uk, es, de...) or DataForSEO location code. Defaults to us (United States) if omitted — always set this for non-US markets\",\n required: false,\n },\n language: {\n type: \"string\",\n description:\n \"Language code or name. Defaults to en (English) if omitted — always set this for non-English markets\",\n required: false,\n },\n sort: {\n type: \"string\",\n description: \"Sort: search_volume, competition, cpc (default: search_volume)\",\n required: false,\n },\n type: { type: \"string\", description: \"Filter: paid, organic, all (default: all)\", required: false },\n limit: { type: \"string\", description: \"Max results (default: 50, max: 1000)\", required: false },\n \"no-cache\": { type: \"boolean\", description: \"Skip server cache, hit API directly\", required: false },\n },\n});\n\ninterface KeywordForSite {\n keyword: string;\n search_volume: number;\n cpc: number;\n competition: string;\n competition_index: number;\n}\n\nconst FIELDS: Record<string, string> = {\n keyword: \"Keyword the site targets\",\n search_volume: \"Monthly search volume\",\n cpc: \"Cost per click in USD\",\n competition: \"LOW, MEDIUM, or HIGH\",\n competition_index: \"Competition score 0-100\",\n};\n\nexport const keywordsForSiteCommand = defineCommand({\n meta: {\n name: \"keywords-for-site\",\n description: `Get keywords a competitor targets in Google. Use --type to filter paid/organic.\n\nExamples:\n baker research keywords-for-site \"competitor.com\"\n baker research keywords-for-site \"competitor.com\" --type paid --limit 20\n baker research keywords-for-site \"competitor.com\" --type organic --location uk`,\n },\n args: {\n target: { type: \"positional\", description: \"Domain or URL to analyze\", required: true },\n location: { type: \"string\", description: \"Country code or location code (default: us)\", required: false },\n language: { type: \"string\", description: \"Language code or name (default: en)\", required: false },\n sort: { type: \"string\", description: \"Sort: search_volume, competition, cpc\", required: false },\n type: { type: \"string\", description: \"Filter: paid, organic, all (default: all)\", required: false },\n limit: { type: \"string\", description: \"Max results (default: 50, max: 1000)\", required: false },\n output: { type: \"string\", description: \"Format: json|csv|md|jsonl\", required: false, default: \"json\" },\n \"no-cache\": { type: \"boolean\", description: \"Skip server cache, hit API directly\", required: false },\n },\n run: async ({ args }) => {\n const target = args.target as string;\n const location = (args.location as string) || undefined;\n const language = (args.language as string) || undefined;\n const sort = (args.sort as string) || undefined;\n const type = (args.type as string) || undefined;\n const limit = args.limit ? Number(args.limit) : undefined;\n const skipCache = args[\"no-cache\"] ? true : undefined;\n const queryContext = buildResearchQueryContext(location, language);\n\n try {\n const data = await apiPost<KeywordForSite[]>(\"/api/research/keywords-for-site\", {\n target,\n location,\n language,\n sort,\n type,\n limit,\n skipCache,\n });\n\n warnDefaults(queryContext);\n const format = (args.output as string) || \"json\";\n const hints = keywordsForSiteHints(data.length, queryContext, type);\n if (format !== \"json\") {\n writeResearchOutput(data as unknown as Array<Record<string, unknown>>, format);\n writeResearchHints(hints, format);\n return;\n }\n writeResearchJson({\n ok: true,\n data,\n fields: FIELDS,\n note: RESEARCH_DATA_NOTE,\n query_context: queryContext,\n hints,\n });\n } catch (err) {\n handleResearchError(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAa9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AAAA,IACJ,QAAQ,EAAE,MAAM,UAAU,aAAa,yCAAyC,UAAU,KAAK;AAAA,IAC/F,UAAU;AAAA,MACR,MAAM;AAAA,MACN,aACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,aACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,MAAM,EAAE,MAAM,UAAU,aAAa,6CAA6C,UAAU,MAAM;AAAA,IAClG,OAAO,EAAE,MAAM,UAAU,aAAa,wCAAwC,UAAU,MAAM;AAAA,IAC9F,YAAY,EAAE,MAAM,WAAW,aAAa,uCAAuC,UAAU,MAAM;AAAA,EACrG;AACF,CAAC;AAUD,IAAM,SAAiC;AAAA,EACrC,SAAS;AAAA,EACT,eAAe;AAAA,EACf,KAAK;AAAA,EACL,aAAa;AAAA,EACb,mBAAmB;AACrB;AAEO,IAAM,yBAAyB,cAAc;AAAA,EAClD,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMf;AAAA,EACA,MAAM;AAAA,IACJ,QAAQ,EAAE,MAAM,cAAc,aAAa,4BAA4B,UAAU,KAAK;AAAA,IACtF,UAAU,EAAE,MAAM,UAAU,aAAa,+CAA+C,UAAU,MAAM;AAAA,IACxG,UAAU,EAAE,MAAM,UAAU,aAAa,uCAAuC,UAAU,MAAM;AAAA,IAChG,MAAM,EAAE,MAAM,UAAU,aAAa,yCAAyC,UAAU,MAAM;AAAA,IAC9F,MAAM,EAAE,MAAM,UAAU,aAAa,6CAA6C,UAAU,MAAM;AAAA,IAClG,OAAO,EAAE,MAAM,UAAU,aAAa,wCAAwC,UAAU,MAAM;AAAA,IAC9F,QAAQ,EAAE,MAAM,UAAU,aAAa,6BAA6B,UAAU,OAAO,SAAS,OAAO;AAAA,IACrG,YAAY,EAAE,MAAM,WAAW,aAAa,uCAAuC,UAAU,MAAM;AAAA,EACrG;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,SAAS,KAAK;AACpB,UAAM,WAAY,KAAK,YAAuB;AAC9C,UAAM,WAAY,KAAK,YAAuB;AAC9C,UAAM,OAAQ,KAAK,QAAmB;AACtC,UAAM,OAAQ,KAAK,QAAmB;AACtC,UAAM,QAAQ,KAAK,QAAQ,OAAO,KAAK,KAAK,IAAI;AAChD,UAAM,YAAY,KAAK,UAAU,IAAI,OAAO;AAC5C,UAAM,eAAe,0BAA0B,UAAU,QAAQ;AAEjE,QAAI;AACF,YAAM,OAAO,MAAM,QAA0B,mCAAmC;AAAA,QAC9E;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAED,mBAAa,YAAY;AACzB,YAAM,SAAU,KAAK,UAAqB;AAC1C,YAAM,QAAQ,qBAAqB,KAAK,QAAQ,cAAc,IAAI;AAClE,UAAI,WAAW,QAAQ;AACrB,4BAAoB,MAAmD,MAAM;AAC7E,2BAAmB,OAAO,MAAM;AAChC;AAAA,MACF;AACA,wBAAkB;AAAA,QAChB,IAAI;AAAA,QACJ;AAAA,QACA,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,eAAe;AAAA,QACf;AAAA,MACF,CAAC;AAAA,IACH,SAAS,KAAK;AACZ,0BAAoB,GAAG;AAAA,IACzB;AAAA,EACF;AACF,CAAC;","names":[]}
@@ -0,0 +1,28 @@
1
+ import "./chunk-YQSBHWOI.js";
2
+
3
+ // src/commands/landing/index.ts
4
+ import { defineCommand } from "citty";
5
+ var landingCommand = defineCommand({
6
+ meta: {
7
+ name: "landing",
8
+ description: `Design-quality tools for landing pages (src/pages/<slug>/), and downloading the published ones.
9
+
10
+ Start here: \`baker landing critique <slug>\` after building or editing a landing.
11
+
12
+ Subcommands:
13
+ baker landing inspiration \u2014 reference library of real landing-page sections; search it during research, BEFORE writing the Direction Contract. Inspiration only: take the mechanism, never the words.
14
+ baker landing variant <control> <slug> \u2014 the alternative version of a page for an A/B test: shares the control's sections, forks only the component you name, so the two arms differ by exactly your hypothesis. Run \`baker experiment plan\` first.
15
+ baker landing critique <slug> \u2014 design-quality critic (advisory): flags the known AI 'slop' tells (gradient text, overused fonts, side-tab borders, cream palettes, broken images) and reads the copy in any language for buzzwords, AI copy tells and positioning integrity (copy ranking a competitor above the client), tiered block/warn/advisory, respecting the client's brand. Records the critique the publish quality gate requires \u2014 run it before finishing a landing.
16
+ baker landing export start \u2014 download the PUBLISHED landings as a ZIP of plain HTML ("download my landings", "send me the HTML"); \`baker landing export status <id>\` gives the link.`
17
+ },
18
+ subCommands: {
19
+ inspiration: () => import("./inspiration-Y2J2PUPC.js").then((m) => m.inspirationCommand),
20
+ critique: () => import("./critique-B3H7QFM2.js").then((m) => m.critiqueCommand),
21
+ variant: () => import("./variant-FOVE6URJ.js").then((m) => m.variantCommand),
22
+ export: () => import("./export-TS5GYEMA.js").then((m) => m.exportCommand)
23
+ }
24
+ });
25
+ export {
26
+ landingCommand
27
+ };
28
+ //# sourceMappingURL=landing-4K6XYNFM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/landing/index.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\n\nexport const landingCommand = defineCommand({\n meta: {\n name: \"landing\",\n description: `Design-quality tools for landing pages (src/pages/<slug>/), and downloading the published ones.\n\nStart here: \\`baker landing critique <slug>\\` after building or editing a landing.\n\nSubcommands:\n baker landing inspiration — reference library of real landing-page sections; search it during research, BEFORE writing the Direction Contract. Inspiration only: take the mechanism, never the words.\n baker landing variant <control> <slug> — the alternative version of a page for an A/B test: shares the control's sections, forks only the component you name, so the two arms differ by exactly your hypothesis. Run \\`baker experiment plan\\` first.\n baker landing critique <slug> — design-quality critic (advisory): flags the known AI 'slop' tells (gradient text, overused fonts, side-tab borders, cream palettes, broken images) and reads the copy in any language for buzzwords, AI copy tells and positioning integrity (copy ranking a competitor above the client), tiered block/warn/advisory, respecting the client's brand. Records the critique the publish quality gate requires — run it before finishing a landing.\n baker landing export start — download the PUBLISHED landings as a ZIP of plain HTML (\"download my landings\", \"send me the HTML\"); \\`baker landing export status <id>\\` gives the link.`,\n },\n subCommands: {\n inspiration: () => import(\"./inspiration/index.ts\").then((m) => m.inspirationCommand),\n critique: () => import(\"./critique.ts\").then((m) => m.critiqueCommand),\n variant: () => import(\"./variant.ts\").then((m) => m.variantCommand),\n export: () => import(\"./export.ts\").then((m) => m.exportCommand),\n },\n});\n"],"mappings":";;;AAAA,SAAS,qBAAqB;AAEvB,IAAM,iBAAiB,cAAc;AAAA,EAC1C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASf;AAAA,EACA,aAAa;AAAA,IACX,aAAa,MAAM,OAAO,2BAAwB,EAAE,KAAK,CAAC,MAAM,EAAE,kBAAkB;AAAA,IACpF,UAAU,MAAM,OAAO,wBAAe,EAAE,KAAK,CAAC,MAAM,EAAE,eAAe;AAAA,IACrE,SAAS,MAAM,OAAO,uBAAc,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc;AAAA,IAClE,QAAQ,MAAM,OAAO,sBAAa,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa;AAAA,EACjE;AACF,CAAC;","names":[]}
@@ -0,0 +1,151 @@
1
+ import {
2
+ reportError,
3
+ splitList
4
+ } from "./chunk-752S7JF6.js";
5
+ import {
6
+ apiGet,
7
+ apiPost
8
+ } from "./chunk-HREWXNTO.js";
9
+ import "./chunk-HLXWKMTK.js";
10
+ import "./chunk-O6QKCJE4.js";
11
+ import {
12
+ LANDING_ANALYSE_BATCH,
13
+ registerSchema,
14
+ writeJson
15
+ } from "./chunk-WOTDHRNF.js";
16
+ import "./chunk-YQSBHWOI.js";
17
+
18
+ // src/commands/winning-ads/landings.ts
19
+ import { defineCommand } from "citty";
20
+ registerSchema({
21
+ command: "winning-ads.landings",
22
+ description: "Every landing page one brand's ads send people to, the ones in use now first (a short or tracking link counts as the page it opens; Instant Forms, chats, app stores and social profiles are not pages): how many ads point there, how many still run, platforms, when each was used (`used`: one stretch per run of ads, `\u2192 now` while running), `address_only` on an address only Google search ads print (Google publishes no search ad's real destination, and the path need not exist \u2014 not analysed), and \u2014 once analysed \u2014 the page's headline, value propositions, offer, pricing, CTAs, proof, audience and sections in order. Compact by default; --full returns every field, the ads behind each page and its screenshot. --analyse studies the top pages not yet analysed (a few minutes each).",
23
+ args: {
24
+ advertiser: { type: "string", description: "Advertiser id (from `advertisers` or `following`)", required: true },
25
+ platform: { type: "string", description: "Only this platform: meta|linkedin|tiktok|google", required: false },
26
+ full: { type: "boolean", description: "Every field of every page", required: false, default: false },
27
+ analyse: {
28
+ type: "boolean",
29
+ description: `Analyse the top ${LANDING_ANALYSE_BATCH} pages not analysed yet (or those named in --pages)`,
30
+ required: false,
31
+ default: false
32
+ },
33
+ pages: {
34
+ type: "string",
35
+ description: `With --analyse: comma list of page urls to analyse instead (max ${LANDING_ANALYSE_BATCH})`,
36
+ required: false
37
+ }
38
+ }
39
+ });
40
+ var COMPACT_PAGES = 20;
41
+ var COMPACT_VALUE_PROPS = 3;
42
+ var day = (iso) => iso.slice(0, 10);
43
+ function compactPage(p) {
44
+ const pitch = p.analysis.pitch;
45
+ return {
46
+ url: p.canonical_url,
47
+ in_use_now: p.active_ads > 0,
48
+ ads: p.ads,
49
+ running: p.active_ads,
50
+ platforms: p.platforms,
51
+ used: p.windows.map((w) => `${day(w.from)} \u2192 ${w.to ? day(w.to) : "now"}`),
52
+ last_seen_at: p.last_seen_at,
53
+ ...p.address_only ? { address_only: true } : {},
54
+ analysis: p.analysis.status,
55
+ ...pitch ? {
56
+ headline: pitch.headline,
57
+ value_propositions: pitch.value_propositions.slice(0, COMPACT_VALUE_PROPS),
58
+ offer: pitch.offer
59
+ } : {}
60
+ };
61
+ }
62
+ function compactLandings(report) {
63
+ return {
64
+ advertiser_id: report.advertiser_id,
65
+ total_pages: report.total_pages,
66
+ analysed: report.pages.filter((p) => p.analysis.status === "ready").length,
67
+ pages: report.pages.slice(0, COMPACT_PAGES).map(compactPage)
68
+ };
69
+ }
70
+ function pagesToAnalyse(report) {
71
+ return report.pages.filter((p) => !p.address_only && (p.analysis.status === "not_analysed" || p.analysis.status === "failed")).slice(0, LANDING_ANALYSE_BATCH).map((p) => p.canonical_url);
72
+ }
73
+ function landingsHints(report, advertiser) {
74
+ const hints = [];
75
+ const top = report.pages.slice(0, COMPACT_PAGES);
76
+ const pending = top.filter((p) => !p.address_only && p.analysis.status === "not_analysed").length;
77
+ const addressOnly = report.pages.filter((p) => p.address_only).length;
78
+ const analysing = report.pages.filter((p) => p.analysis.status === "analysing").length;
79
+ if (report.pages.length === 0) {
80
+ hints.push("No ad of this brand links to a landing page yet.");
81
+ return hints;
82
+ }
83
+ if (addressOnly > 0) {
84
+ hints.push(
85
+ `${addressOnly} ${addressOnly === 1 ? "address" : "addresses"} only Google search ads show (\`address_only\`): Google publishes no search ad's destination, only the address printed on it, whose path the brand types freely and need not exist. Quote it as the address the ad shows, never as a page the ads lead to; it is not analysed.`
86
+ );
87
+ }
88
+ if (pending > 0) {
89
+ hints.push(
90
+ `${pending} of the top pages are not analysed yet: \`baker winning-ads landings ${advertiser} --analyse\` studies the top ${LANDING_ANALYSE_BATCH} (value propositions, offer, pricing, proof, sections). It takes a few minutes; run this again to read them.`
91
+ );
92
+ }
93
+ if (analysing > 0) {
94
+ hints.push(`${analysing} pages are being analysed now: run this again in a few minutes.`);
95
+ }
96
+ if (report.pages.some((p) => p.analysis.status === "ready")) {
97
+ hints.push(
98
+ "--full returns each analysed page's whole read: pricing, CTAs, proof, audience and its sections in order."
99
+ );
100
+ }
101
+ return hints;
102
+ }
103
+ var landingsCommand = defineCommand({
104
+ meta: {
105
+ name: "landings",
106
+ description: "Every landing page a brand's ads point to, with how the page sells once analysed. Start here: baker winning-ads landings adv_123 (--analyse to study the top pages not analysed yet, --full for everything)"
107
+ },
108
+ args: {
109
+ advertiser: { type: "positional", description: "Advertiser id", required: true },
110
+ platform: { type: "string", description: "Only this platform: meta|linkedin|tiktok|google", required: false },
111
+ full: { type: "boolean", description: "Every field of every page", required: false, default: false },
112
+ analyse: {
113
+ type: "boolean",
114
+ description: `Analyse the top ${LANDING_ANALYSE_BATCH} pages not analysed yet`,
115
+ required: false,
116
+ default: false
117
+ },
118
+ pages: { type: "string", description: "With --analyse: comma list of page urls to analyse", required: false }
119
+ },
120
+ run: async ({ args }) => {
121
+ try {
122
+ const advertiser = String(args.advertiser);
123
+ const params = { advertiser };
124
+ if (args.platform) params.platform = String(args.platform);
125
+ let report = await apiGet("/api/ad-library/landing-pages", params);
126
+ let started;
127
+ if (args.analyse) {
128
+ const named = args.pages ? splitList(String(args.pages)) : [];
129
+ const urls = named.length > 0 ? named.slice(0, LANDING_ANALYSE_BATCH) : pagesToAnalyse(report);
130
+ if (urls.length > 0) {
131
+ started = (await apiPost("/api/ad-library/landing-pages/analyse", { urls })).pages;
132
+ report = await apiGet("/api/ad-library/landing-pages", params);
133
+ }
134
+ }
135
+ writeJson({
136
+ ok: true,
137
+ data: { ...args.full ? report : compactLandings(report), ...started ? { analyse: started } : {} },
138
+ hints: landingsHints(report, advertiser)
139
+ });
140
+ } catch (err) {
141
+ reportError(err);
142
+ }
143
+ }
144
+ });
145
+ export {
146
+ compactLandings,
147
+ landingsCommand,
148
+ landingsHints,
149
+ pagesToAnalyse
150
+ };
151
+ //# sourceMappingURL=landings-F7LOAEJE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/winning-ads/landings.ts"],"sourcesContent":["import {\n type AnalyseLandingPagesResponse,\n type BrandLandingPage,\n type BrandLandingPages,\n LANDING_ANALYSE_BATCH,\n} from \"@baker/api/ad-library\";\nimport { defineCommand } from \"citty\";\nimport { apiGet, apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { reportError, splitList } from \"./shared.ts\";\n\nregisterSchema({\n command: \"winning-ads.landings\",\n description:\n \"Every landing page one brand's ads send people to, the ones in use now first (a short or tracking link counts as the page it opens; Instant Forms, chats, app stores and social profiles are not pages): how many ads point there, how many still run, platforms, when each was used (`used`: one stretch per run of ads, `→ now` while running), `address_only` on an address only Google search ads print (Google publishes no search ad's real destination, and the path need not exist — not analysed), and — once analysed — the page's headline, value propositions, offer, pricing, CTAs, proof, audience and sections in order. Compact by default; --full returns every field, the ads behind each page and its screenshot. --analyse studies the top pages not yet analysed (a few minutes each).\",\n args: {\n advertiser: { type: \"string\", description: \"Advertiser id (from `advertisers` or `following`)\", required: true },\n platform: { type: \"string\", description: \"Only this platform: meta|linkedin|tiktok|google\", required: false },\n full: { type: \"boolean\", description: \"Every field of every page\", required: false, default: false },\n analyse: {\n type: \"boolean\",\n description: `Analyse the top ${LANDING_ANALYSE_BATCH} pages not analysed yet (or those named in --pages)`,\n required: false,\n default: false,\n },\n pages: {\n type: \"string\",\n description: `With --analyse: comma list of page urls to analyse instead (max ${LANDING_ANALYSE_BATCH})`,\n required: false,\n },\n },\n});\n\nconst COMPACT_PAGES = 20;\nconst COMPACT_VALUE_PROPS = 3;\n\nconst day = (iso: string) => iso.slice(0, 10);\n\nfunction compactPage(p: BrandLandingPage) {\n const pitch = p.analysis.pitch;\n return {\n url: p.canonical_url,\n in_use_now: p.active_ads > 0,\n ads: p.ads,\n running: p.active_ads,\n platforms: p.platforms,\n used: p.windows.map((w) => `${day(w.from)} → ${w.to ? day(w.to) : \"now\"}`),\n last_seen_at: p.last_seen_at,\n ...(p.address_only ? { address_only: true } : {}),\n analysis: p.analysis.status,\n ...(pitch\n ? {\n headline: pitch.headline,\n value_propositions: pitch.value_propositions.slice(0, COMPACT_VALUE_PROPS),\n offer: pitch.offer,\n }\n : {}),\n };\n}\n\n/** The pages cut to what an agent needs to pick which to read: url, ads, what runs, the top of the pitch. */\nexport function compactLandings(report: BrandLandingPages) {\n return {\n advertiser_id: report.advertiser_id,\n total_pages: report.total_pages,\n analysed: report.pages.filter((p) => p.analysis.status === \"ready\").length,\n pages: report.pages.slice(0, COMPACT_PAGES).map(compactPage),\n };\n}\n\n/**\n * The top pages (in use now first) nobody has analysed, or whose analysis\n * failed, at most one batch. An address only Google search ads show is left\n * out: it need not be a page at all.\n */\nexport function pagesToAnalyse(report: BrandLandingPages): string[] {\n return report.pages\n .filter((p) => !p.address_only && (p.analysis.status === \"not_analysed\" || p.analysis.status === \"failed\"))\n .slice(0, LANDING_ANALYSE_BATCH)\n .map((p) => p.canonical_url);\n}\n\n/** Point at the pages still to analyse, and say when some are on their way. */\nexport function landingsHints(report: BrandLandingPages, advertiser: string): string[] {\n const hints: string[] = [];\n const top = report.pages.slice(0, COMPACT_PAGES);\n const pending = top.filter((p) => !p.address_only && p.analysis.status === \"not_analysed\").length;\n const addressOnly = report.pages.filter((p) => p.address_only).length;\n const analysing = report.pages.filter((p) => p.analysis.status === \"analysing\").length;\n if (report.pages.length === 0) {\n hints.push(\"No ad of this brand links to a landing page yet.\");\n return hints;\n }\n if (addressOnly > 0) {\n hints.push(\n `${addressOnly} ${addressOnly === 1 ? \"address\" : \"addresses\"} only Google search ads show (\\`address_only\\`): Google publishes no search ad's destination, only the address printed on it, whose path the brand types freely and need not exist. Quote it as the address the ad shows, never as a page the ads lead to; it is not analysed.`,\n );\n }\n if (pending > 0) {\n hints.push(\n `${pending} of the top pages are not analysed yet: \\`baker winning-ads landings ${advertiser} --analyse\\` studies the top ${LANDING_ANALYSE_BATCH} (value propositions, offer, pricing, proof, sections). It takes a few minutes; run this again to read them.`,\n );\n }\n if (analysing > 0) {\n hints.push(`${analysing} pages are being analysed now: run this again in a few minutes.`);\n }\n if (report.pages.some((p) => p.analysis.status === \"ready\")) {\n hints.push(\n \"--full returns each analysed page's whole read: pricing, CTAs, proof, audience and its sections in order.\",\n );\n }\n return hints;\n}\n\nexport const landingsCommand = defineCommand({\n meta: {\n name: \"landings\",\n description:\n \"Every landing page a brand's ads point to, with how the page sells once analysed. Start here: baker winning-ads landings adv_123 (--analyse to study the top pages not analysed yet, --full for everything)\",\n },\n args: {\n advertiser: { type: \"positional\", description: \"Advertiser id\", required: true },\n platform: { type: \"string\", description: \"Only this platform: meta|linkedin|tiktok|google\", required: false },\n full: { type: \"boolean\", description: \"Every field of every page\", required: false, default: false },\n analyse: {\n type: \"boolean\",\n description: `Analyse the top ${LANDING_ANALYSE_BATCH} pages not analysed yet`,\n required: false,\n default: false,\n },\n pages: { type: \"string\", description: \"With --analyse: comma list of page urls to analyse\", required: false },\n },\n run: async ({ args }) => {\n try {\n const advertiser = String(args.advertiser);\n const params: Record<string, string> = { advertiser };\n if (args.platform) params.platform = String(args.platform);\n let report = await apiGet<BrandLandingPages>(\"/api/ad-library/landing-pages\", params);\n let started: AnalyseLandingPagesResponse[\"pages\"] | undefined;\n if (args.analyse) {\n const named = args.pages ? splitList(String(args.pages)) : [];\n const urls = named.length > 0 ? named.slice(0, LANDING_ANALYSE_BATCH) : pagesToAnalyse(report);\n if (urls.length > 0) {\n started = (await apiPost<AnalyseLandingPagesResponse>(\"/api/ad-library/landing-pages/analyse\", { urls }))\n .pages;\n report = await apiGet<BrandLandingPages>(\"/api/ad-library/landing-pages\", params);\n }\n }\n writeJson({\n ok: true,\n data: { ...(args.full ? report : compactLandings(report)), ...(started ? { analyse: started } : {}) },\n hints: landingsHints(report, advertiser),\n });\n } catch (err) {\n reportError(err);\n }\n },\n});\n"],"mappings":"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","names":[]}
@@ -0,0 +1,40 @@
1
+ import {
2
+ GOOGLE_ADS_LANGUAGES
3
+ } from "./chunk-3ZWWXAQZ.js";
4
+ import "./chunk-77DN7R35.js";
5
+ import {
6
+ writeAdsJson
7
+ } from "./chunk-BVM5IRZW.js";
8
+ import "./chunk-XX6ZMCY5.js";
9
+ import "./chunk-HREWXNTO.js";
10
+ import "./chunk-HLXWKMTK.js";
11
+ import "./chunk-O6QKCJE4.js";
12
+ import {
13
+ registerSchema
14
+ } from "./chunk-WOTDHRNF.js";
15
+ import "./chunk-YQSBHWOI.js";
16
+
17
+ // src/commands/ads/google/keywords/languages.ts
18
+ import { defineCommand } from "citty";
19
+ registerSchema({
20
+ command: "ads.google.keywords.languages",
21
+ description: "List all supported language IDs for --language flag in Google Ads keyword commands.",
22
+ args: {}
23
+ });
24
+ var FIELDS = {
25
+ id: "Language ID to pass as --language",
26
+ name: "Language name"
27
+ };
28
+ var languagesCommand = defineCommand({
29
+ meta: {
30
+ name: "languages",
31
+ description: "List all supported language IDs for --language flag."
32
+ },
33
+ run: () => {
34
+ writeAdsJson({ ok: true, data: GOOGLE_ADS_LANGUAGES, fields: FIELDS });
35
+ }
36
+ });
37
+ export {
38
+ languagesCommand
39
+ };
40
+ //# sourceMappingURL=languages-P3ZM6R2A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/google/keywords/languages.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { GOOGLE_ADS_LANGUAGES } from \"../../../../geo-context.ts\";\nimport { registerSchema } from \"../../../../schemas.ts\";\nimport { writeAdsJson } from \"../../output.ts\";\n\nregisterSchema({\n command: \"ads.google.keywords.languages\",\n description: \"List all supported language IDs for --language flag in Google Ads keyword commands.\",\n args: {},\n});\n\nconst FIELDS: Record<string, string> = {\n id: \"Language ID to pass as --language\",\n name: \"Language name\",\n};\n\nexport const languagesCommand = defineCommand({\n meta: {\n name: \"languages\",\n description: \"List all supported language IDs for --language flag.\",\n },\n run: () => {\n writeAdsJson({ ok: true, data: GOOGLE_ADS_LANGUAGES, fields: FIELDS });\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAK9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aAAa;AAAA,EACb,MAAM,CAAC;AACT,CAAC;AAED,IAAM,SAAiC;AAAA,EACrC,IAAI;AAAA,EACJ,MAAM;AACR;AAEO,IAAM,mBAAmB,cAAc;AAAA,EAC5C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,KAAK,MAAM;AACT,iBAAa,EAAE,IAAI,MAAM,MAAM,sBAAsB,QAAQ,OAAO,CAAC;AAAA,EACvE;AACF,CAAC;","names":[]}
@@ -0,0 +1,55 @@
1
+ import {
2
+ writeResearchJson
3
+ } from "./chunk-Y362QH54.js";
4
+ import "./chunk-HREWXNTO.js";
5
+ import "./chunk-HLXWKMTK.js";
6
+ import "./chunk-O6QKCJE4.js";
7
+ import {
8
+ registerSchema
9
+ } from "./chunk-WOTDHRNF.js";
10
+ import "./chunk-YQSBHWOI.js";
11
+
12
+ // src/commands/research/languages.ts
13
+ import { defineCommand } from "citty";
14
+ registerSchema({
15
+ command: "research.languages",
16
+ description: "List all supported language codes for --language flag in research commands.",
17
+ args: {}
18
+ });
19
+ var LANGUAGES = [
20
+ { code: "en", name: "english" },
21
+ { code: "es", name: "spanish" },
22
+ { code: "fr", name: "french" },
23
+ { code: "de", name: "german" },
24
+ { code: "it", name: "italian" },
25
+ { code: "pt", name: "portuguese" },
26
+ { code: "nl", name: "dutch" },
27
+ { code: "ja", name: "japanese" },
28
+ { code: "ko", name: "korean" },
29
+ { code: "zh", name: "chinese" },
30
+ { code: "ar", name: "arabic" },
31
+ { code: "ru", name: "russian" },
32
+ { code: "pl", name: "polish" },
33
+ { code: "tr", name: "turkish" },
34
+ { code: "sv", name: "swedish" },
35
+ { code: "no", name: "norwegian" },
36
+ { code: "da", name: "danish" },
37
+ { code: "fi", name: "finnish" }
38
+ ];
39
+ var FIELDS = {
40
+ code: "Language code to pass as --language",
41
+ name: "Language name (also accepted by --language)"
42
+ };
43
+ var languagesCommand = defineCommand({
44
+ meta: {
45
+ name: "languages",
46
+ description: "List all supported language codes for --language flag."
47
+ },
48
+ run: () => {
49
+ writeResearchJson({ ok: true, data: LANGUAGES, fields: FIELDS });
50
+ }
51
+ });
52
+ export {
53
+ languagesCommand
54
+ };
55
+ //# sourceMappingURL=languages-XEJKTIFP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/research/languages.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { writeResearchJson } from \"./output.ts\";\n\nregisterSchema({\n command: \"research.languages\",\n description: \"List all supported language codes for --language flag in research commands.\",\n args: {},\n});\n\nconst LANGUAGES: Array<{ code: string; name: string }> = [\n { code: \"en\", name: \"english\" },\n { code: \"es\", name: \"spanish\" },\n { code: \"fr\", name: \"french\" },\n { code: \"de\", name: \"german\" },\n { code: \"it\", name: \"italian\" },\n { code: \"pt\", name: \"portuguese\" },\n { code: \"nl\", name: \"dutch\" },\n { code: \"ja\", name: \"japanese\" },\n { code: \"ko\", name: \"korean\" },\n { code: \"zh\", name: \"chinese\" },\n { code: \"ar\", name: \"arabic\" },\n { code: \"ru\", name: \"russian\" },\n { code: \"pl\", name: \"polish\" },\n { code: \"tr\", name: \"turkish\" },\n { code: \"sv\", name: \"swedish\" },\n { code: \"no\", name: \"norwegian\" },\n { code: \"da\", name: \"danish\" },\n { code: \"fi\", name: \"finnish\" },\n];\n\nconst FIELDS: Record<string, string> = {\n code: \"Language code to pass as --language\",\n name: \"Language name (also accepted by --language)\",\n};\n\nexport const languagesCommand = defineCommand({\n meta: {\n name: \"languages\",\n description: \"List all supported language codes for --language flag.\",\n },\n run: () => {\n writeResearchJson({ ok: true, data: LANGUAGES, fields: FIELDS });\n },\n});\n"],"mappings":";;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAI9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aAAa;AAAA,EACb,MAAM,CAAC;AACT,CAAC;AAED,IAAM,YAAmD;AAAA,EACvD,EAAE,MAAM,MAAM,MAAM,UAAU;AAAA,EAC9B,EAAE,MAAM,MAAM,MAAM,UAAU;AAAA,EAC9B,EAAE,MAAM,MAAM,MAAM,SAAS;AAAA,EAC7B,EAAE,MAAM,MAAM,MAAM,SAAS;AAAA,EAC7B,EAAE,MAAM,MAAM,MAAM,UAAU;AAAA,EAC9B,EAAE,MAAM,MAAM,MAAM,aAAa;AAAA,EACjC,EAAE,MAAM,MAAM,MAAM,QAAQ;AAAA,EAC5B,EAAE,MAAM,MAAM,MAAM,WAAW;AAAA,EAC/B,EAAE,MAAM,MAAM,MAAM,SAAS;AAAA,EAC7B,EAAE,MAAM,MAAM,MAAM,UAAU;AAAA,EAC9B,EAAE,MAAM,MAAM,MAAM,SAAS;AAAA,EAC7B,EAAE,MAAM,MAAM,MAAM,UAAU;AAAA,EAC9B,EAAE,MAAM,MAAM,MAAM,SAAS;AAAA,EAC7B,EAAE,MAAM,MAAM,MAAM,UAAU;AAAA,EAC9B,EAAE,MAAM,MAAM,MAAM,UAAU;AAAA,EAC9B,EAAE,MAAM,MAAM,MAAM,YAAY;AAAA,EAChC,EAAE,MAAM,MAAM,MAAM,SAAS;AAAA,EAC7B,EAAE,MAAM,MAAM,MAAM,UAAU;AAChC;AAEA,IAAM,SAAiC;AAAA,EACrC,MAAM;AAAA,EACN,MAAM;AACR;AAEO,IAAM,mBAAmB,cAAc;AAAA,EAC5C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,KAAK,MAAM;AACT,sBAAkB,EAAE,IAAI,MAAM,MAAM,WAAW,QAAQ,OAAO,CAAC;AAAA,EACjE;AACF,CAAC;","names":[]}
@@ -0,0 +1,19 @@
1
+ import {
2
+ IDEA_HINT,
3
+ compactLaunches,
4
+ launchesCommand,
5
+ launchesHints
6
+ } from "./chunk-WNFTXSGR.js";
7
+ import "./chunk-752S7JF6.js";
8
+ import "./chunk-HREWXNTO.js";
9
+ import "./chunk-HLXWKMTK.js";
10
+ import "./chunk-O6QKCJE4.js";
11
+ import "./chunk-WOTDHRNF.js";
12
+ import "./chunk-YQSBHWOI.js";
13
+ export {
14
+ IDEA_HINT,
15
+ compactLaunches,
16
+ launchesCommand,
17
+ launchesHints
18
+ };
19
+ //# sourceMappingURL=launches-TCFAYUA5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}