@codee-sh/medusa-plugin-automations 1.0.9 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/src/admin/_chunks/{__admin-extensions__-BZrUHl9N → __admin-extensions__-CzXvFkp_} +5 -1
- package/.medusa/server/src/admin/_chunks/{__admin-extensions__-BV7n9V1I → __admin-extensions__-FXmyAEGa} +5 -1
- package/.medusa/server/src/admin/_chunks/{base-config-D0IqhDVr → base-config-CjqEuEOM} +7 -9
- package/.medusa/server/src/admin/_chunks/{base-config-CbWD1XMk → base-config-fXd1L6SD} +7 -9
- package/.medusa/server/src/admin/index.js +1 -1
- package/.medusa/server/src/admin/index.mjs +1 -1
- package/.medusa/server/src/api/admin/mpn/automations/actions/route.js +1 -20
- package/.medusa/server/src/api/admin/mpn/automations/available-actions/route.js +20 -3
- package/.medusa/server/src/modules/mpn-automation/index.js +6 -3
- package/.medusa/server/src/modules/mpn-automation/service.js +261 -0
- package/.medusa/server/src/modules/mpn-automation/services-local/base-action-service.js +117 -0
- package/.medusa/server/src/modules/mpn-automation/services-local/email-action-service.js +130 -0
- package/.medusa/server/src/modules/mpn-automation/services-local/slack-action-service.js +84 -0
- package/.medusa/server/src/providers/slack/service.js +4 -7
- package/.medusa/server/src/subscribers/mpn.automation.action.email.executed.js +9 -2
- package/.medusa/server/src/subscribers/mpn.automation.action.slack.executed.js +8 -6
- package/.medusa/server/src/subscribers/product-updated.js +1 -2
- package/.medusa/server/src/utils/validate-rules.js +8 -8
- package/.medusa/server/src/workflows/mpn-automation/run-automation.js +5 -6
- package/.medusa/server/src/workflows/mpn-automation/run-email-action.js +7 -7
- package/.medusa/server/src/workflows/mpn-automation/run-slack-action.js +12 -13
- package/.medusa/server/src/workflows/notifications/index.js +2 -1
- package/.medusa/server/src/workflows/notifications/send-email.js +7 -7
- package/.medusa/server/src/workflows/notifications/send-slack.js +7 -7
- package/.medusa/server/src/workflows/notifications/steps/index.js +2 -1
- package/.medusa/server/src/workflows/notifications/steps/send-email.js +66 -53
- package/.medusa/server/src/workflows/notifications/steps/send-slack.js +15 -16
- package/package.json +4 -3
- package/.medusa/server/src/modules/mpn-automation/services/base-action-service.js +0 -98
- package/.medusa/server/src/modules/mpn-automation/services/email-action-service.js +0 -94
- package/.medusa/server/src/modules/mpn-automation/services/index.js +0 -15
- package/.medusa/server/src/modules/mpn-automation/services/service.js +0 -356
- package/.medusa/server/src/modules/mpn-automation/services/slack-action-service.js +0 -57
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.sendNotificationSlackWorkflow = exports.sendNotificationSlackWorkflowId = void 0;
|
|
4
4
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
5
|
const send_slack_1 = require("./steps/send-slack");
|
|
6
|
-
exports.
|
|
6
|
+
exports.sendNotificationSlackWorkflowId = "send-notification-slack";
|
|
7
7
|
/**
|
|
8
8
|
* Universal workflow that sends a slack notification.
|
|
9
9
|
*
|
|
@@ -16,7 +16,7 @@ exports.sendSlackWorkflowId = "send-slack";
|
|
|
16
16
|
* @example
|
|
17
17
|
* ```typescript
|
|
18
18
|
* // Standalone usage
|
|
19
|
-
* const { result } = await
|
|
19
|
+
* const { result } = await sendNotificationSlackWorkflow(container).run({
|
|
20
20
|
* input: {
|
|
21
21
|
* settings: {
|
|
22
22
|
* templateName: "inventory-level",
|
|
@@ -33,13 +33,13 @@ exports.sendSlackWorkflowId = "send-slack";
|
|
|
33
33
|
* })
|
|
34
34
|
* ```
|
|
35
35
|
*/
|
|
36
|
-
exports.
|
|
36
|
+
exports.sendNotificationSlackWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.sendNotificationSlackWorkflowId, (input) => {
|
|
37
37
|
const result = (0, send_slack_1.sendSlackStep)({
|
|
38
|
-
settings: input.settings,
|
|
39
|
-
context: input.context,
|
|
40
38
|
eventName: input.eventName,
|
|
39
|
+
context: input.context,
|
|
41
40
|
contextType: input.contextType,
|
|
41
|
+
options: input.options
|
|
42
42
|
});
|
|
43
43
|
return new workflows_sdk_1.WorkflowResponse(result);
|
|
44
44
|
});
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1zbGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvbm90aWZpY2F0aW9ucy9zZW5kLXNsYWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUkwQztBQUMxQyxtREFBa0Q7QUFlckMsUUFBQSwrQkFBK0IsR0FBRyx5QkFBeUIsQ0FBQTtBQUV4RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQUNVLFFBQUEsNkJBQTZCLEdBQUcsSUFBQSw4QkFBYyxFQUN6RCx1Q0FBK0IsRUFDL0IsQ0FBQyxLQUEyQyxFQUFFLEVBQUU7SUFDOUMsTUFBTSxNQUFNLEdBQUcsSUFBQSwwQkFBYSxFQUFDO1FBQzNCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztRQUMxQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1FBQzlCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztLQUN2QixDQUFDLENBQUE7SUFFRixPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDckMsQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./send-email"), exports);
|
|
18
|
-
|
|
18
|
+
__exportStar(require("./send-slack"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL25vdGlmaWNhdGlvbnMvc3RlcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUE0QjtBQUM1QiwrQ0FBNEIifQ==
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sendEmailStep = exports.sendEmailStepId = void 0;
|
|
4
4
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
-
const utils_1 = require("@medusajs/
|
|
6
|
-
const
|
|
7
|
-
const utils_2 = require("@medusajs/utils");
|
|
5
|
+
const utils_1 = require("@medusajs/utils");
|
|
6
|
+
const utils_2 = require("@medusajs/framework/utils");
|
|
8
7
|
exports.sendEmailStepId = "send-email";
|
|
9
8
|
/**
|
|
10
9
|
* Universal step that sends an email notification.
|
|
@@ -12,10 +11,9 @@ exports.sendEmailStepId = "send-email";
|
|
|
12
11
|
* This step can be used independently or as part of automation workflows.
|
|
13
12
|
*
|
|
14
13
|
* Configuration:
|
|
15
|
-
* -
|
|
14
|
+
* - templateId: Required - ID or name of the email template to use
|
|
16
15
|
* - to: Required - Recipient email address
|
|
17
16
|
* - locale: Optional - Locale for translations (default: "pl")
|
|
18
|
-
* - customTemplate: Optional - Path to custom template function
|
|
19
17
|
* - subject: Optional - Custom subject (otherwise uses template default)
|
|
20
18
|
* - template: Optional - Template identifier for notification (defaults to templateName)
|
|
21
19
|
* - resourceId: Optional - Resource ID for notification tracking
|
|
@@ -25,8 +23,8 @@ exports.sendEmailStepId = "send-email";
|
|
|
25
23
|
* ```typescript
|
|
26
24
|
* // Standalone usage
|
|
27
25
|
* const result = await sendEmailStep({
|
|
28
|
-
*
|
|
29
|
-
*
|
|
26
|
+
* options: {
|
|
27
|
+
* templateId: "inventory-level",
|
|
30
28
|
* to: "admin@example.com",
|
|
31
29
|
* locale: "pl"
|
|
32
30
|
* },
|
|
@@ -37,78 +35,93 @@ exports.sendEmailStepId = "send-email";
|
|
|
37
35
|
* ```
|
|
38
36
|
*/
|
|
39
37
|
exports.sendEmailStep = (0, workflows_sdk_1.createStep)(exports.sendEmailStepId, async (input, { container }) => {
|
|
40
|
-
const {
|
|
38
|
+
const { options, templateData, contextType, eventName, } = input;
|
|
41
39
|
// Validate required config
|
|
42
|
-
if (!
|
|
40
|
+
if (!options.templateName) {
|
|
43
41
|
return new workflows_sdk_1.StepResponse({
|
|
44
42
|
success: false,
|
|
45
43
|
error: "templateName is required in config",
|
|
46
44
|
});
|
|
47
45
|
}
|
|
48
|
-
if (!
|
|
46
|
+
if (!options.to) {
|
|
49
47
|
return new workflows_sdk_1.StepResponse({
|
|
50
48
|
success: false,
|
|
51
49
|
error: "to (recipient email) is required in config",
|
|
52
50
|
});
|
|
53
51
|
}
|
|
54
52
|
try {
|
|
55
|
-
const notificationModuleService = container.resolve(
|
|
56
|
-
const
|
|
57
|
-
const
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
const
|
|
61
|
-
const
|
|
62
|
-
const
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
//
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
53
|
+
const notificationModuleService = container.resolve(utils_2.Modules.NOTIFICATION);
|
|
54
|
+
const templateName = options.templateName;
|
|
55
|
+
const to = options.to;
|
|
56
|
+
const locale = options.locale || "pl";
|
|
57
|
+
const customSubject = options.subject;
|
|
58
|
+
const resourceId = options.resourceId || "unknown";
|
|
59
|
+
const resourceType = options.resourceType || "email.notification";
|
|
60
|
+
const channel = options.channel || "email";
|
|
61
|
+
const triggerType = options.triggerType || "system";
|
|
62
|
+
// // Prepare render options
|
|
63
|
+
// const renderOptions: TemplateOptionsType = {
|
|
64
|
+
// locale,
|
|
65
|
+
// theme: pluginOptions?.theme,
|
|
66
|
+
// customTranslations:
|
|
67
|
+
// pluginOptions?.customTranslations?.[templateName],
|
|
68
|
+
// contextType: contextType,
|
|
69
|
+
// }
|
|
72
70
|
// Load custom template function if specified
|
|
73
|
-
let customTemplateFunction
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
71
|
+
// let customTemplateFunction:
|
|
72
|
+
// | ((
|
|
73
|
+
// data: TemplateData,
|
|
74
|
+
// options: TemplateOptionsType
|
|
75
|
+
// ) => React.ReactElement<any>)
|
|
76
|
+
// | undefined
|
|
77
|
+
// if (options.customTemplate) {
|
|
78
|
+
// try {
|
|
79
|
+
// // Dynamic import of custom template
|
|
80
|
+
// // config.customTemplate should be a relative path like "../emails/pos-email-inventory"
|
|
81
|
+
// // or absolute path from project root like "src/emails/pos-email-inventory"
|
|
82
|
+
// const customTemplateModule = await import(
|
|
83
|
+
// options.customTemplate
|
|
84
|
+
// )
|
|
85
|
+
// customTemplateFunction =
|
|
86
|
+
// customTemplateModule.default ||
|
|
87
|
+
// customTemplateModule.createCustomTemplate ||
|
|
88
|
+
// customTemplateModule.createTemplate
|
|
89
|
+
// if (!customTemplateFunction) {
|
|
90
|
+
// throw new MedusaError(
|
|
91
|
+
// MedusaError.Types.INVALID_DATA,
|
|
92
|
+
// `Custom template module from ${options.customTemplate} does not export a default function or createCustomTemplate/createTemplate`
|
|
93
|
+
// )
|
|
94
|
+
// }
|
|
95
|
+
// } catch (error: any) {
|
|
96
|
+
// if (error instanceof MedusaError) {
|
|
97
|
+
// throw error
|
|
98
|
+
// }
|
|
99
|
+
// throw new MedusaError(
|
|
100
|
+
// MedusaError.Types.INVALID_DATA,
|
|
101
|
+
// `Failed to load custom template from ${options.customTemplate}: ${error?.message || "Unknown error"}`
|
|
102
|
+
// )
|
|
103
|
+
// }
|
|
104
|
+
// }
|
|
95
105
|
// Use action handler for template rendering
|
|
96
106
|
const mpnAutomationService = container.resolve("mpnAutomation");
|
|
97
107
|
const emailHandler = mpnAutomationService.getActionHandler("email");
|
|
98
108
|
if (!emailHandler?.handler?.renderTemplate) {
|
|
99
|
-
throw new
|
|
109
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Email action handler not found or does not support template rendering`);
|
|
100
110
|
}
|
|
101
111
|
const { html, text, subject } = await emailHandler.handler.renderTemplate({
|
|
102
112
|
templateName: templateName,
|
|
103
113
|
context: templateData,
|
|
104
114
|
contextType: contextType,
|
|
105
|
-
options:
|
|
115
|
+
options: {
|
|
116
|
+
locale: locale,
|
|
117
|
+
},
|
|
118
|
+
container: container,
|
|
106
119
|
});
|
|
107
120
|
// Send notification
|
|
108
121
|
const notificationResult = await notificationModuleService.createNotifications({
|
|
109
122
|
to: to,
|
|
110
123
|
channel: channel,
|
|
111
|
-
template:
|
|
124
|
+
template: options.template || templateName,
|
|
112
125
|
trigger_type: triggerType,
|
|
113
126
|
resource_id: resourceId,
|
|
114
127
|
resource_type: resourceType,
|
|
@@ -132,4 +145,4 @@ exports.sendEmailStep = (0, workflows_sdk_1.createStep)(exports.sendEmailStepId,
|
|
|
132
145
|
});
|
|
133
146
|
}
|
|
134
147
|
});
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1lbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvbm90aWZpY2F0aW9ucy9zdGVwcy9zZW5kLWVtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFFQUcwQztBQUMxQywyQ0FBNkM7QUFDN0MscURBQW1EO0FBOEJ0QyxRQUFBLGVBQWUsR0FBRyxZQUFZLENBQUE7QUFFM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFDVSxRQUFBLGFBQWEsR0FBRyxJQUFBLDBCQUFVLEVBQ3JDLHVCQUFlLEVBQ2YsS0FBSyxFQUNILEtBQXlCLEVBQ3pCLEVBQUUsU0FBUyxFQUFFLEVBQytCLEVBQUU7SUFDOUMsTUFBTSxFQUNKLE9BQU8sRUFDUCxZQUFZLEVBQ1osV0FBVyxFQUNYLFNBQVMsR0FDVixHQUFHLEtBQUssQ0FBQTtJQUVULDJCQUEyQjtJQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLE9BQU8sSUFBSSw0QkFBWSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsS0FBSyxFQUFFLG9DQUFvQztTQUM1QyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNoQixPQUFPLElBQUksNEJBQVksQ0FBQztZQUN0QixPQUFPLEVBQUUsS0FBSztZQUNkLEtBQUssRUFBRSw0Q0FBNEM7U0FDcEQsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0seUJBQXlCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDakQsZUFBTyxDQUFDLFlBQVksQ0FDckIsQ0FBQTtRQUVELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUE7UUFDekMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQTtRQUNyQixNQUFNLE1BQU0s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
|
|
@@ -29,24 +29,23 @@ exports.sendSlackStepId = "send-slack";
|
|
|
29
29
|
* ```
|
|
30
30
|
*/
|
|
31
31
|
exports.sendSlackStep = (0, workflows_sdk_1.createStep)(exports.sendSlackStepId, async (input, { container }) => {
|
|
32
|
-
const {
|
|
32
|
+
const { options, context, contextType, eventName } = input;
|
|
33
33
|
// Validate required config
|
|
34
|
-
if (!
|
|
34
|
+
if (!options.templateName) {
|
|
35
35
|
return new workflows_sdk_1.StepResponse({
|
|
36
36
|
success: false,
|
|
37
|
-
error: "
|
|
37
|
+
error: "templateName is required in config",
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
try {
|
|
41
41
|
const notificationModuleService = container.resolve(utils_1.Modules.NOTIFICATION);
|
|
42
|
-
const
|
|
43
|
-
const to =
|
|
44
|
-
const locale =
|
|
45
|
-
const resourceId =
|
|
46
|
-
const resourceType =
|
|
47
|
-
const channel =
|
|
48
|
-
const triggerType =
|
|
49
|
-
const backendUrl = settings.backendUrl || "";
|
|
42
|
+
const templateName = options.templateName;
|
|
43
|
+
const to = options.to || "slack-channel";
|
|
44
|
+
const locale = options.locale || "pl";
|
|
45
|
+
const resourceId = options.resourceId || "unknown";
|
|
46
|
+
const resourceType = options.resourceType || "slack.notification";
|
|
47
|
+
const channel = "slack";
|
|
48
|
+
const triggerType = options.triggerType || "system";
|
|
50
49
|
// Use action handler for template rendering
|
|
51
50
|
const mpnAutomationService = container.resolve("mpnAutomation");
|
|
52
51
|
const slackHandler = mpnAutomationService.getActionHandler("slack");
|
|
@@ -54,19 +53,19 @@ exports.sendSlackStep = (0, workflows_sdk_1.createStep)(exports.sendSlackStepId,
|
|
|
54
53
|
throw new utils_2.MedusaError(utils_2.MedusaError.Types.NOT_FOUND, `Slack action handler not found or does not support template rendering`);
|
|
55
54
|
}
|
|
56
55
|
const { text, blocks } = await slackHandler.handler.renderTemplate({
|
|
57
|
-
templateName:
|
|
56
|
+
templateName: templateName,
|
|
58
57
|
context: context,
|
|
59
58
|
contextType: contextType,
|
|
60
59
|
options: {
|
|
61
|
-
locale: locale
|
|
62
|
-
backendUrl: backendUrl,
|
|
60
|
+
locale: locale
|
|
63
61
|
},
|
|
62
|
+
container: container
|
|
64
63
|
});
|
|
65
64
|
// Send notification
|
|
66
65
|
const notificationResult = await notificationModuleService.createNotifications({
|
|
67
66
|
to: to,
|
|
68
67
|
channel: channel,
|
|
69
|
-
template:
|
|
68
|
+
template: templateName,
|
|
70
69
|
trigger_type: triggerType,
|
|
71
70
|
resource_id: resourceId,
|
|
72
71
|
resource_type: resourceType,
|
|
@@ -91,4 +90,4 @@ exports.sendSlackStep = (0, workflows_sdk_1.createStep)(exports.sendSlackStepId,
|
|
|
91
90
|
});
|
|
92
91
|
}
|
|
93
92
|
});
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1zbGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvbm90aWZpY2F0aW9ucy9zdGVwcy9zZW5kLXNsYWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcwQztBQUMxQyxxREFBbUQ7QUFDbkQsMkNBQTZDO0FBOEJoQyxRQUFBLGVBQWUsR0FBRyxZQUFZLENBQUE7QUFFM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDVSxRQUFBLGFBQWEsR0FBRyxJQUFBLDBCQUFVLEVBQ3JDLHVCQUFlLEVBQ2YsS0FBSyxFQUNILEtBQXlCLEVBQ3pCLEVBQUUsU0FBUyxFQUFFLEVBQytCLEVBQUU7SUFDOUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUNoRCxLQUFLLENBQUE7SUFFUCwyQkFBMkI7SUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixPQUFPLElBQUksNEJBQVksQ0FBQztZQUN0QixPQUFPLEVBQUUsS0FBSztZQUNkLEtBQUssRUFBRSxvQ0FBb0M7U0FDNUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0seUJBQXlCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDakQsZUFBTyxDQUFDLFlBQVksQ0FDckIsQ0FBQTtRQUVELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUE7UUFDekMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxlQUFlLENBQUE7UUFDeEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUE7UUFDckMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsSUFBSSxTQUFTLENBQUE7UUFDbEQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxvQkFBb0IsQ0FBQTtRQUNqRSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDdkIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUE7UUFFbkQsNENBQTRDO1FBQzVDLE1BQU0sb0JBQW9CLEdBQ3hCLFNBQVMsQ0FBQyxPQUFPLENBQ2YsZUFBZSxDQUNoQixDQUFBO1FBQ0gsTUFBTSxZQUFZLEdBQ2hCLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRWhELElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLHVFQUF1RSxDQUN4RSxDQUFBO1FBQ0gsQ0FBQztRQUVELE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQ3BCLE1BQU0sWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFDeEMsWUFBWSxFQUFFLFlBQVk7WUFDMUIsT0FBTyxFQUFFLE9BQU87WUFDaEIsV0FBVyxFQUFFLFdBQVc7WUFDeEIsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSxNQUFNO2FBQ2Y7WUFDRCxTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDLENBQUE7UUFFSixvQkFBb0I7UUFDcEIsTUFBTSxrQkFBa0IsR0FDdEIsTUFBTSx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FDakQ7WUFDRSxFQUFFLEVBQUUsRUFBRTtZQUNOLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFlBQVksRUFBRSxXQUFXO1lBQ3pCLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLGFBQWEsRUFBRSxZQUFZO1lBQzNCLElBQUksRUFBRTtnQkFDSixHQUFHLE9BQU87YUFDWDtZQUNELE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsSUFBSTtnQkFDVixNQUFNO2FBQ3FCO1NBQzlCLENBQ0YsQ0FBQTtRQUVILE9BQU8sSUFBSSw0QkFBWSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsY0FBYyxFQUFFLGtCQUFrQixFQUFFLEVBQUU7U0FDdkMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUM3QyxPQUFPLElBQUksNEJBQVksQ0FBQztZQUN0QixPQUFPLEVBQUUsS0FBSztZQUNkLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLHdCQUF3QjtTQUNsRCxDQUFDLENBQUE7SUFDSixDQUFDO0FBQ0gsQ0FBQyxDQUNGLENBQUEifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codee-sh/medusa-plugin-automations",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"description": "Medusa plugin for automations.",
|
|
5
5
|
"author": "Codee (https://codee.dev)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -49,11 +49,12 @@
|
|
|
49
49
|
"changeset": "changeset",
|
|
50
50
|
"version": "changeset version",
|
|
51
51
|
"release": "changeset publish",
|
|
52
|
-
"release:manual": "npm run build && npm publish --access public"
|
|
52
|
+
"release:manual": "npm run build && npm publish --access public",
|
|
53
|
+
"prepare-release": "bash scripts/prepare-release.sh"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"@changesets/cli": "^2.29.8",
|
|
56
|
-
"@codee-sh/medusa-plugin-notification-emails": "0.
|
|
57
|
+
"@codee-sh/medusa-plugin-notification-emails": "1.0.0",
|
|
57
58
|
"@medusajs/admin-sdk": "2.8.8",
|
|
58
59
|
"@medusajs/cli": "2.8.8",
|
|
59
60
|
"@medusajs/framework": "2.8.8",
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseActionService = void 0;
|
|
4
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
-
/**
|
|
6
|
-
* Base action service class
|
|
7
|
-
*
|
|
8
|
-
* @param id - Action ID (default: "base")
|
|
9
|
-
* @param label - Action label (default: "Base")
|
|
10
|
-
* @param description - Action description (default: "")
|
|
11
|
-
* @param configComponentKey - Action config component key (default: "BaseConfigComponent")
|
|
12
|
-
* @param fields - Action fields (default: [])
|
|
13
|
-
*/
|
|
14
|
-
class BaseActionService {
|
|
15
|
-
constructor() {
|
|
16
|
-
this.id = "base";
|
|
17
|
-
this.label = "Base";
|
|
18
|
-
this.description = "";
|
|
19
|
-
this.configComponentKey = "BaseConfigComponent";
|
|
20
|
-
// Fields for the action configuration rendered in the admin panel then saved in the action config
|
|
21
|
-
this.fields = [];
|
|
22
|
-
// Template registry - each service manages its own templates
|
|
23
|
-
this.templates_ = new Map();
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Register a template for this service
|
|
27
|
-
* @param name - Template name
|
|
28
|
-
* @param renderer - Template renderer function
|
|
29
|
-
*/
|
|
30
|
-
registerTemplate(name, renderer) {
|
|
31
|
-
this.templates_.set(name, renderer);
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Get template renderer by name
|
|
35
|
-
* @param name - Template name
|
|
36
|
-
* @returns Template renderer or undefined
|
|
37
|
-
*/
|
|
38
|
-
getTemplate(name) {
|
|
39
|
-
return this.templates_.get(name);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Initialize default templates (override in subclasses)
|
|
43
|
-
* Called automatically in constructor
|
|
44
|
-
*/
|
|
45
|
-
initializeTemplates() {
|
|
46
|
-
// Override in subclasses to register default templates
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Helper method to add templateName field to fields array
|
|
50
|
-
* Call this in constructor or fields initialization if you need template selection
|
|
51
|
-
*
|
|
52
|
-
* @param options - Template options array (will be populated dynamically by service if eventName is provided)
|
|
53
|
-
* @param defaultValue - Default template value
|
|
54
|
-
* @returns FieldConfig for template
|
|
55
|
-
*/
|
|
56
|
-
addTemplateNameField(options = [], defaultValue) {
|
|
57
|
-
return {
|
|
58
|
-
name: "templateName",
|
|
59
|
-
key: "templateName",
|
|
60
|
-
label: "Template Name",
|
|
61
|
-
type: "select",
|
|
62
|
-
required: true,
|
|
63
|
-
options: options,
|
|
64
|
-
defaultValue: defaultValue,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Function that executes the action in the workflow actions
|
|
69
|
-
*
|
|
70
|
-
* @param trigger - Trigger object
|
|
71
|
-
* @param action - Action object
|
|
72
|
-
* @param context - Context object
|
|
73
|
-
* @param container - Container object
|
|
74
|
-
* @param eventName - Event name
|
|
75
|
-
* @param contextType - Context type determining structure of data in context
|
|
76
|
-
* @returns object with actionId, actionType and success status
|
|
77
|
-
*/
|
|
78
|
-
async executeAction({ trigger, action, context, container, eventName, contextType, }) {
|
|
79
|
-
const eventBusService = container.resolve(utils_1.Modules.EVENT_BUS);
|
|
80
|
-
await eventBusService.emit({
|
|
81
|
-
name: eventName,
|
|
82
|
-
data: {
|
|
83
|
-
eventName: eventName,
|
|
84
|
-
action: action,
|
|
85
|
-
trigger: trigger.id,
|
|
86
|
-
context: context,
|
|
87
|
-
contextType: contextType,
|
|
88
|
-
},
|
|
89
|
-
});
|
|
90
|
-
return {
|
|
91
|
-
actionId: action.id,
|
|
92
|
-
actionType: action.action_type,
|
|
93
|
-
success: true,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
exports.BaseActionService = BaseActionService;
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hY3Rpb24tc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL21wbi1hdXRvbWF0aW9uL3NlcnZpY2VzL2Jhc2UtYWN0aW9uLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEscURBQW1EO0FBRW5EOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSxpQkFBaUI7SUFBOUI7UUFDRSxPQUFFLEdBQUcsTUFBTSxDQUFBO1FBQ1gsVUFBSyxHQUFHLE1BQU0sQ0FBQTtRQUNkLGdCQUFXLEdBQUcsRUFBRSxDQUFBO1FBRWhCLHVCQUFrQixHQUFHLHFCQUFxQixDQUFBO1FBRTFDLGtHQUFrRztRQUNsRyxXQUFNLEdBQWtCLEVBQUUsQ0FBQTtRQUUxQiw2REFBNkQ7UUFDbkQsZUFBVSxHQUNsQixJQUFJLEdBQUcsRUFBRSxDQUFBO0lBcUdiLENBQUM7SUFuR0M7Ozs7T0FJRztJQUNILGdCQUFnQixDQUNkLElBQVksRUFDWixRQUFhO1FBRWIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLElBQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sbUJBQW1CO1FBQzNCLHVEQUF1RDtJQUN6RCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNPLG9CQUFvQixDQUM1QixVQUFrRCxFQUFFLEVBQ3BELFlBQXFCO1FBRXJCLE9BQU87WUFDTCxJQUFJLEVBQUUsY0FBYztZQUNwQixHQUFHLEVBQUUsY0FBYztZQUNuQixLQUFLLEVBQUUsZUFBZTtZQUN0QixJQUFJLEVBQUUsUUFBaUI7WUFDdkIsUUFBUSxFQUFFLElBQUk7WUFDZCxPQUFPLEVBQUUsT0FBTztZQUNoQixZQUFZLEVBQUUsWUFBWTtTQUMzQixDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQ2xCLE9BQU8sRUFDUCxNQUFNLEVBQ04sT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsV0FBVyxHQVFaO1FBQ0MsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDdkMsZUFBTyxDQUFDLFNBQVMsQ0FDbEIsQ0FBQTtRQUVELE1BQU0sZUFBZSxDQUFDLElBQUksQ0FBQztZQUN6QixJQUFJLEVBQUUsU0FBUztZQUNmLElBQUksRUFBRTtnQkFDSixTQUFTLEVBQUUsU0FBUztnQkFDcEIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUNuQixPQUFPLEVBQUUsT0FBTztnQkFDaEIsV0FBVyxFQUFFLFdBQVc7YUFDekI7U0FDRixDQUFDLENBQUE7UUFFRixPQUFPO1lBQ0wsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ25CLFVBQVUsRUFBRSxNQUFNLENBQUMsV0FBVztZQUM5QixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUFqSEQsOENBaUhDIn0=
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EmailActionService = void 0;
|
|
4
|
-
const base_action_service_1 = require("./base-action-service");
|
|
5
|
-
const emails_1 = require("@codee-sh/medusa-plugin-notification-emails/templates/emails");
|
|
6
|
-
const utils_1 = require("@codee-sh/medusa-plugin-notification-emails/utils");
|
|
7
|
-
class EmailActionService extends base_action_service_1.BaseActionService {
|
|
8
|
-
constructor() {
|
|
9
|
-
super();
|
|
10
|
-
this.id = "email";
|
|
11
|
-
this.label = "Email";
|
|
12
|
-
this.fields = [
|
|
13
|
-
{
|
|
14
|
-
name: "to",
|
|
15
|
-
key: "to",
|
|
16
|
-
label: "To",
|
|
17
|
-
type: "email",
|
|
18
|
-
required: true,
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
name: "subject",
|
|
22
|
-
key: "subject",
|
|
23
|
-
label: "Subject",
|
|
24
|
-
type: "text",
|
|
25
|
-
required: true,
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
name: "body",
|
|
29
|
-
key: "body",
|
|
30
|
-
label: "Body",
|
|
31
|
-
type: "textarea",
|
|
32
|
-
required: true,
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: "bcc",
|
|
36
|
-
key: "bcc",
|
|
37
|
-
label: "BCC",
|
|
38
|
-
type: "email",
|
|
39
|
-
required: false,
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
name: "cc",
|
|
43
|
-
key: "cc",
|
|
44
|
-
label: "CC",
|
|
45
|
-
type: "email",
|
|
46
|
-
required: false,
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: "replyTo",
|
|
50
|
-
key: "replyTo",
|
|
51
|
-
label: "Reply To",
|
|
52
|
-
type: "email",
|
|
53
|
-
required: false,
|
|
54
|
-
},
|
|
55
|
-
// Add templateName field - options will be populated dynamically by service based on eventName
|
|
56
|
-
this.addTemplateNameField(),
|
|
57
|
-
];
|
|
58
|
-
this.initializeTemplates();
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Initialize default email templates
|
|
62
|
-
* Email templates are managed by @codee-sh/medusa-plugin-notification-emails
|
|
63
|
-
* This method can be used to register custom templates if needed
|
|
64
|
-
*/
|
|
65
|
-
initializeTemplates() {
|
|
66
|
-
// Email engine already has all prebuild templates registered
|
|
67
|
-
// You can register custom templates here if needed:
|
|
68
|
-
// emailEngine.registerTemplate("custom-template", {
|
|
69
|
-
// ...emailEngine.getBaseTemplate(),
|
|
70
|
-
// getConfig: () => ({ blocks: [...], translations: {...} })
|
|
71
|
-
// })
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Render email template using external plugin
|
|
75
|
-
* @param params - Template rendering parameters
|
|
76
|
-
* @returns Rendered email template with html, text, and subject
|
|
77
|
-
*/
|
|
78
|
-
async renderTemplate(params) {
|
|
79
|
-
const { templateName, context, contextType, options = {} } = params;
|
|
80
|
-
const transformedContext = (0, utils_1.transformContext)(contextType, context);
|
|
81
|
-
const result = await emails_1.emailService.render({
|
|
82
|
-
templateName,
|
|
83
|
-
data: transformedContext,
|
|
84
|
-
options: options || {},
|
|
85
|
-
});
|
|
86
|
-
return {
|
|
87
|
-
html: result.html,
|
|
88
|
-
text: result.text,
|
|
89
|
-
subject: result.subject,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
exports.EmailActionService = EmailActionService;
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtYWN0aW9uLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tcG4tYXV0b21hdGlvbi9zZXJ2aWNlcy9lbWFpbC1hY3Rpb24tc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrREFBeUQ7QUFDekQseUZBQTJGO0FBQzNGLDZFQUFvRjtBQVFwRixNQUFhLGtCQUFtQixTQUFRLHVDQUFpQjtJQUl2RDtRQUNFLEtBQUssRUFBRSxDQUFBO1FBSlQsT0FBRSxHQUFHLE9BQU8sQ0FBQTtRQUNaLFVBQUssR0FBRyxPQUFPLENBQUE7UUFPZixXQUFNLEdBQWtCO1lBQ3RCO2dCQUNFLElBQUksRUFBRSxJQUFJO2dCQUNWLEdBQUcsRUFBRSxJQUFJO2dCQUNULEtBQUssRUFBRSxJQUFJO2dCQUNYLElBQUksRUFBRSxPQUFnQjtnQkFDdEIsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxTQUFTO2dCQUNmLEdBQUcsRUFBRSxTQUFTO2dCQUNkLEtBQUssRUFBRSxTQUFTO2dCQUNoQixJQUFJLEVBQUUsTUFBZTtnQkFDckIsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxNQUFNO2dCQUNaLEdBQUcsRUFBRSxNQUFNO2dCQUNYLEtBQUssRUFBRSxNQUFNO2dCQUNiLElBQUksRUFBRSxVQUFtQjtnQkFDekIsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxLQUFLO2dCQUNYLEdBQUcsRUFBRSxLQUFLO2dCQUNWLEtBQUssRUFBRSxLQUFLO2dCQUNaLElBQUksRUFBRSxPQUFnQjtnQkFDdEIsUUFBUSxFQUFFLEtBQUs7YUFDaEI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsSUFBSTtnQkFDVixHQUFHLEVBQUUsSUFBSTtnQkFDVCxLQUFLLEVBQUUsSUFBSTtnQkFDWCxJQUFJLEVBQUUsT0FBZ0I7Z0JBQ3RCLFFBQVEsRUFBRSxLQUFLO2FBQ2hCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsR0FBRyxFQUFFLFNBQVM7Z0JBQ2QsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLElBQUksRUFBRSxPQUFnQjtnQkFDdEIsUUFBUSxFQUFFLEtBQUs7YUFDaEI7WUFDRCwrRkFBK0Y7WUFDL0YsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1NBQzVCLENBQUE7UUFoREMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7SUFDNUIsQ0FBQztJQWlERDs7OztPQUlHO0lBQ08sbUJBQW1CO1FBQzNCLDZEQUE2RDtRQUM3RCxvREFBb0Q7UUFDcEQsb0RBQW9EO1FBQ3BELHNDQUFzQztRQUN0Qyw4REFBOEQ7UUFDOUQsS0FBSztJQUNQLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUtwQjtRQUtDLE1BQU0sRUFDSixZQUFZLEVBQ1osT0FBTyxFQUNQLFdBQVcsRUFDWCxPQUFPLEdBQUcsRUFBRSxFQUNiLEdBQUcsTUFBTSxDQUFBO1FBRVYsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLHdCQUFnQixFQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUVqRSxNQUFNLE1BQU0sR0FBRyxNQUFNLHFCQUFZLENBQUMsTUFBTSxDQUFDO1lBQ3ZDLFlBQVk7WUFDWixJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLE9BQU8sRUFBRSxPQUFPLElBQUksRUFBRTtTQUN2QixDQUFDLENBQUE7UUFFRixPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87U0FDeEIsQ0FBQTtJQUNILENBQUM7Q0FDRjtBQTFHRCxnREEwR0MifQ==
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.EmailActionService = exports.SlackActionService = exports.BaseActionService = exports.MpnAutomationService = void 0;
|
|
7
|
-
const service_1 = __importDefault(require("./service"));
|
|
8
|
-
Object.defineProperty(exports, "MpnAutomationService", { enumerable: true, get: function () { return service_1.default; } });
|
|
9
|
-
var base_action_service_1 = require("./base-action-service");
|
|
10
|
-
Object.defineProperty(exports, "BaseActionService", { enumerable: true, get: function () { return base_action_service_1.BaseActionService; } });
|
|
11
|
-
var slack_action_service_1 = require("./slack-action-service");
|
|
12
|
-
Object.defineProperty(exports, "SlackActionService", { enumerable: true, get: function () { return slack_action_service_1.SlackActionService; } });
|
|
13
|
-
var email_action_service_1 = require("./email-action-service");
|
|
14
|
-
Object.defineProperty(exports, "EmailActionService", { enumerable: true, get: function () { return email_action_service_1.EmailActionService; } });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tcG4tYXV0b21hdGlvbi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx3REFBMkQ7QUFDbEQscUdBRFcsaUJBQW9CLE9BQ1g7QUFFN0IsNkRBQXlEO0FBQWhELHdIQUFBLGlCQUFpQixPQUFBO0FBQzFCLCtEQUEyRDtBQUFsRCwwSEFBQSxrQkFBa0IsT0FBQTtBQUMzQiwrREFBMkQ7QUFBbEQsMEhBQUEsa0JBQWtCLE9BQUEifQ==
|