@codee-sh/medusa-plugin-automations 1.0.0 → 1.0.1
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__-CQZdTnuf +10091 -0
- package/.medusa/server/src/admin/_chunks/__admin-extensions__-DIUFmida +10089 -0
- package/.medusa/server/src/admin/_chunks/base-config-0lbnQWYz +7875 -0
- package/.medusa/server/src/admin/_chunks/base-config-DsBoNoxD +7892 -0
- package/.medusa/server/src/admin/index.js +2 -9930
- package/.medusa/server/src/admin/index.mjs +2 -9927
- package/.medusa/server/src/api/admin/mpn/automations/route.js +9 -11
- package/.medusa/server/src/api/middlewares.js +4 -2
- package/.medusa/server/src/hooks/api/available-actions/actions.js +1 -1
- package/.medusa/server/src/modules/mpn-automation/actions-handlers/base-action-handler.js +32 -0
- package/.medusa/server/src/modules/mpn-automation/actions-handlers/email-action-handler.js +71 -0
- package/.medusa/server/src/modules/mpn-automation/actions-handlers/index.js +10 -0
- package/.medusa/server/src/modules/mpn-automation/actions-handlers/slack-action-handler.js +43 -0
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251207172856.js +24 -0
- package/.medusa/server/src/modules/mpn-automation/models/mpn_automation_trigger.js +4 -2
- package/.medusa/server/src/modules/mpn-automation/services/service.js +71 -15
- package/.medusa/server/src/modules/mpn-automation/types/action-handler.js +3 -0
- package/.medusa/server/src/modules/mpn-automation/types/index.js +20 -0
- package/.medusa/server/src/modules/mpn-automation/{interfaces.js → types/interfaces.js} +1 -1
- package/.medusa/server/src/modules/mpn-automation/{types.js → types/types.js} +1 -1
- package/.medusa/server/src/providers/slack/index.js +8 -0
- package/.medusa/server/src/providers/slack/service.js +99 -0
- package/.medusa/server/src/subscribers/mpn.automation.action.email.executed.js +5 -4
- package/.medusa/server/src/subscribers/mpn.automation.action.slack.executed.js +56 -0
- package/.medusa/server/src/utils/types/index.js +3 -3
- package/.medusa/server/src/workflows/mpn-automation/delete-automation.js +14 -0
- package/.medusa/server/src/workflows/mpn-automation/index.js +2 -1
- package/.medusa/server/src/workflows/mpn-automation/send-slack-action.js +69 -0
- package/.medusa/server/src/workflows/mpn-automation/steps/delete-automation.js +12 -0
- package/.medusa/server/src/workflows/mpn-automation/steps/index.js +2 -1
- package/.medusa/server/src/workflows/mpn-automation/steps/run-automation-actions.js +26 -33
- package/.medusa/server/src/workflows/notifications/index.js +1 -1
- package/.medusa/server/src/workflows/notifications/send-slack.js +44 -0
- package/.medusa/server/src/workflows/notifications/steps/send-slack.js +74 -0
- package/README.md +4 -4
- package/package.json +1 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.config = void 0;
|
|
4
|
+
exports.default = mpnAutomationActionSlackExecutedHandler;
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const send_slack_action_1 = require("../workflows/mpn-automation/send-slack-action");
|
|
7
|
+
/**
|
|
8
|
+
* Event name for the MPN automation action slack executed event.
|
|
9
|
+
*/
|
|
10
|
+
const eventName = "mpn.automation.action.slack.executed";
|
|
11
|
+
/**
|
|
12
|
+
* Subscriber that runs the slack action workflow for the MPN automation system.
|
|
13
|
+
*
|
|
14
|
+
* This subscriber is triggered when an slack action is executed by the MPN automation system.
|
|
15
|
+
* It runs the slack action workflow to send a slack notification.
|
|
16
|
+
*
|
|
17
|
+
* @param event - The event data containing the action and context.
|
|
18
|
+
* @param container - The container instance.
|
|
19
|
+
*/
|
|
20
|
+
async function mpnAutomationActionSlackExecutedHandler({ event: { data }, container, }) {
|
|
21
|
+
const notificationModuleService = container.resolve(utils_1.Modules.NOTIFICATION);
|
|
22
|
+
const { action, context, eventName } = data;
|
|
23
|
+
console.log("mpnAutomationActionSlackExecutedHandler", data);
|
|
24
|
+
// const notificationResult = await notificationModuleService.createNotifications({
|
|
25
|
+
// to: "slack-channel", // This will be configured in the Slack app
|
|
26
|
+
// channel: "slack",
|
|
27
|
+
// template: action.config.templateName,
|
|
28
|
+
// trigger_type: "mpn",
|
|
29
|
+
// resource_id: "123",
|
|
30
|
+
// resource_type: eventName,
|
|
31
|
+
// data: {
|
|
32
|
+
// ...context
|
|
33
|
+
// }
|
|
34
|
+
// })
|
|
35
|
+
// Execute email action workflow
|
|
36
|
+
const { result } = await (0, send_slack_action_1.sendSlackActionWorkflow)(container).run({
|
|
37
|
+
input: {
|
|
38
|
+
action: {
|
|
39
|
+
...action,
|
|
40
|
+
config: {
|
|
41
|
+
...action.config,
|
|
42
|
+
template: action.config.templateName ?? "inventory-level",
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
context: context,
|
|
46
|
+
eventName: eventName,
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
if (!result.success) {
|
|
50
|
+
console.error(`Failed to send email action ${action?.id}:`, result.error);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.config = {
|
|
54
|
+
event: eventName,
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXBuLmF1dG9tYXRpb24uYWN0aW9uLnNsYWNrLmV4ZWN1dGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL21wbi5hdXRvbWF0aW9uLmFjdGlvbi5zbGFjay5leGVjdXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFrQkEsMERBd0NDO0FBekRELHFEQUFvRDtBQUNwRCxxRkFBd0Y7QUFFeEY7O0dBRUc7QUFDSCxNQUFNLFNBQVMsR0FBRyxzQ0FBc0MsQ0FBQTtBQUV4RDs7Ozs7Ozs7R0FRRztBQUNZLEtBQUssVUFBVSx1Q0FBdUMsQ0FBQyxFQUNwRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFDZixTQUFTLEdBQ1c7SUFDcEIsTUFBTSx5QkFBeUIsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUV6RSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFNUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5Q0FBeUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUU3RCxtRkFBbUY7SUFDbkYscUVBQXFFO0lBQ3JFLHNCQUFzQjtJQUN0QiwwQ0FBMEM7SUFDMUMseUJBQXlCO0lBQ3pCLHdCQUF3QjtJQUN4Qiw4QkFBOEI7SUFDOUIsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixNQUFNO0lBQ04sT0FBTztJQUVQLGdDQUFnQztJQUNoQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLDJDQUF1QixFQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUM5RCxLQUFLLEVBQUU7WUFDTCxNQUFNLEVBQUU7Z0JBQ04sR0FBRyxNQUFNO2dCQUNULE1BQU0sRUFBRTtvQkFDTixHQUFHLE1BQU0sQ0FBQyxNQUFNO29CQUNoQixRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksaUJBQWlCO2lCQUMxRDthQUNGO1lBQ0QsT0FBTyxFQUFFLE9BQU87WUFDaEIsU0FBUyxFQUFFLFNBQVM7U0FDckI7S0FDRixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0JBQStCLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUUsQ0FBQztBQUNILENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBcUI7SUFDdEMsS0FBSyxFQUFFLFNBQVM7Q0FDakIsQ0FBQyJ9
|
|
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("../../modules/mpn-automation/types"), exports);
|
|
18
|
-
__exportStar(require("../../modules/mpn-automation/interfaces"), exports);
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
__exportStar(require("../../modules/mpn-automation/types/types"), exports);
|
|
18
|
+
__exportStar(require("../../modules/mpn-automation/types/interfaces"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdXRpbHMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJFQUF3RDtBQUN4RCxnRkFBNkQifQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteAutomationWorkflow = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const delete_automation_1 = require("./steps/delete-automation");
|
|
6
|
+
exports.deleteAutomationWorkflow = (0, workflows_sdk_1.createWorkflow)("delete-automation", ({ id }) => {
|
|
7
|
+
const result = (0, delete_automation_1.deleteAutomationStep)({
|
|
8
|
+
id: id,
|
|
9
|
+
});
|
|
10
|
+
return new workflows_sdk_1.WorkflowResponse({
|
|
11
|
+
result,
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWF1dG9tYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21wbi1hdXRvbWF0aW9uL2RlbGV0ZS1hdXRvbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFvRjtBQUNwRixpRUFBZ0U7QUFNbkQsUUFBQSx3QkFBd0IsR0FBRyxJQUFBLDhCQUFjLEVBQ3BELG1CQUFtQixFQUNuQixDQUFDLEVBQUUsRUFBRSxFQUFpQyxFQUFFLEVBQUU7SUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBQSx3Q0FBb0IsRUFBQztRQUNsQyxFQUFFLEVBQUUsRUFBRTtLQUNQLENBQUMsQ0FBQTtJQUVGLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQztRQUMxQixNQUFNO0tBQ1AsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -21,4 +21,5 @@ __exportStar(require("./create-automation"), exports);
|
|
|
21
21
|
__exportStar(require("./edit-automation"), exports);
|
|
22
22
|
__exportStar(require("./edit-automation-rules"), exports);
|
|
23
23
|
__exportStar(require("./edit-automation-actions"), exports);
|
|
24
|
-
|
|
24
|
+
__exportStar(require("./delete-automation"), exports);
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21wbi1hdXRvbWF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwRUFBdUQ7QUFDdkQsbURBQWdDO0FBQ2hDLHNEQUFtQztBQUNuQyxzREFBbUM7QUFDbkMsb0RBQWlDO0FBQ2pDLDBEQUF1QztBQUN2Qyw0REFBeUM7QUFDekMsc0RBQW1DIn0=
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendSlackActionWorkflow = exports.sendSlackActionWorkflowId = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const send_slack_1 = require("../notifications/send-slack");
|
|
6
|
+
exports.sendSlackActionWorkflowId = "send-slack-action";
|
|
7
|
+
/**
|
|
8
|
+
* Workflow wrapper for automation system that sends an email notification.
|
|
9
|
+
*
|
|
10
|
+
* This is a convenience wrapper around the universal sendEmailWorkflow,
|
|
11
|
+
* specifically designed for use with automation actions.
|
|
12
|
+
*
|
|
13
|
+
* It extracts configuration from action.config and context, then calls
|
|
14
|
+
* the universal sendEmailWorkflow.
|
|
15
|
+
*
|
|
16
|
+
* Configuration is stored in action.config:
|
|
17
|
+
* - templateName: Required - Name of the email template
|
|
18
|
+
* - to: Required - Recipient email address
|
|
19
|
+
* - locale: Optional - Locale for translations (default: "pl")
|
|
20
|
+
* - customTemplate: Optional - Path to custom template function
|
|
21
|
+
* - subject: Optional - Custom subject (otherwise uses template default)
|
|
22
|
+
* - template: Optional - Template identifier for notification (defaults to templateName)
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const { result } = await sendEmailActionWorkflow(container).run({
|
|
27
|
+
* input: {
|
|
28
|
+
* action: {
|
|
29
|
+
* id: "action_123",
|
|
30
|
+
* action_type: "email",
|
|
31
|
+
* config: {
|
|
32
|
+
* templateName: "inventory-level",
|
|
33
|
+
* to: "admin@example.com",
|
|
34
|
+
* locale: "pl"
|
|
35
|
+
* }
|
|
36
|
+
* },
|
|
37
|
+
* context: {
|
|
38
|
+
* inventory_level: {
|
|
39
|
+
* id: "il_123",
|
|
40
|
+
* stocked_quantity: 5
|
|
41
|
+
* }
|
|
42
|
+
* }
|
|
43
|
+
* }
|
|
44
|
+
* })
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
exports.sendSlackActionWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.sendSlackActionWorkflowId, (input) => {
|
|
48
|
+
// Transform automation action format for sendEmailWorkflow
|
|
49
|
+
const settings = (0, workflows_sdk_1.transform)({ action: input.action, eventName: input.eventName }, (data) => {
|
|
50
|
+
const actionConfig = data?.action?.config || {};
|
|
51
|
+
const eventName = data?.eventName;
|
|
52
|
+
return {
|
|
53
|
+
template: actionConfig?.template,
|
|
54
|
+
resourceId: data?.action?.id,
|
|
55
|
+
resourceType: eventName,
|
|
56
|
+
channel: actionConfig?.channel,
|
|
57
|
+
triggerType: "mpn",
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
const result = send_slack_1.sendSlackWorkflow.runAsStep({
|
|
61
|
+
input: {
|
|
62
|
+
settings: settings,
|
|
63
|
+
context: input.context,
|
|
64
|
+
eventName: input.eventName,
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
return new workflows_sdk_1.WorkflowResponse(result);
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1zbGFjay1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21wbi1hdXRvbWF0aW9uL3NlbmQtc2xhY2stYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RztBQUM3Ryw0REFBK0Q7QUFlbEQsUUFBQSx5QkFBeUIsR0FBRyxtQkFBbUIsQ0FBQTtBQUU1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUNHO0FBQ1UsUUFBQSx1QkFBdUIsR0FBRyxJQUFBLDhCQUFjLEVBQ25ELGlDQUF5QixFQUN6QixDQUFDLEtBQWlELEVBQUUsRUFBRTtJQUNwRCwyREFBMkQ7SUFDM0QsTUFBTSxRQUFRLEdBQUcsSUFBQSx5QkFBUyxFQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ3hGLE1BQU0sWUFBWSxHQUFHLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQTtRQUMvQyxNQUFNLFNBQVMsR0FBRyxJQUFJLEVBQUUsU0FBUyxDQUFBO1FBRWpDLE9BQU87WUFDTCxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVE7WUFDaEMsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUM1QixZQUFZLEVBQUUsU0FBUztZQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU87WUFDOUIsV0FBVyxFQUFFLEtBQUs7U0FDbkIsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUYsTUFBTSxNQUFNLEdBQUcsOEJBQWlCLENBQUMsU0FBUyxDQUFDO1FBQ3pDLEtBQUssRUFBRTtZQUNMLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7U0FDM0I7S0FDRixDQUFDLENBQUE7SUFFRixPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDckMsQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteAutomationStep = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const mpn_automation_1 = require("../../../modules/mpn-automation");
|
|
6
|
+
exports.deleteAutomationStep = (0, workflows_sdk_1.createStep)("delete-automation", async ({ id }, { container }) => {
|
|
7
|
+
const mpnAutomationService = container.resolve(mpn_automation_1.MPN_AUTOMATION_MODULE);
|
|
8
|
+
// Delete the trigger (cascade delete will handle related rules, states, and actions)
|
|
9
|
+
await mpnAutomationService.deleteMpnAutomationTriggers([id]);
|
|
10
|
+
return new workflows_sdk_1.StepResponse({ id, deleted: true }, { id, deleted: true });
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWF1dG9tYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21wbi1hdXRvbWF0aW9uL3N0ZXBzL2RlbGV0ZS1hdXRvbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE0RTtBQUU1RSxvRUFBdUU7QUFNMUQsUUFBQSxvQkFBb0IsR0FBRyxJQUFBLDBCQUFVLEVBQzVDLG1CQUFtQixFQUNuQixLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQTZCLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3pELE1BQU0sb0JBQW9CLEdBQXlCLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0NBQXFCLENBQUMsQ0FBQTtJQUUzRixxRkFBcUY7SUFDckYsTUFBTSxvQkFBb0IsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFNUQsT0FBTyxJQUFJLDRCQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQ3ZFLENBQUMsQ0FDRixDQUFBIn0=
|
|
@@ -21,4 +21,5 @@ __exportStar(require("./create-automation"), exports);
|
|
|
21
21
|
__exportStar(require("./edit-automation"), exports);
|
|
22
22
|
__exportStar(require("./edit-automation-rules"), exports);
|
|
23
23
|
__exportStar(require("./edit-automation-actions"), exports);
|
|
24
|
-
|
|
24
|
+
__exportStar(require("./delete-automation"), exports);
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21wbi1hdXRvbWF0aW9uL3N0ZXBzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwRUFBdUQ7QUFDdkQsaUVBQThDO0FBQzlDLDJEQUF3QztBQUN4QyxzREFBbUM7QUFDbkMsb0RBQWlDO0FBQ2pDLDBEQUF1QztBQUN2Qyw0REFBeUM7QUFDekMsc0RBQW1DIn0=
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runAutomationActionsStep = exports.runAutomationActionsStepId = void 0;
|
|
4
4
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
-
const utils_1 = require("@medusajs/
|
|
5
|
+
const utils_1 = require("@medusajs/utils");
|
|
6
|
+
const utils_2 = require("@medusajs/framework/utils");
|
|
6
7
|
exports.runAutomationActionsStepId = "run-automation-actions";
|
|
7
8
|
/**
|
|
8
9
|
* This step runs automation actions for all validated triggers by emitting events for each action type.
|
|
@@ -20,7 +21,8 @@ exports.runAutomationActionsStepId = "run-automation-actions";
|
|
|
20
21
|
* })
|
|
21
22
|
*/
|
|
22
23
|
exports.runAutomationActionsStep = (0, workflows_sdk_1.createStep)(exports.runAutomationActionsStepId, async (input, { container }) => {
|
|
23
|
-
const
|
|
24
|
+
const mpnAutomationService = container.resolve("mpnAutomation");
|
|
25
|
+
const logger = container.resolve(utils_2.ContainerRegistrationKeys.LOGGER);
|
|
24
26
|
const { validated, context } = input;
|
|
25
27
|
if (!validated || validated.length === 0) {
|
|
26
28
|
return new workflows_sdk_1.StepResponse({
|
|
@@ -40,46 +42,37 @@ exports.runAutomationActionsStep = (0, workflows_sdk_1.createStep)(exports.runAu
|
|
|
40
42
|
}
|
|
41
43
|
const executedActions = await Promise.all(result.actions.map(async (action) => {
|
|
42
44
|
try {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
console.warn(`Action ${action.id} has no action_type, skipping`);
|
|
46
|
-
return {
|
|
47
|
-
actionId: action.id,
|
|
48
|
-
actionType: actionType,
|
|
49
|
-
success: false,
|
|
50
|
-
};
|
|
45
|
+
if (!action.action_type) {
|
|
46
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Action type is required");
|
|
51
47
|
}
|
|
52
|
-
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
48
|
+
const actionHandler = mpnAutomationService.getActionHandler(action.action_type);
|
|
49
|
+
const handler = actionHandler?.handler;
|
|
50
|
+
const enabled = actionHandler?.enabled;
|
|
51
|
+
if (!handler) {
|
|
52
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Action handler for "${action.action_type}" not found`);
|
|
53
|
+
}
|
|
54
|
+
if (!enabled) {
|
|
55
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Action handler for "${action.action_type}" is disabled`);
|
|
56
|
+
}
|
|
57
|
+
return await handler.executeAction({
|
|
58
|
+
action,
|
|
59
|
+
context,
|
|
60
|
+
result,
|
|
61
|
+
container,
|
|
62
|
+
eventName: `mpn.automation.action.${action.action_type}.executed`,
|
|
63
|
+
triggerId: result.trigger.id || result.trigger.trigger_id || "",
|
|
62
64
|
});
|
|
63
|
-
return {
|
|
64
|
-
actionId: action.id,
|
|
65
|
-
actionType: actionType,
|
|
66
|
-
success: true,
|
|
67
|
-
};
|
|
68
65
|
}
|
|
69
66
|
catch (error) {
|
|
70
|
-
|
|
71
|
-
return
|
|
72
|
-
actionId: action.id,
|
|
73
|
-
actionType: action.action_type,
|
|
74
|
-
success: false,
|
|
75
|
-
};
|
|
67
|
+
logger.info(error.message);
|
|
68
|
+
return error;
|
|
76
69
|
}
|
|
77
70
|
}));
|
|
78
71
|
return {
|
|
79
72
|
triggerId: result.trigger.id || result.trigger.trigger_id,
|
|
80
73
|
isValid: result.isValid,
|
|
81
|
-
actionsExecuted: executedActions.filter(a => a.success).length,
|
|
82
74
|
actions: executedActions,
|
|
75
|
+
actionsExecuted: executedActions.filter((a) => a.success).length,
|
|
83
76
|
};
|
|
84
77
|
}));
|
|
85
78
|
const totalActionsExecuted = results.reduce((sum, r) => sum + r.actionsExecuted, 0);
|
|
@@ -89,4 +82,4 @@ exports.runAutomationActionsStep = (0, workflows_sdk_1.createStep)(exports.runAu
|
|
|
89
82
|
totalActionsExecuted,
|
|
90
83
|
});
|
|
91
84
|
});
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWF1dG9tYXRpb24tYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbXBuLWF1dG9tYXRpb24vc3RlcHMvcnVuLWF1dG9tYXRpb24tYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNkU7QUFNN0UsMkNBQThDO0FBQzlDLHFEQUFzRTtBQTBCekQsUUFBQSwwQkFBMEIsR0FBRyx3QkFBd0IsQ0FBQztBQUVuRTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNVLFFBQUEsd0JBQXdCLEdBQUcsSUFBQSwwQkFBVSxFQUNoRCxrQ0FBMEIsRUFDMUIsS0FBSyxFQUNILEtBQW9DLEVBQ3BDLEVBQUUsU0FBUyxFQUFFLEVBQzBDLEVBQUU7SUFDekQsTUFBTSxvQkFBb0IsR0FDeEIsU0FBUyxDQUFDLE9BQU8sQ0FBdUIsZUFBZSxDQUFDLENBQUM7SUFDM0QsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVuRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQztJQUVyQyxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekMsT0FBTyxJQUFJLDRCQUFZLENBQUM7WUFDdEIsT0FBTyxFQUFFLEVBQUU7WUFDWCxhQUFhLEVBQUUsQ0FBQztZQUNoQixvQkFBb0IsRUFBRSxDQUFDO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQy9CLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMs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
|
|
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./send-
|
|
17
|
+
__exportStar(require("./send-slack"), exports);
|
|
18
18
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL25vdGlmaWNhdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUE0QiJ9
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendSlackWorkflow = exports.sendSlackWorkflowId = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const send_slack_1 = require("./steps/send-slack");
|
|
6
|
+
exports.sendSlackWorkflowId = "send-slack";
|
|
7
|
+
/**
|
|
8
|
+
* Universal workflow that sends a slack notification.
|
|
9
|
+
*
|
|
10
|
+
* This workflow can be used independently or as part of automation workflows.
|
|
11
|
+
* It's not tied to automation system and can be used anywhere in the application.
|
|
12
|
+
*
|
|
13
|
+
* Configuration:
|
|
14
|
+
* - templateName: Required - Name of the slack template
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* // Standalone usage
|
|
19
|
+
* const { result } = await sendSlackWorkflow(container).run({
|
|
20
|
+
* input: {
|
|
21
|
+
* settings: {
|
|
22
|
+
* templateName: "inventory-level",
|
|
23
|
+
* to: "admin@example.com",
|
|
24
|
+
* locale: "pl"
|
|
25
|
+
* },
|
|
26
|
+
* templateData: {
|
|
27
|
+
* inventory_level: {
|
|
28
|
+
* id: "il_123",
|
|
29
|
+
* stocked_quantity: 5
|
|
30
|
+
* }
|
|
31
|
+
* }
|
|
32
|
+
* }
|
|
33
|
+
* })
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
exports.sendSlackWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.sendSlackWorkflowId, (input) => {
|
|
37
|
+
const result = (0, send_slack_1.sendSlackStep)({
|
|
38
|
+
settings: input.settings,
|
|
39
|
+
context: input.context,
|
|
40
|
+
eventName: input.eventName,
|
|
41
|
+
});
|
|
42
|
+
return new workflows_sdk_1.WorkflowResponse(result);
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1zbGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvbm90aWZpY2F0aW9ucy9zZW5kLXNsYWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFrRztBQUNsRyxtREFBa0Q7QUFjckMsUUFBQSxtQkFBbUIsR0FBRyxZQUFZLENBQUE7QUFFL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFDVSxRQUFBLGlCQUFpQixHQUFHLElBQUEsOEJBQWMsRUFDN0MsMkJBQW1CLEVBQ25CLENBQUMsS0FBMkMsRUFBRSxFQUFFO0lBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUEsMEJBQWEsRUFBQztRQUMzQixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7UUFDeEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1FBQ3RCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztLQUMzQixDQUFDLENBQUE7SUFFRixPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDckMsQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendSlackStep = exports.sendSlackStepId = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
exports.sendSlackStepId = "send-slack";
|
|
7
|
+
/**
|
|
8
|
+
* Universal step that sends a slack notification.
|
|
9
|
+
*
|
|
10
|
+
* This step can be used independently or as part of automation workflows.
|
|
11
|
+
*
|
|
12
|
+
* Configuration:
|
|
13
|
+
* - templateName: Required - Name of the slack template to use
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* // Standalone usage
|
|
18
|
+
* const result = await sendSlackStep({
|
|
19
|
+
* settings: {
|
|
20
|
+
* templateName: "inventory-level",
|
|
21
|
+
* to: "admin@example.com",
|
|
22
|
+
* locale: "pl"
|
|
23
|
+
* },
|
|
24
|
+
* templateData: {
|
|
25
|
+
* inventory_level: { ... }
|
|
26
|
+
* }
|
|
27
|
+
* })
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
exports.sendSlackStep = (0, workflows_sdk_1.createStep)(exports.sendSlackStepId, async (input, { container }) => {
|
|
31
|
+
const { settings, context, eventName } = input;
|
|
32
|
+
// Validate required config
|
|
33
|
+
if (!settings.template) {
|
|
34
|
+
return new workflows_sdk_1.StepResponse({
|
|
35
|
+
success: false,
|
|
36
|
+
error: "template is required in config",
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
const notificationModuleService = container.resolve(utils_1.Modules.NOTIFICATION);
|
|
41
|
+
const template = settings.template;
|
|
42
|
+
const to = settings.to || "slack-channel";
|
|
43
|
+
const locale = settings.locale || "pl";
|
|
44
|
+
const customSubject = settings.subject;
|
|
45
|
+
const resourceId = settings.resourceId || "unknown";
|
|
46
|
+
const resourceType = settings.resourceType || "email.notification";
|
|
47
|
+
const channel = settings.channel || "slack";
|
|
48
|
+
const triggerType = settings.triggerType || "system";
|
|
49
|
+
// Send notification
|
|
50
|
+
const notificationResult = await notificationModuleService.createNotifications({
|
|
51
|
+
to: to,
|
|
52
|
+
channel: channel,
|
|
53
|
+
template: template,
|
|
54
|
+
trigger_type: triggerType,
|
|
55
|
+
resource_id: resourceId,
|
|
56
|
+
resource_type: eventName,
|
|
57
|
+
data: {
|
|
58
|
+
...context,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
return new workflows_sdk_1.StepResponse({
|
|
62
|
+
success: true,
|
|
63
|
+
notificationId: notificationResult?.id,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.error(`Failed to send slack:`, error);
|
|
68
|
+
return new workflows_sdk_1.StepResponse({
|
|
69
|
+
success: false,
|
|
70
|
+
error: error?.message || "Unknown error occurred",
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1zbGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvbm90aWZpY2F0aW9ucy9zdGVwcy9zZW5kLXNsYWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUM3RSxxREFBb0Q7QUF1QnZDLFFBQUEsZUFBZSxHQUFHLFlBQVksQ0FBQztBQUU1Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNVLFFBQUEsYUFBYSxHQUFHLElBQUEsMEJBQVUsRUFDckMsdUJBQWUsRUFDZixLQUFLLEVBQ0gsS0FBeUIsRUFDekIsRUFBRSxTQUFTLEVBQUUsRUFDK0IsRUFBRTtJQUM5QyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFL0MsMkJBQTJCO0lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkIsT0FBTyxJQUFJLDRCQUFZLENBQUM7WUFDdEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxLQUFLLEVBQUUsZ0NBQWdDO1NBQ3hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLHlCQUF5QixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTFFLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDbkMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLEVBQUUsSUFBSSxlQUFlLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7UUFDdkMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN2QyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVSxJQUFJLFNBQVMsQ0FBQztRQUNwRCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxJQUFJLG9CQUFvQixDQUFDO1FBQ25FLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDO1FBQzVDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDO1FBRXJELG9CQUFvQjtRQUNwQixNQUFNLGtCQUFrQixHQUN0QixNQUFNLHlCQUF5QixDQUFDLG1CQUFtQixDQUFDO1lBQ2xELEVBQUUsRUFBRSxFQUFFO1lBQ04sT0FBTyxFQUFFLE9BQU87WUFDaEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsWUFBWSxFQUFFLFdBQVc7WUFDekIsV0FBVyxFQUFFLFVBQVU7WUFDdkIsYUFBYSxFQUFFLFNBQVM7WUFDeEIsSUFBSSxFQUFFO2dCQUNKLEdBQUcsT0FBTzthQUNYO1NBQ0YsQ0FBQyxDQUFDO1FBRUwsT0FBTyxJQUFJLDRCQUFZLENBQUM7WUFDdEIsT0FBTyxFQUFFLElBQUk7WUFDYixjQUFjLEVBQUUsa0JBQWtCLEVBQUUsRUFBRTtTQUN2QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlDLE9BQU8sSUFBSSw0QkFBWSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLElBQUksd0JBQXdCO1NBQ2xELENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDLENBQ0YsQ0FBQyJ9
|
package/README.md
CHANGED
|
@@ -87,13 +87,13 @@ Access the automations management interface in Medusa Admin at `/app/notificatio
|
|
|
87
87
|
|
|
88
88
|
The plugin exports the following:
|
|
89
89
|
|
|
90
|
-
- `@codee-sh/medusa-plugin-
|
|
91
|
-
- `@codee-sh/medusa-plugin-
|
|
92
|
-
- `@codee-sh/medusa-plugin-
|
|
90
|
+
- `@codee-sh/medusa-plugin-automations/workflows` - Workflow functions for automation management
|
|
91
|
+
- `@codee-sh/medusa-plugin-automations/modules/mpn-automation` - Automation module service
|
|
92
|
+
- `@codee-sh/medusa-plugin-automations/utils` - Utility functions
|
|
93
93
|
|
|
94
94
|
## Related Plugins
|
|
95
95
|
|
|
96
|
-
For email templates and rendering functionality, see [@codee-sh/medusa-plugin-
|
|
96
|
+
For email templates and rendering functionality, see [@codee-sh/medusa-plugin-automations-emails](https://github.com/codee-sh/medusa-plugin-notification-emails).
|
|
97
97
|
|
|
98
98
|
## License
|
|
99
99
|
|