@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.
- package/.medusa/server/emails-previews/contact-form.js +22 -0
- package/.medusa/server/emails-previews/order-completed.js +44 -0
- package/.medusa/server/emails-previews/order-placed.js +43 -0
- package/.medusa/server/src/admin/index.js +10002 -0
- package/.medusa/server/src/admin/index.mjs +10001 -0
- package/.medusa/server/src/admin/lib/sdk.js +15 -0
- package/.medusa/server/src/api/admin/notification-plugin/events/route.js +20 -0
- package/.medusa/server/src/api/admin/notification-plugin/notifications/route.js +31 -0
- package/.medusa/server/src/api/admin/notification-plugin/render-template/route.js +26 -0
- package/.medusa/server/src/api/middlewares.js +42 -0
- package/.medusa/server/src/hooks/api/events.js +27 -0
- package/.medusa/server/src/hooks/api/notifications.js +42 -0
- package/.medusa/server/src/hooks/api/orders.js +50 -0
- package/.medusa/server/src/hooks/api/preview.js +33 -0
- package/.medusa/server/src/subscribers/order-completed.js +99 -0
- package/.medusa/server/src/subscribers/order-placed.js +97 -0
- package/.medusa/server/src/subscribers/payment-captured.js +86 -0
- package/.medusa/server/src/templates/emails/contact-form/index.js +19 -0
- package/.medusa/server/src/templates/emails/contact-form/template.js +28 -0
- package/.medusa/server/src/templates/emails/contact-form/translations/en.json +16 -0
- package/.medusa/server/src/templates/emails/contact-form/translations/index.js +15 -0
- package/.medusa/server/src/templates/emails/contact-form/translations/pl.json +12 -0
- package/.medusa/server/src/templates/emails/contact-form/types.js +3 -0
- package/.medusa/server/src/templates/emails/index.js +98 -0
- package/.medusa/server/src/templates/emails/order-completed/index.js +19 -0
- package/.medusa/server/src/templates/emails/order-completed/template.js +36 -0
- package/.medusa/server/src/templates/emails/order-completed/translations/en.json +25 -0
- package/.medusa/server/src/templates/emails/order-completed/translations/index.js +15 -0
- package/.medusa/server/src/templates/emails/order-completed/translations/pl.json +25 -0
- package/.medusa/server/src/templates/emails/order-completed/types.js +3 -0
- package/.medusa/server/src/templates/emails/order-placed/index.js +19 -0
- package/.medusa/server/src/templates/emails/order-placed/template.js +36 -0
- package/.medusa/server/src/templates/emails/order-placed/translations/en.json +24 -0
- package/.medusa/server/src/templates/emails/order-placed/translations/index.js +15 -0
- package/.medusa/server/src/templates/emails/order-placed/translations/pl.json +24 -0
- package/.medusa/server/src/templates/emails/order-placed/types.js +3 -0
- package/.medusa/server/src/templates/emails/types.js +9 -0
- package/.medusa/server/src/templates/shared/i18n/index.js +6 -0
- package/.medusa/server/src/templates/shared/i18n/languages.js +187 -0
- package/.medusa/server/src/templates/shared/i18n/types.js +3 -0
- package/.medusa/server/src/templates/shared/i18n/utils.js +186 -0
- package/.medusa/server/src/templates/shared/theme/index.js +6 -0
- package/.medusa/server/src/templates/shared/theme/presets/default/index.js +36 -0
- package/.medusa/server/src/templates/shared/utils/index.js +24 -0
- package/.medusa/server/src/utils/addresses.js +67 -0
- package/.medusa/server/src/utils/data/countries.js +1763 -0
- package/.medusa/server/src/utils/data/country-states.js +1283 -0
- package/.medusa/server/src/utils/data/currencies.js +748 -0
- package/.medusa/server/src/utils/date.js +26 -0
- package/.medusa/server/src/utils/index.js +21 -0
- package/.medusa/server/src/utils/money-amount-helpers.js +68 -0
- package/.medusa/server/src/utils/payment.js +21 -0
- package/.medusa/server/src/utils/plugins.js +20 -0
- package/README.md +114 -0
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcGxhY2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL29yZGVyLXBsYWNlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFVQSwyQ0FvR0M7QUExR0QscURBQTJGO0FBQzNGLHlGQUE2RjtBQUM3Riw4RkFBb0c7QUFDcEcsNkVBQXNJO0FBQ3RJLHVGQUE0RjtBQUU3RSxLQUFLLFVBQVUsd0JBQXdCLENBQUMsRUFDckQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQ3JDLFNBQVMsR0FDNEM7SUFDckQsTUFBTSxhQUFhLEdBQUcsSUFBQSwwQkFBZ0IsRUFBQyxTQUFTLEVBQUUsNkNBQTZDLENBQUMsQ0FBQTtJQUVoRyxNQUFNLHlCQUF5QixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQ2pELGVBQU8sQ0FBQyxZQUFZLENBQ3JCLENBQUE7SUFDRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sV0FBVyxHQUFHLFlBQVksSUFBSSxRQUFRLENBQUE7SUFFNUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ1IsTUFBTSxJQUFJLG1CQUFXLENBQUMsbUJBQVcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQTtJQUNuRixDQUFDO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFDLE1BQU0sRUFBRSxPQUFPO1FBQ2YsTUFBTSxFQUFFO1lBQ04sSUFBSTtZQUNKLE9BQU87WUFDUCxZQUFZO1lBQ1osdUJBQXVCO1lBQ3ZCLFNBQVM7WUFDVCxpQkFBaUI7WUFDakIseUJBQXlCO1lBQ3pCLGVBQWU7WUFDZixZQUFZO1lBQ1osb0JB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
|
|
@@ -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=
|