@codee-sh/medusa-plugin-automations 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/src/admin/index.js +9931 -0
- package/.medusa/server/src/admin/index.mjs +9929 -0
- package/.medusa/server/src/admin/lib/sdk.js +15 -0
- package/.medusa/server/src/api/admin/mpn/automations/actions/route.js +78 -0
- package/.medusa/server/src/api/admin/mpn/automations/available-actions/route.js +12 -0
- package/.medusa/server/src/api/admin/mpn/automations/available-events/route.js +14 -0
- package/.medusa/server/src/api/admin/mpn/automations/available-triggers/route.js +12 -0
- package/.medusa/server/src/api/admin/mpn/automations/route.js +71 -0
- package/.medusa/server/src/api/admin/mpn/automations/rules/route.js +85 -0
- package/.medusa/server/src/api/middlewares.js +125 -0
- package/.medusa/server/src/emails/example-template.js +68 -0
- package/.medusa/server/src/hooks/api/automations/automations.js +74 -0
- package/.medusa/server/src/hooks/api/automations/index.js +18 -0
- package/.medusa/server/src/hooks/api/automations-actions/automations-actions.js +51 -0
- package/.medusa/server/src/hooks/api/automations-actions/index.js +18 -0
- package/.medusa/server/src/hooks/api/automations-rules/automations-rules.js +51 -0
- package/.medusa/server/src/hooks/api/automations-rules/index.js +18 -0
- package/.medusa/server/src/hooks/api/available-actions/actions.js +34 -0
- package/.medusa/server/src/hooks/api/available-actions/index.js +18 -0
- package/.medusa/server/src/hooks/api/available-events/events.js +34 -0
- package/.medusa/server/src/hooks/api/available-events/index.js +18 -0
- package/.medusa/server/src/hooks/api/available-triggers/index.js +18 -0
- package/.medusa/server/src/hooks/api/available-triggers/triggers.js +34 -0
- package/.medusa/server/src/modules/mpn-automation/index.js +10 -0
- package/.medusa/server/src/modules/mpn-automation/interfaces.js +3 -0
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251127115228.js +37 -0
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251127193345.js +20 -0
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251127195615.js +19 -0
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251130144047.js +16 -0
- package/.medusa/server/src/modules/mpn-automation/models/index.js +14 -0
- package/.medusa/server/src/modules/mpn-automation/models/mpn_automation_rule.js +27 -0
- package/.medusa/server/src/modules/mpn-automation/models/mpn_automation_rule_value.js +15 -0
- package/.medusa/server/src/modules/mpn-automation/models/mpn_automation_state.js +17 -0
- package/.medusa/server/src/modules/mpn-automation/models/mpn_automation_trigger.js +52 -0
- package/.medusa/server/src/modules/mpn-automation/models/npm_automation_action.js +23 -0
- package/.medusa/server/src/modules/mpn-automation/services/index.js +9 -0
- package/.medusa/server/src/modules/mpn-automation/services/service.js +38 -0
- package/.medusa/server/src/modules/mpn-automation/types.js +199 -0
- package/.medusa/server/src/subscribers/inventory-item-updated.js +22 -0
- package/.medusa/server/src/subscribers/inventory-level-updated.js +43 -0
- package/.medusa/server/src/subscribers/inventory-reservation-item-updated.js +22 -0
- package/.medusa/server/src/subscribers/mpn.automation.action.email.executed.js +45 -0
- package/.medusa/server/src/subscribers/order-completed.js +110 -0
- package/.medusa/server/src/subscribers/order-placed.js +108 -0
- package/.medusa/server/src/subscribers/payment-captured.js +96 -0
- package/.medusa/server/src/utils/index.js +20 -0
- package/.medusa/server/src/utils/plugins.js +20 -0
- package/.medusa/server/src/utils/types/index.js +19 -0
- package/.medusa/server/src/utils/validate-rules.js +85 -0
- package/.medusa/server/src/workflows/index.js +20 -0
- package/.medusa/server/src/workflows/inventory/get-inventory-level-by-id.js +23 -0
- package/.medusa/server/src/workflows/inventory/index.js +18 -0
- package/.medusa/server/src/workflows/inventory/steps/get-inventory-level-by-id.js +25 -0
- package/.medusa/server/src/workflows/inventory/steps/index.js +18 -0
- package/.medusa/server/src/workflows/mpn-automation/create-automation.js +14 -0
- package/.medusa/server/src/workflows/mpn-automation/edit-automation-actions.js +15 -0
- package/.medusa/server/src/workflows/mpn-automation/edit-automation-rules.js +15 -0
- package/.medusa/server/src/workflows/mpn-automation/edit-automation.js +14 -0
- package/.medusa/server/src/workflows/mpn-automation/index.js +24 -0
- package/.medusa/server/src/workflows/mpn-automation/run-automation.js +76 -0
- package/.medusa/server/src/workflows/mpn-automation/send-email-action.js +73 -0
- package/.medusa/server/src/workflows/mpn-automation/steps/create-automation.js +19 -0
- package/.medusa/server/src/workflows/mpn-automation/steps/edit-automation-actions.js +51 -0
- package/.medusa/server/src/workflows/mpn-automation/steps/edit-automation-rules.js +87 -0
- package/.medusa/server/src/workflows/mpn-automation/steps/edit-automation.js +20 -0
- package/.medusa/server/src/workflows/mpn-automation/steps/index.js +24 -0
- package/.medusa/server/src/workflows/mpn-automation/steps/retrieve-automation-triggers-by-event.js +62 -0
- package/.medusa/server/src/workflows/mpn-automation/steps/run-automation-actions.js +92 -0
- package/.medusa/server/src/workflows/mpn-automation/steps/validate-automation-triggers.js +29 -0
- package/.medusa/server/src/workflows/mpn-automation/validate-automation-triggers-by-event.js +38 -0
- package/.medusa/server/src/workflows/notifications/index.js +18 -0
- package/.medusa/server/src/workflows/notifications/send-email.js +51 -0
- package/.medusa/server/src/workflows/notifications/steps/index.js +18 -0
- package/.medusa/server/src/workflows/notifications/steps/send-email.js +119 -0
- package/.medusa/server/src/workflows/steps/log-step.js +16 -0
- package/LICENSE +21 -0
- package/README.md +104 -0
- package/package.json +72 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.editAutomationActionsStep = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const mpn_automation_1 = require("../../../modules/mpn-automation");
|
|
6
|
+
exports.editAutomationActionsStep = (0, workflows_sdk_1.createStep)("edit-automation-actions", async ({ trigger_id, actions }, { container }) => {
|
|
7
|
+
const mpnAutomationService = container.resolve(mpn_automation_1.MPN_AUTOMATION_MODULE);
|
|
8
|
+
// Get existing actions for this trigger
|
|
9
|
+
const existingActions = await mpnAutomationService.listMpnAutomationActions({
|
|
10
|
+
trigger_id: trigger_id,
|
|
11
|
+
});
|
|
12
|
+
const existingActionIds = existingActions.map((action) => action.id);
|
|
13
|
+
const incomingActionIds = actions.filter((action) => action.id).map((action) => action.id);
|
|
14
|
+
// Find actions to delete (existing but not in new data)
|
|
15
|
+
const actionsToDelete = existingActionIds.filter((id) => !incomingActionIds.includes(id));
|
|
16
|
+
// Delete actions that are no longer in the data
|
|
17
|
+
if (actionsToDelete.length > 0) {
|
|
18
|
+
await mpnAutomationService.deleteMpnAutomationActions(actionsToDelete);
|
|
19
|
+
}
|
|
20
|
+
// Update or create actions
|
|
21
|
+
const updatedActions = await Promise.all(actions.map(async (action) => {
|
|
22
|
+
if (action?.id) {
|
|
23
|
+
// Check if action exists
|
|
24
|
+
const existingAction = existingActions.find((a) => a.id === action.id);
|
|
25
|
+
if (!existingAction) {
|
|
26
|
+
throw new Error(`Action with id ${action.id} does not exist`);
|
|
27
|
+
}
|
|
28
|
+
// Update existing action
|
|
29
|
+
const updatedAction = await mpnAutomationService.updateMpnAutomationActions([
|
|
30
|
+
{
|
|
31
|
+
id: action.id,
|
|
32
|
+
action_type: action.action_type,
|
|
33
|
+
config: action.config,
|
|
34
|
+
},
|
|
35
|
+
]);
|
|
36
|
+
return updatedAction[0];
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
// Create new action
|
|
40
|
+
const actionData = {
|
|
41
|
+
trigger_id: trigger_id,
|
|
42
|
+
action_type: action.action_type,
|
|
43
|
+
config: action.config,
|
|
44
|
+
};
|
|
45
|
+
const newAction = await mpnAutomationService.createMpnAutomationActions([actionData]);
|
|
46
|
+
return newAction[0];
|
|
47
|
+
}
|
|
48
|
+
}));
|
|
49
|
+
return new workflows_sdk_1.StepResponse(updatedActions, updatedActions);
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1hdXRvbWF0aW9uLWFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21wbi1hdXRvbWF0aW9uL3N0ZXBzL2VkaXQtYXV0b21hdGlvbi1hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE0RTtBQUU1RSxvRUFBdUU7QUFRMUQsUUFBQSx5QkFBeUIsR0FBRyxJQUFBLDBCQUFVLEVBQ2pELHlCQUF5QixFQUN6QixLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFrQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUMvRSxNQUFNLG9CQUFvQixHQUF5QixTQUFTLENBQUMsT0FBTyxDQUFDLHNDQUFxQixDQUFDLENBQUE7SUFFM0Ysd0NBQXdDO0lBQ3hDLE1BQU0sZUFBZSxHQUFHLE1BQU0sb0JBQW9CLENBQUMsd0JBQXdCLENBQ3pFO1FBQ0UsVUFBVSxFQUFFLFVBQVU7S0FDdkIsQ0FDRixDQUFBO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDekUsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFMUYsd0RBQXdEO0lBQ3hELE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FDOUMsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUNoRCxDQUFBO0lBRUQsZ0RBQWdEO0lBQ2hELElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMvQixNQUFNLG9CQUFvQixDQUFDLDBCQUEwQixDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ3hFLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsTUFBTSxjQUFjLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUMzQixJQUFJLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNmLHlCQUF5QjtZQUN6QixNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUMzRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLE1BQU0sQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUE7WUFDL0QsQ0FBQztZQUVELHlCQUF5QjtZQUN6QixNQUFNLGFBQWEsR0FBRyxNQUFNLG9CQUFvQixDQUFDLDBCQUEwQixDQUFDO2dCQUMxRTtvQkFDRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7b0JBQ2IsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO29CQUMvQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07aUJBQ3RCO2FBQ0YsQ0FBQyxDQUFBO1lBRUYsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDekIsQ0FBQzthQUFNLENBQUM7WUFDTixvQkFBb0I7WUFDcEIsTUFBTSxVQUFVLEdBQUc7Z0JBQ2pCLFVBQVUsRUFBRSxVQUFVO2dCQUN0QixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7Z0JBQy9CLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTthQUN0QixDQUFBO1lBQ0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUE7WUFFckYsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDckIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUNILENBQUE7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUE7QUFDekQsQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.editAutomationRulesStep = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const mpn_automation_1 = require("../../../modules/mpn-automation");
|
|
6
|
+
exports.editAutomationRulesStep = (0, workflows_sdk_1.createStep)("edit-automation-rules", async ({ trigger_id, rules }, { container }) => {
|
|
7
|
+
const mpnAutomationService = container.resolve(mpn_automation_1.MPN_AUTOMATION_MODULE);
|
|
8
|
+
// Get existing rules for this trigger
|
|
9
|
+
const existingRules = await mpnAutomationService.listMpnAutomationRules({
|
|
10
|
+
trigger_id: trigger_id,
|
|
11
|
+
}, {
|
|
12
|
+
relations: ["rule_values"],
|
|
13
|
+
});
|
|
14
|
+
const existingRuleIds = existingRules.map((rule) => rule.id);
|
|
15
|
+
const incomingRuleIds = rules.filter((rule) => rule.id).map((rule) => rule.id);
|
|
16
|
+
// Find rules to delete (existing but not in new data)
|
|
17
|
+
const rulesToDelete = existingRuleIds.filter((id) => !incomingRuleIds.includes(id));
|
|
18
|
+
// Delete rules that are no longer in the data
|
|
19
|
+
if (rulesToDelete.length > 0) {
|
|
20
|
+
await mpnAutomationService.deleteMpnAutomationRules(rulesToDelete);
|
|
21
|
+
}
|
|
22
|
+
// Update or create rules
|
|
23
|
+
const updatedRules = await Promise.all(rules.map(async (rule) => {
|
|
24
|
+
if (rule?.id) {
|
|
25
|
+
// Check if rule exists
|
|
26
|
+
const existingRule = existingRules.find((r) => r.id === rule.id);
|
|
27
|
+
if (!existingRule) {
|
|
28
|
+
throw new Error(`Rule with id ${rule.id} does not exist`);
|
|
29
|
+
}
|
|
30
|
+
// Update existing rule
|
|
31
|
+
const updatedRule = await mpnAutomationService.updateMpnAutomationRules([
|
|
32
|
+
{
|
|
33
|
+
id: rule.id,
|
|
34
|
+
attribute: rule.attribute,
|
|
35
|
+
operator: rule.operator,
|
|
36
|
+
},
|
|
37
|
+
]);
|
|
38
|
+
// Get existing rule values
|
|
39
|
+
const existingValueIds = existingRule?.rule_values?.map((v) => v.id) || [];
|
|
40
|
+
const incomingValueIds = (rule.rule_values || [])
|
|
41
|
+
.filter((v) => v.id)
|
|
42
|
+
.map((v) => v.id);
|
|
43
|
+
// Delete values that are no longer in the data
|
|
44
|
+
const valuesToDelete = existingValueIds.filter((id) => !incomingValueIds.includes(id));
|
|
45
|
+
if (valuesToDelete.length > 0) {
|
|
46
|
+
await mpnAutomationService.deleteMpnAutomationRuleValues(valuesToDelete);
|
|
47
|
+
}
|
|
48
|
+
// Update or create rule values
|
|
49
|
+
if (rule.rule_values && rule.rule_values.length > 0) {
|
|
50
|
+
const valuesToUpdate = rule.rule_values.filter((v) => v.id);
|
|
51
|
+
const valuesToCreate = rule.rule_values.filter((v) => !v.id);
|
|
52
|
+
if (valuesToUpdate.length > 0) {
|
|
53
|
+
await mpnAutomationService.updateMpnAutomationRuleValues(valuesToUpdate.map((value) => ({
|
|
54
|
+
id: value.id,
|
|
55
|
+
value: value.value
|
|
56
|
+
})));
|
|
57
|
+
}
|
|
58
|
+
if (valuesToCreate.length > 0) {
|
|
59
|
+
await mpnAutomationService.createMpnAutomationRuleValues(valuesToCreate.map((value) => ({
|
|
60
|
+
rule_id: rule.id,
|
|
61
|
+
value: value.value
|
|
62
|
+
})));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return updatedRule[0];
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
// Create new rule
|
|
69
|
+
const ruleData = {
|
|
70
|
+
trigger_id: trigger_id,
|
|
71
|
+
attribute: rule.attribute,
|
|
72
|
+
operator: rule.operator,
|
|
73
|
+
};
|
|
74
|
+
const newRule = await mpnAutomationService.createMpnAutomationRules([ruleData]);
|
|
75
|
+
// Create rule values if they exist
|
|
76
|
+
if (rule?.rule_values && rule?.rule_values.length > 0) {
|
|
77
|
+
await mpnAutomationService.createMpnAutomationRuleValues(rule.rule_values.map((value) => ({
|
|
78
|
+
rule_id: newRule[0].id,
|
|
79
|
+
value: value.value
|
|
80
|
+
})));
|
|
81
|
+
}
|
|
82
|
+
return newRule[0];
|
|
83
|
+
}
|
|
84
|
+
}));
|
|
85
|
+
return new workflows_sdk_1.StepResponse(updatedRules, updatedRules);
|
|
86
|
+
});
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1hdXRvbWF0aW9uLXJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9tcG4tYXV0b21hdGlvbi9zdGVwcy9lZGl0LWF1dG9tYXRpb24tcnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTRFO0FBRTVFLG9FQUF1RTtBQVExRCxRQUFBLHVCQUF1QixHQUFHLElBQUEsMEJBQVUsRUFDL0MsdUJBQXVCLEVBQ3ZCLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWdDLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQzNFLE1BQU0sb0JBQW9CLEdBQXlCLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0NBQXFCLENBQUMsQ0FBQTtJQUUzRixzQ0FBc0M7SUFDdEMsTUFBTSxhQUFhLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FDckU7UUFDRSxVQUFVLEVBQUUsVUFBVTtLQUN2QixFQUNEO1FBQ0UsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDO0tBQzNCLENBQ0YsQ0FBQTtJQUVELE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNqRSxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFOUUsc0RBQXNEO0lBQ3RELE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQzFDLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQzlDLENBQUE7SUFFRCw4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
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.editAutomationStep = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const mpn_automation_1 = require("../../../modules/mpn-automation");
|
|
6
|
+
exports.editAutomationStep = (0, workflows_sdk_1.createStep)("edit-automation", async ({ items }, { container }) => {
|
|
7
|
+
const mpnAutomationService = container.resolve(mpn_automation_1.MPN_AUTOMATION_MODULE);
|
|
8
|
+
const automation = await mpnAutomationService.updateMpnAutomationTriggers(items.map((item) => ({
|
|
9
|
+
id: item.id,
|
|
10
|
+
name: item.name,
|
|
11
|
+
description: item.description,
|
|
12
|
+
trigger_type: item.trigger_type,
|
|
13
|
+
event_name: item.event_name,
|
|
14
|
+
interval_minutes: item.interval_minutes,
|
|
15
|
+
active: item.active,
|
|
16
|
+
channels: item.channels
|
|
17
|
+
})));
|
|
18
|
+
return new workflows_sdk_1.StepResponse(automation, automation);
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1hdXRvbWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9tcG4tYXV0b21hdGlvbi9zdGVwcy9lZGl0LWF1dG9tYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTRFO0FBRTVFLG9FQUF1RTtBQU8xRCxRQUFBLGtCQUFrQixHQUFHLElBQUEsMEJBQVUsRUFDMUMsaUJBQWlCLEVBQ2pCLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBMkIsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDMUQsTUFBTSxvQkFBb0IsR0FBeUIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQ0FBcUIsQ0FBQyxDQUFBO0lBRTNGLE1BQU0sVUFBVSxHQUFHLE1BQU0sb0JBQW9CLENBQUMsMkJBQTJCLENBQ3ZFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkIsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1FBQzdCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtRQUMvQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7UUFDM0IsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtRQUN2QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07UUFDbkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO0tBQ3hCLENBQUMsQ0FBQyxDQUNKLENBQUE7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUE7QUFDakQsQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./retrieve-automation-triggers-by-event"), exports);
|
|
18
|
+
__exportStar(require("./validate-automation-triggers"), exports);
|
|
19
|
+
__exportStar(require("./run-automation-actions"), exports);
|
|
20
|
+
__exportStar(require("./create-automation"), exports);
|
|
21
|
+
__exportStar(require("./edit-automation"), exports);
|
|
22
|
+
__exportStar(require("./edit-automation-rules"), exports);
|
|
23
|
+
__exportStar(require("./edit-automation-actions"), exports);
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21wbi1hdXRvbWF0aW9uL3N0ZXBzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwRUFBdUQ7QUFDdkQsaUVBQThDO0FBQzlDLDJEQUF3QztBQUN4QyxzREFBbUM7QUFDbkMsb0RBQWlDO0FBQ2pDLDBEQUF1QztBQUN2Qyw0REFBeUMifQ==
|
package/.medusa/server/src/workflows/mpn-automation/steps/retrieve-automation-triggers-by-event.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAutomationTriggersByEventStep = exports.getAutomationTriggersByEventStepId = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const mpn_automation_1 = require("../../../modules/mpn-automation");
|
|
6
|
+
exports.getAutomationTriggersByEventStepId = "get-automation-triggers-by-event";
|
|
7
|
+
/**
|
|
8
|
+
* This step retrieves notification triggers (scenarios) by event name.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* const data = getAutomationTriggersByEventStep({
|
|
12
|
+
* eventName: "inventory.inventory-level.updated",
|
|
13
|
+
* eventType: TriggerType.EVENT
|
|
14
|
+
* })
|
|
15
|
+
*/
|
|
16
|
+
exports.getAutomationTriggersByEventStep = (0, workflows_sdk_1.createStep)(exports.getAutomationTriggersByEventStepId, async (input, { container }) => {
|
|
17
|
+
// Use the main module service
|
|
18
|
+
const automationService = container.resolve(mpn_automation_1.MPN_AUTOMATION_MODULE);
|
|
19
|
+
// Retrieve triggers for the given event that are active and have the specified type
|
|
20
|
+
const triggers = await automationService.listMpnAutomationTriggers({
|
|
21
|
+
event_name: input.eventName,
|
|
22
|
+
trigger_type: input.eventType,
|
|
23
|
+
active: true,
|
|
24
|
+
}, {
|
|
25
|
+
relations: [
|
|
26
|
+
"rules",
|
|
27
|
+
"rules.rule_values",
|
|
28
|
+
"actions",
|
|
29
|
+
],
|
|
30
|
+
});
|
|
31
|
+
const triggersData = triggers.map((trigger) => ({
|
|
32
|
+
id: trigger.id,
|
|
33
|
+
name: trigger.name,
|
|
34
|
+
description: trigger.description,
|
|
35
|
+
trigger_type: trigger.trigger_type,
|
|
36
|
+
event_name: trigger.event_name,
|
|
37
|
+
interval_minutes: trigger.interval_minutes,
|
|
38
|
+
last_run_at: trigger.last_run_at,
|
|
39
|
+
active: trigger.active,
|
|
40
|
+
channels: trigger.channels,
|
|
41
|
+
metadata: trigger.metadata,
|
|
42
|
+
rules: (trigger.rules || []).map((rule) => ({
|
|
43
|
+
id: rule.id,
|
|
44
|
+
attribute: rule.attribute,
|
|
45
|
+
operator: rule.operator,
|
|
46
|
+
description: rule.description,
|
|
47
|
+
metadata: rule.metadata,
|
|
48
|
+
rule_values: (rule.rule_values || []).map((value) => ({
|
|
49
|
+
id: value.id,
|
|
50
|
+
value: value.value,
|
|
51
|
+
metadata: value.metadata,
|
|
52
|
+
})),
|
|
53
|
+
})),
|
|
54
|
+
actions: (trigger.actions || []).map((action) => ({
|
|
55
|
+
id: action.id,
|
|
56
|
+
action_type: action.action_type,
|
|
57
|
+
config: action.config
|
|
58
|
+
})),
|
|
59
|
+
}));
|
|
60
|
+
return new workflows_sdk_1.StepResponse(triggersData, triggersData);
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cmlldmUtYXV0b21hdGlvbi10cmlnZ2Vycy1ieS1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbXBuLWF1dG9tYXRpb24vc3RlcHMvcmV0cmlldmUtYXV0b21hdGlvbi10cmlnZ2Vycy1ieS1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNEU7QUFDNUUsb0VBQXVFO0FBUzFELFFBQUEsa0NBQWtDLEdBQUcsa0NBQWtDLENBQUE7QUFFcEY7Ozs7Ozs7O0dBUUc7QUFDVSxRQUFBLGdDQUFnQyxHQUFHLElBQUEsMEJBQVUsRUFDeEQsMENBQWtDLEVBQ2xDLEtBQUssRUFDSCxLQUE0QyxFQUM1QyxFQUFFLFNBQVMsRUFBRSxFQUNpQyxFQUFFO0lBQ2hELDhCQUE4QjtJQUM5QixNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQ3pDLHNDQUFxQixDQUN0QixDQUFBO0lBRUQsb0ZBQW9GO0lBQ3BGLE1BQU0sUUFBUSxHQUFHLE1BQU0saUJBQWlCLENBQUMseUJBQXlCLENBQ2hFO1FBQ0UsVUFBVSxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzNCLFlBQVksRUFBRSxLQUFLLENBQUMsU0FBUztRQUM3QixNQUFNLEVBQUUsSUFBSTtLQUNiLEVBQ0Q7UUFDRSxTQUFTLEVBQUU7WUFDVCxPQUFPO1lBQ1AsbUJBQW1CO1lBQ25CLFNBQVM7U0FDVjtLQUNGLENBQ0YsQ0FBQTtJQUVELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQ2QsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztRQUNoQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQTJCO1FBQ2pELFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtRQUM5QixnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCO1FBQzFDLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztRQUNoQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUEwQztRQUM1RCxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQXNDO1FBQ3hELEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBc0M7WUFDckQsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BELEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDWixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7Z0JBQ2xCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBc0M7YUFDdkQsQ0FBQyxDQUFDO1NBQ0osQ0FBQyxDQUFDO1FBQ0gsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEQsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ2IsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtTQUN0QixDQUFDLENBQUM7S0FDSixDQUFDLENBQUMsQ0FBQTtJQUVILE9BQU8sSUFBSSw0QkFBWSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQTtBQUNyRCxDQUFDLENBQ0YsQ0FBQSJ9
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runAutomationActionsStep = exports.runAutomationActionsStepId = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
exports.runAutomationActionsStepId = "run-automation-actions";
|
|
7
|
+
/**
|
|
8
|
+
* This step runs automation actions for all validated triggers by emitting events for each action type.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* const data = runAutomationActionsStep({
|
|
12
|
+
* validated: [
|
|
13
|
+
* {
|
|
14
|
+
* isValid: true,
|
|
15
|
+
* trigger: { id: "trigger_123", name: "Low Stock Alert" },
|
|
16
|
+
* actions: [{ actionType: "email", ... }]
|
|
17
|
+
* }
|
|
18
|
+
* ],
|
|
19
|
+
* context: { inventory_level: { ... } }
|
|
20
|
+
* })
|
|
21
|
+
*/
|
|
22
|
+
exports.runAutomationActionsStep = (0, workflows_sdk_1.createStep)(exports.runAutomationActionsStepId, async (input, { container }) => {
|
|
23
|
+
const eventBusService = container.resolve(utils_1.Modules.EVENT_BUS);
|
|
24
|
+
const { validated, context } = input;
|
|
25
|
+
if (!validated || validated.length === 0) {
|
|
26
|
+
return new workflows_sdk_1.StepResponse({
|
|
27
|
+
results: [],
|
|
28
|
+
triggersCount: 0,
|
|
29
|
+
totalActionsExecuted: 0,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
const results = await Promise.all(validated.map(async (result) => {
|
|
33
|
+
if (!result.isValid || !result.actions || result.actions.length === 0) {
|
|
34
|
+
return {
|
|
35
|
+
triggerId: result.trigger.id || result.trigger.trigger_id,
|
|
36
|
+
isValid: result.isValid,
|
|
37
|
+
actionsExecuted: 0,
|
|
38
|
+
actions: [],
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const executedActions = await Promise.all(result.actions.map(async (action) => {
|
|
42
|
+
try {
|
|
43
|
+
const actionType = action.action_type;
|
|
44
|
+
if (!actionType) {
|
|
45
|
+
console.warn(`Action ${action.id} has no action_type, skipping`);
|
|
46
|
+
return {
|
|
47
|
+
actionId: action.id,
|
|
48
|
+
actionType: actionType,
|
|
49
|
+
success: false,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// Emit event based on action type
|
|
53
|
+
const eventName = `mpn.automation.action.${actionType}.executed`;
|
|
54
|
+
await eventBusService.emit({
|
|
55
|
+
name: eventName,
|
|
56
|
+
data: {
|
|
57
|
+
eventName: eventName,
|
|
58
|
+
action: action,
|
|
59
|
+
triggerId: result.trigger.id || result.trigger.trigger_id,
|
|
60
|
+
context: context,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
return {
|
|
64
|
+
actionId: action.id,
|
|
65
|
+
actionType: actionType,
|
|
66
|
+
success: true,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
console.error(`Failed to execute action ${action.id}:`, error);
|
|
71
|
+
return {
|
|
72
|
+
actionId: action.id,
|
|
73
|
+
actionType: action.action_type,
|
|
74
|
+
success: false,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}));
|
|
78
|
+
return {
|
|
79
|
+
triggerId: result.trigger.id || result.trigger.trigger_id,
|
|
80
|
+
isValid: result.isValid,
|
|
81
|
+
actionsExecuted: executedActions.filter(a => a.success).length,
|
|
82
|
+
actions: executedActions,
|
|
83
|
+
};
|
|
84
|
+
}));
|
|
85
|
+
const totalActionsExecuted = results.reduce((sum, r) => sum + r.actionsExecuted, 0);
|
|
86
|
+
return new workflows_sdk_1.StepResponse({
|
|
87
|
+
results,
|
|
88
|
+
triggersCount: validated.length,
|
|
89
|
+
totalActionsExecuted,
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWF1dG9tYXRpb24tYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbXBuLWF1dG9tYXRpb24vc3RlcHMvcnVuLWF1dG9tYXRpb24tYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNEU7QUFDNUUscURBQW1EO0FBMkJ0QyxRQUFBLDBCQUEwQixHQUFHLHdCQUF3QixDQUFBO0FBRWxFOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ1UsUUFBQSx3QkFBd0IsR0FBRyxJQUFBLDBCQUFVLEVBQ2hELGtDQUEwQixFQUMxQixLQUFLLEVBQ0gsS0FBb0MsRUFDcEMsRUFBRSxTQUFTLEVBQUUsRUFDMEMsRUFBRTtJQUN6RCxNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUM1RCxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUVwQyxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekMsT0FBTyxJQUFJLDRCQUFZLENBQUM7WUFDdEIsT0FBTyxFQUFFLEVBQUU7WUFDWCxhQUFhLEVBQUUsQ0FBQztZQUNoQixvQkFBb0IsRUFBRSxDQUFDO1NBQ3hCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQy9CLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0RSxPQUFPO2dCQUNMLFNBQVMsRUFBRSxNQUFNLENBQUMsT0FB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
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateAutomationTriggersStep = exports.validateAutomationTriggersStepId = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const validate_rules_1 = require("../../../utils/validate-rules");
|
|
6
|
+
exports.validateAutomationTriggersStepId = "validate-automation-triggers";
|
|
7
|
+
/**
|
|
8
|
+
* This step validates multiple automation triggers against context data.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* const data = validateAutomationTriggersStep({
|
|
12
|
+
* triggers: [ ... ],
|
|
13
|
+
* context: { ... }
|
|
14
|
+
* })
|
|
15
|
+
*/
|
|
16
|
+
exports.validateAutomationTriggersStep = (0, workflows_sdk_1.createStep)(exports.validateAutomationTriggersStepId, async (input) => {
|
|
17
|
+
const { triggers, context } = input;
|
|
18
|
+
const validated = triggers.map((trigger) => {
|
|
19
|
+
// Validate rules for context
|
|
20
|
+
const isValid = (0, validate_rules_1.validateRulesForContext)(trigger.rules || [], context);
|
|
21
|
+
return {
|
|
22
|
+
isValid,
|
|
23
|
+
trigger,
|
|
24
|
+
actions: trigger.actions,
|
|
25
|
+
};
|
|
26
|
+
}).filter((action) => action.isValid);
|
|
27
|
+
return new workflows_sdk_1.StepResponse(validated, validated);
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtYXV0b21hdGlvbi10cmlnZ2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbXBuLWF1dG9tYXRpb24vc3RlcHMvdmFsaWRhdGUtYXV0b21hdGlvbi10cmlnZ2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNEU7QUFDNUUsa0VBQXVFO0FBUTFELFFBQUEsZ0NBQWdDLEdBQUcsOEJBQThCLENBQUE7QUFFOUU7Ozs7Ozs7O0dBUUc7QUFDVSxRQUFBLDhCQUE4QixHQUFHLElBQUEsMEJBQVUsRUFDdEQsd0NBQWdDLEVBQ2hDLEtBQUssRUFDSCxLQUEwQyxFQUNkLEVBQUU7SUFDOUIsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFbkMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ3pDLDZCQUE2QjtRQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFBLHdDQUF1QixFQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBRXJFLE9BQU87WUFDTCxPQUFPO1lBQ1AsT0FBTztZQUNQLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztTQUN6QixDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFMUMsT0FBTyxJQUFJLDRCQUFZLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0FBQy9DLENBQUMsQ0FDRixDQUFBIn0=
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateAutomationTriggersByEventWorkflow = exports.validateAutomationTriggersByEventWorkflowId = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const retrieve_automation_triggers_by_event_1 = require("./steps/retrieve-automation-triggers-by-event");
|
|
6
|
+
const validate_automation_triggers_1 = require("./steps/validate-automation-triggers");
|
|
7
|
+
exports.validateAutomationTriggersByEventWorkflowId = "validate-automation-triggers-by-event";
|
|
8
|
+
/**
|
|
9
|
+
* This workflow retrieves notification triggers for an event and validates them against context data.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* const { result } = await validateAutomationTriggersByEventWorkflow(container).run({
|
|
13
|
+
* input: {
|
|
14
|
+
* eventName: "inventory.inventory-level.updated",
|
|
15
|
+
* eventType: TriggerType.EVENT,
|
|
16
|
+
* context: {
|
|
17
|
+
* inventory_level: { ... }
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
* })
|
|
21
|
+
*/
|
|
22
|
+
exports.validateAutomationTriggersByEventWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.validateAutomationTriggersByEventWorkflowId, (input) => {
|
|
23
|
+
// Retrieve triggers for the event
|
|
24
|
+
const triggers = (0, retrieve_automation_triggers_by_event_1.getAutomationTriggersByEventStep)({
|
|
25
|
+
eventName: input.eventName,
|
|
26
|
+
eventType: input.eventType,
|
|
27
|
+
});
|
|
28
|
+
// Validate all triggers against context
|
|
29
|
+
const validated = (0, validate_automation_triggers_1.validateAutomationTriggersStep)({
|
|
30
|
+
triggers: triggers || [],
|
|
31
|
+
context: input.context,
|
|
32
|
+
});
|
|
33
|
+
return new workflows_sdk_1.WorkflowResponse({
|
|
34
|
+
validated: validated,
|
|
35
|
+
triggers: triggers,
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtYXV0b21hdGlvbi10cmlnZ2Vycy1ieS1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbXBuLWF1dG9tYXRpb24vdmFsaWRhdGUtYXV0b21hdGlvbi10cmlnZ2Vycy1ieS1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNkc7QUFDN0cseUdBQWdHO0FBQ2hHLHVGQUFxRjtBQW1CeEUsUUFBQSwyQ0FBMkMsR0FBRyx1Q0FBdUMsQ0FBQTtBQUVsRzs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ1UsUUFBQSx5Q0FBeUMsR0FBRyxJQUFBLDhCQUFjLEVBQ3JFLG1EQUEyQyxFQUMzQyxDQUFDLEtBQW1FLEVBQUUsRUFBRTtJQUN0RSxrQ0FBa0M7SUFDbEMsTUFBTSxRQUFRLEdBQUcsSUFBQSx3RUFBZ0MsRUFBQztRQUNoRCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7UUFDMUIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO0tBQzNCLENBQUMsQ0FBQTtJQUVGLHdDQUF3QztJQUN4QyxNQUFNLFNBQVMsR0FBRyxJQUFBLDZEQUE4QixFQUFDO1FBQy9DLFFBQVEsRUFBRSxRQUFRLElBQUksRUFBRTtRQUN4QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87S0FDdkIsQ0FBQyxDQUFBO0lBRUYsT0FBTyxJQUFJLGdDQUFnQixDQUFDO1FBQzFCLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLFFBQVEsRUFBRSxRQUFRO0tBQ25CLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FDRixDQUFBIn0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./send-email"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL25vdGlmaWNhdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUE0QiJ9
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendEmailWorkflow = exports.sendEmailWorkflowId = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const send_email_1 = require("./steps/send-email");
|
|
6
|
+
exports.sendEmailWorkflowId = "send-email";
|
|
7
|
+
/**
|
|
8
|
+
* Universal workflow that sends an email 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 email template
|
|
15
|
+
* - to: Required - Recipient email address
|
|
16
|
+
* - locale: Optional - Locale for translations (default: "pl")
|
|
17
|
+
* - customTemplate: Optional - Path to custom template function
|
|
18
|
+
* - subject: Optional - Custom subject (otherwise uses template default)
|
|
19
|
+
* - template: Optional - Template identifier for notification (defaults to templateName)
|
|
20
|
+
* - resourceId: Optional - Resource ID for notification tracking
|
|
21
|
+
* - resourceType: Optional - Resource type for notification tracking
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* // Standalone usage
|
|
26
|
+
* const { result } = await sendEmailWorkflow(container).run({
|
|
27
|
+
* input: {
|
|
28
|
+
* settings: {
|
|
29
|
+
* templateName: "inventory-level",
|
|
30
|
+
* to: "admin@example.com",
|
|
31
|
+
* locale: "pl"
|
|
32
|
+
* },
|
|
33
|
+
* templateData: {
|
|
34
|
+
* inventory_level: {
|
|
35
|
+
* id: "il_123",
|
|
36
|
+
* stocked_quantity: 5
|
|
37
|
+
* }
|
|
38
|
+
* }
|
|
39
|
+
* }
|
|
40
|
+
* })
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
exports.sendEmailWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.sendEmailWorkflowId, (input) => {
|
|
44
|
+
const result = (0, send_email_1.sendEmailStep)({
|
|
45
|
+
settings: input.settings,
|
|
46
|
+
templateData: input.templateData,
|
|
47
|
+
eventName: input.eventName,
|
|
48
|
+
});
|
|
49
|
+
return new workflows_sdk_1.WorkflowResponse(result);
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1lbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvbm90aWZpY2F0aW9ucy9zZW5kLWVtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFrRztBQUNsRyxtREFBa0Q7QUFnQnJDLFFBQUEsbUJBQW1CLEdBQUcsWUFBWSxDQUFBO0FBRS9DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DRztBQUNVLFFBQUEsaUJBQWlCLEdBQUcsSUFBQSw4QkFBYyxFQUM3QywyQkFBbUIsRUFDbkIsQ0FBQyxLQUEyQyxFQUFFLEVBQUU7SUFDOUMsTUFBTSxNQUFNLEdBQUcsSUFBQSwwQkFBYSxFQUFDO1FBQzNCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtRQUN4QixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7UUFDaEMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO0tBQzNCLENBQUMsQ0FBQTtJQUVGLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNyQyxDQUFDLENBQ0YsQ0FBQSJ9
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./send-email"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL25vdGlmaWNhdGlvbnMvc3RlcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUE0QiJ9
|