@astralibx/email-rule-engine 1.2.2 → 3.0.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 (109) hide show
  1. package/README.md +93 -46
  2. package/dist/index.d.mts +607 -0
  3. package/dist/index.d.ts +595 -20
  4. package/dist/index.js +1731 -65
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +1699 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +27 -8
  9. package/dist/controllers/index.d.ts +0 -5
  10. package/dist/controllers/index.d.ts.map +0 -1
  11. package/dist/controllers/index.js +0 -12
  12. package/dist/controllers/index.js.map +0 -1
  13. package/dist/controllers/rule.controller.d.ts +0 -13
  14. package/dist/controllers/rule.controller.d.ts.map +0 -1
  15. package/dist/controllers/rule.controller.js +0 -142
  16. package/dist/controllers/rule.controller.js.map +0 -1
  17. package/dist/controllers/runner.controller.d.ts +0 -8
  18. package/dist/controllers/runner.controller.d.ts.map +0 -1
  19. package/dist/controllers/runner.controller.js +0 -22
  20. package/dist/controllers/runner.controller.js.map +0 -1
  21. package/dist/controllers/settings.controller.d.ts +0 -7
  22. package/dist/controllers/settings.controller.d.ts.map +0 -1
  23. package/dist/controllers/settings.controller.js +0 -56
  24. package/dist/controllers/settings.controller.js.map +0 -1
  25. package/dist/controllers/template.controller.d.ts +0 -15
  26. package/dist/controllers/template.controller.d.ts.map +0 -1
  27. package/dist/controllers/template.controller.js +0 -169
  28. package/dist/controllers/template.controller.js.map +0 -1
  29. package/dist/index.d.ts.map +0 -1
  30. package/dist/routes/index.d.ts +0 -16
  31. package/dist/routes/index.d.ts.map +0 -1
  32. package/dist/routes/index.js +0 -47
  33. package/dist/routes/index.js.map +0 -1
  34. package/dist/schemas/index.d.ts +0 -6
  35. package/dist/schemas/index.d.ts.map +0 -1
  36. package/dist/schemas/index.js +0 -14
  37. package/dist/schemas/index.js.map +0 -1
  38. package/dist/schemas/rule-send.schema.d.ts +0 -25
  39. package/dist/schemas/rule-send.schema.d.ts.map +0 -1
  40. package/dist/schemas/rule-send.schema.js +0 -41
  41. package/dist/schemas/rule-send.schema.js.map +0 -1
  42. package/dist/schemas/rule.schema.d.ts +0 -22
  43. package/dist/schemas/rule.schema.d.ts.map +0 -1
  44. package/dist/schemas/rule.schema.js +0 -81
  45. package/dist/schemas/rule.schema.js.map +0 -1
  46. package/dist/schemas/run-log.schema.d.ts +0 -39
  47. package/dist/schemas/run-log.schema.d.ts.map +0 -1
  48. package/dist/schemas/run-log.schema.js +0 -47
  49. package/dist/schemas/run-log.schema.js.map +0 -1
  50. package/dist/schemas/template.schema.d.ts +0 -24
  51. package/dist/schemas/template.schema.d.ts.map +0 -1
  52. package/dist/schemas/template.schema.js +0 -65
  53. package/dist/schemas/template.schema.js.map +0 -1
  54. package/dist/schemas/throttle-config.schema.d.ts +0 -19
  55. package/dist/schemas/throttle-config.schema.d.ts.map +0 -1
  56. package/dist/schemas/throttle-config.schema.js +0 -32
  57. package/dist/schemas/throttle-config.schema.js.map +0 -1
  58. package/dist/services/index.d.ts +0 -5
  59. package/dist/services/index.d.ts.map +0 -1
  60. package/dist/services/index.js +0 -12
  61. package/dist/services/index.js.map +0 -1
  62. package/dist/services/rule-runner.service.d.ts +0 -31
  63. package/dist/services/rule-runner.service.d.ts.map +0 -1
  64. package/dist/services/rule-runner.service.js +0 -279
  65. package/dist/services/rule-runner.service.js.map +0 -1
  66. package/dist/services/rule.service.d.ts +0 -27
  67. package/dist/services/rule.service.d.ts.map +0 -1
  68. package/dist/services/rule.service.js +0 -127
  69. package/dist/services/rule.service.js.map +0 -1
  70. package/dist/services/template-render.service.d.ts +0 -23
  71. package/dist/services/template-render.service.d.ts.map +0 -1
  72. package/dist/services/template-render.service.js +0 -178
  73. package/dist/services/template-render.service.js.map +0 -1
  74. package/dist/services/template.service.d.ts +0 -42
  75. package/dist/services/template.service.d.ts.map +0 -1
  76. package/dist/services/template.service.js +0 -128
  77. package/dist/services/template.service.js.map +0 -1
  78. package/dist/types/config.types.d.ts +0 -85
  79. package/dist/types/config.types.d.ts.map +0 -1
  80. package/dist/types/config.types.js +0 -3
  81. package/dist/types/config.types.js.map +0 -1
  82. package/dist/types/enums.d.ts +0 -43
  83. package/dist/types/enums.d.ts.map +0 -1
  84. package/dist/types/enums.js +0 -40
  85. package/dist/types/enums.js.map +0 -1
  86. package/dist/types/index.d.ts +0 -6
  87. package/dist/types/index.d.ts.map +0 -1
  88. package/dist/types/index.js +0 -11
  89. package/dist/types/index.js.map +0 -1
  90. package/dist/types/rule.types.d.ts +0 -91
  91. package/dist/types/rule.types.d.ts.map +0 -1
  92. package/dist/types/rule.types.js +0 -3
  93. package/dist/types/rule.types.js.map +0 -1
  94. package/dist/types/template.types.d.ts +0 -43
  95. package/dist/types/template.types.d.ts.map +0 -1
  96. package/dist/types/template.types.js +0 -3
  97. package/dist/types/template.types.js.map +0 -1
  98. package/dist/types/throttle.types.d.ts +0 -15
  99. package/dist/types/throttle.types.d.ts.map +0 -1
  100. package/dist/types/throttle.types.js +0 -3
  101. package/dist/types/throttle.types.js.map +0 -1
  102. package/dist/utils/express-helpers.d.ts +0 -4
  103. package/dist/utils/express-helpers.d.ts.map +0 -1
  104. package/dist/utils/express-helpers.js +0 -15
  105. package/dist/utils/express-helpers.js.map +0 -1
  106. package/dist/utils/redis-lock.d.ts +0 -13
  107. package/dist/utils/redis-lock.d.ts.map +0 -1
  108. package/dist/utils/redis-lock.js +0 -36
  109. package/dist/utils/redis-lock.js.map +0 -1
