@rapidmx/crm-plugin 0.1.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 (888) hide show
  1. package/LICENSE +382 -0
  2. package/README.md +210 -0
  3. package/apps/admin-crm/_layout.tsx +46 -0
  4. package/apps/admin-crm/index.tsx +16 -0
  5. package/apps/crm/_layout.tsx +46 -0
  6. package/apps/crm/automations/[uid].tsx +16 -0
  7. package/apps/crm/automations/index.tsx +16 -0
  8. package/apps/crm/campaigns/[uid].tsx +16 -0
  9. package/apps/crm/campaigns/index.tsx +16 -0
  10. package/apps/crm/companies/[uid].tsx +16 -0
  11. package/apps/crm/companies/index.tsx +16 -0
  12. package/apps/crm/contacts/[uid].tsx +16 -0
  13. package/apps/crm/deals/[uid].tsx +16 -0
  14. package/apps/crm/deals/index.tsx +16 -0
  15. package/apps/crm/forms/index.tsx +16 -0
  16. package/apps/crm/imports/index.tsx +16 -0
  17. package/apps/crm/index.tsx +16 -0
  18. package/apps/crm/integrations/index.tsx +16 -0
  19. package/apps/crm/lists/index.tsx +16 -0
  20. package/apps/crm/pipelines/index.tsx +16 -0
  21. package/apps/crm/reports/index.tsx +16 -0
  22. package/apps/crm/scoring/index.tsx +16 -0
  23. package/apps/crm/segments/index.tsx +16 -0
  24. package/apps/crm/settings/index.tsx +16 -0
  25. package/apps/crm/tasks/index.tsx +16 -0
  26. package/apps/crm/templates/[uid].tsx +16 -0
  27. package/apps/crm/templates/index.tsx +16 -0
  28. package/apps/f/[formUid].tsx +11 -0
  29. package/apps/f/_layout.tsx +33 -0
  30. package/apps/f/index.tsx +15 -0
  31. package/apps/shared/components/CrmShell.tsx +229 -0
  32. package/apps/shared/components/FilterBuilder.tsx +204 -0
  33. package/apps/shared/components/FormManager.tsx +326 -0
  34. package/apps/shared/components/ImportWizard.tsx +251 -0
  35. package/apps/shared/components/Integrations.tsx +401 -0
  36. package/apps/shared/components/ListManager.tsx +206 -0
  37. package/apps/shared/components/RecordDetail.tsx +444 -0
  38. package/apps/shared/components/RecordList.tsx +446 -0
  39. package/apps/shared/components/ScoringRules.tsx +262 -0
  40. package/apps/shared/components/SegmentManager.tsx +245 -0
  41. package/apps/shared/components/TaskList.tsx +140 -0
  42. package/apps/shared/components/TemplateList.tsx +170 -0
  43. package/apps/shared/components/WorkspaceSettings.tsx +503 -0
  44. package/apps/shared/components/admin/CrmAdmin.tsx +129 -0
  45. package/apps/shared/components/automations/AutomationEditor.tsx +530 -0
  46. package/apps/shared/components/automations/AutomationList.tsx +147 -0
  47. package/apps/shared/components/automations/StepInspector.tsx +403 -0
  48. package/apps/shared/components/automations/flowModel.ts +331 -0
  49. package/apps/shared/components/campaigns/CampaignEditor.tsx +471 -0
  50. package/apps/shared/components/campaigns/CampaignList.tsx +164 -0
  51. package/apps/shared/components/campaigns/CampaignPage.tsx +30 -0
  52. package/apps/shared/components/campaigns/CampaignReport.tsx +345 -0
  53. package/apps/shared/components/campaigns/campaignUi.tsx +33 -0
  54. package/apps/shared/components/deals/ContactDeals.tsx +40 -0
  55. package/apps/shared/components/deals/DealBoard.tsx +287 -0
  56. package/apps/shared/components/deals/DealDetail.tsx +363 -0
  57. package/apps/shared/components/deals/PipelineManager.tsx +207 -0
  58. package/apps/shared/components/deals/dealUi.ts +24 -0
  59. package/apps/shared/components/designer/BlockView.tsx +92 -0
  60. package/apps/shared/components/designer/Canvas.tsx +206 -0
  61. package/apps/shared/components/designer/Inspector.tsx +339 -0
  62. package/apps/shared/components/designer/LazyTextBlockEditor.tsx +68 -0
  63. package/apps/shared/components/designer/MergeTagPicker.tsx +31 -0
  64. package/apps/shared/components/designer/PreviewModal.tsx +119 -0
  65. package/apps/shared/components/designer/TemplateDesigner.tsx +408 -0
  66. package/apps/shared/components/designer/TestSendModal.tsx +75 -0
  67. package/apps/shared/components/designer/TextBlockEditor.tsx +122 -0
  68. package/apps/shared/components/designer/designModel.ts +276 -0
  69. package/apps/shared/components/public/PublicPages.tsx +343 -0
  70. package/apps/shared/components/public/honeypot.ts +7 -0
  71. package/apps/shared/components/reports/Charts.tsx +315 -0
  72. package/apps/shared/components/reports/Reports.tsx +198 -0
  73. package/apps/shared/crmApi.ts +1046 -0
  74. package/apps/shared/fields.ts +175 -0
  75. package/apps/shared/publicApi.ts +50 -0
  76. package/apps/subscriptions/[token].tsx +11 -0
  77. package/apps/subscriptions/_layout.tsx +33 -0
  78. package/apps/subscriptions/confirm/[token].tsx +11 -0
  79. package/apps/subscriptions/index.tsx +11 -0
  80. package/apps/subscriptions/unsubscribe/[token].tsx +11 -0
  81. package/dist/apps/admin-crm/_layout.d.ts +15 -0
  82. package/dist/apps/admin-crm/_layout.js +8 -0
  83. package/dist/apps/admin-crm/index.d.ts +4 -0
  84. package/dist/apps/admin-crm/index.js +7 -0
  85. package/dist/apps/crm/_layout.d.ts +15 -0
  86. package/dist/apps/crm/_layout.js +8 -0
  87. package/dist/apps/crm/automations/[uid].d.ts +8 -0
  88. package/dist/apps/crm/automations/[uid].js +7 -0
  89. package/dist/apps/crm/automations/index.d.ts +4 -0
  90. package/dist/apps/crm/automations/index.js +7 -0
  91. package/dist/apps/crm/campaigns/[uid].d.ts +8 -0
  92. package/dist/apps/crm/campaigns/[uid].js +7 -0
  93. package/dist/apps/crm/campaigns/index.d.ts +4 -0
  94. package/dist/apps/crm/campaigns/index.js +7 -0
  95. package/dist/apps/crm/companies/[uid].d.ts +8 -0
  96. package/dist/apps/crm/companies/[uid].js +7 -0
  97. package/dist/apps/crm/companies/index.d.ts +4 -0
  98. package/dist/apps/crm/companies/index.js +7 -0
  99. package/dist/apps/crm/contacts/[uid].d.ts +8 -0
  100. package/dist/apps/crm/contacts/[uid].js +7 -0
  101. package/dist/apps/crm/deals/[uid].d.ts +8 -0
  102. package/dist/apps/crm/deals/[uid].js +7 -0
  103. package/dist/apps/crm/deals/index.d.ts +4 -0
  104. package/dist/apps/crm/deals/index.js +7 -0
  105. package/dist/apps/crm/forms/index.d.ts +4 -0
  106. package/dist/apps/crm/forms/index.js +7 -0
  107. package/dist/apps/crm/imports/index.d.ts +4 -0
  108. package/dist/apps/crm/imports/index.js +7 -0
  109. package/dist/apps/crm/index.d.ts +4 -0
  110. package/dist/apps/crm/index.js +7 -0
  111. package/dist/apps/crm/integrations/index.d.ts +4 -0
  112. package/dist/apps/crm/integrations/index.js +7 -0
  113. package/dist/apps/crm/lists/index.d.ts +4 -0
  114. package/dist/apps/crm/lists/index.js +7 -0
  115. package/dist/apps/crm/pipelines/index.d.ts +4 -0
  116. package/dist/apps/crm/pipelines/index.js +7 -0
  117. package/dist/apps/crm/reports/index.d.ts +4 -0
  118. package/dist/apps/crm/reports/index.js +7 -0
  119. package/dist/apps/crm/scoring/index.d.ts +4 -0
  120. package/dist/apps/crm/scoring/index.js +7 -0
  121. package/dist/apps/crm/segments/index.d.ts +4 -0
  122. package/dist/apps/crm/segments/index.js +7 -0
  123. package/dist/apps/crm/settings/index.d.ts +4 -0
  124. package/dist/apps/crm/settings/index.js +7 -0
  125. package/dist/apps/crm/tasks/index.d.ts +4 -0
  126. package/dist/apps/crm/tasks/index.js +7 -0
  127. package/dist/apps/crm/templates/[uid].d.ts +8 -0
  128. package/dist/apps/crm/templates/[uid].js +7 -0
  129. package/dist/apps/crm/templates/index.d.ts +4 -0
  130. package/dist/apps/crm/templates/index.js +7 -0
  131. package/dist/apps/f/[formUid].d.ts +7 -0
  132. package/dist/apps/f/[formUid].js +6 -0
  133. package/dist/apps/f/_layout.d.ts +8 -0
  134. package/dist/apps/f/_layout.js +8 -0
  135. package/dist/apps/f/index.d.ts +3 -0
  136. package/dist/apps/f/index.js +6 -0
  137. package/dist/apps/shared/components/CrmShell.d.ts +39 -0
  138. package/dist/apps/shared/components/CrmShell.js +127 -0
  139. package/dist/apps/shared/components/FilterBuilder.d.ts +34 -0
  140. package/dist/apps/shared/components/FilterBuilder.js +101 -0
  141. package/dist/apps/shared/components/FormManager.d.ts +7 -0
  142. package/dist/apps/shared/components/FormManager.js +132 -0
  143. package/dist/apps/shared/components/ImportWizard.d.ts +8 -0
  144. package/dist/apps/shared/components/ImportWizard.js +105 -0
  145. package/dist/apps/shared/components/Integrations.d.ts +13 -0
  146. package/dist/apps/shared/components/Integrations.js +164 -0
  147. package/dist/apps/shared/components/ListManager.d.ts +6 -0
  148. package/dist/apps/shared/components/ListManager.js +95 -0
  149. package/dist/apps/shared/components/RecordDetail.d.ts +30 -0
  150. package/dist/apps/shared/components/RecordDetail.js +244 -0
  151. package/dist/apps/shared/components/RecordList.d.ts +13 -0
  152. package/dist/apps/shared/components/RecordList.js +214 -0
  153. package/dist/apps/shared/components/ScoringRules.d.ts +13 -0
  154. package/dist/apps/shared/components/ScoringRules.js +128 -0
  155. package/dist/apps/shared/components/SegmentManager.d.ts +10 -0
  156. package/dist/apps/shared/components/SegmentManager.js +119 -0
  157. package/dist/apps/shared/components/TaskList.d.ts +3 -0
  158. package/dist/apps/shared/components/TaskList.js +62 -0
  159. package/dist/apps/shared/components/TemplateList.d.ts +3 -0
  160. package/dist/apps/shared/components/TemplateList.js +81 -0
  161. package/dist/apps/shared/components/WorkspaceSettings.d.ts +6 -0
  162. package/dist/apps/shared/components/WorkspaceSettings.js +239 -0
  163. package/dist/apps/shared/components/admin/CrmAdmin.d.ts +9 -0
  164. package/dist/apps/shared/components/admin/CrmAdmin.js +56 -0
  165. package/dist/apps/shared/components/automations/AutomationEditor.d.ts +15 -0
  166. package/dist/apps/shared/components/automations/AutomationEditor.js +219 -0
  167. package/dist/apps/shared/components/automations/AutomationList.d.ts +3 -0
  168. package/dist/apps/shared/components/automations/AutomationList.js +65 -0
  169. package/dist/apps/shared/components/automations/StepInspector.d.ts +40 -0
  170. package/dist/apps/shared/components/automations/StepInspector.js +177 -0
  171. package/dist/apps/shared/components/automations/flowModel.d.ts +67 -0
  172. package/dist/apps/shared/components/automations/flowModel.js +292 -0
  173. package/dist/apps/shared/components/campaigns/CampaignEditor.d.ts +11 -0
  174. package/dist/apps/shared/components/campaigns/CampaignEditor.js +163 -0
  175. package/dist/apps/shared/components/campaigns/CampaignList.d.ts +3 -0
  176. package/dist/apps/shared/components/campaigns/CampaignList.js +80 -0
  177. package/dist/apps/shared/components/campaigns/CampaignPage.d.ts +5 -0
  178. package/dist/apps/shared/components/campaigns/CampaignPage.js +24 -0
  179. package/dist/apps/shared/components/campaigns/CampaignReport.d.ts +13 -0
  180. package/dist/apps/shared/components/campaigns/CampaignReport.js +119 -0
  181. package/dist/apps/shared/components/campaigns/campaignUi.d.ts +10 -0
  182. package/dist/apps/shared/components/campaigns/campaignUi.js +24 -0
  183. package/dist/apps/shared/components/deals/ContactDeals.d.ts +5 -0
  184. package/dist/apps/shared/components/deals/ContactDeals.js +18 -0
  185. package/dist/apps/shared/components/deals/DealBoard.d.ts +7 -0
  186. package/dist/apps/shared/components/deals/DealBoard.js +134 -0
  187. package/dist/apps/shared/components/deals/DealDetail.d.ts +8 -0
  188. package/dist/apps/shared/components/deals/DealDetail.js +148 -0
  189. package/dist/apps/shared/components/deals/PipelineManager.d.ts +7 -0
  190. package/dist/apps/shared/components/deals/PipelineManager.js +62 -0
  191. package/dist/apps/shared/components/deals/dealUi.d.ts +7 -0
  192. package/dist/apps/shared/components/deals/dealUi.js +17 -0
  193. package/dist/apps/shared/components/designer/BlockView.d.ts +10 -0
  194. package/dist/apps/shared/components/designer/BlockView.js +37 -0
  195. package/dist/apps/shared/components/designer/Canvas.d.ts +31 -0
  196. package/dist/apps/shared/components/designer/Canvas.js +71 -0
  197. package/dist/apps/shared/components/designer/Inspector.d.ts +27 -0
  198. package/dist/apps/shared/components/designer/Inspector.js +102 -0
  199. package/dist/apps/shared/components/designer/LazyTextBlockEditor.d.ts +7 -0
  200. package/dist/apps/shared/components/designer/LazyTextBlockEditor.js +42 -0
  201. package/dist/apps/shared/components/designer/MergeTagPicker.d.ts +11 -0
  202. package/dist/apps/shared/components/designer/MergeTagPicker.js +15 -0
  203. package/dist/apps/shared/components/designer/PreviewModal.d.ts +15 -0
  204. package/dist/apps/shared/components/designer/PreviewModal.js +50 -0
  205. package/dist/apps/shared/components/designer/TemplateDesigner.d.ts +10 -0
  206. package/dist/apps/shared/components/designer/TemplateDesigner.js +194 -0
  207. package/dist/apps/shared/components/designer/TestSendModal.d.ts +11 -0
  208. package/dist/apps/shared/components/designer/TestSendModal.js +35 -0
  209. package/dist/apps/shared/components/designer/TextBlockEditor.d.ts +16 -0
  210. package/dist/apps/shared/components/designer/TextBlockEditor.js +81 -0
  211. package/dist/apps/shared/components/designer/designModel.d.ts +86 -0
  212. package/dist/apps/shared/components/designer/designModel.js +230 -0
  213. package/dist/apps/shared/components/public/PublicPages.d.ts +29 -0
  214. package/dist/apps/shared/components/public/PublicPages.js +155 -0
  215. package/dist/apps/shared/components/public/honeypot.d.ts +2 -0
  216. package/dist/apps/shared/components/public/honeypot.js +6 -0
  217. package/dist/apps/shared/components/reports/Charts.d.ts +32 -0
  218. package/dist/apps/shared/components/reports/Charts.js +121 -0
  219. package/dist/apps/shared/components/reports/Reports.d.ts +9 -0
  220. package/dist/apps/shared/components/reports/Reports.js +61 -0
  221. package/dist/apps/shared/crmApi.d.ts +909 -0
  222. package/dist/apps/shared/crmApi.js +240 -0
  223. package/dist/apps/shared/fields.d.ts +45 -0
  224. package/dist/apps/shared/fields.js +146 -0
  225. package/dist/apps/shared/publicApi.d.ts +48 -0
  226. package/dist/apps/shared/publicApi.js +17 -0
  227. package/dist/apps/subscriptions/[token].d.ts +7 -0
  228. package/dist/apps/subscriptions/[token].js +6 -0
  229. package/dist/apps/subscriptions/_layout.d.ts +8 -0
  230. package/dist/apps/subscriptions/_layout.js +8 -0
  231. package/dist/apps/subscriptions/confirm/[token].d.ts +7 -0
  232. package/dist/apps/subscriptions/confirm/[token].js +6 -0
  233. package/dist/apps/subscriptions/index.d.ts +3 -0
  234. package/dist/apps/subscriptions/index.js +6 -0
  235. package/dist/apps/subscriptions/unsubscribe/[token].d.ts +7 -0
  236. package/dist/apps/subscriptions/unsubscribe/[token].js +6 -0
  237. package/dist/lib/automation/Dates.js +85 -0
  238. package/dist/lib/automation/Dates.js.map +1 -0
  239. package/dist/lib/automation/Engine.js +384 -0
  240. package/dist/lib/automation/Engine.js.map +1 -0
  241. package/dist/lib/automation/Events.js +46 -0
  242. package/dist/lib/automation/Events.js.map +1 -0
  243. package/dist/lib/automation/Graph.js +296 -0
  244. package/dist/lib/automation/Graph.js.map +1 -0
  245. package/dist/lib/filters/Filter.js +343 -0
  246. package/dist/lib/filters/Filter.js.map +1 -0
  247. package/dist/lib/filters/fields.js +71 -0
  248. package/dist/lib/filters/fields.js.map +1 -0
  249. package/dist/lib/index.js +86 -0
  250. package/dist/lib/index.js.map +1 -0
  251. package/dist/lib/jobs/AutomationRunJob.js +110 -0
  252. package/dist/lib/jobs/AutomationRunJob.js.map +1 -0
  253. package/dist/lib/jobs/AutomationTriggerJob.js +126 -0
  254. package/dist/lib/jobs/AutomationTriggerJob.js.map +1 -0
  255. package/dist/lib/jobs/CampaignJob.js +285 -0
  256. package/dist/lib/jobs/CampaignJob.js.map +1 -0
  257. package/dist/lib/jobs/CrmImportJob.js +218 -0
  258. package/dist/lib/jobs/CrmImportJob.js.map +1 -0
  259. package/dist/lib/jobs/CrmJobBase.js +75 -0
  260. package/dist/lib/jobs/CrmJobBase.js.map +1 -0
  261. package/dist/lib/jobs/CrmMailEventJob.js +232 -0
  262. package/dist/lib/jobs/CrmMailEventJob.js.map +1 -0
  263. package/dist/lib/jobs/DateTriggerJob.js +155 -0
  264. package/dist/lib/jobs/DateTriggerJob.js.map +1 -0
  265. package/dist/lib/jobs/ScoringJob.js +75 -0
  266. package/dist/lib/jobs/ScoringJob.js.map +1 -0
  267. package/dist/lib/jobs/SegmentRefreshJob.js +84 -0
  268. package/dist/lib/jobs/SegmentRefreshJob.js.map +1 -0
  269. package/dist/lib/jobs/SendDispatchJob.js +277 -0
  270. package/dist/lib/jobs/SendDispatchJob.js.map +1 -0
  271. package/dist/lib/jobs/TaskReminderJob.js +70 -0
  272. package/dist/lib/jobs/TaskReminderJob.js.map +1 -0
  273. package/dist/lib/jobs/WebhookDeliveryJob.js +126 -0
  274. package/dist/lib/jobs/WebhookDeliveryJob.js.map +1 -0
  275. package/dist/lib/jobs/mongo/AutomationRunJobMongo.js +12 -0
  276. package/dist/lib/jobs/mongo/AutomationRunJobMongo.js.map +1 -0
  277. package/dist/lib/jobs/mongo/AutomationTriggerJobMongo.js +10 -0
  278. package/dist/lib/jobs/mongo/AutomationTriggerJobMongo.js.map +1 -0
  279. package/dist/lib/jobs/mongo/CampaignJobMongo.js +10 -0
  280. package/dist/lib/jobs/mongo/CampaignJobMongo.js.map +1 -0
  281. package/dist/lib/jobs/mongo/CrmImportJobMongo.js +14 -0
  282. package/dist/lib/jobs/mongo/CrmImportJobMongo.js.map +1 -0
  283. package/dist/lib/jobs/mongo/CrmMailEventJobMongo.js +10 -0
  284. package/dist/lib/jobs/mongo/CrmMailEventJobMongo.js.map +1 -0
  285. package/dist/lib/jobs/mongo/DateTriggerJobMongo.js +10 -0
  286. package/dist/lib/jobs/mongo/DateTriggerJobMongo.js.map +1 -0
  287. package/dist/lib/jobs/mongo/ScoringJobMongo.js +10 -0
  288. package/dist/lib/jobs/mongo/ScoringJobMongo.js.map +1 -0
  289. package/dist/lib/jobs/mongo/SegmentRefreshJobMongo.js +10 -0
  290. package/dist/lib/jobs/mongo/SegmentRefreshJobMongo.js.map +1 -0
  291. package/dist/lib/jobs/mongo/SendDispatchJobMongo.js +10 -0
  292. package/dist/lib/jobs/mongo/SendDispatchJobMongo.js.map +1 -0
  293. package/dist/lib/jobs/mongo/TaskReminderJobMongo.js +10 -0
  294. package/dist/lib/jobs/mongo/TaskReminderJobMongo.js.map +1 -0
  295. package/dist/lib/jobs/mongo/WebhookDeliveryJobMongo.js +10 -0
  296. package/dist/lib/jobs/mongo/WebhookDeliveryJobMongo.js.map +1 -0
  297. package/dist/lib/jobs/sql/AutomationRunJobSQL.js +12 -0
  298. package/dist/lib/jobs/sql/AutomationRunJobSQL.js.map +1 -0
  299. package/dist/lib/jobs/sql/AutomationTriggerJobSQL.js +10 -0
  300. package/dist/lib/jobs/sql/AutomationTriggerJobSQL.js.map +1 -0
  301. package/dist/lib/jobs/sql/CampaignJobSQL.js +10 -0
  302. package/dist/lib/jobs/sql/CampaignJobSQL.js.map +1 -0
  303. package/dist/lib/jobs/sql/CrmImportJobSQL.js +14 -0
  304. package/dist/lib/jobs/sql/CrmImportJobSQL.js.map +1 -0
  305. package/dist/lib/jobs/sql/CrmMailEventJobSQL.js +10 -0
  306. package/dist/lib/jobs/sql/CrmMailEventJobSQL.js.map +1 -0
  307. package/dist/lib/jobs/sql/DateTriggerJobSQL.js +10 -0
  308. package/dist/lib/jobs/sql/DateTriggerJobSQL.js.map +1 -0
  309. package/dist/lib/jobs/sql/ScoringJobSQL.js +10 -0
  310. package/dist/lib/jobs/sql/ScoringJobSQL.js.map +1 -0
  311. package/dist/lib/jobs/sql/SegmentRefreshJobSQL.js +10 -0
  312. package/dist/lib/jobs/sql/SegmentRefreshJobSQL.js.map +1 -0
  313. package/dist/lib/jobs/sql/SendDispatchJobSQL.js +10 -0
  314. package/dist/lib/jobs/sql/SendDispatchJobSQL.js.map +1 -0
  315. package/dist/lib/jobs/sql/TaskReminderJobSQL.js +10 -0
  316. package/dist/lib/jobs/sql/TaskReminderJobSQL.js.map +1 -0
  317. package/dist/lib/jobs/sql/WebhookDeliveryJobSQL.js +10 -0
  318. package/dist/lib/jobs/sql/WebhookDeliveryJobSQL.js.map +1 -0
  319. package/dist/lib/models/CrmModelClasses.js +44 -0
  320. package/dist/lib/models/CrmModelClasses.js.map +1 -0
  321. package/dist/lib/models/mongo/ApiKeyMongo.js +105 -0
  322. package/dist/lib/models/mongo/ApiKeyMongo.js.map +1 -0
  323. package/dist/lib/models/mongo/AutomationMongo.js +126 -0
  324. package/dist/lib/models/mongo/AutomationMongo.js.map +1 -0
  325. package/dist/lib/models/mongo/AutomationVersionMongo.js +82 -0
  326. package/dist/lib/models/mongo/AutomationVersionMongo.js.map +1 -0
  327. package/dist/lib/models/mongo/CampaignMongo.js +211 -0
  328. package/dist/lib/models/mongo/CampaignMongo.js.map +1 -0
  329. package/dist/lib/models/mongo/CrmCompanyMongo.js +126 -0
  330. package/dist/lib/models/mongo/CrmCompanyMongo.js.map +1 -0
  331. package/dist/lib/models/mongo/CrmContactMongo.js +156 -0
  332. package/dist/lib/models/mongo/CrmContactMongo.js.map +1 -0
  333. package/dist/lib/models/mongo/CrmEventMongo.js +92 -0
  334. package/dist/lib/models/mongo/CrmEventMongo.js.map +1 -0
  335. package/dist/lib/models/mongo/CrmFormMongo.js +139 -0
  336. package/dist/lib/models/mongo/CrmFormMongo.js.map +1 -0
  337. package/dist/lib/models/mongo/CrmImportMongo.js +190 -0
  338. package/dist/lib/models/mongo/CrmImportMongo.js.map +1 -0
  339. package/dist/lib/models/mongo/CrmNoteMongo.js +89 -0
  340. package/dist/lib/models/mongo/CrmNoteMongo.js.map +1 -0
  341. package/dist/lib/models/mongo/CrmSettingMongo.js +60 -0
  342. package/dist/lib/models/mongo/CrmSettingMongo.js.map +1 -0
  343. package/dist/lib/models/mongo/CrmTaskMongo.js +136 -0
  344. package/dist/lib/models/mongo/CrmTaskMongo.js.map +1 -0
  345. package/dist/lib/models/mongo/DealMongo.js +163 -0
  346. package/dist/lib/models/mongo/DealMongo.js.map +1 -0
  347. package/dist/lib/models/mongo/EmailTemplateMongo.js +90 -0
  348. package/dist/lib/models/mongo/EmailTemplateMongo.js.map +1 -0
  349. package/dist/lib/models/mongo/EngagementEventMongo.js +113 -0
  350. package/dist/lib/models/mongo/EngagementEventMongo.js.map +1 -0
  351. package/dist/lib/models/mongo/EnrollmentMongo.js +150 -0
  352. package/dist/lib/models/mongo/EnrollmentMongo.js.map +1 -0
  353. package/dist/lib/models/mongo/MailingListMongo.js +104 -0
  354. package/dist/lib/models/mongo/MailingListMongo.js.map +1 -0
  355. package/dist/lib/models/mongo/OutboundSendMongo.js +265 -0
  356. package/dist/lib/models/mongo/OutboundSendMongo.js.map +1 -0
  357. package/dist/lib/models/mongo/PipelineMongo.js +74 -0
  358. package/dist/lib/models/mongo/PipelineMongo.js.map +1 -0
  359. package/dist/lib/models/mongo/PropertyDefinitionMongo.js +105 -0
  360. package/dist/lib/models/mongo/PropertyDefinitionMongo.js.map +1 -0
  361. package/dist/lib/models/mongo/PropertyValueMongo.js +101 -0
  362. package/dist/lib/models/mongo/PropertyValueMongo.js.map +1 -0
  363. package/dist/lib/models/mongo/SavedBlockMongo.js +67 -0
  364. package/dist/lib/models/mongo/SavedBlockMongo.js.map +1 -0
  365. package/dist/lib/models/mongo/ScoringRuleMongo.js +112 -0
  366. package/dist/lib/models/mongo/ScoringRuleMongo.js.map +1 -0
  367. package/dist/lib/models/mongo/SegmentMongo.js +113 -0
  368. package/dist/lib/models/mongo/SegmentMongo.js.map +1 -0
  369. package/dist/lib/models/mongo/SubscriptionMongo.js +114 -0
  370. package/dist/lib/models/mongo/SubscriptionMongo.js.map +1 -0
  371. package/dist/lib/models/mongo/SuppressionMongo.js +77 -0
  372. package/dist/lib/models/mongo/SuppressionMongo.js.map +1 -0
  373. package/dist/lib/models/mongo/TimelineEventMongo.js +112 -0
  374. package/dist/lib/models/mongo/TimelineEventMongo.js.map +1 -0
  375. package/dist/lib/models/mongo/WebhookDeliveryMongo.js +128 -0
  376. package/dist/lib/models/mongo/WebhookDeliveryMongo.js.map +1 -0
  377. package/dist/lib/models/mongo/WebhookEndpointMongo.js +118 -0
  378. package/dist/lib/models/mongo/WebhookEndpointMongo.js.map +1 -0
  379. package/dist/lib/models/mongo/WorkspaceMemberMongo.js +92 -0
  380. package/dist/lib/models/mongo/WorkspaceMemberMongo.js.map +1 -0
  381. package/dist/lib/models/mongo/WorkspaceMongo.js +117 -0
  382. package/dist/lib/models/mongo/WorkspaceMongo.js.map +1 -0
  383. package/dist/lib/models/mongo/WorkspaceSenderMongo.js +100 -0
  384. package/dist/lib/models/mongo/WorkspaceSenderMongo.js.map +1 -0
  385. package/dist/lib/models/mongo/index.js +74 -0
  386. package/dist/lib/models/mongo/index.js.map +1 -0
  387. package/dist/lib/models/sql/ApiKeySQL.js +105 -0
  388. package/dist/lib/models/sql/ApiKeySQL.js.map +1 -0
  389. package/dist/lib/models/sql/AutomationSQL.js +126 -0
  390. package/dist/lib/models/sql/AutomationSQL.js.map +1 -0
  391. package/dist/lib/models/sql/AutomationVersionSQL.js +82 -0
  392. package/dist/lib/models/sql/AutomationVersionSQL.js.map +1 -0
  393. package/dist/lib/models/sql/CampaignSQL.js +211 -0
  394. package/dist/lib/models/sql/CampaignSQL.js.map +1 -0
  395. package/dist/lib/models/sql/CrmCompanySQL.js +126 -0
  396. package/dist/lib/models/sql/CrmCompanySQL.js.map +1 -0
  397. package/dist/lib/models/sql/CrmContactSQL.js +156 -0
  398. package/dist/lib/models/sql/CrmContactSQL.js.map +1 -0
  399. package/dist/lib/models/sql/CrmEventSQL.js +92 -0
  400. package/dist/lib/models/sql/CrmEventSQL.js.map +1 -0
  401. package/dist/lib/models/sql/CrmFormSQL.js +139 -0
  402. package/dist/lib/models/sql/CrmFormSQL.js.map +1 -0
  403. package/dist/lib/models/sql/CrmImportSQL.js +190 -0
  404. package/dist/lib/models/sql/CrmImportSQL.js.map +1 -0
  405. package/dist/lib/models/sql/CrmNoteSQL.js +89 -0
  406. package/dist/lib/models/sql/CrmNoteSQL.js.map +1 -0
  407. package/dist/lib/models/sql/CrmSettingSQL.js +60 -0
  408. package/dist/lib/models/sql/CrmSettingSQL.js.map +1 -0
  409. package/dist/lib/models/sql/CrmTaskSQL.js +136 -0
  410. package/dist/lib/models/sql/CrmTaskSQL.js.map +1 -0
  411. package/dist/lib/models/sql/DealSQL.js +163 -0
  412. package/dist/lib/models/sql/DealSQL.js.map +1 -0
  413. package/dist/lib/models/sql/EmailTemplateSQL.js +90 -0
  414. package/dist/lib/models/sql/EmailTemplateSQL.js.map +1 -0
  415. package/dist/lib/models/sql/EngagementEventSQL.js +113 -0
  416. package/dist/lib/models/sql/EngagementEventSQL.js.map +1 -0
  417. package/dist/lib/models/sql/EnrollmentSQL.js +150 -0
  418. package/dist/lib/models/sql/EnrollmentSQL.js.map +1 -0
  419. package/dist/lib/models/sql/MailingListSQL.js +104 -0
  420. package/dist/lib/models/sql/MailingListSQL.js.map +1 -0
  421. package/dist/lib/models/sql/OutboundSendSQL.js +265 -0
  422. package/dist/lib/models/sql/OutboundSendSQL.js.map +1 -0
  423. package/dist/lib/models/sql/PipelineSQL.js +74 -0
  424. package/dist/lib/models/sql/PipelineSQL.js.map +1 -0
  425. package/dist/lib/models/sql/PropertyDefinitionSQL.js +105 -0
  426. package/dist/lib/models/sql/PropertyDefinitionSQL.js.map +1 -0
  427. package/dist/lib/models/sql/PropertyValueSQL.js +101 -0
  428. package/dist/lib/models/sql/PropertyValueSQL.js.map +1 -0
  429. package/dist/lib/models/sql/SavedBlockSQL.js +67 -0
  430. package/dist/lib/models/sql/SavedBlockSQL.js.map +1 -0
  431. package/dist/lib/models/sql/ScoringRuleSQL.js +112 -0
  432. package/dist/lib/models/sql/ScoringRuleSQL.js.map +1 -0
  433. package/dist/lib/models/sql/SegmentSQL.js +113 -0
  434. package/dist/lib/models/sql/SegmentSQL.js.map +1 -0
  435. package/dist/lib/models/sql/SubscriptionSQL.js +114 -0
  436. package/dist/lib/models/sql/SubscriptionSQL.js.map +1 -0
  437. package/dist/lib/models/sql/SuppressionSQL.js +77 -0
  438. package/dist/lib/models/sql/SuppressionSQL.js.map +1 -0
  439. package/dist/lib/models/sql/TimelineEventSQL.js +112 -0
  440. package/dist/lib/models/sql/TimelineEventSQL.js.map +1 -0
  441. package/dist/lib/models/sql/WebhookDeliverySQL.js +128 -0
  442. package/dist/lib/models/sql/WebhookDeliverySQL.js.map +1 -0
  443. package/dist/lib/models/sql/WebhookEndpointSQL.js +118 -0
  444. package/dist/lib/models/sql/WebhookEndpointSQL.js.map +1 -0
  445. package/dist/lib/models/sql/WorkspaceMemberSQL.js +92 -0
  446. package/dist/lib/models/sql/WorkspaceMemberSQL.js.map +1 -0
  447. package/dist/lib/models/sql/WorkspaceSQL.js +117 -0
  448. package/dist/lib/models/sql/WorkspaceSQL.js.map +1 -0
  449. package/dist/lib/models/sql/WorkspaceSenderSQL.js +100 -0
  450. package/dist/lib/models/sql/WorkspaceSenderSQL.js.map +1 -0
  451. package/dist/lib/models/sql/index.js +74 -0
  452. package/dist/lib/models/sql/index.js.map +1 -0
  453. package/dist/lib/models/types.js +275 -0
  454. package/dist/lib/models/types.js.map +1 -0
  455. package/dist/lib/mongo.js +80 -0
  456. package/dist/lib/mongo.js.map +1 -0
  457. package/dist/lib/purge.js +68 -0
  458. package/dist/lib/purge.js.map +1 -0
  459. package/dist/lib/routes/BaseAnalyticsRoute.js +217 -0
  460. package/dist/lib/routes/BaseAnalyticsRoute.js.map +1 -0
  461. package/dist/lib/routes/BaseApiKeyRoute.js +76 -0
  462. package/dist/lib/routes/BaseApiKeyRoute.js.map +1 -0
  463. package/dist/lib/routes/BaseAutomationRoute.js +316 -0
  464. package/dist/lib/routes/BaseAutomationRoute.js.map +1 -0
  465. package/dist/lib/routes/BaseCampaignRoute.js +443 -0
  466. package/dist/lib/routes/BaseCampaignRoute.js.map +1 -0
  467. package/dist/lib/routes/BaseCompanyRoute.js +106 -0
  468. package/dist/lib/routes/BaseCompanyRoute.js.map +1 -0
  469. package/dist/lib/routes/BaseContactRoute.js +162 -0
  470. package/dist/lib/routes/BaseContactRoute.js.map +1 -0
  471. package/dist/lib/routes/BaseCrmAdminRoute.js +108 -0
  472. package/dist/lib/routes/BaseCrmAdminRoute.js.map +1 -0
  473. package/dist/lib/routes/BaseDealRoute.js +312 -0
  474. package/dist/lib/routes/BaseDealRoute.js.map +1 -0
  475. package/dist/lib/routes/BaseFormRoute.js +124 -0
  476. package/dist/lib/routes/BaseFormRoute.js.map +1 -0
  477. package/dist/lib/routes/BaseImportRoute.js +231 -0
  478. package/dist/lib/routes/BaseImportRoute.js.map +1 -0
  479. package/dist/lib/routes/BaseIntegrationRoute.js +181 -0
  480. package/dist/lib/routes/BaseIntegrationRoute.js.map +1 -0
  481. package/dist/lib/routes/BaseListRoute.js +89 -0
  482. package/dist/lib/routes/BaseListRoute.js.map +1 -0
  483. package/dist/lib/routes/BaseNoteRoute.js +69 -0
  484. package/dist/lib/routes/BaseNoteRoute.js.map +1 -0
  485. package/dist/lib/routes/BasePipelineRoute.js +149 -0
  486. package/dist/lib/routes/BasePipelineRoute.js.map +1 -0
  487. package/dist/lib/routes/BasePropertyDefinitionRoute.js +140 -0
  488. package/dist/lib/routes/BasePropertyDefinitionRoute.js.map +1 -0
  489. package/dist/lib/routes/BasePublicRoute.js +528 -0
  490. package/dist/lib/routes/BasePublicRoute.js.map +1 -0
  491. package/dist/lib/routes/BaseSavedBlockRoute.js +39 -0
  492. package/dist/lib/routes/BaseSavedBlockRoute.js.map +1 -0
  493. package/dist/lib/routes/BaseScoringRuleRoute.js +146 -0
  494. package/dist/lib/routes/BaseScoringRuleRoute.js.map +1 -0
  495. package/dist/lib/routes/BaseSegmentRoute.js +136 -0
  496. package/dist/lib/routes/BaseSegmentRoute.js.map +1 -0
  497. package/dist/lib/routes/BaseSubscriptionRoute.js +92 -0
  498. package/dist/lib/routes/BaseSubscriptionRoute.js.map +1 -0
  499. package/dist/lib/routes/BaseSuppressionRoute.js +48 -0
  500. package/dist/lib/routes/BaseSuppressionRoute.js.map +1 -0
  501. package/dist/lib/routes/BaseTaggedRecordRoute.js +312 -0
  502. package/dist/lib/routes/BaseTaggedRecordRoute.js.map +1 -0
  503. package/dist/lib/routes/BaseTaskRoute.js +116 -0
  504. package/dist/lib/routes/BaseTaskRoute.js.map +1 -0
  505. package/dist/lib/routes/BaseTemplateRoute.js +207 -0
  506. package/dist/lib/routes/BaseTemplateRoute.js.map +1 -0
  507. package/dist/lib/routes/BaseTimelineRoute.js +47 -0
  508. package/dist/lib/routes/BaseTimelineRoute.js.map +1 -0
  509. package/dist/lib/routes/BaseTrackingRoute.js +106 -0
  510. package/dist/lib/routes/BaseTrackingRoute.js.map +1 -0
  511. package/dist/lib/routes/BaseWebhookRoute.js +173 -0
  512. package/dist/lib/routes/BaseWebhookRoute.js.map +1 -0
  513. package/dist/lib/routes/BaseWorkspaceRecordRoute.js +220 -0
  514. package/dist/lib/routes/BaseWorkspaceRecordRoute.js.map +1 -0
  515. package/dist/lib/routes/BaseWorkspaceRoute.js +540 -0
  516. package/dist/lib/routes/BaseWorkspaceRoute.js.map +1 -0
  517. package/dist/lib/routes/CrmRouteBase.js +261 -0
  518. package/dist/lib/routes/CrmRouteBase.js.map +1 -0
  519. package/dist/lib/routes/mongo/AnalyticsRouteMongo.js +26 -0
  520. package/dist/lib/routes/mongo/AnalyticsRouteMongo.js.map +1 -0
  521. package/dist/lib/routes/mongo/ApiKeyRouteMongo.js +26 -0
  522. package/dist/lib/routes/mongo/ApiKeyRouteMongo.js.map +1 -0
  523. package/dist/lib/routes/mongo/AutomationRouteMongo.js +26 -0
  524. package/dist/lib/routes/mongo/AutomationRouteMongo.js.map +1 -0
  525. package/dist/lib/routes/mongo/CampaignRouteMongo.js +26 -0
  526. package/dist/lib/routes/mongo/CampaignRouteMongo.js.map +1 -0
  527. package/dist/lib/routes/mongo/CompanyRouteMongo.js +26 -0
  528. package/dist/lib/routes/mongo/CompanyRouteMongo.js.map +1 -0
  529. package/dist/lib/routes/mongo/ContactRouteMongo.js +26 -0
  530. package/dist/lib/routes/mongo/ContactRouteMongo.js.map +1 -0
  531. package/dist/lib/routes/mongo/CrmAdminRouteMongo.js +26 -0
  532. package/dist/lib/routes/mongo/CrmAdminRouteMongo.js.map +1 -0
  533. package/dist/lib/routes/mongo/DealRouteMongo.js +26 -0
  534. package/dist/lib/routes/mongo/DealRouteMongo.js.map +1 -0
  535. package/dist/lib/routes/mongo/FormRouteMongo.js +26 -0
  536. package/dist/lib/routes/mongo/FormRouteMongo.js.map +1 -0
  537. package/dist/lib/routes/mongo/ImportRouteMongo.js +26 -0
  538. package/dist/lib/routes/mongo/ImportRouteMongo.js.map +1 -0
  539. package/dist/lib/routes/mongo/IntegrationRouteMongo.js +28 -0
  540. package/dist/lib/routes/mongo/IntegrationRouteMongo.js.map +1 -0
  541. package/dist/lib/routes/mongo/ListRouteMongo.js +26 -0
  542. package/dist/lib/routes/mongo/ListRouteMongo.js.map +1 -0
  543. package/dist/lib/routes/mongo/NoteRouteMongo.js +26 -0
  544. package/dist/lib/routes/mongo/NoteRouteMongo.js.map +1 -0
  545. package/dist/lib/routes/mongo/PipelineRouteMongo.js +26 -0
  546. package/dist/lib/routes/mongo/PipelineRouteMongo.js.map +1 -0
  547. package/dist/lib/routes/mongo/PropertyDefinitionRouteMongo.js +26 -0
  548. package/dist/lib/routes/mongo/PropertyDefinitionRouteMongo.js.map +1 -0
  549. package/dist/lib/routes/mongo/PublicRouteMongo.js +28 -0
  550. package/dist/lib/routes/mongo/PublicRouteMongo.js.map +1 -0
  551. package/dist/lib/routes/mongo/SavedBlockRouteMongo.js +26 -0
  552. package/dist/lib/routes/mongo/SavedBlockRouteMongo.js.map +1 -0
  553. package/dist/lib/routes/mongo/ScoringRuleRouteMongo.js +26 -0
  554. package/dist/lib/routes/mongo/ScoringRuleRouteMongo.js.map +1 -0
  555. package/dist/lib/routes/mongo/SegmentRouteMongo.js +26 -0
  556. package/dist/lib/routes/mongo/SegmentRouteMongo.js.map +1 -0
  557. package/dist/lib/routes/mongo/SubscriptionRouteMongo.js +26 -0
  558. package/dist/lib/routes/mongo/SubscriptionRouteMongo.js.map +1 -0
  559. package/dist/lib/routes/mongo/SuppressionRouteMongo.js +26 -0
  560. package/dist/lib/routes/mongo/SuppressionRouteMongo.js.map +1 -0
  561. package/dist/lib/routes/mongo/TaskRouteMongo.js +26 -0
  562. package/dist/lib/routes/mongo/TaskRouteMongo.js.map +1 -0
  563. package/dist/lib/routes/mongo/TemplateRouteMongo.js +26 -0
  564. package/dist/lib/routes/mongo/TemplateRouteMongo.js.map +1 -0
  565. package/dist/lib/routes/mongo/TimelineRouteMongo.js +26 -0
  566. package/dist/lib/routes/mongo/TimelineRouteMongo.js.map +1 -0
  567. package/dist/lib/routes/mongo/TrackingRouteMongo.js +26 -0
  568. package/dist/lib/routes/mongo/TrackingRouteMongo.js.map +1 -0
  569. package/dist/lib/routes/mongo/WebhookRouteMongo.js +26 -0
  570. package/dist/lib/routes/mongo/WebhookRouteMongo.js.map +1 -0
  571. package/dist/lib/routes/mongo/WorkspaceRouteMongo.js +26 -0
  572. package/dist/lib/routes/mongo/WorkspaceRouteMongo.js.map +1 -0
  573. package/dist/lib/routes/sql/AnalyticsRouteSQL.js +26 -0
  574. package/dist/lib/routes/sql/AnalyticsRouteSQL.js.map +1 -0
  575. package/dist/lib/routes/sql/ApiKeyRouteSQL.js +26 -0
  576. package/dist/lib/routes/sql/ApiKeyRouteSQL.js.map +1 -0
  577. package/dist/lib/routes/sql/AutomationRouteSQL.js +26 -0
  578. package/dist/lib/routes/sql/AutomationRouteSQL.js.map +1 -0
  579. package/dist/lib/routes/sql/CampaignRouteSQL.js +26 -0
  580. package/dist/lib/routes/sql/CampaignRouteSQL.js.map +1 -0
  581. package/dist/lib/routes/sql/CompanyRouteSQL.js +26 -0
  582. package/dist/lib/routes/sql/CompanyRouteSQL.js.map +1 -0
  583. package/dist/lib/routes/sql/ContactRouteSQL.js +26 -0
  584. package/dist/lib/routes/sql/ContactRouteSQL.js.map +1 -0
  585. package/dist/lib/routes/sql/CrmAdminRouteSQL.js +26 -0
  586. package/dist/lib/routes/sql/CrmAdminRouteSQL.js.map +1 -0
  587. package/dist/lib/routes/sql/DealRouteSQL.js +26 -0
  588. package/dist/lib/routes/sql/DealRouteSQL.js.map +1 -0
  589. package/dist/lib/routes/sql/FormRouteSQL.js +26 -0
  590. package/dist/lib/routes/sql/FormRouteSQL.js.map +1 -0
  591. package/dist/lib/routes/sql/ImportRouteSQL.js +26 -0
  592. package/dist/lib/routes/sql/ImportRouteSQL.js.map +1 -0
  593. package/dist/lib/routes/sql/IntegrationRouteSQL.js +28 -0
  594. package/dist/lib/routes/sql/IntegrationRouteSQL.js.map +1 -0
  595. package/dist/lib/routes/sql/ListRouteSQL.js +26 -0
  596. package/dist/lib/routes/sql/ListRouteSQL.js.map +1 -0
  597. package/dist/lib/routes/sql/NoteRouteSQL.js +26 -0
  598. package/dist/lib/routes/sql/NoteRouteSQL.js.map +1 -0
  599. package/dist/lib/routes/sql/PipelineRouteSQL.js +26 -0
  600. package/dist/lib/routes/sql/PipelineRouteSQL.js.map +1 -0
  601. package/dist/lib/routes/sql/PropertyDefinitionRouteSQL.js +26 -0
  602. package/dist/lib/routes/sql/PropertyDefinitionRouteSQL.js.map +1 -0
  603. package/dist/lib/routes/sql/PublicRouteSQL.js +28 -0
  604. package/dist/lib/routes/sql/PublicRouteSQL.js.map +1 -0
  605. package/dist/lib/routes/sql/SavedBlockRouteSQL.js +26 -0
  606. package/dist/lib/routes/sql/SavedBlockRouteSQL.js.map +1 -0
  607. package/dist/lib/routes/sql/ScoringRuleRouteSQL.js +26 -0
  608. package/dist/lib/routes/sql/ScoringRuleRouteSQL.js.map +1 -0
  609. package/dist/lib/routes/sql/SegmentRouteSQL.js +26 -0
  610. package/dist/lib/routes/sql/SegmentRouteSQL.js.map +1 -0
  611. package/dist/lib/routes/sql/SubscriptionRouteSQL.js +26 -0
  612. package/dist/lib/routes/sql/SubscriptionRouteSQL.js.map +1 -0
  613. package/dist/lib/routes/sql/SuppressionRouteSQL.js +26 -0
  614. package/dist/lib/routes/sql/SuppressionRouteSQL.js.map +1 -0
  615. package/dist/lib/routes/sql/TaskRouteSQL.js +26 -0
  616. package/dist/lib/routes/sql/TaskRouteSQL.js.map +1 -0
  617. package/dist/lib/routes/sql/TemplateRouteSQL.js +26 -0
  618. package/dist/lib/routes/sql/TemplateRouteSQL.js.map +1 -0
  619. package/dist/lib/routes/sql/TimelineRouteSQL.js +26 -0
  620. package/dist/lib/routes/sql/TimelineRouteSQL.js.map +1 -0
  621. package/dist/lib/routes/sql/TrackingRouteSQL.js +26 -0
  622. package/dist/lib/routes/sql/TrackingRouteSQL.js.map +1 -0
  623. package/dist/lib/routes/sql/WebhookRouteSQL.js +26 -0
  624. package/dist/lib/routes/sql/WebhookRouteSQL.js.map +1 -0
  625. package/dist/lib/routes/sql/WorkspaceRouteSQL.js +26 -0
  626. package/dist/lib/routes/sql/WorkspaceRouteSQL.js.map +1 -0
  627. package/dist/lib/scoring/Scoring.js +105 -0
  628. package/dist/lib/scoring/Scoring.js.map +1 -0
  629. package/dist/lib/segments/Segments.js +125 -0
  630. package/dist/lib/segments/Segments.js.map +1 -0
  631. package/dist/lib/sending/Audience.js +87 -0
  632. package/dist/lib/sending/Audience.js.map +1 -0
  633. package/dist/lib/sending/CampaignRenderer.js +123 -0
  634. package/dist/lib/sending/CampaignRenderer.js.map +1 -0
  635. package/dist/lib/sending/Engagement.js +216 -0
  636. package/dist/lib/sending/Engagement.js.map +1 -0
  637. package/dist/lib/sending/Stats.js +70 -0
  638. package/dist/lib/sending/Stats.js.map +1 -0
  639. package/dist/lib/sending/Tracking.js +98 -0
  640. package/dist/lib/sending/Tracking.js.map +1 -0
  641. package/dist/lib/sql.js +80 -0
  642. package/dist/lib/sql.js.map +1 -0
  643. package/dist/lib/templates/Design.js +278 -0
  644. package/dist/lib/templates/Design.js.map +1 -0
  645. package/dist/lib/templates/MergeContext.js +57 -0
  646. package/dist/lib/templates/MergeContext.js.map +1 -0
  647. package/dist/lib/templates/Render.js +147 -0
  648. package/dist/lib/templates/Render.js.map +1 -0
  649. package/dist/lib/templates/Sanitize.js +98 -0
  650. package/dist/lib/templates/Sanitize.js.map +1 -0
  651. package/dist/lib/util/Csv.js +128 -0
  652. package/dist/lib/util/Csv.js.map +1 -0
  653. package/dist/lib/util/ImportMapping.js +206 -0
  654. package/dist/lib/util/ImportMapping.js.map +1 -0
  655. package/dist/lib/util/Mailer.js +43 -0
  656. package/dist/lib/util/Mailer.js.map +1 -0
  657. package/dist/lib/util/PropertyValues.js +145 -0
  658. package/dist/lib/util/PropertyValues.js.map +1 -0
  659. package/dist/lib/util/Secrets.js +31 -0
  660. package/dist/lib/util/Secrets.js.map +1 -0
  661. package/dist/lib/util/Tokens.js +58 -0
  662. package/dist/lib/util/Tokens.js.map +1 -0
  663. package/dist/lib/util/Validation.js +194 -0
  664. package/dist/lib/util/Validation.js.map +1 -0
  665. package/dist/lib/util/WorkspaceAccess.js +55 -0
  666. package/dist/lib/util/WorkspaceAccess.js.map +1 -0
  667. package/dist/lib/webhooks/Deliveries.js +47 -0
  668. package/dist/lib/webhooks/Deliveries.js.map +1 -0
  669. package/dist/lib/webhooks/Webhooks.js +132 -0
  670. package/dist/lib/webhooks/Webhooks.js.map +1 -0
  671. package/dist/types/automation/Dates.d.ts +42 -0
  672. package/dist/types/automation/Engine.d.ts +63 -0
  673. package/dist/types/automation/Events.d.ts +43 -0
  674. package/dist/types/automation/Graph.d.ts +77 -0
  675. package/dist/types/filters/Filter.d.ts +83 -0
  676. package/dist/types/filters/fields.d.ts +9 -0
  677. package/dist/types/index.d.ts +81 -0
  678. package/dist/types/jobs/AutomationRunJob.d.ts +18 -0
  679. package/dist/types/jobs/AutomationTriggerJob.d.ts +23 -0
  680. package/dist/types/jobs/CampaignJob.d.ts +45 -0
  681. package/dist/types/jobs/CrmImportJob.d.ts +44 -0
  682. package/dist/types/jobs/CrmJobBase.d.ts +26 -0
  683. package/dist/types/jobs/CrmMailEventJob.d.ts +102 -0
  684. package/dist/types/jobs/DateTriggerJob.d.ts +21 -0
  685. package/dist/types/jobs/ScoringJob.d.ts +13 -0
  686. package/dist/types/jobs/SegmentRefreshJob.d.ts +16 -0
  687. package/dist/types/jobs/SendDispatchJob.d.ts +52 -0
  688. package/dist/types/jobs/TaskReminderJob.d.ts +12 -0
  689. package/dist/types/jobs/WebhookDeliveryJob.d.ts +22 -0
  690. package/dist/types/jobs/mongo/AutomationRunJobMongo.d.ts +7 -0
  691. package/dist/types/jobs/mongo/AutomationTriggerJobMongo.d.ts +6 -0
  692. package/dist/types/jobs/mongo/CampaignJobMongo.d.ts +6 -0
  693. package/dist/types/jobs/mongo/CrmImportJobMongo.d.ts +8 -0
  694. package/dist/types/jobs/mongo/CrmMailEventJobMongo.d.ts +6 -0
  695. package/dist/types/jobs/mongo/DateTriggerJobMongo.d.ts +6 -0
  696. package/dist/types/jobs/mongo/ScoringJobMongo.d.ts +6 -0
  697. package/dist/types/jobs/mongo/SegmentRefreshJobMongo.d.ts +6 -0
  698. package/dist/types/jobs/mongo/SendDispatchJobMongo.d.ts +6 -0
  699. package/dist/types/jobs/mongo/TaskReminderJobMongo.d.ts +6 -0
  700. package/dist/types/jobs/mongo/WebhookDeliveryJobMongo.d.ts +6 -0
  701. package/dist/types/jobs/sql/AutomationRunJobSQL.d.ts +7 -0
  702. package/dist/types/jobs/sql/AutomationTriggerJobSQL.d.ts +6 -0
  703. package/dist/types/jobs/sql/CampaignJobSQL.d.ts +6 -0
  704. package/dist/types/jobs/sql/CrmImportJobSQL.d.ts +8 -0
  705. package/dist/types/jobs/sql/CrmMailEventJobSQL.d.ts +6 -0
  706. package/dist/types/jobs/sql/DateTriggerJobSQL.d.ts +6 -0
  707. package/dist/types/jobs/sql/ScoringJobSQL.d.ts +6 -0
  708. package/dist/types/jobs/sql/SegmentRefreshJobSQL.d.ts +6 -0
  709. package/dist/types/jobs/sql/SendDispatchJobSQL.d.ts +6 -0
  710. package/dist/types/jobs/sql/TaskReminderJobSQL.d.ts +6 -0
  711. package/dist/types/jobs/sql/WebhookDeliveryJobSQL.d.ts +6 -0
  712. package/dist/types/models/CrmModelClasses.d.ts +63 -0
  713. package/dist/types/models/mongo/ApiKeyMongo.d.ts +19 -0
  714. package/dist/types/models/mongo/AutomationMongo.d.ts +22 -0
  715. package/dist/types/models/mongo/AutomationVersionMongo.d.ts +16 -0
  716. package/dist/types/models/mongo/CampaignMongo.d.ts +34 -0
  717. package/dist/types/models/mongo/CrmCompanyMongo.d.ts +22 -0
  718. package/dist/types/models/mongo/CrmContactMongo.d.ts +26 -0
  719. package/dist/types/models/mongo/CrmEventMongo.d.ts +17 -0
  720. package/dist/types/models/mongo/CrmFormMongo.d.ts +24 -0
  721. package/dist/types/models/mongo/CrmImportMongo.d.ts +31 -0
  722. package/dist/types/models/mongo/CrmNoteMongo.d.ts +17 -0
  723. package/dist/types/models/mongo/CrmSettingMongo.d.ts +13 -0
  724. package/dist/types/models/mongo/CrmTaskMongo.d.ts +23 -0
  725. package/dist/types/models/mongo/DealMongo.d.ts +27 -0
  726. package/dist/types/models/mongo/EmailTemplateMongo.d.ts +17 -0
  727. package/dist/types/models/mongo/EngagementEventMongo.d.ts +20 -0
  728. package/dist/types/models/mongo/EnrollmentMongo.d.ts +25 -0
  729. package/dist/types/models/mongo/MailingListMongo.d.ts +19 -0
  730. package/dist/types/models/mongo/OutboundSendMongo.d.ts +41 -0
  731. package/dist/types/models/mongo/PipelineMongo.d.ts +15 -0
  732. package/dist/types/models/mongo/PropertyDefinitionMongo.d.ts +19 -0
  733. package/dist/types/models/mongo/PropertyValueMongo.d.ts +18 -0
  734. package/dist/types/models/mongo/SavedBlockMongo.d.ts +14 -0
  735. package/dist/types/models/mongo/ScoringRuleMongo.d.ts +20 -0
  736. package/dist/types/models/mongo/SegmentMongo.d.ts +20 -0
  737. package/dist/types/models/mongo/SubscriptionMongo.d.ts +20 -0
  738. package/dist/types/models/mongo/SuppressionMongo.d.ts +15 -0
  739. package/dist/types/models/mongo/TimelineEventMongo.d.ts +20 -0
  740. package/dist/types/models/mongo/WebhookDeliveryMongo.d.ts +22 -0
  741. package/dist/types/models/mongo/WebhookEndpointMongo.d.ts +21 -0
  742. package/dist/types/models/mongo/WorkspaceMemberMongo.d.ts +17 -0
  743. package/dist/types/models/mongo/WorkspaceMongo.d.ts +21 -0
  744. package/dist/types/models/mongo/WorkspaceSenderMongo.d.ts +18 -0
  745. package/dist/types/models/mongo/index.d.ts +3 -0
  746. package/dist/types/models/sql/ApiKeySQL.d.ts +19 -0
  747. package/dist/types/models/sql/AutomationSQL.d.ts +22 -0
  748. package/dist/types/models/sql/AutomationVersionSQL.d.ts +16 -0
  749. package/dist/types/models/sql/CampaignSQL.d.ts +34 -0
  750. package/dist/types/models/sql/CrmCompanySQL.d.ts +22 -0
  751. package/dist/types/models/sql/CrmContactSQL.d.ts +26 -0
  752. package/dist/types/models/sql/CrmEventSQL.d.ts +17 -0
  753. package/dist/types/models/sql/CrmFormSQL.d.ts +24 -0
  754. package/dist/types/models/sql/CrmImportSQL.d.ts +31 -0
  755. package/dist/types/models/sql/CrmNoteSQL.d.ts +17 -0
  756. package/dist/types/models/sql/CrmSettingSQL.d.ts +13 -0
  757. package/dist/types/models/sql/CrmTaskSQL.d.ts +23 -0
  758. package/dist/types/models/sql/DealSQL.d.ts +27 -0
  759. package/dist/types/models/sql/EmailTemplateSQL.d.ts +17 -0
  760. package/dist/types/models/sql/EngagementEventSQL.d.ts +20 -0
  761. package/dist/types/models/sql/EnrollmentSQL.d.ts +25 -0
  762. package/dist/types/models/sql/MailingListSQL.d.ts +19 -0
  763. package/dist/types/models/sql/OutboundSendSQL.d.ts +41 -0
  764. package/dist/types/models/sql/PipelineSQL.d.ts +15 -0
  765. package/dist/types/models/sql/PropertyDefinitionSQL.d.ts +19 -0
  766. package/dist/types/models/sql/PropertyValueSQL.d.ts +18 -0
  767. package/dist/types/models/sql/SavedBlockSQL.d.ts +14 -0
  768. package/dist/types/models/sql/ScoringRuleSQL.d.ts +20 -0
  769. package/dist/types/models/sql/SegmentSQL.d.ts +20 -0
  770. package/dist/types/models/sql/SubscriptionSQL.d.ts +20 -0
  771. package/dist/types/models/sql/SuppressionSQL.d.ts +15 -0
  772. package/dist/types/models/sql/TimelineEventSQL.d.ts +20 -0
  773. package/dist/types/models/sql/WebhookDeliverySQL.d.ts +22 -0
  774. package/dist/types/models/sql/WebhookEndpointSQL.d.ts +21 -0
  775. package/dist/types/models/sql/WorkspaceMemberSQL.d.ts +17 -0
  776. package/dist/types/models/sql/WorkspaceSQL.d.ts +21 -0
  777. package/dist/types/models/sql/WorkspaceSenderSQL.d.ts +18 -0
  778. package/dist/types/models/sql/index.d.ts +3 -0
  779. package/dist/types/models/types.d.ts +902 -0
  780. package/dist/types/mongo.d.ts +75 -0
  781. package/dist/types/purge.d.ts +32 -0
  782. package/dist/types/routes/BaseAnalyticsRoute.d.ts +87 -0
  783. package/dist/types/routes/BaseApiKeyRoute.d.ts +31 -0
  784. package/dist/types/routes/BaseAutomationRoute.d.ts +56 -0
  785. package/dist/types/routes/BaseCampaignRoute.d.ts +66 -0
  786. package/dist/types/routes/BaseCompanyRoute.d.ts +30 -0
  787. package/dist/types/routes/BaseContactRoute.d.ts +42 -0
  788. package/dist/types/routes/BaseCrmAdminRoute.d.ts +41 -0
  789. package/dist/types/routes/BaseDealRoute.d.ts +65 -0
  790. package/dist/types/routes/BaseFormRoute.d.ts +25 -0
  791. package/dist/types/routes/BaseImportRoute.d.ts +39 -0
  792. package/dist/types/routes/BaseIntegrationRoute.d.ts +46 -0
  793. package/dist/types/routes/BaseListRoute.d.ts +26 -0
  794. package/dist/types/routes/BaseNoteRoute.d.ts +15 -0
  795. package/dist/types/routes/BasePipelineRoute.d.ts +31 -0
  796. package/dist/types/routes/BasePropertyDefinitionRoute.d.ts +24 -0
  797. package/dist/types/routes/BasePublicRoute.d.ts +129 -0
  798. package/dist/types/routes/BaseSavedBlockRoute.d.ts +16 -0
  799. package/dist/types/routes/BaseScoringRuleRoute.d.ts +33 -0
  800. package/dist/types/routes/BaseSegmentRoute.d.ts +36 -0
  801. package/dist/types/routes/BaseSubscriptionRoute.d.ts +20 -0
  802. package/dist/types/routes/BaseSuppressionRoute.d.ts +17 -0
  803. package/dist/types/routes/BaseTaggedRecordRoute.d.ts +85 -0
  804. package/dist/types/routes/BaseTaskRoute.d.ts +18 -0
  805. package/dist/types/routes/BaseTemplateRoute.d.ts +52 -0
  806. package/dist/types/routes/BaseTimelineRoute.d.ts +10 -0
  807. package/dist/types/routes/BaseTrackingRoute.d.ts +21 -0
  808. package/dist/types/routes/BaseWebhookRoute.d.ts +49 -0
  809. package/dist/types/routes/BaseWorkspaceRecordRoute.d.ts +78 -0
  810. package/dist/types/routes/BaseWorkspaceRoute.d.ts +78 -0
  811. package/dist/types/routes/CrmRouteBase.d.ts +95 -0
  812. package/dist/types/routes/mongo/AnalyticsRouteMongo.d.ts +6 -0
  813. package/dist/types/routes/mongo/ApiKeyRouteMongo.d.ts +6 -0
  814. package/dist/types/routes/mongo/AutomationRouteMongo.d.ts +6 -0
  815. package/dist/types/routes/mongo/CampaignRouteMongo.d.ts +6 -0
  816. package/dist/types/routes/mongo/CompanyRouteMongo.d.ts +6 -0
  817. package/dist/types/routes/mongo/ContactRouteMongo.d.ts +6 -0
  818. package/dist/types/routes/mongo/CrmAdminRouteMongo.d.ts +6 -0
  819. package/dist/types/routes/mongo/DealRouteMongo.d.ts +6 -0
  820. package/dist/types/routes/mongo/FormRouteMongo.d.ts +6 -0
  821. package/dist/types/routes/mongo/ImportRouteMongo.d.ts +6 -0
  822. package/dist/types/routes/mongo/IntegrationRouteMongo.d.ts +7 -0
  823. package/dist/types/routes/mongo/ListRouteMongo.d.ts +6 -0
  824. package/dist/types/routes/mongo/NoteRouteMongo.d.ts +6 -0
  825. package/dist/types/routes/mongo/PipelineRouteMongo.d.ts +6 -0
  826. package/dist/types/routes/mongo/PropertyDefinitionRouteMongo.d.ts +6 -0
  827. package/dist/types/routes/mongo/PublicRouteMongo.d.ts +7 -0
  828. package/dist/types/routes/mongo/SavedBlockRouteMongo.d.ts +6 -0
  829. package/dist/types/routes/mongo/ScoringRuleRouteMongo.d.ts +6 -0
  830. package/dist/types/routes/mongo/SegmentRouteMongo.d.ts +6 -0
  831. package/dist/types/routes/mongo/SubscriptionRouteMongo.d.ts +6 -0
  832. package/dist/types/routes/mongo/SuppressionRouteMongo.d.ts +6 -0
  833. package/dist/types/routes/mongo/TaskRouteMongo.d.ts +6 -0
  834. package/dist/types/routes/mongo/TemplateRouteMongo.d.ts +6 -0
  835. package/dist/types/routes/mongo/TimelineRouteMongo.d.ts +6 -0
  836. package/dist/types/routes/mongo/TrackingRouteMongo.d.ts +6 -0
  837. package/dist/types/routes/mongo/WebhookRouteMongo.d.ts +6 -0
  838. package/dist/types/routes/mongo/WorkspaceRouteMongo.d.ts +6 -0
  839. package/dist/types/routes/sql/AnalyticsRouteSQL.d.ts +6 -0
  840. package/dist/types/routes/sql/ApiKeyRouteSQL.d.ts +6 -0
  841. package/dist/types/routes/sql/AutomationRouteSQL.d.ts +6 -0
  842. package/dist/types/routes/sql/CampaignRouteSQL.d.ts +6 -0
  843. package/dist/types/routes/sql/CompanyRouteSQL.d.ts +6 -0
  844. package/dist/types/routes/sql/ContactRouteSQL.d.ts +6 -0
  845. package/dist/types/routes/sql/CrmAdminRouteSQL.d.ts +6 -0
  846. package/dist/types/routes/sql/DealRouteSQL.d.ts +6 -0
  847. package/dist/types/routes/sql/FormRouteSQL.d.ts +6 -0
  848. package/dist/types/routes/sql/ImportRouteSQL.d.ts +6 -0
  849. package/dist/types/routes/sql/IntegrationRouteSQL.d.ts +7 -0
  850. package/dist/types/routes/sql/ListRouteSQL.d.ts +6 -0
  851. package/dist/types/routes/sql/NoteRouteSQL.d.ts +6 -0
  852. package/dist/types/routes/sql/PipelineRouteSQL.d.ts +6 -0
  853. package/dist/types/routes/sql/PropertyDefinitionRouteSQL.d.ts +6 -0
  854. package/dist/types/routes/sql/PublicRouteSQL.d.ts +7 -0
  855. package/dist/types/routes/sql/SavedBlockRouteSQL.d.ts +6 -0
  856. package/dist/types/routes/sql/ScoringRuleRouteSQL.d.ts +6 -0
  857. package/dist/types/routes/sql/SegmentRouteSQL.d.ts +6 -0
  858. package/dist/types/routes/sql/SubscriptionRouteSQL.d.ts +6 -0
  859. package/dist/types/routes/sql/SuppressionRouteSQL.d.ts +6 -0
  860. package/dist/types/routes/sql/TaskRouteSQL.d.ts +6 -0
  861. package/dist/types/routes/sql/TemplateRouteSQL.d.ts +6 -0
  862. package/dist/types/routes/sql/TimelineRouteSQL.d.ts +6 -0
  863. package/dist/types/routes/sql/TrackingRouteSQL.d.ts +6 -0
  864. package/dist/types/routes/sql/WebhookRouteSQL.d.ts +6 -0
  865. package/dist/types/routes/sql/WorkspaceRouteSQL.d.ts +6 -0
  866. package/dist/types/scoring/Scoring.d.ts +14 -0
  867. package/dist/types/segments/Segments.d.ts +46 -0
  868. package/dist/types/sending/Audience.d.ts +39 -0
  869. package/dist/types/sending/CampaignRenderer.d.ts +40 -0
  870. package/dist/types/sending/Engagement.d.ts +50 -0
  871. package/dist/types/sending/Stats.d.ts +17 -0
  872. package/dist/types/sending/Tracking.d.ts +39 -0
  873. package/dist/types/sql.d.ts +75 -0
  874. package/dist/types/templates/Design.d.ts +138 -0
  875. package/dist/types/templates/MergeContext.d.ts +27 -0
  876. package/dist/types/templates/Render.d.ts +46 -0
  877. package/dist/types/templates/Sanitize.d.ts +18 -0
  878. package/dist/types/util/Csv.d.ts +26 -0
  879. package/dist/types/util/ImportMapping.d.ts +23 -0
  880. package/dist/types/util/Mailer.d.ts +24 -0
  881. package/dist/types/util/PropertyValues.d.ts +31 -0
  882. package/dist/types/util/Secrets.d.ts +10 -0
  883. package/dist/types/util/Tokens.d.ts +30 -0
  884. package/dist/types/util/Validation.d.ts +59 -0
  885. package/dist/types/util/WorkspaceAccess.d.ts +24 -0
  886. package/dist/types/webhooks/Deliveries.d.ts +26 -0
  887. package/dist/types/webhooks/Webhooks.d.ts +43 -0
  888. package/package.json +226 -0
