@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.
Files changed (541) hide show
  1. package/README.md +2 -1
  2. package/package.json +13 -13
  3. package/src/lib/components/activity-list.js +12 -5
  4. package/src/lib/components/activity-list.js.map +1 -1
  5. package/src/lib/components/companies-bulk-bar.d.ts +1 -4
  6. package/src/lib/components/companies-bulk-bar.js +7 -20
  7. package/src/lib/components/companies-bulk-bar.js.map +1 -1
  8. package/src/lib/components/companies-section.d.ts +3 -3
  9. package/src/lib/components/companies-section.js +149 -46
  10. package/src/lib/components/companies-section.js.map +1 -1
  11. package/src/lib/components/company-edit-drawer.js +281 -20
  12. package/src/lib/components/company-edit-drawer.js.map +1 -1
  13. package/src/lib/components/company-properties-card.js +99 -8
  14. package/src/lib/components/company-properties-card.js.map +1 -1
  15. package/src/lib/components/contact-detail-page.js +3 -1
  16. package/src/lib/components/contact-detail-page.js.map +1 -1
  17. package/src/lib/components/contact-merge-dialog.js +33 -10
  18. package/src/lib/components/contact-merge-dialog.js.map +1 -1
  19. package/src/lib/components/contact-properties-card.d.ts +0 -69
  20. package/src/lib/components/contact-properties-card.js +350 -60
  21. package/src/lib/components/contact-properties-card.js.map +1 -1
  22. package/src/lib/components/contact-reports-to-field.d.ts +46 -0
  23. package/src/lib/components/contact-reports-to-field.js +67 -0
  24. package/src/lib/components/contact-reports-to-field.js.map +1 -0
  25. package/src/lib/components/contacts-bulk-bar.d.ts +1 -8
  26. package/src/lib/components/contacts-bulk-bar.js +7 -19
  27. package/src/lib/components/contacts-bulk-bar.js.map +1 -1
  28. package/src/lib/components/contacts-section.js +46 -33
  29. package/src/lib/components/contacts-section.js.map +1 -1
  30. package/src/lib/components/crm-call-actions.d.ts +10 -0
  31. package/src/lib/components/crm-call-actions.js +26 -9
  32. package/src/lib/components/crm-call-actions.js.map +1 -1
  33. package/src/lib/components/crm-next-activity-column.js +1 -1
  34. package/src/lib/components/crm-next-activity-column.js.map +1 -1
  35. package/src/lib/components/crm-record-picker.d.ts +15 -0
  36. package/src/lib/components/crm-record-picker.js +16 -10
  37. package/src/lib/components/crm-record-picker.js.map +1 -1
  38. package/src/lib/components/crm-transfer-buttons.d.ts +54 -0
  39. package/src/lib/components/crm-transfer-buttons.js +167 -0
  40. package/src/lib/components/crm-transfer-buttons.js.map +1 -0
  41. package/src/lib/components/deal-contact-roles-card.d.ts +46 -0
  42. package/src/lib/components/deal-contact-roles-card.js +368 -0
  43. package/src/lib/components/deal-contact-roles-card.js.map +1 -0
  44. package/src/lib/components/deal-detail-page.d.ts +3 -2
  45. package/src/lib/components/deal-detail-page.js +25 -6
  46. package/src/lib/components/deal-detail-page.js.map +1 -1
  47. package/src/lib/components/deal-edit-drawer.d.ts +10 -0
  48. package/src/lib/components/deal-edit-drawer.js +219 -10
  49. package/src/lib/components/deal-edit-drawer.js.map +1 -1
  50. package/src/lib/components/deal-properties-card.d.ts +7 -0
  51. package/src/lib/components/deal-properties-card.js +34 -3
  52. package/src/lib/components/deal-properties-card.js.map +1 -1
  53. package/src/lib/components/deal-stage-card.d.ts +4 -0
  54. package/src/lib/components/deal-stage-card.js +10 -2
  55. package/src/lib/components/deal-stage-card.js.map +1 -1
  56. package/src/lib/components/deals-bulk-bar.d.ts +0 -3
  57. package/src/lib/components/deals-bulk-bar.js +7 -20
  58. package/src/lib/components/deals-bulk-bar.js.map +1 -1
  59. package/src/lib/components/deals-section.d.ts +3 -3
  60. package/src/lib/components/deals-section.js +123 -63
  61. package/src/lib/components/deals-section.js.map +1 -1
  62. package/src/lib/components/fields-section.js +31 -17
  63. package/src/lib/components/fields-section.js.map +1 -1
  64. package/src/lib/components/lead-convert-dialog.d.ts +4 -0
  65. package/src/lib/components/lead-convert-dialog.js +23 -1
  66. package/src/lib/components/lead-convert-dialog.js.map +1 -1
  67. package/src/lib/components/lead-detail-page.js +8 -2
  68. package/src/lib/components/lead-detail-page.js.map +1 -1
  69. package/src/lib/components/lead-profile-fields.d.ts +71 -0
  70. package/src/lib/components/lead-profile-fields.js +386 -0
  71. package/src/lib/components/lead-profile-fields.js.map +1 -0
  72. package/src/lib/components/lead-properties-card.d.ts +2 -1
  73. package/src/lib/components/lead-properties-card.js +85 -176
  74. package/src/lib/components/lead-properties-card.js.map +1 -1
  75. package/src/lib/components/lead-source-select.d.ts +4 -23
  76. package/src/lib/components/lead-source-select.js +9 -73
  77. package/src/lib/components/lead-source-select.js.map +1 -1
  78. package/src/lib/components/lead-status-chip.d.ts +9 -3
  79. package/src/lib/components/lead-status-chip.js +8 -4
  80. package/src/lib/components/lead-status-chip.js.map +1 -1
  81. package/src/lib/components/lead-status-options.d.ts +20 -0
  82. package/src/lib/components/lead-status-options.js +51 -0
  83. package/src/lib/components/lead-status-options.js.map +1 -0
  84. package/src/lib/components/lead-unqualify-dialog.d.ts +5 -0
  85. package/src/lib/components/lead-unqualify-dialog.js +50 -18
  86. package/src/lib/components/lead-unqualify-dialog.js.map +1 -1
  87. package/src/lib/components/leads-bulk-bar.d.ts +0 -3
  88. package/src/lib/components/leads-bulk-bar.js +29 -29
  89. package/src/lib/components/leads-bulk-bar.js.map +1 -1
  90. package/src/lib/components/leads-section.js +120 -68
  91. package/src/lib/components/leads-section.js.map +1 -1
  92. package/src/lib/components/linked-deals-card.d.ts +4 -0
  93. package/src/lib/components/linked-deals-card.js +47 -3
  94. package/src/lib/components/linked-deals-card.js.map +1 -1
  95. package/src/lib/components/log-activity-dialog.js +43 -3
  96. package/src/lib/components/log-activity-dialog.js.map +1 -1
  97. package/src/lib/components/new-contact-drawer.d.ts +8 -0
  98. package/src/lib/components/new-contact-drawer.js +108 -6
  99. package/src/lib/components/new-contact-drawer.js.map +1 -1
  100. package/src/lib/components/new-lead-drawer.d.ts +9 -2
  101. package/src/lib/components/new-lead-drawer.js +88 -121
  102. package/src/lib/components/new-lead-drawer.js.map +1 -1
  103. package/src/lib/components/picklist-select.d.ts +36 -0
  104. package/src/lib/components/picklist-select.js +114 -0
  105. package/src/lib/components/picklist-select.js.map +1 -0
  106. package/src/lib/components/picklist-values-card.d.ts +34 -0
  107. package/src/lib/components/{lead-source-values-card.js → picklist-values-card.js} +241 -58
  108. package/src/lib/components/picklist-values-card.js.map +1 -0
  109. package/src/lib/components/pipeline-stages-dialog.d.ts +7 -0
  110. package/src/lib/components/pipeline-stages-dialog.js +26 -4
  111. package/src/lib/components/pipeline-stages-dialog.js.map +1 -1
  112. package/src/lib/components/pipelines-dialog.js +15 -6
  113. package/src/lib/components/pipelines-dialog.js.map +1 -1
  114. package/src/lib/components/recent-activity-feed.js +20 -5
  115. package/src/lib/components/recent-activity-feed.js.map +1 -1
  116. package/src/lib/components/recipes-card.js +4 -2
  117. package/src/lib/components/recipes-card.js.map +1 -1
  118. package/src/lib/components/record-tasks-card.js +15 -8
  119. package/src/lib/components/record-tasks-card.js.map +1 -1
  120. package/src/lib/components/reports/forecast-card.d.ts +6 -0
  121. package/src/lib/components/reports/forecast-card.js +101 -3
  122. package/src/lib/components/reports/forecast-card.js.map +1 -1
  123. package/src/lib/components/reports/lead-funnel-card.d.ts +12 -0
  124. package/src/lib/components/reports/lead-funnel-card.js +9 -5
  125. package/src/lib/components/reports/lead-funnel-card.js.map +1 -1
  126. package/src/lib/components/reports/lead-source-card.d.ts +23 -0
  127. package/src/lib/components/reports/lead-source-card.js +318 -0
  128. package/src/lib/components/reports/lead-source-card.js.map +1 -0
  129. package/src/lib/components/reports/pipeline-card.js +2 -1
  130. package/src/lib/components/reports/pipeline-card.js.map +1 -1
  131. package/src/lib/components/reports/report-export.js +1 -1
  132. package/src/lib/components/reports/report-export.js.map +1 -1
  133. package/src/lib/components/reports-section.js +8 -0
  134. package/src/lib/components/reports-section.js.map +1 -1
  135. package/src/lib/components/sharing-rule-drawer.d.ts +5 -0
  136. package/src/lib/components/sharing-rule-drawer.js +108 -19
  137. package/src/lib/components/sharing-rule-drawer.js.map +1 -1
  138. package/src/lib/components/sharing-rules-card.js +11 -3
  139. package/src/lib/components/sharing-rules-card.js.map +1 -1
  140. package/src/lib/components/task-cells.d.ts +9 -1
  141. package/src/lib/components/task-cells.js +9 -4
  142. package/src/lib/components/task-cells.js.map +1 -1
  143. package/src/lib/components/task-edit-drawer.js +111 -43
  144. package/src/lib/components/task-edit-drawer.js.map +1 -1
  145. package/src/lib/components/tasks-bulk-bar.d.ts +0 -3
  146. package/src/lib/components/tasks-bulk-bar.js +7 -20
  147. package/src/lib/components/tasks-bulk-bar.js.map +1 -1
  148. package/src/lib/components/tasks-calendar.d.ts +3 -0
  149. package/src/lib/components/tasks-calendar.js +8 -1
  150. package/src/lib/components/tasks-calendar.js.map +1 -1
  151. package/src/lib/components/tasks-section.d.ts +3 -3
  152. package/src/lib/components/tasks-section.js +58 -43
  153. package/src/lib/components/tasks-section.js.map +1 -1
  154. package/src/lib/constants/api-routes.d.ts +2 -9
  155. package/src/lib/constants/api-routes.js +1 -7
  156. package/src/lib/constants/api-routes.js.map +1 -1
  157. package/src/lib/constants/bundle-common.d.ts +6 -0
  158. package/src/lib/constants/bundle-common.js +11 -0
  159. package/src/lib/constants/bundle-common.js.map +1 -1
  160. package/src/lib/constants/company-filters.d.ts +14 -0
  161. package/src/lib/constants/company-filters.js +51 -1
  162. package/src/lib/constants/company-filters.js.map +1 -1
  163. package/src/lib/constants/contact-filters.d.ts +2 -0
  164. package/src/lib/constants/contact-filters.js +18 -1
  165. package/src/lib/constants/contact-filters.js.map +1 -1
  166. package/src/lib/constants/deal-filters.d.ts +22 -1
  167. package/src/lib/constants/deal-filters.js +67 -4
  168. package/src/lib/constants/deal-filters.js.map +1 -1
  169. package/src/lib/declarations.console-server.d.ts +3 -0
  170. package/src/lib/declarations.console-server.js +35 -0
  171. package/src/lib/declarations.console-server.js.map +1 -1
  172. package/src/lib/declarations.d.ts +26 -0
  173. package/src/lib/declarations.js +35 -0
  174. package/src/lib/declarations.js.map +1 -0
  175. package/src/lib/declarations.server.d.ts +11 -0
  176. package/src/lib/declarations.server.js +97 -1
  177. package/src/lib/declarations.server.js.map +1 -1
  178. package/src/lib/hooks/use-company-picklists.d.ts +15 -0
  179. package/src/lib/hooks/use-company-picklists.js +55 -0
  180. package/src/lib/hooks/use-company-picklists.js.map +1 -0
  181. package/src/lib/hooks/use-crm-picklist.d.ts +25 -0
  182. package/src/lib/hooks/use-crm-picklist.js +53 -0
  183. package/src/lib/hooks/use-crm-picklist.js.map +1 -0
  184. package/src/lib/hooks/use-crm-record-names.d.ts +16 -0
  185. package/src/lib/hooks/use-crm-record-names.js +45 -19
  186. package/src/lib/hooks/use-crm-record-names.js.map +1 -1
  187. package/src/lib/hooks/use-crm-task-picklists.d.ts +11 -0
  188. package/src/lib/hooks/use-crm-task-picklists.js +45 -0
  189. package/src/lib/hooks/use-crm-task-picklists.js.map +1 -0
  190. package/src/lib/hooks/use-deals.d.ts +14 -0
  191. package/src/lib/hooks/use-deals.js +29 -0
  192. package/src/lib/hooks/use-deals.js.map +1 -1
  193. package/src/lib/hooks/use-lead-picklists.d.ts +14 -0
  194. package/src/lib/hooks/use-lead-picklists.js +46 -0
  195. package/src/lib/hooks/use-lead-picklists.js.map +1 -0
  196. package/src/lib/hooks/use-lead-source-picklist.d.ts +5 -19
  197. package/src/lib/hooks/use-lead-source-picklist.js +12 -22
  198. package/src/lib/hooks/use-lead-source-picklist.js.map +1 -1
  199. package/src/lib/hooks/use-lead-status-picklist.d.ts +9 -0
  200. package/src/lib/hooks/use-lead-status-picklist.js +40 -0
  201. package/src/lib/hooks/use-lead-status-picklist.js.map +1 -0
  202. package/src/lib/model/companies.d.ts +32 -3
  203. package/src/lib/model/companies.js +133 -16
  204. package/src/lib/model/companies.js.map +1 -1
  205. package/src/lib/model/contact-merge.d.ts +27 -3
  206. package/src/lib/model/contact-merge.js +81 -7
  207. package/src/lib/model/contact-merge.js.map +1 -1
  208. package/src/lib/model/contact-record.d.ts +17 -0
  209. package/src/lib/model/contact-record.js +17 -2
  210. package/src/lib/model/contact-record.js.map +1 -1
  211. package/src/lib/model/contact-update.d.ts +31 -2
  212. package/src/lib/model/contact-update.js +14 -0
  213. package/src/lib/model/contact-update.js.map +1 -1
  214. package/src/lib/model/crm-list-query.d.ts +5 -0
  215. package/src/lib/model/crm-list-query.js +8 -0
  216. package/src/lib/model/crm-list-query.js.map +1 -1
  217. package/src/lib/model/crm-next-activity.d.ts +107 -0
  218. package/src/lib/model/crm-next-activity.js +140 -0
  219. package/src/lib/model/crm-next-activity.js.map +1 -0
  220. package/src/lib/model/crm-recipes.d.ts +40 -0
  221. package/src/lib/model/crm-recipes.js +259 -0
  222. package/src/lib/model/crm-recipes.js.map +1 -0
  223. package/src/lib/model/crm-record-counts.d.ts +36 -0
  224. package/src/lib/model/crm-record-counts.js +54 -0
  225. package/src/lib/model/crm-record-counts.js.map +1 -0
  226. package/src/lib/model/crm-record-lists.d.ts +23 -0
  227. package/src/lib/model/crm-record-lists.js +161 -0
  228. package/src/lib/model/crm-record-lists.js.map +1 -0
  229. package/src/lib/model/crm-reports.d.ts +73 -3
  230. package/src/lib/model/crm-reports.js +120 -1
  231. package/src/lib/model/crm-reports.js.map +1 -1
  232. package/src/lib/model/crm-sharing.d.ts +21 -3
  233. package/src/lib/model/crm-sharing.js +27 -6
  234. package/src/lib/model/crm-sharing.js.map +1 -1
  235. package/src/lib/model/crm-task-reminders.d.ts +152 -0
  236. package/src/lib/model/crm-task-reminders.js +161 -0
  237. package/src/lib/model/crm-task-reminders.js.map +1 -0
  238. package/src/lib/model/deal-board-model.d.ts +8 -2
  239. package/src/lib/model/deal-board-model.js +15 -2
  240. package/src/lib/model/deal-board-model.js.map +1 -1
  241. package/src/lib/model/deal-contact-roles.d.ts +45 -0
  242. package/src/lib/model/deal-contact-roles.js +73 -0
  243. package/src/lib/model/deal-contact-roles.js.map +1 -0
  244. package/src/lib/model/deal-form-model.d.ts +56 -0
  245. package/src/lib/model/deal-form-model.js +79 -7
  246. package/src/lib/model/deal-form-model.js.map +1 -1
  247. package/src/lib/model/download-text-file.d.ts +23 -0
  248. package/src/lib/model/download-text-file.js +34 -0
  249. package/src/lib/model/download-text-file.js.map +1 -0
  250. package/src/lib/model/lead-filters.d.ts +36 -2
  251. package/src/lib/model/lead-filters.js +123 -2
  252. package/src/lib/model/lead-filters.js.map +1 -1
  253. package/src/lib/model/lead-source-direction.d.ts +38 -0
  254. package/src/lib/model/lead-source-direction.js +52 -0
  255. package/src/lib/model/lead-source-direction.js.map +1 -0
  256. package/src/lib/model/next-activity.d.ts +1 -1
  257. package/src/lib/model/next-activity.js.map +1 -1
  258. package/src/lib/model/picklist-values.d.ts +119 -0
  259. package/src/lib/model/picklist-values.js +256 -0
  260. package/src/lib/model/picklist-values.js.map +1 -0
  261. package/src/lib/model/record-facts-disclosed.d.ts +81 -0
  262. package/src/lib/model/record-facts-disclosed.js +281 -0
  263. package/src/lib/model/record-facts-disclosed.js.map +1 -0
  264. package/src/lib/model/record-facts.d.ts +215 -34
  265. package/src/lib/model/record-facts.js +307 -128
  266. package/src/lib/model/record-facts.js.map +1 -1
  267. package/src/lib/model/task-picklists.d.ts +52 -0
  268. package/src/lib/model/task-picklists.js +83 -0
  269. package/src/lib/model/task-picklists.js.map +1 -0
  270. package/src/lib/model/task-routes.d.ts +13 -0
  271. package/src/lib/model/task-routes.js +23 -4
  272. package/src/lib/model/task-routes.js.map +1 -1
  273. package/src/lib/plan-entitlements.js +6 -4
  274. package/src/lib/plan-entitlements.js.map +1 -1
  275. package/src/lib/plugin.js +17 -0
  276. package/src/lib/plugin.js.map +1 -1
  277. package/src/lib/server/api-v1/contacts.js +220 -14
  278. package/src/lib/server/api-v1/contacts.js.map +1 -1
  279. package/src/lib/server/api-v1/crm-activities.js +14 -1
  280. package/src/lib/server/api-v1/crm-activities.js.map +1 -1
  281. package/src/lib/server/api-v1/crm-companies.js +123 -14
  282. package/src/lib/server/api-v1/crm-companies.js.map +1 -1
  283. package/src/lib/server/api-v1/crm-deals.js +291 -26
  284. package/src/lib/server/api-v1/crm-deals.js.map +1 -1
  285. package/src/lib/server/api-v1/crm-leads.js +144 -38
  286. package/src/lib/server/api-v1/crm-leads.js.map +1 -1
  287. package/src/lib/server/api-v1/crm-pipelines.d.ts +6 -0
  288. package/src/lib/server/api-v1/crm-pipelines.js +8 -2
  289. package/src/lib/server/api-v1/crm-pipelines.js.map +1 -1
  290. package/src/lib/server/api-v1/crm-tasks.js +78 -34
  291. package/src/lib/server/api-v1/crm-tasks.js.map +1 -1
  292. package/src/lib/server/api-v1/openapi.d.ts +0 -11
  293. package/src/lib/server/api-v1/openapi.js +171 -16
  294. package/src/lib/server/api-v1/openapi.js.map +1 -1
  295. package/src/lib/server/assign-contact-owner.d.ts +188 -0
  296. package/src/lib/server/assign-contact-owner.js +446 -0
  297. package/src/lib/server/assign-contact-owner.js.map +1 -0
  298. package/src/lib/server/associate-company-by-domain.d.ts +70 -0
  299. package/src/lib/server/associate-company-by-domain.js +153 -0
  300. package/src/lib/server/associate-company-by-domain.js.map +1 -0
  301. package/src/lib/server/automation-steps.d.ts +140 -0
  302. package/src/lib/server/automation-steps.js +669 -0
  303. package/src/lib/server/automation-steps.js.map +1 -0
  304. package/src/lib/server/capture-contact.d.ts +17 -0
  305. package/src/lib/server/capture-contact.js +95 -26
  306. package/src/lib/server/capture-contact.js.map +1 -1
  307. package/src/lib/server/capture-host-contact.d.ts +104 -0
  308. package/src/lib/server/capture-host-contact.js +151 -0
  309. package/src/lib/server/capture-host-contact.js.map +1 -0
  310. package/src/lib/server/company-children.d.ts +25 -0
  311. package/src/lib/server/company-children.js +42 -0
  312. package/src/lib/server/company-children.js.map +1 -0
  313. package/src/lib/server/company-delete.d.ts +18 -0
  314. package/src/lib/server/company-delete.js +44 -21
  315. package/src/lib/server/company-delete.js.map +1 -1
  316. package/src/lib/server/contact-email-history.js +21 -19
  317. package/src/lib/server/contact-email-history.js.map +1 -1
  318. package/src/lib/server/contact-remove.js +27 -2
  319. package/src/lib/server/contact-remove.js.map +1 -1
  320. package/src/lib/server/contact-reports-to.d.ts +61 -0
  321. package/src/lib/server/contact-reports-to.js +114 -0
  322. package/src/lib/server/contact-reports-to.js.map +1 -0
  323. package/src/lib/server/contact-update.d.ts +42 -1
  324. package/src/lib/server/contact-update.js +204 -23
  325. package/src/lib/server/contact-update.js.map +1 -1
  326. package/src/lib/server/convert-host-lead.d.ts +46 -1
  327. package/src/lib/server/convert-host-lead.js +173 -15
  328. package/src/lib/server/convert-host-lead.js.map +1 -1
  329. package/src/lib/server/convert-open-lead.js +12 -5
  330. package/src/lib/server/convert-open-lead.js.map +1 -1
  331. package/src/lib/server/crm-email-activity.d.ts +118 -0
  332. package/src/lib/server/crm-email-activity.js +148 -0
  333. package/src/lib/server/crm-email-activity.js.map +1 -0
  334. package/src/lib/server/crm-inbound-email.js +1 -1
  335. package/src/lib/server/crm-inbound-email.js.map +1 -1
  336. package/src/lib/server/crm-next-activity.d.ts +74 -0
  337. package/src/lib/server/crm-next-activity.js +194 -0
  338. package/src/lib/server/crm-next-activity.js.map +1 -0
  339. package/src/lib/server/crm-record-indexes.d.ts +45 -0
  340. package/src/lib/server/crm-record-indexes.js +78 -0
  341. package/src/lib/server/crm-record-indexes.js.map +1 -0
  342. package/src/lib/server/crm-sharing.d.ts +9 -1
  343. package/src/lib/server/crm-sharing.js +23 -3
  344. package/src/lib/server/crm-sharing.js.map +1 -1
  345. package/src/lib/server/deal-contact-roles.d.ts +27 -0
  346. package/src/lib/server/deal-contact-roles.js +89 -0
  347. package/src/lib/server/deal-contact-roles.js.map +1 -0
  348. package/src/lib/server/email-send.js +2 -1
  349. package/src/lib/server/email-send.js.map +1 -1
  350. package/src/lib/server/lead-convert.d.ts +5 -0
  351. package/src/lib/server/lead-convert.js +19 -3
  352. package/src/lib/server/lead-convert.js.map +1 -1
  353. package/src/lib/server/lead-create.d.ts +17 -2
  354. package/src/lib/server/lead-create.js +46 -14
  355. package/src/lib/server/lead-create.js.map +1 -1
  356. package/src/lib/server/lead-nurturing.d.ts +6 -0
  357. package/src/lib/server/lead-nurturing.js +57 -20
  358. package/src/lib/server/lead-nurturing.js.map +1 -1
  359. package/src/lib/server/lead-picklists.d.ts +35 -0
  360. package/src/lib/server/lead-picklists.js +52 -0
  361. package/src/lib/server/lead-picklists.js.map +1 -0
  362. package/src/lib/server/lead-source-picklist.d.ts +1 -13
  363. package/src/lib/server/lead-source-picklist.js +6 -33
  364. package/src/lib/server/lead-source-picklist.js.map +1 -1
  365. package/src/lib/server/merge-contacts.js +23 -5
  366. package/src/lib/server/merge-contacts.js.map +1 -1
  367. package/src/lib/server/next-activity-routes.js +2 -1
  368. package/src/lib/server/next-activity-routes.js.map +1 -1
  369. package/src/lib/server/person-eraser.d.ts +53 -0
  370. package/src/lib/server/person-eraser.js +149 -0
  371. package/src/lib/server/person-eraser.js.map +1 -0
  372. package/src/lib/server/person-records.d.ts +69 -0
  373. package/src/lib/server/person-records.js +317 -0
  374. package/src/lib/server/person-records.js.map +1 -0
  375. package/src/lib/server/person-refund.d.ts +97 -0
  376. package/src/lib/server/person-refund.js +221 -0
  377. package/src/lib/server/person-refund.js.map +1 -0
  378. package/src/lib/server/picklist-values.d.ts +21 -0
  379. package/src/lib/server/picklist-values.js +308 -0
  380. package/src/lib/server/picklist-values.js.map +1 -0
  381. package/src/lib/server/read-picklist.d.ts +44 -0
  382. package/src/lib/server/read-picklist.js +65 -0
  383. package/src/lib/server/read-picklist.js.map +1 -0
  384. package/src/lib/server/recipe-routes.js +22 -8
  385. package/src/lib/server/recipe-routes.js.map +1 -1
  386. package/src/lib/server/record-email-state.js +7 -1
  387. package/src/lib/server/record-email-state.js.map +1 -1
  388. package/src/lib/server/record-facts.d.ts +3 -0
  389. package/src/lib/server/record-facts.js +233 -31
  390. package/src/lib/server/record-facts.js.map +1 -1
  391. package/src/lib/server/record-origin.d.ts +27 -0
  392. package/src/lib/server/record-origin.js +104 -0
  393. package/src/lib/server/record-origin.js.map +1 -0
  394. package/src/lib/server/record-timeline.js +40 -3
  395. package/src/lib/server/record-timeline.js.map +1 -1
  396. package/src/lib/server/suite-gate.js +4 -3
  397. package/src/lib/server/suite-gate.js.map +1 -1
  398. package/src/lib/server/task-reminders-route.js +2 -1
  399. package/src/lib/server/task-reminders-route.js.map +1 -1
  400. package/src/lib/server/task-routes.js +33 -17
  401. package/src/lib/server/task-routes.js.map +1 -1
  402. package/src/lib/server-deal-stage.d.ts +5 -1
  403. package/src/lib/server-deal-stage.js +10 -5
  404. package/src/lib/server-deal-stage.js.map +1 -1
  405. package/src/lib/server.d.ts +8 -3
  406. package/src/lib/server.js +47 -43
  407. package/src/lib/server.js.map +1 -1
  408. package/src/lib/testing/memory-firestore.d.ts +55 -0
  409. package/src/lib/testing/memory-firestore.js +335 -0
  410. package/src/lib/testing/memory-firestore.js.map +1 -0
  411. package/src/lib/testing/stand-in-email-send-index.d.ts +25 -0
  412. package/src/lib/testing/stand-in-email-send-index.js +49 -0
  413. package/src/lib/testing/stand-in-email-send-index.js.map +1 -0
  414. package/src/lib/transfer/activities.d.ts +30 -0
  415. package/src/lib/transfer/activities.js +132 -0
  416. package/src/lib/transfer/activities.js.map +1 -0
  417. package/src/lib/transfer/aliases.d.ts +22 -0
  418. package/src/lib/transfer/aliases.js +1342 -0
  419. package/src/lib/transfer/aliases.js.map +1 -0
  420. package/src/lib/transfer/common.d.ts +222 -0
  421. package/src/lib/transfer/common.js +832 -0
  422. package/src/lib/transfer/common.js.map +1 -0
  423. package/src/lib/transfer/companies.d.ts +43 -0
  424. package/src/lib/transfer/companies.js +549 -0
  425. package/src/lib/transfer/companies.js.map +1 -0
  426. package/src/lib/transfer/contacts.d.ts +31 -0
  427. package/src/lib/transfer/contacts.js +727 -0
  428. package/src/lib/transfer/contacts.js.map +1 -0
  429. package/src/lib/transfer/deals.d.ts +66 -0
  430. package/src/lib/transfer/deals.js +698 -0
  431. package/src/lib/transfer/deals.js.map +1 -0
  432. package/src/lib/transfer/email-templates-package.d.ts +40 -0
  433. package/src/lib/transfer/email-templates-package.js +76 -0
  434. package/src/lib/transfer/email-templates-package.js.map +1 -0
  435. package/src/lib/transfer/email-templates-package.server.d.ts +32 -0
  436. package/src/lib/transfer/email-templates-package.server.js +176 -0
  437. package/src/lib/transfer/email-templates-package.server.js.map +1 -0
  438. package/src/lib/transfer/fields.d.ts +102 -0
  439. package/src/lib/transfer/fields.js +1755 -0
  440. package/src/lib/transfer/fields.js.map +1 -0
  441. package/src/lib/transfer/leads.d.ts +30 -0
  442. package/src/lib/transfer/leads.js +582 -0
  443. package/src/lib/transfer/leads.js.map +1 -0
  444. package/src/lib/transfer/pipelines.d.ts +21 -0
  445. package/src/lib/transfer/pipelines.js +172 -0
  446. package/src/lib/transfer/pipelines.js.map +1 -0
  447. package/src/lib/transfer/register.d.ts +47 -0
  448. package/src/lib/transfer/register.js +277 -0
  449. package/src/lib/transfer/register.js.map +1 -0
  450. package/src/lib/transfer/tasks.d.ts +30 -0
  451. package/src/lib/transfer/tasks.js +418 -0
  452. package/src/lib/transfer/tasks.js.map +1 -0
  453. package/src/lib/transfer/ui.d.ts +20 -0
  454. package/src/lib/transfer/ui.js +42 -0
  455. package/src/lib/transfer/ui.js.map +1 -0
  456. package/src/lib/components/company-import-drawer.d.ts +0 -42
  457. package/src/lib/components/company-import-drawer.js +0 -99
  458. package/src/lib/components/company-import-drawer.js.map +0 -1
  459. package/src/lib/components/contact-import-drawer.d.ts +0 -46
  460. package/src/lib/components/contact-import-drawer.js +0 -149
  461. package/src/lib/components/contact-import-drawer.js.map +0 -1
  462. package/src/lib/components/crm-export-all-button.d.ts +0 -39
  463. package/src/lib/components/crm-export-all-button.js +0 -98
  464. package/src/lib/components/crm-export-all-button.js.map +0 -1
  465. package/src/lib/components/csv-import-drawer.d.ts +0 -139
  466. package/src/lib/components/csv-import-drawer.js +0 -757
  467. package/src/lib/components/csv-import-drawer.js.map +0 -1
  468. package/src/lib/components/deal-import-drawer.d.ts +0 -24
  469. package/src/lib/components/deal-import-drawer.js +0 -83
  470. package/src/lib/components/deal-import-drawer.js.map +0 -1
  471. package/src/lib/components/lead-import-drawer.d.ts +0 -27
  472. package/src/lib/components/lead-import-drawer.js +0 -118
  473. package/src/lib/components/lead-import-drawer.js.map +0 -1
  474. package/src/lib/components/lead-source-values-card.d.ts +0 -27
  475. package/src/lib/components/lead-source-values-card.js.map +0 -1
  476. package/src/lib/components/task-import-drawer.d.ts +0 -24
  477. package/src/lib/components/task-import-drawer.js +0 -82
  478. package/src/lib/components/task-import-drawer.js.map +0 -1
  479. package/src/lib/model/companies-csv.d.ts +0 -36
  480. package/src/lib/model/companies-csv.js +0 -38
  481. package/src/lib/model/companies-csv.js.map +0 -1
  482. package/src/lib/model/contacts-csv.d.ts +0 -54
  483. package/src/lib/model/contacts-csv.js +0 -67
  484. package/src/lib/model/contacts-csv.js.map +0 -1
  485. package/src/lib/model/crm-company-import.d.ts +0 -154
  486. package/src/lib/model/crm-company-import.js +0 -331
  487. package/src/lib/model/crm-company-import.js.map +0 -1
  488. package/src/lib/model/crm-csv.d.ts +0 -239
  489. package/src/lib/model/crm-csv.js +0 -467
  490. package/src/lib/model/crm-csv.js.map +0 -1
  491. package/src/lib/model/crm-deal-import.d.ts +0 -112
  492. package/src/lib/model/crm-deal-import.js +0 -263
  493. package/src/lib/model/crm-deal-import.js.map +0 -1
  494. package/src/lib/model/crm-import.d.ts +0 -250
  495. package/src/lib/model/crm-import.js +0 -467
  496. package/src/lib/model/crm-import.js.map +0 -1
  497. package/src/lib/model/crm-lead-import.d.ts +0 -138
  498. package/src/lib/model/crm-lead-import.js +0 -446
  499. package/src/lib/model/crm-lead-import.js.map +0 -1
  500. package/src/lib/model/crm-task-import.d.ts +0 -94
  501. package/src/lib/model/crm-task-import.js +0 -275
  502. package/src/lib/model/crm-task-import.js.map +0 -1
  503. package/src/lib/model/deals-csv.d.ts +0 -32
  504. package/src/lib/model/deals-csv.js +0 -36
  505. package/src/lib/model/deals-csv.js.map +0 -1
  506. package/src/lib/model/import-column-shapes.d.ts +0 -36
  507. package/src/lib/model/import-column-shapes.js +0 -76
  508. package/src/lib/model/import-column-shapes.js.map +0 -1
  509. package/src/lib/model/lead-source-values.d.ts +0 -82
  510. package/src/lib/model/lead-source-values.js +0 -149
  511. package/src/lib/model/lead-source-values.js.map +0 -1
  512. package/src/lib/model/leads-csv.d.ts +0 -40
  513. package/src/lib/model/leads-csv.js +0 -40
  514. package/src/lib/model/leads-csv.js.map +0 -1
  515. package/src/lib/model/tasks-csv.d.ts +0 -28
  516. package/src/lib/model/tasks-csv.js +0 -28
  517. package/src/lib/model/tasks-csv.js.map +0 -1
  518. package/src/lib/server/companies-import.d.ts +0 -57
  519. package/src/lib/server/companies-import.js +0 -242
  520. package/src/lib/server/companies-import.js.map +0 -1
  521. package/src/lib/server/contacts-import.d.ts +0 -109
  522. package/src/lib/server/contacts-import.js +0 -393
  523. package/src/lib/server/contacts-import.js.map +0 -1
  524. package/src/lib/server/deals-import.d.ts +0 -76
  525. package/src/lib/server/deals-import.js +0 -248
  526. package/src/lib/server/deals-import.js.map +0 -1
  527. package/src/lib/server/export-route.d.ts +0 -60
  528. package/src/lib/server/export-route.js +0 -447
  529. package/src/lib/server/export-route.js.map +0 -1
  530. package/src/lib/server/import-context.d.ts +0 -87
  531. package/src/lib/server/import-context.js +0 -182
  532. package/src/lib/server/import-context.js.map +0 -1
  533. package/src/lib/server/lead-source-values.d.ts +0 -50
  534. package/src/lib/server/lead-source-values.js +0 -191
  535. package/src/lib/server/lead-source-values.js.map +0 -1
  536. package/src/lib/server/leads-import.d.ts +0 -84
  537. package/src/lib/server/leads-import.js +0 -367
  538. package/src/lib/server/leads-import.js.map +0 -1
  539. package/src/lib/server/tasks-import.d.ts +0 -54
  540. package/src/lib/server/tasks-import.js +0 -160
  541. 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 {};