@koda-sl/baker-cli 0.495.0-dev.6b9c22aff → 0.495.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 (860) hide show
  1. package/README.md +1 -5
  2. package/dist/account-EF6OPUJT.js +80 -0
  3. package/dist/account-UHNR5KTE.js +79 -0
  4. package/dist/account-reads-CDZ3EL5D.js +218 -0
  5. package/dist/account-writes-VWU4FRGQ.js +66 -0
  6. package/dist/accounts-KMLXHADA.js +77 -0
  7. package/dist/accounts-QDGNTSTV.js +611 -0
  8. package/dist/actions-QL5UD2W4.js +55 -0
  9. package/dist/activecampaign-5OD45ROS.js +935 -0
  10. package/dist/ad-group-writes-ID6I3QUZ.js +170 -0
  11. package/dist/ad-groups-M7CV6NTH.js +68 -0
  12. package/dist/ad-writes-TSOAZYRE.js +174 -0
  13. package/dist/add-6K6LO7CM.js +104 -0
  14. package/dist/add-LYDJZDGO.js +302 -0
  15. package/dist/ads-CGLO73MH.js +77 -0
  16. package/dist/ads-DHPJFU52.js +40 -0
  17. package/dist/advertisers-23LU7GTV.js +120 -0
  18. package/dist/analytics-DVD4OBBR.js +1976 -0
  19. package/dist/analytics-HO2SLL4W.js +433 -0
  20. package/dist/animate-RGZWDZG2.js +480 -0
  21. package/dist/assign-CLKJKH2B.js +77 -0
  22. package/dist/audience-size-NNYYXODL.js +73 -0
  23. package/dist/audiences-WXIP5PJH.js +268 -0
  24. package/dist/audit-KB4P2XGS.js +151 -0
  25. package/dist/autocomplete-VZD2SMTE.js +111 -0
  26. package/dist/avatars-FKOO6VZ2.js +38 -0
  27. package/dist/bid-pricing-6LLXOLLI.js +100 -0
  28. package/dist/brand-NNWHBIAX.js +22 -0
  29. package/dist/brief-CPJQWT6W.js +538 -0
  30. package/dist/campaign-groups-YPYNXOWU.js +95 -0
  31. package/dist/campaign-groups-YPYNXOWU.js.map +1 -0
  32. package/dist/campaign-writes-UJ4L2O6G.js +165 -0
  33. package/dist/campaign-writes-W5IL6ZGB.js +170 -0
  34. package/dist/campaigns-FLTPD66X.js +76 -0
  35. package/dist/campaigns-HLBZRH5A.js +107 -0
  36. package/dist/campaigns-N44ZDGB5.js +109 -0
  37. package/dist/campaigns-N44ZDGB5.js.map +1 -0
  38. package/dist/canvas-D64GLWUO.js +46 -0
  39. package/dist/capabilities-LWXCWMIY.js +144 -0
  40. package/dist/catalog-ZDLQAODO.js +65 -0
  41. package/dist/catalogs-26VXVUST.js +128 -0
  42. package/dist/changes-SX2N5KIO.js +135 -0
  43. package/dist/chatgpt-YI6YNACI.js +47 -0
  44. package/dist/chats-7WGC2CVW.js +276 -0
  45. package/dist/check-EH6BXWWL.js +104 -0
  46. package/dist/chunk-2B772ZEA.js +169 -0
  47. package/dist/chunk-2KRK667G.js +51 -0
  48. package/dist/chunk-2TVXJPGR.js +103 -0
  49. package/dist/chunk-3AMLOCXY.js +392 -0
  50. package/dist/chunk-3N5A44NQ.js +122 -0
  51. package/dist/chunk-3S274625.js +131 -0
  52. package/dist/chunk-3WAYZQNV.js +61 -0
  53. package/dist/chunk-5A257KJA.js +160 -0
  54. package/dist/chunk-6QGS3RQP.js +363 -0
  55. package/dist/chunk-7KHTJQGV.js +1518 -0
  56. package/dist/chunk-A3DKSAEL.js +1606 -0
  57. package/dist/chunk-A4DZ5L3T.js +665 -0
  58. package/dist/chunk-ACDLKTUP.js +23992 -0
  59. package/dist/chunk-ACDLKTUP.js.map +1 -0
  60. package/dist/chunk-AFD32O4A.js +494 -0
  61. package/dist/chunk-AW2GKIGS.js +433 -0
  62. package/dist/chunk-B7GF34FU.js +8914 -0
  63. package/dist/chunk-BDYLILMW.js +150 -0
  64. package/dist/chunk-DAO63OOP.js +6352 -0
  65. package/dist/chunk-DAO63OOP.js.map +1 -0
  66. package/dist/chunk-EJ4QCMM6.js +285 -0
  67. package/dist/chunk-EMQUW6JB.js +942 -0
  68. package/dist/chunk-EW3JEKIV.js +139 -0
  69. package/dist/chunk-F377KYIM.js +274 -0
  70. package/dist/chunk-FBFWMTOP.js +19 -0
  71. package/dist/chunk-FCM6VPFP.js +98 -0
  72. package/dist/chunk-FKYPAGKK.js +1919 -0
  73. package/dist/chunk-GXGYTFZA.js +8939 -0
  74. package/dist/chunk-I7J7YQXZ.js +142 -0
  75. package/dist/chunk-IBY44U2M.js +1079 -0
  76. package/dist/chunk-IFXGCI33.js +297 -0
  77. package/dist/chunk-IKLHXGMF.js +91 -0
  78. package/dist/chunk-IYTPWAN3.js +604 -0
  79. package/dist/chunk-J3CWAERS.js +3868 -0
  80. package/dist/chunk-JAC6JVCI.js +26 -0
  81. package/dist/chunk-JH2L5CQD.js +206 -0
  82. package/dist/chunk-JUVVCA7B.js +97 -0
  83. package/dist/chunk-MCJ5I5LR.js +3187 -0
  84. package/dist/chunk-MCJ5I5LR.js.map +1 -0
  85. package/dist/chunk-MK6XJUCQ.js +197 -0
  86. package/dist/chunk-MOFMOYUA.js +148 -0
  87. package/dist/chunk-MZPS46OR.js +76 -0
  88. package/dist/chunk-N3I6ZXR7.js +66 -0
  89. package/dist/chunk-NBO2NSAW.js +592 -0
  90. package/dist/chunk-NEU5QD2C.js +249 -0
  91. package/dist/chunk-NKIBXOHT.js +344 -0
  92. package/dist/chunk-NZKBW4YB.js +846 -0
  93. package/dist/chunk-OE3MIV4F.js +547 -0
  94. package/dist/chunk-OL7JS4NG.js +5368 -0
  95. package/dist/chunk-P2MFWJR3.js +903 -0
  96. package/dist/chunk-PHCIFBP3.js +89 -0
  97. package/dist/chunk-PTUXBO5O.js +224 -0
  98. package/dist/chunk-Q3LXLWZY.js +275 -0
  99. package/dist/chunk-Q5WBTVA7.js +455 -0
  100. package/dist/chunk-QMOYQJIN.js +46 -0
  101. package/dist/chunk-QRLTVJ6F.js +167 -0
  102. package/dist/chunk-RDEAVCMF.js +399 -0
  103. package/dist/chunk-RGMKXNQP.js +23 -0
  104. package/dist/chunk-RJZS4XDJ.js +64 -0
  105. package/dist/chunk-RZTKCCUL.js +831 -0
  106. package/dist/chunk-S4VLLGTW.js +843 -0
  107. package/dist/chunk-SVM3DGAQ.js +228 -0
  108. package/dist/chunk-TTKBNBQF.js +156 -0
  109. package/dist/chunk-VB3XUR6A.js +207 -0
  110. package/dist/chunk-WTJSMYY2.js +4249 -0
  111. package/dist/chunk-WTJSMYY2.js.map +1 -0
  112. package/dist/chunk-XCKINS7K.js +57 -0
  113. package/dist/chunk-Y46FE75E.js +627 -0
  114. package/dist/chunk-Y6GKV7CU.js +346 -0
  115. package/dist/chunk-Y6GKV7CU.js.map +1 -0
  116. package/dist/chunk-Z2GQREJY.js +159 -0
  117. package/dist/chunk-ZA7OQLDJ.js +225 -0
  118. package/dist/chunk-ZDAVSTEE.js +172 -0
  119. package/dist/chunk-ZXCSOVS5.js +191 -0
  120. package/dist/claim-SVDCQ2AI.js +197 -0
  121. package/dist/cli.js +34 -34
  122. package/dist/companies-BYMYQK6A.js +195 -0
  123. package/dist/complete-NEH3MWRI.js +81 -0
  124. package/dist/connect-5PGL7ZOM.js +42 -0
  125. package/dist/conversation-CSOKJXDW.js +93 -0
  126. package/dist/conversion-report-7JJ5L6WH.js +125 -0
  127. package/dist/conversion-upload-command-UO2QWG3J.js +438 -0
  128. package/dist/conversion-writes-GIGAZT4T.js +120 -0
  129. package/dist/conversions-4JOTTFEH.js +135 -0
  130. package/dist/conversions-4JOTTFEH.js.map +1 -0
  131. package/dist/conversions-CIJZLGII.js +76 -0
  132. package/dist/create-2XYMBULY.js +207 -0
  133. package/dist/create-56PTZABQ.js +235 -0
  134. package/dist/create-D6S6TGWY.js +59 -0
  135. package/dist/create-SMW4O5PC.js +132 -0
  136. package/dist/creatives-OO76DAFS.js +58 -0
  137. package/dist/creatives-VJUYWJL6.js +182 -0
  138. package/dist/creatives-VJUYWJL6.js.map +1 -0
  139. package/dist/credentials-2ONYUJW6.js +287 -0
  140. package/dist/critique-NDDFSGPE.js +1458 -0
  141. package/dist/critique-YXZVMLZ4.js +227 -0
  142. package/dist/crm-Q6CEP5XV.js +224 -0
  143. package/dist/crm-WRONZYDH.js +318 -0
  144. package/dist/currency-TAEJVMVK.js +88 -0
  145. package/dist/customers-2EFYSCU2.js +56 -0
  146. package/dist/delete-7WEVC3FS.js +66 -0
  147. package/dist/delete-RBWK255M.js +54 -0
  148. package/dist/delete-VN4WWMQF.js +64 -0
  149. package/dist/demographics-I5XZ435C.js +138 -0
  150. package/dist/discard-XJLIXTNM.js +66 -0
  151. package/dist/discover-5Z253HXF.js +172 -0
  152. package/dist/domain-M7AEGAYI.js +98 -0
  153. package/dist/draft-5DQI4W5F.js +306 -0
  154. package/dist/draft-5DQI4W5F.js.map +1 -0
  155. package/dist/draft-7DWRFCXW.js +281 -0
  156. package/dist/draft-7IIYHSY2.js +332 -0
  157. package/dist/draft-CN6GKVBF.js +217 -0
  158. package/dist/draft-MNEM4N5W.js +307 -0
  159. package/dist/engine/index.js +7 -7
  160. package/dist/experiment-IDDWRCJ7.js +1397 -0
  161. package/dist/facets-ZLZ6LIHN.js +114 -0
  162. package/dist/feedback-7LEX2P5Q.js +106 -0
  163. package/dist/feedback-record-P4JJ63KA.js +260 -0
  164. package/dist/fetch-MIVCEHXZ.js +176 -0
  165. package/dist/find-VHN34MWL.js +134 -0
  166. package/dist/fit-SS6HSZPU.js +62 -0
  167. package/dist/flows-UTIIHDNE.js +247 -0
  168. package/dist/fonts-YPNN7ZJP.js +36 -0
  169. package/dist/forecast-OBSHG2GJ.js +118 -0
  170. package/dist/forecast-W7Z5TVQX.js +168 -0
  171. package/dist/funnel-Z2VLXUEQ.js +394 -0
  172. package/dist/ga4-ZPAEF2G2.js +55 -0
  173. package/dist/generate-Y76WU7M7.js +263 -0
  174. package/dist/get-MDAO6I7T.js +56 -0
  175. package/dist/get-ZB553BSH.js +79 -0
  176. package/dist/google-C3X7O2UO.js +136 -0
  177. package/dist/google-WYXDMH2N.js +3265 -0
  178. package/dist/google-ads-FTWL772L.js +195 -0
  179. package/dist/gsc-SDDHGTZK.js +30 -0
  180. package/dist/history-DGHMJ2XF.js +67 -0
  181. package/dist/history-WKJYKDMG.js +133 -0
  182. package/dist/hubspot-EPHVEPOO.js +779 -0
  183. package/dist/icon-MYPDC6FM.js +137 -0
  184. package/dist/ideas-3PBH7VEX.js +40 -0
  185. package/dist/images-J35C3WG4.js +92 -0
  186. package/dist/ingest-5QOPUKFE.js +107 -0
  187. package/dist/ingest-OKUYP632.js +23 -0
  188. package/dist/insights-EU45J56U.js +122 -0
  189. package/dist/inspect-PMNCP6MV.js +189 -0
  190. package/dist/inspiration-QAL7NS7G.js +53 -0
  191. package/dist/intent-FUGWRUSW.js +95 -0
  192. package/dist/keyword-gap-DXTKZLV2.js +130 -0
  193. package/dist/keyword-metrics-R752SJIT.js +197 -0
  194. package/dist/keywords-for-site-7UWPJYQF.js +128 -0
  195. package/dist/landing-CBVIOGJ5.js +28 -0
  196. package/dist/languages-XRTTEJ5P.js +40 -0
  197. package/dist/leads-LIJS6Y5W.js +90 -0
  198. package/dist/leads-LIJS6Y5W.js.map +1 -0
  199. package/dist/learn-N6QV7GXA.js +204 -0
  200. package/dist/line-item-writes-3WPJXKIL.js +208 -0
  201. package/dist/line-items-ZOFKOGAA.js +103 -0
  202. package/dist/link-DDRQKOUL.js +64 -0
  203. package/dist/linkedin-UWZCF66X.js +1057 -0
  204. package/dist/linkedin-UWZCF66X.js.map +1 -0
  205. package/dist/list-5PLXVPLB.js +151 -0
  206. package/dist/list-VSJISE7U.js +303 -0
  207. package/dist/list-WTVOBQYX.js +64 -0
  208. package/dist/locations-PCZPKH47.js +40 -0
  209. package/dist/locations-TGJH3URF.js +67 -0
  210. package/dist/log-YKKPROLZ.js +92 -0
  211. package/dist/logo-WE2UELX6.js +18 -0
  212. package/dist/make-RNOWBLZQ.js +1353 -0
  213. package/dist/map-WTDPQLVO.js +433 -0
  214. package/dist/mcp-XJNSCPP3.js +714 -0
  215. package/dist/media-sources-JGBDDXZ5.js +32 -0
  216. package/dist/members-O3BTMRXX.js +44 -0
  217. package/dist/metrics-PYPCW7FJ.js +152 -0
  218. package/dist/models-IAGO5GIH.js +155 -0
  219. package/dist/normalize-R5AYLA2J.js +141 -0
  220. package/dist/options-AILRY7JY.js +122 -0
  221. package/dist/organization-KJJXZLVK.js +946 -0
  222. package/dist/performance-7YU4HOGH.js +24 -0
  223. package/dist/pixels-R4MOLWAR.js +60 -0
  224. package/dist/promoted-tweet-writes-TNELWPVG.js +180 -0
  225. package/dist/promoted-tweets-76WKUFJQ.js +119 -0
  226. package/dist/publish-BKLHCKHB.js +341 -0
  227. package/dist/query-XDHZMGLX.js +61 -0
  228. package/dist/reddit-YK3YUZEI.js +26 -0
  229. package/dist/refresh-WIII7KXB.js +94 -0
  230. package/dist/release-ZHXYQI7G.js +60 -0
  231. package/dist/relevant-pages-CTG72PBR.js +99 -0
  232. package/dist/remove-NOX4BXWK.js +50 -0
  233. package/dist/reopen-NLWKK5HB.js +63 -0
  234. package/dist/rerun-DZWQNMZQ.js +90 -0
  235. package/dist/research-Q3P76RHN.js +62 -0
  236. package/dist/research-UDZBCDNX.js +262 -0
  237. package/dist/reset-5UHFX7QY.js +54 -0
  238. package/dist/reset-MTRJQUP7.js +54 -0
  239. package/dist/resolve-DA72VT7Q.js +121 -0
  240. package/dist/retry-LQUBX5TK.js +62 -0
  241. package/dist/retry-U6F4CS6O.js +60 -0
  242. package/dist/rules-VS5PZ7VO.js +96 -0
  243. package/dist/rules-add-LMVZYDXE.js +462 -0
  244. package/dist/run-6PRA2YSD.js +65 -0
  245. package/dist/run-R6COFNOR.js +66 -0
  246. package/dist/scaffold-ad-3OVJ7VZQ.js +1511 -0
  247. package/dist/scaffold-static-ad-DDRA3Q5I.js +1005 -0
  248. package/dist/scaffold-video-3JZYFYFU.js +883 -0
  249. package/dist/schedule-ED2YDUPY.js +61 -0
  250. package/dist/scheduled-agents-5P67MVGX.js +50 -0
  251. package/dist/schema-4XVKERSA.js +132 -0
  252. package/dist/search-Y2UMIQ57.js +174 -0
  253. package/dist/select-OZ4E6VLF.js +101 -0
  254. package/dist/set-prompt-O4YAE4CE.js +193 -0
  255. package/dist/setup-links-2GJYCV2A.js +141 -0
  256. package/dist/site-47B6V2UX.js +177 -0
  257. package/dist/sources-DXPZAPQ7.js +454 -0
  258. package/dist/sources-NDXYTASG.js +30 -0
  259. package/dist/stale-VLVBO2L6.js +71 -0
  260. package/dist/stats-37OFAMPW.js +34 -0
  261. package/dist/status-4ODD46XY.js +62 -0
  262. package/dist/stock-6R5E7MJX.js +179 -0
  263. package/dist/studio-LEIGL3Q7.js +49 -0
  264. package/dist/sync-TKNVBUDM.js +54 -0
  265. package/dist/sync-definition-M5R3H3TP.js +64 -0
  266. package/dist/tag-manager-3Q55PBEW.js +43 -0
  267. package/dist/tags-4N5UUUN6.js +26 -0
  268. package/dist/tags-5NHIAD5A.js +20 -0
  269. package/dist/tags-UUKWSWCN.js +20 -0
  270. package/dist/tags-VK7B5DJF.js +20 -0
  271. package/dist/tags-XAHIB3WA.js +224 -0
  272. package/dist/targeting-criteria-AVARWV2G.js +113 -0
  273. package/dist/targets-6RYLQRID.js +103 -0
  274. package/dist/testimonials-6TF6BOFN.js +32 -0
  275. package/dist/themes-JZ3DPE7L.js +94 -0
  276. package/dist/top-companies-45EHRCJD.js +108 -0
  277. package/dist/translate-VHLBACCE.js +604 -0
  278. package/dist/triggers-ERQONJNO.js +142 -0
  279. package/dist/unlink-TPDO6JNF.js +67 -0
  280. package/dist/unstage-YKKQQ7LW.js +85 -0
  281. package/dist/update-43WU6X7R.js +63 -0
  282. package/dist/update-CAHLAXWO.js +98 -0
  283. package/dist/update-NGH6YADN.js +152 -0
  284. package/dist/update-SPJIHHLE.js +188 -0
  285. package/dist/upload-ACESIZIZ.js +126 -0
  286. package/dist/url-options-VNX5KYUQ.js +130 -0
  287. package/dist/url-params-MIXEDBF7.js +98 -0
  288. package/dist/validate-XJJA7ULE.js +117 -0
  289. package/dist/videos-LBXPG7WC.js +39 -0
  290. package/dist/viewer-check-7VJ3GUZX.js +80 -0
  291. package/dist/web-EWQJC2SD.js +140 -0
  292. package/dist/winning-ads-SAOJAKEQ.js +86 -0
  293. package/dist/write-commands-QPDE4GWW.js +1024 -0
  294. package/dist/write-commands-QPDE4GWW.js.map +1 -0
  295. package/dist/x-LXOJPCRF.js +47 -0
  296. package/package.json +1 -1
  297. package/dist/account-CJGLH2OL.js +0 -80
  298. package/dist/account-UTFFCFNW.js +0 -79
  299. package/dist/account-reads-SOTNVUM6.js +0 -218
  300. package/dist/account-users-FUJVP4UG.js +0 -61
  301. package/dist/account-users-FUJVP4UG.js.map +0 -1
  302. package/dist/account-writes-OE5FKALN.js +0 -66
  303. package/dist/accounts-OY4DII7M.js +0 -611
  304. package/dist/accounts-XUMRFVLY.js +0 -77
  305. package/dist/actions-KYKLFVUI.js +0 -55
  306. package/dist/activecampaign-P6RO7B2Q.js +0 -935
  307. package/dist/ad-group-writes-343HA4ZG.js +0 -170
  308. package/dist/ad-groups-YMU6ATTW.js +0 -68
  309. package/dist/ad-writes-MINKG33L.js +0 -174
  310. package/dist/add-34QTAS7S.js +0 -104
  311. package/dist/add-3IZ3Z2PX.js +0 -302
  312. package/dist/ads-JRZVJFXS.js +0 -40
  313. package/dist/ads-QOXCMKZ2.js +0 -77
  314. package/dist/advertisers-G2UUCWA7.js +0 -120
  315. package/dist/analytics-CKF7HTWT.js +0 -433
  316. package/dist/analytics-FO4EDDQW.js +0 -1976
  317. package/dist/animate-K3MJ3GW4.js +0 -480
  318. package/dist/assign-76E76PJY.js +0 -77
  319. package/dist/audience-size-IGDEX4XR.js +0 -73
  320. package/dist/audiences-4GRCVFZN.js +0 -268
  321. package/dist/audit-LPSYEY4S.js +0 -151
  322. package/dist/autocomplete-G7MSIJQL.js +0 -111
  323. package/dist/avatars-BF7VWGPH.js +0 -38
  324. package/dist/bid-pricing-EAZHVAMJ.js +0 -100
  325. package/dist/brand-WQI4NV3H.js +0 -22
  326. package/dist/brief-DVFCPBR3.js +0 -538
  327. package/dist/campaign-groups-LCTAUXTU.js +0 -96
  328. package/dist/campaign-groups-LCTAUXTU.js.map +0 -1
  329. package/dist/campaign-writes-ECPSPFAB.js +0 -165
  330. package/dist/campaign-writes-EZEJNO3O.js +0 -170
  331. package/dist/campaigns-7S35PC44.js +0 -76
  332. package/dist/campaigns-MVLKQWX2.js +0 -110
  333. package/dist/campaigns-MVLKQWX2.js.map +0 -1
  334. package/dist/campaigns-R3EUC5Y2.js +0 -107
  335. package/dist/canvas-Y3DKVETP.js +0 -46
  336. package/dist/capabilities-OBP5PDRK.js +0 -144
  337. package/dist/catalog-SZS2JCLN.js +0 -65
  338. package/dist/catalogs-LEABW6AS.js +0 -128
  339. package/dist/changes-4EDY3RNX.js +0 -135
  340. package/dist/chatgpt-JOAEGWCB.js +0 -47
  341. package/dist/chats-KE7FNWKF.js +0 -276
  342. package/dist/check-XHK2HVD2.js +0 -104
  343. package/dist/chunk-22HH46DF.js +0 -122
  344. package/dist/chunk-2VWWLUDJ.js +0 -23
  345. package/dist/chunk-2WBRRYSS.js +0 -197
  346. package/dist/chunk-2XH7GKCO.js +0 -156
  347. package/dist/chunk-3LMAPV6P.js +0 -942
  348. package/dist/chunk-3LZM5MWM.js +0 -57
  349. package/dist/chunk-4ARHIC23.js +0 -392
  350. package/dist/chunk-5KEQXSCN.js +0 -1919
  351. package/dist/chunk-5PMEMWKS.js +0 -665
  352. package/dist/chunk-64BRPYJD.js +0 -225
  353. package/dist/chunk-6DQDZIBL.js +0 -363
  354. package/dist/chunk-6H64SENZ.js +0 -285
  355. package/dist/chunk-6KGLAMPV.js +0 -167
  356. package/dist/chunk-6OIKNJ7G.js +0 -26
  357. package/dist/chunk-6VIHWBOD.js +0 -1606
  358. package/dist/chunk-74BP3JIV.js +0 -275
  359. package/dist/chunk-7AWSJ6Z5.js +0 -66
  360. package/dist/chunk-7IVY55AU.js +0 -903
  361. package/dist/chunk-7POQSUPH.js +0 -455
  362. package/dist/chunk-7RCNWRKK.js +0 -206
  363. package/dist/chunk-ABEIEHOV.js +0 -131
  364. package/dist/chunk-AREUZGX7.js +0 -344
  365. package/dist/chunk-CNFFNE4L.js +0 -274
  366. package/dist/chunk-CORXHFKY.js +0 -433
  367. package/dist/chunk-D3SHD4KA.js +0 -399
  368. package/dist/chunk-DD3C6TSW.js +0 -61
  369. package/dist/chunk-DQU2GVU7.js +0 -51
  370. package/dist/chunk-ECHVJII5.js +0 -97
  371. package/dist/chunk-EFWXYUSK.js +0 -139
  372. package/dist/chunk-F3CZFUXZ.js +0 -3187
  373. package/dist/chunk-F3CZFUXZ.js.map +0 -1
  374. package/dist/chunk-F4KWLFCC.js +0 -103
  375. package/dist/chunk-FL2KIDPV.js +0 -494
  376. package/dist/chunk-FT7RYWOL.js +0 -160
  377. package/dist/chunk-HPIKZPTU.js +0 -297
  378. package/dist/chunk-HUPHZ35H.js +0 -547
  379. package/dist/chunk-JGM4WGC2.js +0 -6704
  380. package/dist/chunk-JGM4WGC2.js.map +0 -1
  381. package/dist/chunk-JMW3AVN7.js +0 -346
  382. package/dist/chunk-JMW3AVN7.js.map +0 -1
  383. package/dist/chunk-JQHLF74O.js +0 -8939
  384. package/dist/chunk-K2TOE6XL.js +0 -142
  385. package/dist/chunk-KI6TENTW.js +0 -5368
  386. package/dist/chunk-LMYCLUY2.js +0 -8914
  387. package/dist/chunk-LQR4CKYW.js +0 -191
  388. package/dist/chunk-LRFNUCHV.js +0 -89
  389. package/dist/chunk-M2D7ZWEU.js +0 -150
  390. package/dist/chunk-ML7GGHTU.js +0 -592
  391. package/dist/chunk-MMUGSEF4.js +0 -23992
  392. package/dist/chunk-MMUGSEF4.js.map +0 -1
  393. package/dist/chunk-MYSLMKTG.js +0 -604
  394. package/dist/chunk-NAA4CKZZ.js +0 -4249
  395. package/dist/chunk-NAA4CKZZ.js.map +0 -1
  396. package/dist/chunk-NDKLPDZ3.js +0 -1079
  397. package/dist/chunk-OUQSDUVI.js +0 -831
  398. package/dist/chunk-PFPUPR3H.js +0 -91
  399. package/dist/chunk-PGD7USOH.js +0 -207
  400. package/dist/chunk-QKT7W5JP.js +0 -98
  401. package/dist/chunk-QU4XX5Z7.js +0 -169
  402. package/dist/chunk-R3OXH3ML.js +0 -148
  403. package/dist/chunk-RNQMXS7G.js +0 -172
  404. package/dist/chunk-SEMNRIOR.js +0 -19
  405. package/dist/chunk-SHBFBQYT.js +0 -846
  406. package/dist/chunk-SIKCVWM3.js +0 -76
  407. package/dist/chunk-UJPURLUZ.js +0 -3868
  408. package/dist/chunk-UM7NJIOU.js +0 -64
  409. package/dist/chunk-V57TZQPI.js +0 -228
  410. package/dist/chunk-WXKSUL4U.js +0 -224
  411. package/dist/chunk-YJRZVGES.js +0 -1518
  412. package/dist/chunk-YQICNXIA.js +0 -249
  413. package/dist/chunk-YTF2MI3E.js +0 -627
  414. package/dist/chunk-YYPWVQZQ.js +0 -843
  415. package/dist/chunk-Z7BQGWKG.js +0 -46
  416. package/dist/chunk-ZXSXRSFX.js +0 -159
  417. package/dist/claim-W2ZV4SH3.js +0 -197
  418. package/dist/companies-ITK3W3H6.js +0 -195
  419. package/dist/complete-RYEVEF3S.js +0 -81
  420. package/dist/connect-FFFNSJ2O.js +0 -42
  421. package/dist/conversation-KKJNQRFB.js +0 -93
  422. package/dist/conversion-report-PLQ4MVJR.js +0 -125
  423. package/dist/conversion-upload-command-Z7F6NQH4.js +0 -438
  424. package/dist/conversion-writes-VNOXZ4NR.js +0 -120
  425. package/dist/conversions-KHAXFD3Z.js +0 -137
  426. package/dist/conversions-KHAXFD3Z.js.map +0 -1
  427. package/dist/conversions-KPIFDO2R.js +0 -76
  428. package/dist/create-3R6Q2E2M.js +0 -59
  429. package/dist/create-A3R7YRT3.js +0 -235
  430. package/dist/create-TYWQP57A.js +0 -207
  431. package/dist/create-UUEWQUPT.js +0 -132
  432. package/dist/creatives-EEDDL3VG.js +0 -220
  433. package/dist/creatives-EEDDL3VG.js.map +0 -1
  434. package/dist/creatives-UK4VITNW.js +0 -58
  435. package/dist/credentials-A65GYH4D.js +0 -287
  436. package/dist/critique-46O4VVPM.js +0 -1458
  437. package/dist/critique-RPRMG2ZC.js +0 -227
  438. package/dist/crm-2WYW3D22.js +0 -224
  439. package/dist/crm-PQ24MNIU.js +0 -318
  440. package/dist/currency-Q3HCK447.js +0 -88
  441. package/dist/customers-YTQ7IQ5C.js +0 -56
  442. package/dist/delete-BBISJTFG.js +0 -54
  443. package/dist/delete-PQ4NUNLX.js +0 -66
  444. package/dist/delete-TBW6TJ6A.js +0 -64
  445. package/dist/demographics-EVP55FT3.js +0 -138
  446. package/dist/discard-LPJA4DEY.js +0 -66
  447. package/dist/discover-3G6CE7X3.js +0 -172
  448. package/dist/domain-5MM7V7JD.js +0 -98
  449. package/dist/draft-34D5MOKA.js +0 -217
  450. package/dist/draft-A6M562M4.js +0 -307
  451. package/dist/draft-A6M562M4.js.map +0 -1
  452. package/dist/draft-EGS7UFF3.js +0 -281
  453. package/dist/draft-J6GJXZRX.js +0 -307
  454. package/dist/draft-K3O7Q3A5.js +0 -332
  455. package/dist/experiment-7RJ5X2LL.js +0 -1397
  456. package/dist/experiments-HERTVBYK.js +0 -233
  457. package/dist/experiments-HERTVBYK.js.map +0 -1
  458. package/dist/facets-RUZKALF3.js +0 -114
  459. package/dist/feedback-S5LHJYZD.js +0 -106
  460. package/dist/feedback-record-GAM2R5GG.js +0 -260
  461. package/dist/fetch-FA6TR66Y.js +0 -176
  462. package/dist/find-2EPXK5RF.js +0 -134
  463. package/dist/fit-MOMO4AXL.js +0 -62
  464. package/dist/flows-DMMCSBWY.js +0 -247
  465. package/dist/fonts-G4JLXWX2.js +0 -36
  466. package/dist/forecast-OOP4K5DE.js +0 -118
  467. package/dist/forecast-V65WS5QG.js +0 -168
  468. package/dist/funnel-SEQPUM3X.js +0 -394
  469. package/dist/ga4-6EIQC2TG.js +0 -55
  470. package/dist/generate-IDDQD5FU.js +0 -263
  471. package/dist/get-DEOZMGOQ.js +0 -56
  472. package/dist/get-SEJINVOS.js +0 -79
  473. package/dist/google-7L3FWKPJ.js +0 -3265
  474. package/dist/google-O5OI6QFU.js +0 -136
  475. package/dist/google-ads-MIGWMCWY.js +0 -195
  476. package/dist/gsc-BM3T2GDL.js +0 -30
  477. package/dist/history-IBWXCDCB.js +0 -133
  478. package/dist/history-Z5577FPQ.js +0 -67
  479. package/dist/hubspot-6AZKUX72.js +0 -779
  480. package/dist/icon-B7DG53S5.js +0 -137
  481. package/dist/ideas-AX7S3NCG.js +0 -40
  482. package/dist/images-632SXTB5.js +0 -92
  483. package/dist/ingest-HS55RVKH.js +0 -23
  484. package/dist/ingest-T3OK3DRG.js +0 -107
  485. package/dist/insights-UDX66IMV.js +0 -122
  486. package/dist/inspect-D6ZIUBH3.js +0 -189
  487. package/dist/inspiration-TCCKM4R7.js +0 -53
  488. package/dist/intent-3WTKKTUX.js +0 -95
  489. package/dist/keyword-gap-7GESZXY2.js +0 -130
  490. package/dist/keyword-metrics-J43MV3RQ.js +0 -197
  491. package/dist/keywords-for-site-6YKCTFJZ.js +0 -128
  492. package/dist/landing-Y7DI2FUT.js +0 -28
  493. package/dist/languages-LSKNZI2A.js +0 -40
  494. package/dist/leads-R3WBKADF.js +0 -112
  495. package/dist/leads-R3WBKADF.js.map +0 -1
  496. package/dist/learn-M4UHA476.js +0 -204
  497. package/dist/line-item-writes-F2OPBMIE.js +0 -208
  498. package/dist/line-items-YJ3DLV2U.js +0 -103
  499. package/dist/link-RZKYW22K.js +0 -64
  500. package/dist/linkedin-JYZOPU7A.js +0 -1299
  501. package/dist/linkedin-JYZOPU7A.js.map +0 -1
  502. package/dist/list-NPJ34244.js +0 -151
  503. package/dist/list-WTVBOTA4.js +0 -64
  504. package/dist/list-XK5CHKYJ.js +0 -303
  505. package/dist/locations-DSDCNP5Z.js +0 -40
  506. package/dist/locations-SFZN4MYW.js +0 -67
  507. package/dist/log-K4FWHXIM.js +0 -92
  508. package/dist/logo-QTSBKP2J.js +0 -18
  509. package/dist/make-VQDUKVPB.js +0 -1353
  510. package/dist/map-Z3MEM6QX.js +0 -433
  511. package/dist/mcp-KJOSR534.js +0 -714
  512. package/dist/media-sources-44HTWIY3.js +0 -32
  513. package/dist/members-HGU22NL3.js +0 -44
  514. package/dist/metrics-OV2EKPJ6.js +0 -152
  515. package/dist/models-NGAUD6QJ.js +0 -155
  516. package/dist/normalize-IUPOHEZJ.js +0 -141
  517. package/dist/options-TL5TPGHK.js +0 -122
  518. package/dist/organization-3ORT4474.js +0 -946
  519. package/dist/performance-PCZHQCZ5.js +0 -24
  520. package/dist/pixels-GHEAK62X.js +0 -60
  521. package/dist/promoted-tweet-writes-O4RTZFSI.js +0 -180
  522. package/dist/promoted-tweets-AWP6MGJI.js +0 -119
  523. package/dist/publish-PODZKJHW.js +0 -341
  524. package/dist/query-FUSR27T4.js +0 -61
  525. package/dist/reddit-UNUNWSNR.js +0 -26
  526. package/dist/refresh-34UO2LXY.js +0 -94
  527. package/dist/release-BD3EAD75.js +0 -60
  528. package/dist/relevant-pages-FNKYR2OG.js +0 -99
  529. package/dist/remove-YQYSQCWI.js +0 -50
  530. package/dist/reopen-MULNJOR5.js +0 -63
  531. package/dist/rerun-6YGYJPM7.js +0 -90
  532. package/dist/research-6WEL3USW.js +0 -62
  533. package/dist/research-OBECRSPL.js +0 -262
  534. package/dist/reset-5TTLZ43U.js +0 -54
  535. package/dist/reset-PRTK6YUD.js +0 -54
  536. package/dist/resolve-6RM63T55.js +0 -121
  537. package/dist/retry-XYTVP7BV.js +0 -60
  538. package/dist/retry-Z3C624JW.js +0 -62
  539. package/dist/revenue-VSH6KXCV.js +0 -88
  540. package/dist/revenue-VSH6KXCV.js.map +0 -1
  541. package/dist/rules-AUAJUM2T.js +0 -96
  542. package/dist/rules-add-7VFGPGZ7.js +0 -462
  543. package/dist/run-S3SVCTIB.js +0 -65
  544. package/dist/run-YA5RCRIX.js +0 -66
  545. package/dist/scaffold-ad-2KQULVJU.js +0 -1511
  546. package/dist/scaffold-static-ad-S46QADGV.js +0 -1005
  547. package/dist/scaffold-video-ZMHI2JDU.js +0 -883
  548. package/dist/schedule-FT6P3EKG.js +0 -61
  549. package/dist/scheduled-agents-L7K4QWMD.js +0 -50
  550. package/dist/schema-CH654RZB.js +0 -132
  551. package/dist/search-YKYB2P2M.js +0 -174
  552. package/dist/select-PM7JUDQY.js +0 -101
  553. package/dist/set-prompt-VATAT7H6.js +0 -193
  554. package/dist/setup-links-TM3NCVU7.js +0 -141
  555. package/dist/site-ATAXCWXS.js +0 -177
  556. package/dist/sources-N5RKYKFS.js +0 -30
  557. package/dist/sources-V544MB26.js +0 -454
  558. package/dist/stale-RNEYXKFX.js +0 -71
  559. package/dist/stats-CVF6AC7R.js +0 -34
  560. package/dist/status-DPTFOJVV.js +0 -62
  561. package/dist/stock-4LPQ6SM7.js +0 -179
  562. package/dist/studio-NZ3NA4L4.js +0 -49
  563. package/dist/sync-UBLCCOQZ.js +0 -54
  564. package/dist/sync-definition-RXRSI2LT.js +0 -64
  565. package/dist/tag-manager-FLXXLNKP.js +0 -43
  566. package/dist/tags-2D4AN2QB.js +0 -224
  567. package/dist/tags-5OM2VN3Q.js +0 -26
  568. package/dist/tags-CJWSUBCD.js +0 -20
  569. package/dist/tags-MHKZW2JN.js +0 -20
  570. package/dist/tags-Z6AH7FDT.js +0 -20
  571. package/dist/targeting-criteria-RSAN4KW5.js +0 -113
  572. package/dist/targets-EER2G4WH.js +0 -103
  573. package/dist/testimonials-4WJKAZ5S.js +0 -32
  574. package/dist/themes-XUALHDHR.js +0 -94
  575. package/dist/top-companies-BSOYGMIB.js +0 -108
  576. package/dist/translate-2XRHDWSC.js +0 -604
  577. package/dist/triggers-NU6BQ5NJ.js +0 -142
  578. package/dist/unlink-LQGPZND2.js +0 -67
  579. package/dist/unstage-GDKW56MH.js +0 -85
  580. package/dist/update-43QN723C.js +0 -63
  581. package/dist/update-6CAZKFTC.js +0 -188
  582. package/dist/update-EGOWYBEH.js +0 -152
  583. package/dist/update-QRGEMNBY.js +0 -98
  584. package/dist/upload-LIHRXWUY.js +0 -126
  585. package/dist/url-options-JXL4W7TB.js +0 -130
  586. package/dist/url-params-YXRZ4TUD.js +0 -98
  587. package/dist/validate-KO3MEJUZ.js +0 -117
  588. package/dist/videos-BPJ34YZL.js +0 -39
  589. package/dist/viewer-check-SA5AUQ26.js +0 -80
  590. package/dist/web-KS47ZHXX.js +0 -140
  591. package/dist/winning-ads-LE2ALICG.js +0 -86
  592. package/dist/write-commands-PPR7G4UN.js +0 -1453
  593. package/dist/write-commands-PPR7G4UN.js.map +0 -1
  594. package/dist/x-DZGRJQ7Y.js +0 -47
  595. /package/dist/{account-CJGLH2OL.js.map → account-EF6OPUJT.js.map} +0 -0
  596. /package/dist/{account-UTFFCFNW.js.map → account-UHNR5KTE.js.map} +0 -0
  597. /package/dist/{account-reads-SOTNVUM6.js.map → account-reads-CDZ3EL5D.js.map} +0 -0
  598. /package/dist/{account-writes-OE5FKALN.js.map → account-writes-VWU4FRGQ.js.map} +0 -0
  599. /package/dist/{accounts-XUMRFVLY.js.map → accounts-KMLXHADA.js.map} +0 -0
  600. /package/dist/{accounts-OY4DII7M.js.map → accounts-QDGNTSTV.js.map} +0 -0
  601. /package/dist/{actions-KYKLFVUI.js.map → actions-QL5UD2W4.js.map} +0 -0
  602. /package/dist/{activecampaign-P6RO7B2Q.js.map → activecampaign-5OD45ROS.js.map} +0 -0
  603. /package/dist/{ad-group-writes-343HA4ZG.js.map → ad-group-writes-ID6I3QUZ.js.map} +0 -0
  604. /package/dist/{ad-groups-YMU6ATTW.js.map → ad-groups-M7CV6NTH.js.map} +0 -0
  605. /package/dist/{ad-writes-MINKG33L.js.map → ad-writes-TSOAZYRE.js.map} +0 -0
  606. /package/dist/{add-34QTAS7S.js.map → add-6K6LO7CM.js.map} +0 -0
  607. /package/dist/{add-3IZ3Z2PX.js.map → add-LYDJZDGO.js.map} +0 -0
  608. /package/dist/{ads-QOXCMKZ2.js.map → ads-CGLO73MH.js.map} +0 -0
  609. /package/dist/{ads-JRZVJFXS.js.map → ads-DHPJFU52.js.map} +0 -0
  610. /package/dist/{advertisers-G2UUCWA7.js.map → advertisers-23LU7GTV.js.map} +0 -0
  611. /package/dist/{analytics-FO4EDDQW.js.map → analytics-DVD4OBBR.js.map} +0 -0
  612. /package/dist/{analytics-CKF7HTWT.js.map → analytics-HO2SLL4W.js.map} +0 -0
  613. /package/dist/{animate-K3MJ3GW4.js.map → animate-RGZWDZG2.js.map} +0 -0
  614. /package/dist/{assign-76E76PJY.js.map → assign-CLKJKH2B.js.map} +0 -0
  615. /package/dist/{audience-size-IGDEX4XR.js.map → audience-size-NNYYXODL.js.map} +0 -0
  616. /package/dist/{audiences-4GRCVFZN.js.map → audiences-WXIP5PJH.js.map} +0 -0
  617. /package/dist/{audit-LPSYEY4S.js.map → audit-KB4P2XGS.js.map} +0 -0
  618. /package/dist/{autocomplete-G7MSIJQL.js.map → autocomplete-VZD2SMTE.js.map} +0 -0
  619. /package/dist/{avatars-BF7VWGPH.js.map → avatars-FKOO6VZ2.js.map} +0 -0
  620. /package/dist/{bid-pricing-EAZHVAMJ.js.map → bid-pricing-6LLXOLLI.js.map} +0 -0
  621. /package/dist/{brand-WQI4NV3H.js.map → brand-NNWHBIAX.js.map} +0 -0
  622. /package/dist/{brief-DVFCPBR3.js.map → brief-CPJQWT6W.js.map} +0 -0
  623. /package/dist/{campaign-writes-ECPSPFAB.js.map → campaign-writes-UJ4L2O6G.js.map} +0 -0
  624. /package/dist/{campaign-writes-EZEJNO3O.js.map → campaign-writes-W5IL6ZGB.js.map} +0 -0
  625. /package/dist/{campaigns-7S35PC44.js.map → campaigns-FLTPD66X.js.map} +0 -0
  626. /package/dist/{campaigns-R3EUC5Y2.js.map → campaigns-HLBZRH5A.js.map} +0 -0
  627. /package/dist/{canvas-Y3DKVETP.js.map → canvas-D64GLWUO.js.map} +0 -0
  628. /package/dist/{capabilities-OBP5PDRK.js.map → capabilities-LWXCWMIY.js.map} +0 -0
  629. /package/dist/{catalog-SZS2JCLN.js.map → catalog-ZDLQAODO.js.map} +0 -0
  630. /package/dist/{catalogs-LEABW6AS.js.map → catalogs-26VXVUST.js.map} +0 -0
  631. /package/dist/{changes-4EDY3RNX.js.map → changes-SX2N5KIO.js.map} +0 -0
  632. /package/dist/{chatgpt-JOAEGWCB.js.map → chatgpt-YI6YNACI.js.map} +0 -0
  633. /package/dist/{chats-KE7FNWKF.js.map → chats-7WGC2CVW.js.map} +0 -0
  634. /package/dist/{check-XHK2HVD2.js.map → check-EH6BXWWL.js.map} +0 -0
  635. /package/dist/{chunk-QU4XX5Z7.js.map → chunk-2B772ZEA.js.map} +0 -0
  636. /package/dist/{chunk-DQU2GVU7.js.map → chunk-2KRK667G.js.map} +0 -0
  637. /package/dist/{chunk-F4KWLFCC.js.map → chunk-2TVXJPGR.js.map} +0 -0
  638. /package/dist/{chunk-4ARHIC23.js.map → chunk-3AMLOCXY.js.map} +0 -0
  639. /package/dist/{chunk-22HH46DF.js.map → chunk-3N5A44NQ.js.map} +0 -0
  640. /package/dist/{chunk-ABEIEHOV.js.map → chunk-3S274625.js.map} +0 -0
  641. /package/dist/{chunk-DD3C6TSW.js.map → chunk-3WAYZQNV.js.map} +0 -0
  642. /package/dist/{chunk-FT7RYWOL.js.map → chunk-5A257KJA.js.map} +0 -0
  643. /package/dist/{chunk-6DQDZIBL.js.map → chunk-6QGS3RQP.js.map} +0 -0
  644. /package/dist/{chunk-YJRZVGES.js.map → chunk-7KHTJQGV.js.map} +0 -0
  645. /package/dist/{chunk-6VIHWBOD.js.map → chunk-A3DKSAEL.js.map} +0 -0
  646. /package/dist/{chunk-5PMEMWKS.js.map → chunk-A4DZ5L3T.js.map} +0 -0
  647. /package/dist/{chunk-FL2KIDPV.js.map → chunk-AFD32O4A.js.map} +0 -0
  648. /package/dist/{chunk-CORXHFKY.js.map → chunk-AW2GKIGS.js.map} +0 -0
  649. /package/dist/{chunk-LMYCLUY2.js.map → chunk-B7GF34FU.js.map} +0 -0
  650. /package/dist/{chunk-M2D7ZWEU.js.map → chunk-BDYLILMW.js.map} +0 -0
  651. /package/dist/{chunk-6H64SENZ.js.map → chunk-EJ4QCMM6.js.map} +0 -0
  652. /package/dist/{chunk-3LMAPV6P.js.map → chunk-EMQUW6JB.js.map} +0 -0
  653. /package/dist/{chunk-EFWXYUSK.js.map → chunk-EW3JEKIV.js.map} +0 -0
  654. /package/dist/{chunk-CNFFNE4L.js.map → chunk-F377KYIM.js.map} +0 -0
  655. /package/dist/{chunk-SEMNRIOR.js.map → chunk-FBFWMTOP.js.map} +0 -0
  656. /package/dist/{chunk-QKT7W5JP.js.map → chunk-FCM6VPFP.js.map} +0 -0
  657. /package/dist/{chunk-5KEQXSCN.js.map → chunk-FKYPAGKK.js.map} +0 -0
  658. /package/dist/{chunk-JQHLF74O.js.map → chunk-GXGYTFZA.js.map} +0 -0
  659. /package/dist/{chunk-K2TOE6XL.js.map → chunk-I7J7YQXZ.js.map} +0 -0
  660. /package/dist/{chunk-NDKLPDZ3.js.map → chunk-IBY44U2M.js.map} +0 -0
  661. /package/dist/{chunk-HPIKZPTU.js.map → chunk-IFXGCI33.js.map} +0 -0
  662. /package/dist/{chunk-PFPUPR3H.js.map → chunk-IKLHXGMF.js.map} +0 -0
  663. /package/dist/{chunk-MYSLMKTG.js.map → chunk-IYTPWAN3.js.map} +0 -0
  664. /package/dist/{chunk-UJPURLUZ.js.map → chunk-J3CWAERS.js.map} +0 -0
  665. /package/dist/{chunk-6OIKNJ7G.js.map → chunk-JAC6JVCI.js.map} +0 -0
  666. /package/dist/{chunk-7RCNWRKK.js.map → chunk-JH2L5CQD.js.map} +0 -0
  667. /package/dist/{chunk-ECHVJII5.js.map → chunk-JUVVCA7B.js.map} +0 -0
  668. /package/dist/{chunk-2WBRRYSS.js.map → chunk-MK6XJUCQ.js.map} +0 -0
  669. /package/dist/{chunk-R3OXH3ML.js.map → chunk-MOFMOYUA.js.map} +0 -0
  670. /package/dist/{chunk-SIKCVWM3.js.map → chunk-MZPS46OR.js.map} +0 -0
  671. /package/dist/{chunk-7AWSJ6Z5.js.map → chunk-N3I6ZXR7.js.map} +0 -0
  672. /package/dist/{chunk-ML7GGHTU.js.map → chunk-NBO2NSAW.js.map} +0 -0
  673. /package/dist/{chunk-YQICNXIA.js.map → chunk-NEU5QD2C.js.map} +0 -0
  674. /package/dist/{chunk-AREUZGX7.js.map → chunk-NKIBXOHT.js.map} +0 -0
  675. /package/dist/{chunk-SHBFBQYT.js.map → chunk-NZKBW4YB.js.map} +0 -0
  676. /package/dist/{chunk-HUPHZ35H.js.map → chunk-OE3MIV4F.js.map} +0 -0
  677. /package/dist/{chunk-KI6TENTW.js.map → chunk-OL7JS4NG.js.map} +0 -0
  678. /package/dist/{chunk-7IVY55AU.js.map → chunk-P2MFWJR3.js.map} +0 -0
  679. /package/dist/{chunk-LRFNUCHV.js.map → chunk-PHCIFBP3.js.map} +0 -0
  680. /package/dist/{chunk-WXKSUL4U.js.map → chunk-PTUXBO5O.js.map} +0 -0
  681. /package/dist/{chunk-74BP3JIV.js.map → chunk-Q3LXLWZY.js.map} +0 -0
  682. /package/dist/{chunk-7POQSUPH.js.map → chunk-Q5WBTVA7.js.map} +0 -0
  683. /package/dist/{chunk-Z7BQGWKG.js.map → chunk-QMOYQJIN.js.map} +0 -0
  684. /package/dist/{chunk-6KGLAMPV.js.map → chunk-QRLTVJ6F.js.map} +0 -0
  685. /package/dist/{chunk-D3SHD4KA.js.map → chunk-RDEAVCMF.js.map} +0 -0
  686. /package/dist/{chunk-2VWWLUDJ.js.map → chunk-RGMKXNQP.js.map} +0 -0
  687. /package/dist/{chunk-UM7NJIOU.js.map → chunk-RJZS4XDJ.js.map} +0 -0
  688. /package/dist/{chunk-OUQSDUVI.js.map → chunk-RZTKCCUL.js.map} +0 -0
  689. /package/dist/{chunk-YYPWVQZQ.js.map → chunk-S4VLLGTW.js.map} +0 -0
  690. /package/dist/{chunk-V57TZQPI.js.map → chunk-SVM3DGAQ.js.map} +0 -0
  691. /package/dist/{chunk-2XH7GKCO.js.map → chunk-TTKBNBQF.js.map} +0 -0
  692. /package/dist/{chunk-PGD7USOH.js.map → chunk-VB3XUR6A.js.map} +0 -0
  693. /package/dist/{chunk-3LZM5MWM.js.map → chunk-XCKINS7K.js.map} +0 -0
  694. /package/dist/{chunk-YTF2MI3E.js.map → chunk-Y46FE75E.js.map} +0 -0
  695. /package/dist/{chunk-ZXSXRSFX.js.map → chunk-Z2GQREJY.js.map} +0 -0
  696. /package/dist/{chunk-64BRPYJD.js.map → chunk-ZA7OQLDJ.js.map} +0 -0
  697. /package/dist/{chunk-RNQMXS7G.js.map → chunk-ZDAVSTEE.js.map} +0 -0
  698. /package/dist/{chunk-LQR4CKYW.js.map → chunk-ZXCSOVS5.js.map} +0 -0
  699. /package/dist/{claim-W2ZV4SH3.js.map → claim-SVDCQ2AI.js.map} +0 -0
  700. /package/dist/{companies-ITK3W3H6.js.map → companies-BYMYQK6A.js.map} +0 -0
  701. /package/dist/{complete-RYEVEF3S.js.map → complete-NEH3MWRI.js.map} +0 -0
  702. /package/dist/{connect-FFFNSJ2O.js.map → connect-5PGL7ZOM.js.map} +0 -0
  703. /package/dist/{conversation-KKJNQRFB.js.map → conversation-CSOKJXDW.js.map} +0 -0
  704. /package/dist/{conversion-report-PLQ4MVJR.js.map → conversion-report-7JJ5L6WH.js.map} +0 -0
  705. /package/dist/{conversion-upload-command-Z7F6NQH4.js.map → conversion-upload-command-UO2QWG3J.js.map} +0 -0
  706. /package/dist/{conversion-writes-VNOXZ4NR.js.map → conversion-writes-GIGAZT4T.js.map} +0 -0
  707. /package/dist/{conversions-KPIFDO2R.js.map → conversions-CIJZLGII.js.map} +0 -0
  708. /package/dist/{create-TYWQP57A.js.map → create-2XYMBULY.js.map} +0 -0
  709. /package/dist/{create-A3R7YRT3.js.map → create-56PTZABQ.js.map} +0 -0
  710. /package/dist/{create-3R6Q2E2M.js.map → create-D6S6TGWY.js.map} +0 -0
  711. /package/dist/{create-UUEWQUPT.js.map → create-SMW4O5PC.js.map} +0 -0
  712. /package/dist/{creatives-UK4VITNW.js.map → creatives-OO76DAFS.js.map} +0 -0
  713. /package/dist/{credentials-A65GYH4D.js.map → credentials-2ONYUJW6.js.map} +0 -0
  714. /package/dist/{critique-46O4VVPM.js.map → critique-NDDFSGPE.js.map} +0 -0
  715. /package/dist/{critique-RPRMG2ZC.js.map → critique-YXZVMLZ4.js.map} +0 -0
  716. /package/dist/{crm-2WYW3D22.js.map → crm-Q6CEP5XV.js.map} +0 -0
  717. /package/dist/{crm-PQ24MNIU.js.map → crm-WRONZYDH.js.map} +0 -0
  718. /package/dist/{currency-Q3HCK447.js.map → currency-TAEJVMVK.js.map} +0 -0
  719. /package/dist/{customers-YTQ7IQ5C.js.map → customers-2EFYSCU2.js.map} +0 -0
  720. /package/dist/{delete-PQ4NUNLX.js.map → delete-7WEVC3FS.js.map} +0 -0
  721. /package/dist/{delete-BBISJTFG.js.map → delete-RBWK255M.js.map} +0 -0
  722. /package/dist/{delete-TBW6TJ6A.js.map → delete-VN4WWMQF.js.map} +0 -0
  723. /package/dist/{demographics-EVP55FT3.js.map → demographics-I5XZ435C.js.map} +0 -0
  724. /package/dist/{discard-LPJA4DEY.js.map → discard-XJLIXTNM.js.map} +0 -0
  725. /package/dist/{discover-3G6CE7X3.js.map → discover-5Z253HXF.js.map} +0 -0
  726. /package/dist/{domain-5MM7V7JD.js.map → domain-M7AEGAYI.js.map} +0 -0
  727. /package/dist/{draft-EGS7UFF3.js.map → draft-7DWRFCXW.js.map} +0 -0
  728. /package/dist/{draft-K3O7Q3A5.js.map → draft-7IIYHSY2.js.map} +0 -0
  729. /package/dist/{draft-34D5MOKA.js.map → draft-CN6GKVBF.js.map} +0 -0
  730. /package/dist/{draft-J6GJXZRX.js.map → draft-MNEM4N5W.js.map} +0 -0
  731. /package/dist/{experiment-7RJ5X2LL.js.map → experiment-IDDWRCJ7.js.map} +0 -0
  732. /package/dist/{facets-RUZKALF3.js.map → facets-ZLZ6LIHN.js.map} +0 -0
  733. /package/dist/{feedback-S5LHJYZD.js.map → feedback-7LEX2P5Q.js.map} +0 -0
  734. /package/dist/{feedback-record-GAM2R5GG.js.map → feedback-record-P4JJ63KA.js.map} +0 -0
  735. /package/dist/{fetch-FA6TR66Y.js.map → fetch-MIVCEHXZ.js.map} +0 -0
  736. /package/dist/{find-2EPXK5RF.js.map → find-VHN34MWL.js.map} +0 -0
  737. /package/dist/{fit-MOMO4AXL.js.map → fit-SS6HSZPU.js.map} +0 -0
  738. /package/dist/{flows-DMMCSBWY.js.map → flows-UTIIHDNE.js.map} +0 -0
  739. /package/dist/{fonts-G4JLXWX2.js.map → fonts-YPNN7ZJP.js.map} +0 -0
  740. /package/dist/{forecast-OOP4K5DE.js.map → forecast-OBSHG2GJ.js.map} +0 -0
  741. /package/dist/{forecast-V65WS5QG.js.map → forecast-W7Z5TVQX.js.map} +0 -0
  742. /package/dist/{funnel-SEQPUM3X.js.map → funnel-Z2VLXUEQ.js.map} +0 -0
  743. /package/dist/{ga4-6EIQC2TG.js.map → ga4-ZPAEF2G2.js.map} +0 -0
  744. /package/dist/{generate-IDDQD5FU.js.map → generate-Y76WU7M7.js.map} +0 -0
  745. /package/dist/{get-DEOZMGOQ.js.map → get-MDAO6I7T.js.map} +0 -0
  746. /package/dist/{get-SEJINVOS.js.map → get-ZB553BSH.js.map} +0 -0
  747. /package/dist/{google-O5OI6QFU.js.map → google-C3X7O2UO.js.map} +0 -0
  748. /package/dist/{google-7L3FWKPJ.js.map → google-WYXDMH2N.js.map} +0 -0
  749. /package/dist/{google-ads-MIGWMCWY.js.map → google-ads-FTWL772L.js.map} +0 -0
  750. /package/dist/{gsc-BM3T2GDL.js.map → gsc-SDDHGTZK.js.map} +0 -0
  751. /package/dist/{history-Z5577FPQ.js.map → history-DGHMJ2XF.js.map} +0 -0
  752. /package/dist/{history-IBWXCDCB.js.map → history-WKJYKDMG.js.map} +0 -0
  753. /package/dist/{hubspot-6AZKUX72.js.map → hubspot-EPHVEPOO.js.map} +0 -0
  754. /package/dist/{icon-B7DG53S5.js.map → icon-MYPDC6FM.js.map} +0 -0
  755. /package/dist/{ideas-AX7S3NCG.js.map → ideas-3PBH7VEX.js.map} +0 -0
  756. /package/dist/{images-632SXTB5.js.map → images-J35C3WG4.js.map} +0 -0
  757. /package/dist/{ingest-T3OK3DRG.js.map → ingest-5QOPUKFE.js.map} +0 -0
  758. /package/dist/{ingest-HS55RVKH.js.map → ingest-OKUYP632.js.map} +0 -0
  759. /package/dist/{insights-UDX66IMV.js.map → insights-EU45J56U.js.map} +0 -0
  760. /package/dist/{inspect-D6ZIUBH3.js.map → inspect-PMNCP6MV.js.map} +0 -0
  761. /package/dist/{inspiration-TCCKM4R7.js.map → inspiration-QAL7NS7G.js.map} +0 -0
  762. /package/dist/{intent-3WTKKTUX.js.map → intent-FUGWRUSW.js.map} +0 -0
  763. /package/dist/{keyword-gap-7GESZXY2.js.map → keyword-gap-DXTKZLV2.js.map} +0 -0
  764. /package/dist/{keyword-metrics-J43MV3RQ.js.map → keyword-metrics-R752SJIT.js.map} +0 -0
  765. /package/dist/{keywords-for-site-6YKCTFJZ.js.map → keywords-for-site-7UWPJYQF.js.map} +0 -0
  766. /package/dist/{landing-Y7DI2FUT.js.map → landing-CBVIOGJ5.js.map} +0 -0
  767. /package/dist/{languages-LSKNZI2A.js.map → languages-XRTTEJ5P.js.map} +0 -0
  768. /package/dist/{learn-M4UHA476.js.map → learn-N6QV7GXA.js.map} +0 -0
  769. /package/dist/{line-item-writes-F2OPBMIE.js.map → line-item-writes-3WPJXKIL.js.map} +0 -0
  770. /package/dist/{line-items-YJ3DLV2U.js.map → line-items-ZOFKOGAA.js.map} +0 -0
  771. /package/dist/{link-RZKYW22K.js.map → link-DDRQKOUL.js.map} +0 -0
  772. /package/dist/{list-NPJ34244.js.map → list-5PLXVPLB.js.map} +0 -0
  773. /package/dist/{list-XK5CHKYJ.js.map → list-VSJISE7U.js.map} +0 -0
  774. /package/dist/{list-WTVBOTA4.js.map → list-WTVOBQYX.js.map} +0 -0
  775. /package/dist/{locations-DSDCNP5Z.js.map → locations-PCZPKH47.js.map} +0 -0
  776. /package/dist/{locations-SFZN4MYW.js.map → locations-TGJH3URF.js.map} +0 -0
  777. /package/dist/{log-K4FWHXIM.js.map → log-YKKPROLZ.js.map} +0 -0
  778. /package/dist/{logo-QTSBKP2J.js.map → logo-WE2UELX6.js.map} +0 -0
  779. /package/dist/{make-VQDUKVPB.js.map → make-RNOWBLZQ.js.map} +0 -0
  780. /package/dist/{map-Z3MEM6QX.js.map → map-WTDPQLVO.js.map} +0 -0
  781. /package/dist/{mcp-KJOSR534.js.map → mcp-XJNSCPP3.js.map} +0 -0
  782. /package/dist/{media-sources-44HTWIY3.js.map → media-sources-JGBDDXZ5.js.map} +0 -0
  783. /package/dist/{members-HGU22NL3.js.map → members-O3BTMRXX.js.map} +0 -0
  784. /package/dist/{metrics-OV2EKPJ6.js.map → metrics-PYPCW7FJ.js.map} +0 -0
  785. /package/dist/{models-NGAUD6QJ.js.map → models-IAGO5GIH.js.map} +0 -0
  786. /package/dist/{normalize-IUPOHEZJ.js.map → normalize-R5AYLA2J.js.map} +0 -0
  787. /package/dist/{options-TL5TPGHK.js.map → options-AILRY7JY.js.map} +0 -0
  788. /package/dist/{organization-3ORT4474.js.map → organization-KJJXZLVK.js.map} +0 -0
  789. /package/dist/{performance-PCZHQCZ5.js.map → performance-7YU4HOGH.js.map} +0 -0
  790. /package/dist/{pixels-GHEAK62X.js.map → pixels-R4MOLWAR.js.map} +0 -0
  791. /package/dist/{promoted-tweet-writes-O4RTZFSI.js.map → promoted-tweet-writes-TNELWPVG.js.map} +0 -0
  792. /package/dist/{promoted-tweets-AWP6MGJI.js.map → promoted-tweets-76WKUFJQ.js.map} +0 -0
  793. /package/dist/{publish-PODZKJHW.js.map → publish-BKLHCKHB.js.map} +0 -0
  794. /package/dist/{query-FUSR27T4.js.map → query-XDHZMGLX.js.map} +0 -0
  795. /package/dist/{reddit-UNUNWSNR.js.map → reddit-YK3YUZEI.js.map} +0 -0
  796. /package/dist/{refresh-34UO2LXY.js.map → refresh-WIII7KXB.js.map} +0 -0
  797. /package/dist/{release-BD3EAD75.js.map → release-ZHXYQI7G.js.map} +0 -0
  798. /package/dist/{relevant-pages-FNKYR2OG.js.map → relevant-pages-CTG72PBR.js.map} +0 -0
  799. /package/dist/{remove-YQYSQCWI.js.map → remove-NOX4BXWK.js.map} +0 -0
  800. /package/dist/{reopen-MULNJOR5.js.map → reopen-NLWKK5HB.js.map} +0 -0
  801. /package/dist/{rerun-6YGYJPM7.js.map → rerun-DZWQNMZQ.js.map} +0 -0
  802. /package/dist/{research-6WEL3USW.js.map → research-Q3P76RHN.js.map} +0 -0
  803. /package/dist/{research-OBECRSPL.js.map → research-UDZBCDNX.js.map} +0 -0
  804. /package/dist/{reset-5TTLZ43U.js.map → reset-5UHFX7QY.js.map} +0 -0
  805. /package/dist/{reset-PRTK6YUD.js.map → reset-MTRJQUP7.js.map} +0 -0
  806. /package/dist/{resolve-6RM63T55.js.map → resolve-DA72VT7Q.js.map} +0 -0
  807. /package/dist/{retry-Z3C624JW.js.map → retry-LQUBX5TK.js.map} +0 -0
  808. /package/dist/{retry-XYTVP7BV.js.map → retry-U6F4CS6O.js.map} +0 -0
  809. /package/dist/{rules-AUAJUM2T.js.map → rules-VS5PZ7VO.js.map} +0 -0
  810. /package/dist/{rules-add-7VFGPGZ7.js.map → rules-add-LMVZYDXE.js.map} +0 -0
  811. /package/dist/{run-S3SVCTIB.js.map → run-6PRA2YSD.js.map} +0 -0
  812. /package/dist/{run-YA5RCRIX.js.map → run-R6COFNOR.js.map} +0 -0
  813. /package/dist/{scaffold-ad-2KQULVJU.js.map → scaffold-ad-3OVJ7VZQ.js.map} +0 -0
  814. /package/dist/{scaffold-static-ad-S46QADGV.js.map → scaffold-static-ad-DDRA3Q5I.js.map} +0 -0
  815. /package/dist/{scaffold-video-ZMHI2JDU.js.map → scaffold-video-3JZYFYFU.js.map} +0 -0
  816. /package/dist/{schedule-FT6P3EKG.js.map → schedule-ED2YDUPY.js.map} +0 -0
  817. /package/dist/{scheduled-agents-L7K4QWMD.js.map → scheduled-agents-5P67MVGX.js.map} +0 -0
  818. /package/dist/{schema-CH654RZB.js.map → schema-4XVKERSA.js.map} +0 -0
  819. /package/dist/{search-YKYB2P2M.js.map → search-Y2UMIQ57.js.map} +0 -0
  820. /package/dist/{select-PM7JUDQY.js.map → select-OZ4E6VLF.js.map} +0 -0
  821. /package/dist/{set-prompt-VATAT7H6.js.map → set-prompt-O4YAE4CE.js.map} +0 -0
  822. /package/dist/{setup-links-TM3NCVU7.js.map → setup-links-2GJYCV2A.js.map} +0 -0
  823. /package/dist/{site-ATAXCWXS.js.map → site-47B6V2UX.js.map} +0 -0
  824. /package/dist/{sources-V544MB26.js.map → sources-DXPZAPQ7.js.map} +0 -0
  825. /package/dist/{sources-N5RKYKFS.js.map → sources-NDXYTASG.js.map} +0 -0
  826. /package/dist/{stale-RNEYXKFX.js.map → stale-VLVBO2L6.js.map} +0 -0
  827. /package/dist/{stats-CVF6AC7R.js.map → stats-37OFAMPW.js.map} +0 -0
  828. /package/dist/{status-DPTFOJVV.js.map → status-4ODD46XY.js.map} +0 -0
  829. /package/dist/{stock-4LPQ6SM7.js.map → stock-6R5E7MJX.js.map} +0 -0
  830. /package/dist/{studio-NZ3NA4L4.js.map → studio-LEIGL3Q7.js.map} +0 -0
  831. /package/dist/{sync-UBLCCOQZ.js.map → sync-TKNVBUDM.js.map} +0 -0
  832. /package/dist/{sync-definition-RXRSI2LT.js.map → sync-definition-M5R3H3TP.js.map} +0 -0
  833. /package/dist/{tag-manager-FLXXLNKP.js.map → tag-manager-3Q55PBEW.js.map} +0 -0
  834. /package/dist/{tags-5OM2VN3Q.js.map → tags-4N5UUUN6.js.map} +0 -0
  835. /package/dist/{tags-MHKZW2JN.js.map → tags-5NHIAD5A.js.map} +0 -0
  836. /package/dist/{tags-Z6AH7FDT.js.map → tags-UUKWSWCN.js.map} +0 -0
  837. /package/dist/{tags-CJWSUBCD.js.map → tags-VK7B5DJF.js.map} +0 -0
  838. /package/dist/{tags-2D4AN2QB.js.map → tags-XAHIB3WA.js.map} +0 -0
  839. /package/dist/{targeting-criteria-RSAN4KW5.js.map → targeting-criteria-AVARWV2G.js.map} +0 -0
  840. /package/dist/{targets-EER2G4WH.js.map → targets-6RYLQRID.js.map} +0 -0
  841. /package/dist/{testimonials-4WJKAZ5S.js.map → testimonials-6TF6BOFN.js.map} +0 -0
  842. /package/dist/{themes-XUALHDHR.js.map → themes-JZ3DPE7L.js.map} +0 -0
  843. /package/dist/{top-companies-BSOYGMIB.js.map → top-companies-45EHRCJD.js.map} +0 -0
  844. /package/dist/{translate-2XRHDWSC.js.map → translate-VHLBACCE.js.map} +0 -0
  845. /package/dist/{triggers-NU6BQ5NJ.js.map → triggers-ERQONJNO.js.map} +0 -0
  846. /package/dist/{unlink-LQGPZND2.js.map → unlink-TPDO6JNF.js.map} +0 -0
  847. /package/dist/{unstage-GDKW56MH.js.map → unstage-YKKQQ7LW.js.map} +0 -0
  848. /package/dist/{update-43QN723C.js.map → update-43WU6X7R.js.map} +0 -0
  849. /package/dist/{update-QRGEMNBY.js.map → update-CAHLAXWO.js.map} +0 -0
  850. /package/dist/{update-EGOWYBEH.js.map → update-NGH6YADN.js.map} +0 -0
  851. /package/dist/{update-6CAZKFTC.js.map → update-SPJIHHLE.js.map} +0 -0
  852. /package/dist/{upload-LIHRXWUY.js.map → upload-ACESIZIZ.js.map} +0 -0
  853. /package/dist/{url-options-JXL4W7TB.js.map → url-options-VNX5KYUQ.js.map} +0 -0
  854. /package/dist/{url-params-YXRZ4TUD.js.map → url-params-MIXEDBF7.js.map} +0 -0
  855. /package/dist/{validate-KO3MEJUZ.js.map → validate-XJJA7ULE.js.map} +0 -0
  856. /package/dist/{videos-BPJ34YZL.js.map → videos-LBXPG7WC.js.map} +0 -0
  857. /package/dist/{viewer-check-SA5AUQ26.js.map → viewer-check-7VJ3GUZX.js.map} +0 -0
  858. /package/dist/{web-KS47ZHXX.js.map → web-EWQJC2SD.js.map} +0 -0
  859. /package/dist/{winning-ads-LE2ALICG.js.map → winning-ads-SAOJAKEQ.js.map} +0 -0
  860. /package/dist/{x-DZGRJQ7Y.js.map → x-LXOJPCRF.js.map} +0 -0
