@codee-sh/medusa-plugin-automations 1.0.8 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/.medusa/server/src/admin/_chunks/{__admin-extensions__-BNGTajTJ → __admin-extensions__-CzXvFkp_} +23 -7
  2. package/.medusa/server/src/admin/_chunks/{__admin-extensions__-DBUaxMhv → __admin-extensions__-FXmyAEGa} +23 -7
  3. package/.medusa/server/src/admin/_chunks/{base-config-ClmYhVFu → base-config-CjqEuEOM} +7 -9
  4. package/.medusa/server/src/admin/_chunks/{base-config-CGvQmkNR → base-config-fXd1L6SD} +7 -9
  5. package/.medusa/server/src/admin/index.js +1 -1
  6. package/.medusa/server/src/admin/index.mjs +1 -1
  7. package/.medusa/server/src/api/admin/mpn/automations/actions/route.js +1 -20
  8. package/.medusa/server/src/api/admin/mpn/automations/available-actions/route.js +20 -3
  9. package/.medusa/server/src/modules/mpn-automation/index.js +6 -3
  10. package/.medusa/server/src/modules/mpn-automation/service.js +261 -0
  11. package/.medusa/server/src/modules/mpn-automation/services-local/base-action-service.js +117 -0
  12. package/.medusa/server/src/modules/mpn-automation/services-local/email-action-service.js +130 -0
  13. package/.medusa/server/src/modules/mpn-automation/services-local/slack-action-service.js +84 -0
  14. package/.medusa/server/src/modules/mpn-automation/types/modules/inventory/inventory.js +9 -1
  15. package/.medusa/server/src/modules/mpn-automation/types/modules/order/order.js +2 -1
  16. package/.medusa/server/src/providers/slack/service.js +29 -22
  17. package/.medusa/server/src/subscribers/mpn.automation.action.email.executed.js +9 -3
  18. package/.medusa/server/src/subscribers/mpn.automation.action.slack.executed.js +8 -6
  19. package/.medusa/server/src/subscribers/product-updated.js +1 -2
  20. package/.medusa/server/src/utils/types/index.js +1 -2
  21. package/.medusa/server/src/utils/validate-rules.js +8 -8
  22. package/.medusa/server/src/workflows/mpn-automation/run-automation.js +5 -6
  23. package/.medusa/server/src/workflows/mpn-automation/run-email-action.js +7 -7
  24. package/.medusa/server/src/workflows/mpn-automation/run-slack-action.js +12 -13
  25. package/.medusa/server/src/workflows/notifications/index.js +2 -1
  26. package/.medusa/server/src/workflows/notifications/send-email.js +7 -7
  27. package/.medusa/server/src/workflows/notifications/send-slack.js +7 -7
  28. package/.medusa/server/src/workflows/notifications/steps/index.js +2 -1
  29. package/.medusa/server/src/workflows/notifications/steps/send-email.js +66 -53
  30. package/.medusa/server/src/workflows/notifications/steps/send-slack.js +15 -16
  31. package/.medusa/server/src/workflows/order/steps/get-order-by-id.js +1 -1
  32. package/package.json +4 -3
  33. package/.medusa/server/src/modules/mpn-automation/services/base-action-service.js +0 -98
  34. package/.medusa/server/src/modules/mpn-automation/services/email-action-service.js +0 -81
  35. package/.medusa/server/src/modules/mpn-automation/services/index.js +0 -15
  36. package/.medusa/server/src/modules/mpn-automation/services/service.js +0 -356
  37. package/.medusa/server/src/modules/mpn-automation/services/slack-action-service.js +0 -58
  38. package/.medusa/server/src/templates/slack/inventory-level/index.js +0 -18
  39. package/.medusa/server/src/templates/slack/inventory-level/inventory-level.js +0 -95
  40. package/.medusa/server/src/templates/slack/inventory-level/translations/en.json +0 -18
  41. package/.medusa/server/src/templates/slack/inventory-level/translations/index.js +0 -15
  42. package/.medusa/server/src/templates/slack/inventory-level/translations/pl.json +0 -18
  43. package/.medusa/server/src/templates/slack/order/base-order.js +0 -57
  44. package/.medusa/server/src/templates/slack/order/index.js +0 -23
  45. package/.medusa/server/src/templates/slack/order/order-archived.js +0 -13
  46. package/.medusa/server/src/templates/slack/order/order-canceled.js +0 -13
  47. package/.medusa/server/src/templates/slack/order/order-completed.js +0 -13
  48. package/.medusa/server/src/templates/slack/order/order-placed.js +0 -13
  49. package/.medusa/server/src/templates/slack/order/order-updated.js +0 -13
  50. package/.medusa/server/src/templates/slack/order/order.js +0 -52
  51. package/.medusa/server/src/templates/slack/order/translations/en.json +0 -38
  52. package/.medusa/server/src/templates/slack/order/translations/index.js +0 -15
  53. package/.medusa/server/src/templates/slack/order/translations/pl.json +0 -38
  54. package/.medusa/server/src/templates/slack/product/index.js +0 -18
  55. package/.medusa/server/src/templates/slack/product/product.js +0 -54
  56. package/.medusa/server/src/templates/slack/product/translations/en.json +0 -18
  57. package/.medusa/server/src/templates/slack/product/translations/index.js +0 -15
  58. package/.medusa/server/src/templates/slack/product/translations/pl.json +0 -13
  59. package/.medusa/server/src/templates/slack/product-variant/index.js +0 -18
  60. package/.medusa/server/src/templates/slack/product-variant/product-variant.js +0 -54
  61. package/.medusa/server/src/templates/slack/product-variant/translations/en.json +0 -18
  62. package/.medusa/server/src/templates/slack/product-variant/translations/index.js +0 -15
  63. package/.medusa/server/src/templates/slack/product-variant/translations/pl.json +0 -13
  64. package/.medusa/server/src/templates/slack/types.js +0 -3