@@ -1,142 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRuleController = createRuleController;
4
- const enums_1 = require("../types/enums");
5
- const express_helpers_1 = require("../utils/express-helpers");
6
- function isValidEnum(enumObj, value) {
7
- return typeof value === 'string' && Object.values(enumObj).includes(value);
8
- }
9
- function getErrorStatus(message) {
10
- if (message.includes('not found'))
11
- return 404;
12
- if (message.includes('mismatch') || message.includes('validation failed') || message.includes('Cannot activate'))
13
- return 400;
14
- return 500;
15
- }
16
- function createRuleController(ruleService, platformValues) {
17
- async function list(_req, res) {
18
- try {
19
- const rules = await ruleService.list();
20
- res.json({ success: true, data: { rules } });
21
- }
22
- catch (error) {
23
- const message = error instanceof Error ? error.message : 'Unknown error';
24
- res.status(500).json({ success: false, error: message });
25
- }
26
- }
27
- async function getById(req, res) {
28
- try {
29
- const rule = await ruleService.getById((0, express_helpers_1.getParam)(req, 'id'));
30
- if (!rule) {
31
- return res.status(404).json({ success: false, error: 'Rule not found' });
32
- }
33
- res.json({ success: true, data: { rule } });
34
- }
35
- catch (error) {
36
- const message = error instanceof Error ? error.message : 'Unknown error';
37
- res.status(500).json({ success: false, error: message });
38
- }
39
- }
40
- async function create(req, res) {
41
- try {
42
- const { name, target, templateId } = req.body;
43
- if (!name || !target || !templateId) {
44
- return res.status(400).json({ success: false, error: 'name, target, and templateId are required' });
45
- }
46
- if (!target.role || !isValidEnum(enums_1.TemplateAudience, target.role)) {
47
- return res.status(400).json({ success: false, error: `Invalid target.role. Must be one of: ${Object.values(enums_1.TemplateAudience).join(', ')}` });
48
- }
49
- if (platformValues && !platformValues.includes(target.platform)) {
50
- return res.status(400).json({ success: false, error: `Invalid target.platform. Must be one of: ${platformValues.join(', ')}` });
51
- }
52
- if (!Array.isArray(target.conditions)) {
53
- return res.status(400).json({ success: false, error: 'target.conditions must be an array' });
54
- }
55
- if (req.body.emailType && !isValidEnum(enums_1.EmailType, req.body.emailType)) {
56
- return res.status(400).json({ success: false, error: `Invalid emailType. Must be one of: ${Object.values(enums_1.EmailType).join(', ')}` });
57
- }
58
- const rule = await ruleService.create(req.body);
59
- res.status(201).json({ success: true, data: { rule } });
60
- }
61
- catch (error) {
62
- const message = error instanceof Error ? error.message : 'Unknown error';
63
- res.status(getErrorStatus(message)).json({ success: false, error: message });
64
- }
65
- }
66
- async function update(req, res) {
67
- try {
68
- const { target, emailType } = req.body;
69
- if (target?.role && !isValidEnum(enums_1.TemplateAudience, target.role)) {
70
- return res.status(400).json({ success: false, error: `Invalid target.role. Must be one of: ${Object.values(enums_1.TemplateAudience).join(', ')}` });
71
- }
72
- if (target?.platform && platformValues && !platformValues.includes(target.platform)) {
73
- return res.status(400).json({ success: false, error: `Invalid target.platform. Must be one of: ${platformValues.join(', ')}` });
74
- }
75
- if (target?.conditions && !Array.isArray(target.conditions)) {
76
- return res.status(400).json({ success: false, error: 'target.conditions must be an array' });
77
- }
78
- if (emailType && !isValidEnum(enums_1.EmailType, emailType)) {
79
- return res.status(400).json({ success: false, error: `Invalid emailType. Must be one of: ${Object.values(enums_1.EmailType).join(', ')}` });
80
- }
81
- const rule = await ruleService.update((0, express_helpers_1.getParam)(req, 'id'), req.body);
82
- if (!rule) {
83
- return res.status(404).json({ success: false, error: 'Rule not found' });
84
- }
85
- res.json({ success: true, data: { rule } });
86
- }
87
- catch (error) {
88
- const message = error instanceof Error ? error.message : 'Unknown error';
89
- res.status(getErrorStatus(message)).json({ success: false, error: message });
90
- }
91
- }
92
- async function remove(req, res) {
93
- try {
94
- const result = await ruleService.delete((0, express_helpers_1.getParam)(req, 'id'));
95
- if (!result.deleted && !result.disabled) {
96
- return res.status(404).json({ success: false, error: 'Rule not found' });
97
- }
98
- res.json({ success: true, data: result });
99
- }
100
- catch (error) {
101
- const message = error instanceof Error ? error.message : 'Unknown error';
102
- res.status(500).json({ success: false, error: message });
103
- }
104
- }
105
- async function toggleActive(req, res) {
106
- try {
107
- const rule = await ruleService.toggleActive((0, express_helpers_1.getParam)(req, 'id'));
108
- if (!rule) {
109
- return res.status(404).json({ success: false, error: 'Rule not found' });
110
- }
111
- res.json({ success: true, data: { rule } });
112
- }
113
- catch (error) {
114
- const message = error instanceof Error ? error.message : 'Unknown error';
115
- res.status(getErrorStatus(message)).json({ success: false, error: message });
116
- }
117
- }
118
- async function dryRun(req, res) {
119
- try {
120
- const result = await ruleService.dryRun((0, express_helpers_1.getParam)(req, 'id'));
121
- res.json({ success: true, data: result });
122
- }
123
- catch (error) {
124
- const message = error instanceof Error ? error.message : 'Unknown error';
125
- res.status(getErrorStatus(message)).json({ success: false, error: message });
126
- }
127
- }
128
- async function runHistory(req, res) {
129
- try {
130
- const limitParam = req.query.limit;
131
- const limit = parseInt(String(Array.isArray(limitParam) ? limitParam[0] : limitParam), 10) || 20;
132
- const logs = await ruleService.getRunHistory(limit);
133
- res.json({ success: true, data: { logs } });
134
- }
135
- catch (error) {
136
- const message = error instanceof Error ? error.message : 'Unknown error';
137
- res.status(500).json({ success: false, error: message });
138
- }
139
- }
140
- return { list, getById, create, update, remove, toggleActive, dryRun, runHistory };
141
- }
142
- //# sourceMappingURL=rule.controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule.controller.js","sourceRoot":"","sources":["../../src/controllers/rule.controller.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { Request, Response } from 'express';
2
- import type { RuleRunnerService } from '../services/rule-runner.service';
3
- import type { EmailRuleRunLogModel } from '../schemas/run-log.schema';
4
- export declare function createRunnerController(runnerService: RuleRunnerService, EmailRuleRunLog: EmailRuleRunLogModel): {
5
- triggerManualRun: (_req: Request, res: Response) => Promise<void>;
6
- getLatestRun: (_req: Request, res: Response) => Promise<void>;
7
- };
8
- //# sourceMappingURL=runner.controller.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/runner.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB;6BAEtE,OAAO,OAAO,QAAQ;yBAK1B,OAAO,OAAO,QAAQ;EAWzD"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRunnerController = createRunnerController;
4
- const enums_1 = require("../types/enums");
5
- function createRunnerController(runnerService, EmailRuleRunLog) {
6
- async function triggerManualRun(_req, res) {
7
- runnerService.runAllRules(enums_1.RunTrigger.Manual).catch(() => { });
8
- res.json({ success: true, data: { message: 'Rule run triggered' } });
9
- }
10
- async function getLatestRun(_req, res) {
11
- try {
12
- const latestRun = await EmailRuleRunLog.findOne().sort({ runAt: -1 });
13
- res.json({ success: true, data: { latestRun } });
14
- }
15
- catch (error) {
16
- const message = error instanceof Error ? error.message : 'Unknown error';
17
- res.status(500).json({ success: false, error: message });
18
- }
19
- }
20
- return { triggerManualRun, getLatestRun };
21
- }
22
- //# sourceMappingURL=runner.controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.controller.js","sourceRoot":"","sources":["../../src/controllers/runner.controller.ts"],"names":[],"mappings":";;AAKA,wDAkBC;AAtBD,0CAA4C;AAI5C,SAAgB,sBAAsB,CAAC,aAAgC,EAAE,eAAqC;IAE5G,KAAK,UAAU,gBAAgB,CAAC,IAAa,EAAE,GAAa;QAC1D,aAAa,CAAC,WAAW,CAAC,kBAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,UAAU,YAAY,CAAC,IAAa,EAAE,GAAa;QACtD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACtE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,CAAC;AAC5C,CAAC"}
@@ -1,7 +0,0 @@
1
- import { Request, Response } from 'express';
2
- import type { EmailThrottleConfigModel } from '../schemas/throttle-config.schema';
3
- export declare function createSettingsController(EmailThrottleConfig: EmailThrottleConfigModel): {
4
- getThrottleConfig: (_req: Request, res: Response) => Promise<void>;
5
- updateThrottleConfig: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
6
- };
7
- //# sourceMappingURL=settings.controller.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settings.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/settings.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAElF,wBAAgB,wBAAwB,CAAC,mBAAmB,EAAE,wBAAwB;8BAE7C,OAAO,OAAO,QAAQ;gCAUpB,OAAO,OAAO,QAAQ;EAiDhE"}
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createSettingsController = createSettingsController;
4
- function createSettingsController(EmailThrottleConfig) {
5
- async function getThrottleConfig(_req, res) {
6
- try {
7
- const config = await EmailThrottleConfig.getConfig();
8
- res.json({ success: true, data: { config } });
9
- }
10
- catch (error) {
11
- const message = error instanceof Error ? error.message : 'Unknown error';
12
- res.status(500).json({ success: false, error: message });
13
- }
14
- }
15
- async function updateThrottleConfig(req, res) {
16
- try {
17
- const { maxPerUserPerDay, maxPerUserPerWeek, minGapDays } = req.body;
18
- const updates = {};
19
- if (maxPerUserPerDay !== undefined) {
20
- if (!Number.isInteger(maxPerUserPerDay) || maxPerUserPerDay < 1) {
21
- return res.status(400).json({ success: false, error: 'maxPerUserPerDay must be a positive integer' });
22
- }
23
- updates.maxPerUserPerDay = maxPerUserPerDay;
24
- }
25
- if (maxPerUserPerWeek !== undefined) {
26
- if (!Number.isInteger(maxPerUserPerWeek) || maxPerUserPerWeek < 1) {
27
- return res.status(400).json({ success: false, error: 'maxPerUserPerWeek must be a positive integer' });
28
- }
29
- updates.maxPerUserPerWeek = maxPerUserPerWeek;
30
- }
31
- if (minGapDays !== undefined) {
32
- if (!Number.isInteger(minGapDays) || minGapDays < 0) {
33
- return res.status(400).json({ success: false, error: 'minGapDays must be a non-negative integer' });
34
- }
35
- updates.minGapDays = minGapDays;
36
- }
37
- if (Object.keys(updates).length === 0) {
38
- return res.status(400).json({ success: false, error: 'No valid fields to update' });
39
- }
40
- const config = await EmailThrottleConfig.getConfig();
41
- const finalDaily = updates.maxPerUserPerDay ?? config.maxPerUserPerDay;
42
- const finalWeekly = updates.maxPerUserPerWeek ?? config.maxPerUserPerWeek;
43
- if (finalWeekly < finalDaily) {
44
- return res.status(400).json({ success: false, error: 'maxPerUserPerWeek must be >= maxPerUserPerDay' });
45
- }
46
- const updated = await EmailThrottleConfig.findByIdAndUpdate(config._id, { $set: updates }, { new: true });
47
- res.json({ success: true, data: { config: updated } });
48
- }
49
- catch (error) {
50
- const message = error instanceof Error ? error.message : 'Unknown error';
51
- res.status(500).json({ success: false, error: message });
52
- }
53
- }
54
- return { getThrottleConfig, updateThrottleConfig };
55
- }
56
- //# sourceMappingURL=settings.controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settings.controller.js","sourceRoot":"","sources":["../../src/controllers/settings.controller.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { Request, Response } from 'express';
2
- import type { TemplateService } from '../services/template.service';
3
- export declare function createTemplateController(templateService: TemplateService, platformValues?: string[]): {
4
- list: (req: Request, res: Response) => Promise<void>;
5
- getById: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
6
- create: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
7
- update: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
8
- remove: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
9
- toggleActive: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
10
- preview: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
11
- previewRaw: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
12
- validate: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
13
- sendTestEmail: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
14
- };
15
- //# sourceMappingURL=template.controller.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/template.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAapE,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE;gBAEzE,OAAO,OAAO,QAAQ;mBAgBnB,OAAO,OAAO,QAAQ;kBAavB,OAAO,OAAO,QAAQ;kBAyBtB,OAAO,OAAO,QAAQ;kBAatB,OAAO,OAAO,QAAQ;wBAahB,OAAO,OAAO,QAAQ;mBAa3B,OAAO,OAAO,QAAQ;sBAcnB,OAAO,OAAO,QAAQ;oBAcxB,OAAO,OAAO,QAAQ;yBAcjB,OAAO,OAAO,QAAQ;EAkBzD"}
@@ -1,169 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createTemplateController = createTemplateController;
4
- const enums_1 = require("../types/enums");
5
- const express_helpers_1 = require("../utils/express-helpers");
6
- function isValidEnum(enumObj, value) {
7
- return typeof value === 'string' && Object.values(enumObj).includes(value);
8
- }
9
- function getErrorStatus(message) {
10
- if (message.includes('already exists') || message.includes('validation failed'))
11
- return 400;
12
- if (message.includes('not found'))
13
- return 404;
14
- return 500;
15
- }
16
- function createTemplateController(templateService, platformValues) {
17
- async function list(req, res) {
18
- try {
19
- const { category, audience, platform, isActive } = req.query;
20
- const templates = await templateService.list({
21
- category: category,
22
- audience: audience,
23
- platform: platform,
24
- isActive: isActive !== undefined ? isActive === 'true' : undefined
25
- });
26
- res.json({ success: true, data: { templates } });
27
- }
28
- catch (error) {
29
- const message = error instanceof Error ? error.message : 'Unknown error';
30
- res.status(500).json({ success: false, error: message });
31
- }
32
- }
33
- async function getById(req, res) {
34
- try {
35
- const template = await templateService.getById((0, express_helpers_1.getParam)(req, 'id'));
36
- if (!template) {
37
- return res.status(404).json({ success: false, error: 'Template not found' });
38
- }
39
- res.json({ success: true, data: { template } });
40
- }
41
- catch (error) {
42
- const message = error instanceof Error ? error.message : 'Unknown error';
43
- res.status(500).json({ success: false, error: message });
44
- }
45
- }
46
- async function create(req, res) {
47
- try {
48
- const { name, subject, body, category, audience, platform } = req.body;
49
- if (!name || !subject || !body || !category || !audience || !platform) {
50
- return res.status(400).json({ success: false, error: 'name, subject, body, category, audience, and platform are required' });
51
- }
52
- if (!isValidEnum(enums_1.TemplateCategory, category)) {
53
- return res.status(400).json({ success: false, error: `Invalid category. Must be one of: ${Object.values(enums_1.TemplateCategory).join(', ')}` });
54
- }
55
- if (!isValidEnum(enums_1.TemplateAudience, audience)) {
56
- return res.status(400).json({ success: false, error: `Invalid audience. Must be one of: ${Object.values(enums_1.TemplateAudience).join(', ')}` });
57
- }
58
- if (platformValues && !platformValues.includes(platform)) {
59
- return res.status(400).json({ success: false, error: `Invalid platform. Must be one of: ${platformValues.join(', ')}` });
60
- }
61
- const template = await templateService.create(req.body);
62
- res.status(201).json({ success: true, data: { template } });
63
- }
64
- catch (error) {
65
- const message = error instanceof Error ? error.message : 'Unknown error';
66
- res.status(getErrorStatus(message)).json({ success: false, error: message });
67
- }
68
- }
69
- async function update(req, res) {
70
- try {
71
- const template = await templateService.update((0, express_helpers_1.getParam)(req, 'id'), req.body);
72
- if (!template) {
73
- return res.status(404).json({ success: false, error: 'Template not found' });
74
- }
75
- res.json({ success: true, data: { template } });
76
- }
77
- catch (error) {
78
- const message = error instanceof Error ? error.message : 'Unknown error';
79
- res.status(getErrorStatus(message)).json({ success: false, error: message });
80
- }
81
- }
82
- async function remove(req, res) {
83
- try {
84
- const deleted = await templateService.delete((0, express_helpers_1.getParam)(req, 'id'));
85
- if (!deleted) {
86
- return res.status(404).json({ success: false, error: 'Template not found' });
87
- }
88
- res.json({ success: true });
89
- }
90
- catch (error) {
91
- const message = error instanceof Error ? error.message : 'Unknown error';
92
- res.status(500).json({ success: false, error: message });
93
- }
94
- }
95
- async function toggleActive(req, res) {
96
- try {
97
- const template = await templateService.toggleActive((0, express_helpers_1.getParam)(req, 'id'));
98
- if (!template) {
99
- return res.status(404).json({ success: false, error: 'Template not found' });
100
- }
101
- res.json({ success: true, data: { template } });
102
- }
103
- catch (error) {
104
- const message = error instanceof Error ? error.message : 'Unknown error';
105
- res.status(500).json({ success: false, error: message });
106
- }
107
- }
108
- async function preview(req, res) {
109
- try {
110
- const { sampleData } = req.body;
111
- const result = await templateService.preview((0, express_helpers_1.getParam)(req, 'id'), sampleData || {});
112
- if (!result) {
113
- return res.status(404).json({ success: false, error: 'Template not found' });
114
- }
115
- res.json({ success: true, data: result });
116
- }
117
- catch (error) {
118
- const message = error instanceof Error ? error.message : 'Unknown error';
119
- res.status(500).json({ success: false, error: message });
120
- }
121
- }
122
- async function previewRaw(req, res) {
123
- try {
124
- const { subject, body, textBody, sampleData } = req.body;
125
- if (!subject || !body) {
126
- return res.status(400).json({ success: false, error: 'subject and body are required' });
127
- }
128
- const result = await templateService.previewRaw(subject, body, sampleData || {}, textBody);
129
- res.json({ success: true, data: result });
130
- }
131
- catch (error) {
132
- const message = error instanceof Error ? error.message : 'Unknown error';
133
- res.status(500).json({ success: false, error: message });
134
- }
135
- }
136
- async function validate(req, res) {
137
- try {
138
- const { body: templateBody } = req.body;
139
- if (!templateBody) {
140
- return res.status(400).json({ success: false, error: 'body is required' });
141
- }
142
- const result = await templateService.validate(templateBody);
143
- res.json({ success: true, data: result });
144
- }
145
- catch (error) {
146
- const message = error instanceof Error ? error.message : 'Unknown error';
147
- res.status(500).json({ success: false, error: message });
148
- }
149
- }
150
- async function sendTestEmail(req, res) {
151
- try {
152
- const { testEmail, sampleData } = req.body;
153
- if (!testEmail) {
154
- return res.status(400).json({ success: false, error: 'testEmail is required' });
155
- }
156
- const result = await templateService.sendTestEmail((0, express_helpers_1.getParam)(req, 'id'), testEmail, sampleData || {});
157
- if (!result.success) {
158
- return res.status(400).json({ success: false, error: result.error });
159
- }
160
- res.json({ success: true });
161
- }
162
- catch (error) {
163
- const message = error instanceof Error ? error.message : 'Unknown error';
164
- res.status(500).json({ success: false, error: message });
165
- }
166
- }
167
- return { list, getById, create, update, remove, toggleActive, preview, previewRaw, validate, sendTestEmail };
168
- }
169
- //# sourceMappingURL=template.controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.controller.js","sourceRoot":"","sources":["../../src/controllers/template.controller.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAA6B,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/F,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAA6B,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAA+B,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAClG,OAAO,EAAmC,KAAK,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAClH,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,iBAAiB,CAAC;IAC1B,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE;QACN,aAAa,EAAE,kBAAkB,CAAC;QAClC,SAAS,EAAE,cAAc,CAAC;QAC1B,aAAa,EAAE,kBAAkB,CAAC;QAClC,eAAe,EAAE,oBAAoB,CAAC;QACtC,mBAAmB,EAAE,wBAAwB,CAAC;KAC/C,CAAC;CACH;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CAmDpF;AAED,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACrH,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,16 +0,0 @@
1
- import { Router } from 'express';
2
- import type { TemplateService } from '../services/template.service';
3
- import type { RuleService } from '../services/rule.service';
4
- import type { RuleRunnerService } from '../services/rule-runner.service';
5
- import type { EmailRuleRunLogModel } from '../schemas/run-log.schema';
6
- import type { EmailThrottleConfigModel } from '../schemas/throttle-config.schema';
7
- export interface RoutesDeps {
8
- templateService: TemplateService;
9
- ruleService: RuleService;
10
- runnerService: RuleRunnerService;
11
- EmailRuleRunLog: EmailRuleRunLogModel;
12
- EmailThrottleConfig: EmailThrottleConfigModel;
13
- platformValues?: string[];
14
- }
15
- export declare function createRoutes(deps: RoutesDeps): Router;
16
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAKjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAElF,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,iBAAiB,CAAC;IACjC,eAAe,EAAE,oBAAoB,CAAC;IACtC,mBAAmB,EAAE,wBAAwB,CAAC;IAC9C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CA4CrD"}
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRoutes = createRoutes;
4
- const express_1 = require("express");
5
- const template_controller_1 = require("../controllers/template.controller");
6
- const rule_controller_1 = require("../controllers/rule.controller");
7
- const runner_controller_1 = require("../controllers/runner.controller");
8
- const settings_controller_1 = require("../controllers/settings.controller");
9
- function createRoutes(deps) {
10
- const router = (0, express_1.Router)();
11
- const templateCtrl = (0, template_controller_1.createTemplateController)(deps.templateService, deps.platformValues);
12
- const ruleCtrl = (0, rule_controller_1.createRuleController)(deps.ruleService, deps.platformValues);
13
- const runnerCtrl = (0, runner_controller_1.createRunnerController)(deps.runnerService, deps.EmailRuleRunLog);
14
- const settingsCtrl = (0, settings_controller_1.createSettingsController)(deps.EmailThrottleConfig);
15
- const templateRouter = (0, express_1.Router)();
16
- templateRouter.get('/', templateCtrl.list);
17
- templateRouter.post('/', templateCtrl.create);
18
- templateRouter.post('/validate', templateCtrl.validate);
19
- templateRouter.post('/preview', templateCtrl.previewRaw);
20
- templateRouter.get('/:id', templateCtrl.getById);
21
- templateRouter.put('/:id', templateCtrl.update);
22
- templateRouter.delete('/:id', templateCtrl.remove);
23
- templateRouter.patch('/:id/toggle', templateCtrl.toggleActive);
24
- templateRouter.post('/:id/preview', templateCtrl.preview);
25
- templateRouter.post('/:id/test-email', templateCtrl.sendTestEmail);
26
- const ruleRouter = (0, express_1.Router)();
27
- ruleRouter.get('/', ruleCtrl.list);
28
- ruleRouter.post('/', ruleCtrl.create);
29
- ruleRouter.get('/run-history', ruleCtrl.runHistory);
30
- ruleRouter.get('/:id', ruleCtrl.getById);
31
- ruleRouter.patch('/:id', ruleCtrl.update);
32
- ruleRouter.delete('/:id', ruleCtrl.remove);
33
- ruleRouter.patch('/:id/toggle', ruleCtrl.toggleActive);
34
- ruleRouter.post('/:id/dry-run', ruleCtrl.dryRun);
35
- const runnerRouter = (0, express_1.Router)();
36
- runnerRouter.post('/', runnerCtrl.triggerManualRun);
37
- runnerRouter.get('/status', runnerCtrl.getLatestRun);
38
- const settingsRouter = (0, express_1.Router)();
39
- settingsRouter.get('/throttle', settingsCtrl.getThrottleConfig);
40
- settingsRouter.patch('/throttle', settingsCtrl.updateThrottleConfig);
41
- router.use('/templates', templateRouter);
42
- router.use('/rules', ruleRouter);
43
- router.use('/runner', runnerRouter);
44
- router.use('/settings', settingsRouter);
45
- return router;
46
- }
47
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- export { createEmailTemplateSchema, type IEmailTemplate, type EmailTemplateDocument, type EmailTemplateModel, type EmailTemplateStatics } from './template.schema';
2
- export { createEmailRuleSchema, type IEmailRule, type EmailRuleDocument, type EmailRuleModel, type EmailRuleStatics } from './rule.schema';
3
- export { createEmailRuleSendSchema, type IEmailRuleSend, type EmailRuleSendDocument, type EmailRuleSendModel, type EmailRuleSendStatics } from './rule-send.schema';
4
- export { createEmailRuleRunLogSchema, type IEmailRuleRunLog, type EmailRuleRunLogDocument, type EmailRuleRunLogModel, type EmailRuleRunLogStatics } from './run-log.schema';
5
- export { createEmailThrottleConfigSchema, type IEmailThrottleConfig, type EmailThrottleConfigDocument, type EmailThrottleConfigModel, type EmailThrottleConfigStatics } from './throttle-config.schema';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,KAAK,cAAc,EAAE,KAAK,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACnK,OAAO,EAAE,qBAAqB,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC3I,OAAO,EAAE,yBAAyB,EAAE,KAAK,cAAc,EAAE,KAAK,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACpK,OAAO,EAAE,2BAA2B,EAAE,KAAK,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC5K,OAAO,EAAE,+BAA+B,EAAE,KAAK,oBAAoB,EAAE,KAAK,2BAA2B,EAAE,KAAK,wBAAwB,EAAE,KAAK,0BAA0B,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createEmailThrottleConfigSchema = exports.createEmailRuleRunLogSchema = exports.createEmailRuleSendSchema = exports.createEmailRuleSchema = exports.createEmailTemplateSchema = void 0;
4
- var template_schema_1 = require("./template.schema");
5
- Object.defineProperty(exports, "createEmailTemplateSchema", { enumerable: true, get: function () { return template_schema_1.createEmailTemplateSchema; } });
6
- var rule_schema_1 = require("./rule.schema");
7
- Object.defineProperty(exports, "createEmailRuleSchema", { enumerable: true, get: function () { return rule_schema_1.createEmailRuleSchema; } });
8
- var rule_send_schema_1 = require("./rule-send.schema");
9
- Object.defineProperty(exports, "createEmailRuleSendSchema", { enumerable: true, get: function () { return rule_send_schema_1.createEmailRuleSendSchema; } });
10
- var run_log_schema_1 = require("./run-log.schema");
11
- Object.defineProperty(exports, "createEmailRuleRunLogSchema", { enumerable: true, get: function () { return run_log_schema_1.createEmailRuleRunLogSchema; } });
12
- var throttle_config_schema_1 = require("./throttle-config.schema");
13
- Object.defineProperty(exports, "createEmailThrottleConfigSchema", { enumerable: true, get: function () { return throttle_config_schema_1.createEmailThrottleConfigSchema; } });
14
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":";;;AAAA,qDAAmK;AAA1J,4HAAA,yBAAyB,OAAA;AAClC,6CAA2I;AAAlI,oHAAA,qBAAqB,OAAA;AAC9B,uDAAoK;AAA3J,6HAAA,yBAAyB,OAAA;AAClC,mDAA4K;AAAnK,6HAAA,2BAA2B,OAAA;AACpC,mEAAwM;AAA/L,yIAAA,+BAA+B,OAAA"}