@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.
- package/.medusa/server/src/modules/mpn-automation/services/base-action-service.js +98 -0
- package/.medusa/server/src/modules/mpn-automation/services/email-action-service.js +81 -0
- package/.medusa/server/src/modules/mpn-automation/services/index.js +8 -2
- package/.medusa/server/src/modules/mpn-automation/services/service.js +70 -15
- package/.medusa/server/src/modules/mpn-automation/services/slack-action-service.js +48 -0
- package/.medusa/server/src/modules/mpn-automation/types/index.js +2 -1
- package/.medusa/server/src/modules/mpn-automation/types/modules/index.js +21 -1
- package/.medusa/server/src/modules/mpn-automation/types/modules/product/index.js +18 -0
- package/.medusa/server/src/modules/mpn-automation/types/modules/product/product.js +50 -0
- package/.medusa/server/src/modules/mpn-automation/types/modules/product-variant/index.js +18 -0
- package/.medusa/server/src/modules/mpn-automation/types/modules/product-variant/product-variant.js +30 -0
- package/.medusa/server/src/modules/mpn-automation/types/types.js +1 -1
- package/.medusa/server/src/subscribers/mpn.automation.action.slack.executed.js +2 -2
- package/.medusa/server/src/subscribers/product-updated.js +45 -0
- package/.medusa/server/src/subscribers/product-variant-updated.js +45 -0
- package/.medusa/server/src/templates/slack/inventory-level/inventory-level.js +1 -1
- package/.medusa/server/src/templates/slack/product/index.js +18 -0
- package/.medusa/server/src/templates/slack/product/product.js +55 -0
- package/.medusa/server/src/templates/slack/product/translations/en.json +18 -0
- package/.medusa/server/src/templates/slack/product/translations/index.js +15 -0
- package/.medusa/server/src/templates/slack/product/translations/pl.json +13 -0
- package/.medusa/server/src/templates/slack/product-variant/index.js +18 -0
- package/.medusa/server/src/templates/slack/product-variant/product-variant.js +55 -0
- package/.medusa/server/src/templates/slack/product-variant/translations/en.json +18 -0
- package/.medusa/server/src/templates/slack/product-variant/translations/index.js +15 -0
- package/.medusa/server/src/templates/slack/product-variant/translations/pl.json +13 -0
- package/.medusa/server/src/templates/slack/types.js +1 -5
- package/.medusa/server/src/utils/types/index.js +3 -3
- package/.medusa/server/src/workflows/index.js +3 -1
- package/.medusa/server/src/workflows/inventory/steps/get-inventory-level-by-id.js +4 -1
- package/.medusa/server/src/workflows/notifications/steps/send-email.js +19 -7
- package/.medusa/server/src/workflows/notifications/steps/send-slack.js +9 -3
- package/.medusa/server/src/workflows/product/get-product-by-id.js +23 -0
- package/.medusa/server/src/workflows/product/index.js +18 -0
- package/.medusa/server/src/workflows/product/steps/get-product-by-id.js +80 -0
- package/.medusa/server/src/workflows/product/steps/index.js +18 -0
- package/.medusa/server/src/workflows/product-variant/get-product-variant-by-id.js +23 -0
- package/.medusa/server/src/workflows/product-variant/index.js +18 -0
- package/.medusa/server/src/workflows/product-variant/steps/get-product-variant-by-id.js +63 -0
- package/.medusa/server/src/workflows/product-variant/steps/index.js +18 -0
- package/README.md +7 -0
- package/package.json +7 -2
- package/.medusa/server/src/modules/mpn-automation/actions-handlers/base-action-handler.js +0 -73
- package/.medusa/server/src/modules/mpn-automation/actions-handlers/email-action-handler.js +0 -59
- package/.medusa/server/src/modules/mpn-automation/actions-handlers/index.js +0 -10
- package/.medusa/server/src/modules/mpn-automation/actions-handlers/slack-action-handler.js +0 -17
- 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
|
+

|
|
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.
|
|
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=
|