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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/.medusa/server/emails-previews/contact-form.js +22 -0
  2. package/.medusa/server/emails-previews/order-completed.js +44 -0
  3. package/.medusa/server/emails-previews/order-placed.js +43 -0
  4. package/.medusa/server/src/admin/index.js +10002 -0
  5. package/.medusa/server/src/admin/index.mjs +10001 -0
  6. package/.medusa/server/src/admin/lib/sdk.js +15 -0
  7. package/.medusa/server/src/api/admin/notification-plugin/events/route.js +20 -0
  8. package/.medusa/server/src/api/admin/notification-plugin/notifications/route.js +31 -0
  9. package/.medusa/server/src/api/admin/notification-plugin/render-template/route.js +26 -0
  10. package/.medusa/server/src/api/middlewares.js +42 -0
  11. package/.medusa/server/src/hooks/api/events.js +27 -0
  12. package/.medusa/server/src/hooks/api/notifications.js +42 -0
  13. package/.medusa/server/src/hooks/api/orders.js +50 -0
  14. package/.medusa/server/src/hooks/api/preview.js +33 -0
  15. package/.medusa/server/src/subscribers/order-completed.js +99 -0
  16. package/.medusa/server/src/subscribers/order-placed.js +97 -0
  17. package/.medusa/server/src/subscribers/payment-captured.js +86 -0
  18. package/.medusa/server/src/templates/emails/contact-form/index.js +19 -0
  19. package/.medusa/server/src/templates/emails/contact-form/template.js +28 -0
  20. package/.medusa/server/src/templates/emails/contact-form/translations/en.json +16 -0
  21. package/.medusa/server/src/templates/emails/contact-form/translations/index.js +15 -0
  22. package/.medusa/server/src/templates/emails/contact-form/translations/pl.json +12 -0
  23. package/.medusa/server/src/templates/emails/contact-form/types.js +3 -0
  24. package/.medusa/server/src/templates/emails/index.js +98 -0
  25. package/.medusa/server/src/templates/emails/order-completed/index.js +19 -0
  26. package/.medusa/server/src/templates/emails/order-completed/template.js +36 -0
  27. package/.medusa/server/src/templates/emails/order-completed/translations/en.json +25 -0
  28. package/.medusa/server/src/templates/emails/order-completed/translations/index.js +15 -0
  29. package/.medusa/server/src/templates/emails/order-completed/translations/pl.json +25 -0
  30. package/.medusa/server/src/templates/emails/order-completed/types.js +3 -0
  31. package/.medusa/server/src/templates/emails/order-placed/index.js +19 -0
  32. package/.medusa/server/src/templates/emails/order-placed/template.js +36 -0
  33. package/.medusa/server/src/templates/emails/order-placed/translations/en.json +24 -0
  34. package/.medusa/server/src/templates/emails/order-placed/translations/index.js +15 -0
  35. package/.medusa/server/src/templates/emails/order-placed/translations/pl.json +24 -0
  36. package/.medusa/server/src/templates/emails/order-placed/types.js +3 -0
  37. package/.medusa/server/src/templates/emails/types.js +9 -0
  38. package/.medusa/server/src/templates/shared/i18n/index.js +6 -0
  39. package/.medusa/server/src/templates/shared/i18n/languages.js +187 -0
  40. package/.medusa/server/src/templates/shared/i18n/types.js +3 -0
  41. package/.medusa/server/src/templates/shared/i18n/utils.js +186 -0
  42. package/.medusa/server/src/templates/shared/theme/index.js +6 -0
  43. package/.medusa/server/src/templates/shared/theme/presets/default/index.js +36 -0
  44. package/.medusa/server/src/templates/shared/utils/index.js +24 -0
  45. package/.medusa/server/src/utils/addresses.js +67 -0
  46. package/.medusa/server/src/utils/data/countries.js +1763 -0
  47. package/.medusa/server/src/utils/data/country-states.js +1283 -0
  48. package/.medusa/server/src/utils/data/currencies.js +748 -0
  49. package/.medusa/server/src/utils/date.js +26 -0
  50. package/.medusa/server/src/utils/index.js +21 -0
  51. package/.medusa/server/src/utils/money-amount-helpers.js +68 -0
  52. package/.medusa/server/src/utils/payment.js +21 -0
  53. package/.medusa/server/src/utils/plugins.js +20 -0
  54. package/README.md +114 -0
  55. package/package.json +86 -0
