order-management 0.0.15 → 0.0.17

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.
@@ -8,6 +8,7 @@ const utils_1 = require("@medusajs/framework/utils");
8
8
  // import { INVOICE_MODULE } from "../../../../../medusa-invoice-sbl/src/modules/invoice"
9
9
  // import InvoiceModuleService from "../../../../../medusa-invoice-sbl/src/modules/invoice/service"
10
10
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
11
+ const resolve_options_1 = require("../../../../../utils/resolve-options");
11
12
  async function GET(req, res) {
12
13
  const authHeader = req.headers.authorization;
13
14
  const { id } = req.params;
@@ -16,7 +17,11 @@ async function GET(req, res) {
16
17
  return;
17
18
  }
18
19
  const token = authHeader.split(" ")[1];
19
- const secret = process.env.JWT_SECRET || "medusa-secret-guest-access";
20
+ // Get plugin options
21
+ const configModule = req.scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
22
+ const rawOptions = (0, resolve_options_1.extractOrderManagementOptions)(configModule);
23
+ const options = (0, resolve_options_1.resolveOrderManagementOptions)(rawOptions);
24
+ const secret = options.jwtSecret;
20
25
  try {
21
26
  const decoded = jsonwebtoken_1.default.verify(token, secret);
22
27
  if (!decoded || !decoded.guest_identifier) {
@@ -68,4 +73,4 @@ async function GET(req, res) {
68
73
  res.status(401).json({ message: "Unauthorized or invalid token", error: errorMessage });
69
74
  }
70
75
  }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2d1ZXN0LW9yZGVycy9baWRdL2ludm9pY2Uvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFNQSxrQkEwRUM7QUEvRUQscURBQXFFO0FBQ3JFLHlGQUF5RjtBQUN6RixtR0FBbUc7QUFDbkcsZ0VBQThDO0FBRXZDLEtBQUssVUFBVSxHQUFHLENBQ3JCLEdBQWtCLEVBQ2xCLEdBQW1CO0lBRW5CLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFBO0lBQzVDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXpCLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDbkQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsQ0FBQyxDQUFBO1FBQzVFLE9BQU07SUFDVixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN0QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSw0QkFBNEIsQ0FBQTtJQUVyRSxJQUFJLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxzQkFBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFlLENBQUE7UUFFdkQsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixF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
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2d1ZXN0LW9yZGVycy9baWRdL2ludm9pY2Uvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFPQSxrQkErRUM7QUFyRkQscURBQXFFO0FBQ3JFLHlGQUF5RjtBQUN6RixtR0FBbUc7QUFDbkcsZ0VBQThDO0FBQzlDLDBFQUFtSDtBQUU1RyxLQUFLLFVBQVUsR0FBRyxDQUNyQixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQTtJQUM1QyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUV6QixJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ25ELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLENBQUMsQ0FBQTtRQUM1RSxPQUFNO0lBQ1YsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFdEMscUJBQXFCO0lBQ3JCLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQy9FLE1BQU0sVUFBVSxHQUFHLElBQUEsK0NBQTZCLEVBQUMsWUFBWSxDQUFDLENBQUE7SUFDOUQsTUFBTSxPQUFPLEdBQUcsSUFBQSwrQ0FBNkIsRUFBQyxVQUFVLENBQUMsQ0FBQTtJQUN6RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFBO0lBRWhDLElBQUksQ0FBQztRQUNELE1BQU0s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
@@ -7,6 +7,7 @@ exports.POST = POST;
7
7
  const utils_1 = require("@medusajs/framework/utils");
8
8
  // import { IOrderModuleService } from "@medusajs/framework/types"
9
9
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
10
+ const resolve_options_1 = require("../../../../../utils/resolve-options");
10
11
  async function POST(req, res) {
11
12
  const authHeader = req.headers.authorization;
12
13
  const { id } = req.params;
@@ -20,7 +21,11 @@ async function POST(req, res) {
20
21
  return;
21
22
  }
22
23
  const token = authHeader.split(" ")[1];
23
- const secret = process.env.JWT_SECRET || "medusa-secret-guest-access";
24
+ // Get plugin options
25
+ const configModule = req.scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
26
+ const rawOptions = (0, resolve_options_1.extractOrderManagementOptions)(configModule);
27
+ const options = (0, resolve_options_1.resolveOrderManagementOptions)(rawOptions);
28
+ const secret = options.jwtSecret;
24
29
  try {
25
30
  const decoded = jsonwebtoken_1.default.verify(token, secret);
26
31
  if (!decoded || !decoded.guest_identifier) {
@@ -62,4 +67,4 @@ async function POST(req, res) {
62
67
  res.status(401).json({ message: "Unauthorized or invalid token", error: errorMessage });
63
68
  }
64
69
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2d1ZXN0LW9yZGVycy9baWRdL3JldHVybnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxvQkEwRUM7QUE5RUQscURBQThFO0FBQzlFLGtFQUFrRTtBQUNsRSxnRUFBOEM7QUFFdkMsS0FBSyxVQUFVLElBQUksQ0FDdEIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUE7SUFDNUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFDekIsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBSXRDLENBQUE7SUFFRCxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ25ELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLENBQUMsQ0FBQTtRQUM1RSxPQUFNO0lBQ1YsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsQ0FBQyxDQUFBO1FBQ2xFLE9BQU07SUFDVixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN0QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSw0QkFBNEIsQ0FBQTtJQUVyRSxJQUFJLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxzQkFBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFlLENBQUE7UUFFdkQsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQTtZQUMxRCxPQUFNO1FBQ1YsQ0FBQztRQUVELE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUVwQyxvREFBb0Q7UUFDcEQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFaEUscURBQXFEO1FBQ3JELE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxPQUFPO1lBQ2YsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLHNCQUFzQixDQUFDO1lBQ3RDLE9BQU8sRUFBRTtnQkFDTCxFQUFFLEVBQUUsRUFBRTtnQkFDTixLQUFLLEVBQUUsZ0JBQWdCO2FBQzFCO1NBQ0osQ0FBQyxDQUFBO1FBRUYsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRXZCLHFHQUFxRztRQUNyRyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3BFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLENBQUMsQ0FBQTtZQUNyRSxPQUFNO1FBQ1YsQ0FBQztRQUVELDJCQUEyQjtRQUMzQiwrREFBK0Q7UUFDL0QsZ0lBQWdJO1FBQ2hJLG9FQUFvRTtRQUVwRSxnRkFBZ0Y7UUFDaEYsMEZBQTBGO1FBRTFGLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2pCLE9BQU8sRUFBRSxvR0FBb0c7WUFDN0csUUFBUSxFQUFFLEVBQUU7WUFDWixLQUFLO1NBQ1IsQ0FBQyxDQUFBO0lBRU4sQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDYixNQUFNLFlBQVksR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUE7UUFDN0UsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7SUFDM0YsQ0FBQztBQUNMLENBQUMifQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2d1ZXN0LW9yZGVycy9baWRdL3JldHVybnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFNQSxvQkErRUM7QUFwRkQscURBQThFO0FBQzlFLGtFQUFrRTtBQUNsRSxnRUFBOEM7QUFDOUMsMEVBQW1IO0FBRTVHLEtBQUssVUFBVSxJQUFJLENBQ3RCLEdBQWtCLEVBQ2xCLEdBQW1CO0lBRW5CLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFBO0lBQzVDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQ3pCLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUl0QyxDQUFBO0lBRUQsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUNuRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxDQUFDLENBQUE7UUFDNUUsT0FBTTtJQUNWLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLCtCQUErQixFQUFFLENBQUMsQ0FBQTtRQUNsRSxPQUFNO0lBQ1YsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFdEMscUJBQXFCO0lBQ3JCLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FB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
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.GET = GET;
7
7
  const utils_1 = require("@medusajs/framework/utils");
8
8
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
9
+ const resolve_options_1 = require("../../../../utils/resolve-options");
9
10
  async function GET(req, res) {
10
11
  const authHeader = req.headers.authorization;
11
12
  const { id } = req.params;
@@ -14,7 +15,11 @@ async function GET(req, res) {
14
15
  return;
15
16
  }
16
17
  const token = authHeader.split(" ")[1];
17
- const secret = process.env.JWT_SECRET || "medusa-secret-guest-access";
18
+ // Get plugin options
19
+ const configModule = req.scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
20
+ const rawOptions = (0, resolve_options_1.extractOrderManagementOptions)(configModule);
21
+ const options = (0, resolve_options_1.resolveOrderManagementOptions)(rawOptions);
22
+ const secret = options.jwtSecret;
18
23
  try {
19
24
  const decoded = jsonwebtoken_1.default.verify(token, secret);
20
25
  if (!decoded || !decoded.guest_identifier) {
@@ -61,4 +66,4 @@ async function GET(req, res) {
61
66
  res.status(401).json({ message: "Unauthorized or invalid token", error: errorMessage });
62
67
  }
63
68
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2d1ZXN0LW9yZGVycy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBSUEsa0JBbUVDO0FBdEVELHFEQUFxRTtBQUNyRSxnRUFBOEM7QUFFdkMsS0FBSyxVQUFVLEdBQUcsQ0FDckIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUE7SUFDNUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFekIsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUNuRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxDQUFDLENBQUE7UUFDNUUsT0FBTTtJQUNWLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3RDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLDRCQUE0QixDQUFBO0lBRXJFLElBQUksQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLHNCQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQWUsQ0FBQTtRQUV2RCxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyxDQUFBO1lBQzFELE9BQU07UUFDVixDQUFDO1FBRUQsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUVqRCwrQkFBK0I7UUFDL0IsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFaEUscURBQXFEO1FBQ3JELE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxPQUFPO1lBQ2YsTUFBTSxFQUFFO2dCQUNKLEdBQUc7Z0JBQ0gsU0FBUztnQkFDVCxvQkFBb0I7Z0JBQ3BCLG1CQUFtQjtnQkFDbkIsb0JBQW9CO2dCQUNwQixnQkFBZ0I7Z0JBQ2hCLHNCQUFzQjtnQkFDdEIsWUFBWTtnQkFDWixPQUFPO2dCQUNQLGFBQWE7Z0JBQ2Isc0JBQXNCO2FBQ3pCO1lBQ0QsT0FBTyxFQUFFO2dCQUNMLEVBQUUsRUFBRSxFQUFFO2dCQUNOLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3BELEtBQUssRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDckQ7U0FDSixDQUFDLENBQUE7UUFFRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFdkIscUdBQXFHO1FBQ3JHLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsQ0FBQyxDQUFBO1lBQ3JFLE9BQU07UUFDVixDQUFDO1FBRUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDakIsS0FBSztTQUNSLENBQUMsQ0FBQTtJQUVOLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsTUFBTSxZQUFZLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFBO1FBQzdFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLCtCQUErQixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO0lBQzNGLENBQUM7QUFDTCxDQUFDIn0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2d1ZXN0LW9yZGVycy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0Esa0JBd0VDO0FBNUVELHFEQUFxRTtBQUNyRSxnRUFBOEM7QUFDOUMsdUVBQWdIO0FBRXpHLEtBQUssVUFBVSxHQUFHLENBQ3JCLEdBQWtCLEVBQ2xCLEdBQW1CO0lBRW5CLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFBO0lBQzVDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXpCLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDbkQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsQ0FBQyxDQUFBO1FBQzVFLE9BQU07SUFDVixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUV0QyxxQkFBcUI7SUFDckIsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDL0UsTUFBTSxVQUFVLEdBQUcsSUFBQSwrQ0FBNkIsRUFBQyxZQUFZLENBQUMsQ0FBQTtJQUM5RCxNQUFNLE9BQU8sR0FBRyxJQUFBLCtDQUE2QixFQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3pELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUE7SUFFaEMsSUFBSSxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsc0JBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBZSxDQUFBO1FBRXZELElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxDQUFDLENBQUE7WUFDMUQsT0FBTTtRQUNWLENBQUM7UUFFRCxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFBO1FBRWpELCtCQUErQjtRQUMvQixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUVoRSxxREFBcUQ7UUFDckQsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDdkMsTUFBTSxFQUFFLE9BQU87WUFDZixNQUFNLEVBQUU7Z0JBQ0osR0FBRztnQkFDSCxTQUFTO2dCQUNULG9CQUFvQjtnQkFDcEIsbUJBQW1CO2dCQUNuQixvQkFBb0I7Z0JBQ3BCLGdCQUFnQjtnQkFDaEIsc0JBQXNCO2dCQUN0QixZQUFZO2dCQUNaLE9BQU87Z0JBQ1AsYUFBYTtnQkFDYixzQkFBc0I7YUFDekI7WUFDRCxPQUFPLEVBQUU7Z0JBQ0wsRUFBRSxFQUFFLEVBQUU7Z0JBQ04sV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDcEQsS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUNyRDtTQUNKLENBQUMsQ0FBQTtRQUVGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUV2QixxR0FBcUc7UUFDckcsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwRSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxDQUFDLENBQUE7WUFDckUsT0FBTTtRQUNWLENBQUM7UUFFRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNqQixLQUFLO1NBQ1IsQ0FBQyxDQUFBO0lBRU4sQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDYixNQUFNLFlBQVksR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUE7UUFDN0UsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7SUFDM0YsQ0FBQztBQUNMLENBQUMifQ==
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.GET = GET;
7
7
  const utils_1 = require("@medusajs/framework/utils");
8
8
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
9
+ const resolve_options_1 = require("../../../utils/resolve-options");
9
10
  async function GET(req, res) {
10
11
  const authHeader = req.headers.authorization;
11
12
  if (!authHeader || !authHeader.startsWith("Bearer ")) {
@@ -13,7 +14,11 @@ async function GET(req, res) {
13
14
  return;
14
15
  }
15
16
  const token = authHeader.split(" ")[1];
16
- const secret = process.env.JWT_SECRET || "medusa-secret-guest-access";
17
+ // Get plugin options
18
+ const configModule = req.scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
19
+ const rawOptions = (0, resolve_options_1.extractOrderManagementOptions)(configModule);
20
+ const options = (0, resolve_options_1.resolveOrderManagementOptions)(rawOptions);
21
+ const secret = options.jwtSecret;
17
22
  try {
18
23
  const decoded = jsonwebtoken_1.default.verify(token, secret);
19
24
  if (!decoded || !decoded.guest_identifier) {
@@ -76,4 +81,4 @@ async function GET(req, res) {
76
81
  res.status(401).json({ message: "Unauthorized or invalid token", error: errorMessage });
77
82
  }
78
83
  }
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2d1ZXN0LW9yZGVycy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUlBLGtCQXNGQztBQXpGRCxxREFBcUU7QUFDckUsZ0VBQThDO0FBRXZDLEtBQUssVUFBVSxHQUFHLENBQ3JCLEdBQWtCLEVBQ2xCLEdBQW1CO0lBRW5CLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFBO0lBRTVDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDbkQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsQ0FBQyxDQUFBO1FBQzVFLE9BQU07SUFDVixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN0QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSw0QkFBNEIsQ0FBQTtJQUVyRSxJQUFJLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxzQkFBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFlLENBQUE7UUFFdkQsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQTtZQUMxRCxPQUFNO1FBQ1YsQ0FBQztRQUVELE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUE7UUFFakQsZ0NB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
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2d1ZXN0LW9yZGVycy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUtBLGtCQTJGQztBQS9GRCxxREFBcUU7QUFDckUsZ0VBQThDO0FBQzlDLG9FQUE2RztBQUV0RyxLQUFLLFVBQVUsR0FBRyxDQUNyQixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQTtJQUU1QyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ25ELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLENBQUMsQ0FBQTtRQUM1RSxPQUFNO0lBQ1YsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFdEMscUJBQXFCO0lBQ3JCLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQy9FLE1BQU0sVUFBVSxHQUFHLElBQUEsK0NBQTZCLEVBQUMsWUFBWSxDQUFDLENBQUE7SUFDOUQsTUFBTSxPQUFPLEdBQUcsSUFBQSwrQ0FBNkIsRUFBQyxVQUFVLENBQUMsQ0FBQTtJQUN6RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFBO0lBRWhDLElBQUksQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLHNCQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQWUsQ0FBQTtRQUV2RCxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFD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
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.POST = POST;
7
4
  const otp_service_1 = require("../../../../services/otp-service");
8
5
  const utils_1 = require("@medusajs/framework/utils");
9
6
  const template_1 = require("../../../../utils/template");
10
- const path_1 = __importDefault(require("path"));
7
+ const send_notification_step_1 = require("../../../../workflows/steps/send-notification-step");
8
+ const resolve_options_1 = require("../../../../utils/resolve-options");
11
9
  const otpService = new otp_service_1.OtpService();
12
10
  async function POST(req, res) {
13
11
  const { email, phone } = req.body;
@@ -21,6 +19,28 @@ async function POST(req, res) {
21
19
  return;
22
20
  }
23
21
  try {
22
+ // Check if OTP template is configured (mandatory)
23
+ let templatePath = null;
24
+ try {
25
+ const configModule = req.scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
26
+ const pluginOptions = (0, resolve_options_1.extractOrderManagementOptions)(configModule);
27
+ const options = (0, resolve_options_1.resolveOrderManagementOptions)(pluginOptions);
28
+ templatePath = options.email.otpTemplate;
29
+ if (!templatePath) {
30
+ console.error("[OTP Service] OTP template path not configured");
31
+ res.status(500).json({
32
+ message: "OTP template is not configured. Please configure email.otpTemplate in plugin options."
33
+ });
34
+ return;
35
+ }
36
+ }
37
+ catch (error) {
38
+ console.error("[OTP Service] Could not resolve config:", error);
39
+ res.status(500).json({
40
+ message: "Failed to resolve plugin configuration. OTP template is required."
41
+ });
42
+ return;
43
+ }
24
44
  // Resolve Query to check for registered customers
25
45
  const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
26
46
  const { data: customers } = await query.graph({
@@ -36,106 +56,49 @@ async function POST(req, res) {
36
56
  return;
37
57
  }
38
58
  const otp = await otpService.generate(identifier);
39
- // Generate content using template
40
- const templatePath = path_1.default.join("src", "templates", "emails", "otp-verification-default.html");
59
+ // Generate content using configured template
41
60
  const renderedTemplate = (0, template_1.loadAndRenderTemplate)(templatePath, {
42
61
  otp,
43
62
  });
63
+ if (!renderedTemplate) {
64
+ console.error(`[OTP Service] Failed to load or render template from ${templatePath}`);
65
+ res.status(500).json({
66
+ message: "Failed to load or render OTP template",
67
+ error: `Template file not found or invalid: ${templatePath}`
68
+ });
69
+ return;
70
+ }
44
71
  const subject = `Your Verification Code: ${otp}`;
45
- const expires_in = "15 minutes";
46
- // Fallback or use rendered content
47
- const htmlContent = renderedTemplate || `<div style="font-family:sans-serif;padding:20px;"><h2>Verification Code</h2><p>Your code is: <b style="font-size:24px;color:#2563eb;">${otp}</b></p><p>Expires in ${expires_in}.</p></div>`;
48
- const textContent = `Your verification code is: ${otp}. It expires in ${expires_in}.`;
72
+ // Prepare template data for notification
73
+ const templateData = {
74
+ otp,
75
+ otp_code: otp,
76
+ };
77
+ // Send notification using the standardized helper function
49
78
  try {
50
- // Resolve Notification Service
51
- let notificationService = req.scope.resolve(utils_1.Modules.NOTIFICATION, { allowUnregistered: true });
52
- if (!notificationService) {
53
- try {
54
- notificationService = req.scope.resolve("notificationService");
55
- }
56
- catch (e) { }
57
- }
58
- if (!notificationService) {
59
- console.error("[OTP Service] No notification service found");
60
- res.status(200).json({ message: "OTP generated but notification service unavailable" });
61
- return;
62
- }
63
- // Inspect provider if possible
64
- try {
65
- const provider = req.scope.resolve("notificationProvider_email", { allowUnregistered: true });
66
- if (provider) {
67
- console.log(`[OTP Debug] Email provider detected: ${provider.constructor?.name}`);
68
- }
69
- }
70
- catch (e) { }
71
- // EXACT structure from send-order-email.ts
72
- const payload = {
79
+ await (0, send_notification_step_1.sendNotification)({
73
80
  to: identifier,
74
- channel: "email",
75
81
  subject: subject,
76
- html: htmlContent,
77
- text: textContent,
78
- body: htmlContent,
79
- data: {
80
- subject: subject,
81
- html: htmlContent,
82
- text: textContent,
83
- otp,
84
- otp_code: otp,
85
- },
86
- };
87
- console.log(`[!!! OTP VERSION 5 !!!] Sending to: ${identifier}. OTP: ${otp}`);
88
- try {
89
- if (typeof notificationService.createNotifications === "function") {
90
- console.log("[OTP Debug] Executing createNotifications");
91
- await notificationService.createNotifications([payload]);
92
- }
93
- else if (typeof notificationService.create === "function") {
94
- console.log("[OTP Debug] Executing create");
95
- await notificationService.create(payload);
96
- }
97
- else if (typeof notificationService.send === "function") {
98
- console.log("[OTP Debug] Executing send");
99
- await notificationService.send("otp-request", {
100
- to: identifier,
101
- data: payload.data
102
- });
103
- }
104
- // SMTP Fallback for debugging
105
- if (process.env.OTP_DEBUG_SMTP === "true") {
106
- try {
107
- const nodemailer = require("nodemailer");
108
- const transporter = nodemailer.createTransport({
109
- host: process.env.SMTP_HOST,
110
- port: process.env.SMTP_PORT ? Number(process.env.SMTP_PORT) : undefined,
111
- secure: process.env.SMTP_SECURE === "true",
112
- auth: process.env.SMTP_AUTH_USER ? { user: process.env.SMTP_AUTH_USER, pass: process.env.SMTP_AUTH_PASS } : undefined,
113
- });
114
- await transporter.sendMail({
115
- from: process.env.SMTP_FROM || process.env.SMTP_AUTH_USER,
116
- to: identifier,
117
- subject: subject,
118
- html: htmlContent,
119
- text: textContent,
120
- });
121
- console.log("[OTP Debug] SMTP Direct sent");
122
- }
123
- catch (sErr) { }
124
- }
125
- console.log(`[!!! OTP VERSION 5 !!!] Completed for ${identifier}.`);
126
- }
127
- catch (sendError) {
128
- console.error(`[OTP Service] Send failed: ${sendError}`);
129
- }
82
+ renderedContent: renderedTemplate,
83
+ templateData: templateData,
84
+ }, req.scope);
85
+ console.log(`[OTP Service] OTP sent successfully to ${identifier}`);
130
86
  }
131
- catch (notifError) {
132
- console.error(`[OTP Service] Notif error: ${notifError}`);
87
+ catch (error) {
88
+ const errorMessage = error instanceof Error ? error.message : String(error);
89
+ console.error(`[OTP Service] Failed to send OTP to ${identifier}:`, errorMessage);
90
+ res.status(500).json({
91
+ message: "Failed to send OTP",
92
+ error: errorMessage
93
+ });
94
+ return;
133
95
  }
134
96
  res.status(200).json({ message: "OTP sent successfully" });
135
97
  }
136
98
  catch (error) {
137
99
  const errorMessage = error instanceof Error ? error.message : "Unknown error";
100
+ console.error(`[OTP Service] Error processing OTP request:`, errorMessage);
138
101
  res.status(500).json({ message: "Failed to generate OTP", error: errorMessage });
139
102
  }
140
103
  }
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL290cC9yZXF1ZXN0L3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBUUEsb0JBMklDO0FBbEpELGtFQUE2RDtBQUM3RCxxREFBOEU7QUFDOUUseURBQWtFO0FBQ2xFLGdEQUF1QjtBQUV2QixNQUFNLFVBQVUsR0FBRyxJQUFJLHdCQUFVLEVBQUUsQ0FBQTtBQUU1QixLQUFLLFVBQVUsSUFBSSxDQUN0QixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUEwQyxDQUFBO0lBRXZFLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxDQUFDLENBQUE7UUFDdEUsT0FBTTtJQUNWLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxLQUFLLElBQUksS0FBSyxDQUFBO0lBQ2pDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNkLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQTtRQUN2RCxPQUFNO0lBQ1YsQ0FBQztJQUVELElBQUksQ0FBQztRQUNELGtEQUFrRDtRQUNsRCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNoRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUMxQyxNQUFNLEVBQUUsVUFBVTtZQUNsQixNQUFNLEVBQUUs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
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL290cC9yZXF1ZXN0L3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBWUEsb0JBOEdDO0FBekhELGtFQUE2RDtBQUM3RCxxREFBcUU7QUFDckUseURBQTBGO0FBQzFGLCtGQUFxRjtBQUNyRix1RUFHMEM7QUFFMUMsTUFBTSxVQUFVLEdBQUcsSUFBSSx3QkFBVSxFQUFFLENBQUE7QUFFNUIsS0FBSyxVQUFVLElBQUksQ0FDdEIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBMEMsQ0FBQTtJQUV2RSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsQ0FBQyxDQUFBO1FBQ3RFLE9BQU07SUFDVixDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQTtJQUNqQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDZCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUE7UUFDdkQsT0FBTTtJQUNWLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDRCxrREFBa0Q7UUFDbEQsSUFBSSxZQUFZLEdBQWtCLElBQUksQ0FBQTtRQUN0QyxJQUFJLENBQUM7WUFDRCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQTtZQUMvRSxNQUFNLGFBQWEsR0FBRyxJQUFBLCtDQUE2QixFQUFDLFlBQVksQ0FB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
@@ -32,7 +32,8 @@ async function POST(req, res) {
32
32
  }
33
33
  });
34
34
  const customerId = customers.length > 0 ? customers[0].id : undefined;
35
- const token = otpService.generateToken(identifier, customerId);
35
+ const configModule = req.scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
36
+ const token = otpService.generateToken(identifier, customerId, configModule);
36
37
  res.status(200).json({
37
38
  message: "OTP verified successfully",
38
39
  token,
@@ -44,4 +45,4 @@ async function POST(req, res) {
44
45
  res.status(500).json({ message: "Failed to verify OTP", error: errorMessage });
45
46
  }
46
47
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL290cC92ZXJpZnkvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxvQkFpREM7QUF0REQscURBQXFFO0FBQ3JFLGtFQUE2RDtBQUU3RCxNQUFNLFVBQVUsR0FBRyxJQUFJLHdCQUFVLEVBQUUsQ0FBQTtBQUU1QixLQUFLLFVBQVUsSUFBSSxDQUN0QixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBdUQsQ0FBQTtJQUV6RixJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdCLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLENBQUMsQ0FBQTtRQUNyRSxPQUFNO0lBQ1YsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLEtBQUssSUFBSSxLQUFLLENBQUE7SUFFakMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFBO1FBQ3ZELE9BQU07SUFDVixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUV4RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxDQUFDLENBQUE7WUFDM0QsT0FBTTtRQUNWLENBQUM7UUFFRCxzREFBc0Q7UUFDdEQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDaEUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDMUMsTUFBTSxFQUFFLFVBQVU7WUFDbEIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2QsT0FBTyxFQUFFO2dCQUNMLEtBQUssRUFBRSxVQUFVO2dCQUNqQixXQUFXLEVBQUUsS0FBSzthQUNyQjtTQUNKLENBQUMsQ0FBQTtRQUVGLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7UUFDckUsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFFOUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDakIsT0FBTyxFQUFFLDJCQUEyQjtZQUNwQyxLQUFLO1lBQ0wsV0FBVyxFQUFFLFVBQVU7U0FDMUIsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDYixNQUFNLFlBQVksR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUE7UUFDN0UsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7SUFDbEYsQ0FBQztBQUNMLENBQUMifQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL290cC92ZXJpZnkvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxvQkFrREM7QUF2REQscURBQXFFO0FBQ3JFLGtFQUE2RDtBQUU3RCxNQUFNLFVBQVUsR0FBRyxJQUFJLHdCQUFVLEVBQUUsQ0FBQTtBQUU1QixLQUFLLFVBQVUsSUFBSSxDQUN0QixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBdUQsQ0FBQTtJQUV6RixJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdCLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLENBQUMsQ0FBQTtRQUNyRSxPQUFNO0lBQ1YsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLEtBQUssSUFBSSxLQUFLLENBQUE7SUFFakMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFBO1FBQ3ZELE9BQU07SUFDVixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUV4RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxDQUFDLENBQUE7WUFDM0QsT0FBTTtRQUNWLENBQUM7UUFFRCxzREFBc0Q7UUFDdEQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDaEUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDMUMsTUFBTSxFQUFFLFVBQVU7WUFDbEIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2QsT0FBTyxFQUFFO2dCQUNMLEtBQUssRUFBRSxVQUFVO2dCQUNqQixXQUFXLEVBQUUsS0FBSzthQUNyQjtTQUNKLENBQUMsQ0FBQTtRQUVGLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7UUFDckUsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDL0UsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBRTVFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2pCLE9BQU8sRUFBRSwyQkFBMkI7WUFDcEMsS0FBSztZQUNMLFdBQVcsRUFBRSxVQUFVO1NBQzFCLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsTUFBTSxZQUFZLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFBO1FBQzdFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO0lBQ2xGLENBQUM7QUFDTCxDQUFDIn0=
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Configuration types for order-management plugin
4
+ * Configuration is now passed through plugin options in medusa-config.ts
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHIn0=
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.OtpService = void 0;
7
7
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
8
+ const resolve_options_1 = require("../utils/resolve-options");
8
9
  // In-memory store for OTPs.
9
10
  // NOTE: In a real production environment with multiple server instances,
10
11
  // this should be replaced with Redis or a database table.
@@ -45,9 +46,14 @@ class OtpService {
45
46
  /**
46
47
  * Generates a JWT token scoped for guest access.
47
48
  */
48
- generateToken(identifier, customerId) {
49
- // In production, use a secure secret from environment variables
50
- const secret = process.env.JWT_SECRET || "medusa-secret-guest-access";
49
+ generateToken(identifier, customerId, configModule) {
50
+ // Get plugin options
51
+ if (!configModule) {
52
+ throw new Error("configModule is required for generateToken");
53
+ }
54
+ const rawOptions = (0, resolve_options_1.extractOrderManagementOptions)(configModule);
55
+ const options = (0, resolve_options_1.resolveOrderManagementOptions)(rawOptions);
56
+ const secret = options.jwtSecret;
51
57
  return jsonwebtoken_1.default.sign({
52
58
  guest_identifier: identifier,
53
59
  customer_id: customerId,
@@ -56,4 +62,4 @@ class OtpService {
56
62
  }
57
63
  }
58
64
  exports.OtpService = OtpService;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RwLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvb3RwLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQThCO0FBRTlCLDZCQUE2QjtBQUM3QiwwRUFBMEU7QUFDMUUsMERBQTBEO0FBQzFELE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUE4QyxDQUFBO0FBRXRFLE1BQWEsVUFBVTtJQUNuQjs7O09BR0c7SUFDSCxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQWtCO1FBQzdCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUVsRSxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRTtZQUNyQixHQUFHO1lBQ0gsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxhQUFhO1NBQ3hELENBQUMsQ0FBQTtRQUVGLE9BQU8sR0FBRyxDQUFBO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBa0IsRUFBRSxJQUFZO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFckMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1IsT0FBTyxLQUFLLENBQUE7UUFDaEIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM5QixRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQzNCLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDcEIsT0FBTyxLQUFLLENBQUE7UUFDaEIsQ0FBQztRQUVELDJCQUEyQjtRQUMzQixRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzNCLE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYSxDQUFDLFVBQWtCLEVBQUUsVUFBbUI7UUFDakQsZ0VBQWdFO1FBQ2hFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLDRCQUE0QixDQUFBO1FBRXJFLE9BQU8sc0JBQUcsQ0FBQyxJQUFJLENBQ1g7WUFDSSxnQkFBZ0IsRUFBRSxVQUFVO1lBQzVCLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLEtBQUssRUFBRSxjQUFjO1NBQ3hCLEVBQ0QsTUFBTSxFQUNOLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUN0QixDQUFBO0lBQ0wsQ0FBQztDQUNKO0FBMURELGdDQTBEQyJ9
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RwLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvb3RwLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQThCO0FBQzlCLDhEQUF1RztBQUV2Ryw2QkFBNkI7QUFDN0IsMEVBQTBFO0FBQzFFLDBEQUEwRDtBQUMxRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBOEMsQ0FBQTtBQUV0RSxNQUFhLFVBQVU7SUFDbkI7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFrQjtRQUM3QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7UUFFbEUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUU7WUFDckIsR0FBRztZQUNILFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsYUFBYTtTQUN4RCxDQUFDLENBQUE7UUFFRixPQUFPLEdBQUcsQ0FBQTtJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQWtCLEVBQUUsSUFBWTtRQUN6QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRXJDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNSLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDOUIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUMzQixPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3BCLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7UUFFRCwyQkFBMkI7UUFDM0IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUMzQixPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxVQUFrQixFQUFFLFVBQW1CLEVBQUUsWUFBc0I7UUFDekUscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUE7UUFDakUsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLElBQUEsK0NBQTZCLEVBQUMsWUFBWSxDQUFDLENBQUE7UUFDOUQsTUFBTSxPQUFPLEdBQUcsSUFBQSwrQ0FBNkIsRUFBQyxVQUFVLENBQUMsQ0FBQTtRQUN6RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFBO1FBRWhDLE9BQU8sc0JBQUcsQ0FBQyxJQUFJLENBQ1g7WUFDSSxnQkFBZ0IsRUFBRSxVQUFVO1lBQzVCLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLEtBQUssRUFBRSxjQUFjO1NBQ3hCLEVBQ0QsTUFBTSxFQUNOLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUN0QixDQUFBO0lBQ0wsQ0FBQztDQUNKO0FBL0RELGdDQStEQyJ9
@@ -5,35 +5,7 @@ exports.default = sendOrderEmailHandler;
5
5
  const utils_1 = require("@medusajs/framework/utils");
6
6
  const resolve_options_1 = require("../utils/resolve-options");
7
7
  const template_1 = require("../utils/template");
8
- /**
9
- * Prepare email payload for notification service
10
- */
11
- function prepareEmailPayload(to, subject, htmlContent) {
12
- // Create plain text version from HTML
13
- const textContent = htmlContent
14
- .replace(/<[^>]*>/g, '') // Remove HTML tags
15
- .replace(/\s+/g, ' ') // Collapse whitespace
16
- .trim();
17
- const payload = {
18
- to,
19
- channel: "email",
20
- subject,
21
- // Root level fields for SMTP providers
22
- html: htmlContent,
23
- text: textContent,
24
- body: htmlContent, // Some providers expect 'body' field
25
- // NOTE: We intentionally do NOT set `template` to raw HTML here. Some
26
- // notification providers interpret `template` as a template identifier and
27
- // may switch to template-based sending which can ignore or strip content.
28
- // Omit `template` when sending raw HTML content.
29
- data: {
30
- subject,
31
- html: htmlContent,
32
- text: textContent,
33
- },
34
- };
35
- return payload;
36
- }
8
+ const send_notification_step_1 = require("../workflows/steps/send-notification-step");
37
9
  /**
38
10
  * Subscriber handler for order.placed event
39
11
  * Sends email with order data when an order is placed (if template is configured)
@@ -46,7 +18,7 @@ async function sendOrderEmailHandler({ event: { data }, container, }) {
46
18
  const configModule = container.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
47
19
  const pluginOptions = (0, resolve_options_1.extractOrderManagementOptions)(configModule);
48
20
  const options = (0, resolve_options_1.resolveOrderManagementOptions)(pluginOptions);
49
- templatePath = options.email.template;
21
+ templatePath = options.email.orderConfirmTemplate;
50
22
  if (!templatePath) {
51
23
  console.log("[Order Email Subscriber] Email template path not configured, skipping email");
52
24
  return;
@@ -117,8 +89,11 @@ async function sendOrderEmailHandler({ event: { data }, container, }) {
117
89
  filters: { email: email, has_account: true }
118
90
  });
119
91
  const isRegistered = customers.length > 0;
120
- const storefrontUrl = process.env.STOREFRONT_URL || "http://localhost:8000";
121
- const claimLink = `${storefrontUrl}/account/orders/claim?order_id=${orderData.id}`;
92
+ // Get plugin options for storefront URL
93
+ const configModule = container.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
94
+ const rawOptions = (0, resolve_options_1.extractOrderManagementOptions)(configModule);
95
+ const options = (0, resolve_options_1.resolveOrderManagementOptions)(rawOptions);
96
+ const claimLink = `${options.storefrontUrl}/account/orders/claim?order_id=${orderData.id}`;
122
97
  const templateData = {
123
98
  order_id: orderData.id || "N/A",
124
99
  order_status: orderData.status || "N/A",
@@ -138,112 +113,15 @@ async function sendOrderEmailHandler({ event: { data }, container, }) {
138
113
  console.error(`[Order Email Subscriber] Failed to load or render template from ${templatePath}`);
139
114
  return;
140
115
  }
141
- // Resolve notification service
142
- const notificationService = container.resolve(utils_1.Modules.NOTIFICATION);
143
- if (!notificationService) {
144
- console.error("[Order Email Subscriber] Notification service is not configured");
145
- return;
146
- }
147
- // Prepare email payload
148
- const subject = "Order Confirmation";
149
- const payload = prepareEmailPayload(email, subject, renderedTemplate);
150
- // Diagnostic summary & send email
151
- console.log(`[Order Email Subscriber] Payload keys: ${Object.keys(payload).join(", ")} ; templatePresent=${payload.template ? 'yes' : 'no'}`);
116
+ // Send notification using helper function
152
117
  try {
153
- if (typeof notificationService.createNotifications === "function") {
154
- console.log(`[Order Email Subscriber] Using createNotifications to send email`);
155
- const res = await notificationService.createNotifications([payload]);
156
- try {
157
- console.log(`[Order Email Subscriber] createNotifications response: ${JSON.stringify(res)}`);
158
- }
159
- catch (e) {
160
- console.log(`[Order Email Subscriber] createNotifications response: <non-serializable>`);
161
- }
162
- console.log(`[Order Email Subscriber] Email sent successfully for order ${orderId}`);
163
- // Optional SMTP fallback for debugging/delivery verification. Enable by
164
- // setting FORCE_SMTP_REDELIVER=true. This attempts a direct Nodemailer
165
- // send using SMTP env vars and logs the SMTP response (messageId, accepted, etc.).
166
- if (process.env.FORCE_SMTP_REDELIVER === "true") {
167
- try {
168
- console.log("[Order Email Subscriber] SMTP fallback enabled - attempting direct send via Nodemailer");
169
- // @ts-ignore - optional dependency
170
- const nodemailer = require("nodemailer");
171
- const transportOpts = {
172
- host: process.env.SMTP_HOST,
173
- port: process.env.SMTP_PORT ? Number(process.env.SMTP_PORT) : undefined,
174
- secure: process.env.SMTP_SECURE === "true",
175
- auth: process.env.SMTP_AUTH_USER ? { user: process.env.SMTP_AUTH_USER, pass: process.env.SMTP_AUTH_PASS } : undefined,
176
- logger: true,
177
- debug: true,
178
- };
179
- const transporter = nodemailer.createTransport(transportOpts);
180
- const mailOptions = {
181
- from: process.env.SMTP_FROM || process.env.SMTP_AUTH_USER,
182
- to: payload.to,
183
- subject: payload.subject,
184
- html: payload.html,
185
- text: payload.text,
186
- };
187
- const sendRes = await transporter.sendMail(mailOptions);
188
- try {
189
- console.log(`[Order Email Subscriber] SMTP fallback sendMail response: ${JSON.stringify(sendRes)}`);
190
- }
191
- catch (e) {
192
- console.log(`[Order Email Subscriber] SMTP fallback sendMail response: <non-serializable>`);
193
- }
194
- }
195
- catch (err) {
196
- console.error("[Order Email Subscriber] SMTP fallback failed:", err instanceof Error ? err.message : String(err));
197
- }
198
- }
199
- }
200
- else if (typeof notificationService.create === "function") {
201
- console.log(`[Order Email Subscriber] Using create to send email`);
202
- const res = await notificationService.create(payload);
203
- try {
204
- console.log(`[Order Email Subscriber] create response: ${JSON.stringify(res)}`);
205
- }
206
- catch (e) {
207
- console.log(`[Order Email Subscriber] create response: <non-serializable>`);
208
- }
209
- console.log(`[Order Email Subscriber] Email sent successfully for order ${orderId}`);
210
- if (process.env.FORCE_SMTP_REDELIVER === "true") {
211
- try {
212
- console.log("[Order Email Subscriber] SMTP fallback enabled - attempting direct send via Nodemailer");
213
- // @ts-ignore - optional dependency
214
- const nodemailer = require("nodemailer");
215
- const transportOpts = {
216
- host: process.env.SMTP_HOST,
217
- port: process.env.SMTP_PORT ? Number(process.env.SMTP_PORT) : undefined,
218
- secure: process.env.SMTP_SECURE === "true",
219
- auth: process.env.SMTP_AUTH_USER ? { user: process.env.SMTP_AUTH_USER, pass: process.env.SMTP_AUTH_PASS } : undefined,
220
- logger: true,
221
- debug: true,
222
- };
223
- const transporter = nodemailer.createTransport(transportOpts);
224
- const mailOptions = {
225
- from: process.env.SMTP_FROM || process.env.SMTP_AUTH_USER,
226
- to: payload.to,
227
- subject: payload.subject,
228
- html: payload.html,
229
- text: payload.text,
230
- };
231
- const sendRes = await transporter.sendMail(mailOptions);
232
- try {
233
- console.log(`[Order Email Subscriber] SMTP fallback sendMail response: ${JSON.stringify(sendRes)}`);
234
- }
235
- catch (e) {
236
- console.log(`[Order Email Subscriber] SMTP fallback sendMail response: <non-serializable>`);
237
- }
238
- }
239
- catch (err) {
240
- console.error("[Order Email Subscriber] SMTP fallback failed:", err instanceof Error ? err.message : String(err));
241
- }
242
- }
243
- }
244
- else {
245
- console.error("[Order Email Subscriber] Notification service does not support sending notifications");
246
- }
118
+ await (0, send_notification_step_1.sendNotification)({
119
+ to: email,
120
+ subject: "Order Confirmation",
121
+ renderedContent: renderedTemplate,
122
+ templateData: templateData,
123
+ }, container);
124
+ console.log(`[Order Email Subscriber] Email sent successfully for order ${orderId}`);
247
125
  }
248
126
  catch (error) {
249
127
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -263,4 +141,4 @@ async function sendOrderEmailHandler({ event: { data }, container, }) {
263
141
  exports.config = {
264
142
  event: "order.placed",
265
143
  };
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1vcmRlci1lbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9zZW5kLW9yZGVyLWVtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW1FQSx3Q0E4TkM7QUFoU0QscURBQThFO0FBRTlFLDhEQUdpQztBQUNqQyxnREFBaUY7QUFPakY7O0dBRUc7QUFDSCxTQUFTLG1CQUFtQixDQUMxQixFQUFVLEVBQ1YsT0FBZSxFQUNmLFdBQW1CO0lBRW5CLHNDQUFzQztJQUN0QyxNQUFNLFdBQVcsR0FBRyxXQUFXO1NBQzVCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsbUJBQW1CO1NBQzNDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsc0JBQXNCO1NBQzNDLElBQUksRUFBRSxDQUFBO0lBRVQsTUFBTSxPQUFPLEdBYVQ7UUFDRixFQUFFO1FBQ0YsT0FBTyxFQUFFLE9BQU87UUFDaEIsT0FBTztRQUNQLHVDQUF1QztRQUN2QyxJQUFJLEVBQUUsV0FBVztRQUNqQixJQUFJLEVBQUUsV0FBVztRQUNqQixJQUFJLEVBQUUsV0FBVyxFQUFFLHFDQUFxQztRQUN4RCxzRUFBc0U7UUFDdEUsMkVBQTJFO1FBQzNFLDBFQUEwRTtRQUMxRSxpREFBaUQ7UUFDakQsSUFBSSxFQUFFO1lBQ0osT0FBTztZQUNQLElBQUksRUFBRSxXQUFXO1lBQ2pCLElBQUksRUFBRSxXQUFXO1NBQ2xCO0tBQ0YsQ0FBQTtJQUVELE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUM7QUFFRDs7O0dBR0c7QUFDWSxLQUFLLFVBQVUscUJBQXFCLENBQUMsRUFDbEQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQ2YsU0FBUyxHQUM0QjtJQUNyQyxJQUFJLENBQUM7UUFDSCx3Q0FBd0M7UUFDeEMsSUFBSSxZQUFZLEdBQWtCLElBQUksQ0FBQTtRQUN0QyxJQUFJLENBQUM7WUFDSCxNQUFN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
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1vcmRlci1lbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9zZW5kLW9yZGVyLWVtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9CQSx3Q0FvSkM7QUF2S0QscURBQXFFO0FBRXJFLDhEQUdpQztBQUNqQyxnREFBaUY7QUFDakYsc0ZBQTRFO0FBUTVFOzs7R0FHRztBQUNZLEtBQUssVUFBVSxxQkFBcUIsQ0FBQyxFQUNsRCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFDZixTQUFTLEdBQzRCO0lBQ3JDLElBQUksQ0FBQztRQUNILHdDQUF3QztRQUN4QyxJQUFJLFlBQVksR0FBa0IsSUFBSSxDQUFBO1FBQ3RDLElBQUksQ0FBQztZQUNILE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsYUFBYSxDQUFDLENBQUE7WUFDL0UsTUFBTSxhQUFhLEdBQUcsSUFBQSwrQ0FBNkIsRUFBQyxZQUFZLENBQUMsQ0FBQTtZQUNqRSxNQUFNLE9BQU8sR0FBRyxJQUFBLCtDQUE2QixFQUFDLGFBQWEsQ0FBQyxDQUFBO1lBRTVELFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFBO1lBRWpELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2RUFBNkUsQ0FBQyxDQUFBO2dCQUMxRixPQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsaURBQWlEO1lBQ2pELE9BQU8sQ0FBQyxLQUFLLENBQUMsbUVBQW1FLENBQUMsQ0FBQTtZQUNsRixPQUFNO1FBQ1IsQ0FBQztRQUVELG1DQUFtQztRQUNuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFBO1FBRXZCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FB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
@@ -1,35 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveOrderManagementOptions = resolveOrderManagementOptions;
4
3
  exports.extractOrderManagementOptions = extractOrderManagementOptions;
5
- const DEFAULT_OPTIONS = {
6
- email: {
7
- template: null,
8
- },
9
- };
10
- /**
11
- * Resolve and normalize plugin options with defaults
12
- */
13
- function resolveOrderManagementOptions(options) {
14
- if (!options) {
15
- return DEFAULT_OPTIONS;
16
- }
17
- return {
18
- email: {
19
- template: options.email?.template ?? DEFAULT_OPTIONS.email.template,
20
- },
21
- };
22
- }
4
+ exports.resolveOrderManagementOptions = resolveOrderManagementOptions;
23
5
  /**
24
6
  * Extract plugin options from config module
25
7
  */
26
8
  function extractOrderManagementOptions(configModule) {
9
+ if (!configModule || typeof configModule !== "object") {
10
+ return undefined;
11
+ }
27
12
  // Try from projectConfig.plugins first
28
- const plugins = configModule?.projectConfig?.plugins ?? [];
13
+ const plugins = configModule
14
+ ?.projectConfig?.plugins ?? [];
29
15
  for (const plugin of plugins) {
30
16
  if (typeof plugin === "string") {
31
17
  if (plugin === "order-management") {
32
- return {};
18
+ return undefined;
33
19
  }
34
20
  continue;
35
21
  }
@@ -42,7 +28,7 @@ function extractOrderManagementOptions(configModule) {
42
28
  for (const plugin of directPlugins) {
43
29
  if (typeof plugin === "string") {
44
30
  if (plugin === "order-management") {
45
- return {};
31
+ return undefined;
46
32
  }
47
33
  continue;
48
34
  }
@@ -52,4 +38,64 @@ function extractOrderManagementOptions(configModule) {
52
38
  }
53
39
  return undefined;
54
40
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Jlc29sdmUtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxzRUFZQztBQUtELHNFQW9DQztBQTlERCxNQUFNLGVBQWUsR0FBbUM7SUFDdEQsS0FBSyxFQUFFO1FBQ0wsUUFBUSxFQUFFLElBQUk7S0FDZjtDQUNGLENBQUE7QUFFRDs7R0FFRztBQUNILFNBQWdCLDZCQUE2QixDQUMzQyxPQUE2QztJQUU3QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixPQUFPLGVBQWUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsT0FBTztRQUNMLEtBQUssRUFBRTtZQUNMLFFBQVEsRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLFFBQVEsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLFFBQVE7U0FDcEU7S0FDRixDQUFBO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQzNDLFlBQWtCO0lBRWxCLHVDQUF1QztJQUN2QyxNQUFNLE9BQU8sR0FBRyxZQUFZLEVBQUUsYUFBYSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUE7SUFFMUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9CLElBQUksTUFBTSxLQUFLLGtCQUFrQixFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sRUFBRSxDQUFBO1lBQ1gsQ0FBQztZQUNELFNBQVE7UUFDVixDQUFDO1FBRUQsSUFBSSxNQUFNLEVBQUUsT0FBTyxLQUFLLGtCQUFrQixFQUFFLENBQUM7WUFDM0MsT0FBTyxNQUFNLENBQUMsT0FBdUMsQ0FBQTtRQUN2RCxDQUFDO0lBQ0gsQ0FBQztJQUVELDRDQUE0QztJQUM1QyxNQUFNLGFBQWEsR0FBSSxZQUFvQixFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUE7SUFFMUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNuQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9CLElBQUksTUFBTSxLQUFLLGtCQUFrQixFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sRUFBRSxDQUFBO1lBQ1gsQ0FBQztZQUNELFNBQVE7UUFDVixDQUFDO1FBRUQsSUFBSSxNQUFNLEVBQUUsT0FBTyxLQUFLLGtCQUFrQixFQUFFLENBQUM7WUFDM0MsT0FBTyxNQUFNLENBQUMsT0FBdUMsQ0FBQTtRQUN2RCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFBO0FBQ2xCLENBQUMifQ==
41
+ /**
42
+ * Resolve plugin options with validation
43
+ * Throws error if required options are missing
44
+ */
45
+ function resolveOrderManagementOptions(options) {
46
+ if (!options) {
47
+ throw new Error("order-management plugin options are required. Please configure the plugin in medusa-config.ts");
48
+ }
49
+ if (!options.storefrontUrl) {
50
+ throw new Error("order-management: storefrontUrl is required");
51
+ }
52
+ if (!options.jwtSecret) {
53
+ throw new Error("order-management: jwtSecret is required");
54
+ }
55
+ // Resolve email options
56
+ const emailOptions = {
57
+ orderConfirmTemplate: options.email?.orderConfirmTemplate ?? null,
58
+ otpTemplate: options.email?.otpTemplate ?? null,
59
+ };
60
+ // Resolve SMTP config
61
+ const smtpEnabled = options.smtp?.enabled ?? false;
62
+ let smtpConfig;
63
+ if (smtpEnabled) {
64
+ if (!options.smtp?.host) {
65
+ throw new Error("order-management: smtp.host is required when smtp.enabled is true");
66
+ }
67
+ if (!options.smtp?.port) {
68
+ throw new Error("order-management: smtp.port is required when smtp.enabled is true");
69
+ }
70
+ if (!options.smtp?.auth?.user) {
71
+ throw new Error("order-management: smtp.auth.user is required when smtp.enabled is true");
72
+ }
73
+ if (!options.smtp?.auth?.pass) {
74
+ throw new Error("order-management: smtp.auth.pass is required when smtp.enabled is true");
75
+ }
76
+ smtpConfig = {
77
+ enabled: true,
78
+ host: options.smtp.host,
79
+ port: options.smtp.port,
80
+ secure: options.smtp.secure ?? true,
81
+ auth: {
82
+ user: options.smtp.auth.user,
83
+ pass: options.smtp.auth.pass,
84
+ },
85
+ from: options.smtp.from || options.smtp.auth.user,
86
+ };
87
+ }
88
+ else {
89
+ smtpConfig = {
90
+ enabled: false,
91
+ secure: true,
92
+ };
93
+ }
94
+ return {
95
+ storefrontUrl: options.storefrontUrl,
96
+ jwtSecret: options.jwtSecret,
97
+ email: emailOptions,
98
+ smtp: smtpConfig,
99
+ };
100
+ }
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Jlc29sdmUtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLHNFQTZDQztBQU1ELHNFQWlFQztBQXZIRDs7R0FFRztBQUNILFNBQWdCLDZCQUE2QixDQUMzQyxZQUFzQjtJQUV0QixJQUFJLENBQUMsWUFBWSxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3RELE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsTUFBTSxPQUFPLEdBQUksWUFBNEQ7UUFDM0UsRUFBRSxhQUFhLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQTtJQUVoQyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0IsSUFBSSxNQUFNLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztnQkFDbEMsT0FBTyxTQUFTLENBQUE7WUFDbEIsQ0FBQztZQUNELFNBQVE7UUFDVixDQUFDO1FBRUQsSUFBSyxNQUErQixFQUFFLE9BQU8sS0FBSyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3JFLE9BQVEsTUFBcUQsQ0FBQyxPQUVqRCxDQUFBO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsTUFBTSxhQUFhLEdBQUksWUFBd0MsRUFBRSxPQUFPLElBQUksRUFBRSxDQUFBO0lBRTlFLEtBQUssTUFBTSxNQUFNLElBQUksYUFBYSxFQUFFLENBQUM7UUFDbkMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQixJQUFJLE1BQU0sS0FBSyxrQkFBa0IsRUFBRSxDQUFDO2dCQUNsQyxPQUFPLFNBQVMsQ0FBQTtZQUNsQixDQUFDO1lBQ0QsU0FBUTtRQUNWLENBQUM7UUFFRCxJQUFLLE1BQStCLEVB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
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cancelOrderStep = exports.createCartFromOrderStep = exports.transformOrderToCartStep = exports.retrieveOrderStep = void 0;
3
+ exports.sendNotificationStep = exports.cancelOrderStep = exports.createCartFromOrderStep = exports.transformOrderToCartStep = exports.retrieveOrderStep = void 0;
4
4
  var retrieve_order_step_1 = require("./retrieve-order-step");
5
5
  Object.defineProperty(exports, "retrieveOrderStep", { enumerable: true, get: function () { return retrieve_order_step_1.retrieveOrderStep; } });
6
6
  var transform_order_to_cart_step_1 = require("./transform-order-to-cart-step");
@@ -9,4 +9,6 @@ var create_cart_from_order_step_1 = require("./create-cart-from-order-step");
9
9
  Object.defineProperty(exports, "createCartFromOrderStep", { enumerable: true, get: function () { return create_cart_from_order_step_1.createCartFromOrderStep; } });
10
10
  var cancel_order_step_1 = require("./cancel-order-step");
11
11
  Object.defineProperty(exports, "cancelOrderStep", { enumerable: true, get: function () { return cancel_order_step_1.cancelOrderStep; } });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0ZXBzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZEQUF5RDtBQUFoRCx3SEFBQSxpQkFBaUIsT0FBQTtBQUMxQiwrRUFBeUU7QUFBaEUsd0lBQUEsd0JBQXdCLE9BQUE7QUFDakMsNkVBQXVFO0FBQTlELHNJQUFBLHVCQUF1QixPQUFBO0FBQ2hDLHlEQUFxRDtBQUE1QyxvSEFBQSxlQUFlLE9BQUEifQ==
12
+ var send_notification_step_1 = require("./send-notification-step");
13
+ Object.defineProperty(exports, "sendNotificationStep", { enumerable: true, get: function () { return send_notification_step_1.sendNotificationStep; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0ZXBzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZEQUF5RDtBQUFoRCx3SEFBQSxpQkFBaUIsT0FBQTtBQUMxQiwrRUFBeUU7QUFBaEUsd0lBQUEsd0JBQXdCLE9BQUE7QUFDakMsNkVBQXVFO0FBQTlELHNJQUFBLHVCQUF1QixPQUFBO0FBQ2hDLHlEQUFxRDtBQUE1QyxvSEFBQSxlQUFlLE9BQUE7QUFDeEIsbUVBQStEO0FBQXRELDhIQUFBLG9CQUFvQixPQUFBIn0=
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendNotificationStep = void 0;
4
+ exports.prepareEmailPayload = prepareEmailPayload;
5
+ exports.sendNotification = sendNotification;
6
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ /**
9
+ * Prepare email payload for notification service
10
+ * Matches the structure expected by @medusajs/medusa/core-flows
11
+ */
12
+ function prepareEmailPayload(to, subject, htmlContent, templateData) {
13
+ // Validate HTML content
14
+ if (!htmlContent || typeof htmlContent !== "string" || htmlContent.trim().length === 0) {
15
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "HTML content is required and must be a non-empty string");
16
+ }
17
+ // Create plain text version from HTML
18
+ const textContent = htmlContent
19
+ .replace(/<[^>]*>/g, "") // Remove HTML tags
20
+ .replace(/\s+/g, " ") // Collapse whitespace
21
+ .trim();
22
+ const payload = {
23
+ to,
24
+ channel: "email",
25
+ subject,
26
+ // Root level fields for SMTP providers
27
+ html: htmlContent,
28
+ text: textContent,
29
+ body: htmlContent, // Some providers expect 'body' field
30
+ template: htmlContent, // Some providers expect 'template' field (set to HTML content, not template ID)
31
+ data: {
32
+ subject,
33
+ html: htmlContent,
34
+ text: textContent,
35
+ body: htmlContent, // Some providers expect data.body
36
+ content: htmlContent, // Some providers expect data.content
37
+ // Include template data for notification providers that support it
38
+ ...templateData,
39
+ },
40
+ };
41
+ return payload;
42
+ }
43
+ /**
44
+ * Helper function to send notification (can be called directly from subscribers)
45
+ */
46
+ async function sendNotification(input, container) {
47
+ if (!input.renderedContent) {
48
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Rendered content is required to send notification");
49
+ }
50
+ const payload = prepareEmailPayload(input.to, input.subject, input.renderedContent, input.templateData);
51
+ // Log payload structure for debugging (sanitized)
52
+ console.log("[send-notification] Email payload structure:", {
53
+ to: payload.to,
54
+ channel: payload.channel,
55
+ subject: payload.subject,
56
+ hasHtml: !!payload.html,
57
+ hasText: !!payload.text,
58
+ hasBody: !!payload.body,
59
+ hasTemplate: !!payload.template,
60
+ htmlLength: payload.html?.length || 0,
61
+ textLength: payload.text?.length || 0,
62
+ templateLength: payload.template?.length || 0,
63
+ htmlPreview: payload.html?.substring(0, 200) || "",
64
+ dataKeys: Object.keys(payload.data || {}),
65
+ dataHasHtml: !!payload.data?.html,
66
+ dataHasText: !!payload.data?.text,
67
+ dataHasBody: !!payload.data?.body,
68
+ dataHasContent: !!payload.data?.content,
69
+ });
70
+ // Log full payload structure (for debugging - remove sensitive data in production)
71
+ console.log("[send-notification] Full payload keys:", Object.keys(payload));
72
+ console.log("[send-notification] Payload root level fields:", {
73
+ to: typeof payload.to,
74
+ channel: typeof payload.channel,
75
+ subject: typeof payload.subject,
76
+ html: typeof payload.html,
77
+ text: typeof payload.text,
78
+ body: typeof payload.body,
79
+ template: typeof payload.template,
80
+ });
81
+ // Resolve notification service
82
+ const notificationService = container.resolve(utils_1.Modules.NOTIFICATION);
83
+ if (!notificationService) {
84
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Notification service is not configured.");
85
+ }
86
+ // Use create method with payload structure matching @medusajs/medusa/core-flows
87
+ try {
88
+ if (typeof notificationService.create === "function") {
89
+ console.log("[send-notification] Using notificationService.create");
90
+ await notificationService.create(payload);
91
+ }
92
+ else if (typeof notificationService.createNotifications === "function") {
93
+ console.log("[send-notification] Using notificationService.createNotifications");
94
+ await notificationService.createNotifications([payload]);
95
+ }
96
+ else {
97
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, "Notification service does not support sending notifications.");
98
+ }
99
+ console.log("[send-notification] Notification sent successfully");
100
+ }
101
+ catch (error) {
102
+ console.error("[send-notification] Error sending notification:", error);
103
+ throw error;
104
+ }
105
+ }
106
+ /**
107
+ * Send notification step for order emails
108
+ * Uses the notification service to send email notifications
109
+ */
110
+ exports.sendNotificationStep = (0, workflows_sdk_1.createStep)("send-notification", async (input, { container }) => {
111
+ try {
112
+ await sendNotification(input, container);
113
+ return new workflows_sdk_1.StepResponse({
114
+ sent: true,
115
+ });
116
+ }
117
+ catch (error) {
118
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, `Failed to send notification: ${error instanceof Error ? error.message : String(error)}`);
119
+ }
120
+ });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1ub3RpZmljYXRpb24tc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3RlcHMvc2VuZC1ub3RpZmljYXRpb24tc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQkEsa0RBeUNDO0FBS0QsNENBa0ZDO0FBcEpELHFFQUE0RTtBQUM1RSxxREFBZ0U7QUFlaEU7OztHQUdHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQ2pDLEVBQVUsRUFDVixPQUFlLEVBQ2YsV0FBbUIsRUFDbkIsWUFBK0I7SUFFL0Isd0JBQXdCO0lBQ3hCLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkYsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIseURBQXlELENBQzFELENBQUE7SUFDSCxDQUFDO0lBRUQsc0NBQXNDO0lBQ3RDLE1BQU0sV0FBVyxHQUFHLFdBQVc7U0FDNUIsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxtQkFBbUI7U0FDM0MsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxzQkFBc0I7U0FDM0MsSUFBSSxFQUFFLENBQUE7SUFFVCxNQUFNLE9BQU8sR0FBUTtRQUNuQixFQUFFO1FBQ0YsT0FBTyxFQUFFLE9BQU87UUFDaEIsT0FBTztRQUNQLHVDQUF1QztRQUN2QyxJQUFJLEVBQUUsV0FBVztRQUNqQixJQUFJLEVBQUUsV0FBVztRQUNqQixJQUFJLEVBQUUsV0FBVyxFQUFFLHFDQUFxQztRQUN4RCxRQUFRLEVBQUUsV0FBVyxFQUFFLGdGQUFnRjtRQUN2RyxJQUFJLEVBQUU7WUFDSixPQUFPO1lBQ1AsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLFdBQVc7WUFD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
package/README.md CHANGED
@@ -49,14 +49,35 @@ This starter is compatible with versions >= 2.4.0 of `@medusajs/medusa`.
49
49
  The plugin can be configured in your `medusa-config.js` file:
50
50
 
51
51
  ```js
52
+ import { defineConfig } from "@medusajs/framework/utils"
53
+
52
54
  module.exports = defineConfig({
53
55
  // ...
54
56
  plugins: [
55
57
  {
56
58
  resolve: "order-management",
57
59
  options: {
60
+ // Required options
61
+ storefrontUrl: process.env.STOREFRONT_URL || "http://localhost:8000",
62
+ jwtSecret: process.env.JWT_SECRET || "medusa-secret-guest-access",
63
+
64
+ // Email template options
58
65
  email: {
59
- template: "src/templates/emails/order-confirmation.html", // Path to HTML template file
66
+ orderConfirmTemplate: "src/templates/emails/order-confirmation.html", // Path to HTML template file
67
+ otpTemplate: "src/templates/emails/otp-verification.html", // Path to HTML template file (required)
68
+ },
69
+
70
+ // Optional SMTP configuration (for email delivery)
71
+ smtp: {
72
+ enabled: process.env.FORCE_SMTP_REDELIVER === "true",
73
+ host: process.env.SMTP_HOST,
74
+ port: process.env.SMTP_PORT ? Number(process.env.SMTP_PORT) : undefined,
75
+ secure: process.env.SMTP_SECURE === "true",
76
+ auth: {
77
+ user: process.env.SMTP_AUTH_USER,
78
+ pass: process.env.SMTP_AUTH_PASS,
79
+ },
80
+ from: process.env.SMTP_FROM || process.env.SMTP_AUTH_USER,
60
81
  },
61
82
  },
62
83
  },
@@ -66,11 +87,29 @@ module.exports = defineConfig({
66
87
 
67
88
  ### Configuration Options
68
89
 
69
- | Option | Type | Default | Description |
70
- |--------|------|---------|-------------|
71
- | `email.template` | `string \| null` | `null` | Path to HTML template file for order confirmation emails (relative to project root or absolute path) |
72
-
73
- **Note**: Order confirmation emails are only sent if a template path is provided. If no template is configured, emails will not be sent.
90
+ **Required Options:**
91
+ - `storefrontUrl` - Your storefront URL (required)
92
+ - `jwtSecret` - JWT secret for guest order tokens (required)
93
+
94
+ **Email Template Options:**
95
+ - `email.orderConfirmTemplate` - Path to HTML template file for order confirmation emails (optional)
96
+ - `email.otpTemplate` - Path to HTML template file for OTP verification emails (required for guest OTP functionality)
97
+
98
+ **Optional SMTP Options:**
99
+ - `smtp.enabled` - Enable SMTP email delivery (default: `false`)
100
+ - `smtp.host` - SMTP server host (required if enabled)
101
+ - `smtp.port` - SMTP server port (required if enabled)
102
+ - `smtp.secure` - Use secure connection (default: `true`)
103
+ - `smtp.auth.user` - SMTP username (required if enabled)
104
+ - `smtp.auth.pass` - SMTP password (required if enabled)
105
+ - `smtp.from` - From email address (optional, defaults to `smtp.auth.user`)
106
+
107
+ **Notes**:
108
+ - `storefrontUrl` and `jwtSecret` are required. All other options are optional.
109
+ - Order confirmation emails are only sent if a template path is provided. If no template is configured, emails will not be sent.
110
+ - OTP template is **mandatory** for guest OTP functionality. The guest OTP request API will return an error if `email.otpTemplate` is not configured.
111
+ - OTP templates should include `{{otp}}` placeholder for the verification code.
112
+ - SMTP configuration is optional. If not enabled, emails will use Medusa's default email provider.
74
113
 
75
114
  ## Return Orders Admin Panel
76
115
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "order-management",
3
- "version": "0.0.15",
3
+ "version": "0.0.17",
4
4
  "description": "A starter for Medusa plugins.",
5
5
  "author": "Medusa (https://medusajs.com)",
6
6
  "license": "MIT",