@koda-sl/baker-cli 0.470.0 → 0.471.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 (405) hide show
  1. package/README.md +41 -5
  2. package/dist/{account-GIZWP5QF.js → account-SP2RA2XD.js} +4 -4
  3. package/dist/{accounts-CQUW36ZY.js → accounts-R2ZLSJEW.js} +3 -3
  4. package/dist/{accounts-5KDBVRJ2.js → accounts-XG5W4JC4.js} +5 -5
  5. package/dist/{actions-BDC7CQ3R.js → actions-LZE7K24U.js} +18 -18
  6. package/dist/activecampaign-RKTIWG4U.js +935 -0
  7. package/dist/activecampaign-RKTIWG4U.js.map +1 -0
  8. package/dist/{add-3M6T5MLO.js → add-7LC2XDIE.js} +3 -3
  9. package/dist/{add-2N3G4EUY.js → add-XKSQMOFC.js} +2 -2
  10. package/dist/{ads-626CEAXU.js → ads-AEQPHUOB.js} +4 -4
  11. package/dist/{advertisers-XHIAWVLX.js → advertisers-FFRP4SQ3.js} +3 -3
  12. package/dist/{analytics-JK53QUDI.js → analytics-PQSMY2BS.js} +3 -3
  13. package/dist/{analytics-L4UTJ5RA.js → analytics-SETCYHRK.js} +15 -15
  14. package/dist/{assign-SH76OUMA.js → assign-3UKKZ3Q3.js} +3 -3
  15. package/dist/{audience-size-RXOBSRN5.js → audience-size-YBLT324O.js} +3 -3
  16. package/dist/{audit-RLYCO6Q6.js → audit-C6HEPG2Z.js} +3 -3
  17. package/dist/{autocomplete-QQ56I5YS.js → autocomplete-EYIWA7PG.js} +3 -3
  18. package/dist/{avatars-T66JDLVN.js → avatars-YDGM27UP.js} +4 -4
  19. package/dist/{bid-pricing-6UD42SON.js → bid-pricing-KSREYT6M.js} +3 -3
  20. package/dist/{brand-CRNZCOV2.js → brand-46IADVGO.js} +2 -2
  21. package/dist/{brief-NU5FLVPY.js → brief-54ZL3EXF.js} +7 -7
  22. package/dist/{campaign-groups-5HMTK5J5.js → campaign-groups-KT3BNDFJ.js} +8 -8
  23. package/dist/{campaign-writes-BGAS7L64.js → campaign-writes-FQJD4DWV.js} +3 -3
  24. package/dist/{campaigns-OM5FQIR6.js → campaigns-2PQHW6SO.js} +5 -5
  25. package/dist/{campaigns-R624HC75.js → campaigns-XQVYFSZG.js} +11 -11
  26. package/dist/{canvas-XOOXIOIM.js → canvas-YOO4IHGS.js} +12 -12
  27. package/dist/{capabilities-AH763WSY.js → capabilities-6QWU3ZJH.js} +3 -3
  28. package/dist/{chats-DNLK6TTQ.js → chats-VTM5S5Q5.js} +3 -3
  29. package/dist/{chunk-DBAO7JLW.js → chunk-2CMRJQY7.js} +3 -3
  30. package/dist/{chunk-WNTVBUVI.js → chunk-2KACEWPN.js} +4 -4
  31. package/dist/{chunk-HM25R6XJ.js → chunk-3BXQSDMJ.js} +2 -2
  32. package/dist/{chunk-2EINLGUZ.js → chunk-44TCHDXM.js} +3 -3
  33. package/dist/{chunk-ME6PYW77.js → chunk-4C7SIRHL.js} +2 -2
  34. package/dist/{chunk-HHOKZCIL.js → chunk-4I4UB4ZE.js} +3 -3
  35. package/dist/{chunk-V6GKEKPX.js → chunk-4LIYWGQL.js} +2 -2
  36. package/dist/{chunk-ZZMP35QD.js → chunk-4LXKCSWY.js} +2 -2
  37. package/dist/{chunk-PYPILVCC.js → chunk-53DV3HBZ.js} +2 -2
  38. package/dist/{chunk-XASW5FLO.js → chunk-6A2X5MPY.js} +2 -2
  39. package/dist/{chunk-XSFBGHGG.js → chunk-6EEYWFD5.js} +2 -2
  40. package/dist/{chunk-WWCQBHDC.js → chunk-6S44QXXI.js} +2 -2
  41. package/dist/{chunk-7MQVCSA7.js → chunk-6USNEQZT.js} +182 -100
  42. package/dist/chunk-6USNEQZT.js.map +1 -0
  43. package/dist/{chunk-XQ2FGDOQ.js → chunk-7NWOGEAW.js} +2 -2
  44. package/dist/{chunk-CAA32DMC.js → chunk-7SLEBQIM.js} +5 -5
  45. package/dist/{chunk-KBHXLOYJ.js → chunk-7ZSLXBOS.js} +2 -2
  46. package/dist/{chunk-WB77W2ST.js → chunk-BAEXXBRM.js} +293 -12
  47. package/dist/chunk-BAEXXBRM.js.map +1 -0
  48. package/dist/{chunk-SSJK7FEV.js → chunk-BC2BXRXY.js} +3 -2
  49. package/dist/{chunk-SSJK7FEV.js.map → chunk-BC2BXRXY.js.map} +1 -1
  50. package/dist/{chunk-MPXDQWYI.js → chunk-BMD3HCSI.js} +3 -3
  51. package/dist/{chunk-ACDS7T57.js → chunk-CS4NPJ2M.js} +13 -7
  52. package/dist/chunk-CS4NPJ2M.js.map +1 -0
  53. package/dist/{chunk-VXRGAUZK.js → chunk-D536MQC6.js} +3 -3
  54. package/dist/{chunk-YT74ZEVP.js → chunk-GFX3BZRA.js} +2 -2
  55. package/dist/{chunk-T4V6KQY2.js → chunk-IPWXGR65.js} +2 -2
  56. package/dist/{chunk-DA2ANVMG.js → chunk-IWE7WFHI.js} +3 -3
  57. package/dist/{chunk-4XZSZRCG.js → chunk-KLPCKKBZ.js} +2 -2
  58. package/dist/{chunk-M55JELFT.js → chunk-MM6QFNHV.js} +2 -2
  59. package/dist/{chunk-EPZNFXI2.js → chunk-NBXFSSCW.js} +3 -3
  60. package/dist/{chunk-IL7PZKQN.js → chunk-OCFYRZQW.js} +2 -2
  61. package/dist/{chunk-RPUSTYHL.js → chunk-PAJJXZ3Z.js} +2 -2
  62. package/dist/{chunk-F6G3RECD.js → chunk-PB4RAOBC.js} +3 -3
  63. package/dist/{chunk-T6USZ3EO.js → chunk-QHNHW76K.js} +2 -2
  64. package/dist/{chunk-BAXURR55.js → chunk-QNDZNMUS.js} +5 -5
  65. package/dist/{chunk-CTLAIMJP.js → chunk-QO6QHZTW.js} +2 -2
  66. package/dist/{chunk-ISDCUB2Q.js → chunk-TCQFIUKQ.js} +2 -2
  67. package/dist/{chunk-MSJKALUF.js → chunk-WTL5RI2J.js} +2 -2
  68. package/dist/{chunk-WXC3I4CT.js → chunk-XABVEMC3.js} +37 -11
  69. package/dist/chunk-XABVEMC3.js.map +1 -0
  70. package/dist/{chunk-A3VUXG5G.js → chunk-YRERFQ7Z.js} +2 -2
  71. package/dist/{claim-YXL2HUFU.js → claim-KPJXAUQW.js} +3 -3
  72. package/dist/cli.js +28 -27
  73. package/dist/cli.js.map +1 -1
  74. package/dist/{companies-U55HX5JN.js → companies-SD36QDTM.js} +3 -3
  75. package/dist/{complete-VABZEJTL.js → complete-Y3M6OXPA.js} +3 -3
  76. package/dist/{connect-6KS42I3C.js → connect-QNPBSMWK.js} +6 -6
  77. package/dist/{conversation-UEIXBJ32.js → conversation-EEL3AY6B.js} +3 -3
  78. package/dist/{conversions-V7ZPJ5T7.js → conversions-7A34JRO4.js} +7 -7
  79. package/dist/{create-5NLAAJE4.js → create-4H273ZGZ.js} +3 -3
  80. package/dist/{create-7L6SXSPH.js → create-6NJRTWYT.js} +3 -3
  81. package/dist/{create-UMVQNYZF.js → create-GKC3DLQK.js} +2 -2
  82. package/dist/{create-NZIFE6O7.js → create-JTTFEJZE.js} +3 -3
  83. package/dist/{creatives-5V3ZGVO6.js → creatives-FNHTRAAH.js} +8 -8
  84. package/dist/{creatives-4A4HJKD3.js → creatives-IFAOJHLW.js} +10 -10
  85. package/dist/{credentials-PB3RFZOC.js → credentials-7L3K6QFN.js} +3 -3
  86. package/dist/{critique-SZRPZU2P.js → critique-BZLL3N37.js} +5 -5
  87. package/dist/{critique-FRBVRWVL.js → critique-GEBGDHWB.js} +3 -3
  88. package/dist/{crm-SVQ22Q6N.js → crm-4IGMD5QF.js} +4 -4
  89. package/dist/{crm-I6E2FACM.js → crm-J3HX3ZT6.js} +4 -4
  90. package/dist/{customers-ZB6EYQEH.js → customers-TSJH2AUE.js} +5 -5
  91. package/dist/{delete-I7MTK63S.js → delete-56HFQZCX.js} +2 -2
  92. package/dist/{delete-7MNFMQ6X.js → delete-JZUAO6LZ.js} +3 -3
  93. package/dist/{delete-HE2ACICZ.js → delete-XTCS5H6L.js} +3 -3
  94. package/dist/{demographics-BLL7UL26.js → demographics-DKT2UN4S.js} +3 -3
  95. package/dist/{discard-6GTJKV37.js → discard-2357VMCI.js} +3 -3
  96. package/dist/{domain-FHJKL6ZC.js → domain-NM553OX2.js} +3 -3
  97. package/dist/{draft-3GZ3RTYT.js → draft-FDJK7FLI.js} +3 -3
  98. package/dist/{draft-4W5CP2R7.js → draft-NEXKT5HF.js} +4 -4
  99. package/dist/{draft-REIQ6JCS.js → draft-UDDLC7YZ.js} +3 -3
  100. package/dist/{facets-HCI6JP4Q.js → facets-6R4DOSZJ.js} +3 -3
  101. package/dist/{feedback-CM63S3ME.js → feedback-WW6YQQJA.js} +2 -2
  102. package/dist/{feedback-record-4EPVZ6BQ.js → feedback-record-KGYP2IUQ.js} +7 -7
  103. package/dist/{fetch-2ZONBBKW.js → fetch-JGUKB6R7.js} +3 -3
  104. package/dist/{flows-HXJXVGLU.js → flows-MI2FZJU2.js} +11 -11
  105. package/dist/{flows-HXJXVGLU.js.map → flows-MI2FZJU2.js.map} +1 -1
  106. package/dist/{fonts-T6BDCPSZ.js → fonts-JRQFPSS6.js} +5 -5
  107. package/dist/{forecast-EKOVQJ4F.js → forecast-72GMGD64.js} +3 -3
  108. package/dist/{funnel-ISMIHL3P.js → funnel-BJJQI72Z.js} +5 -5
  109. package/dist/{get-X5B6VCSC.js → get-DC3WBYJD.js} +3 -3
  110. package/dist/{get-LSIYBPPA.js → get-HTAU7NQU.js} +3 -3
  111. package/dist/{google-S7AQ7KOJ.js → google-UC5RRXF3.js} +2 -2
  112. package/dist/{google-ads-VYRPY3FQ.js → google-ads-OLFRVBP6.js} +3 -3
  113. package/dist/{history-2F3IPVQU.js → history-IFJKE65W.js} +3 -3
  114. package/dist/{hubspot-VFGBXW2X.js → hubspot-AT4E52RB.js} +7 -7
  115. package/dist/{ideas-FYW4XSSC.js → ideas-BUJVMRQF.js} +2 -2
  116. package/dist/{images-3EHPQRQD.js → images-MWG3CNPG.js} +4 -4
  117. package/dist/{ingest-SREMQAWS.js → ingest-F7XSH47V.js} +2 -2
  118. package/dist/{ingest-OFVANVIF.js → ingest-XIX4CZ2P.js} +3 -3
  119. package/dist/{inspect-PWUKLRNZ.js → inspect-4O2SAWNX.js} +3 -3
  120. package/dist/{keyword-metrics-SGOGGYHN.js → keyword-metrics-4UDAJAQJ.js} +3 -3
  121. package/dist/{keywords-for-site-NAZSCVQR.js → keywords-for-site-HZCZK3EI.js} +3 -3
  122. package/dist/{landing-33KYCXXA.js → landing-2L325EK3.js} +2 -2
  123. package/dist/{leads-Y3PFOEGM.js → leads-TNZW3RTA.js} +3 -3
  124. package/dist/{learn-WQ2QQ77L.js → learn-KNTDSDPX.js} +4 -4
  125. package/dist/{line-item-writes-S4JLVWTU.js → line-item-writes-6BWPQSOY.js} +3 -3
  126. package/dist/{line-items-DMXOAXFU.js → line-items-525PQOI3.js} +5 -5
  127. package/dist/{link-4DNY5OSY.js → link-SJQFQLTY.js} +3 -3
  128. package/dist/{linkedin-D22GQOKW.js → linkedin-OD36IRJS.js} +26 -26
  129. package/dist/{list-YFET6MM3.js → list-DKA4BDKT.js} +2 -2
  130. package/dist/{list-H7V6MUUV.js → list-QEPDSHHY.js} +3 -3
  131. package/dist/{list-CQXOFLNY.js → list-X3Q5MSYK.js} +3 -3
  132. package/dist/{log-SA4GFECI.js → log-S4U4JQ77.js} +3 -3
  133. package/dist/{lookup-32HPES25.js → lookup-CMB2JELV.js} +4 -4
  134. package/dist/{make-T2JR6IA5.js → make-ZKG6IKEL.js} +10 -10
  135. package/dist/{map-OMWTKH4J.js → map-DOGBZT3Y.js} +40 -11
  136. package/dist/map-DOGBZT3Y.js.map +1 -0
  137. package/dist/{mcp-OM6JLDQ6.js → mcp-ACBDK6UV.js} +2 -2
  138. package/dist/{media-sources-JHTGT6FF.js → media-sources-LCIPLOTF.js} +2 -2
  139. package/dist/{members-KDJBWRU5.js → members-3B43WCMP.js} +3 -3
  140. package/dist/{normalize-JEXAJD4K.js → normalize-QFKNYVLR.js} +3 -3
  141. package/dist/{options-CL2VJ26D.js → options-434QB4V6.js} +9 -8
  142. package/dist/options-434QB4V6.js.map +1 -0
  143. package/dist/{performance-SI2ZRX5D.js → performance-ZOWSMCZF.js} +4 -4
  144. package/dist/{plan-UEYS6CHL.js → plan-PZVXAECA.js} +3 -3
  145. package/dist/{promoted-tweet-writes-ADZNQUNV.js → promoted-tweet-writes-UBK3GPXT.js} +3 -3
  146. package/dist/{promoted-tweets-CNREPMPQ.js → promoted-tweets-MTZ7SSVK.js} +3 -3
  147. package/dist/{publish-2MQNUKLF.js → publish-N7WR2HAO.js} +3 -3
  148. package/dist/{questionnaire-4HSUNNNC.js → questionnaire-SGHGA4AZ.js} +3 -3
  149. package/dist/{reddit-C73WD45T.js → reddit-LWV2OILV.js} +4 -4
  150. package/dist/{refresh-FYOCED4T.js → refresh-GGMYGGUW.js} +2 -2
  151. package/dist/{release-HJZCWKY6.js → release-B5B7TWMA.js} +3 -3
  152. package/dist/{remove-WB6LFXWK.js → remove-EWZMAYUI.js} +2 -2
  153. package/dist/{reopen-3VQ4NYZ5.js → reopen-BAE4WPC6.js} +3 -3
  154. package/dist/{rerun-OV3TEE6P.js → rerun-KHHPDTLP.js} +10 -10
  155. package/dist/{research-6WRKGPRC.js → research-GR27TIGA.js} +2 -2
  156. package/dist/{research-7JKXF6BI.js → research-KMKYFBWF.js} +10 -10
  157. package/dist/{reset-5BMABGUG.js → reset-6XVTFUBM.js} +2 -2
  158. package/dist/{reset-F4BDAHUI.js → reset-BU6IJGOR.js} +2 -2
  159. package/dist/{resolve-QRATNPWX.js → resolve-3EPJNPRF.js} +3 -3
  160. package/dist/{retry-B4JRFPPF.js → retry-SWTQWKJM.js} +2 -2
  161. package/dist/{retry-SQSIAX33.js → retry-U4XMO7PA.js} +2 -2
  162. package/dist/{run-FU3UF4YV.js → run-EXER4CJ5.js} +10 -10
  163. package/dist/{run-6NXPDWRP.js → run-YVWGH5C5.js} +3 -3
  164. package/dist/{scaffold-ad-4VTZB4JH.js → scaffold-ad-HKGKQUR7.js} +8 -8
  165. package/dist/{scaffold-static-ad-AB2RG3SH.js → scaffold-static-ad-Q3AU7QQ4.js} +12 -12
  166. package/dist/{scaffold-video-RSGJWHHT.js → scaffold-video-M63JFOPT.js} +7 -7
  167. package/dist/{schedule-WZF3BQSX.js → schedule-RILFJJ2P.js} +2 -2
  168. package/dist/{scheduled-agents-J75TOVGN.js → scheduled-agents-CUSH7BI5.js} +11 -11
  169. package/dist/{schema-O5PX4O4J.js → schema-JASSX36C.js} +4 -4
  170. package/dist/{search-WYO77TIF.js → search-PP5PH3NM.js} +2 -2
  171. package/dist/{select-G5W6WGRB.js → select-O4NQK5A4.js} +7 -7
  172. package/dist/{sends-E5NSPLNS.js → sends-ZOT5WPVC.js} +3 -3
  173. package/dist/{set-prompt-PJA7LUUJ.js → set-prompt-SHMGN6KR.js} +5 -5
  174. package/dist/{setup-links-HFWMDF6E.js → setup-links-6THA2YOJ.js} +3 -3
  175. package/dist/{site-YJJBAS7M.js → site-JRCQUJOE.js} +4 -4
  176. package/dist/{sources-MCAH4GWS.js → sources-M7VWKKCP.js} +48 -15
  177. package/dist/sources-M7VWKKCP.js.map +1 -0
  178. package/dist/{sources-VRRDVWZC.js → sources-WRC3LAZQ.js} +6 -6
  179. package/dist/{stale-I6UGM3MO.js → stale-ZBXHYQ6Z.js} +6 -6
  180. package/dist/{status-TCOUMPJS.js → status-GG6UTBWM.js} +3 -3
  181. package/dist/{sync-TWV4HUHZ.js → sync-6R64PGCZ.js} +2 -2
  182. package/dist/{sync-definition-K6UMLDZF.js → sync-definition-YTTTJMV4.js} +7 -7
  183. package/dist/{tags-AWO5FFGM.js → tags-4CEVGCMN.js} +2 -2
  184. package/dist/{tags-NBUNSN5L.js → tags-7CGYLMST.js} +3 -3
  185. package/dist/{tags-NBVQWFS2.js → tags-H6MESAFQ.js} +4 -4
  186. package/dist/{tags-ZOK7CY4V.js → tags-PAEIW2UI.js} +3 -3
  187. package/dist/{tags-DGLT344J.js → tags-PLB6UT4U.js} +3 -3
  188. package/dist/{targeting-criteria-MG7RLBOG.js → targeting-criteria-G2BAM34G.js} +3 -3
  189. package/dist/{targets-2B5AG4E4.js → targets-HE2LJCHE.js} +3 -3
  190. package/dist/{templates-IXF2C2LD.js → templates-OSMHAXLI.js} +3 -3
  191. package/dist/{testimonials-WNNC5PKQ.js → testimonials-7LPKA54Y.js} +6 -6
  192. package/dist/{top-companies-B2IZYN4T.js → top-companies-QYBVUFSB.js} +3 -3
  193. package/dist/{translate-MGMGQ27R.js → translate-67D6PBVJ.js} +10 -10
  194. package/dist/{triggers-3DDV3OJ3.js → triggers-BEJHXIRZ.js} +3 -3
  195. package/dist/{unlink-6M577LT6.js → unlink-ANZSGHCG.js} +3 -3
  196. package/dist/{unstage-KNCIQR4E.js → unstage-HU7G23ZL.js} +3 -3
  197. package/dist/{unstage-4EJNGWUT.js → unstage-JDC2HBEI.js} +3 -3
  198. package/dist/{update-7SK6PHDL.js → update-2QJ2F43N.js} +2 -2
  199. package/dist/{update-4NHLEM64.js → update-4DATQZGJ.js} +3 -3
  200. package/dist/{update-U3GEUFNY.js → update-7226ZVPC.js} +3 -3
  201. package/dist/{update-PMFYYMFX.js → update-K7EJ45LU.js} +3 -3
  202. package/dist/{upload-ITKCCYOQ.js → upload-42A6MAS3.js} +3 -3
  203. package/dist/{url-options-UFRD42MD.js → url-options-3XRKJSFA.js} +2 -2
  204. package/dist/{url-params-GAEQM2MQ.js → url-params-EHUS5YG5.js} +3 -3
  205. package/dist/{validate-4P2L4AXG.js → validate-KBPZX2H7.js} +5 -5
  206. package/dist/{videos-YVGJ3WO5.js → videos-FILPMPRL.js} +5 -5
  207. package/dist/{web-M7EYV5DF.js → web-KZFJIKDU.js} +3 -3
  208. package/dist/{winning-ads-4SU5DBEY.js → winning-ads-NLHGB3GX.js} +2 -2
  209. package/dist/{write-commands-7FT3MTOZ.js → write-commands-JCM6ZMUJ.js} +4 -4
  210. package/dist/{x-ESEGQ3W2.js → x-GVNB2MV2.js} +6 -6
  211. package/package.json +1 -1
  212. package/dist/chunk-7MQVCSA7.js.map +0 -1
  213. package/dist/chunk-ACDS7T57.js.map +0 -1
  214. package/dist/chunk-WB77W2ST.js.map +0 -1
  215. package/dist/chunk-WXC3I4CT.js.map +0 -1
  216. package/dist/map-OMWTKH4J.js.map +0 -1
  217. package/dist/options-CL2VJ26D.js.map +0 -1
  218. package/dist/sources-MCAH4GWS.js.map +0 -1
  219. /package/dist/{account-GIZWP5QF.js.map → account-SP2RA2XD.js.map} +0 -0
  220. /package/dist/{accounts-CQUW36ZY.js.map → accounts-R2ZLSJEW.js.map} +0 -0
  221. /package/dist/{accounts-5KDBVRJ2.js.map → accounts-XG5W4JC4.js.map} +0 -0
  222. /package/dist/{actions-BDC7CQ3R.js.map → actions-LZE7K24U.js.map} +0 -0
  223. /package/dist/{add-3M6T5MLO.js.map → add-7LC2XDIE.js.map} +0 -0
  224. /package/dist/{add-2N3G4EUY.js.map → add-XKSQMOFC.js.map} +0 -0
  225. /package/dist/{ads-626CEAXU.js.map → ads-AEQPHUOB.js.map} +0 -0
  226. /package/dist/{advertisers-XHIAWVLX.js.map → advertisers-FFRP4SQ3.js.map} +0 -0
  227. /package/dist/{analytics-JK53QUDI.js.map → analytics-PQSMY2BS.js.map} +0 -0
  228. /package/dist/{analytics-L4UTJ5RA.js.map → analytics-SETCYHRK.js.map} +0 -0
  229. /package/dist/{assign-SH76OUMA.js.map → assign-3UKKZ3Q3.js.map} +0 -0
  230. /package/dist/{audience-size-RXOBSRN5.js.map → audience-size-YBLT324O.js.map} +0 -0
  231. /package/dist/{audit-RLYCO6Q6.js.map → audit-C6HEPG2Z.js.map} +0 -0
  232. /package/dist/{autocomplete-QQ56I5YS.js.map → autocomplete-EYIWA7PG.js.map} +0 -0
  233. /package/dist/{avatars-T66JDLVN.js.map → avatars-YDGM27UP.js.map} +0 -0
  234. /package/dist/{bid-pricing-6UD42SON.js.map → bid-pricing-KSREYT6M.js.map} +0 -0
  235. /package/dist/{brand-CRNZCOV2.js.map → brand-46IADVGO.js.map} +0 -0
  236. /package/dist/{brief-NU5FLVPY.js.map → brief-54ZL3EXF.js.map} +0 -0
  237. /package/dist/{campaign-groups-5HMTK5J5.js.map → campaign-groups-KT3BNDFJ.js.map} +0 -0
  238. /package/dist/{campaign-writes-BGAS7L64.js.map → campaign-writes-FQJD4DWV.js.map} +0 -0
  239. /package/dist/{campaigns-OM5FQIR6.js.map → campaigns-2PQHW6SO.js.map} +0 -0
  240. /package/dist/{campaigns-R624HC75.js.map → campaigns-XQVYFSZG.js.map} +0 -0
  241. /package/dist/{canvas-XOOXIOIM.js.map → canvas-YOO4IHGS.js.map} +0 -0
  242. /package/dist/{capabilities-AH763WSY.js.map → capabilities-6QWU3ZJH.js.map} +0 -0
  243. /package/dist/{chats-DNLK6TTQ.js.map → chats-VTM5S5Q5.js.map} +0 -0
  244. /package/dist/{chunk-DBAO7JLW.js.map → chunk-2CMRJQY7.js.map} +0 -0
  245. /package/dist/{chunk-WNTVBUVI.js.map → chunk-2KACEWPN.js.map} +0 -0
  246. /package/dist/{chunk-HM25R6XJ.js.map → chunk-3BXQSDMJ.js.map} +0 -0
  247. /package/dist/{chunk-2EINLGUZ.js.map → chunk-44TCHDXM.js.map} +0 -0
  248. /package/dist/{chunk-ME6PYW77.js.map → chunk-4C7SIRHL.js.map} +0 -0
  249. /package/dist/{chunk-HHOKZCIL.js.map → chunk-4I4UB4ZE.js.map} +0 -0
  250. /package/dist/{chunk-V6GKEKPX.js.map → chunk-4LIYWGQL.js.map} +0 -0
  251. /package/dist/{chunk-ZZMP35QD.js.map → chunk-4LXKCSWY.js.map} +0 -0
  252. /package/dist/{chunk-PYPILVCC.js.map → chunk-53DV3HBZ.js.map} +0 -0
  253. /package/dist/{chunk-XASW5FLO.js.map → chunk-6A2X5MPY.js.map} +0 -0
  254. /package/dist/{chunk-XSFBGHGG.js.map → chunk-6EEYWFD5.js.map} +0 -0
  255. /package/dist/{chunk-WWCQBHDC.js.map → chunk-6S44QXXI.js.map} +0 -0
  256. /package/dist/{chunk-XQ2FGDOQ.js.map → chunk-7NWOGEAW.js.map} +0 -0
  257. /package/dist/{chunk-CAA32DMC.js.map → chunk-7SLEBQIM.js.map} +0 -0
  258. /package/dist/{chunk-KBHXLOYJ.js.map → chunk-7ZSLXBOS.js.map} +0 -0
  259. /package/dist/{chunk-MPXDQWYI.js.map → chunk-BMD3HCSI.js.map} +0 -0
  260. /package/dist/{chunk-VXRGAUZK.js.map → chunk-D536MQC6.js.map} +0 -0
  261. /package/dist/{chunk-YT74ZEVP.js.map → chunk-GFX3BZRA.js.map} +0 -0
  262. /package/dist/{chunk-T4V6KQY2.js.map → chunk-IPWXGR65.js.map} +0 -0
  263. /package/dist/{chunk-DA2ANVMG.js.map → chunk-IWE7WFHI.js.map} +0 -0
  264. /package/dist/{chunk-4XZSZRCG.js.map → chunk-KLPCKKBZ.js.map} +0 -0
  265. /package/dist/{chunk-M55JELFT.js.map → chunk-MM6QFNHV.js.map} +0 -0
  266. /package/dist/{chunk-EPZNFXI2.js.map → chunk-NBXFSSCW.js.map} +0 -0
  267. /package/dist/{chunk-IL7PZKQN.js.map → chunk-OCFYRZQW.js.map} +0 -0
  268. /package/dist/{chunk-RPUSTYHL.js.map → chunk-PAJJXZ3Z.js.map} +0 -0
  269. /package/dist/{chunk-F6G3RECD.js.map → chunk-PB4RAOBC.js.map} +0 -0
  270. /package/dist/{chunk-T6USZ3EO.js.map → chunk-QHNHW76K.js.map} +0 -0
  271. /package/dist/{chunk-BAXURR55.js.map → chunk-QNDZNMUS.js.map} +0 -0
  272. /package/dist/{chunk-CTLAIMJP.js.map → chunk-QO6QHZTW.js.map} +0 -0
  273. /package/dist/{chunk-ISDCUB2Q.js.map → chunk-TCQFIUKQ.js.map} +0 -0
  274. /package/dist/{chunk-MSJKALUF.js.map → chunk-WTL5RI2J.js.map} +0 -0
  275. /package/dist/{chunk-A3VUXG5G.js.map → chunk-YRERFQ7Z.js.map} +0 -0
  276. /package/dist/{claim-YXL2HUFU.js.map → claim-KPJXAUQW.js.map} +0 -0
  277. /package/dist/{companies-U55HX5JN.js.map → companies-SD36QDTM.js.map} +0 -0
  278. /package/dist/{complete-VABZEJTL.js.map → complete-Y3M6OXPA.js.map} +0 -0
  279. /package/dist/{connect-6KS42I3C.js.map → connect-QNPBSMWK.js.map} +0 -0
  280. /package/dist/{conversation-UEIXBJ32.js.map → conversation-EEL3AY6B.js.map} +0 -0
  281. /package/dist/{conversions-V7ZPJ5T7.js.map → conversions-7A34JRO4.js.map} +0 -0
  282. /package/dist/{create-5NLAAJE4.js.map → create-4H273ZGZ.js.map} +0 -0
  283. /package/dist/{create-7L6SXSPH.js.map → create-6NJRTWYT.js.map} +0 -0
  284. /package/dist/{create-UMVQNYZF.js.map → create-GKC3DLQK.js.map} +0 -0
  285. /package/dist/{create-NZIFE6O7.js.map → create-JTTFEJZE.js.map} +0 -0
  286. /package/dist/{creatives-5V3ZGVO6.js.map → creatives-FNHTRAAH.js.map} +0 -0
  287. /package/dist/{creatives-4A4HJKD3.js.map → creatives-IFAOJHLW.js.map} +0 -0
  288. /package/dist/{credentials-PB3RFZOC.js.map → credentials-7L3K6QFN.js.map} +0 -0
  289. /package/dist/{critique-SZRPZU2P.js.map → critique-BZLL3N37.js.map} +0 -0
  290. /package/dist/{critique-FRBVRWVL.js.map → critique-GEBGDHWB.js.map} +0 -0
  291. /package/dist/{crm-SVQ22Q6N.js.map → crm-4IGMD5QF.js.map} +0 -0
  292. /package/dist/{crm-I6E2FACM.js.map → crm-J3HX3ZT6.js.map} +0 -0
  293. /package/dist/{customers-ZB6EYQEH.js.map → customers-TSJH2AUE.js.map} +0 -0
  294. /package/dist/{delete-I7MTK63S.js.map → delete-56HFQZCX.js.map} +0 -0
  295. /package/dist/{delete-7MNFMQ6X.js.map → delete-JZUAO6LZ.js.map} +0 -0
  296. /package/dist/{delete-HE2ACICZ.js.map → delete-XTCS5H6L.js.map} +0 -0
  297. /package/dist/{demographics-BLL7UL26.js.map → demographics-DKT2UN4S.js.map} +0 -0
  298. /package/dist/{discard-6GTJKV37.js.map → discard-2357VMCI.js.map} +0 -0
  299. /package/dist/{domain-FHJKL6ZC.js.map → domain-NM553OX2.js.map} +0 -0
  300. /package/dist/{draft-3GZ3RTYT.js.map → draft-FDJK7FLI.js.map} +0 -0
  301. /package/dist/{draft-4W5CP2R7.js.map → draft-NEXKT5HF.js.map} +0 -0
  302. /package/dist/{draft-REIQ6JCS.js.map → draft-UDDLC7YZ.js.map} +0 -0
  303. /package/dist/{facets-HCI6JP4Q.js.map → facets-6R4DOSZJ.js.map} +0 -0
  304. /package/dist/{feedback-CM63S3ME.js.map → feedback-WW6YQQJA.js.map} +0 -0
  305. /package/dist/{feedback-record-4EPVZ6BQ.js.map → feedback-record-KGYP2IUQ.js.map} +0 -0
  306. /package/dist/{fetch-2ZONBBKW.js.map → fetch-JGUKB6R7.js.map} +0 -0
  307. /package/dist/{fonts-T6BDCPSZ.js.map → fonts-JRQFPSS6.js.map} +0 -0
  308. /package/dist/{forecast-EKOVQJ4F.js.map → forecast-72GMGD64.js.map} +0 -0
  309. /package/dist/{funnel-ISMIHL3P.js.map → funnel-BJJQI72Z.js.map} +0 -0
  310. /package/dist/{get-X5B6VCSC.js.map → get-DC3WBYJD.js.map} +0 -0
  311. /package/dist/{get-LSIYBPPA.js.map → get-HTAU7NQU.js.map} +0 -0
  312. /package/dist/{google-S7AQ7KOJ.js.map → google-UC5RRXF3.js.map} +0 -0
  313. /package/dist/{google-ads-VYRPY3FQ.js.map → google-ads-OLFRVBP6.js.map} +0 -0
  314. /package/dist/{history-2F3IPVQU.js.map → history-IFJKE65W.js.map} +0 -0
  315. /package/dist/{hubspot-VFGBXW2X.js.map → hubspot-AT4E52RB.js.map} +0 -0
  316. /package/dist/{ideas-FYW4XSSC.js.map → ideas-BUJVMRQF.js.map} +0 -0
  317. /package/dist/{images-3EHPQRQD.js.map → images-MWG3CNPG.js.map} +0 -0
  318. /package/dist/{ingest-SREMQAWS.js.map → ingest-F7XSH47V.js.map} +0 -0
  319. /package/dist/{ingest-OFVANVIF.js.map → ingest-XIX4CZ2P.js.map} +0 -0
  320. /package/dist/{inspect-PWUKLRNZ.js.map → inspect-4O2SAWNX.js.map} +0 -0
  321. /package/dist/{keyword-metrics-SGOGGYHN.js.map → keyword-metrics-4UDAJAQJ.js.map} +0 -0
  322. /package/dist/{keywords-for-site-NAZSCVQR.js.map → keywords-for-site-HZCZK3EI.js.map} +0 -0
  323. /package/dist/{landing-33KYCXXA.js.map → landing-2L325EK3.js.map} +0 -0
  324. /package/dist/{leads-Y3PFOEGM.js.map → leads-TNZW3RTA.js.map} +0 -0
  325. /package/dist/{learn-WQ2QQ77L.js.map → learn-KNTDSDPX.js.map} +0 -0
  326. /package/dist/{line-item-writes-S4JLVWTU.js.map → line-item-writes-6BWPQSOY.js.map} +0 -0
  327. /package/dist/{line-items-DMXOAXFU.js.map → line-items-525PQOI3.js.map} +0 -0
  328. /package/dist/{link-4DNY5OSY.js.map → link-SJQFQLTY.js.map} +0 -0
  329. /package/dist/{linkedin-D22GQOKW.js.map → linkedin-OD36IRJS.js.map} +0 -0
  330. /package/dist/{list-YFET6MM3.js.map → list-DKA4BDKT.js.map} +0 -0
  331. /package/dist/{list-H7V6MUUV.js.map → list-QEPDSHHY.js.map} +0 -0
  332. /package/dist/{list-CQXOFLNY.js.map → list-X3Q5MSYK.js.map} +0 -0
  333. /package/dist/{log-SA4GFECI.js.map → log-S4U4JQ77.js.map} +0 -0
  334. /package/dist/{lookup-32HPES25.js.map → lookup-CMB2JELV.js.map} +0 -0
  335. /package/dist/{make-T2JR6IA5.js.map → make-ZKG6IKEL.js.map} +0 -0
  336. /package/dist/{mcp-OM6JLDQ6.js.map → mcp-ACBDK6UV.js.map} +0 -0
  337. /package/dist/{media-sources-JHTGT6FF.js.map → media-sources-LCIPLOTF.js.map} +0 -0
  338. /package/dist/{members-KDJBWRU5.js.map → members-3B43WCMP.js.map} +0 -0
  339. /package/dist/{normalize-JEXAJD4K.js.map → normalize-QFKNYVLR.js.map} +0 -0
  340. /package/dist/{performance-SI2ZRX5D.js.map → performance-ZOWSMCZF.js.map} +0 -0
  341. /package/dist/{plan-UEYS6CHL.js.map → plan-PZVXAECA.js.map} +0 -0
  342. /package/dist/{promoted-tweet-writes-ADZNQUNV.js.map → promoted-tweet-writes-UBK3GPXT.js.map} +0 -0
  343. /package/dist/{promoted-tweets-CNREPMPQ.js.map → promoted-tweets-MTZ7SSVK.js.map} +0 -0
  344. /package/dist/{publish-2MQNUKLF.js.map → publish-N7WR2HAO.js.map} +0 -0
  345. /package/dist/{questionnaire-4HSUNNNC.js.map → questionnaire-SGHGA4AZ.js.map} +0 -0
  346. /package/dist/{reddit-C73WD45T.js.map → reddit-LWV2OILV.js.map} +0 -0
  347. /package/dist/{refresh-FYOCED4T.js.map → refresh-GGMYGGUW.js.map} +0 -0
  348. /package/dist/{release-HJZCWKY6.js.map → release-B5B7TWMA.js.map} +0 -0
  349. /package/dist/{remove-WB6LFXWK.js.map → remove-EWZMAYUI.js.map} +0 -0
  350. /package/dist/{reopen-3VQ4NYZ5.js.map → reopen-BAE4WPC6.js.map} +0 -0
  351. /package/dist/{rerun-OV3TEE6P.js.map → rerun-KHHPDTLP.js.map} +0 -0
  352. /package/dist/{research-6WRKGPRC.js.map → research-GR27TIGA.js.map} +0 -0
  353. /package/dist/{research-7JKXF6BI.js.map → research-KMKYFBWF.js.map} +0 -0
  354. /package/dist/{reset-5BMABGUG.js.map → reset-6XVTFUBM.js.map} +0 -0
  355. /package/dist/{reset-F4BDAHUI.js.map → reset-BU6IJGOR.js.map} +0 -0
  356. /package/dist/{resolve-QRATNPWX.js.map → resolve-3EPJNPRF.js.map} +0 -0
  357. /package/dist/{retry-B4JRFPPF.js.map → retry-SWTQWKJM.js.map} +0 -0
  358. /package/dist/{retry-SQSIAX33.js.map → retry-U4XMO7PA.js.map} +0 -0
  359. /package/dist/{run-FU3UF4YV.js.map → run-EXER4CJ5.js.map} +0 -0
  360. /package/dist/{run-6NXPDWRP.js.map → run-YVWGH5C5.js.map} +0 -0
  361. /package/dist/{scaffold-ad-4VTZB4JH.js.map → scaffold-ad-HKGKQUR7.js.map} +0 -0
  362. /package/dist/{scaffold-static-ad-AB2RG3SH.js.map → scaffold-static-ad-Q3AU7QQ4.js.map} +0 -0
  363. /package/dist/{scaffold-video-RSGJWHHT.js.map → scaffold-video-M63JFOPT.js.map} +0 -0
  364. /package/dist/{schedule-WZF3BQSX.js.map → schedule-RILFJJ2P.js.map} +0 -0
  365. /package/dist/{scheduled-agents-J75TOVGN.js.map → scheduled-agents-CUSH7BI5.js.map} +0 -0
  366. /package/dist/{schema-O5PX4O4J.js.map → schema-JASSX36C.js.map} +0 -0
  367. /package/dist/{search-WYO77TIF.js.map → search-PP5PH3NM.js.map} +0 -0
  368. /package/dist/{select-G5W6WGRB.js.map → select-O4NQK5A4.js.map} +0 -0
  369. /package/dist/{sends-E5NSPLNS.js.map → sends-ZOT5WPVC.js.map} +0 -0
  370. /package/dist/{set-prompt-PJA7LUUJ.js.map → set-prompt-SHMGN6KR.js.map} +0 -0
  371. /package/dist/{setup-links-HFWMDF6E.js.map → setup-links-6THA2YOJ.js.map} +0 -0
  372. /package/dist/{site-YJJBAS7M.js.map → site-JRCQUJOE.js.map} +0 -0
  373. /package/dist/{sources-VRRDVWZC.js.map → sources-WRC3LAZQ.js.map} +0 -0
  374. /package/dist/{stale-I6UGM3MO.js.map → stale-ZBXHYQ6Z.js.map} +0 -0
  375. /package/dist/{status-TCOUMPJS.js.map → status-GG6UTBWM.js.map} +0 -0
  376. /package/dist/{sync-TWV4HUHZ.js.map → sync-6R64PGCZ.js.map} +0 -0
  377. /package/dist/{sync-definition-K6UMLDZF.js.map → sync-definition-YTTTJMV4.js.map} +0 -0
  378. /package/dist/{tags-AWO5FFGM.js.map → tags-4CEVGCMN.js.map} +0 -0
  379. /package/dist/{tags-NBUNSN5L.js.map → tags-7CGYLMST.js.map} +0 -0
  380. /package/dist/{tags-NBVQWFS2.js.map → tags-H6MESAFQ.js.map} +0 -0
  381. /package/dist/{tags-ZOK7CY4V.js.map → tags-PAEIW2UI.js.map} +0 -0
  382. /package/dist/{tags-DGLT344J.js.map → tags-PLB6UT4U.js.map} +0 -0
  383. /package/dist/{targeting-criteria-MG7RLBOG.js.map → targeting-criteria-G2BAM34G.js.map} +0 -0
  384. /package/dist/{targets-2B5AG4E4.js.map → targets-HE2LJCHE.js.map} +0 -0
  385. /package/dist/{templates-IXF2C2LD.js.map → templates-OSMHAXLI.js.map} +0 -0
  386. /package/dist/{testimonials-WNNC5PKQ.js.map → testimonials-7LPKA54Y.js.map} +0 -0
  387. /package/dist/{top-companies-B2IZYN4T.js.map → top-companies-QYBVUFSB.js.map} +0 -0
  388. /package/dist/{translate-MGMGQ27R.js.map → translate-67D6PBVJ.js.map} +0 -0
  389. /package/dist/{triggers-3DDV3OJ3.js.map → triggers-BEJHXIRZ.js.map} +0 -0
  390. /package/dist/{unlink-6M577LT6.js.map → unlink-ANZSGHCG.js.map} +0 -0
  391. /package/dist/{unstage-KNCIQR4E.js.map → unstage-HU7G23ZL.js.map} +0 -0
  392. /package/dist/{unstage-4EJNGWUT.js.map → unstage-JDC2HBEI.js.map} +0 -0
  393. /package/dist/{update-7SK6PHDL.js.map → update-2QJ2F43N.js.map} +0 -0
  394. /package/dist/{update-4NHLEM64.js.map → update-4DATQZGJ.js.map} +0 -0
  395. /package/dist/{update-U3GEUFNY.js.map → update-7226ZVPC.js.map} +0 -0
  396. /package/dist/{update-PMFYYMFX.js.map → update-K7EJ45LU.js.map} +0 -0
  397. /package/dist/{upload-ITKCCYOQ.js.map → upload-42A6MAS3.js.map} +0 -0
  398. /package/dist/{url-options-UFRD42MD.js.map → url-options-3XRKJSFA.js.map} +0 -0
  399. /package/dist/{url-params-GAEQM2MQ.js.map → url-params-EHUS5YG5.js.map} +0 -0
  400. /package/dist/{validate-4P2L4AXG.js.map → validate-KBPZX2H7.js.map} +0 -0
  401. /package/dist/{videos-YVGJ3WO5.js.map → videos-FILPMPRL.js.map} +0 -0
  402. /package/dist/{web-M7EYV5DF.js.map → web-KZFJIKDU.js.map} +0 -0
  403. /package/dist/{winning-ads-4SU5DBEY.js.map → winning-ads-NLHGB3GX.js.map} +0 -0
  404. /package/dist/{write-commands-7FT3MTOZ.js.map → write-commands-JCM6ZMUJ.js.map} +0 -0
  405. /package/dist/{x-ESEGQ3W2.js.map → x-GVNB2MV2.js.map} +0 -0
