@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.
- package/LICENSE +382 -0
- package/README.md +210 -0
- package/apps/admin-crm/_layout.tsx +46 -0
- package/apps/admin-crm/index.tsx +16 -0
- package/apps/crm/_layout.tsx +46 -0
- package/apps/crm/automations/[uid].tsx +16 -0
- package/apps/crm/automations/index.tsx +16 -0
- package/apps/crm/campaigns/[uid].tsx +16 -0
- package/apps/crm/campaigns/index.tsx +16 -0
- package/apps/crm/companies/[uid].tsx +16 -0
- package/apps/crm/companies/index.tsx +16 -0
- package/apps/crm/contacts/[uid].tsx +16 -0
- package/apps/crm/deals/[uid].tsx +16 -0
- package/apps/crm/deals/index.tsx +16 -0
- package/apps/crm/forms/index.tsx +16 -0
- package/apps/crm/imports/index.tsx +16 -0
- package/apps/crm/index.tsx +16 -0
- package/apps/crm/integrations/index.tsx +16 -0
- package/apps/crm/lists/index.tsx +16 -0
- package/apps/crm/pipelines/index.tsx +16 -0
- package/apps/crm/reports/index.tsx +16 -0
- package/apps/crm/scoring/index.tsx +16 -0
- package/apps/crm/segments/index.tsx +16 -0
- package/apps/crm/settings/index.tsx +16 -0
- package/apps/crm/tasks/index.tsx +16 -0
- package/apps/crm/templates/[uid].tsx +16 -0
- package/apps/crm/templates/index.tsx +16 -0
- package/apps/f/[formUid].tsx +11 -0
- package/apps/f/_layout.tsx +33 -0
- package/apps/f/index.tsx +15 -0
- package/apps/shared/components/CrmShell.tsx +229 -0
- package/apps/shared/components/FilterBuilder.tsx +204 -0
- package/apps/shared/components/FormManager.tsx +326 -0
- package/apps/shared/components/ImportWizard.tsx +251 -0
- package/apps/shared/components/Integrations.tsx +401 -0
- package/apps/shared/components/ListManager.tsx +206 -0
- package/apps/shared/components/RecordDetail.tsx +444 -0
- package/apps/shared/components/RecordList.tsx +446 -0
- package/apps/shared/components/ScoringRules.tsx +262 -0
- package/apps/shared/components/SegmentManager.tsx +245 -0
- package/apps/shared/components/TaskList.tsx +140 -0
- package/apps/shared/components/TemplateList.tsx +170 -0
- package/apps/shared/components/WorkspaceSettings.tsx +503 -0
- package/apps/shared/components/admin/CrmAdmin.tsx +129 -0
- package/apps/shared/components/automations/AutomationEditor.tsx +530 -0
- package/apps/shared/components/automations/AutomationList.tsx +147 -0
- package/apps/shared/components/automations/StepInspector.tsx +403 -0
- package/apps/shared/components/automations/flowModel.ts +331 -0
- package/apps/shared/components/campaigns/CampaignEditor.tsx +471 -0
- package/apps/shared/components/campaigns/CampaignList.tsx +164 -0
- package/apps/shared/components/campaigns/CampaignPage.tsx +30 -0
- package/apps/shared/components/campaigns/CampaignReport.tsx +345 -0
- package/apps/shared/components/campaigns/campaignUi.tsx +33 -0
- package/apps/shared/components/deals/ContactDeals.tsx +40 -0
- package/apps/shared/components/deals/DealBoard.tsx +287 -0
- package/apps/shared/components/deals/DealDetail.tsx +363 -0
- package/apps/shared/components/deals/PipelineManager.tsx +207 -0
- package/apps/shared/components/deals/dealUi.ts +24 -0
- package/apps/shared/components/designer/BlockView.tsx +92 -0
- package/apps/shared/components/designer/Canvas.tsx +206 -0
- package/apps/shared/components/designer/Inspector.tsx +339 -0
- package/apps/shared/components/designer/LazyTextBlockEditor.tsx +68 -0
- package/apps/shared/components/designer/MergeTagPicker.tsx +31 -0
- package/apps/shared/components/designer/PreviewModal.tsx +119 -0
- package/apps/shared/components/designer/TemplateDesigner.tsx +408 -0
- package/apps/shared/components/designer/TestSendModal.tsx +75 -0
- package/apps/shared/components/designer/TextBlockEditor.tsx +122 -0
- package/apps/shared/components/designer/designModel.ts +276 -0
- package/apps/shared/components/public/PublicPages.tsx +343 -0
- package/apps/shared/components/public/honeypot.ts +7 -0
- package/apps/shared/components/reports/Charts.tsx +315 -0
- package/apps/shared/components/reports/Reports.tsx +198 -0
- package/apps/shared/crmApi.ts +1046 -0
- package/apps/shared/fields.ts +175 -0
- package/apps/shared/publicApi.ts +50 -0
- package/apps/subscriptions/[token].tsx +11 -0
- package/apps/subscriptions/_layout.tsx +33 -0
- package/apps/subscriptions/confirm/[token].tsx +11 -0
- package/apps/subscriptions/index.tsx +11 -0
- package/apps/subscriptions/unsubscribe/[token].tsx +11 -0
- package/dist/apps/admin-crm/_layout.d.ts +15 -0
- package/dist/apps/admin-crm/_layout.js +8 -0
- package/dist/apps/admin-crm/index.d.ts +4 -0
- package/dist/apps/admin-crm/index.js +7 -0
- package/dist/apps/crm/_layout.d.ts +15 -0
- package/dist/apps/crm/_layout.js +8 -0
- package/dist/apps/crm/automations/[uid].d.ts +8 -0
- package/dist/apps/crm/automations/[uid].js +7 -0
- package/dist/apps/crm/automations/index.d.ts +4 -0
- package/dist/apps/crm/automations/index.js +7 -0
- package/dist/apps/crm/campaigns/[uid].d.ts +8 -0
- package/dist/apps/crm/campaigns/[uid].js +7 -0
- package/dist/apps/crm/campaigns/index.d.ts +4 -0
- package/dist/apps/crm/campaigns/index.js +7 -0
- package/dist/apps/crm/companies/[uid].d.ts +8 -0
- package/dist/apps/crm/companies/[uid].js +7 -0
- package/dist/apps/crm/companies/index.d.ts +4 -0
- package/dist/apps/crm/companies/index.js +7 -0
- package/dist/apps/crm/contacts/[uid].d.ts +8 -0
- package/dist/apps/crm/contacts/[uid].js +7 -0
- package/dist/apps/crm/deals/[uid].d.ts +8 -0
- package/dist/apps/crm/deals/[uid].js +7 -0
- package/dist/apps/crm/deals/index.d.ts +4 -0
- package/dist/apps/crm/deals/index.js +7 -0
- package/dist/apps/crm/forms/index.d.ts +4 -0
- package/dist/apps/crm/forms/index.js +7 -0
- package/dist/apps/crm/imports/index.d.ts +4 -0
- package/dist/apps/crm/imports/index.js +7 -0
- package/dist/apps/crm/index.d.ts +4 -0
- package/dist/apps/crm/index.js +7 -0
- package/dist/apps/crm/integrations/index.d.ts +4 -0
- package/dist/apps/crm/integrations/index.js +7 -0
- package/dist/apps/crm/lists/index.d.ts +4 -0
- package/dist/apps/crm/lists/index.js +7 -0
- package/dist/apps/crm/pipelines/index.d.ts +4 -0
- package/dist/apps/crm/pipelines/index.js +7 -0
- package/dist/apps/crm/reports/index.d.ts +4 -0
- package/dist/apps/crm/reports/index.js +7 -0
- package/dist/apps/crm/scoring/index.d.ts +4 -0
- package/dist/apps/crm/scoring/index.js +7 -0
- package/dist/apps/crm/segments/index.d.ts +4 -0
- package/dist/apps/crm/segments/index.js +7 -0
- package/dist/apps/crm/settings/index.d.ts +4 -0
- package/dist/apps/crm/settings/index.js +7 -0
- package/dist/apps/crm/tasks/index.d.ts +4 -0
- package/dist/apps/crm/tasks/index.js +7 -0
- package/dist/apps/crm/templates/[uid].d.ts +8 -0
- package/dist/apps/crm/templates/[uid].js +7 -0
- package/dist/apps/crm/templates/index.d.ts +4 -0
- package/dist/apps/crm/templates/index.js +7 -0
- package/dist/apps/f/[formUid].d.ts +7 -0
- package/dist/apps/f/[formUid].js +6 -0
- package/dist/apps/f/_layout.d.ts +8 -0
- package/dist/apps/f/_layout.js +8 -0
- package/dist/apps/f/index.d.ts +3 -0
- package/dist/apps/f/index.js +6 -0
- package/dist/apps/shared/components/CrmShell.d.ts +39 -0
- package/dist/apps/shared/components/CrmShell.js +127 -0
- package/dist/apps/shared/components/FilterBuilder.d.ts +34 -0
- package/dist/apps/shared/components/FilterBuilder.js +101 -0
- package/dist/apps/shared/components/FormManager.d.ts +7 -0
- package/dist/apps/shared/components/FormManager.js +132 -0
- package/dist/apps/shared/components/ImportWizard.d.ts +8 -0
- package/dist/apps/shared/components/ImportWizard.js +105 -0
- package/dist/apps/shared/components/Integrations.d.ts +13 -0
- package/dist/apps/shared/components/Integrations.js +164 -0
- package/dist/apps/shared/components/ListManager.d.ts +6 -0
- package/dist/apps/shared/components/ListManager.js +95 -0
- package/dist/apps/shared/components/RecordDetail.d.ts +30 -0
- package/dist/apps/shared/components/RecordDetail.js +244 -0
- package/dist/apps/shared/components/RecordList.d.ts +13 -0
- package/dist/apps/shared/components/RecordList.js +214 -0
- package/dist/apps/shared/components/ScoringRules.d.ts +13 -0
- package/dist/apps/shared/components/ScoringRules.js +128 -0
- package/dist/apps/shared/components/SegmentManager.d.ts +10 -0
- package/dist/apps/shared/components/SegmentManager.js +119 -0
- package/dist/apps/shared/components/TaskList.d.ts +3 -0
- package/dist/apps/shared/components/TaskList.js +62 -0
- package/dist/apps/shared/components/TemplateList.d.ts +3 -0
- package/dist/apps/shared/components/TemplateList.js +81 -0
- package/dist/apps/shared/components/WorkspaceSettings.d.ts +6 -0
- package/dist/apps/shared/components/WorkspaceSettings.js +239 -0
- package/dist/apps/shared/components/admin/CrmAdmin.d.ts +9 -0
- package/dist/apps/shared/components/admin/CrmAdmin.js +56 -0
- package/dist/apps/shared/components/automations/AutomationEditor.d.ts +15 -0
- package/dist/apps/shared/components/automations/AutomationEditor.js +219 -0
- package/dist/apps/shared/components/automations/AutomationList.d.ts +3 -0
- package/dist/apps/shared/components/automations/AutomationList.js +65 -0
- package/dist/apps/shared/components/automations/StepInspector.d.ts +40 -0
- package/dist/apps/shared/components/automations/StepInspector.js +177 -0
- package/dist/apps/shared/components/automations/flowModel.d.ts +67 -0
- package/dist/apps/shared/components/automations/flowModel.js +292 -0
- package/dist/apps/shared/components/campaigns/CampaignEditor.d.ts +11 -0
- package/dist/apps/shared/components/campaigns/CampaignEditor.js +163 -0
- package/dist/apps/shared/components/campaigns/CampaignList.d.ts +3 -0
- package/dist/apps/shared/components/campaigns/CampaignList.js +80 -0
- package/dist/apps/shared/components/campaigns/CampaignPage.d.ts +5 -0
- package/dist/apps/shared/components/campaigns/CampaignPage.js +24 -0
- package/dist/apps/shared/components/campaigns/CampaignReport.d.ts +13 -0
- package/dist/apps/shared/components/campaigns/CampaignReport.js +119 -0
- package/dist/apps/shared/components/campaigns/campaignUi.d.ts +10 -0
- package/dist/apps/shared/components/campaigns/campaignUi.js +24 -0
- package/dist/apps/shared/components/deals/ContactDeals.d.ts +5 -0
- package/dist/apps/shared/components/deals/ContactDeals.js +18 -0
- package/dist/apps/shared/components/deals/DealBoard.d.ts +7 -0
- package/dist/apps/shared/components/deals/DealBoard.js +134 -0
- package/dist/apps/shared/components/deals/DealDetail.d.ts +8 -0
- package/dist/apps/shared/components/deals/DealDetail.js +148 -0
- package/dist/apps/shared/components/deals/PipelineManager.d.ts +7 -0
- package/dist/apps/shared/components/deals/PipelineManager.js +62 -0
- package/dist/apps/shared/components/deals/dealUi.d.ts +7 -0
- package/dist/apps/shared/components/deals/dealUi.js +17 -0
- package/dist/apps/shared/components/designer/BlockView.d.ts +10 -0
- package/dist/apps/shared/components/designer/BlockView.js +37 -0
- package/dist/apps/shared/components/designer/Canvas.d.ts +31 -0
- package/dist/apps/shared/components/designer/Canvas.js +71 -0
- package/dist/apps/shared/components/designer/Inspector.d.ts +27 -0
- package/dist/apps/shared/components/designer/Inspector.js +102 -0
- package/dist/apps/shared/components/designer/LazyTextBlockEditor.d.ts +7 -0
- package/dist/apps/shared/components/designer/LazyTextBlockEditor.js +42 -0
- package/dist/apps/shared/components/designer/MergeTagPicker.d.ts +11 -0
- package/dist/apps/shared/components/designer/MergeTagPicker.js +15 -0
- package/dist/apps/shared/components/designer/PreviewModal.d.ts +15 -0
- package/dist/apps/shared/components/designer/PreviewModal.js +50 -0
- package/dist/apps/shared/components/designer/TemplateDesigner.d.ts +10 -0
- package/dist/apps/shared/components/designer/TemplateDesigner.js +194 -0
- package/dist/apps/shared/components/designer/TestSendModal.d.ts +11 -0
- package/dist/apps/shared/components/designer/TestSendModal.js +35 -0
- package/dist/apps/shared/components/designer/TextBlockEditor.d.ts +16 -0
- package/dist/apps/shared/components/designer/TextBlockEditor.js +81 -0
- package/dist/apps/shared/components/designer/designModel.d.ts +86 -0
- package/dist/apps/shared/components/designer/designModel.js +230 -0
- package/dist/apps/shared/components/public/PublicPages.d.ts +29 -0
- package/dist/apps/shared/components/public/PublicPages.js +155 -0
- package/dist/apps/shared/components/public/honeypot.d.ts +2 -0
- package/dist/apps/shared/components/public/honeypot.js +6 -0
- package/dist/apps/shared/components/reports/Charts.d.ts +32 -0
- package/dist/apps/shared/components/reports/Charts.js +121 -0
- package/dist/apps/shared/components/reports/Reports.d.ts +9 -0
- package/dist/apps/shared/components/reports/Reports.js +61 -0
- package/dist/apps/shared/crmApi.d.ts +909 -0
- package/dist/apps/shared/crmApi.js +240 -0
- package/dist/apps/shared/fields.d.ts +45 -0
- package/dist/apps/shared/fields.js +146 -0
- package/dist/apps/shared/publicApi.d.ts +48 -0
- package/dist/apps/shared/publicApi.js +17 -0
- package/dist/apps/subscriptions/[token].d.ts +7 -0
- package/dist/apps/subscriptions/[token].js +6 -0
- package/dist/apps/subscriptions/_layout.d.ts +8 -0
- package/dist/apps/subscriptions/_layout.js +8 -0
- package/dist/apps/subscriptions/confirm/[token].d.ts +7 -0
- package/dist/apps/subscriptions/confirm/[token].js +6 -0
- package/dist/apps/subscriptions/index.d.ts +3 -0
- package/dist/apps/subscriptions/index.js +6 -0
- package/dist/apps/subscriptions/unsubscribe/[token].d.ts +7 -0
- package/dist/apps/subscriptions/unsubscribe/[token].js +6 -0
- package/dist/lib/automation/Dates.js +85 -0
- package/dist/lib/automation/Dates.js.map +1 -0
- package/dist/lib/automation/Engine.js +384 -0
- package/dist/lib/automation/Engine.js.map +1 -0
- package/dist/lib/automation/Events.js +46 -0
- package/dist/lib/automation/Events.js.map +1 -0
- package/dist/lib/automation/Graph.js +296 -0
- package/dist/lib/automation/Graph.js.map +1 -0
- package/dist/lib/filters/Filter.js +343 -0
- package/dist/lib/filters/Filter.js.map +1 -0
- package/dist/lib/filters/fields.js +71 -0
- package/dist/lib/filters/fields.js.map +1 -0
- package/dist/lib/index.js +86 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/jobs/AutomationRunJob.js +110 -0
- package/dist/lib/jobs/AutomationRunJob.js.map +1 -0
- package/dist/lib/jobs/AutomationTriggerJob.js +126 -0
- package/dist/lib/jobs/AutomationTriggerJob.js.map +1 -0
- package/dist/lib/jobs/CampaignJob.js +285 -0
- package/dist/lib/jobs/CampaignJob.js.map +1 -0
- package/dist/lib/jobs/CrmImportJob.js +218 -0
- package/dist/lib/jobs/CrmImportJob.js.map +1 -0
- package/dist/lib/jobs/CrmJobBase.js +75 -0
- package/dist/lib/jobs/CrmJobBase.js.map +1 -0
- package/dist/lib/jobs/CrmMailEventJob.js +232 -0
- package/dist/lib/jobs/CrmMailEventJob.js.map +1 -0
- package/dist/lib/jobs/DateTriggerJob.js +155 -0
- package/dist/lib/jobs/DateTriggerJob.js.map +1 -0
- package/dist/lib/jobs/ScoringJob.js +75 -0
- package/dist/lib/jobs/ScoringJob.js.map +1 -0
- package/dist/lib/jobs/SegmentRefreshJob.js +84 -0
- package/dist/lib/jobs/SegmentRefreshJob.js.map +1 -0
- package/dist/lib/jobs/SendDispatchJob.js +277 -0
- package/dist/lib/jobs/SendDispatchJob.js.map +1 -0
- package/dist/lib/jobs/TaskReminderJob.js +70 -0
- package/dist/lib/jobs/TaskReminderJob.js.map +1 -0
- package/dist/lib/jobs/WebhookDeliveryJob.js +126 -0
- package/dist/lib/jobs/WebhookDeliveryJob.js.map +1 -0
- package/dist/lib/jobs/mongo/AutomationRunJobMongo.js +12 -0
- package/dist/lib/jobs/mongo/AutomationRunJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/AutomationTriggerJobMongo.js +10 -0
- package/dist/lib/jobs/mongo/AutomationTriggerJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/CampaignJobMongo.js +10 -0
- package/dist/lib/jobs/mongo/CampaignJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/CrmImportJobMongo.js +14 -0
- package/dist/lib/jobs/mongo/CrmImportJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/CrmMailEventJobMongo.js +10 -0
- package/dist/lib/jobs/mongo/CrmMailEventJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/DateTriggerJobMongo.js +10 -0
- package/dist/lib/jobs/mongo/DateTriggerJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/ScoringJobMongo.js +10 -0
- package/dist/lib/jobs/mongo/ScoringJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/SegmentRefreshJobMongo.js +10 -0
- package/dist/lib/jobs/mongo/SegmentRefreshJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/SendDispatchJobMongo.js +10 -0
- package/dist/lib/jobs/mongo/SendDispatchJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/TaskReminderJobMongo.js +10 -0
- package/dist/lib/jobs/mongo/TaskReminderJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/WebhookDeliveryJobMongo.js +10 -0
- package/dist/lib/jobs/mongo/WebhookDeliveryJobMongo.js.map +1 -0
- package/dist/lib/jobs/sql/AutomationRunJobSQL.js +12 -0
- package/dist/lib/jobs/sql/AutomationRunJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/AutomationTriggerJobSQL.js +10 -0
- package/dist/lib/jobs/sql/AutomationTriggerJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/CampaignJobSQL.js +10 -0
- package/dist/lib/jobs/sql/CampaignJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/CrmImportJobSQL.js +14 -0
- package/dist/lib/jobs/sql/CrmImportJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/CrmMailEventJobSQL.js +10 -0
- package/dist/lib/jobs/sql/CrmMailEventJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/DateTriggerJobSQL.js +10 -0
- package/dist/lib/jobs/sql/DateTriggerJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/ScoringJobSQL.js +10 -0
- package/dist/lib/jobs/sql/ScoringJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/SegmentRefreshJobSQL.js +10 -0
- package/dist/lib/jobs/sql/SegmentRefreshJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/SendDispatchJobSQL.js +10 -0
- package/dist/lib/jobs/sql/SendDispatchJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/TaskReminderJobSQL.js +10 -0
- package/dist/lib/jobs/sql/TaskReminderJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/WebhookDeliveryJobSQL.js +10 -0
- package/dist/lib/jobs/sql/WebhookDeliveryJobSQL.js.map +1 -0
- package/dist/lib/models/CrmModelClasses.js +44 -0
- package/dist/lib/models/CrmModelClasses.js.map +1 -0
- package/dist/lib/models/mongo/ApiKeyMongo.js +105 -0
- package/dist/lib/models/mongo/ApiKeyMongo.js.map +1 -0
- package/dist/lib/models/mongo/AutomationMongo.js +126 -0
- package/dist/lib/models/mongo/AutomationMongo.js.map +1 -0
- package/dist/lib/models/mongo/AutomationVersionMongo.js +82 -0
- package/dist/lib/models/mongo/AutomationVersionMongo.js.map +1 -0
- package/dist/lib/models/mongo/CampaignMongo.js +211 -0
- package/dist/lib/models/mongo/CampaignMongo.js.map +1 -0
- package/dist/lib/models/mongo/CrmCompanyMongo.js +126 -0
- package/dist/lib/models/mongo/CrmCompanyMongo.js.map +1 -0
- package/dist/lib/models/mongo/CrmContactMongo.js +156 -0
- package/dist/lib/models/mongo/CrmContactMongo.js.map +1 -0
- package/dist/lib/models/mongo/CrmEventMongo.js +92 -0
- package/dist/lib/models/mongo/CrmEventMongo.js.map +1 -0
- package/dist/lib/models/mongo/CrmFormMongo.js +139 -0
- package/dist/lib/models/mongo/CrmFormMongo.js.map +1 -0
- package/dist/lib/models/mongo/CrmImportMongo.js +190 -0
- package/dist/lib/models/mongo/CrmImportMongo.js.map +1 -0
- package/dist/lib/models/mongo/CrmNoteMongo.js +89 -0
- package/dist/lib/models/mongo/CrmNoteMongo.js.map +1 -0
- package/dist/lib/models/mongo/CrmSettingMongo.js +60 -0
- package/dist/lib/models/mongo/CrmSettingMongo.js.map +1 -0
- package/dist/lib/models/mongo/CrmTaskMongo.js +136 -0
- package/dist/lib/models/mongo/CrmTaskMongo.js.map +1 -0
- package/dist/lib/models/mongo/DealMongo.js +163 -0
- package/dist/lib/models/mongo/DealMongo.js.map +1 -0
- package/dist/lib/models/mongo/EmailTemplateMongo.js +90 -0
- package/dist/lib/models/mongo/EmailTemplateMongo.js.map +1 -0
- package/dist/lib/models/mongo/EngagementEventMongo.js +113 -0
- package/dist/lib/models/mongo/EngagementEventMongo.js.map +1 -0
- package/dist/lib/models/mongo/EnrollmentMongo.js +150 -0
- package/dist/lib/models/mongo/EnrollmentMongo.js.map +1 -0
- package/dist/lib/models/mongo/MailingListMongo.js +104 -0
- package/dist/lib/models/mongo/MailingListMongo.js.map +1 -0
- package/dist/lib/models/mongo/OutboundSendMongo.js +265 -0
- package/dist/lib/models/mongo/OutboundSendMongo.js.map +1 -0
- package/dist/lib/models/mongo/PipelineMongo.js +74 -0
- package/dist/lib/models/mongo/PipelineMongo.js.map +1 -0
- package/dist/lib/models/mongo/PropertyDefinitionMongo.js +105 -0
- package/dist/lib/models/mongo/PropertyDefinitionMongo.js.map +1 -0
- package/dist/lib/models/mongo/PropertyValueMongo.js +101 -0
- package/dist/lib/models/mongo/PropertyValueMongo.js.map +1 -0
- package/dist/lib/models/mongo/SavedBlockMongo.js +67 -0
- package/dist/lib/models/mongo/SavedBlockMongo.js.map +1 -0
- package/dist/lib/models/mongo/ScoringRuleMongo.js +112 -0
- package/dist/lib/models/mongo/ScoringRuleMongo.js.map +1 -0
- package/dist/lib/models/mongo/SegmentMongo.js +113 -0
- package/dist/lib/models/mongo/SegmentMongo.js.map +1 -0
- package/dist/lib/models/mongo/SubscriptionMongo.js +114 -0
- package/dist/lib/models/mongo/SubscriptionMongo.js.map +1 -0
- package/dist/lib/models/mongo/SuppressionMongo.js +77 -0
- package/dist/lib/models/mongo/SuppressionMongo.js.map +1 -0
- package/dist/lib/models/mongo/TimelineEventMongo.js +112 -0
- package/dist/lib/models/mongo/TimelineEventMongo.js.map +1 -0
- package/dist/lib/models/mongo/WebhookDeliveryMongo.js +128 -0
- package/dist/lib/models/mongo/WebhookDeliveryMongo.js.map +1 -0
- package/dist/lib/models/mongo/WebhookEndpointMongo.js +118 -0
- package/dist/lib/models/mongo/WebhookEndpointMongo.js.map +1 -0
- package/dist/lib/models/mongo/WorkspaceMemberMongo.js +92 -0
- package/dist/lib/models/mongo/WorkspaceMemberMongo.js.map +1 -0
- package/dist/lib/models/mongo/WorkspaceMongo.js +117 -0
- package/dist/lib/models/mongo/WorkspaceMongo.js.map +1 -0
- package/dist/lib/models/mongo/WorkspaceSenderMongo.js +100 -0
- package/dist/lib/models/mongo/WorkspaceSenderMongo.js.map +1 -0
- package/dist/lib/models/mongo/index.js +74 -0
- package/dist/lib/models/mongo/index.js.map +1 -0
- package/dist/lib/models/sql/ApiKeySQL.js +105 -0
- package/dist/lib/models/sql/ApiKeySQL.js.map +1 -0
- package/dist/lib/models/sql/AutomationSQL.js +126 -0
- package/dist/lib/models/sql/AutomationSQL.js.map +1 -0
- package/dist/lib/models/sql/AutomationVersionSQL.js +82 -0
- package/dist/lib/models/sql/AutomationVersionSQL.js.map +1 -0
- package/dist/lib/models/sql/CampaignSQL.js +211 -0
- package/dist/lib/models/sql/CampaignSQL.js.map +1 -0
- package/dist/lib/models/sql/CrmCompanySQL.js +126 -0
- package/dist/lib/models/sql/CrmCompanySQL.js.map +1 -0
- package/dist/lib/models/sql/CrmContactSQL.js +156 -0
- package/dist/lib/models/sql/CrmContactSQL.js.map +1 -0
- package/dist/lib/models/sql/CrmEventSQL.js +92 -0
- package/dist/lib/models/sql/CrmEventSQL.js.map +1 -0
- package/dist/lib/models/sql/CrmFormSQL.js +139 -0
- package/dist/lib/models/sql/CrmFormSQL.js.map +1 -0
- package/dist/lib/models/sql/CrmImportSQL.js +190 -0
- package/dist/lib/models/sql/CrmImportSQL.js.map +1 -0
- package/dist/lib/models/sql/CrmNoteSQL.js +89 -0
- package/dist/lib/models/sql/CrmNoteSQL.js.map +1 -0
- package/dist/lib/models/sql/CrmSettingSQL.js +60 -0
- package/dist/lib/models/sql/CrmSettingSQL.js.map +1 -0
- package/dist/lib/models/sql/CrmTaskSQL.js +136 -0
- package/dist/lib/models/sql/CrmTaskSQL.js.map +1 -0
- package/dist/lib/models/sql/DealSQL.js +163 -0
- package/dist/lib/models/sql/DealSQL.js.map +1 -0
- package/dist/lib/models/sql/EmailTemplateSQL.js +90 -0
- package/dist/lib/models/sql/EmailTemplateSQL.js.map +1 -0
- package/dist/lib/models/sql/EngagementEventSQL.js +113 -0
- package/dist/lib/models/sql/EngagementEventSQL.js.map +1 -0
- package/dist/lib/models/sql/EnrollmentSQL.js +150 -0
- package/dist/lib/models/sql/EnrollmentSQL.js.map +1 -0
- package/dist/lib/models/sql/MailingListSQL.js +104 -0
- package/dist/lib/models/sql/MailingListSQL.js.map +1 -0
- package/dist/lib/models/sql/OutboundSendSQL.js +265 -0
- package/dist/lib/models/sql/OutboundSendSQL.js.map +1 -0
- package/dist/lib/models/sql/PipelineSQL.js +74 -0
- package/dist/lib/models/sql/PipelineSQL.js.map +1 -0
- package/dist/lib/models/sql/PropertyDefinitionSQL.js +105 -0
- package/dist/lib/models/sql/PropertyDefinitionSQL.js.map +1 -0
- package/dist/lib/models/sql/PropertyValueSQL.js +101 -0
- package/dist/lib/models/sql/PropertyValueSQL.js.map +1 -0
- package/dist/lib/models/sql/SavedBlockSQL.js +67 -0
- package/dist/lib/models/sql/SavedBlockSQL.js.map +1 -0
- package/dist/lib/models/sql/ScoringRuleSQL.js +112 -0
- package/dist/lib/models/sql/ScoringRuleSQL.js.map +1 -0
- package/dist/lib/models/sql/SegmentSQL.js +113 -0
- package/dist/lib/models/sql/SegmentSQL.js.map +1 -0
- package/dist/lib/models/sql/SubscriptionSQL.js +114 -0
- package/dist/lib/models/sql/SubscriptionSQL.js.map +1 -0
- package/dist/lib/models/sql/SuppressionSQL.js +77 -0
- package/dist/lib/models/sql/SuppressionSQL.js.map +1 -0
- package/dist/lib/models/sql/TimelineEventSQL.js +112 -0
- package/dist/lib/models/sql/TimelineEventSQL.js.map +1 -0
- package/dist/lib/models/sql/WebhookDeliverySQL.js +128 -0
- package/dist/lib/models/sql/WebhookDeliverySQL.js.map +1 -0
- package/dist/lib/models/sql/WebhookEndpointSQL.js +118 -0
- package/dist/lib/models/sql/WebhookEndpointSQL.js.map +1 -0
- package/dist/lib/models/sql/WorkspaceMemberSQL.js +92 -0
- package/dist/lib/models/sql/WorkspaceMemberSQL.js.map +1 -0
- package/dist/lib/models/sql/WorkspaceSQL.js +117 -0
- package/dist/lib/models/sql/WorkspaceSQL.js.map +1 -0
- package/dist/lib/models/sql/WorkspaceSenderSQL.js +100 -0
- package/dist/lib/models/sql/WorkspaceSenderSQL.js.map +1 -0
- package/dist/lib/models/sql/index.js +74 -0
- package/dist/lib/models/sql/index.js.map +1 -0
- package/dist/lib/models/types.js +275 -0
- package/dist/lib/models/types.js.map +1 -0
- package/dist/lib/mongo.js +80 -0
- package/dist/lib/mongo.js.map +1 -0
- package/dist/lib/purge.js +68 -0
- package/dist/lib/purge.js.map +1 -0
- package/dist/lib/routes/BaseAnalyticsRoute.js +217 -0
- package/dist/lib/routes/BaseAnalyticsRoute.js.map +1 -0
- package/dist/lib/routes/BaseApiKeyRoute.js +76 -0
- package/dist/lib/routes/BaseApiKeyRoute.js.map +1 -0
- package/dist/lib/routes/BaseAutomationRoute.js +316 -0
- package/dist/lib/routes/BaseAutomationRoute.js.map +1 -0
- package/dist/lib/routes/BaseCampaignRoute.js +443 -0
- package/dist/lib/routes/BaseCampaignRoute.js.map +1 -0
- package/dist/lib/routes/BaseCompanyRoute.js +106 -0
- package/dist/lib/routes/BaseCompanyRoute.js.map +1 -0
- package/dist/lib/routes/BaseContactRoute.js +162 -0
- package/dist/lib/routes/BaseContactRoute.js.map +1 -0
- package/dist/lib/routes/BaseCrmAdminRoute.js +108 -0
- package/dist/lib/routes/BaseCrmAdminRoute.js.map +1 -0
- package/dist/lib/routes/BaseDealRoute.js +312 -0
- package/dist/lib/routes/BaseDealRoute.js.map +1 -0
- package/dist/lib/routes/BaseFormRoute.js +124 -0
- package/dist/lib/routes/BaseFormRoute.js.map +1 -0
- package/dist/lib/routes/BaseImportRoute.js +231 -0
- package/dist/lib/routes/BaseImportRoute.js.map +1 -0
- package/dist/lib/routes/BaseIntegrationRoute.js +181 -0
- package/dist/lib/routes/BaseIntegrationRoute.js.map +1 -0
- package/dist/lib/routes/BaseListRoute.js +89 -0
- package/dist/lib/routes/BaseListRoute.js.map +1 -0
- package/dist/lib/routes/BaseNoteRoute.js +69 -0
- package/dist/lib/routes/BaseNoteRoute.js.map +1 -0
- package/dist/lib/routes/BasePipelineRoute.js +149 -0
- package/dist/lib/routes/BasePipelineRoute.js.map +1 -0
- package/dist/lib/routes/BasePropertyDefinitionRoute.js +140 -0
- package/dist/lib/routes/BasePropertyDefinitionRoute.js.map +1 -0
- package/dist/lib/routes/BasePublicRoute.js +528 -0
- package/dist/lib/routes/BasePublicRoute.js.map +1 -0
- package/dist/lib/routes/BaseSavedBlockRoute.js +39 -0
- package/dist/lib/routes/BaseSavedBlockRoute.js.map +1 -0
- package/dist/lib/routes/BaseScoringRuleRoute.js +146 -0
- package/dist/lib/routes/BaseScoringRuleRoute.js.map +1 -0
- package/dist/lib/routes/BaseSegmentRoute.js +136 -0
- package/dist/lib/routes/BaseSegmentRoute.js.map +1 -0
- package/dist/lib/routes/BaseSubscriptionRoute.js +92 -0
- package/dist/lib/routes/BaseSubscriptionRoute.js.map +1 -0
- package/dist/lib/routes/BaseSuppressionRoute.js +48 -0
- package/dist/lib/routes/BaseSuppressionRoute.js.map +1 -0
- package/dist/lib/routes/BaseTaggedRecordRoute.js +312 -0
- package/dist/lib/routes/BaseTaggedRecordRoute.js.map +1 -0
- package/dist/lib/routes/BaseTaskRoute.js +116 -0
- package/dist/lib/routes/BaseTaskRoute.js.map +1 -0
- package/dist/lib/routes/BaseTemplateRoute.js +207 -0
- package/dist/lib/routes/BaseTemplateRoute.js.map +1 -0
- package/dist/lib/routes/BaseTimelineRoute.js +47 -0
- package/dist/lib/routes/BaseTimelineRoute.js.map +1 -0
- package/dist/lib/routes/BaseTrackingRoute.js +106 -0
- package/dist/lib/routes/BaseTrackingRoute.js.map +1 -0
- package/dist/lib/routes/BaseWebhookRoute.js +173 -0
- package/dist/lib/routes/BaseWebhookRoute.js.map +1 -0
- package/dist/lib/routes/BaseWorkspaceRecordRoute.js +220 -0
- package/dist/lib/routes/BaseWorkspaceRecordRoute.js.map +1 -0
- package/dist/lib/routes/BaseWorkspaceRoute.js +540 -0
- package/dist/lib/routes/BaseWorkspaceRoute.js.map +1 -0
- package/dist/lib/routes/CrmRouteBase.js +261 -0
- package/dist/lib/routes/CrmRouteBase.js.map +1 -0
- package/dist/lib/routes/mongo/AnalyticsRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/AnalyticsRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/ApiKeyRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/ApiKeyRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/AutomationRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/AutomationRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/CampaignRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/CampaignRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/CompanyRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/CompanyRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/ContactRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/ContactRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/CrmAdminRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/CrmAdminRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/DealRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/DealRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/FormRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/FormRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/ImportRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/ImportRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/IntegrationRouteMongo.js +28 -0
- package/dist/lib/routes/mongo/IntegrationRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/ListRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/ListRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/NoteRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/NoteRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/PipelineRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/PipelineRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/PropertyDefinitionRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/PropertyDefinitionRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/PublicRouteMongo.js +28 -0
- package/dist/lib/routes/mongo/PublicRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/SavedBlockRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/SavedBlockRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/ScoringRuleRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/ScoringRuleRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/SegmentRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/SegmentRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/SubscriptionRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/SubscriptionRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/SuppressionRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/SuppressionRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/TaskRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/TaskRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/TemplateRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/TemplateRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/TimelineRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/TimelineRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/TrackingRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/TrackingRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/WebhookRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/WebhookRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/WorkspaceRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/WorkspaceRouteMongo.js.map +1 -0
- package/dist/lib/routes/sql/AnalyticsRouteSQL.js +26 -0
- package/dist/lib/routes/sql/AnalyticsRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/ApiKeyRouteSQL.js +26 -0
- package/dist/lib/routes/sql/ApiKeyRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/AutomationRouteSQL.js +26 -0
- package/dist/lib/routes/sql/AutomationRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/CampaignRouteSQL.js +26 -0
- package/dist/lib/routes/sql/CampaignRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/CompanyRouteSQL.js +26 -0
- package/dist/lib/routes/sql/CompanyRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/ContactRouteSQL.js +26 -0
- package/dist/lib/routes/sql/ContactRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/CrmAdminRouteSQL.js +26 -0
- package/dist/lib/routes/sql/CrmAdminRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/DealRouteSQL.js +26 -0
- package/dist/lib/routes/sql/DealRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/FormRouteSQL.js +26 -0
- package/dist/lib/routes/sql/FormRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/ImportRouteSQL.js +26 -0
- package/dist/lib/routes/sql/ImportRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/IntegrationRouteSQL.js +28 -0
- package/dist/lib/routes/sql/IntegrationRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/ListRouteSQL.js +26 -0
- package/dist/lib/routes/sql/ListRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/NoteRouteSQL.js +26 -0
- package/dist/lib/routes/sql/NoteRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/PipelineRouteSQL.js +26 -0
- package/dist/lib/routes/sql/PipelineRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/PropertyDefinitionRouteSQL.js +26 -0
- package/dist/lib/routes/sql/PropertyDefinitionRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/PublicRouteSQL.js +28 -0
- package/dist/lib/routes/sql/PublicRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/SavedBlockRouteSQL.js +26 -0
- package/dist/lib/routes/sql/SavedBlockRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/ScoringRuleRouteSQL.js +26 -0
- package/dist/lib/routes/sql/ScoringRuleRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/SegmentRouteSQL.js +26 -0
- package/dist/lib/routes/sql/SegmentRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/SubscriptionRouteSQL.js +26 -0
- package/dist/lib/routes/sql/SubscriptionRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/SuppressionRouteSQL.js +26 -0
- package/dist/lib/routes/sql/SuppressionRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/TaskRouteSQL.js +26 -0
- package/dist/lib/routes/sql/TaskRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/TemplateRouteSQL.js +26 -0
- package/dist/lib/routes/sql/TemplateRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/TimelineRouteSQL.js +26 -0
- package/dist/lib/routes/sql/TimelineRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/TrackingRouteSQL.js +26 -0
- package/dist/lib/routes/sql/TrackingRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/WebhookRouteSQL.js +26 -0
- package/dist/lib/routes/sql/WebhookRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/WorkspaceRouteSQL.js +26 -0
- package/dist/lib/routes/sql/WorkspaceRouteSQL.js.map +1 -0
- package/dist/lib/scoring/Scoring.js +105 -0
- package/dist/lib/scoring/Scoring.js.map +1 -0
- package/dist/lib/segments/Segments.js +125 -0
- package/dist/lib/segments/Segments.js.map +1 -0
- package/dist/lib/sending/Audience.js +87 -0
- package/dist/lib/sending/Audience.js.map +1 -0
- package/dist/lib/sending/CampaignRenderer.js +123 -0
- package/dist/lib/sending/CampaignRenderer.js.map +1 -0
- package/dist/lib/sending/Engagement.js +216 -0
- package/dist/lib/sending/Engagement.js.map +1 -0
- package/dist/lib/sending/Stats.js +70 -0
- package/dist/lib/sending/Stats.js.map +1 -0
- package/dist/lib/sending/Tracking.js +98 -0
- package/dist/lib/sending/Tracking.js.map +1 -0
- package/dist/lib/sql.js +80 -0
- package/dist/lib/sql.js.map +1 -0
- package/dist/lib/templates/Design.js +278 -0
- package/dist/lib/templates/Design.js.map +1 -0
- package/dist/lib/templates/MergeContext.js +57 -0
- package/dist/lib/templates/MergeContext.js.map +1 -0
- package/dist/lib/templates/Render.js +147 -0
- package/dist/lib/templates/Render.js.map +1 -0
- package/dist/lib/templates/Sanitize.js +98 -0
- package/dist/lib/templates/Sanitize.js.map +1 -0
- package/dist/lib/util/Csv.js +128 -0
- package/dist/lib/util/Csv.js.map +1 -0
- package/dist/lib/util/ImportMapping.js +206 -0
- package/dist/lib/util/ImportMapping.js.map +1 -0
- package/dist/lib/util/Mailer.js +43 -0
- package/dist/lib/util/Mailer.js.map +1 -0
- package/dist/lib/util/PropertyValues.js +145 -0
- package/dist/lib/util/PropertyValues.js.map +1 -0
- package/dist/lib/util/Secrets.js +31 -0
- package/dist/lib/util/Secrets.js.map +1 -0
- package/dist/lib/util/Tokens.js +58 -0
- package/dist/lib/util/Tokens.js.map +1 -0
- package/dist/lib/util/Validation.js +194 -0
- package/dist/lib/util/Validation.js.map +1 -0
- package/dist/lib/util/WorkspaceAccess.js +55 -0
- package/dist/lib/util/WorkspaceAccess.js.map +1 -0
- package/dist/lib/webhooks/Deliveries.js +47 -0
- package/dist/lib/webhooks/Deliveries.js.map +1 -0
- package/dist/lib/webhooks/Webhooks.js +132 -0
- package/dist/lib/webhooks/Webhooks.js.map +1 -0
- package/dist/types/automation/Dates.d.ts +42 -0
- package/dist/types/automation/Engine.d.ts +63 -0
- package/dist/types/automation/Events.d.ts +43 -0
- package/dist/types/automation/Graph.d.ts +77 -0
- package/dist/types/filters/Filter.d.ts +83 -0
- package/dist/types/filters/fields.d.ts +9 -0
- package/dist/types/index.d.ts +81 -0
- package/dist/types/jobs/AutomationRunJob.d.ts +18 -0
- package/dist/types/jobs/AutomationTriggerJob.d.ts +23 -0
- package/dist/types/jobs/CampaignJob.d.ts +45 -0
- package/dist/types/jobs/CrmImportJob.d.ts +44 -0
- package/dist/types/jobs/CrmJobBase.d.ts +26 -0
- package/dist/types/jobs/CrmMailEventJob.d.ts +102 -0
- package/dist/types/jobs/DateTriggerJob.d.ts +21 -0
- package/dist/types/jobs/ScoringJob.d.ts +13 -0
- package/dist/types/jobs/SegmentRefreshJob.d.ts +16 -0
- package/dist/types/jobs/SendDispatchJob.d.ts +52 -0
- package/dist/types/jobs/TaskReminderJob.d.ts +12 -0
- package/dist/types/jobs/WebhookDeliveryJob.d.ts +22 -0
- package/dist/types/jobs/mongo/AutomationRunJobMongo.d.ts +7 -0
- package/dist/types/jobs/mongo/AutomationTriggerJobMongo.d.ts +6 -0
- package/dist/types/jobs/mongo/CampaignJobMongo.d.ts +6 -0
- package/dist/types/jobs/mongo/CrmImportJobMongo.d.ts +8 -0
- package/dist/types/jobs/mongo/CrmMailEventJobMongo.d.ts +6 -0
- package/dist/types/jobs/mongo/DateTriggerJobMongo.d.ts +6 -0
- package/dist/types/jobs/mongo/ScoringJobMongo.d.ts +6 -0
- package/dist/types/jobs/mongo/SegmentRefreshJobMongo.d.ts +6 -0
- package/dist/types/jobs/mongo/SendDispatchJobMongo.d.ts +6 -0
- package/dist/types/jobs/mongo/TaskReminderJobMongo.d.ts +6 -0
- package/dist/types/jobs/mongo/WebhookDeliveryJobMongo.d.ts +6 -0
- package/dist/types/jobs/sql/AutomationRunJobSQL.d.ts +7 -0
- package/dist/types/jobs/sql/AutomationTriggerJobSQL.d.ts +6 -0
- package/dist/types/jobs/sql/CampaignJobSQL.d.ts +6 -0
- package/dist/types/jobs/sql/CrmImportJobSQL.d.ts +8 -0
- package/dist/types/jobs/sql/CrmMailEventJobSQL.d.ts +6 -0
- package/dist/types/jobs/sql/DateTriggerJobSQL.d.ts +6 -0
- package/dist/types/jobs/sql/ScoringJobSQL.d.ts +6 -0
- package/dist/types/jobs/sql/SegmentRefreshJobSQL.d.ts +6 -0
- package/dist/types/jobs/sql/SendDispatchJobSQL.d.ts +6 -0
- package/dist/types/jobs/sql/TaskReminderJobSQL.d.ts +6 -0
- package/dist/types/jobs/sql/WebhookDeliveryJobSQL.d.ts +6 -0
- package/dist/types/models/CrmModelClasses.d.ts +63 -0
- package/dist/types/models/mongo/ApiKeyMongo.d.ts +19 -0
- package/dist/types/models/mongo/AutomationMongo.d.ts +22 -0
- package/dist/types/models/mongo/AutomationVersionMongo.d.ts +16 -0
- package/dist/types/models/mongo/CampaignMongo.d.ts +34 -0
- package/dist/types/models/mongo/CrmCompanyMongo.d.ts +22 -0
- package/dist/types/models/mongo/CrmContactMongo.d.ts +26 -0
- package/dist/types/models/mongo/CrmEventMongo.d.ts +17 -0
- package/dist/types/models/mongo/CrmFormMongo.d.ts +24 -0
- package/dist/types/models/mongo/CrmImportMongo.d.ts +31 -0
- package/dist/types/models/mongo/CrmNoteMongo.d.ts +17 -0
- package/dist/types/models/mongo/CrmSettingMongo.d.ts +13 -0
- package/dist/types/models/mongo/CrmTaskMongo.d.ts +23 -0
- package/dist/types/models/mongo/DealMongo.d.ts +27 -0
- package/dist/types/models/mongo/EmailTemplateMongo.d.ts +17 -0
- package/dist/types/models/mongo/EngagementEventMongo.d.ts +20 -0
- package/dist/types/models/mongo/EnrollmentMongo.d.ts +25 -0
- package/dist/types/models/mongo/MailingListMongo.d.ts +19 -0
- package/dist/types/models/mongo/OutboundSendMongo.d.ts +41 -0
- package/dist/types/models/mongo/PipelineMongo.d.ts +15 -0
- package/dist/types/models/mongo/PropertyDefinitionMongo.d.ts +19 -0
- package/dist/types/models/mongo/PropertyValueMongo.d.ts +18 -0
- package/dist/types/models/mongo/SavedBlockMongo.d.ts +14 -0
- package/dist/types/models/mongo/ScoringRuleMongo.d.ts +20 -0
- package/dist/types/models/mongo/SegmentMongo.d.ts +20 -0
- package/dist/types/models/mongo/SubscriptionMongo.d.ts +20 -0
- package/dist/types/models/mongo/SuppressionMongo.d.ts +15 -0
- package/dist/types/models/mongo/TimelineEventMongo.d.ts +20 -0
- package/dist/types/models/mongo/WebhookDeliveryMongo.d.ts +22 -0
- package/dist/types/models/mongo/WebhookEndpointMongo.d.ts +21 -0
- package/dist/types/models/mongo/WorkspaceMemberMongo.d.ts +17 -0
- package/dist/types/models/mongo/WorkspaceMongo.d.ts +21 -0
- package/dist/types/models/mongo/WorkspaceSenderMongo.d.ts +18 -0
- package/dist/types/models/mongo/index.d.ts +3 -0
- package/dist/types/models/sql/ApiKeySQL.d.ts +19 -0
- package/dist/types/models/sql/AutomationSQL.d.ts +22 -0
- package/dist/types/models/sql/AutomationVersionSQL.d.ts +16 -0
- package/dist/types/models/sql/CampaignSQL.d.ts +34 -0
- package/dist/types/models/sql/CrmCompanySQL.d.ts +22 -0
- package/dist/types/models/sql/CrmContactSQL.d.ts +26 -0
- package/dist/types/models/sql/CrmEventSQL.d.ts +17 -0
- package/dist/types/models/sql/CrmFormSQL.d.ts +24 -0
- package/dist/types/models/sql/CrmImportSQL.d.ts +31 -0
- package/dist/types/models/sql/CrmNoteSQL.d.ts +17 -0
- package/dist/types/models/sql/CrmSettingSQL.d.ts +13 -0
- package/dist/types/models/sql/CrmTaskSQL.d.ts +23 -0
- package/dist/types/models/sql/DealSQL.d.ts +27 -0
- package/dist/types/models/sql/EmailTemplateSQL.d.ts +17 -0
- package/dist/types/models/sql/EngagementEventSQL.d.ts +20 -0
- package/dist/types/models/sql/EnrollmentSQL.d.ts +25 -0
- package/dist/types/models/sql/MailingListSQL.d.ts +19 -0
- package/dist/types/models/sql/OutboundSendSQL.d.ts +41 -0
- package/dist/types/models/sql/PipelineSQL.d.ts +15 -0
- package/dist/types/models/sql/PropertyDefinitionSQL.d.ts +19 -0
- package/dist/types/models/sql/PropertyValueSQL.d.ts +18 -0
- package/dist/types/models/sql/SavedBlockSQL.d.ts +14 -0
- package/dist/types/models/sql/ScoringRuleSQL.d.ts +20 -0
- package/dist/types/models/sql/SegmentSQL.d.ts +20 -0
- package/dist/types/models/sql/SubscriptionSQL.d.ts +20 -0
- package/dist/types/models/sql/SuppressionSQL.d.ts +15 -0
- package/dist/types/models/sql/TimelineEventSQL.d.ts +20 -0
- package/dist/types/models/sql/WebhookDeliverySQL.d.ts +22 -0
- package/dist/types/models/sql/WebhookEndpointSQL.d.ts +21 -0
- package/dist/types/models/sql/WorkspaceMemberSQL.d.ts +17 -0
- package/dist/types/models/sql/WorkspaceSQL.d.ts +21 -0
- package/dist/types/models/sql/WorkspaceSenderSQL.d.ts +18 -0
- package/dist/types/models/sql/index.d.ts +3 -0
- package/dist/types/models/types.d.ts +902 -0
- package/dist/types/mongo.d.ts +75 -0
- package/dist/types/purge.d.ts +32 -0
- package/dist/types/routes/BaseAnalyticsRoute.d.ts +87 -0
- package/dist/types/routes/BaseApiKeyRoute.d.ts +31 -0
- package/dist/types/routes/BaseAutomationRoute.d.ts +56 -0
- package/dist/types/routes/BaseCampaignRoute.d.ts +66 -0
- package/dist/types/routes/BaseCompanyRoute.d.ts +30 -0
- package/dist/types/routes/BaseContactRoute.d.ts +42 -0
- package/dist/types/routes/BaseCrmAdminRoute.d.ts +41 -0
- package/dist/types/routes/BaseDealRoute.d.ts +65 -0
- package/dist/types/routes/BaseFormRoute.d.ts +25 -0
- package/dist/types/routes/BaseImportRoute.d.ts +39 -0
- package/dist/types/routes/BaseIntegrationRoute.d.ts +46 -0
- package/dist/types/routes/BaseListRoute.d.ts +26 -0
- package/dist/types/routes/BaseNoteRoute.d.ts +15 -0
- package/dist/types/routes/BasePipelineRoute.d.ts +31 -0
- package/dist/types/routes/BasePropertyDefinitionRoute.d.ts +24 -0
- package/dist/types/routes/BasePublicRoute.d.ts +129 -0
- package/dist/types/routes/BaseSavedBlockRoute.d.ts +16 -0
- package/dist/types/routes/BaseScoringRuleRoute.d.ts +33 -0
- package/dist/types/routes/BaseSegmentRoute.d.ts +36 -0
- package/dist/types/routes/BaseSubscriptionRoute.d.ts +20 -0
- package/dist/types/routes/BaseSuppressionRoute.d.ts +17 -0
- package/dist/types/routes/BaseTaggedRecordRoute.d.ts +85 -0
- package/dist/types/routes/BaseTaskRoute.d.ts +18 -0
- package/dist/types/routes/BaseTemplateRoute.d.ts +52 -0
- package/dist/types/routes/BaseTimelineRoute.d.ts +10 -0
- package/dist/types/routes/BaseTrackingRoute.d.ts +21 -0
- package/dist/types/routes/BaseWebhookRoute.d.ts +49 -0
- package/dist/types/routes/BaseWorkspaceRecordRoute.d.ts +78 -0
- package/dist/types/routes/BaseWorkspaceRoute.d.ts +78 -0
- package/dist/types/routes/CrmRouteBase.d.ts +95 -0
- package/dist/types/routes/mongo/AnalyticsRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/ApiKeyRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/AutomationRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/CampaignRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/CompanyRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/ContactRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/CrmAdminRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/DealRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/FormRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/ImportRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/IntegrationRouteMongo.d.ts +7 -0
- package/dist/types/routes/mongo/ListRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/NoteRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/PipelineRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/PropertyDefinitionRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/PublicRouteMongo.d.ts +7 -0
- package/dist/types/routes/mongo/SavedBlockRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/ScoringRuleRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/SegmentRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/SubscriptionRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/SuppressionRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/TaskRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/TemplateRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/TimelineRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/TrackingRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/WebhookRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/WorkspaceRouteMongo.d.ts +6 -0
- package/dist/types/routes/sql/AnalyticsRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/ApiKeyRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/AutomationRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/CampaignRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/CompanyRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/ContactRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/CrmAdminRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/DealRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/FormRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/ImportRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/IntegrationRouteSQL.d.ts +7 -0
- package/dist/types/routes/sql/ListRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/NoteRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/PipelineRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/PropertyDefinitionRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/PublicRouteSQL.d.ts +7 -0
- package/dist/types/routes/sql/SavedBlockRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/ScoringRuleRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/SegmentRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/SubscriptionRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/SuppressionRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/TaskRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/TemplateRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/TimelineRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/TrackingRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/WebhookRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/WorkspaceRouteSQL.d.ts +6 -0
- package/dist/types/scoring/Scoring.d.ts +14 -0
- package/dist/types/segments/Segments.d.ts +46 -0
- package/dist/types/sending/Audience.d.ts +39 -0
- package/dist/types/sending/CampaignRenderer.d.ts +40 -0
- package/dist/types/sending/Engagement.d.ts +50 -0
- package/dist/types/sending/Stats.d.ts +17 -0
- package/dist/types/sending/Tracking.d.ts +39 -0
- package/dist/types/sql.d.ts +75 -0
- package/dist/types/templates/Design.d.ts +138 -0
- package/dist/types/templates/MergeContext.d.ts +27 -0
- package/dist/types/templates/Render.d.ts +46 -0
- package/dist/types/templates/Sanitize.d.ts +18 -0
- package/dist/types/util/Csv.d.ts +26 -0
- package/dist/types/util/ImportMapping.d.ts +23 -0
- package/dist/types/util/Mailer.d.ts +24 -0
- package/dist/types/util/PropertyValues.d.ts +31 -0
- package/dist/types/util/Secrets.d.ts +10 -0
- package/dist/types/util/Tokens.d.ts +30 -0
- package/dist/types/util/Validation.d.ts +59 -0
- package/dist/types/util/WorkspaceAccess.d.ts +24 -0
- package/dist/types/webhooks/Deliveries.d.ts +26 -0
- package/dist/types/webhooks/Webhooks.d.ts +43 -0
- package/package.json +226 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { BackgroundService, NotificationUtils, ObjectFactory } from "@rapidrest/service-core";
|
|
2
|
+
import type { BlobStore } from "@rapidmx/restapi";
|
|
3
|
+
import { CrmModelClasses } from "../models/CrmModelClasses.js";
|
|
4
|
+
/**
|
|
5
|
+
* Imports queued CSV imports (`BaseImportRoute`): each row becomes a create or update through the contact or company route's own
|
|
6
|
+
* `importRow()`, so it gets exactly the checks and side effects an API request would (tags, custom properties, the timeline). A row
|
|
7
|
+
* that fails is counted as skipped with its reason (the first `MAX_IMPORT_ERRORS` are kept) and the import carries on.
|
|
8
|
+
*
|
|
9
|
+
* **One replica per import.** An import is claimed with a version-checked update that sets it `RUNNING` with a lease; progress is saved
|
|
10
|
+
* (and the lease renewed) every `PROGRESS_EVERY` rows the same way, so a replica that loses the row to another stops. An import whose
|
|
11
|
+
* lease ran out - its replica died - is claimed again and resumes after the last saved row; after `max_attempts` claims it fails.
|
|
12
|
+
*
|
|
13
|
+
* Concrete subclasses supply the backend's model classes and route classes.
|
|
14
|
+
*/
|
|
15
|
+
export declare abstract class CrmImportJob extends BackgroundService {
|
|
16
|
+
protected abstract classes: CrmModelClasses;
|
|
17
|
+
protected abstract contactRouteClass: any;
|
|
18
|
+
protected abstract companyRouteClass: any;
|
|
19
|
+
protected _objectFactory?: ObjectFactory;
|
|
20
|
+
protected blobStore?: BlobStore;
|
|
21
|
+
protected notificationUtils?: NotificationUtils;
|
|
22
|
+
protected scheduleExpr: string;
|
|
23
|
+
protected leaseSeconds: number;
|
|
24
|
+
protected maxAttempts: number;
|
|
25
|
+
protected logger?: any;
|
|
26
|
+
private repos?;
|
|
27
|
+
private routes;
|
|
28
|
+
get schedule(): string | undefined;
|
|
29
|
+
start(): void;
|
|
30
|
+
stop(): void;
|
|
31
|
+
run(): Promise<void>;
|
|
32
|
+
private repo;
|
|
33
|
+
/** The contact or company route that writes an import's rows. */
|
|
34
|
+
private route;
|
|
35
|
+
/** Takes `candidate` for this replica, or `undefined` when another took it first. An import claimed too often fails instead. */
|
|
36
|
+
private claim;
|
|
37
|
+
/** Imports every row after `processedRows`, saving progress as it goes. */
|
|
38
|
+
private process;
|
|
39
|
+
/** The workspace's company named `name` (the first found), created when there is none. */
|
|
40
|
+
private companyByName;
|
|
41
|
+
/** Saves `fields` onto the import with a version check; `undefined` when another replica changed it first. */
|
|
42
|
+
private save;
|
|
43
|
+
private publish;
|
|
44
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BackgroundService, NotificationUtils, ObjectFactory, RepoUtils } from "@rapidrest/service-core";
|
|
2
|
+
import { CrmModelClasses, CrmModelName, CrmRepos } from "../models/CrmModelClasses.js";
|
|
3
|
+
/**
|
|
4
|
+
* What the CRM's background jobs share: the backend's model classes and repositories, the key links are signed with, the public site,
|
|
5
|
+
* and pushing changes to a workspace's open pages. A subclass supplies `schedule` (from its own setting) and `run()`.
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class CrmJobBase extends BackgroundService {
|
|
8
|
+
protected abstract classes: CrmModelClasses;
|
|
9
|
+
protected _objectFactory?: ObjectFactory;
|
|
10
|
+
protected notificationUtils?: NotificationUtils;
|
|
11
|
+
protected publicUrl: string;
|
|
12
|
+
protected configuredTokenSecret: string;
|
|
13
|
+
protected logger?: any;
|
|
14
|
+
private crmRepos?;
|
|
15
|
+
private cachedTokenSecret?;
|
|
16
|
+
start(): void;
|
|
17
|
+
stop(): void;
|
|
18
|
+
protected repos(): CrmRepos;
|
|
19
|
+
protected repo<T = any>(name: CrmModelName): Promise<RepoUtils<T & any>>;
|
|
20
|
+
/** The key tokens and tracking links are signed with - the same the routes use. */
|
|
21
|
+
protected tokenSecret(): Promise<string>;
|
|
22
|
+
/** An absolute link under `mail:crm:public_url`. */
|
|
23
|
+
protected publicLink(path: string): string;
|
|
24
|
+
/** Tells the workspace's open pages that a record changed. */
|
|
25
|
+
protected notify(workspaceUid: string, type: string, data: unknown): void;
|
|
26
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { ConnectionManager } from "@rapidrest/service-core";
|
|
2
|
+
import { CrmJobBase } from "./CrmJobBase.js";
|
|
3
|
+
/**
|
|
4
|
+
* The part of `@rapidmx/restapi`'s mail event stream this job reads - the same Redis stream (`MAIL_EVENT_STREAM_KEY`) and entry format
|
|
5
|
+
* (`MessageDeliveredEvent`, JSON in the `event` field). Kept here, not imported, until the plugin depends on a restapi release that
|
|
6
|
+
* exports the stream (0.27): then this job becomes a `MailEventConsumer` subclass and these types go.
|
|
7
|
+
*/
|
|
8
|
+
export declare const MAIL_EVENT_STREAM_KEY = "rapidmx:mail-events";
|
|
9
|
+
/** A bounce's recipient group, as restapi's `DsnParser` reports it. */
|
|
10
|
+
export interface DeliveryStatusRecipient {
|
|
11
|
+
finalRecipient: string;
|
|
12
|
+
status?: string;
|
|
13
|
+
outcome: "delivered" | "delayed" | "soft_bounce" | "hard_bounce";
|
|
14
|
+
}
|
|
15
|
+
/** restapi's `message.delivered` event: a message filed into a mailbox. */
|
|
16
|
+
export interface MessageDeliveredEvent {
|
|
17
|
+
type: "message.delivered";
|
|
18
|
+
occurredAt: string;
|
|
19
|
+
mailboxUid: string;
|
|
20
|
+
messageUid: string;
|
|
21
|
+
envelopeTo: string[];
|
|
22
|
+
fromAddress?: string;
|
|
23
|
+
subject?: string;
|
|
24
|
+
messageId?: string;
|
|
25
|
+
inReplyTo?: string;
|
|
26
|
+
references: string[];
|
|
27
|
+
autoSubmitted?: string;
|
|
28
|
+
precedence?: string;
|
|
29
|
+
deliveryStatusReport?: {
|
|
30
|
+
originalMessageId?: string;
|
|
31
|
+
recipients: DeliveryStatusRecipient[];
|
|
32
|
+
};
|
|
33
|
+
feedbackReport?: {
|
|
34
|
+
feedbackType: string;
|
|
35
|
+
originalMessageId?: string;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/** restapi's `message.sent` event: a message sent from a mailbox. */
|
|
39
|
+
export interface MessageSentEvent {
|
|
40
|
+
type: "message.sent";
|
|
41
|
+
occurredAt: string;
|
|
42
|
+
mailboxUid?: string;
|
|
43
|
+
messageUid?: string;
|
|
44
|
+
messageId: string;
|
|
45
|
+
recipients: string[];
|
|
46
|
+
}
|
|
47
|
+
/** The Redis commands the job uses. */
|
|
48
|
+
export interface StreamRedis {
|
|
49
|
+
xGroupCreate(key: string, group: string, id: string, options?: any): Promise<unknown>;
|
|
50
|
+
xReadGroup(group: string, consumer: string, streams: {
|
|
51
|
+
key: string;
|
|
52
|
+
id: string;
|
|
53
|
+
}, options?: any): Promise<any>;
|
|
54
|
+
xAck(key: string, group: string, id: string | string[]): Promise<number>;
|
|
55
|
+
xAutoClaim(key: string, group: string, consumer: string, minIdleTime: number, start: string, options?: any): Promise<any>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Learns what became of CRM messages from the mail the workspaces' sender mailboxes receive, read from restapi's mail event stream
|
|
59
|
+
* as the consumer group `crm-plugin` (one replica handles each event; a replica that fails leaves it to be claimed again):
|
|
60
|
+
* - **Bounces** (a delivery status report) of a CRM message - found by its bounce address (`verpAddress()`) or the returned
|
|
61
|
+
* `Message-ID` - record a hard or soft bounce; a hard one suppresses the address.
|
|
62
|
+
* - **Complaints** (an abuse feedback report) of one record a complaint and suppress the address.
|
|
63
|
+
* - **Replies** - a message whose `In-Reply-To`/`References` names a CRM message - record a reply. Automatic mail (`Auto-Submitted`,
|
|
64
|
+
* `Precedence: bulk`...) is not a reply.
|
|
65
|
+
*
|
|
66
|
+
* Only reports and replies filed into the mailbox of the message's own sender count, so nobody can forge engagement by mailing some
|
|
67
|
+
* other mailbox. Without an `events` Redis datastore, the job does nothing.
|
|
68
|
+
*/
|
|
69
|
+
export declare abstract class CrmMailEventJob extends CrmJobBase {
|
|
70
|
+
protected connectionManager?: ConnectionManager;
|
|
71
|
+
protected datastoreName: string;
|
|
72
|
+
protected scheduleExpr: string;
|
|
73
|
+
protected readonly consumerGroup: string;
|
|
74
|
+
protected readonly consumerName: string;
|
|
75
|
+
protected batchSize: number;
|
|
76
|
+
protected maxBatchesPerRun: number;
|
|
77
|
+
protected retryAfterMs: number;
|
|
78
|
+
private groupReady;
|
|
79
|
+
get schedule(): string | undefined;
|
|
80
|
+
/** The stream's Redis client, if there is one. */
|
|
81
|
+
protected redis(): StreamRedis | undefined;
|
|
82
|
+
run(): Promise<void>;
|
|
83
|
+
/** Handles one entry and acknowledges it - unless handling throws, which leaves it to be retried. */
|
|
84
|
+
private dispatch;
|
|
85
|
+
/** Records what `event` says about CRM messages, if anything - see the class comment. Idempotent. */
|
|
86
|
+
handle(event: MessageDeliveredEvent): Promise<void>;
|
|
87
|
+
/** Logs a message a logging sender's mailbox sent to contacts (`WorkspaceSender.logEmail`) on their timelines. */
|
|
88
|
+
handleSent(event: MessageSentEvent): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Adds a timeline entry for each of `addresses` that is a contact of a workspace whose sender with mailbox `mailboxUid` logs email -
|
|
91
|
+
* once per message and contact (`refUid`), however often the event comes.
|
|
92
|
+
*/
|
|
93
|
+
private logEmail;
|
|
94
|
+
/**
|
|
95
|
+
* The CRM message a bounce, report or reply filed into `mailboxUid` is about - by its token, else by one of `messageIds` - if that
|
|
96
|
+
* message was sent from a sender whose mailbox is `mailboxUid`.
|
|
97
|
+
*/
|
|
98
|
+
private findSend;
|
|
99
|
+
/** Whether `send` went out from a sender whose mailbox is `mailboxUid`. */
|
|
100
|
+
private sentFrom;
|
|
101
|
+
private recorder;
|
|
102
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CrmJobBase } from "./CrmJobBase.js";
|
|
2
|
+
/** The most date values one automation's daily check reads. */
|
|
3
|
+
export declare const MAX_DATE_SCAN = 200000;
|
|
4
|
+
/**
|
|
5
|
+
* Puts contacts into automations whose trigger is a date (`date.reached`): a contact's custom date property or its own
|
|
6
|
+
* `dateCreated`/`lastEngagedAt`, on the day - or `offsetDays` before or after it - once or every year.
|
|
7
|
+
*
|
|
8
|
+
* Each active automation is checked once a day, from its trigger's `hour` in its workspace's time zone: the run claims the day by
|
|
9
|
+
* stamping `Automation.dateCheckedOn` (version-checked, so one replica does it), then reads the contacts whose date falls on it and
|
|
10
|
+
* enrolls those matching the trigger's contact filter - as the automation's re-entry rule allows. A day missed (the automation was
|
|
11
|
+
* paused, or no replica ran) isn't made up.
|
|
12
|
+
*/
|
|
13
|
+
export declare abstract class DateTriggerJob extends CrmJobBase {
|
|
14
|
+
protected scheduleExpr: string;
|
|
15
|
+
get schedule(): string | undefined;
|
|
16
|
+
run(now?: Date): Promise<void>;
|
|
17
|
+
/** The contacts of the workspace whose date makes `trigger` fire on `today` (`YYYY-MM-DD`, in `timeZone`). */
|
|
18
|
+
private contactsOn;
|
|
19
|
+
/** Every row of `repo` matching `query`, in uid order, at most `MAX_DATE_SCAN`. */
|
|
20
|
+
private all;
|
|
21
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CrmJobBase } from "./CrmJobBase.js";
|
|
2
|
+
/**
|
|
3
|
+
* Keeps lead scores current (`scoreWorkspace()`): rescores a workspace soon after its scoring rules change (`scoringDirty`), and
|
|
4
|
+
* every `mail:crm:jobs:scoring:interval_seconds` while it has rules, since activity rules count within moving windows. A workspace
|
|
5
|
+
* is claimed by stamping `scoredAt` (version-checked); a rule changed while it is scored marks it dirty again for the next run.
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class ScoringJob extends CrmJobBase {
|
|
8
|
+
protected scheduleExpr: string;
|
|
9
|
+
protected intervalSeconds: number;
|
|
10
|
+
protected batchSize: number;
|
|
11
|
+
get schedule(): string | undefined;
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Segment } from "../models/types.js";
|
|
2
|
+
import { CrmJobBase } from "./CrmJobBase.js";
|
|
3
|
+
/**
|
|
4
|
+
* Keeps dynamic segments current: every run refreshes (`refreshSegment()`) the segments last refreshed longer than
|
|
5
|
+
* `mail:crm:jobs:segments:refresh_seconds` ago, oldest first. A segment is claimed by stamping its `refreshedAt` (version-checked), so
|
|
6
|
+
* replicas share the work without refreshing one segment twice. `membersChanged()` is told who entered and left.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class SegmentRefreshJob extends CrmJobBase {
|
|
9
|
+
protected scheduleExpr: string;
|
|
10
|
+
protected refreshSeconds: number;
|
|
11
|
+
protected batchSize: number;
|
|
12
|
+
get schedule(): string | undefined;
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
/** Records who entered and left a segment in a refresh, for automations. */
|
|
15
|
+
protected membersChanged(segment: Segment, entered: string[], left: string[]): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { RateLimiter } from "@rapidrest/service-core";
|
|
2
|
+
import type { MailTransport } from "@rapidmx/restapi";
|
|
3
|
+
import { CrmJobBase } from "./CrmJobBase.js";
|
|
4
|
+
/** How long a stopped workspace's messages wait before they are looked at again. */
|
|
5
|
+
export declare const STOPPED_RETRY_MS: number;
|
|
6
|
+
/**
|
|
7
|
+
* Sends queued campaign messages (`OutboundSend`s the `CampaignJob` created): renders each for its contact (`CampaignRenderer`) and
|
|
8
|
+
* hands it to the mail transport.
|
|
9
|
+
*
|
|
10
|
+
* - **Throughput** is capped across replicas at `mail:crm:send_rate_per_minute` (a shared `RateLimiter` counter); a run stops at the cap
|
|
11
|
+
* and the next carries on.
|
|
12
|
+
* - **One replica per message**: a message is claimed with a version-checked update that leases it; a replica that dies mid-send
|
|
13
|
+
* leaves the lease to run out, and the message is sent again (at least once).
|
|
14
|
+
* - **Last-moment checks**: a message whose contact has gone, unsubscribed from the campaign's lists or all email, bounced or was
|
|
15
|
+
* suppressed since is `suppressed`, not sent. A paused campaign's messages wait; a cancelled one's are dropped. A workspace whose
|
|
16
|
+
* sending an administrator stopped (`Workspace.sendingDisabled`) keeps its messages queued, looked at again every `STOPPED_RETRY_MS`.
|
|
17
|
+
* - **Failures**: a temporary refusal is retried with backoff (up to `max_attempts`); a permanent one fails the message, and a
|
|
18
|
+
* refusal of the address itself (a `5.1.x` status) counts as a hard bounce - suppressing it.
|
|
19
|
+
*/
|
|
20
|
+
export declare abstract class SendDispatchJob extends CrmJobBase {
|
|
21
|
+
protected mailTransport?: MailTransport;
|
|
22
|
+
protected rateLimiter?: RateLimiter;
|
|
23
|
+
protected scheduleExpr: string;
|
|
24
|
+
protected batchSize: number;
|
|
25
|
+
protected leaseSeconds: number;
|
|
26
|
+
protected maxAttempts: number;
|
|
27
|
+
protected ratePerMinute: number;
|
|
28
|
+
protected verp: boolean;
|
|
29
|
+
get schedule(): string | undefined;
|
|
30
|
+
run(): Promise<void>;
|
|
31
|
+
/** Whether an administrator stopped the workspace's sending. */
|
|
32
|
+
private sendingStopped;
|
|
33
|
+
/** Sends one message if it may go. `false` stops the run (the rate cap was reached). */
|
|
34
|
+
private dispatch;
|
|
35
|
+
/**
|
|
36
|
+
* What `send` was sent for, as a campaign: its campaign, or - for an automation's message - one made up of the message's own
|
|
37
|
+
* template and sender, tracked, and always going out. `undefined` when the campaign or automation is gone. Reads each once a run.
|
|
38
|
+
*/
|
|
39
|
+
private sourceOf;
|
|
40
|
+
/** Takes `candidate` for this replica, or `undefined` when another took it first. */
|
|
41
|
+
private claim;
|
|
42
|
+
/**
|
|
43
|
+
* The contact of `send` if they may still be mailed: active, not suppressed, and still on one of the campaign's lists (an
|
|
44
|
+
* automation's message goes to its contact whatever their lists).
|
|
45
|
+
*/
|
|
46
|
+
private eligibleContact;
|
|
47
|
+
/** A failed attempt: retried later with backoff while `temporary` and attempts remain, else the message fails. */
|
|
48
|
+
private failed;
|
|
49
|
+
/** Saves `changes` on a claimed message and releases its lease. */
|
|
50
|
+
private finish;
|
|
51
|
+
private recorder;
|
|
52
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CrmJobBase } from "./CrmJobBase.js";
|
|
2
|
+
/**
|
|
3
|
+
* Reminds members of their tasks: once an open task with an assignee is due within `mail:crm:jobs:reminders:lead_minutes`, its
|
|
4
|
+
* assignee gets a `CrmTaskDue` push message (the web client shows it), once - the task is stamped `remindedAt` (version-checked, so
|
|
5
|
+
* one replica sends it). A task given a new due date or assignee is reminded again.
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class TaskReminderJob extends CrmJobBase {
|
|
8
|
+
protected scheduleExpr: string;
|
|
9
|
+
protected leadMinutes: number;
|
|
10
|
+
get schedule(): string | undefined;
|
|
11
|
+
run(): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { WebhookPoster } from "../webhooks/Webhooks.js";
|
|
2
|
+
import { CrmJobBase } from "./CrmJobBase.js";
|
|
3
|
+
/** Failed deliveries in a row after which an endpoint is switched off. */
|
|
4
|
+
export declare const MAX_ENDPOINT_FAILURES = 20;
|
|
5
|
+
/**
|
|
6
|
+
* Posts queued webhook deliveries: each is leased (version-checked), posted (`postWebhook()` - public addresses only, signed), and
|
|
7
|
+
* marked delivered on a 2xx answer. Anything else is retried with backoff (1, 2, 4... minutes) up to `max_attempts`, then failed. An
|
|
8
|
+
* endpoint that fails `MAX_ENDPOINT_FAILURES` deliveries in a row is switched off, its queued deliveries failed. Deliveries older than
|
|
9
|
+
* `retention_days` are deleted.
|
|
10
|
+
*/
|
|
11
|
+
export declare abstract class WebhookDeliveryJob extends CrmJobBase {
|
|
12
|
+
protected scheduleExpr: string;
|
|
13
|
+
protected maxAttempts: number;
|
|
14
|
+
protected retentionDays: number;
|
|
15
|
+
/** How a webhook is posted - a seam for tests. */
|
|
16
|
+
protected post: WebhookPoster;
|
|
17
|
+
get schedule(): string | undefined;
|
|
18
|
+
run(): Promise<void>;
|
|
19
|
+
/** Posts one delivery and records what came of it on it and its endpoint. Returns the endpoint as saved. */
|
|
20
|
+
private deliver;
|
|
21
|
+
private finish;
|
|
22
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { AutomationRunJob } from "../AutomationRunJob.js";
|
|
3
|
+
/** `AutomationRunJob` on a Mongo deployment. */
|
|
4
|
+
export declare class AutomationRunJobMongo extends AutomationRunJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
protected contactRouteClass: any;
|
|
7
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { AutomationTriggerJob } from "../AutomationTriggerJob.js";
|
|
3
|
+
/** `AutomationTriggerJob` on a Mongo deployment. */
|
|
4
|
+
export declare class AutomationTriggerJobMongo extends AutomationTriggerJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { CampaignJob } from "../CampaignJob.js";
|
|
3
|
+
/** `CampaignJob` on a Mongo deployment. */
|
|
4
|
+
export declare class CampaignJobMongo extends CampaignJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { CrmImportJob } from "../CrmImportJob.js";
|
|
3
|
+
/** `CrmImportJob` on a Mongo deployment. */
|
|
4
|
+
export declare class CrmImportJobMongo extends CrmImportJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
protected contactRouteClass: any;
|
|
7
|
+
protected companyRouteClass: any;
|
|
8
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { CrmMailEventJob } from "../CrmMailEventJob.js";
|
|
3
|
+
/** `CrmMailEventJob` on a Mongo deployment. */
|
|
4
|
+
export declare class CrmMailEventJobMongo extends CrmMailEventJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { DateTriggerJob } from "../DateTriggerJob.js";
|
|
3
|
+
/** `DateTriggerJob` on a Mongo deployment. */
|
|
4
|
+
export declare class DateTriggerJobMongo extends DateTriggerJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { SegmentRefreshJob } from "../SegmentRefreshJob.js";
|
|
3
|
+
/** `SegmentRefreshJob` on a Mongo deployment. */
|
|
4
|
+
export declare class SegmentRefreshJobMongo extends SegmentRefreshJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { SendDispatchJob } from "../SendDispatchJob.js";
|
|
3
|
+
/** `SendDispatchJob` on a Mongo deployment. */
|
|
4
|
+
export declare class SendDispatchJobMongo extends SendDispatchJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { TaskReminderJob } from "../TaskReminderJob.js";
|
|
3
|
+
/** `TaskReminderJob` on a Mongo deployment. */
|
|
4
|
+
export declare class TaskReminderJobMongo extends TaskReminderJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { WebhookDeliveryJob } from "../WebhookDeliveryJob.js";
|
|
3
|
+
/** `WebhookDeliveryJob` on a Mongo deployment. */
|
|
4
|
+
export declare class WebhookDeliveryJobMongo extends WebhookDeliveryJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { AutomationRunJob } from "../AutomationRunJob.js";
|
|
3
|
+
/** `AutomationRunJob` on a SQL deployment. */
|
|
4
|
+
export declare class AutomationRunJobSQL extends AutomationRunJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
protected contactRouteClass: any;
|
|
7
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { AutomationTriggerJob } from "../AutomationTriggerJob.js";
|
|
3
|
+
/** `AutomationTriggerJob` on a SQL deployment. */
|
|
4
|
+
export declare class AutomationTriggerJobSQL extends AutomationTriggerJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { CrmImportJob } from "../CrmImportJob.js";
|
|
3
|
+
/** `CrmImportJob` on a SQL deployment. */
|
|
4
|
+
export declare class CrmImportJobSQL extends CrmImportJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
protected contactRouteClass: any;
|
|
7
|
+
protected companyRouteClass: any;
|
|
8
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { CrmMailEventJob } from "../CrmMailEventJob.js";
|
|
3
|
+
/** `CrmMailEventJob` on a SQL deployment. */
|
|
4
|
+
export declare class CrmMailEventJobSQL extends CrmMailEventJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { DateTriggerJob } from "../DateTriggerJob.js";
|
|
3
|
+
/** `DateTriggerJob` on a SQL deployment. */
|
|
4
|
+
export declare class DateTriggerJobSQL extends DateTriggerJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { SegmentRefreshJob } from "../SegmentRefreshJob.js";
|
|
3
|
+
/** `SegmentRefreshJob` on a SQL deployment. */
|
|
4
|
+
export declare class SegmentRefreshJobSQL extends SegmentRefreshJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { SendDispatchJob } from "../SendDispatchJob.js";
|
|
3
|
+
/** `SendDispatchJob` on a SQL deployment. */
|
|
4
|
+
export declare class SendDispatchJobSQL extends SendDispatchJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { TaskReminderJob } from "../TaskReminderJob.js";
|
|
3
|
+
/** `TaskReminderJob` on a SQL deployment. */
|
|
4
|
+
export declare class TaskReminderJobSQL extends TaskReminderJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CrmModelClasses } from "../../models/CrmModelClasses.js";
|
|
2
|
+
import { WebhookDeliveryJob } from "../WebhookDeliveryJob.js";
|
|
3
|
+
/** `WebhookDeliveryJob` on a SQL deployment. */
|
|
4
|
+
export declare class WebhookDeliveryJobSQL extends WebhookDeliveryJob {
|
|
5
|
+
protected classes: CrmModelClasses;
|
|
6
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { BaseEntity, ObjectFactory, type RepoFindOptions, RepoUtils, SimpleEntity } from "@rapidrest/service-core";
|
|
2
|
+
/**
|
|
3
|
+
* The concrete (Mongo or SQL) class of every model the CRM routes and jobs read and write - `MONGO_MODELS` or `SQL_MODELS`. A route or
|
|
4
|
+
* job is backend-agnostic code plus one of these, so its concrete subclasses are one line each.
|
|
5
|
+
*/
|
|
6
|
+
export interface CrmModelClasses {
|
|
7
|
+
workspace: any;
|
|
8
|
+
workspaceMember: any;
|
|
9
|
+
workspaceSender: any;
|
|
10
|
+
contact: any;
|
|
11
|
+
company: any;
|
|
12
|
+
propertyDefinition: any;
|
|
13
|
+
propertyValue: any;
|
|
14
|
+
note: any;
|
|
15
|
+
task: any;
|
|
16
|
+
timelineEvent: any;
|
|
17
|
+
import: any;
|
|
18
|
+
mailingList: any;
|
|
19
|
+
subscription: any;
|
|
20
|
+
suppression: any;
|
|
21
|
+
form: any;
|
|
22
|
+
setting: any;
|
|
23
|
+
template: any;
|
|
24
|
+
savedBlock: any;
|
|
25
|
+
campaign: any;
|
|
26
|
+
outboundSend: any;
|
|
27
|
+
engagementEvent: any;
|
|
28
|
+
segment: any;
|
|
29
|
+
scoringRule: any;
|
|
30
|
+
automation: any;
|
|
31
|
+
automationVersion: any;
|
|
32
|
+
enrollment: any;
|
|
33
|
+
crmEvent: any;
|
|
34
|
+
pipeline: any;
|
|
35
|
+
deal: any;
|
|
36
|
+
webhookEndpoint: any;
|
|
37
|
+
webhookDelivery: any;
|
|
38
|
+
apiKey: any;
|
|
39
|
+
/** `@rapidmx/restapi`'s `Mailbox`. */
|
|
40
|
+
mailbox: any;
|
|
41
|
+
}
|
|
42
|
+
/** The name of one of `CrmModelClasses`. */
|
|
43
|
+
export type CrmModelName = keyof CrmModelClasses;
|
|
44
|
+
/**
|
|
45
|
+
* `RepoUtils` whose `find()` pages the same way on both backends. On MongoDB `RepoUtils.find()` takes the page size from its options'
|
|
46
|
+
* `limit`, but on SQL from the *query's* `limit` (falling back to 100) - so a caller paging by the options alone silently got 100 rows
|
|
47
|
+
* a page on SQL. This copies the options' `limit` into the query when the query has none.
|
|
48
|
+
*
|
|
49
|
+
* It also makes every sorted query's order total by adding `uid` as a last sort key, so records with equal sort values (created in the
|
|
50
|
+
* same millisecond, the same score) come back in the same order on every page instead of repeating or going missing between pages.
|
|
51
|
+
*/
|
|
52
|
+
export declare class CrmRepoUtils<T extends BaseEntity | SimpleEntity> extends RepoUtils<T> {
|
|
53
|
+
find(query: any, options?: RepoFindOptions): Promise<T[]>;
|
|
54
|
+
}
|
|
55
|
+
/** Creates (once each, on first use) the `RepoUtils` (`CrmRepoUtils`) of every model in a `CrmModelClasses`. */
|
|
56
|
+
export declare class CrmRepos {
|
|
57
|
+
private readonly objectFactory;
|
|
58
|
+
readonly classes: CrmModelClasses;
|
|
59
|
+
private readonly repos;
|
|
60
|
+
constructor(objectFactory: ObjectFactory, classes: CrmModelClasses);
|
|
61
|
+
/** The `RepoUtils` of `name`'s model. */
|
|
62
|
+
get<T = any>(name: CrmModelName): Promise<RepoUtils<T & any>>;
|
|
63
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BaseMongoEntity } from "@rapidrest/service-core";
|
|
2
|
+
import { ApiKey, ApiKeyScope } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Implementation of the `ApiKey` interface for storage in a MongoDB database. If SQL is desired, please use
|
|
5
|
+
* `models.sql.ApiKeySQL` instead.
|
|
6
|
+
*
|
|
7
|
+
* @author Jean-Philippe Steinmetz
|
|
8
|
+
*/
|
|
9
|
+
export declare class ApiKeyMongo extends BaseMongoEntity implements ApiKey {
|
|
10
|
+
workspaceUid: string;
|
|
11
|
+
name: string;
|
|
12
|
+
prefix: string;
|
|
13
|
+
hash: string;
|
|
14
|
+
scopes: ApiKeyScope[];
|
|
15
|
+
lastUsedAt?: Date;
|
|
16
|
+
revokedAt?: Date;
|
|
17
|
+
createdByUserUid: string;
|
|
18
|
+
constructor(other?: Partial<ApiKeyMongo>);
|
|
19
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BaseMongoEntity } from "@rapidrest/service-core";
|
|
2
|
+
import { Automation, AutomationReentry, AutomationStatus } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Implementation of the `Automation` interface for storage in a MongoDB database. If SQL is desired, please use
|
|
5
|
+
* `models.sql.AutomationSQL` instead.
|
|
6
|
+
*
|
|
7
|
+
* @author Jean-Philippe Steinmetz
|
|
8
|
+
*/
|
|
9
|
+
export declare class AutomationMongo extends BaseMongoEntity implements Automation {
|
|
10
|
+
workspaceUid: string;
|
|
11
|
+
name: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
status: AutomationStatus;
|
|
14
|
+
graph: unknown;
|
|
15
|
+
reentry: AutomationReentry;
|
|
16
|
+
goalFilter?: unknown;
|
|
17
|
+
publishedVersionUid?: string;
|
|
18
|
+
publishedAt?: Date;
|
|
19
|
+
createdByUserUid: string;
|
|
20
|
+
dateCheckedOn?: string;
|
|
21
|
+
constructor(other?: Partial<AutomationMongo>);
|
|
22
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BaseMongoEntity } from "@rapidrest/service-core";
|
|
2
|
+
import { AutomationVersion } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Implementation of the `AutomationVersion` interface for storage in a MongoDB database. If SQL is desired, please use
|
|
5
|
+
* `models.sql.AutomationVersionSQL` instead.
|
|
6
|
+
*
|
|
7
|
+
* @author Jean-Philippe Steinmetz
|
|
8
|
+
*/
|
|
9
|
+
export declare class AutomationVersionMongo extends BaseMongoEntity implements AutomationVersion {
|
|
10
|
+
workspaceUid: string;
|
|
11
|
+
automationUid: string;
|
|
12
|
+
versionNumber: number;
|
|
13
|
+
graph: unknown;
|
|
14
|
+
publishedByUserUid: string;
|
|
15
|
+
constructor(other?: Partial<AutomationVersionMongo>);
|
|
16
|
+
}
|