@carlonicora/nestjs-neo4jsonapi 6.3.0 → 6.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/dist/agents/graph/services/graph.search.service.d.ts +6 -0
  2. package/dist/agents/graph/services/graph.search.service.d.ts.map +1 -1
  3. package/dist/agents/graph/services/graph.search.service.js +51 -10
  4. package/dist/agents/graph/services/graph.search.service.js.map +1 -1
  5. package/dist/bootstrap/app.module.factory.d.ts.map +1 -1
  6. package/dist/bootstrap/app.module.factory.js +1 -0
  7. package/dist/bootstrap/app.module.factory.js.map +1 -1
  8. package/dist/bootstrap/bootstrap.options.d.ts +20 -0
  9. package/dist/bootstrap/bootstrap.options.d.ts.map +1 -1
  10. package/dist/core/email/services/email.service.d.ts +2 -0
  11. package/dist/core/email/services/email.service.d.ts.map +1 -1
  12. package/dist/core/email/services/email.service.js +18 -8
  13. package/dist/core/email/services/email.service.js.map +1 -1
  14. package/dist/core/email/templates/en/emailAutomation.hbs +24 -0
  15. package/dist/foundations/auth/controllers/auth.controller.d.ts +2 -2
  16. package/dist/foundations/auth/controllers/auth.controller.d.ts.map +1 -1
  17. package/dist/foundations/auth/controllers/auth.controller.js +8 -6
  18. package/dist/foundations/auth/controllers/auth.controller.js.map +1 -1
  19. package/dist/foundations/auth/events/auth.events.d.ts +12 -0
  20. package/dist/foundations/auth/events/auth.events.d.ts.map +1 -0
  21. package/dist/foundations/auth/events/auth.events.js +6 -0
  22. package/dist/foundations/auth/events/auth.events.js.map +1 -0
  23. package/dist/foundations/auth/index.d.ts +2 -0
  24. package/dist/foundations/auth/index.d.ts.map +1 -1
  25. package/dist/foundations/auth/index.js +3 -1
  26. package/dist/foundations/auth/index.js.map +1 -1
  27. package/dist/foundations/auth/services/auth.service.d.ts +5 -3
  28. package/dist/foundations/auth/services/auth.service.d.ts.map +1 -1
  29. package/dist/foundations/auth/services/auth.service.js +13 -4
  30. package/dist/foundations/auth/services/auth.service.js.map +1 -1
  31. package/dist/foundations/community/repositories/community.repository.d.ts +6 -0
  32. package/dist/foundations/community/repositories/community.repository.d.ts.map +1 -1
  33. package/dist/foundations/community/repositories/community.repository.js +42 -9
  34. package/dist/foundations/community/repositories/community.repository.js.map +1 -1
  35. package/dist/foundations/email-automation/controllers/email-automation-step.controller.d.ts +22 -0
  36. package/dist/foundations/email-automation/controllers/email-automation-step.controller.d.ts.map +1 -0
  37. package/dist/foundations/email-automation/controllers/email-automation-step.controller.js +152 -0
  38. package/dist/foundations/email-automation/controllers/email-automation-step.controller.js.map +1 -0
  39. package/dist/foundations/email-automation/controllers/email-automation.controller.d.ts +29 -0
  40. package/dist/foundations/email-automation/controllers/email-automation.controller.d.ts.map +1 -0
  41. package/dist/foundations/email-automation/controllers/email-automation.controller.js +183 -0
  42. package/dist/foundations/email-automation/controllers/email-automation.controller.js.map +1 -0
  43. package/dist/foundations/email-automation/controllers/email-automation.public.controller.d.ts +20 -0
  44. package/dist/foundations/email-automation/controllers/email-automation.public.controller.d.ts.map +1 -0
  45. package/dist/foundations/email-automation/controllers/email-automation.public.controller.js +63 -0
  46. package/dist/foundations/email-automation/controllers/email-automation.public.controller.js.map +1 -0
  47. package/dist/foundations/email-automation/cron/email-automation-sender.cron.d.ts +9 -0
  48. package/dist/foundations/email-automation/cron/email-automation-sender.cron.d.ts.map +1 -0
  49. package/dist/foundations/email-automation/cron/email-automation-sender.cron.js +44 -0
  50. package/dist/foundations/email-automation/cron/email-automation-sender.cron.js.map +1 -0
  51. package/dist/foundations/email-automation/dtos/email-automation-step.dto.d.ts +8 -0
  52. package/dist/foundations/email-automation/dtos/email-automation-step.dto.d.ts.map +1 -0
  53. package/dist/foundations/email-automation/dtos/email-automation-step.dto.js +36 -0
  54. package/dist/foundations/email-automation/dtos/email-automation-step.dto.js.map +1 -0
  55. package/dist/foundations/email-automation/dtos/email-automation-step.patch.dto.d.ts +16 -0
  56. package/dist/foundations/email-automation/dtos/email-automation-step.patch.dto.d.ts.map +1 -0
  57. package/dist/foundations/email-automation/dtos/email-automation-step.patch.dto.js +72 -0
  58. package/dist/foundations/email-automation/dtos/email-automation-step.patch.dto.js.map +1 -0
  59. package/dist/foundations/email-automation/dtos/email-automation-step.post.dto.d.ts +21 -0
  60. package/dist/foundations/email-automation/dtos/email-automation-step.post.dto.d.ts.map +1 -0
  61. package/dist/foundations/email-automation/dtos/email-automation-step.post.dto.js +88 -0
  62. package/dist/foundations/email-automation/dtos/email-automation-step.post.dto.js.map +1 -0
  63. package/dist/foundations/email-automation/dtos/email-automation-unsubscribe.dto.d.ts +11 -0
  64. package/dist/foundations/email-automation/dtos/email-automation-unsubscribe.dto.d.ts.map +1 -0
  65. package/dist/foundations/email-automation/dtos/email-automation-unsubscribe.dto.js +47 -0
  66. package/dist/foundations/email-automation/dtos/email-automation-unsubscribe.dto.js.map +1 -0
  67. package/dist/foundations/email-automation/dtos/email-automation.dto.d.ts +8 -0
  68. package/dist/foundations/email-automation/dtos/email-automation.dto.d.ts.map +1 -0
  69. package/dist/foundations/email-automation/dtos/email-automation.dto.js +36 -0
  70. package/dist/foundations/email-automation/dtos/email-automation.dto.js.map +1 -0
  71. package/dist/foundations/email-automation/dtos/email-automation.patch.dto.d.ts +16 -0
  72. package/dist/foundations/email-automation/dtos/email-automation.patch.dto.d.ts.map +1 -0
  73. package/dist/foundations/email-automation/dtos/email-automation.patch.dto.js +72 -0
  74. package/dist/foundations/email-automation/dtos/email-automation.patch.dto.js.map +1 -0
  75. package/dist/foundations/email-automation/dtos/email-automation.post.dto.d.ts +16 -0
  76. package/dist/foundations/email-automation/dtos/email-automation.post.dto.d.ts.map +1 -0
  77. package/dist/foundations/email-automation/dtos/email-automation.post.dto.js +72 -0
  78. package/dist/foundations/email-automation/dtos/email-automation.post.dto.js.map +1 -0
  79. package/dist/foundations/email-automation/email-automation.module.d.ts +35 -0
  80. package/dist/foundations/email-automation/email-automation.module.d.ts.map +1 -0
  81. package/dist/foundations/email-automation/email-automation.module.js +122 -0
  82. package/dist/foundations/email-automation/email-automation.module.js.map +1 -0
  83. package/dist/foundations/email-automation/entities/email-automation-enrollment.d.ts +55 -0
  84. package/dist/foundations/email-automation/entities/email-automation-enrollment.d.ts.map +1 -0
  85. package/dist/foundations/email-automation/entities/email-automation-enrollment.js +74 -0
  86. package/dist/foundations/email-automation/entities/email-automation-enrollment.js.map +1 -0
  87. package/dist/foundations/email-automation/entities/email-automation-enrollment.meta.d.ts +3 -0
  88. package/dist/foundations/email-automation/entities/email-automation-enrollment.meta.d.ts.map +1 -0
  89. package/dist/foundations/email-automation/entities/email-automation-enrollment.meta.js +10 -0
  90. package/dist/foundations/email-automation/entities/email-automation-enrollment.meta.js.map +1 -0
  91. package/dist/foundations/email-automation/entities/email-automation-step.d.ts +32 -0
  92. package/dist/foundations/email-automation/entities/email-automation-step.d.ts.map +1 -0
  93. package/dist/foundations/email-automation/entities/email-automation-step.js +55 -0
  94. package/dist/foundations/email-automation/entities/email-automation-step.js.map +1 -0
  95. package/dist/foundations/email-automation/entities/email-automation-step.meta.d.ts +3 -0
  96. package/dist/foundations/email-automation/entities/email-automation-step.meta.d.ts.map +1 -0
  97. package/dist/foundations/email-automation/entities/email-automation-step.meta.js +10 -0
  98. package/dist/foundations/email-automation/entities/email-automation-step.meta.js.map +1 -0
  99. package/dist/foundations/email-automation/entities/email-automation-trigger.d.ts +11 -0
  100. package/dist/foundations/email-automation/entities/email-automation-trigger.d.ts.map +1 -0
  101. package/dist/foundations/email-automation/entities/email-automation-trigger.js +15 -0
  102. package/dist/foundations/email-automation/entities/email-automation-trigger.js.map +1 -0
  103. package/dist/foundations/email-automation/entities/email-automation-trigger.meta.d.ts +6 -0
  104. package/dist/foundations/email-automation/entities/email-automation-trigger.meta.d.ts.map +1 -0
  105. package/dist/foundations/email-automation/entities/email-automation-trigger.meta.js +13 -0
  106. package/dist/foundations/email-automation/entities/email-automation-trigger.meta.js.map +1 -0
  107. package/dist/foundations/email-automation/entities/email-automation.d.ts +26 -0
  108. package/dist/foundations/email-automation/entities/email-automation.d.ts.map +1 -0
  109. package/dist/foundations/email-automation/entities/email-automation.js +54 -0
  110. package/dist/foundations/email-automation/entities/email-automation.js.map +1 -0
  111. package/dist/foundations/email-automation/entities/email-automation.meta.d.ts +7 -0
  112. package/dist/foundations/email-automation/entities/email-automation.meta.d.ts.map +1 -0
  113. package/dist/foundations/email-automation/entities/email-automation.meta.js +14 -0
  114. package/dist/foundations/email-automation/entities/email-automation.meta.js.map +1 -0
  115. package/dist/foundations/email-automation/entities/email-opt-out.d.ts +9 -0
  116. package/dist/foundations/email-automation/entities/email-opt-out.d.ts.map +1 -0
  117. package/dist/foundations/email-automation/entities/email-opt-out.js +17 -0
  118. package/dist/foundations/email-automation/entities/email-opt-out.js.map +1 -0
  119. package/dist/foundations/email-automation/entities/email-opt-out.meta.d.ts +3 -0
  120. package/dist/foundations/email-automation/entities/email-opt-out.meta.d.ts.map +1 -0
  121. package/dist/foundations/email-automation/entities/email-opt-out.meta.js +10 -0
  122. package/dist/foundations/email-automation/entities/email-opt-out.meta.js.map +1 -0
  123. package/dist/foundations/email-automation/index.d.ts +32 -0
  124. package/dist/foundations/email-automation/index.d.ts.map +1 -0
  125. package/dist/foundations/email-automation/index.js +56 -0
  126. package/dist/foundations/email-automation/index.js.map +1 -0
  127. package/dist/foundations/email-automation/interfaces/email-automation.config.interface.d.ts +49 -0
  128. package/dist/foundations/email-automation/interfaces/email-automation.config.interface.d.ts.map +1 -0
  129. package/dist/foundations/email-automation/interfaces/email-automation.config.interface.js +14 -0
  130. package/dist/foundations/email-automation/interfaces/email-automation.config.interface.js.map +1 -0
  131. package/dist/foundations/email-automation/repositories/email-automation-enrollment.repository.d.ts +150 -0
  132. package/dist/foundations/email-automation/repositories/email-automation-enrollment.repository.d.ts.map +1 -0
  133. package/dist/foundations/email-automation/repositories/email-automation-enrollment.repository.js +379 -0
  134. package/dist/foundations/email-automation/repositories/email-automation-enrollment.repository.js.map +1 -0
  135. package/dist/foundations/email-automation/repositories/email-automation-step.repository.d.ts +64 -0
  136. package/dist/foundations/email-automation/repositories/email-automation-step.repository.d.ts.map +1 -0
  137. package/dist/foundations/email-automation/repositories/email-automation-step.repository.js +156 -0
  138. package/dist/foundations/email-automation/repositories/email-automation-step.repository.js.map +1 -0
  139. package/dist/foundations/email-automation/repositories/email-automation.repository.d.ts +36 -0
  140. package/dist/foundations/email-automation/repositories/email-automation.repository.d.ts.map +1 -0
  141. package/dist/foundations/email-automation/repositories/email-automation.repository.js +93 -0
  142. package/dist/foundations/email-automation/repositories/email-automation.repository.js.map +1 -0
  143. package/dist/foundations/email-automation/repositories/email-opt-out.repository.d.ts +25 -0
  144. package/dist/foundations/email-automation/repositories/email-opt-out.repository.d.ts.map +1 -0
  145. package/dist/foundations/email-automation/repositories/email-opt-out.repository.js +69 -0
  146. package/dist/foundations/email-automation/repositories/email-opt-out.repository.js.map +1 -0
  147. package/dist/foundations/email-automation/services/email-automation-renderer.service.d.ts +35 -0
  148. package/dist/foundations/email-automation/services/email-automation-renderer.service.d.ts.map +1 -0
  149. package/dist/foundations/email-automation/services/email-automation-renderer.service.js +109 -0
  150. package/dist/foundations/email-automation/services/email-automation-renderer.service.js.map +1 -0
  151. package/dist/foundations/email-automation/services/email-automation-sender.service.d.ts +31 -0
  152. package/dist/foundations/email-automation/services/email-automation-sender.service.d.ts.map +1 -0
  153. package/dist/foundations/email-automation/services/email-automation-sender.service.js +129 -0
  154. package/dist/foundations/email-automation/services/email-automation-sender.service.js.map +1 -0
  155. package/dist/foundations/email-automation/services/email-automation-step.service.d.ts +60 -0
  156. package/dist/foundations/email-automation/services/email-automation-step.service.d.ts.map +1 -0
  157. package/dist/foundations/email-automation/services/email-automation-step.service.js +101 -0
  158. package/dist/foundations/email-automation/services/email-automation-step.service.js.map +1 -0
  159. package/dist/foundations/email-automation/services/email-automation-trigger.service.d.ts +28 -0
  160. package/dist/foundations/email-automation/services/email-automation-trigger.service.d.ts.map +1 -0
  161. package/dist/foundations/email-automation/services/email-automation-trigger.service.js +125 -0
  162. package/dist/foundations/email-automation/services/email-automation-trigger.service.js.map +1 -0
  163. package/dist/foundations/email-automation/services/email-automation-unsubscribe.service.d.ts +53 -0
  164. package/dist/foundations/email-automation/services/email-automation-unsubscribe.service.d.ts.map +1 -0
  165. package/dist/foundations/email-automation/services/email-automation-unsubscribe.service.js +67 -0
  166. package/dist/foundations/email-automation/services/email-automation-unsubscribe.service.js.map +1 -0
  167. package/dist/foundations/email-automation/services/email-automation.service.d.ts +53 -0
  168. package/dist/foundations/email-automation/services/email-automation.service.d.ts.map +1 -0
  169. package/dist/foundations/email-automation/services/email-automation.service.js +90 -0
  170. package/dist/foundations/email-automation/services/email-automation.service.js.map +1 -0
  171. package/dist/foundations/email-automation/triggers/built-in.triggers.d.ts +10 -0
  172. package/dist/foundations/email-automation/triggers/built-in.triggers.d.ts.map +1 -0
  173. package/dist/foundations/email-automation/triggers/built-in.triggers.js +50 -0
  174. package/dist/foundations/email-automation/triggers/built-in.triggers.js.map +1 -0
  175. package/dist/foundations/foundations.modules.d.ts +3 -0
  176. package/dist/foundations/foundations.modules.d.ts.map +1 -1
  177. package/dist/foundations/foundations.modules.js +7 -1
  178. package/dist/foundations/foundations.modules.js.map +1 -1
  179. package/dist/foundations/index.d.ts +1 -0
  180. package/dist/foundations/index.d.ts.map +1 -1
  181. package/dist/foundations/index.js +1 -0
  182. package/dist/foundations/index.js.map +1 -1
  183. package/dist/foundations/waitlist/events/waitlist.events.d.ts +7 -0
  184. package/dist/foundations/waitlist/events/waitlist.events.d.ts.map +1 -0
  185. package/dist/foundations/waitlist/events/waitlist.events.js +6 -0
  186. package/dist/foundations/waitlist/events/waitlist.events.js.map +1 -0
  187. package/dist/foundations/waitlist/index.d.ts +2 -0
  188. package/dist/foundations/waitlist/index.d.ts.map +1 -1
  189. package/dist/foundations/waitlist/index.js +4 -1
  190. package/dist/foundations/waitlist/index.js.map +1 -1
  191. package/dist/foundations/waitlist/services/waitlist.service.d.ts +3 -1
  192. package/dist/foundations/waitlist/services/waitlist.service.d.ts.map +1 -1
  193. package/dist/foundations/waitlist/services/waitlist.service.js +27 -14
  194. package/dist/foundations/waitlist/services/waitlist.service.js.map +1 -1
  195. package/package.json +1 -1
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var EmailAutomationModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.EmailAutomationModule = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const conditional_service_decorator_1 = require("../../common/decorators/conditional-service.decorator");
13
+ const registry_1 = require("../../common/registries/registry");
14
+ const cache_module_1 = require("../../core/cache/cache.module");
15
+ const email_module_1 = require("../../core/email/email.module");
16
+ const jsonapi_module_1 = require("../../core/jsonapi/jsonapi.module");
17
+ const security_module_1 = require("../../core/security/security.module");
18
+ const audit_module_1 = require("../audit/audit.module");
19
+ const user_module_1 = require("../user/user.module");
20
+ const email_automation_step_controller_1 = require("./controllers/email-automation-step.controller");
21
+ const email_automation_controller_1 = require("./controllers/email-automation.controller");
22
+ const email_automation_public_controller_1 = require("./controllers/email-automation.public.controller");
23
+ const email_automation_sender_cron_1 = require("./cron/email-automation-sender.cron");
24
+ const email_automation_1 = require("./entities/email-automation");
25
+ const email_automation_enrollment_1 = require("./entities/email-automation-enrollment");
26
+ const email_automation_step_1 = require("./entities/email-automation-step");
27
+ const email_automation_trigger_1 = require("./entities/email-automation-trigger");
28
+ const email_opt_out_1 = require("./entities/email-opt-out");
29
+ const email_automation_config_interface_1 = require("./interfaces/email-automation.config.interface");
30
+ const email_automation_enrollment_repository_1 = require("./repositories/email-automation-enrollment.repository");
31
+ const email_automation_step_repository_1 = require("./repositories/email-automation-step.repository");
32
+ const email_automation_repository_1 = require("./repositories/email-automation.repository");
33
+ const email_opt_out_repository_1 = require("./repositories/email-opt-out.repository");
34
+ const email_automation_renderer_service_1 = require("./services/email-automation-renderer.service");
35
+ const email_automation_sender_service_1 = require("./services/email-automation-sender.service");
36
+ const email_automation_step_service_1 = require("./services/email-automation-step.service");
37
+ const email_automation_trigger_service_1 = require("./services/email-automation-trigger.service");
38
+ const email_automation_unsubscribe_service_1 = require("./services/email-automation-unsubscribe.service");
39
+ const email_automation_service_1 = require("./services/email-automation.service");
40
+ /**
41
+ * EmailAutomationModule — linear email sequences administrators build on a canvas.
42
+ *
43
+ * - Admin CRUD over automations and steps (`EmailAutomationController`,
44
+ * `EmailAutomationStepController`, administrators only)
45
+ * - A public one-click unsubscribe route (`EmailAutomationPublicController`)
46
+ * - A listener that enrols people on the triggers the app declares
47
+ * (`EmailAutomationTriggerService`)
48
+ * - An hourly sender, registered on worker instances only (`EmailAutomationSenderCron`)
49
+ *
50
+ * The library declares no trigger: with no `triggers` the routes exist but nobody
51
+ * is ever enrolled.
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * EmailAutomationModule.forRoot({
56
+ * triggers: [waitlistConfirmedTrigger("waitlist-confirmed"), userActivatedTrigger("registration-completed")],
57
+ * })
58
+ *
59
+ * // Through FoundationsModule, which mounts this module for you
60
+ * FoundationsModule.forRoot({ emailAutomation: { triggers: [...] } })
61
+ * ```
62
+ */
63
+ let EmailAutomationModule = EmailAutomationModule_1 = class EmailAutomationModule {
64
+ onModuleInit() {
65
+ registry_1.modelRegistry.register(email_automation_1.EmailAutomationDescriptor.model);
66
+ registry_1.modelRegistry.register(email_automation_step_1.EmailAutomationStepDescriptor.model);
67
+ registry_1.modelRegistry.register(email_automation_enrollment_1.EmailAutomationEnrollmentDescriptor.model);
68
+ registry_1.modelRegistry.register(email_opt_out_1.EmailOptOutDescriptor.model);
69
+ // Synthetic resource (never a node): buildList needs it in the registry
70
+ registry_1.modelRegistry.register(email_automation_trigger_1.EmailAutomationTriggerDescriptor.model);
71
+ }
72
+ /**
73
+ * Configure the EmailAutomationModule.
74
+ *
75
+ * @param config - Optional configuration merged over DEFAULT_EMAIL_AUTOMATION_CONFIG
76
+ */
77
+ static forRoot(config) {
78
+ const mergedConfig = { ...email_automation_config_interface_1.DEFAULT_EMAIL_AUTOMATION_CONFIG, ...config };
79
+ const configProvider = {
80
+ provide: email_automation_config_interface_1.EMAIL_AUTOMATION_CONFIG,
81
+ useValue: mergedConfig,
82
+ };
83
+ return {
84
+ module: EmailAutomationModule_1,
85
+ imports: [security_module_1.SecurityModule, jsonapi_module_1.JsonApiModule, email_module_1.EmailModule, user_module_1.UserModule, cache_module_1.CacheModule, audit_module_1.AuditModule],
86
+ controllers: [email_automation_controller_1.EmailAutomationController, email_automation_step_controller_1.EmailAutomationStepController, email_automation_public_controller_1.EmailAutomationPublicController],
87
+ providers: [
88
+ configProvider,
89
+ email_automation_1.EmailAutomationDescriptor.model.serialiser,
90
+ email_automation_step_1.EmailAutomationStepDescriptor.model.serialiser,
91
+ email_automation_enrollment_1.EmailAutomationEnrollmentDescriptor.model.serialiser,
92
+ email_opt_out_1.EmailOptOutDescriptor.model.serialiser,
93
+ email_automation_trigger_1.EmailAutomationTriggerDescriptor.model.serialiser,
94
+ email_automation_repository_1.EmailAutomationRepository,
95
+ email_automation_step_repository_1.EmailAutomationStepRepository,
96
+ email_automation_enrollment_repository_1.EmailAutomationEnrollmentRepository,
97
+ email_opt_out_repository_1.EmailOptOutRepository,
98
+ email_automation_service_1.EmailAutomationService,
99
+ email_automation_step_service_1.EmailAutomationStepService,
100
+ email_automation_trigger_service_1.EmailAutomationTriggerService,
101
+ email_automation_renderer_service_1.EmailAutomationRenderer,
102
+ email_automation_sender_service_1.EmailAutomationSenderService,
103
+ email_automation_unsubscribe_service_1.EmailAutomationUnsubscribeService,
104
+ (0, conditional_service_decorator_1.createWorkerProvider)(email_automation_sender_cron_1.EmailAutomationSenderCron),
105
+ ],
106
+ exports: [
107
+ email_automation_service_1.EmailAutomationService,
108
+ email_automation_step_service_1.EmailAutomationStepService,
109
+ email_automation_repository_1.EmailAutomationRepository,
110
+ email_automation_step_repository_1.EmailAutomationStepRepository,
111
+ email_automation_enrollment_repository_1.EmailAutomationEnrollmentRepository,
112
+ email_opt_out_repository_1.EmailOptOutRepository,
113
+ email_automation_config_interface_1.EMAIL_AUTOMATION_CONFIG,
114
+ ],
115
+ };
116
+ }
117
+ };
118
+ exports.EmailAutomationModule = EmailAutomationModule;
119
+ exports.EmailAutomationModule = EmailAutomationModule = EmailAutomationModule_1 = __decorate([
120
+ (0, common_1.Module)({})
121
+ ], EmailAutomationModule);
122
+ //# sourceMappingURL=email-automation.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation.module.js","sourceRoot":"","sources":["../../../src/foundations/email-automation/email-automation.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA+E;AAC/E,yGAA6F;AAC7F,+DAAiE;AACjE,gEAA4D;AAC5D,gEAA4D;AAC5D,sEAAkE;AAClE,yEAAqE;AACrE,wDAAoD;AACpD,qDAAiD;AACjD,qGAA+F;AAC/F,2FAAsF;AACtF,yGAAmG;AACnG,sFAAgF;AAChF,kEAAwE;AACxE,wFAA6F;AAC7F,4EAAiF;AACjF,kFAAuF;AACvF,4DAAiE;AACjE,sGAIwD;AACxD,kHAA4G;AAC5G,sGAAgG;AAChG,4FAAuF;AACvF,sFAAgF;AAChF,oGAAuF;AACvF,gGAA0F;AAC1F,4FAAsF;AACtF,kGAA4F;AAC5F,0GAAoG;AACpG,kFAA6E;AAE7E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEI,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAChC,YAAY;QACV,wBAAa,CAAC,QAAQ,CAAC,4CAAyB,CAAC,KAAK,CAAC,CAAC;QACxD,wBAAa,CAAC,QAAQ,CAAC,qDAA6B,CAAC,KAAK,CAAC,CAAC;QAC5D,wBAAa,CAAC,QAAQ,CAAC,iEAAmC,CAAC,KAAK,CAAC,CAAC;QAClE,wBAAa,CAAC,QAAQ,CAAC,qCAAqB,CAAC,KAAK,CAAC,CAAC;QACpD,wEAAwE;QACxE,wBAAa,CAAC,QAAQ,CAAC,2DAAgC,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,MAAoC;QACjD,MAAM,YAAY,GAA0C,EAAE,GAAG,mEAA+B,EAAE,GAAG,MAAM,EAAE,CAAC;QAE9G,MAAM,cAAc,GAAa;YAC/B,OAAO,EAAE,2DAAuB;YAChC,QAAQ,EAAE,YAAY;SACvB,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,uBAAqB;YAC7B,OAAO,EAAE,CAAC,gCAAc,EAAE,8BAAa,EAAE,0BAAW,EAAE,wBAAU,EAAE,0BAAW,EAAE,0BAAW,CAAC;YAC3F,WAAW,EAAE,CAAC,uDAAyB,EAAE,gEAA6B,EAAE,oEAA+B,CAAC;YACxG,SAAS,EAAE;gBACT,cAAc;gBACd,4CAAyB,CAAC,KAAK,CAAC,UAAU;gBAC1C,qDAA6B,CAAC,KAAK,CAAC,UAAU;gBAC9C,iEAAmC,CAAC,KAAK,CAAC,UAAU;gBACpD,qCAAqB,CAAC,KAAK,CAAC,UAAU;gBACtC,2DAAgC,CAAC,KAAK,CAAC,UAAU;gBACjD,uDAAyB;gBACzB,gEAA6B;gBAC7B,4EAAmC;gBACnC,gDAAqB;gBACrB,iDAAsB;gBACtB,0DAA0B;gBAC1B,gEAA6B;gBAC7B,2DAAuB;gBACvB,8DAA4B;gBAC5B,wEAAiC;gBACjC,IAAA,oDAAoB,EAAC,wDAAyB,CAAC;aAChD;YACD,OAAO,EAAE;gBACP,iDAAsB;gBACtB,0DAA0B;gBAC1B,uDAAyB;gBACzB,gEAA6B;gBAC7B,4EAAmC;gBACnC,gDAAqB;gBACrB,2DAAuB;aACxB;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAzDY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,qBAAqB,CAyDjC"}
@@ -0,0 +1,55 @@
1
+ import { Entity } from "../../../common";
2
+ import type { EmailAutomation } from "./email-automation";
3
+ import type { EmailAutomationStep } from "./email-automation-step";
4
+ export type EmailAutomationEnrollmentStatus = "active" | "completed" | "unsubscribed" | "exited" | "failed";
5
+ export type EmailAutomationEnrollment = Entity & {
6
+ email: string;
7
+ name?: string;
8
+ recipientType: "user" | "waitlist";
9
+ recipientId: string;
10
+ status: EmailAutomationEnrollmentStatus;
11
+ enrolledAt: Date;
12
+ nextSendAt?: Date;
13
+ finishedAt?: Date;
14
+ attempts: number;
15
+ lastError?: string;
16
+ unsubscribeToken?: string;
17
+ currentStepSubject?: string;
18
+ sentCount?: number;
19
+ automation?: EmailAutomation;
20
+ currentStep?: EmailAutomationStep;
21
+ sentSteps?: EmailAutomationStep[];
22
+ };
23
+ export declare const EmailAutomationEnrollmentDescriptor: import("../../../common").EntityDescriptor<EmailAutomationEnrollment, {
24
+ automation: {
25
+ model: import("../../../common").DataMeta;
26
+ direction: "in";
27
+ relationship: string;
28
+ cardinality: "one";
29
+ required: true;
30
+ dtoKey: string;
31
+ };
32
+ currentStep: {
33
+ model: import("../../../common").DataMeta;
34
+ direction: "out";
35
+ relationship: string;
36
+ cardinality: "one";
37
+ required: false;
38
+ dtoKey: string;
39
+ };
40
+ sentSteps: {
41
+ model: import("../../../common").DataMeta;
42
+ direction: "out";
43
+ relationship: string;
44
+ cardinality: "many";
45
+ required: false;
46
+ dtoKey: string;
47
+ fields: {
48
+ name: string;
49
+ type: "datetime";
50
+ required: true;
51
+ }[];
52
+ };
53
+ }>;
54
+ export type EmailAutomationEnrollmentDescriptorType = typeof EmailAutomationEnrollmentDescriptor;
55
+ //# sourceMappingURL=email-automation-enrollment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation-enrollment.d.ts","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation-enrollment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAKnE,MAAM,MAAM,+BAA+B,GAAG,QAAQ,GAAG,WAAW,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5G,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,+BAA+B,CAAC;IACxC,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkE9C,CAAC;AAEH,MAAM,MAAM,uCAAuC,GAAG,OAAO,mCAAmC,CAAC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EmailAutomationEnrollmentDescriptor = void 0;
4
+ const common_1 = require("../../../common");
5
+ const email_automation_enrollment_meta_1 = require("./email-automation-enrollment.meta");
6
+ const email_automation_step_meta_1 = require("./email-automation-step.meta");
7
+ const email_automation_meta_1 = require("./email-automation.meta");
8
+ exports.EmailAutomationEnrollmentDescriptor = (0, common_1.defineEntity)()({
9
+ ...email_automation_enrollment_meta_1.emailAutomationEnrollmentMeta,
10
+ // Enrolments belong to a (non company-scoped) email automation
11
+ isCompanyScoped: false,
12
+ fields: {
13
+ email: { type: "string", required: true },
14
+ name: { type: "string" },
15
+ recipientType: { type: "string", required: true },
16
+ recipientId: { type: "string", required: true },
17
+ status: { type: "string", required: true, default: "active" },
18
+ enrolledAt: { type: "datetime", required: true },
19
+ nextSendAt: { type: "datetime" },
20
+ finishedAt: { type: "datetime" },
21
+ attempts: { type: "number", required: true, default: 0 },
22
+ lastError: { type: "string" },
23
+ unsubscribeToken: { type: "string", excludeFromJsonApi: true, excludeFromSearch: true },
24
+ currentStepSubject: { type: "string" },
25
+ sentCount: { type: "number" },
26
+ },
27
+ computed: {
28
+ currentStepSubject: {
29
+ compute: (params) => {
30
+ if (!params.record?.has?.("currentStepSubject"))
31
+ return params.data?.currentStepSubject;
32
+ return params.record.get("currentStepSubject") ?? undefined;
33
+ },
34
+ },
35
+ sentCount: {
36
+ compute: (params) => {
37
+ if (!params.record?.has?.("sentCount"))
38
+ return params.data?.sentCount;
39
+ const count = params.record.get("sentCount");
40
+ if (count?.toNumber)
41
+ return count.toNumber();
42
+ return Number(count) || 0;
43
+ },
44
+ },
45
+ },
46
+ relationships: {
47
+ automation: {
48
+ model: email_automation_meta_1.emailAutomationMeta,
49
+ direction: "in",
50
+ relationship: "HAS_ENROLLMENT",
51
+ cardinality: "one",
52
+ required: true,
53
+ dtoKey: "automation",
54
+ },
55
+ currentStep: {
56
+ model: email_automation_step_meta_1.emailAutomationStepMeta,
57
+ direction: "out",
58
+ relationship: "AT_STEP",
59
+ cardinality: "one",
60
+ required: false,
61
+ dtoKey: "currentStep",
62
+ },
63
+ sentSteps: {
64
+ model: email_automation_step_meta_1.emailAutomationStepMeta,
65
+ direction: "out",
66
+ relationship: "SENT",
67
+ cardinality: "many",
68
+ required: false,
69
+ dtoKey: "sentSteps",
70
+ fields: [{ name: "sentAt", type: "datetime", required: true }],
71
+ },
72
+ },
73
+ });
74
+ //# sourceMappingURL=email-automation-enrollment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation-enrollment.js","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation-enrollment.ts"],"names":[],"mappings":";;;AAAA,4CAAuD;AAGvD,yFAAmF;AACnF,6EAAuE;AACvE,mEAA8D;AAuBjD,QAAA,mCAAmC,GAAG,IAAA,qBAAY,GAA6B,CAAC;IAC3F,GAAG,gEAA6B;IAEhC,+DAA+D;IAC/D,eAAe,EAAE,KAAK;IAEtB,MAAM,EAAE;QACN,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC7D,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChD,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QAChC,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QAChC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;QACxD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE;QACvF,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC9B;IAED,QAAQ,EAAE;QACR,kBAAkB,EAAE;YAClB,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC;oBAAE,OAAO,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC;gBACxF,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,SAAS,CAAC;YAC9D,CAAC;SACF;QACD,SAAS,EAAE;YACT,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC;oBAAE,OAAO,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC;gBACtE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC7C,IAAI,KAAK,EAAE,QAAQ;oBAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC7C,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;SACF;KACF;IAED,aAAa,EAAE;QACb,UAAU,EAAE;YACV,KAAK,EAAE,2CAAmB;YAC1B,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,gBAAgB;YAC9B,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,YAAY;SACrB;QACD,WAAW,EAAE;YACX,KAAK,EAAE,oDAAuB;YAC9B,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,SAAS;YACvB,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,aAAa;SACtB;QACD,SAAS,EAAE;YACT,KAAK,EAAE,oDAAuB;YAC9B,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,MAAM;YACpB,WAAW,EAAE,MAAM;YACnB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SAC/D;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DataMeta } from "../../../common/interfaces/datamodel.interface";
2
+ export declare const emailAutomationEnrollmentMeta: DataMeta;
3
+ //# sourceMappingURL=email-automation-enrollment.meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation-enrollment.meta.d.ts","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation-enrollment.meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAE1E,eAAO,MAAM,6BAA6B,EAAE,QAK3C,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.emailAutomationEnrollmentMeta = void 0;
4
+ exports.emailAutomationEnrollmentMeta = {
5
+ type: "email-automation-enrollments",
6
+ endpoint: "email-automation-enrollments",
7
+ nodeName: "emailAutomationEnrollment",
8
+ labelName: "EmailAutomationEnrollment",
9
+ };
10
+ //# sourceMappingURL=email-automation-enrollment.meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation-enrollment.meta.js","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation-enrollment.meta.ts"],"names":[],"mappings":";;;AAEa,QAAA,6BAA6B,GAAa;IACrD,IAAI,EAAE,8BAA8B;IACpC,QAAQ,EAAE,8BAA8B;IACxC,QAAQ,EAAE,2BAA2B;IACrC,SAAS,EAAE,2BAA2B;CACvC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { Entity } from "../../../common";
2
+ import type { EmailAutomation } from "./email-automation";
3
+ export type EmailAutomationStep = Entity & {
4
+ subject: string;
5
+ body: string;
6
+ delayHours: number;
7
+ positionX?: number;
8
+ positionY?: number;
9
+ sentCount?: number;
10
+ automation?: EmailAutomation;
11
+ next?: EmailAutomationStep;
12
+ };
13
+ export declare const EmailAutomationStepDescriptor: import("../../../common").EntityDescriptor<EmailAutomationStep, {
14
+ automation: {
15
+ model: import("../../../common").DataMeta;
16
+ direction: "in";
17
+ relationship: string;
18
+ cardinality: "one";
19
+ required: true;
20
+ dtoKey: string;
21
+ };
22
+ next: {
23
+ model: import("../../../common").DataMeta;
24
+ direction: "out";
25
+ relationship: string;
26
+ cardinality: "one";
27
+ required: false;
28
+ dtoKey: string;
29
+ };
30
+ }>;
31
+ export type EmailAutomationStepDescriptorType = typeof EmailAutomationStepDescriptor;
32
+ //# sourceMappingURL=email-automation-step.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation-step.d.ts","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation-step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,IAAI,CAAC,EAAE,mBAAmB,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;EAkDxC,CAAC;AAEH,MAAM,MAAM,iCAAiC,GAAG,OAAO,6BAA6B,CAAC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EmailAutomationStepDescriptor = void 0;
4
+ const common_1 = require("../../../common");
5
+ const email_automation_step_meta_1 = require("./email-automation-step.meta");
6
+ const email_automation_meta_1 = require("./email-automation.meta");
7
+ exports.EmailAutomationStepDescriptor = (0, common_1.defineEntity)()({
8
+ ...email_automation_step_meta_1.emailAutomationStepMeta,
9
+ // Steps belong to a (non company-scoped) email automation
10
+ isCompanyScoped: false,
11
+ fields: {
12
+ subject: { type: "string", required: true },
13
+ body: { type: "string", required: true },
14
+ delayHours: { type: "number", required: true, default: 24 },
15
+ positionX: { type: "number" },
16
+ positionY: { type: "number" },
17
+ sentCount: { type: "number" },
18
+ },
19
+ computed: {
20
+ sentCount: {
21
+ compute: (params) => {
22
+ // A step is also returned as an included resource (`next`, an enrolment's
23
+ // `currentStep`), and the record is shared with the root. The root step reads
24
+ // `sentCount`; an included step reads `<alias>_sentCount`, so it never picks up
25
+ // the root's (or an enrolment's) count.
26
+ const column = !params.name || params.name === email_automation_step_meta_1.emailAutomationStepMeta.nodeName ? "sentCount" : `${params.name}_sentCount`;
27
+ if (!params.record?.has?.(column))
28
+ return params.data?.sentCount;
29
+ const count = params.record.get(column);
30
+ if (count?.toNumber)
31
+ return count.toNumber();
32
+ return Number(count) || 0;
33
+ },
34
+ },
35
+ },
36
+ relationships: {
37
+ automation: {
38
+ model: email_automation_meta_1.emailAutomationMeta,
39
+ direction: "in",
40
+ relationship: "HAS_STEP",
41
+ cardinality: "one",
42
+ required: true,
43
+ dtoKey: "automation",
44
+ },
45
+ next: {
46
+ model: email_automation_step_meta_1.emailAutomationStepMeta,
47
+ direction: "out",
48
+ relationship: "NEXT",
49
+ cardinality: "one",
50
+ required: false,
51
+ dtoKey: "next",
52
+ },
53
+ },
54
+ });
55
+ //# sourceMappingURL=email-automation-step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation-step.js","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation-step.ts"],"names":[],"mappings":";;;AAAA,4CAAuD;AAEvD,6EAAuE;AACvE,mEAA8D;AAajD,QAAA,6BAA6B,GAAG,IAAA,qBAAY,GAAuB,CAAC;IAC/E,GAAG,oDAAuB;IAE1B,0DAA0D;IAC1D,eAAe,EAAE,KAAK;IAEtB,MAAM,EAAE;QACN,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACxC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3D,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC9B;IAED,QAAQ,EAAE;QACR,SAAS,EAAE;YACT,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;gBAClB,0EAA0E;gBAC1E,8EAA8E;gBAC9E,gFAAgF;gBAChF,wCAAwC;gBACxC,MAAM,MAAM,GACV,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,oDAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,YAAY,CAAC;gBAC9G,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;oBAAE,OAAO,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC;gBACjE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,KAAK,EAAE,QAAQ;oBAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC7C,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;SACF;KACF;IAED,aAAa,EAAE;QACb,UAAU,EAAE;YACV,KAAK,EAAE,2CAAmB;YAC1B,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,UAAU;YACxB,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,YAAY;SACrB;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,oDAAuB;YAC9B,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,MAAM;YACpB,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,MAAM;SACf;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DataMeta } from "../../../common/interfaces/datamodel.interface";
2
+ export declare const emailAutomationStepMeta: DataMeta;
3
+ //# sourceMappingURL=email-automation-step.meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation-step.meta.d.ts","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation-step.meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAE1E,eAAO,MAAM,uBAAuB,EAAE,QAKrC,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.emailAutomationStepMeta = void 0;
4
+ exports.emailAutomationStepMeta = {
5
+ type: "email-automation-steps",
6
+ endpoint: "email-automation-steps",
7
+ nodeName: "emailAutomationStep",
8
+ labelName: "EmailAutomationStep",
9
+ };
10
+ //# sourceMappingURL=email-automation-step.meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation-step.meta.js","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation-step.meta.ts"],"names":[],"mappings":";;;AAEa,QAAA,uBAAuB,GAAa;IAC/C,IAAI,EAAE,wBAAwB;IAC9B,QAAQ,EAAE,wBAAwB;IAClC,QAAQ,EAAE,qBAAqB;IAC/B,SAAS,EAAE,qBAAqB;CACjC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Entity } from "../../../common";
2
+ /**
3
+ * Synthetic resource built from the app's trigger config (`id` = `key`); never a node.
4
+ */
5
+ export type EmailAutomationTrigger = Entity & {
6
+ key: string;
7
+ label: string;
8
+ };
9
+ export declare const EmailAutomationTriggerDescriptor: import("../../../common").EntityDescriptor<EmailAutomationTrigger, {}>;
10
+ export type EmailAutomationTriggerDescriptorType = typeof EmailAutomationTriggerDescriptor;
11
+ //# sourceMappingURL=email-automation-trigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation-trigger.d.ts","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,iBAAiB,CAAC;AAGvD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,gCAAgC,wEAQ3C,CAAC;AAEH,MAAM,MAAM,oCAAoC,GAAG,OAAO,gCAAgC,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EmailAutomationTriggerDescriptor = void 0;
4
+ const common_1 = require("../../../common");
5
+ const email_automation_trigger_meta_1 = require("./email-automation-trigger.meta");
6
+ exports.EmailAutomationTriggerDescriptor = (0, common_1.defineEntity)()({
7
+ ...email_automation_trigger_meta_1.emailAutomationTriggerMeta,
8
+ isCompanyScoped: false,
9
+ fields: {
10
+ key: { type: "string", required: true },
11
+ label: { type: "string", required: true },
12
+ },
13
+ relationships: {},
14
+ });
15
+ //# sourceMappingURL=email-automation-trigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation-trigger.js","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation-trigger.ts"],"names":[],"mappings":";;;AAAA,4CAAuD;AACvD,mFAA6E;AAUhE,QAAA,gCAAgC,GAAG,IAAA,qBAAY,GAA0B,CAAC;IACrF,GAAG,0DAA0B;IAC7B,eAAe,EAAE,KAAK;IACtB,MAAM,EAAE;QACN,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC1C;IACD,aAAa,EAAE,EAAE;CAClB,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { DataMeta } from "../../../common/interfaces/datamodel.interface";
2
+ /**
3
+ * Synthetic resource: the triggers an app declares in its config. Never stored as a node.
4
+ */
5
+ export declare const emailAutomationTriggerMeta: DataMeta;
6
+ //# sourceMappingURL=email-automation-trigger.meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation-trigger.meta.d.ts","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation-trigger.meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAKxC,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.emailAutomationTriggerMeta = void 0;
4
+ /**
5
+ * Synthetic resource: the triggers an app declares in its config. Never stored as a node.
6
+ */
7
+ exports.emailAutomationTriggerMeta = {
8
+ type: "email-automation-triggers",
9
+ endpoint: "email-automation-triggers",
10
+ nodeName: "emailAutomationTrigger",
11
+ labelName: "EmailAutomationTrigger",
12
+ };
13
+ //# sourceMappingURL=email-automation-trigger.meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation-trigger.meta.js","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation-trigger.meta.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACU,QAAA,0BAA0B,GAAa;IAClD,IAAI,EAAE,2BAA2B;IACjC,QAAQ,EAAE,2BAA2B;IACrC,QAAQ,EAAE,wBAAwB;IAClC,SAAS,EAAE,wBAAwB;CACpC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { Entity } from "../../../common";
2
+ import type { EmailAutomationStep } from "./email-automation-step";
3
+ export type EmailAutomation = Entity & {
4
+ name: string;
5
+ trigger?: string;
6
+ exitTrigger?: string;
7
+ replyTo?: string;
8
+ isActive: boolean;
9
+ stepCount?: number;
10
+ activeCount?: number;
11
+ completedCount?: number;
12
+ unsubscribedCount?: number;
13
+ steps?: EmailAutomationStep[];
14
+ };
15
+ export declare const EmailAutomationDescriptor: import("../../../common").EntityDescriptor<EmailAutomation, {
16
+ steps: {
17
+ model: import("../../../common").DataMeta;
18
+ direction: "out";
19
+ relationship: string;
20
+ cardinality: "many";
21
+ required: false;
22
+ dtoKey: string;
23
+ };
24
+ }>;
25
+ export type EmailAutomationDescriptorType = typeof EmailAutomationDescriptor;
26
+ //# sourceMappingURL=email-automation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation.d.ts","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC/B,CAAC;AAgBF,eAAO,MAAM,yBAAyB;;;;;;;;;EAmCpC,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,OAAO,yBAAyB,CAAC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EmailAutomationDescriptor = void 0;
4
+ const common_1 = require("../../../common");
5
+ const email_automation_step_meta_1 = require("./email-automation-step.meta");
6
+ const email_automation_meta_1 = require("./email-automation.meta");
7
+ /**
8
+ * Reads a count column produced by `EmailAutomationRepository.buildReturnStatement()`.
9
+ * The column only exists when the automation is the root of the query; as an
10
+ * included resource the stored value (normally absent) is kept.
11
+ */
12
+ const countFromRecord = (column) => ({
13
+ compute: (params) => {
14
+ if (!params.record?.has?.(column))
15
+ return params.data?.[column];
16
+ const count = params.record.get(column);
17
+ if (count?.toNumber)
18
+ return count.toNumber();
19
+ return Number(count) || 0;
20
+ },
21
+ });
22
+ exports.EmailAutomationDescriptor = (0, common_1.defineEntity)()({
23
+ ...email_automation_meta_1.emailAutomationMeta,
24
+ // Email automations are NOT company-scoped - administrators manage them for the whole app
25
+ isCompanyScoped: false,
26
+ fields: {
27
+ name: { type: "string", required: true },
28
+ trigger: { type: "string" },
29
+ exitTrigger: { type: "string" },
30
+ replyTo: { type: "string" },
31
+ isActive: { type: "boolean", required: true, default: false },
32
+ stepCount: { type: "number" },
33
+ activeCount: { type: "number" },
34
+ completedCount: { type: "number" },
35
+ unsubscribedCount: { type: "number" },
36
+ },
37
+ computed: {
38
+ stepCount: countFromRecord("stepCount"),
39
+ activeCount: countFromRecord("activeCount"),
40
+ completedCount: countFromRecord("completedCount"),
41
+ unsubscribedCount: countFromRecord("unsubscribedCount"),
42
+ },
43
+ relationships: {
44
+ steps: {
45
+ model: email_automation_step_meta_1.emailAutomationStepMeta,
46
+ direction: "out",
47
+ relationship: "HAS_STEP",
48
+ cardinality: "many",
49
+ required: false,
50
+ dtoKey: "steps",
51
+ },
52
+ },
53
+ });
54
+ //# sourceMappingURL=email-automation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation.js","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation.ts"],"names":[],"mappings":";;;AAAA,4CAAuD;AAEvD,6EAAuE;AACvE,mEAA8D;AAe9D;;;;GAIG;AACH,MAAM,eAAe,GAAG,CAAC,MAAsC,EAAE,EAAE,CAAC,CAAC;IACnE,OAAO,EAAE,CAAC,MAAkC,EAAE,EAAE;QAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE,QAAQ;YAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,yBAAyB,GAAG,IAAA,qBAAY,GAAmB,CAAC;IACvE,GAAG,2CAAmB;IAEtB,0FAA0F;IAC1F,eAAe,EAAE,KAAK;IAEtB,MAAM,EAAE;QACN,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACxC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7D,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAClC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACtC;IAED,QAAQ,EAAE;QACR,SAAS,EAAE,eAAe,CAAC,WAAW,CAAC;QACvC,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC;QAC3C,cAAc,EAAE,eAAe,CAAC,gBAAgB,CAAC;QACjD,iBAAiB,EAAE,eAAe,CAAC,mBAAmB,CAAC;KACxD;IAED,aAAa,EAAE;QACb,KAAK,EAAE;YACL,KAAK,EAAE,oDAAuB;YAC9B,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,UAAU;YACxB,WAAW,EAAE,MAAM;YACnB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,OAAO;SAChB;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { DataMeta } from "../../../common/interfaces/datamodel.interface";
2
+ export declare const emailAutomationMeta: DataMeta;
3
+ /** Path segment of the public unsubscribe route: `${emailAutomationMeta.endpoint}/${EMAIL_AUTOMATION_UNSUBSCRIBE_SEGMENT}/:token`. */
4
+ export declare const EMAIL_AUTOMATION_UNSUBSCRIBE_SEGMENT = "unsubscribe";
5
+ /** JSON:API `type` of the public unsubscribe request body. */
6
+ export declare const EMAIL_AUTOMATION_UNSUBSCRIBE_TYPE = "email-automation-unsubscribes";
7
+ //# sourceMappingURL=email-automation.meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation.meta.d.ts","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation.meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAE1E,eAAO,MAAM,mBAAmB,EAAE,QAKjC,CAAC;AAEF,sIAAsI;AACtI,eAAO,MAAM,oCAAoC,gBAAgB,CAAC;AAElE,8DAA8D;AAC9D,eAAO,MAAM,iCAAiC,kCAAkC,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EMAIL_AUTOMATION_UNSUBSCRIBE_TYPE = exports.EMAIL_AUTOMATION_UNSUBSCRIBE_SEGMENT = exports.emailAutomationMeta = void 0;
4
+ exports.emailAutomationMeta = {
5
+ type: "email-automations",
6
+ endpoint: "email-automations",
7
+ nodeName: "emailAutomation",
8
+ labelName: "EmailAutomation",
9
+ };
10
+ /** Path segment of the public unsubscribe route: `${emailAutomationMeta.endpoint}/${EMAIL_AUTOMATION_UNSUBSCRIBE_SEGMENT}/:token`. */
11
+ exports.EMAIL_AUTOMATION_UNSUBSCRIBE_SEGMENT = "unsubscribe";
12
+ /** JSON:API `type` of the public unsubscribe request body. */
13
+ exports.EMAIL_AUTOMATION_UNSUBSCRIBE_TYPE = "email-automation-unsubscribes";
14
+ //# sourceMappingURL=email-automation.meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-automation.meta.js","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-automation.meta.ts"],"names":[],"mappings":";;;AAEa,QAAA,mBAAmB,GAAa;IAC3C,IAAI,EAAE,mBAAmB;IACzB,QAAQ,EAAE,mBAAmB;IAC7B,QAAQ,EAAE,iBAAiB;IAC3B,SAAS,EAAE,iBAAiB;CAC7B,CAAC;AAEF,sIAAsI;AACzH,QAAA,oCAAoC,GAAG,aAAa,CAAC;AAElE,8DAA8D;AACjD,QAAA,iCAAiC,GAAG,+BAA+B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Entity } from "../../../common";
2
+ export type EmailOptOut = Entity & {
3
+ email: string;
4
+ optedOutAt: Date;
5
+ source: "link" | "header";
6
+ };
7
+ export declare const EmailOptOutDescriptor: import("../../../common").EntityDescriptor<EmailOptOut, {}>;
8
+ export type EmailOptOutDescriptorType = typeof EmailOptOutDescriptor;
9
+ //# sourceMappingURL=email-opt-out.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-opt-out.d.ts","sourceRoot":"","sources":["../../../../src/foundations/email-automation/entities/email-opt-out.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,iBAAiB,CAAC;AAGvD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,qBAAqB,6DAahC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,OAAO,qBAAqB,CAAC"}