@@ -12,7 +12,7 @@ import {
12
12
  onlyCondition,
13
13
  triggerProblem,
14
14
  validateEventName
15
- } from "./chunk-WXC3I4CT.js";
15
+ } from "./chunk-XABVEMC3.js";
16
16
 
17
17
  // ../api/src/event-sources/hubspot.ts
18
18
  var HUBSPOT_CONTACT_ID_VARIABLE = "id";
@@ -55,78 +55,137 @@ function hubspotDefaultMapping(sourceName, object = "contact") {
55
55
  }
56
56
 
57
57
  // ../api/src/event-sources/wire.ts
58
+ import { z as z2 } from "zod";
59
+
60
+ // ../api/src/event-sources/activecampaign.ts
58
61
  import { z } from "zod";
59
- var SOURCE_KINDS = ["webhook", "hubspot"];
62
+ var ACTIVECAMPAIGN_WEBHOOK_EVENTS = {
63
+ subscribe: "A contact subscribes to a list",
64
+ unsubscribe: "A contact unsubscribes",
65
+ update: "A contact's details change",
66
+ contact_tag_added: "A tag is added to a contact",
67
+ contact_tag_removed: "A tag is removed from a contact",
68
+ subscriber_note: "A note is added to a contact",
69
+ contact_task_add: "A task is added to a contact",
70
+ sent: "A campaign starts sending",
71
+ open: "A contact opens a campaign",
72
+ click: "A contact clicks a link in a campaign",
73
+ reply: "A contact replies to a campaign",
74
+ forward: "A contact forwards a campaign",
75
+ share: "A contact shares a campaign",
76
+ bounce: "A campaign email bounces",
77
+ list_add: "A list is created",
78
+ deal_add: "A deal is created",
79
+ deal_update: "A deal changes",
80
+ deal_note_add: "A note is added to a deal",
81
+ deal_task_add: "A task is added to a deal",
82
+ deal_task_complete: "A deal task is completed",
83
+ deal_pipeline_add: "A pipeline is created",
84
+ deal_stage_add: "A deal stage is created",
85
+ deal_tasktype_add: "A deal task type is created",
86
+ account_add: "An account is created",
87
+ account_update: "An account changes",
88
+ account_contact_add: "A contact is added to an account",
89
+ account_contact_update: "A contact on an account changes"
90
+ };
91
+ var ACTIVECAMPAIGN_WEBHOOK_EVENT_TYPES = Object.keys(
92
+ ACTIVECAMPAIGN_WEBHOOK_EVENTS
93
+ );
94
+ var EVENT_PREFIX = "activecampaign.";
95
+ function activeCampaignEventOf(eventName) {
96
+ if (!eventName.startsWith(EVENT_PREFIX)) return null;
97
+ const type = eventName.slice(EVENT_PREFIX.length);
98
+ return type in ACTIVECAMPAIGN_WEBHOOK_EVENTS ? type : null;
99
+ }
100
+ var activeCampaignEventsSchema = z.array(z.string().trim().min(1)).min(1, "Pick at least one ActiveCampaign event to listen to.").max(ACTIVECAMPAIGN_WEBHOOK_EVENT_TYPES.length).transform((raw, ctx) => {
101
+ const picked = /* @__PURE__ */ new Set();
102
+ for (const item of raw) {
103
+ const type = activeCampaignEventOf(item) ?? (item in ACTIVECAMPAIGN_WEBHOOK_EVENTS ? item : null);
104
+ if (type === null) {
105
+ ctx.addIssue({
106
+ code: "custom",
107
+ message: `"${item}" is not an ActiveCampaign event. Pick from: ${ACTIVECAMPAIGN_WEBHOOK_EVENT_TYPES.join(", ")}.`
108
+ });
109
+ return z.NEVER;
110
+ }
111
+ picked.add(type);
112
+ }
113
+ return ACTIVECAMPAIGN_WEBHOOK_EVENT_TYPES.filter((type) => picked.has(type));
114
+ });
115
+ var ACTIVECAMPAIGN_WEBHOOK_STATES = ["listening", "not_configured", "failed"];
116
+
117
+ // ../api/src/event-sources/wire.ts
118
+ var SOURCE_KINDS = ["webhook", "hubspot", "activecampaign"];
60
119
  var SOURCE_STATUSES = ["learning", "counting", "paused"];