@@ -0,0 +1,75 @@
1
+ /**
2
+ * This plugin's `./mongo` entry point: exactly the classes a server host loads for a Mongo deployment - the CRM models, the routes
3
+ * mounted under `/api/mail/crm`, and the background jobs. Anything else exported here would be registered (and a job started) by
4
+ * the host too, so the abstract routes and utilities stay in the package root.
5
+ */
6
+ export { WorkspaceMongo } from "./models/mongo/WorkspaceMongo.js";
7
+ export { WorkspaceMemberMongo } from "./models/mongo/WorkspaceMemberMongo.js";
8
+ export { WorkspaceSenderMongo } from "./models/mongo/WorkspaceSenderMongo.js";
9
+ export { CrmContactMongo } from "./models/mongo/CrmContactMongo.js";
10
+ export { CrmCompanyMongo } from "./models/mongo/CrmCompanyMongo.js";
11
+ export { PropertyDefinitionMongo } from "./models/mongo/PropertyDefinitionMongo.js";
12
+ export { PropertyValueMongo } from "./models/mongo/PropertyValueMongo.js";
13
+ export { CrmNoteMongo } from "./models/mongo/CrmNoteMongo.js";
14
+ export { CrmTaskMongo } from "./models/mongo/CrmTaskMongo.js";
15
+ export { TimelineEventMongo } from "./models/mongo/TimelineEventMongo.js";
16
+ export { CrmImportMongo } from "./models/mongo/CrmImportMongo.js";
17
+ export { MailingListMongo } from "./models/mongo/MailingListMongo.js";
18
+ export { SubscriptionMongo } from "./models/mongo/SubscriptionMongo.js";
19
+ export { SuppressionMongo } from "./models/mongo/SuppressionMongo.js";
20
+ export { CrmFormMongo } from "./models/mongo/CrmFormMongo.js";
21
+ export { CrmSettingMongo } from "./models/mongo/CrmSettingMongo.js";
22
+ export { EmailTemplateMongo } from "./models/mongo/EmailTemplateMongo.js";
23
+ export { SavedBlockMongo } from "./models/mongo/SavedBlockMongo.js";
24
+ export { CampaignMongo } from "./models/mongo/CampaignMongo.js";
25
+ export { OutboundSendMongo } from "./models/mongo/OutboundSendMongo.js";
26
+ export { EngagementEventMongo } from "./models/mongo/EngagementEventMongo.js";
27
+ export { SegmentMongo } from "./models/mongo/SegmentMongo.js";
28
+ export { ScoringRuleMongo } from "./models/mongo/ScoringRuleMongo.js";
29
+ export { AutomationMongo } from "./models/mongo/AutomationMongo.js";
30
+ export { AutomationVersionMongo } from "./models/mongo/AutomationVersionMongo.js";
31
+ export { EnrollmentMongo } from "./models/mongo/EnrollmentMongo.js";
32
+ export { CrmEventMongo } from "./models/mongo/CrmEventMongo.js";
33
+ export { PipelineMongo } from "./models/mongo/PipelineMongo.js";
34
+ export { DealMongo } from "./models/mongo/DealMongo.js";
35
+ export { WebhookEndpointMongo } from "./models/mongo/WebhookEndpointMongo.js";
36
+ export { WebhookDeliveryMongo } from "./models/mongo/WebhookDeliveryMongo.js";
37
+ export { ApiKeyMongo } from "./models/mongo/ApiKeyMongo.js";
38
+ export { WorkspaceRouteMongo } from "./routes/mongo/WorkspaceRouteMongo.js";
39
+ export { ContactRouteMongo } from "./routes/mongo/ContactRouteMongo.js";
40
+ export { CompanyRouteMongo } from "./routes/mongo/CompanyRouteMongo.js";
41
+ export { PropertyDefinitionRouteMongo } from "./routes/mongo/PropertyDefinitionRouteMongo.js";
42
+ export { NoteRouteMongo } from "./routes/mongo/NoteRouteMongo.js";
43
+ export { TaskRouteMongo } from "./routes/mongo/TaskRouteMongo.js";
44
+ export { TimelineRouteMongo } from "./routes/mongo/TimelineRouteMongo.js";
45
+ export { ImportRouteMongo } from "./routes/mongo/ImportRouteMongo.js";
46
+ export { ListRouteMongo } from "./routes/mongo/ListRouteMongo.js";
47
+ export { SubscriptionRouteMongo } from "./routes/mongo/SubscriptionRouteMongo.js";
48
+ export { SuppressionRouteMongo } from "./routes/mongo/SuppressionRouteMongo.js";
49
+ export { FormRouteMongo } from "./routes/mongo/FormRouteMongo.js";
50
+ export { PublicRouteMongo } from "./routes/mongo/PublicRouteMongo.js";
51
+ export { TemplateRouteMongo } from "./routes/mongo/TemplateRouteMongo.js";
52
+ export { SavedBlockRouteMongo } from "./routes/mongo/SavedBlockRouteMongo.js";
53
+ export { CampaignRouteMongo } from "./routes/mongo/CampaignRouteMongo.js";
54
+ export { TrackingRouteMongo } from "./routes/mongo/TrackingRouteMongo.js";
55
+ export { SegmentRouteMongo } from "./routes/mongo/SegmentRouteMongo.js";
56
+ export { ScoringRuleRouteMongo } from "./routes/mongo/ScoringRuleRouteMongo.js";
57
+ export { AutomationRouteMongo } from "./routes/mongo/AutomationRouteMongo.js";
58
+ export { PipelineRouteMongo } from "./routes/mongo/PipelineRouteMongo.js";
59
+ export { DealRouteMongo } from "./routes/mongo/DealRouteMongo.js";
60
+ export { AnalyticsRouteMongo } from "./routes/mongo/AnalyticsRouteMongo.js";
61
+ export { WebhookRouteMongo } from "./routes/mongo/WebhookRouteMongo.js";
62
+ export { ApiKeyRouteMongo } from "./routes/mongo/ApiKeyRouteMongo.js";
63
+ export { IntegrationRouteMongo } from "./routes/mongo/IntegrationRouteMongo.js";
64
+ export { CrmAdminRouteMongo } from "./routes/mongo/CrmAdminRouteMongo.js";
65
+ export { CrmImportJobMongo } from "./jobs/mongo/CrmImportJobMongo.js";
66
+ export { CampaignJobMongo } from "./jobs/mongo/CampaignJobMongo.js";
67
+ export { SendDispatchJobMongo } from "./jobs/mongo/SendDispatchJobMongo.js";
68
+ export { CrmMailEventJobMongo } from "./jobs/mongo/CrmMailEventJobMongo.js";
69
+ export { SegmentRefreshJobMongo } from "./jobs/mongo/SegmentRefreshJobMongo.js";
70
+ export { ScoringJobMongo } from "./jobs/mongo/ScoringJobMongo.js";
71
+ export { AutomationTriggerJobMongo } from "./jobs/mongo/AutomationTriggerJobMongo.js";
72
+ export { AutomationRunJobMongo } from "./jobs/mongo/AutomationRunJobMongo.js";
73
+ export { TaskReminderJobMongo } from "./jobs/mongo/TaskReminderJobMongo.js";
74
+ export { WebhookDeliveryJobMongo } from "./jobs/mongo/WebhookDeliveryJobMongo.js";
75
+ export { DateTriggerJobMongo } from "./jobs/mongo/DateTriggerJobMongo.js";
@@ -0,0 +1,32 @@
1
+ /**
2
+ * This plugin's `./purge` entry point: the server runs `onPurge()` when the plugin is uninstalled *with its data*, once no server runs
3
+ * it any more and before it deletes the plugin's collections and tables (which it finds from the models).
4
+ *
5
+ * What those steps can't find is the uploaded import files (`CrmImport.blobKey`, kept in the server's `BlobStore` under
6
+ * `crm-imports/`): the store can't list keys, and the keys are only in the rows the server is about to delete. So this deletes each
7
+ * file by its recorded key first. If one can't be deleted it throws an `AbortPurgeError`, which stops the purge before the rows go -
8
+ * the keys are still there for a retry.
9
+ *
10
+ * Workspace ACLs (one per workspace, keyed by its uid, in the server's ACL store) are left to the server's own ACL cleanup.
11
+ */
12
+ /** What the server hands `onPurge()` (structurally; a plugin imports nothing from the server). */
13
+ export interface PurgeContext {
14
+ /** The collections and tables this plugin's models use. */
15
+ models: readonly {
16
+ className: string;
17
+ datastore: string;
18
+ kind: "mongo" | "sql";
19
+ name: string;
20
+ }[];
21
+ /** The server's connection for a datastore: a service-core `MongoConnection` or a TypeORM `DataSource`. */
22
+ connection(datastore: string): any;
23
+ /** The server's `BlobStore`. */
24
+ blobStore?: {
25
+ delete(key: string): Promise<void>;
26
+ };
27
+ logger?: {
28
+ info(message: string): void;
29
+ };
30
+ }
31
+ /** Deletes every import file this plugin stored in the server's `BlobStore`. */
32
+ export declare function onPurge(ctx: PurgeContext): Promise<void>;
@@ -0,0 +1,87 @@
1
+ import type { JWTUser } from "@rapidrest/core";
2
+ import { CrmRouteBase } from "./CrmRouteBase.js";
3
+ /** The most rows one report reads of one kind, so a report on a busy workspace stays bounded. */
4
+ export declare const MAX_REPORT_ROWS = 200000;
5
+ /** One day of email numbers: how many messages each thing happened to, that day. */
6
+ export interface EmailDay {
7
+ date: string;
8
+ sent: number;
9
+ opened: number;
10
+ clicked: number;
11
+ replied: number;
12
+ bounced: number;
13
+ unsubscribed: number;
14
+ }
15
+ export interface EmailReport {
16
+ days: EmailDay[];
17
+ /** Messages sent in the window, and how many of them each thing happened to. */
18
+ totals: {
19
+ sent: number;
20
+ opened: number;
21
+ clicked: number;
22
+ replied: number;
23
+ bounced: number;
24
+ unsubscribed: number;
25
+ complained: number;
26
+ };
27
+ /** The recipient domains messages went to most, with their open and click counts. */
28
+ domains: {
29
+ domain: string;
30
+ sent: number;
31
+ opened: number;
32
+ clicked: number;
33
+ }[];
34
+ }
35
+ export interface GrowthDay {
36
+ date: string;
37
+ contacts: number;
38
+ subscribed: number;
39
+ unsubscribed: number;
40
+ }
41
+ export interface GrowthReport {
42
+ days: GrowthDay[];
43
+ contacts: number;
44
+ lists: {
45
+ uid: string;
46
+ name: string;
47
+ subscribed: number;
48
+ }[];
49
+ }
50
+ export interface SalesDay {
51
+ date: string;
52
+ created: number;
53
+ wonAmount: number;
54
+ won: number;
55
+ lost: number;
56
+ }
57
+ export interface SalesReport {
58
+ days: SalesDay[];
59
+ open: {
60
+ count: number;
61
+ amount: number;
62
+ };
63
+ won: {
64
+ count: number;
65
+ amount: number;
66
+ };
67
+ lost: number;
68
+ }
69
+ /** Every day of the last `count` days, oldest first, ending today (UTC). */
70
+ export declare function lastDays(count: number, now?: Date): string[];
71
+ /**
72
+ * A workspace's reports (`/api/mail/crm/analytics`), each over the last `days` (1 to 365, 30 by default), by UTC day:
73
+ * - `GET /:workspaceUid/email` - messages sent, opened, clicked, replied to, bounced and unsubscribed from, per day and in all, and
74
+ * the recipient domains mailed most (`EmailReport`). Opens by machines don't count.
75
+ * - `GET /:workspaceUid/growth` - new contacts, subscribes and unsubscribes per day, and each list's subscribers now (`GrowthReport`).
76
+ * - `GET /:workspaceUid/sales?pipelineUid=` - deals created, won (and their value) and lost per day, and what is open (`SalesReport`).
77
+ *
78
+ * Reports read at most `MAX_REPORT_ROWS` rows of each kind.
79
+ */
80
+ export declare abstract class BaseAnalyticsRoute extends CrmRouteBase {
81
+ private readDays;
82
+ /** Every row of `repo` matching `query`, in uid order, at most `MAX_REPORT_ROWS`. */
83
+ private all;
84
+ email(workspaceUid: string, query: Record<string, unknown> | undefined, user?: JWTUser): Promise<EmailReport>;
85
+ growth(workspaceUid: string, query: Record<string, unknown> | undefined, user?: JWTUser): Promise<GrowthReport>;
86
+ sales(workspaceUid: string, query: Record<string, unknown> | undefined, user?: JWTUser): Promise<SalesReport>;
87
+ }
@@ -0,0 +1,31 @@
1
+ import type { JWTUser } from "@rapidrest/core";
2
+ import { ApiKey, WorkspaceAction } from "../models/types.js";
3
+ import { BaseWorkspaceRecordRoute, WriteContext } from "./BaseWorkspaceRecordRoute.js";
4
+ /** How many API keys one workspace may have. */
5
+ export declare const MAX_API_KEYS = 20;
6
+ /** A new API key: `crm_` and 32 random bytes, base64url. */
7
+ export declare function newApiKey(): string;
8
+ /** What an API key is stored as. */
9
+ export declare function hashApiKey(key: string): string;
10
+ /** An API key as the API shows it: never its hash. */
11
+ export type ApiKeyView = Omit<ApiKey, "hash">;
12
+ /**
13
+ * A workspace's integration API keys (`/api/mail/crm/api-keys`) - see `BaseWorkspaceRecordRoute` for the endpoints; they take
14
+ * `MANAGE`. A key is answered in full once, when it is created (`key`); only its SHA-256 is kept. A key can be renamed and its
15
+ * `scopes` changed; deleting it revokes it. See `BaseIntegrationRoute` for what keys call.
16
+ */
17
+ export declare abstract class BaseApiKeyRoute extends BaseWorkspaceRecordRoute<ApiKey, ApiKeyView> {
18
+ protected readonly model: "apiKey";
19
+ protected readonly pushType: string;
20
+ protected readonly writeAction: WorkspaceAction;
21
+ protected readonly maxRecords: number;
22
+ /** The key of the create being handled, to answer it once. */
23
+ private issued?;
24
+ protected readCreate(body: Record<string, unknown>, context: WriteContext): Promise<Partial<ApiKey>>;
25
+ protected readUpdate(body: Record<string, unknown>): Promise<Partial<ApiKey>>;
26
+ private readScopes;
27
+ protected toViews(records: ApiKey[]): Promise<ApiKeyView[]>;
28
+ create(workspaceUid: string, body: unknown, user?: JWTUser): Promise<ApiKeyView & {
29
+ key?: string;
30
+ }>;
31
+ }
@@ -0,0 +1,56 @@
1
+ import type { JWTUser } from "@rapidrest/core";
2
+ import { Automation, Enrollment, EnrollmentState } from "../models/types.js";
3
+ import { BaseWorkspaceRecordRoute, SearchResult, WriteContext } from "./BaseWorkspaceRecordRoute.js";
4
+ /** How many automations one workspace may have. */
5
+ export declare const MAX_AUTOMATIONS = 200;
6
+ /** How many contacts one request may enroll by hand. */
7
+ export declare const MAX_MANUAL_ENROLL = 500;
8
+ /** An enrollment as a list shows it: with its contact's address. */
9
+ export interface EnrollmentView extends Enrollment {
10
+ email?: string;
11
+ }
12
+ /** An automation's numbers: enrollments by state, who is at each step now, and each email step's results. */
13
+ export interface AutomationReport {
14
+ states: Record<EnrollmentState, number>;
15
+ nodes: Record<string, {
16
+ current: number;
17
+ sent?: number;
18
+ opened?: number;
19
+ clicked?: number;
20
+ replied?: number;
21
+ }>;
22
+ }
23
+ /**
24
+ * A workspace's automations (`/api/mail/crm/automations`) - see `BaseWorkspaceRecordRoute` for the endpoints; the draft `graph`,
25
+ * `reentry` and `goalFilter` change with `PUT` - plus:
26
+ * - `POST /:workspaceUid/:uid/publish` - checks the draft (`validateForPublish()` and that everything it names exists) and makes it
27
+ * the version new enrollments go through; the automation becomes active.
28
+ * - `POST /:workspaceUid/:uid/pause` and `.../resume`.
29
+ * - `POST /:workspaceUid/:uid/enroll` - `{ contactUids }`: puts contacts in by hand (an active automation, as its re-entry rule allows).
30
+ * - `GET /:workspaceUid/:uid/report` - `AutomationReport`.
31
+ * - `POST /:workspaceUid/:uid/enrollments` - `{ state?, contactUid?, limit?, page? }` to a page of enrollments.
32
+ * - `POST /:workspaceUid/:uid/enrollments/:enrollmentUid/exit` - takes one contact out.
33
+ */
34
+ export declare abstract class BaseAutomationRoute extends BaseWorkspaceRecordRoute<Automation> {
35
+ protected readonly model: "automation";
36
+ protected readonly pushType: string;
37
+ protected readonly sortFields: readonly string[];
38
+ protected readonly maxRecords: number;
39
+ protected readCreate(body: Record<string, unknown>, context: WriteContext): Promise<Partial<Automation>>;
40
+ protected readUpdate(body: Record<string, unknown>, _existing: Automation, context: WriteContext): Promise<Partial<Automation>>;
41
+ private readContactFilter;
42
+ protected afterDelete(record: Automation): Promise<void>;
43
+ private requireAutomation;
44
+ /** Refuses (400) a published graph naming something the workspace doesn't have. */
45
+ private checkReferences;
46
+ publish(workspaceUid: string, uid: string, user?: JWTUser): Promise<Automation>;
47
+ pause(workspaceUid: string, uid: string, user?: JWTUser): Promise<Automation>;
48
+ resume(workspaceUid: string, uid: string, user?: JWTUser): Promise<Automation>;
49
+ enroll(workspaceUid: string, uid: string, body: unknown, user?: JWTUser): Promise<{
50
+ enrolled: number;
51
+ }>;
52
+ report(workspaceUid: string, uid: string, user?: JWTUser): Promise<AutomationReport>;
53
+ enrollments(workspaceUid: string, uid: string, body: unknown, user?: JWTUser): Promise<SearchResult<EnrollmentView>>;
54
+ exitEnrollment(workspaceUid: string, uid: string, enrollmentUid: string, user?: JWTUser): Promise<Enrollment>;
55
+ private transition;
56
+ }
@@ -0,0 +1,66 @@
1
+ import type { JWTUser } from "@rapidrest/core";
2
+ import { Campaign, CampaignStats, OutboundSend } from "../models/types.js";
3
+ import { LinkClicks } from "../sending/Stats.js";
4
+ import { BaseWorkspaceRecordRoute, SearchResult, WriteContext } from "./BaseWorkspaceRecordRoute.js";
5
+ /** How many campaigns one workspace may have. */
6
+ export declare const MAX_CAMPAIGNS = 5000;
7
+ /** How many lists a campaign may go to, or exclude. */
8
+ export declare const MAX_CAMPAIGN_LISTS = 20;
9
+ /** The A/B variant ids, in order. */
10
+ export declare const VARIANT_IDS: readonly string[];
11
+ /** One thing standing in the way of sending a campaign. */
12
+ export interface CampaignProblem {
13
+ field: string;
14
+ message: string;
15
+ }
16
+ /**
17
+ * A workspace's email campaigns (`/api/mail/crm/campaigns`) - see `BaseWorkspaceRecordRoute` for the endpoints - plus:
18
+ * - `GET /:workspaceUid/:uid/checklist` - what stands in the way of sending it (`CampaignProblem[]`, empty when nothing).
19
+ * - `POST /:workspaceUid/:uid/schedule` - `{ sendAt? }`: sends it at `sendAt`, or now. Refused while the checklist has problems.
20
+ * - `POST /:workspaceUid/:uid/unschedule` - back to a draft, before it starts.
21
+ * - `POST /:workspaceUid/:uid/pause`, `.../resume`, `.../cancel` - while it goes out. Cancelling drops what hasn't been sent.
22
+ * - `POST /:workspaceUid/:uid/duplicate` - a draft copy.
23
+ * - `POST /:workspaceUid/audience` - `{ listUids, excludeListUids? }` to `{ count, capped }`: how many contacts it would reach now.
24
+ * - `GET /:workspaceUid/:uid/report` - fresh stats and the links by clicks.
25
+ * - `POST /:workspaceUid/:uid/recipients` - `{ status?, engagement?, q?, limit?, page? }` to a page of its messages.
26
+ *
27
+ * Only a draft can be changed; the jobs (`CampaignJob`, `SendDispatchJob`) take it from `scheduled` on.
28
+ */
29
+ export declare abstract class BaseCampaignRoute extends BaseWorkspaceRecordRoute<Campaign> {
30
+ protected readonly model: "campaign";
31
+ protected readonly pushType: string;
32
+ protected readonly sortFields: readonly string[];
33
+ protected readonly maxRecords: number;
34
+ protected readCreate(body: Record<string, unknown>, context: WriteContext): Promise<Partial<Campaign>>;
35
+ protected readUpdate(body: Record<string, unknown>, existing: Campaign, context: WriteContext): Promise<Partial<Campaign>>;
36
+ private readFields;
37
+ private readLists;
38
+ private readSegments;
39
+ private readAbTest;
40
+ private requireTemplate;
41
+ protected afterDelete(record: Campaign): Promise<void>;
42
+ protected beforeDelete(record: Campaign): Promise<void>;
43
+ /** The campaign, after checking the caller may do `action` on its workspace. */
44
+ private requireCampaign;
45
+ /** What stands in the way of sending `campaign`. */
46
+ problems(campaign: Campaign): Promise<CampaignProblem[]>;
47
+ checklist(workspaceUid: string, uid: string, user?: JWTUser): Promise<CampaignProblem[]>;
48
+ schedule(workspaceUid: string, uid: string, body: unknown, user?: JWTUser): Promise<Campaign>;
49
+ unschedule(workspaceUid: string, uid: string, user?: JWTUser): Promise<Campaign>;
50
+ pause(workspaceUid: string, uid: string, user?: JWTUser): Promise<Campaign>;
51
+ resume(workspaceUid: string, uid: string, user?: JWTUser): Promise<Campaign>;
52
+ cancel(workspaceUid: string, uid: string, user?: JWTUser): Promise<Campaign>;
53
+ duplicate(workspaceUid: string, uid: string, user?: JWTUser): Promise<Campaign>;
54
+ audience(workspaceUid: string, body: unknown, user?: JWTUser): Promise<{
55
+ count: number;
56
+ capped: boolean;
57
+ }>;
58
+ report(workspaceUid: string, uid: string, user?: JWTUser): Promise<{
59
+ campaign: Campaign;
60
+ stats: CampaignStats;
61
+ links: LinkClicks[];
62
+ }>;
63
+ recipients(workspaceUid: string, uid: string, body: unknown, user?: JWTUser): Promise<SearchResult<OutboundSend>>;
64
+ /** `campaign` with `changes`, saved (version-checked against the jobs) and pushed. */
65
+ private transition;
66
+ }
@@ -0,0 +1,30 @@
1
+ import { CrmCompany, CrmObjectType } from "../models/types.js";
2
+ import { BaseTaggedRecordRoute } from "./BaseTaggedRecordRoute.js";
3
+ import { WriteContext } from "./BaseWorkspaceRecordRoute.js";
4
+ /** How many companies one workspace may have. */
5
+ export declare const MAX_COMPANIES = 200000;
6
+ /**
7
+ * A workspace's companies (`/api/mail/crm/companies`) - see `BaseWorkspaceRecordRoute` for the endpoints and `BaseTaggedRecordRoute`
8
+ * for tags, custom properties, filters, bulk actions and export. A company's `domain` is normalized (`acme.com` from
9
+ * `https://www.acme.com/about` or `jane@acme.com`); new contacts with an address at it are linked to it. Deleting a company unlinks
10
+ * its contacts.
11
+ */
12
+ export declare abstract class BaseCompanyRoute extends BaseTaggedRecordRoute<CrmCompany> {
13
+ protected readonly model: "company";
14
+ protected readonly pushType: string;
15
+ protected readonly objectType: CrmObjectType;
16
+ protected readonly recordFields: Readonly<Record<string, import("../index.js").FilterField>>;
17
+ protected readonly textFields: readonly string[];
18
+ protected readonly exportFields: readonly string[];
19
+ protected readonly noun: string;
20
+ protected readonly sortFields: readonly string[];
21
+ protected readonly maxRecords: number;
22
+ readonly importFields: Readonly<Record<string, "text" | "number">>;
23
+ /** The workspace's company with the row's domain, or else (for a row with no domain) with its exact name. */
24
+ protected findExisting(workspaceUid: string, body: Record<string, unknown>): Promise<CrmCompany | undefined>;
25
+ protected readCreate(body: Record<string, unknown>, context: WriteContext): Promise<Partial<CrmCompany>>;
26
+ protected readUpdate(body: Record<string, unknown>, _existing: CrmCompany, context: WriteContext): Promise<Partial<CrmCompany>>;
27
+ private readFields;
28
+ /** Deleting companies unlinks their contacts too. */
29
+ protected deleteRelated(uids: string[], workspaceUid: string): Promise<void>;
30
+ }
@@ -0,0 +1,42 @@
1
+ import { CrmContact, CrmObjectType } from "../models/types.js";
2
+ import { BaseTaggedRecordRoute } from "./BaseTaggedRecordRoute.js";
3
+ import { WriteContext } from "./BaseWorkspaceRecordRoute.js";
4
+ /** How many contacts one workspace may have. */
5
+ export declare const MAX_CONTACTS = 1000000;
6
+ /**
7
+ * A workspace's contacts (`/api/mail/crm/contacts`) - see `BaseWorkspaceRecordRoute` for the endpoints and `BaseTaggedRecordRoute`
8
+ * for tags, custom properties, filters, bulk actions and export.
9
+ *
10
+ * A contact is unique by email address within its workspace (409 on a duplicate). A new contact given no company is linked to the
11
+ * workspace's company whose `domain` matches its email address, when there is one. Deleting a contact erases what the CRM holds
12
+ * about the person (its values, notes and timeline).
13
+ */
14
+ export declare abstract class BaseContactRoute extends BaseTaggedRecordRoute<CrmContact> {
15
+ protected readonly model: "contact";
16
+ protected readonly pushType: string;
17
+ protected readonly objectType: CrmObjectType;
18
+ protected readonly recordFields: Readonly<Record<string, import("../index.js").FilterField>>;
19
+ protected readonly textFields: readonly string[];
20
+ protected readonly exportFields: readonly string[];
21
+ protected readonly noun: string;
22
+ protected readonly sortFields: readonly string[];
23
+ protected readonly maxRecords: number;
24
+ readonly importFields: Readonly<Record<string, "text" | "number">>;
25
+ protected findExisting(workspaceUid: string, body: Record<string, unknown>): Promise<CrmContact | undefined>;
26
+ protected readCreate(body: Record<string, unknown>, context: WriteContext): Promise<Partial<CrmContact>>;
27
+ protected readUpdate(body: Record<string, unknown>, existing: CrmContact, context: WriteContext): Promise<Partial<CrmContact>>;
28
+ /** Every field but `email`, as given (`undefined` when absent, `null` to clear). */
29
+ private readFields;
30
+ /** Refuses (409) an email address another contact of the workspace already has. */
31
+ private requireUniqueEmail;
32
+ /** The uid of the workspace's company whose domain is `email`'s, when exactly one has it. */
33
+ private companyForEmail;
34
+ /**
35
+ * Deleting contacts deletes their subscriptions (their `lists` values go with the rest of their values), the messages sent to
36
+ * them and what came of those - nothing personal stays behind in campaign statistics - and their runs through automations.
37
+ */
38
+ protected deleteRelated(uids: string[], workspaceUid: string): Promise<void>;
39
+ /** Takes deleted contacts off the deals they were on. */
40
+ private removeFromDeals;
41
+ protected listQuery(query: Record<string, unknown>): Record<string, unknown>;
42
+ }
@@ -0,0 +1,41 @@
1
+ import type { JWTUser } from "@rapidrest/core";
2
+ import { CrmRouteBase } from "./CrmRouteBase.js";
3
+ /** A workspace as the deployment's administrators see it. */
4
+ export interface AdminWorkspace {
5
+ uid: string;
6
+ name: string;
7
+ dateCreated: string;
8
+ members: number;
9
+ contacts: number;
10
+ campaignsSent: number;
11
+ sendingDisabled: boolean;
12
+ }
13
+ /** The deployment's CRM numbers. */
14
+ export interface AdminStats {
15
+ workspaces: number;
16
+ contacts: number;
17
+ /** Campaign and automation messages sent in the last 24 hours. */
18
+ sentLastDay: number;
19
+ /** Messages waiting to go out. */
20
+ queued: number;
21
+ }
22
+ /**
23
+ * The deployment administration of the CRM (`/api/mail/crm/admin`), for callers holding a trusted role (`trusted_roles`, `admin` by
24
+ * default) - they need no membership of any workspace, and see no workspace's contents:
25
+ * - `GET /stats` - `AdminStats`.
26
+ * - `GET /workspaces?limit=&page=` - every workspace with its size (`AdminWorkspace`), newest first (`limit` up to 100, 50 by default).
27
+ * - `PUT /workspaces/:workspaceUid` - `{ sendingDisabled }`: stops (or lets go again) a workspace's campaign and automation email,
28
+ * the abuse kill switch. Stopped messages stay queued.
29
+ */
30
+ export declare abstract class BaseCrmAdminRoute extends CrmRouteBase {
31
+ private requireAdmin;
32
+ stats(user?: JWTUser): Promise<AdminStats>;
33
+ workspaces(query: Record<string, unknown> | undefined, user?: JWTUser): Promise<{
34
+ items: AdminWorkspace[];
35
+ total: number;
36
+ }>;
37
+ setWorkspace(workspaceUid: string, body: unknown, user?: JWTUser): Promise<{
38
+ uid: string;
39
+ sendingDisabled: boolean;
40
+ }>;
41
+ }
@@ -0,0 +1,65 @@
1
+ import type { JWTUser } from "@rapidrest/core";
2
+ import { Deal } from "../models/types.js";
3
+ import { BaseWorkspaceRecordRoute, WriteContext } from "./BaseWorkspaceRecordRoute.js";
4
+ /** How many deals one workspace may have, and contacts one deal. */
5
+ export declare const MAX_DEALS = 50000;
6
+ export declare const MAX_DEAL_CONTACTS = 20;
7
+ /** The `PropertyValue` key a deal's contacts are mirrored under (object type `deal`). */
8
+ export declare const DEAL_CONTACTS_KEY = "contacts";
9
+ /** One stage's numbers in a forecast. */
10
+ export interface StageForecast {
11
+ stageId: string;
12
+ count: number;
13
+ amount: number;
14
+ /** `amount` times the stage's probability. */
15
+ weighted: number;
16
+ }
17
+ /** A pipeline's forecast: its open stages' numbers, and what was won and lost in the window. */
18
+ export interface Forecast {
19
+ stages: StageForecast[];
20
+ open: {
21
+ count: number;
22
+ amount: number;
23
+ weighted: number;
24
+ };
25
+ won: {
26
+ count: number;
27
+ amount: number;
28
+ };
29
+ lost: {
30
+ count: number;
31
+ amount: number;
32
+ };
33
+ /** Won out of won and lost, in the window (0 to 1); none without either. */
34
+ winRate?: number;
35
+ /** The mean days from creating a deal to winning it, in the window. */
36
+ averageDaysToWin?: number;
37
+ }
38
+ /**
39
+ * A workspace's deals (`/api/mail/crm/deals`) - see `BaseWorkspaceRecordRoute` for the endpoints; `GET /:workspaceUid` takes
40
+ * `pipelineUid`, `stageId`, `status`, `ownerUserUid`, `companyUid` and `contactUid` - plus
41
+ * `GET /:workspaceUid/forecast?pipelineUid=&days=` (`Forecast`, over the last `days`, 90 by default).
42
+ *
43
+ * A deal's `status` follows its stage's kind; moving it records the move in `stageHistory`, `closedAt` when it is won or lost, and
44
+ * the move on its timeline and its contacts', and tells automations (`deal.stage_changed`, `deal.won`, `deal.lost`, per contact).
45
+ */
46
+ export declare abstract class BaseDealRoute extends BaseWorkspaceRecordRoute<Deal> {
47
+ protected readonly model: "deal";
48
+ protected readonly pushType: string;
49
+ protected readonly sortFields: readonly string[];
50
+ protected readonly maxRecords: number;
51
+ protected readCreate(body: Record<string, unknown>, context: WriteContext): Promise<Partial<Deal>>;
52
+ protected readUpdate(body: Record<string, unknown>, existing: Deal, context: WriteContext): Promise<Partial<Deal>>;
53
+ /** The owner, contacts, company, expected close date and lost reason of a request. */
54
+ private readLinks;
55
+ private readCurrency;
56
+ private requirePipeline;
57
+ private requireStage;
58
+ protected listQuery(query: Record<string, unknown>): Record<string, unknown>;
59
+ /** `GET /:workspaceUid?contactUid=` - the deals of a contact, through the `contacts` values. */
60
+ list(workspaceUid: string, query: Record<string, unknown> | undefined, user?: JWTUser): Promise<Deal[]>;
61
+ /** Keeps the `contacts` values in step, and records a new deal or a move on the timelines and for automations. */
62
+ protected afterWrite(record: Deal, before: Deal | undefined, body: Record<string, unknown>, context: WriteContext): Promise<void>;
63
+ protected afterDelete(record: Deal): Promise<void>;
64
+ forecast(workspaceUid: string, query: Record<string, unknown> | undefined, user?: JWTUser): Promise<Forecast>;
65
+ }
@@ -0,0 +1,25 @@
1
+ import { CrmForm, WorkspaceAction } from "../models/types.js";
2
+ import { BaseWorkspaceRecordRoute, WriteContext } from "./BaseWorkspaceRecordRoute.js";
3
+ /** How many fields a form may have, and how many lists it may subscribe to. */
4
+ export declare const MAX_FORM_FIELDS = 30;
5
+ export declare const MAX_FORM_LISTS = 20;
6
+ /** The contact fields a form can ask for, besides custom properties (`properties.<key>`) - `company` is the company's name. */
7
+ export declare const FORM_TARGETS: readonly string[];
8
+ export declare const DEFAULT_SUCCESS_MESSAGE = "Thanks for signing up!";
9
+ /**
10
+ * A workspace's signup forms (`/api/mail/crm/forms`) - see `BaseWorkspaceRecordRoute` for the endpoints. Changing forms takes `MANAGE`.
11
+ * A form always asks for an email address; its other fields fill contact fields or contact custom properties. Anyone may submit an
12
+ * enabled form through the public API (`BasePublicRoute`), at `<public_url>/f/<uid>`.
13
+ */
14
+ export declare abstract class BaseFormRoute extends BaseWorkspaceRecordRoute<CrmForm> {
15
+ protected readonly model: "form";
16
+ protected readonly pushType: string;
17
+ protected readonly sortFields: readonly string[];
18
+ protected readonly writeAction: WorkspaceAction;
19
+ protected readCreate(body: Record<string, unknown>, context: WriteContext): Promise<Partial<CrmForm>>;
20
+ protected readUpdate(body: Record<string, unknown>, existing: CrmForm, context: WriteContext): Promise<Partial<CrmForm>>;
21
+ private readFields;
22
+ /** A form's fields: each a known contact field or contact property, used once, with `email` among them. */
23
+ private readFormFields;
24
+ private readLists;
25
+ }
@@ -0,0 +1,39 @@
1
+ import { type JWTUser } from "@rapidrest/core";
2
+ import { HttpRequest } from "@rapidrest/service-core";
3
+ import type { BlobStore } from "@rapidmx/restapi";
4
+ import { CrmImport } from "../models/types.js";
5
+ import { CrmRouteBase } from "./CrmRouteBase.js";
6
+ /** How many rows an import may have. */
7
+ export declare const MAX_IMPORT_ROWS = 200000;
8
+ /** An import as the API shows it on upload: the import, the targets its columns may map to, and its first rows. */
9
+ export interface ImportUploadView {
10
+ import: CrmImport;
11
+ targets: string[];
12
+ preview: string[][];
13
+ }
14
+ /**
15
+ * CSV imports of contacts or companies (`/api/mail/crm/imports`), in two steps. First,
16
+ * `POST /:workspaceUid?objectType=contact&fileName=x.csv` with the file as the raw request body stores it, reads its header, and
17
+ * answers the import with a suggested column mapping, the fields its columns may map to, and a preview of its first rows. Then
18
+ * `POST /:workspaceUid/:uid/start` with `{ mapping, updateExisting?, tags? }` queues it for `CrmImportJob`, which imports it in the
19
+ * background (pushing progress on the workspace's channel as `CrmImport` updates).
20
+ *
21
+ * Plus `GET /:workspaceUid` (newest first), `GET /:workspaceUid/:uid`, and `DELETE /:workspaceUid/:uid` for one that isn't running.
22
+ * Every endpoint takes `WRITE` on the workspace.
23
+ */
24
+ export declare abstract class BaseImportRoute extends CrmRouteBase {
25
+ protected blobStore?: BlobStore;
26
+ /** The largest CSV accepted, in bytes. */
27
+ protected maxBytes: number;
28
+ list(workspaceUid: string, query: Record<string, unknown> | undefined, user?: JWTUser): Promise<CrmImport[]>;
29
+ get(workspaceUid: string, uid: string, user?: JWTUser): Promise<CrmImport>;
30
+ upload(workspaceUid: string, query: Record<string, unknown> | undefined, req: HttpRequest, user?: JWTUser): Promise<ImportUploadView>;
31
+ start(workspaceUid: string, uid: string, body: unknown, user?: JWTUser): Promise<CrmImport>;
32
+ remove(workspaceUid: string, uid: string, user?: JWTUser): Promise<void>;
33
+ /** The list a contact import subscribes its contacts to: a list of the workspace, or none. */
34
+ private readImportList;
35
+ private definitions;
36
+ private requireImport;
37
+ /** Deletes an import's file, logging rather than failing when it can't. */
38
+ private deleteBlob;
39
+ }
@@ -0,0 +1,46 @@
1
+ import { HttpRequest, RateLimiter } from "@rapidrest/service-core";
2
+ import { CrmRouteBase } from "./CrmRouteBase.js";
3
+ /** How many calls one key may make a minute. */
4
+ export declare const API_KEY_RATE = 600;
5
+ /**
6
+ * The API a workspace's own systems call (`/api/mail/crm/integrations/:workspaceUid/...`), with a workspace API key as
7
+ * `Authorization: Bearer crm_...` rather than a member's session - each endpoint needs its key's scope:
8
+ * - `POST /contacts` (`contacts`) - creates or updates the contact with `email`: `{ email, firstName?, lastName?, ..., tags?,
9
+ * properties? }` to `{ outcome, uid }`.
10
+ * - `POST /subscribe` (`subscriptions`) - `{ email, listUid, ...contact fields }`: subscribes the contact (creating it), consent
11
+ * vouched for by the caller.
12
+ * - `POST /unsubscribe` (`subscriptions`) - `{ email, listUid? }`: from one list, or from every list and all email.
13
+ * - `POST /events` (`events`) - `{ email, name, data? }`: records a `custom` event automations can start from (creating the contact).
14
+ * - `GET /lists` (any scope) - the workspace's lists.
15
+ *
16
+ * A missing, unknown or revoked key is a 401; one without the scope a 403. Each key may make `API_KEY_RATE` calls a minute.
17
+ */
18
+ export declare abstract class BaseIntegrationRoute extends CrmRouteBase {
19
+ protected abstract contactRouteClass: any;
20
+ protected rateLimiter?: RateLimiter;
21
+ private contactRoute?;
22
+ private contacts;
23
+ /** The key of the request, if it is one of the workspace's, unrevoked and holding `scope` - else a 401 or 403. */
24
+ private requireKey;
25
+ /** Creates or updates the contact of a request's `email` and other contact fields. */
26
+ private upsertContact;
27
+ upsert(workspaceUid: string, body: unknown, req: HttpRequest): Promise<{
28
+ outcome: string;
29
+ uid: string;
30
+ }>;
31
+ subscribe(workspaceUid: string, body: unknown, req: HttpRequest): Promise<{
32
+ contactUid: string;
33
+ status: string;
34
+ }>;
35
+ unsubscribe(workspaceUid: string, body: unknown, req: HttpRequest): Promise<{
36
+ contactUid?: string;
37
+ }>;
38
+ event(workspaceUid: string, body: unknown, req: HttpRequest): Promise<{
39
+ contactUid: string;
40
+ }>;
41
+ lists(workspaceUid: string, req: HttpRequest): Promise<{
42
+ uid: string;
43
+ name: string;
44
+ publicName: string;
45
+ }[]>;
46
+ }