@koda-sl/baker-cli 0.552.0 → 0.553.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 (1481) hide show
  1. package/README.md +4 -1
  2. package/dist/account-NSRT5KE6.js +139 -0
  3. package/dist/account-OXD426YD.js +82 -0
  4. package/dist/account-XIC5TTV3.js +82 -0
  5. package/dist/account-assets-V7KSSTVP.js +290 -0
  6. package/dist/account-level-2KLG6HTG.js +611 -0
  7. package/dist/account-reads-ZPZUCB3P.js +219 -0
  8. package/dist/account-users-XTUKRDWK.js +64 -0
  9. package/dist/account-writes-VRRLT356.js +68 -0
  10. package/dist/accounts-25JL77F7.js +701 -0
  11. package/dist/accounts-45MUDNOM.js +76 -0
  12. package/dist/accounts-AF72N4NV.js +80 -0
  13. package/dist/accounts-HJAQTVDA.js +114 -0
  14. package/dist/accounts-KQ7NCM4L.js +115 -0
  15. package/dist/actions-IJO4JW7J.js +55 -0
  16. package/dist/active-entities-3266UJYN.js +103 -0
  17. package/dist/activecampaign-PBTUMTO5.js +938 -0
  18. package/dist/activities-ORMACIG2.js +75 -0
  19. package/dist/ad-group-writes-Y6CCMPCM.js +172 -0
  20. package/dist/ad-groups-TW2UKDVU.js +70 -0
  21. package/dist/ad-writes-J3UVUH7D.js +176 -0
  22. package/dist/add-CKJXQUVI.js +97 -0
  23. package/dist/add-CSRB6GVJ.js +80 -0
  24. package/dist/add-KHQXXHC5.js +107 -0
  25. package/dist/add-NJUG3IQ2.js +81 -0
  26. package/dist/add-XYSUKZSU.js +148 -0
  27. package/dist/add-YQPFRDVM.js +305 -0
  28. package/dist/add-accounts-IRHBFNNC.js +91 -0
  29. package/dist/ads-5CJQRTUN.js +79 -0
  30. package/dist/ads-DI3J3KCQ.js +128 -0
  31. package/dist/ads-EVQ37EV3.js +120 -0
  32. package/dist/ads-O5PUYU7H.js +48 -0
  33. package/dist/adsets-4IW5TRAK.js +182 -0
  34. package/dist/advertisers-5XCIZ7WS.js +125 -0
  35. package/dist/advertisers-JNOWSZZC.js +123 -0
  36. package/dist/analytics-CZMCM7XC.js +2437 -0
  37. package/dist/analytics-K5FCQLI5.js +447 -0
  38. package/dist/animate-C6BRMRRD.js +480 -0
  39. package/dist/approved-RP5ADN7E.js +73 -0
  40. package/dist/asset-writes-RF6XTWLY.js +50 -0
  41. package/dist/assign-WXZNXVJH.js +80 -0
  42. package/dist/audience-size-ZCWH4CFC.js +76 -0
  43. package/dist/audience-writes-5KT6FHUY.js +327 -0
  44. package/dist/audiences-4MYDTY74.js +280 -0
  45. package/dist/audiences-5TOTVZMK.js +85 -0
  46. package/dist/audiences-ZDOK3OYC.js +106 -0
  47. package/dist/audit-RBRXPPKK.js +154 -0
  48. package/dist/audit-SACXTAIP.js +88 -0
  49. package/dist/autocomplete-P5OU7QVL.js +114 -0
  50. package/dist/avatars-UHBA2BQ3.js +38 -0
  51. package/dist/bid-pricing-LHNYSDG4.js +103 -0
  52. package/dist/brand-7WL3O74X.js +22 -0
  53. package/dist/brief-HWZU75WP.js +543 -0
  54. package/dist/businesses-F6PN34WK.js +54 -0
  55. package/dist/campaign-groups-BYS3GNEP.js +99 -0
  56. package/dist/campaign-writes-BHS3POAH.js +176 -0
  57. package/dist/campaign-writes-N6OHAK6V.js +168 -0
  58. package/dist/campaigns-2E4AQBFB.js +113 -0
  59. package/dist/campaigns-3U5IRXSV.js +130 -0
  60. package/dist/campaigns-IRMLPW6N.js +78 -0
  61. package/dist/campaigns-QLKGN4FB.js +111 -0
  62. package/dist/canvas-GGHJ26ZM.js +46 -0
  63. package/dist/capabilities-TKEEHR7K.js +147 -0
  64. package/dist/cards-HUXBNMEM.js +85 -0
  65. package/dist/catalog-7KQN43HS.js +66 -0
  66. package/dist/catalogs-5CHPI4H6.js +782 -0
  67. package/dist/catalogs-5CHPI4H6.js.map +1 -0
  68. package/dist/catalogs-WYRRTRCM.js +130 -0
  69. package/dist/changes-OIVPZJHE.js +143 -0
  70. package/dist/chatgpt-RQQWU7AP.js +47 -0
  71. package/dist/chats-PBXYH2LT.js +449 -0
  72. package/dist/check-SVYI72DF.js +107 -0
  73. package/dist/chunk-2RL2T5JO.js +142 -0
  74. package/dist/chunk-3HLQZTQ3.js +685 -0
  75. package/dist/chunk-3J52GJAY.js +46 -0
  76. package/dist/chunk-42JTSTQ3.js +207 -0
  77. package/dist/chunk-45D6WRCJ.js +476 -0
  78. package/dist/chunk-4AEAL63J.js +203 -0
  79. package/dist/chunk-4H6XLX7E.js +97 -0
  80. package/dist/chunk-4ULGRGBG.js +333 -0
  81. package/dist/chunk-4XMPL3RU.js +19 -0
  82. package/dist/chunk-5AOTCCTT.js +831 -0
  83. package/dist/chunk-5G6R3WYN.js +58 -0
  84. package/dist/chunk-5HPKYRTE.js +45 -0
  85. package/dist/chunk-5NLUTJCQ.js +5368 -0
  86. package/dist/chunk-6FWVRXDW.js +64 -0
  87. package/dist/chunk-6HPTF5YS.js +857 -0
  88. package/dist/chunk-6KEVNO5O.js +191 -0
  89. package/dist/chunk-6MXM6DA6.js +225 -0
  90. package/dist/chunk-6MXM6DA6.js.map +1 -0
  91. package/dist/chunk-6QINKM6T.js +46 -0
  92. package/dist/chunk-73MLPGI2.js +66 -0
  93. package/dist/chunk-7OVPQX4X.js +163 -0
  94. package/dist/chunk-7SNNQCDD.js +274 -0
  95. package/dist/chunk-B5UVOCYA.js +344 -0
  96. package/dist/chunk-BRNZMKO4.js +604 -0
  97. package/dist/chunk-BU7W7MKF.js +42 -0
  98. package/dist/chunk-CCYZJMZ7.js +2522 -0
  99. package/dist/chunk-CCYZJMZ7.js.map +1 -0
  100. package/dist/chunk-CJFCQMUY.js +438 -0
  101. package/dist/chunk-CQMAR4BH.js +69 -0
  102. package/dist/chunk-CXYX6G3I.js +98 -0
  103. package/dist/chunk-CZESYOCC.js +94 -0
  104. package/dist/chunk-D6VQPBVM.js +5471 -0
  105. package/dist/chunk-D7FJ5KHG.js +39 -0
  106. package/dist/chunk-DEZBCK5P.js +66 -0
  107. package/dist/chunk-DK66PUXL.js +275 -0
  108. package/dist/chunk-DLM5OSHM.js +843 -0
  109. package/dist/chunk-DNH2ZPZP.js +287 -0
  110. package/dist/chunk-DWSSQBLO.js +103 -0
  111. package/dist/chunk-E56V3RFO.js +75 -0
  112. package/dist/chunk-EHNORFUW.js +225 -0
  113. package/dist/chunk-ESXUIV6V.js +169 -0
  114. package/dist/chunk-FAV6GUOZ.js +24026 -0
  115. package/dist/chunk-FHN4QXZN.js +139 -0
  116. package/dist/chunk-FSEFZZ2T.js +930 -0
  117. package/dist/chunk-G4JTXVLA.js +74 -0
  118. package/dist/chunk-G6U45QD3.js +296 -0
  119. package/dist/chunk-GAP7SOGA.js +188 -0
  120. package/dist/chunk-GFWWHCBF.js +229 -0
  121. package/dist/chunk-GO6ISZUZ.js +52 -0
  122. package/dist/chunk-GWLP45WQ.js +1518 -0
  123. package/dist/chunk-H3HA22Z3.js +1919 -0
  124. package/dist/chunk-H6GTG665.js +106 -0
  125. package/dist/chunk-I4BQTVMY.js +225 -0
  126. package/dist/chunk-IAZKXDWV.js +100 -0
  127. package/dist/chunk-IBBGABK2.js +91 -0
  128. package/dist/chunk-IC4MREQH.js +219 -0
  129. package/dist/chunk-IIK4WNWV.js +84 -0
  130. package/dist/chunk-IZROFBH7.js +167 -0
  131. package/dist/chunk-J5UTL4HE.js +3510 -0
  132. package/dist/chunk-JBMZVC5D.js +91 -0
  133. package/dist/chunk-JXTNP3B5.js +215 -0
  134. package/dist/chunk-LBJ2CLRT.js +106 -0
  135. package/dist/chunk-LFELUKCA.js +249 -0
  136. package/dist/chunk-LK5OKVCM.js +544 -0
  137. package/dist/chunk-LMOZWB4G.js +98 -0
  138. package/dist/chunk-N5AIO23H.js +2209 -0
  139. package/dist/chunk-NE3OMP7R.js +23 -0
  140. package/dist/chunk-NO52OH3Y.js +156 -0
  141. package/dist/chunk-NRIKX35V.js +399 -0
  142. package/dist/chunk-NRIKX35V.js.map +1 -0
  143. package/dist/chunk-NZYWKZ3Q.js +76 -0
  144. package/dist/chunk-OIORUNKH.js +1902 -0
  145. package/dist/chunk-OKXLOLEV.js +455 -0
  146. package/dist/chunk-OVC2PIOP.js +111 -0
  147. package/dist/chunk-P4MXGSSJ.js +178 -0
  148. package/dist/chunk-P4MXGSSJ.js.map +1 -0
  149. package/dist/chunk-P5HG6WDH.js +152 -0
  150. package/dist/chunk-PGAYESXE.js +25 -0
  151. package/dist/chunk-PQ7RLE43.js +1646 -0
  152. package/dist/chunk-QFODAMYR.js +69 -0
  153. package/dist/chunk-QFVZIQRQ.js +8954 -0
  154. package/dist/chunk-QI5UKQX3.js +297 -0
  155. package/dist/chunk-QY7EK6Q4.js +217 -0
  156. package/dist/chunk-QYH2UZAK.js +324 -0
  157. package/dist/chunk-R7XDGNZD.js +297 -0
  158. package/dist/chunk-R7XDGNZD.js.map +1 -0
  159. package/dist/chunk-RHNNFCRY.js +494 -0
  160. package/dist/chunk-RIVHJC6L.js +35 -0
  161. package/dist/chunk-RJQT7QXX.js +547 -0
  162. package/dist/chunk-RMZLB4AH.js +197 -0
  163. package/dist/chunk-S4NMWYHW.js +51 -0
  164. package/dist/chunk-SFQFUQDW.js +170 -0
  165. package/dist/chunk-SNSLYZIT.js +64 -0
  166. package/dist/chunk-SP3MHBME.js +89 -0
  167. package/dist/chunk-TGT4XHLX.js +131 -0
  168. package/dist/chunk-TLNYAZX5.js +76 -0
  169. package/dist/chunk-UGRL642V.js +73 -0
  170. package/dist/chunk-UKZKLXTE.js +638 -0
  171. package/dist/chunk-VAQOSV3I.js +138 -0
  172. package/dist/chunk-VIRPAJEF.js +97 -0
  173. package/dist/chunk-VX6GTRT3.js +910 -0
  174. package/dist/chunk-WR5Y64OE.js +718 -0
  175. package/dist/chunk-X3YYZLBH.js +285 -0
  176. package/dist/chunk-XB4NKZAQ.js +136 -0
  177. package/dist/chunk-XSBX3LJP.js +430 -0
  178. package/dist/chunk-XXBP73RV.js +148 -0
  179. package/dist/chunk-XZMO52BP.js +56 -0
  180. package/dist/chunk-Y3SK6EMU.js +84 -0
  181. package/dist/chunk-Y4ZBNZBU.js +191 -0
  182. package/dist/chunk-YCAJCVW4.js +224 -0
  183. package/dist/chunk-ZANXEMON.js +1744 -0
  184. package/dist/chunk-ZMTWQDFC.js +709 -0
  185. package/dist/chunk-ZMTWQDFC.js.map +1 -0
  186. package/dist/chunk-ZSZ76MUL.js +125 -0
  187. package/dist/chunk-ZU6JW3ZB.js +26 -0
  188. package/dist/chunk-ZW2CN6L6.js +288 -0
  189. package/dist/cite-TRNZYG4W.js +191 -0
  190. package/dist/claim-Q76T3MYA.js +200 -0
  191. package/dist/cli.js +46 -46
  192. package/dist/client-45COYUUH.js +19 -0
  193. package/dist/code-K4YTLOPA.js +76 -0
  194. package/dist/companies-MLWRWQ73.js +198 -0
  195. package/dist/company-X5Z67PMK.js +308 -0
  196. package/dist/complete-3CFP6XVY.js +84 -0
  197. package/dist/config-TCAHWE6T.js +88 -0
  198. package/dist/connect-QXFAB4RJ.js +45 -0
  199. package/dist/content-MKJP7T7L.js +85 -0
  200. package/dist/conversation-C6K6IZTH.js +96 -0
  201. package/dist/conversion-report-OFV4EKTA.js +127 -0
  202. package/dist/conversion-upload-command-D7S5HF22.js +439 -0
  203. package/dist/conversion-writes-B3H6VLA2.js +122 -0
  204. package/dist/conversions-4ILDIG3K.js +140 -0
  205. package/dist/conversions-CRL327RY.js +78 -0
  206. package/dist/copy-writes-FYXKHJDB.js +170 -0
  207. package/dist/countries-6ST54UGJ.js +82 -0
  208. package/dist/create-LDQ3YHET.js +62 -0
  209. package/dist/create-TKOG7DNJ.js +210 -0
  210. package/dist/create-WFMJOZLO.js +135 -0
  211. package/dist/create-WQNT345R.js +239 -0
  212. package/dist/creatives-45SJAD3G.js +118 -0
  213. package/dist/creatives-E4CTMZJJ.js +223 -0
  214. package/dist/creatives-Q4OXNCTT.js +58 -0
  215. package/dist/credentials-E2AIMWKX.js +290 -0
  216. package/dist/critique-EWV3O3TD.js +1451 -0
  217. package/dist/critique-JVT6X2T3.js +232 -0
  218. package/dist/crm-NQH5FTK6.js +227 -0
  219. package/dist/crm-YGQKK76D.js +323 -0
  220. package/dist/crop-KV24WHOR.js +113 -0
  221. package/dist/currency-B5T7TYKD.js +88 -0
  222. package/dist/custom-conversions-EJNX4MCK.js +128 -0
  223. package/dist/customers-YFEPJF4G.js +65 -0
  224. package/dist/decide-JZXG6LZR.js +199 -0
  225. package/dist/delete-2UJVTHRE.js +67 -0
  226. package/dist/delete-7QAJSOCO.js +69 -0
  227. package/dist/delete-O4RO2HMR.js +57 -0
  228. package/dist/delete-POHL3TKX.js +69 -0
  229. package/dist/delete-Q7J734W2.js +71 -0
  230. package/dist/delete-XWD37C4T.js +85 -0
  231. package/dist/demographics-YWBHAMZ5.js +141 -0
  232. package/dist/describe-MA54W67X.js +97 -0
  233. package/dist/describe-MJ5SOVWY.js +97 -0
  234. package/dist/dimensions-YXOXHOXW.js +101 -0
  235. package/dist/discard-YX4XUXG3.js +69 -0
  236. package/dist/discover-PPMLFJMU.js +93 -0
  237. package/dist/discover-SS3PO5Y6.js +172 -0
  238. package/dist/domain-5R6CYVFY.js +101 -0
  239. package/dist/download-D2O4RYJ3.js +172 -0
  240. package/dist/download-SYWQXF57.js +299 -0
  241. package/dist/draft-2NKXOBT6.js +106 -0
  242. package/dist/draft-3MPADYS4.js +220 -0
  243. package/dist/draft-AAEGEQZZ.js +247 -0
  244. package/dist/draft-CRDQR5I3.js +342 -0
  245. package/dist/draft-I63QQ7LY.js +106 -0
  246. package/dist/draft-PO5X4UVA.js +313 -0
  247. package/dist/draft-QCKJT7XQ.js +288 -0
  248. package/dist/draft-VMLXZQQX.js +408 -0
  249. package/dist/engine/index.js +14 -14
  250. package/dist/env-2RHPS2VF.js +53 -0
  251. package/dist/experiment-3NDXGQK6.js +1397 -0
  252. package/dist/experiments-DYNNWQRB.js +236 -0
  253. package/dist/export-6WWVO4O6.js +168 -0
  254. package/dist/extract-DWDZI35Y.js +121 -0
  255. package/dist/facets-Y2IEM37E.js +117 -0
  256. package/dist/favorites-54Z7PTYR.js +178 -0
  257. package/dist/feed-TAGQWMRK.js +177 -0
  258. package/dist/feedback-HJRVTU6C.js +115 -0
  259. package/dist/feedback-IVSLM5PN.js +136 -0
  260. package/dist/feedback-record-P7CO3IGE.js +269 -0
  261. package/dist/fetch-KB64NPDF.js +139 -0
  262. package/dist/fetch-V2U5VUQZ.js +204 -0
  263. package/dist/find-UB4JSORZ.js +143 -0
  264. package/dist/fit-JDG6E46O.js +65 -0
  265. package/dist/flows-DP574PEX.js +250 -0
  266. package/dist/follow-SX6BV6VZ.js +94 -0
  267. package/dist/follow-competitors-UBJJHX36.js +112 -0
  268. package/dist/following-L7WUEMZ2.js +113 -0
  269. package/dist/fonts-RMROS3LX.js +39 -0
  270. package/dist/forecast-AAHHVTBK.js +169 -0
  271. package/dist/forecast-BRXNGMGD.js +121 -0
  272. package/dist/funding-7M4TJ3MW.js +85 -0
  273. package/dist/funnel-FQX3DOE7.js +397 -0
  274. package/dist/ga4-A3HLGTSI.js +55 -0
  275. package/dist/generate-SYOQE3F7.js +263 -0
  276. package/dist/get-4NDYA3G6.js +62 -0
  277. package/dist/get-HMTI2IR6.js +82 -0
  278. package/dist/get-JIB6PMGI.js +59 -0
  279. package/dist/get-JX5JVWH7.js +56 -0
  280. package/dist/get-KNP2EQRI.js +74 -0
  281. package/dist/get-Q4M6G7YN.js +92 -0
  282. package/dist/get-VFDNTZ54.js +62 -0
  283. package/dist/get-X44ZCIFN.js +38 -0
  284. package/dist/gif-6244RM75.js +110 -0
  285. package/dist/google-HWEDJ4YS.js +144 -0
  286. package/dist/google-WH3IXXMX.js +3285 -0
  287. package/dist/google-WH3IXXMX.js.map +1 -0
  288. package/dist/google-ads-4DLYASRC.js +198 -0
  289. package/dist/group-45M7V46T.js +43 -0
  290. package/dist/group-RAXOR36M.js +43 -0
  291. package/dist/gsc-YAU4EA75.js +30 -0
  292. package/dist/history-6B6RXNV3.js +102 -0
  293. package/dist/history-BEEREY26.js +69 -0
  294. package/dist/history-NLZSX4BK.js +153 -0
  295. package/dist/hubspot-LABBRJ44.js +782 -0
  296. package/dist/icon-2237C4LP.js +137 -0
  297. package/dist/ideas-A4ELJN23.js +45 -0
  298. package/dist/images-JVNT7KYM.js +92 -0
  299. package/dist/improve-PHFWWTOL.js +86 -0
  300. package/dist/ingest-GQWR3RHR.js +27 -0
  301. package/dist/ingest-JYN2IDKV.js +123 -0
  302. package/dist/insights-A5BKVXFQ.js +132 -0
  303. package/dist/insights-U6QAA77O.js +658 -0
  304. package/dist/inspect-72DY33YD.js +192 -0
  305. package/dist/inspiration-DNWTXEPX.js +53 -0
  306. package/dist/instant-experiences-6NTBX4SL.js +264 -0
  307. package/dist/instant-experiences-6NTBX4SL.js.map +1 -0
  308. package/dist/intent-OMSJPOJZ.js +95 -0
  309. package/dist/job-RCEPBGZC.js +202 -0
  310. package/dist/job-create-MDVJ3E7K.js +109 -0
  311. package/dist/job-status-53FJIFYR.js +74 -0
  312. package/dist/keep-ZIHW5OEQ.js +78 -0
  313. package/dist/keyword-gap-3P72T4NV.js +130 -0
  314. package/dist/keyword-metrics-GP7L2MQE.js +200 -0
  315. package/dist/keywords-for-site-6YWAUOKJ.js +131 -0
  316. package/dist/knowledge-PN3FAZJ2.js +195 -0
  317. package/dist/landing-EKHAZS5P.js +28 -0
  318. package/dist/landings-FBRB3FF5.js +151 -0
  319. package/dist/languages-Q5RMPGI4.js +55 -0
  320. package/dist/languages-WWKMRZCH.js +40 -0
  321. package/dist/launches-EQ4VS2OR.js +19 -0
  322. package/dist/layerize-SX6LQK35.js +190 -0
  323. package/dist/lead-routes-RLYGO47M.js +733 -0
  324. package/dist/leads-RN6RYOMU.js +541 -0
  325. package/dist/leads-RN6RYOMU.js.map +1 -0
  326. package/dist/leads-UCXIIA5K.js +115 -0
  327. package/dist/learn-EJEFERQZ.js +207 -0
  328. package/dist/library-RZI7QHRV.js +211 -0
  329. package/dist/lighthouse-D3BJGHLO.js +75 -0
  330. package/dist/line-item-writes-IMCE2FDW.js +211 -0
  331. package/dist/line-items-ISUC3WDO.js +107 -0
  332. package/dist/link-6QL4ZVSU.js +67 -0
  333. package/dist/linkedin-ZOBYUBGV.js +1330 -0
  334. package/dist/linkedin-person-C24CBKCH.js +139 -0
  335. package/dist/list-2NWMHKTR.js +93 -0
  336. package/dist/list-2VNI3U7I.js +154 -0
  337. package/dist/list-5H6UAX6T.js +57 -0
  338. package/dist/list-ACJBOHPS.js +50 -0
  339. package/dist/list-COWCCJ4F.js +65 -0
  340. package/dist/list-EEQJSTLN.js +51 -0
  341. package/dist/list-OTZB7DOX.js +76 -0
  342. package/dist/list-PZD2QOZL.js +67 -0
  343. package/dist/list-SUXUMXPJ.js +306 -0
  344. package/dist/locations-P3CUBKYZ.js +40 -0
  345. package/dist/locations-ZO7F75KT.js +69 -0
  346. package/dist/log-VLI7KQF2.js +95 -0
  347. package/dist/logo-R34AWI4C.js +18 -0
  348. package/dist/lookup-BGNLEZMU.js +23 -0
  349. package/dist/make-365ZJ25L.js +1367 -0
  350. package/dist/map-OEFL45WA.js +436 -0
  351. package/dist/mcp-NCZYQXQL.js +729 -0
  352. package/dist/media-422INJCD.js +89 -0
  353. package/dist/media-WASM45QW.js +18 -0
  354. package/dist/media-sources-CZDK4W5Q.js +35 -0
  355. package/dist/members-N3PQSVQC.js +47 -0
  356. package/dist/meme-NH4DAORT.js +100 -0
  357. package/dist/meta-IRXPQRBH.js +122 -0
  358. package/dist/metrics-PSXIV4QS.js +152 -0
  359. package/dist/models-SITHUNAA.js +155 -0
  360. package/dist/normalize-4OKUF5BJ.js +806 -0
  361. package/dist/normalize-6DEJPTBF.js +144 -0
  362. package/dist/options-OJX77MYT.js +125 -0
  363. package/dist/organization-URQGKFEC.js +949 -0
  364. package/dist/output-2MGOSPDE.js +24 -0
  365. package/dist/page-WKWRKLTC.js +105 -0
  366. package/dist/page-photos-N4S7U7FR.js +118 -0
  367. package/dist/pages-LT3KCVC3.js +67 -0
  368. package/dist/performance-P5T4LJRG.js +27 -0
  369. package/dist/performance-SIWBDORI.js +5565 -0
  370. package/dist/pinterest-KZ7RIHRS.js +104 -0
  371. package/dist/pixels-3BHTXTDV.js +62 -0
  372. package/dist/pixels-IGJFC2XC.js +109 -0
  373. package/dist/plan-ATH2VCVA.js +208 -0
  374. package/dist/posts-MVCGZV54.js +36 -0
  375. package/dist/preview-DMTQR6ZW.js +218 -0
  376. package/dist/profile-OWDBNPNI.js +159 -0
  377. package/dist/promoted-tweet-writes-S2HP5DEI.js +183 -0
  378. package/dist/promoted-tweets-WZT4N5IR.js +119 -0
  379. package/dist/properties-VSOMFI5V.js +101 -0
  380. package/dist/publish-EDYBQHGJ.js +344 -0
  381. package/dist/query-5OS6M4ON.js +231 -0
  382. package/dist/query-NTWXOWPZ.js +236 -0
  383. package/dist/query-PC7V3OFF.js +62 -0
  384. package/dist/questionnaire-HUNGUZNQ.js +94 -0
  385. package/dist/read-DXZJ7UOJ.js +141 -0
  386. package/dist/reddit-DEGGHR4M.js +29 -0
  387. package/dist/refresh-BKYZXXRF.js +42 -0
  388. package/dist/refresh-HPNJGI2U.js +97 -0
  389. package/dist/release-H7M37CEO.js +63 -0
  390. package/dist/relevant-pages-3CCAQA5Y.js +99 -0
  391. package/dist/remove-MV4YS72N.js +53 -0
  392. package/dist/remove-MX2FV44C.js +49 -0
  393. package/dist/reopen-EFW2SKOY.js +66 -0
  394. package/dist/rerun-OM4N74YK.js +96 -0
  395. package/dist/research-7YDQOKA6.js +265 -0
  396. package/dist/research-MHXKAQW4.js +75 -0
  397. package/dist/reset-HT4AGJPR.js +57 -0
  398. package/dist/reset-XPZQ5F4D.js +57 -0
  399. package/dist/resolve-RTTXEN2B.js +124 -0
  400. package/dist/retry-DVLVWHEK.js +63 -0
  401. package/dist/retry-SBGWOUQO.js +65 -0
  402. package/dist/retry-failed-T6PK5SKL.js +45 -0
  403. package/dist/revenue-KJLJ53XY.js +91 -0
  404. package/dist/rule-writes-DNXELESR.js +530 -0
  405. package/dist/rule-writes-DNXELESR.js.map +1 -0
  406. package/dist/rules-KCSET46P.js +217 -0
  407. package/dist/rules-NVKU732Z.js +99 -0
  408. package/dist/rules-add-KY42EHJE.js +465 -0
  409. package/dist/run-2LQ7XJEO.js +69 -0
  410. package/dist/run-M7YU6KCV.js +71 -0
  411. package/dist/scaffold-ad-6YPZ75YJ.js +1513 -0
  412. package/dist/scaffold-static-ad-UJEWTDU5.js +1011 -0
  413. package/dist/scaffold-video-M4VWSVJ6.js +885 -0
  414. package/dist/schedule-ANIYXLG6.js +67 -0
  415. package/dist/schedule-J7HZQ2EL.js +64 -0
  416. package/dist/scheduled-agents-IVUQUKF4.js +55 -0
  417. package/dist/schema-L4PETLZT.js +152 -0
  418. package/dist/schema-L4PETLZT.js.map +1 -0
  419. package/dist/schema-LHBKBUV7.js +135 -0
  420. package/dist/scrape-FQUGOXCG.js +2241 -0
  421. package/dist/screenshot-YRYAOP5E.js +102 -0
  422. package/dist/search-3AW52FO6.js +177 -0
  423. package/dist/search-6XKFFDMJ.js +228 -0
  424. package/dist/search-E75B5APM.js +92 -0
  425. package/dist/search-EKTUTXVN.js +51 -0
  426. package/dist/search-OW3E2Z7Z.js +91 -0
  427. package/dist/search-YARSBZ6D.js +26 -0
  428. package/dist/search-copy-2KO3VR6R.js +168 -0
  429. package/dist/seeds-E64JKXWS.js +101 -0
  430. package/dist/select-STIWQ36I.js +110 -0
  431. package/dist/sends-DEVRKO4M.js +349 -0
  432. package/dist/sequences-YIQSLKV5.js +146 -0
  433. package/dist/set-prompt-TODWV2F4.js +199 -0
  434. package/dist/setup-links-MNBD3UMH.js +144 -0
  435. package/dist/shared-V5ZS25EO.js +32 -0
  436. package/dist/shopify-PVMHMVIC.js +3980 -0
  437. package/dist/site-ZZUKS6MQ.js +180 -0
  438. package/dist/sitemaps-ZSISKT6L.js +77 -0
  439. package/dist/sites-XMZ3HPHT.js +97 -0
  440. package/dist/skills-6MJC6CSZ.js +47 -0
  441. package/dist/sources-36MJ6T4V.js +30 -0
  442. package/dist/sources-GNLQHTSJ.js +457 -0
  443. package/dist/stale-GJN7UO3D.js +90 -0
  444. package/dist/stats-FSAXWTSE.js +34 -0
  445. package/dist/status-6EGB6ORB.js +65 -0
  446. package/dist/sticker-GXCI4WL5.js +102 -0
  447. package/dist/stock-DJ6I3CTO.js +187 -0
  448. package/dist/studies-4XXCEAHH.js +250 -0
  449. package/dist/studio-OARORMDJ.js +49 -0
  450. package/dist/study-writes-J56UIIE3.js +471 -0
  451. package/dist/study-writes-J56UIIE3.js.map +1 -0
  452. package/dist/suggest-DSMKK4FP.js +66 -0
  453. package/dist/sync-QHM3LMAX.js +57 -0
  454. package/dist/sync-WKV3N3LD.js +279 -0
  455. package/dist/sync-XFK4U6TA.js +55 -0
  456. package/dist/sync-definition-YXGN6PIQ.js +70 -0
  457. package/dist/tag-L2H5TSFJ.js +57 -0
  458. package/dist/tag-manager-XAX5AI42.js +43 -0
  459. package/dist/tags-GHV5R7NI.js +26 -0
  460. package/dist/tags-IDWUV2FY.js +227 -0
  461. package/dist/tags-MBBRBZJH.js +23 -0
  462. package/dist/tags-MQYF2JHQ.js +23 -0
  463. package/dist/tags-ZGXJHATH.js +23 -0
  464. package/dist/targeting-KJ4DI56R.js +762 -0
  465. package/dist/targeting-constants-ZS422W5A.js +118 -0
  466. package/dist/targeting-criteria-GDCXOAUD.js +113 -0
  467. package/dist/targets-MYHOPAYY.js +106 -0
  468. package/dist/terms-NX5CAJXT.js +102 -0
  469. package/dist/testimonials-R6RFGAKP.js +32 -0
  470. package/dist/themes-LHVXXVTX.js +95 -0
  471. package/dist/top-companies-POTV3Y2A.js +111 -0
  472. package/dist/transcript-4RVYKDVZ.js +165 -0
  473. package/dist/translate-UCASCVMN.js +603 -0
  474. package/dist/triggers-XHMMOZJK.js +144 -0
  475. package/dist/tweets-33OCH74J.js +123 -0
  476. package/dist/unfollow-G26NHR5X.js +46 -0
  477. package/dist/unlink-3IW3EORE.js +70 -0
  478. package/dist/unstage-APVF6KHB.js +88 -0
  479. package/dist/unstage-OAPP6Z5V.js +96 -0
  480. package/dist/update-2VSJH4LQ.js +66 -0
  481. package/dist/update-42QYBUE3.js +101 -0
  482. package/dist/update-ESK6PSME.js +192 -0
  483. package/dist/update-KXTP3VPI.js +81 -0
  484. package/dist/update-V7SRDGHN.js +155 -0
  485. package/dist/upload-42IR5RIL.js +130 -0
  486. package/dist/upload-LSEV74SF.js +150 -0
  487. package/dist/upscale-X3B5CHG3.js +109 -0
  488. package/dist/url-options-GJ7ZIUPD.js +131 -0
  489. package/dist/url-params-GEESXN57.js +101 -0
  490. package/dist/use-D3SKAKUU.js +111 -0
  491. package/dist/validate-Z5SSEUES.js +125 -0
  492. package/dist/variant-MEHXEXFK.js +338 -0
  493. package/dist/videos-PJAPZPOT.js +41 -0
  494. package/dist/view-HTCYEBXN.js +133 -0
  495. package/dist/viewer-check-6M34VY7K.js +83 -0
  496. package/dist/web-PUVVFMV3.js +173 -0
  497. package/dist/winners-CGLS7SZ3.js +113 -0
  498. package/dist/winning-ads-ZCP4MIEQ.js +86 -0
  499. package/dist/write-commands-5LEEPKA7.js +1169 -0
  500. package/dist/write-commands-5LEEPKA7.js.map +1 -0
  501. package/dist/write-commands-HQQOJGP4.js +721 -0
  502. package/dist/write-commands-HQQOJGP4.js.map +1 -0
  503. package/dist/write-commands-QNXR5ENS.js +206 -0
  504. package/dist/write-commands-ZS4O4DSV.js +1524 -0
  505. package/dist/write-commands-ZS4O4DSV.js.map +1 -0
  506. package/dist/x-2IZMW46M.js +47 -0
  507. package/package.json +1 -1
  508. package/dist/account-2EUMSJ6E.js +0 -82
  509. package/dist/account-7YEN7D6B.js +0 -139
  510. package/dist/account-RXX6HCCL.js +0 -82
  511. package/dist/account-assets-HX7OYWZA.js +0 -290
  512. package/dist/account-level-I5BKCGP5.js +0 -611
  513. package/dist/account-reads-7FUCOWBE.js +0 -219
  514. package/dist/account-users-Z5RFUBXP.js +0 -64
  515. package/dist/account-writes-TG3XVEPD.js +0 -68
  516. package/dist/accounts-AC7ZBCS2.js +0 -76
  517. package/dist/accounts-I4EXOKR7.js +0 -115
  518. package/dist/accounts-MFCQIHYM.js +0 -701
  519. package/dist/accounts-MMIWLNGB.js +0 -80
  520. package/dist/accounts-WYFUDH2V.js +0 -114
  521. package/dist/actions-QIKHRNJX.js +0 -55
  522. package/dist/active-entities-AEXKE2EN.js +0 -103
  523. package/dist/activecampaign-RQJ7PQPM.js +0 -938
  524. package/dist/activities-N5BD57MF.js +0 -75
  525. package/dist/ad-group-writes-OLQM2VNX.js +0 -172
  526. package/dist/ad-groups-ENLD7CU4.js +0 -70
  527. package/dist/ad-writes-FF6PT3R5.js +0 -176
  528. package/dist/add-3JWLLGUJ.js +0 -80
  529. package/dist/add-4JUXMRNA.js +0 -148
  530. package/dist/add-4NK4DIER.js +0 -97
  531. package/dist/add-AO3F6EJY.js +0 -107
  532. package/dist/add-NQUHPVZ5.js +0 -81
  533. package/dist/add-QYLIXGQT.js +0 -305
  534. package/dist/add-accounts-XCYWXGO3.js +0 -91
  535. package/dist/ads-H6TOLQKA.js +0 -79
  536. package/dist/ads-JNXLC3PU.js +0 -120
  537. package/dist/ads-MXH4DNG2.js +0 -48
  538. package/dist/ads-XEAMDEZW.js +0 -128
  539. package/dist/adsets-W5JSNW4Q.js +0 -182
  540. package/dist/advertisers-7KCF3ODT.js +0 -123
  541. package/dist/advertisers-IAXF43LX.js +0 -125
  542. package/dist/analytics-3AMSN535.js +0 -447
  543. package/dist/analytics-5SPL5E7Q.js +0 -2437
  544. package/dist/animate-WXSSXUTY.js +0 -480
  545. package/dist/approved-HDDHLECJ.js +0 -73
  546. package/dist/asset-writes-VYGJRLEA.js +0 -50
  547. package/dist/assign-D3XCS6PD.js +0 -80
  548. package/dist/audience-size-SQRAXCQD.js +0 -76
  549. package/dist/audience-writes-YMCOA47Z.js +0 -327
  550. package/dist/audiences-VKU7E4LI.js +0 -85
  551. package/dist/audiences-XUY2Y6OH.js +0 -280
  552. package/dist/audiences-Y4UIPHB7.js +0 -106
  553. package/dist/audit-DVIKUMSU.js +0 -154
  554. package/dist/audit-HWA6SOH3.js +0 -88
  555. package/dist/autocomplete-FJNOPOVG.js +0 -114
  556. package/dist/avatars-VMJE6IL4.js +0 -38
  557. package/dist/bid-pricing-HFPRGFPN.js +0 -103
  558. package/dist/brand-NJI7MUWN.js +0 -22
  559. package/dist/brief-LHQJCJOK.js +0 -543
  560. package/dist/businesses-DEKE2CRX.js +0 -54
  561. package/dist/campaign-groups-QPTKMJBU.js +0 -99
  562. package/dist/campaign-writes-3NFFDIFM.js +0 -176
  563. package/dist/campaign-writes-YSFLDOPH.js +0 -168
  564. package/dist/campaigns-4KDJBCA7.js +0 -78
  565. package/dist/campaigns-AI2ZHOK6.js +0 -111
  566. package/dist/campaigns-KXQDUFVX.js +0 -130
  567. package/dist/campaigns-P6WHQMG3.js +0 -113
  568. package/dist/canvas-CDMROW44.js +0 -46
  569. package/dist/capabilities-B24L6H6H.js +0 -147
  570. package/dist/cards-UCEENP55.js +0 -85
  571. package/dist/catalog-FBJC7XUE.js +0 -66
  572. package/dist/catalogs-2CCZQAS3.js +0 -130
  573. package/dist/catalogs-TAQIAKNJ.js +0 -781
  574. package/dist/catalogs-TAQIAKNJ.js.map +0 -1
  575. package/dist/changes-TTQCZMYX.js +0 -143
  576. package/dist/chatgpt-D7MUGYE5.js +0 -47
  577. package/dist/chats-AI4NH34F.js +0 -449
  578. package/dist/check-L2BVFQU6.js +0 -107
  579. package/dist/chunk-23LJR6WD.js +0 -26
  580. package/dist/chunk-26ALFAKU.js +0 -8954
  581. package/dist/chunk-2YYOFA2A.js +0 -638
  582. package/dist/chunk-353QTP3X.js +0 -69
  583. package/dist/chunk-3A7BDDXS.js +0 -188
  584. package/dist/chunk-3I62TYHW.js +0 -438
  585. package/dist/chunk-3XJM5HX6.js +0 -136
  586. package/dist/chunk-3XWQ4ZS5.js +0 -494
  587. package/dist/chunk-43ECPEJT.js +0 -274
  588. package/dist/chunk-46P74AFU.js +0 -51
  589. package/dist/chunk-4HHIW7PR.js +0 -46
  590. package/dist/chunk-4UJOEGWH.js +0 -377
  591. package/dist/chunk-4UJOEGWH.js.map +0 -1
  592. package/dist/chunk-542AB7CV.js +0 -718
  593. package/dist/chunk-5HLAN4U2.js +0 -219
  594. package/dist/chunk-6VVSAVMC.js +0 -84
  595. package/dist/chunk-72K4LY24.js +0 -76
  596. package/dist/chunk-7KJ24KFI.js +0 -324
  597. package/dist/chunk-7SYPFWCW.js +0 -297
  598. package/dist/chunk-A2EZCLLG.js +0 -100
  599. package/dist/chunk-BUKBQPDY.js +0 -1902
  600. package/dist/chunk-BXHS4OIS.js +0 -207
  601. package/dist/chunk-BXHS4OIS.js.map +0 -1
  602. package/dist/chunk-BXTSQUBI.js +0 -544
  603. package/dist/chunk-CECKSPNC.js +0 -125
  604. package/dist/chunk-CRORJLBL.js +0 -91
  605. package/dist/chunk-CTX4RST4.js +0 -287
  606. package/dist/chunk-DF7IGB3K.js +0 -296
  607. package/dist/chunk-DNZILIEW.js +0 -56
  608. package/dist/chunk-DZLPWNR4.js +0 -275
  609. package/dist/chunk-EFDL5R3O.js +0 -169
  610. package/dist/chunk-EZ6GOPHI.js +0 -843
  611. package/dist/chunk-FBTQGEUE.js +0 -225
  612. package/dist/chunk-FKWXVASL.js +0 -106
  613. package/dist/chunk-GJKEGZJB.js +0 -84
  614. package/dist/chunk-GUEFMO3G.js +0 -64
  615. package/dist/chunk-GUPOLYU5.js +0 -23
  616. package/dist/chunk-H3KQKEQH.js +0 -74
  617. package/dist/chunk-H7FWXSSR.js +0 -430
  618. package/dist/chunk-HQSBYDPE.js +0 -679
  619. package/dist/chunk-HQSBYDPE.js.map +0 -1
  620. package/dist/chunk-IWNQRZHT.js +0 -910
  621. package/dist/chunk-J5RABWAF.js +0 -25
  622. package/dist/chunk-JGAF356Q.js +0 -46
  623. package/dist/chunk-JTHOGRB6.js +0 -45
  624. package/dist/chunk-KDTF2SN6.js +0 -547
  625. package/dist/chunk-KMQKTZ47.js +0 -19
  626. package/dist/chunk-KQEDNZ7K.js +0 -73
  627. package/dist/chunk-KXVJJQG6.js +0 -58
  628. package/dist/chunk-LFSSOKDJ.js +0 -76
  629. package/dist/chunk-MBJHRRDS.js +0 -66
  630. package/dist/chunk-MGHPM72R.js +0 -217
  631. package/dist/chunk-MPNYIGO7.js +0 -857
  632. package/dist/chunk-MPQ5HUAO.js +0 -131
  633. package/dist/chunk-NNQCVHVJ.js +0 -1919
  634. package/dist/chunk-NNSDAAPZ.js +0 -97
  635. package/dist/chunk-NSBNIPIW.js +0 -225
  636. package/dist/chunk-NSBNIPIW.js.map +0 -1
  637. package/dist/chunk-O3HSNUTL.js +0 -344
  638. package/dist/chunk-O4OPH3ZE.js +0 -476
  639. package/dist/chunk-OMOHRYZ3.js +0 -94
  640. package/dist/chunk-OOGGID5L.js +0 -148
  641. package/dist/chunk-OPWDBSU4.js +0 -604
  642. package/dist/chunk-OQ53NO5K.js +0 -42
  643. package/dist/chunk-OQ7CLFEL.js +0 -229
  644. package/dist/chunk-OX5OAT7L.js +0 -831
  645. package/dist/chunk-P4TA3B4C.js +0 -35
  646. package/dist/chunk-PA5PS5KO.js +0 -333
  647. package/dist/chunk-PF3SQX7Z.js +0 -197
  648. package/dist/chunk-PFNUAV22.js +0 -64
  649. package/dist/chunk-QWRZIHFS.js +0 -685
  650. package/dist/chunk-QYOEFBWO.js +0 -69
  651. package/dist/chunk-RFVEHOOC.js +0 -91
  652. package/dist/chunk-RKNSYZX3.js +0 -142
  653. package/dist/chunk-RQA2NP4Y.js +0 -207
  654. package/dist/chunk-S3TBE37M.js +0 -215
  655. package/dist/chunk-S6ZLKSQJ.js +0 -285
  656. package/dist/chunk-SF3GHRMB.js +0 -139
  657. package/dist/chunk-SFDDNAFB.js +0 -152
  658. package/dist/chunk-SW5ONXMD.js +0 -225
  659. package/dist/chunk-T764KNWP.js +0 -52
  660. package/dist/chunk-TDTFJZAC.js +0 -156
  661. package/dist/chunk-TFEPULZS.js +0 -97
  662. package/dist/chunk-TMYLRI3S.js +0 -3510
  663. package/dist/chunk-TSVQTNXZ.js +0 -166
  664. package/dist/chunk-TSVQTNXZ.js.map +0 -1
  665. package/dist/chunk-TV67FGUQ.js +0 -39
  666. package/dist/chunk-U73TWJRK.js +0 -249
  667. package/dist/chunk-UMLSSKXS.js +0 -103
  668. package/dist/chunk-UOWWM3YF.js +0 -930
  669. package/dist/chunk-UOYVUUTX.js +0 -288
  670. package/dist/chunk-V2FZ4QNC.js +0 -191
  671. package/dist/chunk-V3O7ZSQD.js +0 -106
  672. package/dist/chunk-V4GSW4NH.js +0 -1518
  673. package/dist/chunk-VGEW4R4Y.js +0 -191
  674. package/dist/chunk-VYEFXIEM.js +0 -2511
  675. package/dist/chunk-VYEFXIEM.js.map +0 -1
  676. package/dist/chunk-W2OX5K3G.js +0 -98
  677. package/dist/chunk-WBZXRHL7.js +0 -163
  678. package/dist/chunk-X45ABI5E.js +0 -167
  679. package/dist/chunk-XGEJTRNF.js +0 -455
  680. package/dist/chunk-XLYLRUFX.js +0 -24026
  681. package/dist/chunk-XR6FJ272.js +0 -111
  682. package/dist/chunk-Y5IMWZZN.js +0 -5471
  683. package/dist/chunk-Y7KAVULE.js +0 -66
  684. package/dist/chunk-YIQ7PMJG.js +0 -1646
  685. package/dist/chunk-YKXSJGMA.js +0 -1744
  686. package/dist/chunk-YUA6VVET.js +0 -75
  687. package/dist/chunk-YYK4CXLY.js +0 -138
  688. package/dist/chunk-YYQQPDVY.js +0 -2209
  689. package/dist/chunk-Z5AO4Y6W.js +0 -5368
  690. package/dist/chunk-Z5KZ5BV3.js +0 -170
  691. package/dist/chunk-ZPO3NAJY.js +0 -203
  692. package/dist/chunk-ZR3BISO2.js +0 -224
  693. package/dist/chunk-ZR5H5CZI.js +0 -89
  694. package/dist/chunk-ZSZGKMOK.js +0 -98
  695. package/dist/cite-KDF6WQXE.js +0 -191
  696. package/dist/claim-BKJBLN7A.js +0 -200
  697. package/dist/client-MRXMPXJE.js +0 -19
  698. package/dist/code-XZWB4INH.js +0 -76
  699. package/dist/companies-6IQS5YAR.js +0 -198
  700. package/dist/company-WT4Q52W6.js +0 -308
  701. package/dist/complete-TTL4GXUZ.js +0 -84
  702. package/dist/config-ZXODU47A.js +0 -88
  703. package/dist/connect-G6RW4GPI.js +0 -45
  704. package/dist/content-3SZYVF56.js +0 -85
  705. package/dist/conversation-QDMNXK5P.js +0 -96
  706. package/dist/conversion-report-EIZEII3H.js +0 -127
  707. package/dist/conversion-upload-command-BYYYQXY5.js +0 -439
  708. package/dist/conversion-writes-3N2J25ZN.js +0 -122
  709. package/dist/conversions-3DNIEYY2.js +0 -78
  710. package/dist/conversions-DPKOO7H5.js +0 -140
  711. package/dist/copy-writes-OFXLTBQN.js +0 -170
  712. package/dist/countries-JM54BJXV.js +0 -82
  713. package/dist/create-64UE6JVK.js +0 -135
  714. package/dist/create-NKMOQC7A.js +0 -239
  715. package/dist/create-OXBIHL72.js +0 -62
  716. package/dist/create-ZM3I3NSN.js +0 -210
  717. package/dist/creatives-63O6HUXF.js +0 -58
  718. package/dist/creatives-J6MZKMCX.js +0 -118
  719. package/dist/creatives-XRLYZ2ME.js +0 -223
  720. package/dist/credentials-FC36D37N.js +0 -290
  721. package/dist/critique-AC7EPDQA.js +0 -1451
  722. package/dist/critique-RHN32S7D.js +0 -232
  723. package/dist/crm-NFDEK2GT.js +0 -227
  724. package/dist/crm-NQ4FDJ7E.js +0 -323
  725. package/dist/crop-B2CACBC4.js +0 -113
  726. package/dist/currency-XRGG5OKI.js +0 -88
  727. package/dist/custom-conversions-R3ROXHYL.js +0 -128
  728. package/dist/customers-TNVCX27L.js +0 -65
  729. package/dist/decide-MDNIHSQG.js +0 -199
  730. package/dist/delete-DTHXGG5F.js +0 -67
  731. package/dist/delete-F43G4Z3D.js +0 -85
  732. package/dist/delete-LGUXPTBC.js +0 -69
  733. package/dist/delete-RSZU4I76.js +0 -57
  734. package/dist/delete-VXYTITXA.js +0 -71
  735. package/dist/delete-ZKKB553W.js +0 -69
  736. package/dist/demographics-2UXLA4GW.js +0 -141
  737. package/dist/describe-CH3IFPOT.js +0 -97
  738. package/dist/describe-QTAOAQM4.js +0 -97
  739. package/dist/dimensions-5E3AN6A7.js +0 -101
  740. package/dist/discard-E7AD6IVJ.js +0 -69
  741. package/dist/discover-ELMDMJRX.js +0 -93
  742. package/dist/discover-SRXLIPGU.js +0 -172
  743. package/dist/domain-B6GYZ6BX.js +0 -101
  744. package/dist/download-FS5WHNFA.js +0 -172
  745. package/dist/download-XOABASZF.js +0 -299
  746. package/dist/draft-4KW5SRI2.js +0 -106
  747. package/dist/draft-7VI5GTEY.js +0 -247
  748. package/dist/draft-EWR2ADNX.js +0 -313
  749. package/dist/draft-F26LGHM5.js +0 -408
  750. package/dist/draft-ICHAAUVH.js +0 -106
  751. package/dist/draft-MSWSLIY2.js +0 -288
  752. package/dist/draft-PFW24WXM.js +0 -342
  753. package/dist/draft-XBD3UC64.js +0 -220
  754. package/dist/env-BNQON23N.js +0 -53
  755. package/dist/experiment-SNC6RCF3.js +0 -1397
  756. package/dist/experiments-E6NXWJ7X.js +0 -236
  757. package/dist/export-6O62J5I2.js +0 -168
  758. package/dist/extract-D2WSRIKY.js +0 -121
  759. package/dist/facets-R5U2G3R2.js +0 -117
  760. package/dist/favorites-GGJGLED7.js +0 -178
  761. package/dist/feed-FN3BLYD2.js +0 -177
  762. package/dist/feedback-LPFQ567L.js +0 -136
  763. package/dist/feedback-QQRAOFJN.js +0 -115
  764. package/dist/feedback-record-OCKDPXGM.js +0 -269
  765. package/dist/fetch-ET734X4Q.js +0 -139
  766. package/dist/fetch-I5VVAVLY.js +0 -204
  767. package/dist/find-XS42XIYQ.js +0 -143
  768. package/dist/fit-C7SYZA65.js +0 -65
  769. package/dist/flows-I5G5ICEQ.js +0 -250
  770. package/dist/follow-7O37OI4Q.js +0 -94
  771. package/dist/follow-competitors-XLLDO72Q.js +0 -112
  772. package/dist/following-VLSMUMOM.js +0 -113
  773. package/dist/fonts-BOQTTVX5.js +0 -39
  774. package/dist/forecast-5G5LMGHN.js +0 -121
  775. package/dist/forecast-QBXVLV7Q.js +0 -169
  776. package/dist/funding-XLY5LNY6.js +0 -85
  777. package/dist/funnel-O43PBVPI.js +0 -397
  778. package/dist/ga4-3JQDPZ27.js +0 -55
  779. package/dist/generate-FW5ZPZCC.js +0 -263
  780. package/dist/get-4N4F4F5P.js +0 -62
  781. package/dist/get-55JEQM4R.js +0 -59
  782. package/dist/get-5P4WESPY.js +0 -92
  783. package/dist/get-6VRSSUJJ.js +0 -38
  784. package/dist/get-DOZKX4LD.js +0 -74
  785. package/dist/get-MS7HTZBZ.js +0 -62
  786. package/dist/get-RTEW2UQK.js +0 -82
  787. package/dist/get-SZ3BKDS6.js +0 -56
  788. package/dist/gif-H2GKAG4C.js +0 -110
  789. package/dist/google-FJJ34DCE.js +0 -144
  790. package/dist/google-V74DJSG6.js +0 -3270
  791. package/dist/google-V74DJSG6.js.map +0 -1
  792. package/dist/google-ads-3TEGRLIY.js +0 -198
  793. package/dist/group-JNLMRIKV.js +0 -43
  794. package/dist/group-KEJHQXTJ.js +0 -43
  795. package/dist/gsc-N7ILDOX4.js +0 -30
  796. package/dist/history-IXKSY5DE.js +0 -69
  797. package/dist/history-SWBZK2YL.js +0 -102
  798. package/dist/history-ZWU3ZV2E.js +0 -153
  799. package/dist/hubspot-WIZRU3UE.js +0 -782
  800. package/dist/icon-V6VRNURZ.js +0 -137
  801. package/dist/ideas-CXDU7YCE.js +0 -45
  802. package/dist/images-PB6SWXTZ.js +0 -92
  803. package/dist/improve-JWQYC7AP.js +0 -86
  804. package/dist/ingest-7ZN46XK4.js +0 -123
  805. package/dist/ingest-GZ6EXNHT.js +0 -27
  806. package/dist/insights-BWZXYBZY.js +0 -658
  807. package/dist/insights-P7JG6Y2H.js +0 -132
  808. package/dist/inspect-BCKUHTRR.js +0 -192
  809. package/dist/inspiration-WGMKYSGM.js +0 -53
  810. package/dist/instant-experiences-B4HZ7KV4.js +0 -263
  811. package/dist/instant-experiences-B4HZ7KV4.js.map +0 -1
  812. package/dist/intent-EWNVDZKU.js +0 -95
  813. package/dist/job-FJRS3GVA.js +0 -202
  814. package/dist/job-create-MVXMKPXS.js +0 -109
  815. package/dist/job-status-O3GGFMAW.js +0 -74
  816. package/dist/keep-55NEIXH2.js +0 -78
  817. package/dist/keyword-gap-YUG6BVQI.js +0 -130
  818. package/dist/keyword-metrics-7VH4DGCR.js +0 -200
  819. package/dist/keywords-for-site-OIICFZI5.js +0 -131
  820. package/dist/knowledge-OM3GKZHU.js +0 -195
  821. package/dist/landing-T42TKOBK.js +0 -28
  822. package/dist/landings-JKO53RI4.js +0 -151
  823. package/dist/languages-TAFIWRI6.js +0 -40
  824. package/dist/languages-YU5YUGFN.js +0 -55
  825. package/dist/launches-SJTNJHZY.js +0 -19
  826. package/dist/layerize-HUELG4D3.js +0 -190
  827. package/dist/lead-routes-KLTGRS2S.js +0 -733
  828. package/dist/leads-LQT5KDYJ.js +0 -115
  829. package/dist/leads-YEM6VQAB.js +0 -540
  830. package/dist/leads-YEM6VQAB.js.map +0 -1
  831. package/dist/learn-UY5FNEQF.js +0 -207
  832. package/dist/library-2ZTAEY4Y.js +0 -211
  833. package/dist/lighthouse-FA4NNWNM.js +0 -75
  834. package/dist/line-item-writes-CQRO25FM.js +0 -211
  835. package/dist/line-items-56KP6W53.js +0 -107
  836. package/dist/link-CQNRSZ2Z.js +0 -67
  837. package/dist/linkedin-ICM5CNNS.js +0 -1330
  838. package/dist/linkedin-person-F74QX3WE.js +0 -139
  839. package/dist/list-5L74D5T5.js +0 -67
  840. package/dist/list-6PNILPKX.js +0 -76
  841. package/dist/list-FXMOUNMB.js +0 -93
  842. package/dist/list-GMEW776J.js +0 -154
  843. package/dist/list-O6KMSZUA.js +0 -57
  844. package/dist/list-OLBLGL5J.js +0 -65
  845. package/dist/list-TLKWSNZR.js +0 -51
  846. package/dist/list-TSM2LE2Q.js +0 -306
  847. package/dist/list-VQLA4C62.js +0 -50
  848. package/dist/locations-CPLAS65V.js +0 -69
  849. package/dist/locations-ONA23SAQ.js +0 -40
  850. package/dist/log-55GU4YPD.js +0 -95
  851. package/dist/logo-3YBVVQ4K.js +0 -18
  852. package/dist/lookup-Z3AA3ON4.js +0 -23
  853. package/dist/make-3LNSICDO.js +0 -1367
  854. package/dist/map-ARNZ3BY3.js +0 -436
  855. package/dist/mcp-PXKB5LQD.js +0 -729
  856. package/dist/media-3ON3VBC3.js +0 -18
  857. package/dist/media-SEC7SPHW.js +0 -89
  858. package/dist/media-sources-7EXSVEAE.js +0 -35
  859. package/dist/members-35KOCZHC.js +0 -47
  860. package/dist/meme-JL24ZEUF.js +0 -100
  861. package/dist/meta-W2YTPZE7.js +0 -122
  862. package/dist/metrics-WDFO5ESK.js +0 -152
  863. package/dist/models-UVJ7M7DP.js +0 -155
  864. package/dist/normalize-I7KCFLAK.js +0 -144
  865. package/dist/normalize-KXI3OOFS.js +0 -806
  866. package/dist/options-EYZEFVNI.js +0 -125
  867. package/dist/organization-KJPIZ66W.js +0 -949
  868. package/dist/output-LECDMH7S.js +0 -24
  869. package/dist/page-OUC6APBH.js +0 -105
  870. package/dist/page-photos-UULNPJL2.js +0 -118
  871. package/dist/pages-WBJTWSBH.js +0 -67
  872. package/dist/performance-4MEHG2H3.js +0 -27
  873. package/dist/performance-QZGRGTTY.js +0 -5565
  874. package/dist/pinterest-PXWEV5OM.js +0 -104
  875. package/dist/pixels-CBZQK7ME.js +0 -62
  876. package/dist/pixels-ZXBYDD64.js +0 -109
  877. package/dist/plan-QND22WEP.js +0 -208
  878. package/dist/posts-XZUV6SGX.js +0 -36
  879. package/dist/preview-KMEUO2CB.js +0 -218
  880. package/dist/profile-WXAGYNMQ.js +0 -159
  881. package/dist/promoted-tweet-writes-RKRDYXAF.js +0 -183
  882. package/dist/promoted-tweets-UTOGYF5N.js +0 -119
  883. package/dist/properties-Q7W4YPU6.js +0 -101
  884. package/dist/publish-4BXIE5GB.js +0 -344
  885. package/dist/query-H3VKUXUG.js +0 -236
  886. package/dist/query-ICQABM2L.js +0 -62
  887. package/dist/query-ZFU76BDS.js +0 -231
  888. package/dist/questionnaire-7AO5NN34.js +0 -94
  889. package/dist/read-RQ6B75BE.js +0 -141
  890. package/dist/reddit-CGDBA7SX.js +0 -29
  891. package/dist/refresh-L2HDEKPI.js +0 -97
  892. package/dist/refresh-LMGFOXE6.js +0 -42
  893. package/dist/release-DLUKLF5A.js +0 -63
  894. package/dist/relevant-pages-DTSXV6J2.js +0 -99
  895. package/dist/remove-GOLZDJ7V.js +0 -49
  896. package/dist/remove-VM3KCNGB.js +0 -53
  897. package/dist/reopen-HJBG23JS.js +0 -66
  898. package/dist/rerun-SYTG4PF6.js +0 -96
  899. package/dist/research-TW6Z74VO.js +0 -265
  900. package/dist/research-VHJI5A3Y.js +0 -75
  901. package/dist/reset-L2UK4NTV.js +0 -57
  902. package/dist/reset-RZFVT6EV.js +0 -57
  903. package/dist/resolve-2BBQKCP7.js +0 -124
  904. package/dist/retry-2QFOQQIC.js +0 -63
  905. package/dist/retry-YN7FECGJ.js +0 -65
  906. package/dist/retry-failed-NOCAPHDH.js +0 -45
  907. package/dist/revenue-Y3USV6E7.js +0 -91
  908. package/dist/rule-writes-DU55RVJE.js +0 -525
  909. package/dist/rule-writes-DU55RVJE.js.map +0 -1
  910. package/dist/rules-DQBFGPKC.js +0 -217
  911. package/dist/rules-S5H4CTN6.js +0 -99
  912. package/dist/rules-add-UZR5X7QG.js +0 -465
  913. package/dist/run-DPRASW62.js +0 -69
  914. package/dist/run-TBGBI522.js +0 -71
  915. package/dist/scaffold-ad-RCGPKWBQ.js +0 -1513
  916. package/dist/scaffold-static-ad-2GJOXOKA.js +0 -1011
  917. package/dist/scaffold-video-Y7X34F3N.js +0 -885
  918. package/dist/schedule-MMW63ZDZ.js +0 -67
  919. package/dist/schedule-VY75FPE3.js +0 -64
  920. package/dist/scheduled-agents-2ZSA5S3K.js +0 -55
  921. package/dist/schema-KIJGNKJA.js +0 -135
  922. package/dist/schema-LJTWPB45.js +0 -121
  923. package/dist/schema-LJTWPB45.js.map +0 -1
  924. package/dist/scrape-G6QIBY6U.js +0 -2241
  925. package/dist/screenshot-CMOGVSDO.js +0 -102
  926. package/dist/search-CSHJCL73.js +0 -228
  927. package/dist/search-DZGN5GDP.js +0 -51
  928. package/dist/search-EIIDSTTZ.js +0 -177
  929. package/dist/search-FY53LEQY.js +0 -26
  930. package/dist/search-S4YK5ACT.js +0 -92
  931. package/dist/search-XT22RJG2.js +0 -91
  932. package/dist/search-copy-32URULZJ.js +0 -168
  933. package/dist/seeds-XH2263HW.js +0 -101
  934. package/dist/select-HXFWS3YO.js +0 -110
  935. package/dist/sends-OKJS7WVX.js +0 -349
  936. package/dist/sequences-DOITIST4.js +0 -146
  937. package/dist/set-prompt-QPIXPF4Q.js +0 -199
  938. package/dist/setup-links-7XH4QW57.js +0 -144
  939. package/dist/shared-5EPTXTGW.js +0 -32
  940. package/dist/shopify-MNHCP5JX.js +0 -3980
  941. package/dist/site-JH5HWJ7P.js +0 -180
  942. package/dist/sitemaps-NSOO5DBU.js +0 -77
  943. package/dist/sites-VJDFYXP4.js +0 -97
  944. package/dist/skills-RFKWA74T.js +0 -47
  945. package/dist/sources-QZNISAXZ.js +0 -30
  946. package/dist/sources-X6R7OCG2.js +0 -457
  947. package/dist/stale-BVP4XBGS.js +0 -90
  948. package/dist/stats-IYESUTZB.js +0 -34
  949. package/dist/status-4DXPN6EW.js +0 -65
  950. package/dist/sticker-C7O2K75Q.js +0 -102
  951. package/dist/stock-YA27CW4K.js +0 -187
  952. package/dist/studies-OSYBQE7W.js +0 -250
  953. package/dist/studio-V3HINEVU.js +0 -49
  954. package/dist/study-writes-UA2CDAUF.js +0 -470
  955. package/dist/study-writes-UA2CDAUF.js.map +0 -1
  956. package/dist/suggest-BLYWQV4H.js +0 -66
  957. package/dist/sync-BP2NL7BA.js +0 -57
  958. package/dist/sync-KXOJMM2K.js +0 -279
  959. package/dist/sync-WGZ4522U.js +0 -55
  960. package/dist/sync-definition-SAOKH7RQ.js +0 -70
  961. package/dist/tag-MKWBX22O.js +0 -57
  962. package/dist/tag-manager-AKW4EG4W.js +0 -43
  963. package/dist/tags-DV3IVJBS.js +0 -23
  964. package/dist/tags-N54OQ55M.js +0 -23
  965. package/dist/tags-QAL6XAHS.js +0 -26
  966. package/dist/tags-RMPC3Q5E.js +0 -23
  967. package/dist/tags-TSEVQAKY.js +0 -227
  968. package/dist/targeting-VOZUDYFI.js +0 -762
  969. package/dist/targeting-constants-7YWLK6KM.js +0 -118
  970. package/dist/targeting-criteria-OUN7VYFP.js +0 -113
  971. package/dist/targets-SUDKTBLH.js +0 -106
  972. package/dist/terms-AY5LECWX.js +0 -102
  973. package/dist/testimonials-JMKFBJYD.js +0 -32
  974. package/dist/themes-WJ35YEXI.js +0 -95
  975. package/dist/top-companies-ESGGS2SE.js +0 -111
  976. package/dist/transcript-YXTBCJ67.js +0 -165
  977. package/dist/translate-W6AMHQWO.js +0 -603
  978. package/dist/triggers-YZTGKFBI.js +0 -144
  979. package/dist/tweets-B6EWPDYI.js +0 -123
  980. package/dist/unfollow-ACQTL2GW.js +0 -46
  981. package/dist/unlink-FEKMX5Q7.js +0 -70
  982. package/dist/unstage-MWAG2SLK.js +0 -96
  983. package/dist/unstage-PIO6RJLT.js +0 -88
  984. package/dist/update-3PFWIMEI.js +0 -192
  985. package/dist/update-4ANTGEPT.js +0 -81
  986. package/dist/update-HCJC2OG4.js +0 -101
  987. package/dist/update-IHWWJFD5.js +0 -66
  988. package/dist/update-NGLID7LC.js +0 -155
  989. package/dist/upload-JMXCQDCA.js +0 -130
  990. package/dist/upload-JYLLFY3P.js +0 -150
  991. package/dist/upscale-FZQ5P2UR.js +0 -109
  992. package/dist/url-options-BWNHNIAK.js +0 -131
  993. package/dist/url-params-4ROYWFVV.js +0 -101
  994. package/dist/use-SMS2UK32.js +0 -111
  995. package/dist/validate-P4RRB3QA.js +0 -125
  996. package/dist/variant-2PJH7U2M.js +0 -338
  997. package/dist/videos-RRXYBR52.js +0 -41
  998. package/dist/view-AJ7ROYFP.js +0 -133
  999. package/dist/viewer-check-PD6UQ63S.js +0 -83
  1000. package/dist/web-5SWHU5KW.js +0 -173
  1001. package/dist/winners-FJXS3LGU.js +0 -113
  1002. package/dist/winning-ads-HH3WI5KB.js +0 -86
  1003. package/dist/write-commands-EOIXXSVY.js +0 -1172
  1004. package/dist/write-commands-EOIXXSVY.js.map +0 -1
  1005. package/dist/write-commands-GBMVUFZU.js +0 -1525
  1006. package/dist/write-commands-GBMVUFZU.js.map +0 -1
  1007. package/dist/write-commands-GQP24VMR.js +0 -713
  1008. package/dist/write-commands-GQP24VMR.js.map +0 -1
  1009. package/dist/write-commands-HY2OKPWW.js +0 -206
  1010. package/dist/x-6VIOYUKX.js +0 -47
  1011. /package/dist/{account-7YEN7D6B.js.map → account-NSRT5KE6.js.map} +0 -0
  1012. /package/dist/{account-RXX6HCCL.js.map → account-OXD426YD.js.map} +0 -0
  1013. /package/dist/{account-2EUMSJ6E.js.map → account-XIC5TTV3.js.map} +0 -0
  1014. /package/dist/{account-assets-HX7OYWZA.js.map → account-assets-V7KSSTVP.js.map} +0 -0
  1015. /package/dist/{account-level-I5BKCGP5.js.map → account-level-2KLG6HTG.js.map} +0 -0
  1016. /package/dist/{account-reads-7FUCOWBE.js.map → account-reads-ZPZUCB3P.js.map} +0 -0
  1017. /package/dist/{account-users-Z5RFUBXP.js.map → account-users-XTUKRDWK.js.map} +0 -0
  1018. /package/dist/{account-writes-TG3XVEPD.js.map → account-writes-VRRLT356.js.map} +0 -0
  1019. /package/dist/{accounts-MFCQIHYM.js.map → accounts-25JL77F7.js.map} +0 -0
  1020. /package/dist/{accounts-AC7ZBCS2.js.map → accounts-45MUDNOM.js.map} +0 -0
  1021. /package/dist/{accounts-MMIWLNGB.js.map → accounts-AF72N4NV.js.map} +0 -0
  1022. /package/dist/{accounts-WYFUDH2V.js.map → accounts-HJAQTVDA.js.map} +0 -0
  1023. /package/dist/{accounts-I4EXOKR7.js.map → accounts-KQ7NCM4L.js.map} +0 -0
  1024. /package/dist/{actions-QIKHRNJX.js.map → actions-IJO4JW7J.js.map} +0 -0
  1025. /package/dist/{active-entities-AEXKE2EN.js.map → active-entities-3266UJYN.js.map} +0 -0
  1026. /package/dist/{activecampaign-RQJ7PQPM.js.map → activecampaign-PBTUMTO5.js.map} +0 -0
  1027. /package/dist/{activities-N5BD57MF.js.map → activities-ORMACIG2.js.map} +0 -0
  1028. /package/dist/{ad-group-writes-OLQM2VNX.js.map → ad-group-writes-Y6CCMPCM.js.map} +0 -0
  1029. /package/dist/{ad-groups-ENLD7CU4.js.map → ad-groups-TW2UKDVU.js.map} +0 -0
  1030. /package/dist/{ad-writes-FF6PT3R5.js.map → ad-writes-J3UVUH7D.js.map} +0 -0
  1031. /package/dist/{add-4NK4DIER.js.map → add-CKJXQUVI.js.map} +0 -0
  1032. /package/dist/{add-3JWLLGUJ.js.map → add-CSRB6GVJ.js.map} +0 -0
  1033. /package/dist/{add-AO3F6EJY.js.map → add-KHQXXHC5.js.map} +0 -0
  1034. /package/dist/{add-NQUHPVZ5.js.map → add-NJUG3IQ2.js.map} +0 -0
  1035. /package/dist/{add-4JUXMRNA.js.map → add-XYSUKZSU.js.map} +0 -0
  1036. /package/dist/{add-QYLIXGQT.js.map → add-YQPFRDVM.js.map} +0 -0
  1037. /package/dist/{add-accounts-XCYWXGO3.js.map → add-accounts-IRHBFNNC.js.map} +0 -0
  1038. /package/dist/{ads-H6TOLQKA.js.map → ads-5CJQRTUN.js.map} +0 -0
  1039. /package/dist/{ads-XEAMDEZW.js.map → ads-DI3J3KCQ.js.map} +0 -0
  1040. /package/dist/{ads-JNXLC3PU.js.map → ads-EVQ37EV3.js.map} +0 -0
  1041. /package/dist/{ads-MXH4DNG2.js.map → ads-O5PUYU7H.js.map} +0 -0
  1042. /package/dist/{adsets-W5JSNW4Q.js.map → adsets-4IW5TRAK.js.map} +0 -0
  1043. /package/dist/{advertisers-IAXF43LX.js.map → advertisers-5XCIZ7WS.js.map} +0 -0
  1044. /package/dist/{advertisers-7KCF3ODT.js.map → advertisers-JNOWSZZC.js.map} +0 -0
  1045. /package/dist/{analytics-5SPL5E7Q.js.map → analytics-CZMCM7XC.js.map} +0 -0
  1046. /package/dist/{analytics-3AMSN535.js.map → analytics-K5FCQLI5.js.map} +0 -0
  1047. /package/dist/{animate-WXSSXUTY.js.map → animate-C6BRMRRD.js.map} +0 -0
  1048. /package/dist/{approved-HDDHLECJ.js.map → approved-RP5ADN7E.js.map} +0 -0
  1049. /package/dist/{asset-writes-VYGJRLEA.js.map → asset-writes-RF6XTWLY.js.map} +0 -0
  1050. /package/dist/{assign-D3XCS6PD.js.map → assign-WXZNXVJH.js.map} +0 -0
  1051. /package/dist/{audience-size-SQRAXCQD.js.map → audience-size-ZCWH4CFC.js.map} +0 -0
  1052. /package/dist/{audience-writes-YMCOA47Z.js.map → audience-writes-5KT6FHUY.js.map} +0 -0
  1053. /package/dist/{audiences-XUY2Y6OH.js.map → audiences-4MYDTY74.js.map} +0 -0
  1054. /package/dist/{audiences-VKU7E4LI.js.map → audiences-5TOTVZMK.js.map} +0 -0
  1055. /package/dist/{audiences-Y4UIPHB7.js.map → audiences-ZDOK3OYC.js.map} +0 -0
  1056. /package/dist/{audit-DVIKUMSU.js.map → audit-RBRXPPKK.js.map} +0 -0
  1057. /package/dist/{audit-HWA6SOH3.js.map → audit-SACXTAIP.js.map} +0 -0
  1058. /package/dist/{autocomplete-FJNOPOVG.js.map → autocomplete-P5OU7QVL.js.map} +0 -0
  1059. /package/dist/{avatars-VMJE6IL4.js.map → avatars-UHBA2BQ3.js.map} +0 -0
  1060. /package/dist/{bid-pricing-HFPRGFPN.js.map → bid-pricing-LHNYSDG4.js.map} +0 -0
  1061. /package/dist/{brand-NJI7MUWN.js.map → brand-7WL3O74X.js.map} +0 -0
  1062. /package/dist/{brief-LHQJCJOK.js.map → brief-HWZU75WP.js.map} +0 -0
  1063. /package/dist/{businesses-DEKE2CRX.js.map → businesses-F6PN34WK.js.map} +0 -0
  1064. /package/dist/{campaign-groups-QPTKMJBU.js.map → campaign-groups-BYS3GNEP.js.map} +0 -0
  1065. /package/dist/{campaign-writes-3NFFDIFM.js.map → campaign-writes-BHS3POAH.js.map} +0 -0
  1066. /package/dist/{campaign-writes-YSFLDOPH.js.map → campaign-writes-N6OHAK6V.js.map} +0 -0
  1067. /package/dist/{campaigns-P6WHQMG3.js.map → campaigns-2E4AQBFB.js.map} +0 -0
  1068. /package/dist/{campaigns-KXQDUFVX.js.map → campaigns-3U5IRXSV.js.map} +0 -0
  1069. /package/dist/{campaigns-4KDJBCA7.js.map → campaigns-IRMLPW6N.js.map} +0 -0
  1070. /package/dist/{campaigns-AI2ZHOK6.js.map → campaigns-QLKGN4FB.js.map} +0 -0
  1071. /package/dist/{canvas-CDMROW44.js.map → canvas-GGHJ26ZM.js.map} +0 -0
  1072. /package/dist/{capabilities-B24L6H6H.js.map → capabilities-TKEEHR7K.js.map} +0 -0
  1073. /package/dist/{cards-UCEENP55.js.map → cards-HUXBNMEM.js.map} +0 -0
  1074. /package/dist/{catalog-FBJC7XUE.js.map → catalog-7KQN43HS.js.map} +0 -0
  1075. /package/dist/{catalogs-2CCZQAS3.js.map → catalogs-WYRRTRCM.js.map} +0 -0
  1076. /package/dist/{changes-TTQCZMYX.js.map → changes-OIVPZJHE.js.map} +0 -0
  1077. /package/dist/{chatgpt-D7MUGYE5.js.map → chatgpt-RQQWU7AP.js.map} +0 -0
  1078. /package/dist/{chats-AI4NH34F.js.map → chats-PBXYH2LT.js.map} +0 -0
  1079. /package/dist/{check-L2BVFQU6.js.map → check-SVYI72DF.js.map} +0 -0
  1080. /package/dist/{chunk-RKNSYZX3.js.map → chunk-2RL2T5JO.js.map} +0 -0
  1081. /package/dist/{chunk-QWRZIHFS.js.map → chunk-3HLQZTQ3.js.map} +0 -0
  1082. /package/dist/{chunk-4HHIW7PR.js.map → chunk-3J52GJAY.js.map} +0 -0
  1083. /package/dist/{chunk-RQA2NP4Y.js.map → chunk-42JTSTQ3.js.map} +0 -0
  1084. /package/dist/{chunk-O4OPH3ZE.js.map → chunk-45D6WRCJ.js.map} +0 -0
  1085. /package/dist/{chunk-ZPO3NAJY.js.map → chunk-4AEAL63J.js.map} +0 -0
  1086. /package/dist/{chunk-NNSDAAPZ.js.map → chunk-4H6XLX7E.js.map} +0 -0
  1087. /package/dist/{chunk-PA5PS5KO.js.map → chunk-4ULGRGBG.js.map} +0 -0
  1088. /package/dist/{chunk-KMQKTZ47.js.map → chunk-4XMPL3RU.js.map} +0 -0
  1089. /package/dist/{chunk-OX5OAT7L.js.map → chunk-5AOTCCTT.js.map} +0 -0
  1090. /package/dist/{chunk-KXVJJQG6.js.map → chunk-5G6R3WYN.js.map} +0 -0
  1091. /package/dist/{chunk-JTHOGRB6.js.map → chunk-5HPKYRTE.js.map} +0 -0
  1092. /package/dist/{chunk-Z5AO4Y6W.js.map → chunk-5NLUTJCQ.js.map} +0 -0
  1093. /package/dist/{chunk-GUEFMO3G.js.map → chunk-6FWVRXDW.js.map} +0 -0
  1094. /package/dist/{chunk-MPNYIGO7.js.map → chunk-6HPTF5YS.js.map} +0 -0
  1095. /package/dist/{chunk-V2FZ4QNC.js.map → chunk-6KEVNO5O.js.map} +0 -0
  1096. /package/dist/{chunk-JGAF356Q.js.map → chunk-6QINKM6T.js.map} +0 -0
  1097. /package/dist/{chunk-MBJHRRDS.js.map → chunk-73MLPGI2.js.map} +0 -0
  1098. /package/dist/{chunk-WBZXRHL7.js.map → chunk-7OVPQX4X.js.map} +0 -0
  1099. /package/dist/{chunk-43ECPEJT.js.map → chunk-7SNNQCDD.js.map} +0 -0
  1100. /package/dist/{chunk-O3HSNUTL.js.map → chunk-B5UVOCYA.js.map} +0 -0
  1101. /package/dist/{chunk-OPWDBSU4.js.map → chunk-BRNZMKO4.js.map} +0 -0
  1102. /package/dist/{chunk-OQ53NO5K.js.map → chunk-BU7W7MKF.js.map} +0 -0
  1103. /package/dist/{chunk-3I62TYHW.js.map → chunk-CJFCQMUY.js.map} +0 -0
  1104. /package/dist/{chunk-QYOEFBWO.js.map → chunk-CQMAR4BH.js.map} +0 -0
  1105. /package/dist/{chunk-W2OX5K3G.js.map → chunk-CXYX6G3I.js.map} +0 -0
  1106. /package/dist/{chunk-OMOHRYZ3.js.map → chunk-CZESYOCC.js.map} +0 -0
  1107. /package/dist/{chunk-Y5IMWZZN.js.map → chunk-D6VQPBVM.js.map} +0 -0
  1108. /package/dist/{chunk-TV67FGUQ.js.map → chunk-D7FJ5KHG.js.map} +0 -0
  1109. /package/dist/{chunk-Y7KAVULE.js.map → chunk-DEZBCK5P.js.map} +0 -0
  1110. /package/dist/{chunk-DZLPWNR4.js.map → chunk-DK66PUXL.js.map} +0 -0
  1111. /package/dist/{chunk-EZ6GOPHI.js.map → chunk-DLM5OSHM.js.map} +0 -0
  1112. /package/dist/{chunk-CTX4RST4.js.map → chunk-DNH2ZPZP.js.map} +0 -0
  1113. /package/dist/{chunk-UMLSSKXS.js.map → chunk-DWSSQBLO.js.map} +0 -0
  1114. /package/dist/{chunk-YUA6VVET.js.map → chunk-E56V3RFO.js.map} +0 -0
  1115. /package/dist/{chunk-SW5ONXMD.js.map → chunk-EHNORFUW.js.map} +0 -0
  1116. /package/dist/{chunk-EFDL5R3O.js.map → chunk-ESXUIV6V.js.map} +0 -0
  1117. /package/dist/{chunk-XLYLRUFX.js.map → chunk-FAV6GUOZ.js.map} +0 -0
  1118. /package/dist/{chunk-SF3GHRMB.js.map → chunk-FHN4QXZN.js.map} +0 -0
  1119. /package/dist/{chunk-UOWWM3YF.js.map → chunk-FSEFZZ2T.js.map} +0 -0
  1120. /package/dist/{chunk-H3KQKEQH.js.map → chunk-G4JTXVLA.js.map} +0 -0
  1121. /package/dist/{chunk-DF7IGB3K.js.map → chunk-G6U45QD3.js.map} +0 -0
  1122. /package/dist/{chunk-3A7BDDXS.js.map → chunk-GAP7SOGA.js.map} +0 -0
  1123. /package/dist/{chunk-OQ7CLFEL.js.map → chunk-GFWWHCBF.js.map} +0 -0
  1124. /package/dist/{chunk-T764KNWP.js.map → chunk-GO6ISZUZ.js.map} +0 -0
  1125. /package/dist/{chunk-V4GSW4NH.js.map → chunk-GWLP45WQ.js.map} +0 -0
  1126. /package/dist/{chunk-NNQCVHVJ.js.map → chunk-H3HA22Z3.js.map} +0 -0
  1127. /package/dist/{chunk-V3O7ZSQD.js.map → chunk-H6GTG665.js.map} +0 -0
  1128. /package/dist/{chunk-FBTQGEUE.js.map → chunk-I4BQTVMY.js.map} +0 -0
  1129. /package/dist/{chunk-A2EZCLLG.js.map → chunk-IAZKXDWV.js.map} +0 -0
  1130. /package/dist/{chunk-RFVEHOOC.js.map → chunk-IBBGABK2.js.map} +0 -0
  1131. /package/dist/{chunk-5HLAN4U2.js.map → chunk-IC4MREQH.js.map} +0 -0
  1132. /package/dist/{chunk-GJKEGZJB.js.map → chunk-IIK4WNWV.js.map} +0 -0
  1133. /package/dist/{chunk-X45ABI5E.js.map → chunk-IZROFBH7.js.map} +0 -0
  1134. /package/dist/{chunk-TMYLRI3S.js.map → chunk-J5UTL4HE.js.map} +0 -0
  1135. /package/dist/{chunk-CRORJLBL.js.map → chunk-JBMZVC5D.js.map} +0 -0
  1136. /package/dist/{chunk-S3TBE37M.js.map → chunk-JXTNP3B5.js.map} +0 -0
  1137. /package/dist/{chunk-FKWXVASL.js.map → chunk-LBJ2CLRT.js.map} +0 -0
  1138. /package/dist/{chunk-U73TWJRK.js.map → chunk-LFELUKCA.js.map} +0 -0
  1139. /package/dist/{chunk-BXTSQUBI.js.map → chunk-LK5OKVCM.js.map} +0 -0
  1140. /package/dist/{chunk-ZSZGKMOK.js.map → chunk-LMOZWB4G.js.map} +0 -0
  1141. /package/dist/{chunk-YYQQPDVY.js.map → chunk-N5AIO23H.js.map} +0 -0
  1142. /package/dist/{chunk-GUPOLYU5.js.map → chunk-NE3OMP7R.js.map} +0 -0
  1143. /package/dist/{chunk-TDTFJZAC.js.map → chunk-NO52OH3Y.js.map} +0 -0
  1144. /package/dist/{chunk-72K4LY24.js.map → chunk-NZYWKZ3Q.js.map} +0 -0
  1145. /package/dist/{chunk-BUKBQPDY.js.map → chunk-OIORUNKH.js.map} +0 -0
  1146. /package/dist/{chunk-XGEJTRNF.js.map → chunk-OKXLOLEV.js.map} +0 -0
  1147. /package/dist/{chunk-XR6FJ272.js.map → chunk-OVC2PIOP.js.map} +0 -0
  1148. /package/dist/{chunk-SFDDNAFB.js.map → chunk-P5HG6WDH.js.map} +0 -0
  1149. /package/dist/{chunk-J5RABWAF.js.map → chunk-PGAYESXE.js.map} +0 -0
  1150. /package/dist/{chunk-YIQ7PMJG.js.map → chunk-PQ7RLE43.js.map} +0 -0
  1151. /package/dist/{chunk-353QTP3X.js.map → chunk-QFODAMYR.js.map} +0 -0
  1152. /package/dist/{chunk-26ALFAKU.js.map → chunk-QFVZIQRQ.js.map} +0 -0
  1153. /package/dist/{chunk-7SYPFWCW.js.map → chunk-QI5UKQX3.js.map} +0 -0
  1154. /package/dist/{chunk-MGHPM72R.js.map → chunk-QY7EK6Q4.js.map} +0 -0
  1155. /package/dist/{chunk-7KJ24KFI.js.map → chunk-QYH2UZAK.js.map} +0 -0
  1156. /package/dist/{chunk-3XWQ4ZS5.js.map → chunk-RHNNFCRY.js.map} +0 -0
  1157. /package/dist/{chunk-P4TA3B4C.js.map → chunk-RIVHJC6L.js.map} +0 -0
  1158. /package/dist/{chunk-KDTF2SN6.js.map → chunk-RJQT7QXX.js.map} +0 -0
  1159. /package/dist/{chunk-PF3SQX7Z.js.map → chunk-RMZLB4AH.js.map} +0 -0
  1160. /package/dist/{chunk-46P74AFU.js.map → chunk-S4NMWYHW.js.map} +0 -0
  1161. /package/dist/{chunk-Z5KZ5BV3.js.map → chunk-SFQFUQDW.js.map} +0 -0
  1162. /package/dist/{chunk-PFNUAV22.js.map → chunk-SNSLYZIT.js.map} +0 -0
  1163. /package/dist/{chunk-ZR5H5CZI.js.map → chunk-SP3MHBME.js.map} +0 -0
  1164. /package/dist/{chunk-MPQ5HUAO.js.map → chunk-TGT4XHLX.js.map} +0 -0
  1165. /package/dist/{chunk-LFSSOKDJ.js.map → chunk-TLNYAZX5.js.map} +0 -0
  1166. /package/dist/{chunk-KQEDNZ7K.js.map → chunk-UGRL642V.js.map} +0 -0
  1167. /package/dist/{chunk-2YYOFA2A.js.map → chunk-UKZKLXTE.js.map} +0 -0
  1168. /package/dist/{chunk-YYK4CXLY.js.map → chunk-VAQOSV3I.js.map} +0 -0
  1169. /package/dist/{chunk-TFEPULZS.js.map → chunk-VIRPAJEF.js.map} +0 -0
  1170. /package/dist/{chunk-IWNQRZHT.js.map → chunk-VX6GTRT3.js.map} +0 -0
  1171. /package/dist/{chunk-542AB7CV.js.map → chunk-WR5Y64OE.js.map} +0 -0
  1172. /package/dist/{chunk-S6ZLKSQJ.js.map → chunk-X3YYZLBH.js.map} +0 -0
  1173. /package/dist/{chunk-3XJM5HX6.js.map → chunk-XB4NKZAQ.js.map} +0 -0
  1174. /package/dist/{chunk-H7FWXSSR.js.map → chunk-XSBX3LJP.js.map} +0 -0
  1175. /package/dist/{chunk-OOGGID5L.js.map → chunk-XXBP73RV.js.map} +0 -0
  1176. /package/dist/{chunk-DNZILIEW.js.map → chunk-XZMO52BP.js.map} +0 -0
  1177. /package/dist/{chunk-6VVSAVMC.js.map → chunk-Y3SK6EMU.js.map} +0 -0
  1178. /package/dist/{chunk-VGEW4R4Y.js.map → chunk-Y4ZBNZBU.js.map} +0 -0
  1179. /package/dist/{chunk-ZR3BISO2.js.map → chunk-YCAJCVW4.js.map} +0 -0
  1180. /package/dist/{chunk-YKXSJGMA.js.map → chunk-ZANXEMON.js.map} +0 -0
  1181. /package/dist/{chunk-CECKSPNC.js.map → chunk-ZSZ76MUL.js.map} +0 -0
  1182. /package/dist/{chunk-23LJR6WD.js.map → chunk-ZU6JW3ZB.js.map} +0 -0
  1183. /package/dist/{chunk-UOYVUUTX.js.map → chunk-ZW2CN6L6.js.map} +0 -0
  1184. /package/dist/{cite-KDF6WQXE.js.map → cite-TRNZYG4W.js.map} +0 -0
  1185. /package/dist/{claim-BKJBLN7A.js.map → claim-Q76T3MYA.js.map} +0 -0
  1186. /package/dist/{client-MRXMPXJE.js.map → client-45COYUUH.js.map} +0 -0
  1187. /package/dist/{code-XZWB4INH.js.map → code-K4YTLOPA.js.map} +0 -0
  1188. /package/dist/{companies-6IQS5YAR.js.map → companies-MLWRWQ73.js.map} +0 -0
  1189. /package/dist/{company-WT4Q52W6.js.map → company-X5Z67PMK.js.map} +0 -0
  1190. /package/dist/{complete-TTL4GXUZ.js.map → complete-3CFP6XVY.js.map} +0 -0
  1191. /package/dist/{config-ZXODU47A.js.map → config-TCAHWE6T.js.map} +0 -0
  1192. /package/dist/{connect-G6RW4GPI.js.map → connect-QXFAB4RJ.js.map} +0 -0
  1193. /package/dist/{content-3SZYVF56.js.map → content-MKJP7T7L.js.map} +0 -0
  1194. /package/dist/{conversation-QDMNXK5P.js.map → conversation-C6K6IZTH.js.map} +0 -0
  1195. /package/dist/{conversion-report-EIZEII3H.js.map → conversion-report-OFV4EKTA.js.map} +0 -0
  1196. /package/dist/{conversion-upload-command-BYYYQXY5.js.map → conversion-upload-command-D7S5HF22.js.map} +0 -0
  1197. /package/dist/{conversion-writes-3N2J25ZN.js.map → conversion-writes-B3H6VLA2.js.map} +0 -0
  1198. /package/dist/{conversions-DPKOO7H5.js.map → conversions-4ILDIG3K.js.map} +0 -0
  1199. /package/dist/{conversions-3DNIEYY2.js.map → conversions-CRL327RY.js.map} +0 -0
  1200. /package/dist/{copy-writes-OFXLTBQN.js.map → copy-writes-FYXKHJDB.js.map} +0 -0
  1201. /package/dist/{countries-JM54BJXV.js.map → countries-6ST54UGJ.js.map} +0 -0
  1202. /package/dist/{create-OXBIHL72.js.map → create-LDQ3YHET.js.map} +0 -0
  1203. /package/dist/{create-ZM3I3NSN.js.map → create-TKOG7DNJ.js.map} +0 -0
  1204. /package/dist/{create-64UE6JVK.js.map → create-WFMJOZLO.js.map} +0 -0
  1205. /package/dist/{create-NKMOQC7A.js.map → create-WQNT345R.js.map} +0 -0
  1206. /package/dist/{creatives-J6MZKMCX.js.map → creatives-45SJAD3G.js.map} +0 -0
  1207. /package/dist/{creatives-XRLYZ2ME.js.map → creatives-E4CTMZJJ.js.map} +0 -0
  1208. /package/dist/{creatives-63O6HUXF.js.map → creatives-Q4OXNCTT.js.map} +0 -0
  1209. /package/dist/{credentials-FC36D37N.js.map → credentials-E2AIMWKX.js.map} +0 -0
  1210. /package/dist/{critique-AC7EPDQA.js.map → critique-EWV3O3TD.js.map} +0 -0
  1211. /package/dist/{critique-RHN32S7D.js.map → critique-JVT6X2T3.js.map} +0 -0
  1212. /package/dist/{crm-NFDEK2GT.js.map → crm-NQH5FTK6.js.map} +0 -0
  1213. /package/dist/{crm-NQ4FDJ7E.js.map → crm-YGQKK76D.js.map} +0 -0
  1214. /package/dist/{crop-B2CACBC4.js.map → crop-KV24WHOR.js.map} +0 -0
  1215. /package/dist/{currency-XRGG5OKI.js.map → currency-B5T7TYKD.js.map} +0 -0
  1216. /package/dist/{custom-conversions-R3ROXHYL.js.map → custom-conversions-EJNX4MCK.js.map} +0 -0
  1217. /package/dist/{customers-TNVCX27L.js.map → customers-YFEPJF4G.js.map} +0 -0
  1218. /package/dist/{decide-MDNIHSQG.js.map → decide-JZXG6LZR.js.map} +0 -0
  1219. /package/dist/{delete-DTHXGG5F.js.map → delete-2UJVTHRE.js.map} +0 -0
  1220. /package/dist/{delete-ZKKB553W.js.map → delete-7QAJSOCO.js.map} +0 -0
  1221. /package/dist/{delete-RSZU4I76.js.map → delete-O4RO2HMR.js.map} +0 -0
  1222. /package/dist/{delete-LGUXPTBC.js.map → delete-POHL3TKX.js.map} +0 -0
  1223. /package/dist/{delete-VXYTITXA.js.map → delete-Q7J734W2.js.map} +0 -0
  1224. /package/dist/{delete-F43G4Z3D.js.map → delete-XWD37C4T.js.map} +0 -0
  1225. /package/dist/{demographics-2UXLA4GW.js.map → demographics-YWBHAMZ5.js.map} +0 -0
  1226. /package/dist/{describe-QTAOAQM4.js.map → describe-MA54W67X.js.map} +0 -0
  1227. /package/dist/{describe-CH3IFPOT.js.map → describe-MJ5SOVWY.js.map} +0 -0
  1228. /package/dist/{dimensions-5E3AN6A7.js.map → dimensions-YXOXHOXW.js.map} +0 -0
  1229. /package/dist/{discard-E7AD6IVJ.js.map → discard-YX4XUXG3.js.map} +0 -0
  1230. /package/dist/{discover-ELMDMJRX.js.map → discover-PPMLFJMU.js.map} +0 -0
  1231. /package/dist/{discover-SRXLIPGU.js.map → discover-SS3PO5Y6.js.map} +0 -0
  1232. /package/dist/{domain-B6GYZ6BX.js.map → domain-5R6CYVFY.js.map} +0 -0
  1233. /package/dist/{download-FS5WHNFA.js.map → download-D2O4RYJ3.js.map} +0 -0
  1234. /package/dist/{download-XOABASZF.js.map → download-SYWQXF57.js.map} +0 -0
  1235. /package/dist/{draft-ICHAAUVH.js.map → draft-2NKXOBT6.js.map} +0 -0
  1236. /package/dist/{draft-XBD3UC64.js.map → draft-3MPADYS4.js.map} +0 -0
  1237. /package/dist/{draft-7VI5GTEY.js.map → draft-AAEGEQZZ.js.map} +0 -0
  1238. /package/dist/{draft-PFW24WXM.js.map → draft-CRDQR5I3.js.map} +0 -0
  1239. /package/dist/{draft-4KW5SRI2.js.map → draft-I63QQ7LY.js.map} +0 -0
  1240. /package/dist/{draft-EWR2ADNX.js.map → draft-PO5X4UVA.js.map} +0 -0
  1241. /package/dist/{draft-MSWSLIY2.js.map → draft-QCKJT7XQ.js.map} +0 -0
  1242. /package/dist/{draft-F26LGHM5.js.map → draft-VMLXZQQX.js.map} +0 -0
  1243. /package/dist/{env-BNQON23N.js.map → env-2RHPS2VF.js.map} +0 -0
  1244. /package/dist/{experiment-SNC6RCF3.js.map → experiment-3NDXGQK6.js.map} +0 -0
  1245. /package/dist/{experiments-E6NXWJ7X.js.map → experiments-DYNNWQRB.js.map} +0 -0
  1246. /package/dist/{export-6O62J5I2.js.map → export-6WWVO4O6.js.map} +0 -0
  1247. /package/dist/{extract-D2WSRIKY.js.map → extract-DWDZI35Y.js.map} +0 -0
  1248. /package/dist/{facets-R5U2G3R2.js.map → facets-Y2IEM37E.js.map} +0 -0
  1249. /package/dist/{favorites-GGJGLED7.js.map → favorites-54Z7PTYR.js.map} +0 -0
  1250. /package/dist/{feed-FN3BLYD2.js.map → feed-TAGQWMRK.js.map} +0 -0
  1251. /package/dist/{feedback-QQRAOFJN.js.map → feedback-HJRVTU6C.js.map} +0 -0
  1252. /package/dist/{feedback-LPFQ567L.js.map → feedback-IVSLM5PN.js.map} +0 -0
  1253. /package/dist/{feedback-record-OCKDPXGM.js.map → feedback-record-P7CO3IGE.js.map} +0 -0
  1254. /package/dist/{fetch-ET734X4Q.js.map → fetch-KB64NPDF.js.map} +0 -0
  1255. /package/dist/{fetch-I5VVAVLY.js.map → fetch-V2U5VUQZ.js.map} +0 -0
  1256. /package/dist/{find-XS42XIYQ.js.map → find-UB4JSORZ.js.map} +0 -0
  1257. /package/dist/{fit-C7SYZA65.js.map → fit-JDG6E46O.js.map} +0 -0
  1258. /package/dist/{flows-I5G5ICEQ.js.map → flows-DP574PEX.js.map} +0 -0
  1259. /package/dist/{follow-7O37OI4Q.js.map → follow-SX6BV6VZ.js.map} +0 -0
  1260. /package/dist/{follow-competitors-XLLDO72Q.js.map → follow-competitors-UBJJHX36.js.map} +0 -0
  1261. /package/dist/{following-VLSMUMOM.js.map → following-L7WUEMZ2.js.map} +0 -0
  1262. /package/dist/{fonts-BOQTTVX5.js.map → fonts-RMROS3LX.js.map} +0 -0
  1263. /package/dist/{forecast-QBXVLV7Q.js.map → forecast-AAHHVTBK.js.map} +0 -0
  1264. /package/dist/{forecast-5G5LMGHN.js.map → forecast-BRXNGMGD.js.map} +0 -0
  1265. /package/dist/{funding-XLY5LNY6.js.map → funding-7M4TJ3MW.js.map} +0 -0
  1266. /package/dist/{funnel-O43PBVPI.js.map → funnel-FQX3DOE7.js.map} +0 -0
  1267. /package/dist/{ga4-3JQDPZ27.js.map → ga4-A3HLGTSI.js.map} +0 -0
  1268. /package/dist/{generate-FW5ZPZCC.js.map → generate-SYOQE3F7.js.map} +0 -0
  1269. /package/dist/{get-4N4F4F5P.js.map → get-4NDYA3G6.js.map} +0 -0
  1270. /package/dist/{get-RTEW2UQK.js.map → get-HMTI2IR6.js.map} +0 -0
  1271. /package/dist/{get-55JEQM4R.js.map → get-JIB6PMGI.js.map} +0 -0
  1272. /package/dist/{get-SZ3BKDS6.js.map → get-JX5JVWH7.js.map} +0 -0
  1273. /package/dist/{get-DOZKX4LD.js.map → get-KNP2EQRI.js.map} +0 -0
  1274. /package/dist/{get-5P4WESPY.js.map → get-Q4M6G7YN.js.map} +0 -0
  1275. /package/dist/{get-MS7HTZBZ.js.map → get-VFDNTZ54.js.map} +0 -0
  1276. /package/dist/{get-6VRSSUJJ.js.map → get-X44ZCIFN.js.map} +0 -0
  1277. /package/dist/{gif-H2GKAG4C.js.map → gif-6244RM75.js.map} +0 -0
  1278. /package/dist/{google-FJJ34DCE.js.map → google-HWEDJ4YS.js.map} +0 -0
  1279. /package/dist/{google-ads-3TEGRLIY.js.map → google-ads-4DLYASRC.js.map} +0 -0
  1280. /package/dist/{group-JNLMRIKV.js.map → group-45M7V46T.js.map} +0 -0
  1281. /package/dist/{group-KEJHQXTJ.js.map → group-RAXOR36M.js.map} +0 -0
  1282. /package/dist/{gsc-N7ILDOX4.js.map → gsc-YAU4EA75.js.map} +0 -0
  1283. /package/dist/{history-SWBZK2YL.js.map → history-6B6RXNV3.js.map} +0 -0
  1284. /package/dist/{history-IXKSY5DE.js.map → history-BEEREY26.js.map} +0 -0
  1285. /package/dist/{history-ZWU3ZV2E.js.map → history-NLZSX4BK.js.map} +0 -0
  1286. /package/dist/{hubspot-WIZRU3UE.js.map → hubspot-LABBRJ44.js.map} +0 -0
  1287. /package/dist/{icon-V6VRNURZ.js.map → icon-2237C4LP.js.map} +0 -0
  1288. /package/dist/{ideas-CXDU7YCE.js.map → ideas-A4ELJN23.js.map} +0 -0
  1289. /package/dist/{images-PB6SWXTZ.js.map → images-JVNT7KYM.js.map} +0 -0
  1290. /package/dist/{improve-JWQYC7AP.js.map → improve-PHFWWTOL.js.map} +0 -0
  1291. /package/dist/{ingest-GZ6EXNHT.js.map → ingest-GQWR3RHR.js.map} +0 -0
  1292. /package/dist/{ingest-7ZN46XK4.js.map → ingest-JYN2IDKV.js.map} +0 -0
  1293. /package/dist/{insights-P7JG6Y2H.js.map → insights-A5BKVXFQ.js.map} +0 -0
  1294. /package/dist/{insights-BWZXYBZY.js.map → insights-U6QAA77O.js.map} +0 -0
  1295. /package/dist/{inspect-BCKUHTRR.js.map → inspect-72DY33YD.js.map} +0 -0
  1296. /package/dist/{inspiration-WGMKYSGM.js.map → inspiration-DNWTXEPX.js.map} +0 -0
  1297. /package/dist/{intent-EWNVDZKU.js.map → intent-OMSJPOJZ.js.map} +0 -0
  1298. /package/dist/{job-FJRS3GVA.js.map → job-RCEPBGZC.js.map} +0 -0
  1299. /package/dist/{job-create-MVXMKPXS.js.map → job-create-MDVJ3E7K.js.map} +0 -0
  1300. /package/dist/{job-status-O3GGFMAW.js.map → job-status-53FJIFYR.js.map} +0 -0
  1301. /package/dist/{keep-55NEIXH2.js.map → keep-ZIHW5OEQ.js.map} +0 -0
  1302. /package/dist/{keyword-gap-YUG6BVQI.js.map → keyword-gap-3P72T4NV.js.map} +0 -0
  1303. /package/dist/{keyword-metrics-7VH4DGCR.js.map → keyword-metrics-GP7L2MQE.js.map} +0 -0
  1304. /package/dist/{keywords-for-site-OIICFZI5.js.map → keywords-for-site-6YWAUOKJ.js.map} +0 -0
  1305. /package/dist/{knowledge-OM3GKZHU.js.map → knowledge-PN3FAZJ2.js.map} +0 -0
  1306. /package/dist/{landing-T42TKOBK.js.map → landing-EKHAZS5P.js.map} +0 -0
  1307. /package/dist/{landings-JKO53RI4.js.map → landings-FBRB3FF5.js.map} +0 -0
  1308. /package/dist/{languages-YU5YUGFN.js.map → languages-Q5RMPGI4.js.map} +0 -0
  1309. /package/dist/{languages-TAFIWRI6.js.map → languages-WWKMRZCH.js.map} +0 -0
  1310. /package/dist/{launches-SJTNJHZY.js.map → launches-EQ4VS2OR.js.map} +0 -0
  1311. /package/dist/{layerize-HUELG4D3.js.map → layerize-SX6LQK35.js.map} +0 -0
  1312. /package/dist/{lead-routes-KLTGRS2S.js.map → lead-routes-RLYGO47M.js.map} +0 -0
  1313. /package/dist/{leads-LQT5KDYJ.js.map → leads-UCXIIA5K.js.map} +0 -0
  1314. /package/dist/{learn-UY5FNEQF.js.map → learn-EJEFERQZ.js.map} +0 -0
  1315. /package/dist/{library-2ZTAEY4Y.js.map → library-RZI7QHRV.js.map} +0 -0
  1316. /package/dist/{lighthouse-FA4NNWNM.js.map → lighthouse-D3BJGHLO.js.map} +0 -0
  1317. /package/dist/{line-item-writes-CQRO25FM.js.map → line-item-writes-IMCE2FDW.js.map} +0 -0
  1318. /package/dist/{line-items-56KP6W53.js.map → line-items-ISUC3WDO.js.map} +0 -0
  1319. /package/dist/{link-CQNRSZ2Z.js.map → link-6QL4ZVSU.js.map} +0 -0
  1320. /package/dist/{linkedin-ICM5CNNS.js.map → linkedin-ZOBYUBGV.js.map} +0 -0
  1321. /package/dist/{linkedin-person-F74QX3WE.js.map → linkedin-person-C24CBKCH.js.map} +0 -0
  1322. /package/dist/{list-FXMOUNMB.js.map → list-2NWMHKTR.js.map} +0 -0
  1323. /package/dist/{list-GMEW776J.js.map → list-2VNI3U7I.js.map} +0 -0
  1324. /package/dist/{list-O6KMSZUA.js.map → list-5H6UAX6T.js.map} +0 -0
  1325. /package/dist/{list-VQLA4C62.js.map → list-ACJBOHPS.js.map} +0 -0
  1326. /package/dist/{list-OLBLGL5J.js.map → list-COWCCJ4F.js.map} +0 -0
  1327. /package/dist/{list-TLKWSNZR.js.map → list-EEQJSTLN.js.map} +0 -0
  1328. /package/dist/{list-6PNILPKX.js.map → list-OTZB7DOX.js.map} +0 -0
  1329. /package/dist/{list-5L74D5T5.js.map → list-PZD2QOZL.js.map} +0 -0
  1330. /package/dist/{list-TSM2LE2Q.js.map → list-SUXUMXPJ.js.map} +0 -0
  1331. /package/dist/{locations-ONA23SAQ.js.map → locations-P3CUBKYZ.js.map} +0 -0
  1332. /package/dist/{locations-CPLAS65V.js.map → locations-ZO7F75KT.js.map} +0 -0
  1333. /package/dist/{log-55GU4YPD.js.map → log-VLI7KQF2.js.map} +0 -0
  1334. /package/dist/{logo-3YBVVQ4K.js.map → logo-R34AWI4C.js.map} +0 -0
  1335. /package/dist/{lookup-Z3AA3ON4.js.map → lookup-BGNLEZMU.js.map} +0 -0
  1336. /package/dist/{make-3LNSICDO.js.map → make-365ZJ25L.js.map} +0 -0
  1337. /package/dist/{map-ARNZ3BY3.js.map → map-OEFL45WA.js.map} +0 -0
  1338. /package/dist/{mcp-PXKB5LQD.js.map → mcp-NCZYQXQL.js.map} +0 -0
  1339. /package/dist/{media-SEC7SPHW.js.map → media-422INJCD.js.map} +0 -0
  1340. /package/dist/{media-3ON3VBC3.js.map → media-WASM45QW.js.map} +0 -0
  1341. /package/dist/{media-sources-7EXSVEAE.js.map → media-sources-CZDK4W5Q.js.map} +0 -0
  1342. /package/dist/{members-35KOCZHC.js.map → members-N3PQSVQC.js.map} +0 -0
  1343. /package/dist/{meme-JL24ZEUF.js.map → meme-NH4DAORT.js.map} +0 -0
  1344. /package/dist/{meta-W2YTPZE7.js.map → meta-IRXPQRBH.js.map} +0 -0
  1345. /package/dist/{metrics-WDFO5ESK.js.map → metrics-PSXIV4QS.js.map} +0 -0
  1346. /package/dist/{models-UVJ7M7DP.js.map → models-SITHUNAA.js.map} +0 -0
  1347. /package/dist/{normalize-KXI3OOFS.js.map → normalize-4OKUF5BJ.js.map} +0 -0
  1348. /package/dist/{normalize-I7KCFLAK.js.map → normalize-6DEJPTBF.js.map} +0 -0
  1349. /package/dist/{options-EYZEFVNI.js.map → options-OJX77MYT.js.map} +0 -0
  1350. /package/dist/{organization-KJPIZ66W.js.map → organization-URQGKFEC.js.map} +0 -0
  1351. /package/dist/{output-LECDMH7S.js.map → output-2MGOSPDE.js.map} +0 -0
  1352. /package/dist/{page-OUC6APBH.js.map → page-WKWRKLTC.js.map} +0 -0
  1353. /package/dist/{page-photos-UULNPJL2.js.map → page-photos-N4S7U7FR.js.map} +0 -0
  1354. /package/dist/{pages-WBJTWSBH.js.map → pages-LT3KCVC3.js.map} +0 -0
  1355. /package/dist/{performance-4MEHG2H3.js.map → performance-P5T4LJRG.js.map} +0 -0
  1356. /package/dist/{performance-QZGRGTTY.js.map → performance-SIWBDORI.js.map} +0 -0
  1357. /package/dist/{pinterest-PXWEV5OM.js.map → pinterest-KZ7RIHRS.js.map} +0 -0
  1358. /package/dist/{pixels-CBZQK7ME.js.map → pixels-3BHTXTDV.js.map} +0 -0
  1359. /package/dist/{pixels-ZXBYDD64.js.map → pixels-IGJFC2XC.js.map} +0 -0
  1360. /package/dist/{plan-QND22WEP.js.map → plan-ATH2VCVA.js.map} +0 -0
  1361. /package/dist/{posts-XZUV6SGX.js.map → posts-MVCGZV54.js.map} +0 -0
  1362. /package/dist/{preview-KMEUO2CB.js.map → preview-DMTQR6ZW.js.map} +0 -0
  1363. /package/dist/{profile-WXAGYNMQ.js.map → profile-OWDBNPNI.js.map} +0 -0
  1364. /package/dist/{promoted-tweet-writes-RKRDYXAF.js.map → promoted-tweet-writes-S2HP5DEI.js.map} +0 -0
  1365. /package/dist/{promoted-tweets-UTOGYF5N.js.map → promoted-tweets-WZT4N5IR.js.map} +0 -0
  1366. /package/dist/{properties-Q7W4YPU6.js.map → properties-VSOMFI5V.js.map} +0 -0
  1367. /package/dist/{publish-4BXIE5GB.js.map → publish-EDYBQHGJ.js.map} +0 -0
  1368. /package/dist/{query-ZFU76BDS.js.map → query-5OS6M4ON.js.map} +0 -0
  1369. /package/dist/{query-H3VKUXUG.js.map → query-NTWXOWPZ.js.map} +0 -0
  1370. /package/dist/{query-ICQABM2L.js.map → query-PC7V3OFF.js.map} +0 -0
  1371. /package/dist/{questionnaire-7AO5NN34.js.map → questionnaire-HUNGUZNQ.js.map} +0 -0
  1372. /package/dist/{read-RQ6B75BE.js.map → read-DXZJ7UOJ.js.map} +0 -0
  1373. /package/dist/{reddit-CGDBA7SX.js.map → reddit-DEGGHR4M.js.map} +0 -0
  1374. /package/dist/{refresh-LMGFOXE6.js.map → refresh-BKYZXXRF.js.map} +0 -0
  1375. /package/dist/{refresh-L2HDEKPI.js.map → refresh-HPNJGI2U.js.map} +0 -0
  1376. /package/dist/{release-DLUKLF5A.js.map → release-H7M37CEO.js.map} +0 -0
  1377. /package/dist/{relevant-pages-DTSXV6J2.js.map → relevant-pages-3CCAQA5Y.js.map} +0 -0
  1378. /package/dist/{remove-VM3KCNGB.js.map → remove-MV4YS72N.js.map} +0 -0
  1379. /package/dist/{remove-GOLZDJ7V.js.map → remove-MX2FV44C.js.map} +0 -0
  1380. /package/dist/{reopen-HJBG23JS.js.map → reopen-EFW2SKOY.js.map} +0 -0
  1381. /package/dist/{rerun-SYTG4PF6.js.map → rerun-OM4N74YK.js.map} +0 -0
  1382. /package/dist/{research-TW6Z74VO.js.map → research-7YDQOKA6.js.map} +0 -0
  1383. /package/dist/{research-VHJI5A3Y.js.map → research-MHXKAQW4.js.map} +0 -0
  1384. /package/dist/{reset-L2UK4NTV.js.map → reset-HT4AGJPR.js.map} +0 -0
  1385. /package/dist/{reset-RZFVT6EV.js.map → reset-XPZQ5F4D.js.map} +0 -0
  1386. /package/dist/{resolve-2BBQKCP7.js.map → resolve-RTTXEN2B.js.map} +0 -0
  1387. /package/dist/{retry-2QFOQQIC.js.map → retry-DVLVWHEK.js.map} +0 -0
  1388. /package/dist/{retry-YN7FECGJ.js.map → retry-SBGWOUQO.js.map} +0 -0
  1389. /package/dist/{retry-failed-NOCAPHDH.js.map → retry-failed-T6PK5SKL.js.map} +0 -0
  1390. /package/dist/{revenue-Y3USV6E7.js.map → revenue-KJLJ53XY.js.map} +0 -0
  1391. /package/dist/{rules-DQBFGPKC.js.map → rules-KCSET46P.js.map} +0 -0
  1392. /package/dist/{rules-S5H4CTN6.js.map → rules-NVKU732Z.js.map} +0 -0
  1393. /package/dist/{rules-add-UZR5X7QG.js.map → rules-add-KY42EHJE.js.map} +0 -0
  1394. /package/dist/{run-DPRASW62.js.map → run-2LQ7XJEO.js.map} +0 -0
  1395. /package/dist/{run-TBGBI522.js.map → run-M7YU6KCV.js.map} +0 -0
  1396. /package/dist/{scaffold-ad-RCGPKWBQ.js.map → scaffold-ad-6YPZ75YJ.js.map} +0 -0
  1397. /package/dist/{scaffold-static-ad-2GJOXOKA.js.map → scaffold-static-ad-UJEWTDU5.js.map} +0 -0
  1398. /package/dist/{scaffold-video-Y7X34F3N.js.map → scaffold-video-M4VWSVJ6.js.map} +0 -0
  1399. /package/dist/{schedule-MMW63ZDZ.js.map → schedule-ANIYXLG6.js.map} +0 -0
  1400. /package/dist/{schedule-VY75FPE3.js.map → schedule-J7HZQ2EL.js.map} +0 -0
  1401. /package/dist/{scheduled-agents-2ZSA5S3K.js.map → scheduled-agents-IVUQUKF4.js.map} +0 -0
  1402. /package/dist/{schema-KIJGNKJA.js.map → schema-LHBKBUV7.js.map} +0 -0
  1403. /package/dist/{scrape-G6QIBY6U.js.map → scrape-FQUGOXCG.js.map} +0 -0
  1404. /package/dist/{screenshot-CMOGVSDO.js.map → screenshot-YRYAOP5E.js.map} +0 -0
  1405. /package/dist/{search-EIIDSTTZ.js.map → search-3AW52FO6.js.map} +0 -0
  1406. /package/dist/{search-CSHJCL73.js.map → search-6XKFFDMJ.js.map} +0 -0
  1407. /package/dist/{search-S4YK5ACT.js.map → search-E75B5APM.js.map} +0 -0
  1408. /package/dist/{search-DZGN5GDP.js.map → search-EKTUTXVN.js.map} +0 -0
  1409. /package/dist/{search-XT22RJG2.js.map → search-OW3E2Z7Z.js.map} +0 -0
  1410. /package/dist/{search-FY53LEQY.js.map → search-YARSBZ6D.js.map} +0 -0
  1411. /package/dist/{search-copy-32URULZJ.js.map → search-copy-2KO3VR6R.js.map} +0 -0
  1412. /package/dist/{seeds-XH2263HW.js.map → seeds-E64JKXWS.js.map} +0 -0
  1413. /package/dist/{select-HXFWS3YO.js.map → select-STIWQ36I.js.map} +0 -0
  1414. /package/dist/{sends-OKJS7WVX.js.map → sends-DEVRKO4M.js.map} +0 -0
  1415. /package/dist/{sequences-DOITIST4.js.map → sequences-YIQSLKV5.js.map} +0 -0
  1416. /package/dist/{set-prompt-QPIXPF4Q.js.map → set-prompt-TODWV2F4.js.map} +0 -0
  1417. /package/dist/{setup-links-7XH4QW57.js.map → setup-links-MNBD3UMH.js.map} +0 -0
  1418. /package/dist/{shared-5EPTXTGW.js.map → shared-V5ZS25EO.js.map} +0 -0
  1419. /package/dist/{shopify-MNHCP5JX.js.map → shopify-PVMHMVIC.js.map} +0 -0
  1420. /package/dist/{site-JH5HWJ7P.js.map → site-ZZUKS6MQ.js.map} +0 -0
  1421. /package/dist/{sitemaps-NSOO5DBU.js.map → sitemaps-ZSISKT6L.js.map} +0 -0
  1422. /package/dist/{sites-VJDFYXP4.js.map → sites-XMZ3HPHT.js.map} +0 -0
  1423. /package/dist/{skills-RFKWA74T.js.map → skills-6MJC6CSZ.js.map} +0 -0
  1424. /package/dist/{sources-QZNISAXZ.js.map → sources-36MJ6T4V.js.map} +0 -0
  1425. /package/dist/{sources-X6R7OCG2.js.map → sources-GNLQHTSJ.js.map} +0 -0
  1426. /package/dist/{stale-BVP4XBGS.js.map → stale-GJN7UO3D.js.map} +0 -0
  1427. /package/dist/{stats-IYESUTZB.js.map → stats-FSAXWTSE.js.map} +0 -0
  1428. /package/dist/{status-4DXPN6EW.js.map → status-6EGB6ORB.js.map} +0 -0
  1429. /package/dist/{sticker-C7O2K75Q.js.map → sticker-GXCI4WL5.js.map} +0 -0
  1430. /package/dist/{stock-YA27CW4K.js.map → stock-DJ6I3CTO.js.map} +0 -0
  1431. /package/dist/{studies-OSYBQE7W.js.map → studies-4XXCEAHH.js.map} +0 -0
  1432. /package/dist/{studio-V3HINEVU.js.map → studio-OARORMDJ.js.map} +0 -0
  1433. /package/dist/{suggest-BLYWQV4H.js.map → suggest-DSMKK4FP.js.map} +0 -0
  1434. /package/dist/{sync-BP2NL7BA.js.map → sync-QHM3LMAX.js.map} +0 -0
  1435. /package/dist/{sync-KXOJMM2K.js.map → sync-WKV3N3LD.js.map} +0 -0
  1436. /package/dist/{sync-WGZ4522U.js.map → sync-XFK4U6TA.js.map} +0 -0
  1437. /package/dist/{sync-definition-SAOKH7RQ.js.map → sync-definition-YXGN6PIQ.js.map} +0 -0
  1438. /package/dist/{tag-MKWBX22O.js.map → tag-L2H5TSFJ.js.map} +0 -0
  1439. /package/dist/{tag-manager-AKW4EG4W.js.map → tag-manager-XAX5AI42.js.map} +0 -0
  1440. /package/dist/{tags-QAL6XAHS.js.map → tags-GHV5R7NI.js.map} +0 -0
  1441. /package/dist/{tags-TSEVQAKY.js.map → tags-IDWUV2FY.js.map} +0 -0
  1442. /package/dist/{tags-N54OQ55M.js.map → tags-MBBRBZJH.js.map} +0 -0
  1443. /package/dist/{tags-RMPC3Q5E.js.map → tags-MQYF2JHQ.js.map} +0 -0
  1444. /package/dist/{tags-DV3IVJBS.js.map → tags-ZGXJHATH.js.map} +0 -0
  1445. /package/dist/{targeting-VOZUDYFI.js.map → targeting-KJ4DI56R.js.map} +0 -0
  1446. /package/dist/{targeting-constants-7YWLK6KM.js.map → targeting-constants-ZS422W5A.js.map} +0 -0
  1447. /package/dist/{targeting-criteria-OUN7VYFP.js.map → targeting-criteria-GDCXOAUD.js.map} +0 -0
  1448. /package/dist/{targets-SUDKTBLH.js.map → targets-MYHOPAYY.js.map} +0 -0
  1449. /package/dist/{terms-AY5LECWX.js.map → terms-NX5CAJXT.js.map} +0 -0
  1450. /package/dist/{testimonials-JMKFBJYD.js.map → testimonials-R6RFGAKP.js.map} +0 -0
  1451. /package/dist/{themes-WJ35YEXI.js.map → themes-LHVXXVTX.js.map} +0 -0
  1452. /package/dist/{top-companies-ESGGS2SE.js.map → top-companies-POTV3Y2A.js.map} +0 -0
  1453. /package/dist/{transcript-YXTBCJ67.js.map → transcript-4RVYKDVZ.js.map} +0 -0
  1454. /package/dist/{translate-W6AMHQWO.js.map → translate-UCASCVMN.js.map} +0 -0
  1455. /package/dist/{triggers-YZTGKFBI.js.map → triggers-XHMMOZJK.js.map} +0 -0
  1456. /package/dist/{tweets-B6EWPDYI.js.map → tweets-33OCH74J.js.map} +0 -0
  1457. /package/dist/{unfollow-ACQTL2GW.js.map → unfollow-G26NHR5X.js.map} +0 -0
  1458. /package/dist/{unlink-FEKMX5Q7.js.map → unlink-3IW3EORE.js.map} +0 -0
  1459. /package/dist/{unstage-PIO6RJLT.js.map → unstage-APVF6KHB.js.map} +0 -0
  1460. /package/dist/{unstage-MWAG2SLK.js.map → unstage-OAPP6Z5V.js.map} +0 -0
  1461. /package/dist/{update-IHWWJFD5.js.map → update-2VSJH4LQ.js.map} +0 -0
  1462. /package/dist/{update-HCJC2OG4.js.map → update-42QYBUE3.js.map} +0 -0
  1463. /package/dist/{update-3PFWIMEI.js.map → update-ESK6PSME.js.map} +0 -0
  1464. /package/dist/{update-4ANTGEPT.js.map → update-KXTP3VPI.js.map} +0 -0
  1465. /package/dist/{update-NGLID7LC.js.map → update-V7SRDGHN.js.map} +0 -0
  1466. /package/dist/{upload-JMXCQDCA.js.map → upload-42IR5RIL.js.map} +0 -0
  1467. /package/dist/{upload-JYLLFY3P.js.map → upload-LSEV74SF.js.map} +0 -0
  1468. /package/dist/{upscale-FZQ5P2UR.js.map → upscale-X3B5CHG3.js.map} +0 -0
  1469. /package/dist/{url-options-BWNHNIAK.js.map → url-options-GJ7ZIUPD.js.map} +0 -0
  1470. /package/dist/{url-params-4ROYWFVV.js.map → url-params-GEESXN57.js.map} +0 -0
  1471. /package/dist/{use-SMS2UK32.js.map → use-D3SKAKUU.js.map} +0 -0
  1472. /package/dist/{validate-P4RRB3QA.js.map → validate-Z5SSEUES.js.map} +0 -0
  1473. /package/dist/{variant-2PJH7U2M.js.map → variant-MEHXEXFK.js.map} +0 -0
  1474. /package/dist/{videos-RRXYBR52.js.map → videos-PJAPZPOT.js.map} +0 -0
  1475. /package/dist/{view-AJ7ROYFP.js.map → view-HTCYEBXN.js.map} +0 -0
  1476. /package/dist/{viewer-check-PD6UQ63S.js.map → viewer-check-6M34VY7K.js.map} +0 -0
  1477. /package/dist/{web-5SWHU5KW.js.map → web-PUVVFMV3.js.map} +0 -0
  1478. /package/dist/{winners-FJXS3LGU.js.map → winners-CGLS7SZ3.js.map} +0 -0
  1479. /package/dist/{winning-ads-HH3WI5KB.js.map → winning-ads-ZCP4MIEQ.js.map} +0 -0
  1480. /package/dist/{write-commands-HY2OKPWW.js.map → write-commands-QNXR5ENS.js.map} +0 -0
  1481. /package/dist/{x-6VIOYUKX.js.map → x-2IZMW46M.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/linkedin/write-commands.ts","../src/commands/ads/linkedin/conversion-upload-rows.ts"],"sourcesContent":["import { readFileSync } from \"node:fs\";\nimport {\n CONVERSION_UPLOAD_MAX_EVENTS,\n campaignExcludeCompaniesSchema,\n LEADGEN_CTA_LABELS,\n type LinkedinDraftStageResponse,\n type LinkedinTrackingParamDynamicValue,\n sponsoredPostUrn,\n TEMP_REF_PREFIX,\n TRACKING_PARAM_DYNAMIC_VALUES,\n} from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiGet, apiPost } from \"../../../client.ts\";\nimport { requireChatId } from \"../../../env.ts\";\nimport { repeatedValues } from \"../../../lib/repeatedFlags.ts\";\nimport { writeJsonEnvelope } from \"../output.ts\";\nimport { conversionUploadEvents } from \"./conversion-upload-rows.ts\";\nimport { handleLinkedinError } from \"./shared.ts\";\nimport {\n bareAccountId,\n failWriteValidation,\n fileArg,\n loadJsonFileArg,\n loadTargetingFileArg,\n mergePayload,\n parseDateFlag,\n parseListFileArg,\n parseLocaleFlag,\n parseMoneyFlag,\n parseOnOffFlag,\n requireTarget,\n requireTargets,\n stageLinkedinOps,\n stageOp,\n stageStatusChange,\n TOTAL_BUDGET_HELP,\n} from \"./write-shared.ts\";\n\n/**\n * Staged write subcommands. None of these touch the LinkedIn API — they stage\n * ops on this chat's draft; ops appear in the dashboard as pending LinkedIn\n * changes and apply when the chat is published. Review with\n * `baker ads linkedin draft`, undo with `draft remove <ref>`.\n */\n\nconst STAGED_NOTE = \"Staged until publish — review with `baker ads linkedin draft`.\";\n\nconst accountArgs = {\n \"account-id\": { type: \"string\", description: \"Numeric account ID or urn:li:sponsoredAccount:N\" },\n \"account-urn\": { type: \"string\", description: \"Alias for --account-id\" },\n} as const;\n\nfunction runScheduleFromFlags(args: Record<string, unknown>): { start?: number; end?: number } | undefined {\n const start = parseDateFlag(args.start, \"--start\");\n const end = parseDateFlag(args.end, \"--end\");\n if (start === undefined && end === undefined) {\n return undefined;\n }\n return { ...(start !== undefined ? { start } : {}), ...(end !== undefined ? { end } : {}) };\n}\n\n// --- Campaign groups ---\n\n/** `--objective` / `--shared-budget` → the group's objective and LinkedIn budget optimization. */\nfunction groupBudgetFlags(args: Record<string, unknown>): Record<string, unknown> {\n return {\n objectiveType: args.objective ? String(args.objective).toUpperCase() : undefined,\n budgetOptimization: args[\"shared-budget\"]\n ? { bidStrategy: String(args[\"shared-budget\"]).toUpperCase() }\n : undefined,\n };\n}\n\n/**\n * `campaign-groups create`'s flags over `--file`. LinkedIn needs a start, so a\n * group given none starts now — publish moves a passed start to its own moment.\n */\nexport function campaignGroupCreatePayload(\n args: Record<string, unknown>,\n file: Record<string, unknown>,\n): Record<string, unknown> {\n const payload = mergePayload(file, {\n name: args.name,\n runSchedule: runScheduleFromFlags(args),\n totalBudget: parseMoneyFlag(args[\"total-budget\"], args.currency, \"--total-budget\"),\n status: args.status ? String(args.status).toUpperCase() : undefined,\n ...groupBudgetFlags(args),\n });\n return { ...payload, runSchedule: startingNowUnlessSet(payload.runSchedule ?? {}) };\n}\n\n/** A schedule given no start starts now — publish moves a passed start to its own moment. */\nfunction startingNowUnlessSet(schedule: unknown): Record<string, unknown> {\n const fields = schedule as { start?: number; end?: number };\n return fields.start === undefined ? { ...fields, start: Date.now() } : fields;\n}\n\nexport const campaignGroupsCreateCommand = defineCommand({\n meta: {\n name: \"create\",\n description: `Stage a new campaign group. ${STAGED_NOTE}\nA group can't be created PAUSED, and a --total-budget needs an --end.\nStart now: leave out --start (or pass --start now) and add --status ACTIVE — it starts the moment the chat publishes. A start that has already passed by then also moves to that moment.\nExample: baker ads linkedin campaign-groups create --name \"Q3 ABM\" --start 2026-07-10 --end 2026-09-30 --total-budget 5000 --currency EUR\nShared 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>).`,\n },\n args: {\n ...accountArgs,\n name: { type: \"string\", description: \"Campaign group name (≤100 chars)\" },\n start: { type: \"string\", description: \"Run schedule start: now (default), ISO date or epoch ms\" },\n end: { type: \"string\", description: \"Run schedule end\" },\n \"total-budget\": { type: \"string\", description: TOTAL_BUDGET_HELP },\n currency: { type: \"string\", description: \"3-letter currency code (defaults to the ad account currency)\" },\n objective: {\n type: \"string\",\n description: \"Objective every ad set in it takes (LEAD_GENERATION|WEBSITE_VISIT|…), create-only\",\n },\n \"shared-budget\": {\n type: \"string\",\n description:\n \"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)\",\n },\n status: {\n type: \"string\",\n description:\n \"DRAFT|ACTIVE (default DRAFT) — LinkedIn refuses a new group created PAUSED; pause it once it exists\",\n },\n ...fileArg(\"campaignGroup.create\", \"JSON file with the full payload; flags override file keys\"),\n },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n const payload = campaignGroupCreatePayload(args as Record<string, unknown>, loadJsonFileArg(args.file));\n await stageOp({ kind: \"campaignGroup.create\", accountId, payload });\n },\n});\n\nexport const campaignGroupsUpdateCommand = defineCommand({\n meta: {\n name: \"update\",\n description: `Stage changes to an existing campaign group. ${STAGED_NOTE}\nPass a li_temp_* ref to amend a group staged in this chat — fields merge into the staged create.\nExample: baker ads linkedin campaign-groups update 635137195 --total-budget 8000 --currency EUR`,\n },\n args: {\n id: { type: \"positional\", description: \"Campaign group id or URN\", required: true },\n ...accountArgs,\n name: { type: \"string\", description: \"New name\" },\n start: { type: \"string\", description: \"New run schedule start\" },\n end: { type: \"string\", description: \"New run schedule end\" },\n \"total-budget\": { type: \"string\", description: TOTAL_BUDGET_HELP },\n currency: { type: \"string\", description: \"3-letter currency code (defaults to the ad account currency)\" },\n \"shared-budget\": {\n type: \"string\",\n description: \"Share the budget across its ad sets: MAXIMUM_DELIVERY|MANUAL|COST_CAP\",\n },\n status: { type: \"string\", description: \"ACTIVE|PAUSED|ARCHIVED|…\" },\n ...fileArg(\"campaignGroup.update\", \"JSON file with fields to change\"),\n },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n const payload = mergePayload(loadJsonFileArg(args.file), {\n name: args.name,\n runSchedule: runScheduleFromFlags(args as Record<string, unknown>),\n totalBudget: parseMoneyFlag(args[\"total-budget\"], args.currency, \"--total-budget\"),\n status: args.status ? String(args.status).toUpperCase() : undefined,\n budgetOptimization: args[\"shared-budget\"]\n ? { bidStrategy: String(args[\"shared-budget\"]).toUpperCase() }\n : undefined,\n });\n await stageOp({\n kind: \"campaignGroup.update\",\n accountId,\n target: requireTarget(args as Record<string, unknown>, \"campaign group\"),\n payload,\n });\n },\n});\n\n// --- Campaigns ---\n\nfunction campaignPayloadFromFlags(args: Record<string, unknown>): Record<string, unknown> {\n return {\n name: args.name,\n campaignGroup: args.group,\n type: args.type ? String(args.type).toUpperCase() : undefined,\n objectiveType: args.objective ? String(args.objective).toUpperCase() : undefined,\n costType: args[\"cost-type\"] ? String(args[\"cost-type\"]).toUpperCase() : undefined,\n unitCost: parseMoneyFlag(args.bid, args.currency, \"--bid\"),\n dailyBudget: parseMoneyFlag(args[\"daily-budget\"], args.currency, \"--daily-budget\"),\n totalBudget: parseMoneyFlag(args[\"total-budget\"], args.currency, \"--total-budget\"),\n runSchedule: runScheduleFromFlags(args),\n locale: parseLocaleFlag(args.locale),\n targetingCriteria: loadTargetingFileArg(args[\"targeting-file\"]),\n audienceExpansionEnabled: parseOnOffFlag(args[\"audience-expansion\"], \"--audience-expansion\"),\n offsiteDeliveryEnabled: parseOnOffFlag(args.lan, \"--lan\"),\n connectedTelevisionOnly: parseOnOffFlag(args.ctv, \"--ctv\"),\n creativeSelection: args[\"creative-selection\"] ? String(args[\"creative-selection\"]).toUpperCase() : undefined,\n associatedEntity: args[\"associated-entity\"],\n politicalIntent: args[\"political-intent\"] ? String(args[\"political-intent\"]).toUpperCase() : undefined,\n status: args.status ? String(args.status).toUpperCase() : undefined,\n format: args.format ? String(args.format).toUpperCase() : undefined,\n optimizationTargetType: args.optimization ? String(args.optimization).toUpperCase() : undefined,\n pacingStrategy: args.pacing ? String(args.pacing).toUpperCase() : undefined,\n weeklyFrequencyCap: args[\"frequency-cap\"] !== undefined ? Number(args[\"frequency-cap\"]) : undefined,\n };\n}\n\nconst POLITICAL_INTENT_HELP =\n \"NOT_POLITICAL (default)|POLITICAL|NOT_DECLARED — the advertiser's declaration. New ad sets are declared not political, as Google and Meta campaigns are; pass POLITICAL only when the ads are political advertising (elections, referendums, legislation), and say so to the user.\";\n\nconst campaignFlagArgs = {\n ...accountArgs,\n name: { type: \"string\", description: \"Campaign name (≤255 chars)\" },\n group: { type: \"string\", description: \"Campaign group id/URN, or li_temp_* ref staged in this chat\" },\n type: { type: \"string\", description: \"SPONSORED_UPDATES|TEXT_AD|SPONSORED_INMAILS|DYNAMIC\" },\n objective: { type: \"string\", description: \"e.g. LEAD_GENERATION, WEBSITE_VISIT, BRAND_AWARENESS\" },\n \"cost-type\": { type: \"string\", description: \"CPC|CPM|CPV\" },\n bid: {\n type: \"string\",\n description:\n \"unitCost: the manual bid, or with --optimization TARGET_COST_*/CAP_COST_* the target cost or cost cap (required there)\",\n },\n optimization: {\n type: \"string\",\n description:\n \"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|…_CLICKS|…_IMPRESSIONS|…_VIDEO_VIEWS\",\n },\n format: {\n type: \"string\",\n description:\n \"Ad format, create-only: STANDARD_UPDATE|SINGLE_VIDEO|CAROUSEL|TEXT_AD|SPOTLIGHT|FOLLOW_COMPANY|JOBS|SPONSORED_INMAIL|SPONSORED_MESSAGE|SPONSORED_UPDATE_EVENT|SPONSORED_UPDATE_NATIVE_DOCUMENT. Required for carousel and video ad sets\",\n },\n pacing: {\n type: \"string\",\n description: \"LIFETIME (spread a total budget over the schedule)|ACCELERATED — create-only\",\n },\n \"frequency-cap\": {\n type: \"string\",\n description: \"At most N impressions per member a week (3–30), Brand awareness only\",\n },\n \"daily-budget\": { type: \"string\", description: \"Daily budget amount\" },\n \"total-budget\": { type: \"string\", description: TOTAL_BUDGET_HELP },\n currency: { type: \"string\", description: \"3-letter currency code (defaults to the ad account currency)\" },\n start: {\n type: \"string\",\n description: \"Run schedule start: now (default — when the chat publishes), ISO date or epoch ms\",\n },\n end: { type: \"string\", description: \"Run schedule end\" },\n locale: { type: \"string\", description: \"Profile locale like en_US\" },\n \"targeting-file\": { type: \"string\", description: \"JSON file with targetingCriteria (include.and[].or facets)\" },\n \"audience-expansion\": { type: \"string\", description: \"on|off (playbook: off)\" },\n lan: { type: \"string\", description: \"LinkedIn Audience Network on|off (playbook: off)\" },\n ctv: { type: \"string\", description: \"Connected TV on|off\" },\n \"creative-selection\": { type: \"string\", description: \"OPTIMIZED|ROUND_ROBIN\" },\n \"associated-entity\": { type: \"string\", description: \"Organization URN\" },\n \"political-intent\": { type: \"string\", description: POLITICAL_INTENT_HELP },\n status: { type: \"string\", description: \"DRAFT|ACTIVE|PAUSED — PAUSED needs a group that is not DRAFT\" },\n file: { type: \"string\", description: \"JSON file with the full payload; flags override file keys\" },\n} as const;\n\n/**\n * `campaigns create`'s flags over `--file`. An ad set with no schedule gets one\n * at publish; one given only an end (a total budget needs it) starts now.\n */\nexport function campaignCreatePayload(\n args: Record<string, unknown>,\n file: Record<string, unknown>,\n): Record<string, unknown> {\n const payload = mergePayload(file, campaignPayloadFromFlags(args));\n return {\n ...payload,\n locale: payload.locale ?? { country: \"US\", language: \"en\" },\n ...(payload.runSchedule ? { runSchedule: startingNowUnlessSet(payload.runSchedule) } : {}),\n };\n}\n\nexport const campaignsCreateCommand = defineCommand({\n meta: {\n name: \"create\",\n description: `Stage a new campaign. ${STAGED_NOTE}\nTargeting goes in --targeting-file (facet URNs). --group accepts a li_temp_* ref from a campaign group staged in this chat.\nStart now: --status ACTIVE with no --start — it starts the moment the chat publishes, in an ACTIVE group. --bid can't be above --daily-budget.\nExample: 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\nLead 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.`,\n },\n args: { ...campaignFlagArgs, ...fileArg(\"campaign.create\", campaignFlagArgs.file.description) },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n const payload = campaignCreatePayload(args as Record<string, unknown>, loadJsonFileArg(args.file));\n await stageOp({ kind: \"campaign.create\", accountId, payload });\n },\n});\n\n/**\n * `campaigns update`'s flags → payload. Create-only fields (campaignGroup/type/locale/\n * associatedEntity) are not updatable on a LIVE campaign, so they're stripped there; a\n * `li_temp_*` target amends the staged create in place, where those fields are still fair game\n * (the amend path re-validates the merged payload as a full create).\n */\nexport function campaignUpdatePayloadFromFlags(\n args: Record<string, unknown>,\n target: string,\n file: Record<string, unknown>,\n): Record<string, unknown> {\n const flags = campaignPayloadFromFlags(args);\n if (!target.startsWith(TEMP_REF_PREFIX)) {\n flags.campaignGroup = undefined;\n flags.type = undefined;\n flags.locale = undefined;\n flags.associatedEntity = undefined;\n flags.format = undefined;\n flags.pacingStrategy = undefined;\n }\n return mergePayload(file, flags);\n}\n\nexport const campaignsUpdateCommand = defineCommand({\n meta: {\n name: \"update\",\n description: `Stage changes to an existing campaign (budget, bid, targeting, flags, schedule, status). ${STAGED_NOTE}\nPass a li_temp_* ref to amend a campaign staged in this chat — 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).\nExample: baker ads linkedin campaigns update 123456 --daily-budget 100 --currency EUR --audience-expansion off`,\n },\n args: {\n id: { type: \"positional\", description: \"Campaign id or URN\", required: true },\n ...campaignFlagArgs,\n ...fileArg(\"campaign.update\", campaignFlagArgs.file.description),\n },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n const target = requireTarget(args as Record<string, unknown>, \"campaign\");\n const payload = campaignUpdatePayloadFromFlags(args as Record<string, unknown>, target, loadJsonFileArg(args.file));\n await stageOp({\n kind: \"campaign.update\",\n accountId,\n target,\n payload,\n });\n },\n});\n\nfunction commaList(value: unknown): string[] {\n return typeof value === \"string\"\n ? value\n .split(\",\")\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0)\n : [];\n}\n\n/** `--org` takes the bare ids `companies`/`top-companies` print, or full organization URNs. */\nexport function excludeCompaniesPayload(args: Record<string, unknown>): {\n add: { employers?: string[]; segments?: string[] };\n} {\n const employers = commaList(args.org).map((org) => (org.startsWith(\"urn:\") ? org : `urn:li:organization:${org}`));\n const segments = commaList(args.segment);\n return {\n add: {\n ...(employers.length > 0 ? { employers } : {}),\n ...(segments.length > 0 ? { segments } : {}),\n },\n };\n}\n\nconst EXCLUSION_FLAG_BY_FIELD: Record<string, string> = { employers: \"--org\", segments: \"--segment\" };\n\n/**\n * Why these flags cannot stage, in the flags' own words — `--org: 0 is not a\n * LinkedIn company id …` rather than the contract path `payload.add.employers.1`\n * and a pointer at the capabilities catalogue, which is for unknown fields.\n */\nexport function excludeCompaniesRefusal(args: Record<string, unknown>): string | undefined {\n const payload = excludeCompaniesPayload(args);\n if (!payload.add.employers && !payload.add.segments) {\n return \"pass --org and/or --segment — the companies or audiences this ad set should stop reaching\";\n }\n const parsed = campaignExcludeCompaniesSchema.safeParse(payload);\n if (parsed.success) {\n return undefined;\n }\n return parsed.error.issues\n .map((issue) => {\n const flag = EXCLUSION_FLAG_BY_FIELD[String(issue.path[1])];\n return flag ? `${flag}: ${issue.message}` : issue.message;\n })\n .join(\"; \");\n}\n\nexport const campaignsExcludeCompaniesCommand = defineCommand({\n meta: {\n name: \"exclude-companies\",\n description: `Stop an ad set reaching some companies — customers, open deals, competitors. ${STAGED_NOTE}\nAdd-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.\n--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).\nExample: baker ads linkedin campaigns exclude-companies 123456 --org 1035,1441`,\n },\n args: {\n id: {\n type: \"positional\",\n description: \"Ad set (campaign) id or URN — must already be on LinkedIn\",\n required: true,\n },\n ...accountArgs,\n org: { type: \"string\", description: \"Company ids or urn:li:organization URNs to exclude, comma-separated\" },\n segment: {\n type: \"string\",\n description:\n \"Matched audiences to exclude, comma-separated: urn:li:dmpSegment:N / urn:li:adSegment:N or a li_temp_* ref\",\n },\n },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n const target = requireTarget(args as Record<string, unknown>, \"campaign\");\n const refusal = excludeCompaniesRefusal(args as Record<string, unknown>);\n if (refusal) {\n failWriteValidation(refusal);\n }\n const payload = excludeCompaniesPayload(args as Record<string, unknown>);\n await stageOp({ kind: \"campaign.excludeCompanies\", accountId, target, payload });\n },\n});\n\nfunction statusSugarCommand(\n entity: \"campaign-groups\" | \"campaigns\" | \"creatives\",\n kind: \"campaignGroup.update\" | \"campaign.update\" | \"creative.update\",\n name: \"pause\" | \"resume\" | \"archive\",\n) {\n const status = name === \"pause\" ? \"PAUSED\" : name === \"resume\" ? \"ACTIVE\" : \"ARCHIVED\";\n return defineCommand({\n meta: {\n name,\n description: `Stage a status change to ${status}, for one id or many. ${STAGED_NOTE}\nExamples:\n baker ads linkedin ${entity} ${name} 123456\n baker ads linkedin ${entity} ${name} 123456,123457,123458\n baker ads linkedin ${entity} ${name} --ids-file ids.txt`,\n },\n args: {\n id: { type: \"positional\", description: \"Entity id or URN — comma-separate several\", required: false },\n \"ids-file\": { type: \"string\", description: \"File of ids, one per line or comma-separated\" },\n ...accountArgs,\n },\n run: async ({ args }) => {\n await stageStatusChange({\n kind,\n accountId: bareAccountId(args as Record<string, unknown>),\n targets: requireTargets(args as Record<string, unknown>, entity.replace(/-/g, \" \").replace(/s$/, \"\")),\n status,\n });\n },\n });\n}\n\n/**\n * Deleting is for drafts only — LinkedIn keeps everything that ever served, so\n * the backend refuses the rest and points at pause/archive.\n */\nfunction deleteDraftCommand(\n entity: \"campaign-groups\" | \"campaigns\" | \"creatives\",\n kind: \"campaignGroup.delete\" | \"campaign.delete\" | \"creative.delete\",\n what: string,\n) {\n return defineCommand({\n meta: {\n name: \"delete\",\n description: `Stage deleting a ${what} that is still a DRAFT on LinkedIn, for one id or many — it disappears from Campaign Manager. ${STAGED_NOTE}\nOnly 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.\nExamples:\n baker ads linkedin ${entity} delete 896802423\n baker ads linkedin ${entity} delete 896802423,896812053`,\n },\n args: {\n id: { type: \"positional\", description: \"Id or URN — comma-separate several\", required: false },\n \"ids-file\": { type: \"string\", description: \"File of ids, one per line or comma-separated\" },\n ...accountArgs,\n },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n await stageLinkedinOps(\n requireTargets(args as Record<string, unknown>, what).map((target) => ({\n kind,\n accountId,\n target,\n payload: {},\n })),\n );\n },\n });\n}\n\nexport const campaignGroupsDeleteCommand = deleteDraftCommand(\"campaign-groups\", \"campaignGroup.delete\", \"campaign\");\nexport const campaignsDeleteCommand = deleteDraftCommand(\"campaigns\", \"campaign.delete\", \"ad set\");\nexport const creativesDeleteCommand = deleteDraftCommand(\"creatives\", \"creative.delete\", \"ad\");\n\n// --- Ad set URL tracking parameters ---\n\n/**\n * `--param`/`--dynamic` accept a repeated flag, an `&`-joined query string, or\n * both — agents reach for all three, and the parsed result is identical.\n */\nfunction trackingPairs(value: unknown, flag: string): Array<[string, string]> {\n const raw = value === undefined ? [] : Array.isArray(value) ? value : [value];\n return raw.flatMap((entry) =>\n String(entry)\n .split(\"&\")\n .filter((pair) => pair.length > 0)\n .map((pair): [string, string] => {\n const at = pair.indexOf(\"=\");\n if (at < 1 || at === pair.length - 1) {\n failWriteValidation(`${flag} expects key=value pairs — got \"${pair}\"`);\n }\n return [pair.slice(0, at).trim(), pair.slice(at + 1).trim()];\n }),\n );\n}\n\n/** A value that names one of LinkedIn's placeholders, however the agent wrote it. */\nfunction asDynamicValue(value: string): LinkedinTrackingParamDynamicValue | undefined {\n const bare = value.replace(/^\\{+|\\}+$/g, \"\").toUpperCase();\n return (TRACKING_PARAM_DYNAMIC_VALUES as readonly string[]).includes(bare)\n ? (bare as LinkedinTrackingParamDynamicValue)\n : undefined;\n}\n\n/**\n * `rawArgs` is the command line, and it is what the repeatable flags are read\n * from: citty keeps only a repeated flag's LAST value, so `--param a=1 --param\n * b=2` arrives here as `\"b=2\"`. Since this write REPLACES the entity's whole\n * parameter set, taking it from `args` would stage one pair, report success,\n * and delete the rest at publish.\n */\nexport function trackingParamsPayload(\n args: Record<string, unknown>,\n rawArgs?: readonly string[],\n): Record<string, unknown> {\n if (args.clear) {\n return { dynamicValueParameters: {}, customValueParameters: {} };\n }\n const customValueParameters: Record<string, string> = {};\n for (const [key, value] of trackingPairs(repeatedValues(rawArgs, \"param\", args.param), \"--param\")) {\n if (asDynamicValue(value)) {\n failWriteValidation(\n `--param ${key}=${value} names a value LinkedIn fills in per ad — pass it as --dynamic ${key}=${value.replace(/^\\{+|\\}+$/g, \"\").toUpperCase()}`,\n );\n }\n customValueParameters[key] = value;\n }\n const dynamicValueParameters: Record<string, string> = {};\n for (const [key, value] of trackingPairs(repeatedValues(rawArgs, \"dynamic\", args.dynamic), \"--dynamic\")) {\n const resolved = asDynamicValue(value);\n if (!resolved) {\n failWriteValidation(\n `--dynamic ${key}=${value} is not a value LinkedIn can fill in — use one of ${TRACKING_PARAM_DYNAMIC_VALUES.join(\", \")}, or pass a fixed value with --param`,\n );\n }\n dynamicValueParameters[key] = resolved;\n }\n return mergePayload(loadJsonFileArg(args.file), {\n customValueParameters: Object.keys(customValueParameters).length > 0 ? customValueParameters : undefined,\n dynamicValueParameters: Object.keys(dynamicValueParameters).length > 0 ? dynamicValueParameters : undefined,\n });\n}\n\nexport const campaignsUrlParamsCommand = defineCommand({\n meta: {\n name: \"url-params\",\n description: `Stage the URL tracking parameters on an ad set — LinkedIn appends them to the link of EVERY ad in it, including ads already running. ${STAGED_NOTE}\n\nStart here: set UTMs at this level, not per ad. A per-ad landing URL is only for a genuinely different destination — 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.\n\nThis REPLACES the ad set's whole parameter set — 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.\n\nValues LinkedIn fills in per ad (--dynamic): ACCOUNT_ID, ACCOUNT_NAME, CAMPAIGN_GROUP_ID, CAMPAIGN_GROUP_NAME, CAMPAIGN_ID, CAMPAIGN_NAME, CREATIVE_ID, CREATIVE_NAME.\n\nExamples:\n 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\n baker ads linkedin campaigns url-params 123456 --param utm_agency=baker\n baker ads linkedin campaigns url-params 123456 --clear`,\n },\n args: {\n id: { type: \"positional\", description: \"Ad set (campaign) id or URN\", required: true },\n ...accountArgs,\n param: {\n type: \"string\",\n description: 'Fixed key=value, repeatable or &-joined (e.g. --param \"utm_source=linkedin&utm_medium=paid\")',\n },\n dynamic: {\n type: \"string\",\n description: \"key=PLACEHOLDER LinkedIn fills in per ad, repeatable (e.g. --dynamic utm_campaign=CAMPAIGN_NAME)\",\n },\n clear: { type: \"boolean\", description: \"Remove every tracking parameter from this ad set\" },\n file: { type: \"string\", description: \"JSON file with the full payload; flags override file keys\" },\n },\n run: async ({ args, rawArgs }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n await stageOp({\n kind: \"trackingParams.set\",\n accountId,\n target: requireTarget(args as Record<string, unknown>, \"ad set\"),\n payload: trackingParamsPayload(args as Record<string, unknown>, rawArgs),\n });\n },\n});\n\n/**\n * The same parameters, one level up. The target is built from the RESOLVED\n * account rather than taken as a positional: `trackingParamsLevel` reads a bare\n * numeric id as an ad set, so an account id typed bare would silently stage an\n * ad-set write — and this command has no ad set to name.\n */\n/**\n * The op target for an account-level set. Built from the account the command\n * already resolved, never from a positional: `--account-id` accepts the URN\n * form too, so composing the prefix without stripping it first would produce\n * `urn:li:sponsoredAccount:urn:li:sponsoredAccount:N` and 400 at publish.\n */\nexport function accountTrackingTarget(args: Record<string, unknown>): { accountId: string; target: string } {\n const accountId = bareAccountId(args);\n return { accountId, target: `urn:li:sponsoredAccount:${accountId}` };\n}\n\nexport const accountUrlParamsCommand = defineCommand({\n meta: {\n name: \"url-params\",\n description: `Stage the URL tracking parameters on the whole AD ACCOUNT — LinkedIn appends them to the link of every ad in every ad set, including ads already running. ${STAGED_NOTE}\n\nUse 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\\`) — LinkedIn appends BOTH levels, so a key set in both places lands in the URL twice.\n\nThis REPLACES the account's whole parameter set — LinkedIn does not merge. Read what it carries first with \\`baker ads linkedin url-params\\` and re-send every pair that should survive.\n\nValues LinkedIn fills in per ad (--dynamic): ACCOUNT_ID, ACCOUNT_NAME, CAMPAIGN_GROUP_ID, CAMPAIGN_GROUP_NAME, CAMPAIGN_ID, CAMPAIGN_NAME, CREATIVE_ID, CREATIVE_NAME.\n\nExamples:\n baker ads linkedin account url-params --param \"utm_source=linkedin&utm_medium=paid_social\"\n baker ads linkedin account url-params --param utm_source=linkedin --dynamic utm_campaign=CAMPAIGN_NAME\n baker ads linkedin account url-params --clear`,\n },\n args: {\n ...accountArgs,\n param: {\n type: \"string\",\n description: 'Fixed key=value, repeatable or &-joined (e.g. --param \"utm_source=linkedin&utm_medium=paid\")',\n },\n dynamic: {\n type: \"string\",\n description: \"key=PLACEHOLDER LinkedIn fills in per ad, repeatable (e.g. --dynamic utm_campaign=CAMPAIGN_NAME)\",\n },\n clear: { type: \"boolean\", description: \"Remove every tracking parameter set on the ad account\" },\n file: { type: \"string\", description: \"JSON file with the full payload; flags override file keys\" },\n },\n run: async ({ args, rawArgs }) => {\n const { accountId, target } = accountTrackingTarget(args as Record<string, unknown>);\n await stageOp({\n kind: \"trackingParams.set\",\n accountId,\n target,\n payload: trackingParamsPayload(args as Record<string, unknown>, rawArgs),\n });\n },\n});\n\nexport const campaignsPauseCommand = statusSugarCommand(\"campaigns\", \"campaign.update\", \"pause\");\nexport const campaignsResumeCommand = statusSugarCommand(\"campaigns\", \"campaign.update\", \"resume\");\nexport const campaignsArchiveCommand = statusSugarCommand(\"campaigns\", \"campaign.update\", \"archive\");\nexport const campaignGroupsPauseCommand = statusSugarCommand(\"campaign-groups\", \"campaignGroup.update\", \"pause\");\nexport const campaignGroupsResumeCommand = statusSugarCommand(\"campaign-groups\", \"campaignGroup.update\", \"resume\");\nexport const creativesPauseCommand = statusSugarCommand(\"creatives\", \"creative.update\", \"pause\");\nexport const creativesResumeCommand = statusSugarCommand(\"creatives\", \"creative.update\", \"resume\");\n\nfunction duplicateCommand(entity: \"campaignGroup\" | \"campaign\" | \"creative\", cliGroup: string) {\n return defineCommand({\n meta: {\n name: \"duplicate\",\n description: `Stage a copy of an existing ${entity} as a new DRAFT create (playbook: duplicate, never link-to-original). ${STAGED_NOTE}\nExample: baker ads linkedin ${cliGroup} duplicate 123456 --name \"New variant\"`,\n },\n args: {\n id: { type: \"positional\", description: \"Source id or URN\", required: true },\n ...accountArgs,\n name: { type: \"string\", description: \"Name for the copy\" },\n file: { type: \"string\", description: \"JSON file with field overrides for the copy\" },\n },\n run: async ({ args }) => {\n try {\n const chatId = requireChatId();\n const overrides = mergePayload(loadJsonFileArg(args.file), { name: args.name });\n const response = await apiPost<{ ok: true; data: LinkedinDraftStageResponse }>(\n \"/api/ads/linkedin/draft/duplicate\",\n {\n chatId,\n accountId: bareAccountId(args as Record<string, unknown>),\n entity,\n sourceId: requireTarget(args as Record<string, unknown>, entity),\n ...(Object.keys(overrides).length > 0 ? { overrides } : {}),\n },\n );\n writeJsonEnvelope(response);\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n });\n}\n\nexport const campaignsDuplicateCommand = duplicateCommand(\"campaign\", \"campaigns\");\nexport const campaignGroupsDuplicateCommand = duplicateCommand(\"campaignGroup\", \"campaign-groups\");\n\nexport const creativesDuplicateCommand = defineCommand({\n meta: {\n name: \"duplicate\",\n description: `Stage a copy of an existing ad, optionally with new content. ${STAGED_NOTE}\nContent flags only apply to direct-content ads (text|spotlight|follower|jobs) — 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 — stage \\`creatives create\\` with the new content instead, then pause the old ad.\n--replace also pauses the original once the new ad publishes (skipped if the new ad fails).\nExamples:\n baker ads linkedin creatives duplicate 1458413484 --headline \"10x Demos, Same Team\" --description \"AI handles every demo request.\" --replace\n baker ads linkedin creatives duplicate urn:li:sponsoredCreative:789 --campaign 799305464`,\n },\n args: {\n id: { type: \"positional\", description: \"Source creative id or URN\", required: true },\n ...accountArgs,\n campaign: { type: \"string\", description: \"Stage the copy under a different ad set (id/URN or li_temp_*)\" },\n \"intended-status\": {\n type: \"string\",\n description: \"Status for the copy (default DRAFT; with --replace, the source's status)\",\n },\n replace: {\n type: \"boolean\",\n description: \"Also pause the original once the new ad publishes; the copy inherits the source's status\",\n },\n intro: { type: \"string\", description: \"New commentary / intro text\" },\n headline: { type: \"string\", description: \"New headline\" },\n description: { type: \"string\", description: \"New description (text/spotlight ads)\" },\n \"landing-url\": {\n type: \"string\",\n description: \"New https destination URL (direct-content ads only — a post-based ad's URL lives in its post)\",\n },\n cta: { type: \"string\", description: \"New CTA (LEARN_MORE|REQUEST_DEMO|…)\" },\n \"cta-label\": { type: \"string\", description: \"Spotlight custom CTA label\" },\n \"image-id\": { type: \"string\", description: \"Baker image library id\" },\n \"image-urn\": { type: \"string\", description: \"Existing urn:li:image:*\" },\n \"video-id\": {\n type: \"string\",\n description:\n \"Baker video library id (`baker videos`) — uploaded to LinkedIn at publish; a first publish may ask to retry while the full-quality copy is prepared\",\n },\n \"video-urn\": { type: \"string\", description: \"Existing urn:li:video:*\" },\n \"logo-image-id\": { type: \"string\", description: \"Baker image id for the logo\" },\n title: { type: \"string\", description: \"Media title\" },\n file: { type: \"string\", description: \"JSON file with field overrides for the copy\" },\n },\n run: async ({ args }) => {\n try {\n const chatId = requireChatId();\n const file = loadJsonFileArg(args.file);\n const fileContent =\n file.content !== null && typeof file.content === \"object\" && !Array.isArray(file.content)\n ? (file.content as Record<string, unknown>)\n : {};\n const content = { ...fileContent, ...creativeContentPatch(args as Record<string, unknown>) };\n const overrides = mergePayload(file, {\n campaign: args.campaign,\n intendedStatus: args[\"intended-status\"] ? String(args[\"intended-status\"]).toUpperCase() : undefined,\n content: Object.keys(content).length > 0 ? content : undefined,\n });\n const response = await apiPost<{ ok: true; data: LinkedinDraftStageResponse }>(\n \"/api/ads/linkedin/draft/duplicate\",\n {\n chatId,\n accountId: bareAccountId(args as Record<string, unknown>),\n entity: \"creative\",\n sourceId: requireTarget(args as Record<string, unknown>, \"creative\"),\n ...(Object.keys(overrides).length > 0 ? { overrides } : {}),\n ...(args.replace ? { replace: true } : {}),\n },\n );\n writeJsonEnvelope(response);\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\n// --- Creatives ---\n\nconst CREATIVE_FORMATS = [\n \"image\",\n \"video\",\n \"text\",\n \"spotlight\",\n \"follower\",\n \"document\",\n \"carousel\",\n \"conversation\",\n \"tla\",\n \"jobs\",\n \"event\",\n \"article\",\n] as const;\n\nexport const creativesCreateCommand = defineCommand({\n meta: {\n name: \"create\",\n description: `Stage a new creative (ad). ${STAGED_NOTE}\nFormats: ${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[]}} — 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).\nExamples:\n baker ads linkedin creatives create --campaign li_temp_x2 --format image --image-id <bakerImageId> --intro \"Meet the platform…\" --headline \"Book a demo\" --landing-url https://example.com/demo --cta REQUEST_DEMO\n baker ads linkedin creatives create --campaign 123456 --format tla --post <post id from \\`baker posts list\\`>\nBoosting a post (Thought Leader ad): --format tla sponsors a post that already exists — the company page's own (not a reshare) or a person's (the CEO's…) once they approve it in Campaign Manager. Name it with --post <Baker post id> (\\`baker posts list --usable usable\\` or \\`--usable needs_approval\\`), or --post-url with any link to the post (a normal \"copy link\" works: Baker reads the post and adds it to Posts). Staging refuses a post that can't run as an ad, with the reason. A video post goes in a SINGLE_VIDEO ad set, any other in STANDARD_UPDATE.\nDocument 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 — the first N pages show, the form unlocks the rest:\n baker ads linkedin creatives create --campaign li_temp_x2 --format document --document solar-report --title \"2026 solar report\" --intro \"…\" --lead-form li_temp_f1 --lead-form-button UNLOCK_FULL_DOCUMENT --preview-pages 3\nLead gen ads (an ad set with objective LEAD_GENERATION) open a form instead of a landing page — every ad in one needs --lead-form, and staging refuses it without:\n baker ads linkedin lead-forms create --file form.json # → li_temp_f1\n baker ads linkedin creatives create --campaign li_temp_x2 --format image --image-id <id> --intro \"…\" --headline \"Get the report\" --lead-form li_temp_f1 --lead-form-button DOWNLOAD`,\n },\n args: {\n ...accountArgs,\n campaign: { type: \"string\", description: \"Campaign id/URN, or li_temp_* ref staged in this chat\" },\n format: { type: \"string\", description: CREATIVE_FORMATS.join(\"|\") },\n \"image-id\": { type: \"string\", description: \"Baker image library id (uploaded to LinkedIn at publish)\" },\n \"image-urn\": { type: \"string\", description: \"Existing urn:li:image:*\" },\n \"video-id\": {\n type: \"string\",\n description:\n \"Baker video library id (`baker videos`) — uploaded to LinkedIn at publish; a first publish may ask to retry while the full-quality copy is prepared\",\n },\n \"video-urn\": { type: \"string\", description: \"Existing urn:li:video:*\" },\n \"logo-image-id\": { type: \"string\", description: \"Baker image id for logo (text/spotlight/follower/jobs)\" },\n intro: { type: \"string\", description: \"Commentary / intro text (≤600 chars before feed truncation)\" },\n headline: { type: \"string\", description: \"Headline (≤70; text ads ≤25)\" },\n description: { type: \"string\", description: \"Description (text ads ≤75, spotlight ≤70)\" },\n \"landing-url\": { type: \"string\", description: \"https destination URL\" },\n cta: { type: \"string\", description: \"LEARN_MORE|REQUEST_DEMO|SIGN_UP|REGISTER|DOWNLOAD|…\" },\n \"cta-label\": { type: \"string\", description: \"Spotlight custom CTA label (≤18 chars)\" },\n post: {\n type: \"string\",\n description: \"TLA: the post to sponsor, by its Baker post id (`baker posts list`) — the simplest way\",\n },\n \"post-urn\": {\n type: \"string\",\n description: \"TLA: the post to sponsor by its URN — urn:li:share|ugcPost:*\",\n },\n \"post-url\": {\n type: \"string\",\n description: \"TLA: any link to the post (normal or embed); Baker reads it and adds it to Posts\",\n },\n sender: {\n type: \"string\",\n description:\n \"Conversation ads: urn:li:person:* the conversation arrives from (from `account-users`; default: whoever connected LinkedIn)\",\n },\n \"lead-form\": {\n type: \"string\",\n description:\n \"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\",\n },\n \"lead-form-button\": {\n type: \"string\",\n description: `Button that opens the form: ${LEADGEN_CTA_LABELS.join(\"|\")} (default SIGN_UP)`,\n },\n document: {\n type: \"string\",\n description:\n \"Document ads: a Baker document's folder name (src/documents/<name>) — its PDF goes to LinkedIn at publish, after the document itself is published\",\n },\n \"document-url\": {\n type: \"string\",\n description: \"Document ads: https link to a PDF, PowerPoint or Word file (≤100 MB, ≤300 pages)\",\n },\n \"document-urn\": { type: \"string\", description: \"Document ads: existing urn:li:document:*\" },\n \"preview-pages\": {\n type: \"string\",\n description:\n \"Gated document ads: pages shown before the lead gen form (needs --lead-form; fewer than the document has, which must be 2+ pages)\",\n },\n \"event-urn\": { type: \"string\", description: \"Event ads: the LinkedIn event to sponsor (urn:li:event:*)\" },\n \"article-url\": { type: \"string\", description: \"Article ads: https URL of the article/newsletter to sponsor\" },\n \"thumbnail-image-id\": { type: \"string\", description: \"Article ads: Baker image id for the link thumbnail\" },\n \"thumbnail-urn\": { type: \"string\", description: \"Article ads: existing urn:li:image:* thumbnail\" },\n \"intended-status\": {\n type: \"string\",\n description: \"DRAFT|ACTIVE (default DRAFT) — a new ad can't start PAUSED; DRAFT holds it back\",\n },\n title: { type: \"string\", description: \"Media title (image/video), article title, or document title\" },\n file: { type: \"string\", description: \"JSON file with the full content object; flags override\" },\n },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n if (!args.campaign) {\n failWriteValidation(\"--campaign is required (id, URN, or li_temp_* ref)\");\n }\n const format = args.format ? String(args.format) : undefined;\n if (!format || !CREATIVE_FORMATS.includes(format as (typeof CREATIVE_FORMATS)[number])) {\n failWriteValidation(`--format must be one of ${CREATIVE_FORMATS.join(\"|\")}`);\n }\n const content = mergePayload(loadJsonFileArg(args.file), {\n format,\n commentary: args.intro,\n imageId: args[\"image-id\"],\n imageUrn: args[\"image-urn\"],\n videoId: args[\"video-id\"],\n videoUrn: args[\"video-urn\"],\n logoImageId: args[\"logo-image-id\"],\n headline: args.headline,\n description: args.description,\n landingUrl: args[\"landing-url\"],\n cta: args.cta ? String(args.cta).toUpperCase() : undefined,\n ctaLabel: args[\"cta-label\"],\n ...sponsoredPostArgs(args as Record<string, unknown>),\n sender: args.sender,\n eventUrn: args[\"event-urn\"],\n source: args[\"article-url\"],\n thumbnailImageId: args[\"thumbnail-image-id\"],\n thumbnailUrn: args[\"thumbnail-urn\"],\n mediaTitle: args.title,\n title: args.title,\n ...documentContentArgs(format, args as Record<string, unknown>),\n });\n const leadgenCallToAction = leadgenCallToActionArg(args as Record<string, unknown>);\n await stageOp({\n kind: \"creative.create\",\n accountId,\n payload: {\n campaign: args.campaign,\n intendedStatus: args[\"intended-status\"] ? String(args[\"intended-status\"]).toUpperCase() : undefined,\n content,\n ...(leadgenCallToAction ? { leadgenCallToAction } : {}),\n },\n });\n },\n});\n\n/** `--document*` / `--preview-pages` → a document ad's file, title and gate. */\nfunction documentContentArgs(format: string, args: Record<string, unknown>): Record<string, unknown> {\n if (format !== \"document\") {\n return {};\n }\n const previewPages = args[\"preview-pages\"] === undefined ? undefined : Number(args[\"preview-pages\"]);\n if (previewPages !== undefined && !(Number.isInteger(previewPages) && previewPages >= 1)) {\n failWriteValidation(\"--preview-pages must be a whole number of pages, e.g. 3\");\n }\n return {\n documentId: args.document,\n documentUrl: args[\"document-url\"],\n documentUrn: args[\"document-urn\"],\n documentTitle: args.title,\n previewPages,\n };\n}\n\n/**\n * `--post` / `--post-urn` / `--post-url` → how the ad names the post it\n * sponsors. A URN (or an embed link carrying one) is sent as is; a Baker post\n * id, or an everyday link that names only the post's activity, is resolved to\n * the URN at staging, from the Posts library.\n */\nexport function sponsoredPostArgs(args: Record<string, unknown>): {\n postUrn?: string;\n bakerPostId?: string;\n postLink?: string;\n} {\n const named = [\"post\", \"post-urn\", \"post-url\"].filter((flag) => args[flag] !== undefined);\n if (named.length > 1) {\n failWriteValidation(`name the post once: ${named.map((flag) => `--${flag}`).join(\" and \")} were both passed`);\n }\n if (args.post !== undefined) {\n return { bakerPostId: String(args.post) };\n }\n const value = args[\"post-urn\"] ?? args[\"post-url\"];\n if (value === undefined) {\n return {};\n }\n const post = sponsoredPostUrn(String(value));\n if (\"urn\" in post) {\n return { postUrn: post.urn };\n }\n if (/^https?:\\/\\//i.test(String(value).trim())) {\n return { postLink: String(value).trim() };\n }\n failWriteValidation(`--post-urn: ${post.error}`);\n}\n\n/** `--lead-form` / `--lead-form-button` → the creative's `leadgenCallToAction`. */\nexport function leadgenCallToActionArg(\n args: Record<string, unknown>,\n): { destination: string; label: string } | undefined {\n const destination = args[\"lead-form\"] !== undefined ? String(args[\"lead-form\"]) : undefined;\n const label = args[\"lead-form-button\"] !== undefined ? String(args[\"lead-form-button\"]).toUpperCase() : undefined;\n if (destination === undefined) {\n if (label !== undefined) {\n failWriteValidation(\"--lead-form-button needs --lead-form (the form the button opens)\");\n }\n return undefined;\n }\n return { destination, label: label ?? \"SIGN_UP\" };\n}\n\n/** Content fields `creatives update` can amend on a li_temp_* staged creative. */\nconst CREATIVE_AMEND_CONTENT_FLAGS = [\n [\"intro\", \"commentary\"],\n [\"headline\", \"headline\"],\n [\"description\", \"description\"],\n [\"landing-url\", \"landingUrl\"],\n [\"cta-label\", \"ctaLabel\"],\n [\"image-id\", \"imageId\"],\n [\"image-urn\", \"imageUrn\"],\n [\"video-id\", \"videoId\"],\n [\"video-urn\", \"videoUrn\"],\n [\"logo-image-id\", \"logoImageId\"],\n [\"thumbnail-image-id\", \"thumbnailImageId\"],\n [\"thumbnail-urn\", \"thumbnailUrn\"],\n [\"title\", \"title\"],\n] as const;\n\nfunction creativeContentPatch(args: Record<string, unknown>): Record<string, unknown> {\n const patch: Record<string, unknown> = {};\n for (const [flag, key] of CREATIVE_AMEND_CONTENT_FLAGS) {\n if (args[flag] !== undefined) {\n patch[key] = args[flag];\n }\n }\n if (args.cta !== undefined) {\n patch.cta = String(args.cta).toUpperCase();\n }\n return patch;\n}\n\nexport const creativesUpdateCommand = defineCommand({\n meta: {\n name: \"update\",\n description: `Stage changes to an existing creative, or amend a creative staged in this chat by passing its li_temp_* ref. ${STAGED_NOTE}\nDirect-content ads (text/spotlight/follower/jobs) update copy/media/URL IN PLACE — changed fields merge into the ad's current content. Post-based ads (image/video/carousel/…) sponsor a post that owns the copy, media and destination: neither this command nor \\`creatives duplicate\\` can change it — stage \\`creatives create\\` with the new content, then pause the old ad. Staged creatives (li_temp_*) accept all content flags and re-validate.\nApplies 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 — a li_temp_* amend has to be its own call.\n--campaign re-parents the ad to a different ad set — 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.\nExamples:\n baker ads linkedin creatives update 1458423674 --headline \"Sharper headline\" --description \"New copy.\"\n baker ads linkedin creatives update urn:li:sponsoredCreative:789 --intended-status PAUSED\n baker ads linkedin creatives update 1458423674,1458423675,1458423676 --intended-status PAUSED\n baker ads linkedin creatives update --ids-file ads.txt --intended-status PAUSED\n baker ads linkedin creatives update li_temp_x3 --campaign li_temp_x2\n baker ads linkedin creatives update li_temp_x3 --lead-form li_temp_f1 --lead-form-button REQUEST_DEMO\n--lead-form on a live ad works only while that ad is DRAFT — LinkedIn locks the form once it leaves DRAFT.`,\n },\n args: {\n id: {\n type: \"positional\",\n description:\n \"Creative id/URN — comma-separate several. A li_temp_* ref amends what this chat staged and must be passed on its own.\",\n required: false,\n },\n \"ids-file\": { type: \"string\", description: \"File of creative ids, one per line or comma-separated\" },\n ...accountArgs,\n \"intended-status\": { type: \"string\", description: \"ACTIVE|PAUSED|ARCHIVED|DRAFT\" },\n name: { type: \"string\", description: \"New creative name\" },\n campaign: {\n type: \"string\",\n description: \"Re-parent to a different ad set (id/URN or li_temp_*) — staged creatives only\",\n },\n intro: { type: \"string\", description: \"Commentary / intro text\" },\n headline: { type: \"string\", description: \"New headline\" },\n description: { type: \"string\", description: \"Description (text/spotlight ads)\" },\n \"landing-url\": { type: \"string\", description: \"New https destination URL\" },\n cta: { type: \"string\", description: \"New CTA (LEARN_MORE|REQUEST_DEMO|…)\" },\n \"cta-label\": { type: \"string\", description: \"Spotlight custom CTA label\" },\n \"lead-form\": {\n type: \"string\",\n description: \"Lead gen form the ad opens: li_temp_* or form id (live ads: DRAFT only)\",\n },\n \"lead-form-button\": {\n type: \"string\",\n description: `Button that opens the form: ${LEADGEN_CTA_LABELS.join(\"|\")} (default SIGN_UP); needs --lead-form`,\n },\n \"image-id\": { type: \"string\", description: \"Baker image library id\" },\n \"image-urn\": { type: \"string\", description: \"Existing urn:li:image:*\" },\n \"video-id\": {\n type: \"string\",\n description:\n \"Baker video library id (`baker videos`) — uploaded to LinkedIn at publish; a first publish may ask to retry while the full-quality copy is prepared\",\n },\n \"video-urn\": { type: \"string\", description: \"Existing urn:li:video:*\" },\n \"logo-image-id\": { type: \"string\", description: \"Baker image id for the logo\" },\n \"thumbnail-image-id\": { type: \"string\", description: \"Baker image id for the article thumbnail\" },\n \"thumbnail-urn\": { type: \"string\", description: \"Existing urn:li:image:* thumbnail\" },\n title: { type: \"string\", description: \"Media or article title\" },\n ...fileArg(\"creative.update\", \"JSON file with fields to change; flags override file keys\"),\n },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n const targets = requireTargets(args as Record<string, unknown>, \"creative\");\n const file = loadJsonFileArg(args.file);\n const contentPatch = creativeContentPatch(args as Record<string, unknown>);\n const intendedStatus = args[\"intended-status\"] ? String(args[\"intended-status\"]).toUpperCase() : undefined;\n const fileContent =\n file.content !== null && typeof file.content === \"object\" && !Array.isArray(file.content)\n ? (file.content as Record<string, unknown>)\n : {};\n const content = { ...fileContent, ...contentPatch };\n const payload = mergePayload(file, {\n intendedStatus,\n name: args.name,\n campaign: args.campaign,\n content: Object.keys(content).length > 0 ? content : undefined,\n leadgenCallToAction: leadgenCallToActionArg(args as Record<string, unknown>),\n });\n await stageLinkedinOps(targets.map((target) => ({ kind: \"creative.update\", accountId, target, payload })));\n },\n});\n\n// --- Audiences ---\n\nconst AUDIENCE_TYPES = [\"company-list\", \"user-list\", \"retargeting\", \"engagement\"] as const;\nconst INLINE_ROWS_MAX = 10_000;\n\nconst audiencesCreateCommand = defineCommand({\n meta: {\n name: \"create\",\n description: `Stage a new matched audience. ${STAGED_NOTE}\nList audiences take --list-file (CSV: companies by companyName, domain and the LinkedIn page — a linkedinCompanyPageUrl column (LinkedIn's own template; https://www.linkedin.com/company/<slug>) or organizationUrn — which matches the company exactly, so keep it, never drop it; email,… for contacts — emails are SHA-256 hashed locally). LinkedIn needs 300+ MATCHED members to serve: a contact list needs well above 300 rows; a company list counts every employee of its companies.\nExample: baker ads linkedin audiences create --name \"ABM Tier-1\" --type company-list --list-file accounts.csv`,\n },\n args: {\n ...accountArgs,\n name: { type: \"string\", description: \"Audience name (≤100 chars)\" },\n type: { type: \"string\", description: AUDIENCE_TYPES.join(\"|\") },\n \"list-file\": { type: \"string\", description: \"CSV file with the list rows (header row required)\" },\n file: {\n type: \"string\",\n description:\n 'JSON file with a raw source config (retargeting/engagement) — 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\"}}}]}',\n },\n },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n const list = parseListFileArg(args[\"list-file\"], INLINE_ROWS_MAX);\n const raw = args.file ? loadJsonFileArg(args.file) : undefined;\n await stageOp({\n kind: \"audience.create\",\n accountId,\n payload: {\n name: args.name,\n audienceType: args.type,\n ...(list ? { listColumns: list.columns, listRows: list.rows } : {}),\n ...(list?.emailPreviews ? { listEmailPreviews: list.emailPreviews } : {}),\n ...(raw ? { raw } : {}),\n },\n });\n },\n});\n\nconst audiencesUploadCommand = defineCommand({\n meta: {\n name: \"upload\",\n description: `Stage replacing an audience's list with a new file. ${STAGED_NOTE}\nLinkedIn 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.\nExample: baker ads linkedin audiences upload urn:li:dmpSegment:42 --list-file all-target-accounts.csv`,\n },\n args: {\n id: { type: \"positional\", description: \"Segment URN/id, or li_temp_* ref staged in this chat\", required: true },\n ...accountArgs,\n \"list-file\": {\n type: \"string\",\n description: \"CSV file with the WHOLE list the audience should hold\",\n required: true,\n },\n },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n const list = parseListFileArg(args[\"list-file\"], INLINE_ROWS_MAX);\n if (!list) {\n failWriteValidation(\"--list-file is required\");\n }\n await stageOp({\n kind: \"audience.uploadList\",\n accountId,\n payload: {\n segment: requireTarget(args as Record<string, unknown>, \"audience segment\"),\n listColumns: list.columns,\n listRows: list.rows,\n ...(list.emailPreviews ? { listEmailPreviews: list.emailPreviews } : {}),\n },\n });\n },\n});\n\nconst audiencesDeleteCommand = defineCommand({\n meta: {\n name: \"delete\",\n description: `Stage deleting a matched audience — its list and its targetable twin go too. ${STAGED_NOTE}\nLinkedIn 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.\nExample: baker ads linkedin audiences delete urn:li:dmpSegment:77530978`,\n },\n args: {\n id: {\n type: \"positional\",\n description: \"Audience URN (urn:li:dmpSegment:…) or id from `audiences`\",\n required: true,\n },\n ...accountArgs,\n },\n run: async ({ args }) => {\n await stageOp({\n kind: \"audience.delete\",\n accountId: bareAccountId(args as Record<string, unknown>),\n target: requireTarget(args as Record<string, unknown>, \"audience\"),\n payload: {},\n });\n },\n});\n\nconst audiencesListCommand = defineCommand({\n meta: {\n name: \"list\",\n description:\n \"List the ad account's matched audiences: status (BUILDING until LinkedIn has matched it, READY to serve), rows uploaded vs matched, and targetingUrn — the urn:li:adSegment:… targeting and exclusions take. Runs by default.\",\n },\n args: { ...accountArgs },\n run: async ({ args }) => {\n try {\n const data = await apiGet<unknown[]>(\"/api/ads/linkedin/audiences\", {\n \"account-id\": bareAccountId(args as Record<string, unknown>),\n });\n writeJsonEnvelope({ ok: true, data });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\nexport const audiencesCommand = defineCommand({\n meta: {\n name: \"audiences\",\n description: `List the ad account's matched audiences, or stage changes to them (create lists, upload rows — staged until publish).\nExamples:\n baker ads linkedin audiences # status, uploaded vs matched, targetingUrn\n baker ads linkedin audiences create --name \"ABM Tier-1\" --type company-list --list-file accounts.csv`,\n },\n // A parent must never declare `run` — see `creativesCommand`.\n args: { ...accountArgs },\n default: \"list\",\n subCommands: {\n list: audiencesListCommand,\n create: audiencesCreateCommand,\n upload: audiencesUploadCommand,\n delete: audiencesDeleteCommand,\n },\n});\n\n// --- Conversions ---\n\nexport const conversionsCreateCommand = defineCommand({\n meta: {\n name: \"create\",\n description: `Stage a new conversion rule. ${STAGED_NOTE}\nExample: baker ads linkedin conversions create --name \"Demo booked\" --type LEAD --method INSIGHT_TAG --post-click-window 30 --view-window 7`,\n },\n args: {\n ...accountArgs,\n name: { type: \"string\", description: \"Conversion rule name\" },\n type: {\n type: \"string\",\n description:\n \"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 — `baker schema ads.linkedin.conversions.create` lists all 34\",\n },\n method: { type: \"string\", description: \"INSIGHT_TAG|CONVERSIONS_API\" },\n \"post-click-window\": {\n type: \"string\",\n description:\n \"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\",\n },\n \"view-window\": {\n type: \"string\",\n description:\n \"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\",\n },\n \"attribution-type\": { type: \"string\", description: \"LAST_TOUCH_BY_CAMPAIGN|LAST_TOUCH_BY_CONVERSION\" },\n \"associate-all-campaigns\": { type: \"boolean\", description: \"Auto-associate with active campaigns\" },\n ...fileArg(\"conversion.create\", \"JSON file with the full payload (e.g. urlMatchRuleExpression)\"),\n },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n const payload = mergePayload(loadJsonFileArg(args.file), {\n name: args.name,\n type: args.type ? String(args.type).toUpperCase() : undefined,\n conversionMethod: args.method ? String(args.method).toUpperCase() : undefined,\n postClickAttributionWindowSize: args[\"post-click-window\"] ? Number(args[\"post-click-window\"]) : undefined,\n viewThroughAttributionWindowSize: args[\"view-window\"] ? Number(args[\"view-window\"]) : undefined,\n attributionType: args[\"attribution-type\"] ? String(args[\"attribution-type\"]).toUpperCase() : undefined,\n associateAllCampaigns: args[\"associate-all-campaigns\"] === true ? true : undefined,\n });\n await stageOp({ kind: \"conversion.create\", accountId, payload });\n },\n});\n\nexport const conversionsUpdateCommand = defineCommand({\n meta: {\n name: \"update\",\n description: `Stage changes to a conversion rule (windows, name, enabled). ${STAGED_NOTE}\nExample: baker ads linkedin conversions update 104988516 --post-click-window 30 --view-window 7`,\n },\n args: {\n id: { type: \"positional\", description: \"Conversion rule id or URN\", required: true },\n ...accountArgs,\n name: { type: \"string\", description: \"New name\" },\n \"post-click-window\": {\n type: \"string\",\n description:\n \"1|7|30|90 days; 180|365 only for LEAD, QUALIFIED_LEAD, MARKETING_QUALIFIED_LEAD, SALES_QUALIFIED_LEAD, PURCHASE, ADD_TO_CART, SUBMIT_APPLICATION\",\n },\n \"view-window\": {\n type: \"string\",\n description:\n \"1|7|30|90 days; 180|365 only for LEAD, QUALIFIED_LEAD, MARKETING_QUALIFIED_LEAD, SALES_QUALIFIED_LEAD, PURCHASE, ADD_TO_CART, SUBMIT_APPLICATION\",\n },\n \"attribution-type\": { type: \"string\", description: \"LAST_TOUCH_BY_CAMPAIGN|LAST_TOUCH_BY_CONVERSION\" },\n enabled: { type: \"string\", description: \"on|off\" },\n ...fileArg(\"conversion.update\", \"JSON file with fields to change\"),\n },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n const payload = mergePayload(loadJsonFileArg(args.file), {\n name: args.name,\n postClickAttributionWindowSize: args[\"post-click-window\"] ? Number(args[\"post-click-window\"]) : undefined,\n viewThroughAttributionWindowSize: args[\"view-window\"] ? Number(args[\"view-window\"]) : undefined,\n attributionType: args[\"attribution-type\"] ? String(args[\"attribution-type\"]).toUpperCase() : undefined,\n enabled: parseOnOffFlag(args.enabled, \"--enabled\"),\n });\n await stageOp({\n kind: \"conversion.update\",\n accountId,\n target: requireTarget(args as Record<string, unknown>, \"conversion rule\"),\n payload,\n });\n },\n});\n\nexport const conversionsUploadCommand = defineCommand({\n meta: {\n name: \"upload\",\n description: `Stage sending conversions that happened off LinkedIn's tag — deals a CRM closed, leads qualified on a call — to a Conversions API rule, so LinkedIn credits the ads that drove them and bids toward them. ${STAGED_NOTE}\nStart here: \\`conversions\\` lists the rules — 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.\nThe file (CSV with a header row, or a JSON array) carries one conversion per row: eventId (the CRM deal or order id — 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.\nExample: baker ads linkedin conversions upload 19997433 --file closed-won.csv`,\n },\n args: {\n id: { type: \"positional\", description: \"Conversions API rule id (from `conversions`)\", required: true },\n ...accountArgs,\n file: { type: \"string\", description: \"CSV or JSON file of conversions\", required: true },\n },\n run: async ({ args }) => {\n const path = String(args.file);\n const rows = path.toLowerCase().endsWith(\".json\")\n ? jsonRowsArg(path)\n : (parseListFileArg(path, CONVERSION_UPLOAD_MAX_EVENTS)?.rows ?? []);\n const { events, ignored } = conversionUploadEvents(rows);\n if (ignored.length > 0) {\n process.stderr.write(\n `Ignored column(s) that are not part of a conversion: ${ignored.join(\", \")}. Used: eventId, happenedAt, email, firstName, lastName, companyName, title, countryCode, liFatId, value, currency.\\n`,\n );\n }\n await stageOp({\n kind: \"conversion.upload\",\n accountId: bareAccountId(args as Record<string, unknown>),\n target: requireTarget(args as Record<string, unknown>, \"conversion rule\"),\n payload: { events },\n });\n },\n});\n\nfunction jsonRowsArg(path: string): Array<Record<string, unknown>> {\n const parsed: unknown = JSON.parse(readFileSync(path, \"utf8\"));\n if (!Array.isArray(parsed)) {\n failWriteValidation(`${path} must hold a JSON array, one conversion per element`);\n }\n return parsed as Array<Record<string, unknown>>;\n}\n\nconst CONVERSION_CAMPAIGN_EXPLAINER = `Which ad sets a conversion rule counts for is a separate LinkedIn record, not a field on the rule — \\`conversions update\\` cannot change it, and \\`--associate-all-campaigns\\` only exists on create.`;\n\nfunction conversionCampaignArgs() {\n return {\n id: { type: \"positional\" as const, description: \"Conversion rule id or URN\", required: true },\n ...accountArgs,\n campaign: { type: \"string\" as const, description: \"Ad set (campaign) id or URN\", required: true },\n };\n}\n\nfunction requireCampaignArg(args: Record<string, unknown>): string {\n const campaign = args.campaign;\n if (typeof campaign !== \"string\" || campaign.length === 0) {\n failWriteValidation(\"--campaign is required — pass the ad set id or URN this conversion should count for\");\n }\n return campaign as string;\n}\n\nexport const conversionsAssociateCommand = defineCommand({\n meta: {\n name: \"associate-campaign\",\n description: `Count an existing conversion rule for one ad set. ${STAGED_NOTE}\n${CONVERSION_CAMPAIGN_EXPLAINER}\nExample: baker ads linkedin conversions associate-campaign 104988516 --campaign 337643194`,\n },\n args: conversionCampaignArgs(),\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n await stageOp({\n kind: \"conversion.associateCampaign\",\n accountId,\n target: requireTarget(args as Record<string, unknown>, \"conversion rule\"),\n payload: { campaign: requireCampaignArg(args as Record<string, unknown>) },\n });\n },\n});\n\nexport const conversionsDissociateCommand = defineCommand({\n meta: {\n name: \"dissociate-campaign\",\n description: `Stop counting an existing conversion rule for one ad set. ${STAGED_NOTE}\n${CONVERSION_CAMPAIGN_EXPLAINER}\nExample: baker ads linkedin conversions dissociate-campaign 104988516 --campaign 337643194`,\n },\n args: conversionCampaignArgs(),\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n await stageOp({\n kind: \"conversion.dissociateCampaign\",\n accountId,\n target: requireTarget(args as Record<string, unknown>, \"conversion rule\"),\n payload: { campaign: requireCampaignArg(args as Record<string, unknown>) },\n });\n },\n});\n\n// --- Lead gen forms (file-first — deeply nested) ---\n\nconst leadFormsCreateCommand = defineCommand({\n meta: {\n name: \"create\",\n description: `Stage a new Lead Gen Form from a JSON file. ${STAGED_NOTE}\nRequired: name, headline (≤60), privacyPolicyUrl, questions[] (≤12; playbook: ≤4 for completion).\nEach question is a predefined profile field ({ name, predefinedField: \"EMAIL\" }) or a custom question ({ name, questionType: \"MULTIPLE_CHOICE\", options: [...] }; ≤3 custom).\nBest-practice fields the preview will nudge for if missing: 1-3 qualifying questions, consents[] (disclosure checkboxes), thankYou.message + thankYou.landingUrl|appointmentUrl.\nAlso supported: locale, formImageId|formImageUrn, hiddenFields[], legalDisclaimer, thankYou.cta. Example: baker ads linkedin lead-forms create --file form.json`,\n },\n args: {\n ...accountArgs,\n file: { ...fileArg(\"leadForm.create\", \"JSON file with the form definition\").file, required: true },\n name: { type: \"string\", description: \"Override the form name\" },\n },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n const payload = mergePayload(loadJsonFileArg(args.file), { name: args.name });\n await stageOp({ kind: \"leadForm.create\", accountId, payload });\n },\n});\n\n/** Flags `lead-forms update` turns into fields — the copy LinkedIn keeps editable once a form's ads are live. */\nfunction leadFormUpdatePayload(args: Record<string, unknown>): Record<string, unknown> {\n const file = args.file ? loadJsonFileArg(args.file) : {};\n const thankYou = mergePayload(\n file.thankYou !== null && typeof file.thankYou === \"object\" ? (file.thankYou as Record<string, unknown>) : {},\n { message: args[\"thank-you-message\"], landingUrl: args[\"thank-you-url\"] },\n );\n return mergePayload(file, {\n name: args.name,\n state: args.state ? String(args.state).toUpperCase() : undefined,\n headline: args.headline,\n description: args.description,\n privacyPolicyUrl: args[\"privacy-policy-url\"],\n legalDisclaimer: args[\"legal-disclaimer\"],\n thankYou: Object.keys(thankYou).length > 0 ? thankYou : undefined,\n });\n}\n\nconst leadFormsUpdateCommand = defineCommand({\n meta: {\n name: \"update\",\n description: `Stage changes to a Lead Gen Form. ${STAGED_NOTE}\nOnce 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.\nExamples:\n baker ads linkedin lead-forms update 1028403421 --headline \"Get the 2026 report\" --thank-you-message \"Check your inbox\"\n baker ads linkedin lead-forms update 1028403421 --state PUBLISHED`,\n },\n args: {\n id: { type: \"positional\", description: \"Lead form id or URN\", required: true },\n ...accountArgs,\n name: { type: \"string\", description: \"New form name (internal)\" },\n state: { type: \"string\", description: \"PUBLISHED (make a DRAFT form usable) | ARCHIVED (stop its ads)\" },\n headline: { type: \"string\", description: \"Form headline (≤60)\" },\n description: { type: \"string\", description: \"Form details text\" },\n \"privacy-policy-url\": { type: \"string\", description: \"https privacy policy URL\" },\n \"legal-disclaimer\": { type: \"string\", description: \"Custom legal disclaimer\" },\n \"thank-you-message\": { type: \"string\", description: \"Confirmation message after submitting\" },\n \"thank-you-url\": { type: \"string\", description: \"https link on the confirmation screen\" },\n ...fileArg(\"leadForm.update\", \"JSON file with any of the fields above (thankYou as an object); flags override\"),\n },\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n await stageOp({\n kind: \"leadForm.update\",\n accountId,\n target: requireTarget(args as Record<string, unknown>, \"lead form\"),\n payload: leadFormUpdatePayload(args as Record<string, unknown>),\n });\n },\n});\n\nfunction leadFormStateCommand(name: \"publish\" | \"archive\", state: \"PUBLISHED\" | \"ARCHIVED\", what: string) {\n return defineCommand({\n meta: { name, description: `${what} ${STAGED_NOTE}\\nExample: baker ads linkedin lead-forms ${name} 1028403421` },\n args: {\n id: { type: \"positional\", description: \"Lead form id or URN\", required: true },\n ...accountArgs,\n },\n run: async ({ args }) => {\n await stageOp({\n kind: \"leadForm.update\",\n accountId: bareAccountId(args as Record<string, unknown>),\n target: requireTarget(args as Record<string, unknown>, \"lead form\"),\n payload: { state },\n });\n },\n });\n}\n\nconst leadFormsPublishCommand = leadFormStateCommand(\n \"publish\",\n \"PUBLISHED\",\n \"Stage publishing a DRAFT lead gen form, so ads that open it can serve.\",\n);\nconst leadFormsArchiveCommand = leadFormStateCommand(\n \"archive\",\n \"ARCHIVED\",\n \"Stage archiving a lead gen form — every ad that opens it stops serving.\",\n);\n\nconst leadFormsListArgs = {\n ...accountArgs,\n \"form-id\": { type: \"string\", description: \"Read one form (id or urn:li:leadGenForm:N), questions included\" },\n full: { type: \"boolean\", description: \"Every form's questions and options, not just how many it has\" },\n} as const;\n\ninterface LeadFormListRow {\n id: string;\n name?: string;\n state?: string;\n version?: number;\n questions?: unknown[];\n}\n\n/** A form per line by default; its questions spelled out with --full, or when one form is asked for. */\nexport function leadFormsListing<T extends LeadFormListRow>(\n forms: readonly T[],\n opts: { full: boolean; oneForm: boolean },\n): Array<T | { id: string; name?: string; state?: string; version?: number; questions: number }> {\n if (opts.full || opts.oneForm) {\n return [...forms];\n }\n return forms.map((form) => ({\n id: form.id,\n name: form.name,\n state: form.state,\n version: form.version,\n questions: form.questions?.length ?? 0,\n }));\n}\n\nconst leadFormsListCommand = defineCommand({\n meta: {\n name: \"list\",\n description:\n \"List the ad account's lead gen forms: id, name, state (DRAFT forms can't serve), version, how many questions. --full (or --form-id) spells out each question and its options. Runs by default.\",\n },\n args: leadFormsListArgs,\n run: async ({ args }) => {\n const accountId = bareAccountId(args as Record<string, unknown>);\n try {\n const params: Record<string, string> = { \"account-id\": accountId };\n if (args[\"form-id\"]) params[\"form-id\"] = String(args[\"form-id\"]);\n const forms = await apiGet<LeadFormListRow[]>(\"/api/ads/linkedin/lead-forms\", params);\n const data = leadFormsListing(forms, { full: Boolean(args.full), oneForm: Boolean(args[\"form-id\"]) });\n writeJsonEnvelope({ ok: true, data });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\nexport const leadFormsCommand = defineCommand({\n meta: {\n name: \"lead-forms\",\n description: `List the ad account's lead gen forms, or stage changes to them (staged until publish).\nExamples:\n baker ads linkedin lead-forms # every form: id, name, state, question count\n baker ads linkedin lead-forms --form-id 1028403421 # one form, every question and option\n baker ads linkedin lead-forms create --file form.json # → li_temp ref; pass it to \\`creatives create --lead-form\\`\n baker ads linkedin lead-forms publish 1028403421 # a DRAFT form can't serve\n baker ads linkedin lead-forms archive 1028403421 # its ads stop serving`,\n },\n // A parent must never declare `run` — see `creativesCommand`.\n args: leadFormsListArgs,\n default: \"list\",\n subCommands: {\n list: leadFormsListCommand,\n create: leadFormsCreateCommand,\n update: leadFormsUpdateCommand,\n publish: leadFormsPublishCommand,\n archive: leadFormsArchiveCommand,\n },\n});\n","/**\n * Rows from a CRM export → the conversions `conversions upload` stages. The\n * person's email and names are hashed here, the way LinkedIn matches them, so\n * they never leave the sandbox in the clear.\n */\nimport { createHash } from \"node:crypto\";\n\nconst SHA256_HEX = /^[0-9a-f]{64}$/i;\n\n/** Column names a CRM export uses, folded to the field each one fills. */\nconst COLUMN_FIELDS: Record<string, string> = {\n eventid: \"eventId\",\n id: \"eventId\",\n dealid: \"eventId\",\n orderid: \"eventId\",\n happenedat: \"happenedAt\",\n date: \"happenedAt\",\n closedat: \"happenedAt\",\n closedate: \"happenedAt\",\n conversiondatetime: \"happenedAt\",\n email: \"email\",\n emailaddress: \"email\",\n firstname: \"firstName\",\n lastname: \"lastName\",\n lifatid: \"liFatId\",\n companyname: \"companyName\",\n company: \"companyName\",\n title: \"title\",\n jobtitle: \"title\",\n countrycode: \"countryCode\",\n country: \"countryCode\",\n value: \"value\",\n amount: \"value\",\n currency: \"currency\",\n};\n\nfunction sha256(value: string): string {\n return createHash(\"sha256\").update(value).digest(\"hex\");\n}\n\nfunction hashedEmail(raw: string): string {\n const value = raw.trim();\n return SHA256_HEX.test(value) ? value.toLowerCase() : sha256(value.toLowerCase());\n}\n\n/** LinkedIn's name rule: lowercase, no spaces or punctuation. */\nfunction hashedName(raw: string): string {\n const value = raw.trim();\n return SHA256_HEX.test(value) ? value.toLowerCase() : sha256(value.toLowerCase().replace(/[\\s\\p{P}]/gu, \"\"));\n}\n\nfunction fieldValue(field: string, raw: string): unknown {\n switch (field) {\n case \"email\":\n return hashedEmail(raw);\n case \"firstName\":\n case \"lastName\":\n return hashedName(raw);\n case \"value\":\n return Number(raw);\n case \"currency\":\n return raw.trim().toUpperCase();\n default:\n return raw.trim();\n }\n}\n\nexport function conversionUploadEvents(rows: ReadonlyArray<Record<string, unknown>>): {\n events: Array<Record<string, unknown>>;\n ignored: string[];\n} {\n const ignored = new Set<string>();\n const events = rows.map((row) => {\n const event: Record<string, unknown> = {};\n for (const [column, raw] of Object.entries(row)) {\n const field = COLUMN_FIELDS[column.toLowerCase().replace(/[\\s_-]/g, \"\")];\n if (!field) {\n ignored.add(column);\n continue;\n }\n if (raw === undefined || raw === null || String(raw).trim() === \"\") {\n continue;\n }\n event[field] = fieldValue(field, String(raw));\n }\n return event;\n });\n return { events, ignored: [...ignored] };\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,47 @@
1
+ import "./chunk-YQSBHWOI.js";
2
+
3
+ // src/commands/ads/x/index.ts
4
+ import { defineCommand } from "citty";
5
+ var xCommand = defineCommand({
6
+ meta: {
7
+ name: "x",
8
+ description: `X (Twitter) Ads commands. Read campaigns, line items, promoted tweets, creatives, audiences, and analytics.
9
+
10
+ Start here:
11
+ baker ads x accounts \u2014 list accessible X Ads accounts
12
+ baker ads x stats sync --list-presets \u2014 see available stats presets
13
+ baker ads x targeting-constants --constant locations --q "Madrid"
14
+
15
+ Examples:
16
+ baker ads x campaigns --account-id 18ce53xyz
17
+ baker ads x line-items --account-id 18ce53xyz --campaign-ids abc
18
+ baker ads x promoted-tweets --account-id 18ce53xyz
19
+ baker ads x stats sync --preset campaign-engagement-7d --entity-ids abc,def
20
+ baker ads x stats job-create --entity CAMPAIGN --entity-ids abc \\
21
+ --start-time 2026-04-01T00:00:00Z --end-time 2026-05-01T00:00:00Z \\
22
+ --metric-groups ENGAGEMENT,BILLING --segmentation-type LOCATIONS
23
+
24
+ The CLI auto-detects --account-id when exactly one X Ads account is connected, or via BAKER_X_ADS_ACCOUNT_ID.
25
+ Full guide: __tooling__/docs/tools/baker/ads-x.md`
26
+ },
27
+ subCommands: {
28
+ accounts: () => import("./accounts-KQ7NCM4L.js").then((m) => m.accountsCommand),
29
+ funding: () => import("./funding-7M4TJ3MW.js").then((m) => m.fundingCommand),
30
+ campaigns: () => import("./campaigns-QLKGN4FB.js").then((m) => m.campaignsCommand),
31
+ "line-items": () => import("./line-items-ISUC3WDO.js").then((m) => m.lineItemsCommand),
32
+ "promoted-tweets": () => import("./promoted-tweets-WZT4N5IR.js").then((m) => m.promotedTweetsCommand),
33
+ tweets: () => import("./tweets-33OCH74J.js").then((m) => m.tweetsCommand),
34
+ cards: () => import("./cards-HUXBNMEM.js").then((m) => m.cardsCommand),
35
+ draft: () => import("./draft-CRDQR5I3.js").then((m) => m.draftCommand),
36
+ media: () => import("./media-422INJCD.js").then((m) => m.mediaCommand),
37
+ audiences: () => import("./audiences-5TOTVZMK.js").then((m) => m.audiencesCommand),
38
+ "targeting-criteria": () => import("./targeting-criteria-GDCXOAUD.js").then((m) => m.targetingCriteriaCommand),
39
+ "targeting-constants": () => import("./targeting-constants-ZS422W5A.js").then((m) => m.targetingConstantsCommand),
40
+ "active-entities": () => import("./active-entities-3266UJYN.js").then((m) => m.activeEntitiesCommand),
41
+ stats: () => import("./stats-FSAXWTSE.js").then((m) => m.statsCommand)
42
+ }
43
+ });
44
+ export {
45
+ xCommand
46
+ };
47
+ //# sourceMappingURL=x-2IZMW46M.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koda-sl/baker-cli",
3
- "version": "0.552.0",
3
+ "version": "0.553.0",
4
4
  "description": "AI-agent-first CLI for interacting with Baker, including the Baker creative canvas.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,82 +0,0 @@
1
- import {
2
- csvOrJson,
3
- handleLinkedinError,
4
- resolveAccountIdArg
5
- } from "./chunk-RQA2NP4Y.js";
6
- import {
7
- writeAdsJson,
8
- writeAdsOutput
9
- } from "./chunk-7KJ24KFI.js";
10
- import {
11
- NO_CACHE_ARG
12
- } from "./chunk-T764KNWP.js";
13
- import "./chunk-RCNAKWK7.js";
14
- import "./chunk-QV6AST5T.js";
15
- import "./chunk-WCU362Z6.js";
16
- import "./chunk-GIWHHCD6.js";
17
- import "./chunk-SOPVIIUW.js";
18
- import "./chunk-G4FG5EQO.js";
19
- import "./chunk-NSBNIPIW.js";
20
- import "./chunk-MSMTG6OC.js";
21
- import {
22
- apiGet
23
- } from "./chunk-OQ7CLFEL.js";
24
- import "./chunk-S3TBE37M.js";
25
- import "./chunk-O4OPH3ZE.js";
26
- import "./chunk-VYEFXIEM.js";
27
- import "./chunk-YQSBHWOI.js";
28
-
29
- // src/commands/ads/linkedin/account.ts
30
- import { defineCommand } from "citty";
31
- var accountDetailCommand = defineCommand({
32
- meta: {
33
- name: "detail",
34
- description: `Single LinkedIn ad account detail (currency, status, type).
35
-
36
- Examples:
37
- baker ads linkedin account --account-id 503001492
38
- baker ads linkedin account --account-urn urn:li:sponsoredAccount:503001492 --output md`
39
- },
40
- args: {
41
- "account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
42
- "account-urn": { type: "string", description: "Alias for --account-id" },
43
- "no-cache": NO_CACHE_ARG,
44
- output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
45
- },
46
- run: async ({ args }) => {
47
- const accountId = resolveAccountIdArg(args);
48
- try {
49
- const params = { "account-id": accountId };
50
- if (args["no-cache"]) params["skip-cache"] = "true";
51
- const data = await apiGet("/api/ads/linkedin/account", params);
52
- const fmt = csvOrJson(args);
53
- if (fmt !== "json") {
54
- writeAdsOutput([data], fmt);
55
- return;
56
- }
57
- writeAdsJson({ ok: true, data });
58
- } catch (err) {
59
- handleLinkedinError(err);
60
- }
61
- }
62
- });
63
- var accountCommand = defineCommand({
64
- meta: {
65
- name: "account",
66
- description: `LinkedIn ad account: its detail, and the settings that apply across every ad set in it.
67
-
68
- Examples:
69
- baker ads linkedin account --account-id 503001492 \u2014 currency, status, type
70
- baker ads linkedin account url-params --param utm_source=linkedin \u2014 UTMs for every ad in the account`
71
- },
72
- subCommands: {
73
- detail: accountDetailCommand,
74
- "url-params": () => import("./write-commands-GBMVUFZU.js").then((m) => m.accountUrlParamsCommand)
75
- },
76
- args: accountDetailCommand.args,
77
- default: "detail"
78
- });
79
- export {
80
- accountCommand
81
- };
82
- //# sourceMappingURL=account-2EUMSJ6E.js.map
@@ -1,139 +0,0 @@
1
- import {
2
- handleMetaError,
3
- resolveAccountIdArg
4
- } from "./chunk-MGHPM72R.js";
5
- import "./chunk-QALAJNBG.js";
6
- import {
7
- writeJsonEnvelope
8
- } from "./chunk-7KJ24KFI.js";
9
- import {
10
- NO_CACHE_ARG
11
- } from "./chunk-T764KNWP.js";
12
- import {
13
- apiGet
14
- } from "./chunk-OQ7CLFEL.js";
15
- import "./chunk-S3TBE37M.js";
16
- import "./chunk-O4OPH3ZE.js";
17
- import "./chunk-VYEFXIEM.js";
18
- import "./chunk-YQSBHWOI.js";
19
-
20
- // ../api/src/ads-meta/accountHealth.ts
21
- var ACCOUNT_STATUS = {
22
- 1: "ACTIVE",
23
- 2: "DISABLED",
24
- 3: "UNSETTLED",
25
- 7: "PENDING_RISK_REVIEW",
26
- 8: "PENDING_SETTLEMENT",
27
- 9: "IN_GRACE_PERIOD",
28
- 100: "PENDING_CLOSURE",
29
- 101: "CLOSED",
30
- 201: "ANY_ACTIVE",
31
- 202: "ANY_CLOSED"
32
- };
33
- var DISABLE_REASON = {
34
- 1: "ads integrity policy",
35
- 2: "ads IP review",
36
- 3: "payment risk",
37
- 4: "gray account shut down",
38
- 5: "ads AFC review",
39
- 6: "business integrity review",
40
- 7: "permanently closed",
41
- 8: "unused reseller account",
42
- 9: "unused account",
43
- 10: "umbrella ad account",
44
- 11: "Business Manager integrity policy",
45
- 12: "misrepresented ad account",
46
- 13: "legal entity de-share",
47
- 14: "thread review",
48
- 15: "compromised ad account"
49
- };
50
- var DELIVERS_ANYWAY = /* @__PURE__ */ new Set([1, 9]);
51
- function statusBlocker(account) {
52
- const status = account.account_status;
53
- if (status === void 0 || status === 1) return void 0;
54
- const name = ACCOUNT_STATUS[status] ?? `status ${status}`;
55
- const reason = account.disable_reason ? DISABLE_REASON[account.disable_reason] : void 0;
56
- const why = reason ? ` (${reason})` : "";
57
- if (DELIVERS_ANYWAY.has(status)) {
58
- return `the ad account is ${name}${why}: a payment failed and Meta stops delivery when the grace period ends \u2014 the account owner settles it in Meta Billing`;
59
- }
60
- return `the ad account is ${name}${why}, so nothing on it delivers \u2014 only the account owner can resolve that with Meta (Account Quality / Billing)`;
61
- }
62
- function metaAccountDeliveryBlockers(account) {
63
- const blockers = [];
64
- const status = statusBlocker(account);
65
- if (status) blockers.push(status);
66
- const hasFunding = Boolean(account.funding_source || account.funding_source_details?.id);
67
- if (!hasFunding && !account.is_prepay_account) {
68
- blockers.push(
69
- "the ad account has no payment method, so Meta accepts its ads but delivers none (they wait in PENDING_BILLING_INFO) \u2014 the account owner adds one in Meta Billing"
70
- );
71
- }
72
- if (spendCapReached(account)) {
73
- blockers.push(
74
- "the ad account has reached its spending limit, so Meta stops delivering every ad on it \u2014 an admin raises or removes the limit in Meta Billing \u2192 Payment settings, or Baker can change it as part of a chat"
75
- );
76
- }
77
- return blockers;
78
- }
79
- function spendCapReached(account) {
80
- const cap = Number(account.spend_cap ?? "0");
81
- const spent = Number(account.amount_spent ?? "0");
82
- return Number.isFinite(cap) && Number.isFinite(spent) && cap > 0 && spent >= cap;
83
- }
84
-
85
- // src/commands/ads/meta/account.ts
86
- import { defineCommand } from "citty";
87
- var accountCommand = defineCommand({
88
- meta: {
89
- name: "account",
90
- description: `Show single Meta ad account detail (currency, timezone, balance, business) and whether it can deliver:
91
- a hint names a disabled account or a missing payment method, which Meta never refuses at publish \u2014 its ads just never run.
92
- \`bakerPermissions\` says which per-company Meta permissions (leadAds, catalog, pagePosts) are switched on for this
93
- company and held by the connection; a hint names any that still needs the user to reconnect Meta.
94
-
95
- Examples:
96
- baker ads meta account --account-id act_123
97
- BAKER_META_AD_ACCOUNT_ID=act_123 baker ads meta account`
98
- },
99
- args: {
100
- "account-id": { type: "string", description: "Meta ad account ID (act_...)" },
101
- "no-cache": NO_CACHE_ARG
102
- },
103
- run: async ({ args }) => {
104
- const accountId = await resolveAccountIdArg(args);
105
- try {
106
- const params = { "account-id": accountId };
107
- if (args["no-cache"]) params["skip-cache"] = "true";
108
- const data = await apiGet("/api/ads/meta/account", params);
109
- const permissionHints = data.bakerPermissions ? accountPermissionHints(data.bakerPermissions) : [];
110
- writeJsonEnvelope({ ok: true, data, hints: [...accountDeliveryHints(data), ...permissionHints] });
111
- } catch (err) {
112
- handleMetaError(err);
113
- }
114
- }
115
- });
116
- function accountDeliveryHints(account) {
117
- const blockers = metaAccountDeliveryBlockers(account);
118
- if (blockers.length === 0) return ["The account can deliver: it is active and has a payment method."];
119
- return [
120
- ...blockers.map((blocker) => `Cannot deliver: ${blocker}.`),
121
- "Staging still works and publishing still applies the changes, but nothing serves until this is fixed \u2014 tell the user before they publish anything they expect to run."
122
- ];
123
- }
124
- var PERMISSION_LABEL = {
125
- leadAds: "Lead ads (instant forms and their leads)",
126
- catalog: "Catalog changes",
127
- pagePosts: "Facebook Page posts"
128
- };
129
- function accountPermissionHints(permissions) {
130
- return Object.keys(PERMISSION_LABEL).filter((key) => permissions[key].reconnectNeeded).map(
131
- (key) => `${PERMISSION_LABEL[key]}: switched on for this company, but this Meta connection predates it \u2014 ask the user to reconnect Meta in the dashboard before relying on it.`
132
- );
133
- }
134
- export {
135
- accountCommand,
136
- accountDeliveryHints,
137
- accountPermissionHints
138
- };
139
- //# sourceMappingURL=account-7YEN7D6B.js.map