@koda-sl/baker-cli 0.500.0 → 0.501.0-dev.6e96f50b9

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 (850) hide show
  1. package/README.md +8 -0
  2. package/dist/account-MV3NLCM7.js +80 -0
  3. package/dist/account-O6TGGIQI.js +80 -0
  4. package/dist/account-reads-NUF5PNDN.js +219 -0
  5. package/dist/account-users-6VMTSBPB.js +62 -0
  6. package/dist/account-writes-O3VEGYR3.js +66 -0
  7. package/dist/accounts-KXYAGHUO.js +699 -0
  8. package/dist/accounts-PLEZUUPU.js +78 -0
  9. package/dist/actions-M65FQITM.js +55 -0
  10. package/dist/activecampaign-BMU4KRHA.js +936 -0
  11. package/dist/ad-group-writes-DF362PY7.js +170 -0
  12. package/dist/ad-groups-QGKIIODZ.js +68 -0
  13. package/dist/ad-writes-X2PI6ZWP.js +174 -0
  14. package/dist/add-BLGRFPRJ.js +105 -0
  15. package/dist/add-CE7M63A5.js +303 -0
  16. package/dist/ads-6YECVD3I.js +48 -0
  17. package/dist/ads-Q3DDAWWW.js +77 -0
  18. package/dist/advertisers-CIH2MZDD.js +121 -0
  19. package/dist/analytics-26QPKNCM.js +2138 -0
  20. package/dist/analytics-NT5DSRJO.js +445 -0
  21. package/dist/animate-JT5ZASUF.js +480 -0
  22. package/dist/assign-6SSKCI27.js +78 -0
  23. package/dist/audience-size-TTCR3XAT.js +74 -0
  24. package/dist/audiences-SJNKZANP.js +268 -0
  25. package/dist/audit-ROOPZJDD.js +152 -0
  26. package/dist/autocomplete-P2XGFLMM.js +112 -0
  27. package/dist/avatars-NRYRPIRU.js +38 -0
  28. package/dist/bid-pricing-UGAXYNOP.js +101 -0
  29. package/dist/brand-FOR3DSKV.js +22 -0
  30. package/dist/brief-7OQKGGVL.js +541 -0
  31. package/dist/campaign-groups-CIPQHMZS.js +97 -0
  32. package/dist/campaign-writes-NSBACF2P.js +166 -0
  33. package/dist/campaign-writes-OMFZJWGU.js +170 -0
  34. package/dist/campaigns-OMMEJYEC.js +111 -0
  35. package/dist/campaigns-UARVDDWQ.js +107 -0
  36. package/dist/campaigns-WWVN6QSD.js +76 -0
  37. package/dist/canvas-URCNGKPF.js +46 -0
  38. package/dist/capabilities-HOU7QPT2.js +145 -0
  39. package/dist/catalog-P34ZA66G.js +65 -0
  40. package/dist/catalogs-UYDBYIY4.js +128 -0
  41. package/dist/changes-BWNFAVPX.js +135 -0
  42. package/dist/chatgpt-PXRVAIYN.js +47 -0
  43. package/dist/chats-O2YQ5CUE.js +277 -0
  44. package/dist/check-52JH3EX5.js +105 -0
  45. package/dist/chunk-23YNUSLR.js +344 -0
  46. package/dist/chunk-25L3PCG3.js +89 -0
  47. package/dist/chunk-2DFQ5DRN.js +547 -0
  48. package/dist/chunk-2NQ4KZMC.js +363 -0
  49. package/dist/chunk-2PQXUN3X.js +148 -0
  50. package/dist/chunk-3BQWXNKX.js +592 -0
  51. package/dist/chunk-3ILJAFMP.js +98 -0
  52. package/dist/chunk-3QJVQZHH.js +142 -0
  53. package/dist/chunk-3VA52AHF.js +676 -0
  54. package/dist/chunk-3VYKVHU2.js +26 -0
  55. package/dist/chunk-3ZW3NYI6.js +3187 -0
  56. package/dist/chunk-3ZW3NYI6.js.map +1 -0
  57. package/dist/chunk-43PAN3L2.js +228 -0
  58. package/dist/chunk-4D5HZ7V3.js +150 -0
  59. package/dist/chunk-4IBP7ENG.js +23 -0
  60. package/dist/chunk-4IYLTR6P.js +203 -0
  61. package/dist/chunk-4JENX6PN.js +494 -0
  62. package/dist/chunk-4SATGZL3.js +103 -0
  63. package/dist/chunk-5HJ4F4NQ.js +64 -0
  64. package/dist/chunk-66TFWT5I.js +274 -0
  65. package/dist/chunk-6HS4YPW7.js +46 -0
  66. package/dist/chunk-6QIXZ7EZ.js +197 -0
  67. package/dist/chunk-7U2V4BKR.js +275 -0
  68. package/dist/chunk-7VBKTCX3.js +170 -0
  69. package/dist/chunk-AGQIRW4G.js +91 -0
  70. package/dist/chunk-B5JQM24Z.js +5368 -0
  71. package/dist/chunk-CO2CAOY2.js +910 -0
  72. package/dist/chunk-DMPIWMDR.js +169 -0
  73. package/dist/chunk-DNSXOUNC.js +319 -0
  74. package/dist/chunk-DVPWNQ7S.js +1628 -0
  75. package/dist/chunk-DVUEFCOG.js +122 -0
  76. package/dist/chunk-ERGEZPJH.js +167 -0
  77. package/dist/chunk-F6P6GGWB.js +156 -0
  78. package/dist/chunk-FHBDDVL4.js +66 -0
  79. package/dist/chunk-GCGXKPZJ.js +406 -0
  80. package/dist/chunk-HFIACH3D.js +249 -0
  81. package/dist/chunk-I3LQPISV.js +225 -0
  82. package/dist/chunk-IWSKTNT4.js +392 -0
  83. package/dist/chunk-J2JWWDK6.js +191 -0
  84. package/dist/chunk-JD2PWX7P.js +8954 -0
  85. package/dist/chunk-JFK6Y7A7.js +831 -0
  86. package/dist/chunk-JREPQJEY.js +63 -0
  87. package/dist/chunk-JYOVVJ2E.js +8914 -0
  88. package/dist/chunk-L6EZRWI5.js +163 -0
  89. package/dist/chunk-LV24JVMZ.js +783 -0
  90. package/dist/chunk-MWD6JTOY.js +7122 -0
  91. package/dist/chunk-MWD6JTOY.js.map +1 -0
  92. package/dist/chunk-N22J7UPW.js +1919 -0
  93. package/dist/chunk-NUTMEDAP.js +97 -0
  94. package/dist/chunk-PHOAW3WN.js +76 -0
  95. package/dist/chunk-PITLFH7K.js +387 -0
  96. package/dist/chunk-PSYAT3ZM.js +843 -0
  97. package/dist/chunk-PTRCB7AR.js +4251 -0
  98. package/dist/chunk-PTRCB7AR.js.map +1 -0
  99. package/dist/chunk-QATA3YJM.js +349 -0
  100. package/dist/chunk-QR77PWZA.js +51 -0
  101. package/dist/chunk-S4L4H7JG.js +1518 -0
  102. package/dist/chunk-SGU5L5JS.js +207 -0
  103. package/dist/chunk-SJWEYCA3.js +942 -0
  104. package/dist/chunk-U2E4V56C.js +61 -0
  105. package/dist/chunk-V76EZ5DQ.js +604 -0
  106. package/dist/chunk-VQBIGA2H.js +3868 -0
  107. package/dist/chunk-WD6REBLS.js +297 -0
  108. package/dist/chunk-WEQ5TKIQ.js +455 -0
  109. package/dist/chunk-WWAK4CNA.js +846 -0
  110. package/dist/chunk-X4A7NEBZ.js +638 -0
  111. package/dist/chunk-XRTM4DGG.js +285 -0
  112. package/dist/chunk-Y35WFNKZ.js +131 -0
  113. package/dist/chunk-Y456MK74.js +224 -0
  114. package/dist/chunk-YW2SISXV.js +57 -0
  115. package/dist/chunk-ZCPYINLO.js +479 -0
  116. package/dist/chunk-ZEKW4FKU.js +24014 -0
  117. package/dist/chunk-ZEKW4FKU.js.map +1 -0
  118. package/dist/chunk-ZL4RUOCW.js +19 -0
  119. package/dist/claim-WWIZTMTV.js +198 -0
  120. package/dist/cli.js +33 -33
  121. package/dist/companies-MILLGGJI.js +196 -0
  122. package/dist/company-3MO2C3SJ.js +306 -0
  123. package/dist/complete-22T4UMZA.js +82 -0
  124. package/dist/connect-U6HPGREH.js +43 -0
  125. package/dist/conversation-RP3AK4LE.js +94 -0
  126. package/dist/conversion-report-UIU4JRJG.js +125 -0
  127. package/dist/conversion-upload-command-5BUCIVEE.js +439 -0
  128. package/dist/conversion-writes-OMZVC2NX.js +120 -0
  129. package/dist/conversions-ACYPUK4Z.js +138 -0
  130. package/dist/conversions-M5FWYDC4.js +76 -0
  131. package/dist/create-DG326KYF.js +208 -0
  132. package/dist/create-JNVOTWWU.js +60 -0
  133. package/dist/create-L3A5HCNR.js +133 -0
  134. package/dist/create-M37PJDJF.js +237 -0
  135. package/dist/creatives-L5OKL34F.js +58 -0
  136. package/dist/creatives-YGNBGVLX.js +221 -0
  137. package/dist/credentials-7LBMDF6N.js +288 -0
  138. package/dist/critique-2DKP7YFP.js +1459 -0
  139. package/dist/critique-7KZZS2EX.js +230 -0
  140. package/dist/crm-DHBHUDXH.js +321 -0
  141. package/dist/crm-HB6TC3JM.js +225 -0
  142. package/dist/currency-FGNHI5NQ.js +88 -0
  143. package/dist/customers-G7XJHA2I.js +57 -0
  144. package/dist/delete-N34HCPOM.js +67 -0
  145. package/dist/delete-YQWPPBM6.js +55 -0
  146. package/dist/delete-YVNKPARC.js +65 -0
  147. package/dist/demographics-YI2WM4HS.js +139 -0
  148. package/dist/discard-PJNIC22V.js +67 -0
  149. package/dist/discover-KXTBNKH3.js +172 -0
  150. package/dist/domain-GJUNOEFM.js +99 -0
  151. package/dist/download-XQBBVHO2.js +170 -0
  152. package/dist/download-XQBBVHO2.js.map +1 -0
  153. package/dist/draft-7NAX2XE5.js +308 -0
  154. package/dist/draft-JX35Y36U.js +281 -0
  155. package/dist/draft-N2E6YXER.js +333 -0
  156. package/dist/draft-PPUG66G6.js +308 -0
  157. package/dist/draft-UFJO2N6C.js +218 -0
  158. package/dist/engine/index.js +7 -7
  159. package/dist/experiments-ZWEI2VT3.js +234 -0
  160. package/dist/facets-Z4NGP42L.js +115 -0
  161. package/dist/feedback-43MWGNMC.js +109 -0
  162. package/dist/feedback-record-2P625JGM.js +263 -0
  163. package/dist/fetch-S2R7NHKI.js +177 -0
  164. package/dist/fit-CJXDP75P.js +63 -0
  165. package/dist/flows-DIPN66XJ.js +248 -0
  166. package/dist/fonts-3UNRBOM6.js +37 -0
  167. package/dist/forecast-EPYSKYDX.js +119 -0
  168. package/dist/forecast-HPYOX43W.js +169 -0
  169. package/dist/funnel-JLYI5XXG.js +395 -0
  170. package/dist/generate-3Y4IRIVA.js +263 -0
  171. package/dist/get-3NRSP3FD.js +57 -0
  172. package/dist/get-QYIE5QQD.js +80 -0
  173. package/dist/google-7L4GR3AB.js +3267 -0
  174. package/dist/google-ads-O4MYQOGT.js +196 -0
  175. package/dist/history-DGFRDY7V.js +134 -0
  176. package/dist/history-I6ZDT2WP.js +67 -0
  177. package/dist/hubspot-J6Z5FAZ5.js +780 -0
  178. package/dist/ideas-ADQFXOI4.js +43 -0
  179. package/dist/images-X7Z34JXA.js +92 -0
  180. package/dist/ingest-3YB37P3B.js +24 -0
  181. package/dist/ingest-QEOAUEKH.js +108 -0
  182. package/dist/insights-FEDPCRAC.js +130 -0
  183. package/dist/inspect-N2XWYHLO.js +190 -0
  184. package/dist/intent-QTQIHE32.js +95 -0
  185. package/dist/keyword-gap-SSWMMVI2.js +130 -0
  186. package/dist/keyword-metrics-6UKUK6GT.js +198 -0
  187. package/dist/keywords-for-site-O6GRPM2B.js +129 -0
  188. package/dist/landing-INTIUYIJ.js +28 -0
  189. package/dist/languages-2RPBR5VU.js +40 -0
  190. package/dist/leads-S3HSZZCL.js +113 -0
  191. package/dist/learn-6FPZCSOS.js +205 -0
  192. package/dist/line-item-writes-AALLWAU4.js +209 -0
  193. package/dist/line-items-KPWFC6K4.js +103 -0
  194. package/dist/link-4QPX5OEW.js +65 -0
  195. package/dist/linkedin-WICM3UW5.js +1314 -0
  196. package/dist/linkedin-person-5VXCUVH5.js +137 -0
  197. package/dist/list-6MBZKJOY.js +65 -0
  198. package/dist/list-CPTVS5DS.js +152 -0
  199. package/dist/list-UOCTTPPW.js +304 -0
  200. package/dist/locations-3RZ5VGBO.js +67 -0
  201. package/dist/locations-U5CJGLMB.js +40 -0
  202. package/dist/log-V2ZXE34Z.js +93 -0
  203. package/dist/make-NFND4QRB.js +1368 -0
  204. package/dist/map-KZBPFQXO.js +434 -0
  205. package/dist/mcp-LACK6SUK.js +715 -0
  206. package/dist/media-sources-TZF6BUJV.js +35 -0
  207. package/dist/members-R4XLM7VC.js +45 -0
  208. package/dist/metrics-ZYRQXPA6.js +152 -0
  209. package/dist/models-C3BLMJGT.js +155 -0
  210. package/dist/normalize-ZDY6L5VO.js +142 -0
  211. package/dist/options-2VKTXIV7.js +123 -0
  212. package/dist/organization-EO4LOJHQ.js +947 -0
  213. package/dist/performance-AGJ42PRN.js +5445 -0
  214. package/dist/performance-TALH5EGT.js +25 -0
  215. package/dist/pixels-YGOGQ7SS.js +60 -0
  216. package/dist/posts-37LZKGWU.js +34 -0
  217. package/dist/promoted-tweet-writes-27RR3GOV.js +181 -0
  218. package/dist/promoted-tweets-6XAIXBK5.js +119 -0
  219. package/dist/publish-YMZVWMZ6.js +342 -0
  220. package/dist/query-HSDQWMJ3.js +62 -0
  221. package/dist/reddit-XNCKH4LM.js +27 -0
  222. package/dist/refresh-X52QWB7U.js +95 -0
  223. package/dist/release-NRZSYXTV.js +61 -0
  224. package/dist/relevant-pages-DBALXQLB.js +99 -0
  225. package/dist/remove-CBHGRAZS.js +51 -0
  226. package/dist/reopen-ROZWMKSV.js +64 -0
  227. package/dist/rerun-CRAFUCZG.js +93 -0
  228. package/dist/research-6DMZVH3U.js +72 -0
  229. package/dist/research-MQMA4ZQN.js +263 -0
  230. package/dist/reset-6PCDMCKC.js +55 -0
  231. package/dist/reset-JEMTNDBF.js +55 -0
  232. package/dist/resolve-MPN3G7YW.js +122 -0
  233. package/dist/retry-7RQ44CSW.js +61 -0
  234. package/dist/retry-JUYM5AE4.js +63 -0
  235. package/dist/revenue-IFI432JN.js +89 -0
  236. package/dist/rules-W2DCHJGX.js +97 -0
  237. package/dist/rules-add-OIP7SRKM.js +463 -0
  238. package/dist/run-IXJ3AJ6X.js +68 -0
  239. package/dist/run-LJUCR2JA.js +67 -0
  240. package/dist/scaffold-ad-SBYDMOAQ.js +1514 -0
  241. package/dist/scaffold-static-ad-BOKIEVV5.js +1013 -0
  242. package/dist/scaffold-static-ad-BOKIEVV5.js.map +1 -0
  243. package/dist/scaffold-video-Z4GXKC7W.js +886 -0
  244. package/dist/schedule-BMGOREVG.js +62 -0
  245. package/dist/scheduled-agents-BGTR3WCX.js +50 -0
  246. package/dist/schema-HCWSZHZJ.js +133 -0
  247. package/dist/search-OVFOPUXT.js +175 -0
  248. package/dist/select-XSVMD5JH.js +104 -0
  249. package/dist/set-prompt-SFP2DB4O.js +196 -0
  250. package/dist/setup-links-K6KTGVSA.js +142 -0
  251. package/dist/shopify-MIOO3BGY.js +3956 -0
  252. package/dist/site-6M7SXCPN.js +178 -0
  253. package/dist/sources-FTAC2WUM.js +455 -0
  254. package/dist/sources-JHPI7Q2O.js +30 -0
  255. package/dist/stale-FPRPOEHH.js +74 -0
  256. package/dist/status-4C37VNOQ.js +63 -0
  257. package/dist/studio-65IM5YDD.js +49 -0
  258. package/dist/sync-KCD6KCKU.js +55 -0
  259. package/dist/sync-definition-WFDK6RR3.js +67 -0
  260. package/dist/tag-manager-BVPLGLTF.js +43 -0
  261. package/dist/tags-2A4YRO34.js +21 -0
  262. package/dist/tags-N3LP2WTK.js +21 -0
  263. package/dist/tags-OBQ5BTBY.js +26 -0
  264. package/dist/tags-WWETGLRJ.js +225 -0
  265. package/dist/tags-ZWL3G4XR.js +21 -0
  266. package/dist/targeting-criteria-YHSVILGV.js +113 -0
  267. package/dist/targets-4SZC7DR4.js +104 -0
  268. package/dist/testimonials-MJHMFJ5J.js +32 -0
  269. package/dist/themes-GTWQLIX2.js +95 -0
  270. package/dist/top-companies-DSL2QVOH.js +109 -0
  271. package/dist/transcript-FGLOJFU4.js +163 -0
  272. package/dist/translate-JSXPZUBM.js +607 -0
  273. package/dist/triggers-UAEGGBYL.js +142 -0
  274. package/dist/unlink-HUCQPTTA.js +68 -0
  275. package/dist/unstage-CYIVBS5D.js +86 -0
  276. package/dist/update-I3WG7QBV.js +190 -0
  277. package/dist/update-I3WG7QBV.js.map +1 -0
  278. package/dist/update-IORKVKDQ.js +153 -0
  279. package/dist/update-R7WY7EGL.js +99 -0
  280. package/dist/update-WT7MMEBY.js +64 -0
  281. package/dist/upload-FZAAJHU7.js +127 -0
  282. package/dist/url-options-PPIRU2RF.js +130 -0
  283. package/dist/url-params-ZM6YVT63.js +99 -0
  284. package/dist/validate-PPUSF56N.js +120 -0
  285. package/dist/videos-YM7H7IXJ.js +41 -0
  286. package/dist/videos-YM7H7IXJ.js.map +1 -0
  287. package/dist/viewer-check-4SFBSLRN.js +81 -0
  288. package/dist/web-MYPJLXY3.js +141 -0
  289. package/dist/winning-ads-KY7NQR2P.js +86 -0
  290. package/dist/write-commands-GQHYLHOF.js +1493 -0
  291. package/dist/x-Q2DLEBQS.js +47 -0
  292. package/package.json +1 -1
  293. package/dist/account-PYK5VMQ4.js +0 -80
  294. package/dist/account-YSMZB5ZC.js +0 -80
  295. package/dist/account-reads-2U5OGO72.js +0 -219
  296. package/dist/account-users-XFNFGZB7.js +0 -62
  297. package/dist/account-writes-4MAKFM7L.js +0 -66
  298. package/dist/accounts-ZKY6KPU3.js +0 -78
  299. package/dist/accounts-ZYOQSFX5.js +0 -699
  300. package/dist/actions-PF62UVHS.js +0 -55
  301. package/dist/activecampaign-Q7LLZSZ4.js +0 -936
  302. package/dist/ad-group-writes-XZ7XSJ3C.js +0 -170
  303. package/dist/ad-groups-HI5YNTX3.js +0 -68
  304. package/dist/ad-writes-E2C4BKWT.js +0 -174
  305. package/dist/add-3GL76LTP.js +0 -105
  306. package/dist/add-GDEQN43J.js +0 -303
  307. package/dist/ads-HH5YTV4O.js +0 -48
  308. package/dist/ads-VXF5STHG.js +0 -77
  309. package/dist/advertisers-B5L4LZW2.js +0 -121
  310. package/dist/analytics-BBX6CU3S.js +0 -2138
  311. package/dist/analytics-WLV24XJE.js +0 -445
  312. package/dist/animate-2BMHZ4FM.js +0 -480
  313. package/dist/assign-BSV765I3.js +0 -78
  314. package/dist/audience-size-KJGSHN45.js +0 -74
  315. package/dist/audiences-SUW2NSXG.js +0 -268
  316. package/dist/audit-RKDWAPMX.js +0 -152
  317. package/dist/autocomplete-BNQXAPDX.js +0 -112
  318. package/dist/avatars-BRDNW4ZF.js +0 -38
  319. package/dist/bid-pricing-ARPPR45O.js +0 -101
  320. package/dist/brand-JJDZKJSM.js +0 -22
  321. package/dist/brief-FSVESR44.js +0 -541
  322. package/dist/campaign-groups-DRUQ5WBQ.js +0 -97
  323. package/dist/campaign-writes-JFT4OPL5.js +0 -170
  324. package/dist/campaign-writes-SDQ7IPHU.js +0 -166
  325. package/dist/campaigns-FM2V3RIE.js +0 -111
  326. package/dist/campaigns-UDPZIIPK.js +0 -107
  327. package/dist/campaigns-XFNPYDO6.js +0 -76
  328. package/dist/canvas-ZRMKN442.js +0 -46
  329. package/dist/capabilities-HMT6ZBPH.js +0 -145
  330. package/dist/catalog-TZLU5NWI.js +0 -65
  331. package/dist/catalogs-WR3D6VEY.js +0 -128
  332. package/dist/changes-ONEEMEMT.js +0 -135
  333. package/dist/chatgpt-23X76OFD.js +0 -47
  334. package/dist/chats-77MJ5SIT.js +0 -277
  335. package/dist/check-TA3HM2QA.js +0 -105
  336. package/dist/chunk-2572627P.js +0 -547
  337. package/dist/chunk-34Z4YPXD.js +0 -846
  338. package/dist/chunk-3HFGJFRM.js +0 -387
  339. package/dist/chunk-3LFPQSSC.js +0 -406
  340. package/dist/chunk-3YJNSUNF.js +0 -131
  341. package/dist/chunk-42YFMKEU.js +0 -191
  342. package/dist/chunk-457XEP63.js +0 -97
  343. package/dist/chunk-5KDFRTMY.js +0 -89
  344. package/dist/chunk-5MSRVAUZ.js +0 -7112
  345. package/dist/chunk-5MSRVAUZ.js.map +0 -1
  346. package/dist/chunk-5YQATOWK.js +0 -66
  347. package/dist/chunk-6IE7RGIC.js +0 -363
  348. package/dist/chunk-6KWEF6HF.js +0 -8914
  349. package/dist/chunk-6QBSUYQZ.js +0 -197
  350. package/dist/chunk-7HZSORAB.js +0 -843
  351. package/dist/chunk-A3IQAONL.js +0 -638
  352. package/dist/chunk-AIOICB5Q.js +0 -392
  353. package/dist/chunk-ANLLW3KZ.js +0 -228
  354. package/dist/chunk-AZH6H4TV.js +0 -783
  355. package/dist/chunk-BBBWMD5R.js +0 -274
  356. package/dist/chunk-C4I5NCMG.js +0 -224
  357. package/dist/chunk-EBEZFAUH.js +0 -24014
  358. package/dist/chunk-EBEZFAUH.js.map +0 -1
  359. package/dist/chunk-ERSL4WZT.js +0 -4251
  360. package/dist/chunk-ERSL4WZT.js.map +0 -1
  361. package/dist/chunk-F4YQ5PVR.js +0 -1518
  362. package/dist/chunk-FFG2OYVV.js +0 -64
  363. package/dist/chunk-FR6RFLFP.js +0 -942
  364. package/dist/chunk-GNKICND2.js +0 -604
  365. package/dist/chunk-GTNNH3AI.js +0 -23
  366. package/dist/chunk-HITRGZIS.js +0 -57
  367. package/dist/chunk-HML3VQIW.js +0 -225
  368. package/dist/chunk-HNS5OURO.js +0 -103
  369. package/dist/chunk-I2C4IUDP.js +0 -831
  370. package/dist/chunk-I46D7YXI.js +0 -207
  371. package/dist/chunk-JAC6JVCI.js +0 -26
  372. package/dist/chunk-JCRGGVV5.js +0 -910
  373. package/dist/chunk-JDUPYPYB.js +0 -676
  374. package/dist/chunk-KMRXPNQA.js +0 -297
  375. package/dist/chunk-LIX4S3ZM.js +0 -61
  376. package/dist/chunk-LRV6M2WB.js +0 -1919
  377. package/dist/chunk-MCJ5I5LR.js +0 -3187
  378. package/dist/chunk-MCJ5I5LR.js.map +0 -1
  379. package/dist/chunk-MVD7QIXI.js +0 -46
  380. package/dist/chunk-MZPS46OR.js +0 -76
  381. package/dist/chunk-N4CHIGLO.js +0 -51
  382. package/dist/chunk-N7KICNZD.js +0 -142
  383. package/dist/chunk-NT3NJVPZ.js +0 -169
  384. package/dist/chunk-NXWEQTHL.js +0 -1628
  385. package/dist/chunk-PFGRHBQY.js +0 -122
  386. package/dist/chunk-PGRDGQ23.js +0 -150
  387. package/dist/chunk-PX3PUDK7.js +0 -167
  388. package/dist/chunk-QY4GBBOV.js +0 -249
  389. package/dist/chunk-SP6BZLM4.js +0 -494
  390. package/dist/chunk-SSJR3FZ5.js +0 -19
  391. package/dist/chunk-ST2777KW.js +0 -156
  392. package/dist/chunk-SWN6OHXG.js +0 -148
  393. package/dist/chunk-TESOYFMQ.js +0 -319
  394. package/dist/chunk-TGQAEHLA.js +0 -170
  395. package/dist/chunk-TX7CQTD4.js +0 -5368
  396. package/dist/chunk-UC5HG2UF.js +0 -275
  397. package/dist/chunk-UKSSNYLU.js +0 -98
  398. package/dist/chunk-UQWBJNQY.js +0 -592
  399. package/dist/chunk-UX45LDRM.js +0 -63
  400. package/dist/chunk-VAHDJ5CK.js +0 -344
  401. package/dist/chunk-VM4IQ75N.js +0 -163
  402. package/dist/chunk-VOAWBGRQ.js +0 -8954
  403. package/dist/chunk-VRP677NO.js +0 -455
  404. package/dist/chunk-WAEWKD75.js +0 -479
  405. package/dist/chunk-X64DJIZG.js +0 -349
  406. package/dist/chunk-XYBSTW3P.js +0 -203
  407. package/dist/chunk-YNYAT2TZ.js +0 -285
  408. package/dist/chunk-YZYDB77W.js +0 -3868
  409. package/dist/chunk-ZNH45NXP.js +0 -91
  410. package/dist/claim-CIUU5QEZ.js +0 -198
  411. package/dist/companies-VV5XD3BP.js +0 -196
  412. package/dist/company-EZH6ZPXD.js +0 -306
  413. package/dist/complete-NKYCSYKX.js +0 -82
  414. package/dist/connect-TFH4AFFO.js +0 -43
  415. package/dist/conversation-S6CKSNYW.js +0 -94
  416. package/dist/conversion-report-V3TGPELD.js +0 -125
  417. package/dist/conversion-upload-command-K2SB6O6K.js +0 -439
  418. package/dist/conversion-writes-B2QOYL56.js +0 -120
  419. package/dist/conversions-ILF5HJOO.js +0 -76
  420. package/dist/conversions-KXYOUSBR.js +0 -138
  421. package/dist/create-BZWX5KLI.js +0 -60
  422. package/dist/create-WEIGJ4BF.js +0 -237
  423. package/dist/create-XKGV6TEW.js +0 -133
  424. package/dist/create-Y44CPUE4.js +0 -208
  425. package/dist/creatives-P5MX2AZL.js +0 -58
  426. package/dist/creatives-WFDFLRQV.js +0 -221
  427. package/dist/credentials-5EOUA5VL.js +0 -288
  428. package/dist/critique-4ETQZBQG.js +0 -1459
  429. package/dist/critique-OYUMBZ4Y.js +0 -230
  430. package/dist/crm-6UU3GFQU.js +0 -225
  431. package/dist/crm-UGP57XSN.js +0 -321
  432. package/dist/currency-UVQIYZUP.js +0 -88
  433. package/dist/customers-RT75T4ZB.js +0 -57
  434. package/dist/delete-37IIUYQU.js +0 -67
  435. package/dist/delete-E575BF73.js +0 -55
  436. package/dist/delete-GQYFBLMP.js +0 -65
  437. package/dist/demographics-3LIUI2SM.js +0 -139
  438. package/dist/discard-7OARQRS7.js +0 -67
  439. package/dist/discover-2TPMVIW7.js +0 -172
  440. package/dist/domain-ZRWUGUOO.js +0 -99
  441. package/dist/draft-5XV2BJ3N.js +0 -281
  442. package/dist/draft-A2I4RLMW.js +0 -308
  443. package/dist/draft-CVSGNA4Z.js +0 -308
  444. package/dist/draft-SNBK2KY6.js +0 -218
  445. package/dist/draft-UHNTXGY7.js +0 -333
  446. package/dist/experiments-IGMLMSLX.js +0 -234
  447. package/dist/facets-AURXB76V.js +0 -115
  448. package/dist/feedback-UDTPDCMS.js +0 -109
  449. package/dist/feedback-record-Z34XJF6K.js +0 -263
  450. package/dist/fetch-GR3FXFXL.js +0 -177
  451. package/dist/fit-SLEEJWVR.js +0 -63
  452. package/dist/flows-NAFSRRY2.js +0 -248
  453. package/dist/fonts-POBAXXBC.js +0 -37
  454. package/dist/forecast-CLQKEFI6.js +0 -169
  455. package/dist/forecast-RN6VUKLS.js +0 -119
  456. package/dist/funnel-O3XOHYI3.js +0 -395
  457. package/dist/generate-NWHPM2GQ.js +0 -263
  458. package/dist/get-2MC5LYXY.js +0 -80
  459. package/dist/get-UQ43T25B.js +0 -57
  460. package/dist/google-ZZCSZR63.js +0 -3267
  461. package/dist/google-ads-7DJ5STPS.js +0 -196
  462. package/dist/history-IXV4ZR6F.js +0 -67
  463. package/dist/history-QRM76S4Q.js +0 -134
  464. package/dist/hubspot-HVZNR2IR.js +0 -780
  465. package/dist/ideas-S2UXZSFB.js +0 -43
  466. package/dist/images-FYSBKRU6.js +0 -92
  467. package/dist/ingest-37F3NOLA.js +0 -24
  468. package/dist/ingest-YQINQGG7.js +0 -108
  469. package/dist/insights-UKWLUS5P.js +0 -130
  470. package/dist/inspect-RVU5RDCE.js +0 -190
  471. package/dist/intent-57BBLPLP.js +0 -95
  472. package/dist/keyword-gap-TSIQBZ6G.js +0 -130
  473. package/dist/keyword-metrics-7XZXPSQO.js +0 -198
  474. package/dist/keywords-for-site-A43QNTLD.js +0 -129
  475. package/dist/landing-NFDGD3PQ.js +0 -28
  476. package/dist/languages-WKOFWZ7S.js +0 -40
  477. package/dist/leads-UHJS7VNH.js +0 -113
  478. package/dist/learn-POJ5ORBK.js +0 -205
  479. package/dist/line-item-writes-K4BSUEIJ.js +0 -209
  480. package/dist/line-items-DLLEPPIN.js +0 -103
  481. package/dist/link-L2KC5EIZ.js +0 -65
  482. package/dist/linkedin-A4U6IGZX.js +0 -1314
  483. package/dist/linkedin-person-DSLAOKKN.js +0 -137
  484. package/dist/list-JKB33W6K.js +0 -304
  485. package/dist/list-PHWCEYCP.js +0 -65
  486. package/dist/list-Y4V276ND.js +0 -152
  487. package/dist/locations-EQKMPX4G.js +0 -40
  488. package/dist/locations-MID4EY6D.js +0 -67
  489. package/dist/log-O3I5JZCM.js +0 -93
  490. package/dist/make-GLGNEOK6.js +0 -1368
  491. package/dist/map-D3EH7S2T.js +0 -434
  492. package/dist/mcp-R4ZTYQW7.js +0 -715
  493. package/dist/media-sources-TVGS34TE.js +0 -35
  494. package/dist/members-OBA4MXAQ.js +0 -45
  495. package/dist/metrics-35OGYZNY.js +0 -152
  496. package/dist/models-JQEPSPNQ.js +0 -155
  497. package/dist/normalize-HU37AR7G.js +0 -142
  498. package/dist/options-HLMTCEDW.js +0 -123
  499. package/dist/organization-6ZVXU5JC.js +0 -947
  500. package/dist/performance-PIB2AXKO.js +0 -25
  501. package/dist/performance-V5WZCJYT.js +0 -5445
  502. package/dist/pixels-WHQLX4FV.js +0 -60
  503. package/dist/posts-QAMZRCRY.js +0 -34
  504. package/dist/promoted-tweet-writes-E4EJZM76.js +0 -181
  505. package/dist/promoted-tweets-M44AIHSQ.js +0 -119
  506. package/dist/publish-H7UGB5IP.js +0 -342
  507. package/dist/query-ZH5CWI3X.js +0 -62
  508. package/dist/reddit-KCPU4RW4.js +0 -27
  509. package/dist/refresh-WTSCSEQE.js +0 -95
  510. package/dist/release-SVOT7QVX.js +0 -61
  511. package/dist/relevant-pages-7KEKKRQ2.js +0 -99
  512. package/dist/remove-TY3AF5K5.js +0 -51
  513. package/dist/reopen-WCUZMTYE.js +0 -64
  514. package/dist/rerun-FKYNFNSI.js +0 -93
  515. package/dist/research-N2RWKIRQ.js +0 -72
  516. package/dist/research-X6ITCPFY.js +0 -263
  517. package/dist/reset-O77UZD6Z.js +0 -55
  518. package/dist/reset-TDAMB4BO.js +0 -55
  519. package/dist/resolve-NC4MLM42.js +0 -122
  520. package/dist/retry-QNXWTHOL.js +0 -63
  521. package/dist/retry-XVUWY7ZH.js +0 -61
  522. package/dist/revenue-D3B4DMBC.js +0 -89
  523. package/dist/rules-Y3BH7SO5.js +0 -97
  524. package/dist/rules-add-GSPFBNYU.js +0 -463
  525. package/dist/run-G6XAJOJ7.js +0 -67
  526. package/dist/run-ON72O5YS.js +0 -68
  527. package/dist/scaffold-ad-YF6FUEJZ.js +0 -1514
  528. package/dist/scaffold-static-ad-C2C6NC6Y.js +0 -1008
  529. package/dist/scaffold-static-ad-C2C6NC6Y.js.map +0 -1
  530. package/dist/scaffold-video-BUOCGJNH.js +0 -886
  531. package/dist/schedule-7EQLO22N.js +0 -62
  532. package/dist/scheduled-agents-4WCPCMYC.js +0 -50
  533. package/dist/schema-KM5MFQUQ.js +0 -133
  534. package/dist/search-YEYQDDLA.js +0 -175
  535. package/dist/select-QSGZYOFV.js +0 -104
  536. package/dist/set-prompt-4OTBGPDQ.js +0 -196
  537. package/dist/setup-links-E2GARNTU.js +0 -142
  538. package/dist/shopify-GT6PJ77M.js +0 -3956
  539. package/dist/site-TMF2P7JR.js +0 -178
  540. package/dist/sources-47LE2UCO.js +0 -455
  541. package/dist/sources-H6XX2WBO.js +0 -30
  542. package/dist/stale-JTX5U752.js +0 -74
  543. package/dist/status-3X3MECDY.js +0 -63
  544. package/dist/studio-Z4AJRIGP.js +0 -49
  545. package/dist/sync-HWTVXGOT.js +0 -55
  546. package/dist/sync-definition-CAPYMYIS.js +0 -67
  547. package/dist/tag-manager-TU3FBSYO.js +0 -43
  548. package/dist/tags-75QCVBQB.js +0 -26
  549. package/dist/tags-7BT63PUE.js +0 -21
  550. package/dist/tags-7K5RSCHI.js +0 -21
  551. package/dist/tags-IELH7YAY.js +0 -21
  552. package/dist/tags-UPA4KKQZ.js +0 -225
  553. package/dist/targeting-criteria-HJQ2FW6E.js +0 -113
  554. package/dist/targets-CBZ37ALP.js +0 -104
  555. package/dist/testimonials-4W6HI2PQ.js +0 -32
  556. package/dist/themes-RDNVUJHG.js +0 -95
  557. package/dist/top-companies-CW77UVK3.js +0 -109
  558. package/dist/transcript-FA2TOVPP.js +0 -163
  559. package/dist/translate-7W7O6W3J.js +0 -607
  560. package/dist/triggers-MCP6IGTX.js +0 -142
  561. package/dist/unlink-RK5V4QO2.js +0 -68
  562. package/dist/unstage-5JTGVEB7.js +0 -86
  563. package/dist/update-5AAMF5JP.js +0 -153
  564. package/dist/update-G2KB3RIW.js +0 -64
  565. package/dist/update-LCE2QN53.js +0 -99
  566. package/dist/update-U2ETZHVU.js +0 -189
  567. package/dist/update-U2ETZHVU.js.map +0 -1
  568. package/dist/upload-ORFEAADP.js +0 -127
  569. package/dist/url-options-6U7QCTAY.js +0 -130
  570. package/dist/url-params-KQIUVVGX.js +0 -99
  571. package/dist/validate-BF656HWM.js +0 -120
  572. package/dist/videos-66FB7BPY.js +0 -39
  573. package/dist/videos-66FB7BPY.js.map +0 -1
  574. package/dist/viewer-check-THBLTL2G.js +0 -81
  575. package/dist/web-2EKHRXCS.js +0 -141
  576. package/dist/winning-ads-LW5SMMLB.js +0 -86
  577. package/dist/write-commands-Z556OHHH.js +0 -1493
  578. package/dist/x-F5CSO2RN.js +0 -47
  579. /package/dist/{account-YSMZB5ZC.js.map → account-MV3NLCM7.js.map} +0 -0
  580. /package/dist/{account-PYK5VMQ4.js.map → account-O6TGGIQI.js.map} +0 -0
  581. /package/dist/{account-reads-2U5OGO72.js.map → account-reads-NUF5PNDN.js.map} +0 -0
  582. /package/dist/{account-users-XFNFGZB7.js.map → account-users-6VMTSBPB.js.map} +0 -0
  583. /package/dist/{account-writes-4MAKFM7L.js.map → account-writes-O3VEGYR3.js.map} +0 -0
  584. /package/dist/{accounts-ZYOQSFX5.js.map → accounts-KXYAGHUO.js.map} +0 -0
  585. /package/dist/{accounts-ZKY6KPU3.js.map → accounts-PLEZUUPU.js.map} +0 -0
  586. /package/dist/{actions-PF62UVHS.js.map → actions-M65FQITM.js.map} +0 -0
  587. /package/dist/{activecampaign-Q7LLZSZ4.js.map → activecampaign-BMU4KRHA.js.map} +0 -0
  588. /package/dist/{ad-group-writes-XZ7XSJ3C.js.map → ad-group-writes-DF362PY7.js.map} +0 -0
  589. /package/dist/{ad-groups-HI5YNTX3.js.map → ad-groups-QGKIIODZ.js.map} +0 -0
  590. /package/dist/{ad-writes-E2C4BKWT.js.map → ad-writes-X2PI6ZWP.js.map} +0 -0
  591. /package/dist/{add-3GL76LTP.js.map → add-BLGRFPRJ.js.map} +0 -0
  592. /package/dist/{add-GDEQN43J.js.map → add-CE7M63A5.js.map} +0 -0
  593. /package/dist/{ads-HH5YTV4O.js.map → ads-6YECVD3I.js.map} +0 -0
  594. /package/dist/{ads-VXF5STHG.js.map → ads-Q3DDAWWW.js.map} +0 -0
  595. /package/dist/{advertisers-B5L4LZW2.js.map → advertisers-CIH2MZDD.js.map} +0 -0
  596. /package/dist/{analytics-BBX6CU3S.js.map → analytics-26QPKNCM.js.map} +0 -0
  597. /package/dist/{analytics-WLV24XJE.js.map → analytics-NT5DSRJO.js.map} +0 -0
  598. /package/dist/{animate-2BMHZ4FM.js.map → animate-JT5ZASUF.js.map} +0 -0
  599. /package/dist/{assign-BSV765I3.js.map → assign-6SSKCI27.js.map} +0 -0
  600. /package/dist/{audience-size-KJGSHN45.js.map → audience-size-TTCR3XAT.js.map} +0 -0
  601. /package/dist/{audiences-SUW2NSXG.js.map → audiences-SJNKZANP.js.map} +0 -0
  602. /package/dist/{audit-RKDWAPMX.js.map → audit-ROOPZJDD.js.map} +0 -0
  603. /package/dist/{autocomplete-BNQXAPDX.js.map → autocomplete-P2XGFLMM.js.map} +0 -0
  604. /package/dist/{avatars-BRDNW4ZF.js.map → avatars-NRYRPIRU.js.map} +0 -0
  605. /package/dist/{bid-pricing-ARPPR45O.js.map → bid-pricing-UGAXYNOP.js.map} +0 -0
  606. /package/dist/{brand-JJDZKJSM.js.map → brand-FOR3DSKV.js.map} +0 -0
  607. /package/dist/{brief-FSVESR44.js.map → brief-7OQKGGVL.js.map} +0 -0
  608. /package/dist/{campaign-groups-DRUQ5WBQ.js.map → campaign-groups-CIPQHMZS.js.map} +0 -0
  609. /package/dist/{campaign-writes-SDQ7IPHU.js.map → campaign-writes-NSBACF2P.js.map} +0 -0
  610. /package/dist/{campaign-writes-JFT4OPL5.js.map → campaign-writes-OMFZJWGU.js.map} +0 -0
  611. /package/dist/{campaigns-FM2V3RIE.js.map → campaigns-OMMEJYEC.js.map} +0 -0
  612. /package/dist/{campaigns-UDPZIIPK.js.map → campaigns-UARVDDWQ.js.map} +0 -0
  613. /package/dist/{campaigns-XFNPYDO6.js.map → campaigns-WWVN6QSD.js.map} +0 -0
  614. /package/dist/{canvas-ZRMKN442.js.map → canvas-URCNGKPF.js.map} +0 -0
  615. /package/dist/{capabilities-HMT6ZBPH.js.map → capabilities-HOU7QPT2.js.map} +0 -0
  616. /package/dist/{catalog-TZLU5NWI.js.map → catalog-P34ZA66G.js.map} +0 -0
  617. /package/dist/{catalogs-WR3D6VEY.js.map → catalogs-UYDBYIY4.js.map} +0 -0
  618. /package/dist/{changes-ONEEMEMT.js.map → changes-BWNFAVPX.js.map} +0 -0
  619. /package/dist/{chatgpt-23X76OFD.js.map → chatgpt-PXRVAIYN.js.map} +0 -0
  620. /package/dist/{chats-77MJ5SIT.js.map → chats-O2YQ5CUE.js.map} +0 -0
  621. /package/dist/{check-TA3HM2QA.js.map → check-52JH3EX5.js.map} +0 -0
  622. /package/dist/{chunk-VAHDJ5CK.js.map → chunk-23YNUSLR.js.map} +0 -0
  623. /package/dist/{chunk-5KDFRTMY.js.map → chunk-25L3PCG3.js.map} +0 -0
  624. /package/dist/{chunk-2572627P.js.map → chunk-2DFQ5DRN.js.map} +0 -0
  625. /package/dist/{chunk-6IE7RGIC.js.map → chunk-2NQ4KZMC.js.map} +0 -0
  626. /package/dist/{chunk-SWN6OHXG.js.map → chunk-2PQXUN3X.js.map} +0 -0
  627. /package/dist/{chunk-UQWBJNQY.js.map → chunk-3BQWXNKX.js.map} +0 -0
  628. /package/dist/{chunk-UKSSNYLU.js.map → chunk-3ILJAFMP.js.map} +0 -0
  629. /package/dist/{chunk-N7KICNZD.js.map → chunk-3QJVQZHH.js.map} +0 -0
  630. /package/dist/{chunk-JDUPYPYB.js.map → chunk-3VA52AHF.js.map} +0 -0
  631. /package/dist/{chunk-JAC6JVCI.js.map → chunk-3VYKVHU2.js.map} +0 -0
  632. /package/dist/{chunk-ANLLW3KZ.js.map → chunk-43PAN3L2.js.map} +0 -0
  633. /package/dist/{chunk-PGRDGQ23.js.map → chunk-4D5HZ7V3.js.map} +0 -0
  634. /package/dist/{chunk-GTNNH3AI.js.map → chunk-4IBP7ENG.js.map} +0 -0
  635. /package/dist/{chunk-XYBSTW3P.js.map → chunk-4IYLTR6P.js.map} +0 -0
  636. /package/dist/{chunk-SP6BZLM4.js.map → chunk-4JENX6PN.js.map} +0 -0
  637. /package/dist/{chunk-HNS5OURO.js.map → chunk-4SATGZL3.js.map} +0 -0
  638. /package/dist/{chunk-FFG2OYVV.js.map → chunk-5HJ4F4NQ.js.map} +0 -0
  639. /package/dist/{chunk-BBBWMD5R.js.map → chunk-66TFWT5I.js.map} +0 -0
  640. /package/dist/{chunk-MVD7QIXI.js.map → chunk-6HS4YPW7.js.map} +0 -0
  641. /package/dist/{chunk-6QBSUYQZ.js.map → chunk-6QIXZ7EZ.js.map} +0 -0
  642. /package/dist/{chunk-UC5HG2UF.js.map → chunk-7U2V4BKR.js.map} +0 -0
  643. /package/dist/{chunk-TGQAEHLA.js.map → chunk-7VBKTCX3.js.map} +0 -0
  644. /package/dist/{chunk-ZNH45NXP.js.map → chunk-AGQIRW4G.js.map} +0 -0
  645. /package/dist/{chunk-TX7CQTD4.js.map → chunk-B5JQM24Z.js.map} +0 -0
  646. /package/dist/{chunk-JCRGGVV5.js.map → chunk-CO2CAOY2.js.map} +0 -0
  647. /package/dist/{chunk-NT3NJVPZ.js.map → chunk-DMPIWMDR.js.map} +0 -0
  648. /package/dist/{chunk-TESOYFMQ.js.map → chunk-DNSXOUNC.js.map} +0 -0
  649. /package/dist/{chunk-NXWEQTHL.js.map → chunk-DVPWNQ7S.js.map} +0 -0
  650. /package/dist/{chunk-PFGRHBQY.js.map → chunk-DVUEFCOG.js.map} +0 -0
  651. /package/dist/{chunk-PX3PUDK7.js.map → chunk-ERGEZPJH.js.map} +0 -0
  652. /package/dist/{chunk-ST2777KW.js.map → chunk-F6P6GGWB.js.map} +0 -0
  653. /package/dist/{chunk-5YQATOWK.js.map → chunk-FHBDDVL4.js.map} +0 -0
  654. /package/dist/{chunk-3LFPQSSC.js.map → chunk-GCGXKPZJ.js.map} +0 -0
  655. /package/dist/{chunk-QY4GBBOV.js.map → chunk-HFIACH3D.js.map} +0 -0
  656. /package/dist/{chunk-HML3VQIW.js.map → chunk-I3LQPISV.js.map} +0 -0
  657. /package/dist/{chunk-AIOICB5Q.js.map → chunk-IWSKTNT4.js.map} +0 -0
  658. /package/dist/{chunk-42YFMKEU.js.map → chunk-J2JWWDK6.js.map} +0 -0
  659. /package/dist/{chunk-VOAWBGRQ.js.map → chunk-JD2PWX7P.js.map} +0 -0
  660. /package/dist/{chunk-I2C4IUDP.js.map → chunk-JFK6Y7A7.js.map} +0 -0
  661. /package/dist/{chunk-UX45LDRM.js.map → chunk-JREPQJEY.js.map} +0 -0
  662. /package/dist/{chunk-6KWEF6HF.js.map → chunk-JYOVVJ2E.js.map} +0 -0
  663. /package/dist/{chunk-VM4IQ75N.js.map → chunk-L6EZRWI5.js.map} +0 -0
  664. /package/dist/{chunk-AZH6H4TV.js.map → chunk-LV24JVMZ.js.map} +0 -0
  665. /package/dist/{chunk-LRV6M2WB.js.map → chunk-N22J7UPW.js.map} +0 -0
  666. /package/dist/{chunk-457XEP63.js.map → chunk-NUTMEDAP.js.map} +0 -0
  667. /package/dist/{chunk-MZPS46OR.js.map → chunk-PHOAW3WN.js.map} +0 -0
  668. /package/dist/{chunk-3HFGJFRM.js.map → chunk-PITLFH7K.js.map} +0 -0
  669. /package/dist/{chunk-7HZSORAB.js.map → chunk-PSYAT3ZM.js.map} +0 -0
  670. /package/dist/{chunk-X64DJIZG.js.map → chunk-QATA3YJM.js.map} +0 -0
  671. /package/dist/{chunk-N4CHIGLO.js.map → chunk-QR77PWZA.js.map} +0 -0
  672. /package/dist/{chunk-F4YQ5PVR.js.map → chunk-S4L4H7JG.js.map} +0 -0
  673. /package/dist/{chunk-I46D7YXI.js.map → chunk-SGU5L5JS.js.map} +0 -0
  674. /package/dist/{chunk-FR6RFLFP.js.map → chunk-SJWEYCA3.js.map} +0 -0
  675. /package/dist/{chunk-LIX4S3ZM.js.map → chunk-U2E4V56C.js.map} +0 -0
  676. /package/dist/{chunk-GNKICND2.js.map → chunk-V76EZ5DQ.js.map} +0 -0
  677. /package/dist/{chunk-YZYDB77W.js.map → chunk-VQBIGA2H.js.map} +0 -0
  678. /package/dist/{chunk-KMRXPNQA.js.map → chunk-WD6REBLS.js.map} +0 -0
  679. /package/dist/{chunk-VRP677NO.js.map → chunk-WEQ5TKIQ.js.map} +0 -0
  680. /package/dist/{chunk-34Z4YPXD.js.map → chunk-WWAK4CNA.js.map} +0 -0
  681. /package/dist/{chunk-A3IQAONL.js.map → chunk-X4A7NEBZ.js.map} +0 -0
  682. /package/dist/{chunk-YNYAT2TZ.js.map → chunk-XRTM4DGG.js.map} +0 -0
  683. /package/dist/{chunk-3YJNSUNF.js.map → chunk-Y35WFNKZ.js.map} +0 -0
  684. /package/dist/{chunk-C4I5NCMG.js.map → chunk-Y456MK74.js.map} +0 -0
  685. /package/dist/{chunk-HITRGZIS.js.map → chunk-YW2SISXV.js.map} +0 -0
  686. /package/dist/{chunk-WAEWKD75.js.map → chunk-ZCPYINLO.js.map} +0 -0
  687. /package/dist/{chunk-SSJR3FZ5.js.map → chunk-ZL4RUOCW.js.map} +0 -0
  688. /package/dist/{claim-CIUU5QEZ.js.map → claim-WWIZTMTV.js.map} +0 -0
  689. /package/dist/{companies-VV5XD3BP.js.map → companies-MILLGGJI.js.map} +0 -0
  690. /package/dist/{company-EZH6ZPXD.js.map → company-3MO2C3SJ.js.map} +0 -0
  691. /package/dist/{complete-NKYCSYKX.js.map → complete-22T4UMZA.js.map} +0 -0
  692. /package/dist/{connect-TFH4AFFO.js.map → connect-U6HPGREH.js.map} +0 -0
  693. /package/dist/{conversation-S6CKSNYW.js.map → conversation-RP3AK4LE.js.map} +0 -0
  694. /package/dist/{conversion-report-V3TGPELD.js.map → conversion-report-UIU4JRJG.js.map} +0 -0
  695. /package/dist/{conversion-upload-command-K2SB6O6K.js.map → conversion-upload-command-5BUCIVEE.js.map} +0 -0
  696. /package/dist/{conversion-writes-B2QOYL56.js.map → conversion-writes-OMZVC2NX.js.map} +0 -0
  697. /package/dist/{conversions-KXYOUSBR.js.map → conversions-ACYPUK4Z.js.map} +0 -0
  698. /package/dist/{conversions-ILF5HJOO.js.map → conversions-M5FWYDC4.js.map} +0 -0
  699. /package/dist/{create-Y44CPUE4.js.map → create-DG326KYF.js.map} +0 -0
  700. /package/dist/{create-BZWX5KLI.js.map → create-JNVOTWWU.js.map} +0 -0
  701. /package/dist/{create-XKGV6TEW.js.map → create-L3A5HCNR.js.map} +0 -0
  702. /package/dist/{create-WEIGJ4BF.js.map → create-M37PJDJF.js.map} +0 -0
  703. /package/dist/{creatives-P5MX2AZL.js.map → creatives-L5OKL34F.js.map} +0 -0
  704. /package/dist/{creatives-WFDFLRQV.js.map → creatives-YGNBGVLX.js.map} +0 -0
  705. /package/dist/{credentials-5EOUA5VL.js.map → credentials-7LBMDF6N.js.map} +0 -0
  706. /package/dist/{critique-4ETQZBQG.js.map → critique-2DKP7YFP.js.map} +0 -0
  707. /package/dist/{critique-OYUMBZ4Y.js.map → critique-7KZZS2EX.js.map} +0 -0
  708. /package/dist/{crm-UGP57XSN.js.map → crm-DHBHUDXH.js.map} +0 -0
  709. /package/dist/{crm-6UU3GFQU.js.map → crm-HB6TC3JM.js.map} +0 -0
  710. /package/dist/{currency-UVQIYZUP.js.map → currency-FGNHI5NQ.js.map} +0 -0
  711. /package/dist/{customers-RT75T4ZB.js.map → customers-G7XJHA2I.js.map} +0 -0
  712. /package/dist/{delete-37IIUYQU.js.map → delete-N34HCPOM.js.map} +0 -0
  713. /package/dist/{delete-E575BF73.js.map → delete-YQWPPBM6.js.map} +0 -0
  714. /package/dist/{delete-GQYFBLMP.js.map → delete-YVNKPARC.js.map} +0 -0
  715. /package/dist/{demographics-3LIUI2SM.js.map → demographics-YI2WM4HS.js.map} +0 -0
  716. /package/dist/{discard-7OARQRS7.js.map → discard-PJNIC22V.js.map} +0 -0
  717. /package/dist/{discover-2TPMVIW7.js.map → discover-KXTBNKH3.js.map} +0 -0
  718. /package/dist/{domain-ZRWUGUOO.js.map → domain-GJUNOEFM.js.map} +0 -0
  719. /package/dist/{draft-CVSGNA4Z.js.map → draft-7NAX2XE5.js.map} +0 -0
  720. /package/dist/{draft-5XV2BJ3N.js.map → draft-JX35Y36U.js.map} +0 -0
  721. /package/dist/{draft-UHNTXGY7.js.map → draft-N2E6YXER.js.map} +0 -0
  722. /package/dist/{draft-A2I4RLMW.js.map → draft-PPUG66G6.js.map} +0 -0
  723. /package/dist/{draft-SNBK2KY6.js.map → draft-UFJO2N6C.js.map} +0 -0
  724. /package/dist/{experiments-IGMLMSLX.js.map → experiments-ZWEI2VT3.js.map} +0 -0
  725. /package/dist/{facets-AURXB76V.js.map → facets-Z4NGP42L.js.map} +0 -0
  726. /package/dist/{feedback-UDTPDCMS.js.map → feedback-43MWGNMC.js.map} +0 -0
  727. /package/dist/{feedback-record-Z34XJF6K.js.map → feedback-record-2P625JGM.js.map} +0 -0
  728. /package/dist/{fetch-GR3FXFXL.js.map → fetch-S2R7NHKI.js.map} +0 -0
  729. /package/dist/{fit-SLEEJWVR.js.map → fit-CJXDP75P.js.map} +0 -0
  730. /package/dist/{flows-NAFSRRY2.js.map → flows-DIPN66XJ.js.map} +0 -0
  731. /package/dist/{fonts-POBAXXBC.js.map → fonts-3UNRBOM6.js.map} +0 -0
  732. /package/dist/{forecast-RN6VUKLS.js.map → forecast-EPYSKYDX.js.map} +0 -0
  733. /package/dist/{forecast-CLQKEFI6.js.map → forecast-HPYOX43W.js.map} +0 -0
  734. /package/dist/{funnel-O3XOHYI3.js.map → funnel-JLYI5XXG.js.map} +0 -0
  735. /package/dist/{generate-NWHPM2GQ.js.map → generate-3Y4IRIVA.js.map} +0 -0
  736. /package/dist/{get-UQ43T25B.js.map → get-3NRSP3FD.js.map} +0 -0
  737. /package/dist/{get-2MC5LYXY.js.map → get-QYIE5QQD.js.map} +0 -0
  738. /package/dist/{google-ZZCSZR63.js.map → google-7L4GR3AB.js.map} +0 -0
  739. /package/dist/{google-ads-7DJ5STPS.js.map → google-ads-O4MYQOGT.js.map} +0 -0
  740. /package/dist/{history-QRM76S4Q.js.map → history-DGFRDY7V.js.map} +0 -0
  741. /package/dist/{history-IXV4ZR6F.js.map → history-I6ZDT2WP.js.map} +0 -0
  742. /package/dist/{hubspot-HVZNR2IR.js.map → hubspot-J6Z5FAZ5.js.map} +0 -0
  743. /package/dist/{ideas-S2UXZSFB.js.map → ideas-ADQFXOI4.js.map} +0 -0
  744. /package/dist/{images-FYSBKRU6.js.map → images-X7Z34JXA.js.map} +0 -0
  745. /package/dist/{ingest-37F3NOLA.js.map → ingest-3YB37P3B.js.map} +0 -0
  746. /package/dist/{ingest-YQINQGG7.js.map → ingest-QEOAUEKH.js.map} +0 -0
  747. /package/dist/{insights-UKWLUS5P.js.map → insights-FEDPCRAC.js.map} +0 -0
  748. /package/dist/{inspect-RVU5RDCE.js.map → inspect-N2XWYHLO.js.map} +0 -0
  749. /package/dist/{intent-57BBLPLP.js.map → intent-QTQIHE32.js.map} +0 -0
  750. /package/dist/{keyword-gap-TSIQBZ6G.js.map → keyword-gap-SSWMMVI2.js.map} +0 -0
  751. /package/dist/{keyword-metrics-7XZXPSQO.js.map → keyword-metrics-6UKUK6GT.js.map} +0 -0
  752. /package/dist/{keywords-for-site-A43QNTLD.js.map → keywords-for-site-O6GRPM2B.js.map} +0 -0
  753. /package/dist/{landing-NFDGD3PQ.js.map → landing-INTIUYIJ.js.map} +0 -0
  754. /package/dist/{languages-WKOFWZ7S.js.map → languages-2RPBR5VU.js.map} +0 -0
  755. /package/dist/{leads-UHJS7VNH.js.map → leads-S3HSZZCL.js.map} +0 -0
  756. /package/dist/{learn-POJ5ORBK.js.map → learn-6FPZCSOS.js.map} +0 -0
  757. /package/dist/{line-item-writes-K4BSUEIJ.js.map → line-item-writes-AALLWAU4.js.map} +0 -0
  758. /package/dist/{line-items-DLLEPPIN.js.map → line-items-KPWFC6K4.js.map} +0 -0
  759. /package/dist/{link-L2KC5EIZ.js.map → link-4QPX5OEW.js.map} +0 -0
  760. /package/dist/{linkedin-A4U6IGZX.js.map → linkedin-WICM3UW5.js.map} +0 -0
  761. /package/dist/{linkedin-person-DSLAOKKN.js.map → linkedin-person-5VXCUVH5.js.map} +0 -0
  762. /package/dist/{list-PHWCEYCP.js.map → list-6MBZKJOY.js.map} +0 -0
  763. /package/dist/{list-Y4V276ND.js.map → list-CPTVS5DS.js.map} +0 -0
  764. /package/dist/{list-JKB33W6K.js.map → list-UOCTTPPW.js.map} +0 -0
  765. /package/dist/{locations-MID4EY6D.js.map → locations-3RZ5VGBO.js.map} +0 -0
  766. /package/dist/{locations-EQKMPX4G.js.map → locations-U5CJGLMB.js.map} +0 -0
  767. /package/dist/{log-O3I5JZCM.js.map → log-V2ZXE34Z.js.map} +0 -0
  768. /package/dist/{make-GLGNEOK6.js.map → make-NFND4QRB.js.map} +0 -0
  769. /package/dist/{map-D3EH7S2T.js.map → map-KZBPFQXO.js.map} +0 -0
  770. /package/dist/{mcp-R4ZTYQW7.js.map → mcp-LACK6SUK.js.map} +0 -0
  771. /package/dist/{media-sources-TVGS34TE.js.map → media-sources-TZF6BUJV.js.map} +0 -0
  772. /package/dist/{members-OBA4MXAQ.js.map → members-R4XLM7VC.js.map} +0 -0
  773. /package/dist/{metrics-35OGYZNY.js.map → metrics-ZYRQXPA6.js.map} +0 -0
  774. /package/dist/{models-JQEPSPNQ.js.map → models-C3BLMJGT.js.map} +0 -0
  775. /package/dist/{normalize-HU37AR7G.js.map → normalize-ZDY6L5VO.js.map} +0 -0
  776. /package/dist/{options-HLMTCEDW.js.map → options-2VKTXIV7.js.map} +0 -0
  777. /package/dist/{organization-6ZVXU5JC.js.map → organization-EO4LOJHQ.js.map} +0 -0
  778. /package/dist/{performance-V5WZCJYT.js.map → performance-AGJ42PRN.js.map} +0 -0
  779. /package/dist/{performance-PIB2AXKO.js.map → performance-TALH5EGT.js.map} +0 -0
  780. /package/dist/{pixels-WHQLX4FV.js.map → pixels-YGOGQ7SS.js.map} +0 -0
  781. /package/dist/{posts-QAMZRCRY.js.map → posts-37LZKGWU.js.map} +0 -0
  782. /package/dist/{promoted-tweet-writes-E4EJZM76.js.map → promoted-tweet-writes-27RR3GOV.js.map} +0 -0
  783. /package/dist/{promoted-tweets-M44AIHSQ.js.map → promoted-tweets-6XAIXBK5.js.map} +0 -0
  784. /package/dist/{publish-H7UGB5IP.js.map → publish-YMZVWMZ6.js.map} +0 -0
  785. /package/dist/{query-ZH5CWI3X.js.map → query-HSDQWMJ3.js.map} +0 -0
  786. /package/dist/{reddit-KCPU4RW4.js.map → reddit-XNCKH4LM.js.map} +0 -0
  787. /package/dist/{refresh-WTSCSEQE.js.map → refresh-X52QWB7U.js.map} +0 -0
  788. /package/dist/{release-SVOT7QVX.js.map → release-NRZSYXTV.js.map} +0 -0
  789. /package/dist/{relevant-pages-7KEKKRQ2.js.map → relevant-pages-DBALXQLB.js.map} +0 -0
  790. /package/dist/{remove-TY3AF5K5.js.map → remove-CBHGRAZS.js.map} +0 -0
  791. /package/dist/{reopen-WCUZMTYE.js.map → reopen-ROZWMKSV.js.map} +0 -0
  792. /package/dist/{rerun-FKYNFNSI.js.map → rerun-CRAFUCZG.js.map} +0 -0
  793. /package/dist/{research-N2RWKIRQ.js.map → research-6DMZVH3U.js.map} +0 -0
  794. /package/dist/{research-X6ITCPFY.js.map → research-MQMA4ZQN.js.map} +0 -0
  795. /package/dist/{reset-O77UZD6Z.js.map → reset-6PCDMCKC.js.map} +0 -0
  796. /package/dist/{reset-TDAMB4BO.js.map → reset-JEMTNDBF.js.map} +0 -0
  797. /package/dist/{resolve-NC4MLM42.js.map → resolve-MPN3G7YW.js.map} +0 -0
  798. /package/dist/{retry-XVUWY7ZH.js.map → retry-7RQ44CSW.js.map} +0 -0
  799. /package/dist/{retry-QNXWTHOL.js.map → retry-JUYM5AE4.js.map} +0 -0
  800. /package/dist/{revenue-D3B4DMBC.js.map → revenue-IFI432JN.js.map} +0 -0
  801. /package/dist/{rules-Y3BH7SO5.js.map → rules-W2DCHJGX.js.map} +0 -0
  802. /package/dist/{rules-add-GSPFBNYU.js.map → rules-add-OIP7SRKM.js.map} +0 -0
  803. /package/dist/{run-ON72O5YS.js.map → run-IXJ3AJ6X.js.map} +0 -0
  804. /package/dist/{run-G6XAJOJ7.js.map → run-LJUCR2JA.js.map} +0 -0
  805. /package/dist/{scaffold-ad-YF6FUEJZ.js.map → scaffold-ad-SBYDMOAQ.js.map} +0 -0
  806. /package/dist/{scaffold-video-BUOCGJNH.js.map → scaffold-video-Z4GXKC7W.js.map} +0 -0
  807. /package/dist/{schedule-7EQLO22N.js.map → schedule-BMGOREVG.js.map} +0 -0
  808. /package/dist/{scheduled-agents-4WCPCMYC.js.map → scheduled-agents-BGTR3WCX.js.map} +0 -0
  809. /package/dist/{schema-KM5MFQUQ.js.map → schema-HCWSZHZJ.js.map} +0 -0
  810. /package/dist/{search-YEYQDDLA.js.map → search-OVFOPUXT.js.map} +0 -0
  811. /package/dist/{select-QSGZYOFV.js.map → select-XSVMD5JH.js.map} +0 -0
  812. /package/dist/{set-prompt-4OTBGPDQ.js.map → set-prompt-SFP2DB4O.js.map} +0 -0
  813. /package/dist/{setup-links-E2GARNTU.js.map → setup-links-K6KTGVSA.js.map} +0 -0
  814. /package/dist/{shopify-GT6PJ77M.js.map → shopify-MIOO3BGY.js.map} +0 -0
  815. /package/dist/{site-TMF2P7JR.js.map → site-6M7SXCPN.js.map} +0 -0
  816. /package/dist/{sources-47LE2UCO.js.map → sources-FTAC2WUM.js.map} +0 -0
  817. /package/dist/{sources-H6XX2WBO.js.map → sources-JHPI7Q2O.js.map} +0 -0
  818. /package/dist/{stale-JTX5U752.js.map → stale-FPRPOEHH.js.map} +0 -0
  819. /package/dist/{status-3X3MECDY.js.map → status-4C37VNOQ.js.map} +0 -0
  820. /package/dist/{studio-Z4AJRIGP.js.map → studio-65IM5YDD.js.map} +0 -0
  821. /package/dist/{sync-HWTVXGOT.js.map → sync-KCD6KCKU.js.map} +0 -0
  822. /package/dist/{sync-definition-CAPYMYIS.js.map → sync-definition-WFDK6RR3.js.map} +0 -0
  823. /package/dist/{tag-manager-TU3FBSYO.js.map → tag-manager-BVPLGLTF.js.map} +0 -0
  824. /package/dist/{tags-7BT63PUE.js.map → tags-2A4YRO34.js.map} +0 -0
  825. /package/dist/{tags-7K5RSCHI.js.map → tags-N3LP2WTK.js.map} +0 -0
  826. /package/dist/{tags-75QCVBQB.js.map → tags-OBQ5BTBY.js.map} +0 -0
  827. /package/dist/{tags-UPA4KKQZ.js.map → tags-WWETGLRJ.js.map} +0 -0
  828. /package/dist/{tags-IELH7YAY.js.map → tags-ZWL3G4XR.js.map} +0 -0
  829. /package/dist/{targeting-criteria-HJQ2FW6E.js.map → targeting-criteria-YHSVILGV.js.map} +0 -0
  830. /package/dist/{targets-CBZ37ALP.js.map → targets-4SZC7DR4.js.map} +0 -0
  831. /package/dist/{testimonials-4W6HI2PQ.js.map → testimonials-MJHMFJ5J.js.map} +0 -0
  832. /package/dist/{themes-RDNVUJHG.js.map → themes-GTWQLIX2.js.map} +0 -0
  833. /package/dist/{top-companies-CW77UVK3.js.map → top-companies-DSL2QVOH.js.map} +0 -0
  834. /package/dist/{transcript-FA2TOVPP.js.map → transcript-FGLOJFU4.js.map} +0 -0
  835. /package/dist/{translate-7W7O6W3J.js.map → translate-JSXPZUBM.js.map} +0 -0
  836. /package/dist/{triggers-MCP6IGTX.js.map → triggers-UAEGGBYL.js.map} +0 -0
  837. /package/dist/{unlink-RK5V4QO2.js.map → unlink-HUCQPTTA.js.map} +0 -0
  838. /package/dist/{unstage-5JTGVEB7.js.map → unstage-CYIVBS5D.js.map} +0 -0
  839. /package/dist/{update-5AAMF5JP.js.map → update-IORKVKDQ.js.map} +0 -0
  840. /package/dist/{update-LCE2QN53.js.map → update-R7WY7EGL.js.map} +0 -0
  841. /package/dist/{update-G2KB3RIW.js.map → update-WT7MMEBY.js.map} +0 -0
  842. /package/dist/{upload-ORFEAADP.js.map → upload-FZAAJHU7.js.map} +0 -0
  843. /package/dist/{url-options-6U7QCTAY.js.map → url-options-PPIRU2RF.js.map} +0 -0
  844. /package/dist/{url-params-KQIUVVGX.js.map → url-params-ZM6YVT63.js.map} +0 -0
  845. /package/dist/{validate-BF656HWM.js.map → validate-PPUSF56N.js.map} +0 -0
  846. /package/dist/{viewer-check-THBLTL2G.js.map → viewer-check-4SFBSLRN.js.map} +0 -0
  847. /package/dist/{web-2EKHRXCS.js.map → web-MYPJLXY3.js.map} +0 -0
  848. /package/dist/{winning-ads-LW5SMMLB.js.map → winning-ads-KY7NQR2P.js.map} +0 -0
  849. /package/dist/{write-commands-Z556OHHH.js.map → write-commands-GQHYLHOF.js.map} +0 -0
  850. /package/dist/{x-F5CSO2RN.js.map → x-Q2DLEBQS.js.map} +0 -0
