@koda-sl/baker-cli 0.449.0 → 0.450.0-dev.b454c3dd2

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 (878) hide show
  1. package/README.md +11 -2
  2. package/dist/account-4H7QVBRK.js +80 -0
  3. package/dist/account-XQXC7BR6.js +80 -0
  4. package/dist/account-XQXC7BR6.js.map +1 -0
  5. package/dist/account-writes-AK42HGRM.js +66 -0
  6. package/dist/accounts-722UY53A.js +78 -0
  7. package/dist/accounts-722UY53A.js.map +1 -0
  8. package/dist/accounts-E67BMK7T.js +612 -0
  9. package/dist/accounts-E67BMK7T.js.map +1 -0
  10. package/dist/actions-6TQMSVWD.js +55 -0
  11. package/dist/ad-group-writes-QQS4223F.js +170 -0
  12. package/dist/ad-groups-WGPDPUI2.js +68 -0
  13. package/dist/ad-writes-XE2IE4DS.js +174 -0
  14. package/dist/add-2BEGRHUX.js +303 -0
  15. package/dist/add-2BEGRHUX.js.map +1 -0
  16. package/dist/add-LEMKEOPO.js +105 -0
  17. package/dist/add-LEMKEOPO.js.map +1 -0
  18. package/dist/ads-AGYCVD62.js +40 -0
  19. package/dist/ads-BCOSQALY.js +77 -0
  20. package/dist/advertisers-2VQKAYKG.js +121 -0
  21. package/dist/advertisers-2VQKAYKG.js.map +1 -0
  22. package/dist/analytics-IFELDWLL.js +1962 -0
  23. package/dist/analytics-IFELDWLL.js.map +1 -0
  24. package/dist/analytics-OH5QEH7F.js +434 -0
  25. package/dist/analytics-OH5QEH7F.js.map +1 -0
  26. package/dist/animate-AIZ3GS4J.js +480 -0
  27. package/dist/assign-PTUJUCEL.js +78 -0
  28. package/dist/assign-PTUJUCEL.js.map +1 -0
  29. package/dist/audience-size-LRI6GJRT.js +95 -0
  30. package/dist/audience-size-LRI6GJRT.js.map +1 -0
  31. package/dist/audiences-TGD5US2M.js +268 -0
  32. package/dist/audit-HWP7OPB7.js +152 -0
  33. package/dist/audit-HWP7OPB7.js.map +1 -0
  34. package/dist/autocomplete-J6DHU6MR.js +112 -0
  35. package/dist/autocomplete-J6DHU6MR.js.map +1 -0
  36. package/dist/avatars-467OSBD6.js +38 -0
  37. package/dist/bid-pricing-EO5WLHGV.js +100 -0
  38. package/dist/bid-pricing-EO5WLHGV.js.map +1 -0
  39. package/dist/brand-YRTEPGBK.js +22 -0
  40. package/dist/brief-OSFJ2V7F.js +478 -0
  41. package/dist/brief-OSFJ2V7F.js.map +1 -0
  42. package/dist/campaign-groups-PQ6KSQJR.js +96 -0
  43. package/dist/campaign-groups-PQ6KSQJR.js.map +1 -0
  44. package/dist/campaign-writes-5OVLUD5E.js +166 -0
  45. package/dist/campaign-writes-5OVLUD5E.js.map +1 -0
  46. package/dist/campaign-writes-SXLZFYF6.js +170 -0
  47. package/dist/campaigns-6T3NSUT2.js +110 -0
  48. package/dist/campaigns-6T3NSUT2.js.map +1 -0
  49. package/dist/campaigns-OYMXDGWX.js +107 -0
  50. package/dist/campaigns-YS3OGQXO.js +76 -0
  51. package/dist/canvas-YQFG52IG.js +46 -0
  52. package/dist/capabilities-PXBKUN2G.js +145 -0
  53. package/dist/capabilities-PXBKUN2G.js.map +1 -0
  54. package/dist/catalog-XLXIM7IW.js +65 -0
  55. package/dist/catalogs-BRXEDE56.js +128 -0
  56. package/dist/chatgpt-7W75X3ER.js +47 -0
  57. package/dist/chats-UK47UE7C.js +263 -0
  58. package/dist/chats-UK47UE7C.js.map +1 -0
  59. package/dist/chunk-24EB7EDR.js +433 -0
  60. package/dist/chunk-2AOE2MZQ.js +159 -0
  61. package/dist/chunk-2VPBIT65.js +509 -0
  62. package/dist/chunk-4PDHHHUJ.js +537 -0
  63. package/dist/chunk-4PDHHHUJ.js.map +1 -0
  64. package/dist/chunk-54C6YDGJ.js +622 -0
  65. package/dist/chunk-5WCSKQ7Z.js +188 -0
  66. package/dist/chunk-5ZNTADVR.js +197 -0
  67. package/dist/chunk-6F7DVPOS.js +310 -0
  68. package/dist/chunk-6NY2GPR4.js +304 -0
  69. package/dist/chunk-6Y7ZBENQ.js +207 -0
  70. package/dist/chunk-7CTMH5AK.js +111 -0
  71. package/dist/chunk-7EPXVICM.js +6184 -0
  72. package/dist/chunk-7EPXVICM.js.map +1 -0
  73. package/dist/chunk-7J6EHOH6.js +274 -0
  74. package/dist/chunk-ASI4P6X2.js +6667 -0
  75. package/dist/chunk-C46GUI2S.js +19 -0
  76. package/dist/chunk-CAMX6OHF.js +3182 -0
  77. package/dist/chunk-CAMX6OHF.js.map +1 -0
  78. package/dist/chunk-CWYAELVG.js +60 -0
  79. package/dist/chunk-DCRPXOJJ.js +363 -0
  80. package/dist/chunk-EAP4O4FE.js +440 -0
  81. package/dist/chunk-FPOGPFAG.js +4383 -0
  82. package/dist/chunk-FTWJFDIN.js +23992 -0
  83. package/dist/chunk-FTWJFDIN.js.map +1 -0
  84. package/dist/chunk-FUHN4MFY.js +103 -0
  85. package/dist/chunk-FYGR3I2A.js +297 -0
  86. package/dist/chunk-H3427GPU.js +206 -0
  87. package/dist/chunk-HDLYPC6K.js +172 -0
  88. package/dist/chunk-HDLYPC6K.js.map +1 -0
  89. package/dist/chunk-HR6IWNKE.js +2942 -0
  90. package/dist/chunk-HR6IWNKE.js.map +1 -0
  91. package/dist/chunk-HROZYQ5H.js +275 -0
  92. package/dist/chunk-HROZYQ5H.js.map +1 -0
  93. package/dist/chunk-HZUDRKGR.js +98 -0
  94. package/dist/chunk-I3ZR655O.js +382 -0
  95. package/dist/chunk-KMKEYI37.js +96 -0
  96. package/dist/chunk-KS2QY6MK.js +139 -0
  97. package/dist/chunk-LYQJ4PZW.js +5189 -0
  98. package/dist/chunk-MACCF4JZ.js +3147 -0
  99. package/dist/chunk-N4LAYIIN.js +175 -0
  100. package/dist/chunk-NA63BH7V.js +346 -0
  101. package/dist/chunk-NCWCZY5P.js +1441 -0
  102. package/dist/chunk-NDEE6G2J.js +494 -0
  103. package/dist/chunk-NJXNU2G6.js +819 -0
  104. package/dist/chunk-NYIGXDUG.js +178 -0
  105. package/dist/chunk-NYIGXDUG.js.map +1 -0
  106. package/dist/chunk-P5T7OZKV.js +26 -0
  107. package/dist/chunk-PZXCWSKV.js +1830 -0
  108. package/dist/chunk-QE7W555R.js +541 -0
  109. package/dist/chunk-QE7W555R.js.map +1 -0
  110. package/dist/chunk-R25YLW6H.js +20 -0
  111. package/dist/chunk-RL5CP7N6.js +57 -0
  112. package/dist/chunk-RX2DKU3W.js +592 -0
  113. package/dist/chunk-SJYEY5MV.js +172 -0
  114. package/dist/chunk-SJYEY5MV.js.map +1 -0
  115. package/dist/chunk-ULG4QRTV.js +92 -0
  116. package/dist/chunk-VL43TNIP.js +455 -0
  117. package/dist/chunk-VLMBTPXU.js +51 -0
  118. package/dist/chunk-VNUNE5AB.js +160 -0
  119. package/dist/chunk-VYQ3QJ3C.js +169 -0
  120. package/dist/chunk-WGUQHAJY.js +23 -0
  121. package/dist/chunk-WKQG6TER.js +1079 -0
  122. package/dist/chunk-XFGAUP5B.js +76 -0
  123. package/dist/chunk-ZDMTXQ2Q.js +337 -0
  124. package/dist/claim-W6G6VEG5.js +198 -0
  125. package/dist/claim-W6G6VEG5.js.map +1 -0
  126. package/dist/cli.js +30 -30
  127. package/dist/companies-TS6KBATJ.js +196 -0
  128. package/dist/companies-TS6KBATJ.js.map +1 -0
  129. package/dist/complete-LYR2HMQU.js +82 -0
  130. package/dist/complete-LYR2HMQU.js.map +1 -0
  131. package/dist/connect-FCXNVTXG.js +43 -0
  132. package/dist/conversation-6ZJGPCXM.js +94 -0
  133. package/dist/conversation-6ZJGPCXM.js.map +1 -0
  134. package/dist/conversion-report-XQBJ6LG4.js +125 -0
  135. package/dist/conversion-writes-UBCVXP2E.js +120 -0
  136. package/dist/conversions-D236RTUK.js +76 -0
  137. package/dist/conversions-UHB55MMQ.js +136 -0
  138. package/dist/conversions-UHB55MMQ.js.map +1 -0
  139. package/dist/create-EX6OWLNM.js +208 -0
  140. package/dist/create-EX6OWLNM.js.map +1 -0
  141. package/dist/create-JCA7JPLP.js +131 -0
  142. package/dist/create-JCA7JPLP.js.map +1 -0
  143. package/dist/create-JFSK4BOP.js +60 -0
  144. package/dist/create-JFSK4BOP.js.map +1 -0
  145. package/dist/create-WU22YYU2.js +236 -0
  146. package/dist/create-WU22YYU2.js.map +1 -0
  147. package/dist/creatives-FXUQ5WSD.js +51 -0
  148. package/dist/creatives-KGXUOYPE.js +183 -0
  149. package/dist/creatives-KGXUOYPE.js.map +1 -0
  150. package/dist/credentials-MJC7PGKR.js +1056 -0
  151. package/dist/credentials-MJC7PGKR.js.map +1 -0
  152. package/dist/critique-GS5VV5ZC.js +214 -0
  153. package/dist/critique-GS5VV5ZC.js.map +1 -0
  154. package/dist/critique-TPHR27KH.js +1450 -0
  155. package/dist/critique-TPHR27KH.js.map +1 -0
  156. package/dist/crm-AVCM5D4G.js +319 -0
  157. package/dist/crm-AVCM5D4G.js.map +1 -0
  158. package/dist/crm-VK44O3ED.js +225 -0
  159. package/dist/crm-VK44O3ED.js.map +1 -0
  160. package/dist/customers-XH2DMTFH.js +57 -0
  161. package/dist/delete-E3R3TKIL.js +67 -0
  162. package/dist/delete-E3R3TKIL.js.map +1 -0
  163. package/dist/delete-KRH2YMSZ.js +55 -0
  164. package/dist/delete-KRH2YMSZ.js.map +1 -0
  165. package/dist/delete-WI5E3DR3.js +64 -0
  166. package/dist/delete-WI5E3DR3.js.map +1 -0
  167. package/dist/demographics-XV5PBA77.js +139 -0
  168. package/dist/demographics-XV5PBA77.js.map +1 -0
  169. package/dist/discard-HTQUUHJR.js +67 -0
  170. package/dist/discard-HTQUUHJR.js.map +1 -0
  171. package/dist/domain-RECGZXJB.js +99 -0
  172. package/dist/domain-RECGZXJB.js.map +1 -0
  173. package/dist/draft-2IBSJEKC.js +218 -0
  174. package/dist/draft-2IBSJEKC.js.map +1 -0
  175. package/dist/draft-MNFJ4G3C.js +281 -0
  176. package/dist/draft-PVTX6QT6.js +329 -0
  177. package/dist/draft-PVTX6QT6.js.map +1 -0
  178. package/dist/draft-Q546QPPU.js +307 -0
  179. package/dist/draft-Q546QPPU.js.map +1 -0
  180. package/dist/engine/index.js +6 -6
  181. package/dist/facets-7EVPJMKS.js +115 -0
  182. package/dist/facets-7EVPJMKS.js.map +1 -0
  183. package/dist/feedback-EIZKS4JU.js +66 -0
  184. package/dist/feedback-record-TKO54BOE.js +176 -0
  185. package/dist/feedback-record-TKO54BOE.js.map +1 -0
  186. package/dist/fetch-4BY6HYUM.js +177 -0
  187. package/dist/fetch-4BY6HYUM.js.map +1 -0
  188. package/dist/find-FRRHAPWX.js +134 -0
  189. package/dist/fit-UOFYFJ4Q.js +45 -0
  190. package/dist/flows-KTFAML22.js +248 -0
  191. package/dist/flows-KTFAML22.js.map +1 -0
  192. package/dist/fonts-MXR3ZKDX.js +35 -0
  193. package/dist/forecast-3QTJYVND.js +105 -0
  194. package/dist/forecast-3QTJYVND.js.map +1 -0
  195. package/dist/funnel-I6XIAEHG.js +393 -0
  196. package/dist/funnel-I6XIAEHG.js.map +1 -0
  197. package/dist/ga4-DV2AXCSL.js +55 -0
  198. package/dist/generate-3XYYITU6.js +262 -0
  199. package/dist/get-5PKNKJ5S.js +57 -0
  200. package/dist/get-5PKNKJ5S.js.map +1 -0
  201. package/dist/get-72YPHJGV.js +79 -0
  202. package/dist/get-72YPHJGV.js.map +1 -0
  203. package/dist/google-6OGZX47I.js +1872 -0
  204. package/dist/google-QYYYSSXI.js +136 -0
  205. package/dist/google-ads-QGMQKZQD.js +196 -0
  206. package/dist/google-ads-QGMQKZQD.js.map +1 -0
  207. package/dist/gsc-TAKOF7J5.js +30 -0
  208. package/dist/history-6AVQX2OQ.js +134 -0
  209. package/dist/history-6AVQX2OQ.js.map +1 -0
  210. package/dist/history-Q3QCT64S.js +67 -0
  211. package/dist/hubspot-SVEMFK5S.js +780 -0
  212. package/dist/hubspot-SVEMFK5S.js.map +1 -0
  213. package/dist/icon-L4RSS6PZ.js +137 -0
  214. package/dist/ideas-NFOW3HKJ.js +33 -0
  215. package/dist/images-2EFFUNNV.js +90 -0
  216. package/dist/ingest-2EIKN4QC.js +24 -0
  217. package/dist/ingest-2SO62RRI.js +108 -0
  218. package/dist/ingest-2SO62RRI.js.map +1 -0
  219. package/dist/insights-LNAXV2CG.js +122 -0
  220. package/dist/inspect-4OOS4APT.js +190 -0
  221. package/dist/inspect-4OOS4APT.js.map +1 -0
  222. package/dist/inspiration-S3DU4CMQ.js +53 -0
  223. package/dist/keyword-metrics-SF4CSNZ2.js +198 -0
  224. package/dist/keyword-metrics-SF4CSNZ2.js.map +1 -0
  225. package/dist/keywords-for-site-WDAOPNKC.js +129 -0
  226. package/dist/keywords-for-site-WDAOPNKC.js.map +1 -0
  227. package/dist/landing-2ZB46LXH.js +28 -0
  228. package/dist/leads-A4W5KTWB.js +91 -0
  229. package/dist/leads-A4W5KTWB.js.map +1 -0
  230. package/dist/learn-IPULBCOD.js +204 -0
  231. package/dist/learn-IPULBCOD.js.map +1 -0
  232. package/dist/line-item-writes-EMYSOJKM.js +209 -0
  233. package/dist/line-item-writes-EMYSOJKM.js.map +1 -0
  234. package/dist/line-items-5NECXUZT.js +103 -0
  235. package/dist/link-CI45HWFN.js +65 -0
  236. package/dist/link-CI45HWFN.js.map +1 -0
  237. package/dist/linkedin-B7SYR75X.js +1009 -0
  238. package/dist/linkedin-B7SYR75X.js.map +1 -0
  239. package/dist/list-2BARXOT5.js +152 -0
  240. package/dist/list-2BARXOT5.js.map +1 -0
  241. package/dist/list-BIEVLEHS.js +304 -0
  242. package/dist/list-BIEVLEHS.js.map +1 -0
  243. package/dist/list-ZBT3EBVZ.js +64 -0
  244. package/dist/list-ZBT3EBVZ.js.map +1 -0
  245. package/dist/locations-2NKBJKBT.js +67 -0
  246. package/dist/log-C23OOAJZ.js +93 -0
  247. package/dist/log-C23OOAJZ.js.map +1 -0
  248. package/dist/logo-Q5D7PZY6.js +18 -0
  249. package/dist/lookup-ETWY47F7.js +23 -0
  250. package/dist/make-TPKKJXGL.js +594 -0
  251. package/dist/make-TPKKJXGL.js.map +1 -0
  252. package/dist/map-SYZMPHLL.js +405 -0
  253. package/dist/map-SYZMPHLL.js.map +1 -0
  254. package/dist/mcp-6FQBVJ6F.js +477 -0
  255. package/dist/mcp-6FQBVJ6F.js.map +1 -0
  256. package/dist/media-sources-ZXHEEP6T.js +32 -0
  257. package/dist/members-UDY4OOJW.js +45 -0
  258. package/dist/members-UDY4OOJW.js.map +1 -0
  259. package/dist/models-3Z6MDHQW.js +155 -0
  260. package/dist/normalize-DAKHYS3V.js +142 -0
  261. package/dist/normalize-DAKHYS3V.js.map +1 -0
  262. package/dist/options-QL3ULED5.js +122 -0
  263. package/dist/options-QL3ULED5.js.map +1 -0
  264. package/dist/performance-UF5VTY2U.js +25 -0
  265. package/dist/pixels-TZPF746S.js +60 -0
  266. package/dist/plan-FT632COT.js +51 -0
  267. package/dist/plan-FT632COT.js.map +1 -0
  268. package/dist/promoted-tweet-writes-7HGESJ46.js +181 -0
  269. package/dist/promoted-tweet-writes-7HGESJ46.js.map +1 -0
  270. package/dist/promoted-tweets-LZKS5JIF.js +119 -0
  271. package/dist/publish-NPD3SMZL.js +323 -0
  272. package/dist/publish-NPD3SMZL.js.map +1 -0
  273. package/dist/questionnaire-JNGYJTAY.js +37 -0
  274. package/dist/questionnaire-JNGYJTAY.js.map +1 -0
  275. package/dist/reddit-NU2N3LZD.js +27 -0
  276. package/dist/refresh-EBVJ2C6L.js +95 -0
  277. package/dist/refresh-EBVJ2C6L.js.map +1 -0
  278. package/dist/release-V43YB2PY.js +61 -0
  279. package/dist/release-V43YB2PY.js.map +1 -0
  280. package/dist/remove-QPSWLFI4.js +51 -0
  281. package/dist/remove-QPSWLFI4.js.map +1 -0
  282. package/dist/reopen-GQ66NMWF.js +64 -0
  283. package/dist/reopen-GQ66NMWF.js.map +1 -0
  284. package/dist/rerun-PZK275DY.js +86 -0
  285. package/dist/rerun-PZK275DY.js.map +1 -0
  286. package/dist/research-FMM6AWZC.js +62 -0
  287. package/dist/research-GEOCUBXB.js +263 -0
  288. package/dist/research-GEOCUBXB.js.map +1 -0
  289. package/dist/reset-REXJ6AUK.js +55 -0
  290. package/dist/reset-REXJ6AUK.js.map +1 -0
  291. package/dist/reset-Y72IVESB.js +55 -0
  292. package/dist/reset-Y72IVESB.js.map +1 -0
  293. package/dist/resolve-OGX7C4TV.js +122 -0
  294. package/dist/resolve-OGX7C4TV.js.map +1 -0
  295. package/dist/retry-CD6JAQ3F.js +61 -0
  296. package/dist/retry-CD6JAQ3F.js.map +1 -0
  297. package/dist/retry-TCUBBFR5.js +63 -0
  298. package/dist/retry-TCUBBFR5.js.map +1 -0
  299. package/dist/run-A5ZDXTOI.js +66 -0
  300. package/dist/run-A5ZDXTOI.js.map +1 -0
  301. package/dist/run-EUO34T2J.js +61 -0
  302. package/dist/scaffold-ad-SW2HEWM3.js +1550 -0
  303. package/dist/scaffold-ad-SW2HEWM3.js.map +1 -0
  304. package/dist/scaffold-static-ad-ECTJL54Y.js +967 -0
  305. package/dist/scaffold-static-ad-ECTJL54Y.js.map +1 -0
  306. package/dist/scaffold-video-EI7U7RBK.js +874 -0
  307. package/dist/scaffold-video-EI7U7RBK.js.map +1 -0
  308. package/dist/schedule-S5YZJZ5U.js +62 -0
  309. package/dist/schedule-S5YZJZ5U.js.map +1 -0
  310. package/dist/scheduled-agents-N4LJRM4C.js +49 -0
  311. package/dist/schema-R7JWWOF4.js +133 -0
  312. package/dist/schema-R7JWWOF4.js.map +1 -0
  313. package/dist/search-KHMQH3AT.js +175 -0
  314. package/dist/search-KHMQH3AT.js.map +1 -0
  315. package/dist/select-O2FN2JEQ.js +95 -0
  316. package/dist/select-O2FN2JEQ.js.map +1 -0
  317. package/dist/sends-BQZM5PLS.js +310 -0
  318. package/dist/sends-BQZM5PLS.js.map +1 -0
  319. package/dist/set-prompt-2HASHGWC.js +187 -0
  320. package/dist/set-prompt-2HASHGWC.js.map +1 -0
  321. package/dist/setup-links-GYSE56GX.js +142 -0
  322. package/dist/setup-links-GYSE56GX.js.map +1 -0
  323. package/dist/site-4SKM7RKG.js +178 -0
  324. package/dist/site-4SKM7RKG.js.map +1 -0
  325. package/dist/sources-FQ2UZTHL.js +30 -0
  326. package/dist/sources-R2NKNC6J.js +422 -0
  327. package/dist/sources-R2NKNC6J.js.map +1 -0
  328. package/dist/stale-W756ACKC.js +64 -0
  329. package/dist/stale-W756ACKC.js.map +1 -0
  330. package/dist/status-SE2VZJJB.js +63 -0
  331. package/dist/status-SE2VZJJB.js.map +1 -0
  332. package/dist/stock-KXJ26BY4.js +179 -0
  333. package/dist/studio-SYKOSNDB.js +49 -0
  334. package/dist/sync-LJGSODK3.js +55 -0
  335. package/dist/sync-LJGSODK3.js.map +1 -0
  336. package/dist/sync-definition-QR2N233R.js +54 -0
  337. package/dist/tags-4BAVFH4S.js +225 -0
  338. package/dist/tags-4BAVFH4S.js.map +1 -0
  339. package/dist/tags-5SBMRC2A.js +21 -0
  340. package/dist/tags-5SBMRC2A.js.map +1 -0
  341. package/dist/tags-PYWFSBTR.js +26 -0
  342. package/dist/tags-QQU3OKMZ.js +21 -0
  343. package/dist/tags-QQU3OKMZ.js.map +1 -0
  344. package/dist/tags-YYLNF3PK.js +21 -0
  345. package/dist/tags-YYLNF3PK.js.map +1 -0
  346. package/dist/targeting-criteria-RJFLFICN.js +113 -0
  347. package/dist/targets-S2MT2PNB.js +103 -0
  348. package/dist/targets-S2MT2PNB.js.map +1 -0
  349. package/dist/templates-ZE5TOGRT.js +179 -0
  350. package/dist/templates-ZE5TOGRT.js.map +1 -0
  351. package/dist/testimonials-DII5DYLR.js +32 -0
  352. package/dist/top-companies-PGIAEHDF.js +109 -0
  353. package/dist/top-companies-PGIAEHDF.js.map +1 -0
  354. package/dist/translate-GXTS633J.js +599 -0
  355. package/dist/translate-GXTS633J.js.map +1 -0
  356. package/dist/triggers-2PTONXRU.js +142 -0
  357. package/dist/triggers-2PTONXRU.js.map +1 -0
  358. package/dist/unlink-XRMYJ6DB.js +68 -0
  359. package/dist/unlink-XRMYJ6DB.js.map +1 -0
  360. package/dist/unstage-FY7A3YFF.js +85 -0
  361. package/dist/unstage-FY7A3YFF.js.map +1 -0
  362. package/dist/unstage-RM2RLXKD.js +96 -0
  363. package/dist/unstage-RM2RLXKD.js.map +1 -0
  364. package/dist/update-E5SRBXQR.js +143 -0
  365. package/dist/update-E5SRBXQR.js.map +1 -0
  366. package/dist/update-PJ67D2OG.js +156 -0
  367. package/dist/update-PJ67D2OG.js.map +1 -0
  368. package/dist/update-S4562V3O.js +64 -0
  369. package/dist/update-S4562V3O.js.map +1 -0
  370. package/dist/update-V6YVEUI2.js +99 -0
  371. package/dist/update-V6YVEUI2.js.map +1 -0
  372. package/dist/upload-R6CQVLKF.js +127 -0
  373. package/dist/upload-R6CQVLKF.js.map +1 -0
  374. package/dist/url-options-JOKU46F2.js +128 -0
  375. package/dist/url-options-JOKU46F2.js.map +1 -0
  376. package/dist/url-params-7U2XMOWF.js +99 -0
  377. package/dist/url-params-7U2XMOWF.js.map +1 -0
  378. package/dist/validate-7YPOUKPB.js +90 -0
  379. package/dist/validate-7YPOUKPB.js.map +1 -0
  380. package/dist/videos-LICG6ACJ.js +39 -0
  381. package/dist/viewer-check-L4B4LIAX.js +69 -0
  382. package/dist/web-BA2PGTWU.js +141 -0
  383. package/dist/web-BA2PGTWU.js.map +1 -0
  384. package/dist/winning-ads-C6S2C5VP.js +62 -0
  385. package/dist/write-commands-7SJ3BOW5.js +1016 -0
  386. package/dist/write-commands-7SJ3BOW5.js.map +1 -0
  387. package/dist/x-CZHRC6U7.js +47 -0
  388. package/package.json +1 -1
  389. package/dist/account-AL2ZDSR7.js +0 -79
  390. package/dist/account-AL2ZDSR7.js.map +0 -1
  391. package/dist/account-F6MHQ64I.js +0 -80
  392. package/dist/account-writes-ISE4U2FQ.js +0 -66
  393. package/dist/accounts-HAFCLSR5.js +0 -77
  394. package/dist/accounts-HAFCLSR5.js.map +0 -1
  395. package/dist/accounts-O5MFO3QQ.js +0 -611
  396. package/dist/accounts-O5MFO3QQ.js.map +0 -1
  397. package/dist/actions-P35MEMGN.js +0 -55
  398. package/dist/ad-group-writes-UU5NNKSO.js +0 -170
  399. package/dist/ad-groups-CGFXZNIA.js +0 -68
  400. package/dist/ad-writes-NALDYWOR.js +0 -174
  401. package/dist/add-5GAN6CVO.js +0 -280
  402. package/dist/add-5GAN6CVO.js.map +0 -1
  403. package/dist/add-6DTC6X5G.js +0 -104
  404. package/dist/add-6DTC6X5G.js.map +0 -1
  405. package/dist/ads-C47NA2HH.js +0 -40
  406. package/dist/ads-PV7GZXPR.js +0 -77
  407. package/dist/advertisers-AE75CGVE.js +0 -120
  408. package/dist/advertisers-AE75CGVE.js.map +0 -1
  409. package/dist/analytics-FKCXIMPO.js +0 -1958
  410. package/dist/analytics-FKCXIMPO.js.map +0 -1
  411. package/dist/analytics-FPWQQGRM.js +0 -433
  412. package/dist/analytics-FPWQQGRM.js.map +0 -1
  413. package/dist/animate-FWWHSYPL.js +0 -480
  414. package/dist/assign-ABN2AQ4J.js +0 -77
  415. package/dist/assign-ABN2AQ4J.js.map +0 -1
  416. package/dist/audience-size-GNBJY35X.js +0 -94
  417. package/dist/audience-size-GNBJY35X.js.map +0 -1
  418. package/dist/audiences-VEKGLWBG.js +0 -268
  419. package/dist/audit-3VS63TBW.js +0 -151
  420. package/dist/audit-3VS63TBW.js.map +0 -1
  421. package/dist/autocomplete-VS3XG3B7.js +0 -111
  422. package/dist/autocomplete-VS3XG3B7.js.map +0 -1
  423. package/dist/avatars-EKCKHCC3.js +0 -38
  424. package/dist/bid-pricing-Q72B65AY.js +0 -99
  425. package/dist/bid-pricing-Q72B65AY.js.map +0 -1
  426. package/dist/brand-C6PFGGQN.js +0 -22
  427. package/dist/brief-UO52ZHFI.js +0 -477
  428. package/dist/brief-UO52ZHFI.js.map +0 -1
  429. package/dist/campaign-groups-KFFYQPU3.js +0 -95
  430. package/dist/campaign-groups-KFFYQPU3.js.map +0 -1
  431. package/dist/campaign-writes-FHOS5XZY.js +0 -165
  432. package/dist/campaign-writes-FHOS5XZY.js.map +0 -1
  433. package/dist/campaign-writes-SX52CJYW.js +0 -170
  434. package/dist/campaigns-2NHWBF5C.js +0 -109
  435. package/dist/campaigns-2NHWBF5C.js.map +0 -1
  436. package/dist/campaigns-KZYZTXDS.js +0 -107
  437. package/dist/campaigns-X3DPCCSN.js +0 -76
  438. package/dist/canvas-DPCBGW7K.js +0 -46
  439. package/dist/capabilities-DJFTRJKS.js +0 -144
  440. package/dist/capabilities-DJFTRJKS.js.map +0 -1
  441. package/dist/catalog-ME44ZRZF.js +0 -65
  442. package/dist/catalogs-G3YEVG6S.js +0 -128
  443. package/dist/chatgpt-QNUN63YS.js +0 -47
  444. package/dist/chats-D2CSDX5Q.js +0 -262
  445. package/dist/chats-D2CSDX5Q.js.map +0 -1
  446. package/dist/chunk-2QHODRR6.js +0 -19
  447. package/dist/chunk-35XWJEWH.js +0 -274
  448. package/dist/chunk-3G3ZDLMI.js +0 -197
  449. package/dist/chunk-3HJLHTWP.js +0 -163
  450. package/dist/chunk-3HJLHTWP.js.map +0 -1
  451. package/dist/chunk-3IBYKLXR.js +0 -337
  452. package/dist/chunk-4AUMTNVB.js +0 -346
  453. package/dist/chunk-4BQXAE7Z.js +0 -494
  454. package/dist/chunk-54UVGFX3.js +0 -440
  455. package/dist/chunk-5Y5UAJWD.js +0 -111
  456. package/dist/chunk-5ZDLTE5T.js +0 -159
  457. package/dist/chunk-647RO73Q.js +0 -92
  458. package/dist/chunk-7YCRFMXF.js +0 -433
  459. package/dist/chunk-7ZHMGXE2.js +0 -819
  460. package/dist/chunk-A4LOJ2VD.js +0 -23
  461. package/dist/chunk-AEOSAVVL.js +0 -310
  462. package/dist/chunk-CHSNHVYF.js +0 -3182
  463. package/dist/chunk-CHSNHVYF.js.map +0 -1
  464. package/dist/chunk-CSYSX4D2.js +0 -175
  465. package/dist/chunk-DWHIOO7E.js +0 -390
  466. package/dist/chunk-DWHIOO7E.js.map +0 -1
  467. package/dist/chunk-EDLZGTGN.js +0 -216
  468. package/dist/chunk-EDLZGTGN.js.map +0 -1
  469. package/dist/chunk-FD27ZDVP.js +0 -304
  470. package/dist/chunk-GBMP4F45.js +0 -3147
  471. package/dist/chunk-GLCPTMPG.js +0 -5189
  472. package/dist/chunk-HBTF25YG.js +0 -592
  473. package/dist/chunk-HQSCJYZO.js +0 -26
  474. package/dist/chunk-IBURXTL4.js +0 -509
  475. package/dist/chunk-IR6D7K4H.js +0 -382
  476. package/dist/chunk-J5IY3GVE.js +0 -96
  477. package/dist/chunk-JQJDXPCO.js +0 -103
  478. package/dist/chunk-K66OLA6Y.js +0 -4383
  479. package/dist/chunk-K7FZXIOZ.js +0 -60
  480. package/dist/chunk-KFE3S63W.js +0 -1441
  481. package/dist/chunk-KHRXPQID.js +0 -169
  482. package/dist/chunk-KLBTXETO.js +0 -23992
  483. package/dist/chunk-KLBTXETO.js.map +0 -1
  484. package/dist/chunk-KQTYTCKQ.js +0 -98
  485. package/dist/chunk-LYBXCXJB.js +0 -160
  486. package/dist/chunk-LZ73CZGP.js +0 -188
  487. package/dist/chunk-MELOSESI.js +0 -20
  488. package/dist/chunk-MXYBTMKB.js +0 -363
  489. package/dist/chunk-NPY4QUMQ.js +0 -622
  490. package/dist/chunk-OZRUJVIQ.js +0 -206
  491. package/dist/chunk-QRP3PXWN.js +0 -455
  492. package/dist/chunk-RPUSTYHL.js +0 -170
  493. package/dist/chunk-RPUSTYHL.js.map +0 -1
  494. package/dist/chunk-S77PZVYM.js +0 -297
  495. package/dist/chunk-SHL7LOC3.js +0 -51
  496. package/dist/chunk-SSJK7FEV.js +0 -2886
  497. package/dist/chunk-SSJK7FEV.js.map +0 -1
  498. package/dist/chunk-TT5R35PJ.js +0 -207
  499. package/dist/chunk-ULJ5RFOV.js +0 -76
  500. package/dist/chunk-VB6WJJR3.js +0 -1830
  501. package/dist/chunk-W3ZHJJVT.js +0 -139
  502. package/dist/chunk-XF4JUKVF.js +0 -6151
  503. package/dist/chunk-XF4JUKVF.js.map +0 -1
  504. package/dist/chunk-Y6O7EWYY.js +0 -57
  505. package/dist/chunk-YRQYA2LR.js +0 -217
  506. package/dist/chunk-YRQYA2LR.js.map +0 -1
  507. package/dist/chunk-Z2EOC6PL.js +0 -6667
  508. package/dist/chunk-ZEYEWPK6.js +0 -1079
  509. package/dist/claim-FZ5OQLMU.js +0 -197
  510. package/dist/claim-FZ5OQLMU.js.map +0 -1
  511. package/dist/companies-DNI634RC.js +0 -195
  512. package/dist/companies-DNI634RC.js.map +0 -1
  513. package/dist/complete-2FZMGJV5.js +0 -81
  514. package/dist/complete-2FZMGJV5.js.map +0 -1
  515. package/dist/connect-QCOGEPP4.js +0 -36
  516. package/dist/conversation-6IOGV7B7.js +0 -93
  517. package/dist/conversation-6IOGV7B7.js.map +0 -1
  518. package/dist/conversion-report-N4HANYOB.js +0 -125
  519. package/dist/conversion-writes-LW4HQKK5.js +0 -120
  520. package/dist/conversions-4SRZPBBX.js +0 -135
  521. package/dist/conversions-4SRZPBBX.js.map +0 -1
  522. package/dist/conversions-TS723AZV.js +0 -76
  523. package/dist/create-BJNMO6HT.js +0 -207
  524. package/dist/create-BJNMO6HT.js.map +0 -1
  525. package/dist/create-FX4OJ2XF.js +0 -59
  526. package/dist/create-FX4OJ2XF.js.map +0 -1
  527. package/dist/create-RM7HV77Y.js +0 -130
  528. package/dist/create-RM7HV77Y.js.map +0 -1
  529. package/dist/create-VXM34ZWH.js +0 -235
  530. package/dist/create-VXM34ZWH.js.map +0 -1
  531. package/dist/creatives-JSWBFQ5R.js +0 -182
  532. package/dist/creatives-JSWBFQ5R.js.map +0 -1
  533. package/dist/creatives-SJTJU6VT.js +0 -51
  534. package/dist/credentials-VOZTILFO.js +0 -1055
  535. package/dist/credentials-VOZTILFO.js.map +0 -1
  536. package/dist/critique-65W63MFZ.js +0 -213
  537. package/dist/critique-65W63MFZ.js.map +0 -1
  538. package/dist/critique-ZS4ON3SU.js +0 -1449
  539. package/dist/critique-ZS4ON3SU.js.map +0 -1
  540. package/dist/crm-52ROSWH5.js +0 -224
  541. package/dist/crm-52ROSWH5.js.map +0 -1
  542. package/dist/crm-R5IXIFIV.js +0 -318
  543. package/dist/crm-R5IXIFIV.js.map +0 -1
  544. package/dist/customers-4AWBFDUF.js +0 -56
  545. package/dist/delete-AIGE4Y4H.js +0 -63
  546. package/dist/delete-AIGE4Y4H.js.map +0 -1
  547. package/dist/delete-HGHXY24R.js +0 -54
  548. package/dist/delete-HGHXY24R.js.map +0 -1
  549. package/dist/delete-M2GDLPYN.js +0 -66
  550. package/dist/delete-M2GDLPYN.js.map +0 -1
  551. package/dist/demographics-NTWB2IMG.js +0 -138
  552. package/dist/demographics-NTWB2IMG.js.map +0 -1
  553. package/dist/discard-2WWQG6OU.js +0 -66
  554. package/dist/discard-2WWQG6OU.js.map +0 -1
  555. package/dist/domain-Y2LT6JLT.js +0 -98
  556. package/dist/domain-Y2LT6JLT.js.map +0 -1
  557. package/dist/draft-EJXNNJ3Y.js +0 -306
  558. package/dist/draft-EJXNNJ3Y.js.map +0 -1
  559. package/dist/draft-FJ7WHIXW.js +0 -328
  560. package/dist/draft-FJ7WHIXW.js.map +0 -1
  561. package/dist/draft-SLHAKJ2A.js +0 -217
  562. package/dist/draft-SLHAKJ2A.js.map +0 -1
  563. package/dist/draft-THPZFASM.js +0 -281
  564. package/dist/facets-U7AQC4H6.js +0 -114
  565. package/dist/facets-U7AQC4H6.js.map +0 -1
  566. package/dist/feedback-XNJQ63DS.js +0 -66
  567. package/dist/feedback-record-FDLMWMDG.js +0 -175
  568. package/dist/feedback-record-FDLMWMDG.js.map +0 -1
  569. package/dist/fetch-W7NULDEO.js +0 -176
  570. package/dist/fetch-W7NULDEO.js.map +0 -1
  571. package/dist/find-OTDIX6V4.js +0 -134
  572. package/dist/fit-7237F5EB.js +0 -45
  573. package/dist/flows-KABCBS3S.js +0 -244
  574. package/dist/flows-KABCBS3S.js.map +0 -1
  575. package/dist/fonts-EMMX3KII.js +0 -34
  576. package/dist/forecast-GNODEIIC.js +0 -104
  577. package/dist/forecast-GNODEIIC.js.map +0 -1
  578. package/dist/funnel-AAX27NH4.js +0 -837
  579. package/dist/funnel-AAX27NH4.js.map +0 -1
  580. package/dist/ga4-UDQ2HA2J.js +0 -55
  581. package/dist/generate-MMBYB44G.js +0 -262
  582. package/dist/get-QEYJRLV3.js +0 -54
  583. package/dist/get-QEYJRLV3.js.map +0 -1
  584. package/dist/get-RTVUZM6E.js +0 -78
  585. package/dist/get-RTVUZM6E.js.map +0 -1
  586. package/dist/google-KTO3PLEU.js +0 -136
  587. package/dist/google-M7KEXVK5.js +0 -1872
  588. package/dist/google-ads-OK6IG3UV.js +0 -195
  589. package/dist/google-ads-OK6IG3UV.js.map +0 -1
  590. package/dist/gsc-P3QYGDV2.js +0 -30
  591. package/dist/history-DBIEYQHY.js +0 -67
  592. package/dist/history-PQUJKK26.js +0 -133
  593. package/dist/history-PQUJKK26.js.map +0 -1
  594. package/dist/hubspot-Y77VLY6Y.js +0 -779
  595. package/dist/hubspot-Y77VLY6Y.js.map +0 -1
  596. package/dist/icon-I43F77FV.js +0 -137
  597. package/dist/ideas-MIDU7YOA.js +0 -32
  598. package/dist/images-S254MS6O.js +0 -90
  599. package/dist/ingest-J4I3HKM3.js +0 -107
  600. package/dist/ingest-J4I3HKM3.js.map +0 -1
  601. package/dist/ingest-YV2NLDBE.js +0 -23
  602. package/dist/insights-ZIU6FJMS.js +0 -122
  603. package/dist/inspect-Q5NHBBHX.js +0 -189
  604. package/dist/inspect-Q5NHBBHX.js.map +0 -1
  605. package/dist/inspiration-P265QJ2H.js +0 -53
  606. package/dist/keyword-metrics-PDY4ZXSP.js +0 -197
  607. package/dist/keyword-metrics-PDY4ZXSP.js.map +0 -1
  608. package/dist/keywords-for-site-GALSCV77.js +0 -128
  609. package/dist/keywords-for-site-GALSCV77.js.map +0 -1
  610. package/dist/landing-CJYGWCK4.js +0 -28
  611. package/dist/leads-PHKG6CP3.js +0 -90
  612. package/dist/leads-PHKG6CP3.js.map +0 -1
  613. package/dist/learn-3VO6DXUX.js +0 -203
  614. package/dist/learn-3VO6DXUX.js.map +0 -1
  615. package/dist/line-item-writes-E6MZPIZZ.js +0 -208
  616. package/dist/line-item-writes-E6MZPIZZ.js.map +0 -1
  617. package/dist/line-items-7ZGIKEF2.js +0 -103
  618. package/dist/link-QYAW6A2W.js +0 -64
  619. package/dist/link-QYAW6A2W.js.map +0 -1
  620. package/dist/linkedin-FFSDSGGS.js +0 -1008
  621. package/dist/linkedin-FFSDSGGS.js.map +0 -1
  622. package/dist/list-5IC6KIKO.js +0 -63
  623. package/dist/list-5IC6KIKO.js.map +0 -1
  624. package/dist/list-NVQC5SNY.js +0 -151
  625. package/dist/list-NVQC5SNY.js.map +0 -1
  626. package/dist/list-SAV3LQHY.js +0 -303
  627. package/dist/list-SAV3LQHY.js.map +0 -1
  628. package/dist/locations-74TPQWAT.js +0 -67
  629. package/dist/log-XZPVOALD.js +0 -92
  630. package/dist/log-XZPVOALD.js.map +0 -1
  631. package/dist/logo-2IP663QO.js +0 -18
  632. package/dist/lookup-XK45W2SH.js +0 -22
  633. package/dist/make-LCNP76OF.js +0 -593
  634. package/dist/make-LCNP76OF.js.map +0 -1
  635. package/dist/map-4J5WIWIG.js +0 -404
  636. package/dist/map-4J5WIWIG.js.map +0 -1
  637. package/dist/mcp-XXD7ZQCP.js +0 -476
  638. package/dist/mcp-XXD7ZQCP.js.map +0 -1
  639. package/dist/media-sources-O6ZRUA3N.js +0 -32
  640. package/dist/members-D5ZYLS4Y.js +0 -44
  641. package/dist/members-D5ZYLS4Y.js.map +0 -1
  642. package/dist/models-7U3GRYHF.js +0 -155
  643. package/dist/normalize-PCNC6E2N.js +0 -138
  644. package/dist/normalize-PCNC6E2N.js.map +0 -1
  645. package/dist/options-MQ65VEVD.js +0 -121
  646. package/dist/options-MQ65VEVD.js.map +0 -1
  647. package/dist/performance-6QW2KEEQ.js +0 -24
  648. package/dist/pixels-45A55MOP.js +0 -60
  649. package/dist/promoted-tweet-writes-JPLHY3GM.js +0 -180
  650. package/dist/promoted-tweet-writes-JPLHY3GM.js.map +0 -1
  651. package/dist/promoted-tweets-SURKMHFI.js +0 -119
  652. package/dist/publish-HCQ6MXLB.js +0 -322
  653. package/dist/publish-HCQ6MXLB.js.map +0 -1
  654. package/dist/reddit-GIP3ADMS.js +0 -26
  655. package/dist/refresh-UXQSLCR3.js +0 -94
  656. package/dist/refresh-UXQSLCR3.js.map +0 -1
  657. package/dist/release-5KVLXNP6.js +0 -60
  658. package/dist/release-5KVLXNP6.js.map +0 -1
  659. package/dist/remove-6FIVKCJI.js +0 -50
  660. package/dist/remove-6FIVKCJI.js.map +0 -1
  661. package/dist/reopen-YM5LNOLB.js +0 -63
  662. package/dist/reopen-YM5LNOLB.js.map +0 -1
  663. package/dist/rerun-CET74VPF.js +0 -85
  664. package/dist/rerun-CET74VPF.js.map +0 -1
  665. package/dist/research-EY7C7JJY.js +0 -62
  666. package/dist/research-YOGE7GT2.js +0 -262
  667. package/dist/research-YOGE7GT2.js.map +0 -1
  668. package/dist/reset-C4UHQ3EU.js +0 -54
  669. package/dist/reset-C4UHQ3EU.js.map +0 -1
  670. package/dist/reset-OLVB6AE6.js +0 -54
  671. package/dist/reset-OLVB6AE6.js.map +0 -1
  672. package/dist/resolve-XYH2GDAE.js +0 -121
  673. package/dist/resolve-XYH2GDAE.js.map +0 -1
  674. package/dist/retry-726GKI6V.js +0 -62
  675. package/dist/retry-726GKI6V.js.map +0 -1
  676. package/dist/retry-7EELDEQP.js +0 -60
  677. package/dist/retry-7EELDEQP.js.map +0 -1
  678. package/dist/run-P4KR2MXC.js +0 -65
  679. package/dist/run-P4KR2MXC.js.map +0 -1
  680. package/dist/run-XQ7EM3JT.js +0 -60
  681. package/dist/scaffold-ad-U2KSHKBC.js +0 -1549
  682. package/dist/scaffold-ad-U2KSHKBC.js.map +0 -1
  683. package/dist/scaffold-static-ad-63LQKUSO.js +0 -966
  684. package/dist/scaffold-static-ad-63LQKUSO.js.map +0 -1
  685. package/dist/scaffold-video-MUS6LHJQ.js +0 -873
  686. package/dist/scaffold-video-MUS6LHJQ.js.map +0 -1
  687. package/dist/schedule-RDK4GEPI.js +0 -61
  688. package/dist/schedule-RDK4GEPI.js.map +0 -1
  689. package/dist/scheduled-agents-6U44QE76.js +0 -49
  690. package/dist/schema-CHJDC7GQ.js +0 -129
  691. package/dist/schema-CHJDC7GQ.js.map +0 -1
  692. package/dist/search-PMJRU3C4.js +0 -174
  693. package/dist/search-PMJRU3C4.js.map +0 -1
  694. package/dist/select-4Z7BW5RH.js +0 -94
  695. package/dist/select-4Z7BW5RH.js.map +0 -1
  696. package/dist/sends-WGJVQUMF.js +0 -309
  697. package/dist/sends-WGJVQUMF.js.map +0 -1
  698. package/dist/set-prompt-OB2V3XJP.js +0 -186
  699. package/dist/set-prompt-OB2V3XJP.js.map +0 -1
  700. package/dist/setup-links-REPREN3C.js +0 -141
  701. package/dist/setup-links-REPREN3C.js.map +0 -1
  702. package/dist/site-WFSWIA3S.js +0 -177
  703. package/dist/site-WFSWIA3S.js.map +0 -1
  704. package/dist/sources-AMI2AWKZ.js +0 -421
  705. package/dist/sources-AMI2AWKZ.js.map +0 -1
  706. package/dist/sources-YBQ6KPFM.js +0 -30
  707. package/dist/stale-DAYXOY3Z.js +0 -63
  708. package/dist/stale-DAYXOY3Z.js.map +0 -1
  709. package/dist/status-7F2KHFGA.js +0 -62
  710. package/dist/status-7F2KHFGA.js.map +0 -1
  711. package/dist/stock-2YCDN3N6.js +0 -179
  712. package/dist/studio-C5K3YX3P.js +0 -49
  713. package/dist/sync-GWTLKZTU.js +0 -54
  714. package/dist/sync-GWTLKZTU.js.map +0 -1
  715. package/dist/sync-definition-ILS2B2BJ.js +0 -53
  716. package/dist/tags-3WPW6PTV.js +0 -26
  717. package/dist/tags-6342FQEB.js +0 -20
  718. package/dist/tags-6342FQEB.js.map +0 -1
  719. package/dist/tags-ABHSX6M5.js +0 -20
  720. package/dist/tags-ABHSX6M5.js.map +0 -1
  721. package/dist/tags-FJIBBBRG.js +0 -20
  722. package/dist/tags-FJIBBBRG.js.map +0 -1
  723. package/dist/tags-KFYLZLB3.js +0 -224
  724. package/dist/tags-KFYLZLB3.js.map +0 -1
  725. package/dist/targeting-criteria-NR47AF5C.js +0 -113
  726. package/dist/targets-L56KOVQE.js +0 -102
  727. package/dist/targets-L56KOVQE.js.map +0 -1
  728. package/dist/templates-B6XGDYUF.js +0 -178
  729. package/dist/templates-B6XGDYUF.js.map +0 -1
  730. package/dist/testimonials-CVC4YIXO.js +0 -32
  731. package/dist/top-companies-45X3DT7Z.js +0 -108
  732. package/dist/top-companies-45X3DT7Z.js.map +0 -1
  733. package/dist/translate-TA5KQIU7.js +0 -598
  734. package/dist/translate-TA5KQIU7.js.map +0 -1
  735. package/dist/triggers-22EMIVFD.js +0 -141
  736. package/dist/triggers-22EMIVFD.js.map +0 -1
  737. package/dist/unlink-65KUN6ID.js +0 -67
  738. package/dist/unlink-65KUN6ID.js.map +0 -1
  739. package/dist/unstage-2E3I5SWF.js +0 -84
  740. package/dist/unstage-2E3I5SWF.js.map +0 -1
  741. package/dist/unstage-4ZEULXEQ.js +0 -95
  742. package/dist/unstage-4ZEULXEQ.js.map +0 -1
  743. package/dist/update-2S7CSEAW.js +0 -63
  744. package/dist/update-2S7CSEAW.js.map +0 -1
  745. package/dist/update-7NCOTAQZ.js +0 -98
  746. package/dist/update-7NCOTAQZ.js.map +0 -1
  747. package/dist/update-D6DJC6T7.js +0 -155
  748. package/dist/update-D6DJC6T7.js.map +0 -1
  749. package/dist/update-KREBPGBH.js +0 -142
  750. package/dist/update-KREBPGBH.js.map +0 -1
  751. package/dist/upload-O6NHRPS7.js +0 -126
  752. package/dist/upload-O6NHRPS7.js.map +0 -1
  753. package/dist/url-options-GGXAL3J4.js +0 -127
  754. package/dist/url-options-GGXAL3J4.js.map +0 -1
  755. package/dist/url-params-3EFGVTZZ.js +0 -98
  756. package/dist/url-params-3EFGVTZZ.js.map +0 -1
  757. package/dist/validate-LDBAAXQO.js +0 -89
  758. package/dist/validate-LDBAAXQO.js.map +0 -1
  759. package/dist/videos-YSXYGTBM.js +0 -39
  760. package/dist/viewer-check-45T2HLAH.js +0 -69
  761. package/dist/web-IGIGVEKS.js +0 -140
  762. package/dist/web-IGIGVEKS.js.map +0 -1
  763. package/dist/winning-ads-ASH5DSV3.js +0 -62
  764. package/dist/write-commands-5C7FUOVN.js +0 -1015
  765. package/dist/write-commands-5C7FUOVN.js.map +0 -1
  766. package/dist/x-BFSKFCZD.js +0 -47
  767. /package/dist/{account-F6MHQ64I.js.map → account-4H7QVBRK.js.map} +0 -0
  768. /package/dist/{account-writes-ISE4U2FQ.js.map → account-writes-AK42HGRM.js.map} +0 -0
  769. /package/dist/{actions-P35MEMGN.js.map → actions-6TQMSVWD.js.map} +0 -0
  770. /package/dist/{ad-group-writes-UU5NNKSO.js.map → ad-group-writes-QQS4223F.js.map} +0 -0
  771. /package/dist/{ad-groups-CGFXZNIA.js.map → ad-groups-WGPDPUI2.js.map} +0 -0
  772. /package/dist/{ad-writes-NALDYWOR.js.map → ad-writes-XE2IE4DS.js.map} +0 -0
  773. /package/dist/{ads-C47NA2HH.js.map → ads-AGYCVD62.js.map} +0 -0
  774. /package/dist/{ads-PV7GZXPR.js.map → ads-BCOSQALY.js.map} +0 -0
  775. /package/dist/{animate-FWWHSYPL.js.map → animate-AIZ3GS4J.js.map} +0 -0
  776. /package/dist/{audiences-VEKGLWBG.js.map → audiences-TGD5US2M.js.map} +0 -0
  777. /package/dist/{avatars-EKCKHCC3.js.map → avatars-467OSBD6.js.map} +0 -0
  778. /package/dist/{brand-C6PFGGQN.js.map → brand-YRTEPGBK.js.map} +0 -0
  779. /package/dist/{campaign-writes-SX52CJYW.js.map → campaign-writes-SXLZFYF6.js.map} +0 -0
  780. /package/dist/{campaigns-KZYZTXDS.js.map → campaigns-OYMXDGWX.js.map} +0 -0
  781. /package/dist/{campaigns-X3DPCCSN.js.map → campaigns-YS3OGQXO.js.map} +0 -0
  782. /package/dist/{canvas-DPCBGW7K.js.map → canvas-YQFG52IG.js.map} +0 -0
  783. /package/dist/{catalog-ME44ZRZF.js.map → catalog-XLXIM7IW.js.map} +0 -0
  784. /package/dist/{catalogs-G3YEVG6S.js.map → catalogs-BRXEDE56.js.map} +0 -0
  785. /package/dist/{chatgpt-QNUN63YS.js.map → chatgpt-7W75X3ER.js.map} +0 -0
  786. /package/dist/{chunk-7YCRFMXF.js.map → chunk-24EB7EDR.js.map} +0 -0
  787. /package/dist/{chunk-5ZDLTE5T.js.map → chunk-2AOE2MZQ.js.map} +0 -0
  788. /package/dist/{chunk-IBURXTL4.js.map → chunk-2VPBIT65.js.map} +0 -0
  789. /package/dist/{chunk-NPY4QUMQ.js.map → chunk-54C6YDGJ.js.map} +0 -0
  790. /package/dist/{chunk-LZ73CZGP.js.map → chunk-5WCSKQ7Z.js.map} +0 -0
  791. /package/dist/{chunk-3G3ZDLMI.js.map → chunk-5ZNTADVR.js.map} +0 -0
  792. /package/dist/{chunk-AEOSAVVL.js.map → chunk-6F7DVPOS.js.map} +0 -0
  793. /package/dist/{chunk-FD27ZDVP.js.map → chunk-6NY2GPR4.js.map} +0 -0
  794. /package/dist/{chunk-TT5R35PJ.js.map → chunk-6Y7ZBENQ.js.map} +0 -0
  795. /package/dist/{chunk-5Y5UAJWD.js.map → chunk-7CTMH5AK.js.map} +0 -0
  796. /package/dist/{chunk-35XWJEWH.js.map → chunk-7J6EHOH6.js.map} +0 -0
  797. /package/dist/{chunk-Z2EOC6PL.js.map → chunk-ASI4P6X2.js.map} +0 -0
  798. /package/dist/{chunk-2QHODRR6.js.map → chunk-C46GUI2S.js.map} +0 -0
  799. /package/dist/{chunk-K7FZXIOZ.js.map → chunk-CWYAELVG.js.map} +0 -0
  800. /package/dist/{chunk-MXYBTMKB.js.map → chunk-DCRPXOJJ.js.map} +0 -0
  801. /package/dist/{chunk-54UVGFX3.js.map → chunk-EAP4O4FE.js.map} +0 -0
  802. /package/dist/{chunk-K66OLA6Y.js.map → chunk-FPOGPFAG.js.map} +0 -0
  803. /package/dist/{chunk-JQJDXPCO.js.map → chunk-FUHN4MFY.js.map} +0 -0
  804. /package/dist/{chunk-S77PZVYM.js.map → chunk-FYGR3I2A.js.map} +0 -0
  805. /package/dist/{chunk-OZRUJVIQ.js.map → chunk-H3427GPU.js.map} +0 -0
  806. /package/dist/{chunk-KQTYTCKQ.js.map → chunk-HZUDRKGR.js.map} +0 -0
  807. /package/dist/{chunk-IR6D7K4H.js.map → chunk-I3ZR655O.js.map} +0 -0
  808. /package/dist/{chunk-J5IY3GVE.js.map → chunk-KMKEYI37.js.map} +0 -0
  809. /package/dist/{chunk-W3ZHJJVT.js.map → chunk-KS2QY6MK.js.map} +0 -0
  810. /package/dist/{chunk-GLCPTMPG.js.map → chunk-LYQJ4PZW.js.map} +0 -0
  811. /package/dist/{chunk-GBMP4F45.js.map → chunk-MACCF4JZ.js.map} +0 -0
  812. /package/dist/{chunk-CSYSX4D2.js.map → chunk-N4LAYIIN.js.map} +0 -0
  813. /package/dist/{chunk-4AUMTNVB.js.map → chunk-NA63BH7V.js.map} +0 -0
  814. /package/dist/{chunk-KFE3S63W.js.map → chunk-NCWCZY5P.js.map} +0 -0
  815. /package/dist/{chunk-4BQXAE7Z.js.map → chunk-NDEE6G2J.js.map} +0 -0
  816. /package/dist/{chunk-7ZHMGXE2.js.map → chunk-NJXNU2G6.js.map} +0 -0
  817. /package/dist/{chunk-HQSCJYZO.js.map → chunk-P5T7OZKV.js.map} +0 -0
  818. /package/dist/{chunk-VB6WJJR3.js.map → chunk-PZXCWSKV.js.map} +0 -0
  819. /package/dist/{chunk-MELOSESI.js.map → chunk-R25YLW6H.js.map} +0 -0
  820. /package/dist/{chunk-Y6O7EWYY.js.map → chunk-RL5CP7N6.js.map} +0 -0
  821. /package/dist/{chunk-HBTF25YG.js.map → chunk-RX2DKU3W.js.map} +0 -0
  822. /package/dist/{chunk-647RO73Q.js.map → chunk-ULG4QRTV.js.map} +0 -0
  823. /package/dist/{chunk-QRP3PXWN.js.map → chunk-VL43TNIP.js.map} +0 -0
  824. /package/dist/{chunk-SHL7LOC3.js.map → chunk-VLMBTPXU.js.map} +0 -0
  825. /package/dist/{chunk-LYBXCXJB.js.map → chunk-VNUNE5AB.js.map} +0 -0
  826. /package/dist/{chunk-KHRXPQID.js.map → chunk-VYQ3QJ3C.js.map} +0 -0
  827. /package/dist/{chunk-A4LOJ2VD.js.map → chunk-WGUQHAJY.js.map} +0 -0
  828. /package/dist/{chunk-ZEYEWPK6.js.map → chunk-WKQG6TER.js.map} +0 -0
  829. /package/dist/{chunk-ULJ5RFOV.js.map → chunk-XFGAUP5B.js.map} +0 -0
  830. /package/dist/{chunk-3IBYKLXR.js.map → chunk-ZDMTXQ2Q.js.map} +0 -0
  831. /package/dist/{connect-QCOGEPP4.js.map → connect-FCXNVTXG.js.map} +0 -0
  832. /package/dist/{conversion-report-N4HANYOB.js.map → conversion-report-XQBJ6LG4.js.map} +0 -0
  833. /package/dist/{conversion-writes-LW4HQKK5.js.map → conversion-writes-UBCVXP2E.js.map} +0 -0
  834. /package/dist/{conversions-TS723AZV.js.map → conversions-D236RTUK.js.map} +0 -0
  835. /package/dist/{creatives-SJTJU6VT.js.map → creatives-FXUQ5WSD.js.map} +0 -0
  836. /package/dist/{customers-4AWBFDUF.js.map → customers-XH2DMTFH.js.map} +0 -0
  837. /package/dist/{draft-THPZFASM.js.map → draft-MNFJ4G3C.js.map} +0 -0
  838. /package/dist/{feedback-XNJQ63DS.js.map → feedback-EIZKS4JU.js.map} +0 -0
  839. /package/dist/{find-OTDIX6V4.js.map → find-FRRHAPWX.js.map} +0 -0
  840. /package/dist/{fit-7237F5EB.js.map → fit-UOFYFJ4Q.js.map} +0 -0
  841. /package/dist/{fonts-EMMX3KII.js.map → fonts-MXR3ZKDX.js.map} +0 -0
  842. /package/dist/{ga4-UDQ2HA2J.js.map → ga4-DV2AXCSL.js.map} +0 -0
  843. /package/dist/{generate-MMBYB44G.js.map → generate-3XYYITU6.js.map} +0 -0
  844. /package/dist/{google-M7KEXVK5.js.map → google-6OGZX47I.js.map} +0 -0
  845. /package/dist/{google-KTO3PLEU.js.map → google-QYYYSSXI.js.map} +0 -0
  846. /package/dist/{gsc-P3QYGDV2.js.map → gsc-TAKOF7J5.js.map} +0 -0
  847. /package/dist/{history-DBIEYQHY.js.map → history-Q3QCT64S.js.map} +0 -0
  848. /package/dist/{icon-I43F77FV.js.map → icon-L4RSS6PZ.js.map} +0 -0
  849. /package/dist/{ideas-MIDU7YOA.js.map → ideas-NFOW3HKJ.js.map} +0 -0
  850. /package/dist/{images-S254MS6O.js.map → images-2EFFUNNV.js.map} +0 -0
  851. /package/dist/{ingest-YV2NLDBE.js.map → ingest-2EIKN4QC.js.map} +0 -0
  852. /package/dist/{insights-ZIU6FJMS.js.map → insights-LNAXV2CG.js.map} +0 -0
  853. /package/dist/{inspiration-P265QJ2H.js.map → inspiration-S3DU4CMQ.js.map} +0 -0
  854. /package/dist/{landing-CJYGWCK4.js.map → landing-2ZB46LXH.js.map} +0 -0
  855. /package/dist/{line-items-7ZGIKEF2.js.map → line-items-5NECXUZT.js.map} +0 -0
  856. /package/dist/{locations-74TPQWAT.js.map → locations-2NKBJKBT.js.map} +0 -0
  857. /package/dist/{logo-2IP663QO.js.map → logo-Q5D7PZY6.js.map} +0 -0
  858. /package/dist/{lookup-XK45W2SH.js.map → lookup-ETWY47F7.js.map} +0 -0
  859. /package/dist/{media-sources-O6ZRUA3N.js.map → media-sources-ZXHEEP6T.js.map} +0 -0
  860. /package/dist/{models-7U3GRYHF.js.map → models-3Z6MDHQW.js.map} +0 -0
  861. /package/dist/{performance-6QW2KEEQ.js.map → performance-UF5VTY2U.js.map} +0 -0
  862. /package/dist/{pixels-45A55MOP.js.map → pixels-TZPF746S.js.map} +0 -0
  863. /package/dist/{promoted-tweets-SURKMHFI.js.map → promoted-tweets-LZKS5JIF.js.map} +0 -0
  864. /package/dist/{reddit-GIP3ADMS.js.map → reddit-NU2N3LZD.js.map} +0 -0
  865. /package/dist/{research-EY7C7JJY.js.map → research-FMM6AWZC.js.map} +0 -0
  866. /package/dist/{run-XQ7EM3JT.js.map → run-EUO34T2J.js.map} +0 -0
  867. /package/dist/{scheduled-agents-6U44QE76.js.map → scheduled-agents-N4LJRM4C.js.map} +0 -0
  868. /package/dist/{sources-YBQ6KPFM.js.map → sources-FQ2UZTHL.js.map} +0 -0
  869. /package/dist/{stock-2YCDN3N6.js.map → stock-KXJ26BY4.js.map} +0 -0
  870. /package/dist/{studio-C5K3YX3P.js.map → studio-SYKOSNDB.js.map} +0 -0
  871. /package/dist/{sync-definition-ILS2B2BJ.js.map → sync-definition-QR2N233R.js.map} +0 -0
  872. /package/dist/{tags-3WPW6PTV.js.map → tags-PYWFSBTR.js.map} +0 -0
  873. /package/dist/{targeting-criteria-NR47AF5C.js.map → targeting-criteria-RJFLFICN.js.map} +0 -0
  874. /package/dist/{testimonials-CVC4YIXO.js.map → testimonials-DII5DYLR.js.map} +0 -0
  875. /package/dist/{videos-YSXYGTBM.js.map → videos-LICG6ACJ.js.map} +0 -0
  876. /package/dist/{viewer-check-45T2HLAH.js.map → viewer-check-L4B4LIAX.js.map} +0 -0
  877. /package/dist/{winning-ads-ASH5DSV3.js.map → winning-ads-C6S2C5VP.js.map} +0 -0
  878. /package/dist/{x-BFSKFCZD.js.map → x-CZHRC6U7.js.map} +0 -0