@@ -1,98 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseActionService = void 0;
4
- const utils_1 = require("@medusajs/framework/utils");
5
- /**
6
- * Base action service class
7
- *
8
- * @param id - Action ID (default: "base")
9
- * @param label - Action label (default: "Base")
10
- * @param description - Action description (default: "")
11
- * @param configComponentKey - Action config component key (default: "BaseConfigComponent")
12
- * @param fields - Action fields (default: [])
13
- */
14
- class BaseActionService {
15
- constructor() {
16
- this.id = "base";
17
- this.label = "Base";
18
- this.description = "";
19
- this.configComponentKey = "BaseConfigComponent";
20
- // Fields for the action configuration rendered in the admin panel then saved in the action config
21
- this.fields = [];
22
- // Template registry - each service manages its own templates
23
- this.templates_ = new Map();
24
- }
25
- /**
26
- * Register a template for this service
27
- * @param name - Template name
28
- * @param renderer - Template renderer function
29
- */
30
- registerTemplate(name, renderer) {
31
- this.templates_.set(name, renderer);
32
- }
33
- /**
34
- * Get template renderer by name
35
- * @param name - Template name
36
- * @returns Template renderer or undefined
37
- */
38
- getTemplate(name) {
39
- return this.templates_.get(name);
40
- }
41
- /**
42
- * Initialize default templates (override in subclasses)
43
- * Called automatically in constructor
44
- */
45
- initializeTemplates() {
46
- // Override in subclasses to register default templates
47
- }
48
- /**
49
- * Helper method to add templateName field to fields array
50
- * Call this in constructor or fields initialization if you need template selection
51
- *
52
- * @param options - Template options array (will be populated dynamically by service if eventName is provided)
53
- * @param defaultValue - Default template value
54
- * @returns FieldConfig for template
55
- */
56
- addTemplateNameField(options = [], defaultValue) {
57
- return {
58
- name: "templateName",
59
- key: "templateName",
60
- label: "Template Name",
61
- type: "select",
62
- required: true,
63
- options: options,
64
- defaultValue: defaultValue,
65
- };
66
- }
67
- /**
68
- * Function that executes the action in the workflow actions
69
- *
70
- * @param trigger - Trigger object
71
- * @param action - Action object
72
- * @param context - Context object
73
- * @param container - Container object
74
- * @param eventName - Event name
75
- * @param contextType - Context type determining structure of data in context
76
- * @returns object with actionId, actionType and success status
77
- */
78
- async executeAction({ trigger, action, context, container, eventName, contextType, }) {
79
- const eventBusService = container.resolve(utils_1.Modules.EVENT_BUS);
80
- await eventBusService.emit({
81
- name: eventName,
82
- data: {
83
- eventName: eventName,
84
- action: action,
85
- trigger: trigger.id,
86
- context: context,
87
- contextType: contextType,
88
- },
89
- });
90
- return {
91
- actionId: action.id,
92
- actionType: action.action_type,
93
- success: true,
94
- };
95
- }
96
- }
97
- exports.BaseActionService = BaseActionService;
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hY3Rpb24tc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL21wbi1hdXRvbWF0aW9uL3NlcnZpY2VzL2Jhc2UtYWN0aW9uLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEscURBQW1EO0FBRW5EOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSxpQkFBaUI7SUFBOUI7UUFDRSxPQUFFLEdBQUcsTUFBTSxDQUFBO1FBQ1gsVUFBSyxHQUFHLE1BQU0sQ0FBQTtRQUNkLGdCQUFXLEdBQUcsRUFBRSxDQUFBO1FBRWhCLHVCQUFrQixHQUFHLHFCQUFxQixDQUFBO1FBRTFDLGtHQUFrRztRQUNsRyxXQUFNLEdBQWtCLEVBQUUsQ0FBQTtRQUUxQiw2REFBNkQ7UUFDbkQsZUFBVSxHQUNsQixJQUFJLEdBQUcsRUFBRSxDQUFBO0lBcUdiLENBQUM7SUFuR0M7Ozs7T0FJRztJQUNILGdCQUFnQixDQUNkLElBQVksRUFDWixRQUEwQjtRQUUxQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsSUFBWTtRQUN0QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDTyxtQkFBbUI7UUFDM0IsdURBQXVEO0lBQ3pELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ08sb0JBQW9CLENBQzVCLFVBQWtELEVBQUUsRUFDcEQsWUFBcUI7UUFFckIsT0FBTztZQUNMLElBQUksRUFBRSxjQUFjO1lBQ3BCLEdBQUcsRUFBRSxjQUFjO1lBQ25CLEtBQUssRUFBRSxlQUFlO1lBQ3RCLElBQUksRUFBRSxRQUFpQjtZQUN2QixRQUFRLEVBQUUsSUFBSTtZQUNkLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFlBQVksRUFBRSxZQUFZO1NBQzNCLENBQUE7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsRUFDbEIsT0FBTyxFQUNQLE1BQU0sRUFDTixPQUFPLEVBQ1AsU0FBUyxFQUNULFNBQVMsRUFDVCxXQUFXLEdBUVo7UUFDQyxNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUN2QyxlQUFPLENBQUMsU0FBUyxDQUNsQixDQUFBO1FBRUQsTUFBTSxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQ3pCLElBQUksRUFBRSxTQUFTO1lBQ2YsSUFBSSxFQUFFO2dCQUNKLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixNQUFNLEVBQUUsTUFBTTtnQkFDZCxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUU7Z0JBQ25CLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixXQUFXLEVBQUUsV0FBVzthQUN6QjtTQUNGLENBQUMsQ0FBQTtRQUVGLE9BQU87WUFDTCxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDbkIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQzlCLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQTtJQUNILENBQUM7Q0FDRjtBQWpIRCw4Q0FpSEMifQ==
@@ -1,81 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EmailActionService = void 0;
4
- const base_action_service_1 = require("./base-action-service");
5
- const emails_1 = require("@codee-sh/medusa-plugin-notification-emails/templates/emails");
6
- class EmailActionService extends base_action_service_1.BaseActionService {
7
- constructor() {
8
- super();
9
- this.id = "email";
10
- this.label = "Email";
11
- this.fields = [
12
- {
13
- name: "to",
14
- key: "to",
15
- label: "To",
16
- type: "email",
17
- required: true,
18
- },
19
- {
20
- name: "subject",
21
- key: "subject",
22
- label: "Subject",
23
- type: "text",
24
- required: true,
25
- },
26
- {
27
- name: "body",
28
- key: "body",
29
- label: "Body",
30
- type: "textarea",
31
- required: true,
32
- },
33
- {
34
- name: "bcc",
35
- key: "bcc",
36
- label: "BCC",
37
- type: "email",
38
- required: false,
39
- },
40
- {
41
- name: "cc",
42
- key: "cc",
43
- label: "CC",
44
- type: "email",
45
- required: false,
46
- },
47
- {
48
- name: "replyTo",
49
- key: "replyTo",
50
- label: "Reply To",
51
- type: "email",
52
- required: false,
53
- },
54
- // Add templateName field - options will be populated dynamically by service based on eventName
55
- this.addTemplateNameField(),
56
- ];
57
- this.initializeTemplates();
58
- }
59
- /**
60
- * Initialize default email templates
61
- * Email templates are managed by @codee-sh/medusa-plugin-notification-emails
62
- * This method can be used to register custom templates if needed
63
- */
64
- initializeTemplates() {
65
- // Email templates are handled by external plugin
66
- // Custom templates can be registered here if needed
67
- }
68
- /**
69
- * Render email template using external plugin
70
- * @param params - Template rendering parameters
71
- * @returns Rendered email template with html, text, and subject
72
- */
73
- async renderTemplate(params) {
74
- const { templateName, context, options, customTemplateFunction, } = params;
75
- // Use external plugin's renderTemplate function
76
- const result = await (0, emails_1.renderTemplate)(templateName, context, options || {}, customTemplateFunction);
77
- return result;
78
- }
79
- }
80
- exports.EmailActionService = EmailActionService;
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtYWN0aW9uLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tcG4tYXV0b21hdGlvbi9zZXJ2aWNlcy9lbWFpbC1hY3Rpb24tc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrREFBeUQ7QUFDekQseUZBQTZGO0FBTzdGLE1BQWEsa0JBQW1CLFNBQVEsdUNBQWlCO0lBSXZEO1FBQ0UsS0FBSyxFQUFFLENBQUE7UUFKVCxPQUFFLEdBQUcsT0FBTyxDQUFBO1FBQ1osVUFBSyxHQUFHLE9BQU8sQ0FBQTtRQU9mLFdBQU0sR0FBa0I7WUFDdEI7Z0JBQ0UsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsR0FBRyxFQUFFLElBQUk7Z0JBQ1QsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsSUFBSSxFQUFFLE9BQWdCO2dCQUN0QixRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsR0FBRyxFQUFFLFNBQVM7Z0JBQ2QsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLElBQUksRUFBRSxNQUFlO2dCQUNyQixRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osR0FBRyxFQUFFLE1BQU07Z0JBQ1gsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsSUFBSSxFQUFFLFVBQW1CO2dCQUN6QixRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsR0FBRyxFQUFFLEtBQUs7Z0JBQ1YsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osSUFBSSxFQUFFLE9BQWdCO2dCQUN0QixRQUFRLEVBQUUsS0FBSzthQUNoQjtZQUNEO2dCQUNFLElBQUksRUFBRSxJQUFJO2dCQUNWLEdBQUcsRUFBRSxJQUFJO2dCQUNULEtBQUssRUFBRSxJQUFJO2dCQUNYLElBQUksRUFBRSxPQUFnQjtnQkFDdEIsUUFBUSxFQUFFLEtBQUs7YUFDaEI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixHQUFHLEVBQUUsU0FBUztnQkFDZCxLQUFLLEVBQUUsVUFBVTtnQkFDakIsSUFBSSxFQUFFLE9BQWdCO2dCQUN0QixRQUFRLEVBQUUsS0FBSzthQUNoQjtZQUNELCtGQUErRjtZQUMvRixJQUFJLENBQUMsb0JBQW9CLEVBQUU7U0FDNUIsQ0FBQTtRQWhEQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtJQUM1QixDQUFDO0lBaUREOzs7O09BSUc7SUFDTyxtQkFBbUI7UUFDM0IsaURBQWlEO1FBQ2pELG9EQUFvRDtJQUN0RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsTUFTcEI7UUFLQyxNQUFNLEVBQ0osWUFBWSxFQUNaLE9BQU8sRUFDUCxPQUFPLEVBQ1Asc0JBQXNCLEdBQ3ZCLEdBQUcsTUFBTSxDQUFBO1FBRVYsZ0RBQWdEO1FBQ2hELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSx1QkFBYyxFQUNqQyxZQUFZLEVBQ1osT0FBTyxFQUNQLE9BQU8sSUFBSSxFQUFFLEVBQ2Isc0JBQXNCLENBQ3ZCLENBQUE7UUFFRCxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7Q0FDRjtBQXRHRCxnREFzR0MifQ==
@@ -1,15 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.EmailActionService = exports.SlackActionService = exports.BaseActionService = exports.MpnAutomationService = void 0;
7
- const service_1 = __importDefault(require("./service"));
8
- Object.defineProperty(exports, "MpnAutomationService", { enumerable: true, get: function () { return service_1.default; } });
9
- var base_action_service_1 = require("./base-action-service");
10
- Object.defineProperty(exports, "BaseActionService", { enumerable: true, get: function () { return base_action_service_1.BaseActionService; } });
11
- var slack_action_service_1 = require("./slack-action-service");
12
- Object.defineProperty(exports, "SlackActionService", { enumerable: true, get: function () { return slack_action_service_1.SlackActionService; } });
13
- var email_action_service_1 = require("./email-action-service");
14
- Object.defineProperty(exports, "EmailActionService", { enumerable: true, get: function () { return email_action_service_1.EmailActionService; } });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tcG4tYXV0b21hdGlvbi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx3REFBMkQ7QUFDbEQscUdBRFcsaUJBQW9CLE9BQ1g7QUFFN0IsNkRBQXlEO0FBQWhELHdIQUFBLGlCQUFpQixPQUFBO0FBQzFCLCtEQUEyRDtBQUFsRCwwSEFBQSxrQkFBa0IsT0FBQTtBQUMzQiwrREFBMkQ7QUFBbEQsMEhBQUEsa0JBQWtCLE9BQUEifQ==
@@ -1,356 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const utils_1 = require("@medusajs/framework/utils");
4
- const models_1 = require("../models");
5
- const types_1 = require("../types");
6
- const email_action_service_1 = require("./email-action-service");
7
- const slack_action_service_1 = require("./slack-action-service");
8
- const utils_2 = require("@medusajs/framework/utils");
9
- const modules_1 = require("../types/modules");
10
- class MpnAutomationService extends (0, utils_1.MedusaService)({
11
- MpnAutomationTrigger: models_1.MpnAutomationTrigger,
12
- MpnAutomationState: models_1.MpnAutomationState,
13
- MpnAutomationRule: models_1.MpnAutomationRule,
14
- MpnAutomationRuleValue: models_1.MpnAutomationRuleValue,
15
- MpnAutomationAction: models_1.MpnAutomationAction,
16
- }) {
17
- constructor({ logger }, options) {
18
- super(...arguments);
19
- this.actionHandlers_ = new Map();
20
- this.logger_ = logger;
21
- this.options_ = options || {};
22
- this.events_ =
23
- this.options_.automations?.extend?.events || [];
24
- this.actionsEnabled_ = this.options_.automations
25
- ?.actionsEnabled || {
26
- slack: false,
27
- email: true,
28
- };
29
- // Initialize default action handlers
30
- this.initializeActionHandlers();
31
- // Initialize extended actions (custom handlers and templates)
32
- // Note: templates with import paths will be loaded asynchronously
33
- this.initializeExtendedActions().catch((error) => {
34
- this.logger_.error(`Failed to initialize extended actions: ${error?.message || "Unknown error"}`);
35
- });
36
- }
37
- /**
38
- * Get available triggers for the admin panel form
39
- *
40
- * @returns Array of triggers
41
- */
42
- getAvailableTriggers() {
43
- return [...types_1.TRIGGER_TYPES];
44
- }
45
- /**
46
- * Get action handlers map
47
- *
48
- * @returns Map of action handlers
49
- */
50
- getActionHandlers() {
51
- return this.actionHandlers_;
52
- }
53
- /**
54
- * Build events list using central metadata registry
55
- * Supports both Medusa events and custom events
56
- *
57
- * @returns Array of events
58
- */
59
- buildAvailableEvents() {
60
- const events = [
61
- // Service Events (automatic CRUD events)
62
- {
63
- name: "Inventory",
64
- events: this.buildEvents(utils_2.InventoryEvents) || [],
65
- },
66
- {
67
- name: "Cart",
68
- events: this.buildEvents(utils_2.CartWorkflowEvents),
69
- },
70
- {
71
- name: "Customer",
72
- events: this.buildEvents(utils_2.CustomerWorkflowEvents),
73
- },
74
- {
75
- name: "Order",
76
- events: this.buildEvents(utils_2.OrderWorkflowEvents),
77
- },
78
- {
79
- name: "Order Edit",
80
- events: this.buildEvents(utils_2.OrderEditWorkflowEvents),
81
- },
82
- {
83
- name: "User",
84
- events: this.buildEvents(utils_2.UserWorkflowEvents),
85
- },
86
- {
87
- name: "Auth",
88
- events: this.buildEvents(utils_2.AuthWorkflowEvents),
89
- },
90
- {
91
- name: "Sales Channel",
92
- events: this.buildEvents(utils_2.SalesChannelWorkflowEvents),
93
- },
94
- {
95
- name: "Product Category",
96
- events: this.buildEvents(utils_2.ProductCategoryWorkflowEvents),
97
- },
98
- {
99
- name: "Product Collection",
100
- events: this.buildEvents(utils_2.ProductCollectionWorkflowEvents),
101
- },
102
- {
103
- name: "Product Variant",
104
- events: this.buildEvents(utils_2.ProductVariantWorkflowEvents),
105
- },
106
- {
107
- name: "Product",
108
- events: this.buildEvents(utils_2.ProductWorkflowEvents),
109
- },
110
- {
111
- name: "Product Type",
112
- events: this.buildEvents(utils_2.ProductTypeWorkflowEvents),
113
- },
114
- {
115
- name: "Product Tag",
116
- events: this.buildEvents(utils_2.ProductTagWorkflowEvents),
117
- },
118
- {
119
- name: "Product Option",
120
- events: this.buildEvents(utils_2.ProductOptionWorkflowEvents),
121
- },
122
- {
123
- name: "Invite",
124
- events: this.buildEvents(utils_2.InviteWorkflowEvents),
125
- },
126
- {
127
- name: "Region",
128
- events: this.buildEvents(utils_2.RegionWorkflowEvents),
129
- },
130
- {
131
- name: "Fulfillment",
132
- events: this.buildEvents(utils_2.FulfillmentWorkflowEvents),
133
- },
134
- {
135
- name: "Payment Events",
136
- events: this.buildEvents(utils_2.PaymentEvents) || [],
137
- },
138
- ];
139
- // Filter out empty groups and ensure all groups have events array
140
- return events
141
- .filter((group) => group &&
142
- group.events &&
143
- Array.isArray(group.events) &&
144
- group.events.length > 0)
145
- .map((group) => ({
146
- name: String(group.name || ""),
147
- events: group.events || [],
148
- }));
149
- }
150
- /**
151
- * Get available events for the admin panel form
152
- * Combines Medusa events with custom events
153
- *
154
- * @returns Array of events
155
- */
156
- getAvailableEvents() {
157
- const medusaEvents = this.buildAvailableEvents();
158
- if (!this.events_ || this.events_.length === 0) {
159
- return medusaEvents;
160
- }
161
- // If there are custom events, add them to the result
162
- if (this.events_.length > 0) {
163
- return [...medusaEvents, ...this.events_];
164
- }
165
- return medusaEvents;
166
- }
167
- /**
168
- * Get available templates for a given event name
169
- * Uses getAvailableEvents() to find the event and extract template
170
- *
171
- * @param eventName - Event name to search for
172
- * @returns Array of template options
173
- */
174
- getTemplatesForEvent(eventName) {
175
- if (!eventName) {
176
- return [];
177
- }
178
- const allEvents = this.getAvailableEvents();
179
- // Search through all event groups
180
- for (const group of allEvents) {
181
- const event = group.events?.find((e) => e.value === eventName);
182
- if (event?.templates && event.templates.length > 0) {
183
- return event.templates;
184
- }
185
- }
186
- return [];
187
- }
188
- /**
189
- * Initialize action handlers from defaults and options
190
- *
191
- * @returns void
192
- */
193
- initializeActionHandlers() {
194
- const defaultActions = [
195
- new email_action_service_1.EmailActionService(),
196
- new slack_action_service_1.SlackActionService(),
197
- ];
198
- defaultActions.forEach((action) => {
199
- const isEnabled = this.actionsEnabled_[action.id];
200
- this.actionHandlers_.set(action.id, {
201
- handler: action,
202
- enabled: isEnabled,
203
- });
204
- this.logger_.info(`Action handler for ${action.id} registered - ${isEnabled ? "enabled" : "disabled"} in config`);
205
- });
206
- }
207
- /**
208
- * Initialize extended actions (custom handlers and templates)
209
- * Handles both custom handler registration and template loading
210
- *
211
- * @returns Promise<void>
212
- */
213
- async initializeExtendedActions() {
214
- const extendedActions = this.options_.automations?.extend?.actions || [];
215
- await Promise.all(extendedActions.map(async (actionConfig) => {
216
- // 1. Register custom handler if provided
217
- if (actionConfig.handler) {
218
- if (!this.actionHandlers_.has(actionConfig.id)) {
219
- const isEnabled = this.actionsEnabled_[actionConfig.id];
220
- this.actionHandlers_.set(actionConfig.id, {
221
- handler: actionConfig.handler,
222
- enabled: isEnabled,
223
- });
224
- this.logger_.info(`Custom action handler "${actionConfig.id}" registered - ${isEnabled ? "enabled" : "disabled"}`);
225
- }
226
- else {
227
- this.logger_.warn(`Action handler "${actionConfig.id}" already exists, skipping custom handler registration`);
228
- }
229
- }
230
- // 2. Register templates (for existing or newly registered handler)
231
- if (actionConfig.templates &&
232
- Array.isArray(actionConfig.templates)) {
233
- const handlerData = this.getActionHandler(actionConfig.id);
234
- if (!handlerData) {
235
- this.logger_.warn(`Cannot register templates for "${actionConfig.id}" - handler not found`);
236
- return;
237
- }
238
- const { handler } = handlerData;
239
- if (!handler.registerTemplate) {
240
- this.logger_.warn(`Handler "${actionConfig.id}" does not support template registration`);
241
- return;
242
- }
243
- await Promise.all(actionConfig.templates.map(async (template) => {
244
- const templateName = template.name;
245
- const templateValue = template.path;
246
- let renderer = templateValue;
247
- try {
248
- const templateModule = await import(templateValue);
249
- const template = templateModule.default;
250
- renderer = template?.default || template;
251
- if (!renderer) {
252
- this.logger_.warn(`Template module from "${templateValue}" does not export a default function or expected named export`);
253
- return;
254
- }
255
- }
256
- catch (error) {
257
- this.logger_.warn(`Failed to load template from "${templateValue}": ${error?.message || "Unknown error"}`);
258
- return;
259
- }
260
- if (templateName) {
261
- handler.registerTemplate(templateName, renderer);
262
- this.logger_.info(`Custom template "${templateName}" registered for handler "${actionConfig.id}"`);
263
- }
264
- }));
265
- }
266
- }));
267
- }
268
- /**
269
- * Get available actions for the admin panel form
270
- * If Handler has fields, we can push templateName field to fields array, then in the admin panel form we can render the templateName field as a select field with the templates options.
271
- *
272
- * @param eventName - Optional event name to filter templates dynamically
273
- * @returns Array of actions
274
- */
275
- getAvailableActions(eventName) {
276
- const handlers = this.getActionHandlers();
277
- return Array.from(handlers.values()).map((handler) => {
278
- // Get fields, potentially with dynamic template options
279
- let fields = handler.handler.fields || [];
280
- // If eventName is provided, update templateName fields dynamically
281
- if (eventName && fields.length > 0) {
282
- const templates = this.getTemplatesForEvent(eventName);
283
- fields = fields.map((field) => {
284
- // If this is a templateName field, update its options
285
- if (field.key === "templateName" &&
286
- field.type === "select") {
287
- return {
288
- ...field,
289
- options: templates.length > 0
290
- ? templates
291
- : field.options || [],
292
- defaultValue: templates.length > 0
293
- ? templates[0]?.value
294
- : field.defaultValue,
295
- };
296
- }
297
- return field;
298
- });
299
- }
300
- return {
301
- value: handler.handler.id,
302
- label: handler.handler.label,
303
- description: handler.handler.description,
304
- configComponentKey: handler.handler.configComponentKey,
305
- templateLoaders: handler.handler.templateLoaders,
306
- fields: fields,
307
- enabled: handler.enabled,
308
- };
309
- });
310
- }
311
- /**
312
- * Build events list from Medusa events
313
- * Supports both Medusa events and custom events
314
- *
315
- * @param events - Medusa events object
316
- * @returns Array of events
317
- */
318
- buildEvents(events) {
319
- if (!events || typeof events !== "object") {
320
- return [];
321
- }
322
- return Object.values(events)
323
- .filter((event) => event != null) // Filter out null/undefined
324
- .map((event) => {
325
- const eventName = String(event);
326
- // Skip invalid event names
327
- if (!eventName ||
328
- eventName === "undefined" ||
329
- eventName === "null") {
330
- return null;
331
- }
332
- const metadata = (0, modules_1.getEventMetadata)(eventName);
333
- return {
334
- value: eventName,
335
- label: eventName,
336
- attributes: metadata.attributes || event.attributes || [],
337
- templates: metadata.templates || event.templates || [],
338
- contextType: event.contextType || null, // Only from custom events, not from registry
339
- };
340
- })
341
- .filter((event) => event != null); // Filter out null results
342
- }
343
- /**
344
- * Get action handler by ID for the admin panel form
345
- * Used to get the action handler by ID in the Run Automation Actions workflow step
346
- *
347
- * @param actionId - Action ID
348
- * @returns Action handler
349
- */
350
- getActionHandler(actionId) {
351
- const handlers = this.getActionHandlers();
352
- return handlers.get(actionId);
353
- }
354
- }
355
- exports.default = MpnAutomationService;
356
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL21wbi1hdXRvbWF0aW9uL3NlcnZpY2VzL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFHa0M7QUFDbEMsc0NBTWtCO0FBQ2xCLG9DQUtpQjtBQUNqQixpRUFBMkQ7QUFDM0QsaUVBQTJEO0FBRTNELHFEQW9Ca0M7QUFDbEMsOENBQW1EO0FBTW5ELE1BQU0sb0JBQXFCLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQy9DLG9CQUFvQixFQUFwQiw2QkFBb0I7SUFDcEIsa0JBQWtCLEVBQWxCLDJCQUFrQjtJQUNsQixpQkFBaUIsRUFBakIsMEJBQWlCO0lBQ2pCLHNCQUFzQixFQUF0QiwrQkFBc0I7SUFDdEIsbUJBQW1CLEVBQW5CLDRCQUFtQjtDQUNwQixDQUFDO0lBT0EsWUFDRSxFQUFFLE1BQU0sRUFBd0IsRUFDaEMsT0FBdUI7UUFFdkIsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUE7UUFOYixvQkFBZSxHQUFxQixJQUFJLEdBQUcsRUFBRSxDQUFBO1FBUW5ELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFBO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQTtRQUM3QixJQUFJLENBQUMsT0FBTztZQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksRUFBRSxDQUFBO1FBQ2pELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQzlDLEVBQUUsY0FBYyxJQUFJO1lBQ3BCLEtBQUssRUFBRSxLQUFLO1lBQ1osS0FBSyxFQUFFLElBQUk7U0FDWixDQUFBO1FBRUQscUNBQXFDO1FBQ3JDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFBO1FBRS9CLDhEQUE4RDtRQUM5RCxrRUFBa0U7UUFD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
@@ -1,58 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SlackActionService = void 0;
4
- const base_action_service_1 = require("./base-action-service");
5
- const inventory_level_1 = require("../../../templates/slack/inventory-level");
6
- const product_variant_1 = require("../../../templates/slack/product-variant/product-variant");
7
- const product_1 = require("../../../templates/slack/product/product");
8
- const order_placed_1 = require("../../../templates/slack/order/order-placed");
9
- const order_completed_1 = require("../../../templates/slack/order/order-completed");
10
- const order_updated_1 = require("../../../templates/slack/order/order-updated");
11
- const order_canceled_1 = require("../../../templates/slack/order/order-canceled");
12
- const order_archived_1 = require("../../../templates/slack/order/order-archived");
13
- class SlackActionService extends base_action_service_1.BaseActionService {
14
- constructor() {
15
- super();
16
- this.id = "slack";
17
- this.label = "Slack";
18
- this.fields = [
19
- // Add templateName field - options will be populated dynamically by service based on eventName
20
- this.addTemplateNameField(),
21
- ];
22
- this.initializeTemplates();
23
- }
24
- /**
25
- * Initialize default Slack templates
26
- */
27
- initializeTemplates() {
28
- // Register default templates
29
- this.registerTemplate("inventory-level", inventory_level_1.renderInventoryLevel);
30
- this.registerTemplate("product-variant", product_variant_1.renderProductVariant);
31
- this.registerTemplate("product", product_1.renderProduct);
32
- this.registerTemplate("order-placed", order_placed_1.renderOrderPlaced);
33
- this.registerTemplate("order-completed", order_completed_1.renderOrderCompleted);
34
- this.registerTemplate("order-updated", order_updated_1.renderOrderUpdated);
35
- this.registerTemplate("order-canceled", order_canceled_1.renderOrderCanceled);
36
- this.registerTemplate("order-archived", order_archived_1.renderOrderArchived);
37
- }
38
- /**
39
- * Render Slack template
40
- * @param params - Template rendering parameters
41
- * @returns Rendered Slack template with text and blocks
42
- */
43
- async renderTemplate(params) {
44
- const renderer = this.getTemplate(params.templateName);
45
- if (!renderer) {
46
- throw new Error(`Slack template "${params.templateName}" not found. Available templates: ${Array.from(this.templates_.keys()).join(", ")}`);
47
- }
48
- const result = renderer({
49
- context: params.context,
50
- contextType: params.contextType,
51
- options: params.options || {},
52
- });
53
- // Handle both sync and async renderers
54
- return result instanceof Promise ? await result : result;
55
- }
56
- }
57
- exports.SlackActionService = SlackActionService;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhY2stYWN0aW9uLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tcG4tYXV0b21hdGlvbi9zZXJ2aWNlcy9zbGFjay1hY3Rpb24tc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFBeUQ7QUFLekQsOEVBQStFO0FBQy9FLDhGQUErRjtBQUMvRixzRUFBd0U7QUFDeEUsOEVBQStFO0FBQy9FLG9GQUFxRjtBQUNyRixnRkFBaUY7QUFDakYsa0ZBQW1GO0FBQ25GLGtGQUFtRjtBQUVuRixNQUFhLGtCQUFtQixTQUFRLHVDQUFpQjtJQUl2RDtRQUNFLEtBQUssRUFBRSxDQUFBO1FBSlQsT0FBRSxHQUFHLE9BQU8sQ0FBQTtRQUNaLFVBQUssR0FBRyxPQUFPLENBQUE7UUFPZixXQUFNLEdBQUc7WUFDUCwrRkFBK0Y7WUFDL0YsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1NBQzVCLENBQUE7UUFOQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtJQUM1QixDQUFDO0lBT0Q7O09BRUc7SUFDTyxtQkFBbUI7UUFDM0IsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FDbkIsaUJBQWlCLEVBQ2pCLHNDQUEyQixDQUM1QixDQUFBO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUNuQixpQkFBaUIsRUFDakIsc0NBQTJCLENBQzVCLENBQUE7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLHVCQUFvQixDQUFDLENBQUE7UUFFdEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxnQ0FBd0IsQ0FBQyxDQUFBO1FBQy9ELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxzQ0FBMkIsQ0FBQyxDQUFBO1FBQ3JFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsa0NBQXlCLENBQUMsQ0FBQTtRQUNqRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsb0NBQTBCLENBQUMsQ0FBQTtRQUNuRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsb0NBQTBCLENBQUMsQ0FBQTtJQUNyRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsTUFLcEI7UUFDQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUMvQixNQUFNLENBQUMsWUFBWSxDQUNpQixDQUFBO1FBRXRDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUJBQW1CLE1BQU0sQ0FBQyxZQUFZLHFDQUFxQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDM0gsQ0FBQTtRQUNILENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUM7WUFDdEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3ZCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFO1NBQzlCLENBQUMsQ0FBQTtRQUVGLHVDQUF1QztRQUN2QyxPQUFPLE1BQU0sWUFBWSxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7SUFDMUQsQ0FBQztDQUNGO0FBbEVELGdEQWtFQyJ9
@@ -1,18 +0,0 @@
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("./inventory-level"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL3NsYWNrL2ludmVudG9yeS1sZXZlbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQWlDIn0=