@@ -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.sdk = void 0;
7
+ const js_sdk_1 = __importDefault(require("@medusajs/js-sdk"));
8
+ exports.sdk = new js_sdk_1.default({
9
+ baseUrl: "/",
10
+ debug: false,
11
+ auth: {
12
+ type: "session",
13
+ },
14
+ });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FkbWluL2xpYi9zZGsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOERBQXFDO0FBRXhCLFFBQUEsR0FBRyxHQUFHLElBQUksZ0JBQU0sQ0FBQztJQUM1QixPQUFPLEVBQUUsR0FBRztJQUNaLEtBQUssRUFBRSxLQUFLO0lBQ1osSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLFNBQVM7S0FDaEI7Q0FDRixDQUFDLENBQUEifQ==
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ async function POST(req, res) {
6
+ const eventModuleService = req.scope.resolve(utils_1.Modules.EVENT_BUS);
7
+ const name = req.body?.name;
8
+ const data = req.body?.data;
9
+ await eventModuleService.emit({
10
+ name: name,
11
+ data: data,
12
+ });
13
+ res.status(200).json({
14
+ success: true,
15
+ message: `Event ${name} was emitted`,
16
+ name,
17
+ data,
18
+ });
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL25vdGlmaWNhdGlvbi1wbHVnaW4vZXZlbnRzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0Esb0JBb0JDO0FBdEJELHFEQUFnRTtBQUV6RCxLQUFLLFVBQVUsSUFBSSxDQUN4QixHQUFnRCxFQUNoRCxHQUFtQjtJQUVuQixNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUUvRCxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQTtJQUMzQixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQTtJQUUzQixNQUFNLGtCQUFrQixDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLEVBQUUsSUFBSTtRQUNWLElBQUksRUFBRSxJQUFJO0tBQ1gsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkIsT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsU0FBUyxJQUFJLGNBQWM7UUFDcEMsSUFBSTtRQUNKLElBQUk7S0FDTCxDQUFDLENBQUE7QUFDSixDQUFDIn0=
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ async function GET(req, res) {
6
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
7
+ const { resource_id, resource_type } = req.query;
8
+ const filters = {};
9
+ if (resource_id) {
10
+ filters.resource_id = {
11
+ $eq: resource_id,
12
+ };
13
+ }
14
+ if (resource_type) {
15
+ filters.resource_type = {
16
+ $eq: resource_type,
17
+ };
18
+ }
19
+ const { data: notifications, metadata: { count, take, skip } = {} } = await query.graph({
20
+ entity: "notification",
21
+ filters: filters,
22
+ ...req.queryConfig
23
+ });
24
+ res.json({
25
+ notifications: notifications,
26
+ count: count || 0,
27
+ limit: take || 15,
28
+ offset: skip || 0,
29
+ });
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL25vdGlmaWNhdGlvbi1wbHVnaW4vbm90aWZpY2F0aW9ucy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLGtCQWdDQztBQWxDRCxxREFBa0Y7QUFFM0UsS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBdUIsRUFDdkIsR0FBbUI7SUFFbkIsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFBO0lBQ2hELE1BQU0sT0FBTyxHQUFRLEVBQUUsQ0FBQTtJQUV2QixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxXQUFXLEdBQUc7WUFDcEIsR0FBRyxFQUFFLFdBQVc7U0FDakIsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxhQUFhLEdBQUc7WUFDdEIsR0FBRyxFQUFFLGFBQWE7U0FDbkIsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN0RixNQUFNLEVBQUUsY0FBYztRQUN0QixPQUFPLEVBQUUsT0FBTztRQUNoQixHQUFHLEdBQUcsQ0FBQyxXQUFXO0tBQ25CLENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCxhQUFhLEVBQUUsYUFBYTtRQUM1QixLQUFLLEVBQUUsS0FBSyxJQUFJLENBQUM7UUFDakIsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFFO1FBQ2pCLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQztLQUNsQixDQUFDLENBQUE7QUFDSixDQUFDIn0=
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const emails_1 = require("../../../../templates/emails");
6
+ const plugins_1 = require("../../../../utils/plugins");
7
+ const theme_1 = require("../../../../templates/shared/theme");
8
+ async function POST(req, res) {
9
+ const pluginOptions = (0, plugins_1.getPluginOptions)(req.scope, "@codee-sh/medusa-plugin-notification");
10
+ const templateName = req.body?.templateName;
11
+ const templateData = req.body?.templateData;
12
+ const locale = req.body?.locale || "pl";
13
+ if (!templateName || !templateData || !locale) {
14
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_ARGUMENT, "Template name, template data and locale are required");
15
+ }
16
+ const { html, text } = await (0, emails_1.renderTemplate)(templateName, templateData, {
17
+ locale: locale,
18
+ theme: pluginOptions?.theme || theme_1.defaultTheme,
19
+ customTranslations: pluginOptions?.customTranslations?.[templateName]
20
+ });
21
+ res.status(200).json({
22
+ html,
23
+ text,
24
+ });
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL25vdGlmaWNhdGlvbi1wbHVnaW4vcmVuZGVyLXRlbXBsYXRlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esb0JBNEJDO0FBbENELHFEQUF1RDtBQUN2RCx5REFBNkQ7QUFDN0QsdURBQTREO0FBQzVELDhEQUFpRTtBQUcxRCxLQUFLLFVBQVUsSUFBSSxDQUN4QixHQUErRSxFQUMvRSxHQUFtQjtJQUVuQixNQUFNLGFBQWEsR0FBRyxJQUFBLDBCQUFnQixFQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsc0NBQXNDLENBQUMsQ0FBQTtJQUV6RixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLFlBQTRCLENBQUE7SUFDM0QsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFtQixDQUFBO0lBQ2xELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQTtJQUV2QyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDOUMsTUFBTSxJQUFJLG1CQUFXLENBQUMsbUJBQVcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsc0RBQXNELENBQUMsQ0FBQTtJQUNuSCxDQUFDO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUEsdUJBQWMsRUFDekMsWUFBWSxFQUNaLFlBQVksRUFDWjtRQUNFLE1BQU0sRUFBRSxNQUFNO1FBQ2QsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLElBQUksb0JBQVk7UUFDM0Msa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLENBQUMsWUFBWSxDQUFDO0tBQ3RFLENBQ0YsQ0FBQTtJQUVELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25CLElBQUk7UUFDSixJQUFJO0tBQ0wsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdminNotificationListParams = void 0;
4
+ const http_1 = require("@medusajs/framework/http");
5
+ const validators_1 = require("@medusajs/medusa/api/utils/validators");
6
+ const zod_1 = require("zod");
7
+ exports.AdminNotificationListParams = (0, validators_1.createFindParams)().extend({
8
+ resource_id: zod_1.z.string().optional(),
9
+ resource_type: zod_1.z.string().optional(),
10
+ });
11
+ exports.default = (0, http_1.defineMiddlewares)({
12
+ routes: [
13
+ {
14
+ matcher: "/admin/notification-plugin/notifications",
15
+ methods: ["GET"],
16
+ middlewares: [
17
+ (0, http_1.authenticate)("user", ["session", "bearer"], {
18
+ allowUnauthenticated: false,
19
+ }),
20
+ (0, http_1.validateAndTransformQuery)(exports.AdminNotificationListParams, {
21
+ defaults: [
22
+ "id",
23
+ "to",
24
+ "channel",
25
+ "created_at",
26
+ "status",
27
+ "template",
28
+ "trigger_type",
29
+ "resource_id",
30
+ "resource_type",
31
+ "receiver_id",
32
+ "original_notification_id",
33
+ "external_id",
34
+ "provider_id",
35
+ ],
36
+ isList: true,
37
+ }),
38
+ ],
39
+ },
40
+ ],
41
+ });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUk4SjtBQUM5SixzRUFBd0U7QUFDeEUsNkJBQXVCO0FBRVYsUUFBQSwyQkFBMkIsR0FBRyxJQUFBLDZCQUFnQixHQUFFLENBQUMsTUFBTSxDQUFDO0lBQ25FLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLGFBQWEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ3JDLENBQUMsQ0FBQTtBQUVGLGtCQUFlLElBQUEsd0JBQWlCLEVBQUM7SUFDL0IsTUFBTSxFQUFFO1FBQ047WUFDRSxPQUFPLEVBQUUsMENBQTBDO1lBQ25ELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNoQixXQUFXLEVBQUU7Z0JBQ1gsSUFBQSxtQkFBWSxFQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRTtvQkFDMUMsb0JBQW9CLEVBQUUsS0FBSztpQkFDNUIsQ0FBQztnQkFDRixJQUFBLGdDQUF5QixFQUFDLG1DQUEyQixFQUFFO29CQUNyRCxRQUFRLEVBQUU7d0JBQ1IsSUFBSTt3QkFDSixJQUFJO3dCQUNKLFNBQVM7d0JBQ1QsWUFBWTt3QkFDWixRQUFRO3dCQUNSLFVBQVU7d0JBQ1YsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYiwwQkFBMEI7d0JBQzFCLGFBQWE7d0JBQ2IsYUFBYTtxQkFDZDtvQkFDRCxNQUFNLEVBQUUsSUFBSTtpQkFDYixDQUFDO2FBQ0g7U0FDRjtLQUNGO0NBQ0YsQ0FBQyxDQUFBIn0=
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useEvents = void 0;
4
+ const react_query_1 = require("@tanstack/react-query");
5
+ const sdk_1 = require("../../admin/lib/sdk");
6
+ const useEvents = (options) => {
7
+ const { data: eventsData, mutate, mutateAsync, ...rest } = (0, react_query_1.useMutation)({
8
+ mutationFn: async (variables) => {
9
+ return await sdk_1.sdk.client.fetch("/admin/notification-plugin/events", {
10
+ method: "POST",
11
+ body: {
12
+ name: variables.name,
13
+ data: variables.data,
14
+ },
15
+ });
16
+ },
17
+ ...options,
18
+ });
19
+ return {
20
+ data: eventsData,
21
+ mutate,
22
+ mutateAsync,
23
+ ...rest
24
+ };
25
+ };
26
+ exports.useEvents = useEvents;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2hvb2tzL2FwaS9ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdURBRzhCO0FBQzlCLDZDQUF5QztBQW1CbEMsTUFBTSxTQUFTLEdBQUcsQ0FDdkIsT0FPQyxFQUNELEVBQUU7SUFDRixNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBQSx5QkFBVyxFQUlwRTtRQUNBLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDOUIsT0FBTyxNQUFNLFNBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxFQUFFO2dCQUNqRSxNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO29CQUNwQixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7aUJBQ3JCO2FBQ0YsQ0FBQyxDQUFBO1FBQ0osQ0FBQztRQUNELEdBQUksT0FBZTtLQUNwQixDQUFDLENBQUE7SUFFRixPQUFPO1FBQ0wsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTTtRQUNOLFdBQVc7UUFDWCxHQUFHLElBQUk7S0FDUixDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBakNZLFFBQUEsU0FBUyxhQWlDckIifQ==
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useListNotifications = void 0;
4
+ const react_query_1 = require("@tanstack/react-query");
5
+ const sdk_1 = require("../../admin/lib/sdk");
6
+ const useListNotifications = (params, options) => {
7
+ const { limit = 100, offset = 0, extraKey = [], enabled, fields, order = "created_at", resource_id, resource_type } = params;
8
+ const queryKey = [
9
+ "notifications",
10
+ resource_id,
11
+ resource_type,
12
+ limit,
13
+ offset,
14
+ ...extraKey
15
+ ];
16
+ const query = {
17
+ limit,
18
+ offset,
19
+ fields,
20
+ order,
21
+ };
22
+ if (resource_id) {
23
+ query.resource_id = resource_id;
24
+ }
25
+ if (resource_type) {
26
+ query.resource_type = resource_type;
27
+ }
28
+ const { data, ...rest } = (0, react_query_1.useQuery)({
29
+ queryKey,
30
+ queryFn: async () => {
31
+ return await sdk_1.sdk.client.fetch("/admin/notification-plugin/notifications", {
32
+ method: "GET",
33
+ query,
34
+ });
35
+ },
36
+ enabled,
37
+ ...options,
38
+ });
39
+ return { data, ...rest };
40
+ };
41
+ exports.useListNotifications = useListNotifications;
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9ob29rcy9hcGkvbm90aWZpY2F0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1REFHOEI7QUFDOUIsNkNBQXlDO0FBb0JsQyxNQUFNLG9CQUFvQixHQUFHLENBQ2xDLE1BQVcsRUFDWCxPQUFhLEVBQ2IsRUFBRTtJQUNGLE1BQU0sRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssR0FBRyxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUU3SCxNQUFNLFFBQVEsR0FBYTtRQUN6QixlQUFlO1FBQ2YsV0FBVztRQUNYLGFBQWE7UUFDYixLQUFLO1FBQ0wsTUFBTTtRQUNOLEdBQUcsUUFBUTtLQUNaLENBQUM7SUFFRixNQUFNLEtBQUssR0FBUTtRQUNqQixLQUFLO1FBQ0wsTUFBTTtRQUNOLE1BQU07UUFDTixLQUFLO0tBQ04sQ0FBQztJQUVGLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEIsS0FBSyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksYUFBYSxFQUFFLENBQUM7UUFDbEIsS0FBSyxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFBLHNCQUFRLEVBS2hDO1FBQ0EsUUFBUTtRQUNSLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTtZQUNsQixPQUFPLE1BQU0sU0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMENBQTBDLEVBQUU7Z0JBQ3hFLE1BQU0sRUFBRSxLQUFLO2dCQUNiLEtBQUs7YUFDTixDQUFDLENBQUE7UUFDSixDQUFDO1FBQ0QsT0FBTztRQUNQLEdBQUksT0FBZTtLQUNwQixDQUFDLENBQUM7SUFFSCxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBaERXLFFBQUEsb0JBQW9CLHdCQWdEL0IifQ==
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useOrder = exports.useOrders = void 0;
4
+ const react_query_1 = require("@tanstack/react-query");
5
+ const sdk_1 = require("../../admin/lib/sdk");
6
+ const useOrders = (params = {}, options) => {
7
+ const { limit = 100, offset = 0, extraKey = [], enabled, fields = "id,display_id" } = params;
8
+ const queryKey = [
9
+ "orders",
10
+ ...extraKey
11
+ ];
12
+ const query = {
13
+ limit,
14
+ offset,
15
+ fields,
16
+ };
17
+ const { data, ...rest } = (0, react_query_1.useQuery)({
18
+ queryKey,
19
+ queryFn: async () => {
20
+ return await sdk_1.sdk.admin.order.list(query);
21
+ },
22
+ enabled,
23
+ ...options,
24
+ });
25
+ return { data, ...rest };
26
+ };
27
+ exports.useOrders = useOrders;
28
+ const useOrder = (params, options) => {
29
+ const { order_id, extraKey = [], enabled = false, } = params;
30
+ const queryKey = [
31
+ "order",
32
+ order_id,
33
+ ...extraKey,
34
+ ];
35
+ const { data, ...rest } = (0, react_query_1.useQuery)({
36
+ queryKey,
37
+ queryFn: async () => {
38
+ const { order } = await sdk_1.sdk.admin.order.retrieve(order_id, {
39
+ fields: "id,status,created_at,canceled_at,email,display_id,currency_code,metadata,total,credit_line_total,item_total,shipping_subtotal,original_total,subtotal,discount_total,discount_subtotal,shipping_total,shipping_tax_total,tax_total,refundable_total,order_change,*customer,*items,*items.variant,*items.variant.product,*items.variant.options,+items.variant.manage_inventory,*items.variant.inventory_items.inventory,+items.variant.inventory_items.required_quantity,+summary,*shipping_address,*billing_address,*sales_channel,*promotions,*shipping_methods,*credit_lines,*fulfillments,+fulfillments.shipping_option.service_zone.fulfillment_set.type,*fulfillments.items,*fulfillments.labels,*fulfillments.labels,*payment_collections,*payment_collections.payments,*payment_collections.payments.refunds,*payment_collections.payments.refunds.refund_reason,region.automatic_taxes",
40
+ });
41
+ return order;
42
+ },
43
+ staleTime: 0,
44
+ enabled: enabled,
45
+ ...options,
46
+ });
47
+ return { data, ...rest };
48
+ };
49
+ exports.useOrder = useOrder;
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2hvb2tzL2FwaS9vcmRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsdURBTThCO0FBQzlCLDZDQUF5QztBQWVsQyxNQUFNLFNBQVMsR0FBRyxDQUN2QixTQUEwQixFQUFFLEVBQzVCLE9BR0MsRUFDRCxFQUFFO0lBQ0YsTUFBTSxFQUFFLEtBQUssR0FBRyxHQUFHLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxRQUFRLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUcsZUFBZSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTdGLE1BQU0sUUFBUSxHQUFhO1FBQ3pCLFFBQVE7UUFDUixHQUFHLFFBQVE7S0FDWixDQUFDO0lBRUYsTUFBTSxLQUFLLEdBQUc7UUFDWixLQUFLO1FBQ0wsTUFBTTtRQUNOLE1BQU07S0FDQSxDQUFDO0lBRVQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLElBQUEsc0JBQVEsRUFLaEM7UUFDQSxRQUFRO1FBQ1IsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2xCLE9BQU8sTUFBTSxTQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDMUMsQ0FBQztRQUNELE9BQU87UUFDUCxHQUFJLE9BQWU7S0FDcEIsQ0FBQyxDQUFDO0lBRUgsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0FBQzNCLENBQUMsQ0FBQztBQW5DVyxRQUFBLFNBQVMsYUFtQ3BCO0FBV0ssTUFBTSxRQUFRLEdBQUcsQ0FDdEIsTUFBc0IsRUFDdEIsT0FRQyxFQUNELEVBQUU7SUFDRixNQUFNLEVBQ0osUUFBUSxFQUNSLFFBQVEsR0FBRyxFQUFFLEVBQ2IsT0FBTyxHQUFHLEtBQUssR0FDaEIsR0FBRyxNQUFNLENBQUE7SUFFVixNQUFNLFFBQVEsR0FBYTtRQUN6QixPQUFPO1FBQ1AsUUFBUTtRQUNSLEdBQUcsUUFBUTtLQUNaLENBQUE7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBQSxzQkFBUSxFQUtoQztRQUNBLFFBQVE7UUFDUixPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDbEIsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sU0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTtnQkFDekQsTUFBTSxFQUFFLGkyQkFBaTJCO2FBQzEyQixDQUFDLENBQUE7WUFFRixPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUM7UUFDRCxTQUFTLEVBQUUsQ0FBQztRQUNaLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEdBQUksT0FBZTtLQUNwQixDQUFDLENBQUE7SUFFRixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUE7QUFDMUIsQ0FBQyxDQUFBO0FBNUNZLFFBQUEsUUFBUSxZQTRDcEIifQ==
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usePreview = void 0;
4
+ const react_query_1 = require("@tanstack/react-query");
5
+ const sdk_1 = require("../../admin/lib/sdk");
6
+ const usePreview = (params, options) => {
7
+ const { templateName, templateData, locale, extraKey = [], enabled = false, } = params;
8
+ const queryKey = [
9
+ "preview",
10
+ templateName,
11
+ locale,
12
+ ...extraKey,
13
+ ];
14
+ const { data, ...rest } = (0, react_query_1.useQuery)({
15
+ queryKey,
16
+ queryFn: async ({ queryKey }) => {
17
+ return await sdk_1.sdk.client.fetch("/admin/notification-plugin/render-template", {
18
+ method: "POST",
19
+ body: {
20
+ templateName: templateName,
21
+ templateData: templateData,
22
+ locale: locale,
23
+ },
24
+ });
25
+ },
26
+ staleTime: 0,
27
+ enabled: enabled && !!templateName && !!templateData && !!locale,
28
+ ...options,
29
+ });
30
+ return { data, ...rest };
31
+ };
32
+ exports.usePreview = usePreview;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9ob29rcy9hcGkvcHJldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx1REFNOEI7QUFDOUIsNkNBQXlDO0FBZWxDLE1BQU0sVUFBVSxHQUFHLENBQ3hCLE1BQXdCLEVBQ3hCLE9BUUMsRUFDRCxFQUFFO0lBQ0YsTUFBTSxFQUNKLFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsR0FBRyxFQUFFLEVBQ2IsT0FBTyxHQUFHLEtBQUssR0FDaEIsR0FBRyxNQUFNLENBQUE7SUFFVixNQUFNLFFBQVEsR0FBYTtRQUN6QixTQUFTO1FBQ1QsWUFBWTtRQUNaLE1BQU07UUFDTixHQUFHLFFBQVE7S0FDWixDQUFBO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLElBQUEsc0JBQVEsRUFLaEM7UUFDQSxRQUFRO1FBQ1IsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7WUFDOUIsT0FBTyxNQUFNLFNBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxFQUFFO2dCQUMxRSxNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUU7b0JBQ0osWUFBWSxFQUFFLFlBQVk7b0JBQzFCLFlBQVksRUFBRSxZQUFZO29CQUMxQixNQUFNLEVBQUUsTUFBTTtpQkFDZjthQUNGLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFDRCxTQUFTLEVBQUUsQ0FBQztRQUNaLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxNQUFNO1FBQ2hFLEdBQUksT0FBZTtLQUNwQixDQUFDLENBQUE7SUFFRixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUE7QUFDMUIsQ0FBQyxDQUFBO0FBbERZLFFBQUEsVUFBVSxjQWtEdEIifQ==
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = orderCompletedEmailsHandler;
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, }) {
11
+ const pluginOptions = (0, plugins_1.getPluginOptions)(container, "@codee-sh/medusa-plugin-notification-emails");
12
+ const notificationModuleService = container.resolve(utils_1.Modules.NOTIFICATION);
13
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
14
+ const triggerType = trigger_type || 'system';
15
+ if (!id) {
16
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_ARGUMENT, "Order ID is required");
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,
41
+ },
42
+ });
43
+ if (!order) {
44
+ return;
45
+ }
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
+ };
76
+ const templateName = types_1.TEMPLATES_NAMES.ORDER_COMPLETED;
77
+ const { html, text, subject } = await (0, emails_1.renderTemplate)(templateName, templateData, {
78
+ locale: "pl",
79
+ customTranslations: pluginOptions?.customTranslations?.[templateName]
80
+ });
81
+ const result = await notificationModuleService.createNotifications({
82
+ to: order.email,
83
+ channel: "email",
84
+ template: templateName,
85
+ trigger_type: triggerType,
86
+ resource_id: id,
87
+ resource_type: "order",
88
+ data: templateData,
89
+ content: {
90
+ subject: subject,
91
+ html,
92
+ text,
93
+ },
94
+ });
95
+ }
96
+ exports.config = {
97
+ event: "order.completed",
98
+ };
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItY29tcGxldGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL29yZGVyLWNvbXBsZXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFVQSw4Q0FzR0M7QUE1R0QscURBQTJGO0FBQzNGLHlGQUE2RjtBQUM3Riw4RkFBb0c7QUFDcEcsNkVBQXNJO0FBQ3RJLHVGQUE0RjtBQUU3RSxLQUFLLFVBQVUsMkJBQTJCLENBQUMsRUFDeEQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQ3JDLFNBQVMsR0FDNEM7SUFDckQsTUFBTSxhQUFhLEdBQUcsSUFBQSwwQkFBZ0IsRUFBQyxTQUFTLEVBQUUsNkNBQTZDLENBQUMsQ0FBQTtJQUVoRyxNQUFNLHlCQUF5QixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQ2pELGVBQU8sQ0FBQyxZQUFZLENBQ3JCLENBQUE7SUFDRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sV0FBVyxHQUFHLFlBQVksSUFBSSxRQUFRLENBQUE7SUFFNUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ1IsTUFBTSxJQUFJLG1CQUFXLENBQUMsbUJBQVcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQTtJQUNuRixDQUFDO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFDLE1BQU0sRUFBRSxPQUFPO1FBQ2YsTUFBTSxFQUFFO1lBQ04sSUFBSTtZQUNKLE9BQU87WUFDUCxZQUFZO1lBQ1osWUFBWTtZQUNaLHVCQUF1QjtZQUN2QixTQUFTO1lBQ1QsaUJBQWlCO1lBQ2pCLHlCQUF5QjtZQUN6QixlQUFlO1lB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
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = orderPlacedEmailsHandler;
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 orderPlacedEmailsHandler({ event: { data: { id, trigger_type } }, container, }) {
11
+ const pluginOptions = (0, plugins_1.getPluginOptions)(container, "@codee-sh/medusa-plugin-notification-emails");
12
+ const notificationModuleService = container.resolve(utils_1.Modules.NOTIFICATION);
13
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
14
+ const triggerType = trigger_type || 'system';
15
+ if (!id) {
16
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_ARGUMENT, "Order ID is required");
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,
40
+ },
41
+ });
42
+ if (!order) {
43
+ return;
44
+ }
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
+ };
74
+ const templateName = types_1.TEMPLATES_NAMES.ORDER_PLACED;
75
+ const { html, text, subject } = await (0, emails_1.renderTemplate)(templateName, templateData, {
76
+ locale: "pl",
77
+ customTranslations: pluginOptions?.customTranslations?.[templateName]
78
+ });
79
+ const result = await notificationModuleService.createNotifications({
80
+ to: order.email,
81
+ channel: "email",
82
+ template: templateName,
83
+ trigger_type: triggerType,
84
+ resource_id: id,
85
+ resource_type: "order",
86
+ data: templateData,
87
+ content: {
88
+ subject: subject,
89
+ html,
90
+ text,
91
+ },
92
+ });
93
+ }
94
+ exports.config = {
95
+ event: "order.placed",
96
+ };
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcGxhY2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL29yZGVyLXBsYWNlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFVQSwyQ0FvR0M7QUExR0QscURBQTJGO0FBQzNGLHlGQUE2RjtBQUM3Riw4RkFBb0c7QUFDcEcsNkVBQXNJO0FBQ3RJLHVGQUE0RjtBQUU3RSxLQUFLLFVBQVUsd0JBQXdCLENBQUMsRUFDckQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQ3JDLFNBQVMsR0FDNEM7SUFDckQsTUFBTSxhQUFhLEdBQUcsSUFBQSwwQkFBZ0IsRUFBQyxTQUFTLEVBQUUsNkNBQTZDLENBQUMsQ0FBQTtJQUVoRyxNQUFNLHlCQUF5QixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQ2pELGVBQU8sQ0FBQyxZQUFZLENBQ3JCLENBQUE7SUFDRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sV0FBVyxHQUFHLFlBQVksSUFBSSxRQUFRLENBQUE7SUFFNUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ1IsTUFBTSxJQUFJLG1CQUFXLENBQUMsbUJBQVcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQTtJQUNuRixDQUFDO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFDLE1BQU0sRUFBRSxPQUFPO1FBQ2YsTUFBTSxFQUFFO1lBQ04sSUFBSTtZQUNKLE9BQU87WUFDUCxZQUFZO1lBQ1osdUJBQXVCO1lBQ3ZCLFNBQVM7WUFDVCxpQkFBaUI7WUFDakIseUJBQXlCO1lBQ3pCLGVBQWU7WUFDZixZQUFZO1lBQ1osb0JBQW9CO1lBQ3BCLDJCQUEyQjtZQUMzQixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLFdBQVc7WUFDWCxXQUFXO1lBQ1gsZ0JBQWdCO1NBQ2pCO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsRUFBRSxFQUFFLEVBQUU7U0FDUDtLQUNGLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU07SUFDUixDQUFDO0lBRUQsTUFBTSxtQkFBbUIsR0FBRyxJQUFBLDJCQUFtQixFQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25HLE1BQU0sa0JBQWtCLEdBQUcsSUFBQSwyQkFBbUIsRUFBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakcsTUFBTSxZQUFZLEdBQUc7UUFDbkIsYUFBYSxFQUFFO1lBQ2IsSUFBSSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSTtZQUNoQyxXQUFXLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxXQUFXO1NBQy9DO1FBQ0QsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtRQUNuQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEtBQUs7UUFDekIsYUFBYSxFQUFFLEtBQUssQ0FBQyxLQUFLO1FBQzFCLFNBQVMsRUFBRSxJQUFBLGtCQUFVLEVBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN0RixXQUFXLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNqSCxRQUFRLEVBQUUsS0FBSyxDQUFDLGFBQWE7UUFDN0IsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLEtBQUssRUFBRSxJQUFBLHVCQUFlLEVBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDO1NBQzdELENBQUMsQ0FBQztRQUNILGVBQWUsRUFBRSxtQkFBbUI7UUFDcEMsY0FBYyxFQUFFLGtCQUFrQjtRQUNsQyxPQUFPLEVBQUU7WUFDUCxLQUFLLEVBQUUsSUFBQSx1QkFBZSxFQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUMvRSxVQUFVLEVBQUUsSUFBQSx1QkFBZSxFQUFDLElBQUEsd0JBQWdCLEVBQUMsS0FBSyxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUM7WUFDbkcsU0FBUyxFQUFFLElBQUEsdUJBQWUsRUFBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUM7WUFDaEUsY0FBYyxFQUFFLElBQUEsdUJBQWUsRUFBQyxLQUFLLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUM7WUFDMUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1NBQ25DO0tBQ0YsQ0FBQztJQUVGLE1BQU0sWUFBWSxHQUFHLHVCQUFlLENBQUMsWUFBWSxDQUFBO0lBRWpELE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sSUFBQSx1QkFBYyxFQUNsRCxZQUFZLEVBQ1osWUFBWSxFQUNaO1FBQ0UsTUFBTSxFQUFFLElBQUk7UUFDWixrQkFBa0IsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxZQUFZLENBQUM7S0FDdEUsQ0FDRixDQUFBO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQztRQUNqRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEtBQUs7UUFDZixPQUFPLEVBQUUsT0FBTztRQUNoQixRQUFRLEVBQUUsWUFBWTtRQUN0QixZQUFZLEVBQUUsV0FBVztRQUN6QixXQUFXLEVBQUUsRUFBRTtRQUNmLGFBQWEsRUFBRSxPQUFPO1FBQ3RCLElBQUksRUFBRSxZQUFZO1FBQ2xCLE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLElBQUk7WUFDSixJQUFJO1NBQ0w7S0FDRixDQUFDLENBQUE7QUFDSixDQUFDO0FBRVksUUFBQSxNQUFNLEdBQXFCO0lBQ3RDLEtBQUssRUFBRSxjQUFjO0NBQ3RCLENBQUEifQ==
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = paymentCapturedEmailsHandler;
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const plugins_1 = require("@codee-sh/medusa-plugin-notification-emails/utils/plugins");
7
+ async function paymentCapturedEmailsHandler({ event: { data: { id, trigger_type } }, container, }) {
8
+ const pluginOptions = (0, plugins_1.getPluginOptions)(container, "@codee-sh/medusa-plugin-notification-emails");
9
+ const notificationModuleService = container.resolve(utils_1.Modules.NOTIFICATION);
10
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
11
+ const triggerType = trigger_type || 'system';
12
+ console.log("id", id);
13
+ if (!id) {
14
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_ARGUMENT, "Payment ID is required");
15
+ }
16
+ const { data: [payment] } = await query.graph({
17
+ entity: "payment",
18
+ fields: [
19
+ "*",
20
+ ],
21
+ filters: {
22
+ id: id,
23
+ },
24
+ });
25
+ if (!payment) {
26
+ return;
27
+ }
28
+ console.log("payment", payment);
29
+ console.log("trigger_type", trigger_type);
30
+ // const shippingAddressText = getFormattedAddress({ address: order.shipping_address }).join("<br/>");
31
+ // const billingAddressText = getFormattedAddress({ address: order.billing_address }).join("<br/>");
32
+ // const templateData = {
33
+ // sales_channel: {
34
+ // name: order?.sales_channel?.name,
35
+ // description: order?.sales_channel?.description,
36
+ // },
37
+ // orderNumber: `#${order.display_id}`,
38
+ // customerName: order.email,
39
+ // customerEmail: order.email,
40
+ // orderDate: formatDate({ date: order.created_at, includeTime: true, localeCode: "pl" }),
41
+ // totalAmount: order.items.reduce((acc, item) => acc + (item.variant?.prices?.[0]?.amount || 0) * item.quantity, 0),
42
+ // currency: order.currency_code,
43
+ // items: order.items.map((item) => ({
44
+ // thumbnail: item.thumbnail,
45
+ // title: item.title,
46
+ // quantity: item.quantity,
47
+ // price: getLocaleAmount(item.unit_price, order.currency_code),
48
+ // })),
49
+ // shippingAddress: shippingAddressText,
50
+ // billingAddress: billingAddressText,
51
+ // summary: {
52
+ // total: getLocaleAmount(order.summary.original_order_total, order.currency_code),
53
+ // paid_total: getLocaleAmount(getTotalCaptured(order.payment_collections || []), order.currency_code),
54
+ // tax_total: getLocaleAmount(order.tax_total, order.currency_code),
55
+ // discount_total: getLocaleAmount(order.discount_total, order.currency_code),
56
+ // currency_code: order.currency_code,
57
+ // }
58
+ // };
59
+ // const templateName = TEMPLATES_NAMES.ORDER_PLACED
60
+ // const { html, text, subject } = await renderTemplate(
61
+ // templateName,
62
+ // templateData,
63
+ // {
64
+ // locale: "pl",
65
+ // customTranslations: pluginOptions?.customTranslations?.[templateName]
66
+ // }
67
+ // )
68
+ // const result = await notificationModuleService.createNotifications({
69
+ // to: order.email,
70
+ // channel: "email",
71
+ // template: templateName,
72
+ // trigger_type: triggerType,
73
+ // resource_id: id,
74
+ // resource_type: "order",
75
+ // data: templateData,
76
+ // content: {
77
+ // subject: subject,
78
+ // html,
79
+ // text,
80
+ // },
81
+ // })
82
+ }
83
+ exports.config = {
84
+ event: "payment.captured",
85
+ };
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1jYXB0dXJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9wYXltZW50LWNhcHR1cmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVVBLCtDQTBGQztBQWhHRCxxREFBMkY7QUFJM0YsdUZBQTRGO0FBRTdFLEtBQUssVUFBVSw0QkFBNEIsQ0FBQyxFQUN6RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFDckMsU0FBUyxHQUM0QztJQUNyRCxNQUFNLGFBQWEsR0FBRyxJQUFBLDBCQUFnQixFQUFDLFNBQVMsRUFBRSw2Q0FBNkMsQ0FBQyxDQUFBO0lBRWhHLE1BQU0seUJBQXlCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDakQsZUFBTyxDQUFDLFlBQVksQ0FDckIsQ0FBQTtJQUNELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxXQUFXLEdBQUcsWUFBWSxJQUFJLFFBQVEsQ0FBQTtJQUU1QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV0QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDUixNQUFNLElBQUksbUJBQVcsQ0FBQyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUFBO0lBQ3JGLENBQUM7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDNUMsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFO1lBQ04sR0FBRztTQUNKO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsRUFBRSxFQUFFLEVBQUU7U0FDUDtLQUNGLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE9BQU07SUFDUixDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFFMUMsc0dBQXNHO0lBQ3RHLG9HQUFvRztJQUNwRyx5QkFBeUI7SUFDekIscUJBQXFCO0lBQ3JCLHdDQUF3QztJQUN4QyxzREFBc0Q7SUFDdEQsT0FBTztJQUNQLHlDQUF5QztJQUN6QywrQkFBK0I7SUFDL0IsZ0NBQWdDO0lBQ2hDLDRGQUE0RjtJQUM1Rix1SEFBdUg7SUFDdkgsbUNBQW1DO0lBQ25DLHdDQUF3QztJQUN4QyxpQ0FBaUM7SUFDakMseUJBQXlCO0lBQ3pCLCtCQUErQjtJQUMvQixvRUFBb0U7SUFDcEUsU0FBUztJQUNULDBDQUEwQztJQUMxQyx3Q0FBd0M7SUFDeEMsZUFBZTtJQUNmLHVGQUF1RjtJQUN2RiwyR0FBMkc7SUFDM0csd0VBQXdFO0lBQ3hFLGtGQUFrRjtJQUNsRiwwQ0FBMEM7SUFDMUMsTUFBTTtJQUNOLEtBQUs7SUFFTCxvREFBb0Q7SUFFcEQsd0RBQXdEO0lBQ3hELGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsT0FBTztJQUNQLG9CQUFvQjtJQUNwQiw0RUFBNEU7SUFDNUUsTUFBTTtJQUNOLElBQUk7SUFFSix1RUFBdUU7SUFDdkUscUJBQXFCO0lBQ3JCLHNCQUFzQjtJQUN0Qiw0QkFBNEI7SUFDNUIsK0JBQStCO0lBQy9CLHFCQUFxQjtJQUNyQiw0QkFBNEI7SUFDNUIsd0JBQXdCO0lBQ3hCLGVBQWU7SUFDZix3QkFBd0I7SUFDeEIsWUFBWTtJQUNaLFlBQVk7SUFDWixPQUFPO0lBQ1AsS0FBSztBQUNQLENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBcUI7SUFDdEMsS0FBSyxFQUFFLGtCQUFrQjtDQUMxQixDQUFBIn0=
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getContactFormHtml = getContactFormHtml;
4
+ exports.getContactFormText = getContactFormText;
5
+ const template_1 = require("./template");
6
+ /**
7
+ * Generates HTML email for contact form notification
8
+ *
9
+ * @param data - Contact form data (includes subject)
10
+ * @param options - Optional theme and locale configuration
11
+ * @returns HTML string ready to send
12
+ */
13
+ async function getContactFormHtml(data, options) {
14
+ return await (0, template_1.renderHTML)(data, options);
15
+ }
16
+ async function getContactFormText(data, options) {
17
+ return await (0, template_1.renderText)(data, options);
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9jb250YWN0LWZvcm0vaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBV0EsZ0RBS0M7QUFFRCxnREFLQztBQXJCRCx5Q0FBb0Q7QUFFcEQ7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLGtCQUFrQixDQUN0QyxJQUFpQyxFQUNqQyxPQUE0QjtJQUU1QixPQUFPLE1BQU0sSUFBQSxxQkFBVSxFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRU0sS0FBSyxVQUFVLGtCQUFrQixDQUN0QyxJQUFpQyxFQUNqQyxPQUE0QjtJQUU1QixPQUFPLE1BQU0sSUFBQSxxQkFBVSxFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6QyxDQUFDIn0=