@codee-sh/medusa-plugin-automations 1.0.1 → 1.0.2
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 → __admin-extensions__-DIB2k6nJ} +665 -304
- package/.medusa/server/src/admin/_chunks/{__admin-extensions__-DIUFmida → __admin-extensions__-rqdPN7M1} +665 -304
- package/.medusa/server/src/admin/_chunks/{base-config-0lbnQWYz → base-config-DbRWuXsL} +25 -9
- package/.medusa/server/src/admin/_chunks/{base-config-DsBoNoxD → base-config-ro-vFPBg} +25 -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 +4 -4
- package/.medusa/server/src/api/admin/mpn/automations/available-actions/route.js +1 -1
- package/.medusa/server/src/api/admin/mpn/automations/available-events/route.js +1 -1
- package/.medusa/server/src/api/admin/mpn/automations/available-triggers/route.js +1 -1
- package/.medusa/server/src/api/admin/mpn/automations/route.js +6 -6
- package/.medusa/server/src/api/admin/mpn/automations/rules/route.js +12 -7
- package/.medusa/server/src/api/middlewares.js +4 -3
- package/.medusa/server/src/hooks/api/automations/automations.js +3 -3
- package/.medusa/server/src/hooks/api/automations-actions/automations-actions.js +3 -3
- package/.medusa/server/src/hooks/api/automations-rules/automations-rules.js +3 -3
- package/.medusa/server/src/hooks/api/available-actions/actions.js +3 -3
- package/.medusa/server/src/hooks/api/available-events/events.js +3 -3
- package/.medusa/server/src/hooks/api/available-triggers/triggers.js +3 -3
- package/.medusa/server/src/modules/mpn-automation/actions-handlers/base-action-handler.js +3 -3
- package/.medusa/server/src/modules/mpn-automation/actions-handlers/email-action-handler.js +1 -1
- package/.medusa/server/src/modules/mpn-automation/actions-handlers/slack-action-handler.js +1 -1
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251127115228.js +1 -1
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251127193345.js +1 -1
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251127195615.js +1 -1
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251130144047.js +1 -1
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251207172856.js +1 -1
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251208090654.js +14 -0
- package/.medusa/server/src/modules/mpn-automation/models/mpn_automation_rule.js +3 -2
- package/.medusa/server/src/modules/mpn-automation/models/mpn_automation_rule_value.js +3 -4
- package/.medusa/server/src/modules/mpn-automation/models/mpn_automation_state.js +2 -3
- package/.medusa/server/src/modules/mpn-automation/models/mpn_automation_trigger.js +9 -6
- package/.medusa/server/src/modules/mpn-automation/models/npm_automation_action.js +1 -1
- package/.medusa/server/src/modules/mpn-automation/services/service.js +9 -4
- package/.medusa/server/src/modules/mpn-automation/types/types.js +42 -48
- package/.medusa/server/src/providers/slack/service.js +14 -14
- package/.medusa/server/src/subscribers/inventory-item-updated.js +1 -1
- package/.medusa/server/src/subscribers/inventory-level-updated.js +6 -5
- package/.medusa/server/src/subscribers/inventory-reservation-item-updated.js +1 -1
- package/.medusa/server/src/subscribers/mpn.automation.action.email.executed.js +4 -4
- package/.medusa/server/src/subscribers/mpn.automation.action.slack.executed.js +2 -15
- package/.medusa/server/src/subscribers/order-completed.js +2 -2
- package/.medusa/server/src/subscribers/order-placed.js +2 -2
- package/.medusa/server/src/subscribers/payment-captured.js +2 -2
- package/.medusa/server/src/utils/index.js +1 -1
- package/.medusa/server/src/utils/plugins.js +4 -2
- package/.medusa/server/src/utils/validate-rules.js +1 -1
- package/.medusa/server/src/workflows/inventory/get-inventory-level-by-id.js +1 -1
- package/.medusa/server/src/workflows/inventory/steps/get-inventory-level-by-id.js +1 -1
- package/.medusa/server/src/workflows/mpn-automation/create-automation.js +1 -1
- package/.medusa/server/src/workflows/mpn-automation/delete-automation.js +1 -1
- package/.medusa/server/src/workflows/mpn-automation/edit-automation-actions.js +2 -2
- package/.medusa/server/src/workflows/mpn-automation/edit-automation-rules.js +2 -2
- package/.medusa/server/src/workflows/mpn-automation/edit-automation.js +1 -1
- package/.medusa/server/src/workflows/mpn-automation/index.js +2 -1
- package/.medusa/server/src/workflows/mpn-automation/run-automation.js +32 -25
- package/.medusa/server/src/workflows/mpn-automation/save-automation-state.js +16 -0
- package/.medusa/server/src/workflows/mpn-automation/send-email-action.js +1 -1
- package/.medusa/server/src/workflows/mpn-automation/send-slack-action.js +1 -1
- package/.medusa/server/src/workflows/mpn-automation/steps/create-automation.js +2 -2
- package/.medusa/server/src/workflows/mpn-automation/steps/delete-automation.js +4 -2
- package/.medusa/server/src/workflows/mpn-automation/steps/edit-automation-actions.js +4 -2
- package/.medusa/server/src/workflows/mpn-automation/steps/edit-automation-rules.js +11 -7
- package/.medusa/server/src/workflows/mpn-automation/steps/edit-automation.js +2 -2
- package/.medusa/server/src/workflows/mpn-automation/steps/index.js +2 -1
- package/.medusa/server/src/workflows/mpn-automation/steps/retrieve-automation-triggers-by-event.js +2 -4
- package/.medusa/server/src/workflows/mpn-automation/steps/run-automation-actions.js +23 -27
- package/.medusa/server/src/workflows/mpn-automation/steps/save-automation-state.js +40 -0
- package/.medusa/server/src/workflows/mpn-automation/steps/validate-automation-triggers.js +8 -6
- package/.medusa/server/src/workflows/mpn-automation/validate-automation-triggers-by-event.js +6 -6
- package/.medusa/server/src/workflows/notifications/send-email.js +1 -1
- package/.medusa/server/src/workflows/notifications/send-slack.js +1 -1
- package/.medusa/server/src/workflows/notifications/steps/send-email.js +6 -3
- package/.medusa/server/src/workflows/notifications/steps/send-slack.js +1 -1
- package/.medusa/server/src/workflows/steps/log-step.js +1 -1
- package/README.md +18 -7
- package/package.json +4 -2
|
@@ -23,44 +23,45 @@ exports.runAutomationActionsStepId = "run-automation-actions";
|
|
|
23
23
|
exports.runAutomationActionsStep = (0, workflows_sdk_1.createStep)(exports.runAutomationActionsStepId, async (input, { container }) => {
|
|
24
24
|
const mpnAutomationService = container.resolve("mpnAutomation");
|
|
25
25
|
const logger = container.resolve(utils_2.ContainerRegistrationKeys.LOGGER);
|
|
26
|
-
const {
|
|
27
|
-
if (!
|
|
26
|
+
const { validatedTriggers, context } = input;
|
|
27
|
+
if (!validatedTriggers ||
|
|
28
|
+
validatedTriggers.length === 0) {
|
|
28
29
|
return new workflows_sdk_1.StepResponse({
|
|
29
|
-
|
|
30
|
-
triggersCount: 0,
|
|
31
|
-
totalActionsExecuted: 0,
|
|
30
|
+
triggersExecuted: [],
|
|
32
31
|
});
|
|
33
32
|
}
|
|
34
|
-
const
|
|
35
|
-
|
|
33
|
+
const getActionExecutionResults = await Promise.all(validatedTriggers.map(async (validatedTrigger) => {
|
|
34
|
+
const isValid = validatedTrigger.isValid;
|
|
35
|
+
const trigger = validatedTrigger.trigger;
|
|
36
|
+
const actions = validatedTrigger.trigger.actions || [];
|
|
37
|
+
if (!isValid || !actions || actions.length === 0) {
|
|
36
38
|
return {
|
|
37
|
-
|
|
38
|
-
isValid
|
|
39
|
+
trigger,
|
|
40
|
+
isValid,
|
|
39
41
|
actionsExecuted: 0,
|
|
40
42
|
actions: [],
|
|
41
43
|
};
|
|
42
44
|
}
|
|
43
|
-
const executedActions = await Promise.all(
|
|
45
|
+
const executedActions = await Promise.all(actions.map(async (action) => {
|
|
44
46
|
try {
|
|
45
47
|
if (!action.action_type) {
|
|
46
48
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Action type is required");
|
|
47
49
|
}
|
|
48
50
|
const actionHandler = mpnAutomationService.getActionHandler(action.action_type);
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
if (!
|
|
51
|
+
const getHandler = actionHandler?.handler;
|
|
52
|
+
const isEnabled = actionHandler?.enabled;
|
|
53
|
+
if (!getHandler) {
|
|
52
54
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Action handler for "${action.action_type}" not found`);
|
|
53
55
|
}
|
|
54
|
-
if (!
|
|
56
|
+
if (!isEnabled) {
|
|
55
57
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Action handler for "${action.action_type}" is disabled`);
|
|
56
58
|
}
|
|
57
|
-
return await
|
|
59
|
+
return await getHandler.executeAction({
|
|
60
|
+
container,
|
|
61
|
+
trigger,
|
|
58
62
|
action,
|
|
59
63
|
context,
|
|
60
|
-
result,
|
|
61
|
-
container,
|
|
62
64
|
eventName: `mpn.automation.action.${action.action_type}.executed`,
|
|
63
|
-
triggerId: result.trigger.id || result.trigger.trigger_id || "",
|
|
64
65
|
});
|
|
65
66
|
}
|
|
66
67
|
catch (error) {
|
|
@@ -69,17 +70,12 @@ exports.runAutomationActionsStep = (0, workflows_sdk_1.createStep)(exports.runAu
|
|
|
69
70
|
}
|
|
70
71
|
}));
|
|
71
72
|
return {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
actions: executedActions,
|
|
75
|
-
actionsExecuted: executedActions.filter((a) => a.success).length,
|
|
73
|
+
trigger,
|
|
74
|
+
executedActions: executedActions,
|
|
76
75
|
};
|
|
77
76
|
}));
|
|
78
|
-
const totalActionsExecuted = results.reduce((sum, r) => sum + r.actionsExecuted, 0);
|
|
79
77
|
return new workflows_sdk_1.StepResponse({
|
|
80
|
-
|
|
81
|
-
triggersCount: validated.length,
|
|
82
|
-
totalActionsExecuted,
|
|
78
|
+
triggersExecuted: getActionExecutionResults,
|
|
83
79
|
});
|
|
84
80
|
});
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWF1dG9tYXRpb24tYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbXBuLWF1dG9tYXRpb24vc3RlcHMvcnVuLWF1dG9tYXRpb24tYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFHMEM7QUFDMUMsMkNBQTZDO0FBQzdDLHFEQUFxRTtBQXFCeEQsUUFBQSwwQkFBMEIsR0FDckMsd0JBQXdCLENBQUE7QUFFMUI7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDVSxRQUFBLHdCQUF3QixHQUFHLElBQUEsMEJBQVUsRUFDaEQsa0NBQTBCLEVBQzFCLEtBQUssRUFDSCxLQUFvQyxFQUNwQyxFQUFFLFNBQVMsRUFBRSxFQUdiLEVBQUU7SUFDRixNQUFNLG9CQUFvQixHQUN4QixTQUFTLENBQUMsT0FBTyxDQUNmLGVBQWUsQ0FDaEIsQ0FBQTtJQUNILE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQzlCLGlDQUF5QixDQUFDLE1BQU0sQ0FDakMsQ0FBQTtJQUVELE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFNUMsSUFDRSxDQUFDLGlCQUFpQjtRQUNsQixpQkFBaUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUM5QixDQUFDO1FBQ0QsT0FBTyxJQUFJLDRCQUFZLENBQUM7WUFDdEIsZ0JBQWdCLEVBQUUsRUFBRTtTQUNyQixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsTUFBTSx5QkFBeUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2pELGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRTtRQUMvQyxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUE7UUFDeEMsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFBO1FBQ3hDLE1BQU0sT0FBTyxHQUNYLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFBO1FBRXhDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxPQUFPO2dCQUNMLE9BQU87Z0JBQ1AsT0FBTztnQkFDUCxlQUFlLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxFQUFFLEVBQUU7YUFDWixDQUFBO1FBQ0gsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDO2dCQUNILElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3hCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHlCQUF5QixDQUMxQixDQUFBO2dCQUNILENBQUM7Z0JBRUQsTUFBTSxhQUFhLEdBQ2pCLG9CQUFvQixDQUFDLGdCQUFnQixDQUNuQyxNQUFNLENBQUMsV0FBVyxDQUNuQixDQUFBO2dCQUVILE1BQU0sVUFBVSxHQUFHLGFBQWEsRUFBRSxPQUFPLENBQUE7Z0JBQ3pDLE1BQU0sU0FBUyxHQUFHLGFBQWEsRUFBRSxPQUFPLENBQUE7Z0JBRXhDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDaEIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFDM0IsdUJBQXVCLE1BQU0sQ0FBQyxXQUFXLGFBQWEsQ0FDdkQsQ0FBQTtnQkFDSCxDQUFDO2dCQUVELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDZixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUMzQix1QkFBdUIsTUFBTSxDQUFDLFdBQVcsZUFBZSxDQUN6RCxDQUFBO2dCQUNILENBQUM7Z0JBRUQsT0FBTyxNQUFNLFVBQVUsQ0FBQyxhQUFhLENBQUM7b0JBQ3BDLFNBQVM7b0JBQ1QsT0FBTztvQkFDUCxNQUFNO29CQUNOLE9BQU87b0JBQ1AsU0FBUyxFQUFFLHlCQUF5QixNQUFNLENBQUMsV0FBVyxXQUFXO2lCQUNsRSxDQUFDLENBQUE7WUFDSixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtnQkFFMUIsT0FBTyxLQUFLLENBQUE7WUFDZCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUVELE9BQU87WUFDTCxPQUFPO1lBQ1AsZUFBZSxFQUFFLGVBQWU7U0FDakMsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUNILENBQUE7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQztRQUN0QixnQkFBZ0IsRUFBRSx5QkFBeUI7S0FDNUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.saveAutomationStateStep = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const mpn_automation_1 = require("../../../modules/mpn-automation");
|
|
6
|
+
exports.saveAutomationStateStep = (0, workflows_sdk_1.createStep)("save-automation-state", async ({ triggers, targetKey }, { container }) => {
|
|
7
|
+
const mpnAutomationService = container.resolve(mpn_automation_1.MPN_AUTOMATION_MODULE);
|
|
8
|
+
const dateNow = new Date();
|
|
9
|
+
if (!triggers || triggers.length === 0) {
|
|
10
|
+
return new workflows_sdk_1.StepResponse([], []);
|
|
11
|
+
}
|
|
12
|
+
const savedStates = await Promise.all(triggers.map(async (trigger) => {
|
|
13
|
+
const existingStates = await mpnAutomationService.listMpnAutomationStates({
|
|
14
|
+
trigger_id: trigger.trigger.id,
|
|
15
|
+
target_key: targetKey,
|
|
16
|
+
});
|
|
17
|
+
// Update existing state
|
|
18
|
+
if (existingStates.length > 0) {
|
|
19
|
+
const map = existingStates.map((state) => {
|
|
20
|
+
return {
|
|
21
|
+
id: state.id,
|
|
22
|
+
last_triggered_at: dateNow,
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
const updatedStates = await mpnAutomationService.updateMpnAutomationStates(map);
|
|
26
|
+
return updatedStates;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
const data = {
|
|
30
|
+
trigger_id: trigger.trigger.id,
|
|
31
|
+
target_key: targetKey || null,
|
|
32
|
+
last_triggered_at: dateNow,
|
|
33
|
+
};
|
|
34
|
+
const newStates = await mpnAutomationService.createMpnAutomationStates([data]);
|
|
35
|
+
return newStates;
|
|
36
|
+
}
|
|
37
|
+
}));
|
|
38
|
+
return new workflows_sdk_1.StepResponse(savedStates, savedStates);
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1hdXRvbWF0aW9uLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9tcG4tYXV0b21hdGlvbi9zdGVwcy9zYXZlLWF1dG9tYXRpb24tc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBRzBDO0FBRTFDLG9FQUF1RTtBQVExRCxRQUFBLHVCQUF1QixHQUFHLElBQUEsMEJBQVUsRUFDL0MsdUJBQXVCLEVBQ3ZCLEtBQUssRUFDSCxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQWdDLEVBQ3JELEVBQUUsU0FBUyxFQUFFLEVBQ2IsRUFBRTtJQUNGLE1BQU0sb0JBQW9CLEdBQ3hCLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0NBQXFCLENBQUMsQ0FBQTtJQUUxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFBO0lBRTFCLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLElBQUksNEJBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDakMsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDbkMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBWSxFQUFFLEVBQUU7UUFDbEMsTUFBTSxjQUFjLEdBQ2xCLE1BQU0sb0JBQW9CLENBQUMsdUJBQXVCLENBQ2hEO1lBQ0UsVUFBVSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM5QixVQUFVLEVBQUUsU0FBUztTQUN0QixDQUNGLENBQUE7UUFFSCx3QkFBd0I7UUFDeEIsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDNUMsT0FBTztvQkFDTCxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUU7b0JBQ1osaUJBQWlCLEVBQUUsT0FBTztpQkFDM0IsQ0FBQTtZQUNILENBQUMsQ0FBQyxDQUFBO1lBRUYsTUFBTSxhQUFhLEdBQ2pCLE1BQU0sb0JBQW9CLENBQUMseUJBQXlCLENBQ2xELEdBQUcsQ0FDSixDQUFBO1lBRUgsT0FBTyxhQUFhLENBQUE7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksR0FBRztnQkFDWCxVQUFVLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUM5QixVQUFVLEVBQUUsU0FBUyxJQUFJLElBQUk7Z0JBQzdCLGlCQUFpQixFQUFFLE9BQU87YUFDM0IsQ0FBQTtZQUVELE1BQU0sU0FBUyxHQUNiLE1BQU0sb0JBQW9CLENBQUMseUJBQXlCLENBQ2xELENBQUMsSUFBSSxDQUFDLENBQ1AsQ0FBQTtZQUVILE9BQU8sU0FBUyxDQUFBO1FBQ2xCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBRUQsT0FBTyxJQUFJLDRCQUFZLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFBO0FBQ25ELENBQUMsQ0FDRixDQUFBIn0=
|
|
@@ -15,15 +15,17 @@ exports.validateAutomationTriggersStepId = "validate-automation-triggers";
|
|
|
15
15
|
*/
|
|
16
16
|
exports.validateAutomationTriggersStep = (0, workflows_sdk_1.createStep)(exports.validateAutomationTriggersStepId, async (input) => {
|
|
17
17
|
const { triggers, context } = input;
|
|
18
|
-
const validated = triggers
|
|
18
|
+
const validated = triggers
|
|
19
|
+
.map((trigger) => {
|
|
19
20
|
// Validate rules for context
|
|
20
|
-
const
|
|
21
|
+
const rules = trigger.rules || [];
|
|
22
|
+
const isValid = (0, validate_rules_1.validateRulesForContext)(rules, context);
|
|
21
23
|
return {
|
|
22
|
-
isValid,
|
|
23
24
|
trigger,
|
|
24
|
-
|
|
25
|
+
isValid,
|
|
25
26
|
};
|
|
26
|
-
})
|
|
27
|
+
})
|
|
28
|
+
.filter((trigger) => trigger.isValid);
|
|
27
29
|
return new workflows_sdk_1.StepResponse(validated, validated);
|
|
28
30
|
});
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtYXV0b21hdGlvbi10cmlnZ2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbXBuLWF1dG9tYXRpb24vc3RlcHMvdmFsaWRhdGUtYXV0b21hdGlvbi10cmlnZ2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFHMEM7QUFDMUMsa0VBQXVFO0FBUTFELFFBQUEsZ0NBQWdDLEdBQzNDLDhCQUE4QixDQUFBO0FBRWhDOzs7Ozs7OztHQVFHO0FBQ1UsUUFBQSw4QkFBOEIsR0FBRyxJQUFBLDBCQUFVLEVBQ3RELHdDQUFnQyxFQUNoQyxLQUFLLEVBQ0gsS0FBMEMsRUFDZCxFQUFFO0lBQzlCLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFBO0lBRW5DLE1BQU0sU0FBUyxHQUFHLFFBQVE7U0FDdkIsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDZiw2QkFBNkI7UUFDN0IsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUE7UUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBQSx3Q0FBdUIsRUFDckMsS0FBSyxFQUNMLE9BQU8sQ0FDUixDQUFBO1FBRUQsT0FBTztZQUNMLE9BQU87WUFDUCxPQUFPO1NBQ1IsQ0FBQTtJQUNILENBQUMsQ0FBQztTQUNELE1BQU0sQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRTVDLE9BQU8sSUFBSSw0QkFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUMvQyxDQUFDLENBQ0YsQ0FBQSJ9
|
package/.medusa/server/src/workflows/mpn-automation/validate-automation-triggers-by-event.js
CHANGED
|
@@ -21,18 +21,18 @@ exports.validateAutomationTriggersByEventWorkflowId = "validate-automation-trigg
|
|
|
21
21
|
*/
|
|
22
22
|
exports.validateAutomationTriggersByEventWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.validateAutomationTriggersByEventWorkflowId, (input) => {
|
|
23
23
|
// Retrieve triggers for the event
|
|
24
|
-
const
|
|
24
|
+
const getTriggers = (0, retrieve_automation_triggers_by_event_1.getAutomationTriggersByEventStep)({
|
|
25
25
|
eventName: input.eventName,
|
|
26
26
|
eventType: input.eventType,
|
|
27
27
|
});
|
|
28
28
|
// Validate all triggers against context
|
|
29
|
-
const
|
|
30
|
-
triggers:
|
|
29
|
+
const getValidatedTriggers = (0, validate_automation_triggers_1.validateAutomationTriggersStep)({
|
|
30
|
+
triggers: getTriggers || [],
|
|
31
31
|
context: input.context,
|
|
32
32
|
});
|
|
33
33
|
return new workflows_sdk_1.WorkflowResponse({
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
triggers: getTriggers,
|
|
35
|
+
triggersValidated: getValidatedTriggers,
|
|
36
36
|
});
|
|
37
37
|
});
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtYXV0b21hdGlvbi10cmlnZ2Vycy1ieS1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbXBuLWF1dG9tYXRpb24vdmFsaWRhdGUtYXV0b21hdGlvbi10cmlnZ2Vycy1ieS1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFLMEM7QUFDMUMseUdBQWdHO0FBQ2hHLHVGQUFxRjtBQXNCeEUsUUFBQSwyQ0FBMkMsR0FDdEQsdUNBQXVDLENBQUE7QUFFekM7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNVLFFBQUEseUNBQXlDLEdBQ3BELElBQUEsOEJBQWMsRUFDWixtREFBMkMsRUFDM0MsQ0FDRSxLQUFtRSxFQUNuRSxFQUFFO0lBQ0Ysa0NBQWtDO0lBQ2xDLE1BQU0sV0FBVyxHQUFHLElBQUEsd0VBQWdDLEVBQUM7UUFDbkQsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzFCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztLQUMzQixDQUFDLENBQUE7SUFFRix3Q0FBd0M7SUFDeEMsTUFBTSxvQkFBb0IsR0FDeEIsSUFBQSw2REFBOEIsRUFBQztRQUM3QixRQUFRLEVBQUUsV0FBVyxJQUFJLEVBQUU7UUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO0tBQ3ZCLENBQUMsQ0FBQTtJQUVKLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQztRQUMxQixRQUFRLEVBQUUsV0FBVztRQUNyQixpQkFBaUIsRUFBRSxvQkFBb0I7S0FDeEMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -48,4 +48,4 @@ exports.sendEmailWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.sendEmai
|
|
|
48
48
|
});
|
|
49
49
|
return new workflows_sdk_1.WorkflowResponse(result);
|
|
50
50
|
});
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1lbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvbm90aWZpY2F0aW9ucy9zZW5kLWVtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUkwQztBQUMxQyxtREFBa0Q7QUFnQnJDLFFBQUEsbUJBQW1CLEdBQUcsWUFBWSxDQUFBO0FBRS9DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DRztBQUNVLFFBQUEsaUJBQWlCLEdBQUcsSUFBQSw4QkFBYyxFQUM3QywyQkFBbUIsRUFDbkIsQ0FBQyxLQUEyQyxFQUFFLEVBQUU7SUFDOUMsTUFBTSxNQUFNLEdBQUcsSUFBQSwwQkFBYSxFQUFDO1FBQzNCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtRQUN4QixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7UUFDaEMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO0tBQzNCLENBQUMsQ0FBQTtJQUVGLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNyQyxDQUFDLENBQ0YsQ0FBQSJ9
|
|
@@ -41,4 +41,4 @@ exports.sendSlackWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.sendSlac
|
|
|
41
41
|
});
|
|
42
42
|
return new workflows_sdk_1.WorkflowResponse(result);
|
|
43
43
|
});
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1zbGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvbm90aWZpY2F0aW9ucy9zZW5kLXNsYWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUkwQztBQUMxQyxtREFBa0Q7QUFjckMsUUFBQSxtQkFBbUIsR0FBRyxZQUFZLENBQUE7QUFFL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFDVSxRQUFBLGlCQUFpQixHQUFHLElBQUEsOEJBQWMsRUFDN0MsMkJBQW1CLEVBQ25CLENBQUMsS0FBMkMsRUFBRSxFQUFFO0lBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUEsMEJBQWEsRUFBQztRQUMzQixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7UUFDeEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1FBQ3RCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztLQUMzQixDQUFDLENBQUE7SUFFRixPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDckMsQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -58,7 +58,7 @@ exports.sendEmailStep = (0, workflows_sdk_1.createStep)(exports.sendEmailStepId,
|
|
|
58
58
|
const to = settings.to;
|
|
59
59
|
const locale = settings.locale || "pl";
|
|
60
60
|
const customSubject = settings.subject;
|
|
61
|
-
const resourceId = settings.resourceId ||
|
|
61
|
+
const resourceId = settings.resourceId || "unknown";
|
|
62
62
|
const resourceType = settings.resourceType || "email.notification";
|
|
63
63
|
const channel = settings.channel || "email";
|
|
64
64
|
const triggerType = settings.triggerType || "system";
|
|
@@ -76,7 +76,10 @@ exports.sendEmailStep = (0, workflows_sdk_1.createStep)(exports.sendEmailStepId,
|
|
|
76
76
|
// config.customTemplate should be a relative path like "../emails/pos-email-inventory"
|
|
77
77
|
// or absolute path from project root like "src/emails/pos-email-inventory"
|
|
78
78
|
const customTemplateModule = await import(settings.customTemplate);
|
|
79
|
-
customTemplateFunction =
|
|
79
|
+
customTemplateFunction =
|
|
80
|
+
customTemplateModule.default ||
|
|
81
|
+
customTemplateModule.createCustomTemplate ||
|
|
82
|
+
customTemplateModule.createTemplate;
|
|
80
83
|
if (!customTemplateFunction) {
|
|
81
84
|
console.warn(`Custom template module from ${settings.customTemplate} does not export a default function or createCustomTemplate/createTemplate`);
|
|
82
85
|
}
|
|
@@ -116,4 +119,4 @@ exports.sendEmailStep = (0, workflows_sdk_1.createStep)(exports.sendEmailStepId,
|
|
|
116
119
|
});
|
|
117
120
|
}
|
|
118
121
|
});
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1lbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvbm90aWZpY2F0aW9ucy9zdGVwcy9zZW5kLWVtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFFQUcwQztBQUMxQyxxREFBbUQ7QUFDbkQseUZBQTZGO0FBQzdGLCtFQUFvRjtBQWdDdkUsUUFBQSxlQUFlLEdBQUcsWUFBWSxDQUFBO0FBRTNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCRztBQUNVLFFBQUEsYUFBYSxHQUFHLElBQUEsMEJBQVUsRUFDckMsdUJBQWUsRUFDZixLQUFLLEVBQ0gsS0FBeUIsRUFDekIsRUFBRSxTQUFTLEVBQUUsRUFDK0IsRUFBRTtJQUM5QyxNQUFNLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFbkQsMkJBQTJCO0lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0IsT0FBTyxJQUFJLDRCQUFZLENBQUM7WUFDdEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxLQUFLLEVBQUUsb0NBQW9DO1NBQzVDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSw0QkFBWSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsS0FBSyxFQUFFLDRDQUE0QztTQUNwRCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSx5QkFBeUIsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNqRCxlQUFPLENBQUMsWUFBWSxDQUNyQixDQUFBO1FBQ0QsTUFBTSxhQUFhLEdBQUcsSUFBQSwwQkFBZ0IsRUFDcEMsU0FBUyxFQUNULDZDQUE2QyxDQUM5QyxDQUFBO1FBRUQsTUFBTSxZQUFZLEdBQUcsUUFBUSxD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
|
|
@@ -71,4 +71,4 @@ exports.sendSlackStep = (0, workflows_sdk_1.createStep)(exports.sendSlackStepId,
|
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
73
|
});
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1zbGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvbm90aWZpY2F0aW9ucy9zdGVwcy9zZW5kLXNsYWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcwQztBQUMxQyxxREFBbUQ7QUF1QnRDLFFBQUEsZUFBZSxHQUFHLFlBQVksQ0FBQTtBQUUzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNVLFFBQUEsYUFBYSxHQUFHLElBQUEsMEJBQVUsRUFDckMsdUJBQWUsRUFDZixLQUFLLEVBQ0gsS0FBeUIsRUFDekIsRUFBRSxTQUFTLEVBQUUsRUFDK0IsRUFBRTtJQUM5QyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFOUMsMkJBQTJCO0lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkIsT0FBTyxJQUFJLDRCQUFZLENBQUM7WUFDdEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxLQUFLLEVBQUUsZ0NBQWdDO1NBQ3hDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLHlCQUF5QixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQ2pELGVBQU8sQ0FBQyxZQUFZLENBQ3JCLENBQUE7UUFFRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFBO1FBQ2xDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxFQUFFLElBQUksZUFBZSxDQUFBO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFBO1FBQ3RDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUE7UUFDdEMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsSUFBSSxTQUFTLENBQUE7UUFDbkQsTUFBTSxZQUFZLEdBQ2hCLFFBQVEsQ0FBQyxZQUFZLElBQUksb0JBQW9CLENBQUE7UUFDL0MsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUE7UUFDM0MsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUE7UUFFcEQsb0JBQW9CO1FBQ3BCLE1BQU0sa0JBQWtCLEdBQ3RCLE1BQU0seUJBQXlCLENBQUMsbUJBQW1CLENBQ2pEO1lBQ0UsRUFBRSxFQUFFLEVBQUU7WUFDTixPQUFPLEVBQUUsT0FBTztZQUNoQixRQUFRLEVBQUUsUUFBUTtZQUNsQixZQUFZLEVBQUUsV0FBVztZQUN6QixXQUFXLEVBQUUsVUFBVTtZQUN2QixhQUFhLEVBQUUsU0FBUztZQUN4QixJQUFJLEVBQUU7Z0JBQ0osR0FBRyxPQUFPO2FBQ1g7U0FDRixDQUNGLENBQUE7UUFFSCxPQUFPLElBQUksNEJBQVksQ0FBQztZQUN0QixPQUFPLEVBQUUsSUFBSTtZQUNiLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxFQUFFO1NBQ3ZDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDN0MsT0FBTyxJQUFJLDRCQUFZLENBQUM7WUFDdEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSx3QkFBd0I7U0FDbEQsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FDRixDQUFBIn0=
|
|
@@ -13,4 +13,4 @@ const logStep = (0, workflows_sdk_1.createStep)({
|
|
|
13
13
|
});
|
|
14
14
|
});
|
|
15
15
|
exports.logStep = logStep;
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLXN0ZXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0ZXBzL2xvZy1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcwQztBQUUxQyxNQUFNLE9BQU8sR0FBRyxJQUFBLDBCQUFVLEVBQ3hCO0lBQ0UsSUFBSSxFQUFFLFVBQVU7Q0FDakIsRUFDRCxVQUFVLEtBQVU7SUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFdkQsT0FBTyxJQUFJLDRCQUFZLENBQUM7UUFDdEIsTUFBTSxFQUFFLFNBQVM7UUFDakIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsS0FBSyxFQUFFLEtBQUs7S0FDYixDQUFDLENBQUE7QUFDSixDQUFDLENBQ0YsQ0FBQTtBQUVRLDBCQUFPIn0=
|
package/README.md
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
# Medusa plugin automations
|
|
2
2
|
|
|
3
|
-
A comprehensive
|
|
3
|
+
A comprehensive automation plugin for Medusa v2 that provides a flexible rule-based automation system with triggers, conditions, and actions. Create automated workflows that can send notifications (email, Slack), execute custom actions, or trigger other processes based on events, schedules, or manual triggers with customizable rules.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
- **Automation Triggers**: Create
|
|
7
|
+
- **Automation Triggers**: Create automations triggered by events, schedules, or manual actions
|
|
8
|
+
- **Automation Management**: Create, edit, and delete automation triggers with automatic cleanup of related data
|
|
8
9
|
- **Rule-Based Conditions**: Define complex conditions using rule attributes (e.g., inventory levels, order status)
|
|
10
|
+
- **Multiple Action Types**: Execute various actions including email notifications, Slack messages, SMS, push notifications, and custom actions
|
|
9
11
|
- **Event Subscribers**: Built-in subscribers for common Medusa events (inventory updates, order events, payment events)
|
|
10
12
|
- **Admin Panel**: Manage automations directly from Medusa Admin
|
|
11
13
|
- **Flexible Rules**: Support for multiple rule types and operators (equals, greater than, less than, contains, etc.)
|
|
14
|
+
- **Slack Notifications**: Rich Slack notifications with Block Kit support including headers, action buttons, and dividers
|
|
15
|
+
- **Extensible Actions**: Add custom action handlers to extend automation capabilities
|
|
12
16
|
- **Type-Safe**: Full TypeScript support with exported types and workflows
|
|
13
|
-
- **Extensible**: Add custom rule attributes and extend functionality via plugin options
|
|
14
17
|
|
|
15
18
|
## Compatibility
|
|
16
19
|
|
|
@@ -61,18 +64,26 @@ Navigate to **Notifications > Automations** in your Medusa Admin dashboard, or d
|
|
|
61
64
|
|
|
62
65
|
Automations are triggered by:
|
|
63
66
|
- **Events**: Medusa events (e.g., `inventory.inventory-level.updated`, `order.placed`)
|
|
64
|
-
- **Schedule**: Time-based triggers with configurable intervals
|
|
67
|
+
- **Schedule**: Time-based triggers with configurable intervals (In progress)
|
|
65
68
|
- **Manual**: Triggered manually from the admin panel
|
|
66
69
|
|
|
67
70
|
### Rules and Conditions
|
|
68
71
|
|
|
69
|
-
Each automation can have multiple rules that define when
|
|
72
|
+
Each automation can have multiple rules that define when actions should be executed:
|
|
70
73
|
|
|
71
|
-
- **Rule Attributes**: Available attributes for conditions
|
|
74
|
+
- **Rule Attributes**: Available attributes for conditions
|
|
72
75
|
- **Operators**: Comparison operators (equals, greater than, less than, contains, in, etc.)
|
|
73
76
|
- **Rule Values**: Values to compare against
|
|
74
77
|
|
|
75
|
-
|
|
78
|
+
### Actions
|
|
79
|
+
|
|
80
|
+
When automation rules pass, actions are executed. Supported action types include:
|
|
81
|
+
|
|
82
|
+
- **Email**: Send email notifications
|
|
83
|
+
- **Slack**: Send Slack messages with Block Kit formatting
|
|
84
|
+
- **Custom**: Extend with custom action handlers
|
|
85
|
+
|
|
86
|
+
See [Configuration Documentation](./docs/configuration.md) for details on built-in subscribers, available actions, and extending functionality.
|
|
76
87
|
|
|
77
88
|
## Admin Panel
|
|
78
89
|
|
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.2",
|
|
4
4
|
"description": "Medusa plugin for automations.",
|
|
5
5
|
"author": "Codee (https://codee.dev)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -37,7 +37,9 @@
|
|
|
37
37
|
"dev": "medusa plugin:develop",
|
|
38
38
|
"prepublishOnly": "medusa plugin:build",
|
|
39
39
|
"publish-local": "npx medusa plugin:publish",
|
|
40
|
-
"publish-package": "dotenv npm publish --access public"
|
|
40
|
+
"publish-package": "dotenv npm publish --access public",
|
|
41
|
+
"format": "prettier --write \"src/**/*.{ts,tsx}\"",
|
|
42
|
+
"format:check": "prettier --check \"src/**/*.{ts,tsx}\""
|
|
41
43
|
},
|
|
42
44
|
"devDependencies": {
|
|
43
45
|
"@medusajs/admin-sdk": "2.8.8",
|