@@ -0,0 +1,139 @@
1
+ import {
2
+ csvOrJson,
3
+ daysAgoIso,
4
+ handleLinkedinError,
5
+ todayIso
6
+ } from "./chunk-SGU5L5JS.js";
7
+ import {
8
+ writeAdsJson
9
+ } from "./chunk-ZRP7Y2DM.js";
10
+ import {
11
+ NO_CACHE_ARG
12
+ } from "./chunk-AGBBTTKA.js";
13
+ import "./chunk-MWD6JTOY.js";
14
+ import "./chunk-CAZGM2NX.js";
15
+ import "./chunk-NZS3KEQ2.js";
16
+ import "./chunk-GIWHHCD6.js";
17
+ import "./chunk-UI6BKYQD.js";
18
+ import "./chunk-PTRCB7AR.js";
19
+ import {
20
+ apiPost
21
+ } from "./chunk-X7VQFLHI.js";
22
+ import "./chunk-LU4HI4KI.js";
23
+ import "./chunk-LGK7UWBN.js";
24
+ import "./chunk-Q7US4OOA.js";
25
+ import "./chunk-YQSBHWOI.js";
26
+
27
+ // src/commands/ads/linkedin/demographics.ts
28
+ import { defineCommand } from "citty";
29
+ var DEFAULT_PIVOTS = ["job-title", "company", "industry", "seniority", "job-function", "company-size"];
30
+ function numberOf(v) {
31
+ if (typeof v === "number") return Number.isFinite(v) ? v : 0;
32
+ if (typeof v === "string") {
33
+ const n = Number(v);
34
+ return Number.isFinite(n) ? n : 0;
35
+ }
36
+ return 0;
37
+ }
38
+ function topByImpressions(rows, limit) {
39
+ return [...rows].sort((a, b) => numberOf(b.impressions) - numberOf(a.impressions)).slice(0, limit);
40
+ }
41
+ var demographicsCommand = defineCommand({
42
+ meta: {
43
+ name: "demographics",
44
+ description: `Sweep all firmographic pivots in one command \u2014 LinkedIn's superpower.
45
+
46
+ Default pivots:
47
+ job-title, company, industry, seniority, job-function, company-size
48
+
49
+ Use --pivots to narrow the sweep. Output is one section per pivot, each with
50
+ top-N rows by impressions (configurable via --top-n).
51
+
52
+ Demographic data is delayed 12-24h with a \u22653-event privacy floor \u2014 small
53
+ buckets are silently dropped. The CLI surfaces this in 'warnings' when the
54
+ result set comes back unexpectedly empty.
55
+
56
+ Examples:
57
+ baker ads linkedin demographics --campaign-id 1234
58
+ baker ads linkedin demographics --campaign-id 1234 --pivots job-title,company
59
+ baker ads linkedin demographics --campaign-id 1234 --last-days 30 --top-n 25`
60
+ },
61
+ args: {
62
+ "campaign-id": { type: "string", description: "Comma-separated campaign IDs (required)" },
63
+ pivots: { type: "string", description: `CSV of pivots (default: ${DEFAULT_PIVOTS.join(",")})` },
64
+ "top-n": { type: "string", description: "Top rows per pivot (default: 10)" },
65
+ intent: { type: "string", description: "baseline | revenue | funnel | engagement | lead-gen (default: baseline)" },
66
+ start: { type: "string", description: "Start date YYYY-MM-DD" },
67
+ end: { type: "string", description: "End date YYYY-MM-DD" },
68
+ "last-days": { type: "string", description: "Window relative to today (default: 30)" },
69
+ "no-cache": NO_CACHE_ARG,
70
+ output: { type: "string", description: "json", default: "json" }
71
+ },
72
+ run: async ({ args }) => {
73
+ const fmt = csvOrJson(args);
74
+ if (fmt !== "json") {
75
+ writeAdsJson({
76
+ ok: false,
77
+ error: {
78
+ code: "UNSUPPORTED_FORMAT",
79
+ message: "demographics returns a structured per-pivot report \u2014 only --output json supported."
80
+ }
81
+ });
82
+ process.exit(1);
83
+ }
84
+ const campaignIdsRaw = args["campaign-id"];
85
+ if (!campaignIdsRaw) {
86
+ handleLinkedinError(new Error("--campaign-id is required (CSV for multi)."));
87
+ }
88
+ const ids = campaignIdsRaw.split(",").map((s) => s.trim()).filter(Boolean);
89
+ const pivotsRaw = args.pivots?.split(",").map((s) => s.trim().toLowerCase());
90
+ const pivots = pivotsRaw && pivotsRaw.length > 0 ? pivotsRaw : DEFAULT_PIVOTS;
91
+ const topN = args["top-n"] ? Number(args["top-n"]) : 10;
92
+ const intent = args.intent ?? "baseline";
93
+ const { start, end } = resolveRange(args);
94
+ try {
95
+ const results = [];
96
+ for (const pivot of pivots) {
97
+ const data = await apiPost("/api/ads/linkedin/analytics", {
98
+ request: {
99
+ level: "campaign",
100
+ ids,
101
+ intent,
102
+ pivot,
103
+ start,
104
+ end,
105
+ granularity: "ALL",
106
+ limit: 500
107
+ },
108
+ skipCache: Boolean(args["no-cache"])
109
+ });
110
+ results.push({ pivot, rows: topByImpressions(data.rows, topN), warnings: data.warnings });
111
+ }
112
+ writeAdsJson({
113
+ ok: true,
114
+ data: {
115
+ query: { campaigns: ids, start, end, intent, topN },
116
+ pivots: results
117
+ }
118
+ });
119
+ } catch (err) {
120
+ handleLinkedinError(err);
121
+ }
122
+ }
123
+ });
124
+ function resolveRange(args) {
125
+ const start = args.start;
126
+ const end = args.end;
127
+ if (start) {
128
+ return { start, end };
129
+ }
130
+ const days = args["last-days"] ? Number(args["last-days"]) : 30;
131
+ if (!Number.isFinite(days) || days < 1) {
132
+ handleLinkedinError(new Error("Invalid --last-days; must be a positive integer."));
133
+ }
134
+ return { start: daysAgoIso(days), end: todayIso() };
135
+ }
136
+ export {
137
+ demographicsCommand
138
+ };
139
+ //# sourceMappingURL=demographics-YI2WM4HS.js.map
@@ -0,0 +1,67 @@
1
+ import {
2
+ failApi,
3
+ failValidation,
4
+ writeOk
5
+ } from "./chunk-4IYLTR6P.js";
6
+ import "./chunk-MWD6JTOY.js";
7
+ import "./chunk-CAZGM2NX.js";
8
+ import "./chunk-NZS3KEQ2.js";
9
+ import "./chunk-GIWHHCD6.js";
10
+ import "./chunk-UI6BKYQD.js";
11
+ import "./chunk-PTRCB7AR.js";
12
+ import {
13
+ apiPost,
14
+ validateConvexId
15
+ } from "./chunk-X7VQFLHI.js";
16
+ import "./chunk-LU4HI4KI.js";
17
+ import {
18
+ requireChatId
19
+ } from "./chunk-LGK7UWBN.js";
20
+ import {
21
+ registerSchema
22
+ } from "./chunk-Q7US4OOA.js";
23
+ import "./chunk-YQSBHWOI.js";
24
+
25
+ // src/commands/actions/discard.ts
26
+ import { defineCommand } from "citty";
27
+ registerSchema({
28
+ command: "actions.discard",
29
+ description: "Stage discard of an action \u2014 no claim needed; retire any action you're not working on. Applies on chat publish. Blocked only if another chat currently has it claimed.",
30
+ args: {
31
+ id: { type: "string", description: "Action ID", required: true },
32
+ reason: { type: "string", description: "Optional reason", required: false }
33
+ }
34
+ });
35
+ var discardCommand = defineCommand({
36
+ meta: {
37
+ name: "discard",
38
+ description: 'Stage discard of an action (no claim needed). Example: baker actions discard <id> --reason "obsolete"'
39
+ },
40
+ args: {
41
+ id: { type: "positional", description: "Action ID", required: false },
42
+ "action-id": { type: "string", description: "Action ID", required: false },
43
+ reason: { type: "string", description: "Reason for discarding", required: false }
44
+ },
45
+ run: async ({ args }) => {
46
+ try {
47
+ const id = args.id || args["action-id"];
48
+ if (!id) {
49
+ failValidation("Action ID is required.");
50
+ }
51
+ validateConvexId(id);
52
+ const chatId = requireChatId();
53
+ await apiPost("/api/actions/discard", {
54
+ chatId,
55
+ actionId: id,
56
+ reason: args.reason
57
+ });
58
+ writeOk();
59
+ } catch (err) {
60
+ failApi(err);
61
+ }
62
+ }
63
+ });
64
+ export {
65
+ discardCommand
66
+ };
67
+ //# sourceMappingURL=discard-PJNIC22V.js.map
@@ -0,0 +1,172 @@
1
+ import {
2
+ PLANNER_FIELD_DESCRIPTIONS,
3
+ PLANNER_SOURCE,
4
+ stampPlannerRows
5
+ } from "./chunk-2Y5V23PU.js";
6
+ import {
7
+ buildAdsQueryContext,
8
+ warnDefaults
9
+ } from "./chunk-4D5HZ7V3.js";
10
+ import "./chunk-43PAN3L2.js";
11
+ import {
12
+ buildQueryCacheKey,
13
+ cacheGet,
14
+ cacheSet,
15
+ getManagerIdForCustomer,
16
+ handleConnectionError,
17
+ isNotConnectedError,
18
+ resolveCustomerId,
19
+ writeAdsJson,
20
+ writeAdsOutput
21
+ } from "./chunk-ZRP7Y2DM.js";
22
+ import "./chunk-PTRCB7AR.js";
23
+ import {
24
+ ApiError,
25
+ apiPost
26
+ } from "./chunk-X7VQFLHI.js";
27
+ import "./chunk-LU4HI4KI.js";
28
+ import "./chunk-LGK7UWBN.js";
29
+ import {
30
+ registerSchema
31
+ } from "./chunk-Q7US4OOA.js";
32
+ import "./chunk-YQSBHWOI.js";
33
+
34
+ // src/commands/ads/google/keywords/discover.ts
35
+ import { defineCommand } from "citty";
36
+ registerSchema({
37
+ command: "ads.google.keywords.discover",
38
+ description: 'Discover keyword ideas from seed keywords or URLs. Returns { source: "keyword_planner_estimate", keywords, total_results, next_page_token? }. These are Keyword Planner estimates of total market search volume, not this account\'s data: every row carries a source column and every metric is prefixed planner_ (planner_avg_monthly_searches, planner_competition, ...). Never report a planner_ number as impressions, clicks or any account metric \u2014 read those with `baker ads google query` against the account. If --location and --language are omitted, they default to United States (2840) and English (1000); `query_context` shows which were used.',
39
+ args: {
40
+ "customer-id": {
41
+ type: "string",
42
+ description: "Google Ads customer ID (10 digits, no dashes). Falls back to BAKER_GOOGLE_ADS_CUSTOMER_ID env var.",
43
+ required: false
44
+ },
45
+ seeds: { type: "string", description: "Comma-separated seed keywords (max 10)", required: false },
46
+ url: { type: "string", description: "URL to extract keyword ideas from", required: false },
47
+ location: {
48
+ type: "string",
49
+ description: "Geo target ID. Defaults to 2840 (United States) if omitted \u2014 always set this for non-US markets",
50
+ required: false
51
+ },
52
+ language: {
53
+ type: "string",
54
+ description: "Language ID. Defaults to 1000 (English) if omitted \u2014 always set this for non-English markets",
55
+ required: false
56
+ },
57
+ limit: { type: "string", description: "Max keyword ideas (default: 20, max: 100)", required: false, default: 20 },
58
+ cursor: {
59
+ type: "string",
60
+ description: "Pagination cursor from previous response (next_page_token)",
61
+ required: false
62
+ },
63
+ output: { type: "string", description: "Format: json|csv|jsonl|md", required: false, default: "json" },
64
+ "no-cache": { type: "boolean", description: "Skip cache", required: false }
65
+ }
66
+ });
67
+ function stampDiscoverResponse(data) {
68
+ return { ...data, source: PLANNER_SOURCE, keywords: stampPlannerRows(data.keywords ?? []) };
69
+ }
70
+ function buildDiscoverBody(customerId, args) {
71
+ const body = {
72
+ customerId,
73
+ pageSize: args.limit ? Number(args.limit) : 20
74
+ };
75
+ const managerId = getManagerIdForCustomer(customerId);
76
+ if (managerId) body.managerId = managerId;
77
+ const seeds = args.seeds ? args.seeds.split(",").map((s) => s.trim()).filter(Boolean) : void 0;
78
+ if (seeds) body.seeds = seeds;
79
+ if (args.url) body.url = args.url;
80
+ if (args.location) body.locationIds = [args.location];
81
+ if (args.language) body.languageId = args.language;
82
+ if (args.cursor) body.pageToken = args.cursor;
83
+ return body;
84
+ }
85
+ function handleKeywordError(err) {
86
+ if (err instanceof ApiError) {
87
+ if (isNotConnectedError(err.code, err.message)) {
88
+ handleConnectionError("google_ads", err.message);
89
+ }
90
+ const envelope = {
91
+ ok: false,
92
+ error: {
93
+ code: err.code,
94
+ message: err.message,
95
+ fix: { action: "reject", explanation: err.message },
96
+ retryable: err.code === "RATE_LIMITED"
97
+ }
98
+ };
99
+ writeAdsJson(envelope);
100
+ process.exit(1);
101
+ }
102
+ writeAdsJson({ ok: false, error: { code: "NETWORK_ERROR", message: "Unexpected error" } });
103
+ process.exit(1);
104
+ }
105
+ var discoverCommand = defineCommand({
106
+ meta: {
107
+ name: "discover",
108
+ description: `Discover new keyword ideas from seed keywords or competitor URLs.
109
+
110
+ Returns Keyword Planner ESTIMATES of market search volume, not this account's numbers. Every row carries source=keyword_planner_estimate and planner_-prefixed metrics; keep those names when you quote a figure, and never present one as an impression or click count.
111
+
112
+ Examples:
113
+ baker ads google keywords discover --customer-id 1234567890 --seeds "running shoes,athletic footwear"
114
+ baker ads google keywords discover --customer-id 1234567890 --url "https://competitor.com"
115
+ baker ads google keywords discover --customer-id 1234567890 --seeds "seo tools" --location 2826 --limit 50`
116
+ },
117
+ args: {
118
+ "customer-id": { type: "string", description: "Google Ads customer ID", required: false },
119
+ seeds: { type: "string", description: "Comma-separated seed keywords", required: false },
120
+ url: { type: "string", description: "URL to extract ideas from", required: false },
121
+ location: { type: "string", description: "Geo target ID (default 2840)", required: false },
122
+ language: { type: "string", description: "Language ID (default 1000)", required: false },
123
+ limit: { type: "string", description: "Max results (default 20)", required: false },
124
+ cursor: { type: "string", description: "Pagination cursor from previous response", required: false },
125
+ "no-cache": { type: "boolean", description: "Skip cache", required: false },
126
+ output: { type: "string", description: "Format: json|csv|jsonl|md", required: false, default: "json" }
127
+ },
128
+ run: async ({ args }) => {
129
+ const customerId = await resolveCustomerId(args);
130
+ const queryContext = buildAdsQueryContext(args.location, args.language);
131
+ if (!args.seeds && !args.url) {
132
+ writeAdsJson({
133
+ ok: false,
134
+ error: { code: "VALIDATION_ERROR", message: "Provide --seeds or --url (at least one required)" }
135
+ });
136
+ process.exit(1);
137
+ }
138
+ const body = buildDiscoverBody(customerId, args);
139
+ const useCache = !args["no-cache"] && !args.cursor;
140
+ if (!useCache) body.skipCache = true;
141
+ const cacheKey = buildQueryCacheKey(customerId, JSON.stringify(body));
142
+ if (useCache) {
143
+ const cached = cacheGet("keywords", cacheKey);
144
+ if (cached) {
145
+ warnDefaults(queryContext);
146
+ writeAdsJson({ ok: true, data: stampDiscoverResponse(cached.data), cached: true, query_context: queryContext });
147
+ return;
148
+ }
149
+ }
150
+ try {
151
+ const data = await apiPost("/api/ads/google/keywords/discover", body);
152
+ if (useCache) {
153
+ cacheSet("keywords", cacheKey, data, 24 * 60 * 60 * 1e3);
154
+ }
155
+ warnDefaults(queryContext);
156
+ const stamped = stampDiscoverResponse(data);
157
+ const format = args.output || "json";
158
+ if (format !== "json") {
159
+ writeAdsOutput(stamped.keywords, format);
160
+ return;
161
+ }
162
+ writeAdsJson({ ok: true, data: stamped, fields: PLANNER_FIELD_DESCRIPTIONS, query_context: queryContext });
163
+ } catch (err) {
164
+ handleKeywordError(err);
165
+ }
166
+ }
167
+ });
168
+ export {
169
+ discoverCommand,
170
+ stampDiscoverResponse
171
+ };
172
+ //# sourceMappingURL=discover-KXTBNKH3.js.map
@@ -0,0 +1,99 @@
1
+ import {
2
+ failSite
3
+ } from "./chunk-4SATGZL3.js";
4
+ import "./chunk-MWD6JTOY.js";
5
+ import "./chunk-CAZGM2NX.js";
6
+ import "./chunk-NZS3KEQ2.js";
7
+ import "./chunk-GIWHHCD6.js";
8
+ import "./chunk-UI6BKYQD.js";
9
+ import "./chunk-PTRCB7AR.js";
10
+ import {
11
+ apiGet,
12
+ apiPost
13
+ } from "./chunk-X7VQFLHI.js";
14
+ import "./chunk-LU4HI4KI.js";
15
+ import {
16
+ optionalChatId,
17
+ requireChatId
18
+ } from "./chunk-LGK7UWBN.js";
19
+ import {
20
+ registerSchema,
21
+ writeJson
22
+ } from "./chunk-Q7US4OOA.js";
23
+ import "./chunk-YQSBHWOI.js";
24
+
25
+ // src/commands/site/domain.ts
26
+ import { defineCommand } from "citty";
27
+ registerSchema({
28
+ command: "site.domain.add",
29
+ description: "Stage connecting a custom domain (a subdomain such as shop.acme.com \u2014 not the bare acme.com) to the company's landings. Applies when the chat is published; then Baker starts verifying it. The client must add a CNAME record pointing the hostname at customers.withbaker.com \u2014 the response's hints give the exact record to ask for. Refused at once when another company already registered it or the company is at its domain limit.",
30
+ args: { hostname: { type: "string", description: "The subdomain to connect, e.g. shop.acme.com", required: true } }
31
+ });
32
+ registerSchema({
33
+ command: "site.domain.list",
34
+ description: "Every custom domain of the company and its status: pending_verification (waiting for the DNS record \u2014 `message` says what is missing), active (live), error, or staged (this chat adds it at publish). Read-only.",
35
+ args: {}
36
+ });
37
+ registerSchema({
38
+ command: "site.domain.verify",
39
+ description: "Re-check a domain that is waiting for verification now instead of waiting for the background check (every few minutes). Use after the client says they added the DNS record. Returns its state and, if it is not live yet, what is still missing. A staged domain cannot be checked until the chat is published.",
40
+ args: { hostname: { type: "string", description: "A domain from `baker site domain list`", required: true } }
41
+ });
42
+ var addCommand = defineCommand({
43
+ meta: {
44
+ name: "add",
45
+ description: "Stage connecting a custom domain; applies at publish. The client adds a CNAME to customers.withbaker.com.\n\nExample: baker site domain add shop.acme.com"
46
+ },
47
+ args: { hostname: { type: "positional", description: "Subdomain, e.g. shop.acme.com", required: true } },
48
+ run: async ({ args }) => {
49
+ try {
50
+ const body = {
51
+ chatId: requireChatId(),
52
+ inputs: [{ setting: "customDomain", hostname: String(args.hostname) }]
53
+ };
54
+ writeJson(await apiPost("/api/site/stage", body));
55
+ } catch (err) {
56
+ failSite(err);
57
+ }
58
+ }
59
+ });
60
+ var listCommand = defineCommand({
61
+ meta: {
62
+ name: "list",
63
+ description: "List the company's custom domains and what each is waiting for.\n\nExample: baker site domain list"
64
+ },
65
+ run: async () => {
66
+ try {
67
+ const chatId = optionalChatId();
68
+ writeJson(await apiGet("/api/site/domains", chatId ? { chatId } : void 0));
69
+ } catch (err) {
70
+ failSite(err);
71
+ }
72
+ }
73
+ });
74
+ var verifyCommand = defineCommand({
75
+ meta: {
76
+ name: "verify",
77
+ description: "Re-check a pending domain now, e.g. right after the client added the DNS record.\n\nExample: baker site domain verify shop.acme.com"
78
+ },
79
+ args: { hostname: { type: "positional", description: "A domain from `baker site domain list`", required: true } },
80
+ run: async ({ args }) => {
81
+ try {
82
+ const body = { hostname: String(args.hostname) };
83
+ writeJson(await apiPost("/api/site/domains/verify", body));
84
+ } catch (err) {
85
+ failSite(err);
86
+ }
87
+ }
88
+ });
89
+ var domainCommand = defineCommand({
90
+ meta: {
91
+ name: "domain",
92
+ description: "Custom domains for the company's landings. Subcommands: add (staged until publish), list, verify.\n\nExamples:\n baker site domain add shop.acme.com\n baker site domain list\n baker site domain verify shop.acme.com"
93
+ },
94
+ subCommands: { add: addCommand, list: listCommand, verify: verifyCommand }
95
+ });
96
+ export {
97
+ domainCommand
98
+ };
99
+ //# sourceMappingURL=domain-GJUNOEFM.js.map
@@ -0,0 +1,170 @@
1
+ import {
2
+ videosDownloadResponseSchema
3
+ } from "./chunk-MWD6JTOY.js";
4
+ import "./chunk-CAZGM2NX.js";
5
+ import "./chunk-NZS3KEQ2.js";
6
+ import "./chunk-GIWHHCD6.js";
7
+ import "./chunk-UI6BKYQD.js";
8
+ import "./chunk-PTRCB7AR.js";
9
+ import {
10
+ ApiError,
11
+ apiPost,
12
+ validateConvexId
13
+ } from "./chunk-X7VQFLHI.js";
14
+ import "./chunk-LU4HI4KI.js";
15
+ import "./chunk-LGK7UWBN.js";
16
+ import {
17
+ registerSchema,
18
+ writeJson
19
+ } from "./chunk-Q7US4OOA.js";
20
+ import "./chunk-YQSBHWOI.js";
21
+
22
+ // src/commands/videos/download.ts
23
+ import { mkdir, open, rm, stat } from "fs/promises";
24
+ import path from "path";
25
+ import { Readable } from "stream";
26
+ import { pipeline } from "stream/promises";
27
+ import { defineCommand } from "citty";
28
+ var DEFAULT_TIMEOUT_SECONDS = 20 * 60;
29
+ var POLL_INTERVAL_MS = 1e4;
30
+ registerSchema({
31
+ command: "videos.download",
32
+ description: "Save a library video (one from `videos search`, or one the user attached in chat) as a local .mp4 to edit with ffmpeg or a canvas ingest node. Waits while the file is prepared.",
33
+ args: {
34
+ id: { type: "string", description: "Library video ID", required: true },
35
+ out: { type: "string", description: "Directory to write the file into (created if missing)", required: true },
36
+ "timeout-seconds": {
37
+ type: "string",
38
+ description: `How long to wait for the file to be prepared (default ${DEFAULT_TIMEOUT_SECONDS})`,
39
+ required: false
40
+ }
41
+ }
42
+ });
43
+ async function awaitDownloadUrl(ask, options) {
44
+ const deadline = options.now() + options.timeoutMs;
45
+ for (; ; ) {
46
+ const answer = await ask();
47
+ if (answer.status === "ready") return { ready: true, url: answer.url, filename: answer.filename };
48
+ if (options.now() + options.intervalMs > deadline) return { ready: false, lastStatus: answer.status };
49
+ await options.sleep(options.intervalMs);
50
+ }
51
+ }
52
+ async function saveVideoFile(url, outDir, filename) {
53
+ await mkdir(outDir, { recursive: true });
54
+ const { name: stem, ext } = path.parse(path.basename(filename));
55
+ for (let n = 1; ; n++) {
56
+ const file = path.join(outDir, `${stem}${n === 1 ? "" : `-${n}`}${ext || ".mp4"}`);
57
+ let handle;
58
+ try {
59
+ handle = await open(file, "wx");
60
+ } catch (err) {
61
+ if (err instanceof Error && "code" in err && err.code === "EEXIST") continue;
62
+ throw err;
63
+ }
64
+ try {
65
+ const response = await fetch(url);
66
+ if (!response.ok || !response.body)
67
+ throw new Error(`The video file could not be fetched (HTTP ${response.status})`);
68
+ await pipeline(Readable.fromWeb(response.body), handle.createWriteStream());
69
+ } catch (err) {
70
+ await handle.close().catch(() => void 0);
71
+ await rm(file, { force: true });
72
+ throw err;
73
+ }
74
+ return { file, bytes: (await stat(file)).size };
75
+ }
76
+ }
77
+ async function downloadLibraryVideo(args, deps) {
78
+ let wait;
79
+ try {
80
+ wait = await awaitDownloadUrl(deps.ask, { timeoutMs: args.timeoutMs, intervalMs: args.intervalMs, ...deps });
81
+ } catch (err) {
82
+ if (!(err instanceof ApiError)) throw err;
83
+ const fix = err.fix ?? (err.code === "CONFLICT" ? {
84
+ action: "continue_without",
85
+ explanation: "Tell the user why this video cannot be used and carry on without it."
86
+ } : void 0);
87
+ return { ok: false, error: { code: err.code, message: err.message, ...fix ? { fix } : {} } };
88
+ }
89
+ if (!wait.ready) {
90
+ return {
91
+ ok: false,
92
+ error: {
93
+ code: "TIMEOUT",
94
+ message: wait.lastStatus === "processing" ? "The video is still being uploaded to the library." : "The library is still preparing a downloadable file of this video.",
95
+ fix: {
96
+ action: "wait_and_retry",
97
+ explanation: "Tell the user the video is still being prepared, carry on with the rest of the job, and run this command again in a few minutes. Do not abort the whole job."
98
+ }
99
+ }
100
+ };
101
+ }
102
+ try {
103
+ const saved = await saveVideoFile(wait.url, path.resolve(args.out), wait.filename);
104
+ return {
105
+ ok: true,
106
+ data: saved,
107
+ hints: [
108
+ `Edit ${saved.file} with ffprobe/ffmpeg, or feed it to a canvas ingest node as { source: "path", path, expect: "video" }. The library video is unchanged.`
109
+ ]
110
+ };
111
+ } catch (err) {
112
+ return {
113
+ ok: false,
114
+ error: { code: "DOWNLOAD_FAILED", message: err instanceof Error ? err.message : String(err) }
115
+ };
116
+ }
117
+ }
118
+ function positiveInt(value) {
119
+ const parsed = typeof value === "string" ? Number.parseInt(value, 10) : Number.NaN;
120
+ return Number.isInteger(parsed) && parsed > 0 ? parsed : void 0;
121
+ }
122
+ var downloadCommand = defineCommand({
123
+ meta: {
124
+ name: "download",
125
+ description: "Save a library video as a local .mp4 so you can edit it (ffmpeg, canvas ingest node). Use it for a video the user attached in chat, or one found with `videos search`. Waits up to 20 minutes while the file is prepared.\n\nExample: baker videos download j571abc123def --out /tmp/clips"
126
+ },
127
+ args: {
128
+ id: { type: "positional", description: "Library video ID", required: true },
129
+ out: { type: "string", description: "Directory to write the file into", required: true },
130
+ "timeout-seconds": {
131
+ type: "string",
132
+ description: `How long to wait for the file (default ${DEFAULT_TIMEOUT_SECONDS})`,
133
+ required: false
134
+ }
135
+ },
136
+ run: async ({ args }) => {
137
+ const id = String(args.id ?? "");
138
+ try {
139
+ validateConvexId(id);
140
+ } catch (err) {
141
+ writeJson({
142
+ ok: false,
143
+ error: { code: "VALIDATION_ERROR", message: err instanceof Error ? err.message : "Invalid video ID" }
144
+ });
145
+ process.exit(1);
146
+ }
147
+ const result = await downloadLibraryVideo(
148
+ {
149
+ id,
150
+ out: String(args.out ?? ""),
151
+ timeoutMs: (positiveInt(args["timeout-seconds"]) ?? DEFAULT_TIMEOUT_SECONDS) * 1e3,
152
+ intervalMs: POLL_INTERVAL_MS
153
+ },
154
+ {
155
+ ask: async () => videosDownloadResponseSchema.parse(await apiPost("/api/videos/download", { id })),
156
+ now: Date.now,
157
+ sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms))
158
+ }
159
+ );
160
+ writeJson(result);
161
+ if (!result.ok) process.exit(1);
162
+ }
163
+ });
164
+ export {
165
+ awaitDownloadUrl,
166
+ downloadCommand,
167
+ downloadLibraryVideo,
168
+ saveVideoFile
169
+ };
170
+ //# sourceMappingURL=download-XQBBVHO2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/videos/download.ts"],"sourcesContent":["import { mkdir, open, rm, stat } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { Readable } from \"node:stream\";\nimport { pipeline } from \"node:stream/promises\";\nimport type { ReadableStream as WebReadableStream } from \"node:stream/web\";\nimport { type VideosDownloadResponse, videosDownloadResponseSchema } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, type ApiErrorFix, apiPost, type ErrorCode, validateConvexId } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\n\nconst DEFAULT_TIMEOUT_SECONDS = 20 * 60;\nconst POLL_INTERVAL_MS = 10_000;\n\nregisterSchema({\n command: \"videos.download\",\n description:\n \"Save a library video (one from `videos search`, or one the user attached in chat) as a local .mp4 to edit with ffmpeg or a canvas ingest node. Waits while the file is prepared.\",\n args: {\n id: { type: \"string\", description: \"Library video ID\", required: true },\n out: { type: \"string\", description: \"Directory to write the file into (created if missing)\", required: true },\n \"timeout-seconds\": {\n type: \"string\",\n description: `How long to wait for the file to be prepared (default ${DEFAULT_TIMEOUT_SECONDS})`,\n required: false,\n },\n },\n});\n\ntype Clock = { now: () => number; sleep: (ms: number) => Promise<void> };\n\nexport type DownloadUrlWait =\n | { ready: true; url: string; filename: string }\n | { ready: false; lastStatus: \"preparing\" | \"processing\" };\n\n/**\n * Ask the library for the video's file until it has one or the budget runs out.\n * The first ask may start Mux encoding it, which takes minutes for a long clip.\n */\nexport async function awaitDownloadUrl(\n ask: () => Promise<VideosDownloadResponse>,\n options: { timeoutMs: number; intervalMs: number } & Clock,\n): Promise<DownloadUrlWait> {\n const deadline = options.now() + options.timeoutMs;\n for (;;) {\n const answer = await ask();\n if (answer.status === \"ready\") return { ready: true, url: answer.url, filename: answer.filename };\n if (options.now() + options.intervalMs > deadline) return { ready: false, lastStatus: answer.status };\n await options.sleep(options.intervalMs);\n }\n}\n\n/**\n * Stream the file at `url` into `outDir` as `filename`, or `<stem>-2.mp4` and\n * so on when that name is taken — never over a file already there. Streamed\n * to disk, never held in memory: a library video can be gigabytes.\n */\nexport async function saveVideoFile(\n url: string,\n outDir: string,\n filename: string,\n): Promise<{ file: string; bytes: number }> {\n await mkdir(outDir, { recursive: true });\n const { name: stem, ext } = path.parse(path.basename(filename));\n for (let n = 1; ; n++) {\n const file = path.join(outDir, `${stem}${n === 1 ? \"\" : `-${n}`}${ext || \".mp4\"}`);\n let handle: Awaited<ReturnType<typeof open>>;\n try {\n handle = await open(file, \"wx\");\n } catch (err) {\n if (err instanceof Error && \"code\" in err && err.code === \"EEXIST\") continue;\n throw err;\n }\n try {\n const response = await fetch(url);\n if (!response.ok || !response.body)\n throw new Error(`The video file could not be fetched (HTTP ${response.status})`);\n await pipeline(Readable.fromWeb(response.body as WebReadableStream<Uint8Array>), handle.createWriteStream());\n } catch (err) {\n await handle.close().catch(() => undefined);\n await rm(file, { force: true });\n throw err;\n }\n return { file, bytes: (await stat(file)).size };\n }\n}\n\ntype DownloadResult =\n | { ok: true; data: { file: string; bytes: number }; hints: string[] }\n | { ok: false; error: { code: ErrorCode | \"DOWNLOAD_FAILED\"; message: string; fix?: ApiErrorFix } };\n\n/** Wait for the library's file, then save it: the whole command, minus argv and stdout. */\nexport async function downloadLibraryVideo(\n args: { id: string; out: string; timeoutMs: number; intervalMs: number },\n deps: { ask: () => Promise<VideosDownloadResponse> } & Clock,\n): Promise<DownloadResult> {\n let wait: DownloadUrlWait;\n try {\n wait = await awaitDownloadUrl(deps.ask, { timeoutMs: args.timeoutMs, intervalMs: args.intervalMs, ...deps });\n } catch (err) {\n if (!(err instanceof ApiError)) throw err;\n const fix =\n err.fix ??\n (err.code === \"CONFLICT\"\n ? {\n action: \"continue_without\",\n explanation: \"Tell the user why this video cannot be used and carry on without it.\",\n }\n : undefined);\n return { ok: false, error: { code: err.code, message: err.message, ...(fix ? { fix } : {}) } };\n }\n if (!wait.ready) {\n return {\n ok: false,\n error: {\n code: \"TIMEOUT\",\n message:\n wait.lastStatus === \"processing\"\n ? \"The video is still being uploaded to the library.\"\n : \"The library is still preparing a downloadable file of this video.\",\n fix: {\n action: \"wait_and_retry\",\n explanation:\n \"Tell the user the video is still being prepared, carry on with the rest of the job, and run this command again in a few minutes. Do not abort the whole job.\",\n },\n },\n };\n }\n try {\n const saved = await saveVideoFile(wait.url, path.resolve(args.out), wait.filename);\n return {\n ok: true,\n data: saved,\n hints: [\n `Edit ${saved.file} with ffprobe/ffmpeg, or feed it to a canvas ingest node as { source: \"path\", path, expect: \"video\" }. The library video is unchanged.`,\n ],\n };\n } catch (err) {\n return {\n ok: false,\n error: { code: \"DOWNLOAD_FAILED\", message: err instanceof Error ? err.message : String(err) },\n };\n }\n}\n\nfunction positiveInt(value: unknown): number | undefined {\n const parsed = typeof value === \"string\" ? Number.parseInt(value, 10) : Number.NaN;\n return Number.isInteger(parsed) && parsed > 0 ? parsed : undefined;\n}\n\nexport const downloadCommand = defineCommand({\n meta: {\n name: \"download\",\n description:\n \"Save a library video as a local .mp4 so you can edit it (ffmpeg, canvas ingest node). Use it for a video the user attached in chat, or one found with `videos search`. Waits up to 20 minutes while the file is prepared.\\n\\nExample: baker videos download j571abc123def --out /tmp/clips\",\n },\n args: {\n id: { type: \"positional\", description: \"Library video ID\", required: true },\n out: { type: \"string\", description: \"Directory to write the file into\", required: true },\n \"timeout-seconds\": {\n type: \"string\",\n description: `How long to wait for the file (default ${DEFAULT_TIMEOUT_SECONDS})`,\n required: false,\n },\n },\n run: async ({ args }) => {\n const id = String(args.id ?? \"\");\n try {\n validateConvexId(id);\n } catch (err) {\n writeJson({\n ok: false,\n error: { code: \"VALIDATION_ERROR\", message: err instanceof Error ? err.message : \"Invalid video ID\" },\n });\n process.exit(1);\n }\n const result = await downloadLibraryVideo(\n {\n id,\n out: String(args.out ?? \"\"),\n timeoutMs: (positiveInt(args[\"timeout-seconds\"]) ?? DEFAULT_TIMEOUT_SECONDS) * 1000,\n intervalMs: POLL_INTERVAL_MS,\n },\n {\n ask: async () => videosDownloadResponseSchema.parse(await apiPost<unknown>(\"/api/videos/download\", { id })),\n now: Date.now,\n sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)),\n },\n );\n writeJson(result);\n if (!result.ok) process.exit(1);\n },\n});\n"],"mappings":"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","names":[]}