@koda-sl/baker-cli 0.512.0 → 0.514.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1077) hide show
  1. package/README.md +3 -3
  2. package/dist/account-D6LEVVWT.js +82 -0
  3. package/dist/account-D6LEVVWT.js.map +1 -0
  4. package/dist/account-SGK3IJ6N.js +82 -0
  5. package/dist/account-SGK3IJ6N.js.map +1 -0
  6. package/dist/account-assets-J5Z4URLQ.js +290 -0
  7. package/dist/account-level-4SBYYHRS.js +611 -0
  8. package/dist/account-level-4SBYYHRS.js.map +1 -0
  9. package/dist/account-reads-2MSUVG46.js +219 -0
  10. package/dist/account-users-MHC7AD6K.js +64 -0
  11. package/dist/account-users-MHC7AD6K.js.map +1 -0
  12. package/dist/account-writes-QQQC54WC.js +68 -0
  13. package/dist/account-writes-QQQC54WC.js.map +1 -0
  14. package/dist/accounts-2O6I7YBN.js +80 -0
  15. package/dist/accounts-2O6I7YBN.js.map +1 -0
  16. package/dist/accounts-QNE5QWBG.js +701 -0
  17. package/dist/accounts-QNE5QWBG.js.map +1 -0
  18. package/dist/actions-D7OWCP36.js +55 -0
  19. package/dist/activecampaign-LBS4M4C4.js +938 -0
  20. package/dist/activecampaign-LBS4M4C4.js.map +1 -0
  21. package/dist/ad-group-writes-CJTTUUIT.js +172 -0
  22. package/dist/ad-group-writes-CJTTUUIT.js.map +1 -0
  23. package/dist/ad-groups-HLGSVH74.js +70 -0
  24. package/dist/ad-groups-HLGSVH74.js.map +1 -0
  25. package/dist/ad-writes-3UE3U7VE.js +176 -0
  26. package/dist/ad-writes-3UE3U7VE.js.map +1 -0
  27. package/dist/add-HFQB2NTU.js +107 -0
  28. package/dist/add-HFQB2NTU.js.map +1 -0
  29. package/dist/add-IUYE5H6A.js +305 -0
  30. package/dist/add-IUYE5H6A.js.map +1 -0
  31. package/dist/ads-HLUJB5SQ.js +48 -0
  32. package/dist/ads-MAOI7S6V.js +115 -0
  33. package/dist/ads-PYNDMHUD.js +79 -0
  34. package/dist/ads-PYNDMHUD.js.map +1 -0
  35. package/dist/adsets-QRKICEFD.js +182 -0
  36. package/dist/advertisers-XXM6POO5.js +123 -0
  37. package/dist/advertisers-XXM6POO5.js.map +1 -0
  38. package/dist/analytics-AULKYNNT.js +447 -0
  39. package/dist/analytics-AULKYNNT.js.map +1 -0
  40. package/dist/analytics-DNDTC643.js +2437 -0
  41. package/dist/analytics-DNDTC643.js.map +1 -0
  42. package/dist/asset-writes-JLVUAVUZ.js +50 -0
  43. package/dist/assign-2GQVQKKO.js +80 -0
  44. package/dist/assign-2GQVQKKO.js.map +1 -0
  45. package/dist/audience-size-C3YHQPZB.js +76 -0
  46. package/dist/audience-size-C3YHQPZB.js.map +1 -0
  47. package/dist/audience-writes-CDKQB3SM.js +327 -0
  48. package/dist/audience-writes-CDKQB3SM.js.map +1 -0
  49. package/dist/audiences-CDDI5HR5.js +86 -0
  50. package/dist/audiences-M3A3QK52.js +280 -0
  51. package/dist/audiences-M3A3QK52.js.map +1 -0
  52. package/dist/audit-FLPJ7GTE.js +154 -0
  53. package/dist/audit-FLPJ7GTE.js.map +1 -0
  54. package/dist/autocomplete-ZYMHHV7E.js +114 -0
  55. package/dist/autocomplete-ZYMHHV7E.js.map +1 -0
  56. package/dist/avatars-WZ2JDMHH.js +38 -0
  57. package/dist/bid-pricing-H3M63PTW.js +103 -0
  58. package/dist/bid-pricing-H3M63PTW.js.map +1 -0
  59. package/dist/brand-IZTTBZII.js +22 -0
  60. package/dist/brief-OPQ7ICOY.js +543 -0
  61. package/dist/brief-OPQ7ICOY.js.map +1 -0
  62. package/dist/campaign-groups-IQSDKOVI.js +99 -0
  63. package/dist/campaign-groups-IQSDKOVI.js.map +1 -0
  64. package/dist/campaign-writes-APAAV4ZU.js +168 -0
  65. package/dist/campaign-writes-APAAV4ZU.js.map +1 -0
  66. package/dist/campaign-writes-BN4PZP4Z.js +176 -0
  67. package/dist/campaign-writes-BN4PZP4Z.js.map +1 -0
  68. package/dist/campaigns-4Y3JQC2U.js +111 -0
  69. package/dist/campaigns-GA34MEN2.js +78 -0
  70. package/dist/campaigns-GA34MEN2.js.map +1 -0
  71. package/dist/campaigns-HES5MDUG.js +130 -0
  72. package/dist/campaigns-K2FVD3XW.js +113 -0
  73. package/dist/campaigns-K2FVD3XW.js.map +1 -0
  74. package/dist/canvas-IQ753Q2O.js +46 -0
  75. package/dist/capabilities-ZITW4RF7.js +147 -0
  76. package/dist/capabilities-ZITW4RF7.js.map +1 -0
  77. package/dist/catalogs-TGLSJEK5.js +781 -0
  78. package/dist/catalogs-TGLSJEK5.js.map +1 -0
  79. package/dist/catalogs-ZR7DECMG.js +130 -0
  80. package/dist/catalogs-ZR7DECMG.js.map +1 -0
  81. package/dist/changes-VWKTM27U.js +135 -0
  82. package/dist/chatgpt-OPOD2WHB.js +47 -0
  83. package/dist/chats-AL2SYBJO.js +279 -0
  84. package/dist/chats-AL2SYBJO.js.map +1 -0
  85. package/dist/check-U2YLRD6H.js +107 -0
  86. package/dist/check-U2YLRD6H.js.map +1 -0
  87. package/dist/chunk-2GYCWRF3.js +170 -0
  88. package/dist/chunk-2L7F7KR4.js +61 -0
  89. package/dist/chunk-44ZRCSR7.js +228 -0
  90. package/dist/chunk-46YLDIQG.js +4254 -0
  91. package/dist/chunk-4EDWXZ3I.js +363 -0
  92. package/dist/chunk-4FFBGR5L.js +66 -0
  93. package/dist/chunk-4UQRXKYJ.js +219 -0
  94. package/dist/chunk-4UZUUSVL.js +592 -0
  95. package/dist/chunk-4XHCEYHI.js +831 -0
  96. package/dist/chunk-4Z6PVR3M.js +479 -0
  97. package/dist/chunk-5Y5FZV2W.js +122 -0
  98. package/dist/chunk-6HJXLGDV.js +392 -0
  99. package/dist/chunk-6S5CWGDA.js +429 -0
  100. package/dist/chunk-6VYROVWO.js +494 -0
  101. package/dist/chunk-7BUIOP36.js +287 -0
  102. package/dist/chunk-AQRXXC6E.js +319 -0
  103. package/dist/chunk-ARBXT73X.js +387 -0
  104. package/dist/chunk-BEZHQIEI.js +97 -0
  105. package/dist/chunk-BFURWHVR.js +547 -0
  106. package/dist/chunk-BX6B25KK.js +358 -0
  107. package/dist/chunk-BX6B25KK.js.map +1 -0
  108. package/dist/chunk-DSCEXBDR.js +676 -0
  109. package/dist/chunk-FLWDFPXE.js +23 -0
  110. package/dist/chunk-FRNBRN2C.js +1646 -0
  111. package/dist/chunk-G4FG5EQO.js +110 -0
  112. package/dist/chunk-G4FG5EQO.js.map +1 -0
  113. package/dist/chunk-GE3VT3CA.js +51 -0
  114. package/dist/chunk-GW2WRZZA.js +24026 -0
  115. package/dist/chunk-GW2WRZZA.js.map +1 -0
  116. package/dist/chunk-HGBJQGO5.js +142 -0
  117. package/dist/chunk-I7AYMJZA.js +783 -0
  118. package/dist/chunk-IRM273C7.js +207 -0
  119. package/dist/chunk-IWKD56AY.js +156 -0
  120. package/dist/chunk-JLAQWMVF.js +3868 -0
  121. package/dist/chunk-JOE42ZW6.js +2984 -0
  122. package/dist/chunk-JOE42ZW6.js.map +1 -0
  123. package/dist/chunk-K6NULQN7.js +57 -0
  124. package/dist/chunk-L2BRAC2J.js +19 -0
  125. package/dist/chunk-LGMI4LSY.js +455 -0
  126. package/dist/chunk-NB2FU6EZ.js +179 -0
  127. package/dist/chunk-NKQWDEB7.js +115 -0
  128. package/dist/chunk-NKQWDEB7.js.map +1 -0
  129. package/dist/chunk-NWF2LRKO.js +188 -0
  130. package/dist/chunk-OG47L5GG.js +275 -0
  131. package/dist/chunk-OR6KVLI5.js +169 -0
  132. package/dist/chunk-PC3FJEZH.js +7211 -0
  133. package/dist/chunk-PC3FJEZH.js.map +1 -0
  134. package/dist/chunk-Q3GSVLE5.js +4274 -0
  135. package/dist/chunk-Q3GSVLE5.js.map +1 -0
  136. package/dist/chunk-QDQZ62FL.js +207 -0
  137. package/dist/chunk-QIOFOD4K.js +344 -0
  138. package/dist/chunk-R2SYF5FC.js +249 -0
  139. package/dist/chunk-RTH2I55B.js +942 -0
  140. package/dist/chunk-S6VFDNSQ.js +63 -0
  141. package/dist/chunk-SG2TDQEE.js +150 -0
  142. package/dist/chunk-SOPVIIUW.js +68 -0
  143. package/dist/chunk-SOPVIIUW.js.map +1 -0
  144. package/dist/chunk-T3P6O2VU.js +89 -0
  145. package/dist/chunk-TXDE2QJ3.js +604 -0
  146. package/dist/chunk-UDIEKCIR.js +203 -0
  147. package/dist/chunk-USCADMM3.js +163 -0
  148. package/dist/chunk-UUGISMNE.js +910 -0
  149. package/dist/chunk-VDPOCAQ2.js +197 -0
  150. package/dist/chunk-VEJ3QX6M.js +103 -0
  151. package/dist/chunk-VFJB7OG6.js +91 -0
  152. package/dist/chunk-VRIPVLE7.js +8954 -0
  153. package/dist/chunk-WFY7KSHB.js +274 -0
  154. package/dist/chunk-WLESMH4J.js +45 -0
  155. package/dist/chunk-XHQYFNNK.js +846 -0
  156. package/dist/chunk-XOQNM7I4.js +396 -0
  157. package/dist/chunk-XOQNM7I4.js.map +1 -0
  158. package/dist/chunk-YILZR3XI.js +224 -0
  159. package/dist/chunk-YJFLXOH4.js +191 -0
  160. package/dist/chunk-YWHZYR6S.js +297 -0
  161. package/dist/claim-GOLUTAJ3.js +200 -0
  162. package/dist/claim-GOLUTAJ3.js.map +1 -0
  163. package/dist/cli.js +30 -30
  164. package/dist/companies-4AJJGTMC.js +198 -0
  165. package/dist/companies-4AJJGTMC.js.map +1 -0
  166. package/dist/company-MOSPLRZJ.js +308 -0
  167. package/dist/company-MOSPLRZJ.js.map +1 -0
  168. package/dist/complete-777BDV45.js +84 -0
  169. package/dist/complete-777BDV45.js.map +1 -0
  170. package/dist/connect-3YY7MF3I.js +45 -0
  171. package/dist/conversation-KROMHDHK.js +96 -0
  172. package/dist/conversation-KROMHDHK.js.map +1 -0
  173. package/dist/conversion-report-JZHI2IHY.js +127 -0
  174. package/dist/conversion-report-JZHI2IHY.js.map +1 -0
  175. package/dist/conversion-upload-command-7RSZ5ZQU.js +439 -0
  176. package/dist/conversion-writes-SNCLQDXQ.js +122 -0
  177. package/dist/conversion-writes-SNCLQDXQ.js.map +1 -0
  178. package/dist/conversions-43EYP2W2.js +140 -0
  179. package/dist/conversions-43EYP2W2.js.map +1 -0
  180. package/dist/conversions-EUOWILCQ.js +78 -0
  181. package/dist/conversions-EUOWILCQ.js.map +1 -0
  182. package/dist/copy-writes-CIHIFLY6.js +170 -0
  183. package/dist/copy-writes-CIHIFLY6.js.map +1 -0
  184. package/dist/create-3WOZO2XT.js +239 -0
  185. package/dist/create-3WOZO2XT.js.map +1 -0
  186. package/dist/create-7IFYLX7P.js +210 -0
  187. package/dist/create-7IFYLX7P.js.map +1 -0
  188. package/dist/create-FOHIQC3E.js +62 -0
  189. package/dist/create-FOHIQC3E.js.map +1 -0
  190. package/dist/create-UWQSQTK6.js +135 -0
  191. package/dist/create-UWQSQTK6.js.map +1 -0
  192. package/dist/creatives-2DR3QHJW.js +58 -0
  193. package/dist/creatives-BB6S2OF6.js +89 -0
  194. package/dist/creatives-KUO67WYA.js +223 -0
  195. package/dist/creatives-KUO67WYA.js.map +1 -0
  196. package/dist/credentials-IP4L37XP.js +290 -0
  197. package/dist/credentials-IP4L37XP.js.map +1 -0
  198. package/dist/critique-LGDNMLBL.js +232 -0
  199. package/dist/critique-LGDNMLBL.js.map +1 -0
  200. package/dist/critique-LJMFAURK.js +1451 -0
  201. package/dist/critique-LJMFAURK.js.map +1 -0
  202. package/dist/crm-BNYW7PF7.js +323 -0
  203. package/dist/crm-BNYW7PF7.js.map +1 -0
  204. package/dist/crm-J53V2QTN.js +227 -0
  205. package/dist/crm-J53V2QTN.js.map +1 -0
  206. package/dist/currency-X7Y6TSLF.js +88 -0
  207. package/dist/custom-conversions-HAGG72LF.js +128 -0
  208. package/dist/customers-663K2OCP.js +59 -0
  209. package/dist/delete-5W3YVA4L.js +67 -0
  210. package/dist/delete-5W3YVA4L.js.map +1 -0
  211. package/dist/delete-6U7E6YUW.js +57 -0
  212. package/dist/delete-6U7E6YUW.js.map +1 -0
  213. package/dist/delete-G4NY6ZG6.js +69 -0
  214. package/dist/delete-G4NY6ZG6.js.map +1 -0
  215. package/dist/demographics-4Y5LTCU4.js +141 -0
  216. package/dist/demographics-4Y5LTCU4.js.map +1 -0
  217. package/dist/discard-RKCZNKMN.js +69 -0
  218. package/dist/discard-RKCZNKMN.js.map +1 -0
  219. package/dist/discover-6DORQWXY.js +172 -0
  220. package/dist/domain-PLA2O4FW.js +101 -0
  221. package/dist/domain-PLA2O4FW.js.map +1 -0
  222. package/dist/download-4EFLVSA4.js +172 -0
  223. package/dist/download-4EFLVSA4.js.map +1 -0
  224. package/dist/draft-4V7W5DV2.js +310 -0
  225. package/dist/draft-4V7W5DV2.js.map +1 -0
  226. package/dist/draft-HY3U2GHU.js +283 -0
  227. package/dist/draft-HY3U2GHU.js.map +1 -0
  228. package/dist/draft-JMNAGW7C.js +220 -0
  229. package/dist/draft-JMNAGW7C.js.map +1 -0
  230. package/dist/draft-R6EKORNS.js +308 -0
  231. package/dist/draft-TRPQCJ4B.js +335 -0
  232. package/dist/draft-TRPQCJ4B.js.map +1 -0
  233. package/dist/experiments-4V242DG2.js +236 -0
  234. package/dist/experiments-4V242DG2.js.map +1 -0
  235. package/dist/facets-WXJ2MCU6.js +117 -0
  236. package/dist/facets-WXJ2MCU6.js.map +1 -0
  237. package/dist/feedback-IRSRPXV6.js +111 -0
  238. package/dist/feedback-IRSRPXV6.js.map +1 -0
  239. package/dist/feedback-record-DT3R4NA3.js +265 -0
  240. package/dist/feedback-record-DT3R4NA3.js.map +1 -0
  241. package/dist/fetch-YLQP5VQL.js +179 -0
  242. package/dist/fetch-YLQP5VQL.js.map +1 -0
  243. package/dist/fit-BEFCY2B4.js +65 -0
  244. package/dist/flows-FDMF3F3P.js +250 -0
  245. package/dist/flows-FDMF3F3P.js.map +1 -0
  246. package/dist/fonts-C6XN5667.js +39 -0
  247. package/dist/forecast-BTPIXEQ5.js +169 -0
  248. package/dist/forecast-ZTXZD3HD.js +121 -0
  249. package/dist/forecast-ZTXZD3HD.js.map +1 -0
  250. package/dist/funnel-7KOEX7YM.js +397 -0
  251. package/dist/funnel-7KOEX7YM.js.map +1 -0
  252. package/dist/get-KBSKPTAV.js +59 -0
  253. package/dist/get-KBSKPTAV.js.map +1 -0
  254. package/dist/get-OSVQVMP6.js +82 -0
  255. package/dist/get-OSVQVMP6.js.map +1 -0
  256. package/dist/google-M6BJ22UL.js +3267 -0
  257. package/dist/google-ads-XCJVAXWF.js +198 -0
  258. package/dist/google-ads-XCJVAXWF.js.map +1 -0
  259. package/dist/history-3NTM5SFN.js +69 -0
  260. package/dist/history-3NTM5SFN.js.map +1 -0
  261. package/dist/history-4TN2A6BL.js +136 -0
  262. package/dist/history-4TN2A6BL.js.map +1 -0
  263. package/dist/history-5IWW2X33.js +102 -0
  264. package/dist/history-5IWW2X33.js.map +1 -0
  265. package/dist/hubspot-HMVSRJQZ.js +782 -0
  266. package/dist/hubspot-HMVSRJQZ.js.map +1 -0
  267. package/dist/ideas-M66FU45H.js +45 -0
  268. package/dist/images-MM5OPUKV.js +92 -0
  269. package/dist/ingest-GU3WEBN3.js +110 -0
  270. package/dist/ingest-GU3WEBN3.js.map +1 -0
  271. package/dist/ingest-KMLYCFF4.js +26 -0
  272. package/dist/insights-CQCWOCIT.js +132 -0
  273. package/dist/insights-CQCWOCIT.js.map +1 -0
  274. package/dist/insights-XZL2EM53.js +439 -0
  275. package/dist/insights-XZL2EM53.js.map +1 -0
  276. package/dist/inspect-4JO2J3D6.js +192 -0
  277. package/dist/inspect-4JO2J3D6.js.map +1 -0
  278. package/dist/instant-experiences-RM4MLJTL.js +260 -0
  279. package/dist/instant-experiences-RM4MLJTL.js.map +1 -0
  280. package/dist/intent-YCQCUCV3.js +95 -0
  281. package/dist/keyword-gap-PUSF7EKY.js +130 -0
  282. package/dist/keyword-metrics-JXBM22ZD.js +200 -0
  283. package/dist/keyword-metrics-JXBM22ZD.js.map +1 -0
  284. package/dist/keywords-for-site-OAYA7KP7.js +131 -0
  285. package/dist/keywords-for-site-OAYA7KP7.js.map +1 -0
  286. package/dist/landing-OZU5RRFV.js +28 -0
  287. package/dist/languages-SLFV73GE.js +40 -0
  288. package/dist/leads-Q7APIJRQ.js +115 -0
  289. package/dist/leads-Q7APIJRQ.js.map +1 -0
  290. package/dist/leads-ULYHTG22.js +540 -0
  291. package/dist/leads-ULYHTG22.js.map +1 -0
  292. package/dist/learn-NBBJRMVZ.js +207 -0
  293. package/dist/learn-NBBJRMVZ.js.map +1 -0
  294. package/dist/line-item-writes-X3L5NQEH.js +211 -0
  295. package/dist/line-item-writes-X3L5NQEH.js.map +1 -0
  296. package/dist/line-items-NJMEPEF5.js +107 -0
  297. package/dist/link-WZSNUQQ2.js +67 -0
  298. package/dist/link-WZSNUQQ2.js.map +1 -0
  299. package/dist/linkedin-55PAID62.js +1316 -0
  300. package/dist/linkedin-55PAID62.js.map +1 -0
  301. package/dist/linkedin-person-MVRI7LLC.js +139 -0
  302. package/dist/linkedin-person-MVRI7LLC.js.map +1 -0
  303. package/dist/list-6S54IAUX.js +67 -0
  304. package/dist/list-6S54IAUX.js.map +1 -0
  305. package/dist/list-QRJ4E3SC.js +154 -0
  306. package/dist/list-QRJ4E3SC.js.map +1 -0
  307. package/dist/list-RZUDFLJN.js +306 -0
  308. package/dist/list-RZUDFLJN.js.map +1 -0
  309. package/dist/locations-T2OMP6QN.js +40 -0
  310. package/dist/locations-W3VOYBWL.js +69 -0
  311. package/dist/locations-W3VOYBWL.js.map +1 -0
  312. package/dist/log-53SAPZZ3.js +95 -0
  313. package/dist/log-53SAPZZ3.js.map +1 -0
  314. package/dist/lookup-S5VG7AWH.js +23 -0
  315. package/dist/make-ZF3YIMKW.js +1370 -0
  316. package/dist/make-ZF3YIMKW.js.map +1 -0
  317. package/dist/map-J37QFJSV.js +436 -0
  318. package/dist/map-J37QFJSV.js.map +1 -0
  319. package/dist/mcp-YRIFPYNU.js +717 -0
  320. package/dist/mcp-YRIFPYNU.js.map +1 -0
  321. package/dist/media-P4T4ZBNS.js +18 -0
  322. package/dist/media-sources-EQI3U4TC.js +35 -0
  323. package/dist/members-GYVMSCKL.js +47 -0
  324. package/dist/members-GYVMSCKL.js.map +1 -0
  325. package/dist/meta-IPLWNYC7.js +122 -0
  326. package/dist/metrics-4YVJHYRI.js +152 -0
  327. package/dist/normalize-MFN3WCH5.js +144 -0
  328. package/dist/normalize-MFN3WCH5.js.map +1 -0
  329. package/dist/options-DLHDHO7H.js +125 -0
  330. package/dist/options-DLHDHO7H.js.map +1 -0
  331. package/dist/organization-C2VOA2SD.js +949 -0
  332. package/dist/organization-C2VOA2SD.js.map +1 -0
  333. package/dist/page-photos-OQ5QATQH.js +118 -0
  334. package/dist/page-photos-OQ5QATQH.js.map +1 -0
  335. package/dist/performance-NIF3CESZ.js +27 -0
  336. package/dist/performance-T6TBVHVU.js +5541 -0
  337. package/dist/performance-T6TBVHVU.js.map +1 -0
  338. package/dist/pixels-LQAJOZIM.js +62 -0
  339. package/dist/pixels-LQAJOZIM.js.map +1 -0
  340. package/dist/plan-7UF76Q6U.js +208 -0
  341. package/dist/plan-7UF76Q6U.js.map +1 -0
  342. package/dist/preview-LRJOQ7LM.js +218 -0
  343. package/dist/preview-LRJOQ7LM.js.map +1 -0
  344. package/dist/promoted-tweet-writes-Y6BBOWDL.js +183 -0
  345. package/dist/promoted-tweet-writes-Y6BBOWDL.js.map +1 -0
  346. package/dist/promoted-tweets-RJT53DRM.js +119 -0
  347. package/dist/publish-IOTMJCCY.js +344 -0
  348. package/dist/publish-IOTMJCCY.js.map +1 -0
  349. package/dist/query-XZMDGRO5.js +62 -0
  350. package/dist/questionnaire-DWEH5II4.js +94 -0
  351. package/dist/questionnaire-DWEH5II4.js.map +1 -0
  352. package/dist/reddit-JIHMAKAQ.js +29 -0
  353. package/dist/refresh-OQZ263CS.js +97 -0
  354. package/dist/refresh-OQZ263CS.js.map +1 -0
  355. package/dist/release-4CHFURO3.js +63 -0
  356. package/dist/release-4CHFURO3.js.map +1 -0
  357. package/dist/relevant-pages-FS7GBVXK.js +99 -0
  358. package/dist/remove-IJQPHPDI.js +53 -0
  359. package/dist/remove-IJQPHPDI.js.map +1 -0
  360. package/dist/reopen-YTLPVKUR.js +66 -0
  361. package/dist/reopen-YTLPVKUR.js.map +1 -0
  362. package/dist/rerun-C7NB7B35.js +95 -0
  363. package/dist/rerun-C7NB7B35.js.map +1 -0
  364. package/dist/research-PNBACCCP.js +72 -0
  365. package/dist/research-TLHNPK3O.js +265 -0
  366. package/dist/research-TLHNPK3O.js.map +1 -0
  367. package/dist/reset-JVLW7HA2.js +57 -0
  368. package/dist/reset-JVLW7HA2.js.map +1 -0
  369. package/dist/reset-Y6FXLAQE.js +57 -0
  370. package/dist/reset-Y6FXLAQE.js.map +1 -0
  371. package/dist/resolve-YLRESES5.js +124 -0
  372. package/dist/resolve-YLRESES5.js.map +1 -0
  373. package/dist/retry-3V3IGDRR.js +65 -0
  374. package/dist/retry-3V3IGDRR.js.map +1 -0
  375. package/dist/retry-AEKQLQMP.js +63 -0
  376. package/dist/retry-AEKQLQMP.js.map +1 -0
  377. package/dist/revenue-E4GQIOUY.js +91 -0
  378. package/dist/revenue-E4GQIOUY.js.map +1 -0
  379. package/dist/rule-writes-UAVWT4XS.js +525 -0
  380. package/dist/rule-writes-UAVWT4XS.js.map +1 -0
  381. package/dist/rules-34BQAWU3.js +99 -0
  382. package/dist/rules-34BQAWU3.js.map +1 -0
  383. package/dist/rules-ZVS2MWED.js +217 -0
  384. package/dist/rules-add-CM5XUYNS.js +465 -0
  385. package/dist/rules-add-CM5XUYNS.js.map +1 -0
  386. package/dist/run-MD64RDHZ.js +69 -0
  387. package/dist/run-MD64RDHZ.js.map +1 -0
  388. package/dist/run-QCNRR3CA.js +70 -0
  389. package/dist/scaffold-ad-NADPY3CB.js +1516 -0
  390. package/dist/scaffold-ad-NADPY3CB.js.map +1 -0
  391. package/dist/scaffold-static-ad-5YEYYVYH.js +1015 -0
  392. package/dist/scaffold-static-ad-5YEYYVYH.js.map +1 -0
  393. package/dist/scaffold-video-W7DF2CBJ.js +888 -0
  394. package/dist/scaffold-video-W7DF2CBJ.js.map +1 -0
  395. package/dist/schedule-CTRRF6TS.js +64 -0
  396. package/dist/schedule-CTRRF6TS.js.map +1 -0
  397. package/dist/scheduled-agents-OXYAVSIE.js +55 -0
  398. package/dist/schema-BEUYOGSW.js +135 -0
  399. package/dist/schema-BEUYOGSW.js.map +1 -0
  400. package/dist/search-GFJKWPKN.js +177 -0
  401. package/dist/search-GFJKWPKN.js.map +1 -0
  402. package/dist/select-S72CCL57.js +106 -0
  403. package/dist/select-S72CCL57.js.map +1 -0
  404. package/dist/sends-LAY5C74B.js +349 -0
  405. package/dist/sends-LAY5C74B.js.map +1 -0
  406. package/dist/set-prompt-YYFDRXRI.js +198 -0
  407. package/dist/set-prompt-YYFDRXRI.js.map +1 -0
  408. package/dist/setup-links-D4JJLESN.js +144 -0
  409. package/dist/setup-links-D4JJLESN.js.map +1 -0
  410. package/dist/shopify-T4UWFIQC.js +3958 -0
  411. package/dist/shopify-T4UWFIQC.js.map +1 -0
  412. package/dist/site-BBZAUZA3.js +180 -0
  413. package/dist/site-BBZAUZA3.js.map +1 -0
  414. package/dist/sources-BUPV7H7F.js +457 -0
  415. package/dist/sources-BUPV7H7F.js.map +1 -0
  416. package/dist/sources-FLUGHSVP.js +30 -0
  417. package/dist/stale-HP54JS5X.js +76 -0
  418. package/dist/stale-HP54JS5X.js.map +1 -0
  419. package/dist/status-CLSWQFCQ.js +65 -0
  420. package/dist/status-CLSWQFCQ.js.map +1 -0
  421. package/dist/studies-EPO2AM4M.js +250 -0
  422. package/dist/study-writes-7FP443QQ.js +470 -0
  423. package/dist/study-writes-7FP443QQ.js.map +1 -0
  424. package/dist/sync-4YTVVEVC.js +57 -0
  425. package/dist/sync-4YTVVEVC.js.map +1 -0
  426. package/dist/sync-definition-OGQ5XTQE.js +69 -0
  427. package/dist/tags-CZTRQNXV.js +26 -0
  428. package/dist/tags-FDQXWTCQ.js +23 -0
  429. package/dist/tags-FDQXWTCQ.js.map +1 -0
  430. package/dist/tags-R67DKRZ6.js +23 -0
  431. package/dist/tags-R67DKRZ6.js.map +1 -0
  432. package/dist/tags-SA2LU6AW.js +227 -0
  433. package/dist/tags-SA2LU6AW.js.map +1 -0
  434. package/dist/tags-ZOXX6VRE.js +23 -0
  435. package/dist/tags-ZOXX6VRE.js.map +1 -0
  436. package/dist/targeting-NKZFEZD7.js +762 -0
  437. package/dist/targeting-NKZFEZD7.js.map +1 -0
  438. package/dist/targeting-criteria-AQYXVSGN.js +113 -0
  439. package/dist/targets-UUVCEG3F.js +106 -0
  440. package/dist/targets-UUVCEG3F.js.map +1 -0
  441. package/dist/testimonials-G3OCNPBY.js +32 -0
  442. package/dist/themes-FEVYZZCW.js +95 -0
  443. package/dist/top-companies-BQGWKYUK.js +111 -0
  444. package/dist/top-companies-BQGWKYUK.js.map +1 -0
  445. package/dist/transcript-U46AEOEI.js +165 -0
  446. package/dist/transcript-U46AEOEI.js.map +1 -0
  447. package/dist/translate-AS7JVKYM.js +609 -0
  448. package/dist/translate-AS7JVKYM.js.map +1 -0
  449. package/dist/triggers-ECRBPYYF.js +144 -0
  450. package/dist/triggers-ECRBPYYF.js.map +1 -0
  451. package/dist/unlink-VDNCSRJV.js +70 -0
  452. package/dist/unlink-VDNCSRJV.js.map +1 -0
  453. package/dist/unstage-ATDXUYP2.js +88 -0
  454. package/dist/unstage-ATDXUYP2.js.map +1 -0
  455. package/dist/unstage-ZA3WQBEA.js +96 -0
  456. package/dist/unstage-ZA3WQBEA.js.map +1 -0
  457. package/dist/update-FJ6TBV3E.js +101 -0
  458. package/dist/update-FJ6TBV3E.js.map +1 -0
  459. package/dist/update-HDBJCSTI.js +66 -0
  460. package/dist/update-HDBJCSTI.js.map +1 -0
  461. package/dist/update-U43DJRGV.js +155 -0
  462. package/dist/update-U43DJRGV.js.map +1 -0
  463. package/dist/update-Z7TIUBMJ.js +192 -0
  464. package/dist/update-Z7TIUBMJ.js.map +1 -0
  465. package/dist/upload-LXCFSRIU.js +129 -0
  466. package/dist/upload-LXCFSRIU.js.map +1 -0
  467. package/dist/url-options-Z4BQBEMI.js +131 -0
  468. package/dist/url-options-Z4BQBEMI.js.map +1 -0
  469. package/dist/url-params-J7RKP5RB.js +101 -0
  470. package/dist/url-params-J7RKP5RB.js.map +1 -0
  471. package/dist/validate-VR3HEOMJ.js +122 -0
  472. package/dist/validate-VR3HEOMJ.js.map +1 -0
  473. package/dist/videos-36AXDUGZ.js +41 -0
  474. package/dist/viewer-check-6HL4OUQY.js +83 -0
  475. package/dist/web-7BRJRQX7.js +143 -0
  476. package/dist/web-7BRJRQX7.js.map +1 -0
  477. package/dist/winning-ads-GMM5W2O4.js +86 -0
  478. package/dist/write-commands-IM5DPG3R.js +1502 -0
  479. package/dist/write-commands-IM5DPG3R.js.map +1 -0
  480. package/dist/write-commands-OGVDWWBV.js +1172 -0
  481. package/dist/write-commands-OGVDWWBV.js.map +1 -0
  482. package/dist/x-HGFAL3NY.js +47 -0
  483. package/package.json +1 -1
  484. package/dist/account-C635ATVM.js +0 -80
  485. package/dist/account-C635ATVM.js.map +0 -1
  486. package/dist/account-WLQBAQMD.js +0 -80
  487. package/dist/account-WLQBAQMD.js.map +0 -1
  488. package/dist/account-assets-O7IA37RE.js +0 -290
  489. package/dist/account-level-EU7BWCO7.js +0 -609
  490. package/dist/account-level-EU7BWCO7.js.map +0 -1
  491. package/dist/account-reads-SNOWDHHF.js +0 -219
  492. package/dist/account-users-XYYENK6X.js +0 -62
  493. package/dist/account-users-XYYENK6X.js.map +0 -1
  494. package/dist/account-writes-TU3WJRSI.js +0 -66
  495. package/dist/account-writes-TU3WJRSI.js.map +0 -1
  496. package/dist/accounts-A2FBLZ5H.js +0 -78
  497. package/dist/accounts-A2FBLZ5H.js.map +0 -1
  498. package/dist/accounts-V2IZZ5KU.js +0 -699
  499. package/dist/accounts-V2IZZ5KU.js.map +0 -1
  500. package/dist/actions-Y4SULW2E.js +0 -55
  501. package/dist/activecampaign-63XG6CLL.js +0 -936
  502. package/dist/activecampaign-63XG6CLL.js.map +0 -1
  503. package/dist/ad-group-writes-HLBWN4E4.js +0 -170
  504. package/dist/ad-group-writes-HLBWN4E4.js.map +0 -1
  505. package/dist/ad-groups-33NZD6J3.js +0 -68
  506. package/dist/ad-groups-33NZD6J3.js.map +0 -1
  507. package/dist/ad-writes-7ZDNDZ2E.js +0 -174
  508. package/dist/ad-writes-7ZDNDZ2E.js.map +0 -1
  509. package/dist/add-FOLFVGQO.js +0 -303
  510. package/dist/add-FOLFVGQO.js.map +0 -1
  511. package/dist/add-RYB4JSYC.js +0 -105
  512. package/dist/add-RYB4JSYC.js.map +0 -1
  513. package/dist/ads-2TVWICGM.js +0 -48
  514. package/dist/ads-KBE5JXCH.js +0 -115
  515. package/dist/ads-X3AM6M7L.js +0 -77
  516. package/dist/ads-X3AM6M7L.js.map +0 -1
  517. package/dist/adsets-YWBJFPAZ.js +0 -182
  518. package/dist/advertisers-IGUMSK5Q.js +0 -121
  519. package/dist/advertisers-IGUMSK5Q.js.map +0 -1
  520. package/dist/analytics-3DKM7J43.js +0 -445
  521. package/dist/analytics-3DKM7J43.js.map +0 -1
  522. package/dist/analytics-R3QDSX2K.js +0 -2435
  523. package/dist/analytics-R3QDSX2K.js.map +0 -1
  524. package/dist/asset-writes-72DEVXGO.js +0 -48
  525. package/dist/assign-EKCGLNZB.js +0 -78
  526. package/dist/assign-EKCGLNZB.js.map +0 -1
  527. package/dist/audience-size-IKXK32HU.js +0 -74
  528. package/dist/audience-size-IKXK32HU.js.map +0 -1
  529. package/dist/audience-writes-KCHLNFSI.js +0 -325
  530. package/dist/audience-writes-KCHLNFSI.js.map +0 -1
  531. package/dist/audiences-QAH42HIM.js +0 -86
  532. package/dist/audiences-WCDWN64L.js +0 -268
  533. package/dist/audiences-WCDWN64L.js.map +0 -1
  534. package/dist/audit-CY76S4V7.js +0 -152
  535. package/dist/audit-CY76S4V7.js.map +0 -1
  536. package/dist/autocomplete-G2S5HNUS.js +0 -112
  537. package/dist/autocomplete-G2S5HNUS.js.map +0 -1
  538. package/dist/avatars-P4UPNZM4.js +0 -38
  539. package/dist/bid-pricing-AJT4QU2C.js +0 -101
  540. package/dist/bid-pricing-AJT4QU2C.js.map +0 -1
  541. package/dist/brand-HALQWZWB.js +0 -22
  542. package/dist/brief-NW7TGG2Q.js +0 -541
  543. package/dist/brief-NW7TGG2Q.js.map +0 -1
  544. package/dist/campaign-groups-I43KMAJP.js +0 -97
  545. package/dist/campaign-groups-I43KMAJP.js.map +0 -1
  546. package/dist/campaign-writes-DLLPFAGG.js +0 -166
  547. package/dist/campaign-writes-DLLPFAGG.js.map +0 -1
  548. package/dist/campaign-writes-XO74BALZ.js +0 -174
  549. package/dist/campaign-writes-XO74BALZ.js.map +0 -1
  550. package/dist/campaigns-LS65QM6W.js +0 -76
  551. package/dist/campaigns-LS65QM6W.js.map +0 -1
  552. package/dist/campaigns-UIYSYCF3.js +0 -111
  553. package/dist/campaigns-UIYSYCF3.js.map +0 -1
  554. package/dist/campaigns-XZOQ2VTK.js +0 -130
  555. package/dist/campaigns-YMM5TQVO.js +0 -111
  556. package/dist/canvas-IJS7H3VE.js +0 -46
  557. package/dist/capabilities-XMQPM3UL.js +0 -145
  558. package/dist/capabilities-XMQPM3UL.js.map +0 -1
  559. package/dist/catalogs-JLCSFZYC.js +0 -779
  560. package/dist/catalogs-JLCSFZYC.js.map +0 -1
  561. package/dist/catalogs-T23RKYFC.js +0 -128
  562. package/dist/catalogs-T23RKYFC.js.map +0 -1
  563. package/dist/changes-36C754R4.js +0 -135
  564. package/dist/chatgpt-3WFOPURY.js +0 -47
  565. package/dist/chats-ZI6EYDAF.js +0 -277
  566. package/dist/chats-ZI6EYDAF.js.map +0 -1
  567. package/dist/check-CHJ2OLAU.js +0 -105
  568. package/dist/check-CHJ2OLAU.js.map +0 -1
  569. package/dist/chunk-2TOIY2WN.js +0 -4254
  570. package/dist/chunk-4GAEB6NK.js +0 -228
  571. package/dist/chunk-5RVQK3SP.js +0 -494
  572. package/dist/chunk-5SRUAGTG.js +0 -547
  573. package/dist/chunk-5XTGG4PV.js +0 -274
  574. package/dist/chunk-6Z7Y4KQB.js +0 -275
  575. package/dist/chunk-7J3NZBPV.js +0 -2982
  576. package/dist/chunk-7J3NZBPV.js.map +0 -1
  577. package/dist/chunk-AIRD6T4W.js +0 -169
  578. package/dist/chunk-AQOFQNKQ.js +0 -57
  579. package/dist/chunk-ARUXGKZO.js +0 -91
  580. package/dist/chunk-AYPBARKP.js +0 -156
  581. package/dist/chunk-BRLZX3VP.js +0 -207
  582. package/dist/chunk-BTJSGJNQ.js +0 -604
  583. package/dist/chunk-C7QQQVBS.js +0 -51
  584. package/dist/chunk-CCEDZTP7.js +0 -391
  585. package/dist/chunk-CCEDZTP7.js.map +0 -1
  586. package/dist/chunk-D3KLDIPQ.js +0 -45
  587. package/dist/chunk-DUR7PEJI.js +0 -170
  588. package/dist/chunk-EDLZGTGN.js +0 -216
  589. package/dist/chunk-EDLZGTGN.js.map +0 -1
  590. package/dist/chunk-FFFJBNHA.js +0 -63
  591. package/dist/chunk-FPWQA7TK.js +0 -344
  592. package/dist/chunk-G5Y7OIPL.js +0 -392
  593. package/dist/chunk-GACSA5A6.js +0 -1646
  594. package/dist/chunk-GMHCHHAA.js +0 -19
  595. package/dist/chunk-H4NNQGG6.js +0 -66
  596. package/dist/chunk-HSQRITKG.js +0 -203
  597. package/dist/chunk-I47BEKYK.js +0 -831
  598. package/dist/chunk-JND6XSGZ.js +0 -7192
  599. package/dist/chunk-JND6XSGZ.js.map +0 -1
  600. package/dist/chunk-KBRJSPIM.js +0 -676
  601. package/dist/chunk-KQTNUDKD.js +0 -97
  602. package/dist/chunk-M7HD42M6.js +0 -24017
  603. package/dist/chunk-M7HD42M6.js.map +0 -1
  604. package/dist/chunk-MBSFEVOG.js +0 -163
  605. package/dist/chunk-MGYC2IRC.js +0 -783
  606. package/dist/chunk-MUXKYSTI.js +0 -297
  607. package/dist/chunk-MZCTX37B.js +0 -3868
  608. package/dist/chunk-N7M2TWR5.js +0 -592
  609. package/dist/chunk-NDFS3APP.js +0 -319
  610. package/dist/chunk-OBJCNGZL.js +0 -207
  611. package/dist/chunk-OJGYYH6K.js +0 -179
  612. package/dist/chunk-P6BKKUSX.js +0 -142
  613. package/dist/chunk-PLAOK4AK.js +0 -103
  614. package/dist/chunk-PLBITHV6.js +0 -846
  615. package/dist/chunk-PNKIOTCK.js +0 -349
  616. package/dist/chunk-PNKIOTCK.js.map +0 -1
  617. package/dist/chunk-QBRPM3DQ.js +0 -61
  618. package/dist/chunk-QMDMTZAW.js +0 -224
  619. package/dist/chunk-QW6HL7D6.js +0 -429
  620. package/dist/chunk-R53XMPDO.js +0 -363
  621. package/dist/chunk-RFIUOQLN.js +0 -89
  622. package/dist/chunk-RVEY7BTT.js +0 -8954
  623. package/dist/chunk-SCL7PM6P.js +0 -479
  624. package/dist/chunk-SM7G7RUA.js +0 -910
  625. package/dist/chunk-SVBJ56T7.js +0 -455
  626. package/dist/chunk-TVAIOC77.js +0 -287
  627. package/dist/chunk-TVTSA4EN.js +0 -188
  628. package/dist/chunk-VIPKDXGU.js +0 -4229
  629. package/dist/chunk-VIPKDXGU.js.map +0 -1
  630. package/dist/chunk-W574NV67.js +0 -191
  631. package/dist/chunk-XGPU2VDU.js +0 -219
  632. package/dist/chunk-XQXZJ5IR.js +0 -249
  633. package/dist/chunk-YMF2RG4Z.js +0 -942
  634. package/dist/chunk-Z2DRGXBB.js +0 -197
  635. package/dist/chunk-Z7YMSHRZ.js +0 -23
  636. package/dist/chunk-ZEC46NWW.js +0 -122
  637. package/dist/chunk-ZFC562TP.js +0 -387
  638. package/dist/chunk-ZNRGH4NS.js +0 -150
  639. package/dist/claim-OUYHVGB4.js +0 -198
  640. package/dist/claim-OUYHVGB4.js.map +0 -1
  641. package/dist/companies-XDNSG7ME.js +0 -196
  642. package/dist/companies-XDNSG7ME.js.map +0 -1
  643. package/dist/company-4FAYYPEJ.js +0 -306
  644. package/dist/company-4FAYYPEJ.js.map +0 -1
  645. package/dist/complete-M2PAUMDP.js +0 -82
  646. package/dist/complete-M2PAUMDP.js.map +0 -1
  647. package/dist/connect-PP6Z3F7Y.js +0 -43
  648. package/dist/conversation-B5NPTLFQ.js +0 -94
  649. package/dist/conversation-B5NPTLFQ.js.map +0 -1
  650. package/dist/conversion-report-DKXFHLLX.js +0 -125
  651. package/dist/conversion-report-DKXFHLLX.js.map +0 -1
  652. package/dist/conversion-upload-command-KTYAY7IG.js +0 -439
  653. package/dist/conversion-writes-7ODJDAUP.js +0 -120
  654. package/dist/conversion-writes-7ODJDAUP.js.map +0 -1
  655. package/dist/conversions-BKVGNNC6.js +0 -76
  656. package/dist/conversions-BKVGNNC6.js.map +0 -1
  657. package/dist/conversions-QRJL6JIO.js +0 -138
  658. package/dist/conversions-QRJL6JIO.js.map +0 -1
  659. package/dist/copy-writes-P4WK6OPM.js +0 -168
  660. package/dist/copy-writes-P4WK6OPM.js.map +0 -1
  661. package/dist/create-4DWCJ2UA.js +0 -208
  662. package/dist/create-4DWCJ2UA.js.map +0 -1
  663. package/dist/create-OYV33CQ6.js +0 -60
  664. package/dist/create-OYV33CQ6.js.map +0 -1
  665. package/dist/create-U6JVIYFY.js +0 -237
  666. package/dist/create-U6JVIYFY.js.map +0 -1
  667. package/dist/create-V4FNRO63.js +0 -133
  668. package/dist/create-V4FNRO63.js.map +0 -1
  669. package/dist/creatives-64FKWEGL.js +0 -221
  670. package/dist/creatives-64FKWEGL.js.map +0 -1
  671. package/dist/creatives-JPKA2RHU.js +0 -89
  672. package/dist/creatives-UJDPD4CI.js +0 -58
  673. package/dist/credentials-EIPEZ2C2.js +0 -288
  674. package/dist/credentials-EIPEZ2C2.js.map +0 -1
  675. package/dist/critique-BADMZAZP.js +0 -230
  676. package/dist/critique-BADMZAZP.js.map +0 -1
  677. package/dist/critique-M3DEVEDA.js +0 -1449
  678. package/dist/critique-M3DEVEDA.js.map +0 -1
  679. package/dist/crm-GIYSLLY7.js +0 -321
  680. package/dist/crm-GIYSLLY7.js.map +0 -1
  681. package/dist/crm-HXKSJRY3.js +0 -225
  682. package/dist/crm-HXKSJRY3.js.map +0 -1
  683. package/dist/currency-R4ORE2U3.js +0 -88
  684. package/dist/custom-conversions-5HJBB5XL.js +0 -128
  685. package/dist/customers-7J3QGSOJ.js +0 -57
  686. package/dist/delete-EDWJQMMV.js +0 -65
  687. package/dist/delete-EDWJQMMV.js.map +0 -1
  688. package/dist/delete-O24CVQMJ.js +0 -67
  689. package/dist/delete-O24CVQMJ.js.map +0 -1
  690. package/dist/delete-QN2OYUCS.js +0 -55
  691. package/dist/delete-QN2OYUCS.js.map +0 -1
  692. package/dist/demographics-MPYYF2OI.js +0 -139
  693. package/dist/demographics-MPYYF2OI.js.map +0 -1
  694. package/dist/discard-FJCFB6SA.js +0 -67
  695. package/dist/discard-FJCFB6SA.js.map +0 -1
  696. package/dist/discover-GSJRZUOC.js +0 -172
  697. package/dist/domain-UILPSEA5.js +0 -99
  698. package/dist/domain-UILPSEA5.js.map +0 -1
  699. package/dist/download-ZMAI7QSG.js +0 -170
  700. package/dist/download-ZMAI7QSG.js.map +0 -1
  701. package/dist/draft-5OQT3APG.js +0 -308
  702. package/dist/draft-5OQT3APG.js.map +0 -1
  703. package/dist/draft-LPVK6YHI.js +0 -281
  704. package/dist/draft-LPVK6YHI.js.map +0 -1
  705. package/dist/draft-MSESA5UE.js +0 -333
  706. package/dist/draft-MSESA5UE.js.map +0 -1
  707. package/dist/draft-WYDMLNYA.js +0 -308
  708. package/dist/draft-XOOSEVY5.js +0 -218
  709. package/dist/draft-XOOSEVY5.js.map +0 -1
  710. package/dist/experiments-PVOQUL47.js +0 -234
  711. package/dist/experiments-PVOQUL47.js.map +0 -1
  712. package/dist/facets-5RW4Z3D3.js +0 -115
  713. package/dist/facets-5RW4Z3D3.js.map +0 -1
  714. package/dist/feedback-GC56R2EJ.js +0 -109
  715. package/dist/feedback-GC56R2EJ.js.map +0 -1
  716. package/dist/feedback-record-JX7ZU6J7.js +0 -263
  717. package/dist/feedback-record-JX7ZU6J7.js.map +0 -1
  718. package/dist/fetch-WUTXAPBL.js +0 -177
  719. package/dist/fetch-WUTXAPBL.js.map +0 -1
  720. package/dist/fit-N7WDGWYZ.js +0 -63
  721. package/dist/flows-ULZACISF.js +0 -248
  722. package/dist/flows-ULZACISF.js.map +0 -1
  723. package/dist/fonts-TTUAP7HS.js +0 -37
  724. package/dist/forecast-4AG5F7YC.js +0 -169
  725. package/dist/forecast-RQJJRN5D.js +0 -119
  726. package/dist/forecast-RQJJRN5D.js.map +0 -1
  727. package/dist/funnel-QPWJIXWK.js +0 -395
  728. package/dist/funnel-QPWJIXWK.js.map +0 -1
  729. package/dist/get-35D7YHWJ.js +0 -57
  730. package/dist/get-35D7YHWJ.js.map +0 -1
  731. package/dist/get-GIETDPF4.js +0 -80
  732. package/dist/get-GIETDPF4.js.map +0 -1
  733. package/dist/google-NAA4BASO.js +0 -3267
  734. package/dist/google-ads-2IZFZO4C.js +0 -196
  735. package/dist/google-ads-2IZFZO4C.js.map +0 -1
  736. package/dist/history-5MRLNTCI.js +0 -67
  737. package/dist/history-5MRLNTCI.js.map +0 -1
  738. package/dist/history-RPLWWPLQ.js +0 -134
  739. package/dist/history-RPLWWPLQ.js.map +0 -1
  740. package/dist/history-TQYLUYVU.js +0 -100
  741. package/dist/history-TQYLUYVU.js.map +0 -1
  742. package/dist/hubspot-EPK43X4C.js +0 -780
  743. package/dist/hubspot-EPK43X4C.js.map +0 -1
  744. package/dist/ideas-SUXKKZC7.js +0 -43
  745. package/dist/images-VKVZ3DWG.js +0 -92
  746. package/dist/ingest-BBBFT6FZ.js +0 -24
  747. package/dist/ingest-EM2UY42Z.js +0 -108
  748. package/dist/ingest-EM2UY42Z.js.map +0 -1
  749. package/dist/insights-M3CYB22P.js +0 -437
  750. package/dist/insights-M3CYB22P.js.map +0 -1
  751. package/dist/insights-XCT3ONC7.js +0 -130
  752. package/dist/insights-XCT3ONC7.js.map +0 -1
  753. package/dist/inspect-ZPOVOENK.js +0 -190
  754. package/dist/inspect-ZPOVOENK.js.map +0 -1
  755. package/dist/instant-experiences-HT3HB4QZ.js +0 -258
  756. package/dist/instant-experiences-HT3HB4QZ.js.map +0 -1
  757. package/dist/intent-NSHW7EJT.js +0 -95
  758. package/dist/keyword-gap-ITTWKBWZ.js +0 -130
  759. package/dist/keyword-metrics-7DPR264W.js +0 -198
  760. package/dist/keyword-metrics-7DPR264W.js.map +0 -1
  761. package/dist/keywords-for-site-IXL22UKQ.js +0 -129
  762. package/dist/keywords-for-site-IXL22UKQ.js.map +0 -1
  763. package/dist/landing-KZ4OSHHR.js +0 -28
  764. package/dist/languages-MEFQQBJ2.js +0 -40
  765. package/dist/leads-DNQTRYIR.js +0 -113
  766. package/dist/leads-DNQTRYIR.js.map +0 -1
  767. package/dist/leads-SZOGCQFK.js +0 -538
  768. package/dist/leads-SZOGCQFK.js.map +0 -1
  769. package/dist/learn-Q7WZG7FA.js +0 -205
  770. package/dist/learn-Q7WZG7FA.js.map +0 -1
  771. package/dist/line-item-writes-3K7FT5GO.js +0 -209
  772. package/dist/line-item-writes-3K7FT5GO.js.map +0 -1
  773. package/dist/line-items-G5YJG25N.js +0 -107
  774. package/dist/link-2QVSIZJT.js +0 -65
  775. package/dist/link-2QVSIZJT.js.map +0 -1
  776. package/dist/linkedin-VAFPZNWZ.js +0 -1314
  777. package/dist/linkedin-VAFPZNWZ.js.map +0 -1
  778. package/dist/linkedin-person-EHTYVNZY.js +0 -137
  779. package/dist/linkedin-person-EHTYVNZY.js.map +0 -1
  780. package/dist/list-5TS2VPQZ.js +0 -152
  781. package/dist/list-5TS2VPQZ.js.map +0 -1
  782. package/dist/list-PSSQXQRJ.js +0 -65
  783. package/dist/list-PSSQXQRJ.js.map +0 -1
  784. package/dist/list-UMVIFQ3X.js +0 -304
  785. package/dist/list-UMVIFQ3X.js.map +0 -1
  786. package/dist/locations-RLWAS6AC.js +0 -40
  787. package/dist/locations-UKBOT6SB.js +0 -67
  788. package/dist/locations-UKBOT6SB.js.map +0 -1
  789. package/dist/log-ZZK3QMZB.js +0 -93
  790. package/dist/log-ZZK3QMZB.js.map +0 -1
  791. package/dist/lookup-ZJIP2M4X.js +0 -22
  792. package/dist/make-DB2BDVB3.js +0 -1368
  793. package/dist/make-DB2BDVB3.js.map +0 -1
  794. package/dist/map-UJ23GKRH.js +0 -434
  795. package/dist/map-UJ23GKRH.js.map +0 -1
  796. package/dist/mcp-SS2ALFRJ.js +0 -715
  797. package/dist/mcp-SS2ALFRJ.js.map +0 -1
  798. package/dist/media-ZWN7E777.js +0 -18
  799. package/dist/media-sources-GKSEDSE3.js +0 -35
  800. package/dist/members-KD2XRYPZ.js +0 -45
  801. package/dist/members-KD2XRYPZ.js.map +0 -1
  802. package/dist/meta-EHKXH257.js +0 -122
  803. package/dist/metrics-K6FDCMK7.js +0 -152
  804. package/dist/normalize-ZNTXNX6D.js +0 -142
  805. package/dist/normalize-ZNTXNX6D.js.map +0 -1
  806. package/dist/options-TBIFJF3E.js +0 -123
  807. package/dist/options-TBIFJF3E.js.map +0 -1
  808. package/dist/organization-26J2ZIKM.js +0 -947
  809. package/dist/organization-26J2ZIKM.js.map +0 -1
  810. package/dist/page-photos-HWKQOSCU.js +0 -116
  811. package/dist/page-photos-HWKQOSCU.js.map +0 -1
  812. package/dist/performance-6TPJGM6A.js +0 -25
  813. package/dist/performance-O5BXZGS6.js +0 -5539
  814. package/dist/performance-O5BXZGS6.js.map +0 -1
  815. package/dist/pixels-Z7ZGXAGB.js +0 -60
  816. package/dist/pixels-Z7ZGXAGB.js.map +0 -1
  817. package/dist/plan-TVQSEKYL.js +0 -207
  818. package/dist/plan-TVQSEKYL.js.map +0 -1
  819. package/dist/preview-CWRGDFCP.js +0 -216
  820. package/dist/preview-CWRGDFCP.js.map +0 -1
  821. package/dist/promoted-tweet-writes-SZN74JHY.js +0 -181
  822. package/dist/promoted-tweet-writes-SZN74JHY.js.map +0 -1
  823. package/dist/promoted-tweets-7P4TSQU7.js +0 -119
  824. package/dist/publish-3DUERLGT.js +0 -342
  825. package/dist/publish-3DUERLGT.js.map +0 -1
  826. package/dist/query-QM7MBQD7.js +0 -62
  827. package/dist/questionnaire-LEZJLMAV.js +0 -93
  828. package/dist/questionnaire-LEZJLMAV.js.map +0 -1
  829. package/dist/reddit-SN5CESF4.js +0 -27
  830. package/dist/refresh-2ICQBTK4.js +0 -95
  831. package/dist/refresh-2ICQBTK4.js.map +0 -1
  832. package/dist/release-JSZ4JXYJ.js +0 -61
  833. package/dist/release-JSZ4JXYJ.js.map +0 -1
  834. package/dist/relevant-pages-VOICMQ7U.js +0 -99
  835. package/dist/remove-TFUAVRFM.js +0 -51
  836. package/dist/remove-TFUAVRFM.js.map +0 -1
  837. package/dist/reopen-5T2PE7MU.js +0 -64
  838. package/dist/reopen-5T2PE7MU.js.map +0 -1
  839. package/dist/rerun-EZJ4MLYG.js +0 -93
  840. package/dist/rerun-EZJ4MLYG.js.map +0 -1
  841. package/dist/research-BKYSU2C6.js +0 -263
  842. package/dist/research-BKYSU2C6.js.map +0 -1
  843. package/dist/research-QU63CJB5.js +0 -72
  844. package/dist/reset-DKTKZF7G.js +0 -55
  845. package/dist/reset-DKTKZF7G.js.map +0 -1
  846. package/dist/reset-SXABIVP6.js +0 -55
  847. package/dist/reset-SXABIVP6.js.map +0 -1
  848. package/dist/resolve-L47U2T77.js +0 -122
  849. package/dist/resolve-L47U2T77.js.map +0 -1
  850. package/dist/retry-JEWPK2B5.js +0 -63
  851. package/dist/retry-JEWPK2B5.js.map +0 -1
  852. package/dist/retry-SXFVLT3W.js +0 -61
  853. package/dist/retry-SXFVLT3W.js.map +0 -1
  854. package/dist/revenue-2MAYTXRM.js +0 -89
  855. package/dist/revenue-2MAYTXRM.js.map +0 -1
  856. package/dist/rule-writes-S3RN47OG.js +0 -523
  857. package/dist/rule-writes-S3RN47OG.js.map +0 -1
  858. package/dist/rules-CHWTFASP.js +0 -97
  859. package/dist/rules-CHWTFASP.js.map +0 -1
  860. package/dist/rules-KTJ2ZZ62.js +0 -217
  861. package/dist/rules-add-3M5TALWN.js +0 -463
  862. package/dist/rules-add-3M5TALWN.js.map +0 -1
  863. package/dist/run-2DLA6YO4.js +0 -68
  864. package/dist/run-JCGH2NHD.js +0 -67
  865. package/dist/run-JCGH2NHD.js.map +0 -1
  866. package/dist/scaffold-ad-VEW7JDY7.js +0 -1514
  867. package/dist/scaffold-ad-VEW7JDY7.js.map +0 -1
  868. package/dist/scaffold-static-ad-DYRL7DOS.js +0 -1013
  869. package/dist/scaffold-static-ad-DYRL7DOS.js.map +0 -1
  870. package/dist/scaffold-video-YRAVVKUH.js +0 -886
  871. package/dist/scaffold-video-YRAVVKUH.js.map +0 -1
  872. package/dist/schedule-WYIC6VNW.js +0 -62
  873. package/dist/schedule-WYIC6VNW.js.map +0 -1
  874. package/dist/scheduled-agents-FRBF4EOK.js +0 -55
  875. package/dist/schema-TC2O3FYY.js +0 -133
  876. package/dist/schema-TC2O3FYY.js.map +0 -1
  877. package/dist/search-VDW242BN.js +0 -175
  878. package/dist/search-VDW242BN.js.map +0 -1
  879. package/dist/select-O5HSSC36.js +0 -104
  880. package/dist/select-O5HSSC36.js.map +0 -1
  881. package/dist/sends-6FI7WELX.js +0 -348
  882. package/dist/sends-6FI7WELX.js.map +0 -1
  883. package/dist/set-prompt-TI7N64PJ.js +0 -196
  884. package/dist/set-prompt-TI7N64PJ.js.map +0 -1
  885. package/dist/setup-links-BM2FTXUZ.js +0 -142
  886. package/dist/setup-links-BM2FTXUZ.js.map +0 -1
  887. package/dist/shopify-FIHG5PYP.js +0 -3956
  888. package/dist/shopify-FIHG5PYP.js.map +0 -1
  889. package/dist/site-S3IGBMVC.js +0 -178
  890. package/dist/site-S3IGBMVC.js.map +0 -1
  891. package/dist/sources-77WLFY4Y.js +0 -30
  892. package/dist/sources-A4B3R5JC.js +0 -455
  893. package/dist/sources-A4B3R5JC.js.map +0 -1
  894. package/dist/stale-YIRCXDOK.js +0 -74
  895. package/dist/stale-YIRCXDOK.js.map +0 -1
  896. package/dist/status-6YNR647D.js +0 -63
  897. package/dist/status-6YNR647D.js.map +0 -1
  898. package/dist/studies-ZOEUY6YP.js +0 -250
  899. package/dist/study-writes-DTGMCNFP.js +0 -468
  900. package/dist/study-writes-DTGMCNFP.js.map +0 -1
  901. package/dist/sync-FFVWHGLE.js +0 -55
  902. package/dist/sync-FFVWHGLE.js.map +0 -1
  903. package/dist/sync-definition-K4XOAG2B.js +0 -67
  904. package/dist/tags-5KIOGEKN.js +0 -21
  905. package/dist/tags-5KIOGEKN.js.map +0 -1
  906. package/dist/tags-BKAN5EAJ.js +0 -21
  907. package/dist/tags-BKAN5EAJ.js.map +0 -1
  908. package/dist/tags-ETOOYQ57.js +0 -26
  909. package/dist/tags-RPNK7TMO.js +0 -225
  910. package/dist/tags-RPNK7TMO.js.map +0 -1
  911. package/dist/tags-UM4QO46J.js +0 -21
  912. package/dist/tags-UM4QO46J.js.map +0 -1
  913. package/dist/targeting-VBQY3HUN.js +0 -760
  914. package/dist/targeting-VBQY3HUN.js.map +0 -1
  915. package/dist/targeting-criteria-L4DYIJZI.js +0 -113
  916. package/dist/targets-S6N7327Q.js +0 -104
  917. package/dist/targets-S6N7327Q.js.map +0 -1
  918. package/dist/testimonials-65N7IYN7.js +0 -32
  919. package/dist/themes-B4LCQUXB.js +0 -95
  920. package/dist/top-companies-SJKND75M.js +0 -109
  921. package/dist/top-companies-SJKND75M.js.map +0 -1
  922. package/dist/transcript-5I7I6DWL.js +0 -163
  923. package/dist/transcript-5I7I6DWL.js.map +0 -1
  924. package/dist/translate-SH6IG5Y7.js +0 -607
  925. package/dist/translate-SH6IG5Y7.js.map +0 -1
  926. package/dist/triggers-YRY3HTYU.js +0 -142
  927. package/dist/triggers-YRY3HTYU.js.map +0 -1
  928. package/dist/unlink-4B4YTQE4.js +0 -68
  929. package/dist/unlink-4B4YTQE4.js.map +0 -1
  930. package/dist/unstage-H5NTDJ6A.js +0 -86
  931. package/dist/unstage-H5NTDJ6A.js.map +0 -1
  932. package/dist/unstage-MDSSPUKV.js +0 -95
  933. package/dist/unstage-MDSSPUKV.js.map +0 -1
  934. package/dist/update-DI52JJGB.js +0 -99
  935. package/dist/update-DI52JJGB.js.map +0 -1
  936. package/dist/update-DMPDLMMV.js +0 -64
  937. package/dist/update-DMPDLMMV.js.map +0 -1
  938. package/dist/update-TUS4PJIG.js +0 -190
  939. package/dist/update-TUS4PJIG.js.map +0 -1
  940. package/dist/update-Z66LMXNS.js +0 -153
  941. package/dist/update-Z66LMXNS.js.map +0 -1
  942. package/dist/upload-7KQYZ7T7.js +0 -127
  943. package/dist/upload-7KQYZ7T7.js.map +0 -1
  944. package/dist/url-options-IHL4OU4C.js +0 -130
  945. package/dist/url-options-IHL4OU4C.js.map +0 -1
  946. package/dist/url-params-SDA2MWB5.js +0 -99
  947. package/dist/url-params-SDA2MWB5.js.map +0 -1
  948. package/dist/validate-ZABZNCSB.js +0 -120
  949. package/dist/validate-ZABZNCSB.js.map +0 -1
  950. package/dist/videos-BKVCCKIH.js +0 -41
  951. package/dist/viewer-check-B5O7ZY3Q.js +0 -81
  952. package/dist/web-KN3BTVG4.js +0 -141
  953. package/dist/web-KN3BTVG4.js.map +0 -1
  954. package/dist/winning-ads-JIDPISKM.js +0 -86
  955. package/dist/write-commands-K6M3RTVK.js +0 -1170
  956. package/dist/write-commands-K6M3RTVK.js.map +0 -1
  957. package/dist/write-commands-RVHLLLDR.js +0 -1498
  958. package/dist/write-commands-RVHLLLDR.js.map +0 -1
  959. package/dist/x-NLGWZCGX.js +0 -47
  960. /package/dist/{account-assets-O7IA37RE.js.map → account-assets-J5Z4URLQ.js.map} +0 -0
  961. /package/dist/{account-reads-SNOWDHHF.js.map → account-reads-2MSUVG46.js.map} +0 -0
  962. /package/dist/{actions-Y4SULW2E.js.map → actions-D7OWCP36.js.map} +0 -0
  963. /package/dist/{ads-2TVWICGM.js.map → ads-HLUJB5SQ.js.map} +0 -0
  964. /package/dist/{ads-KBE5JXCH.js.map → ads-MAOI7S6V.js.map} +0 -0
  965. /package/dist/{adsets-YWBJFPAZ.js.map → adsets-QRKICEFD.js.map} +0 -0
  966. /package/dist/{asset-writes-72DEVXGO.js.map → asset-writes-JLVUAVUZ.js.map} +0 -0
  967. /package/dist/{audiences-QAH42HIM.js.map → audiences-CDDI5HR5.js.map} +0 -0
  968. /package/dist/{avatars-P4UPNZM4.js.map → avatars-WZ2JDMHH.js.map} +0 -0
  969. /package/dist/{brand-HALQWZWB.js.map → brand-IZTTBZII.js.map} +0 -0
  970. /package/dist/{campaigns-YMM5TQVO.js.map → campaigns-4Y3JQC2U.js.map} +0 -0
  971. /package/dist/{campaigns-XZOQ2VTK.js.map → campaigns-HES5MDUG.js.map} +0 -0
  972. /package/dist/{canvas-IJS7H3VE.js.map → canvas-IQ753Q2O.js.map} +0 -0
  973. /package/dist/{changes-36C754R4.js.map → changes-VWKTM27U.js.map} +0 -0
  974. /package/dist/{chatgpt-3WFOPURY.js.map → chatgpt-OPOD2WHB.js.map} +0 -0
  975. /package/dist/{chunk-DUR7PEJI.js.map → chunk-2GYCWRF3.js.map} +0 -0
  976. /package/dist/{chunk-QBRPM3DQ.js.map → chunk-2L7F7KR4.js.map} +0 -0
  977. /package/dist/{chunk-4GAEB6NK.js.map → chunk-44ZRCSR7.js.map} +0 -0
  978. /package/dist/{chunk-2TOIY2WN.js.map → chunk-46YLDIQG.js.map} +0 -0
  979. /package/dist/{chunk-R53XMPDO.js.map → chunk-4EDWXZ3I.js.map} +0 -0
  980. /package/dist/{chunk-H4NNQGG6.js.map → chunk-4FFBGR5L.js.map} +0 -0
  981. /package/dist/{chunk-XGPU2VDU.js.map → chunk-4UQRXKYJ.js.map} +0 -0
  982. /package/dist/{chunk-N7M2TWR5.js.map → chunk-4UZUUSVL.js.map} +0 -0
  983. /package/dist/{chunk-I47BEKYK.js.map → chunk-4XHCEYHI.js.map} +0 -0
  984. /package/dist/{chunk-SCL7PM6P.js.map → chunk-4Z6PVR3M.js.map} +0 -0
  985. /package/dist/{chunk-ZEC46NWW.js.map → chunk-5Y5FZV2W.js.map} +0 -0
  986. /package/dist/{chunk-G5Y7OIPL.js.map → chunk-6HJXLGDV.js.map} +0 -0
  987. /package/dist/{chunk-QW6HL7D6.js.map → chunk-6S5CWGDA.js.map} +0 -0
  988. /package/dist/{chunk-5RVQK3SP.js.map → chunk-6VYROVWO.js.map} +0 -0
  989. /package/dist/{chunk-TVAIOC77.js.map → chunk-7BUIOP36.js.map} +0 -0
  990. /package/dist/{chunk-NDFS3APP.js.map → chunk-AQRXXC6E.js.map} +0 -0
  991. /package/dist/{chunk-ZFC562TP.js.map → chunk-ARBXT73X.js.map} +0 -0
  992. /package/dist/{chunk-KQTNUDKD.js.map → chunk-BEZHQIEI.js.map} +0 -0
  993. /package/dist/{chunk-5SRUAGTG.js.map → chunk-BFURWHVR.js.map} +0 -0
  994. /package/dist/{chunk-KBRJSPIM.js.map → chunk-DSCEXBDR.js.map} +0 -0
  995. /package/dist/{chunk-Z7YMSHRZ.js.map → chunk-FLWDFPXE.js.map} +0 -0
  996. /package/dist/{chunk-GACSA5A6.js.map → chunk-FRNBRN2C.js.map} +0 -0
  997. /package/dist/{chunk-C7QQQVBS.js.map → chunk-GE3VT3CA.js.map} +0 -0
  998. /package/dist/{chunk-P6BKKUSX.js.map → chunk-HGBJQGO5.js.map} +0 -0
  999. /package/dist/{chunk-MGYC2IRC.js.map → chunk-I7AYMJZA.js.map} +0 -0
  1000. /package/dist/{chunk-BRLZX3VP.js.map → chunk-IRM273C7.js.map} +0 -0
  1001. /package/dist/{chunk-AYPBARKP.js.map → chunk-IWKD56AY.js.map} +0 -0
  1002. /package/dist/{chunk-MZCTX37B.js.map → chunk-JLAQWMVF.js.map} +0 -0
  1003. /package/dist/{chunk-AQOFQNKQ.js.map → chunk-K6NULQN7.js.map} +0 -0
  1004. /package/dist/{chunk-GMHCHHAA.js.map → chunk-L2BRAC2J.js.map} +0 -0
  1005. /package/dist/{chunk-SVBJ56T7.js.map → chunk-LGMI4LSY.js.map} +0 -0
  1006. /package/dist/{chunk-OJGYYH6K.js.map → chunk-NB2FU6EZ.js.map} +0 -0
  1007. /package/dist/{chunk-TVTSA4EN.js.map → chunk-NWF2LRKO.js.map} +0 -0
  1008. /package/dist/{chunk-6Z7Y4KQB.js.map → chunk-OG47L5GG.js.map} +0 -0
  1009. /package/dist/{chunk-AIRD6T4W.js.map → chunk-OR6KVLI5.js.map} +0 -0
  1010. /package/dist/{chunk-OBJCNGZL.js.map → chunk-QDQZ62FL.js.map} +0 -0
  1011. /package/dist/{chunk-FPWQA7TK.js.map → chunk-QIOFOD4K.js.map} +0 -0
  1012. /package/dist/{chunk-XQXZJ5IR.js.map → chunk-R2SYF5FC.js.map} +0 -0
  1013. /package/dist/{chunk-YMF2RG4Z.js.map → chunk-RTH2I55B.js.map} +0 -0
  1014. /package/dist/{chunk-FFFJBNHA.js.map → chunk-S6VFDNSQ.js.map} +0 -0
  1015. /package/dist/{chunk-ZNRGH4NS.js.map → chunk-SG2TDQEE.js.map} +0 -0
  1016. /package/dist/{chunk-RFIUOQLN.js.map → chunk-T3P6O2VU.js.map} +0 -0
  1017. /package/dist/{chunk-BTJSGJNQ.js.map → chunk-TXDE2QJ3.js.map} +0 -0
  1018. /package/dist/{chunk-HSQRITKG.js.map → chunk-UDIEKCIR.js.map} +0 -0
  1019. /package/dist/{chunk-MBSFEVOG.js.map → chunk-USCADMM3.js.map} +0 -0
  1020. /package/dist/{chunk-SM7G7RUA.js.map → chunk-UUGISMNE.js.map} +0 -0
  1021. /package/dist/{chunk-Z2DRGXBB.js.map → chunk-VDPOCAQ2.js.map} +0 -0
  1022. /package/dist/{chunk-PLAOK4AK.js.map → chunk-VEJ3QX6M.js.map} +0 -0
  1023. /package/dist/{chunk-ARUXGKZO.js.map → chunk-VFJB7OG6.js.map} +0 -0
  1024. /package/dist/{chunk-RVEY7BTT.js.map → chunk-VRIPVLE7.js.map} +0 -0
  1025. /package/dist/{chunk-5XTGG4PV.js.map → chunk-WFY7KSHB.js.map} +0 -0
  1026. /package/dist/{chunk-D3KLDIPQ.js.map → chunk-WLESMH4J.js.map} +0 -0
  1027. /package/dist/{chunk-PLBITHV6.js.map → chunk-XHQYFNNK.js.map} +0 -0
  1028. /package/dist/{chunk-QMDMTZAW.js.map → chunk-YILZR3XI.js.map} +0 -0
  1029. /package/dist/{chunk-W574NV67.js.map → chunk-YJFLXOH4.js.map} +0 -0
  1030. /package/dist/{chunk-MUXKYSTI.js.map → chunk-YWHZYR6S.js.map} +0 -0
  1031. /package/dist/{connect-PP6Z3F7Y.js.map → connect-3YY7MF3I.js.map} +0 -0
  1032. /package/dist/{conversion-upload-command-KTYAY7IG.js.map → conversion-upload-command-7RSZ5ZQU.js.map} +0 -0
  1033. /package/dist/{creatives-UJDPD4CI.js.map → creatives-2DR3QHJW.js.map} +0 -0
  1034. /package/dist/{creatives-JPKA2RHU.js.map → creatives-BB6S2OF6.js.map} +0 -0
  1035. /package/dist/{currency-R4ORE2U3.js.map → currency-X7Y6TSLF.js.map} +0 -0
  1036. /package/dist/{custom-conversions-5HJBB5XL.js.map → custom-conversions-HAGG72LF.js.map} +0 -0
  1037. /package/dist/{customers-7J3QGSOJ.js.map → customers-663K2OCP.js.map} +0 -0
  1038. /package/dist/{discover-GSJRZUOC.js.map → discover-6DORQWXY.js.map} +0 -0
  1039. /package/dist/{draft-WYDMLNYA.js.map → draft-R6EKORNS.js.map} +0 -0
  1040. /package/dist/{fit-N7WDGWYZ.js.map → fit-BEFCY2B4.js.map} +0 -0
  1041. /package/dist/{fonts-TTUAP7HS.js.map → fonts-C6XN5667.js.map} +0 -0
  1042. /package/dist/{forecast-4AG5F7YC.js.map → forecast-BTPIXEQ5.js.map} +0 -0
  1043. /package/dist/{google-NAA4BASO.js.map → google-M6BJ22UL.js.map} +0 -0
  1044. /package/dist/{ideas-SUXKKZC7.js.map → ideas-M66FU45H.js.map} +0 -0
  1045. /package/dist/{images-VKVZ3DWG.js.map → images-MM5OPUKV.js.map} +0 -0
  1046. /package/dist/{ingest-BBBFT6FZ.js.map → ingest-KMLYCFF4.js.map} +0 -0
  1047. /package/dist/{intent-NSHW7EJT.js.map → intent-YCQCUCV3.js.map} +0 -0
  1048. /package/dist/{keyword-gap-ITTWKBWZ.js.map → keyword-gap-PUSF7EKY.js.map} +0 -0
  1049. /package/dist/{landing-KZ4OSHHR.js.map → landing-OZU5RRFV.js.map} +0 -0
  1050. /package/dist/{languages-MEFQQBJ2.js.map → languages-SLFV73GE.js.map} +0 -0
  1051. /package/dist/{line-items-G5YJG25N.js.map → line-items-NJMEPEF5.js.map} +0 -0
  1052. /package/dist/{locations-RLWAS6AC.js.map → locations-T2OMP6QN.js.map} +0 -0
  1053. /package/dist/{lookup-ZJIP2M4X.js.map → lookup-S5VG7AWH.js.map} +0 -0
  1054. /package/dist/{media-ZWN7E777.js.map → media-P4T4ZBNS.js.map} +0 -0
  1055. /package/dist/{media-sources-GKSEDSE3.js.map → media-sources-EQI3U4TC.js.map} +0 -0
  1056. /package/dist/{meta-EHKXH257.js.map → meta-IPLWNYC7.js.map} +0 -0
  1057. /package/dist/{metrics-K6FDCMK7.js.map → metrics-4YVJHYRI.js.map} +0 -0
  1058. /package/dist/{performance-6TPJGM6A.js.map → performance-NIF3CESZ.js.map} +0 -0
  1059. /package/dist/{promoted-tweets-7P4TSQU7.js.map → promoted-tweets-RJT53DRM.js.map} +0 -0
  1060. /package/dist/{query-QM7MBQD7.js.map → query-XZMDGRO5.js.map} +0 -0
  1061. /package/dist/{reddit-SN5CESF4.js.map → reddit-JIHMAKAQ.js.map} +0 -0
  1062. /package/dist/{relevant-pages-VOICMQ7U.js.map → relevant-pages-FS7GBVXK.js.map} +0 -0
  1063. /package/dist/{research-QU63CJB5.js.map → research-PNBACCCP.js.map} +0 -0
  1064. /package/dist/{rules-KTJ2ZZ62.js.map → rules-ZVS2MWED.js.map} +0 -0
  1065. /package/dist/{run-2DLA6YO4.js.map → run-QCNRR3CA.js.map} +0 -0
  1066. /package/dist/{scheduled-agents-FRBF4EOK.js.map → scheduled-agents-OXYAVSIE.js.map} +0 -0
  1067. /package/dist/{sources-77WLFY4Y.js.map → sources-FLUGHSVP.js.map} +0 -0
  1068. /package/dist/{studies-ZOEUY6YP.js.map → studies-EPO2AM4M.js.map} +0 -0
  1069. /package/dist/{sync-definition-K4XOAG2B.js.map → sync-definition-OGQ5XTQE.js.map} +0 -0
  1070. /package/dist/{tags-ETOOYQ57.js.map → tags-CZTRQNXV.js.map} +0 -0
  1071. /package/dist/{targeting-criteria-L4DYIJZI.js.map → targeting-criteria-AQYXVSGN.js.map} +0 -0
  1072. /package/dist/{testimonials-65N7IYN7.js.map → testimonials-G3OCNPBY.js.map} +0 -0
  1073. /package/dist/{themes-B4LCQUXB.js.map → themes-FEVYZZCW.js.map} +0 -0
  1074. /package/dist/{videos-BKVCCKIH.js.map → videos-36AXDUGZ.js.map} +0 -0
  1075. /package/dist/{viewer-check-B5O7ZY3Q.js.map → viewer-check-6HL4OUQY.js.map} +0 -0
  1076. /package/dist/{winning-ads-JIDPISKM.js.map → winning-ads-GMM5W2O4.js.map} +0 -0
  1077. /package/dist/{x-NLGWZCGX.js.map → x-HGFAL3NY.js.map} +0 -0
