order-management 0.0.17 → 0.0.18
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/src/admin/index.js +638 -5
- package/.medusa/server/src/admin/index.mjs +638 -5
- package/.medusa/server/src/api/admin/swaps/[id]/approve/route.js +45 -0
- package/.medusa/server/src/api/admin/swaps/[id]/reject/route.js +43 -0
- package/.medusa/server/src/api/admin/swaps/[id]/route.js +70 -0
- package/.medusa/server/src/api/admin/swaps/[id]/status/route.js +45 -0
- package/.medusa/server/src/api/admin/swaps/route.js +51 -0
- package/.medusa/server/src/api/admin/swaps/validators.js +22 -0
- package/.medusa/server/src/api/store/guest-orders/[id]/invoice/route.js +17 -5
- package/.medusa/server/src/api/store/guest-orders/[id]/returns/route.js +17 -5
- package/.medusa/server/src/api/store/guest-orders/[id]/route.js +17 -5
- package/.medusa/server/src/api/store/guest-orders/route.js +17 -5
- package/.medusa/server/src/api/store/orders/[order_id]/swaps/route.js +107 -0
- package/.medusa/server/src/api/store/otp/request/route.js +12 -5
- package/.medusa/server/src/api/store/swaps/[id]/cancel/route.js +64 -0
- package/.medusa/server/src/api/store/swaps/[id]/route.js +112 -0
- package/.medusa/server/src/api/store/swaps/route.js +117 -0
- package/.medusa/server/src/helpers/index.js +18 -0
- package/.medusa/server/src/helpers/swaps.js +88 -0
- package/.medusa/server/src/modules/swap/index.js +13 -0
- package/.medusa/server/src/modules/swap/migrations/Migration20260121164326.js +49 -0
- package/.medusa/server/src/modules/swap/models/swap.js +21 -0
- package/.medusa/server/src/modules/swap/service.js +154 -0
- package/.medusa/server/src/services/otp-service.js +16 -5
- package/.medusa/server/src/subscribers/send-order-email.js +27 -8
- package/.medusa/server/src/workflows/index.js +8 -2
- package/.medusa/server/src/workflows/steps/swap/calculate-difference-step.js +56 -0
- package/.medusa/server/src/workflows/steps/swap/create-swap-step.js +29 -0
- package/.medusa/server/src/workflows/steps/swap/index.js +16 -0
- package/.medusa/server/src/workflows/steps/swap/retrieve-swap-step.js +26 -0
- package/.medusa/server/src/workflows/steps/swap/update-swap-status-step.js +25 -0
- package/.medusa/server/src/workflows/steps/swap/validate-order-step.js +47 -0
- package/.medusa/server/src/workflows/steps/swap/validate-swap-items-step.js +41 -0
- package/.medusa/server/src/workflows/swaps/approve-swap-workflow.js +38 -0
- package/.medusa/server/src/workflows/swaps/create-swap-workflow.js +46 -0
- package/.medusa/server/src/workflows/swaps/types.js +3 -0
- package/.medusa/server/src/workflows/swaps/update-swap-status-workflow.js +23 -0
- package/README.md +208 -0
- package/package.json +1 -1
- package/.medusa/server/src/utils/resolve-options.js +0 -101
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const approve_swap_workflow_1 = require("../../../../../workflows/swaps/approve-swap-workflow");
|
|
6
|
+
const POST = async (req, res) => {
|
|
7
|
+
const { id } = req.params;
|
|
8
|
+
if (!id) {
|
|
9
|
+
res.status(400).json({ message: "Swap ID is required" });
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
// Type-safe access to auth_context
|
|
13
|
+
const authContext = req.auth_context;
|
|
14
|
+
const adminId = authContext?.actor_id || authContext?.user_id || "admin";
|
|
15
|
+
try {
|
|
16
|
+
const { result } = await (0, approve_swap_workflow_1.approveSwapWorkflow)(req.scope).run({
|
|
17
|
+
input: {
|
|
18
|
+
swap_id: id,
|
|
19
|
+
admin_id: adminId,
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
res.json(result);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
if (error instanceof utils_1.MedusaError) {
|
|
26
|
+
const statusCode = error.type === utils_1.MedusaError.Types.NOT_FOUND
|
|
27
|
+
? 404
|
|
28
|
+
: error.type === utils_1.MedusaError.Types.INVALID_DATA
|
|
29
|
+
? 400
|
|
30
|
+
: 500;
|
|
31
|
+
res.status(statusCode).json({
|
|
32
|
+
message: error.message,
|
|
33
|
+
type: error.type,
|
|
34
|
+
});
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
38
|
+
res.status(500).json({
|
|
39
|
+
message: "Failed to approve swap",
|
|
40
|
+
error: errorMessage,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
exports.POST = POST;
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N3YXBzL1tpZF0vYXBwcm92ZS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBdUQ7QUFDdkQsZ0dBQTBGO0FBRW5GLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBa0IsRUFDbEIsR0FBbUIsRUFDSixFQUFFO0lBQ2pCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXpCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNSLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQTtRQUN4RCxPQUFNO0lBQ1IsQ0FBQztJQUVELG1DQUFtQztJQUNuQyxNQUFNLFdBQVcsR0FBSSxHQUVuQixDQUFDLFlBQVksQ0FBQTtJQUVmLE1BQU0sT0FBTyxHQUFHLFdBQVcsRUFBRSxRQUFRLElBQUksV0FBVyxFQUFFLE9BQU8sSUFBSSxPQUFPLENBQUE7SUFFeEUsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSwyQ0FBbUIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQzFELEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsRUFBRTtnQkFDWCxRQUFRLEVBQUUsT0FBTzthQUNsQjtTQUNGLENBQUMsQ0FBQTtRQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbEIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssWUFBWSxtQkFBVyxFQUFFLENBQUM7WUFDakMsTUFBTSxVQUFVLEdBQ2QsS0FBSyxDQUFDLElBQUksS0FBSyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTO2dCQUN4QyxDQUFDLENBQUMsR0FBRztnQkFDTCxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZO29CQUMvQyxDQUFDLENBQUMsR0FBRztvQkFDTCxDQUFDLENBQUMsR0FBRyxDQUFBO1lBRVQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2FBQ2pCLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFBO1FBQzdFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE9BQU8sRUFBRSx3QkFBd0I7WUFDakMsS0FBSyxFQUFFLFlBQVk7U0FDcEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQTtBQWpEWSxRQUFBLElBQUksUUFpRGhCIn0=
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const swap_1 = require("../../../../../modules/swap");
|
|
6
|
+
const validators_1 = require("../../validators");
|
|
7
|
+
const POST = async (req, res) => {
|
|
8
|
+
const { id } = req.params;
|
|
9
|
+
if (!id) {
|
|
10
|
+
res.status(400).json({ message: "Swap ID is required" });
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
// Type-safe access to auth_context
|
|
14
|
+
const authContext = req.auth_context;
|
|
15
|
+
const adminId = authContext?.actor_id || authContext?.user_id || "admin";
|
|
16
|
+
try {
|
|
17
|
+
const body = validators_1.RejectSwapSchema.parse(req.body);
|
|
18
|
+
const swapService = req.scope.resolve(swap_1.SWAP_MODULE);
|
|
19
|
+
const swap = await swapService.rejectSwap(id, adminId, body.reason);
|
|
20
|
+
res.json({ swap });
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
if (error instanceof utils_1.MedusaError) {
|
|
24
|
+
const statusCode = error.type === utils_1.MedusaError.Types.NOT_FOUND
|
|
25
|
+
? 404
|
|
26
|
+
: error.type === utils_1.MedusaError.Types.INVALID_DATA
|
|
27
|
+
? 400
|
|
28
|
+
: 500;
|
|
29
|
+
res.status(statusCode).json({
|
|
30
|
+
message: error.message,
|
|
31
|
+
type: error.type,
|
|
32
|
+
});
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
36
|
+
res.status(500).json({
|
|
37
|
+
message: "Failed to reject swap",
|
|
38
|
+
error: errorMessage,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.POST = POST;
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N3YXBzL1tpZF0vcmVqZWN0L3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUF1RDtBQUN2RCxzREFBeUQ7QUFFekQsaURBQW1EO0FBRTVDLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBa0IsRUFDbEIsR0FBbUIsRUFDSixFQUFFO0lBQ2pCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXpCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNSLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQTtRQUN4RCxPQUFNO0lBQ1IsQ0FBQztJQUVELG1DQUFtQztJQUNuQyxNQUFNLFdBQVcsR0FBSSxHQUVuQixDQUFDLFlBQVksQ0FBQTtJQUVmLE1BQU0sT0FBTyxHQUFHLFdBQVcsRUFBRSxRQUFRLElBQUksV0FBVyxFQUFFLE9BQU8sSUFBSSxPQUFPLENBQUE7SUFFeEUsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQUcsNkJBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUU3QyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBYyxrQkFBVyxDQUFDLENBQUE7UUFFL0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBRW5FLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ3BCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSSxLQUFLLFlBQVksbUJBQVcsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sVUFBVSxHQUNkLEtBQUssQ0FBQyxJQUFJLEtBQUssbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUztnQkFDeEMsQ0FBQyxDQUFDLEdBQUc7Z0JBQ0wsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWTtvQkFDL0MsQ0FBQyxDQUFDLEdBQUc7b0JBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtZQUVULEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUMxQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTthQUNqQixDQUFDLENBQUE7WUFDRixPQUFNO1FBQ1IsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQTtRQUM3RSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNuQixPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLEtBQUssRUFBRSxZQUFZO1NBQ3BCLENBQUMsQ0FBQTtJQUNKLENBQUM7QUFDSCxDQUFDLENBQUE7QUFoRFksUUFBQSxJQUFJLFFBZ0RoQiJ9
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const utils_2 = require("@medusajs/framework/utils");
|
|
6
|
+
const swap_1 = require("../../../../modules/swap");
|
|
7
|
+
const GET = async (req, res) => {
|
|
8
|
+
const { id } = req.params;
|
|
9
|
+
if (!id) {
|
|
10
|
+
res.status(400).json({ message: "Swap ID is required" });
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
const swapService = req.scope.resolve(swap_1.SWAP_MODULE);
|
|
15
|
+
const swap = await swapService.retrieveSwap(id);
|
|
16
|
+
const swapData = swap;
|
|
17
|
+
// Fetch order details for context
|
|
18
|
+
let order = null;
|
|
19
|
+
if (swapData.order_id) {
|
|
20
|
+
try {
|
|
21
|
+
const remoteQuery = req.scope.resolve(utils_2.ContainerRegistrationKeys.REMOTE_QUERY);
|
|
22
|
+
const queryObject = (0, utils_2.remoteQueryObjectFromString)({
|
|
23
|
+
entryPoint: "order",
|
|
24
|
+
fields: [
|
|
25
|
+
"id",
|
|
26
|
+
"display_id",
|
|
27
|
+
"email",
|
|
28
|
+
"customer_id",
|
|
29
|
+
"customer.*",
|
|
30
|
+
"items.*",
|
|
31
|
+
"total",
|
|
32
|
+
"currency_code",
|
|
33
|
+
"created_at",
|
|
34
|
+
],
|
|
35
|
+
filters: {
|
|
36
|
+
id: [swapData.order_id],
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
const orders = await remoteQuery(queryObject);
|
|
40
|
+
const orderArray = Array.isArray(orders) ? orders : orders ? [orders] : [];
|
|
41
|
+
order = orderArray[0] || null;
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
// Order fetch failed, but continue without order data
|
|
45
|
+
console.warn("Failed to fetch order for swap:", error);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
res.json({
|
|
49
|
+
swap,
|
|
50
|
+
order,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
if (error instanceof utils_1.MedusaError) {
|
|
55
|
+
const statusCode = error.type === utils_1.MedusaError.Types.NOT_FOUND ? 404 : 400;
|
|
56
|
+
res.status(statusCode).json({
|
|
57
|
+
message: error.message,
|
|
58
|
+
type: error.type,
|
|
59
|
+
});
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
63
|
+
res.status(500).json({
|
|
64
|
+
message: "Failed to retrieve swap",
|
|
65
|
+
error: errorMessage,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
exports.GET = GET;
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N3YXBzL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQXVEO0FBQ3ZELHFEQUFrRztBQUVsRyxtREFBc0Q7QUFHL0MsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUFrQixFQUNsQixHQUFtQixFQUNKLEVBQUU7SUFDakIsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFekIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ1IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFBO1FBQ3hELE9BQU07SUFDUixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQWMsa0JBQVcsQ0FBQyxDQUFBO1FBRS9ELE1BQU0sSUFBSSxHQUFHLE1BQU0sV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUE2QixDQUFBO1FBRTlDLGtDQUFrQztRQUNsQyxJQUFJLEtBQUssR0FBWSxJQUFJLENBQUE7UUFDekIsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDO2dCQUNILE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNuQyxpQ0FBeUIsQ0FBQyxZQUFZLENBQ3ZDLENBQUE7Z0JBRUQsTUFBTSxXQUFXLEdBQUcsSUFBQSxtQ0FBMkIsRUFBQztvQkFDOUMsVUFBVSxFQUFFLE9BQU87b0JBQ25CLE1BQU0sRUFBRTt3QkFDTixJQUFJO3dCQUNKLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxhQUFhO3dCQUNiLFlBQVk7d0JBQ1osU0FBUzt3QkFDVCxPQUFPO3dCQUNQLGVBQWU7d0JBQ2YsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztxQkFDeEI7aUJBQ0YsQ0FBQyxDQUFBO2dCQUVGLE1BQU0sTUFBTSxHQUFHLE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFBO2dCQUM3QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO2dCQUMxRSxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQTtZQUMvQixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixzREFBc0Q7Z0JBQ3RELE9BQU8sQ0FBQyxJQUFJLENBQUMsaUNBQWlDLEVBQUUsS0FBSyxDQUFDLENBQUE7WUFDeEQsQ0FBQztRQUNILENBQUM7UUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ1AsSUFBSTtZQUNKLEtBQUs7U0FDTixDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksS0FBSyxZQUFZLG1CQUFXLEVBQUUsQ0FBQztZQUNqQyxNQUFNLFVBQVUsR0FDZCxLQUFLLENBQUMsSUFBSSxLQUFLLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUE7WUFFeEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2FBQ2pCLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFBO1FBQzdFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE9BQU8sRUFBRSx5QkFBeUI7WUFDbEMsS0FBSyxFQUFFLFlBQVk7U0FDcEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQTtBQTFFWSxRQUFBLEdBQUcsT0EwRWYifQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const update_swap_status_workflow_1 = require("../../../../../workflows/swaps/update-swap-status-workflow");
|
|
6
|
+
const validators_1 = require("../../validators");
|
|
7
|
+
const POST = async (req, res) => {
|
|
8
|
+
const { id } = req.params;
|
|
9
|
+
if (!id) {
|
|
10
|
+
res.status(400).json({ message: "Swap ID is required" });
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
const body = validators_1.UpdateSwapStatusSchema.parse(req.body);
|
|
15
|
+
const { result } = await (0, update_swap_status_workflow_1.updateSwapStatusWorkflow)(req.scope).run({
|
|
16
|
+
input: {
|
|
17
|
+
swap_id: id,
|
|
18
|
+
status: body.status,
|
|
19
|
+
metadata: body.metadata,
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
res.json(result);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
if (error instanceof utils_1.MedusaError) {
|
|
26
|
+
const statusCode = error.type === utils_1.MedusaError.Types.NOT_FOUND
|
|
27
|
+
? 404
|
|
28
|
+
: error.type === utils_1.MedusaError.Types.INVALID_DATA
|
|
29
|
+
? 400
|
|
30
|
+
: 500;
|
|
31
|
+
res.status(statusCode).json({
|
|
32
|
+
message: error.message,
|
|
33
|
+
type: error.type,
|
|
34
|
+
});
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
38
|
+
res.status(500).json({
|
|
39
|
+
message: "Failed to update swap status",
|
|
40
|
+
error: errorMessage,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
exports.POST = POST;
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N3YXBzL1tpZF0vc3RhdHVzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUF1RDtBQUN2RCw0R0FBcUc7QUFDckcsaURBQXlEO0FBRWxELE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBa0IsRUFDbEIsR0FBbUIsRUFDSixFQUFFO0lBQ2pCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXpCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNSLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQTtRQUN4RCxPQUFNO0lBQ1IsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFHLG1DQUFzQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFbkQsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSxzREFBd0IsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQy9ELEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsRUFBRTtnQkFDWCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUN4QjtTQUNGLENBQUMsQ0FBQTtRQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbEIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssWUFBWSxtQkFBVyxFQUFFLENBQUM7WUFDakMsTUFBTSxVQUFVLEdBQ2QsS0FBSyxDQUFDLElBQUksS0FBSyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTO2dCQUN4QyxDQUFDLENBQUMsR0FBRztnQkFDTCxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZO29CQUMvQyxDQUFDLENBQUMsR0FBRztvQkFDTCxDQUFDLENBQUMsR0FBRyxDQUFBO1lBRVQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2FBQ2pCLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFBO1FBQzdFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE9BQU8sRUFBRSw4QkFBOEI7WUFDdkMsS0FBSyxFQUFFLFlBQVk7U0FDcEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQTtBQTdDWSxRQUFBLElBQUksUUE2Q2hCIn0=
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const swap_1 = require("../../../modules/swap");
|
|
5
|
+
const GET = async (req, res) => {
|
|
6
|
+
try {
|
|
7
|
+
const swapService = req.scope.resolve(swap_1.SWAP_MODULE);
|
|
8
|
+
// Get query parameters
|
|
9
|
+
const status = req.query.status;
|
|
10
|
+
const orderId = req.query.order_id;
|
|
11
|
+
const customerId = req.query.customer_id;
|
|
12
|
+
const limit = req.query.limit ? parseInt(req.query.limit, 10) : 50;
|
|
13
|
+
const offset = req.query.offset ? parseInt(req.query.offset, 10) : 0;
|
|
14
|
+
const filters = {};
|
|
15
|
+
if (status) {
|
|
16
|
+
filters.status = status;
|
|
17
|
+
}
|
|
18
|
+
if (orderId) {
|
|
19
|
+
filters.order_id = orderId;
|
|
20
|
+
}
|
|
21
|
+
// Note: customer_id filtering would require joining with orders table
|
|
22
|
+
// For now, we'll filter client-side if needed
|
|
23
|
+
const swaps = await swapService.listSwaps(filters, {
|
|
24
|
+
take: limit,
|
|
25
|
+
skip: offset,
|
|
26
|
+
});
|
|
27
|
+
const swapArray = Array.isArray(swaps) ? swaps : swaps ? [swaps] : [];
|
|
28
|
+
// Filter by customer_id if provided (would need order lookup in production)
|
|
29
|
+
let filteredSwaps = swapArray;
|
|
30
|
+
if (customerId) {
|
|
31
|
+
// In production, you'd want to join with orders table
|
|
32
|
+
// For now, we'll return all swaps
|
|
33
|
+
filteredSwaps = swapArray;
|
|
34
|
+
}
|
|
35
|
+
res.json({
|
|
36
|
+
swaps: filteredSwaps,
|
|
37
|
+
count: filteredSwaps.length,
|
|
38
|
+
limit,
|
|
39
|
+
offset,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
44
|
+
res.status(500).json({
|
|
45
|
+
message: "Failed to retrieve swaps",
|
|
46
|
+
error: errorMessage,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
exports.GET = GET;
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N3YXBzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLGdEQUFtRDtBQUc1QyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQWtCLEVBQ2xCLEdBQW1CLEVBQ0osRUFBRTtJQUNqQixJQUFJLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBYyxrQkFBVyxDQUFDLENBQUE7UUFFL0QsdUJBQXVCO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBNEIsQ0FBQTtRQUNyRCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQThCLENBQUE7UUFDeEQsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFpQyxDQUFBO1FBQzlELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUM1RSxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTlFLE1BQU0sT0FBTyxHQUE0QixFQUFFLENBQUE7UUFDM0MsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBQ3pCLENBQUM7UUFDRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUE7UUFDNUIsQ0FBQztRQUNELHNFQUFzRTtRQUN0RSw4Q0FBOEM7UUFFOUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRTtZQUNqRCxJQUFJLEVBQUUsS0FBSztZQUNYLElBQUksRUFBRSxNQUFNO1NBQ2IsQ0FBQyxDQUFBO1FBRUYsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUVyRSw0RUFBNEU7UUFDNUUsSUFBSSxhQUFhLEdBQUcsU0FBUyxDQUFBO1FBQzdCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixzREFBc0Q7WUFDdEQsa0NBQWtDO1lBQ2xDLGFBQWEsR0FBRyxTQUFTLENBQUE7UUFDM0IsQ0FBQztRQUVELEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDUCxLQUFLLEVBQUUsYUFBYTtZQUNwQixLQUFLLEVBQUUsYUFBYSxDQUFDLE1BQU07WUFDM0IsS0FBSztZQUNMLE1BQU07U0FDUCxDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sWUFBWSxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQTtRQUM3RSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNuQixPQUFPLEVBQUUsMEJBQTBCO1lBQ25DLEtBQUssRUFBRSxZQUFZO1NBQ3BCLENBQUMsQ0FBQTtJQUNKLENBQUM7QUFDSCxDQUFDLENBQUE7QUFwRFksUUFBQSxHQUFHLE9Bb0RmIn0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RejectSwapSchema = exports.UpdateSwapStatusSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.UpdateSwapStatusSchema = zod_1.z.object({
|
|
6
|
+
status: zod_1.z.enum([
|
|
7
|
+
"requested",
|
|
8
|
+
"approved",
|
|
9
|
+
"rejected",
|
|
10
|
+
"return_started",
|
|
11
|
+
"return_shipped",
|
|
12
|
+
"return_received",
|
|
13
|
+
"new_items_shipped",
|
|
14
|
+
"completed",
|
|
15
|
+
"cancelled",
|
|
16
|
+
]),
|
|
17
|
+
metadata: zod_1.z.record(zod_1.z.unknown()).optional(),
|
|
18
|
+
});
|
|
19
|
+
exports.RejectSwapSchema = zod_1.z.object({
|
|
20
|
+
reason: zod_1.z.string().optional(),
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvYWRtaW4vc3dhcHMvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBdUI7QUFFVixRQUFBLHNCQUFzQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0MsTUFBTSxFQUFFLE9BQUMsQ0FBQyxJQUFJLENBQUM7UUFDYixXQUFXO1FBQ1gsVUFBVTtRQUNWLFVBQVU7UUFDVixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsV0FBVztRQUNYLFdBQVc7S0FDWixDQUFDO0lBQ0YsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQzNDLENBQUMsQ0FBQTtBQUVXLFFBQUEsZ0JBQWdCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN2QyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUM5QixDQUFDLENBQUEifQ==
|
|
@@ -8,7 +8,6 @@ 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");
|
|
12
11
|
async function GET(req, res) {
|
|
13
12
|
const authHeader = req.headers.authorization;
|
|
14
13
|
const { id } = req.params;
|
|
@@ -19,9 +18,22 @@ async function GET(req, res) {
|
|
|
19
18
|
const token = authHeader.split(" ")[1];
|
|
20
19
|
// Get plugin options
|
|
21
20
|
const configModule = req.scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
const plugins = configModule
|
|
22
|
+
?.projectConfig?.plugins ?? [];
|
|
23
|
+
let secret;
|
|
24
|
+
for (const plugin of plugins) {
|
|
25
|
+
if (typeof plugin === "object" && plugin !== null && plugin?.resolve === "order-management") {
|
|
26
|
+
const options = plugin?.options;
|
|
27
|
+
if (options?.jwtSecret) {
|
|
28
|
+
secret = options.jwtSecret;
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (!secret) {
|
|
34
|
+
res.status(500).json({ message: "order-management: jwtSecret is required" });
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
25
37
|
try {
|
|
26
38
|
const decoded = jsonwebtoken_1.default.verify(token, secret);
|
|
27
39
|
if (!decoded || !decoded.guest_identifier) {
|
|
@@ -73,4 +85,4 @@ async function GET(req, res) {
|
|
|
73
85
|
res.status(401).json({ message: "Unauthorized or invalid token", error: errorMessage });
|
|
74
86
|
}
|
|
75
87
|
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2d1ZXN0LW9yZGVycy9baWRdL2ludm9pY2Uvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFNQSxrQkE4RkM7QUFuR0QscURBQXFFO0FBQ3JFLHlGQUF5RjtBQUN6RixtR0FBbUc7QUFDbkcsZ0VBQThDO0FBRXZDLEtBQUssVUFBVSxHQUFHLENBQ3JCLEdBQWtCLEVBQ2xCLEdBQW1CO0lBRW5CLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFBO0lBQzVDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXpCLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDbkQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsQ0FBQyxDQUFBO1FBQzVFLE9BQU07SUFDVixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUV0QyxxQkFBcUI7SUFDckIsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDL0UsTUFBTSxPQUFPLEdBQUksWUFBNEQ7UUFDM0UsRUFBRSxhQUFhLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQTtJQUVoQyxJQUFJLE1BQTBCLENBQUE7SUFDOUIsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFL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
|
|
@@ -7,7 +7,6 @@ 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");
|
|
11
10
|
async function POST(req, res) {
|
|
12
11
|
const authHeader = req.headers.authorization;
|
|
13
12
|
const { id } = req.params;
|
|
@@ -23,9 +22,22 @@ async function POST(req, res) {
|
|
|
23
22
|
const token = authHeader.split(" ")[1];
|
|
24
23
|
// Get plugin options
|
|
25
24
|
const configModule = req.scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
const plugins = configModule
|
|
26
|
+
?.projectConfig?.plugins ?? [];
|
|
27
|
+
let secret;
|
|
28
|
+
for (const plugin of plugins) {
|
|
29
|
+
if (typeof plugin === "object" && plugin !== null && plugin?.resolve === "order-management") {
|
|
30
|
+
const options = plugin?.options;
|
|
31
|
+
if (options?.jwtSecret) {
|
|
32
|
+
secret = options.jwtSecret;
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (!secret) {
|
|
38
|
+
res.status(500).json({ message: "order-management: jwtSecret is required" });
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
29
41
|
try {
|
|
30
42
|
const decoded = jsonwebtoken_1.default.verify(token, secret);
|
|
31
43
|
if (!decoded || !decoded.guest_identifier) {
|
|
@@ -67,4 +79,4 @@ async function POST(req, res) {
|
|
|
67
79
|
res.status(401).json({ message: "Unauthorized or invalid token", error: errorMessage });
|
|
68
80
|
}
|
|
69
81
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2d1ZXN0LW9yZGVycy9baWRdL3JldHVybnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxvQkE4RkM7QUFsR0QscURBQThFO0FBQzlFLGtFQUFrRTtBQUNsRSxnRUFBOEM7QUFFdkMsS0FBSyxVQUFVLElBQUksQ0FDdEIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUE7SUFDNUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFDekIsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBSXRDLENBQUE7SUFFRCxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ25ELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLENBQUMsQ0FBQTtRQUM1RSxPQUFNO0lBQ1YsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsQ0FBQyxDQUFBO1FBQ2xFLE9BQU07SUFDVixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUV0QyxxQkFBcUI7SUFDckIsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxP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
|
|
@@ -6,7 +6,6 @@ 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");
|
|
10
9
|
async function GET(req, res) {
|
|
11
10
|
const authHeader = req.headers.authorization;
|
|
12
11
|
const { id } = req.params;
|
|
@@ -17,9 +16,22 @@ async function GET(req, res) {
|
|
|
17
16
|
const token = authHeader.split(" ")[1];
|
|
18
17
|
// Get plugin options
|
|
19
18
|
const configModule = req.scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
const plugins = configModule
|
|
20
|
+
?.projectConfig?.plugins ?? [];
|
|
21
|
+
let secret;
|
|
22
|
+
for (const plugin of plugins) {
|
|
23
|
+
if (typeof plugin === "object" && plugin !== null && plugin?.resolve === "order-management") {
|
|
24
|
+
const options = plugin?.options;
|
|
25
|
+
if (options?.jwtSecret) {
|
|
26
|
+
secret = options.jwtSecret;
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (!secret) {
|
|
32
|
+
res.status(500).json({ message: "order-management: jwtSecret is required" });
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
23
35
|
try {
|
|
24
36
|
const decoded = jsonwebtoken_1.default.verify(token, secret);
|
|
25
37
|
if (!decoded || !decoded.guest_identifier) {
|
|
@@ -66,4 +78,4 @@ async function GET(req, res) {
|
|
|
66
78
|
res.status(401).json({ message: "Unauthorized or invalid token", error: errorMessage });
|
|
67
79
|
}
|
|
68
80
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2d1ZXN0LW9yZGVycy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBSUEsa0JBdUZDO0FBMUZELHFEQUFxRTtBQUNyRSxnRUFBOEM7QUFFdkMsS0FBSyxVQUFVLEdBQUcsQ0FDckIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUE7SUFDNUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFekIsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUNuRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxDQUFDLENBQUE7UUFDNUUsT0FBTTtJQUNWLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRXRDLHFCQUFxQjtJQUNyQixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUMvRSxNQUFNLE9BQU8sR0FBSSxZQUE0RDtRQUMzRSxFQUFFLGFBQWEsRUFBRSxPQUFPLElBQUksRUFBRSxDQUFBO0lBRWhDLElBQUksTUFBMEIsQ0FBQTtJQUM5QixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUssTUFBK0IsRUFBRSxPQUFPLEtBQUssa0JBQWtCLEVBQUUsQ0FB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
|
|
@@ -6,7 +6,6 @@ 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");
|
|
10
9
|
async function GET(req, res) {
|
|
11
10
|
const authHeader = req.headers.authorization;
|
|
12
11
|
if (!authHeader || !authHeader.startsWith("Bearer ")) {
|
|
@@ -16,9 +15,22 @@ async function GET(req, res) {
|
|
|
16
15
|
const token = authHeader.split(" ")[1];
|
|
17
16
|
// Get plugin options
|
|
18
17
|
const configModule = req.scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
const plugins = configModule
|
|
19
|
+
?.projectConfig?.plugins ?? [];
|
|
20
|
+
let secret;
|
|
21
|
+
for (const plugin of plugins) {
|
|
22
|
+
if (typeof plugin === "object" && plugin !== null && plugin?.resolve === "order-management") {
|
|
23
|
+
const options = plugin?.options;
|
|
24
|
+
if (options?.jwtSecret) {
|
|
25
|
+
secret = options.jwtSecret;
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (!secret) {
|
|
31
|
+
res.status(500).json({ message: "order-management: jwtSecret is required" });
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
22
34
|
try {
|
|
23
35
|
const decoded = jsonwebtoken_1.default.verify(token, secret);
|
|
24
36
|
if (!decoded || !decoded.guest_identifier) {
|
|
@@ -81,4 +93,4 @@ async function GET(req, res) {
|
|
|
81
93
|
res.status(401).json({ message: "Unauthorized or invalid token", error: errorMessage });
|
|
82
94
|
}
|
|
83
95
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2d1ZXN0LW9yZGVycy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUlBLGtCQTBHQztBQTdHRCxxREFBcUU7QUFDckUsZ0VBQThDO0FBRXZDLEtBQUssVUFBVSxHQUFHLENBQ3JCLEdBQWtCLEVBQ2xCLEdBQW1CO0lBRW5CLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFBO0lBRTVDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDbkQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsQ0FBQyxDQUFBO1FBQzVFLE9BQU07SUFDVixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUV0QyxxQkFBcUI7SUFDckIsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDL0UsTUFBTSxPQUFPLEdBQUksWUFBNEQ7UUFDM0UsRUFBRSxhQUFhLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQTtJQUVoQyxJQUFJLE1BQTBCLENBQUE7SUFDOUIsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFLLE1BQStCLEVBQUUsT0FBTyxLQUFLLGtCQUFrQixFQUFFLENBQUM7WUFDdEgsTUFBTSxPQUFPLEdBQUksTUFBK0MsRUFBRSxPQUFPLENBQUE7WUFDekUsSUFBSSxPQUFP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
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = exports.GET = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const create_swap_workflow_js_1 = require("../../../../../workflows/swaps/create-swap-workflow.js");
|
|
6
|
+
const index_js_1 = require("../../../../../modules/swap/index.js");
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
const CreateSwapSchema = zod_1.z.object({
|
|
9
|
+
return_items: zod_1.z.array(zod_1.z.object({
|
|
10
|
+
id: zod_1.z.string(),
|
|
11
|
+
quantity: zod_1.z.number().positive(),
|
|
12
|
+
reason: zod_1.z.string().optional(),
|
|
13
|
+
})),
|
|
14
|
+
new_items: zod_1.z.array(zod_1.z.object({
|
|
15
|
+
variant_id: zod_1.z.string(),
|
|
16
|
+
quantity: zod_1.z.number().positive(),
|
|
17
|
+
})),
|
|
18
|
+
reason: zod_1.z.string().optional(),
|
|
19
|
+
note: zod_1.z.string().optional(),
|
|
20
|
+
});
|
|
21
|
+
const GET = async (req, res) => {
|
|
22
|
+
const { order_id } = req.params;
|
|
23
|
+
// Type-safe access to auth_context
|
|
24
|
+
const authContext = req.auth_context;
|
|
25
|
+
const customerId = authContext?.actor_id;
|
|
26
|
+
if (!customerId || authContext?.actor_type !== "customer") {
|
|
27
|
+
res.status(401).json({
|
|
28
|
+
message: "Unauthorized: Customer authentication is required",
|
|
29
|
+
});
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
const swapService = req.scope.resolve(index_js_1.SWAP_MODULE);
|
|
34
|
+
const swaps = await swapService.listSwaps({ order_id }, {
|
|
35
|
+
take: 100,
|
|
36
|
+
skip: 0,
|
|
37
|
+
});
|
|
38
|
+
res.json({
|
|
39
|
+
swaps: Array.isArray(swaps) ? swaps : swaps ? [swaps] : [],
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
44
|
+
res.status(500).json({
|
|
45
|
+
message: "Failed to retrieve swaps",
|
|
46
|
+
error: errorMessage,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
exports.GET = GET;
|
|
51
|
+
const POST = async (req, res) => {
|
|
52
|
+
const { order_id } = req.params;
|
|
53
|
+
// Type-safe access to auth_context
|
|
54
|
+
const authContext = req.auth_context;
|
|
55
|
+
const customerId = authContext?.actor_id;
|
|
56
|
+
if (!customerId || authContext?.actor_type !== "customer") {
|
|
57
|
+
res.status(401).json({
|
|
58
|
+
message: "Unauthorized: Customer authentication is required",
|
|
59
|
+
});
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
// Validate request body
|
|
64
|
+
const body = CreateSwapSchema.parse(req.body);
|
|
65
|
+
const { result } = await (0, create_swap_workflow_js_1.createSwapWorkflow)(req.scope).run({
|
|
66
|
+
input: {
|
|
67
|
+
order_id,
|
|
68
|
+
return_items: body.return_items,
|
|
69
|
+
new_items: body.new_items,
|
|
70
|
+
reason: body.reason,
|
|
71
|
+
note: body.note,
|
|
72
|
+
customer_id: customerId,
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
res.status(201).json(result);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
if (error instanceof zod_1.z.ZodError) {
|
|
79
|
+
res.status(400).json({
|
|
80
|
+
message: "Invalid request data",
|
|
81
|
+
errors: error.errors,
|
|
82
|
+
});
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (error instanceof utils_1.MedusaError) {
|
|
86
|
+
const statusCode = error.type === utils_1.MedusaError.Types.NOT_FOUND
|
|
87
|
+
? 404
|
|
88
|
+
: error.type === utils_1.MedusaError.Types.NOT_ALLOWED
|
|
89
|
+
? 403
|
|
90
|
+
: error.type === utils_1.MedusaError.Types.UNAUTHORIZED
|
|
91
|
+
? 401
|
|
92
|
+
: 400;
|
|
93
|
+
res.status(statusCode).json({
|
|
94
|
+
message: error.message,
|
|
95
|
+
type: error.type,
|
|
96
|
+
});
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
100
|
+
res.status(500).json({
|
|
101
|
+
message: "Failed to create swap",
|
|
102
|
+
error: errorMessage,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
exports.POST = POST;
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL29yZGVycy9bb3JkZXJfaWRdL3N3YXBzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUF1RDtBQUN2RCxvR0FBMkY7QUFDM0YsbUVBQWtFO0FBRWxFLDZCQUF1QjtBQUV2QixNQUFNLGdCQUFnQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDaEMsWUFBWSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQ25CLE9BQUMsQ0FBQyxNQUFNLENBQUM7UUFDUCxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtRQUNkLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQy9CLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0tBQzlCLENBQUMsQ0FDSDtJQUNELFNBQVMsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUNoQixPQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1AsVUFBVSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7UUFDdEIsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDaEMsQ0FBQyxDQUNIO0lBQ0QsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDNUIsQ0FBQyxDQUFBO0FBRUssTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUFrQixFQUNsQixHQUFtQixFQUNKLEVBQUU7SUFDakIsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFL0IsbUNBQW1DO0lBQ25DLE1BQU0sV0FBVyxHQUFJLEdBRW5CLENBQUMsWUFBWSxDQUFB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
|