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

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.
@@ -3,15 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TEMPLATES_NAMES = void 0;
4
4
  exports.getTemplate = getTemplate;
5
5
  exports.renderTemplate = renderTemplate;
6
+ const render_1 = require("@react-email/render");
6
7
  const index_1 = require("./contact-form/index");
7
8
  const index_2 = require("./order-placed/index");
8
9
  const index_3 = require("./order-completed/index");
10
+ const index_4 = require("./inventory-level/index");
9
11
  const types_1 = require("./types");
10
12
  Object.defineProperty(exports, "TEMPLATES_NAMES", { enumerable: true, get: function () { return types_1.TEMPLATES_NAMES; } });
11
13
  const i18n_1 = require("../shared/i18n");
12
14
  const translations_1 = require("./contact-form/translations");
13
15
  const translations_2 = require("./order-placed/translations");
14
16
  const translations_3 = require("./order-completed/translations");
17
+ const translations_4 = require("./inventory-level/translations");
15
18
  /**
16
19
  * Template translations registry mapping template names to their translations
17
20
  */
@@ -19,6 +22,7 @@ const templateTranslationsRegistry = {
19
22
  [types_1.TEMPLATES_NAMES.CONTACT_FORM]: translations_1.translations,
20
23
  [types_1.TEMPLATES_NAMES.ORDER_PLACED]: translations_2.translations,
21
24
  [types_1.TEMPLATES_NAMES.ORDER_COMPLETED]: translations_3.translations,
25
+ [types_1.TEMPLATES_NAMES.INVENTORY_LEVEL]: translations_4.translations,
22
26
  };
23
27
  /**
24
28
  * Template registry mapping template names to their renderers
@@ -48,6 +52,14 @@ const templateRegistry = {
48
52
  return await (0, index_3.getOrderCompletedText)(data, options);
49
53
  },
50
54
  },
55
+ [types_1.TEMPLATES_NAMES.INVENTORY_LEVEL]: {
56
+ getHtml: async (data, options) => {
57
+ return await (0, index_4.getInventoryLevelHtml)(data, options);
58
+ },
59
+ getText: async (data, options) => {
60
+ return await (0, index_4.getInventoryLevelText)(data, options);
61
+ },
62
+ },
51
63
  };
52
64
  /**
53
65
  * Get template renderer by template name
@@ -66,14 +78,57 @@ function getTemplate(templateName) {
66
78
  /**
67
79
  * Generate HTML and text for a template
68
80
  *
69
- * @param templateName - Name of the template
81
+ * @param templateName - Name of the template (optional if createTemplate is provided)
70
82
  * @param data - Template data
71
83
  * @param options - Optional theme and locale configuration
84
+ * @param createTemplate - Optional custom template function that takes data and options, returns React.ReactElement
72
85
  * @returns Object with html, text, and subject properties
73
86
  */