@@ -1,1453 +0,0 @@
1
- import {
2
- TOTAL_BUDGET_HELP,
3
- bareAccountId,
4
- failWriteValidation,
5
- loadJsonFileArg,
6
- loadTargetingFileArg,
7
- mergePayload,
8
- parseDateFlag,
9
- parseListFileArg,
10
- parseLocaleFlag,
11
- parseMoneyFlag,
12
- parseOnOffFlag,
13
- requireTarget,
14
- requireTargets,
15
- stageLinkedinOps,
16
- stageOp,
17
- stageStatusChange
18
- } from "./chunk-JMW3AVN7.js";
19
- import {
20
- handleLinkedinError
21
- } from "./chunk-PGD7USOH.js";
22
- import {
23
- repeatedValues
24
- } from "./chunk-ERSX3MKH.js";
25
- import "./chunk-WHWSLDNR.js";
26
- import "./chunk-4NZ47VXO.js";
27
- import "./chunk-D5FY4FAK.js";
28
- import "./chunk-6UNOK7WV.js";
29
- import {
30
- writeJsonEnvelope
31
- } from "./chunk-2VIZ4UUZ.js";
32
- import "./chunk-UFKO626N.js";
33
- import "./chunk-XRIM7NYV.js";
34
- import "./chunk-A6WKCV3V.js";
35
- import "./chunk-U7YR5CZL.js";
36
- import "./chunk-VI5YQQ63.js";
37
- import "./chunk-JX7BX2NB.js";
38
- import {
39
- CONVERSION_UPLOAD_MAX_EVENTS,
40
- LEADGEN_CTA_LABELS,
41
- TEMP_REF_PREFIX,
42
- TRACKING_PARAM_DYNAMIC_VALUES,
43
- campaignExcludeCompaniesSchema,
44
- sponsoredPostUrn
45
- } from "./chunk-JGM4WGC2.js";
46
- import "./chunk-GXDLWBOY.js";
47
- import "./chunk-GIWHHCD6.js";
48
- import "./chunk-XQIOCIDO.js";
49
- import "./chunk-NAA4CKZZ.js";
50
- import {
51
- apiGet,
52
- apiPost
53
- } from "./chunk-6YLNY6CK.js";
54
- import "./chunk-D5NEIESR.js";
55
- import {
56
- requireChatId
57
- } from "./chunk-57KKVDDR.js";
58
- import "./chunk-QANGHND7.js";
59
- import "./chunk-YQSBHWOI.js";
60
-
61
- // src/commands/ads/linkedin/write-commands.ts
62
- import { readFileSync } from "fs";
63
- import { defineCommand } from "citty";
64
-
65
- // src/commands/ads/linkedin/conversion-upload-rows.ts
66
- import { createHash } from "crypto";
67
- var SHA256_HEX = /^[0-9a-f]{64}$/i;
68
- var COLUMN_FIELDS = {
69
- eventid: "eventId",
70
- id: "eventId",
71
- dealid: "eventId",
72
- orderid: "eventId",
73
- happenedat: "happenedAt",
74
- date: "happenedAt",
75
- closedat: "happenedAt",
76
- closedate: "happenedAt",
77
- conversiondatetime: "happenedAt",
78
- email: "email",
79
- firstname: "firstName",
80
- lastname: "lastName",
81
- lifatid: "liFatId",
82
- companyname: "companyName",
83
- company: "companyName",
84
- title: "title",
85
- jobtitle: "title",
86
- countrycode: "countryCode",
87
- country: "countryCode",
88
- value: "value",
89
- amount: "value",
90
- currency: "currency"
91
- };
92
- function sha256(value) {
93
- return createHash("sha256").update(value).digest("hex");
94
- }
95
- function hashedEmail(raw) {
96
- const value = raw.trim();
97
- return SHA256_HEX.test(value) ? value.toLowerCase() : sha256(value.toLowerCase());
98
- }
99
- function hashedName(raw) {
100
- const value = raw.trim();
101
- return SHA256_HEX.test(value) ? value.toLowerCase() : sha256(value.toLowerCase().replace(/[\s\p{P}]/gu, ""));
102
- }
103
- function fieldValue(field, raw) {
104
- switch (field) {
105
- case "email":
106
- return hashedEmail(raw);
107
- case "firstName":
108
- case "lastName":
109
- return hashedName(raw);
110
- case "value":
111
- return Number(raw);
112
- case "currency":
113
- return raw.trim().toUpperCase();
114
- default:
115
- return raw.trim();
116
- }
117
- }
118
- function conversionUploadEvents(rows) {
119
- const ignored = /* @__PURE__ */ new Set();
120
- const events = rows.map((row) => {
121
- const event = {};
122
- for (const [column, raw] of Object.entries(row)) {
123
- const field = COLUMN_FIELDS[column.toLowerCase().replace(/[\s_-]/g, "")];
124
- if (!field) {
125
- ignored.add(column);
126
- continue;
127
- }
128
- if (raw === void 0 || raw === null || String(raw).trim() === "") {
129
- continue;
130
- }
131
- event[field] = fieldValue(field, String(raw));
132
- }
133
- return event;
134
- });
135
- return { events, ignored: [...ignored] };
136
- }
137
-
138
- // src/commands/ads/linkedin/write-commands.ts
139
- var STAGED_NOTE = "Staged until publish \u2014 review with `baker ads linkedin draft`.";
140
- var accountArgs = {
141
- "account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
142
- "account-urn": { type: "string", description: "Alias for --account-id" }
143
- };
144
- function runScheduleFromFlags(args) {
145
- const start = parseDateFlag(args.start, "--start");
146
- const end = parseDateFlag(args.end, "--end");
147
- if (start === void 0 && end === void 0) {
148
- return void 0;
149
- }
150
- return { ...start !== void 0 ? { start } : {}, ...end !== void 0 ? { end } : {} };
151
- }
152
- function groupBudgetFlags(args) {
153
- return {
154
- objectiveType: args.objective ? String(args.objective).toUpperCase() : void 0,
155
- budgetOptimization: args["shared-budget"] ? { bidStrategy: String(args["shared-budget"]).toUpperCase() } : void 0
156
- };
157
- }
158
- var campaignGroupsCreateCommand = defineCommand({
159
- meta: {
160
- name: "create",
161
- description: `Stage a new campaign group. ${STAGED_NOTE}
162
- A group can't be created PAUSED, and a --total-budget needs an --end.
163
- Example: baker ads linkedin campaign-groups create --name "Q3 ABM" --start 2026-07-10 --end 2026-09-30 --total-budget 5000 --currency EUR
164
- Shared budget: --shared-budget COST_CAP --total-budget 3000 --end 2026-12-31 lets LinkedIn move one budget between the ad sets; each ad set must then bid that way (cost cap: --optimization CAP_COST_AND_MAXIMIZE_LEADS --cost-type CPM --bid <cap>).`
165
- },
166
- args: {
167
- ...accountArgs,
168
- name: { type: "string", description: "Campaign group name (\u2264100 chars)" },
169
- start: { type: "string", description: "Run schedule start (ISO date or epoch ms)" },
170
- end: { type: "string", description: "Run schedule end" },
171
- "total-budget": { type: "string", description: TOTAL_BUDGET_HELP },
172
- currency: { type: "string", description: "3-letter currency code (defaults to the ad account currency)" },
173
- objective: {
174
- type: "string",
175
- description: "Objective every ad set in it takes (LEAD_GENERATION|WEBSITE_VISIT|\u2026), create-only"
176
- },
177
- "shared-budget": {
178
- type: "string",
179
- description: "Share the --total-budget across its ad sets, bidding one way for all: MAXIMUM_DELIVERY|MANUAL|COST_CAP (LinkedIn's budget optimization; needs --total-budget and --end)"
180
- },
181
- status: {
182
- type: "string",
183
- description: "DRAFT|ACTIVE (default DRAFT) \u2014 LinkedIn refuses a new group created PAUSED; pause it once it exists"
184
- },
185
- file: { type: "string", description: "JSON file with the full payload; flags override file keys" }
186
- },
187
- run: async ({ args }) => {
188
- const accountId = bareAccountId(args);
189
- const payload = mergePayload(loadJsonFileArg(args.file), {
190
- name: args.name,
191
- runSchedule: runScheduleFromFlags(args),
192
- totalBudget: parseMoneyFlag(args["total-budget"], args.currency, "--total-budget"),
193
- status: args.status ? String(args.status).toUpperCase() : void 0,
194
- ...groupBudgetFlags(args)
195
- });
196
- await stageOp({ kind: "campaignGroup.create", accountId, payload });
197
- }
198
- });
199
- var campaignGroupsUpdateCommand = defineCommand({
200
- meta: {
201
- name: "update",
202
- description: `Stage changes to an existing campaign group. ${STAGED_NOTE}
203
- Pass a li_temp_* ref to amend a group staged in this chat \u2014 fields merge into the staged create.
204
- Example: baker ads linkedin campaign-groups update 635137195 --total-budget 8000 --currency EUR`
205
- },
206
- args: {
207
- id: { type: "positional", description: "Campaign group id or URN", required: true },
208
- ...accountArgs,
209
- name: { type: "string", description: "New name" },
210
- start: { type: "string", description: "New run schedule start" },
211
- end: { type: "string", description: "New run schedule end" },
212
- "total-budget": { type: "string", description: TOTAL_BUDGET_HELP },
213
- currency: { type: "string", description: "3-letter currency code (defaults to the ad account currency)" },
214
- "shared-budget": {
215
- type: "string",
216
- description: "Share the budget across its ad sets: MAXIMUM_DELIVERY|MANUAL|COST_CAP"
217
- },
218
- status: { type: "string", description: "ACTIVE|PAUSED|ARCHIVED|\u2026" },
219
- file: { type: "string", description: "JSON file with fields to change" }
220
- },
221
- run: async ({ args }) => {
222
- const accountId = bareAccountId(args);
223
- const payload = mergePayload(loadJsonFileArg(args.file), {
224
- name: args.name,
225
- runSchedule: runScheduleFromFlags(args),
226
- totalBudget: parseMoneyFlag(args["total-budget"], args.currency, "--total-budget"),
227
- status: args.status ? String(args.status).toUpperCase() : void 0,
228
- budgetOptimization: args["shared-budget"] ? { bidStrategy: String(args["shared-budget"]).toUpperCase() } : void 0
229
- });
230
- await stageOp({
231
- kind: "campaignGroup.update",
232
- accountId,
233
- target: requireTarget(args, "campaign group"),
234
- payload
235
- });
236
- }
237
- });
238
- function campaignPayloadFromFlags(args) {
239
- return {
240
- name: args.name,
241
- campaignGroup: args.group,
242
- type: args.type ? String(args.type).toUpperCase() : void 0,
243
- objectiveType: args.objective ? String(args.objective).toUpperCase() : void 0,
244
- costType: args["cost-type"] ? String(args["cost-type"]).toUpperCase() : void 0,
245
- unitCost: parseMoneyFlag(args.bid, args.currency, "--bid"),
246
- dailyBudget: parseMoneyFlag(args["daily-budget"], args.currency, "--daily-budget"),
247
- totalBudget: parseMoneyFlag(args["total-budget"], args.currency, "--total-budget"),
248
- runSchedule: runScheduleFromFlags(args),
249
- locale: parseLocaleFlag(args.locale),
250
- targetingCriteria: loadTargetingFileArg(args["targeting-file"]),
251
- audienceExpansionEnabled: parseOnOffFlag(args["audience-expansion"], "--audience-expansion"),
252
- offsiteDeliveryEnabled: parseOnOffFlag(args.lan, "--lan"),
253
- connectedTelevisionOnly: parseOnOffFlag(args.ctv, "--ctv"),
254
- creativeSelection: args["creative-selection"] ? String(args["creative-selection"]).toUpperCase() : void 0,
255
- associatedEntity: args["associated-entity"],
256
- politicalIntent: args["political-intent"] ? String(args["political-intent"]).toUpperCase() : void 0,
257
- status: args.status ? String(args.status).toUpperCase() : void 0,
258
- format: args.format ? String(args.format).toUpperCase() : void 0,
259
- optimizationTargetType: args.optimization ? String(args.optimization).toUpperCase() : void 0,
260
- pacingStrategy: args.pacing ? String(args.pacing).toUpperCase() : void 0,
261
- weeklyFrequencyCap: args["frequency-cap"] !== void 0 ? Number(args["frequency-cap"]) : void 0
262
- };
263
- }
264
- var POLITICAL_INTENT_HELP = `NOT_DECLARED (default)|NOT_POLITICAL|POLITICAL \u2014 the advertiser's own declaration. Pass NOT_POLITICAL only after the user confirms: "I confirm this is not political advertising. None of my ads qualify as political advertising under the law of the targeted countries, including EU law for ads targeted to the EU."`;
265
- var campaignFlagArgs = {
266
- ...accountArgs,
267
- name: { type: "string", description: "Campaign name (\u2264255 chars)" },
268
- group: { type: "string", description: "Campaign group id/URN, or li_temp_* ref staged in this chat" },
269
- type: { type: "string", description: "SPONSORED_UPDATES|TEXT_AD|SPONSORED_INMAILS|DYNAMIC" },
270
- objective: { type: "string", description: "e.g. LEAD_GENERATION, WEBSITE_VISIT, BRAND_AWARENESS" },
271
- "cost-type": { type: "string", description: "CPC|CPM|CPV" },
272
- bid: {
273
- type: "string",
274
- description: "unitCost: the manual bid, or with --optimization TARGET_COST_*/CAP_COST_* the target cost or cost cap (required there)"
275
- },
276
- optimization: {
277
- type: "string",
278
- description: "How it bids (optimizationTargetType). Manual: NONE (default)|ENHANCED_CONVERSION. Maximum delivery, billed CPM: MAX_LEAD|MAX_QUALIFIED_LEAD|MAX_CONVERSION|MAX_CLICK|MAX_IMPRESSION|MAX_REACH|MAX_VIDEO_VIEW. Target cost: TARGET_COST_PER_CLICK (CPC)|TARGET_COST_PER_IMPRESSION (CPM)|TARGET_COST_PER_VIDEO_VIEW (CPV). Cost cap, billed CPM: CAP_COST_AND_MAXIMIZE_LEADS|\u2026_CLICKS|\u2026_IMPRESSIONS|\u2026_VIDEO_VIEWS"
279
- },
280
- format: {
281
- type: "string",
282
- description: "Ad format, create-only: STANDARD_UPDATE|SINGLE_VIDEO|CAROUSEL|TEXT_AD|SPOTLIGHT|FOLLOW_COMPANY|JOBS|SPONSORED_INMAIL|SPONSORED_MESSAGE. Required for carousel and video ad sets"
283
- },
284
- pacing: {
285
- type: "string",
286
- description: "LIFETIME (spread a total budget over the schedule)|ACCELERATED \u2014 create-only"
287
- },
288
- "frequency-cap": {
289
- type: "string",
290
- description: "At most N impressions per member a week (3\u201330), Brand awareness only"
291
- },
292
- "daily-budget": { type: "string", description: "Daily budget amount" },
293
- "total-budget": { type: "string", description: TOTAL_BUDGET_HELP },
294
- currency: { type: "string", description: "3-letter currency code (defaults to the ad account currency)" },
295
- start: { type: "string", description: "Run schedule start (ISO date or epoch ms)" },
296
- end: { type: "string", description: "Run schedule end" },
297
- locale: { type: "string", description: "Profile locale like en_US" },
298
- "targeting-file": { type: "string", description: "JSON file with targetingCriteria (include.and[].or facets)" },
299
- "audience-expansion": { type: "string", description: "on|off (playbook: off)" },
300
- lan: { type: "string", description: "LinkedIn Audience Network on|off (playbook: off)" },
301
- ctv: { type: "string", description: "Connected TV on|off" },
302
- "creative-selection": { type: "string", description: "OPTIMIZED|ROUND_ROBIN" },
303
- "associated-entity": { type: "string", description: "Organization URN" },
304
- "political-intent": { type: "string", description: POLITICAL_INTENT_HELP },
305
- status: { type: "string", description: "DRAFT|ACTIVE|PAUSED \u2014 PAUSED needs a group that is not DRAFT" },
306
- file: { type: "string", description: "JSON file with the full payload; flags override file keys" }
307
- };
308
- var campaignsCreateCommand = defineCommand({
309
- meta: {
310
- name: "create",
311
- description: `Stage a new campaign. ${STAGED_NOTE}
312
- Targeting goes in --targeting-file (facet URNs). --group accepts a li_temp_* ref from a campaign group staged in this chat.
313
- Example: baker ads linkedin campaigns create --name "ABM Tier-1" --group li_temp_x1 --objective WEBSITE_VISIT --type SPONSORED_UPDATES --cost-type CPC --bid 8.50 --daily-budget 75 --currency EUR --locale en_US --targeting-file targeting.json
314
- Lead gen with a cost cap: --objective LEAD_GENERATION --cost-type CPM --optimization CAP_COST_AND_MAXIMIZE_LEADS --bid 80 (at most 80 per lead). Carousel: --format CAROUSEL.`
315
- },
316
- args: campaignFlagArgs,
317
- run: async ({ args }) => {
318
- const accountId = bareAccountId(args);
319
- const payload = mergePayload(loadJsonFileArg(args.file), campaignPayloadFromFlags(args));
320
- if (payload.locale === void 0) {
321
- payload.locale = { country: "US", language: "en" };
322
- }
323
- await stageOp({ kind: "campaign.create", accountId, payload });
324
- }
325
- });
326
- function campaignUpdatePayloadFromFlags(args, target, file) {
327
- const flags = campaignPayloadFromFlags(args);
328
- if (!target.startsWith(TEMP_REF_PREFIX)) {
329
- flags.campaignGroup = void 0;
330
- flags.type = void 0;
331
- flags.locale = void 0;
332
- flags.associatedEntity = void 0;
333
- flags.format = void 0;
334
- flags.pacingStrategy = void 0;
335
- }
336
- return mergePayload(file, flags);
337
- }
338
- var campaignsUpdateCommand = defineCommand({
339
- meta: {
340
- name: "update",
341
- description: `Stage changes to an existing campaign (budget, bid, targeting, flags, schedule, status). ${STAGED_NOTE}
342
- Pass a li_temp_* ref to amend a campaign staged in this chat \u2014 fields merge into the staged create, and --group/--type/--locale/--associated-entity carry through too (they're create-only on a LIVE campaign, but fair game while it's still staged).
343
- Example: baker ads linkedin campaigns update 123456 --daily-budget 100 --currency EUR --audience-expansion off`
344
- },
345
- args: {
346
- id: { type: "positional", description: "Campaign id or URN", required: true },
347
- ...campaignFlagArgs
348
- },
349
- run: async ({ args }) => {
350
- const accountId = bareAccountId(args);
351
- const target = requireTarget(args, "campaign");
352
- const payload = campaignUpdatePayloadFromFlags(args, target, loadJsonFileArg(args.file));
353
- await stageOp({ kind: "campaign.update", accountId, target, payload });
354
- }
355
- });
356
- function commaList(value) {
357
- return typeof value === "string" ? value.split(",").map((entry) => entry.trim()).filter((entry) => entry.length > 0) : [];
358
- }
359
- function excludeCompaniesPayload(args) {
360
- const employers = commaList(args.org).map((org) => org.startsWith("urn:") ? org : `urn:li:organization:${org}`);
361
- const segments = commaList(args.segment);
362
- return {
363
- add: {
364
- ...employers.length > 0 ? { employers } : {},
365
- ...segments.length > 0 ? { segments } : {}
366
- }
367
- };
368
- }
369
- var EXCLUSION_FLAG_BY_FIELD = { employers: "--org", segments: "--segment" };
370
- function excludeCompaniesRefusal(args) {
371
- const payload = excludeCompaniesPayload(args);
372
- if (!payload.add.employers && !payload.add.segments) {
373
- return "pass --org and/or --segment \u2014 the companies or audiences this ad set should stop reaching";
374
- }
375
- const parsed = campaignExcludeCompaniesSchema.safeParse(payload);
376
- if (parsed.success) {
377
- return void 0;
378
- }
379
- return parsed.error.issues.map((issue) => {
380
- const flag = EXCLUSION_FLAG_BY_FIELD[String(issue.path[1])];
381
- return flag ? `${flag}: ${issue.message}` : issue.message;
382
- }).join("; ");
383
- }
384
- var campaignsExcludeCompaniesCommand = defineCommand({
385
- meta: {
386
- name: "exclude-companies",
387
- description: `Stop an ad set reaching some companies \u2014 customers, open deals, competitors. ${STAGED_NOTE}
388
- Add-only: adds to the ad set's exclusions and never removes one. At publish Baker re-reads the ad set and merges into its targeting as it stands then, so audience, locations and existing exclusions are kept.
389
- --org takes company ids (as \`companies\` / \`top-companies\` print them) or urn:li:organization URNs, comma-separated, up to 200 per call. For a longer list, upload it as a company-list audience and pass it to --segment (an urn:li:dmpSegment/adSegment URN, or a li_temp_* audience staged in this chat).
390
- Example: baker ads linkedin campaigns exclude-companies 123456 --org 1035,1441`
391
- },
392
- args: {
393
- id: {
394
- type: "positional",
395
- description: "Ad set (campaign) id or URN \u2014 must already be on LinkedIn",
396
- required: true
397
- },
398
- ...accountArgs,
399
- org: { type: "string", description: "Company ids or urn:li:organization URNs to exclude, comma-separated" },
400
- segment: {
401
- type: "string",
402
- description: "Matched audiences to exclude, comma-separated: urn:li:dmpSegment:N / urn:li:adSegment:N or a li_temp_* ref"
403
- }
404
- },
405
- run: async ({ args }) => {
406
- const accountId = bareAccountId(args);
407
- const target = requireTarget(args, "campaign");
408
- const refusal = excludeCompaniesRefusal(args);
409
- if (refusal) {
410
- failWriteValidation(refusal);
411
- }
412
- const payload = excludeCompaniesPayload(args);
413
- await stageOp({ kind: "campaign.excludeCompanies", accountId, target, payload });
414
- }
415
- });
416
- function statusSugarCommand(entity, kind, name) {
417
- const status = name === "pause" ? "PAUSED" : name === "resume" ? "ACTIVE" : "ARCHIVED";
418
- return defineCommand({
419
- meta: {
420
- name,
421
- description: `Stage a status change to ${status}, for one id or many. ${STAGED_NOTE}
422
- Examples:
423
- baker ads linkedin ${entity} ${name} 123456
424
- baker ads linkedin ${entity} ${name} 123456,123457,123458
425
- baker ads linkedin ${entity} ${name} --ids-file ids.txt`
426
- },
427
- args: {
428
- id: { type: "positional", description: "Entity id or URN \u2014 comma-separate several", required: false },
429
- "ids-file": { type: "string", description: "File of ids, one per line or comma-separated" },
430
- ...accountArgs
431
- },
432
- run: async ({ args }) => {
433
- await stageStatusChange({
434
- kind,
435
- accountId: bareAccountId(args),
436
- targets: requireTargets(args, entity.replace(/-/g, " ").replace(/s$/, "")),
437
- status
438
- });
439
- }
440
- });
441
- }
442
- function deleteDraftCommand(entity, kind, what) {
443
- return defineCommand({
444
- meta: {
445
- name: "delete",
446
- description: `Stage deleting a ${what} that is still a DRAFT on LinkedIn, for one id or many \u2014 it disappears from Campaign Manager. ${STAGED_NOTE}
447
- Only a DRAFT can be deleted: anything that has been active, paused or archived stays, so pause or archive it instead. A ${what} staged in this chat is dropped with \`draft remove\`. At publish every delete runs last, ads before ad sets before campaigns.
448
- Examples:
449
- baker ads linkedin ${entity} delete 896802423
450
- baker ads linkedin ${entity} delete 896802423,896812053`
451
- },
452
- args: {
453
- id: { type: "positional", description: "Id or URN \u2014 comma-separate several", required: false },
454
- "ids-file": { type: "string", description: "File of ids, one per line or comma-separated" },
455
- ...accountArgs
456
- },
457
- run: async ({ args }) => {
458
- const accountId = bareAccountId(args);
459
- await stageLinkedinOps(
460
- requireTargets(args, what).map((target) => ({
461
- kind,
462
- accountId,
463
- target,
464
- payload: {}
465
- }))
466
- );
467
- }
468
- });
469
- }
470
- var campaignGroupsDeleteCommand = deleteDraftCommand("campaign-groups", "campaignGroup.delete", "campaign");
471
- var campaignsDeleteCommand = deleteDraftCommand("campaigns", "campaign.delete", "ad set");
472
- var creativesDeleteCommand = deleteDraftCommand("creatives", "creative.delete", "ad");
473
- function trackingPairs(value, flag) {
474
- const raw = value === void 0 ? [] : Array.isArray(value) ? value : [value];
475
- return raw.flatMap(
476
- (entry) => String(entry).split("&").filter((pair) => pair.length > 0).map((pair) => {
477
- const at = pair.indexOf("=");
478
- if (at < 1 || at === pair.length - 1) {
479
- failWriteValidation(`${flag} expects key=value pairs \u2014 got "${pair}"`);
480
- }
481
- return [pair.slice(0, at).trim(), pair.slice(at + 1).trim()];
482
- })
483
- );
484
- }
485
- function asDynamicValue(value) {
486
- const bare = value.replace(/^\{+|\}+$/g, "").toUpperCase();
487
- return TRACKING_PARAM_DYNAMIC_VALUES.includes(bare) ? bare : void 0;
488
- }
489
- function trackingParamsPayload(args, rawArgs) {
490
- if (args.clear) {
491
- return { dynamicValueParameters: {}, customValueParameters: {} };
492
- }
493
- const customValueParameters = {};
494
- for (const [key, value] of trackingPairs(repeatedValues(rawArgs, "param", args.param), "--param")) {
495
- if (asDynamicValue(value)) {
496
- failWriteValidation(
497
- `--param ${key}=${value} names a value LinkedIn fills in per ad \u2014 pass it as --dynamic ${key}=${value.replace(/^\{+|\}+$/g, "").toUpperCase()}`
498
- );
499
- }
500
- customValueParameters[key] = value;
501
- }
502
- const dynamicValueParameters = {};
503
- for (const [key, value] of trackingPairs(repeatedValues(rawArgs, "dynamic", args.dynamic), "--dynamic")) {
504
- const resolved = asDynamicValue(value);
505
- if (!resolved) {
506
- failWriteValidation(
507
- `--dynamic ${key}=${value} is not a value LinkedIn can fill in \u2014 use one of ${TRACKING_PARAM_DYNAMIC_VALUES.join(", ")}, or pass a fixed value with --param`
508
- );
509
- }
510
- dynamicValueParameters[key] = resolved;
511
- }
512
- return mergePayload(loadJsonFileArg(args.file), {
513
- customValueParameters: Object.keys(customValueParameters).length > 0 ? customValueParameters : void 0,
514
- dynamicValueParameters: Object.keys(dynamicValueParameters).length > 0 ? dynamicValueParameters : void 0
515
- });
516
- }
517
- var campaignsUrlParamsCommand = defineCommand({
518
- meta: {
519
- name: "url-params",
520
- description: `Stage the URL tracking parameters on an ad set \u2014 LinkedIn appends them to the link of EVERY ad in it, including ads already running. ${STAGED_NOTE}
521
-
522
- Start here: set UTMs at this level, not per ad. A per-ad landing URL is only for a genuinely different destination \u2014 LinkedIn appends the ad set's parameters on top of whatever the ad's own URL carries, so the same key set in both places lands twice.
523
-
524
- This REPLACES the ad set's whole parameter set \u2014 LinkedIn does not merge. Read what it carries first (\`baker ads linkedin url-params --campaign-ids <ad-set-id>\`) and re-send every pair that should survive; the drop is otherwise silent until traffic stops being attributable.
525
-
526
- Values LinkedIn fills in per ad (--dynamic): ACCOUNT_ID, ACCOUNT_NAME, CAMPAIGN_GROUP_ID, CAMPAIGN_GROUP_NAME, CAMPAIGN_ID, CAMPAIGN_NAME, CREATIVE_ID, CREATIVE_NAME.
527
-
528
- Examples:
529
- baker ads linkedin campaigns url-params 123456 --param "utm_source=linkedin&utm_medium=paid-social" --dynamic utm_campaign=CAMPAIGN_NAME --dynamic utm_content=CREATIVE_ID
530
- baker ads linkedin campaigns url-params 123456 --param utm_agency=baker
531
- baker ads linkedin campaigns url-params 123456 --clear`
532
- },
533
- args: {
534
- id: { type: "positional", description: "Ad set (campaign) id or URN", required: true },
535
- ...accountArgs,
536
- param: {
537
- type: "string",
538
- description: 'Fixed key=value, repeatable or &-joined (e.g. --param "utm_source=linkedin&utm_medium=paid")'
539
- },
540
- dynamic: {
541
- type: "string",
542
- description: "key=PLACEHOLDER LinkedIn fills in per ad, repeatable (e.g. --dynamic utm_campaign=CAMPAIGN_NAME)"
543
- },
544
- clear: { type: "boolean", description: "Remove every tracking parameter from this ad set" },
545
- file: { type: "string", description: "JSON file with the full payload; flags override file keys" }
546
- },
547
- run: async ({ args, rawArgs }) => {
548
- const accountId = bareAccountId(args);
549
- await stageOp({
550
- kind: "trackingParams.set",
551
- accountId,
552
- target: requireTarget(args, "ad set"),
553
- payload: trackingParamsPayload(args, rawArgs)
554
- });
555
- }
556
- });
557
- function accountTrackingTarget(args) {
558
- const accountId = bareAccountId(args);
559
- return { accountId, target: `urn:li:sponsoredAccount:${accountId}` };
560
- }
561
- var accountUrlParamsCommand = defineCommand({
562
- meta: {
563
- name: "url-params",
564
- description: `Stage the URL tracking parameters on the whole AD ACCOUNT \u2014 LinkedIn appends them to the link of every ad in every ad set, including ads already running. ${STAGED_NOTE}
565
-
566
- Use this for the parameters that never vary across the account (utm_source, utm_medium, an agency tag). Anything that identifies a specific ad set belongs on the ad set (\`campaigns url-params\`) \u2014 LinkedIn appends BOTH levels, so a key set in both places lands in the URL twice.
567
-
568
- This REPLACES the account's whole parameter set \u2014 LinkedIn does not merge. Read what it carries first with \`baker ads linkedin url-params\` and re-send every pair that should survive.
569
-
570
- Values LinkedIn fills in per ad (--dynamic): ACCOUNT_ID, ACCOUNT_NAME, CAMPAIGN_GROUP_ID, CAMPAIGN_GROUP_NAME, CAMPAIGN_ID, CAMPAIGN_NAME, CREATIVE_ID, CREATIVE_NAME.
571
-
572
- Examples:
573
- baker ads linkedin account url-params --param "utm_source=linkedin&utm_medium=paid_social"
574
- baker ads linkedin account url-params --param utm_source=linkedin --dynamic utm_campaign=CAMPAIGN_NAME
575
- baker ads linkedin account url-params --clear`
576
- },
577
- args: {
578
- ...accountArgs,
579
- param: {
580
- type: "string",
581
- description: 'Fixed key=value, repeatable or &-joined (e.g. --param "utm_source=linkedin&utm_medium=paid")'
582
- },
583
- dynamic: {
584
- type: "string",
585
- description: "key=PLACEHOLDER LinkedIn fills in per ad, repeatable (e.g. --dynamic utm_campaign=CAMPAIGN_NAME)"
586
- },
587
- clear: { type: "boolean", description: "Remove every tracking parameter set on the ad account" },
588
- file: { type: "string", description: "JSON file with the full payload; flags override file keys" }
589
- },
590
- run: async ({ args, rawArgs }) => {
591
- const { accountId, target } = accountTrackingTarget(args);
592
- await stageOp({
593
- kind: "trackingParams.set",
594
- accountId,
595
- target,
596
- payload: trackingParamsPayload(args, rawArgs)
597
- });
598
- }
599
- });
600
- var campaignsPauseCommand = statusSugarCommand("campaigns", "campaign.update", "pause");
601
- var campaignsResumeCommand = statusSugarCommand("campaigns", "campaign.update", "resume");
602
- var campaignsArchiveCommand = statusSugarCommand("campaigns", "campaign.update", "archive");
603
- var campaignGroupsPauseCommand = statusSugarCommand("campaign-groups", "campaignGroup.update", "pause");
604
- var campaignGroupsResumeCommand = statusSugarCommand("campaign-groups", "campaignGroup.update", "resume");
605
- var creativesPauseCommand = statusSugarCommand("creatives", "creative.update", "pause");
606
- var creativesResumeCommand = statusSugarCommand("creatives", "creative.update", "resume");
607
- function duplicateCommand(entity, cliGroup) {
608
- return defineCommand({
609
- meta: {
610
- name: "duplicate",
611
- description: `Stage a copy of an existing ${entity} as a new DRAFT create (playbook: duplicate, never link-to-original). ${STAGED_NOTE}
612
- Example: baker ads linkedin ${cliGroup} duplicate 123456 --name "New variant"`
613
- },
614
- args: {
615
- id: { type: "positional", description: "Source id or URN", required: true },
616
- ...accountArgs,
617
- name: { type: "string", description: "Name for the copy" },
618
- file: { type: "string", description: "JSON file with field overrides for the copy" }
619
- },
620
- run: async ({ args }) => {
621
- try {
622
- const chatId = requireChatId();
623
- const overrides = mergePayload(loadJsonFileArg(args.file), { name: args.name });
624
- const response = await apiPost(
625
- "/api/ads/linkedin/draft/duplicate",
626
- {
627
- chatId,
628
- accountId: bareAccountId(args),
629
- entity,
630
- sourceId: requireTarget(args, entity),
631
- ...Object.keys(overrides).length > 0 ? { overrides } : {}
632
- }
633
- );
634
- writeJsonEnvelope(response);
635
- } catch (err) {
636
- handleLinkedinError(err);
637
- }
638
- }
639
- });
640
- }
641
- var campaignsDuplicateCommand = duplicateCommand("campaign", "campaigns");
642
- var campaignGroupsDuplicateCommand = duplicateCommand("campaignGroup", "campaign-groups");
643
- var creativesDuplicateCommand = defineCommand({
644
- meta: {
645
- name: "duplicate",
646
- description: `Stage a copy of an existing ad, optionally with new content. ${STAGED_NOTE}
647
- Content flags only apply to direct-content ads (text|spotlight|follower|jobs) \u2014 LinkedIn makes their content immutable, so a copy is how their copy/media/URL changes. Post-based ads (image|video|carousel|document|article|event|tla) sponsor a post that owns the copy, media and destination: a copy re-sponsors the SAME post, so content flags are rejected \u2014 stage \`creatives create\` with the new content instead, then pause the old ad.
648
- --replace also pauses the original once the new ad publishes (skipped if the new ad fails).
649
- Examples:
650
- baker ads linkedin creatives duplicate 1458413484 --headline "10x Demos, Same Team" --description "AI handles every demo request." --replace
651
- baker ads linkedin creatives duplicate urn:li:sponsoredCreative:789 --campaign 799305464`
652
- },
653
- args: {
654
- id: { type: "positional", description: "Source creative id or URN", required: true },
655
- ...accountArgs,
656
- campaign: { type: "string", description: "Stage the copy under a different ad set (id/URN or li_temp_*)" },
657
- "intended-status": {
658
- type: "string",
659
- description: "Status for the copy (default DRAFT; with --replace, the source's status)"
660
- },
661
- replace: {
662
- type: "boolean",
663
- description: "Also pause the original once the new ad publishes; the copy inherits the source's status"
664
- },
665
- intro: { type: "string", description: "New commentary / intro text" },
666
- headline: { type: "string", description: "New headline" },
667
- description: { type: "string", description: "New description (text/spotlight ads)" },
668
- "landing-url": {
669
- type: "string",
670
- description: "New https destination URL (direct-content ads only \u2014 a post-based ad's URL lives in its post)"
671
- },
672
- cta: { type: "string", description: "New CTA (LEARN_MORE|REQUEST_DEMO|\u2026)" },
673
- "cta-label": { type: "string", description: "Spotlight custom CTA label" },
674
- "image-id": { type: "string", description: "Baker image library id" },
675
- "image-urn": { type: "string", description: "Existing urn:li:image:*" },
676
- "video-id": {
677
- type: "string",
678
- description: "Baker video library id (`baker videos`) \u2014 uploaded to LinkedIn at publish; a first publish may ask to retry while the full-quality copy is prepared"
679
- },
680
- "video-urn": { type: "string", description: "Existing urn:li:video:*" },
681
- "logo-image-id": { type: "string", description: "Baker image id for the logo" },
682
- title: { type: "string", description: "Media title" },
683
- file: { type: "string", description: "JSON file with field overrides for the copy" }
684
- },
685
- run: async ({ args }) => {
686
- try {
687
- const chatId = requireChatId();
688
- const file = loadJsonFileArg(args.file);
689
- const fileContent = file.content !== null && typeof file.content === "object" && !Array.isArray(file.content) ? file.content : {};
690
- const content = { ...fileContent, ...creativeContentPatch(args) };
691
- const overrides = mergePayload(file, {
692
- campaign: args.campaign,
693
- intendedStatus: args["intended-status"] ? String(args["intended-status"]).toUpperCase() : void 0,
694
- content: Object.keys(content).length > 0 ? content : void 0
695
- });
696
- const response = await apiPost(
697
- "/api/ads/linkedin/draft/duplicate",
698
- {
699
- chatId,
700
- accountId: bareAccountId(args),
701
- entity: "creative",
702
- sourceId: requireTarget(args, "creative"),
703
- ...Object.keys(overrides).length > 0 ? { overrides } : {},
704
- ...args.replace ? { replace: true } : {}
705
- }
706
- );
707
- writeJsonEnvelope(response);
708
- } catch (err) {
709
- handleLinkedinError(err);
710
- }
711
- }
712
- });
713
- var CREATIVE_FORMATS = [
714
- "image",
715
- "video",
716
- "text",
717
- "spotlight",
718
- "follower",
719
- "document",
720
- "carousel",
721
- "conversation",
722
- "tla",
723
- "jobs",
724
- "event",
725
- "article"
726
- ];
727
- var creativesCreateCommand = defineCommand({
728
- meta: {
729
- name: "create",
730
- description: `Stage a new creative (ad). ${STAGED_NOTE}
731
- Formats: ${CREATIVE_FORMATS.join("|")}. Media comes from the Baker library (--image-id / --video-id from \`baker images\`/\`baker videos\`) or as LinkedIn URNs. Complex formats (carousel, jobs) take --file with the full content object. Conversation ads take --file with the message flow ({message: {subject, body, buttons[]}} \u2014 buttons NESTED|LANDING_PAGE|LEAD_FORM (LEAD_FORM takes leadForm: li_temp_* or form id and opens the form in the thread), nested messages recurse).
732
- Examples:
733
- baker ads linkedin creatives create --campaign li_temp_x2 --format image --image-id <bakerImageId> --intro "Meet the platform\u2026" --headline "Book a demo" --landing-url https://example.com/demo --cta REQUEST_DEMO
734
- baker ads linkedin creatives create --campaign 123456 --format tla --post-urn urn:li:ugcPost:789
735
- Boosting a post (Thought Leader ad): --format tla sponsors a post that already exists \u2014 the company page's own (not a reshare) or a person's once they approve it in Campaign Manager. Pass the post's embed link (\u22EF \u2192 Embed this post); a normal post link names its activity, which LinkedIn's ads don't take. A video post goes in a SINGLE_VIDEO ad set, any other in STANDARD_UPDATE.
736
- Document ads run in a SPONSORED_UPDATE_NATIVE_DOCUMENT ad set: --document <Baker document name> or --document-url <PDF link>, plus --title. Gate it (lead gen ad set) with --lead-form and --preview-pages N \u2014 the first N pages show, the form unlocks the rest:
737
- baker ads linkedin creatives create --campaign li_temp_x2 --format document --document solar-report --title "2026 solar report" --intro "\u2026" --lead-form li_temp_f1 --lead-form-button UNLOCK_FULL_DOCUMENT --preview-pages 3
738
- Lead gen ads (an ad set with objective LEAD_GENERATION) open a form instead of a landing page \u2014 every ad in one needs --lead-form, and staging refuses it without:
739
- baker ads linkedin lead-forms create --file form.json # \u2192 li_temp_f1
740
- baker ads linkedin creatives create --campaign li_temp_x2 --format image --image-id <id> --intro "\u2026" --headline "Get the report" --lead-form li_temp_f1 --lead-form-button DOWNLOAD`
741
- },
742
- args: {
743
- ...accountArgs,
744
- campaign: { type: "string", description: "Campaign id/URN, or li_temp_* ref staged in this chat" },
745
- format: { type: "string", description: CREATIVE_FORMATS.join("|") },
746
- "image-id": { type: "string", description: "Baker image library id (uploaded to LinkedIn at publish)" },
747
- "image-urn": { type: "string", description: "Existing urn:li:image:*" },
748
- "video-id": {
749
- type: "string",
750
- description: "Baker video library id (`baker videos`) \u2014 uploaded to LinkedIn at publish; a first publish may ask to retry while the full-quality copy is prepared"
751
- },
752
- "video-urn": { type: "string", description: "Existing urn:li:video:*" },
753
- "logo-image-id": { type: "string", description: "Baker image id for logo (text/spotlight/follower/jobs)" },
754
- intro: { type: "string", description: "Commentary / intro text (\u2264600 chars before feed truncation)" },
755
- headline: { type: "string", description: "Headline (\u226470; text ads \u226425)" },
756
- description: { type: "string", description: "Description (text ads \u226475, spotlight \u226470)" },
757
- "landing-url": { type: "string", description: "https destination URL" },
758
- cta: { type: "string", description: "LEARN_MORE|REQUEST_DEMO|SIGN_UP|REGISTER|DOWNLOAD|\u2026" },
759
- "cta-label": { type: "string", description: "Spotlight custom CTA label (\u226418 chars)" },
760
- "post-urn": {
761
- type: "string",
762
- description: "TLA: the existing post to sponsor \u2014 urn:li:share|ugcPost:*, or the post's embed link (\u22EF \u2192 Embed this post)"
763
- },
764
- "post-url": { type: "string", description: "Same as --post-urn, for a pasted post link" },
765
- sender: {
766
- type: "string",
767
- description: "Conversation ads: urn:li:person:* the conversation arrives from (from `account-users`; default: whoever connected LinkedIn)"
768
- },
769
- "lead-form": {
770
- type: "string",
771
- description: "Lead gen form the ad opens (image|video|carousel|document|tla): li_temp_* ref from `lead-forms create`, or a form id from `lead-forms`. Required in a LEAD_GENERATION ad set; replaces --landing-url"
772
- },
773
- "lead-form-button": {
774
- type: "string",
775
- description: `Button that opens the form: ${LEADGEN_CTA_LABELS.join("|")} (default SIGN_UP)`
776
- },
777
- document: {
778
- type: "string",
779
- description: "Document ads: a Baker document's folder name (src/documents/<name>) \u2014 its PDF goes to LinkedIn at publish, after the document itself is published"
780
- },
781
- "document-url": {
782
- type: "string",
783
- description: "Document ads: https link to a PDF, PowerPoint or Word file (\u2264100 MB, \u2264300 pages)"
784
- },
785
- "document-urn": { type: "string", description: "Document ads: existing urn:li:document:*" },
786
- "preview-pages": {
787
- type: "string",
788
- description: "Gated document ads: pages shown before the lead gen form (needs --lead-form; fewer than the document has, which must be 2+ pages)"
789
- },
790
- "event-urn": { type: "string", description: "Event ads: the LinkedIn event to sponsor (urn:li:event:*)" },
791
- "article-url": { type: "string", description: "Article ads: https URL of the article/newsletter to sponsor" },
792
- "thumbnail-image-id": { type: "string", description: "Article ads: Baker image id for the link thumbnail" },
793
- "thumbnail-urn": { type: "string", description: "Article ads: existing urn:li:image:* thumbnail" },
794
- "intended-status": { type: "string", description: "DRAFT|ACTIVE|PAUSED (default DRAFT)" },
795
- title: { type: "string", description: "Media title (image/video), article title, or document title" },
796
- file: { type: "string", description: "JSON file with the full content object; flags override" }
797
- },
798
- run: async ({ args }) => {
799
- const accountId = bareAccountId(args);
800
- if (!args.campaign) {
801
- failWriteValidation("--campaign is required (id, URN, or li_temp_* ref)");
802
- }
803
- const format = args.format ? String(args.format) : void 0;
804
- if (!format || !CREATIVE_FORMATS.includes(format)) {
805
- failWriteValidation(`--format must be one of ${CREATIVE_FORMATS.join("|")}`);
806
- }
807
- const content = mergePayload(loadJsonFileArg(args.file), {
808
- format,
809
- commentary: args.intro,
810
- imageId: args["image-id"],
811
- imageUrn: args["image-urn"],
812
- videoId: args["video-id"],
813
- videoUrn: args["video-urn"],
814
- logoImageId: args["logo-image-id"],
815
- headline: args.headline,
816
- description: args.description,
817
- landingUrl: args["landing-url"],
818
- cta: args.cta ? String(args.cta).toUpperCase() : void 0,
819
- ctaLabel: args["cta-label"],
820
- postUrn: postUrnArg(args),
821
- sender: args.sender,
822
- eventUrn: args["event-urn"],
823
- source: args["article-url"],
824
- thumbnailImageId: args["thumbnail-image-id"],
825
- thumbnailUrn: args["thumbnail-urn"],
826
- mediaTitle: args.title,
827
- title: args.title,
828
- ...documentContentArgs(format, args)
829
- });
830
- const leadgenCallToAction = leadgenCallToActionArg(args);
831
- await stageOp({
832
- kind: "creative.create",
833
- accountId,
834
- payload: {
835
- campaign: args.campaign,
836
- intendedStatus: args["intended-status"] ? String(args["intended-status"]).toUpperCase() : void 0,
837
- content,
838
- ...leadgenCallToAction ? { leadgenCallToAction } : {}
839
- }
840
- });
841
- }
842
- });
843
- function documentContentArgs(format, args) {
844
- if (format !== "document") {
845
- return {};
846
- }
847
- const previewPages = args["preview-pages"] === void 0 ? void 0 : Number(args["preview-pages"]);
848
- if (previewPages !== void 0 && !(Number.isInteger(previewPages) && previewPages >= 1)) {
849
- failWriteValidation("--preview-pages must be a whole number of pages, e.g. 3");
850
- }
851
- return {
852
- documentId: args.document,
853
- documentUrl: args["document-url"],
854
- documentUrn: args["document-urn"],
855
- documentTitle: args.title,
856
- previewPages
857
- };
858
- }
859
- function postUrnArg(args) {
860
- const value = args["post-urn"] ?? args["post-url"];
861
- if (value === void 0) {
862
- return void 0;
863
- }
864
- const post = sponsoredPostUrn(String(value));
865
- if ("error" in post) {
866
- failWriteValidation(`--post-urn: ${post.error}`);
867
- }
868
- return post.urn;
869
- }
870
- function leadgenCallToActionArg(args) {
871
- const destination = args["lead-form"] !== void 0 ? String(args["lead-form"]) : void 0;
872
- const label = args["lead-form-button"] !== void 0 ? String(args["lead-form-button"]).toUpperCase() : void 0;
873
- if (destination === void 0) {
874
- if (label !== void 0) {
875
- failWriteValidation("--lead-form-button needs --lead-form (the form the button opens)");
876
- }
877
- return void 0;
878
- }
879
- return { destination, label: label ?? "SIGN_UP" };
880
- }
881
- var CREATIVE_AMEND_CONTENT_FLAGS = [
882
- ["intro", "commentary"],
883
- ["headline", "headline"],
884
- ["description", "description"],
885
- ["landing-url", "landingUrl"],
886
- ["cta-label", "ctaLabel"],
887
- ["image-id", "imageId"],
888
- ["image-urn", "imageUrn"],
889
- ["video-id", "videoId"],
890
- ["video-urn", "videoUrn"],
891
- ["logo-image-id", "logoImageId"],
892
- ["thumbnail-image-id", "thumbnailImageId"],
893
- ["thumbnail-urn", "thumbnailUrn"],
894
- ["title", "title"]
895
- ];
896
- function creativeContentPatch(args) {
897
- const patch = {};
898
- for (const [flag, key] of CREATIVE_AMEND_CONTENT_FLAGS) {
899
- if (args[flag] !== void 0) {
900
- patch[key] = args[flag];
901
- }
902
- }
903
- if (args.cta !== void 0) {
904
- patch.cta = String(args.cta).toUpperCase();
905
- }
906
- return patch;
907
- }
908
- var creativesUpdateCommand = defineCommand({
909
- meta: {
910
- name: "update",
911
- description: `Stage changes to an existing creative, or amend a creative staged in this chat by passing its li_temp_* ref. ${STAGED_NOTE}
912
- Direct-content ads (text/spotlight/follower/jobs) update copy/media/URL IN PLACE \u2014 changed fields merge into the ad's current content. Post-based ads (image/video/carousel/\u2026) sponsor a post that owns the copy, media and destination: neither this command nor \`creatives duplicate\` can change it \u2014 stage \`creatives create\` with the new content, then pause the old ad. Staged creatives (li_temp_*) accept all content flags and re-validate.
913
- Applies the same change to several ads at once: comma-separate the ids, or pass --ids-file. All of them stage together or none does. Live ids only \u2014 a li_temp_* amend has to be its own call.
914
- --campaign re-parents the ad to a different ad set \u2014 LinkedIn has no in-place move API, so this only works while the creative is still staged (li_temp_*); passing it against a live creative id/URN is rejected at stage time.
915
- Examples:
916
- baker ads linkedin creatives update 1458423674 --headline "Sharper headline" --description "New copy."
917
- baker ads linkedin creatives update urn:li:sponsoredCreative:789 --intended-status PAUSED
918
- baker ads linkedin creatives update 1458423674,1458423675,1458423676 --intended-status PAUSED
919
- baker ads linkedin creatives update --ids-file ads.txt --intended-status PAUSED
920
- baker ads linkedin creatives update li_temp_x3 --campaign li_temp_x2
921
- baker ads linkedin creatives update li_temp_x3 --lead-form li_temp_f1 --lead-form-button REQUEST_DEMO
922
- --lead-form on a live ad works only while that ad is DRAFT \u2014 LinkedIn locks the form once it leaves DRAFT.`
923
- },
924
- args: {
925
- id: {
926
- type: "positional",
927
- description: "Creative id/URN \u2014 comma-separate several. A li_temp_* ref amends what this chat staged and must be passed on its own.",
928
- required: false
929
- },
930
- "ids-file": { type: "string", description: "File of creative ids, one per line or comma-separated" },
931
- ...accountArgs,
932
- "intended-status": { type: "string", description: "ACTIVE|PAUSED|ARCHIVED|DRAFT" },
933
- name: { type: "string", description: "New creative name" },
934
- campaign: {
935
- type: "string",
936
- description: "Re-parent to a different ad set (id/URN or li_temp_*) \u2014 staged creatives only"
937
- },
938
- intro: { type: "string", description: "Commentary / intro text" },
939
- headline: { type: "string", description: "New headline" },
940
- description: { type: "string", description: "Description (text/spotlight ads)" },
941
- "landing-url": { type: "string", description: "New https destination URL" },
942
- cta: { type: "string", description: "New CTA (LEARN_MORE|REQUEST_DEMO|\u2026)" },
943
- "cta-label": { type: "string", description: "Spotlight custom CTA label" },
944
- "lead-form": {
945
- type: "string",
946
- description: "Lead gen form the ad opens: li_temp_* or form id (live ads: DRAFT only)"
947
- },
948
- "lead-form-button": {
949
- type: "string",
950
- description: `Button that opens the form: ${LEADGEN_CTA_LABELS.join("|")} (default SIGN_UP); needs --lead-form`
951
- },
952
- "image-id": { type: "string", description: "Baker image library id" },
953
- "image-urn": { type: "string", description: "Existing urn:li:image:*" },
954
- "video-id": {
955
- type: "string",
956
- description: "Baker video library id (`baker videos`) \u2014 uploaded to LinkedIn at publish; a first publish may ask to retry while the full-quality copy is prepared"
957
- },
958
- "video-urn": { type: "string", description: "Existing urn:li:video:*" },
959
- "logo-image-id": { type: "string", description: "Baker image id for the logo" },
960
- "thumbnail-image-id": { type: "string", description: "Baker image id for the article thumbnail" },
961
- "thumbnail-urn": { type: "string", description: "Existing urn:li:image:* thumbnail" },
962
- title: { type: "string", description: "Media or article title" },
963
- file: { type: "string", description: "JSON file with fields to change; flags override file keys" }
964
- },
965
- run: async ({ args }) => {
966
- const accountId = bareAccountId(args);
967
- const targets = requireTargets(args, "creative");
968
- const file = loadJsonFileArg(args.file);
969
- const contentPatch = creativeContentPatch(args);
970
- const intendedStatus = args["intended-status"] ? String(args["intended-status"]).toUpperCase() : void 0;
971
- const fileContent = file.content !== null && typeof file.content === "object" && !Array.isArray(file.content) ? file.content : {};
972
- const content = { ...fileContent, ...contentPatch };
973
- const payload = mergePayload(file, {
974
- intendedStatus,
975
- name: args.name,
976
- campaign: args.campaign,
977
- content: Object.keys(content).length > 0 ? content : void 0,
978
- leadgenCallToAction: leadgenCallToActionArg(args)
979
- });
980
- await stageLinkedinOps(targets.map((target) => ({ kind: "creative.update", accountId, target, payload })));
981
- }
982
- });
983
- var AUDIENCE_TYPES = ["company-list", "user-list", "retargeting", "engagement"];
984
- var INLINE_ROWS_MAX = 1e4;
985
- var audiencesCreateCommand = defineCommand({
986
- meta: {
987
- name: "create",
988
- description: `Stage a new matched audience. ${STAGED_NOTE}
989
- List audiences take --list-file (CSV: companyName,domain,organizationUrn for companies \u2014 organizationUrn matches the company page exactly; email,\u2026 for contacts \u2014 emails are SHA-256 hashed locally). LinkedIn needs 300+ MATCHED members to serve.
990
- Example: baker ads linkedin audiences create --name "ABM Tier-1" --type company-list --list-file accounts.csv`
991
- },
992
- args: {
993
- ...accountArgs,
994
- name: { type: "string", description: "Audience name (\u2264100 chars)" },
995
- type: { type: "string", description: AUDIENCE_TYPES.join("|") },
996
- "list-file": { type: "string", description: "CSV file with the list rows (header row required)" },
997
- file: {
998
- type: "string",
999
- description: 'JSON file with a raw source config (retargeting/engagement) \u2014 sourcePlatform, type USER and at least one engagementRules entry, e.g. {"sourcePlatform":"VIDEO_ADS","type":"USER","engagementRules":[{"engagementSource":"urn:li:sponsoredCampaign:123","engagementTrigger":"urn:li:dmpEngagementTrigger:(urn:li:dmpEngagementSourceType:VIDEO_ADS,FIRST_QUARTILE)","timeFrame":{"timeSpan":{"duration":90,"unit":"DAY"}}}]}'
1000
- }
1001
- },
1002
- run: async ({ args }) => {
1003
- const accountId = bareAccountId(args);
1004
- const list = parseListFileArg(args["list-file"], INLINE_ROWS_MAX);
1005
- const raw = args.file ? loadJsonFileArg(args.file) : void 0;
1006
- await stageOp({
1007
- kind: "audience.create",
1008
- accountId,
1009
- payload: {
1010
- name: args.name,
1011
- audienceType: args.type,
1012
- ...list ? { listColumns: list.columns, listRows: list.rows } : {},
1013
- ...raw ? { raw } : {}
1014
- }
1015
- });
1016
- }
1017
- });
1018
- var audiencesUploadCommand = defineCommand({
1019
- meta: {
1020
- name: "upload",
1021
- description: `Stage replacing an audience's list with a new file. ${STAGED_NOTE}
1022
- LinkedIn keeps ONE list per audience and gives this app no row-level add or remove, so the file is the whole list the audience should hold: to add people, send the old rows plus the new; to remove people (a customer who closed, someone who opted out), send the list without them. Rematching takes up to 48h.
1023
- Example: baker ads linkedin audiences upload urn:li:dmpSegment:42 --list-file all-target-accounts.csv`
1024
- },
1025
- args: {
1026
- id: { type: "positional", description: "Segment URN/id, or li_temp_* ref staged in this chat", required: true },
1027
- ...accountArgs,
1028
- "list-file": { type: "string", description: "CSV file with the WHOLE list the audience should hold", required: true }
1029
- },
1030
- run: async ({ args }) => {
1031
- const accountId = bareAccountId(args);
1032
- const list = parseListFileArg(args["list-file"], INLINE_ROWS_MAX);
1033
- if (!list) {
1034
- failWriteValidation("--list-file is required");
1035
- }
1036
- await stageOp({
1037
- kind: "audience.uploadList",
1038
- accountId,
1039
- payload: {
1040
- segment: requireTarget(args, "audience segment"),
1041
- listColumns: list.columns,
1042
- listRows: list.rows
1043
- }
1044
- });
1045
- }
1046
- });
1047
- var audiencesDeleteCommand = defineCommand({
1048
- meta: {
1049
- name: "delete",
1050
- description: `Stage deleting a matched audience \u2014 its list and its targetable twin go too. ${STAGED_NOTE}
1051
- LinkedIn keeps at most 1,000 audiences per ad account and refuses to delete one a live ad set still targets. An audience staged in this chat is dropped with \`draft remove\` instead.
1052
- Example: baker ads linkedin audiences delete urn:li:dmpSegment:77530978`
1053
- },
1054
- args: {
1055
- id: {
1056
- type: "positional",
1057
- description: "Audience URN (urn:li:dmpSegment:\u2026) or id from `audiences`",
1058
- required: true
1059
- },
1060
- ...accountArgs
1061
- },
1062
- run: async ({ args }) => {
1063
- await stageOp({
1064
- kind: "audience.delete",
1065
- accountId: bareAccountId(args),
1066
- target: requireTarget(args, "audience"),
1067
- payload: {}
1068
- });
1069
- }
1070
- });
1071
- var audiencesListCommand = defineCommand({
1072
- meta: {
1073
- name: "list",
1074
- description: "List the ad account's matched audiences: status (BUILDING until LinkedIn has matched it, READY to serve), rows uploaded vs matched, and targetingUrn \u2014 the urn:li:adSegment:\u2026 targeting and exclusions take. Runs by default."
1075
- },
1076
- args: { ...accountArgs },
1077
- run: async ({ args }) => {
1078
- try {
1079
- const data = await apiGet("/api/ads/linkedin/audiences", {
1080
- "account-id": bareAccountId(args)
1081
- });
1082
- writeJsonEnvelope({ ok: true, data });
1083
- } catch (err) {
1084
- handleLinkedinError(err);
1085
- }
1086
- }
1087
- });
1088
- var audiencesCommand = defineCommand({
1089
- meta: {
1090
- name: "audiences",
1091
- description: `List the ad account's matched audiences, or stage changes to them (create lists, upload rows \u2014 staged until publish).
1092
- Examples:
1093
- baker ads linkedin audiences # status, uploaded vs matched, targetingUrn
1094
- baker ads linkedin audiences create --name "ABM Tier-1" --type company-list --list-file accounts.csv`
1095
- },
1096
- // A parent must never declare `run` — see `creativesCommand`.
1097
- args: { ...accountArgs },
1098
- default: "list",
1099
- subCommands: {
1100
- list: audiencesListCommand,
1101
- create: audiencesCreateCommand,
1102
- upload: audiencesUploadCommand,
1103
- delete: audiencesDeleteCommand
1104
- }
1105
- });
1106
- var conversionsCreateCommand = defineCommand({
1107
- meta: {
1108
- name: "create",
1109
- description: `Stage a new conversion rule. ${STAGED_NOTE}
1110
- Example: baker ads linkedin conversions create --name "Demo booked" --type LEAD --method INSIGHT_TAG --post-click-window 30 --view-window 7`
1111
- },
1112
- args: {
1113
- ...accountArgs,
1114
- name: { type: "string", description: "Conversion rule name" },
1115
- type: {
1116
- type: "string",
1117
- description: "Conversion type. Common: LEAD, QUALIFIED_LEAD, MARKETING_QUALIFIED_LEAD, SALES_QUALIFIED_LEAD, SIGN_UP, DOWNLOAD, PURCHASE, KEY_PAGE_VIEW, ADD_TO_CART, BOOK_APPOINTMENT, SUBMIT_APPLICATION, OTHER \u2014 `baker schema ads.linkedin.conversions.create` lists all 34"
1118
- },
1119
- method: { type: "string", description: "INSIGHT_TAG|CONVERSIONS_API" },
1120
- "post-click-window": {
1121
- type: "string",
1122
- description: "1|7|30|90 days (playbook default 30); 180|365 only for LEAD, QUALIFIED_LEAD, MARKETING_QUALIFIED_LEAD, SALES_QUALIFIED_LEAD, PURCHASE, ADD_TO_CART, SUBMIT_APPLICATION"
1123
- },
1124
- "view-window": {
1125
- type: "string",
1126
- description: "1|7|30|90 days (playbook default 7); 180|365 only for LEAD, QUALIFIED_LEAD, MARKETING_QUALIFIED_LEAD, SALES_QUALIFIED_LEAD, PURCHASE, ADD_TO_CART, SUBMIT_APPLICATION"
1127
- },
1128
- "attribution-type": { type: "string", description: "LAST_TOUCH_BY_CAMPAIGN|LAST_TOUCH_BY_CONVERSION" },
1129
- "associate-all-campaigns": { type: "boolean", description: "Auto-associate with active campaigns" },
1130
- file: { type: "string", description: "JSON file with the full payload (e.g. urlMatchRuleExpression)" }
1131
- },
1132
- run: async ({ args }) => {
1133
- const accountId = bareAccountId(args);
1134
- const payload = mergePayload(loadJsonFileArg(args.file), {
1135
- name: args.name,
1136
- type: args.type ? String(args.type).toUpperCase() : void 0,
1137
- conversionMethod: args.method ? String(args.method).toUpperCase() : void 0,
1138
- postClickAttributionWindowSize: args["post-click-window"] ? Number(args["post-click-window"]) : void 0,
1139
- viewThroughAttributionWindowSize: args["view-window"] ? Number(args["view-window"]) : void 0,
1140
- attributionType: args["attribution-type"] ? String(args["attribution-type"]).toUpperCase() : void 0,
1141
- associateAllCampaigns: args["associate-all-campaigns"] === true ? true : void 0
1142
- });
1143
- await stageOp({ kind: "conversion.create", accountId, payload });
1144
- }
1145
- });
1146
- var conversionsUpdateCommand = defineCommand({
1147
- meta: {
1148
- name: "update",
1149
- description: `Stage changes to a conversion rule (windows, name, enabled). ${STAGED_NOTE}
1150
- Example: baker ads linkedin conversions update 104988516 --post-click-window 30 --view-window 7`
1151
- },
1152
- args: {
1153
- id: { type: "positional", description: "Conversion rule id or URN", required: true },
1154
- ...accountArgs,
1155
- name: { type: "string", description: "New name" },
1156
- "post-click-window": {
1157
- type: "string",
1158
- description: "1|7|30|90 days; 180|365 only for LEAD, QUALIFIED_LEAD, MARKETING_QUALIFIED_LEAD, SALES_QUALIFIED_LEAD, PURCHASE, ADD_TO_CART, SUBMIT_APPLICATION"
1159
- },
1160
- "view-window": {
1161
- type: "string",
1162
- description: "1|7|30|90 days; 180|365 only for LEAD, QUALIFIED_LEAD, MARKETING_QUALIFIED_LEAD, SALES_QUALIFIED_LEAD, PURCHASE, ADD_TO_CART, SUBMIT_APPLICATION"
1163
- },
1164
- "attribution-type": { type: "string", description: "LAST_TOUCH_BY_CAMPAIGN|LAST_TOUCH_BY_CONVERSION" },
1165
- enabled: { type: "string", description: "on|off" },
1166
- file: { type: "string", description: "JSON file with fields to change" }
1167
- },
1168
- run: async ({ args }) => {
1169
- const accountId = bareAccountId(args);
1170
- const payload = mergePayload(loadJsonFileArg(args.file), {
1171
- name: args.name,
1172
- postClickAttributionWindowSize: args["post-click-window"] ? Number(args["post-click-window"]) : void 0,
1173
- viewThroughAttributionWindowSize: args["view-window"] ? Number(args["view-window"]) : void 0,
1174
- attributionType: args["attribution-type"] ? String(args["attribution-type"]).toUpperCase() : void 0,
1175
- enabled: parseOnOffFlag(args.enabled, "--enabled")
1176
- });
1177
- await stageOp({
1178
- kind: "conversion.update",
1179
- accountId,
1180
- target: requireTarget(args, "conversion rule"),
1181
- payload
1182
- });
1183
- }
1184
- });
1185
- var conversionsUploadCommand = defineCommand({
1186
- meta: {
1187
- name: "upload",
1188
- description: `Stage sending conversions that happened off LinkedIn's tag \u2014 deals a CRM closed, leads qualified on a call \u2014 to a Conversions API rule, so LinkedIn credits the ads that drove them and bids toward them. ${STAGED_NOTE}
1189
- Start here: \`conversions\` lists the rules \u2014 pick one whose conversionMethod is CONVERSIONS_API (or stage one with \`conversions create --method CONVERSIONS_API\`). Ongoing sends from Baker's own conversions already reach LinkedIn on their own; this is for a backfill or a CRM export.
1190
- The file (CSV with a header row, or a JSON array) carries one conversion per row: eventId (the CRM deal or order id \u2014 LinkedIn counts a re-sent id once), happenedAt (ISO time WITH timezone, last 90 days), and something to match the person on: email, or firstName + lastName (with companyName, title, countryCode to sharpen it), or liFatId. Optional value + currency. Emails and names are hashed here; nothing readable is stored. Up to 2,000 per upload; staging again for the same rule replaces the rows.
1191
- Example: baker ads linkedin conversions upload 19997433 --file closed-won.csv`
1192
- },
1193
- args: {
1194
- id: { type: "positional", description: "Conversions API rule id (from `conversions`)", required: true },
1195
- ...accountArgs,
1196
- file: { type: "string", description: "CSV or JSON file of conversions", required: true }
1197
- },
1198
- run: async ({ args }) => {
1199
- const path = String(args.file);
1200
- const rows = path.toLowerCase().endsWith(".json") ? jsonRowsArg(path) : parseListFileArg(path, CONVERSION_UPLOAD_MAX_EVENTS)?.rows ?? [];
1201
- const { events, ignored } = conversionUploadEvents(rows);
1202
- if (ignored.length > 0) {
1203
- process.stderr.write(
1204
- `Ignored column(s) that are not part of a conversion: ${ignored.join(", ")}. Used: eventId, happenedAt, email, firstName, lastName, companyName, title, countryCode, liFatId, value, currency.
1205
- `
1206
- );
1207
- }
1208
- await stageOp({
1209
- kind: "conversion.upload",
1210
- accountId: bareAccountId(args),
1211
- target: requireTarget(args, "conversion rule"),
1212
- payload: { events }
1213
- });
1214
- }
1215
- });
1216
- function jsonRowsArg(path) {
1217
- const parsed = JSON.parse(readFileSync(path, "utf8"));
1218
- if (!Array.isArray(parsed)) {
1219
- failWriteValidation(`${path} must hold a JSON array, one conversion per element`);
1220
- }
1221
- return parsed;
1222
- }
1223
- var CONVERSION_CAMPAIGN_EXPLAINER = `Which ad sets a conversion rule counts for is a separate LinkedIn record, not a field on the rule \u2014 \`conversions update\` cannot change it, and \`--associate-all-campaigns\` only exists on create.`;
1224
- function conversionCampaignArgs() {
1225
- return {
1226
- id: { type: "positional", description: "Conversion rule id or URN", required: true },
1227
- ...accountArgs,
1228
- campaign: { type: "string", description: "Ad set (campaign) id or URN", required: true }
1229
- };
1230
- }
1231
- function requireCampaignArg(args) {
1232
- const campaign = args.campaign;
1233
- if (typeof campaign !== "string" || campaign.length === 0) {
1234
- failWriteValidation("--campaign is required \u2014 pass the ad set id or URN this conversion should count for");
1235
- }
1236
- return campaign;
1237
- }
1238
- var conversionsAssociateCommand = defineCommand({
1239
- meta: {
1240
- name: "associate-campaign",
1241
- description: `Count an existing conversion rule for one ad set. ${STAGED_NOTE}
1242
- ${CONVERSION_CAMPAIGN_EXPLAINER}
1243
- Example: baker ads linkedin conversions associate-campaign 104988516 --campaign 337643194`
1244
- },
1245
- args: conversionCampaignArgs(),
1246
- run: async ({ args }) => {
1247
- const accountId = bareAccountId(args);
1248
- await stageOp({
1249
- kind: "conversion.associateCampaign",
1250
- accountId,
1251
- target: requireTarget(args, "conversion rule"),
1252
- payload: { campaign: requireCampaignArg(args) }
1253
- });
1254
- }
1255
- });
1256
- var conversionsDissociateCommand = defineCommand({
1257
- meta: {
1258
- name: "dissociate-campaign",
1259
- description: `Stop counting an existing conversion rule for one ad set. ${STAGED_NOTE}
1260
- ${CONVERSION_CAMPAIGN_EXPLAINER}
1261
- Example: baker ads linkedin conversions dissociate-campaign 104988516 --campaign 337643194`
1262
- },
1263
- args: conversionCampaignArgs(),
1264
- run: async ({ args }) => {
1265
- const accountId = bareAccountId(args);
1266
- await stageOp({
1267
- kind: "conversion.dissociateCampaign",
1268
- accountId,
1269
- target: requireTarget(args, "conversion rule"),
1270
- payload: { campaign: requireCampaignArg(args) }
1271
- });
1272
- }
1273
- });
1274
- var leadFormsCreateCommand = defineCommand({
1275
- meta: {
1276
- name: "create",
1277
- description: `Stage a new Lead Gen Form from a JSON file. ${STAGED_NOTE}
1278
- Required: name, headline (\u226460), privacyPolicyUrl, questions[] (\u226412; playbook: \u22644 for completion).
1279
- Each question is a predefined profile field ({ name, predefinedField: "EMAIL" }) or a custom question ({ name, questionType: "MULTIPLE_CHOICE", options: [...] }; \u22643 custom).
1280
- Best-practice fields the preview will nudge for if missing: 1-3 qualifying questions, consents[] (disclosure checkboxes), thankYou.message + thankYou.landingUrl|appointmentUrl.
1281
- Also supported: locale, formImageId|formImageUrn, hiddenFields[], legalDisclaimer, thankYou.cta. Example: baker ads linkedin lead-forms create --file form.json`
1282
- },
1283
- args: {
1284
- ...accountArgs,
1285
- file: { type: "string", description: "JSON file with the form definition", required: true },
1286
- name: { type: "string", description: "Override the form name" }
1287
- },
1288
- run: async ({ args }) => {
1289
- const accountId = bareAccountId(args);
1290
- const payload = mergePayload(loadJsonFileArg(args.file), { name: args.name });
1291
- await stageOp({ kind: "leadForm.create", accountId, payload });
1292
- }
1293
- });
1294
- function leadFormUpdatePayload(args) {
1295
- const file = args.file ? loadJsonFileArg(args.file) : {};
1296
- const thankYou = mergePayload(
1297
- file.thankYou !== null && typeof file.thankYou === "object" ? file.thankYou : {},
1298
- { message: args["thank-you-message"], landingUrl: args["thank-you-url"] }
1299
- );
1300
- return mergePayload(file, {
1301
- name: args.name,
1302
- state: args.state ? String(args.state).toUpperCase() : void 0,
1303
- headline: args.headline,
1304
- description: args.description,
1305
- privacyPolicyUrl: args["privacy-policy-url"],
1306
- legalDisclaimer: args["legal-disclaimer"],
1307
- thankYou: Object.keys(thankYou).length > 0 ? thankYou : void 0
1308
- });
1309
- }
1310
- var leadFormsUpdateCommand = defineCommand({
1311
- meta: {
1312
- name: "update",
1313
- description: `Stage changes to a Lead Gen Form. ${STAGED_NOTE}
1314
- Once a form's ads are live LinkedIn keeps only its copy editable: name, headline, description, privacy policy URL, legal disclaimer, thank-you message and link, and state. Copy is written in the form's own language.
1315
- Examples:
1316
- baker ads linkedin lead-forms update 1028403421 --headline "Get the 2026 report" --thank-you-message "Check your inbox"
1317
- baker ads linkedin lead-forms update 1028403421 --state PUBLISHED`
1318
- },
1319
- args: {
1320
- id: { type: "positional", description: "Lead form id or URN", required: true },
1321
- ...accountArgs,
1322
- name: { type: "string", description: "New form name (internal)" },
1323
- state: { type: "string", description: "PUBLISHED (make a DRAFT form usable) | ARCHIVED (stop its ads)" },
1324
- headline: { type: "string", description: "Form headline (\u226460)" },
1325
- description: { type: "string", description: "Form details text" },
1326
- "privacy-policy-url": { type: "string", description: "https privacy policy URL" },
1327
- "legal-disclaimer": { type: "string", description: "Custom legal disclaimer" },
1328
- "thank-you-message": { type: "string", description: "Confirmation message after submitting" },
1329
- "thank-you-url": { type: "string", description: "https link on the confirmation screen" },
1330
- file: {
1331
- type: "string",
1332
- description: "JSON file with any of the fields above (thankYou as an object); flags override"
1333
- }
1334
- },
1335
- run: async ({ args }) => {
1336
- const accountId = bareAccountId(args);
1337
- await stageOp({
1338
- kind: "leadForm.update",
1339
- accountId,
1340
- target: requireTarget(args, "lead form"),
1341
- payload: leadFormUpdatePayload(args)
1342
- });
1343
- }
1344
- });
1345
- function leadFormStateCommand(name, state, what) {
1346
- return defineCommand({
1347
- meta: { name, description: `${what} ${STAGED_NOTE}
1348
- Example: baker ads linkedin lead-forms ${name} 1028403421` },
1349
- args: {
1350
- id: { type: "positional", description: "Lead form id or URN", required: true },
1351
- ...accountArgs
1352
- },
1353
- run: async ({ args }) => {
1354
- await stageOp({
1355
- kind: "leadForm.update",
1356
- accountId: bareAccountId(args),
1357
- target: requireTarget(args, "lead form"),
1358
- payload: { state }
1359
- });
1360
- }
1361
- });
1362
- }
1363
- var leadFormsPublishCommand = leadFormStateCommand(
1364
- "publish",
1365
- "PUBLISHED",
1366
- "Stage publishing a DRAFT lead gen form, so ads that open it can serve."
1367
- );
1368
- var leadFormsArchiveCommand = leadFormStateCommand(
1369
- "archive",
1370
- "ARCHIVED",
1371
- "Stage archiving a lead gen form \u2014 every ad that opens it stops serving."
1372
- );
1373
- var leadFormsListArgs = {
1374
- ...accountArgs,
1375
- "form-id": { type: "string", description: "Read one form (id or urn:li:leadGenForm:N), questions included" }
1376
- };
1377
- var leadFormsListCommand = defineCommand({
1378
- meta: {
1379
- name: "list",
1380
- description: "List the ad account's lead gen forms: id, name, state (DRAFT forms can't serve), version, questions. Runs by default."
1381
- },
1382
- args: leadFormsListArgs,
1383
- run: async ({ args }) => {
1384
- const accountId = bareAccountId(args);
1385
- try {
1386
- const params = { "account-id": accountId };
1387
- if (args["form-id"]) params["form-id"] = String(args["form-id"]);
1388
- const data = await apiGet("/api/ads/linkedin/lead-forms", params);
1389
- writeJsonEnvelope({ ok: true, data });
1390
- } catch (err) {
1391
- handleLinkedinError(err);
1392
- }
1393
- }
1394
- });
1395
- var leadFormsCommand = defineCommand({
1396
- meta: {
1397
- name: "lead-forms",
1398
- description: `List the ad account's lead gen forms, or stage changes to them (staged until publish).
1399
- Examples:
1400
- baker ads linkedin lead-forms # every form: id, name, state, questions
1401
- baker ads linkedin lead-forms create --file form.json # \u2192 li_temp ref; pass it to \`creatives create --lead-form\`
1402
- baker ads linkedin lead-forms publish 1028403421 # a DRAFT form can't serve
1403
- baker ads linkedin lead-forms archive 1028403421 # its ads stop serving`
1404
- },
1405
- // A parent must never declare `run` — see `creativesCommand`.
1406
- args: leadFormsListArgs,
1407
- default: "list",
1408
- subCommands: {
1409
- list: leadFormsListCommand,
1410
- create: leadFormsCreateCommand,
1411
- update: leadFormsUpdateCommand,
1412
- publish: leadFormsPublishCommand,
1413
- archive: leadFormsArchiveCommand
1414
- }
1415
- });
1416
- export {
1417
- accountTrackingTarget,
1418
- accountUrlParamsCommand,
1419
- audiencesCommand,
1420
- campaignGroupsCreateCommand,
1421
- campaignGroupsDeleteCommand,
1422
- campaignGroupsDuplicateCommand,
1423
- campaignGroupsPauseCommand,
1424
- campaignGroupsResumeCommand,
1425
- campaignGroupsUpdateCommand,
1426
- campaignUpdatePayloadFromFlags,
1427
- campaignsArchiveCommand,
1428
- campaignsCreateCommand,
1429
- campaignsDeleteCommand,
1430
- campaignsDuplicateCommand,
1431
- campaignsExcludeCompaniesCommand,
1432
- campaignsPauseCommand,
1433
- campaignsResumeCommand,
1434
- campaignsUpdateCommand,
1435
- campaignsUrlParamsCommand,
1436
- conversionsAssociateCommand,
1437
- conversionsCreateCommand,
1438
- conversionsDissociateCommand,
1439
- conversionsUpdateCommand,
1440
- conversionsUploadCommand,
1441
- creativesCreateCommand,
1442
- creativesDeleteCommand,
1443
- creativesDuplicateCommand,
1444
- creativesPauseCommand,
1445
- creativesResumeCommand,
1446
- creativesUpdateCommand,
1447
- excludeCompaniesPayload,
1448
- excludeCompaniesRefusal,
1449
- leadFormsCommand,
1450
- leadgenCallToActionArg,
1451
- trackingParamsPayload
1452
- };
1453
- //# sourceMappingURL=write-commands-PPR7G4UN.js.map