@aglyn/plugins-crm 1.0.0-beta.221 → 1.0.0-beta.223
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/README.md +2 -1
- package/package.json +13 -13
- package/src/lib/components/activity-list.js +12 -5
- package/src/lib/components/activity-list.js.map +1 -1
- package/src/lib/components/companies-bulk-bar.d.ts +1 -4
- package/src/lib/components/companies-bulk-bar.js +7 -20
- package/src/lib/components/companies-bulk-bar.js.map +1 -1
- package/src/lib/components/companies-section.d.ts +3 -3
- package/src/lib/components/companies-section.js +149 -46
- package/src/lib/components/companies-section.js.map +1 -1
- package/src/lib/components/company-edit-drawer.js +281 -20
- package/src/lib/components/company-edit-drawer.js.map +1 -1
- package/src/lib/components/company-properties-card.js +99 -8
- package/src/lib/components/company-properties-card.js.map +1 -1
- package/src/lib/components/contact-detail-page.js +3 -1
- package/src/lib/components/contact-detail-page.js.map +1 -1
- package/src/lib/components/contact-merge-dialog.js +33 -10
- package/src/lib/components/contact-merge-dialog.js.map +1 -1
- package/src/lib/components/contact-properties-card.d.ts +0 -69
- package/src/lib/components/contact-properties-card.js +350 -60
- package/src/lib/components/contact-properties-card.js.map +1 -1
- package/src/lib/components/contact-reports-to-field.d.ts +46 -0
- package/src/lib/components/contact-reports-to-field.js +67 -0
- package/src/lib/components/contact-reports-to-field.js.map +1 -0
- package/src/lib/components/contacts-bulk-bar.d.ts +1 -8
- package/src/lib/components/contacts-bulk-bar.js +7 -19
- package/src/lib/components/contacts-bulk-bar.js.map +1 -1
- package/src/lib/components/contacts-section.js +46 -33
- package/src/lib/components/contacts-section.js.map +1 -1
- package/src/lib/components/crm-call-actions.d.ts +10 -0
- package/src/lib/components/crm-call-actions.js +26 -9
- package/src/lib/components/crm-call-actions.js.map +1 -1
- package/src/lib/components/crm-next-activity-column.js +1 -1
- package/src/lib/components/crm-next-activity-column.js.map +1 -1
- package/src/lib/components/crm-record-picker.d.ts +15 -0
- package/src/lib/components/crm-record-picker.js +16 -10
- package/src/lib/components/crm-record-picker.js.map +1 -1
- package/src/lib/components/crm-transfer-buttons.d.ts +54 -0
- package/src/lib/components/crm-transfer-buttons.js +167 -0
- package/src/lib/components/crm-transfer-buttons.js.map +1 -0
- package/src/lib/components/deal-contact-roles-card.d.ts +46 -0
- package/src/lib/components/deal-contact-roles-card.js +368 -0
- package/src/lib/components/deal-contact-roles-card.js.map +1 -0
- package/src/lib/components/deal-detail-page.d.ts +3 -2
- package/src/lib/components/deal-detail-page.js +25 -6
- package/src/lib/components/deal-detail-page.js.map +1 -1
- package/src/lib/components/deal-edit-drawer.d.ts +10 -0
- package/src/lib/components/deal-edit-drawer.js +219 -10
- package/src/lib/components/deal-edit-drawer.js.map +1 -1
- package/src/lib/components/deal-properties-card.d.ts +7 -0
- package/src/lib/components/deal-properties-card.js +34 -3
- package/src/lib/components/deal-properties-card.js.map +1 -1
- package/src/lib/components/deal-stage-card.d.ts +4 -0
- package/src/lib/components/deal-stage-card.js +10 -2
- package/src/lib/components/deal-stage-card.js.map +1 -1
- package/src/lib/components/deals-bulk-bar.d.ts +0 -3
- package/src/lib/components/deals-bulk-bar.js +7 -20
- package/src/lib/components/deals-bulk-bar.js.map +1 -1
- package/src/lib/components/deals-section.d.ts +3 -3
- package/src/lib/components/deals-section.js +123 -63
- package/src/lib/components/deals-section.js.map +1 -1
- package/src/lib/components/fields-section.js +31 -17
- package/src/lib/components/fields-section.js.map +1 -1
- package/src/lib/components/lead-convert-dialog.d.ts +4 -0
- package/src/lib/components/lead-convert-dialog.js +23 -1
- package/src/lib/components/lead-convert-dialog.js.map +1 -1
- package/src/lib/components/lead-detail-page.js +8 -2
- package/src/lib/components/lead-detail-page.js.map +1 -1
- package/src/lib/components/lead-profile-fields.d.ts +71 -0
- package/src/lib/components/lead-profile-fields.js +386 -0
- package/src/lib/components/lead-profile-fields.js.map +1 -0
- package/src/lib/components/lead-properties-card.d.ts +2 -1
- package/src/lib/components/lead-properties-card.js +85 -176
- package/src/lib/components/lead-properties-card.js.map +1 -1
- package/src/lib/components/lead-source-select.d.ts +4 -23
- package/src/lib/components/lead-source-select.js +9 -73
- package/src/lib/components/lead-source-select.js.map +1 -1
- package/src/lib/components/lead-status-chip.d.ts +9 -3
- package/src/lib/components/lead-status-chip.js +8 -4
- package/src/lib/components/lead-status-chip.js.map +1 -1
- package/src/lib/components/lead-status-options.d.ts +20 -0
- package/src/lib/components/lead-status-options.js +51 -0
- package/src/lib/components/lead-status-options.js.map +1 -0
- package/src/lib/components/lead-unqualify-dialog.d.ts +5 -0
- package/src/lib/components/lead-unqualify-dialog.js +50 -18
- package/src/lib/components/lead-unqualify-dialog.js.map +1 -1
- package/src/lib/components/leads-bulk-bar.d.ts +0 -3
- package/src/lib/components/leads-bulk-bar.js +29 -29
- package/src/lib/components/leads-bulk-bar.js.map +1 -1
- package/src/lib/components/leads-section.js +120 -68
- package/src/lib/components/leads-section.js.map +1 -1
- package/src/lib/components/linked-deals-card.d.ts +4 -0
- package/src/lib/components/linked-deals-card.js +47 -3
- package/src/lib/components/linked-deals-card.js.map +1 -1
- package/src/lib/components/log-activity-dialog.js +43 -3
- package/src/lib/components/log-activity-dialog.js.map +1 -1
- package/src/lib/components/new-contact-drawer.d.ts +8 -0
- package/src/lib/components/new-contact-drawer.js +108 -6
- package/src/lib/components/new-contact-drawer.js.map +1 -1
- package/src/lib/components/new-lead-drawer.d.ts +9 -2
- package/src/lib/components/new-lead-drawer.js +88 -121
- package/src/lib/components/new-lead-drawer.js.map +1 -1
- package/src/lib/components/picklist-select.d.ts +36 -0
- package/src/lib/components/picklist-select.js +114 -0
- package/src/lib/components/picklist-select.js.map +1 -0
- package/src/lib/components/picklist-values-card.d.ts +34 -0
- package/src/lib/components/{lead-source-values-card.js → picklist-values-card.js} +241 -58
- package/src/lib/components/picklist-values-card.js.map +1 -0
- package/src/lib/components/pipeline-stages-dialog.d.ts +7 -0
- package/src/lib/components/pipeline-stages-dialog.js +26 -4
- package/src/lib/components/pipeline-stages-dialog.js.map +1 -1
- package/src/lib/components/pipelines-dialog.js +15 -6
- package/src/lib/components/pipelines-dialog.js.map +1 -1
- package/src/lib/components/recent-activity-feed.js +20 -5
- package/src/lib/components/recent-activity-feed.js.map +1 -1
- package/src/lib/components/recipes-card.js +4 -2
- package/src/lib/components/recipes-card.js.map +1 -1
- package/src/lib/components/record-tasks-card.js +15 -8
- package/src/lib/components/record-tasks-card.js.map +1 -1
- package/src/lib/components/reports/forecast-card.d.ts +6 -0
- package/src/lib/components/reports/forecast-card.js +101 -3
- package/src/lib/components/reports/forecast-card.js.map +1 -1
- package/src/lib/components/reports/lead-funnel-card.d.ts +12 -0
- package/src/lib/components/reports/lead-funnel-card.js +9 -5
- package/src/lib/components/reports/lead-funnel-card.js.map +1 -1
- package/src/lib/components/reports/lead-source-card.d.ts +23 -0
- package/src/lib/components/reports/lead-source-card.js +318 -0
- package/src/lib/components/reports/lead-source-card.js.map +1 -0
- package/src/lib/components/reports/pipeline-card.js +2 -1
- package/src/lib/components/reports/pipeline-card.js.map +1 -1
- package/src/lib/components/reports/report-export.js +1 -1
- package/src/lib/components/reports/report-export.js.map +1 -1
- package/src/lib/components/reports-section.js +8 -0
- package/src/lib/components/reports-section.js.map +1 -1
- package/src/lib/components/sharing-rule-drawer.d.ts +5 -0
- package/src/lib/components/sharing-rule-drawer.js +108 -19
- package/src/lib/components/sharing-rule-drawer.js.map +1 -1
- package/src/lib/components/sharing-rules-card.js +11 -3
- package/src/lib/components/sharing-rules-card.js.map +1 -1
- package/src/lib/components/task-cells.d.ts +9 -1
- package/src/lib/components/task-cells.js +9 -4
- package/src/lib/components/task-cells.js.map +1 -1
- package/src/lib/components/task-edit-drawer.js +111 -43
- package/src/lib/components/task-edit-drawer.js.map +1 -1
- package/src/lib/components/tasks-bulk-bar.d.ts +0 -3
- package/src/lib/components/tasks-bulk-bar.js +7 -20
- package/src/lib/components/tasks-bulk-bar.js.map +1 -1
- package/src/lib/components/tasks-calendar.d.ts +3 -0
- package/src/lib/components/tasks-calendar.js +8 -1
- package/src/lib/components/tasks-calendar.js.map +1 -1
- package/src/lib/components/tasks-section.d.ts +3 -3
- package/src/lib/components/tasks-section.js +58 -43
- package/src/lib/components/tasks-section.js.map +1 -1
- package/src/lib/constants/api-routes.d.ts +2 -9
- package/src/lib/constants/api-routes.js +1 -7
- package/src/lib/constants/api-routes.js.map +1 -1
- package/src/lib/constants/bundle-common.d.ts +6 -0
- package/src/lib/constants/bundle-common.js +11 -0
- package/src/lib/constants/bundle-common.js.map +1 -1
- package/src/lib/constants/company-filters.d.ts +14 -0
- package/src/lib/constants/company-filters.js +51 -1
- package/src/lib/constants/company-filters.js.map +1 -1
- package/src/lib/constants/contact-filters.d.ts +2 -0
- package/src/lib/constants/contact-filters.js +18 -1
- package/src/lib/constants/contact-filters.js.map +1 -1
- package/src/lib/constants/deal-filters.d.ts +22 -1
- package/src/lib/constants/deal-filters.js +67 -4
- package/src/lib/constants/deal-filters.js.map +1 -1
- package/src/lib/declarations.console-server.d.ts +3 -0
- package/src/lib/declarations.console-server.js +35 -0
- package/src/lib/declarations.console-server.js.map +1 -1
- package/src/lib/declarations.d.ts +26 -0
- package/src/lib/declarations.js +35 -0
- package/src/lib/declarations.js.map +1 -0
- package/src/lib/declarations.server.d.ts +11 -0
- package/src/lib/declarations.server.js +97 -1
- package/src/lib/declarations.server.js.map +1 -1
- package/src/lib/hooks/use-company-picklists.d.ts +15 -0
- package/src/lib/hooks/use-company-picklists.js +55 -0
- package/src/lib/hooks/use-company-picklists.js.map +1 -0
- package/src/lib/hooks/use-crm-picklist.d.ts +25 -0
- package/src/lib/hooks/use-crm-picklist.js +53 -0
- package/src/lib/hooks/use-crm-picklist.js.map +1 -0
- package/src/lib/hooks/use-crm-record-names.d.ts +16 -0
- package/src/lib/hooks/use-crm-record-names.js +45 -19
- package/src/lib/hooks/use-crm-record-names.js.map +1 -1
- package/src/lib/hooks/use-crm-task-picklists.d.ts +11 -0
- package/src/lib/hooks/use-crm-task-picklists.js +45 -0
- package/src/lib/hooks/use-crm-task-picklists.js.map +1 -0
- package/src/lib/hooks/use-deals.d.ts +14 -0
- package/src/lib/hooks/use-deals.js +29 -0
- package/src/lib/hooks/use-deals.js.map +1 -1
- package/src/lib/hooks/use-lead-picklists.d.ts +14 -0
- package/src/lib/hooks/use-lead-picklists.js +46 -0
- package/src/lib/hooks/use-lead-picklists.js.map +1 -0
- package/src/lib/hooks/use-lead-source-picklist.d.ts +5 -19
- package/src/lib/hooks/use-lead-source-picklist.js +12 -22
- package/src/lib/hooks/use-lead-source-picklist.js.map +1 -1
- package/src/lib/hooks/use-lead-status-picklist.d.ts +9 -0
- package/src/lib/hooks/use-lead-status-picklist.js +40 -0
- package/src/lib/hooks/use-lead-status-picklist.js.map +1 -0
- package/src/lib/model/companies.d.ts +32 -3
- package/src/lib/model/companies.js +133 -16
- package/src/lib/model/companies.js.map +1 -1
- package/src/lib/model/contact-merge.d.ts +27 -3
- package/src/lib/model/contact-merge.js +81 -7
- package/src/lib/model/contact-merge.js.map +1 -1
- package/src/lib/model/contact-record.d.ts +17 -0
- package/src/lib/model/contact-record.js +17 -2
- package/src/lib/model/contact-record.js.map +1 -1
- package/src/lib/model/contact-update.d.ts +31 -2
- package/src/lib/model/contact-update.js +14 -0
- package/src/lib/model/contact-update.js.map +1 -1
- package/src/lib/model/crm-list-query.d.ts +5 -0
- package/src/lib/model/crm-list-query.js +8 -0
- package/src/lib/model/crm-list-query.js.map +1 -1
- package/src/lib/model/crm-next-activity.d.ts +107 -0
- package/src/lib/model/crm-next-activity.js +140 -0
- package/src/lib/model/crm-next-activity.js.map +1 -0
- package/src/lib/model/crm-recipes.d.ts +40 -0
- package/src/lib/model/crm-recipes.js +259 -0
- package/src/lib/model/crm-recipes.js.map +1 -0
- package/src/lib/model/crm-record-counts.d.ts +36 -0
- package/src/lib/model/crm-record-counts.js +54 -0
- package/src/lib/model/crm-record-counts.js.map +1 -0
- package/src/lib/model/crm-record-lists.d.ts +23 -0
- package/src/lib/model/crm-record-lists.js +161 -0
- package/src/lib/model/crm-record-lists.js.map +1 -0
- package/src/lib/model/crm-reports.d.ts +73 -3
- package/src/lib/model/crm-reports.js +120 -1
- package/src/lib/model/crm-reports.js.map +1 -1
- package/src/lib/model/crm-sharing.d.ts +21 -3
- package/src/lib/model/crm-sharing.js +27 -6
- package/src/lib/model/crm-sharing.js.map +1 -1
- package/src/lib/model/crm-task-reminders.d.ts +152 -0
- package/src/lib/model/crm-task-reminders.js +161 -0
- package/src/lib/model/crm-task-reminders.js.map +1 -0
- package/src/lib/model/deal-board-model.d.ts +8 -2
- package/src/lib/model/deal-board-model.js +15 -2
- package/src/lib/model/deal-board-model.js.map +1 -1
- package/src/lib/model/deal-contact-roles.d.ts +45 -0
- package/src/lib/model/deal-contact-roles.js +73 -0
- package/src/lib/model/deal-contact-roles.js.map +1 -0
- package/src/lib/model/deal-form-model.d.ts +56 -0
- package/src/lib/model/deal-form-model.js +79 -7
- package/src/lib/model/deal-form-model.js.map +1 -1
- package/src/lib/model/download-text-file.d.ts +23 -0
- package/src/lib/model/download-text-file.js +34 -0
- package/src/lib/model/download-text-file.js.map +1 -0
- package/src/lib/model/lead-filters.d.ts +36 -2
- package/src/lib/model/lead-filters.js +123 -2
- package/src/lib/model/lead-filters.js.map +1 -1
- package/src/lib/model/lead-source-direction.d.ts +38 -0
- package/src/lib/model/lead-source-direction.js +52 -0
- package/src/lib/model/lead-source-direction.js.map +1 -0
- package/src/lib/model/next-activity.d.ts +1 -1
- package/src/lib/model/next-activity.js.map +1 -1
- package/src/lib/model/picklist-values.d.ts +119 -0
- package/src/lib/model/picklist-values.js +256 -0
- package/src/lib/model/picklist-values.js.map +1 -0
- package/src/lib/model/record-facts-disclosed.d.ts +81 -0
- package/src/lib/model/record-facts-disclosed.js +281 -0
- package/src/lib/model/record-facts-disclosed.js.map +1 -0
- package/src/lib/model/record-facts.d.ts +215 -34
- package/src/lib/model/record-facts.js +307 -128
- package/src/lib/model/record-facts.js.map +1 -1
- package/src/lib/model/task-picklists.d.ts +52 -0
- package/src/lib/model/task-picklists.js +83 -0
- package/src/lib/model/task-picklists.js.map +1 -0
- package/src/lib/model/task-routes.d.ts +13 -0
- package/src/lib/model/task-routes.js +23 -4
- package/src/lib/model/task-routes.js.map +1 -1
- package/src/lib/plan-entitlements.js +6 -4
- package/src/lib/plan-entitlements.js.map +1 -1
- package/src/lib/plugin.js +17 -0
- package/src/lib/plugin.js.map +1 -1
- package/src/lib/server/api-v1/contacts.js +220 -14
- package/src/lib/server/api-v1/contacts.js.map +1 -1
- package/src/lib/server/api-v1/crm-activities.js +14 -1
- package/src/lib/server/api-v1/crm-activities.js.map +1 -1
- package/src/lib/server/api-v1/crm-companies.js +123 -14
- package/src/lib/server/api-v1/crm-companies.js.map +1 -1
- package/src/lib/server/api-v1/crm-deals.js +291 -26
- package/src/lib/server/api-v1/crm-deals.js.map +1 -1
- package/src/lib/server/api-v1/crm-leads.js +144 -38
- package/src/lib/server/api-v1/crm-leads.js.map +1 -1
- package/src/lib/server/api-v1/crm-pipelines.d.ts +6 -0
- package/src/lib/server/api-v1/crm-pipelines.js +8 -2
- package/src/lib/server/api-v1/crm-pipelines.js.map +1 -1
- package/src/lib/server/api-v1/crm-tasks.js +78 -34
- package/src/lib/server/api-v1/crm-tasks.js.map +1 -1
- package/src/lib/server/api-v1/openapi.d.ts +0 -11
- package/src/lib/server/api-v1/openapi.js +171 -16
- package/src/lib/server/api-v1/openapi.js.map +1 -1
- package/src/lib/server/assign-contact-owner.d.ts +188 -0
- package/src/lib/server/assign-contact-owner.js +446 -0
- package/src/lib/server/assign-contact-owner.js.map +1 -0
- package/src/lib/server/associate-company-by-domain.d.ts +70 -0
- package/src/lib/server/associate-company-by-domain.js +153 -0
- package/src/lib/server/associate-company-by-domain.js.map +1 -0
- package/src/lib/server/automation-steps.d.ts +140 -0
- package/src/lib/server/automation-steps.js +669 -0
- package/src/lib/server/automation-steps.js.map +1 -0
- package/src/lib/server/capture-contact.d.ts +17 -0
- package/src/lib/server/capture-contact.js +95 -26
- package/src/lib/server/capture-contact.js.map +1 -1
- package/src/lib/server/capture-host-contact.d.ts +104 -0
- package/src/lib/server/capture-host-contact.js +151 -0
- package/src/lib/server/capture-host-contact.js.map +1 -0
- package/src/lib/server/company-children.d.ts +25 -0
- package/src/lib/server/company-children.js +42 -0
- package/src/lib/server/company-children.js.map +1 -0
- package/src/lib/server/company-delete.d.ts +18 -0
- package/src/lib/server/company-delete.js +44 -21
- package/src/lib/server/company-delete.js.map +1 -1
- package/src/lib/server/contact-email-history.js +21 -19
- package/src/lib/server/contact-email-history.js.map +1 -1
- package/src/lib/server/contact-remove.js +27 -2
- package/src/lib/server/contact-remove.js.map +1 -1
- package/src/lib/server/contact-reports-to.d.ts +61 -0
- package/src/lib/server/contact-reports-to.js +114 -0
- package/src/lib/server/contact-reports-to.js.map +1 -0
- package/src/lib/server/contact-update.d.ts +42 -1
- package/src/lib/server/contact-update.js +204 -23
- package/src/lib/server/contact-update.js.map +1 -1
- package/src/lib/server/convert-host-lead.d.ts +46 -1
- package/src/lib/server/convert-host-lead.js +173 -15
- package/src/lib/server/convert-host-lead.js.map +1 -1
- package/src/lib/server/convert-open-lead.js +12 -5
- package/src/lib/server/convert-open-lead.js.map +1 -1
- package/src/lib/server/crm-email-activity.d.ts +118 -0
- package/src/lib/server/crm-email-activity.js +148 -0
- package/src/lib/server/crm-email-activity.js.map +1 -0
- package/src/lib/server/crm-inbound-email.js +1 -1
- package/src/lib/server/crm-inbound-email.js.map +1 -1
- package/src/lib/server/crm-next-activity.d.ts +74 -0
- package/src/lib/server/crm-next-activity.js +194 -0
- package/src/lib/server/crm-next-activity.js.map +1 -0
- package/src/lib/server/crm-record-indexes.d.ts +45 -0
- package/src/lib/server/crm-record-indexes.js +78 -0
- package/src/lib/server/crm-record-indexes.js.map +1 -0
- package/src/lib/server/crm-sharing.d.ts +9 -1
- package/src/lib/server/crm-sharing.js +23 -3
- package/src/lib/server/crm-sharing.js.map +1 -1
- package/src/lib/server/deal-contact-roles.d.ts +27 -0
- package/src/lib/server/deal-contact-roles.js +89 -0
- package/src/lib/server/deal-contact-roles.js.map +1 -0
- package/src/lib/server/email-send.js +2 -1
- package/src/lib/server/email-send.js.map +1 -1
- package/src/lib/server/lead-convert.d.ts +5 -0
- package/src/lib/server/lead-convert.js +19 -3
- package/src/lib/server/lead-convert.js.map +1 -1
- package/src/lib/server/lead-create.d.ts +17 -2
- package/src/lib/server/lead-create.js +46 -14
- package/src/lib/server/lead-create.js.map +1 -1
- package/src/lib/server/lead-nurturing.d.ts +6 -0
- package/src/lib/server/lead-nurturing.js +57 -20
- package/src/lib/server/lead-nurturing.js.map +1 -1
- package/src/lib/server/lead-picklists.d.ts +35 -0
- package/src/lib/server/lead-picklists.js +52 -0
- package/src/lib/server/lead-picklists.js.map +1 -0
- package/src/lib/server/lead-source-picklist.d.ts +1 -13
- package/src/lib/server/lead-source-picklist.js +6 -33
- package/src/lib/server/lead-source-picklist.js.map +1 -1
- package/src/lib/server/merge-contacts.js +23 -5
- package/src/lib/server/merge-contacts.js.map +1 -1
- package/src/lib/server/next-activity-routes.js +2 -1
- package/src/lib/server/next-activity-routes.js.map +1 -1
- package/src/lib/server/person-eraser.d.ts +53 -0
- package/src/lib/server/person-eraser.js +149 -0
- package/src/lib/server/person-eraser.js.map +1 -0
- package/src/lib/server/person-records.d.ts +69 -0
- package/src/lib/server/person-records.js +317 -0
- package/src/lib/server/person-records.js.map +1 -0
- package/src/lib/server/person-refund.d.ts +97 -0
- package/src/lib/server/person-refund.js +221 -0
- package/src/lib/server/person-refund.js.map +1 -0
- package/src/lib/server/picklist-values.d.ts +21 -0
- package/src/lib/server/picklist-values.js +308 -0
- package/src/lib/server/picklist-values.js.map +1 -0
- package/src/lib/server/read-picklist.d.ts +44 -0
- package/src/lib/server/read-picklist.js +65 -0
- package/src/lib/server/read-picklist.js.map +1 -0
- package/src/lib/server/recipe-routes.js +22 -8
- package/src/lib/server/recipe-routes.js.map +1 -1
- package/src/lib/server/record-email-state.js +7 -1
- package/src/lib/server/record-email-state.js.map +1 -1
- package/src/lib/server/record-facts.d.ts +3 -0
- package/src/lib/server/record-facts.js +233 -31
- package/src/lib/server/record-facts.js.map +1 -1
- package/src/lib/server/record-origin.d.ts +27 -0
- package/src/lib/server/record-origin.js +104 -0
- package/src/lib/server/record-origin.js.map +1 -0
- package/src/lib/server/record-timeline.js +40 -3
- package/src/lib/server/record-timeline.js.map +1 -1
- package/src/lib/server/suite-gate.js +4 -3
- package/src/lib/server/suite-gate.js.map +1 -1
- package/src/lib/server/task-reminders-route.js +2 -1
- package/src/lib/server/task-reminders-route.js.map +1 -1
- package/src/lib/server/task-routes.js +33 -17
- package/src/lib/server/task-routes.js.map +1 -1
- package/src/lib/server-deal-stage.d.ts +5 -1
- package/src/lib/server-deal-stage.js +10 -5
- package/src/lib/server-deal-stage.js.map +1 -1
- package/src/lib/server.d.ts +8 -3
- package/src/lib/server.js +47 -43
- package/src/lib/server.js.map +1 -1
- package/src/lib/testing/memory-firestore.d.ts +55 -0
- package/src/lib/testing/memory-firestore.js +335 -0
- package/src/lib/testing/memory-firestore.js.map +1 -0
- package/src/lib/testing/stand-in-email-send-index.d.ts +25 -0
- package/src/lib/testing/stand-in-email-send-index.js +49 -0
- package/src/lib/testing/stand-in-email-send-index.js.map +1 -0
- package/src/lib/transfer/activities.d.ts +30 -0
- package/src/lib/transfer/activities.js +132 -0
- package/src/lib/transfer/activities.js.map +1 -0
- package/src/lib/transfer/aliases.d.ts +22 -0
- package/src/lib/transfer/aliases.js +1342 -0
- package/src/lib/transfer/aliases.js.map +1 -0
- package/src/lib/transfer/common.d.ts +222 -0
- package/src/lib/transfer/common.js +832 -0
- package/src/lib/transfer/common.js.map +1 -0
- package/src/lib/transfer/companies.d.ts +43 -0
- package/src/lib/transfer/companies.js +549 -0
- package/src/lib/transfer/companies.js.map +1 -0
- package/src/lib/transfer/contacts.d.ts +31 -0
- package/src/lib/transfer/contacts.js +727 -0
- package/src/lib/transfer/contacts.js.map +1 -0
- package/src/lib/transfer/deals.d.ts +66 -0
- package/src/lib/transfer/deals.js +698 -0
- package/src/lib/transfer/deals.js.map +1 -0
- package/src/lib/transfer/email-templates-package.d.ts +40 -0
- package/src/lib/transfer/email-templates-package.js +76 -0
- package/src/lib/transfer/email-templates-package.js.map +1 -0
- package/src/lib/transfer/email-templates-package.server.d.ts +32 -0
- package/src/lib/transfer/email-templates-package.server.js +176 -0
- package/src/lib/transfer/email-templates-package.server.js.map +1 -0
- package/src/lib/transfer/fields.d.ts +102 -0
- package/src/lib/transfer/fields.js +1755 -0
- package/src/lib/transfer/fields.js.map +1 -0
- package/src/lib/transfer/leads.d.ts +30 -0
- package/src/lib/transfer/leads.js +582 -0
- package/src/lib/transfer/leads.js.map +1 -0
- package/src/lib/transfer/pipelines.d.ts +21 -0
- package/src/lib/transfer/pipelines.js +172 -0
- package/src/lib/transfer/pipelines.js.map +1 -0
- package/src/lib/transfer/register.d.ts +47 -0
- package/src/lib/transfer/register.js +277 -0
- package/src/lib/transfer/register.js.map +1 -0
- package/src/lib/transfer/tasks.d.ts +30 -0
- package/src/lib/transfer/tasks.js +418 -0
- package/src/lib/transfer/tasks.js.map +1 -0
- package/src/lib/transfer/ui.d.ts +20 -0
- package/src/lib/transfer/ui.js +42 -0
- package/src/lib/transfer/ui.js.map +1 -0
- package/src/lib/components/company-import-drawer.d.ts +0 -42
- package/src/lib/components/company-import-drawer.js +0 -99
- package/src/lib/components/company-import-drawer.js.map +0 -1
- package/src/lib/components/contact-import-drawer.d.ts +0 -46
- package/src/lib/components/contact-import-drawer.js +0 -149
- package/src/lib/components/contact-import-drawer.js.map +0 -1
- package/src/lib/components/crm-export-all-button.d.ts +0 -39
- package/src/lib/components/crm-export-all-button.js +0 -98
- package/src/lib/components/crm-export-all-button.js.map +0 -1
- package/src/lib/components/csv-import-drawer.d.ts +0 -139
- package/src/lib/components/csv-import-drawer.js +0 -757
- package/src/lib/components/csv-import-drawer.js.map +0 -1
- package/src/lib/components/deal-import-drawer.d.ts +0 -24
- package/src/lib/components/deal-import-drawer.js +0 -83
- package/src/lib/components/deal-import-drawer.js.map +0 -1
- package/src/lib/components/lead-import-drawer.d.ts +0 -27
- package/src/lib/components/lead-import-drawer.js +0 -118
- package/src/lib/components/lead-import-drawer.js.map +0 -1
- package/src/lib/components/lead-source-values-card.d.ts +0 -27
- package/src/lib/components/lead-source-values-card.js.map +0 -1
- package/src/lib/components/task-import-drawer.d.ts +0 -24
- package/src/lib/components/task-import-drawer.js +0 -82
- package/src/lib/components/task-import-drawer.js.map +0 -1
- package/src/lib/model/companies-csv.d.ts +0 -36
- package/src/lib/model/companies-csv.js +0 -38
- package/src/lib/model/companies-csv.js.map +0 -1
- package/src/lib/model/contacts-csv.d.ts +0 -54
- package/src/lib/model/contacts-csv.js +0 -67
- package/src/lib/model/contacts-csv.js.map +0 -1
- package/src/lib/model/crm-company-import.d.ts +0 -154
- package/src/lib/model/crm-company-import.js +0 -331
- package/src/lib/model/crm-company-import.js.map +0 -1
- package/src/lib/model/crm-csv.d.ts +0 -239
- package/src/lib/model/crm-csv.js +0 -467
- package/src/lib/model/crm-csv.js.map +0 -1
- package/src/lib/model/crm-deal-import.d.ts +0 -112
- package/src/lib/model/crm-deal-import.js +0 -263
- package/src/lib/model/crm-deal-import.js.map +0 -1
- package/src/lib/model/crm-import.d.ts +0 -250
- package/src/lib/model/crm-import.js +0 -467
- package/src/lib/model/crm-import.js.map +0 -1
- package/src/lib/model/crm-lead-import.d.ts +0 -138
- package/src/lib/model/crm-lead-import.js +0 -446
- package/src/lib/model/crm-lead-import.js.map +0 -1
- package/src/lib/model/crm-task-import.d.ts +0 -94
- package/src/lib/model/crm-task-import.js +0 -275
- package/src/lib/model/crm-task-import.js.map +0 -1
- package/src/lib/model/deals-csv.d.ts +0 -32
- package/src/lib/model/deals-csv.js +0 -36
- package/src/lib/model/deals-csv.js.map +0 -1
- package/src/lib/model/import-column-shapes.d.ts +0 -36
- package/src/lib/model/import-column-shapes.js +0 -76
- package/src/lib/model/import-column-shapes.js.map +0 -1
- package/src/lib/model/lead-source-values.d.ts +0 -82
- package/src/lib/model/lead-source-values.js +0 -149
- package/src/lib/model/lead-source-values.js.map +0 -1
- package/src/lib/model/leads-csv.d.ts +0 -40
- package/src/lib/model/leads-csv.js +0 -40
- package/src/lib/model/leads-csv.js.map +0 -1
- package/src/lib/model/tasks-csv.d.ts +0 -28
- package/src/lib/model/tasks-csv.js +0 -28
- package/src/lib/model/tasks-csv.js.map +0 -1
- package/src/lib/server/companies-import.d.ts +0 -57
- package/src/lib/server/companies-import.js +0 -242
- package/src/lib/server/companies-import.js.map +0 -1
- package/src/lib/server/contacts-import.d.ts +0 -109
- package/src/lib/server/contacts-import.js +0 -393
- package/src/lib/server/contacts-import.js.map +0 -1
- package/src/lib/server/deals-import.d.ts +0 -76
- package/src/lib/server/deals-import.js +0 -248
- package/src/lib/server/deals-import.js.map +0 -1
- package/src/lib/server/export-route.d.ts +0 -60
- package/src/lib/server/export-route.js +0 -447
- package/src/lib/server/export-route.js.map +0 -1
- package/src/lib/server/import-context.d.ts +0 -87
- package/src/lib/server/import-context.js +0 -182
- package/src/lib/server/import-context.js.map +0 -1
- package/src/lib/server/lead-source-values.d.ts +0 -50
- package/src/lib/server/lead-source-values.js +0 -191
- package/src/lib/server/lead-source-values.js.map +0 -1
- package/src/lib/server/leads-import.d.ts +0 -84
- package/src/lib/server/leads-import.js +0 -367
- package/src/lib/server/leads-import.js.map +0 -1
- package/src/lib/server/tasks-import.d.ts +0 -54
- package/src/lib/server/tasks-import.js +0 -160
- package/src/lib/server/tasks-import.js.map +0 -1
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/ /*==========================================
|
|
17
|
+
* THE CRM'S TRANSFER RESOURCES, REGISTERED LIGHT (AGL-3527).
|
|
18
|
+
*
|
|
19
|
+
* The server half of every resource `plugins.config.json` declares for the
|
|
20
|
+
* CRM, registered at the console's boot from its console-server
|
|
21
|
+
* declarations. Boot pays for the match keys and the header dictionaries —
|
|
22
|
+
* data — and nothing else: each hook loads its resource's module with the
|
|
23
|
+
* first transfer that asks, and keeps it; the plan gate loads the CRM's
|
|
24
|
+
* `suite-gate.ts` the same way.
|
|
25
|
+
*=========================================*/ import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
26
|
+
import { registerPluginTransferResource } from "@aglyn/aglyn/plugin-manager/plugin-transfer-resources";
|
|
27
|
+
import { COMPANY_ALIASES, CONTACT_ALIASES, DEAL_ALIASES, LEAD_ALIASES, TASK_ALIASES } from "./aliases.js";
|
|
28
|
+
import { CRM_ACTIVITIES_RESOURCE, CRM_COMPANIES_RESOURCE, CRM_CONTACTS_RESOURCE, CRM_DEALS_RESOURCE, CRM_FIELDS_RESOURCE, CRM_LEADS_RESOURCE, CRM_MEMBERS_TARGET, CRM_PIPELINES_RESOURCE, CRM_TASKS_RESOURCE } from "./fields.js";
|
|
29
|
+
/** The hooks an exported-only resource answers: its reads. */ const EXPORT_HOOKS = [
|
|
30
|
+
'fields',
|
|
31
|
+
'count',
|
|
32
|
+
'readPage',
|
|
33
|
+
'lookup'
|
|
34
|
+
];
|
|
35
|
+
/** The member target's keys, known before the module loads. */ const MEMBER_KEYS = [
|
|
36
|
+
{
|
|
37
|
+
fieldId: 'email',
|
|
38
|
+
normalizer: 'email'
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
fieldId: 'name',
|
|
42
|
+
normalizer: 'caseless'
|
|
43
|
+
}
|
|
44
|
+
];
|
|
45
|
+
/** Every hook a records resource may answer with, besides its data. */ const HOOKS = [
|
|
46
|
+
'fields',
|
|
47
|
+
'count',
|
|
48
|
+
'readPage',
|
|
49
|
+
'lookup',
|
|
50
|
+
'suggest',
|
|
51
|
+
'picklists',
|
|
52
|
+
'addPicklistValues',
|
|
53
|
+
'plan',
|
|
54
|
+
'lockedRules',
|
|
55
|
+
'apply',
|
|
56
|
+
'revert'
|
|
57
|
+
];
|
|
58
|
+
/**
|
|
59
|
+
* The CRM's plan question for a transfer (AGL-3555), in the words of every
|
|
60
|
+
* other CRM route: `suite-gate.ts`'s refusal, 403 `plan_required` / `crm`.
|
|
61
|
+
* The declaration (`featureFlag: "crm"`) decides which intents ask — every
|
|
62
|
+
* one, but the contacts and leads exports — and this answers them.
|
|
63
|
+
*/ export function crmTransferPlanGate(noun) {
|
|
64
|
+
return async (subject, intent)=>(await import("../server/suite-gate.js")).crmSuiteRefusal(subject.org, `${intent === 'export' ? 'Exporting' : 'Importing'} ${noun}`);
|
|
65
|
+
}
|
|
66
|
+
/** A resource whose hooks load its module with the first call, once. */ export function lazyCrmTransferResource(resource) {
|
|
67
|
+
var _resource_hooks;
|
|
68
|
+
var _resource_targets;
|
|
69
|
+
let loaded = null;
|
|
70
|
+
const hooks = ()=>loaded != null ? loaded : loaded = resource.load();
|
|
71
|
+
const impl = _extends({
|
|
72
|
+
matchKeys: resource.matchKeys,
|
|
73
|
+
planGate: crmTransferPlanGate(resource.noun)
|
|
74
|
+
}, resource.aliases ? {
|
|
75
|
+
aliases: resource.aliases
|
|
76
|
+
} : {});
|
|
77
|
+
for (const name of (_resource_hooks = resource.hooks) != null ? _resource_hooks : HOOKS){
|
|
78
|
+
impl[name] = async (...args)=>{
|
|
79
|
+
const hook = (await hooks())[name];
|
|
80
|
+
if (!hook) throw new Error(`transfer resource "${resource.key}" has no "${name}"`);
|
|
81
|
+
return hook(...args);
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
if ((_resource_targets = resource.targets) == null ? void 0 : _resource_targets.length) {
|
|
85
|
+
impl['lookupTargets'] = Object.fromEntries(resource.targets.map((target)=>{
|
|
86
|
+
const own = async ()=>{
|
|
87
|
+
var _lookupTargets;
|
|
88
|
+
const found = (_lookupTargets = (await hooks()).lookupTargets) == null ? void 0 : _lookupTargets[target];
|
|
89
|
+
if (!found) throw new Error(`transfer resource "${resource.key}" answers no "${target}"`);
|
|
90
|
+
return found;
|
|
91
|
+
};
|
|
92
|
+
return [
|
|
93
|
+
target,
|
|
94
|
+
{
|
|
95
|
+
matchKeys: MEMBER_KEYS,
|
|
96
|
+
lookup: async (ctx, requests)=>(await own()).lookup(ctx, requests),
|
|
97
|
+
suggest: async (ctx, request)=>{
|
|
98
|
+
var _ref;
|
|
99
|
+
var _suggest, _this;
|
|
100
|
+
return (_ref = await ((_suggest = (_this = await own()).suggest) == null ? void 0 : _suggest.call(_this, ctx, request))) != null ? _ref : {};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
];
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
return impl;
|
|
107
|
+
}
|
|
108
|
+
/** The CRM's resources: what each is found by, how other products name its columns, and where it loads from. */ export const CRM_TRANSFER_RESOURCES = [
|
|
109
|
+
{
|
|
110
|
+
key: CRM_CONTACTS_RESOURCE,
|
|
111
|
+
noun: 'contacts',
|
|
112
|
+
matchKeys: [
|
|
113
|
+
{
|
|
114
|
+
fieldId: 'id',
|
|
115
|
+
normalizer: 'aglynId'
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
fieldId: 'email',
|
|
119
|
+
normalizer: 'email'
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
aliases: CONTACT_ALIASES,
|
|
123
|
+
targets: [
|
|
124
|
+
CRM_MEMBERS_TARGET
|
|
125
|
+
],
|
|
126
|
+
load: async ()=>(await import("./contacts.js")).contactsTransferResource()
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
key: CRM_COMPANIES_RESOURCE,
|
|
130
|
+
noun: 'companies',
|
|
131
|
+
matchKeys: [
|
|
132
|
+
{
|
|
133
|
+
fieldId: 'id',
|
|
134
|
+
normalizer: 'aglynId'
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
fieldId: 'domain',
|
|
138
|
+
normalizer: 'domain'
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
fieldId: 'name',
|
|
142
|
+
normalizer: 'caseless'
|
|
143
|
+
}
|
|
144
|
+
],
|
|
145
|
+
aliases: COMPANY_ALIASES,
|
|
146
|
+
targets: [
|
|
147
|
+
CRM_MEMBERS_TARGET
|
|
148
|
+
],
|
|
149
|
+
load: async ()=>(await import("./companies.js")).companiesTransferResource()
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
key: CRM_LEADS_RESOURCE,
|
|
153
|
+
noun: 'leads',
|
|
154
|
+
matchKeys: [
|
|
155
|
+
{
|
|
156
|
+
fieldId: 'id',
|
|
157
|
+
normalizer: 'aglynId'
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
fieldId: 'email',
|
|
161
|
+
normalizer: 'email'
|
|
162
|
+
}
|
|
163
|
+
],
|
|
164
|
+
aliases: LEAD_ALIASES,
|
|
165
|
+
targets: [
|
|
166
|
+
CRM_MEMBERS_TARGET
|
|
167
|
+
],
|
|
168
|
+
hooks: [
|
|
169
|
+
'fields',
|
|
170
|
+
'count',
|
|
171
|
+
'readPage',
|
|
172
|
+
'lookup',
|
|
173
|
+
'picklists',
|
|
174
|
+
'addPicklistValues',
|
|
175
|
+
'plan',
|
|
176
|
+
'lockedRules',
|
|
177
|
+
'apply',
|
|
178
|
+
'revert'
|
|
179
|
+
],
|
|
180
|
+
load: async ()=>(await import("./leads.js")).leadsTransferResource()
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
key: CRM_DEALS_RESOURCE,
|
|
184
|
+
noun: 'deals',
|
|
185
|
+
matchKeys: [
|
|
186
|
+
{
|
|
187
|
+
fieldId: 'id',
|
|
188
|
+
normalizer: 'aglynId'
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
fieldId: 'externalId',
|
|
192
|
+
normalizer: 'externalId'
|
|
193
|
+
}
|
|
194
|
+
],
|
|
195
|
+
aliases: DEAL_ALIASES,
|
|
196
|
+
targets: [
|
|
197
|
+
CRM_MEMBERS_TARGET
|
|
198
|
+
],
|
|
199
|
+
load: async ()=>(await import("./deals.js")).dealsTransferResource()
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
key: CRM_TASKS_RESOURCE,
|
|
203
|
+
noun: 'tasks',
|
|
204
|
+
matchKeys: [
|
|
205
|
+
{
|
|
206
|
+
fieldId: 'id',
|
|
207
|
+
normalizer: 'aglynId'
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
fieldId: 'externalId',
|
|
211
|
+
normalizer: 'externalId'
|
|
212
|
+
}
|
|
213
|
+
],
|
|
214
|
+
aliases: TASK_ALIASES,
|
|
215
|
+
targets: [
|
|
216
|
+
CRM_MEMBERS_TARGET
|
|
217
|
+
],
|
|
218
|
+
hooks: [
|
|
219
|
+
'fields',
|
|
220
|
+
'count',
|
|
221
|
+
'readPage',
|
|
222
|
+
'lookup',
|
|
223
|
+
'picklists',
|
|
224
|
+
'addPicklistValues',
|
|
225
|
+
'plan',
|
|
226
|
+
'lockedRules',
|
|
227
|
+
'apply',
|
|
228
|
+
'revert'
|
|
229
|
+
],
|
|
230
|
+
load: async ()=>(await import("./tasks.js")).tasksTransferResource()
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
key: CRM_ACTIVITIES_RESOURCE,
|
|
234
|
+
noun: 'activities',
|
|
235
|
+
matchKeys: [
|
|
236
|
+
{
|
|
237
|
+
fieldId: 'id',
|
|
238
|
+
normalizer: 'aglynId'
|
|
239
|
+
}
|
|
240
|
+
],
|
|
241
|
+
hooks: EXPORT_HOOKS,
|
|
242
|
+
load: async ()=>(await import("./activities.js")).activitiesTransferResource()
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
key: CRM_PIPELINES_RESOURCE,
|
|
246
|
+
noun: 'pipelines and stages',
|
|
247
|
+
matchKeys: [
|
|
248
|
+
{
|
|
249
|
+
fieldId: 'id',
|
|
250
|
+
normalizer: 'aglynId'
|
|
251
|
+
}
|
|
252
|
+
],
|
|
253
|
+
hooks: EXPORT_HOOKS,
|
|
254
|
+
load: async ()=>(await import("./pipelines.js")).pipelinesTransferResource()
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
key: CRM_FIELDS_RESOURCE,
|
|
258
|
+
noun: 'custom fields',
|
|
259
|
+
matchKeys: [
|
|
260
|
+
{
|
|
261
|
+
fieldId: 'id',
|
|
262
|
+
normalizer: 'aglynId'
|
|
263
|
+
}
|
|
264
|
+
],
|
|
265
|
+
hooks: EXPORT_HOOKS,
|
|
266
|
+
load: async ()=>(await import("./pipelines.js")).fieldDefinitionsTransferResource()
|
|
267
|
+
}
|
|
268
|
+
];
|
|
269
|
+
/** Registers the server half of every CRM transfer resource. Registering again replaces them. */ export function registerCrmTransferResources(pluginId) {
|
|
270
|
+
for (const resource of CRM_TRANSFER_RESOURCES){
|
|
271
|
+
registerPluginTransferResource(resource.key, lazyCrmTransferResource(resource), {
|
|
272
|
+
pluginId
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../libs/plugins/crm/src/lib/transfer/register.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*==========================================\n * THE CRM'S TRANSFER RESOURCES, REGISTERED LIGHT (AGL-3527).\n *\n * The server half of every resource `plugins.config.json` declares for the\n * CRM, registered at the console's boot from its console-server\n * declarations. Boot pays for the match keys and the header dictionaries —\n * data — and nothing else: each hook loads its resource's module with the\n * first transfer that asks, and keeps it; the plan gate loads the CRM's\n * `suite-gate.ts` the same way.\n *=========================================*/\n\nimport type {\n PluginTransferResource,\n TransferLookupTargetHooks,\n TransferPlanGateHooks,\n TransferRecordsHooks,\n} from '@aglyn/aglyn/plugin-manager/plugin-transfer-resources'\nimport { registerPluginTransferResource } from '@aglyn/aglyn/plugin-manager/plugin-transfer-resources'\nimport type { MatchKeySpec, TransferAliasDictionary } from '@aglyn/aglyn/data-transfer'\nimport { COMPANY_ALIASES, CONTACT_ALIASES, DEAL_ALIASES, LEAD_ALIASES, TASK_ALIASES } from './aliases'\nimport {\n CRM_ACTIVITIES_RESOURCE,\n CRM_COMPANIES_RESOURCE,\n CRM_CONTACTS_RESOURCE,\n CRM_DEALS_RESOURCE,\n CRM_FIELDS_RESOURCE,\n CRM_LEADS_RESOURCE,\n CRM_MEMBERS_TARGET,\n CRM_PIPELINES_RESOURCE,\n CRM_TASKS_RESOURCE,\n} from './fields'\n\n/** What a resource is registered with before its module loads. */\ninterface LazyResource {\n key: string\n /** What the records are called inside a refusal's sentence (\"Exporting companies\"). */\n noun: string\n matchKeys: readonly MatchKeySpec[]\n aliases?: readonly TransferAliasDictionary[]\n /** Lookup targets the resource answers itself, by key. */\n targets?: readonly string[]\n /** The hooks its module answers, beyond the required reads; every one by default. */\n hooks?: readonly (typeof HOOKS)[number][]\n load: () => Promise<Partial<TransferRecordsHooks>>\n}\n\n/** The hooks an exported-only resource answers: its reads. */\nconst EXPORT_HOOKS = ['fields', 'count', 'readPage', 'lookup'] as const\n\n/** The member target's keys, known before the module loads. */\nconst MEMBER_KEYS: readonly MatchKeySpec[] = [\n { fieldId: 'email', normalizer: 'email' },\n { fieldId: 'name', normalizer: 'caseless' },\n]\n\n/** Every hook a records resource may answer with, besides its data. */\nconst HOOKS = [\n 'fields',\n 'count',\n 'readPage',\n 'lookup',\n 'suggest',\n 'picklists',\n 'addPicklistValues',\n 'plan',\n 'lockedRules',\n 'apply',\n 'revert',\n] as const\n\n/**\n * The CRM's plan question for a transfer (AGL-3555), in the words of every\n * other CRM route: `suite-gate.ts`'s refusal, 403 `plan_required` / `crm`.\n * The declaration (`featureFlag: \"crm\"`) decides which intents ask — every\n * one, but the contacts and leads exports — and this answers them.\n */\nexport function crmTransferPlanGate(noun: string): NonNullable<TransferPlanGateHooks['planGate']> {\n return async (subject, intent) =>\n (await import('../server/suite-gate')).crmSuiteRefusal(\n subject.org,\n `${intent === 'export' ? 'Exporting' : 'Importing'} ${noun}`,\n )\n}\n\n/** A resource whose hooks load its module with the first call, once. */\nexport function lazyCrmTransferResource(resource: LazyResource): PluginTransferResource {\n let loaded: Promise<Partial<TransferRecordsHooks>> | null = null\n const hooks = () => (loaded ??= resource.load())\n const impl: Record<string, unknown> = {\n matchKeys: resource.matchKeys,\n planGate: crmTransferPlanGate(resource.noun),\n ...(resource.aliases ? { aliases: resource.aliases } : {}),\n }\n for (const name of resource.hooks ?? HOOKS) {\n impl[name] = async (...args: unknown[]) => {\n const hook = (await hooks())[name] as ((...args: unknown[]) => unknown) | undefined\n if (!hook) throw new Error(`transfer resource \"${resource.key}\" has no \"${name}\"`)\n return hook(...args)\n }\n }\n if (resource.targets?.length) {\n impl['lookupTargets'] = Object.fromEntries(\n resource.targets.map((target): [string, TransferLookupTargetHooks] => {\n const own = async () => {\n const found = (await hooks()).lookupTargets?.[target]\n if (!found) throw new Error(`transfer resource \"${resource.key}\" answers no \"${target}\"`)\n return found\n }\n return [\n target,\n {\n matchKeys: MEMBER_KEYS,\n lookup: async (ctx, requests) => (await own()).lookup(ctx, requests),\n suggest: async (ctx, request) => (await (await own()).suggest?.(ctx, request)) ?? {},\n },\n ]\n }),\n )\n }\n return impl as PluginTransferResource\n}\n\n/** The CRM's resources: what each is found by, how other products name its columns, and where it loads from. */\nexport const CRM_TRANSFER_RESOURCES: readonly LazyResource[] = [\n {\n key: CRM_CONTACTS_RESOURCE,\n noun: 'contacts',\n matchKeys: [\n { fieldId: 'id', normalizer: 'aglynId' },\n { fieldId: 'email', normalizer: 'email' },\n ],\n aliases: CONTACT_ALIASES,\n targets: [CRM_MEMBERS_TARGET],\n load: async () => (await import('./contacts')).contactsTransferResource(),\n },\n {\n key: CRM_COMPANIES_RESOURCE,\n noun: 'companies',\n matchKeys: [\n { fieldId: 'id', normalizer: 'aglynId' },\n { fieldId: 'domain', normalizer: 'domain' },\n { fieldId: 'name', normalizer: 'caseless' },\n ],\n aliases: COMPANY_ALIASES,\n targets: [CRM_MEMBERS_TARGET],\n load: async () => (await import('./companies')).companiesTransferResource(),\n },\n {\n key: CRM_LEADS_RESOURCE,\n noun: 'leads',\n matchKeys: [\n { fieldId: 'id', normalizer: 'aglynId' },\n { fieldId: 'email', normalizer: 'email' },\n ],\n aliases: LEAD_ALIASES,\n targets: [CRM_MEMBERS_TARGET],\n hooks: ['fields', 'count', 'readPage', 'lookup', 'picklists', 'addPicklistValues', 'plan', 'lockedRules', 'apply', 'revert'],\n load: async () => (await import('./leads')).leadsTransferResource(),\n },\n {\n key: CRM_DEALS_RESOURCE,\n noun: 'deals',\n matchKeys: [\n { fieldId: 'id', normalizer: 'aglynId' },\n { fieldId: 'externalId', normalizer: 'externalId' },\n ],\n aliases: DEAL_ALIASES,\n targets: [CRM_MEMBERS_TARGET],\n load: async () => (await import('./deals')).dealsTransferResource(),\n },\n {\n key: CRM_TASKS_RESOURCE,\n noun: 'tasks',\n matchKeys: [\n { fieldId: 'id', normalizer: 'aglynId' },\n { fieldId: 'externalId', normalizer: 'externalId' },\n ],\n aliases: TASK_ALIASES,\n targets: [CRM_MEMBERS_TARGET],\n hooks: ['fields', 'count', 'readPage', 'lookup', 'picklists', 'addPicklistValues', 'plan', 'lockedRules', 'apply', 'revert'],\n load: async () => (await import('./tasks')).tasksTransferResource(),\n },\n {\n key: CRM_ACTIVITIES_RESOURCE,\n noun: 'activities',\n matchKeys: [{ fieldId: 'id', normalizer: 'aglynId' }],\n hooks: EXPORT_HOOKS,\n load: async () => (await import('./activities')).activitiesTransferResource(),\n },\n {\n key: CRM_PIPELINES_RESOURCE,\n noun: 'pipelines and stages',\n matchKeys: [{ fieldId: 'id', normalizer: 'aglynId' }],\n hooks: EXPORT_HOOKS,\n load: async () => (await import('./pipelines')).pipelinesTransferResource(),\n },\n {\n key: CRM_FIELDS_RESOURCE,\n noun: 'custom fields',\n matchKeys: [{ fieldId: 'id', normalizer: 'aglynId' }],\n hooks: EXPORT_HOOKS,\n load: async () => (await import('./pipelines')).fieldDefinitionsTransferResource(),\n },\n]\n\n/** Registers the server half of every CRM transfer resource. Registering again replaces them. */\nexport function registerCrmTransferResources(pluginId: string): void {\n for (const resource of CRM_TRANSFER_RESOURCES) {\n registerPluginTransferResource(resource.key, lazyCrmTransferResource(resource), { pluginId })\n }\n}\n"],"names":["registerPluginTransferResource","COMPANY_ALIASES","CONTACT_ALIASES","DEAL_ALIASES","LEAD_ALIASES","TASK_ALIASES","CRM_ACTIVITIES_RESOURCE","CRM_COMPANIES_RESOURCE","CRM_CONTACTS_RESOURCE","CRM_DEALS_RESOURCE","CRM_FIELDS_RESOURCE","CRM_LEADS_RESOURCE","CRM_MEMBERS_TARGET","CRM_PIPELINES_RESOURCE","CRM_TASKS_RESOURCE","EXPORT_HOOKS","MEMBER_KEYS","fieldId","normalizer","HOOKS","crmTransferPlanGate","noun","subject","intent","crmSuiteRefusal","org","lazyCrmTransferResource","resource","loaded","hooks","load","impl","matchKeys","planGate","aliases","name","args","hook","Error","key","targets","length","Object","fromEntries","map","target","own","found","lookupTargets","lookup","ctx","requests","suggest","request","CRM_TRANSFER_RESOURCES","contactsTransferResource","companiesTransferResource","leadsTransferResource","dealsTransferResource","tasksTransferResource","activitiesTransferResource","pipelinesTransferResource","fieldDefinitionsTransferResource","registerCrmTransferResources","pluginId"],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { type CrmTaskPicklists } from '@aglyn/aglyn/server';
|
|
18
|
+
import type { TransferRecordsHooks } from '@aglyn/aglyn/plugin-manager/plugin-transfer-resources';
|
|
19
|
+
/** Names the export writes in place of the ids a task links by. */
|
|
20
|
+
interface TaskNames {
|
|
21
|
+
assignee?: (uid: string) => string | undefined;
|
|
22
|
+
contact?: (id: string) => string | undefined;
|
|
23
|
+
company?: (id: string) => string | undefined;
|
|
24
|
+
deal?: (id: string) => string | undefined;
|
|
25
|
+
}
|
|
26
|
+
/** One task as values by field id; links by id unless `names` names them. */
|
|
27
|
+
export declare function taskTransferValues(id: string, task: Record<string, unknown>, lists: CrmTaskPicklists, names?: TaskNames): Record<string, unknown>;
|
|
28
|
+
/** The `crm.tasks` hooks. */
|
|
29
|
+
export declare function tasksTransferResource(): TransferRecordsHooks;
|
|
30
|
+
export {};
|