@codee-sh/medusa-plugin-notification-emails 0.0.2 → 0.1.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 (89) hide show
  1. package/.medusa/server/emails-previews/contact-form.js +5 -7
  2. package/.medusa/server/emails-previews/inventory-level.js +23 -0
  3. package/.medusa/server/emails-previews/order-completed.js +20 -14
  4. package/.medusa/server/emails-previews/order-placed.js +19 -13
  5. package/.medusa/server/src/admin/index.js +834 -6778
  6. package/.medusa/server/src/admin/index.mjs +760 -6704
  7. package/.medusa/server/src/api/admin/notification-plugin/render-template/route.js +8 -5
  8. package/.medusa/server/src/hooks/api/orders.js +3 -2
  9. package/.medusa/server/src/hooks/api/preview.js +5 -4
  10. package/.medusa/server/src/subscribers/order-completed.js +14 -62
  11. package/.medusa/server/src/subscribers/order-placed.js +12 -58
  12. package/.medusa/server/src/templates/emails/base-template/index.js +23 -0
  13. package/.medusa/server/src/templates/emails/base-template/template.js +25 -0
  14. package/.medusa/server/src/templates/emails/blocks/components/heading.js +15 -0
  15. package/.medusa/server/src/templates/emails/blocks/components/product-item.js +14 -0
  16. package/.medusa/server/src/templates/emails/blocks/components/repeater.js +26 -0
  17. package/.medusa/server/src/templates/emails/blocks/components/row.js +13 -0
  18. package/.medusa/server/src/templates/emails/blocks/components/section.js +14 -0
  19. package/.medusa/server/src/templates/emails/blocks/components/separator.js +13 -0
  20. package/.medusa/server/src/templates/emails/blocks/components/text.js +15 -0
  21. package/.medusa/server/src/templates/emails/blocks/index.js +41 -0
  22. package/.medusa/server/src/templates/{shared/i18n → emails/blocks}/types.js +1 -1
  23. package/.medusa/server/src/templates/emails/contact-form/config.js +79 -0
  24. package/.medusa/server/src/templates/emails/contact-form/index.js +6 -17
  25. package/.medusa/server/src/templates/emails/contact-form/translations/de.json +14 -0
  26. package/.medusa/server/src/templates/emails/contact-form/translations/en.json +12 -14
  27. package/.medusa/server/src/templates/emails/contact-form/translations/pl.json +8 -10
  28. package/.medusa/server/src/templates/emails/index.js +192 -91
  29. package/.medusa/server/src/templates/emails/inventory-level/config.js +126 -0
  30. package/.medusa/server/src/templates/emails/inventory-level/index.js +6 -17
  31. package/.medusa/server/src/templates/emails/order/completed/config.js +221 -0
  32. package/.medusa/server/src/templates/emails/order/completed/index.js +8 -0
  33. package/.medusa/server/src/templates/emails/{order-completed → order/completed}/translations/en.json +2 -1
  34. package/.medusa/server/src/templates/emails/{order-placed → order/completed}/translations/index.js +1 -1
  35. package/.medusa/server/src/templates/emails/{order-completed → order/completed}/translations/pl.json +2 -1
  36. package/.medusa/server/src/templates/emails/order/placed/config.js +221 -0
  37. package/.medusa/server/src/templates/emails/order/placed/index.js +8 -0
  38. package/.medusa/server/src/templates/emails/{order-placed → order/placed}/translations/en.json +1 -1
  39. package/.medusa/server/src/templates/emails/{order-completed → order/placed}/translations/index.js +1 -1
  40. package/.medusa/server/src/templates/emails/{order-placed → order/placed}/translations/pl.json +1 -1
  41. package/.medusa/server/src/templates/emails/order/updated/config.js +221 -0
  42. package/.medusa/server/src/templates/emails/order/updated/index.js +7 -0
  43. package/.medusa/server/src/templates/emails/order/updated/translations/en.json +24 -0
  44. package/.medusa/server/src/templates/emails/{contact-form → order/updated}/translations/index.js +1 -1
  45. package/.medusa/server/src/templates/emails/order/updated/translations/pl.json +24 -0
  46. package/.medusa/server/src/templates/emails/types.js +3 -1
  47. package/.medusa/server/src/utils/attribute-helpers.js +17 -0
  48. package/.medusa/server/src/utils/data/modules/index.js +15 -0
  49. package/.medusa/server/src/utils/data/modules/inventory/index.js +18 -0
  50. package/.medusa/server/src/utils/data/modules/inventory/inventory.js +108 -0
  51. package/.medusa/server/src/utils/data/modules/order/index.js +18 -0
  52. package/.medusa/server/src/utils/data/modules/order/order.js +415 -0
  53. package/.medusa/server/src/utils/data/modules/product/helpers.js +9 -0
  54. package/.medusa/server/src/utils/data/modules/product/index.js +18 -0
  55. package/.medusa/server/src/utils/data/modules/product/product.js +276 -0
  56. package/.medusa/server/src/utils/data/modules/product-category/index.js +18 -0
  57. package/.medusa/server/src/utils/data/modules/product-category/product-category.js +75 -0
  58. package/.medusa/server/src/utils/data/modules/product-tag/index.js +18 -0
  59. package/.medusa/server/src/utils/data/modules/product-tag/product-tag.js +39 -0
  60. package/.medusa/server/src/utils/data/modules/product-type/index.js +18 -0
  61. package/.medusa/server/src/utils/data/modules/product-type/product-type.js +39 -0
  62. package/.medusa/server/src/utils/data/modules/product-variant/index.js +18 -0
  63. package/.medusa/server/src/utils/data/modules/product-variant/product-variant.js +139 -0
  64. package/.medusa/server/src/utils/i18n/i18n.js +176 -0
  65. package/.medusa/server/src/utils/i18n/index.js +18 -0
  66. package/.medusa/server/src/utils/index.js +11 -1
  67. package/.medusa/server/src/utils/is-defined.js +7 -0
  68. package/.medusa/server/src/utils/is-object.js +7 -0
  69. package/.medusa/server/src/utils/pick-value-from-object.js +28 -0
  70. package/.medusa/server/src/utils/transforms/index.js +42 -0
  71. package/.medusa/server/src/utils/transforms/order-transformer.js +42 -0
  72. package/.medusa/server/src/workflows/order/get-order-by-id.js +23 -0
  73. package/.medusa/server/src/workflows/order/index.js +18 -0
  74. package/.medusa/server/src/workflows/order/steps/get-order-by-id.js +40 -0
  75. package/.medusa/server/src/workflows/order/steps/index.js +18 -0
  76. package/package.json +18 -11
  77. package/.medusa/server/src/templates/emails/contact-form/template.js +0 -28
  78. package/.medusa/server/src/templates/emails/contact-form/types.js +0 -3
  79. package/.medusa/server/src/templates/emails/inventory-level/template.js +0 -28
  80. package/.medusa/server/src/templates/emails/inventory-level/types.js +0 -3
  81. package/.medusa/server/src/templates/emails/order-completed/index.js +0 -19
  82. package/.medusa/server/src/templates/emails/order-completed/template.js +0 -36
  83. package/.medusa/server/src/templates/emails/order-completed/types.js +0 -3
  84. package/.medusa/server/src/templates/emails/order-placed/index.js +0 -19
  85. package/.medusa/server/src/templates/emails/order-placed/template.js +0 -36
  86. package/.medusa/server/src/templates/emails/order-placed/types.js +0 -3
  87. package/.medusa/server/src/templates/shared/i18n/index.js +0 -6
  88. package/.medusa/server/src/templates/shared/i18n/languages.js +0 -187
  89. package/.medusa/server/src/templates/shared/i18n/utils.js +0 -186
@@ -2,18 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.POST = POST;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
+ const theme_1 = require("../../../../templates/shared/theme");
5
6
  const emails_1 = require("../../../../templates/emails");
7
+ const transforms_1 = require("../../../../utils/transforms");
6
8
  const plugins_1 = require("../../../../utils/plugins");
7
- const theme_1 = require("../../../../templates/shared/theme");
8
9
  async function POST(req, res) {
9
10
  const pluginOptions = (0, plugins_1.getPluginOptions)(req.scope, "@codee-sh/medusa-plugin-notification");
10
11
  const templateName = req.body?.templateName;
11
- const templateData = req.body?.templateData;
12
+ const context = req.body?.context;
13
+ const contextType = req.body?.contextType;
12
14
  const locale = req.body?.locale || "pl";
13
- if (!templateName || !templateData || !locale) {
15
+ if (!templateName || !context || !locale) {
14
16
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_ARGUMENT, "Template name, template data and locale are required");
15
17
  }
16
- const { html, text } = await (0, emails_1.renderTemplate)(templateName, templateData, {
18
+ const transformedTemplateData = (0, transforms_1.transformContext)(contextType, context, locale);
19
+ const { html, text } = await (0, emails_1.renderTemplate)(templateName, transformedTemplateData, {
17
20
  locale: locale,
18
21
  theme: pluginOptions?.theme || theme_1.defaultTheme,
19
22
  customTranslations: pluginOptions?.customTranslations?.[templateName]
@@ -23,4 +26,4 @@ async function POST(req, res) {
23
26
  text,
24
27
  });
25
28
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL25vdGlmaWNhdGlvbi1wbHVnaW4vcmVuZGVyLXRlbXBsYXRlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esb0JBNEJDO0FBbENELHFEQUF1RDtBQUN2RCx5REFBNkQ7QUFDN0QsdURBQTREO0FBQzVELDhEQUFpRTtBQUcxRCxLQUFLLFVBQVUsSUFBSSxDQUN4QixHQUErRSxFQUMvRSxHQUFtQjtJQUVuQixNQUFNLGFBQWEsR0FBRyxJQUFBLDBCQUFnQixFQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsc0NBQXNDLENBQUMsQ0FBQTtJQUV6RixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLFlBQTRCLENBQUE7SUFDM0QsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFtQixDQUFBO0lBQ2xELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQTtJQUV2QyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDOUMsTUFBTSxJQUFJLG1CQUFXLENBQUMsbUJBQVcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsc0RBQXNELENBQUMsQ0FBQTtJQUNuSCxDQUFDO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUEsdUJBQWMsRUFDekMsWUFBWSxFQUNaLFlBQVksRUFDWjtRQUNFLE1BQU0sRUFBRSxNQUFNO1FBQ2QsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLElBQUksb0JBQVk7UUFDM0Msa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLENBQUMsWUFBWSxDQUFDO0tBQ3RFLENBQ0YsQ0FBQTtJQUVELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25CLElBQUk7UUFDSixJQUFJO0tBQ0wsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL25vdGlmaWNhdGlvbi1wbHVnaW4vcmVuZGVyLXRlbXBsYXRlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esb0JBZ0NDO0FBdENELHFEQUF1RDtBQUN2RCw4REFBaUU7QUFDakUseURBQXlGO0FBQ3pGLDZEQUErRDtBQUMvRCx1REFBNEQ7QUFFckQsS0FBSyxVQUFVLElBQUksQ0FDeEIsR0FBNEYsRUFDNUYsR0FBbUI7SUFFbkIsTUFBTSxhQUFhLEdBQUcsSUFBQSwwQkFBZ0IsRUFBQyxHQUFHLENBQUMsS0FBSyxFQUFFLHNDQUFzQyxDQUFDLENBQUE7SUFFekYsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxZQUE0QixDQUFBO0lBQzNELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBdUIsQ0FBQTtJQUNqRCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQTtJQUV6QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUE7SUFFdkMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxtQkFBVyxDQUFDLG1CQUFXLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLHNEQUFzRCxDQUFDLENBQUE7SUFDbkgsQ0FBQztJQUVELE1BQU0sdUJBQXVCLEdBQUcsSUFBQSw2QkFBZ0IsRUFBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBRTlFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFBLHVCQUFjLEVBQ3pDLFlBQVksRUFDWix1QkFBdUIsRUFDdkI7UUFDRSxNQUFNLEVBQUUsTUFBTTtRQUNkLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxJQUFJLG9CQUFZO1FBQzNDLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLFlBQVksQ0FBQztLQUN0RSxDQUNGLENBQUE7SUFFRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNuQixJQUFJO1FBQ0osSUFBSTtLQUNMLENBQUMsQ0FBQTtBQUNKLENBQUMifQ==
@@ -4,7 +4,7 @@ exports.useOrder = exports.useOrders = void 0;
4
4
  const react_query_1 = require("@tanstack/react-query");
5
5
  const sdk_1 = require("../../admin/lib/sdk");
6
6
  const useOrders = (params = {}, options) => {
7
- const { limit = 100, offset = 0, extraKey = [], enabled, fields = "id,display_id" } = params;
7
+ const { limit = 100, offset = 0, extraKey = [], enabled, fields = "id,display_id", order = "-created_at" } = params;
8
8
  const queryKey = [
9
9
  "orders",
10
10
  ...extraKey
@@ -13,6 +13,7 @@ const useOrders = (params = {}, options) => {
13
13
  limit,
14
14
  offset,
15
15
  fields,
16
+ order,
16
17
  };
17
18
  const { data, ...rest } = (0, react_query_1.useQuery)({
18
19
  queryKey,
@@ -47,4 +48,4 @@ const useOrder = (params, options) => {
47
48
  return { data, ...rest };
48
49
  };
49
50
  exports.useOrder = useOrder;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2hvb2tzL2FwaS9vcmRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsdURBTThCO0FBQzlCLDZDQUF5QztBQWVsQyxNQUFNLFNBQVMsR0FBRyxDQUN2QixTQUEwQixFQUFFLEVBQzVCLE9BR0MsRUFDRCxFQUFFO0lBQ0YsTUFBTSxFQUFFLEtBQUssR0FBRyxHQUFHLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxRQUFRLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUcsZUFBZSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTdGLE1BQU0sUUFBUSxHQUFhO1FBQ3pCLFFBQVE7UUFDUixHQUFHLFFBQVE7S0FDWixDQUFDO0lBRUYsTUFBTSxLQUFLLEdBQUc7UUFDWixLQUFLO1FBQ0wsTUFBTTtRQUNOLE1BQU07S0FDQSxDQUFDO0lBRVQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLElBQUEsc0JBQVEsRUFLaEM7UUFDQSxRQUFRO1FBQ1IsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2xCLE9BQU8sTUFBTSxTQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDMUMsQ0FBQztRQUNELE9BQU87UUFDUCxHQUFJLE9BQWU7S0FDcEIsQ0FBQyxDQUFDO0lBRUgsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0FBQzNCLENBQUMsQ0FBQztBQW5DVyxRQUFBLFNBQVMsYUFtQ3BCO0FBV0ssTUFBTSxRQUFRLEdBQUcsQ0FDdEIsTUFBc0IsRUFDdEIsT0FRQyxFQUNELEVBQUU7SUFDRixNQUFNLEVBQ0osUUFBUSxFQUNSLFFBQVEsR0FBRyxFQUFFLEVBQ2IsT0FBTyxHQUFHLEtBQUssR0FDaEIsR0FBRyxNQUFNLENBQUE7SUFFVixNQUFNLFFBQVEsR0FBYTtRQUN6QixPQUFPO1FBQ1AsUUFBUTtRQUNSLEdBQUcsUUFBUTtLQUNaLENBQUE7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBQSxzQkFBUSxFQUtoQztRQUNBLFFBQVE7UUFDUixPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDbEIsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sU0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTtnQkFDekQsTUFBTSxFQUFFLGkyQkFBaTJCO2FBQzEyQixDQUFDLENBQUE7WUFFRixPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUM7UUFDRCxTQUFTLEVBQUUsQ0FBQztRQUNaLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEdBQUksT0FBZTtLQUNwQixDQUFDLENBQUE7SUFFRixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUE7QUFDMUIsQ0FBQyxDQUFBO0FBNUNZLFFBQUEsUUFBUSxZQTRDcEIifQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2hvb2tzL2FwaS9vcmRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsdURBTThCO0FBQzlCLDZDQUF5QztBQWdCbEMsTUFBTSxTQUFTLEdBQUcsQ0FDdkIsU0FBMEIsRUFBRSxFQUM1QixPQUdDLEVBQ0QsRUFBRTtJQUNGLE1BQU0sRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxHQUFHLGVBQWUsRUFBRSxLQUFLLEdBQUcsYUFBYSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRXBILE1BQU0sUUFBUSxHQUFhO1FBQ3pCLFFBQVE7UUFDUixHQUFHLFFBQVE7S0FDWixDQUFDO0lBRUYsTUFBTSxLQUFLLEdBQUc7UUFDWixLQUFLO1FBQ0wsTUFBTTtRQUNOLE1BQU07UUFDTixLQUFLO0tBQ0MsQ0FBQztJQUVULE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFBLHNCQUFRLEVBS2hDO1FBQ0EsUUFBUTtRQUNSLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTtZQUNsQixPQUFPLE1BQU0sU0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzFDLENBQUM7UUFDRCxPQUFPO1FBQ1AsR0FBSSxPQUFlO0tBQ3BCLENBQUMsQ0FBQztJQUVILE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztBQUMzQixDQUFDLENBQUM7QUFwQ1csUUFBQSxTQUFTLGFBb0NwQjtBQVdLLE1BQU0sUUFBUSxHQUFHLENBQ3RCLE1BQXNCLEVBQ3RCLE9BUUMsRUFDRCxFQUFFO0lBQ0YsTUFBTSxFQUNKLFFBQVEsRUFDUixRQUFRLEdBQUcsRUFBRSxFQUNiLE9BQU8sR0FBRyxLQUFLLEdBQ2hCLEdBQUcsTUFBTSxDQUFBO0lBRVYsTUFBTSxRQUFRLEdBQWE7UUFDekIsT0FBTztRQUNQLFFBQVE7UUFDUixHQUFHLFFBQVE7S0FDWixDQUFBO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLElBQUEsc0JBQVEsRUFLaEM7UUFDQSxRQUFRO1FBQ1IsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2xCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLFNBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pELE1BQU0sRUFBRSxpMkJBQWkyQjthQUMxMkIsQ0FBQyxDQUFBO1lBRUYsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO1FBQ0QsU0FBUyxFQUFFLENBQUM7UUFDWixPQUFPLEVBQUUsT0FBTztRQUNoQixHQUFJLE9BQWU7S0FDcEIsQ0FBQyxDQUFBO0lBRUYsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFBO0FBQzFCLENBQUMsQ0FBQTtBQTVDWSxRQUFBLFFBQVEsWUE0Q3BCIn0=
@@ -4,7 +4,7 @@ exports.usePreview = void 0;
4
4
  const react_query_1 = require("@tanstack/react-query");
5
5
  const sdk_1 = require("../../admin/lib/sdk");
6
6
  const usePreview = (params, options) => {
7
- const { templateName, templateData, locale, extraKey = [], enabled = false, } = params;
7
+ const { templateName, context, contextType, locale, extraKey = [], enabled = false, } = params;
8
8
  const queryKey = [
9
9
  "preview",
10
10
  templateName,
@@ -18,16 +18,17 @@ const usePreview = (params, options) => {
18
18
  method: "POST",
19
19
  body: {
20
20
  templateName: templateName,
21
- templateData: templateData,
21
+ context: context,
22
+ contextType: contextType,
22
23
  locale: locale,
23
24
  },
24
25
  });
25
26
  },
26
27
  staleTime: 0,
27
- enabled: enabled && !!templateName && !!templateData && !!locale,
28
+ enabled: enabled && !!templateName && !!context && !!locale,
28
29
  ...options,
29
30
  });
30
31
  return { data, ...rest };
31
32
  };
32
33
  exports.usePreview = usePreview;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9ob29rcy9hcGkvcHJldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx1REFNOEI7QUFDOUIsNkNBQXlDO0FBZWxDLE1BQU0sVUFBVSxHQUFHLENBQ3hCLE1BQXdCLEVBQ3hCLE9BUUMsRUFDRCxFQUFFO0lBQ0YsTUFBTSxFQUNKLFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsR0FBRyxFQUFFLEVBQ2IsT0FBTyxHQUFHLEtBQUssR0FDaEIsR0FBRyxNQUFNLENBQUE7SUFFVixNQUFNLFFBQVEsR0FBYTtRQUN6QixTQUFTO1FBQ1QsWUFBWTtRQUNaLE1BQU07UUFDTixHQUFHLFFBQVE7S0FDWixDQUFBO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLElBQUEsc0JBQVEsRUFLaEM7UUFDQSxRQUFRO1FBQ1IsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7WUFDOUIsT0FBTyxNQUFNLFNBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxFQUFFO2dCQUMxRSxNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUU7b0JBQ0osWUFBWSxFQUFFLFlBQVk7b0JBQzFCLFlBQVksRUFBRSxZQUFZO29CQUMxQixNQUFNLEVBQUUsTUFBTTtpQkFDZjthQUNGLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFDRCxTQUFTLEVBQUUsQ0FBQztRQUNaLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxNQUFNO1FBQ2hFLEdBQUksT0FBZTtLQUNwQixDQUFDLENBQUE7SUFFRixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUE7QUFDMUIsQ0FBQyxDQUFBO0FBbERZLFFBQUEsVUFBVSxjQWtEdEIifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9ob29rcy9hcGkvcHJldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx1REFNOEI7QUFDOUIsNkNBQXlDO0FBZ0JsQyxNQUFNLFVBQVUsR0FBRyxDQUN4QixNQUF3QixFQUN4QixPQVFDLEVBQ0QsRUFBRTtJQUNGLE1BQU0sRUFDSixZQUFZLEVBQ1osT0FBTyxFQUNQLFdBQVcsRUFDWCxNQUFNLEVBQ04sUUFBUSxHQUFHLEVBQUUsRUFDYixPQUFPLEdBQUcsS0FBSyxHQUNoQixHQUFHLE1BQU0sQ0FBQTtJQUVWLE1BQU0sUUFBUSxHQUFhO1FBQ3pCLFNBQVM7UUFDVCxZQUFZO1FBQ1osTUFBTTtRQUNOLEdBQUcsUUFBUTtLQUNaLENBQUE7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBQSxzQkFBUSxFQUtoQztRQUNBLFFBQVE7UUFDUixPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtZQUM5QixPQUFPLE1BQU0sU0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNENBQTRDLEVBQUU7Z0JBQzFFLE1BQU0sRUFBRSxNQUFNO2dCQUNkLElBQUksRUFBRTtvQkFDSixZQUFZLEVBQUUsWUFBWTtvQkFDMUIsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLFdBQVcsRUFBRSxXQUFXO29CQUN4QixNQUFNLEVBQUUsTUFBTTtpQkFDZjthQUNGLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFDRCxTQUFTLEVBQUUsQ0FBQztRQUNaLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxNQUFNO1FBQzNELEdBQUksT0FBZTtLQUNwQixDQUFDLENBQUE7SUFFRixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUE7QUFDMUIsQ0FBQyxDQUFBO0FBcERZLFFBQUEsVUFBVSxjQW9EdEIifQ==
@@ -1,85 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.config = void 0;
4
- exports.default = orderCompletedEmailsHandler;
4
+ exports.default = orderPlacedEmailsHandler;
5
5
  const utils_1 = require("@medusajs/framework/utils");
6
- const emails_1 = require("@codee-sh/medusa-plugin-notification-emails/templates/emails");
7
- const types_1 = require("@codee-sh/medusa-plugin-notification-emails/templates/emails/types");
8
- const utils_2 = require("@codee-sh/medusa-plugin-notification-emails/utils");
9
- const plugins_1 = require("@codee-sh/medusa-plugin-notification-emails/utils/plugins");
10
- async function orderCompletedEmailsHandler({ event: { data: { id, trigger_type } }, container, }) {
6
+ const emails_1 = require("../templates/emails");
7
+ const types_1 = require("../templates/emails/types");
8
+ const transforms_1 = require("../utils/transforms");
9
+ const plugins_1 = require("../utils/plugins");
10
+ const get_order_by_id_1 = require("../workflows/order/get-order-by-id");
11
+ async function orderPlacedEmailsHandler({ event: { data: { id, trigger_type } }, container, }) {
11
12
  const pluginOptions = (0, plugins_1.getPluginOptions)(container, "@codee-sh/medusa-plugin-notification-emails");
12
13
  const notificationModuleService = container.resolve(utils_1.Modules.NOTIFICATION);
13
- const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
14
14
  const triggerType = trigger_type || 'system';
15
15
  if (!id) {
16
16
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_ARGUMENT, "Order ID is required");
17
17
  }
18
- const { data: [order] } = await query.graph({
19
- entity: "order",
20
- fields: [
21
- "id",
22
- "email",
23
- "created_at",
24
- "updated_at",
25
- "payment_collections.*",
26
- "items.*",
27
- "items.variant.*",
28
- "items.variant.product.*",
29
- "currency_code",
30
- "display_id",
31
- "sales_channel.name",
32
- "sales_channel.description",
33
- "shipping_address.*",
34
- "billing_address.*",
35
- "summary.*",
36
- "tax_total",
37
- "discount_total",
38
- ],
39
- filters: {
40
- id: id,
18
+ const { result: order } = await (0, get_order_by_id_1.getOrderByIdWorkflow)(container).run({
19
+ input: {
20
+ order_id: id,
41
21
  },
42
22
  });
43
23
  if (!order) {
44
24
  return;
45
25
  }
46
- const shippingAddressText = (0, utils_2.getFormattedAddress)({ address: order.shipping_address }).join("<br/>");
47
- const billingAddressText = (0, utils_2.getFormattedAddress)({ address: order.billing_address }).join("<br/>");
48
- const templateData = {
49
- sales_channel: {
50
- name: order?.sales_channel?.name,
51
- description: order?.sales_channel?.description,
52
- },
53
- orderNumber: `#${order.display_id}`,
54
- customerName: order.email,
55
- customerEmail: order.email,
56
- orderDate: (0, utils_2.formatDate)({ date: order.created_at, includeTime: true, localeCode: "pl" }),
57
- completedDate: (0, utils_2.formatDate)({ date: order.updated_at || order.created_at, includeTime: true, localeCode: "pl" }),
58
- totalAmount: order.items.reduce((acc, item) => acc + (item.variant?.prices?.[0]?.amount || 0) * item.quantity, 0),
59
- currency: order.currency_code,
60
- items: order.items.map((item) => ({
61
- thumbnail: item.thumbnail,
62
- title: item.title,
63
- quantity: item.quantity,
64
- price: (0, utils_2.getLocaleAmount)(item.unit_price, order.currency_code),
65
- })),
66
- shippingAddress: shippingAddressText,
67
- billingAddress: billingAddressText,
68
- summary: {
69
- total: (0, utils_2.getLocaleAmount)(order.summary.original_order_total, order.currency_code),
70
- paid_total: (0, utils_2.getLocaleAmount)((0, utils_2.getTotalCaptured)(order.payment_collections || []), order.currency_code),
71
- tax_total: (0, utils_2.getLocaleAmount)(order.tax_total, order.currency_code),
72
- discount_total: (0, utils_2.getLocaleAmount)(order.discount_total, order.currency_code),
73
- currency_code: order.currency_code,
74
- }
75
- };
26
+ // Transform raw order data to email template format
27
+ const templateData = (0, transforms_1.transformContext)("order", order, "pl");
76
28
  const templateName = types_1.TEMPLATES_NAMES.ORDER_COMPLETED;
77
29
  const { html, text, subject } = await (0, emails_1.renderTemplate)(templateName, templateData, {
78
30
  locale: "pl",
79
31
  customTranslations: pluginOptions?.customTranslations?.[templateName]
80
32
  });
81
33
  const result = await notificationModuleService.createNotifications({
82
- to: order.email,
34
+ to: order.order.customer.email,
83
35
  channel: "email",
84
36
  template: templateName,
85
37
  trigger_type: triggerType,
@@ -96,4 +48,4 @@ async function orderCompletedEmailsHandler({ event: { data: { id, trigger_type }
96
48
  exports.config = {
97
49
  event: "order.completed",
98
50
  };
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItY29tcGxldGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL29yZGVyLWNvbXBsZXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFVQSw4Q0FzR0M7QUE1R0QscURBQTJGO0FBQzNGLHlGQUE2RjtBQUM3Riw4RkFBb0c7QUFDcEcsNkVBQXNJO0FBQ3RJLHVGQUE0RjtBQUU3RSxLQUFLLFVBQVUsMkJBQTJCLENBQUMsRUFDeEQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQ3JDLFNBQVMsR0FDNEM7SUFDckQsTUFBTSxhQUFhLEdBQUcsSUFBQSwwQkFBZ0IsRUFBQyxTQUFTLEVBQUUsNkNBQTZDLENBQUMsQ0FBQTtJQUVoRyxNQUFNLHlCQUF5QixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQ2pELGVBQU8sQ0FBQyxZQUFZLENBQ3JCLENBQUE7SUFDRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sV0FBVyxHQUFHLFlBQVksSUFBSSxRQUFRLENBQUE7SUFFNUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ1IsTUFBTSxJQUFJLG1CQUFXLENBQUMsbUJBQVcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQTtJQUNuRixDQUFDO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFDLE1BQU0sRUFBRSxPQUFPO1FBQ2YsTUFBTSxFQUFFO1lBQ04sSUFBSTtZQUNKLE9BQU87WUFDUCxZQUFZO1lBQ1osWUFBWTtZQUNaLHVCQUF1QjtZQUN2QixTQUFTO1lBQ1QsaUJBQWlCO1lBQ2pCLHlCQUF5QjtZQUN6QixlQUFlO1lB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
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItY29tcGxldGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL29yZGVyLWNvbXBsZXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFXQSwyQ0FxREM7QUE1REQscURBQWdFO0FBQ2hFLGdEQUFvRDtBQUNwRCxxREFBMkQ7QUFDM0Qsb0RBQXNEO0FBQ3RELDhDQUFtRDtBQUNuRCx3RUFBeUU7QUFFMUQsS0FBSyxVQUFVLHdCQUF3QixDQUFDLEVBQ3JELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUNyQyxTQUFTLEdBQzRDO0lBQ3JELE1BQU0sYUFBYSxHQUFHLElBQUEsMEJBQWdCLEVBQUMsU0FBUyxFQUFFLDZDQUE2QyxDQUFDLENBQUE7SUFFaEcsTUFBTSx5QkFBeUIsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNqRCxlQUFPLENBQUMsWUFBWSxDQUNyQixDQUFBO0lBQ0QsTUFBTSxXQUFXLEdBQUcsWUFBWSxJQUFJLFFBQVEsQ0FBQTtJQUU1QyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDUixNQUFNLElBQUksbUJBQVcsQ0FBQyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFBO0lBQ25GLENBQUM7SUFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBQSxzQ0FBb0IsRUFBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDbEUsS0FBSyxFQUFFO1lBQ0wsUUFBUSxFQUFFLEVBQUU7U0FDYjtLQUNGLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU07SUFDUixDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELE1BQU0sWUFBWSxHQUFHLElBQUEsNkJBQWdCLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUUzRCxNQUFNLFlBQVksR0FBRyx1QkFBZSxDQUFDLGVBQWUsQ0FBQTtJQUVwRCxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUEsdUJBQWMsRUFDbEQsWUFBWSxFQUNaLFlBQVksRUFDWjtRQUNFLE1BQU0sRUFBRSxJQUFJO1FBQ1osa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLENBQUMsWUFBWSxDQUFDO0tBQ3RFLENBQ0YsQ0FBQTtJQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0seUJBQXlCLENBQUMsbUJBQW1CLENBQUM7UUFDakUsRUFBRSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUs7UUFDOUIsT0FBTyxFQUFFLE9BQU87UUFDaEIsUUFBUSxFQUFFLFlBQVk7UUFDdEIsWUFBWSxFQUFFLFdBQVc7UUFDekIsV0FBVyxFQUFFLEVBQUU7UUFDZixhQUFhLEVBQUUsT0FBTztRQUN0QixJQUFJLEVBQUUsWUFBWTtRQUNsQixPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsT0FBTztZQUNoQixJQUFJO1lBQ0osSUFBSTtTQUNMO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVZLFFBQUEsTUFBTSxHQUFxQjtJQUN0QyxLQUFLLEVBQUUsaUJBQWlCO0NBQ3pCLENBQUEifQ==
@@ -3,81 +3,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.config = void 0;
4
4
  exports.default = orderPlacedEmailsHandler;
5
5
  const utils_1 = require("@medusajs/framework/utils");
6
- const emails_1 = require("@codee-sh/medusa-plugin-notification-emails/templates/emails");
7
- const types_1 = require("@codee-sh/medusa-plugin-notification-emails/templates/emails/types");
8
- const utils_2 = require("@codee-sh/medusa-plugin-notification-emails/utils");
9
- const plugins_1 = require("@codee-sh/medusa-plugin-notification-emails/utils/plugins");
6
+ const emails_1 = require("../templates/emails");
7
+ const types_1 = require("../templates/emails/types");
8
+ const transforms_1 = require("../utils/transforms");
9
+ const plugins_1 = require("../utils/plugins");
10
+ const get_order_by_id_1 = require("../workflows/order/get-order-by-id");
10
11
  async function orderPlacedEmailsHandler({ event: { data: { id, trigger_type } }, container, }) {
11
12
  const pluginOptions = (0, plugins_1.getPluginOptions)(container, "@codee-sh/medusa-plugin-notification-emails");
12
13
  const notificationModuleService = container.resolve(utils_1.Modules.NOTIFICATION);
13
- const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
14
14
  const triggerType = trigger_type || 'system';
15
15
  if (!id) {
16
16
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_ARGUMENT, "Order ID is required");
17
17
  }
18
- const { data: [order] } = await query.graph({
19
- entity: "order",
20
- fields: [
21
- "id",
22
- "email",
23
- "created_at",
24
- "payment_collections.*",
25
- "items.*",
26
- "items.variant.*",
27
- "items.variant.product.*",
28
- "currency_code",
29
- "display_id",
30
- "sales_channel.name",
31
- "sales_channel.description",
32
- "shipping_address.*",
33
- "billing_address.*",
34
- "summary.*",
35
- "tax_total",
36
- "discount_total",
37
- ],
38
- filters: {
39
- id: id,
18
+ const { result: order } = await (0, get_order_by_id_1.getOrderByIdWorkflow)(container).run({
19
+ input: {
20
+ order_id: id,
40
21
  },
41
22
  });
42
23
  if (!order) {
43
24
  return;
44
25
  }
45
- const shippingAddressText = (0, utils_2.getFormattedAddress)({ address: order.shipping_address }).join("<br/>");
46
- const billingAddressText = (0, utils_2.getFormattedAddress)({ address: order.billing_address }).join("<br/>");
47
- const templateData = {
48
- sales_channel: {
49
- name: order?.sales_channel?.name,
50
- description: order?.sales_channel?.description,
51
- },
52
- orderNumber: `#${order.display_id}`,
53
- customerName: order.email,
54
- customerEmail: order.email,
55
- orderDate: (0, utils_2.formatDate)({ date: order.created_at, includeTime: true, localeCode: "pl" }),
56
- totalAmount: order.items.reduce((acc, item) => acc + (item.variant?.prices?.[0]?.amount || 0) * item.quantity, 0),
57
- currency: order.currency_code,
58
- items: order.items.map((item) => ({
59
- thumbnail: item.thumbnail,
60
- title: item.title,
61
- quantity: item.quantity,
62
- price: (0, utils_2.getLocaleAmount)(item.unit_price, order.currency_code),
63
- })),
64
- shippingAddress: shippingAddressText,
65
- billingAddress: billingAddressText,
66
- summary: {
67
- total: (0, utils_2.getLocaleAmount)(order.summary.original_order_total, order.currency_code),
68
- paid_total: (0, utils_2.getLocaleAmount)((0, utils_2.getTotalCaptured)(order.payment_collections || []), order.currency_code),
69
- tax_total: (0, utils_2.getLocaleAmount)(order.tax_total, order.currency_code),
70
- discount_total: (0, utils_2.getLocaleAmount)(order.discount_total, order.currency_code),
71
- currency_code: order.currency_code,
72
- }
73
- };
26
+ // Transform raw order data to email template format
27
+ const templateData = (0, transforms_1.transformContext)("order", order, "pl");
74
28
  const templateName = types_1.TEMPLATES_NAMES.ORDER_PLACED;
75
29
  const { html, text, subject } = await (0, emails_1.renderTemplate)(templateName, templateData, {
76
30
  locale: "pl",
77
31
  customTranslations: pluginOptions?.customTranslations?.[templateName]
78
32
  });
79
33
  const result = await notificationModuleService.createNotifications({
80
- to: order.email,
34
+ to: order.order.customer.email,
81
35
  channel: "email",
82
36
  template: templateName,
83
37
  trigger_type: triggerType,
@@ -94,4 +48,4 @@ async function orderPlacedEmailsHandler({ event: { data: { id, trigger_type } },
94
48
  exports.config = {
95
49
  event: "order.placed",
96
50
  };
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcGxhY2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL29yZGVyLXBsYWNlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFVQSwyQ0FvR0M7QUExR0QscURBQTJGO0FBQzNGLHlGQUE2RjtBQUM3Riw4RkFBb0c7QUFDcEcsNkVBQXNJO0FBQ3RJLHVGQUE0RjtBQUU3RSxLQUFLLFVBQVUsd0JBQXdCLENBQUMsRUFDckQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQ3JDLFNBQVMsR0FDNEM7SUFDckQsTUFBTSxhQUFhLEdBQUcsSUFBQSwwQkFBZ0IsRUFBQyxTQUFTLEVBQUUsNkNBQTZDLENBQUMsQ0FBQTtJQUVoRyxNQUFNLHlCQUF5QixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQ2pELGVBQU8sQ0FBQyxZQUFZLENBQ3JCLENBQUE7SUFDRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sV0FBVyxHQUFHLFlBQVksSUFBSSxRQUFRLENBQUE7SUFFNUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ1IsTUFBTSxJQUFJLG1CQUFXLENBQUMsbUJBQVcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQTtJQUNuRixDQUFDO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFDLE1BQU0sRUFBRSxPQUFPO1FBQ2YsTUFBTSxFQUFFO1lBQ04sSUFBSTtZQUNKLE9BQU87WUFDUCxZQUFZO1lBQ1osdUJBQXVCO1lBQ3ZCLFNBQVM7WUFDVCxpQkFBaUI7WUFDakIseUJBQXlCO1lBQ3pCLGVBQWU7WUFDZixZQUFZO1lBQ1osb0JB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
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcGxhY2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL29yZGVyLXBsYWNlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFXQSwyQ0FxREM7QUE1REQscURBQWdFO0FBQ2hFLGdEQUFvRDtBQUNwRCxxREFBMkQ7QUFDM0Qsb0RBQXNEO0FBQ3RELDhDQUFtRDtBQUNuRCx3RUFBeUU7QUFFMUQsS0FBSyxVQUFVLHdCQUF3QixDQUFDLEVBQ3JELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUNyQyxTQUFTLEdBQzRDO0lBQ3JELE1BQU0sYUFBYSxHQUFHLElBQUEsMEJBQWdCLEVBQUMsU0FBUyxFQUFFLDZDQUE2QyxDQUFDLENBQUE7SUFFaEcsTUFBTSx5QkFBeUIsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNqRCxlQUFPLENBQUMsWUFBWSxDQUNyQixDQUFBO0lBQ0QsTUFBTSxXQUFXLEdBQUcsWUFBWSxJQUFJLFFBQVEsQ0FBQTtJQUU1QyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDUixNQUFNLElBQUksbUJBQVcsQ0FBQyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFBO0lBQ25GLENBQUM7SUFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBQSxzQ0FBb0IsRUFBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDbEUsS0FBSyxFQUFFO1lBQ0wsUUFBUSxFQUFFLEVBQUU7U0FDYjtLQUNGLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU07SUFDUixDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELE1BQU0sWUFBWSxHQUFHLElBQUEsNkJBQWdCLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUUzRCxNQUFNLFlBQVksR0FBRyx1QkFBZSxDQUFDLFlBQVksQ0FBQTtJQUVqRCxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUEsdUJBQWMsRUFDbEQsWUFBWSxFQUNaLFlBQVksRUFDWjtRQUNFLE1BQU0sRUFBRSxJQUFJO1FBQ1osa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLENBQUMsWUFBWSxDQUFDO0tBQ3RFLENBQ0YsQ0FBQTtJQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0seUJBQXlCLENBQUMsbUJBQW1CLENBQUM7UUFDakUsRUFBRSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUs7UUFDOUIsT0FBTyxFQUFFLE9BQU87UUFDaEIsUUFBUSxFQUFFLFlBQVk7UUFDdEIsWUFBWSxFQUFFLFdBQVc7UUFDekIsV0FBVyxFQUFFLEVBQUU7UUFDZixhQUFhLEVBQUUsT0FBTztRQUN0QixJQUFJLEVBQUUsWUFBWTtRQUNsQixPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsT0FBTztZQUNoQixJQUFJO1lBQ0osSUFBSTtTQUNMO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVZLFFBQUEsTUFBTSxHQUFxQjtJQUN0QyxLQUFLLEVBQUUsY0FBYztDQUN0QixDQUFBIn0=
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBaseTemplateHtml = getBaseTemplateHtml;
4
+ exports.getBaseTemplateText = getBaseTemplateText;
5
+ exports.getBaseTemplateReactNode = getBaseTemplateReactNode;
6
+ const template_1 = require("./template");
7
+ /**
8
+ * Generates HTML for base template
9
+ *
10
+ * @param data - Base template data
11
+ * @param options - Optional theme and locale configuration
12
+ * @returns HTML string ready to send
13
+ */
14
+ async function getBaseTemplateHtml(data, options) {
15
+ return await (0, template_1.renderHTML)(data, options);
16
+ }
17
+ async function getBaseTemplateText(data, options) {
18
+ return await (0, template_1.renderText)(data, options);
19
+ }
20
+ function getBaseTemplateReactNode(data, options) {
21
+ return (0, template_1.renderHTMLReact)(data, options);
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9iYXNlLXRlbXBsYXRlL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLGtEQUtDO0FBRUQsa0RBS0M7QUFFRCw0REFLQztBQTVCRCx5Q0FBcUU7QUFFckU7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLG1CQUFtQixDQUN2QyxJQUFTLEVBQ1QsT0FBNEI7SUFFNUIsT0FBTyxNQUFNLElBQUEscUJBQVUsRUFBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVNLEtBQUssVUFBVSxtQkFBbUIsQ0FDdkMsSUFBUyxFQUNULE9BQTRCO0lBRTVCLE9BQU8sTUFBTSxJQUFBLHFCQUFVLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FDdEMsSUFBUyxFQUNULE9BQTRCO0lBRTVCLE9BQU8sSUFBQSwwQkFBZSxFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4QyxDQUFDIn0=
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderHTMLReact = renderHTMLReact;
4
+ exports.renderHTML = renderHTML;
5
+ exports.renderText = renderText;
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const components_1 = require("@react-email/components");
8
+ const render_1 = require("@react-email/render");
9
+ const blocks_1 = require("../blocks");
10
+ function renderHTMLReact(data, options) {
11
+ const theme = options.theme || {};
12
+ const blocks = options.blocks || [];
13
+ return ((0, jsx_runtime_1.jsxs)(components_1.Html, { children: [(0, jsx_runtime_1.jsx)(components_1.Head, {}), (0, jsx_runtime_1.jsx)(components_1.Tailwind, { config: {
14
+ presets: [components_1.pixelBasedPreset],
15
+ theme: theme
16
+ }, children: (0, jsx_runtime_1.jsx)(components_1.Body, { className: "mx-auto my-auto px-4 font-arial font-normal text-base bg-ui-bg text-ui-text", children: (0, jsx_runtime_1.jsx)(components_1.Container, { className: "py-4", children: (0, jsx_runtime_1.jsx)(blocks_1.BlockRenderer, { blocks: blocks, data: data }) }) }) })] }));
17
+ }
18
+ async function renderHTML(data, options) {
19
+ return await (0, render_1.pretty)(await (0, render_1.render)(renderHTMLReact(data, options)));
20
+ }
21
+ async function renderText(data, options) {
22
+ const html = await (0, render_1.render)(renderHTMLReact(data, options));
23
+ return (0, render_1.toPlainText)(html);
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9iYXNlLXRlbXBsYXRlL3RlbXBsYXRlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLDBDQXdCQztBQUVELGdDQUtDO0FBRUQsZ0NBTUM7O0FBNUNELHdEQUEySTtBQUMzSSxnREFBa0U7QUFFbEUsc0NBQTBDO0FBRTFDLFNBQWdCLGVBQWUsQ0FDN0IsSUFBUyxFQUNULE9BQTRCO0lBRTVCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ2xDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBRXBDLE9BQU8sQ0FDTCx3QkFBQyxpQkFBSSxlQUNILHVCQUFDLGlCQUFJLEtBQUcsRUFDUix1QkFBQyxxQkFBUSxJQUNQLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsQ0FBQyw2QkFBZ0IsQ0FBQztvQkFDM0IsS0FBSyxFQUFFLEtBQUs7aUJBQ2IsWUFFRCx1QkFBQyxpQkFBSSxJQUFDLFNBQVMsRUFBQyw2RUFBNkUsWUFDM0YsdUJBQUMsc0JBQVMsSUFBQyxTQUFTLEVBQUMsTUFBTSxZQUN6Qix1QkFBQyxzQkFBYSxJQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxHQUNuQyxHQUNQLEdBQ0UsSUFDTixDQUNSLENBQUM7QUFDSixDQUFDO0FBRU0sS0FBSyxVQUFVLFVBQVUsQ0FDOUIsSUFBUyxFQUNULE9BQTRCO0lBRTVCLE9BQU8sTUFBTSxJQUFBLGVBQU0sRUFBQyxNQUFNLElBQUEsZUFBTSxFQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BFLENBQUM7QUFFTSxLQUFLLFVBQVUsVUFBVSxDQUM5QixJQUFTLEVBQ1QsT0FBNEI7SUFFNUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLGVBQU0sRUFBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDMUQsT0FBTyxJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0IsQ0FBQyJ9
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HeadingBlock = HeadingBlock;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const components_1 = require("@react-email/components");
6
+ const ui_1 = require("@medusajs/ui");
7
+ /**
8
+ * HeadingBlock - Heading block component
9
+ *
10
+ */
11
+ function HeadingBlock({ id, props, data, isLastBlock, isFirstBlock, }) {
12
+ const className = (0, ui_1.clx)("text-xl", "font-bold", isLastBlock ? "mb-0" : "mb-4", isFirstBlock ? "mt-0" : "mt-4");
13
+ return ((0, jsx_runtime_1.jsx)(components_1.Heading, { className: className, children: props.value }));
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy90ZW1wbGF0ZXMvZW1haWxzL2Jsb2Nrcy9jb21wb25lbnRzL2hlYWRpbmcudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esb0NBeUJDOztBQWhDRCx3REFBa0Q7QUFDbEQscUNBQW1DO0FBRW5DOzs7R0FHRztBQUNILFNBQWdCLFlBQVksQ0FBQyxFQUMzQixFQUFFLEVBQ0YsS0FBSyxFQUNMLElBQUksRUFDSixXQUFXLEVBQ1gsWUFBWSxHQU9iO0lBQ0MsTUFBTSxTQUFTLEdBQUcsSUFBQSxRQUFHLEVBQ25CLFNBQVMsRUFDVCxXQUFXLEVBQ1gsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFDN0IsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDL0IsQ0FBQztJQUVGLE9BQU8sQ0FDTCx1QkFBQyxvQkFBTyxJQUFDLFNBQVMsRUFBRSxTQUFTLFlBQzFCLEtBQUssQ0FBQyxLQUFLLEdBQ0osQ0FDWCxDQUFDO0FBQ0osQ0FBQyJ9
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProductItemBlock = ProductItemBlock;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const components_1 = require("@react-email/components");
6
+ /**
7
+ * ProductItemBlock - Product item block component
8
+ *
9
+ */
10
+ function ProductItemBlock({ props, data, isLastBlock, isFirstBlock, }) {
11
+ return ((0, jsx_runtime_1.jsxs)(components_1.Row, { children: [props.thumbnail &&
12
+ (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "w-[50px]", children: (0, jsx_runtime_1.jsx)("img", { src: props.thumbnail, width: 50, height: 50 }) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "w-[12px]" })] }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-left", children: typeof props.value === "string" ? (0, jsx_runtime_1.jsx)("span", { dangerouslySetInnerHTML: { __html: props.value } }) : props.value })] }));
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3RlbXBsYXRlcy9lbWFpbHMvYmxvY2tzL2NvbXBvbmVudHMvcHJvZHVjdC1pdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLDRDQW9CQzs7QUExQkQsd0RBQTREO0FBRTVEOzs7R0FHRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLEVBQy9CLEtBQUssRUFDTCxJQUFJLEVBQ0osV0FBVyxFQUNYLFlBQVksR0FDd0U7SUFDcEYsT0FBTyxDQUNMLHdCQUFDLGdCQUFHLGVBQ0QsS0FBSyxDQUFDLFNBQVM7Z0JBQ2QsNkRBQ0UsdUJBQUMsbUJBQU0sSUFBQyxTQUFTLEVBQUMsVUFBVSxZQUFDLGdDQUFLLEdBQUcsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBSSxHQUFTLEVBQzFGLHVCQUFDLG1CQUFNLElBQUMsU0FBUyxFQUFDLFVBQVUsR0FBVSxJQUNyQyxFQUdMLHVCQUFDLG1CQUFNLElBQUMsU0FBUyxFQUFDLFdBQVcsWUFDMUIsT0FBTyxLQUFLLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsaUNBQU0sdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQ3BHLElBQ0wsQ0FDUCxDQUFDO0FBQ0osQ0FBQyJ9
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RepeaterBlock = RepeaterBlock;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const index_1 = require("../index");
6
+ /**
7
+ * RepeaterBlock - Iterates over an array and renders blocks for each item
8
+ *
9
+ * Example:
10
+ * {
11
+ * type: "repeater",
12
+ * props: {
13
+ * arrayPath: "items",
14
+ * itemBlocks: [
15
+ * { type: "text", props: { text: "{{label}}" } }
16
+ * ],
17
+ * separator: { type: "separator" } // optional
18
+ * }
19
+ * }
20
+ */
21
+ function RepeaterBlock({ id, props, data, }) {
22
+ // Retrieve array from data
23
+ const array = props.itemBlocks;
24
+ return (0, jsx_runtime_1.jsx)(index_1.BlockRenderer, { blocks: array, data: data });
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9ibG9ja3MvY29tcG9uZW50cy9yZXBlYXRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpQkEsc0NBaUJDOztBQWxDRCxvQ0FBeUM7QUFFekM7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxTQUFnQixhQUFhLENBQUMsRUFDNUIsRUFBRSxFQUNGLEtBQUssRUFDTCxJQUFJLEdBU0w7SUFDQywyQkFBMkI7SUFDM0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUUvQixPQUFPLHVCQUFDLHFCQUFhLElBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUE7QUFDckQsQ0FBQyJ9
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RowBlock = RowBlock;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const components_1 = require("@react-email/components");
6
+ /**
7
+ * RowBlock - Row block component
8
+ *
9
+ */
10
+ function RowBlock({ id, props, data, isLastBlock, isFirstBlock, }) {
11
+ return ((0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: props.label }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: typeof props.value === "string" ? (0, jsx_runtime_1.jsx)("span", { dangerouslySetInnerHTML: { __html: props.value } }) : props.value })] }));
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3RlbXBsYXRlcy9lbWFpbHMvYmxvY2tzL2NvbXBvbmVudHMvcm93LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLDRCQXFCQzs7QUEzQkQsd0RBQXNEO0FBRXREOzs7R0FHRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxFQUN2QixFQUFFLEVBQ0YsS0FBSyxFQUNMLElBQUksRUFDSixXQUFXLEVBQ1gsWUFBWSxHQU9iO0lBQ0MsT0FBTyxDQUNMLHdCQUFDLGdCQUFHLGVBQ0YsdUJBQUMsbUJBQU0sSUFBQyxTQUFTLEVBQUMsZUFBZSxZQUFFLEtBQUssQ0FBQyxLQUFLLEdBQVUsRUFDeEQsdUJBQUMsbUJBQU0sSUFBQyxTQUFTLEVBQUMsWUFBWSxZQUMzQixPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxpQ0FBTSx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssR0FDcEcsSUFDTCxDQUNQLENBQUM7QUFDSixDQUFDIn0=
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SectionBlock = SectionBlock;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const components_1 = require("@react-email/components");
6
+ const index_1 = require("../index");
7
+ /**
8
+ * SectionBlock - Container for other blocks with optional title and styles
9
+ *
10
+ */
11
+ function SectionBlock({ id, props, data, isLastBlock, isFirstBlock, }) {
12
+ return ((0, jsx_runtime_1.jsx)(components_1.Section, { className: "m-0 p-0", children: (0, jsx_runtime_1.jsx)(index_1.BlockRenderer, { blocks: props.blocks || [], data: data }) }));
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy90ZW1wbGF0ZXMvZW1haWxzL2Jsb2Nrcy9jb21wb25lbnRzL3NlY3Rpb24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esb0NBWUM7O0FBbkJELHdEQUFrRDtBQUNsRCxvQ0FBeUM7QUFFekM7OztHQUdHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLEVBQzNCLEVBQUUsRUFDRixLQUFLLEVBQ0wsSUFBSSxFQUNKLFdBQVcsRUFDWCxZQUFZLEdBQ3lFO0lBQ3JGLE9BQU8sQ0FDTCx1QkFBQyxvQkFBTyxJQUFDLFNBQVMsRUFBQyxTQUFTLFlBQzFCLHVCQUFDLHFCQUFhLElBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksR0FDakQsQ0FDWCxDQUFDO0FBQ0osQ0FBQyJ9
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SeparatorBlock = SeparatorBlock;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const components_1 = require("@react-email/components");
6
+ /**
7
+ * SeparatorBlock - Separator block component
8
+ *
9
+ */
10
+ function SeparatorBlock({ id, props, isLastBlock, isFirstBlock, }) {
11
+ return ((0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }));
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwYXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3RlbXBsYXRlcy9lbWFpbHMvYmxvY2tzL2NvbXBvbmVudHMvc2VwYXJhdG9yLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLHdDQWNDOztBQXBCRCx3REFBNkM7QUFFN0M7OztHQUdHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLEVBQzdCLEVBQUUsRUFDRixLQUFLLEVBQ0wsV0FBVyxFQUNYLFlBQVksR0FNYjtJQUNDLE9BQU8sQ0FDTCx1QkFBQyxlQUFFLElBQUMsU0FBUyxFQUFDLHVCQUF1QixHQUFHLENBQ3pDLENBQUM7QUFDSixDQUFDIn0=
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TextBlock = TextBlock;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const components_1 = require("@react-email/components");
6
+ const ui_1 = require("@medusajs/ui");
7
+ /**
8
+ * TextBlock - Text block component
9
+ *
10
+ */
11
+ function TextBlock({ id, props, isLastBlock, isFirstBlock, }) {
12
+ const className = (0, ui_1.clx)(isLastBlock ? "mb-0" : "mb-4", isFirstBlock && "mt-0");
13
+ return ((0, jsx_runtime_1.jsx)(components_1.Text, { className: className, children: typeof props.value === "string" ? (0, jsx_runtime_1.jsx)("span", { dangerouslySetInnerHTML: { __html: props.value } }) : props.value }, id));
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy90ZW1wbGF0ZXMvZW1haWxzL2Jsb2Nrcy9jb21wb25lbnRzL3RleHQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsOEJBZ0JDOztBQXZCRCx3REFBK0M7QUFDL0MscUNBQW1DO0FBRW5DOzs7R0FHRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxFQUN4QixFQUFFLEVBQ0YsS0FBSyxFQUNMLFdBQVcsRUFDWCxZQUFZLEdBQzREO0lBQ3hFLE1BQU0sU0FBUyxHQUFHLElBQUEsUUFBRyxFQUNuQixXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUM3QixZQUFZLElBQUksTUFBTSxDQUN2QixDQUFDO0lBRUYsT0FBTyxDQUNMLHVCQUFDLGlCQUFJLElBQVUsU0FBUyxFQUFFLFNBQVMsWUFDaEMsT0FBTyxLQUFLLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsaUNBQU0sdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBRGxHLEVBQUUsQ0FFTixDQUNSLENBQUM7QUFDSixDQUFDIn0=
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlockRenderer = BlockRenderer;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const section_1 = require("./components/section");
6
+ const text_1 = require("./components/text");
7
+ const repeater_1 = require("./components/repeater");
8
+ const heading_1 = require("./components/heading");
9
+ const row_1 = require("./components/row");
10
+ const separator_1 = require("./components/separator");
11
+ const product_item_1 = require("./components/product-item");
12
+ function BlockRenderer({ blocks, data }) {
13
+ return blocks.map((block, index) => {
14
+ const blockKey = block.id || `block-${index}`;
15
+ const isLastBlock = index === blocks.length - 1;
16
+ const isFirstBlock = index === 0;
17
+ switch (block.type) {
18
+ case "section":
19
+ return ((0, jsx_runtime_1.jsx)(section_1.SectionBlock, { id: blockKey, props: block.props, data: data, isLastBlock: isLastBlock, isFirstBlock: isFirstBlock }, blockKey));
20
+ case "row":
21
+ return ((0, jsx_runtime_1.jsx)(row_1.RowBlock, { id: blockKey, props: block.props, data: data, isLastBlock: isLastBlock, isFirstBlock: isFirstBlock }, blockKey));
22
+ case "product-item":
23
+ return ((0, jsx_runtime_1.jsx)(product_item_1.ProductItemBlock, { id: blockKey, props: block.props, data: data, isLastBlock: isLastBlock, isFirstBlock: isFirstBlock }, blockKey));
24
+ case "heading":
25
+ return ((0, jsx_runtime_1.jsx)(heading_1.HeadingBlock, { id: blockKey, props: block.props, data: data, isLastBlock: isLastBlock, isFirstBlock: isFirstBlock }, blockKey));
26
+ case "text":
27
+ return ((0, jsx_runtime_1.jsx)(text_1.TextBlock, { id: blockKey, props: block.props, isLastBlock: isLastBlock, isFirstBlock: isFirstBlock }, blockKey));
28
+ case "separator":
29
+ return ((0, jsx_runtime_1.jsx)(separator_1.SeparatorBlock, { id: blockKey, props: block.props, isLastBlock: isLastBlock, isFirstBlock: isFirstBlock }, blockKey));
30
+ case "repeater":
31
+ if (!data) {
32
+ console.warn("RepeaterBlock requires data prop");
33
+ return null;
34
+ }
35
+ return ((0, jsx_runtime_1.jsx)(repeater_1.RepeaterBlock, { id: blockKey, props: block.props, data: data }, blockKey));
36
+ default:
37
+ return null;
38
+ }
39
+ });
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9ibG9ja3MvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsc0NBd0ZDOztBQWhHRCxrREFBb0Q7QUFDcEQsNENBQThDO0FBQzlDLG9EQUFzRDtBQUN0RCxrREFBb0Q7QUFDcEQsMENBQTRDO0FBQzVDLHNEQUF3RDtBQUN4RCw0REFBNkQ7QUFFN0QsU0FBZ0IsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBaUM7SUFDM0UsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLElBQUksU0FBUyxLQUFLLEVBQUUsQ0FBQztRQUM5QyxNQUFNLFdBQVcsR0FBRyxLQUFLLEtBQUssTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEQsTUFBTSxZQUFZLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQztRQUVqQyxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxDQUNMLHVCQUFDLHNCQUFZLElBRVgsRUFBRSxFQUFFLFFBQVEsRUFDWixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFDbEIsSUFBSSxFQUFFLElBQUksRUFDVixXQUFXLEVBQUUsV0FBVyxFQUN4QixZQUFZLEVBQUUsWUFBWSxJQUxyQixRQUFRLENBTWIsQ0FDSCxDQUFDO1lBQ0osS0FBSyxLQUFLO2dCQUNSLE9BQU8sQ0FDTCx1QkFBQyxjQUFRLElBRVAsRUFBRSxFQUFFLFFBQVEsRUFDWixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFDbEIsSUFBSSxFQUFFLElBQUksRUFDVixXQUFXLEVBQUUsV0FBVyxFQUN4QixZQUFZLEVBQUUsWUFBWSxJQUxyQixRQUFRLENBTWIsQ0FDSCxDQUFDO1lBQ0osS0FBSyxjQUFjO2dCQUNqQixPQUFPLENBQ0wsdUJBQUMsK0JBQWdCLElBRWYsRUFBRSxFQUFFLFFBQVEsRUFDWixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFDbEIsSUFBSSxFQUFFLElBQUksRUFDVixXQUFXLEVBQUUsV0FBVyxFQUN4QixZQUFZLEVBQUUsWUFBWSxJQUxyQixRQUFRLENBTWIsQ0FDSCxDQUFDO1lBQ0osS0FBSyxTQUFTO2dCQUNaLE9BQU8sQ0FDTCx1QkFBQyxzQkFBWSxJQUVYLEVBQUUsRUFBRSxRQUFRLEVBQ1osS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQ2xCLElBQUksRUFBRSxJQUFJLEVBQ1YsV0FBVyxFQUFFLFdBQVcsRUFDeEIsWUFBWSxFQUFFLFlBQVksSUFMckIsUUFBUSxDQU1iLENBQ0gsQ0FBQztZQUNKLEtBQUssTUFBTTtnQkFDVCxPQUFPLENBQ0wsdUJBQUMsZ0JBQVMsSUFFUixFQUFFLEVBQUUsUUFBUSxFQUNaLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUNsQixXQUFXLEVBQUUsV0FBVyxFQUN4QixZQUFZLEVBQUUsWUFBWSxJQUpyQixRQUFRLENBS2IsQ0FDSCxDQUFDO1lBQ0osS0FBSyxXQUFXO2dCQUNkLE9BQU8sQ0FDTCx1QkFBQywwQkFBYyxJQUViLEVBQUUsRUFBRSxRQUFRLEVBQ1osS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQ2xCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFlBQVksRUFBRSxZQUFZLElBSnJCLFFBQVEsQ0FLYixDQUNILENBQUM7WUFDSixLQUFLLFVBQVU7Z0JBQ2IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQztvQkFDakQsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztnQkFDRCxPQUFPLENBQ0wsdUJBQUMsd0JBQWEsSUFFWixFQUFFLEVBQUUsUUFBUSxFQUNaLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUNsQixJQUFJLEVBQUUsSUFBSSxJQUhMLFFBQVEsQ0FJYixDQUNILENBQUM7WUFDSjtnQkFDRSxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQyxDQUF5QixDQUFDO0FBQzdCLENBQUMifQ==
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL3NoYXJlZC9pMThuL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9ibG9ja3MvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9