74
- async function renderTemplate(templateName, data, options) {
75
- const template = getTemplate(templateName);
87
+ async function renderTemplate(templateName, data, options, createTemplate) {
76
88
  const locale = options?.locale || "pl";
89
+ // If createTemplate is provided, use custom template
90
+ if (createTemplate) {
91
+ // Create basic i18n if not provided (for custom templates)
92
+ let i18n = options?.i18n;
93
+ if (!i18n) {
94
+ // Create a simple i18n object for custom templates
95
+ i18n = {
96
+ t: (key, data) => {
97
+ // Try to get from customTranslations if available
98
+ if (options?.customTranslations && templateName) {
99
+ const custom = options.customTranslations[templateName];
100
+ if (custom && custom[key]) {
101
+ return typeof custom[key] === 'function' ? custom[key](data) : custom[key];
102
+ }
103
+ }
104
+ // Fallback to key or empty string
105
+ return key;
106
+ }
107
+ };
108
+ }
109
+ // Pass processed i18n in options to render functions
110
+ const renderOptions = {
111
+ ...options,
112
+ i18n,
113
+ };
114
+ // Render React component to HTML
115
+ const reactNode = createTemplate(data, renderOptions);
116
+ const htmlRendered = await (0, render_1.render)(reactNode);
117
+ const html = await (0, render_1.pretty)(htmlRendered);
118
+ const text = (0, render_1.toPlainText)(htmlRendered);
119
+ // Get subject from i18n or use default
120
+ const subject = i18n.t("headerTitle", data) || "Email";
121
+ return {
122
+ html,
123
+ text,
124
+ subject,
125
+ };
126
+ }
127
+ // Original behavior: use template from registry
128
+ if (!templateName) {
129
+ throw new Error("Either templateName or createTemplate must be provided");
130
+ }
131
+ const template = getTemplate(templateName);
77
132
  // Get translations for this template
78
133
  const translations = templateTranslationsRegistry[templateName];
79
134
  if (!translations) {
@@ -95,4 +150,4 @@ async function renderTemplate(templateName, data, options) {
95
150
  subject,
96
151
  };
97
152
  }
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUErRUEsa0NBVUM7QUFVRCx3Q0FxQ0M7QUF2SUQsZ0RBQThFO0FBQzlFLGdEQUFnRjtBQUNoRixtREFBdUY7QUFDdkYsbUNBQTBDO0FBU2pDLGdHQVRBLHVCQUFlLE9BU0E7QUFSeEIseUNBQWlEO0FBQ2pELDhEQUFzRjtBQUN0Riw4REFBc0Y7QUFDdEYsaUVBQTRGO0FBaUI1Rjs7R0FFRztBQUNILE1BQU0sNEJBQTRCLEdBQThDO0lBQzlFLENBQUMsdUJBQWUsQ0FBQyxZQUFZLENBQUMsRUFBRSwyQkFBdUI7SUFDdkQsQ0FBQyx1QkFBZSxDQUFDLFlBQVksQ0FBQyxFQUFFLDJCQUF1QjtJQUN2RCxDQUFDLHVCQUFlLENBQUMsZUFBZSxDQUFDLEVBQUUsMkJBQTBCO0NBQzlELENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sZ0JBQWdCLEdBQTJDO0lBQy9ELENBQUMsdUJBQWUsQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUM5QixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQVMsRUFBRSxPQUE2QixFQUFtQixFQUFFO1lBQzNFLE9BQU8sTUFBTSxJQUFBLDBCQUFrQixFQUFDLElBQUksRUFBRSxPQUFjLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFTLEVBQUUsT0FBNkIsRUFBbUIsRUFBRTtZQUMzRSxPQUFPLE1BQU0sSUFBQSwwQkFBa0IsRUFBQyxJQUFJLEVBQUUsT0FBYyxDQUFDLENBQUM7UUFDeEQsQ0FBQztLQUNGO0lBQ0QsQ0FBQyx1QkFBZSxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQzlCLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBUyxFQUFFLE9BQTZCLEVBQW1CLEVBQUU7WUFDM0UsT0FBTyxNQUFNLElBQUEsMkJBQW1CLEVBQUMsSUFBSSxFQUFFLE9BQWMsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQVMsRUFBRSxPQUE2QixFQUFtQixFQUFFO1lBQzNFLE9BQU8sTUFBTSxJQUFBLDJCQUFtQixFQUFDLElBQUksRUFBRSxPQUFjLENBQUMsQ0FBQztRQUN6RCxDQUFDO0tBQ0Y7SUFDRCxDQUFDLHVCQUFlLENBQUMsZUFBZSxDQUFDLEVBQUU7UUFDakMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFTLEVBQUUsT0FBNkIsRUFBbUIsRUFBRTtZQUMzRSxPQUFPLE1BQU0sSUFBQSw2QkFBcUIsRUFBQyxJQUFJLEVBQUUsT0FBYyxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUNELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBUyxFQUFFLE9BQTZCLEVBQW1CLEVBQUU7WUFDM0UsT0FBTyxNQUFNLElBQUEsNkJBQXFCLEVBQUMsSUFBSSxFQUFFLE9BQWMsQ0FBQyxDQUFDO1FBQzNELENBQUM7S0FDRjtDQUNGLENBQUM7QUFVRjs7Ozs7O0dBTUc7QUFDSCxTQUFnQixXQUFXLENBQUMsWUFBaUI7SUFDM0MsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFaEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FDYixhQUFhLFlBQVkscUNBQXFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDekcsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNJLEtBQUssVUFBVSxjQUFjLENBQ2xDLFlBQTBCLEVBQzFCLElBQWtCLEVBQ2xCLE9BQW1DO0lBRW5DLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzQyxNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQztJQUV2QyxxQ0FBcUM7SUFDckMsTUFBTSxZQUFZLEdBQUcsNEJBQTRCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELDhDQUE4QztJQUM5QyxNQUFNLGtCQUFrQixHQUFHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sSUFBSSxHQUFHLElBQUEsc0JBQWUsRUFDMUIsTUFBTSxFQUNOLFlBQVksRUFDWixrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDakUsWUFBWSxDQUNiLENBQUM7SUFFRixnQ0FBZ0M7SUFDaEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFNUMscURBQXFEO0lBQ3JELE1BQU0sYUFBYSxHQUF3QjtRQUN6QyxHQUFHLE9BQU87UUFDVixJQUFJO0tBQ0wsQ0FBQztJQUVGLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUM7UUFDakQsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDO1FBQ2pELE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyJ9
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0RkEsa0NBVUM7QUFXRCx3Q0F1RkM7QUF2TUQsZ0RBQWtFO0FBRWxFLGdEQUE4RTtBQUM5RSxnREFBZ0Y7QUFDaEYsbURBQXVGO0FBQ3ZGLG1EQUF1RjtBQUN2RixtQ0FBMEM7QUFVakMsZ0dBVkEsdUJBQWUsT0FVQTtBQVR4Qix5Q0FBaUQ7QUFDakQsOERBQXNGO0FBQ3RGLDhEQUFzRjtBQUN0RixpRUFBNEY7QUFDNUYsaUVBQTRGO0FBaUI1Rjs7R0FFRztBQUNILE1BQU0sNEJBQTRCLEdBQThDO0lBQzlFLENBQUMsdUJBQWUsQ0FBQyxZQUFZLENBQUMsRUFBRSwyQkFBdUI7SUFDdkQsQ0FBQyx1QkFBZSxDQUFDLFlBQVksQ0FBQyxFQUFFLDJCQUF1QjtJQUN2RCxDQUFDLHVCQUFlLENBQUMsZUFBZSxDQUFDLEVBQUUsMkJBQTBCO0lBQzdELENBQUMsdUJBQWUsQ0FBQyxlQUFlLENBQUMsRUFBRSwyQkFBMEI7Q0FDOUQsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBMkM7SUFDL0QsQ0FBQyx1QkFBZSxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQzlCLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBUyxFQUFFLE9BQTZCLEVBQW1CLEVBQUU7WUFDM0UsT0FBTyxNQUFNLElBQUEsMEJBQWtCLEVBQUMsSUFBSSxFQUFFLE9BQWMsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQVMsRUFBRSxPQUE2QixFQUFtQixFQUFFO1lBQzNFLE9BQU8sTUFBTSxJQUFBLDBCQUFrQixFQUFDLElBQUksRUFBRSxPQUFjLENBQUMsQ0FBQztRQUN4RCxDQUFDO0tBQ0Y7SUFDRCxDQUFDLHVCQUFlLENBQUMsWUFBWSxDQUFDLEVBQUU7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
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getInventoryLevelHtml = getInventoryLevelHtml;
4
+ exports.getInventoryLevelText = getInventoryLevelText;
5
+ const template_1 = require("./template");
6
+ /**
7
+ * Generates HTML email for order created notificat
8
+ *
9
+ * @param data - Order data (includes subject)
10
+ * @param options - Optional theme and locale configuration
11
+ * @returns HTML string ready to send
12
+ */
13
+ async function getInventoryLevelHtml(data, options) {
14
+ return await (0, template_1.renderHTML)(data, options);
15
+ }
16
+ async function getInventoryLevelText(data, options) {
17
+ return await (0, template_1.renderText)(data, options);
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9pbnZlbnRvcnktbGV2ZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSxzREFLQztBQUVELHNEQUtDO0FBckJELHlDQUFvRDtBQUVwRDs7Ozs7O0dBTUc7QUFDSSxLQUFLLFVBQVUscUJBQXFCLENBQ3pDLElBQW9DLEVBQ3BDLE9BQTRCO0lBRTVCLE9BQU8sTUFBTSxJQUFBLHFCQUFVLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFTSxLQUFLLFVBQVUscUJBQXFCLENBQ3pDLElBQW9DLEVBQ3BDLE9BQTRCO0lBRTVCLE9BQU8sTUFBTSxJQUFBLHFCQUFVLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUMifQ==
@@ -0,0 +1,28 @@
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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
@@ -0,0 +1,12 @@
1
+ {
2
+ "general": {
3
+ "headerTitle": "#{{inventoryLevelId}} - Inventory level has been updated",
4
+ "headerDescription": "Inventory level has been updated. Check the details.",
5
+ "labels": {
6
+ "inventoryLevelId": "Inventory Level ID",
7
+ "inventoryLevelLocation": "Inventory Level Location",
8
+ "inventoryLevelDate": "Inventory Level Date"
9
+ },
10
+ "footer": "If you have any questions, please contact us."
11
+ }
12
+ }
@@ -0,0 +1,15 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9pbnZlbnRvcnktbGV2ZWwvdHJhbnNsYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHdEQUEyQjtBQVFsQixhQVJGLGlCQUFFLENBUUU7QUFQWCx3REFBMkI7QUFPZCxhQVBOLGlCQUFFLENBT007QUFMRixRQUFBLFlBQVksR0FBcUI7SUFDNUMsRUFBRSxFQUFFLGlCQUFFO0lBQ04sRUFBRSxFQUFFLGlCQUFFO0NBQ1AsQ0FBQyJ9
@@ -0,0 +1,14 @@
1
+ {
2
+ "general": {
3
+ "headerTitle": "Poziom magazynowy został zmieniony",
4
+ "headerDescription": "Poziom magazynowy został zmieniony. Sprawdź szczegóły.",
5
+ "labels": {
6
+ "inventoryLevelId": "ID",
7
+ "inventoryLevelLocation": "Lokalizacja",
8
+ "inventoryLevelStockedQuantity": "Ilość na stanie",
9
+ "inventoryLevelReservedQuantity": "Ilość zarezerwowana",
10
+ "inventoryLevelAvailableQuantity": "Ilość dostępna"
11
+ },
12
+ "footer": "Jeśli masz pytania dotyczące poziomu magazynowego, skontaktuj się z nami."
13
+ }
14
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9pbnZlbnRvcnktbGV2ZWwvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -2,8 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TEMPLATES_NAMES = void 0;
4
4
  exports.TEMPLATES_NAMES = {
5
+ INVENTORY_LEVEL: "inventory-level",
5
6
  ORDER_PLACED: "order-placed",
6
7
  ORDER_COMPLETED: "order-completed",
7
8
  CONTACT_FORM: "contact-form",
8
9
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLGVBQWUsR0FBRztJQUM3QixZQUFZLEVBQUUsY0FBYztJQUM1QixlQUFlLEVBQUUsaUJBQWlCO0lBQ2xDLFlBQVksRUFBRSxjQUFjO0NBQ3BCLENBQUMifQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLGVBQWUsR0FBRztJQUM3QixlQUFlLEVBQUUsaUJBQWlCO0lBQ2xDLFlBQVksRUFBRSxjQUFjO0lBQzVCLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsWUFBWSxFQUFFLGNBQWM7Q0FDcEIsQ0FBQyJ9
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @codee-sh/medusa-plugin-notification
1
+ # Medusa plugin notification emails
2
2
 
3
3
  A comprehensive notification plugin for Medusa v2 that provides a flexible email template system with internationalization support, custom translations, and seamless integration with Medusa's notification module.
4
4
 
@@ -21,9 +21,9 @@ A comprehensive notification plugin for Medusa v2 that provides a flexible email
21
21
  ## Installation
22
22
 
23
23
  ```bash
24
- npm install @codee-sh/medusa-plugin-notification
24
+ npm install @codee-sh/medusa-plugin-notification-emails
25
25
  # or
26
- yarn add @codee-sh/medusa-plugin-notification
26
+ yarn add @codee-sh/medusa-plugin-notification-emails
27
27
  ```
28
28
 
29
29
  ## Quick Start
@@ -35,7 +35,7 @@ Add to your `medusa-config.ts`:
35
35
  ```typescript
36
36
  module.exports = defineConfig({
37
37
  plugins: [
38
- "@codee-sh/medusa-plugin-notification"
38
+ "@codee-sh/medusa-plugin-notification-emails"
39
39
  ]
40
40
  })
41
41
  ```
@@ -49,7 +49,7 @@ Set up a notification provider - see [Configuration Documentation](./docs/config
49
49
  The plugin includes built-in subscribers that automatically send email notifications for various events. You can also use templates directly in your code:
50
50
 
51
51
  ```typescript
52
- import { renderTemplate, TEMPLATES_NAMES } from "@codee-sh/medusa-plugin-notification/templates/emails"
52
+ import { renderTemplate, TEMPLATES_NAMES } from "@codee-sh/medusa-plugin-notification-emails/templates/emails"
53
53
 
54
54
  const { html, text, subject } = await renderTemplate(
55
55
  TEMPLATES_NAMES.ORDER_PLACED,
@@ -101,9 +101,9 @@ Access the template preview in Medusa Admin at `/app/notifications/render`. See
101
101
 
102
102
  The plugin exports the following:
103
103
 
104
- - `@codee-sh/medusa-plugin-notification/templates/emails` - Template rendering functions
105
- - `@codee-sh/medusa-plugin-notification/templates/emails/types` - Template types and constants
106
- - `@codee-sh/medusa-plugin-notification/utils` - Utility functions
104
+ - `@codee-sh/medusa-plugin-notification-emails/templates/emails` - Template rendering functions
105
+ - `@codee-sh/medusa-plugin-notification-emails/templates/emails/types` - Template types and constants
106
+ - `@codee-sh/medusa-plugin-notification-emails/utils` - Utility functions
107
107
 
108
108
  ## License
109
109
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codee-sh/medusa-plugin-notification-emails",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Medusa plugin for notifications emails.",
5
5
  "author": "Codee Team (https://codee.dev)",
6
6
  "license": "MIT",