@codee-sh/medusa-plugin-notification-emails 0.2.1 → 1.0.1

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 (177) hide show
  1. package/.medusa/server/emails-previews/contact-form.js +5 -4
  2. package/.medusa/server/emails-previews/inventory-level.js +5 -4
  3. package/.medusa/server/emails-previews/order-completed.js +5 -4
  4. package/.medusa/server/emails-previews/order-placed.js +5 -4
  5. package/.medusa/server/medusa-config.js +20 -0
  6. package/.medusa/server/src/admin/index.js +17284 -2259
  7. package/.medusa/server/src/admin/index.mjs +17135 -2127
  8. package/.medusa/server/src/api/admin/mpn/available-templates/route.js +14 -0
  9. package/.medusa/server/src/api/admin/mpn/events/route.js +20 -0
  10. package/.medusa/server/src/api/admin/mpn/notifications/route.js +31 -0
  11. package/.medusa/server/src/api/admin/mpn/render-template/route.js +36 -0
  12. package/.medusa/server/src/api/admin/mpn/templates/[id]/blocks/route.js +119 -0
  13. package/.medusa/server/src/api/admin/mpn/templates/route.js +72 -0
  14. package/.medusa/server/src/api/admin/mpn/templates/types/[type]/services/[service]/templates/route.js +18 -0
  15. package/.medusa/server/src/api/admin/mpn/templates/types/[type]/services/route.js +16 -0
  16. package/.medusa/server/src/api/admin/mpn/templates/types/route.js +13 -0
  17. package/.medusa/server/src/api/middlewares.js +69 -3
  18. package/.medusa/server/src/hooks/api/available-templates/available-templates.js +37 -0
  19. package/.medusa/server/src/hooks/api/available-templates/index.js +18 -0
  20. package/.medusa/server/src/hooks/api/events.js +3 -3
  21. package/.medusa/server/src/hooks/api/notifications.js +4 -4
  22. package/.medusa/server/src/hooks/api/orders.js +3 -6
  23. package/.medusa/server/src/hooks/api/preview.js +6 -6
  24. package/.medusa/server/src/hooks/api/templates/blocks/blocks.js +49 -0
  25. package/.medusa/server/src/hooks/api/templates/blocks/index.js +18 -0
  26. package/.medusa/server/src/hooks/api/templates/index.js +18 -0
  27. package/.medusa/server/src/hooks/api/templates/services/index.js +18 -0
  28. package/.medusa/server/src/hooks/api/templates/services/services.js +36 -0
  29. package/.medusa/server/src/hooks/api/templates/services/templates/index.js +18 -0
  30. package/.medusa/server/src/hooks/api/templates/services/templates/templates.js +38 -0
  31. package/.medusa/server/src/hooks/api/templates/templates.js +74 -0
  32. package/.medusa/server/src/hooks/api/templates/types/index.js +18 -0
  33. package/.medusa/server/src/hooks/api/templates/types/types.js +34 -0
  34. package/.medusa/server/src/modules/mpn-builder/index.js +13 -0
  35. package/.medusa/server/src/modules/mpn-builder/migrations/Migration20260126192907.js +23 -0
  36. package/.medusa/server/src/modules/mpn-builder/migrations/Migration20260129194255.js +20 -0
  37. package/.medusa/server/src/modules/mpn-builder/migrations/Migration20260202123904.js +14 -0
  38. package/.medusa/server/src/modules/mpn-builder/models/builder_template.js +32 -0
  39. package/.medusa/server/src/modules/mpn-builder/models/builder_template_block.js +30 -0
  40. package/.medusa/server/src/modules/mpn-builder/models/index.js +11 -0
  41. package/.medusa/server/src/modules/mpn-builder/service.js +167 -0
  42. package/.medusa/server/src/modules/mpn-builder/services-local/base-template-service.js +123 -0
  43. package/.medusa/server/src/modules/mpn-builder/services-local/email-template-service.js +402 -0
  44. package/.medusa/server/src/modules/mpn-builder/services-local/index.js +13 -0
  45. package/.medusa/server/src/modules/mpn-builder/services-local/slack-template-service.js +452 -0
  46. package/.medusa/server/src/modules/mpn-builder/types/constants.js +14 -0
  47. package/.medusa/server/src/modules/mpn-builder/types/index.js +24 -0
  48. package/.medusa/server/src/modules/mpn-builder/types/interfaces.js +3 -0
  49. package/.medusa/server/src/modules/mpn-builder/types/template-service-interface.js +3 -0
  50. package/.medusa/server/src/{templates/emails/blocks → modules/mpn-builder/types}/types.js +1 -1
  51. package/.medusa/server/src/subscribers/order-completed.js +17 -14
  52. package/.medusa/server/src/subscribers/order-placed.js +29 -17
  53. package/.medusa/server/src/templates/emails/base-template/index.js +1 -1
  54. package/.medusa/server/src/templates/emails/base-template/template.js +2 -2
  55. package/.medusa/server/src/templates/emails/blocks/components/group.js +14 -0
  56. package/.medusa/server/src/templates/emails/blocks/components/heading.js +1 -1
  57. package/.medusa/server/src/templates/emails/blocks/components/product-item.js +4 -3
  58. package/.medusa/server/src/templates/emails/blocks/components/repeater.js +1 -1
  59. package/.medusa/server/src/templates/emails/blocks/components/row.js +4 -2
  60. package/.medusa/server/src/templates/emails/blocks/components/section.js +1 -1
  61. package/.medusa/server/src/templates/emails/blocks/components/separator.js +2 -2
  62. package/.medusa/server/src/templates/emails/blocks/components/text.js +2 -2
  63. package/.medusa/server/src/templates/emails/blocks/index.js +5 -2
  64. package/.medusa/server/src/templates/emails/contact-form/config.js +4 -4
  65. package/.medusa/server/src/templates/emails/contact-form/index.js +1 -1
  66. package/.medusa/server/src/templates/emails/index.js +1 -10
  67. package/.medusa/server/src/templates/emails/inventory-level/config.js +4 -4
  68. package/.medusa/server/src/templates/emails/inventory-level/index.js +1 -1
  69. package/.medusa/server/src/templates/emails/inventory-level/translations/index.js +1 -1
  70. package/.medusa/server/src/templates/emails/order/completed/config.js +7 -7
  71. package/.medusa/server/src/templates/emails/order/completed/index.js +1 -1
  72. package/.medusa/server/src/templates/emails/order/completed/translations/index.js +1 -1
  73. package/.medusa/server/src/templates/emails/order/placed/config.js +7 -7
  74. package/.medusa/server/src/templates/emails/order/placed/index.js +1 -1
  75. package/.medusa/server/src/templates/emails/order/placed/translations/index.js +1 -1
  76. package/.medusa/server/src/templates/emails/order/updated/config.js +7 -7
  77. package/.medusa/server/src/templates/emails/order/updated/index.js +1 -1
  78. package/.medusa/server/src/templates/emails/order/updated/translations/index.js +1 -1
  79. package/.medusa/server/src/templates/emails/types/index.js +18 -0
  80. package/.medusa/server/src/templates/emails/types/types.js +12 -0
  81. package/.medusa/server/src/templates/shared/abstract-template-service.js +4 -2
  82. package/.medusa/server/src/templates/shared/theme/index.js +1 -1
  83. package/.medusa/server/src/templates/shared/theme/presets/default/index.js +1 -1
  84. package/.medusa/server/src/templates/shared/utils/index.js +1 -1
  85. package/.medusa/server/src/templates/slack/index.js +1 -10
  86. package/.medusa/server/src/templates/slack/inventory-level/config.js +5 -5
  87. package/.medusa/server/src/templates/slack/inventory-level/index.js +1 -1
  88. package/.medusa/server/src/templates/slack/order/archived/config.js +1 -1
  89. package/.medusa/server/src/templates/slack/order/archived/index.js +1 -1
  90. package/.medusa/server/src/templates/slack/order/archived/translations/index.js +1 -1
  91. package/.medusa/server/src/templates/slack/order/canceled/config.js +1 -1
  92. package/.medusa/server/src/templates/slack/order/canceled/index.js +1 -1
  93. package/.medusa/server/src/templates/slack/order/canceled/translations/index.js +1 -1
  94. package/.medusa/server/src/templates/slack/order/completed/config.js +1 -1
  95. package/.medusa/server/src/templates/slack/order/completed/index.js +1 -1
  96. package/.medusa/server/src/templates/slack/order/completed/translations/index.js +1 -1
  97. package/.medusa/server/src/templates/slack/order/placed/config.js +1 -1
  98. package/.medusa/server/src/templates/slack/order/placed/index.js +1 -1
  99. package/.medusa/server/src/templates/slack/order/placed/translations/index.js +1 -1
  100. package/.medusa/server/src/templates/slack/order/updated/config.js +1 -1
  101. package/.medusa/server/src/templates/slack/order/updated/index.js +1 -1
  102. package/.medusa/server/src/templates/slack/order/updated/translations/index.js +1 -1
  103. package/.medusa/server/src/templates/slack/product/config.js +2 -2
  104. package/.medusa/server/src/templates/slack/product/index.js +1 -1
  105. package/.medusa/server/src/templates/slack/product-variant/config.js +2 -2
  106. package/.medusa/server/src/templates/slack/product-variant/index.js +1 -1
  107. package/.medusa/server/src/templates/slack/types/index.js +18 -0
  108. package/.medusa/server/src/templates/slack/types/types.js +15 -0
  109. package/.medusa/server/src/utils/addresses.js +4 -2
  110. package/.medusa/server/src/utils/data/countries.js +1 -1
  111. package/.medusa/server/src/utils/data/country-states.js +1 -1
  112. package/.medusa/server/src/utils/data/modules/inventory/inventory.js +6 -2
  113. package/.medusa/server/src/utils/data/modules/order/order.js +43 -42
  114. package/.medusa/server/src/utils/data/modules/product/helpers.js +1 -1
  115. package/.medusa/server/src/utils/data/modules/product/product.js +27 -7
  116. package/.medusa/server/src/utils/data/modules/product-category/product-category.js +19 -5
  117. package/.medusa/server/src/utils/data/modules/product-tag/product-tag.js +16 -4
  118. package/.medusa/server/src/utils/data/modules/product-type/product-type.js +16 -4
  119. package/.medusa/server/src/utils/data/modules/product-variant/product-variant.js +19 -5
  120. package/.medusa/server/src/utils/dnd/handle-drag-end.js +22 -0
  121. package/.medusa/server/src/utils/dnd/index.js +6 -0
  122. package/.medusa/server/src/utils/i18n/i18n.js +6 -5
  123. package/.medusa/server/src/utils/index.js +4 -1
  124. package/.medusa/server/src/utils/money-amount-helpers.js +9 -4
  125. package/.medusa/server/src/utils/omit.js +1 -1
  126. package/.medusa/server/src/utils/payment.js +1 -1
  127. package/.medusa/server/src/utils/pick-value-from-object.js +4 -2
  128. package/.medusa/server/src/utils/plugins.js +4 -2
  129. package/.medusa/server/src/utils/string-helpers.js +21 -0
  130. package/.medusa/server/src/utils/transforms/index.js +2 -2
  131. package/.medusa/server/src/utils/transforms/order-transformer.js +22 -8
  132. package/.medusa/server/src/utils/tree.js +34 -0
  133. package/.medusa/server/src/workflows/mpn-builder/create-template.js +24 -0
  134. package/.medusa/server/src/workflows/mpn-builder/delete-template.js +24 -0
  135. package/.medusa/server/src/workflows/mpn-builder/edit-template-blocks.js +26 -0
  136. package/.medusa/server/src/workflows/mpn-builder/edit-template.js +25 -0
  137. package/.medusa/server/src/workflows/mpn-builder/get-blocks-by-template-id.js +23 -0
  138. package/.medusa/server/src/workflows/mpn-builder/get-services-types-templates.js +23 -0
  139. package/.medusa/server/src/workflows/mpn-builder/get-template.js +28 -0
  140. package/.medusa/server/src/workflows/mpn-builder/get-templates-by-type-service.js +22 -0
  141. package/.medusa/server/src/workflows/mpn-builder/get-templates-services.js +21 -0
  142. package/.medusa/server/src/workflows/mpn-builder/get-templates-types.js +19 -0
  143. package/.medusa/server/src/workflows/mpn-builder/index.js +21 -0
  144. package/.medusa/server/src/workflows/mpn-builder/steps/create-template.js +28 -0
  145. package/.medusa/server/src/workflows/mpn-builder/steps/delete-template.js +22 -0
  146. package/.medusa/server/src/workflows/mpn-builder/steps/edit-template-blocks.js +128 -0
  147. package/.medusa/server/src/workflows/mpn-builder/steps/edit-template.js +29 -0
  148. package/.medusa/server/src/workflows/mpn-builder/steps/get-blocks-by-template-id.js +61 -0
  149. package/.medusa/server/src/workflows/mpn-builder/steps/get-services-types-templates.js +53 -0
  150. package/.medusa/server/src/workflows/mpn-builder/steps/get-template-services.js +24 -0
  151. package/.medusa/server/src/workflows/mpn-builder/steps/get-template-types.js +22 -0
  152. package/.medusa/server/src/workflows/mpn-builder/steps/get-template.js +71 -0
  153. package/.medusa/server/src/workflows/mpn-builder/steps/get-templates-by-type-service.js +45 -0
  154. package/.medusa/server/src/workflows/mpn-builder/steps/index.js +21 -0
  155. package/.medusa/server/src/workflows/mpn-builder-services/email-service.js +32 -0
  156. package/.medusa/server/src/workflows/mpn-builder-services/slack-service.js +33 -0
  157. package/.medusa/server/src/workflows/mpn-builder-services/steps/email-service.js +69 -0
  158. package/.medusa/server/src/workflows/mpn-builder-services/steps/slack-service.js +67 -0
  159. package/.medusa/server/src/workflows/order/steps/get-order-by-id.js +1 -1
  160. package/.medusa/server/src/workflows/region/get-region-by-id.js +25 -0
  161. package/.medusa/server/src/workflows/region/index.js +18 -0
  162. package/.medusa/server/src/workflows/region/steps/get-region-by-id.js +26 -0
  163. package/.medusa/server/src/workflows/region/steps/index.js +18 -0
  164. package/.medusa/server/src/workflows/steps/log-step.js +16 -0
  165. package/.medusa/server/src/workflows/store/get-store-by-id.js +23 -0
  166. package/.medusa/server/src/workflows/store/index.js +18 -0
  167. package/.medusa/server/src/workflows/store/steps/get-store-by-id.js +25 -0
  168. package/.medusa/server/src/workflows/store/steps/index.js +18 -0
  169. package/README.md +40 -103
  170. package/package.json +21 -8
  171. package/.medusa/server/src/api/admin/notification-plugin/events/route.js +0 -20
  172. package/.medusa/server/src/api/admin/notification-plugin/notifications/route.js +0 -31
  173. package/.medusa/server/src/api/admin/notification-plugin/render-template/route.js +0 -33
  174. package/.medusa/server/src/templates/emails/email-template-service.js +0 -210
  175. package/.medusa/server/src/templates/emails/types.js +0 -12
  176. package/.medusa/server/src/templates/slack/slack-template-service.js +0 -219
  177. package/.medusa/server/src/templates/slack/types.js +0 -15
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GET = GET;
4
- const utils_1 = require("@medusajs/framework/utils");
5
- async function GET(req, res) {
6
- const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
7
- const { resource_id, resource_type } = req.query;
8
- const filters = {};
9
- if (resource_id) {
10
- filters.resource_id = {
11
- $eq: resource_id,
12
- };
13
- }
14
- if (resource_type) {
15
- filters.resource_type = {
16
- $eq: resource_type,
17
- };
18
- }
19
- const { data: notifications, metadata: { count, take, skip } = {} } = await query.graph({
20
- entity: "notification",
21
- filters: filters,
22
- ...req.queryConfig
23
- });
24
- res.json({
25
- notifications: notifications,
26
- count: count || 0,
27
- limit: take || 15,
28
- offset: skip || 0,
29
- });
30
- }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL25vdGlmaWNhdGlvbi1wbHVnaW4vbm90aWZpY2F0aW9ucy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLGtCQWdDQztBQWxDRCxxREFBa0Y7QUFFM0UsS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBdUIsRUFDdkIsR0FBbUI7SUFFbkIsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFBO0lBQ2hELE1BQU0sT0FBTyxHQUFRLEVBQUUsQ0FBQTtJQUV2QixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxXQUFXLEdBQUc7WUFDcEIsR0FBRyxFQUFFLFdBQVc7U0FDakIsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxhQUFhLEdBQUc7WUFDdEIsR0FBRyxFQUFFLGFBQWE7U0FDbkIsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN0RixNQUFNLEVBQUUsY0FBYztRQUN0QixPQUFPLEVBQUUsT0FBTztRQUNoQixHQUFHLEdBQUcsQ0FBQyxXQUFXO0tBQ25CLENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCxhQUFhLEVBQUUsYUFBYTtRQUM1QixLQUFLLEVBQUUsS0FBSyxJQUFJLENBQUM7UUFDakIsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFFO1FBQ2pCLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQztLQUNsQixDQUFDLENBQUE7QUFDSixDQUFDIn0=
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.POST = POST;
4
- const utils_1 = require("@medusajs/framework/utils");
5
- const theme_1 = require("../../../../templates/shared/theme");
6
- const emails_1 = require("../../../../templates/emails");
7
- const transforms_1 = require("../../../../utils/transforms");
8
- const plugins_1 = require("../../../../utils/plugins");
9
- async function POST(req, res) {
10
- const pluginOptions = (0, plugins_1.getPluginOptions)(req.scope, "@codee-sh/medusa-plugin-notification");
11
- const templateName = req.body?.templateName;
12
- const context = req.body?.context;
13
- const contextType = req.body?.contextType;
14
- const locale = req.body?.locale || "pl";
15
- if (!templateName || !context || !locale) {
16
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_ARGUMENT, "Template name, template data and locale are required");
17
- }
18
- const transformedTemplateData = (0, transforms_1.transformContext)(contextType, context, locale);
19
- const { html, text } = await emails_1.emailService.render({
20
- templateName,
21
- data: transformedTemplateData,
22
- options: {
23
- locale: locale,
24
- theme: pluginOptions?.theme || theme_1.defaultTheme,
25
- translations: pluginOptions?.customTranslations?.[templateName]
26
- }
27
- });
28
- res.status(200).json({
29
- html,
30
- text,
31
- });
32
- }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL25vdGlmaWNhdGlvbi1wbHVnaW4vcmVuZGVyLXRlbXBsYXRlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esb0JBZ0NDO0FBdENELHFEQUF1RDtBQUN2RCw4REFBaUU7QUFDakUseURBQTRFO0FBQzVFLDZEQUErRDtBQUMvRCx1REFBNEQ7QUFFckQsS0FBSyxVQUFVLElBQUksQ0FDeEIsR0FBNEYsRUFDNUYsR0FBbUI7SUFFbkIsTUFBTSxhQUFhLEdBQUcsSUFBQSwwQkFBZ0IsRUFBQyxHQUFHLENBQUMsS0FBSyxFQUFFLHNDQUFzQyxDQUFDLENBQUE7SUFFekYsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUE7SUFDM0MsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUE7SUFDakMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUE7SUFFekMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksSUFBSSxDQUFBO0lBRXZDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN6QyxNQUFNLElBQUksbUJBQVcsQ0FBQyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxzREFBc0QsQ0FBQyxDQUFBO0lBQ25ILENBQUM7SUFFRCxNQUFNLHVCQUF1QixHQUFHLElBQUEsNkJBQWdCLEVBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUU5RSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0scUJBQVksQ0FBQyxNQUFNLENBQUM7UUFDL0MsWUFBWTtRQUNaLElBQUksRUFBRSx1QkFBdUI7UUFDN0IsT0FBTyxFQUFFO1lBQ1AsTUFBTSxFQUFFLE1BQU07WUFDZCxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssSUFBSSxvQkFBWTtZQUMzQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLENBQUMsWUFBWSxDQUFDO1NBQ2hFO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkIsSUFBSTtRQUNKLElBQUk7S0FDTCxDQUFDLENBQUE7QUFDSixDQUFDIn0=
@@ -1,210 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EmailTemplateService = void 0;
4
- const abstract_template_service_1 = require("../shared/abstract-template-service");
5
- const utils_1 = require("../../utils");
6
- const base_template_1 = require("./base-template");
7
- const contact_form_1 = require("./contact-form");
8
- const inventory_level_1 = require("./inventory-level");
9
- const placed_1 = require("./order/placed");
10
- const completed_1 = require("./order/completed");
11
- const updated_1 = require("./order/updated");
12
- const types_1 = require("./types");
13
- /**
14
- * Email template service
15
- * Handles registration and rendering of email templates
16
- */
17
- class EmailTemplateService extends abstract_template_service_1.AbstractTemplateService {
18
- constructor() {
19
- super();
20
- this.baseTemplateConfig = {
21
- getHtml: async (data, options) => {
22
- return await (0, base_template_1.getBaseTemplateHtml)(data, options);
23
- },
24
- getText: async (data, options) => {
25
- return await (0, base_template_1.getBaseTemplateText)(data, options);
26
- },
27
- getReactNode: (data, options) => {
28
- return (0, base_template_1.getBaseTemplateReactNode)(data, options);
29
- },
30
- };
31
- this.interpolateFunction = this.interpolateBlocks.bind(this);
32
- // Register base template
33
- this.registerTemplate(types_1.TEMPLATES_NAMES.BASE_TEMPLATE, this.baseTemplateConfig);
34
- // Initialize default templates
35
- this.initializeDefaultTemplates();
36
- }
37
- /**
38
- * Initialize default email templates
39
- */
40
- initializeDefaultTemplates() {
41
- // Contact form template
42
- this.registerTemplate(types_1.TEMPLATES_NAMES.CONTACT_FORM, {
43
- ...this.baseTemplateConfig,
44
- getConfig: () => {
45
- return {
46
- blocks: contact_form_1.templateBlocks,
47
- translations: contact_form_1.translations,
48
- };
49
- },
50
- });
51
- // Order placed template
52
- this.registerTemplate(types_1.TEMPLATES_NAMES.ORDER_PLACED, {
53
- ...this.baseTemplateConfig,
54
- getConfig: () => {
55
- return {
56
- blocks: placed_1.templateBlocks,
57
- translations: placed_1.translations,
58
- };
59
- },
60
- });
61
- // Order completed template
62
- this.registerTemplate(types_1.TEMPLATES_NAMES.ORDER_COMPLETED, {
63
- ...this.baseTemplateConfig,
64
- getConfig: () => {
65
- return {
66
- blocks: completed_1.templateBlocks,
67
- translations: completed_1.translations,
68
- };
69
- },
70
- });
71
- // Order updated template
72
- this.registerTemplate(types_1.TEMPLATES_NAMES.ORDER_UPDATED, {
73
- ...this.baseTemplateConfig,
74
- getConfig: () => {
75
- return {
76
- blocks: updated_1.templateBlocks,
77
- translations: updated_1.translations,
78
- };
79
- },
80
- });
81
- // Inventory level template
82
- this.registerTemplate(types_1.TEMPLATES_NAMES.INVENTORY_LEVEL, {
83
- ...this.baseTemplateConfig,
84
- getConfig: () => {
85
- return {
86
- blocks: inventory_level_1.templateBlocks,
87
- translations: inventory_level_1.translations,
88
- };
89
- },
90
- });
91
- }
92
- /**
93
- * Recursively interpolate text in blocks using the multiInterpolate function
94
- * Processes props.[property] in each block and nested blocks
95
- *
96
- * @param blocks - Blocks to interpolate
97
- * @param data - Data object for interpolation
98
- * @param translator - Translator instance with t method (created using createTranslator function)
99
- * @param config - Configuration object
100
- * @returns Interpolated blocks
101
- *
102
- * @example
103
- *
104
- * const blocks = [ { type: "text", props: { value: "Order {{data.order.id}} - {{translations.headerTitle}}" } } ]
105
- * const data = { order: { id: "123" } }
106
- * const translator = translator instance (created using createTranslator function)
107
- * const config = {}
108
- *
109
- * const interpolatedBlocks = interpolateBlocks(blocks, data, translator, config)
110
- *
111
- * Return: [ { type: "text", props: { value: "Order 123 - Order Confirmation" } } ]
112
- *
113
- */
114
- interpolateBlocks(blocks, data, translator, config) {
115
- return blocks.map((block) => {
116
- const processedBlock = { ...block };
117
- // Process all string properties in props
118
- if (processedBlock.props && typeof processedBlock.props === "object") {
119
- const processedProps = { ...processedBlock.props };
120
- // Iterate over all properties in props
121
- for (const [key, value] of Object.entries(processedProps)) {
122
- // Skip non-string values and special properties (blocks, itemBlocks, separator, arrayPath)
123
- if (typeof value === "string" &&
124
- key !== "blocks" &&
125
- key !== "itemBlocks" &&
126
- key !== "arrayPath") {
127
- processedProps[key] = (0, utils_1.multiInterpolate)(value, data, translator, config);
128
- }
129
- }
130
- processedBlock.props = processedProps;
131
- }
132
- // Recursively process nested blocks
133
- if (processedBlock.props?.blocks &&
134
- Array.isArray(processedBlock.props.blocks)) {
135
- processedBlock.props = {
136
- ...processedBlock.props,
137
- blocks: this.interpolateBlocks(processedBlock.props.blocks, data, translator),
138
- };
139
- }
140
- if (processedBlock.type === "repeater") {
141
- const { arrayPath, itemBlocks } = processedBlock.props || {};
142
- if (arrayPath && itemBlocks) {
143
- const array = (0, utils_1.pickValueFromObject)(arrayPath, data);
144
- if (Array.isArray(array) && array.length > 0) {
145
- const interpolatedItemBlocks = array.map((item) => this.interpolateBlocks(itemBlocks, item, translator, {
146
- arrayPath: arrayPath,
147
- })[0]);
148
- processedBlock.props = {
149
- ...processedBlock.props,
150
- itemBlocks: interpolatedItemBlocks,
151
- };
152
- }
153
- }
154
- }
155
- return processedBlock;
156
- });
157
- }
158
- /**
159
- * Render email template
160
- *
161
- * @param params - Render parameters
162
- * @returns Rendered email with html, text, and subject
163
- */
164
- async render(params) {
165
- if (!params.templateName) {
166
- throw new Error("Template name is required");
167
- }
168
- const { template, blocks, translator } = this.prepareData({
169
- templateName: params.templateName,
170
- data: params.data,
171
- options: params.options,
172
- });
173
- const options = {
174
- ...params.options,
175
- blocks,
176
- };
177
- return {
178
- html: await template.getHtml(params.data, options),
179
- text: await template.getText(params.data, options),
180
- subject: (0, utils_1.multiInterpolate)("{{translations.headerTitle}}", params.data, translator),
181
- };
182
- }
183
- /**
184
- * Render email template synchronously (for previews)
185
- *
186
- * @param params - Render parameters
187
- * @returns React node
188
- */
189
- renderSync(params) {
190
- if (!params.templateName) {
191
- throw new Error("Template name is required");
192
- }
193
- const { template, blocks } = this.prepareData({
194
- templateName: params.templateName,
195
- data: params.data,
196
- options: params.options,
197
- });
198
- const options = {
199
- ...params.options,
200
- blocks,
201
- };
202
- return {
203
- reactNode: template.getReactNode
204
- ? template.getReactNode(params.data, options)
205
- : undefined,
206
- };
207
- }
208
- }
209
- exports.EmailTemplateService = EmailTemplateService;
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtdGVtcGxhdGUtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy90ZW1wbGF0ZXMvZW1haWxzL2VtYWlsLXRlbXBsYXRlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbUZBRzRDO0FBQzVDLHVDQUdvQjtBQUNwQixtREFJd0I7QUFDeEIsaURBR3VCO0FBQ3ZCLHVEQUcwQjtBQUMxQiwyQ0FHdUI7QUFDdkIsaURBRzBCO0FBQzFCLDZDQUd3QjtBQUN4QixtQ0FJZ0I7QUFFaEI7OztHQUdHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSxtREFBNEI7SUFDcEU7UUFDRSxLQUFLLEVBQUUsQ0FBQTtRQUVQLElBQUksQ0FBQyxrQkFBa0IsR0FBRztZQUN4QixPQUFPLEVBQUUsS0FBSyxFQUNaLElBQVMsRUFDVCxPQUE2QixFQUNaLEVBQUU7Z0JBQ25CLE9BQU8sTUFBTSxJQUFBLG1DQUFtQixFQUFDLElBQUksRUFBRSxPQUFjLENBQUMsQ0FBQTtZQUN4RCxDQUFDO1lBQ0QsT0FBTyxFQUFFLEtBQUssRUFDWixJQUFTLEVBQ1QsT0FBNkIsRUFDWixFQUFFO2dCQUNuQixPQUFPLE1BQU0sSUFBQSxtQ0FBbUIsRUFBQyxJQUFJLEVBQUUsT0FBYyxDQUFDLENBQUE7WUFDeEQsQ0FBQztZQUNELFlBQVksRUFBRSxDQUNaLElBQVMsRUFDVCxPQUE2QixFQUNaLEVBQUU7Z0JBQ25CLE9BQU8sSUFBQSx3Q0FBd0IsRUFBQyxJQUFJLEVBQUUsT0FBYyxDQUFDLENBQUE7WUFDdkQsQ0FBQztTQUNGLENBQUE7UUFFRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUU1RCx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUNuQix1QkFBZSxDQUFDLGFBQWEsRUFDN0IsSUFBSSxDQUFDLGtCQUFrQixDQUN4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
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TEMPLATES_NAMES = void 0;
4
- exports.TEMPLATES_NAMES = {
5
- BASE_TEMPLATE: "base-template",
6
- INVENTORY_LEVEL: "inventory-level",
7
- ORDER_PLACED: "order-placed",
8
- ORDER_COMPLETED: "order-completed",
9
- ORDER_UPDATED: "order-updated",
10
- CONTACT_FORM: "contact-form",
11
- };
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFYSxRQUFBLGVBQWUsR0FBRztJQUM3QixhQUFhLEVBQUUsZUFBZTtJQUM5QixlQUFlLEVBQUUsaUJBQWlCO0lBQ2xDLFlBQVksRUFBRSxjQUFjO0lBQzVCLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsYUFBYSxFQUFFLGVBQWU7SUFDOUIsWUFBWSxFQUFFLGNBQWM7Q0FDcEIsQ0FBQyJ9
@@ -1,219 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SlackTemplateService = void 0;
4
- const abstract_template_service_1 = require("../shared/abstract-template-service");
5
- const utils_1 = require("../../utils");
6
- const inventory_level_1 = require("./inventory-level");
7
- const product_1 = require("./product");
8
- const product_variant_1 = require("./product-variant");
9
- const placed_1 = require("./order/placed");
10
- const completed_1 = require("./order/completed");
11
- const updated_1 = require("./order/updated");
12
- const canceled_1 = require("./order/canceled");
13
- const archived_1 = require("./order/archived");
14
- const types_1 = require("./types");
15
- /**
16
- * Slack template service
17
- * Handles registration and rendering of Slack templates
18
- */
19
- class SlackTemplateService extends abstract_template_service_1.AbstractTemplateService {
20
- constructor() {
21
- super();
22
- this.baseTemplateConfig = {
23
- getBlocks: async () => {
24
- // Base template for Slack returns an empty array
25
- return [];
26
- },
27
- };
28
- this.interpolateFunction = this.interpolateSlackBlocks.bind(this);
29
- // Register base template
30
- this.registerTemplate(types_1.TEMPLATES_NAMES.BASE_TEMPLATE, this.baseTemplateConfig);
31
- // Initialize default templates
32
- this.initializeDefaultTemplates();
33
- }
34
- /**
35
- * Initialize default Slack templates
36
- */
37
- initializeDefaultTemplates() {
38
- // Inventory level template
39
- this.registerTemplate(types_1.TEMPLATES_NAMES.INVENTORY_LEVEL, {
40
- ...this.baseTemplateConfig,
41
- getConfig: () => {
42
- return {
43
- blocks: inventory_level_1.templateBlocks,
44
- translations: inventory_level_1.translations,
45
- };
46
- },
47
- });
48
- // Product template
49
- this.registerTemplate(types_1.TEMPLATES_NAMES.PRODUCT, {
50
- ...this.baseTemplateConfig,
51
- getConfig: () => {
52
- return {
53
- blocks: product_1.templateBlocks,
54
- translations: product_1.translations,
55
- };
56
- },
57
- });
58
- // Product variant template
59
- this.registerTemplate(types_1.TEMPLATES_NAMES.PRODUCT_VARIANT, {
60
- ...this.baseTemplateConfig,
61
- getConfig: () => {
62
- return {
63
- blocks: product_variant_1.templateBlocks,
64
- translations: product_variant_1.translations,
65
- };
66
- },
67
- });
68
- // Order placed template
69
- this.registerTemplate(types_1.TEMPLATES_NAMES.ORDER_PLACED, {
70
- ...this.baseTemplateConfig,
71
- getConfig: () => {
72
- return {
73
- blocks: placed_1.templateBlocks,
74
- translations: placed_1.translations,
75
- };
76
- },
77
- });
78
- // Order completed template
79
- this.registerTemplate(types_1.TEMPLATES_NAMES.ORDER_COMPLETED, {
80
- ...this.baseTemplateConfig,
81
- getConfig: () => {
82
- return {
83
- blocks: completed_1.templateBlocks,
84
- translations: completed_1.translations,
85
- };
86
- },
87
- });
88
- // Order updated template
89
- this.registerTemplate(types_1.TEMPLATES_NAMES.ORDER_UPDATED, {
90
- ...this.baseTemplateConfig,
91
- getConfig: () => {
92
- return {
93
- blocks: updated_1.templateBlocks,
94
- translations: updated_1.translations,
95
- };
96
- },
97
- });
98
- // Order canceled template
99
- this.registerTemplate(types_1.TEMPLATES_NAMES.ORDER_CANCELED, {
100
- ...this.baseTemplateConfig,
101
- getConfig: () => {
102
- return {
103
- blocks: canceled_1.templateBlocks,
104
- translations: canceled_1.translations,
105
- };
106
- },
107
- });
108
- // Order archived template
109
- this.registerTemplate(types_1.TEMPLATES_NAMES.ORDER_ARCHIVED, {
110
- ...this.baseTemplateConfig,
111
- getConfig: () => {
112
- return {
113
- blocks: archived_1.templateBlocks,
114
- translations: archived_1.translations,
115
- };
116
- },
117
- });
118
- }
119
- /**
120
- * Recursively interpolate text in SlackBlock[] structure
121
- * Finds all "text" properties in the entire tree and interpolates them
122
- */
123
- interpolateSlackBlocks(blocks, data, translator, config) {
124
- return blocks.map((block) => {
125
- // Create fields array if fieldTemplate and fieldsPath is provided and array is not empty
126
- if (block.type === "section" && block?.fieldTemplate) {
127
- const { fieldsPath, fieldTemplate } = block || {};
128
- if (fieldsPath && fieldTemplate) {
129
- const array = (0, utils_1.pickValueFromObject)(fieldsPath, data);
130
- if (Array.isArray(array) && array.length > 0) {
131
- const interpolatedFieldBlocks = array.map((item) => {
132
- return this.recursivelyInterpolateText(fieldTemplate, item, translator, {
133
- arrayPath: fieldsPath,
134
- });
135
- });
136
- block = {
137
- ...(0, utils_1.omit)(block, "fieldsPath", "fieldTemplate"),
138
- fields: interpolatedFieldBlocks,
139
- };
140
- }
141
- }
142
- }
143
- return this.recursivelyInterpolateText(block, data, translator, config);
144
- });
145
- }
146
- /**
147
- * Recursively interpolate all "text" / "url" properties in an object
148
- */
149
- recursivelyInterpolateText(node, data, translator, config) {
150
- // If it's a string, interpolate it
151
- if (typeof node === "string") {
152
- return (0, utils_1.multiInterpolate)(node, data, translator, config);
153
- }
154
- // If it's an array, process each element recursively
155
- if (Array.isArray(node)) {
156
- return node.map((item) => {
157
- return this.recursivelyInterpolateText(item, data, translator, config);
158
- });
159
- }
160
- // If it's an object, process all properties
161
- if (node && typeof node === "object") {
162
- const processed = {};
163
- for (const [key, value] of Object.entries(node)) {
164
- // If key is "text" and value is a string, interpolate it
165
- if ((key === "text" || key === "url") && typeof value === "string") {
166
- processed[key] = (0, utils_1.multiInterpolate)(value, data, translator, config);
167
- }
168
- // If key is "text" and value is an object (e.g., { type: "plain_text", text: "..." })
169
- else if (key === "text" && value && typeof value === "object") {
170
- // Recursively process the text object (will interpolate text.text)
171
- processed[key] = this.recursivelyInterpolateText(value, data, translator, config);
172
- }
173
- // If key is "elements" and value is an array
174
- else if (key === "elements" && Array.isArray(value)) {
175
- processed[key] = value.map((item) => {
176
- return this.recursivelyInterpolateText(item, data, translator, config);
177
- });
178
- }
179
- // For all other properties, recursively process them
180
- else {
181
- processed[key] = this.recursivelyInterpolateText(value, data, translator, config);
182
- }
183
- }
184
- return processed;
185
- }
186
- return node;
187
- }
188
- /**
189
- * Render Slack template
190
- *
191
- * @param params - Render parameters
192
- * @returns Rendered Slack blocks
193
- */
194
- async render(params) {
195
- if (!params.templateName) {
196
- throw new Error("Template name is required");
197
- }
198
- // Add backendUrl to data for interpolation
199
- const dataWithOptions = {
200
- ...params.data,
201
- backendUrl: params.options?.backendUrl || "",
202
- };
203
- const { template, translator, blocks } = this.prepareData({
204
- templateName: params.templateName,
205
- data: dataWithOptions,
206
- options: params.options,
207
- });
208
- const options = {
209
- ...params.options,
210
- blocks,
211
- };
212
- // Get blocks from template
213
- return {
214
- blocks: options.blocks,
215
- };
216
- }
217
- }
218
- exports.SlackTemplateService = SlackTemplateService;
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhY2stdGVtcGxhdGUtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy90ZW1wbGF0ZXMvc2xhY2svc2xhY2stdGVtcGxhdGUtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRkFHNEM7QUFDNUMsdUNBSW9CO0FBQ3BCLHVEQUcwQjtBQUMxQix1Q0FHa0I7QUFDbEIsdURBRzBCO0FBQzFCLDJDQUd1QjtBQUN2QixpREFHMEI7QUFDMUIsNkNBR3dCO0FBQ3hCLCtDQUd5QjtBQUN6QiwrQ0FHeUI7QUFDekIsbUNBQXlDO0FBRXpDOzs7R0FHRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsbURBQTRCO0lBQ3BFO1FBQ0UsS0FBSyxFQUFFLENBQUE7UUFFUCxJQUFJLENBQUMsa0JBQWtCLEdBQUc7WUFDeEIsU0FBUyxFQUFFLEtBQUssSUFBb0IsRUFBRTtnQkFDcEMsaURBQWlEO2dCQUNqRCxPQUFPLEVBQUUsQ0FBQTtZQUNYLENBQUM7U0FDRixDQUFBO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFakUseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FDbkIsdUJBQWUsQ0FBQyxhQUFhLEVBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FDeEIsQ0FBQTtRQUVELCtCQUErQjtRQUMvQixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQTtJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDTywwQkFBMEI7UUFDbEMsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBZSxDQUFDLGVBQWUsRUFBRTtZQUNyRCxHQUFHLElBQUksQ0FBQyxrQkFBa0I7WUFDMUIsU0FBUyxFQUFFLEdBQVEsRUFBRTtnQkFDbkIsT0FBTztvQkFDTCxNQUFNLEVBQUUsZ0NBQTRCO29CQUNwQyxZQUFZLEVB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
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TEMPLATES_NAMES = void 0;
4
- exports.TEMPLATES_NAMES = {
5
- BASE_TEMPLATE: "base-template",
6
- INVENTORY_LEVEL: "inventory-level",
7
- PRODUCT: "product",
8
- PRODUCT_VARIANT: "product-variant",
9
- ORDER_PLACED: "order-placed",
10
- ORDER_COMPLETED: "order-completed",
11
- ORDER_UPDATED: "order-updated",
12
- ORDER_CANCELED: "order-canceled",
13
- ORDER_ARCHIVED: "order-archived",
14
- };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL3NsYWNrL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVhLFFBQUEsZUFBZSxHQUFHO0lBQzdCLGFBQWEsRUFBRSxlQUFlO0lBQzlCLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsT0FBTyxFQUFFLFNBQVM7SUFDbEIsZUFBZSxFQUFFLGlCQUFpQjtJQUNsQyxZQUFZLEVBQUUsY0FBYztJQUM1QixlQUFlLEVBQUUsaUJBQWlCO0lBQ2xDLGFBQWEsRUFBRSxlQUFlO0lBQzlCLGNBQWMsRUFBRSxnQkFBZ0I7SUFDaEMsY0FBYyxFQUFFLGdCQUFnQjtDQUN4QixDQUFDIn0=