@@ -0,0 +1,349 @@
1
+ import {
2
+ ConversionArgsError,
3
+ onlyOnce
4
+ } from "./chunk-NB2FU6EZ.js";
5
+ import {
6
+ SEND_PLATFORMS,
7
+ isSendPlatform,
8
+ sendEventProblem,
9
+ sendsRequestSchema
10
+ } from "./chunk-JOE42ZW6.js";
11
+ import "./chunk-NKQWDEB7.js";
12
+ import {
13
+ writeJsonEnvelope
14
+ } from "./chunk-ZRP7Y2DM.js";
15
+ import "./chunk-G4FG5EQO.js";
16
+ import {
17
+ ApiError,
18
+ apiPost
19
+ } from "./chunk-X7VQFLHI.js";
20
+ import "./chunk-LU4HI4KI.js";
21
+ import "./chunk-LGK7UWBN.js";
22
+ import {
23
+ registerSchema
24
+ } from "./chunk-Q7US4OOA.js";
25
+ import "./chunk-YQSBHWOI.js";
26
+
27
+ // src/commands/analytics/sends.ts
28
+ import { defineCommand } from "citty";
29
+ var SET_FLAGS = ["--source-event", "--platform", "--tag", "--event"];
30
+ function parseSendsArgs(raw, argv, now = Date.now()) {
31
+ const set = parseSetFlags(raw, argv, now);
32
+ const remove = onlyOnce(raw.remove, "--remove", argv);
33
+ const days = raw.days === void 0 ? void 0 : Number(raw.days);
34
+ if (days !== void 0 && (!Number.isInteger(days) || days <= 0 || days > 400)) {
35
+ throw new ConversionArgsError("--days must be a whole number of days, from 1 to 400.");
36
+ }
37
+ const uploads = parseUploadsFlags(raw, argv);
38
+ return {
39
+ ...set === void 0 ? {} : { set },
40
+ ...remove === void 0 ? {} : { remove },
41
+ ...days === void 0 ? {} : { days },
42
+ ...uploads,
43
+ ...raw.history === true ? { history: true } : {},
44
+ full: raw.full === true
45
+ };
46
+ }
47
+ function parseUploadsFlags(raw, argv) {
48
+ const uploads = onlyOnce(raw.uploads, "--uploads", argv);
49
+ if (raw.uploads !== void 0 && uploads === void 0) {
50
+ throw new ConversionArgsError(
51
+ "--uploads takes the id of a live send (`sends[].id`); read them first with `baker analytics sends`."
52
+ );
53
+ }
54
+ if (raw.failed === true && uploads === void 0) {
55
+ throw new ConversionArgsError("--failed narrows --uploads <sendId> to the refused ones; name the send.");
56
+ }
57
+ if (raw.skipped === true && uploads === void 0) {
58
+ throw new ConversionArgsError(
59
+ "--skipped narrows --uploads <sendId> to the events it never uploaded; name the send."
60
+ );
61
+ }
62
+ return {
63
+ ...uploads === void 0 ? {} : { uploads },
64
+ ...raw.failed === true ? { failedOnly: true } : {},
65
+ ...raw.skipped === true ? { skippedOnly: true } : {}
66
+ };
67
+ }
68
+ function flagValueAt(argv, flag, index) {
69
+ const arg = argv[index] ?? "";
70
+ if (arg === flag) return argv[index + 1];
71
+ return arg.startsWith(`${flag}=`) ? arg.slice(flag.length + 1) : void 0;
72
+ }
73
+ function parseParameterArgs(argv) {
74
+ const parameters = {};
75
+ for (let index = 0; index < argv.length; index += 1) {
76
+ const pair = flagValueAt(argv, "--parameter", index);
77
+ if (pair === void 0) continue;
78
+ const eq = pair.indexOf("=");
79
+ const name = (eq === -1 ? pair : pair.slice(0, eq)).trim();
80
+ const template = eq === -1 ? "" : pair.slice(eq + 1).trim();
81
+ if (name === "" || template === "") {
82
+ throw new ConversionArgsError(
83
+ `--parameter needs <name>=<template>, like --parameter content_name={{properties.plan}}; got "${pair}".`
84
+ );
85
+ }
86
+ parameters[name] = template;
87
+ }
88
+ return Object.keys(parameters).length === 0 ? void 0 : parameters;
89
+ }
90
+ function parseSetFlags(raw, argv, now) {
91
+ if (raw.conversion !== void 0) {
92
+ throw new ConversionArgsError(
93
+ "--conversion is gone: a send is on a system's EVENT, not a conversion. Pass --source-event <key> \u2014 one of events[].eventKey from a plain `baker analytics sends` (page:<name>)."
94
+ );
95
+ }
96
+ const values = {
97
+ "--source-event": onlyOnce(raw["source-event"] ?? raw.sourceEvent, "--source-event", argv),
98
+ "--platform": onlyOnce(raw.platform, "--platform", argv),
99
+ "--tag": onlyOnce(raw.tag, "--tag", argv),
100
+ "--event": onlyOnce(raw.event, "--event", argv)
101
+ };
102
+ const given = SET_FLAGS.filter((flag) => values[flag] !== void 0);
103
+ const set = raw.set === true;
104
+ if (!set) {
105
+ if (given.length > 0) {
106
+ throw new ConversionArgsError(
107
+ `${given.join(", ")} describe a send, so add --set to stage it. Without --set the command only reads.`
108
+ );
109
+ }
110
+ return void 0;
111
+ }
112
+ const missing = SET_FLAGS.filter((flag) => values[flag] === void 0);
113
+ if (missing.length > 0) {
114
+ throw new ConversionArgsError(
115
+ `--set needs ${SET_FLAGS.join(", ")}; missing ${missing.join(", ")}. Copy --tag from platforms[].tags of a plain \`baker analytics sends\`, never from memory.`
116
+ );
117
+ }
118
+ const platform = values["--platform"] ?? "";
119
+ if (!isSendPlatform(platform)) {
120
+ throw new ConversionArgsError(
121
+ `"${platform}" is not somewhere a conversion can be sent \u2014 --platform is one of ${SEND_PLATFORMS.join(", ")}.`
122
+ );
123
+ }
124
+ const event = values["--event"] ?? "";
125
+ const templated = sendEventProblem(platform, event);
126
+ if (templated !== null) {
127
+ throw new ConversionArgsError(`--event ${event} cannot be sent to ${platform}. ${templated}`);
128
+ }
129
+ const account = onlyOnce(raw.account, "--account", argv);
130
+ const parameters = parseParameterArgs(argv);
131
+ return {
132
+ id: onlyOnce(raw.id, "--id", argv) ?? sendIdFor(now),
133
+ eventKey: values["--source-event"] ?? "",
134
+ ...originFlag(raw, argv),
135
+ platform,
136
+ tagId: values["--tag"] ?? "",
137
+ event,
138
+ ...account === void 0 ? {} : { account },
139
+ ...parameters === void 0 ? {} : { parameters }
140
+ };
141
+ }
142
+ function originFlag(raw, argv) {
143
+ const from = onlyOnce(raw.from, "--from", argv) ?? "any";
144
+ if (from === "any") return { origin: "any" };
145
+ if (from === "api") return {};
146
+ if (from === "pixel") return { origin: "website" };
147
+ throw new ConversionArgsError(
148
+ `--from is any, pixel or api; got "${from}". any \u2014 the default \u2014 uploads the event whichever door it arrives by, once when the pixel and the API both report it with the same event id; pixel only what Baker's pixel sent from the client's website; api only what the API or an integration sent.`
149
+ );
150
+ }
151
+ function sendIdFor(now) {
152
+ return `s${now.toString(36).slice(-5)}`;
153
+ }
154
+ function sendsWrite(args2) {
155
+ const body = {
156
+ ...args2.set === void 0 ? {} : { set: [args2.set] },
157
+ ...args2.remove === void 0 ? {} : { remove: [args2.remove] },
158
+ ...args2.days === void 0 ? {} : { days: args2.days },
159
+ ...args2.uploads === void 0 ? {} : { uploads: args2.uploads },
160
+ ...args2.failedOnly === void 0 ? {} : { failedOnly: args2.failedOnly },
161
+ ...args2.skippedOnly === void 0 ? {} : { skippedOnly: args2.skippedOnly },
162
+ ...args2.history === void 0 ? {} : { history: args2.history }
163
+ };
164
+ const parsed = sendsRequestSchema.safeParse(body);
165
+ if (!parsed.success) {
166
+ const issue = parsed.error.issues[0];
167
+ throw new ConversionArgsError(
168
+ `That send cannot be staged \u2014 ${issue?.path.join(".") || "set"}: ${issue?.message ?? "invalid"}. Run \`baker schema analytics.sends\` for the exact shape.`
169
+ );
170
+ }
171
+ return parsed.data;
172
+ }
173
+ function sendsView(response, full) {
174
+ const { carries, templateFields, history, ...rest } = response.data;
175
+ return {
176
+ ok: true,
177
+ data: {
178
+ ...rest,
179
+ ...history === void 0 ? {} : { history: history.map((row) => historyView(row, full)) },
180
+ ...full ? { carries, templateFields } : {}
181
+ },
182
+ ...response.hints && response.hints.length > 0 ? { hints: response.hints } : {}
183
+ };
184
+ }
185
+ function historyView(row, full) {
186
+ const at = (ms) => new Date(ms).toISOString();
187
+ const removed = row.integrationRemovedAt;
188
+ if (full) {
189
+ return {
190
+ sendId: row.sendId,
191
+ createdAt: at(row.createdAt),
192
+ ...removed === void 0 ? {} : { integrationRemovedAt: at(removed) }
193
+ };
194
+ }
195
+ return {
196
+ sendId: row.sendId,
197
+ setUpOn: at(row.createdAt).slice(0, 10),
198
+ ...removed === void 0 ? {} : { integrationRemovedOn: at(removed).slice(0, 10) }
199
+ };
200
+ }
201
+ var args = {
202
+ set: {
203
+ type: "boolean",
204
+ description: "Stage a send, described by --source-event, --platform, --tag and --event. It applies when this chat is published, and from then on every event arriving under that key is uploaded to the platform and spends ad budget \u2014 say so to the client, never that it is a preview",
205
+ required: false
206
+ },
207
+ "source-event": {
208
+ type: "string",
209
+ description: "The event to send, by key \u2014 one of `events[].eventKey` from a plain `baker analytics sends`: a Source's own event (page:<source name>), or a named event the client's server posts. A Form's or a page's event is refused: the page's own pixels and the Form's side effects already send those",
210
+ required: false
211
+ },
212
+ from: {
213
+ type: "string",
214
+ description: "Which door's events the send uploads: `any` (default) \u2014 the event whichever door it arrives by, uploaded once when the pixel and the API both report it with the same event id; `pixel` \u2014 only what Baker's pixel sent from the client's own website (an `events[]` row with origin `website`); `api` \u2014 only what the client's server posted or an integration like HubSpot sent",
215
+ required: false
216
+ },
217
+ platform: {
218
+ type: "string",
219
+ description: `Where it goes: one of ${SEND_PLATFORMS.join(", ")}`,
220
+ required: false
221
+ },
222
+ tag: {
223
+ type: "string",
224
+ description: "The tag on Tracking that sends it. COPY the id from `platforms[].tags[].tagId` in the response \u2014 it is only listed there when the tag holds its server credential, and one typed from memory is refused",
225
+ required: false
226
+ },
227
+ event: {
228
+ type: "string",
229
+ description: 'What the platform calls it \u2014 `platforms[].eventMeans` says what each one takes: a Meta or Google Analytics event name (Purchase, Lead, generate_lead), a Google Ads conversion action id copied from `platforms[].conversionActions`, or the conversion label the person gives you (staged as its id; never type an id: one the account does not hold is refused), a LinkedIn conversion rule id, an X event tag id. On Meta and Google Analytics it may be WRITTEN FROM THE EVENT with the same {{path}} mentions --parameter takes: --event {{properties.plan}} sends each event under the plan it carries, --event "Purchase {{properties.tier}}" mixes text and a field. An event carrying nothing there is not uploaded. Google Ads, LinkedIn and X take an id THEY issued, so a template is refused there \u2014 pass what varies as a --parameter instead. For a GOOGLE ADS id, list the account\'s conversion actions first and pick by name \u2014 `baker ads google query "SELECT conversion_action.id, conversion_action.name, conversion_action.primary_for_goal FROM conversion_action WHERE conversion_action.status = \'ENABLED\'"` \u2014 never guess: Google accepts an upload against an id the account does not hold and files it against nothing',
230
+ required: false
231
+ },
232
+ account: {
233
+ type: "string",
234
+ description: "LinkedIn only: the ad account the conversion rule belongs to",
235
+ required: false
236
+ },
237
+ parameter: {
238
+ type: "string",
239
+ description: "<name>=<template>, repeatable, with --set: an EXTRA parameter the platform receives with every upload, beyond who, the click and the amount \u2014 Meta's custom_data (content_name, content_category, or your own), a GA4 event parameter, a Google Ads custom variable (must exist in the account), X's contents (content_name, num_items\u2026); LinkedIn takes none. The template is text with {{path}} mentions over the event: its own properties as {{properties.<key>}} (a HubSpot event's --field properties.<key> rows, a server event's `properties`), and the fields `templateFields` lists (--full): value, value_currency, event_name, page_path, city, country, gclid\u2026 Example: --parameter content_name={{properties.plan}} --parameter content_category=hubspot. `parameters[]` in the response says what each platform takes",
240
+ required: false
241
+ },
242
+ uploads: {
243
+ type: "string",
244
+ description: "The id of a send (`sends[].id`) whose uploads to list, newest first over --days: which event went, when, `outcome` (success | failed | pending | skipped) and in `error` the platform's refusal in its own words or what a skipped event was missing \u2014 the rows behind `sends[].outcome`. With --failed, only the refused ones; with --skipped, only the skipped ones",
245
+ required: false
246
+ },
247
+ failed: {
248
+ type: "boolean",
249
+ description: "With --uploads: only the uploads the platform refused",
250
+ required: false
251
+ },
252
+ skipped: {
253
+ type: "boolean",
254
+ description: "With --uploads: only the events the send never uploaded because they carried nothing the platform matches a person by \u2014 each `error` names what was missing (a Meta click id or cookie, an email, a gclid\u2026)",
255
+ required: false
256
+ },
257
+ history: {
258
+ type: "boolean",
259
+ description: "Also return `history[]`: the day each live send was set up (`setUpOn`) and, when an integration named after its event was removed since, the day it was (`integrationRemovedOn`) \u2014 read it before removing or explaining a send whose event no longer arrives. --full gives the instants",
260
+ required: false
261
+ },
262
+ id: {
263
+ type: "string",
264
+ description: "The send's id, when changing one that exists (`sends[].id` for a live one, `staged.set[].id` for one staged in this chat, like s1). Left out, a new id is minted and a NEW send is staged \u2014 so re-running a --set you already ran is refused, naming the send it would duplicate",
265
+ required: false
266
+ },
267
+ remove: {
268
+ type: "string",
269
+ description: "The id of a send to stop, from `sends[].id`. Staged like a set: it stops when the chat is published",
270
+ required: false
271
+ },
272
+ days: {
273
+ type: "string",
274
+ description: "How many days the outcome beside each send covers (default 30, up to 400)",
275
+ required: false
276
+ },
277
+ full: {
278
+ type: "boolean",
279
+ description: "Also return `carries` and `templateFields`: every field a send forwards and a template may read, the same for every send; with --history, the exact instants",
280
+ required: false
281
+ }
282
+ };
283
+ registerSchema({
284
+ command: "analytics.sends",
285
+ description: "Read where this company's system events are sent, or stage a change",
286
+ args
287
+ });
288
+ var sendsCommand = defineCommand({
289
+ meta: {
290
+ name: "sends",
291
+ description: `Where this company's SYSTEM EVENTS are sent \u2014 Meta, Google Ads, LinkedIn, X, Google Analytics \u2014 and what happened to each upload. A send belongs to an event one of the client's own systems raises, by key: page:deal_won from HubSpot \u2192 Meta Purchase means every "deal_won" HubSpot reports is uploaded to Meta with who the person is, the click that brought them and the amount forwarded automatically. There is nothing to map. What happens on a page or in a Form is never sent from here \u2014 the page's pixels and the Form's own side effects do that \u2014 and a send is never set on a funnel step: the step reads the sends of the events behind its ways in.
292
+
293
+ Start here:
294
+ baker analytics sends \u2014 the sends in effect, each with its outcome; the platforms and the tags that can send; the system events (events[]) that can be sent
295
+ baker analytics sends --set --source-event page:deal_won --platform meta --tag <tagId> --event Purchase
296
+ baker analytics sends --set --source-event page:deal_won --platform googleAds --tag <tagId> --event 987654321
297
+ baker analytics sends --set --source-event page:deal_won --platform meta --tag <tagId> --event Purchase --parameter content_name={{properties.plan}}
298
+ baker analytics sends --set --source-event page:lead_completed_step_2 --platform meta --tag <tagId> --event Lead \u2014 an event the pixel and/or the API send; uploaded once per event id
299
+ baker analytics sends --set --source-event page:deal_won --platform meta --tag <tagId> --event {{properties.plan}} \u2014 a Meta event named after what each one carries
300
+ baker analytics sends --remove s1 \u2014 stop one
301
+ baker analytics sends --days 7 \u2014 outcomes over the last week
302
+ baker analytics sends --uploads s1 --failed \u2014 the uploads Meta refused, each with the event and Meta's own words
303
+ baker analytics sends --uploads s1 --skipped \u2014 the events never uploaded, each with what the platform needed and they lacked
304
+ baker analytics sends --history \u2014 when each send was set up, and whether the integration its event came from was removed
305
+
306
+ Three things to hold on to:
307
+ it is STAGED \u2014 a set or a remove lands when this chat is published, and from then on it SPENDS AD BUDGET on every "<event>" that arrives. Tell the client that plainly; never call a published send a preview.
308
+ the tagId is COPIED \u2014 from \`platforms[].tags\` in the response, which lists only the tags on Tracking that hold their server credential. One typed from memory is refused; a platform with no tag listed says what to add on Tracking (\`platforms[].setupHint\`).
309
+ the outcome is what happened \u2014 \`sends[].outcome\` counts what was sent, what failed and why (\`lastError\`, in the platform's words), and what was SKIPPED: an event carrying nothing the platform matches a person by is never uploaded (Meta: a Meta click id or cookie, an email or your own customer id; Google Ads: gclid, wbraid, gbraid, an email or a phone; LinkedIn: li_fat_id or an email; X: twclid or an email; Google Analytics: nothing), counted in \`skipped\` with \`lastSkipReason\`.
310
+ check the MATCH before staging \u2014 \`events[].match\` says, for the last 30 days of each event, how many arrived and how many each platform could match. A send to a platform matching 0 of 14 skips all 14: say so to the client, and ask for the click id or the email to be sent with the event instead. "Nothing sent yet" means no event under that name has fired since the send was set. \`--uploads <id>\` lists the rows behind the count, \`--failed\` only the refused ones \u2014 read it before telling a client a send "failed".
311
+ a Meta or GA4 event name can be WRITTEN FROM THE EVENT \u2014 \`--event {{properties.plan}}\` sends each event under its own plan, so one Source covers every value instead of one Source, one send and one conversion action per value. Only where the platform takes a name of your own: Google Ads, LinkedIn and X take an id they issued and refuse a template.
312
+ extra parameters are optional \u2014 \`--parameter <name>=<template>\` adds what the platform receives beyond who, the click and the amount: \`{{properties.<key>}}\` reads a property the event carries (a HubSpot event's \`--field properties.<key>\` rows), \`{{value}}\`, \`{{page_path}}\`, \`{{city}}\`\u2026 read the event's fields. \`parameters[]\` in the response says what each platform takes and the names it knows; LinkedIn takes none.
313
+
314
+ An empty \`events[]\` means none of the client's systems sends an event yet and there is nothing to send: make a Source with \`baker analytics sources\` (a HubSpot event, or the server's address), then send its event.`
315
+ },
316
+ args,
317
+ run: async ({ args: raw }) => {
318
+ try {
319
+ const parsed = parseSendsArgs(raw, process.argv);
320
+ const response = await apiPost("/api/analytics/sends", sendsWrite(parsed));
321
+ writeJsonEnvelope(sendsView(response, parsed.full));
322
+ } catch (err) {
323
+ handleError(err);
324
+ }
325
+ }
326
+ });
327
+ function handleError(err) {
328
+ if (err instanceof ConversionArgsError) {
329
+ writeJsonEnvelope({ ok: false, error: { code: "VALIDATION_ERROR", message: err.message } });
330
+ process.exit(1);
331
+ }
332
+ if (err instanceof ApiError) {
333
+ writeJsonEnvelope({ ok: false, error: { code: err.code, message: err.message } });
334
+ process.exit(1);
335
+ }
336
+ writeJsonEnvelope({
337
+ ok: false,
338
+ error: { code: "NETWORK_ERROR", message: err instanceof Error ? err.message : "Unexpected error" }
339
+ });
340
+ process.exit(1);
341
+ }
342
+ export {
343
+ parseParameterArgs,
344
+ parseSendsArgs,
345
+ sendsCommand,
346
+ sendsView,
347
+ sendsWrite
348
+ };
349
+ //# sourceMappingURL=sends-LAY5C74B.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/analytics/sends.ts"],"sourcesContent":["/**\n * `baker analytics sends` — where this company's system events are sent, and\n * changing it.\n *\n * A send hangs off an event one of the client's own systems raises, by its\n * key: `page:deal_won` from HubSpot → Meta Purchase. Every such event is\n * uploaded to the platform with who the person is, the click that brought\n * them and the amount forwarded automatically. Nothing is mapped. What happens\n * on a page or in a Form is not sendable here: the page's own pixels and the\n * Form's own side effects already send those.\n *\n * A write STAGES: it lands when the chat is published, and from then on it\n * spends ad budget on every event under the key. The dashboard's Sources page\n * applies at once because the person clicking is the review; an agent's\n * proposal gets its review at Publish.\n */\n\nimport {\n isSendPlatform,\n SEND_PLATFORMS,\n type SendsRequest,\n type SendsResponse,\n sendEventProblem,\n sendsRequestSchema,\n} from \"@baker/api/analytics\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiPost } from \"../../client.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { writeJsonEnvelope } from \"../ads/output.ts\";\nimport { ConversionArgsError, onlyOnce } from \"./conversionArgs.ts\";\n\nexport interface SendsArgs {\n set?: {\n id: string;\n eventKey: string;\n platform: string;\n tagId: string;\n event: string;\n account?: string;\n parameters?: Record<string, string>;\n };\n remove?: string;\n days?: number;\n /** One send's uploads, by id, and whether only the refused ones. */\n uploads?: string;\n failedOnly?: boolean;\n /** With `uploads`: only the events it skipped, for want of anything to match. */\n skippedOnly?: boolean;\n /** When each live send was set up, and whether its integration was removed. */\n history?: boolean;\n full: boolean;\n}\n\nconst SET_FLAGS = [\"--source-event\", \"--platform\", \"--tag\", \"--event\"] as const;\n\n/**\n * The flags, checked for the shapes that would otherwise stage the wrong\n * send in silence. Pure, so the refusals are tier-1 tested.\n */\nexport function parseSendsArgs(raw: Record<string, unknown>, argv: readonly string[], now = Date.now()): SendsArgs {\n const set = parseSetFlags(raw, argv, now);\n const remove = onlyOnce(raw.remove, \"--remove\", argv);\n\n const days = raw.days === undefined ? undefined : Number(raw.days);\n if (days !== undefined && (!Number.isInteger(days) || days <= 0 || days > 400)) {\n throw new ConversionArgsError(\"--days must be a whole number of days, from 1 to 400.\");\n }\n\n const uploads = parseUploadsFlags(raw, argv);\n\n return {\n ...(set === undefined ? {} : { set }),\n ...(remove === undefined ? {} : { remove }),\n ...(days === undefined ? {} : { days }),\n ...uploads,\n ...(raw.history === true ? { history: true } : {}),\n full: raw.full === true,\n };\n}\n\n/** `--uploads <sendId>` and its narrowings: a named live send, never an empty one. */\nfunction parseUploadsFlags(\n raw: Record<string, unknown>,\n argv: readonly string[],\n): Pick<SendsArgs, \"uploads\" | \"failedOnly\" | \"skippedOnly\"> {\n const uploads = onlyOnce(raw.uploads, \"--uploads\", argv);\n if (raw.uploads !== undefined && uploads === undefined) {\n throw new ConversionArgsError(\n \"--uploads takes the id of a live send (`sends[].id`); read them first with `baker analytics sends`.\",\n );\n }\n if (raw.failed === true && uploads === undefined) {\n throw new ConversionArgsError(\"--failed narrows --uploads <sendId> to the refused ones; name the send.\");\n }\n if (raw.skipped === true && uploads === undefined) {\n throw new ConversionArgsError(\n \"--skipped narrows --uploads <sendId> to the events it never uploaded; name the send.\",\n );\n }\n return {\n ...(uploads === undefined ? {} : { uploads }),\n ...(raw.failed === true ? { failedOnly: true } : {}),\n ...(raw.skipped === true ? { skippedOnly: true } : {}),\n };\n}\n\n/** The value a repeated flag carries at this position, in either spelling, or nothing. */\nfunction flagValueAt(argv: readonly string[], flag: string, index: number): string | undefined {\n const arg = argv[index] ?? \"\";\n if (arg === flag) return argv[index + 1];\n return arg.startsWith(`${flag}=`) ? arg.slice(flag.length + 1) : undefined;\n}\n\n/**\n * Every `--parameter name=template` on the command line, in order. Read off\n * argv rather than the parsed args because citty keeps only the last value\n * of a repeated flag — the defect that once staged one of three UTMs.\n */\nexport function parseParameterArgs(argv: readonly string[]): Record<string, string> | undefined {\n const parameters: Record<string, string> = {};\n for (let index = 0; index < argv.length; index += 1) {\n const pair = flagValueAt(argv, \"--parameter\", index);\n if (pair === undefined) continue;\n const eq = pair.indexOf(\"=\");\n const name = (eq === -1 ? pair : pair.slice(0, eq)).trim();\n const template = eq === -1 ? \"\" : pair.slice(eq + 1).trim();\n if (name === \"\" || template === \"\") {\n throw new ConversionArgsError(\n `--parameter needs <name>=<template>, like --parameter content_name={{properties.plan}}; got \"${pair}\".`,\n );\n }\n parameters[name] = template;\n }\n return Object.keys(parameters).length === 0 ? undefined : parameters;\n}\n\n/**\n * The send `--set` describes, or nothing on a read.\n *\n * The four flags are only meaningful together and only under `--set`: a send\n * described without it would answer ok and stage nothing, and a `--set` with\n * a piece missing would be refused by the server with the field named but not\n * the flag.\n */\nfunction parseSetFlags(raw: Record<string, unknown>, argv: readonly string[], now: number): SendsArgs[\"set\"] {\n if (raw.conversion !== undefined) {\n throw new ConversionArgsError(\n \"--conversion is gone: a send is on a system's EVENT, not a conversion. Pass --source-event <key> — one of events[].eventKey from a plain `baker analytics sends` (page:<name>).\",\n );\n }\n const values = {\n \"--source-event\": onlyOnce(raw[\"source-event\"] ?? raw.sourceEvent, \"--source-event\", argv),\n \"--platform\": onlyOnce(raw.platform, \"--platform\", argv),\n \"--tag\": onlyOnce(raw.tag, \"--tag\", argv),\n \"--event\": onlyOnce(raw.event, \"--event\", argv),\n };\n const given = SET_FLAGS.filter((flag) => values[flag] !== undefined);\n const set = raw.set === true;\n\n if (!set) {\n if (given.length > 0) {\n throw new ConversionArgsError(\n `${given.join(\", \")} describe a send, so add --set to stage it. Without --set the command only reads.`,\n );\n }\n return undefined;\n }\n\n const missing = SET_FLAGS.filter((flag) => values[flag] === undefined);\n if (missing.length > 0) {\n throw new ConversionArgsError(\n `--set needs ${SET_FLAGS.join(\", \")}; missing ${missing.join(\", \")}. Copy --tag from platforms[].tags of a plain \\`baker analytics sends\\`, never from memory.`,\n );\n }\n const platform = values[\"--platform\"] ?? \"\";\n if (!isSendPlatform(platform)) {\n throw new ConversionArgsError(\n `\"${platform}\" is not somewhere a conversion can be sent — --platform is one of ${SEND_PLATFORMS.join(\", \")}.`,\n );\n }\n\n const event = values[\"--event\"] ?? \"\";\n const templated = sendEventProblem(platform, event);\n if (templated !== null) {\n throw new ConversionArgsError(`--event ${event} cannot be sent to ${platform}. ${templated}`);\n }\n\n const account = onlyOnce(raw.account, \"--account\", argv);\n const parameters = parseParameterArgs(argv);\n return {\n id: onlyOnce(raw.id, \"--id\", argv) ?? sendIdFor(now),\n eventKey: values[\"--source-event\"] ?? \"\",\n ...originFlag(raw, argv),\n platform,\n tagId: values[\"--tag\"] ?? \"\",\n event,\n ...(account === undefined ? {} : { account }),\n ...(parameters === undefined ? {} : { parameters }),\n };\n}\n\n/**\n * Which door's events `--set` uploads, as the send spells it: every door the\n * event arrives by (`origin: \"any\"`, the default — one event, one set of\n * destinations, uploaded once when the pixel and the API both report it under\n * one event id), or only the pixel's (`website`) or only the API's and the\n * integrations' (no field at all).\n */\nfunction originFlag(raw: Record<string, unknown>, argv: readonly string[]): { origin?: \"website\" | \"any\" } {\n const from = onlyOnce(raw.from, \"--from\", argv) ?? \"any\";\n if (from === \"any\") return { origin: \"any\" };\n if (from === \"api\") return {};\n if (from === \"pixel\") return { origin: \"website\" };\n throw new ConversionArgsError(\n `--from is any, pixel or api; got \"${from}\". any — the default — uploads the event whichever door it arrives by, once when the pixel and the API both report it with the same event id; pixel only what Baker's pixel sent from the client's website; api only what the API or an integration sent.`,\n );\n}\n\n/** A short id a person can type, when the caller did not choose one. */\nfunction sendIdFor(now: number): string {\n return `s${now.toString(36).slice(-5)}`;\n}\n\n/**\n * The request body, validated against the shared schema here rather than only\n * on the server, so a malformed send is named before a round trip.\n */\nexport function sendsWrite(args: SendsArgs): SendsRequest {\n const body = {\n ...(args.set === undefined ? {} : { set: [args.set] }),\n ...(args.remove === undefined ? {} : { remove: [args.remove] }),\n ...(args.days === undefined ? {} : { days: args.days }),\n ...(args.uploads === undefined ? {} : { uploads: args.uploads }),\n ...(args.failedOnly === undefined ? {} : { failedOnly: args.failedOnly }),\n ...(args.skippedOnly === undefined ? {} : { skippedOnly: args.skippedOnly }),\n ...(args.history === undefined ? {} : { history: args.history }),\n };\n const parsed = sendsRequestSchema.safeParse(body);\n if (!parsed.success) {\n const issue = parsed.error.issues[0];\n throw new ConversionArgsError(\n `That send cannot be staged — ${issue?.path.join(\".\") || \"set\"}: ${issue?.message ?? \"invalid\"}. Run \\`baker schema analytics.sends\\` for the exact shape.`,\n );\n }\n return parsed.data;\n}\n\n/**\n * What to print. Compact by default: the sends with their outcomes, the\n * platforms with the tags that can send (where a `tagId` is copied from), and\n * the system events that can be sent. `carries` — every field a send forwards\n * — is the same list every time, so it is behind `--full`. A send's history is\n * the day it was set up and the day its integration was removed; the instants\n * are behind `--full`.\n */\nexport function sendsView(response: SendsResponse, full: boolean): Record<string, unknown> {\n const { carries, templateFields, history, ...rest } = response.data;\n return {\n ok: true,\n data: {\n ...rest,\n ...(history === undefined ? {} : { history: history.map((row) => historyView(row, full)) }),\n ...(full ? { carries, templateFields } : {}),\n },\n ...(response.hints && response.hints.length > 0 ? { hints: response.hints } : {}),\n };\n}\n\ntype SendHistoryRow = NonNullable<SendsResponse[\"data\"][\"history\"]>[number];\n\nfunction historyView(row: SendHistoryRow, full: boolean): Record<string, string> {\n const at = (ms: number) => new Date(ms).toISOString();\n const removed = row.integrationRemovedAt;\n if (full) {\n return {\n sendId: row.sendId,\n createdAt: at(row.createdAt),\n ...(removed === undefined ? {} : { integrationRemovedAt: at(removed) }),\n };\n }\n return {\n sendId: row.sendId,\n setUpOn: at(row.createdAt).slice(0, 10),\n ...(removed === undefined ? {} : { integrationRemovedOn: at(removed).slice(0, 10) }),\n };\n}\n\nconst args = {\n set: {\n type: \"boolean\",\n description:\n \"Stage a send, described by --source-event, --platform, --tag and --event. It applies when this chat is published, and from then on every event arriving under that key is uploaded to the platform and spends ad budget — say so to the client, never that it is a preview\",\n required: false,\n },\n \"source-event\": {\n type: \"string\",\n description:\n \"The event to send, by key — one of `events[].eventKey` from a plain `baker analytics sends`: a Source's own event (page:<source name>), or a named event the client's server posts. A Form's or a page's event is refused: the page's own pixels and the Form's side effects already send those\",\n required: false,\n },\n from: {\n type: \"string\",\n description:\n \"Which door's events the send uploads: `any` (default) — the event whichever door it arrives by, uploaded once when the pixel and the API both report it with the same event id; `pixel` — only what Baker's pixel sent from the client's own website (an `events[]` row with origin `website`); `api` — only what the client's server posted or an integration like HubSpot sent\",\n required: false,\n },\n platform: {\n type: \"string\",\n description: `Where it goes: one of ${SEND_PLATFORMS.join(\", \")}`,\n required: false,\n },\n tag: {\n type: \"string\",\n description:\n \"The tag on Tracking that sends it. COPY the id from `platforms[].tags[].tagId` in the response — it is only listed there when the tag holds its server credential, and one typed from memory is refused\",\n required: false,\n },\n event: {\n type: \"string\",\n description:\n 'What the platform calls it — `platforms[].eventMeans` says what each one takes: a Meta or Google Analytics event name (Purchase, Lead, generate_lead), a Google Ads conversion action id copied from `platforms[].conversionActions`, or the conversion label the person gives you (staged as its id; never type an id: one the account does not hold is refused), a LinkedIn conversion rule id, an X event tag id. On Meta and Google Analytics it may be WRITTEN FROM THE EVENT with the same {{path}} mentions --parameter takes: --event {{properties.plan}} sends each event under the plan it carries, --event \"Purchase {{properties.tier}}\" mixes text and a field. An event carrying nothing there is not uploaded. Google Ads, LinkedIn and X take an id THEY issued, so a template is refused there — pass what varies as a --parameter instead. For a GOOGLE ADS id, list the account\\'s conversion actions first and pick by name — `baker ads google query \"SELECT conversion_action.id, conversion_action.name, conversion_action.primary_for_goal FROM conversion_action WHERE conversion_action.status = \\'ENABLED\\'\"` — never guess: Google accepts an upload against an id the account does not hold and files it against nothing',\n required: false,\n },\n account: {\n type: \"string\",\n description: \"LinkedIn only: the ad account the conversion rule belongs to\",\n required: false,\n },\n parameter: {\n type: \"string\",\n description:\n \"<name>=<template>, repeatable, with --set: an EXTRA parameter the platform receives with every upload, beyond who, the click and the amount — Meta's custom_data (content_name, content_category, or your own), a GA4 event parameter, a Google Ads custom variable (must exist in the account), X's contents (content_name, num_items…); LinkedIn takes none. The template is text with {{path}} mentions over the event: its own properties as {{properties.<key>}} (a HubSpot event's --field properties.<key> rows, a server event's `properties`), and the fields `templateFields` lists (--full): value, value_currency, event_name, page_path, city, country, gclid… Example: --parameter content_name={{properties.plan}} --parameter content_category=hubspot. `parameters[]` in the response says what each platform takes\",\n required: false,\n },\n uploads: {\n type: \"string\",\n description:\n \"The id of a send (`sends[].id`) whose uploads to list, newest first over --days: which event went, when, `outcome` (success | failed | pending | skipped) and in `error` the platform's refusal in its own words or what a skipped event was missing — the rows behind `sends[].outcome`. With --failed, only the refused ones; with --skipped, only the skipped ones\",\n required: false,\n },\n failed: {\n type: \"boolean\",\n description: \"With --uploads: only the uploads the platform refused\",\n required: false,\n },\n skipped: {\n type: \"boolean\",\n description:\n \"With --uploads: only the events the send never uploaded because they carried nothing the platform matches a person by — each `error` names what was missing (a Meta click id or cookie, an email, a gclid…)\",\n required: false,\n },\n history: {\n type: \"boolean\",\n description:\n \"Also return `history[]`: the day each live send was set up (`setUpOn`) and, when an integration named after its event was removed since, the day it was (`integrationRemovedOn`) — read it before removing or explaining a send whose event no longer arrives. --full gives the instants\",\n required: false,\n },\n id: {\n type: \"string\",\n description:\n \"The send's id, when changing one that exists (`sends[].id` for a live one, `staged.set[].id` for one staged in this chat, like s1). Left out, a new id is minted and a NEW send is staged — so re-running a --set you already ran is refused, naming the send it would duplicate\",\n required: false,\n },\n remove: {\n type: \"string\",\n description: \"The id of a send to stop, from `sends[].id`. Staged like a set: it stops when the chat is published\",\n required: false,\n },\n days: {\n type: \"string\",\n description: \"How many days the outcome beside each send covers (default 30, up to 400)\",\n required: false,\n },\n full: {\n type: \"boolean\",\n description:\n \"Also return `carries` and `templateFields`: every field a send forwards and a template may read, the same for every send; with --history, the exact instants\",\n required: false,\n },\n} as const;\n\nregisterSchema({\n command: \"analytics.sends\",\n description: \"Read where this company's system events are sent, or stage a change\",\n args,\n});\n\nexport const sendsCommand = defineCommand({\n meta: {\n name: \"sends\",\n description: `Where this company's SYSTEM EVENTS are sent — Meta, Google Ads, LinkedIn, X, Google Analytics — and what happened to each upload. A send belongs to an event one of the client's own systems raises, by key: page:deal_won from HubSpot → Meta Purchase means every \"deal_won\" HubSpot reports is uploaded to Meta with who the person is, the click that brought them and the amount forwarded automatically. There is nothing to map. What happens on a page or in a Form is never sent from here — the page's pixels and the Form's own side effects do that — and a send is never set on a funnel step: the step reads the sends of the events behind its ways in.\n\nStart here:\n baker analytics sends — the sends in effect, each with its outcome; the platforms and the tags that can send; the system events (events[]) that can be sent\n baker analytics sends --set --source-event page:deal_won --platform meta --tag <tagId> --event Purchase\n baker analytics sends --set --source-event page:deal_won --platform googleAds --tag <tagId> --event 987654321\n baker analytics sends --set --source-event page:deal_won --platform meta --tag <tagId> --event Purchase --parameter content_name={{properties.plan}}\n baker analytics sends --set --source-event page:lead_completed_step_2 --platform meta --tag <tagId> --event Lead — an event the pixel and/or the API send; uploaded once per event id\n baker analytics sends --set --source-event page:deal_won --platform meta --tag <tagId> --event {{properties.plan}} — a Meta event named after what each one carries\n baker analytics sends --remove s1 — stop one\n baker analytics sends --days 7 — outcomes over the last week\n baker analytics sends --uploads s1 --failed — the uploads Meta refused, each with the event and Meta's own words\n baker analytics sends --uploads s1 --skipped — the events never uploaded, each with what the platform needed and they lacked\n baker analytics sends --history — when each send was set up, and whether the integration its event came from was removed\n\nThree things to hold on to:\n it is STAGED — a set or a remove lands when this chat is published, and from then on it SPENDS AD BUDGET on every \"<event>\" that arrives. Tell the client that plainly; never call a published send a preview.\n the tagId is COPIED — from \\`platforms[].tags\\` in the response, which lists only the tags on Tracking that hold their server credential. One typed from memory is refused; a platform with no tag listed says what to add on Tracking (\\`platforms[].setupHint\\`).\n the outcome is what happened — \\`sends[].outcome\\` counts what was sent, what failed and why (\\`lastError\\`, in the platform's words), and what was SKIPPED: an event carrying nothing the platform matches a person by is never uploaded (Meta: a Meta click id or cookie, an email or your own customer id; Google Ads: gclid, wbraid, gbraid, an email or a phone; LinkedIn: li_fat_id or an email; X: twclid or an email; Google Analytics: nothing), counted in \\`skipped\\` with \\`lastSkipReason\\`.\n check the MATCH before staging — \\`events[].match\\` says, for the last 30 days of each event, how many arrived and how many each platform could match. A send to a platform matching 0 of 14 skips all 14: say so to the client, and ask for the click id or the email to be sent with the event instead. \"Nothing sent yet\" means no event under that name has fired since the send was set. \\`--uploads <id>\\` lists the rows behind the count, \\`--failed\\` only the refused ones — read it before telling a client a send \"failed\".\n a Meta or GA4 event name can be WRITTEN FROM THE EVENT — \\`--event {{properties.plan}}\\` sends each event under its own plan, so one Source covers every value instead of one Source, one send and one conversion action per value. Only where the platform takes a name of your own: Google Ads, LinkedIn and X take an id they issued and refuse a template.\n extra parameters are optional — \\`--parameter <name>=<template>\\` adds what the platform receives beyond who, the click and the amount: \\`{{properties.<key>}}\\` reads a property the event carries (a HubSpot event's \\`--field properties.<key>\\` rows), \\`{{value}}\\`, \\`{{page_path}}\\`, \\`{{city}}\\`… read the event's fields. \\`parameters[]\\` in the response says what each platform takes and the names it knows; LinkedIn takes none.\n\nAn empty \\`events[]\\` means none of the client's systems sends an event yet and there is nothing to send: make a Source with \\`baker analytics sources\\` (a HubSpot event, or the server's address), then send its event.`,\n },\n args,\n run: async ({ args: raw }) => {\n try {\n const parsed = parseSendsArgs(raw as Record<string, unknown>, process.argv);\n const response = await apiPost<SendsResponse>(\"/api/analytics/sends\", sendsWrite(parsed));\n writeJsonEnvelope(sendsView(response, parsed.full));\n } catch (err) {\n handleError(err);\n }\n },\n});\n\nfunction handleError(err: unknown): never {\n if (err instanceof ConversionArgsError) {\n writeJsonEnvelope({ ok: false, error: { code: \"VALIDATION_ERROR\", message: err.message } });\n process.exit(1);\n }\n if (err instanceof ApiError) {\n writeJsonEnvelope({ ok: false, error: { code: err.code, message: err.message } });\n process.exit(1);\n }\n writeJsonEnvelope({\n ok: false,\n error: { code: \"NETWORK_ERROR\", message: err instanceof Error ? err.message : \"Unexpected error\" },\n });\n process.exit(1);\n}\n"],"mappings":"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","names":["args"]}
@@ -0,0 +1,198 @@
1
+ import {
2
+ CanvasPrepareError,
3
+ adaptNodes,
4
+ compiledPromptNodeIds,
5
+ prepareCanvas,
6
+ sceneOwnedPrompts
7
+ } from "./chunk-VRIPVLE7.js";
8
+ import "./chunk-HGBJQGO5.js";
9
+ import "./chunk-T3P6O2VU.js";
10
+ import "./chunk-WHBFXR6F.js";
11
+ import "./chunk-DQVI7GCX.js";
12
+ import "./chunk-EKX37C3T.js";
13
+ import "./chunk-SWN6OHXG.js";
14
+ import "./chunk-QIOFOD4K.js";
15
+ import "./chunk-A3IQAONL.js";
16
+ import "./chunk-LGMI4LSY.js";
17
+ import "./chunk-R2SYF5FC.js";
18
+ import "./chunk-3YJNSUNF.js";
19
+ import "./chunk-QPESDKZC.js";
20
+ import "./chunk-E44NXCTL.js";
21
+ import "./chunk-EJGAJHLB.js";
22
+ import {
23
+ defaultRegistry,
24
+ validateCanvasDeep
25
+ } from "./chunk-6KWEF6HF.js";
26
+ import "./chunk-TX7CQTD4.js";
27
+ import "./chunk-F4YQ5PVR.js";
28
+ import "./chunk-DGCUPJZD.js";
29
+ import "./chunk-MVD7QIXI.js";
30
+ import {
31
+ COPY_DIRECTIVE_HEADER
32
+ } from "./chunk-LRV6M2WB.js";
33
+ import "./chunk-7HZSORAB.js";
34
+ import "./chunk-MCJ5I5LR.js";
35
+ import "./chunk-2WZI36D3.js";
36
+ import "./chunk-65Y3RCWP.js";
37
+ import "./chunk-LNNTHEL7.js";
38
+ import "./chunk-FOMFU2RX.js";
39
+ import "./chunk-PSGIHSNC.js";
40
+ import "./chunk-PONLPYD7.js";
41
+ import "./chunk-PC3FJEZH.js";
42
+ import "./chunk-CAZGM2NX.js";
43
+ import "./chunk-NZS3KEQ2.js";
44
+ import "./chunk-GIWHHCD6.js";
45
+ import "./chunk-SOPVIIUW.js";
46
+ import "./chunk-G4FG5EQO.js";
47
+ import "./chunk-NSBNIPIW.js";
48
+ import "./chunk-46YLDIQG.js";
49
+ import "./chunk-X7VQFLHI.js";
50
+ import "./chunk-LU4HI4KI.js";
51
+ import "./chunk-LGK7UWBN.js";
52
+ import "./chunk-Q7US4OOA.js";
53
+ import "./chunk-YQSBHWOI.js";
54
+
55
+ // src/commands/canvas/set-prompt.ts
56
+ import { readFile, writeFile } from "fs/promises";
57
+ import path from "path";
58
+ import { defineCommand } from "citty";
59
+ function setNodePrompt(canvas, nodeId, text) {
60
+ const nodes = canvas?.nodes;
61
+ if (!Array.isArray(nodes)) throw new Error("canvas has no nodes array");
62
+ const idx = nodes.findIndex((n) => n?.id === nodeId);
63
+ if (idx < 0) {
64
+ const ids = nodes.map((n) => n?.id).filter((id) => typeof id === "string");
65
+ throw new Error(`node "${nodeId}" not found. Known nodes: ${ids.join(", ")}`);
66
+ }
67
+ const node = nodes[idx];
68
+ const newNode = { ...node, params: { ...node.params ?? {}, prompt: text } };
69
+ const newNodes = [...nodes];
70
+ newNodes[idx] = newNode;
71
+ return { ...canvas, nodes: newNodes };
72
+ }
73
+ var SetPromptError = class extends Error {
74
+ code;
75
+ fix;
76
+ details;
77
+ constructor(code, message, opts = {}) {
78
+ super(message);
79
+ this.name = "SetPromptError";
80
+ this.code = code;
81
+ this.fix = opts.fix;
82
+ this.details = opts.details;
83
+ }
84
+ };
85
+ async function setPromptInCanvasFile(canvasPath, nodeId, text) {
86
+ const filePath = path.resolve(canvasPath);
87
+ const original = await readFile(filePath, "utf8");
88
+ let canvas;
89
+ try {
90
+ canvas = JSON.parse(original);
91
+ } catch (e) {
92
+ throw new SetPromptError("parse", `${filePath}: JSON parse error: ${e instanceof Error ? e.message : String(e)}`);
93
+ }
94
+ const sceneFile = (await sceneOwnedPrompts(filePath)).get(nodeId);
95
+ if (sceneFile) {
96
+ throw new SetPromptError(
97
+ "projected_prompt",
98
+ `The prompt of "${nodeId}" is rebuilt from ${sceneFile} on every validate and run, so setting it in the canvas would be overwritten.`,
99
+ {
100
+ fix: `Edit the scene's description in ${sceneFile} (its frame and motion fields, e.g. start_frame_prompt, end_frame_prompt, frame_prompt, motion_prompt), then run \`baker canvas validate\` to see the rebuilt prompt.`
101
+ }
102
+ );
103
+ }
104
+ if (compiledPromptNodeIds(canvas).has(nodeId) || adaptNodes(canvas).some((a) => a.node.id === nodeId)) {
105
+ throw new SetPromptError(
106
+ "projected_prompt",
107
+ `The prompt of "${nodeId}" is compiled from prompt.json on every validate and run, so setting it in the canvas would be overwritten.`,
108
+ {
109
+ fix: `Edit the ad in ${path.join(path.dirname(filePath), "prompt.json")} (its scene, copy, references or direction), then run \`baker canvas validate\` to see the compiled prompt on the node.`
110
+ }
111
+ );
112
+ }
113
+ let updated;
114
+ try {
115
+ updated = setNodePrompt(canvas, nodeId, withCopyBlock(canvas, nodeId, text));
116
+ } catch (e) {
117
+ throw new SetPromptError("node_not_found", e instanceof Error ? e.message : String(e));
118
+ }
119
+ await writeFile(filePath, `${JSON.stringify(updated, null, 2)}
120
+ `, "utf8");
121
+ const restore = () => writeFile(filePath, original, "utf8");
122
+ try {
123
+ const prepared = await prepareCanvas(filePath);
124
+ const validation = await validateCanvasDeep(prepared.canvas, defaultRegistry());
125
+ if (!validation.ok) {
126
+ await restore();
127
+ throw new SetPromptError("validation", "The edited canvas does not validate; nothing was changed.", {
128
+ details: { issues: validation.issues }
129
+ });
130
+ }
131
+ } catch (e) {
132
+ if (e instanceof SetPromptError) throw e;
133
+ await restore();
134
+ if (e instanceof CanvasPrepareError) {
135
+ throw new SetPromptError(e.code, e.message, { ...e.fix ? { fix: e.fix } : {}, ...e.details ? { details: e.details } : {} });
136
+ }
137
+ throw e;
138
+ }
139
+ }
140
+ function withCopyBlock(canvas, nodeId, text) {
141
+ const nodes = canvas?.nodes;
142
+ const current = Array.isArray(nodes) ? nodes.find((n) => n?.id === nodeId)?.params?.prompt : void 0;
143
+ if (typeof current !== "string" || !current.includes(COPY_DIRECTIVE_HEADER) || text.includes(COPY_DIRECTIVE_HEADER)) {
144
+ return text;
145
+ }
146
+ return `${text.trimEnd()}
147
+
148
+ ${COPY_DIRECTIVE_HEADER}`;
149
+ }
150
+ var setPromptCommand = defineCommand({
151
+ meta: {
152
+ name: "set-prompt",
153
+ description: "Safely set a node's params.prompt (a frame description, motion prompt, etc.) without hand-editing the JSON. Prefer --text-file for multi-line/accented copy \u2014 it preserves UTF-8 exactly, unlike shell-quoted jq. A prompt rebuilt from a scene file (scenes/sNN.json), or compiled from a static ad's prompt.json, is refused with the file to edit instead."
154
+ },
155
+ args: {
156
+ file: { type: "positional", required: true, description: "Path to canvas JSON" },
157
+ node: { type: "positional", required: true, description: "Node id to edit (e.g. s0_start)" },
158
+ text: { type: "string", description: "New prompt text (inline)" },
159
+ "text-file": { type: "string", description: "Read the new prompt from a UTF-8 file (preserves accents/newlines)" }
160
+ },
161
+ async run({ args }) {
162
+ let text;
163
+ if (args["text-file"]) text = await readFile(path.resolve(String(args["text-file"])), "utf8");
164
+ else if (args.text !== void 0) text = String(args.text);
165
+ else {
166
+ process.stderr.write(
167
+ `${JSON.stringify({ ok: false, error: { code: "no_text", message: "pass --text or --text-file" } }, null, 2)}
168
+ `
169
+ );
170
+ process.exit(2);
171
+ return;
172
+ }
173
+ try {
174
+ await setPromptInCanvasFile(String(args.file), String(args.node), text);
175
+ } catch (e) {
176
+ if (!(e instanceof SetPromptError)) throw e;
177
+ process.stderr.write(
178
+ `${JSON.stringify(
179
+ { ok: false, error: { code: e.code, message: e.message, ...e.fix ? { fix: e.fix } : {}, ...e.details ?? {} } },
180
+ null,
181
+ 2
182
+ )}
183
+ `
184
+ );
185
+ process.exit(2);
186
+ return;
187
+ }
188
+ process.stdout.write(`${JSON.stringify({ ok: true, node: String(args.node), bytes: text.length }, null, 2)}
189
+ `);
190
+ }
191
+ });
192
+ export {
193
+ SetPromptError,
194
+ setNodePrompt,
195
+ setPromptCommand,
196
+ setPromptInCanvasFile
197
+ };
198
+ //# sourceMappingURL=set-prompt-YYFDRXRI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/canvas/set-prompt.ts"],"sourcesContent":["import { readFile, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { defineCommand } from \"citty\";\nimport { defaultRegistry, validateCanvasDeep } from \"../../engine/index.ts\";\nimport { COPY_DIRECTIVE_HEADER } from \"../../engine/scaffold/static-copy.ts\";\nimport { adaptNodes } from \"../../engine/scaffold/static-adapt-briefs.ts\";\nimport { compiledPromptNodeIds } from \"../../engine/scaffold/static-render-briefs.ts\";\nimport { CanvasPrepareError, prepareCanvas } from \"./prepare-canvas.ts\";\nimport { sceneOwnedPrompts } from \"./scene-projection.ts\";\n\n/**\n * Set one node's `params.prompt` in a parsed canvas, returning a NEW canvas. The\n * structured alternative to hand-editing a 133 KB machine JSON with jq/sed — which\n * is where `\"prompt\": null` pollution (a global `gsub` writing prompt onto every\n * node) and the French-accent corruption (shell `''` eating apostrophes) came from.\n * Throws when the node id is unknown. Pure — unit-tested without the filesystem.\n */\nexport function setNodePrompt(canvas: unknown, nodeId: string, text: string): unknown {\n const nodes = (canvas as { nodes?: unknown })?.nodes;\n if (!Array.isArray(nodes)) throw new Error(\"canvas has no nodes array\");\n const idx = nodes.findIndex((n) => (n as { id?: unknown })?.id === nodeId);\n if (idx < 0) {\n const ids = nodes.map((n) => (n as { id?: unknown })?.id).filter((id): id is string => typeof id === \"string\");\n throw new Error(`node \"${nodeId}\" not found. Known nodes: ${ids.join(\", \")}`);\n }\n const node = nodes[idx] as { params?: Record<string, unknown> };\n const newNode = { ...node, params: { ...(node.params ?? {}), prompt: text } };\n const newNodes = [...nodes];\n newNodes[idx] = newNode;\n return { ...(canvas as object), nodes: newNodes };\n}\n\n/** Why `set-prompt` did not write: the node's prompt is owned elsewhere, or the edit does not validate. */\nexport class SetPromptError extends Error {\n readonly code: string;\n readonly fix: string | undefined;\n readonly details: Record<string, unknown> | undefined;\n constructor(code: string, message: string, opts: { fix?: string; details?: Record<string, unknown> } = {}) {\n super(message);\n this.name = \"SetPromptError\";\n this.code = code;\n this.fix = opts.fix;\n this.details = opts.details;\n }\n}\n\n/**\n * Set a node's prompt in the canvas FILE, where it will survive.\n *\n * The canvas is a projection of its blueprint, and `prepareCanvas` rewrites the projected\n * parts on every validate and run. So:\n * - a frame or clip prompt a scene file rebuilds is refused, naming the scene file to edit\n * (writing it here would be silently overwritten by the next preflight);\n * - a static ad's scaffolded render prompt (a take, a re-lay, the judge) is refused, naming\n * prompt.json: it is compiled from the ad spec there on every run;\n * - a hand-written static render prompt keeps its copy block: the text replaces the scene\n * description, and the \"render these exact strings\" block after it is re-read from\n * prompt.json, as always;\n * - anything else is the canvas's own, and is written.\n * The result is validated; an edit that does not validate is undone.\n */\nexport async function setPromptInCanvasFile(canvasPath: string, nodeId: string, text: string): Promise<void> {\n const filePath = path.resolve(canvasPath);\n const original = await readFile(filePath, \"utf8\");\n let canvas: unknown;\n try {\n canvas = JSON.parse(original);\n } catch (e) {\n throw new SetPromptError(\"parse\", `${filePath}: JSON parse error: ${e instanceof Error ? e.message : String(e)}`);\n }\n\n const sceneFile = (await sceneOwnedPrompts(filePath)).get(nodeId);\n if (sceneFile) {\n throw new SetPromptError(\n \"projected_prompt\",\n `The prompt of \"${nodeId}\" is rebuilt from ${sceneFile} on every validate and run, so setting it in the canvas would be overwritten.`,\n {\n fix: `Edit the scene's description in ${sceneFile} (its frame and motion fields, e.g. start_frame_prompt, end_frame_prompt, frame_prompt, motion_prompt), then run \\`baker canvas validate\\` to see the rebuilt prompt.`,\n },\n );\n }\n\n if (compiledPromptNodeIds(canvas).has(nodeId) || adaptNodes(canvas).some((a) => a.node.id === nodeId)) {\n throw new SetPromptError(\n \"projected_prompt\",\n `The prompt of \"${nodeId}\" is compiled from prompt.json on every validate and run, so setting it in the canvas would be overwritten.`,\n {\n fix: `Edit the ad in ${path.join(path.dirname(filePath), \"prompt.json\")} (its scene, copy, references or direction), then run \\`baker canvas validate\\` to see the compiled prompt on the node.`,\n },\n );\n }\n\n let updated: unknown;\n try {\n updated = setNodePrompt(canvas, nodeId, withCopyBlock(canvas, nodeId, text));\n } catch (e) {\n throw new SetPromptError(\"node_not_found\", e instanceof Error ? e.message : String(e));\n }\n\n await writeFile(filePath, `${JSON.stringify(updated, null, 2)}\\n`, \"utf8\");\n const restore = () => writeFile(filePath, original, \"utf8\");\n try {\n const prepared = await prepareCanvas(filePath);\n const validation = await validateCanvasDeep(prepared.canvas, defaultRegistry());\n if (!validation.ok) {\n await restore();\n throw new SetPromptError(\"validation\", \"The edited canvas does not validate; nothing was changed.\", {\n details: { issues: validation.issues },\n });\n }\n } catch (e) {\n if (e instanceof SetPromptError) throw e;\n await restore();\n if (e instanceof CanvasPrepareError) {\n throw new SetPromptError(e.code, e.message, { ...(e.fix ? { fix: e.fix } : {}), ...(e.details ? { details: e.details } : {}) });\n }\n throw e;\n }\n}\n\n/**\n * A static ad's render prompt ends with the copy block the preflight fills from prompt.json.\n * New text that leaves it out keeps it, so replacing the scene description never drops the\n * words the ad must show.\n */\nfunction withCopyBlock(canvas: unknown, nodeId: string, text: string): string {\n const nodes = (canvas as { nodes?: unknown })?.nodes;\n const current = Array.isArray(nodes)\n ? (nodes as Array<{ id?: unknown; params?: { prompt?: unknown } }>).find((n) => n?.id === nodeId)?.params?.prompt\n : undefined;\n if (typeof current !== \"string\" || !current.includes(COPY_DIRECTIVE_HEADER) || text.includes(COPY_DIRECTIVE_HEADER)) {\n return text;\n }\n return `${text.trimEnd()}\\n\\n${COPY_DIRECTIVE_HEADER}`;\n}\n\nexport const setPromptCommand = defineCommand({\n meta: {\n name: \"set-prompt\",\n description:\n \"Safely set a node's params.prompt (a frame description, motion prompt, etc.) without hand-editing the JSON. Prefer --text-file for multi-line/accented copy — it preserves UTF-8 exactly, unlike shell-quoted jq. A prompt rebuilt from a scene file (scenes/sNN.json), or compiled from a static ad's prompt.json, is refused with the file to edit instead.\",\n },\n args: {\n file: { type: \"positional\", required: true, description: \"Path to canvas JSON\" },\n node: { type: \"positional\", required: true, description: \"Node id to edit (e.g. s0_start)\" },\n text: { type: \"string\", description: \"New prompt text (inline)\" },\n \"text-file\": { type: \"string\", description: \"Read the new prompt from a UTF-8 file (preserves accents/newlines)\" },\n },\n async run({ args }) {\n let text: string;\n if (args[\"text-file\"]) text = await readFile(path.resolve(String(args[\"text-file\"])), \"utf8\");\n else if (args.text !== undefined) text = String(args.text);\n else {\n process.stderr.write(\n `${JSON.stringify({ ok: false, error: { code: \"no_text\", message: \"pass --text or --text-file\" } }, null, 2)}\\n`,\n );\n process.exit(2);\n return;\n }\n\n try {\n await setPromptInCanvasFile(String(args.file), String(args.node), text);\n } catch (e) {\n if (!(e instanceof SetPromptError)) throw e;\n process.stderr.write(\n `${JSON.stringify(\n { ok: false, error: { code: e.code, message: e.message, ...(e.fix ? { fix: e.fix } : {}), ...(e.details ?? {}) } },\n null,\n 2,\n )}\\n`,\n );\n process.exit(2);\n return;\n }\n process.stdout.write(`${JSON.stringify({ ok: true, node: String(args.node), bytes: text.length }, null, 2)}\\n`);\n },\n});\n"],"mappings":"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","names":[]}