@koda-sl/baker-cli 0.495.0 → 0.497.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (848) hide show
  1. package/README.md +25 -4
  2. package/dist/account-ZKJFX2GK.js +80 -0
  3. package/dist/account-ZKJFX2GK.js.map +1 -0
  4. package/dist/account-users-SZCYHVBM.js +62 -0
  5. package/dist/account-users-SZCYHVBM.js.map +1 -0
  6. package/dist/accounts-5DFYKYSM.js +78 -0
  7. package/dist/accounts-5DFYKYSM.js.map +1 -0
  8. package/dist/accounts-OGAIQNE6.js +612 -0
  9. package/dist/accounts-OGAIQNE6.js.map +1 -0
  10. package/dist/actions-FMNJSOBA.js +55 -0
  11. package/dist/activecampaign-LYYYH6XD.js +936 -0
  12. package/dist/activecampaign-LYYYH6XD.js.map +1 -0
  13. package/dist/add-AOQLZRPC.js +80 -0
  14. package/dist/add-AOQLZRPC.js.map +1 -0
  15. package/dist/add-HWXEPSZF.js +105 -0
  16. package/dist/add-HWXEPSZF.js.map +1 -0
  17. package/dist/add-VDZPGZF5.js +148 -0
  18. package/dist/add-VDZPGZF5.js.map +1 -0
  19. package/dist/add-YYP3O536.js +303 -0
  20. package/dist/add-YYP3O536.js.map +1 -0
  21. package/dist/ads-OLXSDPD6.js +40 -0
  22. package/dist/advertisers-STYAIX72.js +121 -0
  23. package/dist/advertisers-STYAIX72.js.map +1 -0
  24. package/dist/analytics-6WBK4VFO.js +1977 -0
  25. package/dist/analytics-6WBK4VFO.js.map +1 -0
  26. package/dist/analytics-DHB325DM.js +434 -0
  27. package/dist/analytics-DHB325DM.js.map +1 -0
  28. package/dist/assign-BFXHYTMF.js +78 -0
  29. package/dist/assign-BFXHYTMF.js.map +1 -0
  30. package/dist/audience-size-XWHZV2GH.js +74 -0
  31. package/dist/audience-size-XWHZV2GH.js.map +1 -0
  32. package/dist/audit-IYGRU7LD.js +152 -0
  33. package/dist/audit-IYGRU7LD.js.map +1 -0
  34. package/dist/autocomplete-SDDSJTAF.js +112 -0
  35. package/dist/autocomplete-SDDSJTAF.js.map +1 -0
  36. package/dist/avatars-I4H3NMEJ.js +38 -0
  37. package/dist/bid-pricing-OVYBDRMV.js +101 -0
  38. package/dist/bid-pricing-OVYBDRMV.js.map +1 -0
  39. package/dist/brand-3V7ECY7D.js +22 -0
  40. package/dist/brief-U2W7KMFC.js +539 -0
  41. package/dist/brief-U2W7KMFC.js.map +1 -0
  42. package/dist/campaign-groups-FJHBVUA3.js +97 -0
  43. package/dist/campaign-groups-FJHBVUA3.js.map +1 -0
  44. package/dist/campaign-writes-XKYYMZML.js +166 -0
  45. package/dist/campaign-writes-XKYYMZML.js.map +1 -0
  46. package/dist/campaigns-E5UW4I3X.js +111 -0
  47. package/dist/campaigns-E5UW4I3X.js.map +1 -0
  48. package/dist/campaigns-MCB76NPQ.js +107 -0
  49. package/dist/canvas-JCNKMGCG.js +46 -0
  50. package/dist/capabilities-CLTZCXCZ.js +145 -0
  51. package/dist/capabilities-CLTZCXCZ.js.map +1 -0
  52. package/dist/chatgpt-XFZ42NXC.js +47 -0
  53. package/dist/chats-DTJSBDWO.js +277 -0
  54. package/dist/chats-DTJSBDWO.js.map +1 -0
  55. package/dist/check-CZTS64AW.js +105 -0
  56. package/dist/check-CZTS64AW.js.map +1 -0
  57. package/dist/chunk-2YTBPRRG.js +207 -0
  58. package/dist/chunk-3SNCMEJB.js +97 -0
  59. package/dist/chunk-7QGFO35A.js +23 -0
  60. package/dist/chunk-AV7ALENU.js +191 -0
  61. package/dist/chunk-BRLFQ4VX.js +604 -0
  62. package/dist/chunk-CAZGM2NX.js +92 -0
  63. package/dist/chunk-CAZGM2NX.js.map +1 -0
  64. package/dist/chunk-DJE7UXYT.js +831 -0
  65. package/dist/chunk-EFWXYUSK.js +139 -0
  66. package/dist/chunk-EONSZAZB.js +3868 -0
  67. package/dist/chunk-FALJQCWL.js +661 -0
  68. package/dist/chunk-FALJQCWL.js.map +1 -0
  69. package/dist/chunk-FG3MV2XM.js +89 -0
  70. package/dist/chunk-FKG476GH.js +392 -0
  71. package/dist/chunk-FUGQSIYG.js +297 -0
  72. package/dist/chunk-G4OFH3MX.js +455 -0
  73. package/dist/chunk-G4OFH3MX.js.map +1 -0
  74. package/dist/chunk-GZ4A2VYW.js +39 -0
  75. package/dist/chunk-GZ4A2VYW.js.map +1 -0
  76. package/dist/chunk-HPLHAHG5.js +275 -0
  77. package/dist/chunk-I24YT2KG.js +122 -0
  78. package/dist/chunk-IFDZZOUC.js +903 -0
  79. package/dist/chunk-JVVUI55M.js +455 -0
  80. package/dist/chunk-KKSHEPBY.js +363 -0
  81. package/dist/chunk-KQ7RCLGC.js +547 -0
  82. package/dist/chunk-L7WMS5PW.js +172 -0
  83. package/dist/chunk-LBRO4MTL.js +19 -0
  84. package/dist/chunk-LNRPOULW.js +224 -0
  85. package/dist/chunk-LX6WC2XZ.js +942 -0
  86. package/dist/chunk-MMGTJBM6.js +142 -0
  87. package/dist/chunk-NZS3KEQ2.js +97 -0
  88. package/dist/chunk-NZS3KEQ2.js.map +1 -0
  89. package/dist/chunk-O37VU7FG.js +6799 -0
  90. package/dist/chunk-O37VU7FG.js.map +1 -0
  91. package/dist/chunk-OEZYSL3U.js +51 -0
  92. package/dist/chunk-OOVHBMQB.js +103 -0
  93. package/dist/chunk-PTH7VWKK.js +159 -0
  94. package/dist/chunk-PYD6IGW6.js +401 -0
  95. package/dist/chunk-PYD6IGW6.js.map +1 -0
  96. package/dist/chunk-QE2E4EYJ.js +349 -0
  97. package/dist/chunk-QE2E4EYJ.js.map +1 -0
  98. package/dist/chunk-QZF4BVKL.js +66 -0
  99. package/dist/chunk-RITUSBYO.js +61 -0
  100. package/dist/chunk-SSTL3A7Z.js +206 -0
  101. package/dist/chunk-SZNGQ2GF.js +64 -0
  102. package/dist/chunk-SZNGQ2GF.js.map +1 -0
  103. package/dist/chunk-TD4SO6TR.js +169 -0
  104. package/dist/chunk-UZ4RTOFG.js +91 -0
  105. package/dist/chunk-VAX7PFQV.js +592 -0
  106. package/dist/chunk-VDRSZK4P.js +494 -0
  107. package/dist/chunk-VNU2EYD4.js +344 -0
  108. package/dist/chunk-WT4WDIXA.js +156 -0
  109. package/dist/chunk-XEX23CIB.js +160 -0
  110. package/dist/chunk-XXDF25BW.js +8939 -0
  111. package/dist/chunk-YJ3LSFMX.js +249 -0
  112. package/dist/chunk-YVK5RT3B.js +197 -0
  113. package/dist/chunk-YWWRLZUR.js +433 -0
  114. package/dist/chunk-Z4S5BCVZ.js +57 -0
  115. package/dist/chunk-ZYGK7GAK.js +1079 -0
  116. package/dist/claim-TSFPWTQY.js +198 -0
  117. package/dist/claim-TSFPWTQY.js.map +1 -0
  118. package/dist/cli.js +38 -37
  119. package/dist/cli.js.map +1 -1
  120. package/dist/companies-P7FZNJQV.js +196 -0
  121. package/dist/companies-P7FZNJQV.js.map +1 -0
  122. package/dist/complete-SYDIHMD5.js +82 -0
  123. package/dist/complete-SYDIHMD5.js.map +1 -0
  124. package/dist/connect-COS6G45S.js +43 -0
  125. package/dist/conversation-UJOWMJRH.js +94 -0
  126. package/dist/conversation-UJOWMJRH.js.map +1 -0
  127. package/dist/conversions-ONOIEILU.js +138 -0
  128. package/dist/conversions-ONOIEILU.js.map +1 -0
  129. package/dist/create-DPQRYQXK.js +208 -0
  130. package/dist/create-DPQRYQXK.js.map +1 -0
  131. package/dist/create-JD76Z4A4.js +60 -0
  132. package/dist/create-JD76Z4A4.js.map +1 -0
  133. package/dist/create-NOT3HGP2.js +133 -0
  134. package/dist/create-NOT3HGP2.js.map +1 -0
  135. package/dist/create-ZYEB7SHF.js +236 -0
  136. package/dist/create-ZYEB7SHF.js.map +1 -0
  137. package/dist/creatives-LRSELC7Y.js +221 -0
  138. package/dist/creatives-LRSELC7Y.js.map +1 -0
  139. package/dist/creatives-SEQHJD2M.js +58 -0
  140. package/dist/credentials-LHPTUVVA.js +288 -0
  141. package/dist/credentials-LHPTUVVA.js.map +1 -0
  142. package/dist/critique-Q7GSZ5RP.js +1459 -0
  143. package/dist/critique-Q7GSZ5RP.js.map +1 -0
  144. package/dist/critique-RR2XOQCE.js +228 -0
  145. package/dist/critique-RR2XOQCE.js.map +1 -0
  146. package/dist/crm-J7EU32PL.js +319 -0
  147. package/dist/crm-J7EU32PL.js.map +1 -0
  148. package/dist/crm-MC444ZVU.js +225 -0
  149. package/dist/crm-MC444ZVU.js.map +1 -0
  150. package/dist/customers-LMSX33FO.js +57 -0
  151. package/dist/delete-BQBVATMF.js +55 -0
  152. package/dist/delete-BQBVATMF.js.map +1 -0
  153. package/dist/delete-K7A3AUPH.js +65 -0
  154. package/dist/delete-K7A3AUPH.js.map +1 -0
  155. package/dist/delete-VV2ICIHF.js +67 -0
  156. package/dist/delete-VV2ICIHF.js.map +1 -0
  157. package/dist/demographics-7GWUXXS6.js +139 -0
  158. package/dist/demographics-7GWUXXS6.js.map +1 -0
  159. package/dist/discard-3CLZ4DPD.js +67 -0
  160. package/dist/discard-3CLZ4DPD.js.map +1 -0
  161. package/dist/domain-ZS74BSE6.js +99 -0
  162. package/dist/domain-ZS74BSE6.js.map +1 -0
  163. package/dist/draft-J3B33RAZ.js +308 -0
  164. package/dist/draft-J3B33RAZ.js.map +1 -0
  165. package/dist/draft-MZLWVX3D.js +218 -0
  166. package/dist/draft-MZLWVX3D.js.map +1 -0
  167. package/dist/draft-R56PIXCV.js +333 -0
  168. package/dist/draft-R56PIXCV.js.map +1 -0
  169. package/dist/experiment-7RJ5X2LL.js +1397 -0
  170. package/dist/experiments-NOSJJMYI.js +234 -0
  171. package/dist/experiments-NOSJJMYI.js.map +1 -0
  172. package/dist/facets-E6SHYUAI.js +115 -0
  173. package/dist/facets-E6SHYUAI.js.map +1 -0
  174. package/dist/feedback-HXCQBV7S.js +107 -0
  175. package/dist/feedback-HXCQBV7S.js.map +1 -0
  176. package/dist/feedback-record-GXPYXNT6.js +261 -0
  177. package/dist/feedback-record-GXPYXNT6.js.map +1 -0
  178. package/dist/fetch-HMUGSRE4.js +177 -0
  179. package/dist/fetch-HMUGSRE4.js.map +1 -0
  180. package/dist/find-2EPXK5RF.js +134 -0
  181. package/dist/fit-W7UNFZT5.js +63 -0
  182. package/dist/flows-SO5J3M3X.js +248 -0
  183. package/dist/flows-SO5J3M3X.js.map +1 -0
  184. package/dist/fonts-N42UYWTX.js +37 -0
  185. package/dist/forecast-24LGJVLC.js +119 -0
  186. package/dist/forecast-24LGJVLC.js.map +1 -0
  187. package/dist/funnel-NYT36B3C.js +395 -0
  188. package/dist/funnel-NYT36B3C.js.map +1 -0
  189. package/dist/ga4-6EIQC2TG.js +55 -0
  190. package/dist/get-KAGO4EC5.js +80 -0
  191. package/dist/get-KAGO4EC5.js.map +1 -0
  192. package/dist/get-PZX27LQY.js +38 -0
  193. package/dist/get-PZX27LQY.js.map +1 -0
  194. package/dist/get-R5JAFHTH.js +57 -0
  195. package/dist/get-R5JAFHTH.js.map +1 -0
  196. package/dist/google-O5OI6QFU.js +136 -0
  197. package/dist/google-ads-6X4BHGUR.js +196 -0
  198. package/dist/google-ads-6X4BHGUR.js.map +1 -0
  199. package/dist/gsc-BM3T2GDL.js +30 -0
  200. package/dist/history-LGOWYLBE.js +134 -0
  201. package/dist/history-LGOWYLBE.js.map +1 -0
  202. package/dist/hubspot-LJB3ETUT.js +780 -0
  203. package/dist/hubspot-LJB3ETUT.js.map +1 -0
  204. package/dist/icon-B7DG53S5.js +137 -0
  205. package/dist/ideas-DYN2DMFN.js +41 -0
  206. package/dist/images-EQCUXEHF.js +92 -0
  207. package/dist/ingest-B46AY3QU.js +24 -0
  208. package/dist/ingest-T7ZS2R4U.js +108 -0
  209. package/dist/ingest-T7ZS2R4U.js.map +1 -0
  210. package/dist/inspect-BSNGAT2S.js +190 -0
  211. package/dist/inspect-BSNGAT2S.js.map +1 -0
  212. package/dist/inspiration-TCCKM4R7.js +53 -0
  213. package/dist/keyword-metrics-KNTIN4ZK.js +198 -0
  214. package/dist/keyword-metrics-KNTIN4ZK.js.map +1 -0
  215. package/dist/keywords-for-site-S4MXGXWR.js +129 -0
  216. package/dist/keywords-for-site-S4MXGXWR.js.map +1 -0
  217. package/dist/landing-WVPA7NBR.js +28 -0
  218. package/dist/leads-EINV5FK3.js +113 -0
  219. package/dist/leads-EINV5FK3.js.map +1 -0
  220. package/dist/learn-7Z2VR6MS.js +205 -0
  221. package/dist/learn-7Z2VR6MS.js.map +1 -0
  222. package/dist/line-item-writes-Z3TIB5KZ.js +209 -0
  223. package/dist/line-item-writes-Z3TIB5KZ.js.map +1 -0
  224. package/dist/line-items-OEWYOPFP.js +103 -0
  225. package/dist/link-KYHUIPJE.js +65 -0
  226. package/dist/link-KYHUIPJE.js.map +1 -0
  227. package/dist/linkedin-JVB4HXJC.js +1314 -0
  228. package/dist/linkedin-JVB4HXJC.js.map +1 -0
  229. package/dist/list-EORTO73V.js +93 -0
  230. package/dist/list-EORTO73V.js.map +1 -0
  231. package/dist/list-QQVLURKH.js +152 -0
  232. package/dist/list-QQVLURKH.js.map +1 -0
  233. package/dist/list-QWGKRUSM.js +65 -0
  234. package/dist/list-QWGKRUSM.js.map +1 -0
  235. package/dist/list-WRBWQASJ.js +50 -0
  236. package/dist/list-Z6NMNK3T.js +304 -0
  237. package/dist/list-Z6NMNK3T.js.map +1 -0
  238. package/dist/log-RUMKYPYK.js +93 -0
  239. package/dist/log-RUMKYPYK.js.map +1 -0
  240. package/dist/logo-QTSBKP2J.js +18 -0
  241. package/dist/make-IJGCQA7C.js +1354 -0
  242. package/dist/make-IJGCQA7C.js.map +1 -0
  243. package/dist/map-QZHIJFQT.js +434 -0
  244. package/dist/map-QZHIJFQT.js.map +1 -0
  245. package/dist/mcp-ZH2XDV5P.js +715 -0
  246. package/dist/mcp-ZH2XDV5P.js.map +1 -0
  247. package/dist/media-sources-SQ2RPDBO.js +35 -0
  248. package/dist/media-sources-SQ2RPDBO.js.map +1 -0
  249. package/dist/members-4YX7JEZM.js +45 -0
  250. package/dist/members-4YX7JEZM.js.map +1 -0
  251. package/dist/normalize-ABIWLRIT.js +142 -0
  252. package/dist/normalize-ABIWLRIT.js.map +1 -0
  253. package/dist/options-SVCQVTNE.js +123 -0
  254. package/dist/options-SVCQVTNE.js.map +1 -0
  255. package/dist/organization-FNKDC742.js +947 -0
  256. package/dist/organization-FNKDC742.js.map +1 -0
  257. package/dist/performance-HTU5FR2K.js +25 -0
  258. package/dist/plan-W2K45F7K.js +207 -0
  259. package/dist/posts-3DAPTBH2.js +34 -0
  260. package/dist/posts-3DAPTBH2.js.map +1 -0
  261. package/dist/promoted-tweet-writes-DD3CJNWW.js +181 -0
  262. package/dist/promoted-tweet-writes-DD3CJNWW.js.map +1 -0
  263. package/dist/promoted-tweets-TTWN5OMW.js +119 -0
  264. package/dist/publish-Z62KGDJ2.js +342 -0
  265. package/dist/publish-Z62KGDJ2.js.map +1 -0
  266. package/dist/reddit-6C3PT5CT.js +27 -0
  267. package/dist/refresh-HCQXVFVR.js +95 -0
  268. package/dist/refresh-HCQXVFVR.js.map +1 -0
  269. package/dist/refresh-ZCGH64OZ.js +42 -0
  270. package/dist/refresh-ZCGH64OZ.js.map +1 -0
  271. package/dist/release-FIHW2HCH.js +61 -0
  272. package/dist/release-FIHW2HCH.js.map +1 -0
  273. package/dist/remove-CBR7NVMI.js +51 -0
  274. package/dist/remove-CBR7NVMI.js.map +1 -0
  275. package/dist/remove-PUZP5GWN.js +49 -0
  276. package/dist/remove-PUZP5GWN.js.map +1 -0
  277. package/dist/reopen-EJGLRQWR.js +64 -0
  278. package/dist/reopen-EJGLRQWR.js.map +1 -0
  279. package/dist/rerun-TVBZXASH.js +91 -0
  280. package/dist/rerun-TVBZXASH.js.map +1 -0
  281. package/dist/research-L25D4WHQ.js +263 -0
  282. package/dist/research-L25D4WHQ.js.map +1 -0
  283. package/dist/research-YCMMQVK6.js +62 -0
  284. package/dist/reset-HKKCWKZ7.js +55 -0
  285. package/dist/reset-HKKCWKZ7.js.map +1 -0
  286. package/dist/reset-SRL6I6GP.js +55 -0
  287. package/dist/reset-SRL6I6GP.js.map +1 -0
  288. package/dist/resolve-POMTTAFR.js +122 -0
  289. package/dist/resolve-POMTTAFR.js.map +1 -0
  290. package/dist/retry-MEPTOAV2.js +61 -0
  291. package/dist/retry-MEPTOAV2.js.map +1 -0
  292. package/dist/retry-RNGM3KKA.js +63 -0
  293. package/dist/retry-RNGM3KKA.js.map +1 -0
  294. package/dist/revenue-X4KPTSAM.js +89 -0
  295. package/dist/revenue-X4KPTSAM.js.map +1 -0
  296. package/dist/rules-VK7YA23Q.js +97 -0
  297. package/dist/rules-VK7YA23Q.js.map +1 -0
  298. package/dist/rules-add-VG7AT6EG.js +463 -0
  299. package/dist/rules-add-VG7AT6EG.js.map +1 -0
  300. package/dist/run-DIDQSZU7.js +67 -0
  301. package/dist/run-DIDQSZU7.js.map +1 -0
  302. package/dist/run-SR7DJ7M5.js +66 -0
  303. package/dist/scaffold-ad-46GTFUMP.js +1512 -0
  304. package/dist/scaffold-ad-46GTFUMP.js.map +1 -0
  305. package/dist/scaffold-static-ad-U63V4UHR.js +1006 -0
  306. package/dist/scaffold-static-ad-U63V4UHR.js.map +1 -0
  307. package/dist/scaffold-video-4DNTURH6.js +884 -0
  308. package/dist/scaffold-video-4DNTURH6.js.map +1 -0
  309. package/dist/schedule-JO66N7XO.js +62 -0
  310. package/dist/schedule-JO66N7XO.js.map +1 -0
  311. package/dist/schedule-JZBIX6LH.js +67 -0
  312. package/dist/schedule-JZBIX6LH.js.map +1 -0
  313. package/dist/scheduled-agents-N63EZNY6.js +50 -0
  314. package/dist/schema-B2XANMEY.js +133 -0
  315. package/dist/schema-B2XANMEY.js.map +1 -0
  316. package/dist/schema-C6SGBNA6.js +69 -0
  317. package/dist/search-7GHS3OUZ.js +51 -0
  318. package/dist/search-7GHS3OUZ.js.map +1 -0
  319. package/dist/search-W5HZUJA2.js +175 -0
  320. package/dist/search-W5HZUJA2.js.map +1 -0
  321. package/dist/select-LMGLNFWB.js +102 -0
  322. package/dist/select-LMGLNFWB.js.map +1 -0
  323. package/dist/set-prompt-M5E3UZDM.js +194 -0
  324. package/dist/set-prompt-M5E3UZDM.js.map +1 -0
  325. package/dist/setup-links-ERBQSKAB.js +142 -0
  326. package/dist/setup-links-ERBQSKAB.js.map +1 -0
  327. package/dist/site-PNVFJRYK.js +178 -0
  328. package/dist/site-PNVFJRYK.js.map +1 -0
  329. package/dist/sources-DMZJPLKC.js +455 -0
  330. package/dist/sources-DMZJPLKC.js.map +1 -0
  331. package/dist/sources-HN3GCEDX.js +30 -0
  332. package/dist/stale-VWN25WTL.js +72 -0
  333. package/dist/stale-VWN25WTL.js.map +1 -0
  334. package/dist/stats-CVF6AC7R.js +34 -0
  335. package/dist/status-SF7DTPCJ.js +63 -0
  336. package/dist/status-SF7DTPCJ.js.map +1 -0
  337. package/dist/stock-4LPQ6SM7.js +179 -0
  338. package/dist/studio-NZ6WQ7OE.js +49 -0
  339. package/dist/suggest-WMMEQCUH.js +66 -0
  340. package/dist/suggest-WMMEQCUH.js.map +1 -0
  341. package/dist/sync-F7VNZLWY.js +55 -0
  342. package/dist/sync-F7VNZLWY.js.map +1 -0
  343. package/dist/sync-HVNDPBOD.js +55 -0
  344. package/dist/sync-HVNDPBOD.js.map +1 -0
  345. package/dist/sync-definition-CKEUYKWN.js +65 -0
  346. package/dist/tag-KTQ2FV5C.js +57 -0
  347. package/dist/tag-KTQ2FV5C.js.map +1 -0
  348. package/dist/tag-manager-FLXXLNKP.js +43 -0
  349. package/dist/tags-EUOOSAKN.js +26 -0
  350. package/dist/tags-KOMAP2G5.js +21 -0
  351. package/dist/tags-KOMAP2G5.js.map +1 -0
  352. package/dist/tags-TKXJGTR3.js +21 -0
  353. package/dist/tags-TKXJGTR3.js.map +1 -0
  354. package/dist/tags-VWIPDCUA.js +225 -0
  355. package/dist/tags-VWIPDCUA.js.map +1 -0
  356. package/dist/tags-XAB4HWGW.js +21 -0
  357. package/dist/tags-XAB4HWGW.js.map +1 -0
  358. package/dist/targeting-criteria-HE7K52WN.js +113 -0
  359. package/dist/targets-NA4XPDBF.js +104 -0
  360. package/dist/targets-NA4XPDBF.js.map +1 -0
  361. package/dist/testimonials-3Q5XM7JD.js +32 -0
  362. package/dist/top-companies-TKO4QGPJ.js +109 -0
  363. package/dist/top-companies-TKO4QGPJ.js.map +1 -0
  364. package/dist/translate-YVIZ5T44.js +605 -0
  365. package/dist/translate-YVIZ5T44.js.map +1 -0
  366. package/dist/triggers-QX7VW7UO.js +143 -0
  367. package/dist/triggers-QX7VW7UO.js.map +1 -0
  368. package/dist/unlink-64SRPUNG.js +68 -0
  369. package/dist/unlink-64SRPUNG.js.map +1 -0
  370. package/dist/unstage-5X2MOUMF.js +86 -0
  371. package/dist/unstage-5X2MOUMF.js.map +1 -0
  372. package/dist/update-22ZBHURE.js +81 -0
  373. package/dist/update-22ZBHURE.js.map +1 -0
  374. package/dist/update-2LTPSGWT.js +99 -0
  375. package/dist/update-2LTPSGWT.js.map +1 -0
  376. package/dist/update-DOKS7ATM.js +189 -0
  377. package/dist/update-DOKS7ATM.js.map +1 -0
  378. package/dist/update-FB6X463M.js +64 -0
  379. package/dist/update-FB6X463M.js.map +1 -0
  380. package/dist/update-QIZ7XFAM.js +153 -0
  381. package/dist/update-QIZ7XFAM.js.map +1 -0
  382. package/dist/upload-XJ7TUVIK.js +127 -0
  383. package/dist/upload-XJ7TUVIK.js.map +1 -0
  384. package/dist/url-params-KLQOLNPS.js +99 -0
  385. package/dist/url-params-KLQOLNPS.js.map +1 -0
  386. package/dist/validate-YTBJBG44.js +118 -0
  387. package/dist/validate-YTBJBG44.js.map +1 -0
  388. package/dist/videos-WAPUPJVT.js +39 -0
  389. package/dist/viewer-check-GHQA3UY2.js +81 -0
  390. package/dist/web-6JMWERTT.js +141 -0
  391. package/dist/web-6JMWERTT.js.map +1 -0
  392. package/dist/winning-ads-XCVUAIOU.js +86 -0
  393. package/dist/write-commands-N74CDMQM.js +1493 -0
  394. package/dist/write-commands-N74CDMQM.js.map +1 -0
  395. package/dist/x-SI4KYDEY.js +47 -0
  396. package/package.json +1 -1
  397. package/dist/account-UHNR5KTE.js +0 -79
  398. package/dist/account-UHNR5KTE.js.map +0 -1
  399. package/dist/accounts-KMLXHADA.js +0 -77
  400. package/dist/accounts-KMLXHADA.js.map +0 -1
  401. package/dist/accounts-QDGNTSTV.js +0 -611
  402. package/dist/accounts-QDGNTSTV.js.map +0 -1
  403. package/dist/actions-QL5UD2W4.js +0 -55
  404. package/dist/activecampaign-5OD45ROS.js +0 -935
  405. package/dist/activecampaign-5OD45ROS.js.map +0 -1
  406. package/dist/add-2F7BEVYD.js +0 -105
  407. package/dist/add-2F7BEVYD.js.map +0 -1
  408. package/dist/add-6K6LO7CM.js +0 -104
  409. package/dist/add-6K6LO7CM.js.map +0 -1
  410. package/dist/add-LYDJZDGO.js +0 -302
  411. package/dist/add-LYDJZDGO.js.map +0 -1
  412. package/dist/ads-DHPJFU52.js +0 -40
  413. package/dist/advertisers-23LU7GTV.js +0 -120
  414. package/dist/advertisers-23LU7GTV.js.map +0 -1
  415. package/dist/analytics-DVD4OBBR.js +0 -1976
  416. package/dist/analytics-DVD4OBBR.js.map +0 -1
  417. package/dist/analytics-HO2SLL4W.js +0 -433
  418. package/dist/analytics-HO2SLL4W.js.map +0 -1
  419. package/dist/assign-CLKJKH2B.js +0 -77
  420. package/dist/assign-CLKJKH2B.js.map +0 -1
  421. package/dist/audience-size-NNYYXODL.js +0 -73
  422. package/dist/audience-size-NNYYXODL.js.map +0 -1
  423. package/dist/audit-KB4P2XGS.js +0 -151
  424. package/dist/audit-KB4P2XGS.js.map +0 -1
  425. package/dist/autocomplete-VZD2SMTE.js +0 -111
  426. package/dist/autocomplete-VZD2SMTE.js.map +0 -1
  427. package/dist/avatars-FKOO6VZ2.js +0 -38
  428. package/dist/bid-pricing-6LLXOLLI.js +0 -100
  429. package/dist/bid-pricing-6LLXOLLI.js.map +0 -1
  430. package/dist/brand-NNWHBIAX.js +0 -22
  431. package/dist/brief-CPJQWT6W.js +0 -538
  432. package/dist/brief-CPJQWT6W.js.map +0 -1
  433. package/dist/campaign-groups-YPYNXOWU.js +0 -95
  434. package/dist/campaign-groups-YPYNXOWU.js.map +0 -1
  435. package/dist/campaign-writes-UJ4L2O6G.js +0 -165
  436. package/dist/campaign-writes-UJ4L2O6G.js.map +0 -1
  437. package/dist/campaigns-HLBZRH5A.js +0 -107
  438. package/dist/campaigns-N44ZDGB5.js +0 -109
  439. package/dist/campaigns-N44ZDGB5.js.map +0 -1
  440. package/dist/canvas-D64GLWUO.js +0 -46
  441. package/dist/capabilities-LWXCWMIY.js +0 -144
  442. package/dist/capabilities-LWXCWMIY.js.map +0 -1
  443. package/dist/chatgpt-YI6YNACI.js +0 -47
  444. package/dist/chats-7WGC2CVW.js +0 -276
  445. package/dist/chats-7WGC2CVW.js.map +0 -1
  446. package/dist/check-EH6BXWWL.js +0 -104
  447. package/dist/check-EH6BXWWL.js.map +0 -1
  448. package/dist/chunk-237WE5LX.js +0 -455
  449. package/dist/chunk-237WE5LX.js.map +0 -1
  450. package/dist/chunk-2B772ZEA.js +0 -169
  451. package/dist/chunk-2KRK667G.js +0 -51
  452. package/dist/chunk-2TVXJPGR.js +0 -103
  453. package/dist/chunk-3AMLOCXY.js +0 -392
  454. package/dist/chunk-3B5LPK6D.js +0 -658
  455. package/dist/chunk-3B5LPK6D.js.map +0 -1
  456. package/dist/chunk-3N5A44NQ.js +0 -122
  457. package/dist/chunk-3WAYZQNV.js +0 -61
  458. package/dist/chunk-5A257KJA.js +0 -160
  459. package/dist/chunk-6QGS3RQP.js +0 -363
  460. package/dist/chunk-AFD32O4A.js +0 -494
  461. package/dist/chunk-AW2GKIGS.js +0 -433
  462. package/dist/chunk-CYSBNCPX.js +0 -55
  463. package/dist/chunk-CYSBNCPX.js.map +0 -1
  464. package/dist/chunk-DAO63OOP.js +0 -6352
  465. package/dist/chunk-DAO63OOP.js.map +0 -1
  466. package/dist/chunk-EMQUW6JB.js +0 -942
  467. package/dist/chunk-EW3JEKIV.js +0 -139
  468. package/dist/chunk-FBFWMTOP.js +0 -19
  469. package/dist/chunk-GXDLWBOY.js +0 -73
  470. package/dist/chunk-GXDLWBOY.js.map +0 -1
  471. package/dist/chunk-GXGYTFZA.js +0 -8939
  472. package/dist/chunk-I7J7YQXZ.js +0 -142
  473. package/dist/chunk-IBY44U2M.js +0 -1079
  474. package/dist/chunk-IFXGCI33.js +0 -297
  475. package/dist/chunk-IKLHXGMF.js +0 -91
  476. package/dist/chunk-IYTPWAN3.js +0 -604
  477. package/dist/chunk-J3CWAERS.js +0 -3868
  478. package/dist/chunk-JH2L5CQD.js +0 -206
  479. package/dist/chunk-JUVVCA7B.js +0 -97
  480. package/dist/chunk-MK6XJUCQ.js +0 -197
  481. package/dist/chunk-N3I6ZXR7.js +0 -66
  482. package/dist/chunk-NBO2NSAW.js +0 -592
  483. package/dist/chunk-NEU5QD2C.js +0 -249
  484. package/dist/chunk-NKIBXOHT.js +0 -344
  485. package/dist/chunk-OE3MIV4F.js +0 -547
  486. package/dist/chunk-P2MFWJR3.js +0 -903
  487. package/dist/chunk-PHCIFBP3.js +0 -89
  488. package/dist/chunk-PTUXBO5O.js +0 -224
  489. package/dist/chunk-Q3LXLWZY.js +0 -275
  490. package/dist/chunk-Q5WBTVA7.js +0 -455
  491. package/dist/chunk-RDEAVCMF.js +0 -399
  492. package/dist/chunk-RDEAVCMF.js.map +0 -1
  493. package/dist/chunk-RGMKXNQP.js +0 -23
  494. package/dist/chunk-RZTKCCUL.js +0 -831
  495. package/dist/chunk-TTKBNBQF.js +0 -156
  496. package/dist/chunk-VB3XUR6A.js +0 -207
  497. package/dist/chunk-XCKINS7K.js +0 -57
  498. package/dist/chunk-Y6GKV7CU.js +0 -346
  499. package/dist/chunk-Y6GKV7CU.js.map +0 -1
  500. package/dist/chunk-Z2GQREJY.js +0 -159
  501. package/dist/chunk-ZDAVSTEE.js +0 -172
  502. package/dist/chunk-ZXCSOVS5.js +0 -191
  503. package/dist/claim-SVDCQ2AI.js +0 -197
  504. package/dist/claim-SVDCQ2AI.js.map +0 -1
  505. package/dist/companies-BYMYQK6A.js +0 -195
  506. package/dist/companies-BYMYQK6A.js.map +0 -1
  507. package/dist/complete-NEH3MWRI.js +0 -81
  508. package/dist/complete-NEH3MWRI.js.map +0 -1
  509. package/dist/connect-5PGL7ZOM.js +0 -42
  510. package/dist/conversation-CSOKJXDW.js +0 -93
  511. package/dist/conversation-CSOKJXDW.js.map +0 -1
  512. package/dist/conversions-4JOTTFEH.js +0 -135
  513. package/dist/conversions-4JOTTFEH.js.map +0 -1
  514. package/dist/create-2XYMBULY.js +0 -207
  515. package/dist/create-2XYMBULY.js.map +0 -1
  516. package/dist/create-56PTZABQ.js +0 -235
  517. package/dist/create-56PTZABQ.js.map +0 -1
  518. package/dist/create-D6S6TGWY.js +0 -59
  519. package/dist/create-D6S6TGWY.js.map +0 -1
  520. package/dist/create-SMW4O5PC.js +0 -132
  521. package/dist/create-SMW4O5PC.js.map +0 -1
  522. package/dist/creatives-OO76DAFS.js +0 -58
  523. package/dist/creatives-VJUYWJL6.js +0 -182
  524. package/dist/creatives-VJUYWJL6.js.map +0 -1
  525. package/dist/credentials-2ONYUJW6.js +0 -287
  526. package/dist/credentials-2ONYUJW6.js.map +0 -1
  527. package/dist/critique-NDDFSGPE.js +0 -1458
  528. package/dist/critique-NDDFSGPE.js.map +0 -1
  529. package/dist/critique-YXZVMLZ4.js +0 -227
  530. package/dist/critique-YXZVMLZ4.js.map +0 -1
  531. package/dist/crm-Q6CEP5XV.js +0 -224
  532. package/dist/crm-Q6CEP5XV.js.map +0 -1
  533. package/dist/crm-WRONZYDH.js +0 -318
  534. package/dist/crm-WRONZYDH.js.map +0 -1
  535. package/dist/customers-2EFYSCU2.js +0 -56
  536. package/dist/delete-7WEVC3FS.js +0 -66
  537. package/dist/delete-7WEVC3FS.js.map +0 -1
  538. package/dist/delete-RBWK255M.js +0 -54
  539. package/dist/delete-RBWK255M.js.map +0 -1
  540. package/dist/delete-VN4WWMQF.js +0 -64
  541. package/dist/delete-VN4WWMQF.js.map +0 -1
  542. package/dist/demographics-I5XZ435C.js +0 -138
  543. package/dist/demographics-I5XZ435C.js.map +0 -1
  544. package/dist/discard-XJLIXTNM.js +0 -66
  545. package/dist/discard-XJLIXTNM.js.map +0 -1
  546. package/dist/domain-M7AEGAYI.js +0 -98
  547. package/dist/domain-M7AEGAYI.js.map +0 -1
  548. package/dist/draft-5DQI4W5F.js +0 -306
  549. package/dist/draft-5DQI4W5F.js.map +0 -1
  550. package/dist/draft-7IIYHSY2.js +0 -332
  551. package/dist/draft-7IIYHSY2.js.map +0 -1
  552. package/dist/draft-CN6GKVBF.js +0 -217
  553. package/dist/draft-CN6GKVBF.js.map +0 -1
  554. package/dist/experiment-IDDWRCJ7.js +0 -1397
  555. package/dist/facets-ZLZ6LIHN.js +0 -114
  556. package/dist/facets-ZLZ6LIHN.js.map +0 -1
  557. package/dist/feedback-7LEX2P5Q.js +0 -106
  558. package/dist/feedback-7LEX2P5Q.js.map +0 -1
  559. package/dist/feedback-record-P4JJ63KA.js +0 -260
  560. package/dist/feedback-record-P4JJ63KA.js.map +0 -1
  561. package/dist/fetch-MIVCEHXZ.js +0 -176
  562. package/dist/fetch-MIVCEHXZ.js.map +0 -1
  563. package/dist/find-VHN34MWL.js +0 -134
  564. package/dist/fit-SS6HSZPU.js +0 -62
  565. package/dist/flows-UTIIHDNE.js +0 -247
  566. package/dist/flows-UTIIHDNE.js.map +0 -1
  567. package/dist/fonts-YPNN7ZJP.js +0 -36
  568. package/dist/forecast-OBSHG2GJ.js +0 -118
  569. package/dist/forecast-OBSHG2GJ.js.map +0 -1
  570. package/dist/funnel-Z2VLXUEQ.js +0 -394
  571. package/dist/funnel-Z2VLXUEQ.js.map +0 -1
  572. package/dist/ga4-ZPAEF2G2.js +0 -55
  573. package/dist/get-MDAO6I7T.js +0 -56
  574. package/dist/get-MDAO6I7T.js.map +0 -1
  575. package/dist/get-ZB553BSH.js +0 -79
  576. package/dist/get-ZB553BSH.js.map +0 -1
  577. package/dist/google-C3X7O2UO.js +0 -136
  578. package/dist/google-ads-FTWL772L.js +0 -195
  579. package/dist/google-ads-FTWL772L.js.map +0 -1
  580. package/dist/gsc-SDDHGTZK.js +0 -30
  581. package/dist/history-WKJYKDMG.js +0 -133
  582. package/dist/history-WKJYKDMG.js.map +0 -1
  583. package/dist/hubspot-EPHVEPOO.js +0 -779
  584. package/dist/hubspot-EPHVEPOO.js.map +0 -1
  585. package/dist/icon-MYPDC6FM.js +0 -137
  586. package/dist/ideas-3PBH7VEX.js +0 -40
  587. package/dist/images-J35C3WG4.js +0 -92
  588. package/dist/ingest-5QOPUKFE.js +0 -107
  589. package/dist/ingest-5QOPUKFE.js.map +0 -1
  590. package/dist/ingest-OKUYP632.js +0 -23
  591. package/dist/inspect-PMNCP6MV.js +0 -189
  592. package/dist/inspect-PMNCP6MV.js.map +0 -1
  593. package/dist/inspiration-QAL7NS7G.js +0 -53
  594. package/dist/keyword-metrics-R752SJIT.js +0 -197
  595. package/dist/keyword-metrics-R752SJIT.js.map +0 -1
  596. package/dist/keywords-for-site-7UWPJYQF.js +0 -128
  597. package/dist/keywords-for-site-7UWPJYQF.js.map +0 -1
  598. package/dist/landing-CBVIOGJ5.js +0 -28
  599. package/dist/leads-LIJS6Y5W.js +0 -90
  600. package/dist/leads-LIJS6Y5W.js.map +0 -1
  601. package/dist/learn-N6QV7GXA.js +0 -204
  602. package/dist/learn-N6QV7GXA.js.map +0 -1
  603. package/dist/line-item-writes-3WPJXKIL.js +0 -208
  604. package/dist/line-item-writes-3WPJXKIL.js.map +0 -1
  605. package/dist/line-items-ZOFKOGAA.js +0 -103
  606. package/dist/link-DDRQKOUL.js +0 -64
  607. package/dist/link-DDRQKOUL.js.map +0 -1
  608. package/dist/linkedin-UWZCF66X.js +0 -1057
  609. package/dist/linkedin-UWZCF66X.js.map +0 -1
  610. package/dist/list-5PLXVPLB.js +0 -151
  611. package/dist/list-5PLXVPLB.js.map +0 -1
  612. package/dist/list-RC2NX6AX.js +0 -50
  613. package/dist/list-VSJISE7U.js +0 -303
  614. package/dist/list-VSJISE7U.js.map +0 -1
  615. package/dist/list-WTVOBQYX.js +0 -64
  616. package/dist/list-WTVOBQYX.js.map +0 -1
  617. package/dist/log-YKKPROLZ.js +0 -92
  618. package/dist/log-YKKPROLZ.js.map +0 -1
  619. package/dist/logo-WE2UELX6.js +0 -18
  620. package/dist/make-RNOWBLZQ.js +0 -1353
  621. package/dist/make-RNOWBLZQ.js.map +0 -1
  622. package/dist/map-WTDPQLVO.js +0 -433
  623. package/dist/map-WTDPQLVO.js.map +0 -1
  624. package/dist/mcp-XJNSCPP3.js +0 -714
  625. package/dist/mcp-XJNSCPP3.js.map +0 -1
  626. package/dist/media-sources-JGBDDXZ5.js +0 -32
  627. package/dist/media-sources-JGBDDXZ5.js.map +0 -1
  628. package/dist/members-O3BTMRXX.js +0 -44
  629. package/dist/members-O3BTMRXX.js.map +0 -1
  630. package/dist/normalize-R5AYLA2J.js +0 -141
  631. package/dist/normalize-R5AYLA2J.js.map +0 -1
  632. package/dist/options-AILRY7JY.js +0 -122
  633. package/dist/options-AILRY7JY.js.map +0 -1
  634. package/dist/organization-KJJXZLVK.js +0 -946
  635. package/dist/organization-KJJXZLVK.js.map +0 -1
  636. package/dist/performance-7YU4HOGH.js +0 -24
  637. package/dist/plan-ZC4JY4IG.js +0 -207
  638. package/dist/promoted-tweet-writes-TNELWPVG.js +0 -180
  639. package/dist/promoted-tweet-writes-TNELWPVG.js.map +0 -1
  640. package/dist/promoted-tweets-76WKUFJQ.js +0 -119
  641. package/dist/publish-BKLHCKHB.js +0 -341
  642. package/dist/publish-BKLHCKHB.js.map +0 -1
  643. package/dist/reddit-YK3YUZEI.js +0 -26
  644. package/dist/refresh-WIII7KXB.js +0 -94
  645. package/dist/refresh-WIII7KXB.js.map +0 -1
  646. package/dist/release-ZHXYQI7G.js +0 -60
  647. package/dist/release-ZHXYQI7G.js.map +0 -1
  648. package/dist/remove-NOX4BXWK.js +0 -50
  649. package/dist/remove-NOX4BXWK.js.map +0 -1
  650. package/dist/remove-VLWRCOEZ.js +0 -48
  651. package/dist/remove-VLWRCOEZ.js.map +0 -1
  652. package/dist/reopen-NLWKK5HB.js +0 -63
  653. package/dist/reopen-NLWKK5HB.js.map +0 -1
  654. package/dist/rerun-DZWQNMZQ.js +0 -90
  655. package/dist/rerun-DZWQNMZQ.js.map +0 -1
  656. package/dist/research-Q3P76RHN.js +0 -62
  657. package/dist/research-UDZBCDNX.js +0 -262
  658. package/dist/research-UDZBCDNX.js.map +0 -1
  659. package/dist/reset-5UHFX7QY.js +0 -54
  660. package/dist/reset-5UHFX7QY.js.map +0 -1
  661. package/dist/reset-MTRJQUP7.js +0 -54
  662. package/dist/reset-MTRJQUP7.js.map +0 -1
  663. package/dist/resolve-DA72VT7Q.js +0 -121
  664. package/dist/resolve-DA72VT7Q.js.map +0 -1
  665. package/dist/retry-LQUBX5TK.js +0 -62
  666. package/dist/retry-LQUBX5TK.js.map +0 -1
  667. package/dist/retry-U6F4CS6O.js +0 -60
  668. package/dist/retry-U6F4CS6O.js.map +0 -1
  669. package/dist/rules-VS5PZ7VO.js +0 -96
  670. package/dist/rules-VS5PZ7VO.js.map +0 -1
  671. package/dist/rules-add-LMVZYDXE.js +0 -462
  672. package/dist/rules-add-LMVZYDXE.js.map +0 -1
  673. package/dist/run-6PRA2YSD.js +0 -65
  674. package/dist/run-R6COFNOR.js +0 -66
  675. package/dist/run-R6COFNOR.js.map +0 -1
  676. package/dist/scaffold-ad-3OVJ7VZQ.js +0 -1511
  677. package/dist/scaffold-ad-3OVJ7VZQ.js.map +0 -1
  678. package/dist/scaffold-static-ad-DDRA3Q5I.js +0 -1005
  679. package/dist/scaffold-static-ad-DDRA3Q5I.js.map +0 -1
  680. package/dist/scaffold-video-3JZYFYFU.js +0 -883
  681. package/dist/scaffold-video-3JZYFYFU.js.map +0 -1
  682. package/dist/schedule-BRSYHMKR.js +0 -66
  683. package/dist/schedule-BRSYHMKR.js.map +0 -1
  684. package/dist/schedule-ED2YDUPY.js +0 -61
  685. package/dist/schedule-ED2YDUPY.js.map +0 -1
  686. package/dist/scheduled-agents-5P67MVGX.js +0 -50
  687. package/dist/schema-4XVKERSA.js +0 -132
  688. package/dist/schema-4XVKERSA.js.map +0 -1
  689. package/dist/schema-RRAQW3OS.js +0 -69
  690. package/dist/search-Y2UMIQ57.js +0 -174
  691. package/dist/search-Y2UMIQ57.js.map +0 -1
  692. package/dist/select-OZ4E6VLF.js +0 -101
  693. package/dist/select-OZ4E6VLF.js.map +0 -1
  694. package/dist/set-prompt-O4YAE4CE.js +0 -193
  695. package/dist/set-prompt-O4YAE4CE.js.map +0 -1
  696. package/dist/setup-links-2GJYCV2A.js +0 -141
  697. package/dist/setup-links-2GJYCV2A.js.map +0 -1
  698. package/dist/site-47B6V2UX.js +0 -177
  699. package/dist/site-47B6V2UX.js.map +0 -1
  700. package/dist/sources-DXPZAPQ7.js +0 -454
  701. package/dist/sources-DXPZAPQ7.js.map +0 -1
  702. package/dist/sources-NDXYTASG.js +0 -30
  703. package/dist/stale-VLVBO2L6.js +0 -71
  704. package/dist/stale-VLVBO2L6.js.map +0 -1
  705. package/dist/stats-37OFAMPW.js +0 -34
  706. package/dist/status-4ODD46XY.js +0 -62
  707. package/dist/status-4ODD46XY.js.map +0 -1
  708. package/dist/stock-6R5E7MJX.js +0 -179
  709. package/dist/studio-LEIGL3Q7.js +0 -49
  710. package/dist/sync-EKGEWE53.js +0 -54
  711. package/dist/sync-EKGEWE53.js.map +0 -1
  712. package/dist/sync-TKNVBUDM.js +0 -54
  713. package/dist/sync-TKNVBUDM.js.map +0 -1
  714. package/dist/sync-definition-M5R3H3TP.js +0 -64
  715. package/dist/tag-manager-3Q55PBEW.js +0 -43
  716. package/dist/tags-4N5UUUN6.js +0 -26
  717. package/dist/tags-5NHIAD5A.js +0 -20
  718. package/dist/tags-5NHIAD5A.js.map +0 -1
  719. package/dist/tags-UUKWSWCN.js +0 -20
  720. package/dist/tags-UUKWSWCN.js.map +0 -1
  721. package/dist/tags-VK7B5DJF.js +0 -20
  722. package/dist/tags-VK7B5DJF.js.map +0 -1
  723. package/dist/tags-XAHIB3WA.js +0 -224
  724. package/dist/tags-XAHIB3WA.js.map +0 -1
  725. package/dist/targeting-criteria-AVARWV2G.js +0 -113
  726. package/dist/targets-6RYLQRID.js +0 -103
  727. package/dist/targets-6RYLQRID.js.map +0 -1
  728. package/dist/testimonials-6TF6BOFN.js +0 -32
  729. package/dist/top-companies-45EHRCJD.js +0 -108
  730. package/dist/top-companies-45EHRCJD.js.map +0 -1
  731. package/dist/translate-VHLBACCE.js +0 -604
  732. package/dist/translate-VHLBACCE.js.map +0 -1
  733. package/dist/triggers-ERQONJNO.js +0 -142
  734. package/dist/triggers-ERQONJNO.js.map +0 -1
  735. package/dist/unlink-TPDO6JNF.js +0 -67
  736. package/dist/unlink-TPDO6JNF.js.map +0 -1
  737. package/dist/unstage-YKKQQ7LW.js +0 -85
  738. package/dist/unstage-YKKQQ7LW.js.map +0 -1
  739. package/dist/update-43WU6X7R.js +0 -63
  740. package/dist/update-43WU6X7R.js.map +0 -1
  741. package/dist/update-CAHLAXWO.js +0 -98
  742. package/dist/update-CAHLAXWO.js.map +0 -1
  743. package/dist/update-NGH6YADN.js +0 -152
  744. package/dist/update-NGH6YADN.js.map +0 -1
  745. package/dist/update-SPJIHHLE.js +0 -188
  746. package/dist/update-SPJIHHLE.js.map +0 -1
  747. package/dist/upload-ACESIZIZ.js +0 -126
  748. package/dist/upload-ACESIZIZ.js.map +0 -1
  749. package/dist/url-params-MIXEDBF7.js +0 -98
  750. package/dist/url-params-MIXEDBF7.js.map +0 -1
  751. package/dist/validate-XJJA7ULE.js +0 -117
  752. package/dist/validate-XJJA7ULE.js.map +0 -1
  753. package/dist/videos-LBXPG7WC.js +0 -39
  754. package/dist/viewer-check-7VJ3GUZX.js +0 -80
  755. package/dist/web-EWQJC2SD.js +0 -140
  756. package/dist/web-EWQJC2SD.js.map +0 -1
  757. package/dist/winning-ads-SAOJAKEQ.js +0 -86
  758. package/dist/write-commands-QPDE4GWW.js +0 -1024
  759. package/dist/write-commands-QPDE4GWW.js.map +0 -1
  760. package/dist/x-LXOJPCRF.js +0 -47
  761. /package/dist/{actions-QL5UD2W4.js.map → actions-FMNJSOBA.js.map} +0 -0
  762. /package/dist/{ads-DHPJFU52.js.map → ads-OLXSDPD6.js.map} +0 -0
  763. /package/dist/{avatars-FKOO6VZ2.js.map → avatars-I4H3NMEJ.js.map} +0 -0
  764. /package/dist/{brand-NNWHBIAX.js.map → brand-3V7ECY7D.js.map} +0 -0
  765. /package/dist/{campaigns-HLBZRH5A.js.map → campaigns-MCB76NPQ.js.map} +0 -0
  766. /package/dist/{canvas-D64GLWUO.js.map → canvas-JCNKMGCG.js.map} +0 -0
  767. /package/dist/{chatgpt-YI6YNACI.js.map → chatgpt-XFZ42NXC.js.map} +0 -0
  768. /package/dist/{chunk-VB3XUR6A.js.map → chunk-2YTBPRRG.js.map} +0 -0
  769. /package/dist/{chunk-JUVVCA7B.js.map → chunk-3SNCMEJB.js.map} +0 -0
  770. /package/dist/{chunk-RGMKXNQP.js.map → chunk-7QGFO35A.js.map} +0 -0
  771. /package/dist/{chunk-ZXCSOVS5.js.map → chunk-AV7ALENU.js.map} +0 -0
  772. /package/dist/{chunk-IYTPWAN3.js.map → chunk-BRLFQ4VX.js.map} +0 -0
  773. /package/dist/{chunk-RZTKCCUL.js.map → chunk-DJE7UXYT.js.map} +0 -0
  774. /package/dist/{chunk-EW3JEKIV.js.map → chunk-EFWXYUSK.js.map} +0 -0
  775. /package/dist/{chunk-J3CWAERS.js.map → chunk-EONSZAZB.js.map} +0 -0
  776. /package/dist/{chunk-PHCIFBP3.js.map → chunk-FG3MV2XM.js.map} +0 -0
  777. /package/dist/{chunk-3AMLOCXY.js.map → chunk-FKG476GH.js.map} +0 -0
  778. /package/dist/{chunk-IFXGCI33.js.map → chunk-FUGQSIYG.js.map} +0 -0
  779. /package/dist/{chunk-Q3LXLWZY.js.map → chunk-HPLHAHG5.js.map} +0 -0
  780. /package/dist/{chunk-3N5A44NQ.js.map → chunk-I24YT2KG.js.map} +0 -0
  781. /package/dist/{chunk-P2MFWJR3.js.map → chunk-IFDZZOUC.js.map} +0 -0
  782. /package/dist/{chunk-Q5WBTVA7.js.map → chunk-JVVUI55M.js.map} +0 -0
  783. /package/dist/{chunk-6QGS3RQP.js.map → chunk-KKSHEPBY.js.map} +0 -0
  784. /package/dist/{chunk-OE3MIV4F.js.map → chunk-KQ7RCLGC.js.map} +0 -0
  785. /package/dist/{chunk-ZDAVSTEE.js.map → chunk-L7WMS5PW.js.map} +0 -0
  786. /package/dist/{chunk-FBFWMTOP.js.map → chunk-LBRO4MTL.js.map} +0 -0
  787. /package/dist/{chunk-PTUXBO5O.js.map → chunk-LNRPOULW.js.map} +0 -0
  788. /package/dist/{chunk-EMQUW6JB.js.map → chunk-LX6WC2XZ.js.map} +0 -0
  789. /package/dist/{chunk-I7J7YQXZ.js.map → chunk-MMGTJBM6.js.map} +0 -0
  790. /package/dist/{chunk-2KRK667G.js.map → chunk-OEZYSL3U.js.map} +0 -0
  791. /package/dist/{chunk-2TVXJPGR.js.map → chunk-OOVHBMQB.js.map} +0 -0
  792. /package/dist/{chunk-Z2GQREJY.js.map → chunk-PTH7VWKK.js.map} +0 -0
  793. /package/dist/{chunk-N3I6ZXR7.js.map → chunk-QZF4BVKL.js.map} +0 -0
  794. /package/dist/{chunk-3WAYZQNV.js.map → chunk-RITUSBYO.js.map} +0 -0
  795. /package/dist/{chunk-JH2L5CQD.js.map → chunk-SSTL3A7Z.js.map} +0 -0
  796. /package/dist/{chunk-2B772ZEA.js.map → chunk-TD4SO6TR.js.map} +0 -0
  797. /package/dist/{chunk-IKLHXGMF.js.map → chunk-UZ4RTOFG.js.map} +0 -0
  798. /package/dist/{chunk-NBO2NSAW.js.map → chunk-VAX7PFQV.js.map} +0 -0
  799. /package/dist/{chunk-AFD32O4A.js.map → chunk-VDRSZK4P.js.map} +0 -0
  800. /package/dist/{chunk-NKIBXOHT.js.map → chunk-VNU2EYD4.js.map} +0 -0
  801. /package/dist/{chunk-TTKBNBQF.js.map → chunk-WT4WDIXA.js.map} +0 -0
  802. /package/dist/{chunk-5A257KJA.js.map → chunk-XEX23CIB.js.map} +0 -0
  803. /package/dist/{chunk-GXGYTFZA.js.map → chunk-XXDF25BW.js.map} +0 -0
  804. /package/dist/{chunk-NEU5QD2C.js.map → chunk-YJ3LSFMX.js.map} +0 -0
  805. /package/dist/{chunk-MK6XJUCQ.js.map → chunk-YVK5RT3B.js.map} +0 -0
  806. /package/dist/{chunk-AW2GKIGS.js.map → chunk-YWWRLZUR.js.map} +0 -0
  807. /package/dist/{chunk-XCKINS7K.js.map → chunk-Z4S5BCVZ.js.map} +0 -0
  808. /package/dist/{chunk-IBY44U2M.js.map → chunk-ZYGK7GAK.js.map} +0 -0
  809. /package/dist/{connect-5PGL7ZOM.js.map → connect-COS6G45S.js.map} +0 -0
  810. /package/dist/{creatives-OO76DAFS.js.map → creatives-SEQHJD2M.js.map} +0 -0
  811. /package/dist/{customers-2EFYSCU2.js.map → customers-LMSX33FO.js.map} +0 -0
  812. /package/dist/{experiment-IDDWRCJ7.js.map → experiment-7RJ5X2LL.js.map} +0 -0
  813. /package/dist/{find-VHN34MWL.js.map → find-2EPXK5RF.js.map} +0 -0
  814. /package/dist/{fit-SS6HSZPU.js.map → fit-W7UNFZT5.js.map} +0 -0
  815. /package/dist/{fonts-YPNN7ZJP.js.map → fonts-N42UYWTX.js.map} +0 -0
  816. /package/dist/{ga4-ZPAEF2G2.js.map → ga4-6EIQC2TG.js.map} +0 -0
  817. /package/dist/{google-C3X7O2UO.js.map → google-O5OI6QFU.js.map} +0 -0
  818. /package/dist/{gsc-SDDHGTZK.js.map → gsc-BM3T2GDL.js.map} +0 -0
  819. /package/dist/{icon-MYPDC6FM.js.map → icon-B7DG53S5.js.map} +0 -0
  820. /package/dist/{ideas-3PBH7VEX.js.map → ideas-DYN2DMFN.js.map} +0 -0
  821. /package/dist/{images-J35C3WG4.js.map → images-EQCUXEHF.js.map} +0 -0
  822. /package/dist/{ingest-OKUYP632.js.map → ingest-B46AY3QU.js.map} +0 -0
  823. /package/dist/{inspiration-QAL7NS7G.js.map → inspiration-TCCKM4R7.js.map} +0 -0
  824. /package/dist/{landing-CBVIOGJ5.js.map → landing-WVPA7NBR.js.map} +0 -0
  825. /package/dist/{line-items-ZOFKOGAA.js.map → line-items-OEWYOPFP.js.map} +0 -0
  826. /package/dist/{list-RC2NX6AX.js.map → list-WRBWQASJ.js.map} +0 -0
  827. /package/dist/{logo-WE2UELX6.js.map → logo-QTSBKP2J.js.map} +0 -0
  828. /package/dist/{performance-7YU4HOGH.js.map → performance-HTU5FR2K.js.map} +0 -0
  829. /package/dist/{plan-ZC4JY4IG.js.map → plan-W2K45F7K.js.map} +0 -0
  830. /package/dist/{promoted-tweets-76WKUFJQ.js.map → promoted-tweets-TTWN5OMW.js.map} +0 -0
  831. /package/dist/{reddit-YK3YUZEI.js.map → reddit-6C3PT5CT.js.map} +0 -0
  832. /package/dist/{research-Q3P76RHN.js.map → research-YCMMQVK6.js.map} +0 -0
  833. /package/dist/{run-6PRA2YSD.js.map → run-SR7DJ7M5.js.map} +0 -0
  834. /package/dist/{scheduled-agents-5P67MVGX.js.map → scheduled-agents-N63EZNY6.js.map} +0 -0
  835. /package/dist/{schema-RRAQW3OS.js.map → schema-C6SGBNA6.js.map} +0 -0
  836. /package/dist/{sources-NDXYTASG.js.map → sources-HN3GCEDX.js.map} +0 -0
  837. /package/dist/{stats-37OFAMPW.js.map → stats-CVF6AC7R.js.map} +0 -0
  838. /package/dist/{stock-6R5E7MJX.js.map → stock-4LPQ6SM7.js.map} +0 -0
  839. /package/dist/{studio-LEIGL3Q7.js.map → studio-NZ6WQ7OE.js.map} +0 -0
  840. /package/dist/{sync-definition-M5R3H3TP.js.map → sync-definition-CKEUYKWN.js.map} +0 -0
  841. /package/dist/{tag-manager-3Q55PBEW.js.map → tag-manager-FLXXLNKP.js.map} +0 -0
  842. /package/dist/{tags-4N5UUUN6.js.map → tags-EUOOSAKN.js.map} +0 -0
  843. /package/dist/{targeting-criteria-AVARWV2G.js.map → targeting-criteria-HE7K52WN.js.map} +0 -0
  844. /package/dist/{testimonials-6TF6BOFN.js.map → testimonials-3Q5XM7JD.js.map} +0 -0
  845. /package/dist/{videos-LBXPG7WC.js.map → videos-WAPUPJVT.js.map} +0 -0
  846. /package/dist/{viewer-check-7VJ3GUZX.js.map → viewer-check-GHQA3UY2.js.map} +0 -0
  847. /package/dist/{winning-ads-SAOJAKEQ.js.map → winning-ads-XCVUAIOU.js.map} +0 -0
  848. /package/dist/{x-LXOJPCRF.js.map → x-SI4KYDEY.js.map} +0 -0
