order-management 0.0.12 → 0.0.14
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 +19 -4
- package/.medusa/server/src/admin/index.mjs +19 -4
- package/.medusa/server/src/api/admin/returns/[id]/route.js +43 -41
- package/.medusa/server/src/api/admin/returns/route.js +108 -99
- package/.medusa/server/src/api/store/guest-orders/[id]/invoice/route.js +83 -0
- package/.medusa/server/src/api/store/guest-orders/[id]/returns/route.js +77 -0
- package/.medusa/server/src/api/store/guest-orders/[id]/route.js +74 -0
- package/.medusa/server/src/api/store/guest-orders/route.js +63 -0
- package/.medusa/server/src/api/store/otp/request/route.js +75 -0
- package/.medusa/server/src/api/store/otp/verify/route.js +34 -0
- package/.medusa/server/src/services/otp-service.js +58 -0
- package/.medusa/server/src/subscribers/send-order-email.js +105 -5
- package/README.md +28 -1
- package/package.json +7 -5
|
@@ -123,7 +123,7 @@ const ReturnsPage = () => {
|
|
|
123
123
|
className: "h-9 rounded-md border border-ui-border-base bg-transparent px-3 text-sm text-ui-fg-base outline-none transition focus:ring-2 focus:ring-ui-fg-interactive md:max-w-xs",
|
|
124
124
|
children: [
|
|
125
125
|
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "all", children: "All Statuses" }),
|
|
126
|
-
availableStatuses.map((status) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: status, children: status.replace(
|
|
126
|
+
availableStatuses.map((status) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: status, children: status.replace(/_/g, " ").toUpperCase() }, status))
|
|
127
127
|
]
|
|
128
128
|
}
|
|
129
129
|
) })
|
|
@@ -166,11 +166,26 @@ const ReturnsPage = () => {
|
|
|
166
166
|
{
|
|
167
167
|
size: "2xsmall",
|
|
168
168
|
className: `uppercase ${getStatusBadgeClass$1(returnOrder.status)}`,
|
|
169
|
-
children: returnOrder.status.replace(
|
|
169
|
+
children: returnOrder.status.replace(/_/g, " ")
|
|
170
170
|
}
|
|
171
171
|
) }),
|
|
172
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "px-4 py-4 text-ui-fg-subtle", children:
|
|
173
|
-
|
|
172
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "px-4 py-4 text-ui-fg-subtle", children: (() => {
|
|
173
|
+
const amount = returnOrder.refund_amount;
|
|
174
|
+
if (amount == null || amount === void 0) {
|
|
175
|
+
return "—";
|
|
176
|
+
}
|
|
177
|
+
const displayAmount = Number(amount) / 100;
|
|
178
|
+
const currency = returnOrder.currency_code || "$";
|
|
179
|
+
return `${currency}${displayAmount.toFixed(2)}`;
|
|
180
|
+
})() }),
|
|
181
|
+
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "px-4 py-4 text-ui-fg-subtle", children: new Date(returnOrder.created_at).toLocaleDateString("en-US", {
|
|
182
|
+
year: "numeric",
|
|
183
|
+
month: "short",
|
|
184
|
+
day: "numeric",
|
|
185
|
+
hour: "numeric",
|
|
186
|
+
minute: "2-digit",
|
|
187
|
+
hour12: true
|
|
188
|
+
}) }),
|
|
174
189
|
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "px-4 py-4", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
175
190
|
ui.Button,
|
|
176
191
|
{
|
|
@@ -122,7 +122,7 @@ const ReturnsPage = () => {
|
|
|
122
122
|
className: "h-9 rounded-md border border-ui-border-base bg-transparent px-3 text-sm text-ui-fg-base outline-none transition focus:ring-2 focus:ring-ui-fg-interactive md:max-w-xs",
|
|
123
123
|
children: [
|
|
124
124
|
/* @__PURE__ */ jsx("option", { value: "all", children: "All Statuses" }),
|
|
125
|
-
availableStatuses.map((status) => /* @__PURE__ */ jsx("option", { value: status, children: status.replace(
|
|
125
|
+
availableStatuses.map((status) => /* @__PURE__ */ jsx("option", { value: status, children: status.replace(/_/g, " ").toUpperCase() }, status))
|
|
126
126
|
]
|
|
127
127
|
}
|
|
128
128
|
) })
|
|
@@ -165,11 +165,26 @@ const ReturnsPage = () => {
|
|
|
165
165
|
{
|
|
166
166
|
size: "2xsmall",
|
|
167
167
|
className: `uppercase ${getStatusBadgeClass$1(returnOrder.status)}`,
|
|
168
|
-
children: returnOrder.status.replace(
|
|
168
|
+
children: returnOrder.status.replace(/_/g, " ")
|
|
169
169
|
}
|
|
170
170
|
) }),
|
|
171
|
-
/* @__PURE__ */ jsx("td", { className: "px-4 py-4 text-ui-fg-subtle", children:
|
|
172
|
-
|
|
171
|
+
/* @__PURE__ */ jsx("td", { className: "px-4 py-4 text-ui-fg-subtle", children: (() => {
|
|
172
|
+
const amount = returnOrder.refund_amount;
|
|
173
|
+
if (amount == null || amount === void 0) {
|
|
174
|
+
return "—";
|
|
175
|
+
}
|
|
176
|
+
const displayAmount = Number(amount) / 100;
|
|
177
|
+
const currency = returnOrder.currency_code || "$";
|
|
178
|
+
return `${currency}${displayAmount.toFixed(2)}`;
|
|
179
|
+
})() }),
|
|
180
|
+
/* @__PURE__ */ jsx("td", { className: "px-4 py-4 text-ui-fg-subtle", children: new Date(returnOrder.created_at).toLocaleDateString("en-US", {
|
|
181
|
+
year: "numeric",
|
|
182
|
+
month: "short",
|
|
183
|
+
day: "numeric",
|
|
184
|
+
hour: "numeric",
|
|
185
|
+
minute: "2-digit",
|
|
186
|
+
hour12: true
|
|
187
|
+
}) }),
|
|
173
188
|
/* @__PURE__ */ jsx("td", { className: "px-4 py-4", children: /* @__PURE__ */ jsx(
|
|
174
189
|
Button,
|
|
175
190
|
{
|
|
@@ -1,55 +1,56 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GET = void 0;
|
|
4
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
5
4
|
const GET = async (req, res) => {
|
|
6
5
|
const { id } = req.params;
|
|
7
6
|
if (!id) {
|
|
8
7
|
res.status(400).json({ message: "Return ID is required" });
|
|
9
8
|
return;
|
|
10
9
|
}
|
|
11
|
-
const remoteQuery = req.scope.resolve(utils_1.ContainerRegistrationKeys.REMOTE_QUERY);
|
|
12
10
|
try {
|
|
13
|
-
//
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"returns.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
11
|
+
// Resolve OrderModuleService
|
|
12
|
+
const orderService = req.scope.resolve("order");
|
|
13
|
+
if (!orderService) {
|
|
14
|
+
res.status(500).json({
|
|
15
|
+
message: "Order service is not available. Please ensure the Medusa framework is properly configured.",
|
|
16
|
+
});
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
// Fetch orders with returns relation using OrderService
|
|
20
|
+
// This avoids the MikroORM join strategy error
|
|
21
|
+
let orders = [];
|
|
22
|
+
// Try listOrders method (common in Medusa v2)
|
|
23
|
+
if (typeof orderService.listOrders === "function") {
|
|
24
|
+
const result = await orderService.listOrders({}, // No filters - we'll search through all orders
|
|
25
|
+
{
|
|
26
|
+
relations: ["returns", "returns.items"],
|
|
27
|
+
take: 1000, // Fetch a large batch to find the return
|
|
28
|
+
skip: 0,
|
|
29
|
+
});
|
|
30
|
+
// listOrders might return [orders, count] or just orders
|
|
31
|
+
if (Array.isArray(result) && result.length === 2 && typeof result[1] === "number") {
|
|
32
|
+
orders = Array.isArray(result[0]) ? result[0] : result[0] ? [result[0]] : [];
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
orders = Array.isArray(result) ? result : result ? [result] : [];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else if (typeof orderService.listAndCount === "function") {
|
|
39
|
+
// Fallback to listAndCount if available
|
|
40
|
+
const result = await orderService.listAndCount({}, {
|
|
41
|
+
relations: ["returns", "returns.items"],
|
|
42
|
+
take: 1000,
|
|
43
|
+
skip: 0,
|
|
44
|
+
});
|
|
45
|
+
orders = Array.isArray(result[0]) ? result[0] : result[0] ? [result[0]] : [];
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
throw new Error("OrderService does not have listOrders or listAndCount method");
|
|
49
|
+
}
|
|
49
50
|
// Find the return in any order
|
|
50
51
|
let foundReturn = null;
|
|
51
52
|
let parentOrder = null;
|
|
52
|
-
for (const order of
|
|
53
|
+
for (const order of orders) {
|
|
53
54
|
if (order && typeof order === "object" && "returns" in order) {
|
|
54
55
|
const orderReturns = Array.isArray(order.returns)
|
|
55
56
|
? order.returns
|
|
@@ -93,7 +94,7 @@ const GET = async (req, res) => {
|
|
|
93
94
|
tax_total: orderData?.tax_total,
|
|
94
95
|
shipping_total: orderData?.shipping_total,
|
|
95
96
|
discount_total: orderData?.discount_total,
|
|
96
|
-
|
|
97
|
+
customer_id: orderData?.customer_id,
|
|
97
98
|
shipping_address: orderData?.shipping_address,
|
|
98
99
|
billing_address: orderData?.billing_address,
|
|
99
100
|
},
|
|
@@ -101,6 +102,7 @@ const GET = async (req, res) => {
|
|
|
101
102
|
});
|
|
102
103
|
}
|
|
103
104
|
catch (error) {
|
|
105
|
+
console.error("Error retrieving return details:", error);
|
|
104
106
|
res.status(500).json({
|
|
105
107
|
message: error instanceof Error
|
|
106
108
|
? error.message
|
|
@@ -109,4 +111,4 @@ const GET = async (req, res) => {
|
|
|
109
111
|
}
|
|
110
112
|
};
|
|
111
113
|
exports.GET = GET;
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldHVybnMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFTyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQWtCLEVBQ2xCLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUV6QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDUixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxDQUFDLENBQUE7UUFDMUQsT0FBTTtJQUNSLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCw2QkFBNkI7UUFDN0IsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFL0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xCLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNuQixPQUFPLEVBQUUsNEZBQTRGO2FBQ3RHLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBRUQsd0RBQXdEO1FBQ3hELCtDQUErQztRQUMvQyxJQUFJLE1BQU0sR0FBYyxFQUFFLENBQUE7UUFFMUIsOENBQThDO1FBQzlDLElBQUksT0FBUSxZQUF5QyxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNoRixNQUFNLE1BQU0sR0FBRyxNQUFPLFlBS3BCLENBQUMsVUFBVSxDQUNYLEVBQUUsRUFBRSwrQ0FBK0M7WUFDbkQ7Z0JBQ0UsU0FBUyxFQUFFLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQztnQkFDdkMsSUFBSSxFQUFFLElBQUksRUFBRSx5Q0FBeUM7Z0JBQ3JE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
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GET = void 0;
|
|
4
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
5
4
|
const validators_1 = require("./validators");
|
|
6
5
|
const GET = async (req, res) => {
|
|
7
6
|
// Parse query - Medusa framework rejects order_direction, so we use default DESC
|
|
@@ -31,72 +30,71 @@ const GET = async (req, res) => {
|
|
|
31
30
|
}
|
|
32
31
|
// Use DESC as default sort direction (Medusa framework rejects order_direction parameter)
|
|
33
32
|
const sortDirection = "DESC";
|
|
34
|
-
|
|
33
|
+
// Use OrderService to fetch orders with returns relation
|
|
34
|
+
// This is the recommended Medusa approach and avoids MikroORM join strategy errors
|
|
35
35
|
try {
|
|
36
|
-
//
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
// Resolve OrderModuleService
|
|
37
|
+
const orderService = req.scope.resolve("order");
|
|
38
|
+
if (!orderService) {
|
|
39
|
+
res.status(500).json({
|
|
40
|
+
message: "Order service is not available. Please ensure the Medusa framework is properly configured.",
|
|
41
|
+
});
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
// Build order-level filters (applied to OrderService query)
|
|
45
|
+
const orderFilters = {};
|
|
41
46
|
if (query.order_id) {
|
|
42
|
-
|
|
47
|
+
orderFilters.id = query.order_id;
|
|
48
|
+
}
|
|
49
|
+
if (query.q?.startsWith("order_")) {
|
|
50
|
+
orderFilters.id = query.q;
|
|
43
51
|
}
|
|
44
|
-
//
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
52
|
+
// Fetch orders with returns relation
|
|
53
|
+
// Note: We fetch more orders than needed since we filter returns after extraction
|
|
54
|
+
// This ensures we get enough returns after filtering
|
|
55
|
+
// Try different method names that OrderService might have
|
|
56
|
+
let orders = [];
|
|
57
|
+
let orderCount = 0;
|
|
58
|
+
// Try listOrders method (common in Medusa v2)
|
|
59
|
+
if (typeof orderService.listOrders === "function") {
|
|
60
|
+
const result = await orderService.listOrders(orderFilters, {
|
|
61
|
+
relations: ["returns", "returns.items"],
|
|
62
|
+
take: Math.max(query.limit * 3, 100),
|
|
63
|
+
skip: 0,
|
|
64
|
+
});
|
|
65
|
+
// listOrders might return [orders, count] or just orders
|
|
66
|
+
if (Array.isArray(result) && result.length === 2 && typeof result[1] === "number") {
|
|
67
|
+
orders = Array.isArray(result[0]) ? result[0] : result[0] ? [result[0]] : [];
|
|
68
|
+
orderCount = result[1];
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
orders = Array.isArray(result) ? result : result ? [result] : [];
|
|
72
|
+
orderCount = orders.length;
|
|
49
73
|
}
|
|
50
74
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
"updated_at",
|
|
61
|
-
"customer.id",
|
|
62
|
-
"customer.email",
|
|
63
|
-
"returns.id",
|
|
64
|
-
"returns.status",
|
|
65
|
-
"returns.created_at",
|
|
66
|
-
"returns.updated_at",
|
|
67
|
-
"returns.items.*",
|
|
68
|
-
"returns.shipping_method.*",
|
|
69
|
-
"returns.refund_amount",
|
|
70
|
-
"returns.metadata",
|
|
71
|
-
"returns.reason",
|
|
72
|
-
"returns.note",
|
|
73
|
-
"returns.received_at",
|
|
74
|
-
],
|
|
75
|
-
filters: Object.keys(filters).length > 0 ? filters : undefined,
|
|
76
|
-
// Don't paginate at the order level - we'll paginate returns after filtering
|
|
77
|
-
});
|
|
78
|
-
// Execute query
|
|
79
|
-
let orders;
|
|
80
|
-
try {
|
|
81
|
-
orders = await remoteQuery(queryObject);
|
|
75
|
+
else if (typeof orderService.listAndCount === "function") {
|
|
76
|
+
// Fallback to listAndCount if available
|
|
77
|
+
const result = await orderService.listAndCount(orderFilters, {
|
|
78
|
+
relations: ["returns", "returns.items"],
|
|
79
|
+
take: Math.max(query.limit * 3, 100),
|
|
80
|
+
skip: 0,
|
|
81
|
+
});
|
|
82
|
+
orders = Array.isArray(result[0]) ? result[0] : result[0] ? [result[0]] : [];
|
|
83
|
+
orderCount = result[1];
|
|
82
84
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
throw new Error(
|
|
85
|
+
else {
|
|
86
|
+
// If neither method exists, throw an error
|
|
87
|
+
throw new Error("OrderService does not have listOrders or listAndCount method. " +
|
|
88
|
+
"Available methods: " + Object.keys(orderService).join(", "));
|
|
86
89
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const
|
|
90
|
-
for (const order of
|
|
91
|
-
if (!order || typeof order !== "object") {
|
|
90
|
+
console.log(`[Returns API] Fetched ${orders.length} orders (${orderCount} total)`);
|
|
91
|
+
// Extract returns from orders and apply return-level filters
|
|
92
|
+
const allReturns = [];
|
|
93
|
+
for (const order of orders) {
|
|
94
|
+
if (!order || typeof order !== "object" || !("returns" in order)) {
|
|
92
95
|
continue;
|
|
93
96
|
}
|
|
94
|
-
const
|
|
95
|
-
// Check if order has returns - handle both array and single return cases
|
|
96
|
-
if (!("returns" in orderData)) {
|
|
97
|
-
continue;
|
|
98
|
-
}
|
|
99
|
-
const orderReturnsRaw = orderData.returns;
|
|
97
|
+
const orderReturnsRaw = order.returns;
|
|
100
98
|
const orderReturns = Array.isArray(orderReturnsRaw)
|
|
101
99
|
? orderReturnsRaw
|
|
102
100
|
: orderReturnsRaw
|
|
@@ -110,69 +108,71 @@ const GET = async (req, res) => {
|
|
|
110
108
|
continue;
|
|
111
109
|
}
|
|
112
110
|
const returnData = returnItem;
|
|
113
|
-
//
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
111
|
+
// Transform order to typed structure (needed for filters)
|
|
112
|
+
// Note: Order entity doesn't have direct 'customer' relation in Medusa v2
|
|
113
|
+
// Use customer_id and email fields instead
|
|
114
|
+
const orderData = order;
|
|
115
|
+
// Apply return-level filters
|
|
116
|
+
// Filter by return status
|
|
117
|
+
if (query.status && returnData.status !== query.status) {
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
// Filter by return ID if search query starts with "return_"
|
|
121
|
+
if (query.q?.startsWith("return_")) {
|
|
122
|
+
if (returnData.id !== query.q) {
|
|
121
123
|
continue;
|
|
122
124
|
}
|
|
123
125
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
+
else if (query.q && !query.q.startsWith("order_")) {
|
|
127
|
+
// General search: check return ID, order ID, and customer email
|
|
126
128
|
const searchTerm = query.q.toLowerCase();
|
|
127
129
|
const returnId = String(returnData.id || "").toLowerCase();
|
|
128
130
|
const orderId = String(orderData.id || "").toLowerCase();
|
|
129
|
-
const
|
|
130
|
-
const customerEmail = String(customerData?.email ||
|
|
131
|
-
orderData.email ||
|
|
132
|
-
"").toLowerCase();
|
|
131
|
+
const customerEmail = String(orderData.email || "").toLowerCase();
|
|
133
132
|
if (!returnId.includes(searchTerm) &&
|
|
134
133
|
!orderId.includes(searchTerm) &&
|
|
135
134
|
!customerEmail.includes(searchTerm)) {
|
|
136
135
|
continue;
|
|
137
136
|
}
|
|
138
137
|
}
|
|
139
|
-
//
|
|
140
|
-
if (query.
|
|
141
|
-
|
|
138
|
+
// Filter by customer email
|
|
139
|
+
if (query.customer_email) {
|
|
140
|
+
const customerEmail = orderData.email || "";
|
|
141
|
+
if (!customerEmail.toLowerCase().includes(query.customer_email.toLowerCase())) {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
142
144
|
}
|
|
143
|
-
//
|
|
144
|
-
if (query.created_at) {
|
|
145
|
-
const
|
|
145
|
+
// Date filtering on return creation
|
|
146
|
+
if (query.created_at?.gte || query.created_at?.lte) {
|
|
147
|
+
const returnDate = returnData.created_at
|
|
146
148
|
? new Date(returnData.created_at)
|
|
147
149
|
: null;
|
|
148
|
-
if (query.created_at.gte &&
|
|
149
|
-
if (
|
|
150
|
+
if (query.created_at.gte && returnDate) {
|
|
151
|
+
if (returnDate < new Date(query.created_at.gte)) {
|
|
150
152
|
continue;
|
|
151
153
|
}
|
|
152
154
|
}
|
|
153
|
-
if (query.created_at.lte &&
|
|
154
|
-
if (
|
|
155
|
+
if (query.created_at.lte && returnDate) {
|
|
156
|
+
if (returnDate > new Date(query.created_at.lte)) {
|
|
155
157
|
continue;
|
|
156
158
|
}
|
|
157
159
|
}
|
|
158
160
|
}
|
|
159
|
-
|
|
160
|
-
const customerData = orderData.customer;
|
|
161
|
-
returns.push({
|
|
161
|
+
allReturns.push({
|
|
162
162
|
...returnData,
|
|
163
163
|
order_id: orderData.id,
|
|
164
164
|
order_email: orderData.email,
|
|
165
|
-
|
|
166
|
-
|
|
165
|
+
order_display_id: orderData.display_id,
|
|
166
|
+
customer_id: orderData.customer_id,
|
|
167
|
+
customer_email: orderData.email, // Use order email as customer email
|
|
168
|
+
currency_code: orderData.currency_code, // Include currency code from order
|
|
167
169
|
});
|
|
168
170
|
}
|
|
169
171
|
}
|
|
172
|
+
console.log(`[Returns API] Extracted ${allReturns.length} returns after filtering`);
|
|
170
173
|
// Sort returns
|
|
171
174
|
const sortField = query.order || "created_at";
|
|
172
|
-
|
|
173
|
-
if (typeof a !== "object" || a === null || typeof b !== "object" || b === null) {
|
|
174
|
-
return 0;
|
|
175
|
-
}
|
|
175
|
+
allReturns.sort((a, b) => {
|
|
176
176
|
const aVal = a[sortField];
|
|
177
177
|
const bVal = b[sortField];
|
|
178
178
|
if (aVal === undefined && bVal === undefined)
|
|
@@ -181,20 +181,29 @@ const GET = async (req, res) => {
|
|
|
181
181
|
return 1;
|
|
182
182
|
if (bVal === undefined)
|
|
183
183
|
return -1;
|
|
184
|
+
// Handle dates
|
|
184
185
|
if (aVal instanceof Date && bVal instanceof Date) {
|
|
185
|
-
|
|
186
|
-
|
|
186
|
+
return sortDirection === "DESC"
|
|
187
|
+
? bVal.getTime() - aVal.getTime()
|
|
188
|
+
: aVal.getTime() - bVal.getTime();
|
|
187
189
|
}
|
|
190
|
+
// Handle strings
|
|
188
191
|
if (typeof aVal === "string" && typeof bVal === "string") {
|
|
189
|
-
|
|
190
|
-
|
|
192
|
+
return sortDirection === "DESC"
|
|
193
|
+
? bVal.localeCompare(aVal)
|
|
194
|
+
: aVal.localeCompare(bVal);
|
|
195
|
+
}
|
|
196
|
+
// Handle numbers
|
|
197
|
+
if (typeof aVal === "number" && typeof bVal === "number") {
|
|
198
|
+
return sortDirection === "DESC" ? bVal - aVal : aVal - bVal;
|
|
191
199
|
}
|
|
192
200
|
return 0;
|
|
193
201
|
});
|
|
194
|
-
// Get total count
|
|
195
|
-
const totalCount =
|
|
202
|
+
// Get total count after filtering
|
|
203
|
+
const totalCount = allReturns.length;
|
|
196
204
|
// Apply pagination
|
|
197
|
-
const paginatedReturns =
|
|
205
|
+
const paginatedReturns = allReturns.slice(query.offset, query.offset + query.limit);
|
|
206
|
+
console.log(`[Returns API] Returning ${paginatedReturns.length} returns (page ${Math.floor(query.offset / query.limit) + 1}, total: ${totalCount})`);
|
|
198
207
|
res.status(200).json({
|
|
199
208
|
returns: paginatedReturns,
|
|
200
209
|
count: totalCount,
|
|
@@ -213,4 +222,4 @@ const GET = async (req, res) => {
|
|
|
213
222
|
}
|
|
214
223
|
};
|
|
215
224
|
exports.GET = GET;
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldHVybnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBR2tDO0FBRWxDLDZDQUFxRDtBQUU5QyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDbkUsaUZBQWlGO0lBQ2pGLE1BQU0sV0FBVyxHQUFHLG1DQUFzQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBRXJFLElBQUksS0FVSCxDQUFBO0lBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QixvREFBb0Q7UUFDcEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUE7UUFDaEMsS0FBSyxHQUFHO1lBQ04sTUFBTSxFQUFFLE9BQU8sUUFBUSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDekUsUUFBUSxFQUFFLE9BQU8sUUFBUSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDL0UsY0FBYyxFQUFFLE9BQU8sUUFBUSxDQUFDLGNBQWMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDakcsQ0FBQyxFQUFFLE9BQU8sUUFBUSxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDMUQsTUFBTSxFQUFFLE9BQU8sUUFBUSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEs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
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldHVybnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQXFEO0FBRTlDLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNuRSxpRkFBaUY7SUFDakYsTUFBTSxXQUFXLEdBQUcsbUNBQXNCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUE7SUFFckUsSUFBSSxLQVVILENBQUE7SUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLG9EQUFvRDtRQUNwRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQTtRQUNoQyxLQUFLLEdBQUc7WUFDTixNQUFNLEVBQUUsT0FBTyxRQUFRLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUztZQUN6RSxRQUFRLEVBQUUsT0FBTyxRQUFRLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUMvRSxjQUFjLEVBQUUsT0FBTyxRQUFRLENBQUMsY0FBYyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNqRyxDQUFDLEVBQUUsT0FBTyxRQUFRLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUMxRCxNQUFNLEVBQUUsT0FBTyxRQUFRLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUztZQUN6RSxLQUFLLEVBQUUsT0FBTyxRQUFRLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25GLE1BQU0sRUFBRSxPQUFPLFFBQVEsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEYsS0FBSyxFQUFFLE9BQU8sUUFBUSxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUMxRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQStDO2dCQUMxRCxDQUFDLENBQUMsU0FBUztZQUNiLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxJQUFJLE9BQU8sUUFBUSxDQUFDLFVBQVUsS0FBSyxRQUFRO2dCQUN4RSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQTRDO2dCQUN2RCxDQUFDLENBQUMsU0FBUztTQUNkLENBQUE7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLEtBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFBO0lBQzFCLENBQUM7SUFFRCwwRkFBMEY7SUFDMUYsTUFBTSxhQUFhLEdBQW1CLE1BQU0sQ0FBQTtJQUU1Qyx5REFBeUQ7SUFDekQsbUZBQW1GO0lBQ25GLElBQUksQ0FBQztRQUNILDZCQUE2QjtRQUM3QixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUUvQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ25CLE9BQU8sRUFBRSw0RkFBNEY7YUFDdEcsQ0FBQyxDQUFBO1lBQ0YsT0FBTTtRQUNSLENBQUM7UUFFRCw0REFBNEQ7UUFDNUQsTUFBTSxZQUFZLEdBQTRCLEVBQUUsQ0FBQTtRQUVoRCxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixZQUFZLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUE7UUFDbEMsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxZQUFZLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDM0IsQ0FBQztRQUVELHFDQUFxQztRQUNyQyxrRkFBa0Y7UUFDbEYscURBQXFEO1FBQ3JELDBEQUEwRDtRQUMxRCxJQUFJLE1BQU0sR0FBYyxFQUFFLENBQUE7UUFDMUIsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFBO1FBRWxCLDhDQUE4QztRQUM5QyxJQUFJLE9BQVEsWUFBeUMsQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDaEYsTUFBTSxNQUFNLEdBQUcsTUFBTyxZQUtwQixDQUFDLFVBQVUsQ0FDWCxZQUFZLEVBQ1o7Z0JBQ0UsU0FBUyxFQUFFLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQztnQkFDdkMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDO2dCQUNwQyxJQUFJLEVBQUUsQ0FBQzthQUNSLENBQ0YsQ0FBQTtZQUVELHlEQUF5RDtZQUN6RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ2xGLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO2dCQUM1RSxVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ3hCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtnQkFDaEUsVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUE7WUFDNUIsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLE9BQVEsWUFBc0QsQ0FBQyxZQUFZLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdEcsd0NBQXdDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU8sWUFLcEIsQ0FBQyxZQUFZLENBQ2IsWUFBWSxFQUNaO2dCQUNFLFNBQVMsRUFBRSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUM7Z0JBQ3ZDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQztnQkFDcEMsSUFBSSxFQUFFLENBQUM7YUFDUixDQUNGLENBQUE7WUFDRCxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtZQUM1RSxVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3hCLENBQUM7YUFBTSxDQUFDO1lBQ04sMkNBQTJDO1lBQzNDLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0VBQWdFO2dCQUNoRSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDN0QsQ0FBQTtRQUNILENBQUM7UUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixNQUFNLENBQUMsTUFBTSxZQUFZLFVBQVUsU0FBUyxDQUFDLENBQUE7UUFFbEYsNkRBQTZEO1FBQzdELE1BQU0sVUFBVSxHQUFtQyxFQUFFLENBQUE7UUFFckQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pFLFNBQVE7WUFDVixDQUFDO1lBRUQsTUFBTSxlQUFlLEdBQUksS0FBK0IsQ0FBQyxPQUFPLENBQUE7WUFDaEUsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7Z0JBQ2pELENBQUMsQ0FBQyxlQUFlO2dCQUNqQixDQUFDLENBQUMsZUFBZTtvQkFDakIsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO29CQUNuQixDQUFDLENBQUMsRUFBRSxDQUFBO1lBRU4sSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM5QixTQUFRO1lBQ1YsQ0FBQztZQUVELEtBQUssTUFBTSxVQUFVLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQ2xELFNBQVE7Z0JBQ1YsQ0FBQztnQkFFRCxNQUFNLFVBQVUsR0FBRyxVQUFxQyxDQUFBO2dCQUV4RCwwREFBMEQ7Z0JBQzFELDBFQUEwRTtnQkFDMUUsMkNBQTJDO2dCQUMzQyxNQUFNLFNBQVMsR0FBRyxLQU1qQixDQUFBO2dCQUVELDZCQUE2QjtnQkFFN0IsMEJBQTBCO2dCQUMxQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3ZELFNBQVE7Z0JBQ1YsQ0FBQztnQkFFRCw0REFBNEQ7Z0JBQzVELElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztvQkFDbkMsSUFBSSxVQUFVLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDOUIsU0FBUTtvQkFDVixDQUFDO2dCQUNILENBQUM7cUJBQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDcEQsZ0VBQWdFO29CQUNoRSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO29CQUN4QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtvQkFDMUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7b0JBQ3hELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO29CQUVqRSxJQUNFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7d0JBQzlCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7d0JBQzdCLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFDbkMsQ0FBQzt3QkFDRCxTQUFRO29CQUNWLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCwyQkFBMkI7Z0JBQzNCLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN6QixNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQTtvQkFDM0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7d0JBQ2hGLFNBQVE7b0JBQ1YsQ0FBQztnQkFDRCxDQUFDO2dCQUVELG9DQUFvQztnQkFDcEMsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDO29CQUNuRCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVTt3QkFDdEMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFvQyxDQUFDO3dCQUMzRCxDQUFDLENBQUMsSUFBSSxDQUFBO29CQUVSLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7d0JBQ3ZDLElBQUksVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzs0QkFDaEQsU0FBUTt3QkFDVixDQUFDO29CQUNILENBQUM7b0JBQ0QsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQzt3QkFDdkMsSUFBSSxVQUFVLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDOzRCQUNoRCxTQUFRO3dCQUNWLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO2dCQUVELFVBQVUsQ0FBQyxJQUFJLENBQUM7b0JBQ2QsR0FBRyxVQUFVO29CQUNiLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRTtvQkFDdEIsV0FBVyxFQUFFLFNBQVMsQ0FBQyxLQUFLO29CQUM1QixnQkFBZ0IsRUFBRSxTQUFTLENBQUMsVUFBVTtvQkFDdEMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxXQUFXO29CQUNsQyxjQUFjLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxvQ0FBb0M7b0JBQ3JFLGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYSxFQUFFLG1DQUFtQztpQkFDNUUsQ0FBQyxDQUFBO1lBQ0osQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixVQUFVLENBQUMsTUFBTSwwQkFBMEIsQ0FBQyxDQUFBO1FBRW5GLGVBQWU7UUFDZixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJLFlBQVksQ0FBQTtRQUU3QyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUN6QixNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7WUFFekIsSUFBSSxJQUFJLEtBQUssU0FBUyxJQUFJLElBQUksS0FBSyxTQUFTO2dCQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ3RELElBQUksSUFBSSxLQUFLLFNBQVM7Z0JBQUUsT0FBTyxDQUFDLENBQUE7WUFDaEMsSUFBSSxJQUFJLEtBQUssU0FBUztnQkFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO1lBRWpDLGVBQWU7WUFDZixJQUFJLElBQUksWUFBWSxJQUFJLElBQUksSUFBSSxZQUFZLElBQUksRUFBRSxDQUFDO2dCQUNqRCxPQUFPLGFBQWEsS0FBSyxNQUFNO29CQUM3QixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ3JDLENBQUM7WUFFRCxpQkFBaUI7WUFDakIsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3pELE9BQU8sYUFBYSxLQUFLLE1BQU07b0JBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztvQkFDMUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDOUIsQ0FBQztZQUVELGlCQUFpQjtZQUNqQixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDekQsT0FBTyxhQUFhLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1lBQzdELENBQUM7WUFFRCxPQUFPLENBQUMsQ0FBQTtRQUNWLENBQUMsQ0FBQyxDQUFBO1FBRUYsa0NBQWtDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUE7UUFFcEMsbUJBQW1CO1FBQ25CLE1BQU0sZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FDdkMsS0FBSyxDQUFDLE1BQU0sRUFDWixLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQzNCLENBQUE7UUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixnQkFBZ0IsQ0FBQyxNQUFNLGtCQUFrQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxVQUFVLEdBQUcsQ0FBQyxDQUFBO1FBRXBKLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsS0FBSyxFQUFFLFVBQVU7WUFDakIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztTQUNuQixDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDakQsTUFBTSxZQUFZLEdBQ2hCLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFBO1FBQ3ZFLE1BQU0sVUFBVSxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtRQUVuRSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNuQixPQUFPLEVBQUUsWUFBWTtZQUNyQixHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssYUFBYSxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDO1NBQ3JFLENBQUMsQ0FBQTtJQUNKLENBQUM7QUFDSCxDQUFDLENBQUE7QUFqU1ksUUFBQSxHQUFHLE9BaVNmIn0=
|