@codee-sh/medusa-plugin-automations 1.0.4 → 1.0.6

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 (47) hide show
  1. package/.medusa/server/src/modules/mpn-automation/services/base-action-service.js +98 -0
  2. package/.medusa/server/src/modules/mpn-automation/services/email-action-service.js +81 -0
  3. package/.medusa/server/src/modules/mpn-automation/services/index.js +8 -2
  4. package/.medusa/server/src/modules/mpn-automation/services/service.js +70 -15
  5. package/.medusa/server/src/modules/mpn-automation/services/slack-action-service.js +48 -0
  6. package/.medusa/server/src/modules/mpn-automation/types/index.js +2 -1
  7. package/.medusa/server/src/modules/mpn-automation/types/modules/index.js +21 -1
  8. package/.medusa/server/src/modules/mpn-automation/types/modules/product/index.js +18 -0
  9. package/.medusa/server/src/modules/mpn-automation/types/modules/product/product.js +50 -0
  10. package/.medusa/server/src/modules/mpn-automation/types/modules/product-variant/index.js +18 -0
  11. package/.medusa/server/src/modules/mpn-automation/types/modules/product-variant/product-variant.js +30 -0
  12. package/.medusa/server/src/modules/mpn-automation/types/types.js +1 -1
  13. package/.medusa/server/src/subscribers/mpn.automation.action.slack.executed.js +2 -2
  14. package/.medusa/server/src/subscribers/product-updated.js +45 -0
  15. package/.medusa/server/src/subscribers/product-variant-updated.js +45 -0
  16. package/.medusa/server/src/templates/slack/inventory-level/inventory-level.js +1 -1
  17. package/.medusa/server/src/templates/slack/product/index.js +18 -0
  18. package/.medusa/server/src/templates/slack/product/product.js +55 -0
  19. package/.medusa/server/src/templates/slack/product/translations/en.json +18 -0
  20. package/.medusa/server/src/templates/slack/product/translations/index.js +15 -0
  21. package/.medusa/server/src/templates/slack/product/translations/pl.json +13 -0
  22. package/.medusa/server/src/templates/slack/product-variant/index.js +18 -0
  23. package/.medusa/server/src/templates/slack/product-variant/product-variant.js +55 -0
  24. package/.medusa/server/src/templates/slack/product-variant/translations/en.json +18 -0
  25. package/.medusa/server/src/templates/slack/product-variant/translations/index.js +15 -0
  26. package/.medusa/server/src/templates/slack/product-variant/translations/pl.json +13 -0
  27. package/.medusa/server/src/templates/slack/types.js +1 -5
  28. package/.medusa/server/src/utils/types/index.js +3 -3
  29. package/.medusa/server/src/workflows/index.js +3 -1
  30. package/.medusa/server/src/workflows/inventory/steps/get-inventory-level-by-id.js +4 -1
  31. package/.medusa/server/src/workflows/notifications/steps/send-email.js +19 -7
  32. package/.medusa/server/src/workflows/notifications/steps/send-slack.js +9 -3
  33. package/.medusa/server/src/workflows/product/get-product-by-id.js +23 -0
  34. package/.medusa/server/src/workflows/product/index.js +18 -0
  35. package/.medusa/server/src/workflows/product/steps/get-product-by-id.js +80 -0
  36. package/.medusa/server/src/workflows/product/steps/index.js +18 -0
  37. package/.medusa/server/src/workflows/product-variant/get-product-variant-by-id.js +23 -0
  38. package/.medusa/server/src/workflows/product-variant/index.js +18 -0
  39. package/.medusa/server/src/workflows/product-variant/steps/get-product-variant-by-id.js +63 -0
  40. package/.medusa/server/src/workflows/product-variant/steps/index.js +18 -0
  41. package/README.md +7 -0
  42. package/package.json +7 -2
  43. package/.medusa/server/src/modules/mpn-automation/actions-handlers/base-action-handler.js +0 -73
  44. package/.medusa/server/src/modules/mpn-automation/actions-handlers/email-action-handler.js +0 -59
  45. package/.medusa/server/src/modules/mpn-automation/actions-handlers/index.js +0 -10
  46. package/.medusa/server/src/modules/mpn-automation/actions-handlers/slack-action-handler.js +0 -17
  47. package/.medusa/server/src/templates/slack/index.js +0 -40
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProductByIdStep = exports.getProductByIdStepId = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ exports.getProductByIdStepId = "get-product-by-id";
7
+ /**
8
+ * This step retrieves a product by its ID with related variants, images, tags, and categories.
9
+ *
10
+ * @example
11
+ * const data = getProductByIdStep({
12
+ * product_id: "prod_123"
13
+ * })
14
+ */
15
+ exports.getProductByIdStep = (0, workflows_sdk_1.createStep)(exports.getProductByIdStepId, async (input, { container }) => {
16
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
17
+ if (!input.product_id) {
18
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_ARGUMENT, "Product ID is required");
19
+ }
20
+ const { data: products } = await query.graph({
21
+ entity: "product",
22
+ fields: [
23
+ "id",
24
+ "title",
25
+ "subtitle",
26
+ "description",
27
+ "handle",
28
+ "is_giftcard",
29
+ "status",
30
+ "thumbnail",
31
+ "weight",
32
+ "length",
33
+ "height",
34
+ "width",
35
+ "origin_country",
36
+ "hs_code",
37
+ "mid_code",
38
+ "material",
39
+ "metadata",
40
+ "created_at",
41
+ "updated_at",
42
+ "variants.id",
43
+ "variants.title",
44
+ "variants.sku",
45
+ "variants.barcode",
46
+ "variants.ean",
47
+ "variants.upc",
48
+ "variants.inventory_quantity",
49
+ "variants.allow_backorder",
50
+ "variants.manage_inventory",
51
+ "variants.weight",
52
+ "variants.length",
53
+ "variants.height",
54
+ "variants.width",
55
+ "variants.metadata",
56
+ "images.id",
57
+ "images.url",
58
+ "images.metadata",
59
+ "tags.id",
60
+ "tags.value",
61
+ "categories.id",
62
+ "categories.name",
63
+ "categories.handle",
64
+ "categories.description",
65
+ "categories.metadata",
66
+ ],
67
+ filters: {
68
+ id: {
69
+ $in: [input.product_id],
70
+ },
71
+ },
72
+ });
73
+ if (!products || products.length === 0) {
74
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Product with ID ${input.product_id} not found`);
75
+ }
76
+ return new workflows_sdk_1.StepResponse({
77
+ product: products[0],
78
+ });
79
+ });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXByb2R1Y3QtYnktaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3Qvc3RlcHMvZ2V0LXByb2R1Y3QtYnktaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBR2tDO0FBQ2xDLHFFQUcwQztBQWU3QixRQUFBLG9CQUFvQixHQUFHLG1CQUFtQixDQUFBO0FBRXZEOzs7Ozs7O0dBT0c7QUFDVSxRQUFBLGtCQUFrQixHQUFHLElBQUEsMEJBQVUsRUFDMUMsNEJBQW9CLEVBQ3BCLEtBQUssRUFDSCxLQUE4QixFQUM5QixFQUFFLFNBQVMsRUFBRSxFQUNvQyxFQUFFO0lBQ25ELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQzdCLGlDQUF5QixDQUFDLEtBQUssQ0FDaEMsQ0FBQTtJQUVELElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUNsQyx3QkFBd0IsQ0FDekIsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMzQyxNQUFNLEVBQUUsU0FBUztRQUNqQixNQUFNLEVBQUU7WUFDTixJQUFJO1lBQ0osT0FBTztZQUNQLFVBQVU7WUFDVixhQUFhO1lBQ2IsUUFBUTtZQUNSLGFBQWE7WUFDYixRQUFRO1lBQ1IsV0FBVztZQUNYLFFBQVE7WUFDUixRQUFRO1lBQ1IsUUFBUTtZQUNSLE9BQU87WUFDUCxnQkFBZ0I7WUFDaEIsU0FBUztZQUNULFVBQVU7WUFDVixVQUFVO1lBQ1YsVUFBVTtZQUNWLFlBQVk7WUFDWixZQUFZO1lBQ1osYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxjQUFjO1lBQ2QsNkJBQTZCO1lBQzdCLDBCQUEwQjtZQUMxQiwyQkFBMkI7WUFDM0IsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixXQUFXO1lBQ1gsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixTQUFTO1lBQ1QsWUFBWTtZQUNaLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLHdCQUF3QjtZQUN4QixxQkFBcUI7U0FDdEI7UUFDRCxPQUFPLEVBQUU7WUFDUCxFQUFFLEVBQUU7Z0JBQ0YsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQzthQUN4QjtTQUNGO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLG1CQUFtQixLQUFLLENBQUMsVUFBVSxZQUFZLENBQ2hELENBQUE7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLDRCQUFZLENBQUM7UUFDdEIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7S0FDckIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUNGLENBQUEifQ==
@@ -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("./get-product-by-id"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3Qvc3RlcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNEQUFtQyJ9
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProductVariantByIdWorkflow = exports.getProductVariantByIdWorkflowId = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const get_product_variant_by_id_1 = require("./steps/get-product-variant-by-id");
6
+ exports.getProductVariantByIdWorkflowId = "get-product-variant-by-id";
7
+ /**
8
+ * This workflow retrieves a product variant by its ID with related product.
9
+ *
10
+ * @example
11
+ * const { result } = await getProductVariantByIdWorkflow(container).run({
12
+ * input: {
13
+ * product_variant_id: "variant_123"
14
+ * }
15
+ * })
16
+ */
17
+ exports.getProductVariantByIdWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.getProductVariantByIdWorkflowId, (input) => {
18
+ const productVariant = (0, get_product_variant_by_id_1.getProductVariantByIdStep)({
19
+ product_variant_id: input.product_variant_id,
20
+ });
21
+ return new workflows_sdk_1.WorkflowResponse(productVariant);
22
+ });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXByb2R1Y3QtdmFyaWFudC1ieS1pZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcHJvZHVjdC12YXJpYW50L2dldC1wcm9kdWN0LXZhcmlhbnQtYnktaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBSTBDO0FBQzFDLGlGQUE2RTtBQU1oRSxRQUFBLCtCQUErQixHQUMxQywyQkFBMkIsQ0FBQTtBQUU3Qjs7Ozs7Ozs7O0dBU0c7QUFDVSxRQUFBLDZCQUE2QixHQUFHLElBQUEsOEJBQWMsRUFDekQsdUNBQStCLEVBQy9CLENBQ0UsS0FBdUQsRUFDdkQsRUFBRTtJQUNGLE1BQU0sY0FBYyxHQUFHLElBQUEscURBQXlCLEVBQUM7UUFDL0Msa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtLQUM3QyxDQUFDLENBQUE7SUFFRixPQUFPLElBQUksZ0NBQWdCLENBQUMsY0FBYyxDQUFDLENBQUE7QUFDN0MsQ0FBQyxDQUNGLENBQUEifQ==
@@ -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("./get-product-variant-by-id"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3QtdmFyaWFudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOERBQTJDIn0=
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProductVariantByIdStep = exports.getProductVariantByIdStepId = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ exports.getProductVariantByIdStepId = "get-product-variant-by-id";
7
+ /**
8
+ * This step retrieves a product variant by its ID with related product.
9
+ *
10
+ * @example
11
+ * const data = getProductVariantByIdStep({
12
+ * product_variant_id: "variant_123"
13
+ * })
14
+ */
15
+ exports.getProductVariantByIdStep = (0, workflows_sdk_1.createStep)(exports.getProductVariantByIdStepId, async (input, { container }) => {
16
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
17
+ if (!input.product_variant_id) {
18
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_ARGUMENT, "Product variant ID is required");
19
+ }
20
+ const { data: productVariants } = await query.graph({
21
+ entity: "product_variant",
22
+ fields: [
23
+ "id",
24
+ "title",
25
+ "sku",
26
+ "barcode",
27
+ "ean",
28
+ "upc",
29
+ "inventory_quantity",
30
+ "allow_backorder",
31
+ "manage_inventory",
32
+ "weight",
33
+ "length",
34
+ "height",
35
+ "width",
36
+ "origin_country",
37
+ "mid_code",
38
+ "hs_code",
39
+ "material",
40
+ "metadata",
41
+ "product.id",
42
+ "product.title",
43
+ "product.description",
44
+ "product.handle",
45
+ "product.is_giftcard",
46
+ "product.status",
47
+ "product.images",
48
+ "product.metadata",
49
+ ],
50
+ filters: {
51
+ id: {
52
+ $in: [input.product_variant_id],
53
+ },
54
+ },
55
+ });
56
+ if (!productVariants || productVariants.length === 0) {
57
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Product variant with ID ${input.product_variant_id} not found`);
58
+ }
59
+ return new workflows_sdk_1.StepResponse({
60
+ product_variant: productVariants[0],
61
+ });
62
+ });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXByb2R1Y3QtdmFyaWFudC1ieS1pZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcHJvZHVjdC12YXJpYW50L3N0ZXBzL2dldC1wcm9kdWN0LXZhcmlhbnQtYnktaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBR2tDO0FBQ2xDLHFFQUcwQztBQVk3QixRQUFBLDJCQUEyQixHQUN0QywyQkFBMkIsQ0FBQTtBQUU3Qjs7Ozs7OztHQU9HO0FBQ1UsUUFBQSx5QkFBeUIsR0FBRyxJQUFBLDBCQUFVLEVBQ2pELG1DQUEyQixFQUMzQixLQUFLLEVBQ0gsS0FBcUMsRUFDckMsRUFBRSxTQUFTLEVBQUUsRUFHYixFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDN0IsaUNBQXlCLENBQUMsS0FBSyxDQUNoQyxDQUFBO0lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFDbEMsZ0NBQWdDLENBQ2pDLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDbEQsTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixNQUFNLEVBQUU7WUFDTixJQUFJO1lBQ0osT0FBTztZQUNQLEtBQUs7WUFDTCxTQUFTO1lBQ1QsS0FBSztZQUNMLEtBQUs7WUFDTCxvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixRQUFRO1lBQ1IsUUFBUTtZQUNSLFFBQVE7WUFDUixPQUFPO1lBQ1AsZ0JBQWdCO1lBQ2hCLFVBQVU7WUFDVixTQUFTO1lBQ1QsVUFBVTtZQUNWLFVBQVU7WUFDVixZQUFZO1lBQ1osZUFBZTtZQUNmLHFCQUFxQjtZQUNyQixnQkFBZ0I7WUFDaEIscUJBQXFCO1lBQ3JCLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsa0JBQWtCO1NBQ25CO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsRUFBRSxFQUFFO2dCQUNGLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQzthQUNoQztTQUNGO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsSUFBSSxDQUFDLGVBQWUsSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLDJCQUEyQixLQUFLLENBQUMsa0JBQWtCLFlBQVksQ0FDaEUsQ0FBQTtJQUNILENBQUM7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQztRQUN0QixlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztLQUNwQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQ0YsQ0FBQSJ9
@@ -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("./get-product-variant-by-id"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3QtdmFyaWFudC9zdGVwcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOERBQTJDIn0=
package/README.md CHANGED
@@ -102,6 +102,13 @@ The plugin exports the following:
102
102
  - `@codee-sh/medusa-plugin-automations/modules/mpn-automation` - Automation module service
103
103
  - `@codee-sh/medusa-plugin-automations/utils` - Utility functions
104
104
 
105
+ ## Screenshots
106
+
107
+ ### How to edit trigger?
108
+ ![Automations Admin Panel](./docs/images/video.gif)
109
+
110
+ *Automations management interface in Medusa Admin*
111
+
105
112
  ## Related Plugins
106
113
 
107
114
  For email templates and rendering functionality, see [@codee-sh/medusa-plugin-automations-emails](https://github.com/codee-sh/medusa-plugin-notification-emails).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codee-sh/medusa-plugin-automations",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "Medusa plugin for automations.",
5
5
  "author": "Codee (https://codee.dev)",
6
6
  "license": "MIT",
@@ -39,9 +39,14 @@
39
39
  "publish-local": "npx medusa plugin:publish",
40
40
  "publish-package": "dotenv npm publish --access public",
41
41
  "format": "prettier --write \"src/**/*.{ts,tsx}\"",
42
- "format:check": "prettier --check \"src/**/*.{ts,tsx}\""
42
+ "format:check": "prettier --check \"src/**/*.{ts,tsx}\"",
43
+ "changeset": "changeset",
44
+ "version": "changeset version",
45
+ "release": "changeset publish",
46
+ "release:manual": "npm run build && npm publish --access public"
43
47
  },
44
48
  "devDependencies": {
49
+ "@changesets/cli": "^2.29.8",
45
50
  "@medusajs/admin-sdk": "2.8.8",
46
51
  "@medusajs/cli": "2.8.8",
47
52
  "@medusajs/framework": "2.8.8",
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseActionHandler = void 0;
4
- const utils_1 = require("@medusajs/framework/utils");
5
- /**
6
- * Base action handler 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 BaseActionHandler {
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
- }
23
- /**
24
- * Helper method to add templateName field to fields array
25
- * Call this in constructor or fields initialization if you need template selection
26
- *
27
- * @param options - Template options array (will be populated dynamically by service if eventName is provided)
28
- * @param defaultValue - Default template value
29
- * @returns FieldConfig for template
30
- */
31
- addTemplateNameField(options = [], defaultValue) {
32
- return {
33
- name: "templateName",
34
- key: "templateName",
35
- label: "Template Name",
36
- type: "select",
37
- required: true,
38
- options: options,
39
- defaultValue: defaultValue,
40
- };
41
- }
42
- /**
43
- * Function that executes the action in the workflow actions
44
- *
45
- * @param trigger - Trigger object
46
- * @param action - Action object
47
- * @param context - Context object
48
- * @param container - Container object
49
- * @param eventName - Event name
50
- * @param contextType - Context type determining structure of data in context
51
- * @returns object with actionId, actionType and success status
52
- */
53
- async executeAction({ trigger, action, context, container, eventName, contextType, }) {
54
- const eventBusService = container.resolve(utils_1.Modules.EVENT_BUS);
55
- await eventBusService.emit({
56
- name: eventName,
57
- data: {
58
- eventName: eventName,
59
- action: action,
60
- trigger: trigger.id,
61
- context: context,
62
- contextType: contextType,
63
- },
64
- });
65
- return {
66
- actionId: action.id,
67
- actionType: action.action_type,
68
- success: true,
69
- };
70
- }
71
- }
72
- exports.BaseActionHandler = BaseActionHandler;
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hY3Rpb24taGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL21wbi1hdXRvbWF0aW9uL2FjdGlvbnMtaGFuZGxlcnMvYmFzZS1hY3Rpb24taGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxxREFBbUQ7QUFFbkQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFhLGlCQUFpQjtJQUE5QjtRQUNFLE9BQUUsR0FBRyxNQUFNLENBQUE7UUFDWCxVQUFLLEdBQUcsTUFBTSxDQUFBO1FBQ2QsZ0JBQVcsR0FBRyxFQUFFLENBQUE7UUFFaEIsdUJBQWtCLEdBQUcscUJBQXFCLENBQUE7UUFFMUMsa0dBQWtHO1FBQ2xHLFdBQU0sR0FBa0IsRUFBRSxDQUFBO0lBd0U1QixDQUFDO0lBdEVDOzs7Ozs7O09BT0c7SUFDTyxvQkFBb0IsQ0FDNUIsVUFBa0QsRUFBRSxFQUNwRCxZQUFxQjtRQUVyQixPQUFPO1lBQ0wsSUFBSSxFQUFFLGNBQWM7WUFDcEIsR0FBRyxFQUFFLGNBQWM7WUFDbkIsS0FBSyxFQUFFLGVBQWU7WUFDdEIsSUFBSSxFQUFFLFFBQWlCO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsT0FBTyxFQUFFLE9BQU87WUFDaEIsWUFBWSxFQUFFLFlBQVk7U0FDM0IsQ0FBQTtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUNsQixPQUFPLEVBQ1AsTUFBTSxFQUNOLE9BQU8sRUFDUCxTQUFTLEVBQ1QsU0FBUyxFQUNULFdBQVcsR0FRWjtRQUNDLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQ3ZDLGVBQU8sQ0FBQyxTQUFTLENBQ2xCLENBQUE7UUFFRCxNQUFNLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDekIsSUFBSSxFQUFFLFNBQVM7WUFDZixJQUFJLEVBQUU7Z0JBQ0osU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLE1BQU0sRUFBRSxNQUFNO2dCQUNkLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRTtnQkFDbkIsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLFdBQVcsRUFBRSxXQUFXO2FBQ3pCO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsT0FBTztZQUNMLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNuQixVQUFVLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDOUIsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFBO0lBQ0gsQ0FBQztDQUNGO0FBaEZELDhDQWdGQyJ9
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EmailActionHandler = void 0;
4
- const base_action_handler_1 = require("./base-action-handler");
5
- class EmailActionHandler extends base_action_handler_1.BaseActionHandler {
6
- constructor() {
7
- super(...arguments);
8
- this.id = "email";
9
- this.label = "Email";
10
- this.fields = [
11
- {
12
- name: "to",
13
- key: "to",
14
- label: "To",
15
- type: "email",
16
- required: true,
17
- },
18
- {
19
- name: "subject",
20
- key: "subject",
21
- label: "Subject",
22
- type: "text",
23
- required: true,
24
- },
25
- {
26
- name: "body",
27
- key: "body",
28
- label: "Body",
29
- type: "textarea",
30
- required: true,
31
- },
32
- {
33
- name: "bcc",
34
- key: "bcc",
35
- label: "BCC",
36
- type: "email",
37
- required: false,
38
- },
39
- {
40
- name: "cc",
41
- key: "cc",
42
- label: "CC",
43
- type: "email",
44
- required: false,
45
- },
46
- {
47
- name: "replyTo",
48
- key: "replyTo",
49
- label: "Reply To",
50
- type: "email",
51
- required: false,
52
- },
53
- // Add templateName field - options will be populated dynamically by service based on eventName
54
- this.addTemplateNameField(),
55
- ];
56
- }
57
- }
58
- exports.EmailActionHandler = EmailActionHandler;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtYWN0aW9uLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tcG4tYXV0b21hdGlvbi9hY3Rpb25zLWhhbmRsZXJzL2VtYWlsLWFjdGlvbi1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtEQUF5RDtBQUV6RCxNQUFhLGtCQUFtQixTQUFRLHVDQUFpQjtJQUF6RDs7UUFDRSxPQUFFLEdBQUcsT0FBTyxDQUFBO1FBQ1osVUFBSyxHQUFHLE9BQU8sQ0FBQTtRQUVmLFdBQU0sR0FBa0I7WUFDdEI7Z0JBQ0UsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsR0FBRyxFQUFFLElBQUk7Z0JBQ1QsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsSUFBSSxFQUFFLE9BQWdCO2dCQUN0QixRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsR0FBRyxFQUFFLFNBQVM7Z0JBQ2QsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLElBQUksRUFBRSxNQUFlO2dCQUNyQixRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osR0FBRyxFQUFFLE1BQU07Z0JBQ1gsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsSUFBSSxFQUFFLFVBQW1CO2dCQUN6QixRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsR0FBRyxFQUFFLEtBQUs7Z0JBQ1YsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osSUFBSSxFQUFFLE9BQWdCO2dCQUN0QixRQUFRLEVBQUUsS0FBSzthQUNoQjtZQUNEO2dCQUNFLElBQUksRUFBRSxJQUFJO2dCQUNWLEdBQUcsRUFBRSxJQUFJO2dCQUNULEtBQUssRUFBRSxJQUFJO2dCQUNYLElBQUksRUFBRSxPQUFnQjtnQkFDdEIsUUFBUSxFQUFFLEtBQUs7YUFDaEI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixHQUFHLEVBQUUsU0FBUztnQkFDZCxLQUFLLEVBQUUsVUFBVTtnQkFDakIsSUFBSSxFQUFFLE9BQWdCO2dCQUN0QixRQUFRLEVBQUUsS0FBSzthQUNoQjtZQUNELCtGQUErRjtZQUMvRixJQUFJLENBQUMsb0JBQW9CLEVBQUU7U0FDNUIsQ0FBQTtJQUNILENBQUM7Q0FBQTtBQWxERCxnREFrREMifQ==
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SlackActionHandler = exports.EmailActionHandler = exports.BaseActionHandler = void 0;
4
- var base_action_handler_1 = require("./base-action-handler");
5
- Object.defineProperty(exports, "BaseActionHandler", { enumerable: true, get: function () { return base_action_handler_1.BaseActionHandler; } });
6
- var email_action_handler_1 = require("./email-action-handler");
7
- Object.defineProperty(exports, "EmailActionHandler", { enumerable: true, get: function () { return email_action_handler_1.EmailActionHandler; } });
8
- var slack_action_handler_1 = require("./slack-action-handler");
9
- Object.defineProperty(exports, "SlackActionHandler", { enumerable: true, get: function () { return slack_action_handler_1.SlackActionHandler; } });
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tcG4tYXV0b21hdGlvbi9hY3Rpb25zLWhhbmRsZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZEQUF5RDtBQUFoRCx3SEFBQSxpQkFBaUIsT0FBQTtBQUMxQiwrREFBMkQ7QUFBbEQsMEhBQUEsa0JBQWtCLE9BQUE7QUFDM0IsK0RBQTJEO0FBQWxELDBIQUFBLGtCQUFrQixPQUFBIn0=
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SlackActionHandler = void 0;
4
- const base_action_handler_1 = require("./base-action-handler");
5
- class SlackActionHandler extends base_action_handler_1.BaseActionHandler {
6
- constructor() {
7
- super(...arguments);
8
- this.id = "slack";
9
- this.label = "Slack";
10
- this.fields = [
11
- // Add templateName field - options will be populated dynamically by service based on eventName
12
- this.addTemplateNameField()
13
- ];
14
- }
15
- }
16
- exports.SlackActionHandler = SlackActionHandler;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhY2stYWN0aW9uLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tcG4tYXV0b21hdGlvbi9hY3Rpb25zLWhhbmRsZXJzL3NsYWNrLWFjdGlvbi1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUF5RDtBQUV6RCxNQUFhLGtCQUFtQixTQUFRLHVDQUFpQjtJQUF6RDs7UUFDRSxPQUFFLEdBQUcsT0FBTyxDQUFBO1FBQ1osVUFBSyxHQUFHLE9BQU8sQ0FBQTtRQUVmLFdBQU0sR0FBRztZQUNQLCtGQUErRjtZQUMvRixJQUFJLENBQUMsb0JBQW9CLEVBQUU7U0FDNUIsQ0FBQTtJQUNILENBQUM7Q0FBQTtBQVJELGdEQVFDIn0=
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.renderSlackTemplate = renderSlackTemplate;
4
- exports.registerSlackTemplate = registerSlackTemplate;
5
- const types_1 = require("./types");
6
- const inventory_level_1 = require("./inventory-level");
7
- /**
8
- * Template registry mapping template names to their renderers
9
- */
10
- const templateRegistry = {
11
- [types_1.SLACK_TEMPLATES_NAMES.INVENTORY_LEVEL]: inventory_level_1.renderInventoryLevel
12
- };
13
- /**
14
- * Render a slack template
15
- *
16
- * @param templateName - Template name
17
- * @param context - Context data
18
- * @param contextType - Context type
19
- * @param options - Options
20
- * @returns Text and blocks
21
- */
22
- function renderSlackTemplate({ templateName, context, contextType, options = {}, }) {
23
- const renderer = templateRegistry[templateName];
24
- if (!renderer) {
25
- throw new Error(`Slack template "${templateName}" not found. Available: ${Object.keys(templateRegistry).join(', ')}`);
26
- }
27
- const result = renderer({
28
- context: context,
29
- contextType: contextType,
30
- options: options,
31
- });
32
- if (result instanceof Promise) {
33
- throw new Error('Async templates not supported yet. Use sync renderer.');
34
- }
35
- return result;
36
- }
37
- function registerSlackTemplate(name, renderer) {
38
- templateRegistry[name] = renderer;
39
- }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL3NsYWNrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBMEJBLGtEQXVCQztBQUVELHNEQUtDO0FBeERELG1DQUEySDtBQUMzSCx1REFBd0Q7QUFFeEQ7O0dBRUc7QUFDSCxNQUFNLGdCQUFnQixHQUEwQztJQUM5RCxDQUFDLDZCQUFxQixDQUFDLGVBQWUsQ0FBQyxFQUFFLHNDQUFvQjtDQUM5RCxDQUFBO0FBU0Q7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxFQUNsQyxZQUFZLEVBQ1osT0FBTyxFQUNQLFdBQVcsRUFDWCxPQUFPLEdBQUcsRUFBRSxHQUNjO0lBQzFCLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFBO0lBRS9DLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLFlBQVksMkJBQTJCLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZILENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDdEIsT0FBTyxFQUFFLE9BQU87UUFDaEIsV0FBVyxFQUFFLFdBQVc7UUFDeEIsT0FBTyxFQUFFLE9BQU87S0FDakIsQ0FBQyxDQUFBO0lBRUYsSUFBSSxNQUFNLFlBQVksT0FBTyxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFBO0lBQzFFLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUM7QUFFRCxTQUFnQixxQkFBcUIsQ0FDbkMsSUFBWSxFQUNaLFFBQStCO0lBRS9CLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQTtBQUNuQyxDQUFDIn0=