@codee-sh/medusa-plugin-notification-emails 0.0.2 → 0.1.0

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 (55) 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 +385 -2364
  6. package/.medusa/server/src/admin/index.mjs +307 -2286
  7. package/.medusa/server/src/api/admin/notification-plugin/render-template/route.js +2 -2
  8. package/.medusa/server/src/hooks/api/orders.js +3 -2
  9. package/.medusa/server/src/templates/emails/base-template/index.js +23 -0
  10. package/.medusa/server/src/templates/emails/base-template/template.js +25 -0
  11. package/.medusa/server/src/templates/emails/blocks/components/heading.js +15 -0
  12. package/.medusa/server/src/templates/emails/blocks/components/product-item.js +14 -0
  13. package/.medusa/server/src/templates/emails/blocks/components/repeater.js +26 -0
  14. package/.medusa/server/src/templates/emails/blocks/components/row.js +13 -0
  15. package/.medusa/server/src/templates/emails/blocks/components/section.js +14 -0
  16. package/.medusa/server/src/templates/emails/blocks/components/separator.js +13 -0
  17. package/.medusa/server/src/templates/emails/blocks/components/text.js +15 -0
  18. package/.medusa/server/src/templates/emails/blocks/index.js +41 -0
  19. package/.medusa/server/src/templates/{shared/i18n → emails/blocks}/types.js +1 -1
  20. package/.medusa/server/src/templates/emails/contact-form/config.js +95 -0
  21. package/.medusa/server/src/templates/emails/contact-form/index.js +6 -17
  22. package/.medusa/server/src/templates/emails/contact-form/translations/de.json +14 -0
  23. package/.medusa/server/src/templates/emails/contact-form/translations/en.json +12 -14
  24. package/.medusa/server/src/templates/emails/contact-form/translations/pl.json +8 -10
  25. package/.medusa/server/src/templates/emails/index.js +183 -92
  26. package/.medusa/server/src/templates/emails/inventory-level/config.js +126 -0
  27. package/.medusa/server/src/templates/emails/inventory-level/index.js +6 -17
  28. package/.medusa/server/src/templates/emails/order-completed/config.js +233 -0
  29. package/.medusa/server/src/templates/emails/order-completed/index.js +6 -17
  30. package/.medusa/server/src/templates/emails/order-completed/translations/en.json +2 -1
  31. package/.medusa/server/src/templates/emails/order-completed/translations/pl.json +2 -1
  32. package/.medusa/server/src/templates/emails/order-placed/config.js +221 -0
  33. package/.medusa/server/src/templates/emails/order-placed/index.js +6 -17
  34. package/.medusa/server/src/templates/emails/order-placed/translations/en.json +1 -1
  35. package/.medusa/server/src/templates/emails/order-placed/translations/pl.json +1 -1
  36. package/.medusa/server/src/templates/emails/types.js +2 -1
  37. package/.medusa/server/src/utils/i18n/i18n.js +194 -0
  38. package/.medusa/server/src/utils/i18n/index.js +18 -0
  39. package/.medusa/server/src/utils/index.js +5 -1
  40. package/.medusa/server/src/utils/is-defined.js +7 -0
  41. package/.medusa/server/src/utils/is-object.js +7 -0
  42. package/.medusa/server/src/utils/pick-value-from-object.js +28 -0
  43. package/package.json +18 -11
  44. package/.medusa/server/src/templates/emails/contact-form/template.js +0 -28
  45. package/.medusa/server/src/templates/emails/contact-form/translations/index.js +0 -15
  46. package/.medusa/server/src/templates/emails/contact-form/types.js +0 -3
  47. package/.medusa/server/src/templates/emails/inventory-level/template.js +0 -28
  48. package/.medusa/server/src/templates/emails/inventory-level/types.js +0 -3
  49. package/.medusa/server/src/templates/emails/order-completed/template.js +0 -36
  50. package/.medusa/server/src/templates/emails/order-completed/types.js +0 -3
  51. package/.medusa/server/src/templates/emails/order-placed/template.js +0 -36
  52. package/.medusa/server/src/templates/emails/order-placed/types.js +0 -3
  53. package/.medusa/server/src/templates/shared/i18n/index.js +0 -6
  54. package/.medusa/server/src/templates/shared/i18n/languages.js +0 -187
  55. package/.medusa/server/src/templates/shared/i18n/utils.js +0 -186
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getVariableValue = getVariableValue;
4
+ exports.interpolate = interpolate;
5
+ exports.multiInterpolate = multiInterpolate;
6
+ exports.t = t;
7
+ exports.createTranslator = createTranslator;
8
+ exports.mergeTranslations = mergeTranslations;
9
+ const index_1 = require("../index");
10
+ /**
11
+ * Simple i18n utility for templates
12
+ * Provides basic translation functionality without external dependencies
13
+ */
14
+ /**
15
+ * Flatten translations structure - extracts 'general' object properties to root level
16
+ * This allows JSON files to have nested structure while templates use flat structure
17
+ *
18
+ * @param translations - Translations object (may contain 'general' wrapper)
19
+ * @returns Flattened translations object
20
+ */
21
+ function flattenTranslations(translations) {
22
+ if (!(0, index_1.isObject)(translations) || !translations.general) {
23
+ return translations;
24
+ }
25
+ // Extract 'general' properties to root level
26
+ const { general, ...rest } = translations;
27
+ return { ...general, ...rest };
28
+ }
29
+ /**
30
+ * Get variable value from text
31
+ */
32
+ function getVariableValue(text) {
33
+ if (!text || typeof text !== "string") {
34
+ return { replaced: text, original: text };
35
+ }
36
+ return {
37
+ replaced: text.replace(/\{\{(\w+(?:\.\w+)*)\}\}/g, (match, key) => {
38
+ return key;
39
+ }),
40
+ original: text
41
+ };
42
+ }
43
+ /**
44
+ * Interpolate variables in text using {{variable}} syntax
45
+ * Supports nested object paths (e.g., inventory_level.id)
46
+ *
47
+ * @param text - Text with {{variable}} placeholders
48
+ * @param data - Data object for interpolation
49
+ * @returns Interpolated text
50
+ */
51
+ function interpolate(text, data = {}) {
52
+ if (!text || typeof text !== "string") {
53
+ return text;
54
+ }
55
+ const { replaced, original } = getVariableValue(text);
56
+ const value = (0, index_1.pickValueFromObject)(replaced, data);
57
+ return value !== undefined && value !== null
58
+ ? String(value)
59
+ : original;
60
+ }
61
+ /**
62
+ * Group interpolate - handles variables with prefixes (data. or translations.)
63
+ *
64
+ * Variables with prefix `data.` are resolved using interpolate function
65
+ * Variables with prefix `translations.` are resolved using translator.single
66
+ *
67
+ * @param text - Text with {{data.variable}} and {{translations.key}} placeholders
68
+ * @param data - Data object for interpolation
69
+ * @param translator - Translator instance with single method
70
+ * @returns Interpolated text with all variables resolved
71
+ *
72
+ * @example
73
+ * multiInterpolate(
74
+ * "Order {{data.order.id}} - {{translations.headerTitle}}",
75
+ * { order: { id: "123" } },
76
+ * translator
77
+ * )
78
+ * // Returns: "Order 123 - Order Confirmation"
79
+ */
80
+ function multiInterpolate(text, data = {}, translator, config) {
81
+ if (!text || typeof text !== "string") {
82
+ return text;
83
+ }
84
+ // Find all variables in format {{...}}
85
+ const variableRegex = /\{\{((?:data\.|translations\.)?\w+(?:\.\w+)*)\}\}/g;
86
+ const matches = Array.from(text.matchAll(variableRegex));
87
+ if (matches.length === 0) {
88
+ return text;
89
+ }
90
+ // Build dynamic data prefix array (e.g., ["data"] or ["data", "items"])
91
+ const dataPrefix = config?.arrayPath
92
+ ? ["data", config.arrayPath]
93
+ : ["data"];
94
+ const dataPrefixString = dataPrefix.join(".");
95
+ // Process each variable separately
96
+ let result = text;
97
+ for (const match of matches) {
98
+ const fullMatch = match[0]; // e.g., "{{data.order.id}}"
99
+ const variable = match[1]; // e.g., "data.order.id"
100
+ let replacement;
101
+ // Check if variable starts with dynamic data prefix
102
+ if (variable.startsWith(`${dataPrefixString}.`)) {
103
+ // Escape dots in prefix for regex
104
+ const escapedPrefix = dataPrefixString.replace(/\./g, '\\.');
105
+ const dataPath = variable.replace(new RegExp(`^${escapedPrefix}\\.`), "");
106
+ const value = (0, index_1.pickValueFromObject)(dataPath, data);
107
+ // Convert value to string, preserving false as "false" and true as "true"
108
+ // String(false) = "false", String(true) = "true", String(0) = "0", etc.
109
+ if (value === undefined || value === null) {
110
+ replacement = undefined;
111
+ }
112
+ else {
113
+ replacement = String(value);
114
+ }
115
+ }
116
+ // Check if variable starts with translations. prefix
117
+ else if (variable.startsWith("translations.")) {
118
+ // Remove "translations." prefix and use translator.single
119
+ const translationKey = variable.replace(/^translations\./, "");
120
+ replacement = translator.t(translationKey, data);
121
+ replacement = multiInterpolate(replacement, data, translator);
122
+ }
123
+ // Replace the variable in text if we found a replacement
124
+ if (replacement !== undefined) {
125
+ result = result.replace(fullMatch, replacement);
126
+ }
127
+ }
128
+ return result;
129
+ }
130
+ /**
131
+ * Simple translation function
132
+ *
133
+ * @param locale - Target locale (e.g., 'pl', 'en')
134
+ * @param translations - Record of translations by locale
135
+ * @param key - Translation key (supports dot notation: "labels.inventoryLevelId")
136
+ * @param data - Data for interpolation
137
+ * @returns Translated and interpolated text
138
+ */
139
+ function t(locale, translations, key) {
140
+ // Get translations for locale with fallback to 'pl'
141
+ const localeTranslations = translations[locale] || translations["pl"] || {};
142
+ // Flatten translations structure
143
+ const flatTranslations = flattenTranslations(localeTranslations);
144
+ const { replaced, original } = getVariableValue(key);
145
+ // Get translation value (supports nested keys)
146
+ const translation = (0, index_1.pickValueFromObject)(replaced, flatTranslations);
147
+ // Use key as fallback if translation not found
148
+ const text = translation || original;
149
+ return text;
150
+ }
151
+ /**
152
+ * Create a translator function
153
+ *
154
+ * @param locale - Target locale (e.g., 'pl', 'en')
155
+ * @param translations - Record of translations by locale
156
+ * @returns Translator function that takes (key, data?) and returns translated string
157
+ */
158
+ function createTranslator(locale, translations) {
159
+ return {
160
+ t: (key, data = {}) => {
161
+ return t(locale, translations, key);
162
+ }
163
+ };
164
+ }
165
+ /**
166
+ * Merge custom translations with base translations
167
+ * Custom translations override base translations
168
+ *
169
+ * @param baseTranslations - Base translations object
170
+ * @param customTranslations - Custom translations to merge (optional)
171
+ * @returns Merged translations object
172
+ */
173
+ function mergeTranslations(baseTranslations, customTranslations) {
174
+ if (!customTranslations ||
175
+ !(0, index_1.isObject)(customTranslations)) {
176
+ return baseTranslations;
177
+ }
178
+ const merged = {
179
+ ...baseTranslations,
180
+ };
181
+ for (const [lang, custom] of Object.entries(customTranslations)) {
182
+ if ((0, index_1.isObject)(custom)) {
183
+ merged[lang] = {
184
+ ...baseTranslations[lang],
185
+ general: {
186
+ ...(baseTranslations[lang]?.general || {}),
187
+ ...(custom?.general || custom),
188
+ },
189
+ };
190
+ }
191
+ }
192
+ return merged;
193
+ }
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy91dGlscy9pMThuL2kxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE4QkEsNENBZ0JDO0FBVUQsa0NBY0M7QUFxQkQsNENBOERDO0FBV0QsY0F1QkM7QUFTRCw0Q0FTQztBQVVELDhDQThCQztBQXJQRCxvQ0FHaUI7QUFFakI7OztHQUdHO0FBRUg7Ozs7OztHQU1HO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxZQUFpQjtJQUM1QyxJQUFJLENBQUMsSUFBQSxnQkFBUSxFQUFDLFlBQVksQ0FBQyxJQUFJLENBQUUsWUFBb0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5RCxPQUFPLFlBQVksQ0FBQTtJQUNyQixDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxZQUFtQixDQUFBO0lBQ2hELE9BQU8sRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxDQUFBO0FBQ2hDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGdCQUFnQixDQUM5QixJQUFZO0lBRVosSUFBSSxDQUFDLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUN0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUE7SUFDM0MsQ0FBQztJQUVELE9BQU87UUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FDcEIsMEJBQTBCLEVBQzFCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ2IsT0FBTyxHQUFHLENBQUE7UUFDWixDQUFDLENBQ0Y7UUFDRCxRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUE7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLFdBQVcsQ0FDekIsSUFBWSxFQUNaLE9BQTRCLEVBQUU7SUFFOUIs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
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./i18n"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdXRpbHMvaTE4bi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXNCIn0=
@@ -18,4 +18,8 @@ __exportStar(require("./date"), exports);
18
18
  __exportStar(require("./addresses"), exports);
19
19
  __exportStar(require("./money-amount-helpers"), exports);
20
20
  __exportStar(require("./payment"), exports);
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUF1QjtBQUN2Qiw4Q0FBNEI7QUFDNUIseURBQXVDO0FBQ3ZDLDRDQUEwQiJ9
21
+ __exportStar(require("./pick-value-from-object"), exports);
22
+ __exportStar(require("./is-defined"), exports);
23
+ __exportStar(require("./is-object"), exports);
24
+ __exportStar(require("./i18n/i18n"), exports);
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUF1QjtBQUN2Qiw4Q0FBNEI7QUFDNUIseURBQXVDO0FBQ3ZDLDRDQUEwQjtBQUMxQiwyREFBeUM7QUFDekMsK0NBQTZCO0FBQzdCLDhDQUE0QjtBQUM1Qiw4Q0FBNEIifQ==
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isDefined = isDefined;
4
+ function isDefined(val) {
5
+ return typeof val !== "undefined";
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZGVmaW5lZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy9pcy1kZWZpbmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsOEJBSUM7QUFKRCxTQUFnQixTQUFTLENBQ3ZCLEdBQU07SUFFTixPQUFPLE9BQU8sR0FBRyxLQUFLLFdBQVcsQ0FBQTtBQUNuQyxDQUFDIn0=
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isObject = isObject;
4
+ function isObject(obj) {
5
+ return obj != null && obj?.constructor?.name === "Object";
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtb2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL2lzLW9iamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRCQUVDO0FBRkQsU0FBZ0IsUUFBUSxDQUFDLEdBQVE7SUFDL0IsT0FBTyxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxXQUFXLEVBQUUsSUFBSSxLQUFLLFFBQVEsQ0FBQTtBQUMzRCxDQUFDIn0=
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pickValueFromObject = pickValueFromObject;
4
+ const is_defined_1 = require("./is-defined");
5
+ const is_object_1 = require("./is-object");
6
+ function pickValueFromObject(path, object) {
7
+ const segments = path.split(".");
8
+ let result = object;
9
+ for (let i = 0; i < segments.length; i++) {
10
+ const segment = segments[i];
11
+ result = result[segment];
12
+ if (!(0, is_defined_1.isDefined)(result)) {
13
+ return;
14
+ }
15
+ if (i === segments.length - 1) {
16
+ return result;
17
+ }
18
+ if (Array.isArray(result)) {
19
+ const subPath = segments.slice(i + 1).join(".");
20
+ return result.map((item) => pickValueFromObject(subPath, item)).flat();
21
+ }
22
+ if (!(0, is_object_1.isObject)(result)) {
23
+ return result;
24
+ }
25
+ }
26
+ return result;
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGljay12YWx1ZS1mcm9tLW9iamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy9waWNrLXZhbHVlLWZyb20tb2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0Esa0RBOEJDO0FBakNELDZDQUF3QztBQUN4QywyQ0FBc0M7QUFFdEMsU0FBZ0IsbUJBQW1CLENBQ2pDLElBQVksRUFDWixNQUF3QjtJQUV4QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2hDLElBQUksTUFBTSxHQUFRLE1BQU0sQ0FBQTtJQUV4QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMzQixNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRXhCLElBQUksQ0FBQyxJQUFBLHNCQUFTLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFNO1FBQ1IsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxNQUFNLENBQUE7UUFDZixDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQy9DLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDeEUsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFBLG9CQUFRLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN0QixPQUFPLE1BQU0sQ0FBQTtRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codee-sh/medusa-plugin-notification-emails",
3
- "version": "0.0.2",
3
+ "version": "0.1.0",
4
4
  "description": "Medusa plugin for notifications emails.",
5
5
  "author": "Codee Team (https://codee.dev)",
6
6
  "license": "MIT",
@@ -40,15 +40,22 @@
40
40
  "prepublishOnly": "medusa plugin:build",
41
41
  "publish-local": "npx medusa plugin:publish",
42
42
  "publish-package": "dotenv npm publish --access public",
43
- "email:dev": "email dev --dir emails-previews"
43
+ "email:dev": "email dev --dir emails-previews",
44
+ "format": "prettier --write \"src/**/*.{ts,tsx}\"",
45
+ "format:check": "prettier --check \"src/**/*.{ts,tsx}\"",
46
+ "changeset": "changeset",
47
+ "version": "changeset version",
48
+ "release": "changeset publish",
49
+ "release:manual": "npm run build && npm publish --access public"
44
50
  },
45
51
  "dependencies": {
46
- "@react-email/components": "^0.3.3",
47
- "@react-email/preview-server": "^4.2.5",
48
- "@react-email/render": "^1.1.4",
49
- "react-email": "^4.2.5"
52
+ "@react-email/components": "^0.5.7",
53
+ "@react-email/preview-server": "^4.3.1",
54
+ "@react-email/render": "^1.4.0",
55
+ "react-email": "^4.3.1"
50
56
  },
51
57
  "devDependencies": {
58
+ "@changesets/cli": "^2.29.8",
52
59
  "@medusajs/admin-sdk": "2.8.8",
53
60
  "@medusajs/cli": "2.8.8",
54
61
  "@medusajs/framework": "2.8.8",
@@ -60,20 +67,20 @@
60
67
  "@mikro-orm/knex": "6.4.3",
61
68
  "@mikro-orm/migrations": "6.4.3",
62
69
  "@mikro-orm/postgresql": "6.4.3",
63
- "@react-email/components": "^0.3.3",
64
- "@react-email/preview-server": "^4.2.5",
65
- "@react-email/render": "^1.1.4",
70
+ "@react-email/components": "^0.5.7",
71
+ "@react-email/preview-server": "^4.3.1",
72
+ "@react-email/render": "^1.4.0",
66
73
  "@swc/core": "1.5.7",
67
74
  "@types/node": "^20.0.0",
68
75
  "@types/react": "^18.3.2",
69
76
  "@types/react-dom": "^18.2.25",
70
- "react-i18next": "^15.0.0",
71
77
  "awilix": "^8.0.1",
72
78
  "dotenv": "^17.2.3",
73
79
  "prop-types": "^15.8.1",
74
80
  "react": "^18.2.0",
75
81
  "react-dom": "^18.2.0",
76
- "react-email": "^4.2.5",
82
+ "react-email": "^4.3.1",
83
+ "react-i18next": "^15.0.0",
77
84
  "ts-node": "^10.9.2",
78
85
  "typescript": "^5.6.2",
79
86
  "vite": "^5.2.11",
@@ -1,28 +0,0 @@
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 utils_1 = require("../../shared/utils");
10
- function renderHTMLReact(data, options) {
11
- const theme = options.theme || {};
12
- const i18n = options.i18n;
13
- if (!i18n) {
14
- throw new Error("i18n is required in options. It should be provided by renderTemplate.");
15
- }
16
- 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: {
17
- presets: [components_1.pixelBasedPreset],
18
- theme: theme
19
- }, 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.jsxs)(components_1.Container, { children: [(0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsx)(components_1.Heading, { className: "text-xl text-center font-bold mb-4", children: i18n.t('headerTitle', data) }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.name', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.name) })] }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.email', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.email) })] }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), data.phone && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.phone', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.phone) })] }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" })] })), (0, jsx_runtime_1.jsxs)(components_1.Section, { children: [(0, jsx_runtime_1.jsx)(components_1.Text, { className: "font-semibold m-0 p-0", children: i18n.t('labels.message', data) }), (0, jsx_runtime_1.jsx)(components_1.Text, { className: "m-0 p-0", children: (0, utils_1.escapeHtml)(data.message) })] }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsx)(components_1.Text, { className: "text-sm text-ui-text text-center", children: i18n.t('footer', data) }) })] }) }) })] }));
20
- }
21
- async function renderHTML(data, options) {
22
- return await (0, render_1.pretty)(await (0, render_1.render)(renderHTMLReact(data, options)));
23
- }
24
- async function renderText(data, options) {
25
- const html = await (0, render_1.render)(renderHTMLReact(data, options));
26
- return (0, render_1.toPlainText)(html);
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9jb250YWN0LWZvcm0vdGVtcGxhdGUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsMENBa0ZDO0FBRUQsZ0NBS0M7QUFFRCxnQ0FNQzs7QUF2R0Qsd0RBQTJJO0FBQzNJLGdEQUFrRTtBQUdsRSw4Q0FBZ0Q7QUFFaEQsU0FBZ0IsZUFBZSxDQUM3QixJQUFpQyxFQUNqQyxPQUE0QjtJQUU1QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBRTFCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsdUVBQXVFLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsT0FBTyxDQUNMLHdCQUFDLGlCQUFJLGVBQ0gsdUJBQUMsaUJBQUksS0FBRyxFQUNSLHVCQUFDLHFCQUFRLElBQ1AsTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRSxDQUFDLDZCQUFnQixDQUFDO29CQUMzQixLQUFLLEVBQUUsS0FBSztpQkFDYixZQUVELHVCQUFDLGlCQUFJLElBQUMsU0FBUyxFQUFDLDZFQUE2RSxZQUMzRix3QkFBQyxzQkFBUyxlQUNSLHVCQUFDLG9CQUFPLGNBQ04sdUJBQUMsb0JBQU8sSUFBQyxTQUFTLEVBQUMsb0NBQW9DLFlBQ3BELElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUNwQixHQUNGLEVBRVYsdUJBQUMsZUFBRSxJQUFDLFNBQVMsRUFBQyx1QkFBdUIsR0FBRyxFQUd4Qyx1QkFBQyxvQkFBTyxjQUNOLHdCQUFDLGdCQUFHLGVBQ0YsdUJBQUMsbUJBQU0sSUFBQyxTQUFTLEVBQUMsZUFBZSxZQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUFVLEVBQ3hFLHVCQUFDLG1CQUFNLElBQUMsU0FBUyxFQUFDLFlBQVksWUFBRSxJQUFBLGtCQUFVLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFVLElBQzNELEdBQ0UsRUFFVix1QkFBQyxlQUFFLElBQUMsU0FBUyxFQUFDLHVCQUF1QixHQUFHLEVBR3hDLHVCQUFDLG9CQUFPLGNBQ04sd0JBQUMsZ0JBQUcsZUFDRix1QkFBQyxtQkFBTSxJQUFDLFNBQVMsRUFBQyxlQUFlLFlBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEdBQVUsRUFDekUsdUJBQUMsbUJBQU0sSUFBQyxTQUFTLEVBQUMsWUFBWSxZQUFFLElBQUEsa0JBQVUsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQVUsSUFDNUQsR0FDRSxFQUVWLHVCQUFDLGVBQUUsSUFBQyxTQUFTLEVBQUMsdUJBQXVCLEdBQUcsRUFHdkMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUNiLDZEQUNFLHVCQUFDLG9CQUFPLGNBQ04sd0JBQUMsZ0JBQUcsZUFDRix1QkFBQyxtQkFBTSxJQUFDLFNBQVMsRUFBQyxlQUFlLFlBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEdBQVUsRUFDekUsdUJBQUMsbUJBQU0sSUFBQyxTQUFTLEVBQUMsWUFBWSxZQUFFLElBQUEsa0JBQVUsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQVUsSUFDNUQsR0FDRSxFQUNWLHVCQUFDLGVBQUUsSUFBQyxTQUFTLEVBQUMsdUJBQXVCLEdBQUcsSUFDdkMsQ0FDSixFQUdELHdCQUFDLG9CQUFPLGVBQ04sdUJBQUMsaUJBQUksSUFBQyxTQUFTLEVBQUMsdUJBQXVCLFlBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsR0FBUSxFQUMvRSx1QkFBQyxpQkFBSSxJQUFDLFNBQVMsRUFBQyxTQUFTLFlBQUUsSUFBQSxrQkFBVSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBUSxJQUNuRCxFQUVWLHVCQUFDLGVBQUUsSUFBQyxTQUFTLEVBQUMsdUJBQXVCLEdBQUcsRUFHeEMsdUJBQUMsb0JBQU8sY0FDTix1QkFBQyxpQkFBSSxJQUFDLFNBQVMsRUFBQyxrQ0FBa0MsWUFDL0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQ2xCLEdBQ0MsSUFDQSxHQUNQLEdBQ0UsSUFDTixDQUNSLENBQUM7QUFDSixDQUFDO0FBRU0sS0FBSyxVQUFVLFVBQVUsQ0FDOUIsSUFBaUMsRUFDakMsT0FBNEI7SUFFNUIsT0FBTyxNQUFNLElBQUEsZUFBTSxFQUFDLE1BQU0sSUFBQSxlQUFNLEVBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUVNLEtBQUssVUFBVSxVQUFVLENBQzlCLElBQWlDLEVBQ2pDLE9BQTRCO0lBRTVCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxlQUFNLEVBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzFELE9BQU8sSUFBQSxvQkFBVyxFQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNCLENBQUMifQ==
@@ -1,15 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.en = exports.pl = exports.translations = void 0;
7
- const pl_json_1 = __importDefault(require("./pl.json"));
8
- exports.pl = pl_json_1.default;
9
- const en_json_1 = __importDefault(require("./en.json"));
10
- exports.en = en_json_1.default;
11
- exports.translations = {
12
- pl: pl_json_1.default,
13
- en: en_json_1.default,
14
- };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9jb250YWN0LWZvcm0vdHJhbnNsYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHdEQUEyQjtBQVFsQixhQVJGLGlCQUFFLENBUUU7QUFQWCx3REFBMkI7QUFPZCxhQVBOLGlCQUFFLENBT007QUFMRixRQUFBLFlBQVksR0FBcUI7SUFDNUMsRUFBRSxFQUFFLGlCQUFFO0lBQ04sRUFBRSxFQUFFLGlCQUFFO0NBQ1AsQ0FBQyJ9
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9jb250YWN0LWZvcm0vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -1,28 +0,0 @@
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 utils_1 = require("../../shared/utils");
10
- function renderHTMLReact(data, options) {
11
- const theme = options.theme || {};
12
- const i18n = options.i18n;
13
- if (!i18n) {
14
- throw new Error("i18n is required in options. It should be provided by renderTemplate.");
15
- }
16
- 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: {
17
- presets: [components_1.pixelBasedPreset],
18
- theme: theme
19
- }, 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.jsxs)(components_1.Container, { children: [(0, jsx_runtime_1.jsxs)(components_1.Section, { children: [(0, jsx_runtime_1.jsx)(components_1.Heading, { className: "text-xl text-center font-bold mb-4", children: i18n.t('headerTitle', data) }), (0, jsx_runtime_1.jsx)(components_1.Text, { className: "text-center mb-4", children: i18n.t('headerDescription', data) })] }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.inventoryLevelId', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.inventory_level.id) })] }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.inventoryLevelLocation', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.inventory_level.location_id) })] }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.inventoryLevelStockedQuantity', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.inventory_level.stocked_quantity) })] }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.inventoryLevelReservedQuantity', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.inventory_level.reserved_quantity) })] }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.inventoryLevelAvailableQuantity', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.inventory_level.available_quantity) })] }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsx)(components_1.Text, { className: "text-sm text-gray-600 text-center", children: i18n.t('footer', data) }) })] }) }) })] }));
20
- }
21
- async function renderHTML(data, options) {
22
- return await (0, render_1.pretty)(await (0, render_1.render)(renderHTMLReact(data, options)));
23
- }
24
- async function renderText(data, options) {
25
- const html = await (0, render_1.render)(renderHTMLReact(data, options));
26
- return (0, render_1.toPlainText)(html);
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9pbnZlbnRvcnktbGV2ZWwvdGVtcGxhdGUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsMENBOEZDO0FBRUQsZ0NBS0M7QUFFRCxnQ0FNQzs7QUFuSEQsd0RBQW1KO0FBQ25KLGdEQUFrRTtBQUdsRSw4Q0FBZ0Q7QUFFaEQsU0FBZ0IsZUFBZSxDQUM3QixJQUFvQyxFQUNwQyxPQUE0QjtJQUU1QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBRTFCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsdUVBQXVFLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsT0FBTyxDQUNMLHdCQUFDLGlCQUFJLGVBQ0gsdUJBQUMsaUJBQUksS0FBRyxFQUNSLHVCQUFDLHFCQUFRLElBQ1AsTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRSxDQUFDLDZCQUFnQixDQUFDO29CQUMzQixLQUFLLEVBQUUsS0FBSztpQkFDYixZQUVELHVCQUFDLGlCQUFJLElBQUMsU0FBUyxFQUFDLDZFQUE2RSxZQUMzRix3QkFBQyxzQkFBUyxlQUNSLHdCQUFDLG9CQUFPLGVBQ04sdUJBQUMsb0JBQU8sSUFBQyxTQUFTLEVBQUMsb0NBQW9DLFlBQ3BELElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUNwQixFQUNWLHVCQUFDLGlCQUFJLElBQUMsU0FBUyxFQUFDLGtCQUFrQixZQUMvQixJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxHQUM3QixJQUNDLEVBRVYsdUJBQUMsZUFBRSxJQUFDLFNBQVMsRUFBQyx1QkFBdUIsR0FBRyxFQUd4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
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9pbnZlbnRvcnktbGV2ZWwvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -1,36 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.renderHTMLReact = renderHTMLReact;
7
- exports.renderHTML = renderHTML;
8
- exports.renderText = renderText;
9
- const jsx_runtime_1 = require("react/jsx-runtime");
10
- const react_1 = __importDefault(require("react"));
11
- const components_1 = require("@react-email/components");
12
- const render_1 = require("@react-email/render");
13
- const utils_1 = require("../../shared/utils");
14
- function renderHTMLReact(data, options) {
15
- const theme = options.theme || {};
16
- const i18n = options.i18n;
17
- if (!i18n) {
18
- throw new Error("i18n is required in options. It should be provided by renderTemplate.");
19
- }
20
- // Prepare items list
21
- const itemsList = data.items.map((item) => `${(0, utils_1.escapeHtml)(item.title)} - ${item.quantity}x ${(0, utils_1.escapeHtml)(item.price)}`);
22
- 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: {
23
- presets: [components_1.pixelBasedPreset],
24
- theme: theme
25
- }, 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.jsxs)(components_1.Container, { children: [(0, jsx_runtime_1.jsxs)(components_1.Section, { children: [(0, jsx_runtime_1.jsx)(components_1.Heading, { className: "text-xl text-center font-bold mb-4", children: i18n.t('headerTitle', data) }), (0, jsx_runtime_1.jsx)(components_1.Text, { className: "text-center mb-4", children: i18n.t('headerDescription', data) })] }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.salesChannel', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.sales_channel.name) })] }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.orderNumber', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.orderNumber) })] }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.orderDate', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.orderDate) })] }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.completedDate', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.completedDate) })] }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsxs)(components_1.Section, { className: "p-0", children: [(0, jsx_runtime_1.jsx)(components_1.Text, { className: "font-semibold m-0 p-0", children: i18n.t('labels.products', data) }), (0, jsx_runtime_1.jsx)(components_1.Text, { className: "m-0 p-0", children: itemsList.map((item, index) => ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [item, index < itemsList.length - 1 && (0, jsx_runtime_1.jsx)("br", {})] }, index))) })] }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsxs)(components_1.Section, { children: [(0, jsx_runtime_1.jsx)(components_1.Text, { className: "font-semibold m-0 p-0", children: i18n.t('labels.shippingAddress', data) }), (0, jsx_runtime_1.jsx)(components_1.Text, { className: "m-0 p-0", dangerouslySetInnerHTML: {
26
- __html: data?.shippingAddress || i18n.noData
27
- } })] }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsxs)(components_1.Section, { className: "bg-gray-50 p-4 rounded", children: [(0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.discountTotal', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.summary.discount_total) })] }), (0, jsx_runtime_1.jsxs)(components_1.Row, { className: "mt-2", children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.orderTotal', data) }), (0, jsx_runtime_1.jsxs)(components_1.Column, { className: "text-right", children: [(0, utils_1.escapeHtml)(data.summary.total), " ", (0, utils_1.escapeHtml)(data.summary.currency_code)] })] }), (0, jsx_runtime_1.jsxs)(components_1.Row, { className: "mt-2", children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.paidTotal', data) }), (0, jsx_runtime_1.jsxs)(components_1.Column, { className: "text-right", children: [(0, utils_1.escapeHtml)(data.summary.paid_total), " ", (0, utils_1.escapeHtml)(data.summary.currency_code)] })] }), (0, jsx_runtime_1.jsxs)(components_1.Row, { className: "mt-2", children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.taxTotal', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.summary.tax_total) })] })] }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), data.orderUrl && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(components_1.Section, { className: "text-center", children: (0, jsx_runtime_1.jsx)(components_1.Button, { href: data.orderUrl, className: "bg-ui-button text-ui-button-text py-3 px-8 inline-block rounded", children: i18n.t('viewOrderButton', data) }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" })] })), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsx)(components_1.Text, { className: "text-sm text-gray-600 text-center", children: i18n.t('footer', data) }) })] }) }) })] }));
28
- }
29
- async function renderHTML(data, options) {
30
- return await (0, render_1.pretty)(await (0, render_1.render)(renderHTMLReact(data, options)));
31
- }
32
- async function renderText(data, options) {
33
- const html = await (0, render_1.render)(renderHTMLReact(data, options));
34
- return (0, render_1.toPlainText)(html);
35
- }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9vcmRlci1jb21wbGV0ZWQvdGVtcGxhdGUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBT0EsMENBZ0tDO0FBRUQsZ0NBS0M7QUFFRCxnQ0FNQzs7QUF0TEQsa0RBQTBCO0FBQzFCLHdEQUFtSjtBQUNuSixnREFBa0U7QUFHbEUsOENBQWdEO0FBRWhELFNBQWdCLGVBQWUsQ0FDN0IsSUFBb0MsRUFDcEMsT0FBNEI7SUFFNUIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDbEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUUxQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHVFQUF1RSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELHFCQUFxQjtJQUNyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDOUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBQSxrQkFBVSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUEsa0JBQVUsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDcEYsQ0FBQztJQUVGLE9BQU8sQ0FDTCx3QkFBQyxpQkFBSSxlQUNILHVCQUFDLGlCQUFJLEtBQUcsRUFDUix1QkFBQyxxQkFBUSxJQUNQLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsQ0FBQyw2QkFBZ0IsQ0FBQztvQkFDM0IsS0FBSyxFQUFFLEtBQUs7aUJBQ2IsWUFFRCx1QkFBQyxpQkFBSSxJQUFDLFNBQVMsRUFBQyw2RUFBNkUsWUFDM0Ysd0JBQUMsc0JBQVMsZUFDUix3QkFBQyxvQkFBTyxlQUNOLHVCQUFDLG9CQUFPLElBQUMsU0FBUyxFQUFDLG9DQUFvQyxZQUNwRCxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsR0FDcEIsRUFDVix1QkFBQyxpQkFBSSxJQUFDLFNBQVMsRUFBQyxrQkFBa0IsWUFDL0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsR0FDN0IsSUFDQyxFQUVWLHVCQUFDLGVBQUUsSUFBQyxTQUFTLEVBQUMsdUJBQXVCLEdBQUcsRUFHeEMsdUJBQUMsb0JBQU8sY0FDTix3QkFBQyxnQkFBRyxlQUNGLHVCQUFDLG1CQUFNLElBQUMsU0FBUyxFQUFDLGVBQWUsWUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxHQUFVLEVBQ2hGLHVCQUFDLG1CQUFNLElBQUMsU0FBUyxFQUFDLFlBQVksWUFBRSxJQUFBLGtCQUFVLEVBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBVSxJQUN6RSxHQUNFLEVBRVYsdUJBQUMsZUFBRSxJQUFDLFNBQVMsRUFBQyx1QkFBdUIsR0FBRyxFQUd4Qyx1QkFBQyxvQkFBTyxjQUNOLHdCQUFDLGdCQUFHLGVBQ0YsdUJBQUMsbUJBQU0sSUFBQyxTQUFTLEVBQUMsZUFBZSxZQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLEdBQVUsRUFDL0UsdUJBQUMsbUJBQU0sSUFBQyxTQUFTLEVBQUMsWUFBWSxZQUFFLElBQUEsa0JBQVUsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQVUsSUFDbEUsR0FDRSxFQUVWLHVCQUFDLGVBQUUsSUFBQyxTQUFTLEVBQUMsdUJBQXVCLEdBQUcsRUFHeEMsdUJBQUMsb0JBQU8sY0FDTix3QkFBQyxnQkFBRyxlQUNGLHVCQUFDLG1CQUFNLElBQUMsU0FBUyxFQUFDLGVBQWUsWUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxHQUFVLEVBQzdFLHVCQUFDLG1CQUFNLElBQUMsU0FBUyxFQUFDLFlBQVksWUFBRSxJQUFBLGtCQUFVLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFVLElBQ2hFLEdBQ0UsRUFFVix1QkFBQyxlQUFFLElBQUMsU0FBUyxFQUFDLHVCQUF1QixHQUFHLEVBR3hDLHVCQUFDLG9CQUFPLGNBQ04sd0JBQUMsZ0JBQUcsZUFDRix1QkFBQyxtQkFBTSxJQUFDLFNBQVMsRUFBQyxlQUFlLFlBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsR0FBVSxFQUNqRix1QkFBQyxtQkFBTSxJQUFDLFNBQVMsRUFBQyxZQUFZLFlBQUUsSUFBQSxrQkFBVSxFQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBVSxJQUNwRSxHQUNFLEVBRVYsdUJBQUMsZUFBRSxJQUFDLFNBQVMsRUFBQyx1QkFBdUIsR0FBRyxFQUd4Qyx3QkFBQyxvQkFBTyxJQUFDLFNBQVMsRUFBQyxLQUFLLGFBQ3RCLHVCQUFDLGlCQUFJLElBQUMsU0FBUyxFQUFDLHVCQUF1QixZQUNwQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxHQUMzQixFQUNQLHVCQUFDLGlCQUFJLElBQUMsU0FBUyxFQUFDLFNBQVMsWUFDdEIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQzlCLHdCQUFDLGVBQUssQ0FBQyxRQUFRLGVBQ1osSUFBSSxFQUNKLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxnQ0FBTSxLQUZwQixLQUFLLENBR1QsQ0FDbEIsQ0FBQyxHQUNHLElBQ0MsRUFFVix1QkFBQyxlQUFFLElBQUMsU0FBUyxFQUFDLHVCQUF1QixHQUFHLEVBR3hDLHdCQUFDLG9CQUFPLGVBQ04sdUJBQUMsaUJBQUksSUFBQyxTQUFTLEVBQUMsdUJBQXVCLFlBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsR0FBUSxFQUN2Rix1QkFBQyxpQkFBSSxJQUNILFNBQVMsRUFBQyxTQUFTLEVBQ25CLHVCQUF1QixFQUFFOzRDQUN2QixNQUFNLEVBQUUsSUFBSSxFQUFFLGVBQWUsSUFBSSxJQUFJLENBQUMsTUFBTTt5Q0FDN0MsR0FDRCxJQUNNLEVBRVYsdUJBQUMsZUFBRSxJQUFDLFNBQVMsRUFBQyx1QkFBdUIsR0FBRyxFQUd4Qyx3QkFBQyxvQkFBTyxJQUFDLFNBQVMsRUFBQyx3QkFBd0IsYUFDekMsd0JBQUMsZ0JBQUcsZUFDRix1QkFBQyxtQkFBTSxJQUFDLFNBQVMsRUFBQyxlQUFlLFlBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsR0FBVSxFQUNqRix1QkFBQyxtQkFBTSxJQUFDLFNBQVMsRUFBQyxZQUFZLFlBQUUsSUFBQSxrQkFBVSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQVUsSUFDN0UsRUFDTix3QkFBQyxnQkFBRyxJQUFDLFNBQVMsRUFBQyxNQUFNLGFBQ25CLHVCQUFDLG1CQUFNLElBQUMsU0FBUyxFQUFDLGVBQWUsWUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxHQUFVLEVBQzlFLHdCQUFDLG1CQUFNLElBQUMsU0FBUyxFQUFDLFlBQVksYUFDM0IsSUFBQSxrQkFBVSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQUcsSUFBQSxrQkFBVSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQ2pFLElBQ0wsRUFDTix3QkFBQyxnQkFBRyxJQUFDLFNBQVMsRUFBQyxNQUFNLGFBQ2YsdUJBQUMsbUJBQU0sSUFBQyxTQUFTLEVBQUMsZUFBZSxZQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEdBQVUsRUFDakYsd0JBQUMsbUJBQU0sSUFBQyxTQUFTLEVBQUMsWUFBWSxhQUMzQixJQUFBLGtCQUFVLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBRyxJQUFBLGtCQUFVLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFDdEUsSUFDTCxFQUNOLHdCQUFDLGdCQUFHLElBQUMsU0FBUyxFQUFDLE1BQU0sYUFDbkIsdUJBQUMsbUJBQU0sSUFBQyxTQUFTLEVBQUMsZUFBZSxZQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEdBQVUsRUFDNUUsdUJBQUMsbUJBQU0sSUFBQyxTQUFTLEVBQUMsWUFBWSxZQUFFLElBQUEsa0JBQVUsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFVLElBQ3hFLElBQ0UsRUFFVix1QkFBQyxlQUFFLElBQUMsU0FBUyxFQUFDLHVCQUF1QixHQUFHLEVBR3ZDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FDaEIsNkRBQ0UsdUJBQUMsb0JBQU8sSUFBQyxTQUFTLEVBQUMsYUFBYSxZQUM5Qix1QkFBQyxtQkFBTSxJQUNMLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUNuQixTQUFTLEVBQUMsaUVBQWlFLFlBRTFFLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEdBQ3pCLEdBQ0QsRUFDVix1QkFBQyxlQUFFLElBQUMsU0FBUyxFQUFDLHVCQUF1QixHQUFHLElBQ3ZDLENBQ0osRUFHRCx1QkFBQyxvQkFBTyxjQUNOLHVCQUFDLGlCQUFJLElBQUMsU0FBUyxFQUFDLG1DQUFtQyxZQUNoRCxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FDbEIsR0FDQyxJQUNBLEdBQ1AsR0FDRSxJQUNOLENBQ1IsQ0FBQztBQUNKLENBQUM7QUFFTSxLQUFLLFVBQVUsVUFBVSxDQUM5QixJQUFvQyxFQUNwQyxPQUE0QjtJQUU1QixPQUFPLE1BQU0sSUFBQSxlQUFNLEVBQUMsTUFBTSxJQUFBLGVBQU0sRUFBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRU0sS0FBSyxVQUFVLFVBQVUsQ0FDOUIsSUFBb0MsRUFDcEMsT0FBNEI7SUFFNUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLGVBQU0sRUFBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDMUQsT0FBTyxJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0IsQ0FBQyJ9
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9vcmRlci1jb21wbGV0ZWQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -1,36 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.renderHTMLReact = renderHTMLReact;
7
- exports.renderHTML = renderHTML;
8
- exports.renderText = renderText;
9
- const jsx_runtime_1 = require("react/jsx-runtime");
10
- const react_1 = __importDefault(require("react"));
11
- const components_1 = require("@react-email/components");
12
- const render_1 = require("@react-email/render");
13
- const utils_1 = require("../../shared/utils");
14
- function renderHTMLReact(data, options) {
15
- const theme = options.theme || {};
16
- const i18n = options.i18n;
17
- if (!i18n) {
18
- throw new Error("i18n is required in options. It should be provided by renderTemplate.");
19
- }
20
- // Prepare items list
21
- const itemsList = data.items.map((item) => `${(0, utils_1.escapeHtml)(item.title)} - ${item.quantity}x ${(0, utils_1.escapeHtml)(item.price)}`);
22
- 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: {
23
- presets: [components_1.pixelBasedPreset],
24
- theme: theme
25
- }, 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.jsxs)(components_1.Container, { children: [(0, jsx_runtime_1.jsxs)(components_1.Section, { children: [(0, jsx_runtime_1.jsx)(components_1.Heading, { className: "text-xl text-center font-bold mb-4", children: i18n.t('headerTitle', data) }), (0, jsx_runtime_1.jsx)(components_1.Text, { className: "text-center mb-4", children: i18n.t('headerDescription', data) })] }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.salesChannel', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.sales_channel.name) })] }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.orderNumber', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.orderNumber) })] }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.orderDate', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.orderDate) })] }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsxs)(components_1.Section, { className: "p-0", children: [(0, jsx_runtime_1.jsx)(components_1.Text, { className: "font-semibold m-0 p-0", children: i18n.t('labels.products', data) }), (0, jsx_runtime_1.jsx)(components_1.Text, { className: "m-0 p-0", children: itemsList.map((item, index) => ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [item, index < itemsList.length - 1 && (0, jsx_runtime_1.jsx)("br", {})] }, index))) })] }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsxs)(components_1.Section, { children: [(0, jsx_runtime_1.jsx)(components_1.Text, { className: "font-semibold m-0 p-0", children: i18n.t('labels.shippingAddress', data) }), (0, jsx_runtime_1.jsx)(components_1.Text, { className: "m-0 p-0", dangerouslySetInnerHTML: {
26
- __html: data?.shippingAddress || i18n.noData
27
- } })] }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), (0, jsx_runtime_1.jsxs)(components_1.Section, { className: "bg-gray-50 p-4 rounded", children: [(0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.discountTotal', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.summary.discount_total) })] }), (0, jsx_runtime_1.jsxs)(components_1.Row, { className: "mt-2", children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.orderTotal', data) }), (0, jsx_runtime_1.jsxs)(components_1.Column, { className: "text-right", children: [(0, utils_1.escapeHtml)(data.summary.total), " ", (0, utils_1.escapeHtml)(data.summary.currency_code)] })] }), (0, jsx_runtime_1.jsxs)(components_1.Row, { className: "mt-2", children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.paidTotal', data) }), (0, jsx_runtime_1.jsxs)(components_1.Column, { className: "text-right", children: [(0, utils_1.escapeHtml)(data.summary.paid_total), " ", (0, utils_1.escapeHtml)(data.summary.currency_code)] })] }), (0, jsx_runtime_1.jsxs)(components_1.Row, { className: "mt-2", children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: i18n.t('labels.taxTotal', data) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: (0, utils_1.escapeHtml)(data.summary.tax_total) })] })] }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }), data.orderUrl && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(components_1.Section, { className: "text-center", children: (0, jsx_runtime_1.jsx)(components_1.Button, { href: data.orderUrl, className: "bg-ui-button text-ui-button-text py-3 px-8 inline-block rounded", children: i18n.t('viewOrderButton', data) }) }), (0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" })] })), (0, jsx_runtime_1.jsx)(components_1.Section, { children: (0, jsx_runtime_1.jsx)(components_1.Text, { className: "text-sm text-gray-600 text-center", children: i18n.t('footer', data) }) })] }) }) })] }));
28
- }
29
- async function renderHTML(data, options) {
30
- return await (0, render_1.pretty)(await (0, render_1.render)(renderHTMLReact(data, options)));
31
- }
32
- async function renderText(data, options) {
33
- const html = await (0, render_1.render)(renderHTMLReact(data, options));
34
- return (0, render_1.toPlainText)(html);
35
- }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9vcmRlci1wbGFjZWQvdGVtcGxhdGUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBT0EsMENBc0pDO0FBRUQsZ0NBS0M7QUFFRCxnQ0FNQzs7QUE1S0Qsa0RBQTBCO0FBQzFCLHdEQUFtSjtBQUNuSixnREFBa0U7QUFHbEUsOENBQWdEO0FBRWhELFNBQWdCLGVBQWUsQ0FDN0IsSUFBa0MsRUFDbEMsT0FBNEI7SUFFNUIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDbEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUUxQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHVFQUF1RSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELHFCQUFxQjtJQUNyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDOUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBQSxrQkFBVSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUEsa0JBQVUsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDcEYsQ0FBQztJQUVGLE9BQU8sQ0FDTCx3QkFBQyxpQkFBSSxlQUNILHVCQUFDLGlCQUFJLEtBQUcsRUFDUix1QkFBQyxxQkFBUSxJQUNQLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsQ0FBQyw2QkFBZ0IsQ0FBQztvQkFDM0IsS0FBSyxFQUFFLEtBQUs7aUJBQ2IsWUFFRCx1QkFBQyxpQkFBSSxJQUFDLFNBQVMsRUFBQyw2RUFBNkUsWUFDM0Ysd0JBQUMsc0JBQVMsZUFDUix3QkFBQyxvQkFBTyxlQUNOLHVCQUFDLG9CQUFP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
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9vcmRlci1wbGFjZWQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTranslations = void 0;
4
- var utils_1 = require("./utils");
5
- Object.defineProperty(exports, "getTranslations", { enumerable: true, get: function () { return utils_1.getTranslations; } });
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL3NoYXJlZC9pMThuL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLGlDQUEwQztBQUFqQyx3R0FBQSxlQUFlLE9BQUEifQ==