@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,6 @@
1
+ import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
2
+ import { BaseScoringRuleRoute } from "../BaseScoringRuleRoute.js";
3
+ /** A workspace's lead scoring rules (`/api/mail/crm/scoring-rules`). */
4
+ export declare class ScoringRuleRouteSQL extends BaseScoringRuleRoute {
5
+ protected classes: CrmModelClasses;
6
+ }
@@ -0,0 +1,6 @@
1
+ import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
2
+ import { BaseSegmentRoute } from "../BaseSegmentRoute.js";
3
+ /** A workspace's contact segments (`/api/mail/crm/segments`). */
4
+ export declare class SegmentRouteSQL extends BaseSegmentRoute {
5
+ protected classes: CrmModelClasses;
6
+ }
@@ -0,0 +1,6 @@
1
+ import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
2
+ import { BaseSubscriptionRoute } from "../BaseSubscriptionRoute.js";
3
+ /** Contacts' subscriptions to mailing lists (`/api/mail/crm/subscriptions`). */
4
+ export declare class SubscriptionRouteSQL extends BaseSubscriptionRoute {
5
+ protected classes: CrmModelClasses;
6
+ }
@@ -0,0 +1,6 @@
1
+ import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
2
+ import { BaseSuppressionRoute } from "../BaseSuppressionRoute.js";
3
+ /** Addresses a workspace never sends marketing mail to (`/api/mail/crm/suppressions`). */
4
+ export declare class SuppressionRouteSQL extends BaseSuppressionRoute {
5
+ protected classes: CrmModelClasses;
6
+ }
@@ -0,0 +1,6 @@
1
+ import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
2
+ import { BaseTaskRoute } from "../BaseTaskRoute.js";
3
+ /** A workspace's tasks (`/api/mail/crm/tasks`). */
4
+ export declare class TaskRouteSQL extends BaseTaskRoute {
5
+ protected classes: CrmModelClasses;
6
+ }
@@ -0,0 +1,6 @@
1
+ import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
2
+ import { BaseTemplateRoute } from "../BaseTemplateRoute.js";
3
+ /** A workspace's email templates (`/api/mail/crm/templates`). */
4
+ export declare class TemplateRouteSQL extends BaseTemplateRoute {
5
+ protected classes: CrmModelClasses;
6
+ }
@@ -0,0 +1,6 @@
1
+ import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
2
+ import { BaseTimelineRoute } from "../BaseTimelineRoute.js";
3
+ /** Contact and company activity timelines (`/api/mail/crm/timeline`). */
4
+ export declare class TimelineRouteSQL extends BaseTimelineRoute {
5
+ protected classes: CrmModelClasses;
6
+ }
@@ -0,0 +1,6 @@
1
+ import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
2
+ import { BaseTrackingRoute } from "../BaseTrackingRoute.js";
3
+ /** The anonymous open and click tracking endpoints of CRM email (`/api/mail/crm/t`). */
4
+ export declare class TrackingRouteSQL extends BaseTrackingRoute {
5
+ protected classes: CrmModelClasses;
6
+ }
@@ -0,0 +1,6 @@
1
+ import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
2
+ import { BaseWebhookRoute } from "../BaseWebhookRoute.js";
3
+ /** A workspace's webhook endpoints (`/api/mail/crm/webhooks`). */
4
+ export declare class WebhookRouteSQL extends BaseWebhookRoute {
5
+ protected classes: CrmModelClasses;
6
+ }
@@ -0,0 +1,6 @@
1
+ import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
2
+ import { BaseWorkspaceRoute } from "../BaseWorkspaceRoute.js";
3
+ /** CRM workspaces, their members and senders (`/api/mail/crm/workspaces`). */
4
+ export declare class WorkspaceRouteSQL extends BaseWorkspaceRoute {
5
+ protected classes: CrmModelClasses;
6
+ }
@@ -0,0 +1,14 @@
1
+ import type { CrmRepos } from "../models/CrmModelClasses.js";
2
+ import { ScoringRule } from "../models/types.js";
3
+ /** The most activity rows one rule reads per scoring, so a busy workspace's scoring stays bounded. */
4
+ export declare const MAX_ACTIVITY_ROWS = 200000;
5
+ /** How many times each contact did an activity rule's activity, within its window. Automatic opens and clicks don't count. */
6
+ export declare function countActivity(repos: CrmRepos, workspaceUid: string, rule: ScoringRule, now?: Date): Promise<Map<string, number>>;
7
+ /** The points one activity rule gives for `times` times: `points` each, limited to `maxPoints` either way. */
8
+ export declare function activityPoints(rule: Pick<ScoringRule, "points" | "maxPoints">, times: number): number;
9
+ /**
10
+ * Scores every contact of `workspaceUid` by its enabled `rules` and saves the scores that changed: each property rule's points for
11
+ * the contacts its filter matches, plus each activity rule's points for what the contact did. With no enabled rules every score
12
+ * goes back to 0. Returns how many contacts' scores changed.
13
+ */
14
+ export declare function scoreWorkspace(repos: CrmRepos, workspaceUid: string, rules: ScoringRule[], now?: Date): Promise<number>;
@@ -0,0 +1,46 @@
1
+ import { FilterField, FilterNode } from "../filters/Filter.js";
2
+ import type { CrmModelClasses, CrmRepos } from "../models/CrmModelClasses.js";
3
+ import { Segment } from "../models/types.js";
4
+ /** The `PropertyValue` key of segment membership: one row per member, `stringValue` = the segment's uid. */
5
+ export declare const SEGMENTS_KEY = "segments";
6
+ /** The most contacts one segment holds; a filter matching more keeps the first (by uid) and is marked `capped`. */
7
+ export declare const MAX_SEGMENT_SIZE = 100000;
8
+ /** How many rows one query of segments and scoring reads or changes (a setting only tests change). */
9
+ export declare const PAGING: {
10
+ size: number;
11
+ };
12
+ /** The fields a contact filter may name in `workspaceUid`: with `segments`, unless the filter defines a segment. */
13
+ export declare function contactFilterFields(repos: CrmRepos, workspaceUid: string, withSegments: boolean): Promise<Record<string, FilterField>>;
14
+ /** `raw` as a segment's filter: a valid contact filter that doesn't name segments (a segment made of segments could loop). */
15
+ export declare function readSegmentFilter(repos: CrmRepos, workspaceUid: string, raw: unknown): Promise<FilterNode>;
16
+ /**
17
+ * The uids of the contacts of `workspaceUid` that `filter` (already validated) matches, in uid order - at most `cap`; `capped` when
18
+ * there were more.
19
+ */
20
+ export declare function matchingContacts(repos: CrmRepos, workspaceUid: string, filter: FilterNode, cap?: number): Promise<{
21
+ uids: string[];
22
+ capped: boolean;
23
+ }>;
24
+ /** The uids of the current members of `segmentUid`. */
25
+ export declare function segmentMembers(repos: CrmRepos, segmentUid: string): Promise<Set<string>>;
26
+ /** Makes `uids` the members of `segment`: adds the new ones, removes the rest. Returns who entered and who left. */
27
+ export declare function syncMembers(repos: CrmRepos, classes: CrmModelClasses, segment: Segment, uids: string[]): Promise<{
28
+ entered: string[];
29
+ left: string[];
30
+ }>;
31
+ /** A segment's refresh: the counts to store on it, and who entered and left. */
32
+ export interface SegmentRefresh {
33
+ counts: {
34
+ memberCount: number;
35
+ capped: boolean;
36
+ refreshedAt: Date;
37
+ };
38
+ entered: string[];
39
+ left: string[];
40
+ }
41
+ /** Works a segment's members out from its filter and saves them. */
42
+ export declare function refreshSegment(repos: CrmRepos, classes: CrmModelClasses, segment: Segment): Promise<SegmentRefresh>;
43
+ /** Records `segment.entered` and `segment.left` events for who entered and left `segment`. */
44
+ export declare function recordSegmentEvents(repos: CrmRepos, classes: CrmModelClasses, segment: Segment, entered: string[], left: string[], logger?: any): Promise<void>;
45
+ /** Which of `contactUids` are in at least one of `segmentUids`. */
46
+ export declare function inSegments(repos: CrmRepos, segmentUids: string[], contactUids: string[]): Promise<Set<string>>;
@@ -0,0 +1,39 @@
1
+ import type { CrmRepos } from "../models/CrmModelClasses.js";
2
+ import { AbTest, CrmContact } from "../models/types.js";
3
+ /**
4
+ * Who a campaign goes to: the subscribers of `listUids`, less those of `excludeListUids`; when `segmentUids` isn't empty, only those
5
+ * in one of those segments; and never those in `excludeSegmentUids`.
6
+ */
7
+ export interface AudienceSpec {
8
+ workspaceUid: string;
9
+ listUids: string[];
10
+ excludeListUids: string[];
11
+ segmentUids?: string[];
12
+ excludeSegmentUids?: string[];
13
+ }
14
+ /** One page of an audience. */
15
+ export interface AudiencePage {
16
+ /** The contacts of the page who may be mailed: subscribed, not excluded, active and not suppressed. */
17
+ contacts: CrmContact[];
18
+ /** Where the next page starts; `undefined` once the audience is done. */
19
+ nextCursor?: string;
20
+ }
21
+ /**
22
+ * One page of an audience, read through the lists' subscriptions in uid order after `cursor` (`pageSize` subscriptions a page, so
23
+ * the work of a page is bounded). A contact on several lists shows up once per list - callers de-duplicate (a campaign by its
24
+ * sends' unique `dedupeKey`).
25
+ */
26
+ export declare function audiencePage(repos: CrmRepos, spec: AudienceSpec, cursor: string | undefined, pageSize: number): Promise<AudiencePage>;
27
+ /** Which of `emails` the workspace has suppressed. */
28
+ export declare function suppressedAmong(repos: CrmRepos, workspaceUid: string, emails: string[]): Promise<Set<string>>;
29
+ /** How many distinct contacts an audience would reach, counting at most `cap` (then `capped`). */
30
+ export declare function countAudience(repos: CrmRepos, spec: AudienceSpec, cap?: number): Promise<{
31
+ count: number;
32
+ capped: boolean;
33
+ }>;
34
+ /**
35
+ * The A/B variant a contact gets: `A` without a test; with one, `testPercent` of contacts (chosen by a hash of the campaign and
36
+ * contact, so the choice is stable however the audience is read) are spread evenly over the variants, and the rest get `""` - held
37
+ * for the winner.
38
+ */
39
+ export declare function assignVariant(campaignUid: string, contactUid: string, abTest: AbTest | undefined): string;
@@ -0,0 +1,40 @@
1
+ import type { CrmRepos } from "../models/CrmModelClasses.js";
2
+ import { Campaign, CrmContact, OutboundSend } from "../models/types.js";
3
+ /** What the renderer needs from its job. */
4
+ export interface RendererSettings {
5
+ /** The public site, without a trailing slash. */
6
+ publicUrl: string;
7
+ /** The key tokens and tracked links are signed with. */
8
+ secret: string;
9
+ /** Send bounces to a per-message address (`verpAddress()`). */
10
+ verp: boolean;
11
+ }
12
+ /** One campaign message, ready for the mail transport. */
13
+ export interface CampaignMessage {
14
+ raw: Buffer;
15
+ envelopeFrom: string;
16
+ /** The `Message-ID`, without angle brackets. */
17
+ messageId: string;
18
+ subject: string;
19
+ }
20
+ /** Why a message can't be rendered: its campaign's template or sender is gone. Not worth retrying. */
21
+ export declare class UnrenderableError extends Error {
22
+ }
23
+ /**
24
+ * Renders campaign messages, one per recipient: the variant's template filled in for the contact, with its unsubscribe and
25
+ * preferences links (signed tokens), tracked links and the open image when the campaign tracks them, and the headers bulk mail
26
+ * needs - `List-Unsubscribe` with RFC 8058 one-click, `List-Id`, `Precedence: bulk` and a `Feedback-ID`. Templates, senders and
27
+ * workspaces are read once per renderer (one per dispatch run).
28
+ */
29
+ export declare class CampaignRenderer {
30
+ private readonly repos;
31
+ private readonly settings;
32
+ private readonly templates;
33
+ private readonly records;
34
+ private readonly definitions;
35
+ constructor(repos: CrmRepos, settings: RendererSettings);
36
+ render(send: OutboundSend, campaign: Campaign, contact: CrmContact): Promise<CampaignMessage>;
37
+ private template;
38
+ private record;
39
+ private workspaceDefinitions;
40
+ }
@@ -0,0 +1,50 @@
1
+ import type { CrmModelClasses, CrmRepos } from "../models/CrmModelClasses.js";
2
+ import { EngagementType, OutboundSend } from "../models/types.js";
3
+ /** What an engagement event may say. */
4
+ export interface EngagementData extends Record<string, unknown> {
5
+ /** An open or click that looked automatic (`isMachine()`). */
6
+ machine?: boolean;
7
+ /** A click's link. */
8
+ url?: string;
9
+ index?: number;
10
+ /** A bounce's `hard` or `soft`, and its enhanced status code. */
11
+ bounceType?: "hard" | "soft";
12
+ status?: string;
13
+ }
14
+ /**
15
+ * Records what happened to an outbound message: an `EngagementEvent`, the message's own counters and first-times (what campaign
16
+ * statistics count), and what follows for the contact:
17
+ * - An open, click or reply makes the contact engaged (`lastEngagedAt`) - an automatic open doesn't.
18
+ * - The first open, the first click, a reply, a bounce and a complaint go on the contact's timeline.
19
+ * - A hard bounce or a complaint suppresses the address and marks the contact `bounced` or `complained`, so nothing more is sent to it.
20
+ *
21
+ * Replies, complaints and unsubscribes count once per message; a hard bounce once (a soft one may be followed by a hard one).
22
+ */
23
+ export declare class EngagementRecorder {
24
+ private readonly repos;
25
+ private readonly classes;
26
+ private readonly logger?;
27
+ constructor(repos: CrmRepos, classes: CrmModelClasses, logger?: any | undefined);
28
+ /** Records `type` for `send` (as of `at`) - see the class comment. Returns the send as updated, or `undefined` for an ignored repeat. */
29
+ record(send: OutboundSend, type: EngagementType, data?: EngagementData, at?: Date): Promise<OutboundSend | undefined>;
30
+ /**
31
+ * Applies `type` to the send's fields, retrying on version conflicts from a fresh read. `undefined` when it's a repeat that doesn't
32
+ * count (a second reply, complaint, unsubscribe or hard bounce).
33
+ */
34
+ private updateSend;
35
+ /** What `type` changes on `send`: `{}` for nothing, `undefined` for a repeat to ignore. */
36
+ private changesFor;
37
+ /** The contact-side consequences of an event - see the class comment. Failures are logged, not thrown: the event is recorded. */
38
+ private followUp;
39
+ private updateContact;
40
+ private suppress;
41
+ /** The timeline entry an event makes, if any: the first open, the first click, a reply, a bounce, a complaint. */
42
+ private timelineEntry;
43
+ /** How the timeline names what was sent: the campaign's name in quotes, or "an email". */
44
+ private sourceName;
45
+ /**
46
+ * Records the automation event of an engagement: every one but a failure, an automatic open or click, and a repeat open (only the
47
+ * first open a person makes is an event).
48
+ */
49
+ private recordEvent;
50
+ }
@@ -0,0 +1,17 @@
1
+ import { RepoUtils } from "@rapidrest/service-core";
2
+ import { CampaignCounts, CampaignStats, EngagementEvent, OutboundSend } from "../models/types.js";
3
+ /** Counts with every number zero. */
4
+ export declare function emptyCounts(): CampaignCounts;
5
+ /** The counts of the sends of `sourceUid` (one variant's, when given). Cancelled sends aren't recipients. */
6
+ export declare function countSends(repo: RepoUtils<OutboundSend>, sourceUid: string, variantId?: string): Promise<CampaignCounts>;
7
+ /** A campaign's stats: the counts overall and, for an A/B test, per variant. */
8
+ export declare function campaignStats(repo: RepoUtils<OutboundSend>, campaignUid: string, variantIds?: string[]): Promise<CampaignStats>;
9
+ /** One link's clicks in a campaign. */
10
+ export interface LinkClicks {
11
+ url: string;
12
+ clicks: number;
13
+ /** How many recipients clicked it. */
14
+ uniqueClicks: number;
15
+ }
16
+ /** A campaign's links by clicks, most first - from at most `maxEvents` click events. */
17
+ export declare function linkClicks(repo: RepoUtils<EngagementEvent>, sourceUid: string, maxEvents?: number): Promise<LinkClicks[]>;
@@ -0,0 +1,39 @@
1
+ /** A new outbound message token: 16 random bytes, base64url (22 characters). */
2
+ export declare function newSendToken(): string;
3
+ /** What a send token looks like, for refusing anything else before a database lookup. */
4
+ export declare const SEND_TOKEN: RegExp;
5
+ /**
6
+ * The path of a tracked link: `/t/c/<token>/<index>?u=<url>&s=<signature>`. The destination travels in the link (merge tags can make
7
+ * every recipient's different), signed so the redirect only ever goes where the email said - never an open redirect.
8
+ */
9
+ export declare function clickPath(secret: string, token: string, index: number, url: string): string;
10
+ /** Whether `signature` is `clickPath()`'s for this link. Compared in constant time. */
11
+ export declare function verifyClick(secret: string, token: string, index: number, url: string, signature: unknown): boolean;
12
+ /** A transparent 1x1 GIF, the open-tracking image. */
13
+ export declare const TRACKING_PIXEL: Buffer;
14
+ /** How soon after sending an open or click is taken as automatic (a server fetching everything on arrival). */
15
+ export declare const MACHINE_WINDOW_MS = 2000;
16
+ /**
17
+ * Whether an open or click looks automatic rather than a person's: a known scanner or previewer, no user agent, or within
18
+ * `MACHINE_WINDOW_MS` of sending. Apple Mail Privacy Protection and Gmail's image proxy fetch images for their users, so their opens
19
+ * count - but are never proof of reading.
20
+ */
21
+ export declare function isMachine(userAgent: string | undefined, sentAt: Date | undefined, now?: Date): boolean;
22
+ /**
23
+ * `html` with the `href` of each `http(s)` link replaced by `rewrite(url, index)` - `index` counting the rewritten links from 0 in
24
+ * order. Links in `keep` (the unsubscribe and preference links, which must work however tracking goes), `mailto:`/`tel:` links and
25
+ * anything else stay as they are. Returns the HTML and the URLs, in index order.
26
+ */
27
+ export declare function trackLinks(html: string, rewrite: (url: string, index: number) => string, keep: ReadonlySet<string>): {
28
+ html: string;
29
+ urls: string[];
30
+ };
31
+ /** `html` with the open-tracking image `src` added at the end of its body. */
32
+ export declare function addOpenPixel(html: string, src: string): string;
33
+ /**
34
+ * The bounce address (VERP) of one message: `<local>+b-<token>@<domain>` of the sender's address, so a bounce comes back to the
35
+ * sender's mailbox (by plus-addressing) naming the message it is about. The plain address when that would be too long.
36
+ */
37
+ export declare function verpAddress(fromAddress: string, token: string): string;
38
+ /** The send token of a bounce address `verpAddress()` made, if `address` is one. */
39
+ export declare function tokenFromVerp(address: string): string | undefined;
@@ -0,0 +1,75 @@
1
+ /**
2
+ * This plugin's `./sql` entry point: exactly the classes a server host loads for a SQL 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 { WorkspaceSQL } from "./models/sql/WorkspaceSQL.js";
7
+ export { WorkspaceMemberSQL } from "./models/sql/WorkspaceMemberSQL.js";
8
+ export { WorkspaceSenderSQL } from "./models/sql/WorkspaceSenderSQL.js";
9
+ export { CrmContactSQL } from "./models/sql/CrmContactSQL.js";
10
+ export { CrmCompanySQL } from "./models/sql/CrmCompanySQL.js";
11
+ export { PropertyDefinitionSQL } from "./models/sql/PropertyDefinitionSQL.js";
12
+ export { PropertyValueSQL } from "./models/sql/PropertyValueSQL.js";
13
+ export { CrmNoteSQL } from "./models/sql/CrmNoteSQL.js";
14
+ export { CrmTaskSQL } from "./models/sql/CrmTaskSQL.js";
15
+ export { TimelineEventSQL } from "./models/sql/TimelineEventSQL.js";
16
+ export { CrmImportSQL } from "./models/sql/CrmImportSQL.js";
17
+ export { MailingListSQL } from "./models/sql/MailingListSQL.js";
18
+ export { SubscriptionSQL } from "./models/sql/SubscriptionSQL.js";
19
+ export { SuppressionSQL } from "./models/sql/SuppressionSQL.js";
20
+ export { CrmFormSQL } from "./models/sql/CrmFormSQL.js";
21
+ export { CrmSettingSQL } from "./models/sql/CrmSettingSQL.js";
22
+ export { EmailTemplateSQL } from "./models/sql/EmailTemplateSQL.js";
23
+ export { SavedBlockSQL } from "./models/sql/SavedBlockSQL.js";
24
+ export { CampaignSQL } from "./models/sql/CampaignSQL.js";
25
+ export { OutboundSendSQL } from "./models/sql/OutboundSendSQL.js";
26
+ export { EngagementEventSQL } from "./models/sql/EngagementEventSQL.js";
27
+ export { SegmentSQL } from "./models/sql/SegmentSQL.js";
28
+ export { ScoringRuleSQL } from "./models/sql/ScoringRuleSQL.js";
29
+ export { AutomationSQL } from "./models/sql/AutomationSQL.js";
30
+ export { AutomationVersionSQL } from "./models/sql/AutomationVersionSQL.js";
31
+ export { EnrollmentSQL } from "./models/sql/EnrollmentSQL.js";
32
+ export { CrmEventSQL } from "./models/sql/CrmEventSQL.js";
33
+ export { PipelineSQL } from "./models/sql/PipelineSQL.js";
34
+ export { DealSQL } from "./models/sql/DealSQL.js";
35
+ export { WebhookEndpointSQL } from "./models/sql/WebhookEndpointSQL.js";
36
+ export { WebhookDeliverySQL } from "./models/sql/WebhookDeliverySQL.js";
37
+ export { ApiKeySQL } from "./models/sql/ApiKeySQL.js";
38
+ export { WorkspaceRouteSQL } from "./routes/sql/WorkspaceRouteSQL.js";
39
+ export { ContactRouteSQL } from "./routes/sql/ContactRouteSQL.js";
40
+ export { CompanyRouteSQL } from "./routes/sql/CompanyRouteSQL.js";
41
+ export { PropertyDefinitionRouteSQL } from "./routes/sql/PropertyDefinitionRouteSQL.js";
42
+ export { NoteRouteSQL } from "./routes/sql/NoteRouteSQL.js";
43
+ export { TaskRouteSQL } from "./routes/sql/TaskRouteSQL.js";
44
+ export { TimelineRouteSQL } from "./routes/sql/TimelineRouteSQL.js";
45
+ export { ImportRouteSQL } from "./routes/sql/ImportRouteSQL.js";
46
+ export { ListRouteSQL } from "./routes/sql/ListRouteSQL.js";
47
+ export { SubscriptionRouteSQL } from "./routes/sql/SubscriptionRouteSQL.js";
48
+ export { SuppressionRouteSQL } from "./routes/sql/SuppressionRouteSQL.js";
49
+ export { FormRouteSQL } from "./routes/sql/FormRouteSQL.js";
50
+ export { PublicRouteSQL } from "./routes/sql/PublicRouteSQL.js";
51
+ export { TemplateRouteSQL } from "./routes/sql/TemplateRouteSQL.js";
52
+ export { SavedBlockRouteSQL } from "./routes/sql/SavedBlockRouteSQL.js";
53
+ export { CampaignRouteSQL } from "./routes/sql/CampaignRouteSQL.js";
54
+ export { TrackingRouteSQL } from "./routes/sql/TrackingRouteSQL.js";
55
+ export { SegmentRouteSQL } from "./routes/sql/SegmentRouteSQL.js";
56
+ export { ScoringRuleRouteSQL } from "./routes/sql/ScoringRuleRouteSQL.js";
57
+ export { AutomationRouteSQL } from "./routes/sql/AutomationRouteSQL.js";
58
+ export { PipelineRouteSQL } from "./routes/sql/PipelineRouteSQL.js";
59
+ export { DealRouteSQL } from "./routes/sql/DealRouteSQL.js";
60
+ export { AnalyticsRouteSQL } from "./routes/sql/AnalyticsRouteSQL.js";
61
+ export { WebhookRouteSQL } from "./routes/sql/WebhookRouteSQL.js";
62
+ export { ApiKeyRouteSQL } from "./routes/sql/ApiKeyRouteSQL.js";
63
+ export { IntegrationRouteSQL } from "./routes/sql/IntegrationRouteSQL.js";
64
+ export { CrmAdminRouteSQL } from "./routes/sql/CrmAdminRouteSQL.js";
65
+ export { CrmImportJobSQL } from "./jobs/sql/CrmImportJobSQL.js";
66
+ export { CampaignJobSQL } from "./jobs/sql/CampaignJobSQL.js";
67
+ export { SendDispatchJobSQL } from "./jobs/sql/SendDispatchJobSQL.js";
68
+ export { CrmMailEventJobSQL } from "./jobs/sql/CrmMailEventJobSQL.js";
69
+ export { SegmentRefreshJobSQL } from "./jobs/sql/SegmentRefreshJobSQL.js";
70
+ export { ScoringJobSQL } from "./jobs/sql/ScoringJobSQL.js";
71
+ export { AutomationTriggerJobSQL } from "./jobs/sql/AutomationTriggerJobSQL.js";
72
+ export { AutomationRunJobSQL } from "./jobs/sql/AutomationRunJobSQL.js";
73
+ export { TaskReminderJobSQL } from "./jobs/sql/TaskReminderJobSQL.js";
74
+ export { WebhookDeliveryJobSQL } from "./jobs/sql/WebhookDeliveryJobSQL.js";
75
+ export { DateTriggerJobSQL } from "./jobs/sql/DateTriggerJobSQL.js";
@@ -0,0 +1,138 @@
1
+ /** The look every part of a design falls back to. */
2
+ export interface DesignTheme {
3
+ /** Around the email. */
4
+ backgroundColor: string;
5
+ /** Behind the content. */
6
+ contentBackgroundColor: string;
7
+ fontFamily: string;
8
+ textColor: string;
9
+ linkColor: string;
10
+ buttonColor: string;
11
+ buttonTextColor: string;
12
+ /** The content's width in pixels (480-800). */
13
+ width: number;
14
+ }
15
+ export type Align = "left" | "center" | "right";
16
+ interface BlockBase {
17
+ /** Server-assigned when missing; stable across edits, so the editor can track blocks. */
18
+ id: string;
19
+ /** Padding around the block in pixels. */
20
+ padding?: number;
21
+ }
22
+ export interface TextBlock extends BlockBase {
23
+ type: "text";
24
+ /** Formatted text: paragraphs, bold, italics, underline, links, lists, line breaks - sanitized on save. */
25
+ html: string;
26
+ align?: Align;
27
+ fontSize?: number;
28
+ color?: string;
29
+ }
30
+ export interface HeadingBlock extends BlockBase {
31
+ type: "heading";
32
+ text: string;
33
+ level: 1 | 2 | 3;
34
+ align?: Align;
35
+ color?: string;
36
+ }
37
+ export interface ImageBlock extends BlockBase {
38
+ type: "image";
39
+ /** An https:// image. */
40
+ src: string;
41
+ alt: string;
42
+ /** Where clicking the image goes. */
43
+ href?: string;
44
+ /** In pixels; the column's width when unset. */
45
+ width?: number;
46
+ align?: Align;
47
+ }
48
+ export interface ButtonBlock extends BlockBase {
49
+ type: "button";
50
+ text: string;
51
+ href: string;
52
+ align?: Align;
53
+ backgroundColor?: string;
54
+ color?: string;
55
+ borderRadius?: number;
56
+ }
57
+ export interface DividerBlock extends BlockBase {
58
+ type: "divider";
59
+ color?: string;
60
+ thickness?: number;
61
+ }
62
+ export interface SpacerBlock extends BlockBase {
63
+ type: "spacer";
64
+ height: number;
65
+ }
66
+ export type SocialNetwork = "facebook" | "x" | "linkedin" | "instagram" | "youtube" | "github" | "web";
67
+ export interface SocialBlock extends BlockBase {
68
+ type: "social";
69
+ links: {
70
+ network: SocialNetwork;
71
+ href: string;
72
+ }[];
73
+ align?: Align;
74
+ }
75
+ /** Hand-written HTML. Only workspace admins may add or change one; it is still sanitized. */
76
+ export interface HtmlBlock extends BlockBase {
77
+ type: "html";
78
+ html: string;
79
+ }
80
+ /** The marketing footer: the workspace's name and postal address, and the unsubscribe and preferences links. */
81
+ export interface FooterBlock extends BlockBase {
82
+ type: "footer";
83
+ /** Text above the links, e.g. why the reader gets the email. */
84
+ note?: string;
85
+ align?: Align;
86
+ color?: string;
87
+ }
88
+ export type DesignBlock = TextBlock | HeadingBlock | ImageBlock | ButtonBlock | DividerBlock | SpacerBlock | SocialBlock | HtmlBlock | FooterBlock;
89
+ export type BlockType = DesignBlock["type"];
90
+ export interface DesignColumn {
91
+ id: string;
92
+ blocks: DesignBlock[];
93
+ }
94
+ export interface DesignSection {
95
+ id: string;
96
+ backgroundColor?: string;
97
+ padding?: number;
98
+ /** 1 to 4 columns, side by side (stacked on a phone). */
99
+ columns: DesignColumn[];
100
+ }
101
+ /** An email design: a theme, and sections of columns of blocks. Stored as JSON on the template, rendered with MJML. */
102
+ export interface TemplateDesign {
103
+ version: 1;
104
+ theme: DesignTheme;
105
+ sections: DesignSection[];
106
+ }
107
+ export declare const DEFAULT_THEME: DesignTheme;
108
+ /** How big a design may get. */
109
+ export declare const MAX_SECTIONS = 60;
110
+ export declare const MAX_BLOCKS_PER_COLUMN = 40;
111
+ export declare const MAX_BLOCKS = 400;
112
+ export declare const MAX_DESIGN_BYTES: number;
113
+ /** A new id for a design part. */
114
+ export declare function newId(): string;
115
+ /** What a design check needs to know. */
116
+ export interface DesignCheck {
117
+ /** The caller may add or change hand-written HTML blocks. */
118
+ allowHtml: boolean;
119
+ /** The blocks of the design being replaced, by id: an HTML block unchanged from there is kept even when `allowHtml` is off. */
120
+ previous?: Map<string, DesignBlock>;
121
+ /** Makes a block's formatted text safe (`templates/Sanitize.ts`), and a hand-written HTML block's HTML. */
122
+ sanitizeText: (html: string) => string;
123
+ sanitizeHtml: (html: string) => string;
124
+ }
125
+ /** Every block of a design, in order. */
126
+ export declare function designBlocks(design: TemplateDesign): DesignBlock[];
127
+ /**
128
+ * A design from a request, checked and normalized: every part has an id (a missing or malformed one gets a new one), every value is
129
+ * within its limits, colours are colours, links are web, mail or phone links or merge tags, images are https, text is sanitized, and
130
+ * hand-written HTML only comes from someone allowed to write it. Undefined optional values are dropped. A bad design is a 400 naming
131
+ * the part at fault.
132
+ */
133
+ export declare function validateDesign(raw: unknown, check: DesignCheck): TemplateDesign;
134
+ /** Whether a design lets its reader unsubscribe: a footer block, or a link to `{{ links.unsubscribe }}` anywhere. */
135
+ export declare function hasUnsubscribeLink(design: TemplateDesign): boolean;
136
+ /** The design a new template starts from: a heading, a paragraph, a button and the footer. */
137
+ export declare function starterDesign(): TemplateDesign;
138
+ export {};
@@ -0,0 +1,27 @@
1
+ import { CrmCompany, CrmContact, PropertyDefinition, PropertyValue, Workspace, WorkspaceSender } from "../models/types.js";
2
+ import { MergeContext } from "./Render.js";
3
+ /** What a reader's merge context is made from. */
4
+ export interface MergeSources {
5
+ workspace: Workspace;
6
+ contact: CrmContact;
7
+ contactValues?: Record<string, PropertyValue[]>;
8
+ contactDefinitions: PropertyDefinition[];
9
+ company?: CrmCompany;
10
+ companyValues?: Record<string, PropertyValue[]>;
11
+ companyDefinitions: PropertyDefinition[];
12
+ sender?: WorkspaceSender;
13
+ list?: {
14
+ name: string;
15
+ };
16
+ links: MergeContext["links"];
17
+ }
18
+ /**
19
+ * The merge context of one reader: their contact fields (`contact.first_name`, `contact.full_name`, `contact.properties.<key>`...), their
20
+ * company's (`company.name`...), the workspace's, the sender's, and the links to unsubscribe and manage preferences.
21
+ */
22
+ export declare function buildMergeContext(sources: MergeSources): MergeContext;
23
+ /** The merge tags a template can use, for the designer's merge tag picker. `properties.<key>` tags are added per workspace. */
24
+ export declare const MERGE_TAGS: readonly {
25
+ tag: string;
26
+ label: string;
27
+ }[];
@@ -0,0 +1,46 @@
1
+ import { TemplateDesign } from "./Design.js";
2
+ /** What a template's merge tags can read. Keys are snake_case, as merge tags are written (`{{ contact.first_name }}`). */
3
+ export interface MergeContext {
4
+ contact: Record<string, unknown>;
5
+ company?: Record<string, unknown>;
6
+ workspace: {
7
+ name: string;
8
+ postal_address?: string;
9
+ website?: string;
10
+ };
11
+ sender?: {
12
+ name: string;
13
+ address: string;
14
+ };
15
+ list?: {
16
+ name: string;
17
+ };
18
+ links: {
19
+ unsubscribe: string;
20
+ preferences: string;
21
+ view_online?: string;
22
+ };
23
+ }
24
+ /** A rendered email. */
25
+ export interface RenderedEmail {
26
+ subject: string;
27
+ /** A complete HTML document. */
28
+ html: string;
29
+ text: string;
30
+ }
31
+ /** A design as an MJML document; `preheader` becomes the inbox preview line. Merge tags are left in, for `renderEmail()`. */
32
+ export declare function designToMjml(design: TemplateDesign, preheader?: string): string;
33
+ /** The HTML of a design (before merge tags are filled in), from MJML. Throws a 400 for a design MJML can't lay out. */
34
+ export declare function compileDesign(design: TemplateDesign, preheader?: string): Promise<string>;
35
+ /**
36
+ * Checks that a subject and a compiled design parse as Liquid, so a template with a broken merge tag is refused when saved rather than
37
+ * when sent. A 400 names what's wrong.
38
+ */
39
+ export declare function checkMergeTags(subject: string, compiledHtml: string): void;
40
+ /**
41
+ * The email for one reader: the compiled design and the subject with their merge tags filled in from `context` (HTML-escaped in the
42
+ * body), and a plain-text part made from the result.
43
+ */
44
+ export declare function renderEmail(compiledHtml: string, subject: string, context: MergeContext): Promise<RenderedEmail>;
45
+ /** A made-up reader, for previews without a contact. */
46
+ export declare function sampleContext(workspace: MergeContext["workspace"], sender?: MergeContext["sender"]): MergeContext;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * `html` with the quote and ampersand entities inside its merge and Liquid tags turned back into characters: `{{ x | default: &#39;a&#39; }}`
3
+ * becomes `{{ x | default: 'a' }}`, which Liquid can parse. Nothing outside the tags changes, and `<`/`>` stay escaped everywhere.
4
+ */
5
+ export declare function restoreMergeTags(html: string): string;
6
+ /** Escapes text for HTML, except inside merge and Liquid tags (which only lose `<` and `>`, never valid in them). */
7
+ export declare function escapeKeepingTags(text: string): string;
8
+ /**
9
+ * The formatted text of a text block, made safe: the formatting the editor produces (paragraphs, bold, italics, underline,
10
+ * strike-through, links, lists, quotes, small headings, colour and alignment) and nothing else - no scripts, no styles beyond
11
+ * those, and links only to the web, mail, phones or merge tags. Merge tags stay usable (`restoreMergeTags()`).
12
+ */
13
+ export declare function sanitizeText(html: string): string;
14
+ /**
15
+ * A hand-written HTML block's HTML, made safe: layout and formatting HTML (tables, images, inline styles) is kept; scripts, forms,
16
+ * frames, event handlers and `javascript:` links are removed, and images must be https. Merge tags stay usable.
17
+ */
18
+ export declare function sanitizeBlockHtml(html: string): string;