61
120
  var SOURCE_NAME_MAX = 80;
62
- var sourceNameSchema = z.string().trim().min(1).max(SOURCE_NAME_MAX).refine((name) => validateEventName(name) === null, REJECTION_MESSAGES.invalid_name);
63
- var sourceIdSchema = z.string().min(1);
64
- var sourceMappingSchema = z.record(z.string(), z.string().min(1)).superRefine((mapping, ctx) => {
121
+ var sourceNameSchema = z2.string().trim().min(1).max(SOURCE_NAME_MAX).refine((name) => validateEventName(name) === null, REJECTION_MESSAGES.invalid_name);
122
+ var sourceIdSchema = z2.string().min(1);
123
+ var sourceMappingSchema = z2.record(z2.string(), z2.string().min(1)).superRefine((mapping, ctx) => {
65
124
  for (const row of Object.keys(mapping)) {
66
125
  const problem = mappingRowProblem(row);
67
126
  if (problem !== null) ctx.addIssue({ code: "custom", message: problem, path: [row] });
68
127
  }
69
128
  });
70
- var currencyCodeSchema = z.string().trim().toUpperCase().regex(/^[A-Z]{3}$/, "A currency is a three-letter code, like EUR or USD.");
71
- var hubspotObjectSchema = z.enum(HUBSPOT_OBJECTS);
72
- var hubspotDealContactsSchema = z.enum(HUBSPOT_DEAL_CONTACTS);
73
- var hubspotConditionInputSchema = z.strictObject({
74
- property: z.string().trim().min(1),
129
+ var currencyCodeSchema = z2.string().trim().toUpperCase().regex(/^[A-Z]{3}$/, "A currency is a three-letter code, like EUR or USD.");
130
+ var hubspotObjectSchema = z2.enum(HUBSPOT_OBJECTS);
131
+ var hubspotDealContactsSchema = z2.enum(HUBSPOT_DEAL_CONTACTS);
132
+ var hubspotConditionInputSchema = z2.strictObject({
133
+ property: z2.string().trim().min(1),
75
134
  /** One of the property's kind's operators (`baker hubspot contacts properties` lists them); `is` when unsaid. */
76
- operator: z.string().trim().min(1).default("is"),
135
+ operator: z2.string().trim().min(1).default("is"),
77
136
  /** As HubSpot spells them: an option's internal value, a number, a `YYYY-MM-DD`, `true`/`false`. None for an empty check, two for a between, several for a list. */
78
- values: z.array(z.string().trim().min(1)).max(50).default([])
137
+ values: z2.array(z2.string().trim().min(1)).max(50).default([])
79
138
  });
80
- var conditionLogicSchema = z.enum(CONDITION_LOGICS);
81
- var conditionGroupInputSchema = z.strictObject({
139
+ var conditionLogicSchema = z2.enum(CONDITION_LOGICS);
140
+ var conditionGroupInputSchema = z2.strictObject({
82
141
  logic: conditionLogicSchema,
83
- conditions: z.array(hubspotConditionInputSchema).min(1).max(TRIGGER_CONDITIONS_MAX)
142
+ conditions: z2.array(hubspotConditionInputSchema).min(1).max(TRIGGER_CONDITIONS_MAX)
84
143
  });
85
- var combinedInputSchema = z.strictObject({
144
+ var combinedInputSchema = z2.strictObject({
86
145
  /** How the rows combine: `And` (every one) or `Or` (any one) — a Form's filter's "Match AND / OR". */
87
146
  logic: conditionLogicSchema.default("And"),
88
147
  /** Conditions, and groups of conditions with their own logic, one level deep. */
89
- conditions: z.array(z.union([hubspotConditionInputSchema, conditionGroupInputSchema])).min(1).max(TRIGGER_CONDITIONS_MAX)
148
+ conditions: z2.array(z2.union([hubspotConditionInputSchema, conditionGroupInputSchema])).min(1).max(TRIGGER_CONDITIONS_MAX)
90
149
  }).superRefine((trigger, context) => {
91
150
  const problem = triggerProblem(trigger);
92
151
  if (problem !== null) context.addIssue({ code: "custom", message: problem });
93
152
  });
94
- var hubspotTriggerInputSchema = z.union([combinedInputSchema, hubspotConditionInputSchema]).transform((input) => "conditions" in input ? input : onlyCondition(input));
153
+ var hubspotTriggerInputSchema = z2.union([combinedInputSchema, hubspotConditionInputSchema]).transform((input) => "conditions" in input ? input : onlyCondition(input));
95
154
  var hubspotConditionSchema = hubspotConditionInputSchema.extend({
96
- propertyLabel: z.string(),
97
- kind: z.enum(HUBSPOT_PROPERTY_KINDS),
155
+ propertyLabel: z2.string(),
156
+ kind: z2.enum(HUBSPOT_PROPERTY_KINDS),
98
157
  /** A select that holds several values at once (`a;b`); decides what HubSpot may filter on. */
99
- multiple: z.boolean().optional(),
100
- valueLabels: z.array(z.string())
158
+ multiple: z2.boolean().optional(),
159
+ valueLabels: z2.array(z2.string())
101
160
  });
102
161
  var hubspotTriggerFields = {
103
162
  logic: conditionLogicSchema,
104
- conditions: z.array(
105
- z.union([
163
+ conditions: z2.array(
164
+ z2.union([
106
165
  hubspotConditionSchema,
107
- z.strictObject({ logic: conditionLogicSchema, conditions: z.array(hubspotConditionSchema) })
166
+ z2.strictObject({ logic: conditionLogicSchema, conditions: z2.array(hubspotConditionSchema) })
108
167
  ])
109
168
  )
110
169
  };
111
- var hubspotWatchSchema = z.strictObject({
170
+ var hubspotWatchSchema = z2.strictObject({
112
171
  ...hubspotTriggerFields,
113
172
  object: hubspotObjectSchema,
114
173
  contacts: hubspotDealContactsSchema.optional()
115
174
  });
116
- var sampleRecordSchema = z.strictObject({ id: z.string(), properties: z.record(z.string(), z.string()) });
117
- var hubspotPreviewRequestSchema = z.strictObject({
175
+ var sampleRecordSchema = z2.strictObject({ id: z2.string(), properties: z2.record(z2.string(), z2.string()) });
176
+ var hubspotPreviewRequestSchema = z2.strictObject({
118
177
  object: hubspotObjectSchema.default("contact"),
119
178
  trigger: hubspotTriggerInputSchema,
120
179
  /** Property names to read off the sample; `id` is always there. On a deal or a lead, `contact.<name>` reads its first contact. */
121
- properties: z.array(z.string().trim().min(1)).max(60).optional(),
180
+ properties: z2.array(z2.string().trim().min(1)).max(60).optional(),
122
181
  /** The record to draw the preview from — an id, or text to search (an email or a name for a contact, a deal's or a lead's name). The one most recently at the trigger when unsaid. */
123
- contact: z.string().trim().min(1).max(200).optional()
182
+ contact: z2.string().trim().min(1).max(200).optional()
124
183
  });
125
- var hubspotPreviewSchema = z.strictObject({
184
+ var hubspotPreviewSchema = z2.strictObject({
126
185
  /** Records satisfying the trigger today — the ones that will NOT be counted. */
127
- total: z.number(),
186
+ total: z2.number(),
128
187
  /** False when the trigger has more combinations than HubSpot's search takes, so `total` is only near. */
129
- exact: z.boolean().optional(),
188
+ exact: z2.boolean().optional(),
130
189
  /**
131
190
  * The sample record the trigger is on, with the properties asked for and
132
191
  * the contacts behind it, first first; none when nothing fits.
@@ -136,14 +195,14 @@ var hubspotPreviewSchema = z.strictObject({
136
195
  * people the event is about. Three parallel nullable fields, exactly one of
137
196
  * them ever set, would say the same thing and let a caller read the wrong one.
138
197
  */
139
- record: sampleRecordSchema.extend({ contacts: z.array(sampleRecordSchema) }).nullable()
198
+ record: sampleRecordSchema.extend({ contacts: z2.array(sampleRecordSchema) }).nullable()
140
199
  });
141
- var sourcesRequestSchema = z.strictObject({
200
+ var sourcesRequestSchema = z2.strictObject({
142
201
  /** The company's own server door: made once, `counting` from the start, the same address for ever after. */
143
- server: z.strictObject({}).optional(),
144
- create: z.strictObject({ name: sourceNameSchema }).optional(),
202
+ server: z2.strictObject({}).optional(),
203
+ create: z2.strictObject({ name: sourceNameSchema }).optional(),
145
204
  /** A HubSpot event: read every five minutes, counting from now. The labels are looked up server-side. */
146
- createHubspot: z.strictObject({
205
+ createHubspot: z2.strictObject({
147
206
  name: sourceNameSchema.optional(),
148
207
  /** A contact, a deal or a lead. A deal's and a lead's event is about its contact, read through `contact.<property>` rows. */
149
208
  object: hubspotObjectSchema.default("contact"),
@@ -153,11 +212,23 @@ var sourcesRequestSchema = z.strictObject({
153
212
  /** Rows to read off the record, over the defaults; the same table `map` writes. */
154
213
  mapping: sourceMappingSchema.optional(),
155
214
  /** A number property on the record to read as the amount; needs `currency` beside it. Sugar over the mapping's `value` and `currency` rows. */
156
- amountProperty: z.string().trim().min(1).optional(),
215
+ amountProperty: z2.string().trim().min(1).optional(),
157
216
  currency: currencyCodeSchema.optional()
158
217
  }).optional(),
218
+ /**
219
+ * An ActiveCampaign source: ActiveCampaign's own webhook, made on the
220
+ * account when this is applied, sending the events picked here. Each raises
221
+ * `activecampaign.<type>` and counts from then on.
222
+ */
223
+ createActiveCampaign: z2.strictObject({
224
+ name: sourceNameSchema.optional(),
225
+ /** ActiveCampaign's event names (`subscribe`, `deal_update`, …); the lead and deal moments when unsaid. */
226
+ events: activeCampaignEventsSchema.optional(),
227
+ /** Which connection, when the company has more than one. */
228
+ account: z2.string().trim().min(1).optional()
229
+ }).optional(),
159
230
  /** Change what a HubSpot event watches. It counts from now on under the new trigger; the rows stay. The object cannot change: the rows read it. */
160
- setTrigger: z.strictObject({
231
+ setTrigger: z2.strictObject({
161
232
  sourceId: sourceIdSchema,
162
233
  trigger: hubspotTriggerInputSchema,
163
234
  contacts: hubspotDealContactsSchema.optional()
@@ -165,9 +236,9 @@ var sourcesRequestSchema = z.strictObject({
165
236
  /** Ask HubSpot what a trigger would count today, and read one real record, without making anything. */
166
237
  preview: hubspotPreviewRequestSchema.optional(),
167
238
  /** Change where a HubSpot-read source takes its amount from; no `amountProperty` clears it. Sugar over `map`. */
168
- setAmount: z.strictObject({
239
+ setAmount: z2.strictObject({
169
240
  sourceId: sourceIdSchema,
170
- amountProperty: z.string().trim().min(1).optional(),
241
+ amountProperty: z2.string().trim().min(1).optional(),
171
242
  currency: currencyCodeSchema.optional()
172
243
  }).optional(),
173
244
  /**
@@ -179,10 +250,10 @@ var sourcesRequestSchema = z.strictObject({
179
250
  * condition is not an event today — and this reports only moments HubSpot
180
251
  * has a timestamp for, so nothing is invented. Dry unless `write`.
181
252
  */
182
- backfill: z.strictObject({
253
+ backfill: z2.strictObject({
183
254
  sourceId: sourceIdSchema,
184
255
  /** ISO instant, or Unix milliseconds. Bounded by the 400 days the store keeps. */
185
- since: z.union([z.string().trim().min(1), z.number()]),
256
+ since: z2.union([z2.string().trim().min(1), z2.number()]),
186
257
  /**
187
258
  * Where a capped run carries on from: only records last changed at or
188
259
  * before this instant are read.
@@ -195,37 +266,46 @@ var sourcesRequestSchema = z.strictObject({
195
266
  * again. `reachedBack` is the value to pass here, and the moments each
196
267
  * record is then judged on are still the whole of `since` to now.
197
268
  */
198
- before: z.union([z.string().trim().min(1), z.number()]).optional(),
269
+ before: z2.union([z2.string().trim().min(1), z2.number()]).optional(),
199
270
  /** Without it, nothing is counted and the answer says what would be. */
200
- write: z.boolean().optional()
271
+ write: z2.boolean().optional()
201
272
  }).optional(),
202
- map: z.strictObject({ sourceId: sourceIdSchema, mapping: sourceMappingSchema }).optional(),
203
- pause: z.strictObject({ sourceId: sourceIdSchema }).optional(),
204
- resume: z.strictObject({ sourceId: sourceIdSchema }).optional(),
205
- remove: z.strictObject({ sourceId: sourceIdSchema }).optional()
273
+ map: z2.strictObject({ sourceId: sourceIdSchema, mapping: sourceMappingSchema }).optional(),
274
+ pause: z2.strictObject({ sourceId: sourceIdSchema }).optional(),
275
+ resume: z2.strictObject({ sourceId: sourceIdSchema }).optional(),
276
+ remove: z2.strictObject({ sourceId: sourceIdSchema }).optional()
206
277
  });
207
- var sourceRefusalSchema = z.strictObject({
208
- at: z.number(),
209
- count: z.number(),
210
- code: z.string(),
211
- reason: z.string()
278
+ var sourceRefusalSchema = z2.strictObject({
279
+ at: z2.number(),
280
+ count: z2.number(),
281
+ code: z2.string(),
282
+ reason: z2.string()
212
283
  });
213
- var detectedFieldSchema = z.strictObject({
214
- path: z.string(),
215
- confidence: z.enum(["key", "value"])
284
+ var detectedFieldSchema = z2.strictObject({
285
+ path: z2.string(),
286
+ confidence: z2.enum(["key", "value"])
216
287
  });
217
288
  var HUBSPOT_LISTENING_STATES = ["listening", "not_configured", "failed"];
218
- var sourceViewSchema = z.strictObject({
219
- id: z.string(),
220
- kind: z.enum(SOURCE_KINDS),
221
- name: z.string(),
222
- status: z.enum(SOURCE_STATUSES),
289
+ var sourceViewSchema = z2.strictObject({
290
+ id: z2.string(),
291
+ kind: z2.enum(SOURCE_KINDS),
292
+ name: z2.string(),
293
+ status: z2.enum(SOURCE_STATUSES),
223
294
  /** The address a tool posts to. A HubSpot source has none: Baker calls HubSpot. */
224
- url: z.string().optional(),
295
+ url: z2.string().optional(),
225
296
  /** What a HubSpot source watches, and on which object. */
226
297
  hubspot: hubspotWatchSchema.optional(),
298
+ /**
299
+ * What an ActiveCampaign source listens to, and whether ActiveCampaign has
300
+ * the webhook that sends it: `listening` once it is made, `not_configured`
301
+ * until then, `failed` when ActiveCampaign refused it — `detail` says why.
302
+ */
303
+ activecampaign: z2.strictObject({
304
+ events: z2.array(z2.string()),
305
+ webhook: z2.strictObject({ state: z2.enum(ACTIVECAMPAIGN_WEBHOOK_STATES), detail: z2.string().optional() })
306
+ }).optional(),
227
307
  /** A HubSpot source counts changes from here on; one HubSpot reports from before it is dropped. Moves when the trigger changes. */
228
- countingSince: z.number().optional(),
308
+ countingSince: z2.number().optional(),
229
309
  /**
230
310
  * Whether HubSpot is keeping this source's changes for Baker, as last
231
311
  * checked: `listening` when the app's journal subscription on the account
@@ -233,10 +313,10 @@ var sourceViewSchema = z.strictObject({
233
313
  * (or cannot be, with no credentials); `failed` when HubSpot refused the
234
314
  * subscription. `detail` says what to do.
235
315
  */
236
- listening: z.strictObject({ state: z.enum(HUBSPOT_LISTENING_STATES), detail: z.string().optional() }).optional(),
316
+ listening: z2.strictObject({ state: z2.enum(HUBSPOT_LISTENING_STATES), detail: z2.string().optional() }).optional(),
237
317
  /** Why the last delivery could not be counted, in product words; absent when the last one was. */
238
- lastError: z.string().optional(),
239
- lastArrivalAt: z.number().optional(),
318
+ lastError: z2.string().optional(),
319
+ lastArrivalAt: z2.number().optional(),
240
320
  /**
241
321
  * What its last delivery **refused, event by event** — which `lastError` is
242
322
  * not and `lastArrivalAt` cannot be. A source refusing everything it
@@ -246,65 +326,67 @@ var sourceViewSchema = z.strictObject({
246
326
  */
247
327
  lastRefusal: sourceRefusalSchema.optional(),
248
328
  /** The first send, masked, while learning. Kept once confirmed. */
249
- sample: z.strictObject({ receivedAt: z.number(), body: z.string() }).optional(),
329
+ sample: z2.strictObject({ receivedAt: z2.number(), body: z2.string() }).optional(),
250
330
  /** Field → template; empty means the guess (an address) or the defaults (a HubSpot read). */
251
- mapping: z.record(z.string(), z.string()),
331
+ mapping: z2.record(z2.string(), z2.string()),
252
332
  /** The guess over the sample, for the sheet to prefill and the CLI to suggest. */
253
- detected: z.record(z.string(), detectedFieldSchema).optional(),
333
+ detected: z2.record(z2.string(), detectedFieldSchema).optional(),
254
334
  /** Every path the sample's first item holds, with its masked value — what the picker offers. */
255
- paths: z.array(z.strictObject({ path: z.string(), value: z.string() })).optional(),
335
+ paths: z2.array(z2.strictObject({ path: z2.string(), value: z2.string() })).optional(),
256
336
  /** `baker` when the sample already parses as the `POST /v1/events` contract and needs no mapping. */
257
- format: z.enum(["baker", "foreign"]).optional()
337
+ format: z2.enum(["baker", "foreign"]).optional()
258
338
  });
259
- var stagedSourceOpSchema = z.strictObject({
260
- kind: z.enum(["create", "setTrigger", "map", "status", "remove"]),
261
- ref: z.string(),
262
- name: z.string(),
263
- summary: z.string(),
339
+ var stagedSourceOpSchema = z2.strictObject({
340
+ kind: z2.enum(["create", "setTrigger", "map", "status", "remove"]),
341
+ ref: z2.string(),
342
+ name: z2.string(),
343
+ summary: z2.string(),
264
344
  /** On a create: what the source will watch and read. */
265
345
  hubspot: hubspotWatchSchema.optional(),
266
- mapping: z.record(z.string(), z.string()).optional(),
267
- status: z.enum(["paused", "counting"]).optional()
346
+ /** On an ActiveCampaign create: the events its webhook will send. */
347
+ activecampaign: z2.strictObject({ events: z2.array(z2.string()) }).optional(),
348
+ mapping: z2.record(z2.string(), z2.string()).optional(),
349
+ status: z2.enum(["paused", "counting"]).optional()
268
350
  });
269
- var backfillResultSchema = z.strictObject({
270
- sourceId: z.string(),
271
- name: z.string(),
272
- since: z.number(),
351
+ var backfillResultSchema = z2.strictObject({
352
+ sourceId: z2.string(),
353
+ name: z2.string(),
354
+ since: z2.number(),
273
355
  /** Records whose history was read. */
274
- examined: z.number(),
356
+ examined: z2.number(),
275
357
  /** Moments the trigger came to hold, across them. */
276
- entries: z.number(),
358
+ entries: z2.number(),
277
359
  /** Of those, already counted — the journal got there first, or a previous run did. */
278
- alreadyCounted: z.number(),
360
+ alreadyCounted: z2.number(),
279
361
  /** What a `write` run would hand over, or did. */
280
- pending: z.number(),
362
+ pending: z2.number(),
281
363
  /** Whether the read stopped at its cap; {@link BackfillResult.reachedBack} is where to carry on from. */
282
- capped: z.boolean(),
364
+ capped: z2.boolean(),
283
365
  /**
284
366
  * How far back the read got: the instant the oldest record it examined was
285
367
  * last changed. Only on a capped run, and it is the next run's `before`.
286
368
  */
287
- reachedBack: z.number().optional(),
288
- counted: z.number().optional(),
289
- refused: z.number().optional(),
290
- refusedReason: z.string().optional()
369
+ reachedBack: z2.number().optional(),
370
+ counted: z2.number().optional(),
371
+ refused: z2.number().optional(),
372
+ refusedReason: z2.string().optional()
291
373
  });
292
- var sourcesResponseSchema = z.strictObject({
293
- ok: z.literal(true),
294
- data: z.strictObject({
295
- sources: z.array(sourceViewSchema),
374
+ var sourcesResponseSchema = z2.strictObject({
375
+ ok: z2.literal(true),
376
+ data: z2.strictObject({
377
+ sources: z2.array(sourceViewSchema),
296
378
  /** Only when the request carried `preview`. */
297
379
  preview: hubspotPreviewSchema.optional(),
298
380
  /** Only when the request carried `backfill`. */
299
381
  backfill: backfillResultSchema.optional(),
300
382
  /** What this chat has staged, when one is attached: applied at Publish, dropped with a discard. */
301
- staged: z.array(stagedSourceOpSchema).optional()
383
+ staged: z2.array(stagedSourceOpSchema).optional()
302
384
  }),
303
- hints: z.array(z.string()).optional()
385
+ hints: z2.array(z2.string()).optional()
304
386
  });
305
387
 
306
388
  export {
307
389
  hubspotDefaultMapping,
308
390
  hubspotTriggerInputSchema
309
391
  };
310
- //# sourceMappingURL=chunk-7MQVCSA7.js.map
392
+ //# sourceMappingURL=chunk-6USNEQZT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../api/src/event-sources/hubspot.ts","../../api/src/event-sources/wire.ts","../../api/src/event-sources/activecampaign.ts"],"sourcesContent":["/**\n * What a HubSpot event reads by default, spelled as the same templates an\n * address's mapping uses — so the sheet shows one table for both, and a row\n * can be repointed at any property, or typed.\n *\n * ## Why defaults and not a fixed read\n *\n * The read used to be hard-wired: email from `email`, the Google click from\n * `hs_google_click_id`, and nothing anybody could change. Real accounts keep\n * the email under `work_email`, the deal value under a custom number\n * property, and a click id under whatever the tracking template wrote. The\n * defaults are HubSpot's standard names, which is where most accounts keep\n * them; every row is a template a person or the agent can change, and the\n * picker is the account's own property list, read live — never this table.\n *\n * An empty stored mapping means these — the same rule as an address, where\n * empty means \"the guess\".\n *\n * ## Three objects, one spelling\n *\n * A mention names a property of the object watched: `{{email}}` on a\n * contact source, `{{amount}}` on a deal source, `{{hs_pipeline_stage}}` on\n * a lead source, `{{id}}` the record's own id on any of them. A deal or a\n * lead source also reads the contact its record is about, through the\n * `contact.` namespace: `{{contact.email}}`, `{{contact.id}}`. The namespace\n * is what keeps the objects' properties apart in one table, and it is\n * spelled the way the Forms builder spells a nested field.\n */\n\nimport type { SourceField } from \"./fields\";\nimport type { HubspotObject } from \"./hubspotTrigger\";\nimport { mentionOf } from \"./template\";\n\n/** The variable that is the record's own id rather than a property: `{{id}}`. */\nexport const HUBSPOT_CONTACT_ID_VARIABLE = \"id\";\n\n/** On a deal source, the associated contact's properties are read as `{{contact.<property>}}`. */\nexport const HUBSPOT_CONTACT_PREFIX = \"contact.\";\n\n/** The path for a property of a deal's contact: `contact.email`. */\nexport function contactPath(property: string): string {\n return `${HUBSPOT_CONTACT_PREFIX}${property}`;\n}\n\n/** The contact property a `contact.<property>` path names, or null for a path of the record itself. */\nexport function contactPropertyOf(path: string): string | null {\n return path.startsWith(HUBSPOT_CONTACT_PREFIX) ? path.slice(HUBSPOT_CONTACT_PREFIX.length) : null;\n}\n\n/** HubSpot's standard contact property behind each field, where one exists. */\nexport const HUBSPOT_DEFAULT_PROPERTIES: Readonly<Partial<Record<SourceField, string>>> = {\n email: \"email\",\n phone: \"phone\",\n external_id: HUBSPOT_CONTACT_ID_VARIABLE,\n first_name: \"firstname\",\n last_name: \"lastname\",\n city: \"city\",\n postal_code: \"zip\",\n country: \"country\",\n gclid: \"hs_google_click_id\",\n fbclid: \"hs_facebook_click_id\",\n};\n\n/**\n * The person's rows read off the record's associated contact, for an object\n * that is about somebody rather than being them.\n */\nconst throughContact: Readonly<Partial<Record<SourceField, string>>> = Object.fromEntries(\n Object.entries(HUBSPOT_DEFAULT_PROPERTIES).map(([field, property]) => [field, contactPath(property)]),\n);\n\n/**\n * The same for a deal: the person is the deal's contact, the amount is the\n * deal's own — HubSpot keeps it as `amount` in `deal_currency_code`, on\n * every account, which is the one row a contact source could never fill by\n * default.\n */\nexport const HUBSPOT_DEAL_DEFAULT_PROPERTIES: Readonly<Partial<Record<SourceField, string>>> = {\n ...throughContact,\n value: \"amount\",\n currency: \"deal_currency_code\",\n};\n\n/**\n * The same for a lead. A lead is an interest in somebody, not an amount: it\n * has no `amount` and no currency of its own, so the value rows stay empty\n * and the funnel counts the step rather than money. Anyone who keeps a figure\n * on a custom lead property can still point `value` at it by hand.\n */\nexport const HUBSPOT_LEAD_DEFAULT_PROPERTIES: Readonly<Partial<Record<SourceField, string>>> = throughContact;\n\nconst DEFAULTS: Readonly<Record<HubspotObject, Readonly<Partial<Record<SourceField, string>>>>> = {\n contact: HUBSPOT_DEFAULT_PROPERTIES,\n deal: HUBSPOT_DEAL_DEFAULT_PROPERTIES,\n lead: HUBSPOT_LEAD_DEFAULT_PROPERTIES,\n};\n\n/** The mapping a HubSpot event starts with: its name as the event, the standard properties for the rest. */\nexport function hubspotDefaultMapping(\n sourceName: string,\n object: HubspotObject = \"contact\",\n): Partial<Record<SourceField, string>> {\n const mapping: Partial<Record<SourceField, string>> = { event_name: sourceName };\n for (const [field, property] of Object.entries(DEFAULTS[object])) {\n mapping[field as SourceField] = mentionOf(property);\n }\n return mapping;\n}\n\n/**\n * The mapping in force for a HubSpot event: what was saved, else the defaults.\n * Keyed by field, or by `properties.<key>` for an extra property of the event.\n */\nexport function hubspotMappingInForce(\n sourceName: string,\n stored: Readonly<Record<string, string>>,\n object: HubspotObject = \"contact\",\n): Record<string, string> {\n const explicit = Object.entries(stored).filter(([, template]) => template.trim() !== \"\");\n if (explicit.length > 0) return Object.fromEntries(explicit);\n return hubspotDefaultMapping(sourceName, object);\n}\n","/**\n * The contract between `baker analytics sources` and `POST /api/analytics/sources`,\n * and the address a source is given.\n *\n * One request shape with one optional operation in it, and every call answers\n * with the full list afterwards — the CLI never has to make a second request\n * to see what it just did, and the \"what arrived\" question is answered by the\n * same read that answers \"what exists\".\n */\nimport { z } from \"zod\";\nimport { REJECTION_MESSAGES, validateEventName } from \"../event-ingest/validation\";\nimport { ACTIVECAMPAIGN_WEBHOOK_STATES, activeCampaignEventsSchema } from \"./activecampaign\";\nimport { mappingRowProblem } from \"./fields\";\nimport {\n CONDITION_LOGICS,\n HUBSPOT_DEAL_CONTACTS,\n HUBSPOT_OBJECTS,\n HUBSPOT_PROPERTY_KINDS,\n type HubspotTriggerInput,\n onlyCondition,\n TRIGGER_CONDITIONS_MAX,\n triggerProblem,\n} from \"./hubspotTrigger\";\n\n/** Mirrors `EVENT_SOURCE_KINDS` / the status validator in the backend schema; this package must not depend on convex. */\nexport const SOURCE_KINDS = [\"webhook\", \"hubspot\", \"activecampaign\"] as const;\nexport type SourceKind = (typeof SOURCE_KINDS)[number];\nexport const SOURCE_STATUSES = [\"learning\", \"counting\", \"paused\"] as const;\nexport type SourceStatus = (typeof SOURCE_STATUSES)[number];\n\nexport const SOURCE_NAME_MAX = 80;\n\n/**\n * What a source may be called — which is the ingest door's own rule, because a\n * source's name IS the `event_name` every event it raises carries.\n *\n * Held here rather than at each door, and that is the whole point of it being\n * here. A name this refuses is not a bad label, it is a **source that can\n * never count anything**: every arrival is rejected `invalid_name`, the card\n * goes on reading \"Counting\", and the only trace is one red line per event on\n * a feed somebody has to think to open. That happened — a HubSpot source\n * called \"Matrícula Realizada\", refused for ever by a rule that was ASCII-only\n * — and the reason it could happen is that three doors took a name and none of\n * them knew the rule.\n *\n * `MAX_EVENT_NAME` is the same 80 as {@link SOURCE_NAME_MAX} and\n * `validateEventName` checks it, so the bound is stated once even though both\n * constants exist.\n */\nexport const sourceNameSchema = z\n .string()\n .trim()\n .min(1)\n .max(SOURCE_NAME_MAX)\n .refine((name) => validateEventName(name) === null, REJECTION_MESSAGES.invalid_name);\n\n/** Where a source's arrivals go: the token is the whole path after this. */\nexport const EVENT_SOURCE_PATH_PREFIX = \"/v1/sources/\";\n\n/**\n * The address to hand a tool, given the branded host published for this\n * environment — the same fallback rule as `eventIngestUrl`.\n */\nexport function eventSourceUrl(brandedUrl: string | undefined, convexSiteUrl: string, token: string): string {\n const base = (brandedUrl || convexSiteUrl).replace(/\\/$/, \"\");\n return `${base}${EVENT_SOURCE_PATH_PREFIX}${token}`;\n}\n\nconst sourceIdSchema = z.string().min(1);\n\n/**\n * Canonical field → template (`template.ts`): literal text with `{{path}}`\n * mentions, or a bare path. A `properties.<key>` row is an extra property of\n * the event (`fields.ts`). Anything else is refused so a typo cannot become a\n * silent no-op.\n */\nexport const sourceMappingSchema = z.record(z.string(), z.string().min(1)).superRefine((mapping, ctx) => {\n for (const row of Object.keys(mapping)) {\n const problem = mappingRowProblem(row);\n if (problem !== null) ctx.addIssue({ code: \"custom\", message: problem, path: [row] });\n }\n});\n\n/** ISO 4217, upper case: what `POST /v1/events` accepts as `currency`. */\nexport const currencyCodeSchema = z\n .string()\n .trim()\n .toUpperCase()\n .regex(/^[A-Z]{3}$/, \"A currency is a three-letter code, like EUR or USD.\");\n\n/** What a HubSpot source is a trigger on: a contact (the default), a deal or a lead. */\nexport const hubspotObjectSchema = z.enum(HUBSPOT_OBJECTS);\n/** For a deal: whose event it is — the deal's first contact, or every contact on it. */\nexport const hubspotDealContactsSchema = z.enum(HUBSPOT_DEAL_CONTACTS);\n\n/**\n * One condition of a HubSpot trigger — *when a contact's* (or *a deal's*)\n * [property] [operator] [values] (`hubspotTrigger.ts`).\n */\nexport const hubspotConditionInputSchema = z.strictObject({\n property: z.string().trim().min(1),\n /** One of the property's kind's operators (`baker hubspot contacts properties` lists them); `is` when unsaid. */\n operator: z.string().trim().min(1).default(\"is\"),\n /** As HubSpot spells them: an option's internal value, a number, a `YYYY-MM-DD`, `true`/`false`. None for an empty check, two for a between, several for a list. */\n values: z.array(z.string().trim().min(1)).max(50).default([]),\n});\n\nconst conditionLogicSchema = z.enum(CONDITION_LOGICS);\n\nconst conditionGroupInputSchema = z.strictObject({\n logic: conditionLogicSchema,\n conditions: z.array(hubspotConditionInputSchema).min(1).max(TRIGGER_CONDITIONS_MAX),\n});\n\nconst combinedInputSchema = z\n .strictObject({\n /** How the rows combine: `And` (every one) or `Or` (any one) — a Form's filter's \"Match AND / OR\". */\n logic: conditionLogicSchema.default(\"And\"),\n /** Conditions, and groups of conditions with their own logic, one level deep. */\n conditions: z\n .array(z.union([hubspotConditionInputSchema, conditionGroupInputSchema]))\n .min(1)\n .max(TRIGGER_CONDITIONS_MAX),\n })\n .superRefine((trigger, context) => {\n const problem = triggerProblem(trigger);\n if (problem !== null) context.addIssue({ code: \"custom\", message: problem });\n });\n\n/**\n * What a HubSpot source watches: one condition, or several combined — the\n * way a Form's filter combines them. A single condition is the short\n * spelling, and is read as a trigger of that one condition.\n */\nexport const hubspotTriggerInputSchema = z\n .union([combinedInputSchema, hubspotConditionInputSchema])\n .transform((input): HubspotTriggerInput => (\"conditions\" in input ? input : onlyCondition(input)));\n\nconst hubspotConditionSchema = hubspotConditionInputSchema.extend({\n propertyLabel: z.string(),\n kind: z.enum(HUBSPOT_PROPERTY_KINDS),\n /** A select that holds several values at once (`a;b`); decides what HubSpot may filter on. */\n multiple: z.boolean().optional(),\n valueLabels: z.array(z.string()),\n});\n\nconst hubspotTriggerFields = {\n logic: conditionLogicSchema,\n conditions: z.array(\n z.union([\n hubspotConditionSchema,\n z.strictObject({ logic: conditionLogicSchema, conditions: z.array(hubspotConditionSchema) }),\n ]),\n ),\n};\n\n/** The trigger as stored on a source: every condition resolved, and on its object. */\nexport const hubspotWatchSchema = z.strictObject({\n ...hubspotTriggerFields,\n object: hubspotObjectSchema,\n contacts: hubspotDealContactsSchema.optional(),\n});\nexport type HubspotWatchView = z.infer<typeof hubspotWatchSchema>;\n\n/** A sample record as the preview shows it: its id and the properties it holds, empty ones dropped. */\nconst sampleRecordSchema = z.strictObject({ id: z.string(), properties: z.record(z.string(), z.string()) });\n\n/** What a HubSpot event would count today, asked before it is made: the trigger and the properties to read off the sample. */\nexport const hubspotPreviewRequestSchema = z.strictObject({\n object: hubspotObjectSchema.default(\"contact\"),\n trigger: hubspotTriggerInputSchema,\n /** Property names to read off the sample; `id` is always there. On a deal or a lead, `contact.<name>` reads its first contact. */\n properties: z.array(z.string().trim().min(1)).max(60).optional(),\n /** The record to draw the preview from — an id, or text to search (an email or a name for a contact, a deal's or a lead's name). The one most recently at the trigger when unsaid. */\n contact: z.string().trim().min(1).max(200).optional(),\n});\nexport type HubspotPreviewRequest = z.infer<typeof hubspotPreviewRequestSchema>;\n\nexport const hubspotPreviewSchema = z.strictObject({\n /** Records satisfying the trigger today — the ones that will NOT be counted. */\n total: z.number(),\n /** False when the trigger has more combinations than HubSpot's search takes, so `total` is only near. */\n exact: z.boolean().optional(),\n /**\n * The sample record the trigger is on, with the properties asked for and\n * the contacts behind it, first first; none when nothing fits.\n *\n * One field rather than one per object: a contact source's record *is* the\n * person and its `contacts` is empty, while a deal's and a lead's carry the\n * people the event is about. Three parallel nullable fields, exactly one of\n * them ever set, would say the same thing and let a caller read the wrong one.\n */\n record: sampleRecordSchema.extend({ contacts: z.array(sampleRecordSchema) }).nullable(),\n});\nexport type HubspotPreview = z.infer<typeof hubspotPreviewSchema>;\n\nexport const sourcesRequestSchema = z.strictObject({\n /** The company's own server door: made once, `counting` from the start, the same address for ever after. */\n server: z.strictObject({}).optional(),\n create: z.strictObject({ name: sourceNameSchema }).optional(),\n /** A HubSpot event: read every five minutes, counting from now. The labels are looked up server-side. */\n createHubspot: z\n .strictObject({\n name: sourceNameSchema.optional(),\n /** A contact, a deal or a lead. A deal's and a lead's event is about its contact, read through `contact.<property>` rows. */\n object: hubspotObjectSchema.default(\"contact\"),\n trigger: hubspotTriggerInputSchema,\n /** On a deal: the deal's first contact (the default), or every contact on it, each its own event. */\n contacts: hubspotDealContactsSchema.optional(),\n /** Rows to read off the record, over the defaults; the same table `map` writes. */\n mapping: sourceMappingSchema.optional(),\n /** A number property on the record to read as the amount; needs `currency` beside it. Sugar over the mapping's `value` and `currency` rows. */\n amountProperty: z.string().trim().min(1).optional(),\n currency: currencyCodeSchema.optional(),\n })\n .optional(),\n /**\n * An ActiveCampaign source: ActiveCampaign's own webhook, made on the\n * account when this is applied, sending the events picked here. Each raises\n * `activecampaign.<type>` and counts from then on.\n */\n createActiveCampaign: z\n .strictObject({\n name: sourceNameSchema.optional(),\n /** ActiveCampaign's event names (`subscribe`, `deal_update`, …); the lead and deal moments when unsaid. */\n events: activeCampaignEventsSchema.optional(),\n /** Which connection, when the company has more than one. */\n account: z.string().trim().min(1).optional(),\n })\n .optional(),\n /** Change what a HubSpot event watches. It counts from now on under the new trigger; the rows stay. The object cannot change: the rows read it. */\n setTrigger: z\n .strictObject({\n sourceId: sourceIdSchema,\n trigger: hubspotTriggerInputSchema,\n contacts: hubspotDealContactsSchema.optional(),\n })\n .optional(),\n /** Ask HubSpot what a trigger would count today, and read one real record, without making anything. */\n preview: hubspotPreviewRequestSchema.optional(),\n /** Change where a HubSpot-read source takes its amount from; no `amountProperty` clears it. Sugar over `map`. */\n setAmount: z\n .strictObject({\n sourceId: sourceIdSchema,\n amountProperty: z.string().trim().min(1).optional(),\n currency: currencyCodeSchema.optional(),\n })\n .optional(),\n /**\n * Count a HubSpot event's history: every moment its trigger came to hold\n * since `since`, read out of HubSpot's own property history.\n *\n * Not the thing a source deliberately refuses to do. A source never\n * backfills the **present state** — somebody who already satisfies a\n * condition is not an event today — and this reports only moments HubSpot\n * has a timestamp for, so nothing is invented. Dry unless `write`.\n */\n backfill: z\n .strictObject({\n sourceId: sourceIdSchema,\n /** ISO instant, or Unix milliseconds. Bounded by the 400 days the store keeps. */\n since: z.union([z.string().trim().min(1), z.number()]),\n /**\n * Where a capped run carries on from: only records last changed at or\n * before this instant are read.\n *\n * The **read** is what it bounds, never the history. Records are chosen\n * most-recently-changed first, so a run that reaches its cap has covered\n * the newest of them and the rest are the ones nearest `since` — which\n * no shorter window can reach, because shortening one only drops\n * candidates from the old end and hands back the same newest records\n * again. `reachedBack` is the value to pass here, and the moments each\n * record is then judged on are still the whole of `since` to now.\n */\n before: z.union([z.string().trim().min(1), z.number()]).optional(),\n /** Without it, nothing is counted and the answer says what would be. */\n write: z.boolean().optional(),\n })\n .optional(),\n map: z.strictObject({ sourceId: sourceIdSchema, mapping: sourceMappingSchema }).optional(),\n pause: z.strictObject({ sourceId: sourceIdSchema }).optional(),\n resume: z.strictObject({ sourceId: sourceIdSchema }).optional(),\n remove: z.strictObject({ sourceId: sourceIdSchema }).optional(),\n});\nexport type SourcesRequest = z.infer<typeof sourcesRequestSchema>;\n/** The request as a caller writes it, before the schema fills its defaults — what the CLI builds. */\nexport type SourcesRequestInput = z.input<typeof sourcesRequestSchema>;\n\n/** A delivery that arrived and was refused — mirrors `sourceRefusalValidator` in the backend schema. */\nexport const sourceRefusalSchema = z.strictObject({\n at: z.number(),\n count: z.number(),\n code: z.string(),\n reason: z.string(),\n});\n\nexport const detectedFieldSchema = z.strictObject({\n path: z.string(),\n confidence: z.enum([\"key\", \"value\"]),\n});\n\n/** Whether HubSpot's journal is being told to keep the changes a source watches. */\nexport const HUBSPOT_LISTENING_STATES = [\"listening\", \"not_configured\", \"failed\"] as const;\nexport type HubspotListeningState = (typeof HUBSPOT_LISTENING_STATES)[number];\n\nexport const sourceViewSchema = z.strictObject({\n id: z.string(),\n kind: z.enum(SOURCE_KINDS),\n name: z.string(),\n status: z.enum(SOURCE_STATUSES),\n /** The address a tool posts to. A HubSpot source has none: Baker calls HubSpot. */\n url: z.string().optional(),\n /** What a HubSpot source watches, and on which object. */\n hubspot: hubspotWatchSchema.optional(),\n /**\n * What an ActiveCampaign source listens to, and whether ActiveCampaign has\n * the webhook that sends it: `listening` once it is made, `not_configured`\n * until then, `failed` when ActiveCampaign refused it — `detail` says why.\n */\n activecampaign: z\n .strictObject({\n events: z.array(z.string()),\n webhook: z.strictObject({ state: z.enum(ACTIVECAMPAIGN_WEBHOOK_STATES), detail: z.string().optional() }),\n })\n .optional(),\n /** A HubSpot source counts changes from here on; one HubSpot reports from before it is dropped. Moves when the trigger changes. */\n countingSince: z.number().optional(),\n /**\n * Whether HubSpot is keeping this source's changes for Baker, as last\n * checked: `listening` when the app's journal subscription on the account\n * names the property; `not_configured` when the app has not been told yet\n * (or cannot be, with no credentials); `failed` when HubSpot refused the\n * subscription. `detail` says what to do.\n */\n listening: z.strictObject({ state: z.enum(HUBSPOT_LISTENING_STATES), detail: z.string().optional() }).optional(),\n /** Why the last delivery could not be counted, in product words; absent when the last one was. */\n lastError: z.string().optional(),\n lastArrivalAt: z.number().optional(),\n /**\n * What its last delivery **refused, event by event** — which `lastError` is\n * not and `lastArrivalAt` cannot be. A source refusing everything it\n * receives has no arrival and no read failure, so without this it reads as\n * one nobody has sent anything to. `refusalWords` turns it into the\n * sentence a person is shown. Cleared by the next delivery that counts.\n */\n lastRefusal: sourceRefusalSchema.optional(),\n /** The first send, masked, while learning. Kept once confirmed. */\n sample: z.strictObject({ receivedAt: z.number(), body: z.string() }).optional(),\n /** Field → template; empty means the guess (an address) or the defaults (a HubSpot read). */\n mapping: z.record(z.string(), z.string()),\n /** The guess over the sample, for the sheet to prefill and the CLI to suggest. */\n detected: z.record(z.string(), detectedFieldSchema).optional(),\n /** Every path the sample's first item holds, with its masked value — what the picker offers. */\n paths: z.array(z.strictObject({ path: z.string(), value: z.string() })).optional(),\n /** `baker` when the sample already parses as the `POST /v1/events` contract and needs no mapping. */\n format: z.enum([\"baker\", \"foreign\"]).optional(),\n});\nexport type SourceView = z.infer<typeof sourceViewSchema>;\n\n/**\n * One change to the company's sources, staged inside a chat and applied when\n * it is published. `ref` is the source's id, or a `src_temp_*` for one the\n * chat makes.\n */\nexport const stagedSourceOpSchema = z.strictObject({\n kind: z.enum([\"create\", \"setTrigger\", \"map\", \"status\", \"remove\"]),\n ref: z.string(),\n name: z.string(),\n summary: z.string(),\n /** On a create: what the source will watch and read. */\n hubspot: hubspotWatchSchema.optional(),\n /** On an ActiveCampaign create: the events its webhook will send. */\n activecampaign: z.strictObject({ events: z.array(z.string()) }).optional(),\n mapping: z.record(z.string(), z.string()).optional(),\n status: z.enum([\"paused\", \"counting\"]).optional(),\n});\nexport type StagedSourceOp = z.infer<typeof stagedSourceOpSchema>;\n\n/** What a backfill found, and — on a `write` run — what became of it. */\nexport const backfillResultSchema = z.strictObject({\n sourceId: z.string(),\n name: z.string(),\n since: z.number(),\n /** Records whose history was read. */\n examined: z.number(),\n /** Moments the trigger came to hold, across them. */\n entries: z.number(),\n /** Of those, already counted — the journal got there first, or a previous run did. */\n alreadyCounted: z.number(),\n /** What a `write` run would hand over, or did. */\n pending: z.number(),\n /** Whether the read stopped at its cap; {@link BackfillResult.reachedBack} is where to carry on from. */\n capped: z.boolean(),\n /**\n * How far back the read got: the instant the oldest record it examined was\n * last changed. Only on a capped run, and it is the next run's `before`.\n */\n reachedBack: z.number().optional(),\n counted: z.number().optional(),\n refused: z.number().optional(),\n refusedReason: z.string().optional(),\n});\nexport type BackfillResult = z.infer<typeof backfillResultSchema>;\n\nexport const sourcesResponseSchema = z.strictObject({\n ok: z.literal(true),\n data: z.strictObject({\n sources: z.array(sourceViewSchema),\n /** Only when the request carried `preview`. */\n preview: hubspotPreviewSchema.optional(),\n /** Only when the request carried `backfill`. */\n backfill: backfillResultSchema.optional(),\n /** What this chat has staged, when one is attached: applied at Publish, dropped with a discard. */\n staged: z.array(stagedSourceOpSchema).optional(),\n }),\n hints: z.array(z.string()).optional(),\n});\nexport type SourcesResponse = z.infer<typeof sourcesResponseSchema>;\n","/**\n * What an ActiveCampaign source can listen to: ActiveCampaign's own webhook\n * events, and the event name each one raises in Baker.\n *\n * The list is ActiveCampaign's, read from `GET /api/3/webhook/events` — an\n * account answers with exactly these 27 — and the words are ours, for the\n * picker and the change list. Every event a source raises is called\n * `activecampaign.<type>`, whatever the source is called, so a scheduled agent\n * narrowed to `activecampaign.deal_update` runs for any connected account and\n * `properties.baker_source` says which source it came through.\n */\nimport { z } from \"zod\";\n\nexport const ACTIVECAMPAIGN_WEBHOOK_EVENTS = {\n subscribe: \"A contact subscribes to a list\",\n unsubscribe: \"A contact unsubscribes\",\n update: \"A contact's details change\",\n contact_tag_added: \"A tag is added to a contact\",\n contact_tag_removed: \"A tag is removed from a contact\",\n subscriber_note: \"A note is added to a contact\",\n contact_task_add: \"A task is added to a contact\",\n sent: \"A campaign starts sending\",\n open: \"A contact opens a campaign\",\n click: \"A contact clicks a link in a campaign\",\n reply: \"A contact replies to a campaign\",\n forward: \"A contact forwards a campaign\",\n share: \"A contact shares a campaign\",\n bounce: \"A campaign email bounces\",\n list_add: \"A list is created\",\n deal_add: \"A deal is created\",\n deal_update: \"A deal changes\",\n deal_note_add: \"A note is added to a deal\",\n deal_task_add: \"A task is added to a deal\",\n deal_task_complete: \"A deal task is completed\",\n deal_pipeline_add: \"A pipeline is created\",\n deal_stage_add: \"A deal stage is created\",\n deal_tasktype_add: \"A deal task type is created\",\n account_add: \"An account is created\",\n account_update: \"An account changes\",\n account_contact_add: \"A contact is added to an account\",\n account_contact_update: \"A contact on an account changes\",\n} as const;\n\nexport type ActiveCampaignWebhookEvent = keyof typeof ACTIVECAMPAIGN_WEBHOOK_EVENTS;\n\nexport const ACTIVECAMPAIGN_WEBHOOK_EVENT_TYPES = Object.keys(\n ACTIVECAMPAIGN_WEBHOOK_EVENTS,\n) as readonly ActiveCampaignWebhookEvent[];\n\n/** Who may have caused an event: a contact, a user, an automation, the API — all of them, so nothing is missed. */\nexport const ACTIVECAMPAIGN_WEBHOOK_SOURCES = [\"public\", \"admin\", \"api\", \"system\"] as const;\n\n/** What a new source listens to when nobody says: the lead and deal moments a marketer asks about first. */\nexport const ACTIVECAMPAIGN_DEFAULT_EVENTS: readonly ActiveCampaignWebhookEvent[] = [\n \"subscribe\",\n \"contact_tag_added\",\n \"deal_add\",\n \"deal_update\",\n];\n\n/** The source's name when nobody gives one. */\nexport const ACTIVECAMPAIGN_SOURCE_NAME = \"ActiveCampaign\";\n\nconst EVENT_PREFIX = \"activecampaign.\";\n\n/** The Baker event an ActiveCampaign webhook event raises: `subscribe` → `activecampaign.subscribe`. */\nexport function activeCampaignEventName(type: string): string {\n return `${EVENT_PREFIX}${type}`;\n}\n\n/** The ActiveCampaign event behind a Baker event name, or null when it is not one. */\nexport function activeCampaignEventOf(eventName: string): ActiveCampaignWebhookEvent | null {\n if (!eventName.startsWith(EVENT_PREFIX)) return null;\n const type = eventName.slice(EVENT_PREFIX.length);\n return type in ACTIVECAMPAIGN_WEBHOOK_EVENTS ? (type as ActiveCampaignWebhookEvent) : null;\n}\n\n/** The words for one event, falling back to ActiveCampaign's own name for one this list does not know. */\nexport function activeCampaignEventLabel(type: string): string {\n return type in ACTIVECAMPAIGN_WEBHOOK_EVENTS\n ? ACTIVECAMPAIGN_WEBHOOK_EVENTS[type as ActiveCampaignWebhookEvent]\n : type;\n}\n\n/**\n * The events a source listens to, as the CLI and the dashboard hand them in:\n * ActiveCampaign's names, or Baker's `activecampaign.<type>` spelling of them,\n * deduplicated, in the catalogue's order.\n */\nexport const activeCampaignEventsSchema = z\n .array(z.string().trim().min(1))\n .min(1, \"Pick at least one ActiveCampaign event to listen to.\")\n .max(ACTIVECAMPAIGN_WEBHOOK_EVENT_TYPES.length)\n .transform((raw, ctx) => {\n const picked = new Set<ActiveCampaignWebhookEvent>();\n for (const item of raw) {\n const type = activeCampaignEventOf(item) ?? (item in ACTIVECAMPAIGN_WEBHOOK_EVENTS ? item : null);\n if (type === null) {\n ctx.addIssue({\n code: \"custom\",\n message: `\"${item}\" is not an ActiveCampaign event. Pick from: ${ACTIVECAMPAIGN_WEBHOOK_EVENT_TYPES.join(\", \")}.`,\n });\n return z.NEVER;\n }\n picked.add(type as ActiveCampaignWebhookEvent);\n }\n return ACTIVECAMPAIGN_WEBHOOK_EVENT_TYPES.filter((type) => picked.has(type));\n });\n\n/** Whether ActiveCampaign has the webhook that sends a source its events, as last checked. */\nexport const ACTIVECAMPAIGN_WEBHOOK_STATES = [\"listening\", \"not_configured\", \"failed\"] as const;\nexport type ActiveCampaignWebhookState = (typeof ACTIVECAMPAIGN_WEBHOOK_STATES)[number];\n"],"mappings":"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","names":["z","z","z"]}
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  LINKEDIN_SEARCH_STATUSES,
8
8
  unsupportedLinkedinSearchStatuses
9
- } from "./chunk-WXC3I4CT.js";
9
+ } from "./chunk-XABVEMC3.js";
10
10
  import {
11
11
  ApiError
12
12
  } from "./chunk-CK5ZNZ3I.js";
@@ -172,4 +172,4 @@ export {
172
172
  statusesArgDescription,
173
173
  resolveStatusFilter
174
174
  };
175
- //# sourceMappingURL=chunk-XQ2FGDOQ.js.map
175
+ //# sourceMappingURL=chunk-7NWOGEAW.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  finalOutputLabelsFromCanvas,
3
3
  parseDefinitionStrategyFields
4
- } from "./chunk-MSJKALUF.js";
4
+ } from "./chunk-WTL5RI2J.js";
5
5
  import {
6
6
  readRenderState
7
- } from "./chunk-DA2ANVMG.js";
7
+ } from "./chunk-IWE7WFHI.js";
8
8
  import {
9
9
  STATIC_AD_ROLE,
10
10
  formatOfAdaptId,
@@ -12,10 +12,10 @@ import {
12
12
  isSignatureLine,
13
13
  sameTag,
14
14
  seriesMemberAd
15
- } from "./chunk-WNTVBUVI.js";
15
+ } from "./chunk-2KACEWPN.js";
16
16
  import {
17
17
  fetchRunRecord
18
- } from "./chunk-M55JELFT.js";
18
+ } from "./chunk-MM6QFNHV.js";
19
19
  import {
20
20
  localPathParam
21
21
  } from "./chunk-XIWPSGSG.js";
@@ -506,4 +506,4 @@ export {
506
506
  writeSeriesMemberCanvas,
507
507
  seriesRunHints
508
508
  };
509
- //# sourceMappingURL=chunk-CAA32DMC.js.map
509
+ //# sourceMappingURL=chunk-7SLEBQIM.js.map
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  X_DRAFT_BATCH_MAX,
13
13
  xDraftOpInputSchema
14
- } from "./chunk-WXC3I4CT.js";
14
+ } from "./chunk-XABVEMC3.js";
15
15
  import {
16
16
  ApiError,
17
17
  apiPost
@@ -166,4 +166,4 @@ export {
166
166
  requireTarget,
167
167
  requireTargets
168
168
  };
169
- //# sourceMappingURL=chunk-KBHXLOYJ.js.map
169
+ //# sourceMappingURL=chunk-7ZSLXBOS.js.map