@@ -1,170 +0,0 @@
1
- import {
2
- CONVERSION_COUNT_MODES,
3
- findNameCollision,
4
- isLandingViewKey,
5
- parseEventKey
6
- } from "./chunk-SSJK7FEV.js";
7
-
8
- // src/commands/analytics/conversionArgs.ts
9
- var ConversionArgsError = class extends Error {
10
- };
11
- function allValues(flag, argv) {
12
- const values = [];
13
- for (let i = 0; i < argv.length; i += 1) {
14
- const arg = argv[i];
15
- if (arg === flag) {
16
- const next = argv[i + 1];
17
- if (next !== void 0 && !next.startsWith("--")) values.push(next);
18
- continue;
19
- }
20
- if (arg.startsWith(`${flag}=`)) values.push(arg.slice(flag.length + 1));
21
- }
22
- return values.map((value) => value.trim()).filter((value) => value !== "");
23
- }
24
- function onlyOnce(value, flag, argv) {
25
- if (value === void 0) return void 0;
26
- const given = argv.filter((arg) => arg === flag || arg.startsWith(`${flag}=`)).length;
27
- if (given > 1) {
28
- throw new ConversionArgsError(
29
- `${flag} was given ${given} times and only the last would have been used. It takes one value.`
30
- );
31
- }
32
- const trimmed = String(value).trim();
33
- return trimmed === "" ? void 0 : trimmed;
34
- }
35
- function repeatable(flag, cittyValue, argv) {
36
- const fromArgv = allValues(flag, argv);
37
- if (fromArgv.length > 0) return fromArgv;
38
- if (cittyValue === void 0) return [];
39
- const trimmed = String(cittyValue).trim();
40
- return trimmed === "" ? [] : [trimmed];
41
- }
42
- function checkFlagShape(args) {
43
- if (args.eventKeys.length > 0 && args.name === void 0 && args.countMode === void 0) {
44
- throw new ConversionArgsError(
45
- "--event needs --name: a conversion nobody named is a row labelled with a UUID. (--event with only --count-mode changes how an event already counted is counted.)"
46
- );
47
- }
48
- if (args.name !== void 0 && args.eventKeys.length === 0 && args.renameTo === void 0) {
49
- throw new ConversionArgsError("--name needs --event, naming which event to count.");
50
- }
51
- if (args.renameFrom !== void 0 && args.renameTo === void 0) {
52
- throw new ConversionArgsError('--rename needs --to: `--rename "Lead form" --to "Lead"`.');
53
- }
54
- if (args.renameTo !== void 0 && args.renameFrom === void 0) {
55
- throw new ConversionArgsError(
56
- '--to needs --rename, naming which outcome to rename: `--rename "Lead form" --to "Lead"`.'
57
- );
58
- }
59
- }
60
- function checkEventKeys(eventKeys) {
61
- for (const eventKey of eventKeys) {
62
- if (parseEventKey(eventKey) === null) {
63
- throw new ConversionArgsError(
64
- `"${eventKey}" is not an event key. Run with --candidates (or --flow <slug> for one Form) and copy one; they look like form:<form>:<step>:<trigger>, submit:<form>, page:<name> or exit:<host>.`
65
- );
66
- }
67
- if (isLandingViewKey(eventKey)) {
68
- throw new ConversionArgsError(
69
- `"${eventKey}" is a landing being viewed \u2014 a funnel step, never a conversion. Add it as a step with \`baker funnel\` instead.`
70
- );
71
- }
72
- }
73
- }
74
- function readDays(raw) {
75
- if (raw === void 0) return void 0;
76
- const days = Number(raw);
77
- if (!Number.isFinite(days) || days <= 0) {
78
- throw new ConversionArgsError("--days must be a positive number of days.");
79
- }
80
- return days;
81
- }
82
- function parseConversionsArgs(raw, argv) {
83
- const countMode = onlyOnce(raw["count-mode"], "--count-mode", argv);
84
- if (countMode !== void 0 && !CONVERSION_COUNT_MODES.includes(countMode)) {
85
- throw new ConversionArgsError(`--count-mode must be one of ${CONVERSION_COUNT_MODES.join(", ")}.`);
86
- }
87
- const args = {
88
- eventKeys: repeatable("--event", raw.event, argv),
89
- removeKeys: repeatable("--remove", raw.remove, argv),
90
- name: onlyOnce(raw.name, "--name", argv),
91
- countMode,
92
- renameFrom: onlyOnce(raw.rename, "--rename", argv),
93
- renameTo: onlyOnce(raw.to, "--to", argv),
94
- removeName: onlyOnce(raw["remove-name"], "--remove-name", argv),
95
- flowSlug: onlyOnce(raw.flow, "--flow", argv),
96
- candidates: raw.candidates === true,
97
- full: raw.full === true,
98
- days: readDays(raw.days)
99
- };
100
- checkFlagShape(args);
101
- checkEventKeys(args.eventKeys);
102
- return args;
103
- }
104
- function existingNames(existing) {
105
- return [...new Set(existing.map((row) => row.name))];
106
- }
107
- function checkNameCollision(name, existing) {
108
- const collision = findNameCollision(name, existingNames(existing));
109
- if (collision === null) return;
110
- throw new ConversionArgsError(
111
- `This company already counts "${collision}", and "${name}" would be a second row for the same outcome \u2014 Baker groups by exact name, so the number would be split in two. Use "${collision}" to make them one number, or pick a name that means something different.`
112
- );
113
- }
114
- function under(name, existing) {
115
- const rows = existing.filter((row) => row.name === name);
116
- if (rows.length === 0) {
117
- throw new ConversionArgsError(
118
- `Nothing is counted under "${name}". This company counts: ${existingNames(existing).join(", ") || "nothing yet"}.`
119
- );
120
- }
121
- return rows;
122
- }
123
- function setFromEvents(args, existing) {
124
- if (args.eventKeys.length === 0) return [];
125
- if (args.name !== void 0) {
126
- checkNameCollision(args.name, existing);
127
- const name = args.name;
128
- return args.eventKeys.map((eventKey) => ({
129
- eventKey,
130
- name,
131
- ...args.countMode ? { countMode: args.countMode } : {}
132
- }));
133
- }
134
- return args.eventKeys.map((eventKey) => {
135
- const current = existing.find((row) => row.eventKey === eventKey);
136
- if (!current) {
137
- throw new ConversionArgsError(
138
- `"${eventKey}" is not counted, so there is no count mode to change. Add it with --event "${eventKey}" --name "<what a person calls it>" --count-mode ${args.countMode}.`
139
- );
140
- }
141
- return { eventKey, name: current.name, countMode: args.countMode };
142
- });
143
- }
144
- function setFromRename(args, existing) {
145
- if (args.renameFrom === void 0 || args.renameTo === void 0) return [];
146
- const renameTo = args.renameTo;
147
- checkNameCollision(renameTo, existing);
148
- return under(args.renameFrom, existing).map((row) => ({
149
- eventKey: row.eventKey,
150
- name: renameTo,
151
- countMode: row.countMode
152
- }));
153
- }
154
- function conversionsWrite(args, existing) {
155
- const set = [...setFromEvents(args, existing), ...setFromRename(args, existing)];
156
- const remove = [
157
- ...args.removeKeys,
158
- ...args.removeName === void 0 ? [] : under(args.removeName, existing).map((row) => row.eventKey)
159
- ];
160
- if (set.length === 0 && remove.length === 0) return null;
161
- return { ...set.length > 0 ? { set } : {}, ...remove.length > 0 ? { remove } : {} };
162
- }
163
-
164
- export {
165
- ConversionArgsError,
166
- onlyOnce,
167
- parseConversionsArgs,
168
- conversionsWrite
169
- };
170
- //# sourceMappingURL=chunk-RPUSTYHL.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/analytics/conversionArgs.ts"],"sourcesContent":["/**\n * Reading the flags of `baker analytics conversions`, and refusing the shapes\n * that would otherwise count the wrong thing in silence.\n *\n * Its own module because every refusal here is cheap and every one it misses is\n * expensive: a conversion definition that never matches anything does not\n * error, it counts zero forever, and the company reports a rate that is quietly\n * too low. The same is true of the other direction — a name that splits one\n * outcome into two rows makes both numbers too low and neither of them wrong\n * enough to notice.\n *\n * The write is built against what the company **already counts**, which is why\n * `conversionsWrite` takes the current definitions: renaming, re-moding and the\n * near-duplicate refusal are all questions about the existing set, and a CLI\n * that could not see it could only add.\n */\n\nimport { CONVERSION_COUNT_MODES, findNameCollision, isLandingViewKey, parseEventKey } from \"@baker/api/analytics\";\n\nexport interface ConversionsArgs {\n /** Every `--event` given. Several under one `--name` is how they become one number. */\n eventKeys: string[];\n name?: string;\n countMode?: string;\n /** Every `--remove` given. */\n removeKeys: string[];\n renameFrom?: string;\n renameTo?: string;\n removeName?: string;\n /** A Form to read its own endings from, whether or not any of them has fired. */\n flowSlug?: string;\n candidates: boolean;\n /** Every field of every candidate, instead of one short line each. */\n full: boolean;\n days?: number;\n}\n\n/** One definition as this module needs to read it. */\nexport interface ExistingConversion {\n eventKey: string;\n name: string;\n countMode: string;\n}\n\n/** Thrown for anything the caller can fix by re-running with different flags. */\nexport class ConversionArgsError extends Error {}\n\n/**\n * Every value given for a flag, in the order they were typed.\n *\n * Read out of the raw argv rather than out of citty's parsed args, because\n * citty keeps only the LAST value of a repeated flag and hands it over as a\n * plain string: `--event a --event b` arrives as `\"b\"` with nothing recording\n * that `a` was ever there. By the time the handler runs, the evidence is gone.\n *\n * The identical shape has cost this repo before: `--param a=1 --param b=2`\n * staged only `b=2` against a write that replaces an entity's whole set, and\n * two of three UTM parameters were silently deleted on publish. Here the flags\n * that can legitimately repeat are collected, and the ones that cannot are\n * refused by {@link onlyOnce} — never quietly resolved to one of them.\n */\nexport function allValues(flag: string, argv: readonly string[]): string[] {\n const values: string[] = [];\n for (let i = 0; i < argv.length; i += 1) {\n const arg = argv[i] as string;\n if (arg === flag) {\n const next = argv[i + 1];\n if (next !== undefined && !next.startsWith(\"--\")) values.push(next);\n continue;\n }\n if (arg.startsWith(`${flag}=`)) values.push(arg.slice(flag.length + 1));\n }\n return values.map((value) => value.trim()).filter((value) => value !== \"\");\n}\n\n/** One value for a flag, or a refusal — never the last of several. */\nexport function onlyOnce(value: unknown, flag: string, argv: readonly string[]): string | undefined {\n if (value === undefined) return undefined;\n const given = argv.filter((arg) => arg === flag || arg.startsWith(`${flag}=`)).length;\n if (given > 1) {\n throw new ConversionArgsError(\n `${flag} was given ${given} times and only the last would have been used. It takes one value.`,\n );\n }\n const trimmed = String(value).trim();\n return trimmed === \"\" ? undefined : trimmed;\n}\n\n/**\n * The repeatable flags, read from argv with citty's value as the fallback.\n *\n * The fallback matters for the single-value case: a test — and any caller that\n * builds the args itself — passes the parsed object without an argv, and\n * dropping the value there would make every one of those calls a silent read.\n */\nfunction repeatable(flag: string, cittyValue: unknown, argv: readonly string[]): string[] {\n const fromArgv = allValues(flag, argv);\n if (fromArgv.length > 0) return fromArgv;\n if (cittyValue === undefined) return [];\n const trimmed = String(cittyValue).trim();\n return trimmed === \"\" ? [] : [trimmed];\n}\n\n/**\n * The four ways a set of flags can fail to say anything, each named.\n *\n * Split out of the parser for the reason the linter gives: a run of unrelated\n * refusals is the shape that grows one branch per flag until nobody can see\n * which combinations are legal.\n */\nfunction checkFlagShape(args: {\n eventKeys: string[];\n name?: string;\n countMode?: string;\n renameFrom?: string;\n renameTo?: string;\n}): void {\n // An event with no name and no mode change says which event and nothing about\n // it; a name with no event names an outcome with nothing to count.\n if (args.eventKeys.length > 0 && args.name === undefined && args.countMode === undefined) {\n throw new ConversionArgsError(\n \"--event needs --name: a conversion nobody named is a row labelled with a UUID. (--event with only --count-mode changes how an event already counted is counted.)\",\n );\n }\n if (args.name !== undefined && args.eventKeys.length === 0 && args.renameTo === undefined) {\n throw new ConversionArgsError(\"--name needs --event, naming which event to count.\");\n }\n if (args.renameFrom !== undefined && args.renameTo === undefined) {\n throw new ConversionArgsError('--rename needs --to: `--rename \"Lead form\" --to \"Lead\"`.');\n }\n if (args.renameTo !== undefined && args.renameFrom === undefined) {\n throw new ConversionArgsError(\n '--to needs --rename, naming which outcome to rename: `--rename \"Lead form\" --to \"Lead\"`.',\n );\n }\n}\n\n/**\n * Refuse a key that cannot parse, here rather than at the backend.\n *\n * This is the mistake that costs a turn: an event key nothing can produce never\n * matches anything, so it does not error — it counts zero forever.\n */\nfunction checkEventKeys(eventKeys: readonly string[]): void {\n for (const eventKey of eventKeys) {\n if (parseEventKey(eventKey) === null) {\n throw new ConversionArgsError(\n `\"${eventKey}\" is not an event key. Run with --candidates (or --flow <slug> for one Form) and copy one; they look like form:<form>:<step>:<trigger>, submit:<form>, page:<name> or exit:<host>.`,\n );\n }\n // The one readable key that is not an outcome. It exists so a funnel can\n // begin at \"saw the page\"; marked as a conversion it would make the rate a\n // ratio of the traffic to itself.\n if (isLandingViewKey(eventKey)) {\n throw new ConversionArgsError(\n `\"${eventKey}\" is a landing being viewed — a funnel step, never a conversion. Add it as a step with \\`baker funnel\\` instead.`,\n );\n }\n }\n}\n\nfunction readDays(raw: unknown): number | undefined {\n if (raw === undefined) return undefined;\n const days = Number(raw);\n if (!Number.isFinite(days) || days <= 0) {\n throw new ConversionArgsError(\"--days must be a positive number of days.\");\n }\n return days;\n}\n\nexport function parseConversionsArgs(raw: Record<string, unknown>, argv: readonly string[]): ConversionsArgs {\n const countMode = onlyOnce(raw[\"count-mode\"], \"--count-mode\", argv);\n if (countMode !== undefined && !(CONVERSION_COUNT_MODES as readonly string[]).includes(countMode)) {\n throw new ConversionArgsError(`--count-mode must be one of ${CONVERSION_COUNT_MODES.join(\", \")}.`);\n }\n\n const args: ConversionsArgs = {\n eventKeys: repeatable(\"--event\", raw.event, argv),\n removeKeys: repeatable(\"--remove\", raw.remove, argv),\n name: onlyOnce(raw.name, \"--name\", argv),\n countMode,\n renameFrom: onlyOnce(raw.rename, \"--rename\", argv),\n renameTo: onlyOnce(raw.to, \"--to\", argv),\n removeName: onlyOnce(raw[\"remove-name\"], \"--remove-name\", argv),\n flowSlug: onlyOnce(raw.flow, \"--flow\", argv),\n candidates: raw.candidates === true,\n full: raw.full === true,\n days: readDays(raw.days),\n };\n\n checkFlagShape(args);\n checkEventKeys(args.eventKeys);\n return args;\n}\n\nexport interface ConversionsWrite {\n set?: { eventKey: string; name: string; countMode?: string }[];\n remove?: string[];\n}\n\n/**\n * The names this company already counts, in the order they were defined.\n *\n * Exported because it is what every hint about reuse is built from: the first\n * thing an agent naming an outcome should see is what this company calls its\n * outcomes already.\n */\nexport function existingNames(existing: readonly ExistingConversion[]): string[] {\n return [...new Set(existing.map((row) => row.name))];\n}\n\n/**\n * Refuse a name that reads the same as one already counted but stores\n * differently.\n *\n * Baker groups by exact name, so \"Booked a call\" and \"Booked a Call\" are two\n * rows and two numbers — a headline quietly split in half, with both halves\n * plausible. Nothing else in the system can catch it: both names are valid,\n * both keys are real, and every report is correct about the wrong grouping.\n *\n * A refusal rather than a hint because the fix is one character and the damage\n * is permanent-looking: nobody re-reads a conversion list to check for two rows\n * that mean the same thing.\n */\nfunction checkNameCollision(name: string, existing: readonly ExistingConversion[]): void {\n const collision = findNameCollision(name, existingNames(existing));\n if (collision === null) return;\n throw new ConversionArgsError(\n `This company already counts \"${collision}\", and \"${name}\" would be a second row for the same outcome — Baker groups by exact name, so the number would be split in two. Use \"${collision}\" to make them one number, or pick a name that means something different.`,\n );\n}\n\n/** The definitions counted under a name, or a refusal naming what is. */\nfunction under(name: string, existing: readonly ExistingConversion[]): ExistingConversion[] {\n const rows = existing.filter((row) => row.name === name);\n if (rows.length === 0) {\n throw new ConversionArgsError(\n `Nothing is counted under \"${name}\". This company counts: ${existingNames(existing).join(\", \") || \"nothing yet\"}.`,\n );\n }\n return rows;\n}\n\n/** `--event …` — each key set to the given name, or re-moded keeping the one it has. */\nfunction setFromEvents(args: ConversionsArgs, existing: readonly ExistingConversion[]) {\n if (args.eventKeys.length === 0) return [];\n if (args.name !== undefined) {\n checkNameCollision(args.name, existing);\n const name = args.name;\n return args.eventKeys.map((eventKey) => ({\n eventKey,\n name,\n ...(args.countMode ? { countMode: args.countMode } : {}),\n }));\n }\n // `--count-mode` alone. The store needs a name on every write, and the only\n // honest one is the name it already has: inventing one here would rename an\n // outcome somebody chose, as a side effect of changing how it counts.\n return args.eventKeys.map((eventKey) => {\n const current = existing.find((row) => row.eventKey === eventKey);\n if (!current) {\n throw new ConversionArgsError(\n `\"${eventKey}\" is not counted, so there is no count mode to change. Add it with --event \"${eventKey}\" --name \"<what a person calls it>\" --count-mode ${args.countMode}.`,\n );\n }\n return { eventKey, name: current.name, countMode: args.countMode };\n });\n}\n\n/**\n * `--rename … --to …` — every event under one name moved to another.\n *\n * Collision-checked like every other name, and that is not in tension with the\n * merge: renaming ONTO an existing name is the main thing the flag is for, and\n * `findNameCollision` returns `null` for an exact match precisely so that stays\n * free. What it refuses is the near-miss — renaming onto \"Booked a Call\" when\n * the company counts \"Booked a call\" — which is the split the whole rule exists\n * to prevent, arriving through the one flag that used to be exempt.\n */\nfunction setFromRename(args: ConversionsArgs, existing: readonly ExistingConversion[]) {\n if (args.renameFrom === undefined || args.renameTo === undefined) return [];\n const renameTo = args.renameTo;\n checkNameCollision(renameTo, existing);\n return under(args.renameFrom, existing).map((row) => ({\n eventKey: row.eventKey,\n name: renameTo,\n countMode: row.countMode,\n }));\n}\n\n/**\n * The write this call makes, or `null` when it is only a read. *\n * Every operation is expressed as `set` / `remove` over event keys, because\n * that is the only vocabulary the store has: a name is a property of a\n * definition, not a row of its own, so renaming an outcome is re-setting every\n * key underneath it and dropping one is removing them all.\n */\nexport function conversionsWrite(\n args: ConversionsArgs,\n existing: readonly ExistingConversion[],\n): ConversionsWrite | null {\n const set = [...setFromEvents(args, existing), ...setFromRename(args, existing)];\n const remove = [\n ...args.removeKeys,\n ...(args.removeName === undefined ? [] : under(args.removeName, existing).map((row) => row.eventKey)),\n ];\n\n if (set.length === 0 && remove.length === 0) return null;\n return { ...(set.length > 0 ? { set } : {}), ...(remove.length > 0 ? { remove } : {}) };\n}\n"],"mappings":"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","names":[]}
@@ -1,297 +0,0 @@
1
- import {
2
- REDDIT_LINK_REJECTED,
3
- redditSearchHints,
4
- redditSubredditsHints,
5
- redditThreadHints
6
- } from "./chunk-OZRUJVIQ.js";
7
- import {
8
- handleResearchError,
9
- writeResearchJson
10
- } from "./chunk-WNFIJAUO.js";
11
- import {
12
- repeatedValues
13
- } from "./chunk-ERSX3MKH.js";
14
- import {
15
- RESEARCH_REDDIT_THREAD_DEFAULT_COMMENTS
16
- } from "./chunk-XF4JUKVF.js";
17
- import {
18
- apiPost
19
- } from "./chunk-XBOK23HI.js";
20
- import {
21
- registerSchema
22
- } from "./chunk-NU7JSWVA.js";
23
-
24
- // src/commands/research/reddit.ts
25
- import { defineCommand } from "citty";
26
- var TIMEOUT_MS = 18e4;
27
- var TEXT_PREVIEW_CHARS = 1500;
28
- var ITEM_FIELDS = {
29
- kind: "post or comment",
30
- subreddit: "Where it was said",
31
- title: "The post's title (on a comment: the post it answers)",
32
- text: "Verbatim \u2014 quote this, exactly",
33
- text_truncated: "The text was cut; re-run with --full before quoting the end of it",
34
- author: "Reddit username, or null once the account is deleted",
35
- score: "Points",
36
- comment_count: "Posts only",
37
- created: "Date written (UTC)",
38
- permalink: "Cite THIS link \u2014 it is built from where the words actually are",
39
- depth: "Thread comments: 0 answers the post, 1 answers a comment",
40
- source: "reddit_api / reddit_web = live Reddit; archive = the Arctic Shift archive of Reddit"
41
- };
42
- registerSchema({
43
- command: "research.reddit.search",
44
- description: "Search Reddit posts or comments for the audience's own words. Returns verbatim text with a real permalink for each hit. Start here for voice-of-customer work on Reddit.",
45
- args: {
46
- query: {
47
- type: "string",
48
- description: "Words to match \u2014 the audience's phrasing, not a description of it",
49
- required: true
50
- },
51
- subreddit: {
52
- type: "string",
53
- description: "Subreddits to search (up to 10): comma-separated (couriersofreddit,AmazonFlexUK) or the flag repeated. Needed for --kind comments",
54
- required: false
55
- },
56
- kind: {
57
- type: "string",
58
- description: "posts (default) or comments \u2014 the replies are where most of the voice is",
59
- required: false,
60
- enum: ["posts", "comments"]
61
- },
62
- since: { type: "string", description: "Only things written on or after this day, YYYY-MM-DD", required: false },
63
- limit: { type: "number", description: "Results to return (1-50, default 25)", required: false },
64
- full: {
65
- type: "boolean",
66
- description: "Return every text whole instead of a preview",
67
- required: false,
68
- default: false
69
- }
70
- }
71
- });
72
- registerSchema({
73
- command: "research.reddit.thread",
74
- description: "Read one Reddit thread verbatim: the post and its best comments, each with its own permalink. Use it on any Reddit link before quoting it \u2014 it also exposes links that point somewhere other than they claim.",
75
- args: {
76
- target: {
77
- type: "string",
78
- description: "The thread's link (any Reddit form, including share links) or post id",
79
- required: true
80
- },
81
- comments: { type: "number", description: "Comments to return, best first (0-200, default 40)", required: false },
82
- full: {
83
- type: "boolean",
84
- description: "Return every text whole instead of a preview",
85
- required: false,
86
- default: false
87
- }
88
- }
89
- });
90
- registerSchema({
91
- command: "research.reddit.subreddits",
92
- description: "Find the subreddits where an audience talks about a topic, with member counts and whether they can be read. Run it before searching, instead of guessing subreddit names.",
93
- args: {
94
- query: { type: "string", description: 'The audience or topic, e.g. "amazon flex uk", "deliveroo"', required: true },
95
- limit: { type: "number", description: "Subreddits to return (1-25, default 10)", required: false }
96
- }
97
- });
98
- function searchReddit(body) {
99
- return apiPost("/api/research/reddit/search", body, { timeoutMs: TIMEOUT_MS });
100
- }
101
- function findSubreddits(body) {
102
- return apiPost("/api/research/reddit/subreddits", body, { timeoutMs: TIMEOUT_MS });
103
- }
104
- function row(item, full) {
105
- const cut = !full && item.text.length > TEXT_PREVIEW_CHARS;
106
- return {
107
- kind: item.kind,
108
- subreddit: item.subreddit,
109
- title: item.title,
110
- text: cut ? `${item.text.slice(0, TEXT_PREVIEW_CHARS)}\u2026` : item.text,
111
- ...cut ? { text_truncated: true } : {},
112
- author: item.author,
113
- score: item.score,
114
- ...item.kind === "post" ? { comment_count: item.commentCount } : {},
115
- created: item.createdAt.slice(0, 10),
116
- permalink: item.permalink,
117
- ...item.depth !== null ? { depth: item.depth } : {}
118
- };
119
- }
120
- function redditFix(code) {
121
- if (code === "NOT_FOUND") return REDDIT_LINK_REJECTED;
122
- if (code === "BAD_REQUEST" || code === "VALIDATION_ERROR") {
123
- return { action: "retry_with_changes", explanation: "Follow the message above and run the command again." };
124
- }
125
- return {
126
- action: "continue_without",
127
- explanation: "Don't loop on it. Finish the job with the other sources, say plainly that Reddit is a gap in this research, and never stand in a summary's paraphrase for a Reddit quote."
128
- };
129
- }
130
- function failValidation(message) {
131
- writeResearchJson({ ok: false, error: { code: "VALIDATION_ERROR", message, fix: redditFix("VALIDATION_ERROR") } });
132
- process.exit(1);
133
- }
134
- function subredditsFromArgs(rawArgs, parsed) {
135
- return repeatedValues(rawArgs, "subreddit", parsed).flatMap((value) => value.split(",")).map((name) => name.trim()).filter(Boolean);
136
- }
137
- var searchCommand = defineCommand({
138
- meta: {
139
- name: "search",
140
- description: `Search Reddit for the audience's own words, verbatim, each with a permalink you can cite.
141
-
142
- Start here for Reddit voice-of-customer. Matches words, not meaning \u2014 search the way the audience writes, and quote a phrase to keep it together ('"right to work"').
143
-
144
- Examples:
145
- baker research reddit search "agency never paid" --subreddit couriersofreddit,AmazonFlexUK
146
- baker research reddit search '"right to work"' --subreddit UKJobs,AmazonFlexUK
147
- baker research reddit search "visa" --subreddit UberEATS --kind comments --since 2025-01-01
148
- baker research reddit search "side hustle student deliveries"`
149
- },
150
- args: {
151
- query: { type: "positional", description: "Words to match", required: false },
152
- subreddit: {
153
- type: "string",
154
- description: "Subreddits (up to 10): comma-separated, or repeat the flag",
155
- required: false
156
- },
157
- kind: { type: "string", description: "posts (default) or comments", required: false },
158
- since: { type: "string", description: "YYYY-MM-DD", required: false },
159
- limit: { type: "string", description: "1-50, default 25", required: false },
160
- full: { type: "boolean", description: "Whole texts, not previews", required: false }
161
- },
162
- run: async ({ args, rawArgs }) => {
163
- const query = args.query?.trim();
164
- if (!query) failValidation('Say what to search for: baker research reddit search "<words>"');
165
- const kind = args.kind ?? "posts";
166
- if (kind !== "posts" && kind !== "comments") failValidation("--kind must be posts or comments");
167
- const body = {
168
- query,
169
- kind,
170
- subreddits: subredditsFromArgs(rawArgs, args.subreddit)
171
- };
172
- if (args.since) body.since = args.since;
173
- if (args.limit) body.limit = Number(args.limit);
174
- try {
175
- const data = await searchReddit(body);
176
- writeResearchJson({
177
- ok: true,
178
- data: data.results.map((item) => row(item, Boolean(args.full))),
179
- source: data.source,
180
- fields: ITEM_FIELDS,
181
- hints: redditSearchHints({ resultCount: data.results.length, kind, source: data.source })
182
- });
183
- } catch (err) {
184
- handleResearchError(err, redditFix);
185
- }
186
- }
187
- });
188
- var threadCommand = defineCommand({
189
- meta: {
190
- name: "thread",
191
- description: `Read one Reddit thread verbatim \u2014 the post and its best comments, each with its own permalink.
192
-
193
- Run it on every Reddit link before you quote from it, including links a research summary gave you: it refuses a link whose post is somewhere other than the link claims.
194
-
195
- Examples:
196
- baker research reddit thread "https://www.reddit.com/r/AmazonFlexUK/comments/1abc2de/agency_still_hasnt_paid_me/"
197
- baker research reddit thread "https://www.reddit.com/r/UberEATS/s/3TzXiyxaMD" --comments 100
198
- baker research reddit thread 1abc2de --full`
199
- },
200
- args: {
201
- target: { type: "positional", description: "Thread link or post id", required: false },
202
- comments: { type: "string", description: "0-200, default 40", required: false },
203
- full: { type: "boolean", description: "Whole texts, not previews", required: false }
204
- },
205
- run: async ({ args }) => {
206
- const target = args.target?.trim();
207
- if (!target) failValidation("Pass the thread's link or post id: baker research reddit thread <url>");
208
- const commentsAsked = args.comments ? Number(args.comments) : RESEARCH_REDDIT_THREAD_DEFAULT_COMMENTS;
209
- const body = { target, comments: commentsAsked };
210
- try {
211
- const data = await apiPost("/api/research/reddit/thread", body, {
212
- timeoutMs: TIMEOUT_MS
213
- });
214
- const full = Boolean(args.full);
215
- writeResearchJson({
216
- ok: true,
217
- data: { post: row(data.post, full), comments: data.comments.map((item) => row(item, full)) },
218
- source: data.source,
219
- fields: ITEM_FIELDS,
220
- hints: redditThreadHints({
221
- commentsShown: data.comments.length,
222
- commentsAsked,
223
- commentCount: data.post.commentCount,
224
- source: data.source
225
- })
226
- });
227
- } catch (err) {
228
- handleResearchError(err, redditFix);
229
- }
230
- }
231
- });
232
- var subredditsCommand = defineCommand({
233
- meta: {
234
- name: "subreddits",
235
- description: `Find the subreddits where an audience talks \u2014 name, members, and whether it can be read.
236
-
237
- Run it before \`reddit search\` instead of guessing names: a plausible-sounding subreddit can be dead (r/CouriersUK has one post), while the conversation sits in r/AmazonFlexUK or r/deliveroos.
238
-
239
- Examples:
240
- baker research reddit subreddits "amazon flex uk"
241
- baker research reddit subreddits "deliveroo" --limit 5`
242
- },
243
- args: {
244
- query: { type: "positional", description: "Audience or topic", required: false },
245
- limit: { type: "string", description: "1-25, default 10", required: false }
246
- },
247
- run: async ({ args }) => {
248
- const query = args.query?.trim();
249
- if (!query) failValidation('Say what to look for: baker research reddit subreddits "<audience or topic>"');
250
- const body = { query };
251
- if (args.limit) body.limit = Number(args.limit);
252
- try {
253
- const data = await findSubreddits(body);
254
- writeResearchJson({
255
- ok: true,
256
- data: data.results,
257
- source: data.source,
258
- fields: {
259
- name: "Pass this to --subreddit",
260
- subscribers: "Members \u2014 size, not activity",
261
- access: "public / restricted (readable, members post) / private (unreadable) / null when the source doesn't say",
262
- description: "The subreddit's own summary",
263
- url: "The subreddit"
264
- },
265
- hints: redditSubredditsHints({ resultCount: data.results.length })
266
- });
267
- } catch (err) {
268
- handleResearchError(err, redditFix);
269
- }
270
- }
271
- });
272
- var redditCommand = defineCommand({
273
- meta: {
274
- name: "reddit",
275
- description: `Read Reddit verbatim \u2014 the one site no page reader will open for us.
276
-
277
- Commands:
278
- subreddits \u2014 Find where the audience talks (start here)
279
- search \u2014 Find posts or comments in the audience's own words
280
- thread \u2014 Read one thread: the post and its best comments
281
-
282
- Examples:
283
- baker research reddit subreddits "amazon flex uk"
284
- baker research reddit search "agency never paid" --subreddit couriersofreddit,AmazonFlexUK --kind comments
285
- baker research reddit thread "https://www.reddit.com/r/AmazonFlexUK/comments/1abc2de/"
286
- Full guide: __tooling__/docs/tools/baker/research.md`
287
- },
288
- subCommands: { subreddits: subredditsCommand, search: searchCommand, thread: threadCommand }
289
- });
290
-
291
- export {
292
- searchReddit,
293
- findSubreddits,
294
- subredditsFromArgs,
295
- redditCommand
296
- };
297
- //# sourceMappingURL=chunk-S77PZVYM.js.map
@@ -1,51 +0,0 @@
1
- import {
2
- failApi
3
- } from "./chunk-3HJLHTWP.js";
4
- import {
5
- HUBSPOT_MISSING_GRANT_MARKER,
6
- HUBSPOT_NOT_CONNECTED_MESSAGE
7
- } from "./chunk-XF4JUKVF.js";
8
- import {
9
- ApiError
10
- } from "./chunk-XBOK23HI.js";
11
- import {
12
- writeJson
13
- } from "./chunk-NU7JSWVA.js";
14
-
15
- // src/commands/hubspot/refusal.ts
16
- var CONTINUE = "Keep going with the wider task: say which part you could not read, skip it, and finish everything else. If the `request_connection` call fails, say so plainly and give the exact route: dashboard \u2192 Brain \u2192 Integrations \u2192 Platforms \u2192 HubSpot.";
17
- function hubspotRefusal(code, message, reason = "so I can count a contact becoming a customer") {
18
- if (code === "NOT_FOUND" && message.includes(HUBSPOT_NOT_CONNECTED_MESSAGE)) {
19
- return {
20
- code: "NO_HUBSPOT_CONNECTION",
21
- fix: {
22
- action: "request_connection",
23
- explanation: `AGENT INSTRUCTION: HubSpot is not connected, and only the user can connect it. Call the \`request_connection\` tool with { platform: "hubspot", reason } \u2014 reason in their words, e.g. "${reason}" \u2014 and they connect it inside the chat; then run this command again. ` + CONTINUE
24
- }
25
- };
26
- }
27
- if (code === "FORBIDDEN" && message.includes(HUBSPOT_MISSING_GRANT_MARKER)) {
28
- return {
29
- code: "HUBSPOT_RECONNECT_REQUIRED",
30
- fix: {
31
- action: "request_connection",
32
- explanation: 'AGENT INSTRUCTION: HubSpot is connected \u2014 do not tell the user it is missing, and do not retry. Its access does not cover this read (it was connected before Baker asked for it, or the access was withdrawn), and only the user can widen it. Call the `request_connection` tool with { platform: "hubspot", reason } naming what you need to read; the card offers them a Reconnect button. Run this command again once they have. ' + CONTINUE
33
- }
34
- };
35
- }
36
- return null;
37
- }
38
- function failNotConnected(err, reason) {
39
- const refusal = err instanceof ApiError ? hubspotRefusal(err.code, err.message, reason) : null;
40
- if (err instanceof ApiError && refusal !== null) {
41
- writeJson({ ok: false, error: { code: refusal.code, message: err.message, fix: refusal.fix } });
42
- process.exit(1);
43
- }
44
- failApi(err);
45
- }
46
-
47
- export {
48
- hubspotRefusal,
49
- failNotConnected
50
- };
51
- //# sourceMappingURL=chunk-SHL7LOC3.js.map