@@ -1,433 +0,0 @@
1
- import {
2
- csvOrJson,
3
- daysAgoIso,
4
- handleLinkedinError,
5
- resolveAccountIdArg,
6
- todayIso
7
- } from "./chunk-VB3XUR6A.js";
8
- import {
9
- writeAdsJson,
10
- writeAdsOutput
11
- } from "./chunk-2VIZ4UUZ.js";
12
- import {
13
- NO_CACHE_ARG
14
- } from "./chunk-U6RONIJC.js";
15
- import "./chunk-DAO63OOP.js";
16
- import "./chunk-GXDLWBOY.js";
17
- import "./chunk-GIWHHCD6.js";
18
- import "./chunk-XQIOCIDO.js";
19
- import "./chunk-WTJSMYY2.js";
20
- import {
21
- apiPost
22
- } from "./chunk-6YLNY6CK.js";
23
- import "./chunk-D5NEIESR.js";
24
- import "./chunk-57KKVDDR.js";
25
- import "./chunk-QANGHND7.js";
26
- import "./chunk-YQSBHWOI.js";
27
-
28
- // src/commands/ads/linkedin/analytics.ts
29
- import { defineCommand } from "citty";
30
-
31
- // src/commands/ads/linkedin/presets.ts
32
- var INTENTS = {
33
- baseline: {
34
- name: "baseline",
35
- description: "Spend, impressions, clicks. The default 'how is delivery?' question. Derives CTR, CPC, CPM.",
36
- metrics: ["impressions", "clicks", "costInUsd", "costInLocalCurrency", "approximateUniqueImpressions"],
37
- derived: ["ctr", "cpc", "cpm", "frequency"]
38
- },
39
- revenue: {
40
- name: "revenue",
41
- description: "Spend, conversions, conversion value. 'How much money are we making?'",
42
- metrics: [
43
- "costInUsd",
44
- "externalWebsiteConversions",
45
- "externalWebsitePostClickConversions",
46
- "externalWebsitePostViewConversions",
47
- "conversionValueInLocalCurrency",
48
- "oneClickLeads"
49
- ]
50
- },
51
- funnel: {
52
- name: "funnel",
53
- description: "Impression \u2192 click \u2192 landing \u2192 form open \u2192 lead \u2192 conversion. 'Where do users drop off?'",
54
- metrics: [
55
- "impressions",
56
- "clicks",
57
- "landingPageClicks",
58
- "oneClickLeadFormOpens",
59
- "oneClickLeads",
60
- "externalWebsiteConversions",
61
- "costInUsd"
62
- ],
63
- derived: ["ctr", "leadCompletionRate"]
64
- },
65
- engagement: {
66
- name: "engagement",
67
- description: "Likes, comments, shares, follows + viral spillover. TLA-aware \u2014 measures organic reach effect.",
68
- metrics: [
69
- "impressions",
70
- "likes",
71
- "comments",
72
- "shares",
73
- "reactions",
74
- "follows",
75
- "totalEngagements",
76
- "viralImpressions",
77
- "viralLikes",
78
- "viralShares",
79
- "viralOneClickLeads",
80
- "costInUsd"
81
- ]
82
- },
83
- video: {
84
- name: "video",
85
- description: "Video watch quartiles + cost. 'How are video creatives holding attention?'",
86
- metrics: [
87
- "videoStarts",
88
- "videoFirstQuartileCompletions",
89
- "videoMidpointCompletions",
90
- "videoThirdQuartileCompletions",
91
- "videoCompletions",
92
- "videoViews",
93
- "fullScreenPlays",
94
- "costInUsd",
95
- "impressions"
96
- ]
97
- },
98
- "lead-gen": {
99
- name: "lead-gen",
100
- description: "Lead Gen Form opens + completions. CLI derives form-completion-rate.",
101
- metrics: [
102
- "oneClickLeadFormOpens",
103
- "oneClickLeads",
104
- "viralOneClickLeads",
105
- "viralOneClickLeadFormOpens",
106
- "costInUsd"
107
- ],
108
- derived: ["leadCompletionRate"]
109
- },
110
- inmail: {
111
- name: "inmail",
112
- description: "Sponsored Message / Conversation Ads \u2014 sends, opens, clicks, lead-gen taps.",
113
- metrics: [
114
- "sends",
115
- "opens",
116
- "clicks",
117
- "costInUsd",
118
- "leadGenerationMailContactInfoShares",
119
- "leadGenerationMailInterestedClicks"
120
- ]
121
- },
122
- document: {
123
- name: "document",
124
- description: "Document Ads \u2014 quartile read-through, completion, downloads.",
125
- metrics: [
126
- "documentFirstQuartileCompletions",
127
- "documentMidpointCompletions",
128
- "documentThirdQuartileCompletions",
129
- "documentCompletions",
130
- "downloadClicks",
131
- "costInUsd",
132
- "impressions"
133
- ]
134
- },
135
- ranking: {
136
- name: "ranking",
137
- description: "Frequency + reach metrics for fatigue detection. CLI derives frequency = impressions/uniqueImpressions.",
138
- metrics: ["impressions", "clicks", "costInUsd", "approximateUniqueImpressions"],
139
- derived: ["frequency", "ctr"]
140
- },
141
- identity: {
142
- name: "identity",
143
- description: "Just spend + impressions. Cheap roll-up.",
144
- metrics: ["costInUsd", "impressions"]
145
- }
146
- };
147
- var MEMBER_PIVOTS = /* @__PURE__ */ new Set([
148
- "company",
149
- "job-title",
150
- "job-function",
151
- "seniority",
152
- "industry",
153
- "company-size",
154
- "country",
155
- "region",
156
- "dma"
157
- ]);
158
- var ALL_PIVOTS = [
159
- "none",
160
- "campaign",
161
- "campaign-group",
162
- "creative",
163
- "company",
164
- "account",
165
- "conversion",
166
- "job-title",
167
- "job-function",
168
- "seniority",
169
- "industry",
170
- "company-size",
171
- "country",
172
- "region",
173
- "dma",
174
- "device",
175
- "placement",
176
- "serving-location",
177
- "card-index",
178
- "objective",
179
- "conversation-node",
180
- "conversation-node-button"
181
- ];
182
- var ALL_LEVELS = ["account", "campaign-group", "campaign", "creative"];
183
- function listIntents() {
184
- return Object.values(INTENTS);
185
- }
186
- function isPivot(slug) {
187
- return ALL_PIVOTS.includes(slug);
188
- }
189
- function isLevel(slug) {
190
- return ALL_LEVELS.includes(slug);
191
- }
192
- function composeFields(intent, _level, metricsOverride) {
193
- const base = metricsOverride && metricsOverride.length > 0 ? metricsOverride : INTENTS[intent].metrics;
194
- const seen = /* @__PURE__ */ new Set();
195
- const out = [];
196
- for (const f of ["pivotValues", "dateRange", ...base]) {
197
- if (!seen.has(f)) {
198
- seen.add(f);
199
- out.push(f);
200
- }
201
- }
202
- return out;
203
- }
204
-
205
- // src/commands/ads/linkedin/analytics.ts
206
- function commaSplit(input) {
207
- if (!input) return void 0;
208
- return input.split(",").map((s) => s.trim()).filter(Boolean);
209
- }
210
- function parseGranularity(raw) {
211
- const v = (raw ?? "DAILY").toUpperCase();
212
- if (v === "DAILY" || v === "MONTHLY" || v === "YEARLY" || v === "ALL") {
213
- return v;
214
- }
215
- handleLinkedinError(new Error(`Invalid --granularity "${raw}". Use DAILY | MONTHLY | YEARLY | ALL.`));
216
- }
217
- function parseLevel(raw) {
218
- const v = raw ?? "account";
219
- if (!isLevel(v)) {
220
- handleLinkedinError(new Error(`Invalid --level "${raw}". Use one of: ${ALL_LEVELS.join(", ")}.`));
221
- }
222
- return v;
223
- }
224
- function parsePivot(raw) {
225
- const v = raw ?? "none";
226
- if (!isPivot(v)) {
227
- handleLinkedinError(new Error(`Invalid --pivot "${raw}". Use one of: ${ALL_PIVOTS.join(", ")}.`));
228
- }
229
- return v;
230
- }
231
- function parseIntent(raw) {
232
- const v = raw ?? "baseline";
233
- const known = [
234
- "baseline",
235
- "revenue",
236
- "funnel",
237
- "engagement",
238
- "video",
239
- "lead-gen",
240
- "inmail",
241
- "document",
242
- "ranking",
243
- "identity"
244
- ];
245
- if (!known.includes(v)) {
246
- handleLinkedinError(new Error(`Invalid --intent "${raw}". Run --list-intents to see options.`));
247
- }
248
- return v;
249
- }
250
- function resolveDateRange(args) {
251
- const start = args.start;
252
- const end = args.end;
253
- if (start) {
254
- return { start, end };
255
- }
256
- const lastDaysRaw = args["last-days"];
257
- const days = lastDaysRaw ? Number(lastDaysRaw) : 7;
258
- if (!Number.isFinite(days) || days < 1 || days > 730) {
259
- handleLinkedinError(new Error(`Invalid --last-days "${lastDaysRaw}". Use a positive number \u2264 730.`));
260
- }
261
- return { start: daysAgoIso(days), end: todayIso() };
262
- }
263
- function resolveScopeIds(args, level) {
264
- if (level === "account") {
265
- const id = resolveAccountIdArg(args);
266
- return [id];
267
- }
268
- if (level === "campaign-group") {
269
- const raw2 = args["campaign-group-id"] ?? args.ids;
270
- if (!raw2) {
271
- handleLinkedinError(new Error("Pass --campaign-group-id (CSV for multi) when --level campaign-group."));
272
- }
273
- return commaSplit(raw2) ?? [];
274
- }
275
- if (level === "campaign") {
276
- const raw2 = args["campaign-id"] ?? args.ids;
277
- if (!raw2) {
278
- handleLinkedinError(new Error("Pass --campaign-id (CSV for multi) when --level campaign."));
279
- }
280
- return commaSplit(raw2) ?? [];
281
- }
282
- const raw = args["creative-id"] ?? args.ids;
283
- if (!raw) {
284
- handleLinkedinError(new Error("Pass --creative-id (CSV for multi) when --level creative."));
285
- }
286
- return commaSplit(raw) ?? [];
287
- }
288
- function sortRows(rows) {
289
- return [...rows].sort((a, b) => {
290
- const cs = numberOf(b.costInUsd) - numberOf(a.costInUsd);
291
- if (cs !== 0) return cs;
292
- return numberOf(b.impressions) - numberOf(a.impressions);
293
- });
294
- }
295
- function numberOf(v) {
296
- if (typeof v === "number") return Number.isFinite(v) ? v : 0;
297
- if (typeof v === "string") {
298
- const n = Number(v);
299
- return Number.isFinite(n) ? n : 0;
300
- }
301
- return 0;
302
- }
303
- var analyticsCommand = defineCommand({
304
- meta: {
305
- name: "analytics",
306
- description: `Performance reporting \u2014 the workhorse for AI agents.
307
-
308
- Three-axis design (LinkedIn's superpower over Meta/Google):
309
- --level account | campaign-group | campaign | creative
310
- --intent baseline | revenue | funnel | engagement | video | lead-gen | inmail | document | ranking | identity
311
- --pivot none | job-title | company | industry | seniority | function | company-size | country | region | dma
312
- | device | placement | serving-location | card-index | objective
313
- | conversation-node | conversation-node-button
314
-
315
- Smart defaults:
316
- --level account, --intent baseline, --pivot none, --granularity DAILY, last 7 days
317
- Pivot on a MEMBER_* dim \u2192 granularity auto-forced to ALL (LinkedIn rejects DAILY+demographic)
318
- Demographic data delayed 12-24h with \u22653-event privacy floor \u2014 the CLI flags this in warnings.
319
- --pivot dma \u2192 US Nielsen DMA\xAE regions, names resolved. Any report built from it must write "DMA\xAE"
320
- and carry Nielsen's notice (returned as the DMA_ATTRIBUTION_REQUIRED warning).
321
- Derived metrics injected client-side: ctr, cpc, cpm, frequency, leadCompletionRate
322
-
323
- Examples \u2014 common AI questions:
324
- # "How is this account doing this week?"
325
- baker ads linkedin analytics
326
-
327
- # "Who are we reaching, by job title?" (the LinkedIn killer)
328
- baker ads linkedin analytics --level campaign --campaign-id 1234 --pivot job-title --intent baseline --last-days 30
329
-
330
- # "Top companies seeing my ads" (ABM feedback loop)
331
- baker ads linkedin analytics --level campaign --campaign-id 1234 --pivot company --last-days 30
332
-
333
- # "Revenue by campaign over Q1"
334
- baker ads linkedin analytics --level campaign --campaign-id 1,2,3 --intent revenue --start 2026-01-01 --end 2026-03-31 --granularity MONTHLY
335
-
336
- # "How is the lead form converting?"
337
- baker ads linkedin analytics --level campaign --campaign-id 1234 --intent lead-gen
338
-
339
- # Custom field set (escape hatch)
340
- baker ads linkedin analytics --metrics impressions,clicks,oneClickLeads --intent identity`
341
- },
342
- args: {
343
- level: { type: "string", description: "Object scope (default: account)" },
344
- "account-id": { type: "string", description: "Account ID \u2014 numeric or urn:li:sponsoredAccount:N (level=account)" },
345
- "account-urn": { type: "string", description: "Alias for --account-id (URN form)" },
346
- "campaign-group-id": { type: "string", description: "Comma-separated IDs (level=campaign-group)" },
347
- "campaign-id": { type: "string", description: "Comma-separated IDs (level=campaign)" },
348
- "creative-id": { type: "string", description: "Comma-separated IDs (level=creative)" },
349
- ids: { type: "string", description: "Generic CSV of IDs at the chosen level (alternative to per-level flags)" },
350
- intent: {
351
- type: "string",
352
- description: "baseline|revenue|funnel|engagement|video|lead-gen|inmail|document|ranking|identity"
353
- },
354
- pivot: { type: "string", description: "Pivot dim. Default: none. See `--list-pivots`." },
355
- metrics: { type: "string", description: "CSV metric override \u2014 bypass --intent's bundle" },
356
- "list-intents": { type: "boolean", description: "Print intent definitions and exit" },
357
- "list-pivots": { type: "boolean", description: "Print pivot slugs and exit" },
358
- start: { type: "string", description: "Start date YYYY-MM-DD (overrides --last-days)" },
359
- end: { type: "string", description: "End date YYYY-MM-DD" },
360
- "last-days": { type: "string", description: "Window relative to today (default: 7)" },
361
- granularity: { type: "string", description: "DAILY|MONTHLY|YEARLY|ALL (default: DAILY)" },
362
- limit: { type: "string", description: "Max rows (default: 1000)" },
363
- "no-sort": { type: "boolean", description: "Skip default sort by costInUsd desc" },
364
- "no-cache": NO_CACHE_ARG,
365
- output: { type: "string", description: "Output format json|csv|jsonl|md", default: "json" }
366
- },
367
- run: async ({ args }) => {
368
- if (args["list-intents"]) {
369
- writeAdsJson({ ok: true, data: listIntents() });
370
- return;
371
- }
372
- if (args["list-pivots"]) {
373
- writeAdsJson({ ok: true, data: ALL_PIVOTS });
374
- return;
375
- }
376
- const level = parseLevel(args.level);
377
- const intent = parseIntent(args.intent);
378
- const pivot = parsePivot(args.pivot);
379
- let granularity = parseGranularity(args.granularity);
380
- if (MEMBER_PIVOTS.has(pivot) && granularity === "DAILY") {
381
- process.stderr.write(`note: pivot=${pivot} forces --granularity ALL (LinkedIn rejects DAILY + demographic).
382
- `);
383
- granularity = "ALL";
384
- }
385
- const ids = resolveScopeIds(args, level);
386
- if (ids.length === 0) {
387
- handleLinkedinError(new Error(`No IDs resolved for --level ${level}`));
388
- }
389
- const range = resolveDateRange(args);
390
- const metrics = commaSplit(args.metrics);
391
- const limit = args.limit ? Number(args.limit) : 1e3;
392
- const request = {
393
- level,
394
- ids,
395
- intent,
396
- pivot,
397
- metrics,
398
- start: range.start,
399
- end: range.end,
400
- granularity,
401
- limit
402
- };
403
- try {
404
- const data = await apiPost("/api/ads/linkedin/analytics", {
405
- request,
406
- skipCache: Boolean(args["no-cache"])
407
- });
408
- const rows = args["no-sort"] ? data.rows : sortRows(data.rows);
409
- const fmt = csvOrJson(args);
410
- if (fmt !== "json") {
411
- writeAdsOutput(rows, fmt, data.fields);
412
- return;
413
- }
414
- writeAdsJson({
415
- ok: true,
416
- data: {
417
- rows,
418
- fields: data.fields,
419
- warnings: data.warnings,
420
- query: data.query,
421
- // Echo composed fields so an offline agent can pre-flight w/o this network call.
422
- composedFields: composeFields(intent, level, metrics)
423
- }
424
- });
425
- } catch (err) {
426
- handleLinkedinError(err);
427
- }
428
- }
429
- });
430
- export {
431
- analyticsCommand
432
- };
433
- //# sourceMappingURL=analytics-HO2SLL4W.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/ads/linkedin/analytics.ts","../src/commands/ads/linkedin/presets.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiPost } from \"../../../client.ts\";\nimport { writeAdsJson, writeAdsOutput } from \"../output.ts\";\nimport {\n ALL_LEVELS,\n ALL_PIVOTS,\n composeFields,\n type IntentName,\n isLevel,\n isPivot,\n type LevelName,\n listIntents,\n MEMBER_PIVOTS,\n type PivotSlug,\n} from \"./presets.ts\";\nimport { csvOrJson, daysAgoIso, handleLinkedinError, resolveAccountIdArg, todayIso } from \"./shared.ts\";\n\ntype Granularity = \"DAILY\" | \"MONTHLY\" | \"YEARLY\" | \"ALL\";\n\ninterface AnalyticsRequest {\n level: LevelName;\n ids: string[];\n intent: IntentName;\n pivot: PivotSlug;\n metrics?: string[];\n start: string;\n end?: string;\n granularity: Granularity;\n limit?: number;\n}\n\ninterface AnalyticsResponse {\n rows: Array<Record<string, unknown>>;\n fields: string[];\n warnings: Array<{ code: string; message: string }>;\n query: AnalyticsRequest & { metrics: string[] };\n}\n\nfunction commaSplit(input: string | undefined): string[] | undefined {\n if (!input) return undefined;\n return input\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean);\n}\n\nfunction parseGranularity(raw: string | undefined): Granularity {\n const v = (raw ?? \"DAILY\").toUpperCase();\n if (v === \"DAILY\" || v === \"MONTHLY\" || v === \"YEARLY\" || v === \"ALL\") {\n return v;\n }\n handleLinkedinError(new Error(`Invalid --granularity \"${raw}\". Use DAILY | MONTHLY | YEARLY | ALL.`));\n}\n\nfunction parseLevel(raw: string | undefined): LevelName {\n const v = raw ?? \"account\";\n if (!isLevel(v)) {\n handleLinkedinError(new Error(`Invalid --level \"${raw}\". Use one of: ${ALL_LEVELS.join(\", \")}.`));\n }\n return v;\n}\n\nfunction parsePivot(raw: string | undefined): PivotSlug {\n const v = raw ?? \"none\";\n if (!isPivot(v)) {\n handleLinkedinError(new Error(`Invalid --pivot \"${raw}\". Use one of: ${ALL_PIVOTS.join(\", \")}.`));\n }\n return v;\n}\n\nfunction parseIntent(raw: string | undefined): IntentName {\n const v = (raw ?? \"baseline\") as IntentName;\n const known: IntentName[] = [\n \"baseline\",\n \"revenue\",\n \"funnel\",\n \"engagement\",\n \"video\",\n \"lead-gen\",\n \"inmail\",\n \"document\",\n \"ranking\",\n \"identity\",\n ];\n if (!known.includes(v)) {\n handleLinkedinError(new Error(`Invalid --intent \"${raw}\". Run --list-intents to see options.`));\n }\n return v;\n}\n\n/**\n * Resolve start/end dates. Precedence:\n * 1. --start + --end (explicit window)\n * 2. --last-days N → end=today, start=today-N\n * 3. default: last 7 days\n */\nfunction resolveDateRange(args: Record<string, unknown>): { start: string; end?: string } {\n const start = args.start as string | undefined;\n const end = args.end as string | undefined;\n if (start) {\n return { start, end };\n }\n const lastDaysRaw = args[\"last-days\"] as string | undefined;\n const days = lastDaysRaw ? Number(lastDaysRaw) : 7;\n if (!Number.isFinite(days) || days < 1 || days > 730) {\n handleLinkedinError(new Error(`Invalid --last-days \"${lastDaysRaw}\". Use a positive number ≤ 730.`));\n }\n return { start: daysAgoIso(days), end: todayIso() };\n}\n\n/**\n * Resolve scope IDs. Each level expects a different flag — but we accept\n * --account-id at every level when level=account, and --campaign-id /\n * --campaign-group-id / --creative-id otherwise. CSV-encoded for multi-id.\n */\nfunction resolveScopeIds(args: Record<string, unknown>, level: LevelName): string[] {\n if (level === \"account\") {\n const id = resolveAccountIdArg(args);\n return [id];\n }\n if (level === \"campaign-group\") {\n const raw = (args[\"campaign-group-id\"] as string | undefined) ?? (args.ids as string | undefined);\n if (!raw) {\n handleLinkedinError(new Error(\"Pass --campaign-group-id (CSV for multi) when --level campaign-group.\"));\n }\n return commaSplit(raw) ?? [];\n }\n if (level === \"campaign\") {\n const raw = (args[\"campaign-id\"] as string | undefined) ?? (args.ids as string | undefined);\n if (!raw) {\n handleLinkedinError(new Error(\"Pass --campaign-id (CSV for multi) when --level campaign.\"));\n }\n return commaSplit(raw) ?? [];\n }\n // creative\n const raw = (args[\"creative-id\"] as string | undefined) ?? (args.ids as string | undefined);\n if (!raw) {\n handleLinkedinError(new Error(\"Pass --creative-id (CSV for multi) when --level creative.\"));\n }\n return commaSplit(raw) ?? [];\n}\n\n/** Sort rows by spend desc when present, otherwise by impressions desc. */\nfunction sortRows(rows: Array<Record<string, unknown>>): Array<Record<string, unknown>> {\n return [...rows].sort((a, b) => {\n const cs = numberOf(b.costInUsd) - numberOf(a.costInUsd);\n if (cs !== 0) return cs;\n return numberOf(b.impressions) - numberOf(a.impressions);\n });\n}\n\nfunction numberOf(v: unknown): number {\n if (typeof v === \"number\") return Number.isFinite(v) ? v : 0;\n if (typeof v === \"string\") {\n const n = Number(v);\n return Number.isFinite(n) ? n : 0;\n }\n return 0;\n}\n\nexport const analyticsCommand = defineCommand({\n meta: {\n name: \"analytics\",\n description: `Performance reporting — the workhorse for AI agents.\n\nThree-axis design (LinkedIn's superpower over Meta/Google):\n --level account | campaign-group | campaign | creative\n --intent baseline | revenue | funnel | engagement | video | lead-gen | inmail | document | ranking | identity\n --pivot none | job-title | company | industry | seniority | function | company-size | country | region | dma\n | device | placement | serving-location | card-index | objective\n | conversation-node | conversation-node-button\n\nSmart defaults:\n --level account, --intent baseline, --pivot none, --granularity DAILY, last 7 days\n Pivot on a MEMBER_* dim → granularity auto-forced to ALL (LinkedIn rejects DAILY+demographic)\n Demographic data delayed 12-24h with ≥3-event privacy floor — the CLI flags this in warnings.\n --pivot dma → US Nielsen DMA® regions, names resolved. Any report built from it must write \"DMA®\"\n and carry Nielsen's notice (returned as the DMA_ATTRIBUTION_REQUIRED warning).\n Derived metrics injected client-side: ctr, cpc, cpm, frequency, leadCompletionRate\n\nExamples — common AI questions:\n # \"How is this account doing this week?\"\n baker ads linkedin analytics\n\n # \"Who are we reaching, by job title?\" (the LinkedIn killer)\n baker ads linkedin analytics --level campaign --campaign-id 1234 --pivot job-title --intent baseline --last-days 30\n\n # \"Top companies seeing my ads\" (ABM feedback loop)\n baker ads linkedin analytics --level campaign --campaign-id 1234 --pivot company --last-days 30\n\n # \"Revenue by campaign over Q1\"\n baker ads linkedin analytics --level campaign --campaign-id 1,2,3 --intent revenue --start 2026-01-01 --end 2026-03-31 --granularity MONTHLY\n\n # \"How is the lead form converting?\"\n baker ads linkedin analytics --level campaign --campaign-id 1234 --intent lead-gen\n\n # Custom field set (escape hatch)\n baker ads linkedin analytics --metrics impressions,clicks,oneClickLeads --intent identity`,\n },\n args: {\n level: { type: \"string\", description: \"Object scope (default: account)\" },\n \"account-id\": { type: \"string\", description: \"Account ID — numeric or urn:li:sponsoredAccount:N (level=account)\" },\n \"account-urn\": { type: \"string\", description: \"Alias for --account-id (URN form)\" },\n \"campaign-group-id\": { type: \"string\", description: \"Comma-separated IDs (level=campaign-group)\" },\n \"campaign-id\": { type: \"string\", description: \"Comma-separated IDs (level=campaign)\" },\n \"creative-id\": { type: \"string\", description: \"Comma-separated IDs (level=creative)\" },\n ids: { type: \"string\", description: \"Generic CSV of IDs at the chosen level (alternative to per-level flags)\" },\n intent: {\n type: \"string\",\n description: \"baseline|revenue|funnel|engagement|video|lead-gen|inmail|document|ranking|identity\",\n },\n pivot: { type: \"string\", description: \"Pivot dim. Default: none. See `--list-pivots`.\" },\n metrics: { type: \"string\", description: \"CSV metric override — bypass --intent's bundle\" },\n \"list-intents\": { type: \"boolean\", description: \"Print intent definitions and exit\" },\n \"list-pivots\": { type: \"boolean\", description: \"Print pivot slugs and exit\" },\n start: { type: \"string\", description: \"Start date YYYY-MM-DD (overrides --last-days)\" },\n end: { type: \"string\", description: \"End date YYYY-MM-DD\" },\n \"last-days\": { type: \"string\", description: \"Window relative to today (default: 7)\" },\n granularity: { type: \"string\", description: \"DAILY|MONTHLY|YEARLY|ALL (default: DAILY)\" },\n limit: { type: \"string\", description: \"Max rows (default: 1000)\" },\n \"no-sort\": { type: \"boolean\", description: \"Skip default sort by costInUsd desc\" },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"Output format json|csv|jsonl|md\", default: \"json\" },\n },\n run: async ({ args }) => {\n if (args[\"list-intents\"]) {\n writeAdsJson({ ok: true, data: listIntents() });\n return;\n }\n if (args[\"list-pivots\"]) {\n writeAdsJson({ ok: true, data: ALL_PIVOTS });\n return;\n }\n\n const level = parseLevel(args.level as string | undefined);\n const intent = parseIntent(args.intent as string | undefined);\n const pivot = parsePivot(args.pivot as string | undefined);\n let granularity = parseGranularity(args.granularity as string | undefined);\n\n // CLI-side mirror of the backend's pivot/granularity guard. Backend will\n // also enforce — this lets us echo the auto-correction in stderr early.\n if (MEMBER_PIVOTS.has(pivot) && granularity === \"DAILY\") {\n process.stderr.write(`note: pivot=${pivot} forces --granularity ALL (LinkedIn rejects DAILY + demographic).\\n`);\n granularity = \"ALL\";\n }\n\n const ids = resolveScopeIds(args, level);\n if (ids.length === 0) {\n handleLinkedinError(new Error(`No IDs resolved for --level ${level}`));\n }\n\n const range = resolveDateRange(args);\n const metrics = commaSplit(args.metrics as string | undefined);\n const limit = args.limit ? Number(args.limit) : 1000;\n\n const request: AnalyticsRequest = {\n level,\n ids,\n intent,\n pivot,\n metrics,\n start: range.start,\n end: range.end,\n granularity,\n limit,\n };\n\n try {\n const data = await apiPost<AnalyticsResponse>(\"/api/ads/linkedin/analytics\", {\n request,\n skipCache: Boolean(args[\"no-cache\"]),\n });\n const rows = args[\"no-sort\"] ? data.rows : sortRows(data.rows);\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n writeAdsOutput(rows, fmt, data.fields);\n return;\n }\n writeAdsJson({\n ok: true,\n data: {\n rows,\n fields: data.fields,\n warnings: data.warnings,\n query: data.query,\n // Echo composed fields so an offline agent can pre-flight w/o this network call.\n composedFields: composeFields(intent, level, metrics),\n },\n });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n","/**\n * LinkedIn analytics field bundles. Three-axis design:\n * --intent → metric bundle (baseline | revenue | funnel | engagement | video |\n * lead-gen | inmail | document | ranking | identity)\n * --level → object scope (account | campaign-group | campaign | creative)\n * --pivot → demographic / firmographic breakdown\n * (none | job-title | company | industry | seniority | function |\n * company-size | country | region | dma | device | placement | …)\n *\n * Backend recomputes the field list itself (single source of truth in\n * `packages/backend/convex/ads/linkedin/constants.ts`). The CLI keeps a\n * mirror copy so `--list-intents` / `--list-pivots` work offline.\n */\n\nexport type IntentName =\n | \"baseline\"\n | \"revenue\"\n | \"funnel\"\n | \"engagement\"\n | \"video\"\n | \"lead-gen\"\n | \"inmail\"\n | \"document\"\n | \"ranking\"\n | \"identity\";\n\nexport type LevelName = \"account\" | \"campaign-group\" | \"campaign\" | \"creative\";\n\nexport type PivotSlug =\n | \"none\"\n | \"campaign\"\n | \"campaign-group\"\n | \"creative\"\n | \"company\"\n | \"account\"\n | \"conversion\"\n | \"job-title\"\n | \"job-function\"\n | \"seniority\"\n | \"industry\"\n | \"company-size\"\n | \"country\"\n | \"region\"\n | \"dma\"\n | \"device\"\n | \"placement\"\n | \"serving-location\"\n | \"card-index\"\n | \"objective\"\n | \"conversation-node\"\n | \"conversation-node-button\";\n\ninterface IntentDefinition {\n name: IntentName;\n description: string;\n metrics: string[];\n /** Derived (CLI-side) metrics this bundle materializes. Documentation only. */\n derived?: string[];\n}\n\nexport const INTENTS: Record<IntentName, IntentDefinition> = {\n baseline: {\n name: \"baseline\",\n description: \"Spend, impressions, clicks. The default 'how is delivery?' question. Derives CTR, CPC, CPM.\",\n metrics: [\"impressions\", \"clicks\", \"costInUsd\", \"costInLocalCurrency\", \"approximateUniqueImpressions\"],\n derived: [\"ctr\", \"cpc\", \"cpm\", \"frequency\"],\n },\n revenue: {\n name: \"revenue\",\n description: \"Spend, conversions, conversion value. 'How much money are we making?'\",\n metrics: [\n \"costInUsd\",\n \"externalWebsiteConversions\",\n \"externalWebsitePostClickConversions\",\n \"externalWebsitePostViewConversions\",\n \"conversionValueInLocalCurrency\",\n \"oneClickLeads\",\n ],\n },\n funnel: {\n name: \"funnel\",\n description: \"Impression → click → landing → form open → lead → conversion. 'Where do users drop off?'\",\n metrics: [\n \"impressions\",\n \"clicks\",\n \"landingPageClicks\",\n \"oneClickLeadFormOpens\",\n \"oneClickLeads\",\n \"externalWebsiteConversions\",\n \"costInUsd\",\n ],\n derived: [\"ctr\", \"leadCompletionRate\"],\n },\n engagement: {\n name: \"engagement\",\n description: \"Likes, comments, shares, follows + viral spillover. TLA-aware — measures organic reach effect.\",\n metrics: [\n \"impressions\",\n \"likes\",\n \"comments\",\n \"shares\",\n \"reactions\",\n \"follows\",\n \"totalEngagements\",\n \"viralImpressions\",\n \"viralLikes\",\n \"viralShares\",\n \"viralOneClickLeads\",\n \"costInUsd\",\n ],\n },\n video: {\n name: \"video\",\n description: \"Video watch quartiles + cost. 'How are video creatives holding attention?'\",\n metrics: [\n \"videoStarts\",\n \"videoFirstQuartileCompletions\",\n \"videoMidpointCompletions\",\n \"videoThirdQuartileCompletions\",\n \"videoCompletions\",\n \"videoViews\",\n \"fullScreenPlays\",\n \"costInUsd\",\n \"impressions\",\n ],\n },\n \"lead-gen\": {\n name: \"lead-gen\",\n description: \"Lead Gen Form opens + completions. CLI derives form-completion-rate.\",\n metrics: [\n \"oneClickLeadFormOpens\",\n \"oneClickLeads\",\n \"viralOneClickLeads\",\n \"viralOneClickLeadFormOpens\",\n \"costInUsd\",\n ],\n derived: [\"leadCompletionRate\"],\n },\n inmail: {\n name: \"inmail\",\n description: \"Sponsored Message / Conversation Ads — sends, opens, clicks, lead-gen taps.\",\n metrics: [\n \"sends\",\n \"opens\",\n \"clicks\",\n \"costInUsd\",\n \"leadGenerationMailContactInfoShares\",\n \"leadGenerationMailInterestedClicks\",\n ],\n },\n document: {\n name: \"document\",\n description: \"Document Ads — quartile read-through, completion, downloads.\",\n metrics: [\n \"documentFirstQuartileCompletions\",\n \"documentMidpointCompletions\",\n \"documentThirdQuartileCompletions\",\n \"documentCompletions\",\n \"downloadClicks\",\n \"costInUsd\",\n \"impressions\",\n ],\n },\n ranking: {\n name: \"ranking\",\n description:\n \"Frequency + reach metrics for fatigue detection. CLI derives frequency = impressions/uniqueImpressions.\",\n metrics: [\"impressions\", \"clicks\", \"costInUsd\", \"approximateUniqueImpressions\"],\n derived: [\"frequency\", \"ctr\"],\n },\n identity: {\n name: \"identity\",\n description: \"Just spend + impressions. Cheap roll-up.\",\n metrics: [\"costInUsd\", \"impressions\"],\n },\n};\n\n/** Pivots that LinkedIn rejects with DAILY granularity — CLI auto-forces ALL. */\nexport const MEMBER_PIVOTS = new Set<PivotSlug>([\n \"company\",\n \"job-title\",\n \"job-function\",\n \"seniority\",\n \"industry\",\n \"company-size\",\n \"country\",\n \"region\",\n \"dma\",\n]);\n\nexport const ALL_PIVOTS: PivotSlug[] = [\n \"none\",\n \"campaign\",\n \"campaign-group\",\n \"creative\",\n \"company\",\n \"account\",\n \"conversion\",\n \"job-title\",\n \"job-function\",\n \"seniority\",\n \"industry\",\n \"company-size\",\n \"country\",\n \"region\",\n \"dma\",\n \"device\",\n \"placement\",\n \"serving-location\",\n \"card-index\",\n \"objective\",\n \"conversation-node\",\n \"conversation-node-button\",\n];\n\nexport const ALL_LEVELS: LevelName[] = [\"account\", \"campaign-group\", \"campaign\", \"creative\"];\n\nexport function getIntent(name: string): IntentDefinition | undefined {\n return INTENTS[name as IntentName];\n}\n\nexport function listIntents(): IntentDefinition[] {\n return Object.values(INTENTS);\n}\n\nexport function isPivot(slug: string): slug is PivotSlug {\n return (ALL_PIVOTS as string[]).includes(slug);\n}\n\nexport function isLevel(slug: string): slug is LevelName {\n return (ALL_LEVELS as string[]).includes(slug);\n}\n\n/**\n * Compose final field list — intent bundle + identity columns + pivotValues +\n * dateRange. Backend re-validates and recomposes; this is just for offline\n * preview (`baker ads linkedin analytics --list-intents`).\n */\nexport function composeFields(intent: IntentName, _level: LevelName, metricsOverride?: string[]): string[] {\n const base = metricsOverride && metricsOverride.length > 0 ? metricsOverride : INTENTS[intent].metrics;\n const seen = new Set<string>();\n const out: string[] = [];\n for (const f of [\"pivotValues\", \"dateRange\", ...base]) {\n if (!seen.has(f)) {\n seen.add(f);\n out.push(f);\n }\n }\n return out;\n}\n"],"mappings":"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","names":["raw"]}
@@ -1,77 +0,0 @@
1
- import {
2
- failApi,
3
- failValidation,
4
- isTempId
5
- } from "./chunk-ZDAVSTEE.js";
6
- import "./chunk-DAO63OOP.js";
7
- import "./chunk-GXDLWBOY.js";
8
- import "./chunk-GIWHHCD6.js";
9
- import "./chunk-XQIOCIDO.js";
10
- import "./chunk-WTJSMYY2.js";
11
- import {
12
- apiPost,
13
- validateConvexId
14
- } from "./chunk-6YLNY6CK.js";
15
- import "./chunk-D5NEIESR.js";
16
- import {
17
- requireChatId
18
- } from "./chunk-57KKVDDR.js";
19
- import {
20
- registerSchema,
21
- writeJson
22
- } from "./chunk-QANGHND7.js";
23
- import "./chunk-YQSBHWOI.js";
24
-
25
- // src/commands/actions/assign.ts
26
- import { defineCommand } from "citty";
27
- registerSchema({
28
- command: "actions.assign",
29
- description: "Stage who a Task is assigned to \u2014 applies when the chat is published, like every other Task change. --to takes a userId or email from `baker actions members` (only those teammates can be named), or `none` to unassign. Works on a published Task by id or on one this chat is creating by its tempId. Restaging replaces the earlier assignment; drop it with `baker actions draft remove <id> --op assign`. No claim needed; blocked only while another chat has the Task claimed.",
30
- args: {
31
- id: { type: "string", description: "Action ID, or tempId (temp_*) of a Task staged in this chat", required: true },
32
- to: {
33
- type: "string",
34
- description: "userId or email from `baker actions members`, or `none` to unassign",
35
- required: true
36
- }
37
- }
38
- });
39
- function assignBody(args, chatId) {
40
- const to = args.to?.trim();
41
- if (!to) {
42
- failValidation("--to is required: a userId or email from `baker actions members`, or `none` to unassign the Task.");
43
- }
44
- if (!isTempId(args.ref)) {
45
- validateConvexId(args.ref);
46
- }
47
- return { chatId, actionRef: args.ref, to };
48
- }
49
- var assignCommand = defineCommand({
50
- meta: {
51
- name: "assign",
52
- description: "Stage who a Task is assigned to (applies on publish). Examples: baker actions assign <id> --to maria@empresa.com | baker actions assign temp_brief --to <userId> | baker actions assign <id> --to none"
53
- },
54
- args: {
55
- id: { type: "positional", description: "Action ID or tempId (temp_*)", required: false },
56
- "action-id": { type: "string", description: "Action ID or tempId (temp_*)", required: false },
57
- to: { type: "string", description: "userId or email from `baker actions members`, or none", required: false }
58
- },
59
- run: async ({ args }) => {
60
- try {
61
- const ref = args.id || args["action-id"];
62
- if (!ref) {
63
- failValidation("Action ID is required.");
64
- }
65
- const body = assignBody({ ref, ...typeof args.to === "string" ? { to: args.to } : {} }, requireChatId());
66
- const response = await apiPost("/api/actions/assign", body);
67
- writeJson({ ...response, hints: ["Staged: the Task changes hands when the chat is published."] });
68
- } catch (err) {
69
- failApi(err);
70
- }
71
- }
72
- });
73
- export {
74
- assignBody,
75
- assignCommand
76
- };
77
- //# sourceMappingURL=assign-CLKJKH2B.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/actions/assign.ts"],"sourcesContent":["import type { ActionsAssignRequest, ActionsAssignResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost, validateConvexId } from \"../../client.ts\";\nimport { requireChatId } from \"../../env.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi, failValidation, isTempId } from \"./shared.ts\";\n\nregisterSchema({\n command: \"actions.assign\",\n description:\n \"Stage who a Task is assigned to — applies when the chat is published, like every other Task change. --to takes a userId or email from `baker actions members` (only those teammates can be named), or `none` to unassign. Works on a published Task by id or on one this chat is creating by its tempId. Restaging replaces the earlier assignment; drop it with `baker actions draft remove <id> --op assign`. No claim needed; blocked only while another chat has the Task claimed.\",\n args: {\n id: { type: \"string\", description: \"Action ID, or tempId (temp_*) of a Task staged in this chat\", required: true },\n to: {\n type: \"string\",\n description: \"userId or email from `baker actions members`, or `none` to unassign\",\n required: true,\n },\n },\n});\n\n/** The request for one assignment, checked before the round trip. */\nexport function assignBody(args: { ref: string; to?: string }, chatId: string): ActionsAssignRequest {\n const to = args.to?.trim();\n if (!to) {\n failValidation(\"--to is required: a userId or email from `baker actions members`, or `none` to unassign the Task.\");\n }\n if (!isTempId(args.ref)) {\n validateConvexId(args.ref);\n }\n return { chatId, actionRef: args.ref, to };\n}\n\nexport const assignCommand = defineCommand({\n meta: {\n name: \"assign\",\n description:\n \"Stage who a Task is assigned to (applies on publish). Examples: baker actions assign <id> --to maria@empresa.com | baker actions assign temp_brief --to <userId> | baker actions assign <id> --to none\",\n },\n args: {\n id: { type: \"positional\", description: \"Action ID or tempId (temp_*)\", required: false },\n \"action-id\": { type: \"string\", description: \"Action ID or tempId (temp_*)\", required: false },\n to: { type: \"string\", description: \"userId or email from `baker actions members`, or none\", required: false },\n },\n run: async ({ args }) => {\n try {\n const ref = (args.id as string | undefined) || (args[\"action-id\"] as string | undefined);\n if (!ref) {\n failValidation(\"Action ID is required.\");\n }\n const body = assignBody({ ref, ...(typeof args.to === \"string\" ? { to: args.to } : {}) }, requireChatId());\n const response = await apiPost<ActionsAssignResponse>(\"/api/actions/assign\", body);\n writeJson({ ...response, hints: [\"Staged: the Task changes hands when the chat is published.\"] });\n } catch (err) {\n failApi(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,qBAAqB;AAO9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AAAA,IACJ,IAAI,EAAE,MAAM,UAAU,aAAa,+DAA+D,UAAU,KAAK;AAAA,IACjH,IAAI;AAAA,MACF,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,EACF;AACF,CAAC;AAGM,SAAS,WAAW,MAAoC,QAAsC;AACnG,QAAM,KAAK,KAAK,IAAI,KAAK;AACzB,MAAI,CAAC,IAAI;AACP,mBAAe,mGAAmG;AAAA,EACpH;AACA,MAAI,CAAC,SAAS,KAAK,GAAG,GAAG;AACvB,qBAAiB,KAAK,GAAG;AAAA,EAC3B;AACA,SAAO,EAAE,QAAQ,WAAW,KAAK,KAAK,GAAG;AAC3C;AAEO,IAAM,gBAAgB,cAAc;AAAA,EACzC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACJ,IAAI,EAAE,MAAM,cAAc,aAAa,gCAAgC,UAAU,MAAM;AAAA,IACvF,aAAa,EAAE,MAAM,UAAU,aAAa,gCAAgC,UAAU,MAAM;AAAA,IAC5F,IAAI,EAAE,MAAM,UAAU,aAAa,yDAAyD,UAAU,MAAM;AAAA,EAC9G;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,QAAI;AACF,YAAM,MAAO,KAAK,MAA8B,KAAK,WAAW;AAChE,UAAI,CAAC,KAAK;AACR,uBAAe,wBAAwB;AAAA,MACzC;AACA,YAAM,OAAO,WAAW,EAAE,KAAK,GAAI,OAAO,KAAK,OAAO,WAAW,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,EAAG,GAAG,cAAc,CAAC;AACzG,YAAM,WAAW,MAAM,QAA+B,uBAAuB,IAAI;AACjF,gBAAU,EAAE,GAAG,UAAU,OAAO,CAAC,4DAA4D,EAAE,CAAC;AAAA,IAClG,SAAS,KAAK;AACZ,cAAQ,GAAG;AAAA,IACb;AAAA,EACF;AACF,CAAC;","names":[]}
@@ -1,73 +0,0 @@
1
- import {
2
- handleLinkedinError,
3
- loadTargetingArg,
4
- resolveAccountIdArg
5
- } from "./chunk-VB3XUR6A.js";
6
- import {
7
- writeAdsJson
8
- } from "./chunk-2VIZ4UUZ.js";
9
- import {
10
- NO_CACHE_ARG
11
- } from "./chunk-U6RONIJC.js";
12
- import "./chunk-DAO63OOP.js";
13
- import "./chunk-GXDLWBOY.js";
14
- import "./chunk-GIWHHCD6.js";
15
- import "./chunk-XQIOCIDO.js";
16
- import "./chunk-WTJSMYY2.js";
17
- import {
18
- apiPost
19
- } from "./chunk-6YLNY6CK.js";
20
- import "./chunk-D5NEIESR.js";
21
- import "./chunk-57KKVDDR.js";
22
- import "./chunk-QANGHND7.js";
23
- import "./chunk-YQSBHWOI.js";
24
-
25
- // src/commands/ads/linkedin/audience-size.ts
26
- import { defineCommand } from "citty";
27
- var audienceSizeCommand = defineCommand({
28
- meta: {
29
- name: "audience-size",
30
- description: `Estimate audience size for a targeting payload \u2014 pre-launch sanity check.
31
-
32
- Returns total + active counts plus playbook \xA704 warnings:
33
- size <20K \u2192 too narrow (will not deliver)
34
- size <50K \u2192 outside the 50K\u2013500K sweet spot
35
- size >500K \u2192 outside the sweet spot
36
- size >1M \u2192 too broad, refine ICP
37
-
38
- The targeting payload must follow LinkedIn's 'targetingCriteria' shape \u2014 an
39
- include/exclude tree of and/or boolean operators with adTargetingFacet keys.
40
- The simplest form:
41
- { "include": { "and": [{ "or": { "urn:li:adTargetingFacet:locations": ["urn:li:geo:103644278"] }}]}}
42
-
43
- Examples:
44
- baker ads linkedin audience-size --account-id 503001492 --targeting-file targeting.json
45
- baker ads linkedin audience-size --account-id 503001492 --targeting '{"include":{"and":[]}}'`
46
- },
47
- args: {
48
- "account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
49
- "account-urn": { type: "string", description: "Alias for --account-id" },
50
- targeting: { type: "string", description: "Inline JSON targetingCriteria payload" },
51
- "targeting-file": { type: "string", description: "Path to JSON file with targetingCriteria" },
52
- "no-cache": NO_CACHE_ARG,
53
- output: { type: "string", description: "json", default: "json" }
54
- },
55
- run: async ({ args }) => {
56
- const accountId = resolveAccountIdArg(args);
57
- const targetingCriteria = loadTargetingArg(args);
58
- try {
59
- const data = await apiPost("/api/ads/linkedin/audience-size", {
60
- accountId,
61
- targetingCriteria,
62
- skipCache: Boolean(args["no-cache"])
63
- });
64
- writeAdsJson({ ok: true, data });
65
- } catch (err) {
66
- handleLinkedinError(err);
67
- }
68
- }
69
- });
70
- export {
71
- audienceSizeCommand
72
- };
73
- //# sourceMappingURL=audience-size-NNYYXODL.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/ads/linkedin/audience-size.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiPost } from \"../../../client.ts\";\nimport { writeAdsJson } from \"../output.ts\";\nimport { handleLinkedinError, loadTargetingArg, resolveAccountIdArg } from \"./shared.ts\";\n\ninterface AudienceSizeResult {\n total: number;\n active: number;\n warnings: string[];\n}\n\nexport const audienceSizeCommand = defineCommand({\n meta: {\n name: \"audience-size\",\n description: `Estimate audience size for a targeting payload — pre-launch sanity check.\n\nReturns total + active counts plus playbook §04 warnings:\n size <20K → too narrow (will not deliver)\n size <50K → outside the 50K–500K sweet spot\n size >500K → outside the sweet spot\n size >1M → too broad, refine ICP\n\nThe targeting payload must follow LinkedIn's 'targetingCriteria' shape — an\ninclude/exclude tree of and/or boolean operators with adTargetingFacet keys.\nThe simplest form:\n { \"include\": { \"and\": [{ \"or\": { \"urn:li:adTargetingFacet:locations\": [\"urn:li:geo:103644278\"] }}]}}\n\nExamples:\n baker ads linkedin audience-size --account-id 503001492 --targeting-file targeting.json\n baker ads linkedin audience-size --account-id 503001492 --targeting '{\"include\":{\"and\":[]}}'`,\n },\n args: {\n \"account-id\": { type: \"string\", description: \"Numeric account ID or urn:li:sponsoredAccount:N\" },\n \"account-urn\": { type: \"string\", description: \"Alias for --account-id\" },\n targeting: { type: \"string\", description: \"Inline JSON targetingCriteria payload\" },\n \"targeting-file\": { type: \"string\", description: \"Path to JSON file with targetingCriteria\" },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json\", default: \"json\" },\n },\n run: async ({ args }) => {\n const accountId = resolveAccountIdArg(args);\n const targetingCriteria = loadTargetingArg(args);\n try {\n const data = await apiPost<AudienceSizeResult>(\"/api/ads/linkedin/audience-size\", {\n accountId,\n targetingCriteria,\n skipCache: Boolean(args[\"no-cache\"]),\n });\n writeAdsJson({ ok: true, data });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAYvB,IAAM,sBAAsB,cAAc;AAAA,EAC/C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBf;AAAA,EACA,MAAM;AAAA,IACJ,cAAc,EAAE,MAAM,UAAU,aAAa,kDAAkD;AAAA,IAC/F,eAAe,EAAE,MAAM,UAAU,aAAa,yBAAyB;AAAA,IACvE,WAAW,EAAE,MAAM,UAAU,aAAa,wCAAwC;AAAA,IAClF,kBAAkB,EAAE,MAAM,UAAU,aAAa,2CAA2C;AAAA,IAC5F,YAAY;AAAA,IACZ,QAAQ,EAAE,MAAM,UAAU,aAAa,QAAQ,SAAS,OAAO;AAAA,EACjE;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,YAAY,oBAAoB,IAAI;AAC1C,UAAM,oBAAoB,iBAAiB,IAAI;AAC/C,QAAI;AACF,YAAM,OAAO,MAAM,QAA4B,mCAAmC;AAAA,QAChF;AAAA,QACA;AAAA,QACA,WAAW,QAAQ,KAAK,UAAU,CAAC;AAAA,MACrC,CAAC;AACD,mBAAa,EAAE,IAAI,MAAM,KAAK,CAAC;AAAA,IACjC,SAAS,KAAK;AACZ,0BAAoB,GAAG;AAAA,IACzB;AAAA,EACF;AACF,CAAC;","names":[]}