@lodashventure/medusa-booking-for-pickup 1.5.15 → 1.5.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/api/admin/pickup-date/[id]/route.js +9 -26
- package/.medusa/server/src/api/store/carts/[id]/pickup-date/route.js +16 -1
- package/.medusa/server/src/api/store/pickup-date/route.js +31 -6
- package/.medusa/server/src/utils/store-timezone.js +102 -0
- package/.medusa/server/src/workflows/pickup-availablity/pickup/steps/validatePickupDateStep.js +11 -22
- package/.medusa/server/src/workflows/pickup-availablity/updatePickupAvailabilityWorkflow.js +8 -14
- package/package.json +9 -9
|
@@ -5,6 +5,7 @@ const framework_1 = require("@medusajs/framework");
|
|
|
5
5
|
const utils_1 = require("@medusajs/framework/utils");
|
|
6
6
|
const pickup_datetime_1 = require("../../../../modules/pickup-datetime");
|
|
7
7
|
const build_shipping_option_link_1 = require("../../../../workflows/pickup-availablity/utils/build-shipping-option-link");
|
|
8
|
+
const store_timezone_1 = require("../../../../utils/store-timezone");
|
|
8
9
|
const dedupeTimeSlots = (slots = []) => {
|
|
9
10
|
const seen = new Set();
|
|
10
11
|
const sanitized = [];
|
|
@@ -24,23 +25,6 @@ const dedupeTimeSlots = (slots = []) => {
|
|
|
24
25
|
});
|
|
25
26
|
return sanitized;
|
|
26
27
|
};
|
|
27
|
-
const toTimeString = (value) => {
|
|
28
|
-
if (!value) {
|
|
29
|
-
return "";
|
|
30
|
-
}
|
|
31
|
-
const date = new Date(value);
|
|
32
|
-
if (!Number.isNaN(date.getTime())) {
|
|
33
|
-
return `${date.getHours().toString().padStart(2, "0")}:${date
|
|
34
|
-
.getMinutes()
|
|
35
|
-
.toString()
|
|
36
|
-
.padStart(2, "0")}`;
|
|
37
|
-
}
|
|
38
|
-
const match = `${value}`.match(/(\d{1,2}):(\d{2})/);
|
|
39
|
-
if (match) {
|
|
40
|
-
return `${match[1].padStart(2, "0")}:${match[2]}`;
|
|
41
|
-
}
|
|
42
|
-
return value.toString();
|
|
43
|
-
};
|
|
44
28
|
const dedupeAvailabilities = (availabilities = []) => {
|
|
45
29
|
const seen = new Set();
|
|
46
30
|
return availabilities.filter((availability) => {
|
|
@@ -49,8 +33,8 @@ const dedupeAvailabilities = (availabilities = []) => {
|
|
|
49
33
|
}
|
|
50
34
|
const key = [
|
|
51
35
|
availability.day_of_week,
|
|
52
|
-
|
|
53
|
-
|
|
36
|
+
(0, store_timezone_1.formatStoreTimeString)(availability.timeStart),
|
|
37
|
+
(0, store_timezone_1.formatStoreTimeString)(availability.timeEnd),
|
|
54
38
|
]
|
|
55
39
|
.filter(Boolean)
|
|
56
40
|
.join("-");
|
|
@@ -107,12 +91,11 @@ const POST = async (req, res) => {
|
|
|
107
91
|
const availabilities = schedules
|
|
108
92
|
.filter((schedule) => schedule.enable)
|
|
109
93
|
.flatMap((schedule) => schedule.timeSlots.map((slot) => {
|
|
110
|
-
const
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
timeEnd.setHours(endHour, endMinute, 0, 0);
|
|
94
|
+
const timeStart = (0, store_timezone_1.parseTimeStringToStoreDate)(slot.start);
|
|
95
|
+
const timeEnd = (0, store_timezone_1.parseTimeStringToStoreDate)(slot.end);
|
|
96
|
+
if (!timeStart || !timeEnd) {
|
|
97
|
+
throw new Error(`Invalid time slot "${slot.start ?? ""}-${slot.end ?? ""}"`);
|
|
98
|
+
}
|
|
116
99
|
return {
|
|
117
100
|
shipping_option_id,
|
|
118
101
|
enable: true,
|
|
@@ -166,4 +149,4 @@ const GET = async (req, res) => {
|
|
|
166
149
|
}
|
|
167
150
|
};
|
|
168
151
|
exports.GET = GET;
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3BpY2t1cC1kYXRlL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQStFO0FBQy9FLHFEQUFzRTtBQU10RSx5RUFBNkU7QUFFN0UsMEhBQTBIO0FBQzFILHFFQUcwQztBQUkxQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQXlCLEVBQUUsRUFBYyxFQUFFO0lBQ2xFLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDL0IsTUFBTSxTQUFTLEdBQWUsRUFBRSxDQUFDO0lBRWpDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUMvQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDeEMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsU0FBUyxDQUFDLElBQUksQ0FBQztZQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxpQkFBd0IsRUFBRSxFQUFFLEVBQUU7SUFDMUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUUvQixP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
|
|
@@ -21,6 +21,21 @@ async function POST(req, res) {
|
|
|
21
21
|
throw new Error("Shipping method not found");
|
|
22
22
|
}
|
|
23
23
|
const shippingOptionId = shippingMethod.shipping_option_id;
|
|
24
|
+
// ✅ Verify that the shipping method is a pickup type
|
|
25
|
+
const { data: [shippingOption], } = await query.graph({
|
|
26
|
+
entity: "shipping_option",
|
|
27
|
+
fields: ["id", "service_zone.fulfillment_set.type"],
|
|
28
|
+
filters: {
|
|
29
|
+
id: shippingOptionId,
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
const fulfillmentType = shippingOption?.service_zone?.fulfillment_set
|
|
33
|
+
?.type;
|
|
34
|
+
if (fulfillmentType !== "pickup") {
|
|
35
|
+
return res.status(400).json({
|
|
36
|
+
message: "ไม่สามารถตั้งค่าวันเวลารับสินค้าได้ เนื่องจากวิธีการจัดส่งที่เลือกไม่ใช่การรับสินค้าที่สาขา กรุณาเลือกวิธีการจัดส่งเป็น 'รับสินค้าที่สาขา' ก่อน",
|
|
37
|
+
});
|
|
38
|
+
}
|
|
24
39
|
try {
|
|
25
40
|
await updateCartPickupDate_1.default.run({
|
|
26
41
|
input: {
|
|
@@ -51,4 +66,4 @@ const GET = async (req, res) => {
|
|
|
51
66
|
res.status(200).json(pickDate);
|
|
52
67
|
};
|
|
53
68
|
exports.GET = GET;
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2NhcnRzL1tpZF0vcGlja3VwLWRhdGUvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBWUEsb0JBZ0VDO0FBNUVELG1EQUFnRDtBQUVoRCxxREFBK0U7QUFDL0UsbUlBQW1IO0FBQ25ILDRFQUFnRjtBQVF6RSxLQUFLLFVBQVUsSUFBSSxDQUN4QixHQUErQyxFQUMvQyxHQUFtQjtJQUVuQixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUMxQixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztJQUVqQyxNQUFNLEtBQUssR0FBRyxxQkFBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRSxNQUFNLGlCQUFpQixHQUFHLHFCQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUxRCxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQztRQUNuRSxPQUFPLEVBQUUsRUFBRTtLQUNaLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxDQUFDLGtCQUFrQixDQUFDO0lBRTNELHFEQUFxRDtJQUNyRCxNQUFNLEVBQ0osSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQ3ZCLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLG1DQUFtQyxDQUFDO1FBQ25ELE9BQU8sRUFBRTtZQUNQLEVBQUUsRUFBRSxnQkFBZ0I7U0FDckI7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLGVBQWUsR0FBSSxjQUFzQixFQUFFLFlBQVksRUFBRSxlQUFlO1FBQzVFLEVBQUUsSUFBSSxDQUFDO0lBRVQsSUFBSSxlQUFlLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDakMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMxQixPQUFPLEVBQ0wsaUpBQWlKO1NBQ3BKLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLDhCQUE0QixDQUFDLEdBQUcsQ0FBQztZQUNyQyxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsZUFBZSxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDdEMsa0JBQWtCLEVBQUUsZ0JBQWdCO2FBQ3JDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUNwQixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNwQixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDO1lBQy9CLE1BQU0sRUFBRSxNQUFNO1lBQ2QsT0FBTyxFQUFFO2dCQUNQLEVBQUU7YUFDSDtTQUNGLENBQUMsQ0FBQztRQUVILEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztBQUNILENBQUM7QUFFTSxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDbkUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFFMUIsTUFBTSwyQkFBMkIsR0FDL0IscUJBQVMsQ0FBQyxPQUFPLENBQThCLHdDQUFzQixDQUFDLENBQUM7SUFFekUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sMkJBQTJCLENBQUMsZUFBZSxDQUFDO1FBQ25FLE9BQU8sRUFBRSxFQUFFO0tBQ1osQ0FBQyxDQUFDO0lBRUgsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDO0FBWFcsUUFBQSxHQUFHLE9BV2QifQ==
|
|
@@ -4,23 +4,48 @@ exports.GET = void 0;
|
|
|
4
4
|
const framework_1 = require("@medusajs/framework");
|
|
5
5
|
const utils_1 = require("@medusajs/framework/utils");
|
|
6
6
|
const pickup_datetime_1 = require("../../../modules/pickup-datetime");
|
|
7
|
+
const PICKUP_FIELDS = [
|
|
8
|
+
"*",
|
|
9
|
+
"service_zone.*",
|
|
10
|
+
"service_zone.fulfillment_set.*",
|
|
11
|
+
];
|
|
12
|
+
const buildPickupFilters = (shipping_option_id) => {
|
|
13
|
+
const filters = {
|
|
14
|
+
"service_zone.fulfillment_set.type": "pickup",
|
|
15
|
+
};
|
|
16
|
+
if (shipping_option_id) {
|
|
17
|
+
filters.id = shipping_option_id;
|
|
18
|
+
}
|
|
19
|
+
return filters;
|
|
20
|
+
};
|
|
7
21
|
const GET = async (req, res) => {
|
|
8
|
-
const { id: shipping_option_id } = req.params;
|
|
9
22
|
const query = framework_1.container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
10
23
|
const pickupDatetimeService = framework_1.container.resolve(pickup_datetime_1.PICKUP_DATETIME_MODULE);
|
|
24
|
+
const queryParams = (req.query ?? {});
|
|
25
|
+
const params = (req.params ?? {});
|
|
26
|
+
const requestedId = (queryParams.shipping_option_id ??
|
|
27
|
+
params.id);
|
|
11
28
|
try {
|
|
12
29
|
const { data: [shippingOption], } = await query.graph({
|
|
13
30
|
entity: "shipping_option",
|
|
14
|
-
fields:
|
|
15
|
-
filters:
|
|
16
|
-
|
|
31
|
+
fields: PICKUP_FIELDS,
|
|
32
|
+
filters: buildPickupFilters(requestedId),
|
|
33
|
+
pagination: {
|
|
34
|
+
order: { created_at: "ASC" },
|
|
35
|
+
take: 1,
|
|
17
36
|
},
|
|
18
37
|
});
|
|
19
38
|
if (!shippingOption) {
|
|
39
|
+
if (requestedId) {
|
|
40
|
+
return res.status(404).json({
|
|
41
|
+
error: `Shipping option ${requestedId} not found or not configured for pickup`,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
20
44
|
return res.status(404).json({
|
|
21
|
-
error:
|
|
45
|
+
error: "No pickup shipping option configured",
|
|
22
46
|
});
|
|
23
47
|
}
|
|
48
|
+
const shipping_option_id = shippingOption.id;
|
|
24
49
|
const availabilities = await pickupDatetimeService.listPickupAvailabilities({
|
|
25
50
|
shipping_option_id,
|
|
26
51
|
});
|
|
@@ -37,4 +62,4 @@ const GET = async (req, res) => {
|
|
|
37
62
|
}
|
|
38
63
|
};
|
|
39
64
|
exports.GET = GET;
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3BpY2t1cC1kYXRlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUErRTtBQUMvRSxxREFBc0U7QUFDdEUsc0VBQTBFO0FBRzFFLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLEdBQUc7SUFDSCxnQkFBZ0I7SUFDaEIsZ0NBQWdDO0NBQ3hCLENBQUM7QUFFWCxNQUFNLGtCQUFrQixHQUFHLENBQUMsa0JBQTJCLEVBQUUsRUFBRTtJQUN6RCxNQUFNLE9BQU8sR0FBd0I7UUFDbkMsbUNBQW1DLEVBQUUsUUFBUTtLQUM5QyxDQUFDO0lBRUYsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sQ0FBQyxFQUFFLEdBQUcsa0JBQWtCLENBQUM7SUFDbEMsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQUVLLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNuRSxNQUFNLEtBQUssR0FBRyxxQkFBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRSxNQUFNLHFCQUFxQixHQUN6QixxQkFBUyxDQUFDLE9BQU8sQ0FBOEIsd0NBQXNCLENBQUMsQ0FBQztJQUV6RSxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUE0QixDQUFDO0lBQ2pFLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQTRCLENBQUM7SUFFN0QsTUFBTSxXQUFXLEdBQUcsQ0FBQyxXQUFXLENBQUMsa0JBQWtCO1FBQ2pELE1BQU0sQ0FBQyxFQUFFLENBQXVCLENBQUM7SUFFbkMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQyxHQUN2QixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNwQixNQUFNLEVBQUUsaUJBQWlCO1lBQ3pCLE1BQU0sRUFBRSxhQUFvQjtZQUM1QixPQUFPLEVBQUUsa0JBQWtCLENBQUMsV0FBVyxDQUFDO1lBQ3hDLFVBQVUsRUFBRTtnQkFDVixLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFO2dCQUM1QixJQUFJLEVBQUUsQ0FBQzthQUNSO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7b0JBQzFCLEtBQUssRUFBRSxtQkFBbUIsV0FBVyx5Q0FBeUM7aUJBQy9FLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUMxQixLQUFLLEVBQUUsc0NBQXNDO2FBQzlDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFFN0MsTUFBTSxjQUFjLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FDekU7WUFDRSxrQkFBa0I7U0FDbkIsQ0FDRixDQUFDO1FBRUYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbkIsZUFBZSxFQUFFO2dCQUNmLEdBQUcsY0FBYztnQkFDakIscUJBQXFCLEVBQUUsY0FBYztnQkFDckMsa0JBQWtCLEVBQUUsY0FBYzthQUNuQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztBQUNILENBQUMsQ0FBQztBQXREVyxRQUFBLEdBQUcsT0FzRGQifQ==
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.STORE_TIMEZONE = exports.formatStoreTimeString = exports.parseTimeStringToStoreDate = exports.convertAvailabilityToStoreMinutes = exports.getDayOfWeekInStoreTimezone = exports.convertDateToStoreMinutes = exports.getStoreTimezoneOffsetMinutes = void 0;
|
|
4
|
+
const STORE_TIMEZONE = process.env.PICKUP_TIMEZONE ||
|
|
5
|
+
process.env.STORE_TIMEZONE ||
|
|
6
|
+
"Asia/Bangkok";
|
|
7
|
+
exports.STORE_TIMEZONE = STORE_TIMEZONE;
|
|
8
|
+
const timeFormatter = new Intl.DateTimeFormat("en-US", {
|
|
9
|
+
timeZone: STORE_TIMEZONE,
|
|
10
|
+
hour12: false,
|
|
11
|
+
hour: "2-digit",
|
|
12
|
+
minute: "2-digit",
|
|
13
|
+
});
|
|
14
|
+
const weekdayFormatter = new Intl.DateTimeFormat("en-US", {
|
|
15
|
+
timeZone: STORE_TIMEZONE,
|
|
16
|
+
weekday: "long",
|
|
17
|
+
});
|
|
18
|
+
const dateTimeFormatter = new Intl.DateTimeFormat("en-US", {
|
|
19
|
+
timeZone: STORE_TIMEZONE,
|
|
20
|
+
hour12: false,
|
|
21
|
+
year: "numeric",
|
|
22
|
+
month: "2-digit",
|
|
23
|
+
day: "2-digit",
|
|
24
|
+
hour: "2-digit",
|
|
25
|
+
minute: "2-digit",
|
|
26
|
+
second: "2-digit",
|
|
27
|
+
});
|
|
28
|
+
const formatPartsToObject = (parts) => {
|
|
29
|
+
return parts.reduce((acc, part) => {
|
|
30
|
+
if (part.type !== "literal") {
|
|
31
|
+
acc[part.type] = part.value;
|
|
32
|
+
}
|
|
33
|
+
return acc;
|
|
34
|
+
}, {});
|
|
35
|
+
};
|
|
36
|
+
const getStoreTimezoneOffsetMinutes = (date) => {
|
|
37
|
+
const formatted = formatPartsToObject(dateTimeFormatter.formatToParts(date));
|
|
38
|
+
const asUTC = Date.UTC(Number(formatted.year ?? "1970"), Math.max(Number(formatted.month ?? "1") - 1, 0), Number(formatted.day ?? "1"), Number(formatted.hour ?? "0"), Number(formatted.minute ?? "0"), Number(formatted.second ?? "0"));
|
|
39
|
+
return (asUTC - date.getTime()) / 60000;
|
|
40
|
+
};
|
|
41
|
+
exports.getStoreTimezoneOffsetMinutes = getStoreTimezoneOffsetMinutes;
|
|
42
|
+
const convertDateToStoreMinutes = (value) => {
|
|
43
|
+
const date = value instanceof Date ? value : new Date(value);
|
|
44
|
+
if (Number.isNaN(date.getTime())) {
|
|
45
|
+
return NaN;
|
|
46
|
+
}
|
|
47
|
+
const parts = formatPartsToObject(timeFormatter.formatToParts(date));
|
|
48
|
+
const hours = Number(parts.hour ?? "0");
|
|
49
|
+
const minutes = Number(parts.minute ?? "0");
|
|
50
|
+
return hours * 60 + minutes;
|
|
51
|
+
};
|
|
52
|
+
exports.convertDateToStoreMinutes = convertDateToStoreMinutes;
|
|
53
|
+
const getDayOfWeekInStoreTimezone = (date) => weekdayFormatter.format(date).toLowerCase();
|
|
54
|
+
exports.getDayOfWeekInStoreTimezone = getDayOfWeekInStoreTimezone;
|
|
55
|
+
const convertAvailabilityToStoreMinutes = (value) => {
|
|
56
|
+
const date = value instanceof Date ? value : new Date(value);
|
|
57
|
+
if (Number.isNaN(date.getTime())) {
|
|
58
|
+
return NaN;
|
|
59
|
+
}
|
|
60
|
+
const anchorYear = date.getUTCFullYear();
|
|
61
|
+
if (anchorYear <= 1971) {
|
|
62
|
+
return (0, exports.convertDateToStoreMinutes)(date);
|
|
63
|
+
}
|
|
64
|
+
// Legacy rows stored real timestamps (UTC). We want wall-clock local time,
|
|
65
|
+
// so convert the UTC stamp into the store timezone first.
|
|
66
|
+
const parts = formatPartsToObject(timeFormatter.formatToParts(date));
|
|
67
|
+
const hours = Number(parts.hour ?? "0");
|
|
68
|
+
const minutes = Number(parts.minute ?? "0");
|
|
69
|
+
return hours * 60 + minutes;
|
|
70
|
+
};
|
|
71
|
+
exports.convertAvailabilityToStoreMinutes = convertAvailabilityToStoreMinutes;
|
|
72
|
+
const parseTimeStringToStoreDate = (time) => {
|
|
73
|
+
if (!time) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
const [hourStr, minuteStr] = time.split(":");
|
|
77
|
+
const hours = Number(hourStr);
|
|
78
|
+
const minutes = Number(minuteStr);
|
|
79
|
+
if (Number.isNaN(hours) || Number.isNaN(minutes)) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
const reference = new Date(Date.UTC(1970, 0, 1, hours, minutes, 0, 0));
|
|
83
|
+
const offsetMinutes = (0, exports.getStoreTimezoneOffsetMinutes)(reference);
|
|
84
|
+
const adjusted = new Date(reference.getTime() - offsetMinutes * 60 * 1000);
|
|
85
|
+
return adjusted;
|
|
86
|
+
};
|
|
87
|
+
exports.parseTimeStringToStoreDate = parseTimeStringToStoreDate;
|
|
88
|
+
const formatStoreTimeString = (value) => {
|
|
89
|
+
if (!value) {
|
|
90
|
+
return "";
|
|
91
|
+
}
|
|
92
|
+
const date = value instanceof Date ? value : new Date(value);
|
|
93
|
+
if (Number.isNaN(date.getTime())) {
|
|
94
|
+
return "";
|
|
95
|
+
}
|
|
96
|
+
const parts = formatPartsToObject(timeFormatter.formatToParts(date));
|
|
97
|
+
const hours = parts.hour ?? "00";
|
|
98
|
+
const minutes = parts.minute ?? "00";
|
|
99
|
+
return `${hours}:${minutes}`;
|
|
100
|
+
};
|
|
101
|
+
exports.formatStoreTimeString = formatStoreTimeString;
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtdGltZXpvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvc3RvcmUtdGltZXpvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBTSxjQUFjLEdBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZTtJQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWM7SUFDMUIsY0FBYyxDQUFDO0FBNEhSLHdDQUFjO0FBMUh2QixNQUFNLGFBQWEsR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFO0lBQ3JELFFBQVEsRUFBRSxjQUFjO0lBQ3hCLE1BQU0sRUFBRSxLQUFLO0lBQ2IsSUFBSSxFQUFFLFNBQVM7SUFDZixNQUFNLEVBQUUsU0FBUztDQUNsQixDQUFDLENBQUM7QUFFSCxNQUFNLGdCQUFnQixHQUFHLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUU7SUFDeEQsUUFBUSxFQUFFLGNBQWM7SUFDeEIsT0FBTyxFQUFFLE1BQU07Q0FDaEIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFO0lBQ3pELFFBQVEsRUFBRSxjQUFjO0lBQ3hCLE1BQU0sRUFBRSxLQUFLO0lBQ2IsSUFBSSxFQUFFLFNBQVM7SUFDZixLQUFLLEVBQUUsU0FBUztJQUNoQixHQUFHLEVBQUUsU0FBUztJQUNkLElBQUksRUFBRSxTQUFTO0lBQ2YsTUFBTSxFQUFFLFNBQVM7SUFDakIsTUFBTSxFQUFFLFNBQVM7Q0FDbEIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWdDLEVBQUUsRUFBRTtJQUMvRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQXlCLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3hELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZ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
|
package/.medusa/server/src/workflows/pickup-availablity/pickup/steps/validatePickupDateStep.js
CHANGED
|
@@ -5,11 +5,7 @@ const workflows_sdk_1 = require("@medusajs/workflows-sdk");
|
|
|
5
5
|
const framework_1 = require("@medusajs/framework");
|
|
6
6
|
const utils_1 = require("@medusajs/framework/utils");
|
|
7
7
|
const pickup_datetime_1 = require("../../../../modules/pickup-datetime");
|
|
8
|
-
const
|
|
9
|
-
const hours = date.getHours();
|
|
10
|
-
const minutes = date.getMinutes();
|
|
11
|
-
return hours * 60 + minutes;
|
|
12
|
-
};
|
|
8
|
+
const store_timezone_1 = require("../../../../utils/store-timezone");
|
|
13
9
|
exports.validatePickupDateStep = (0, workflows_sdk_1.createStep)("validate-pickup-date-step", async (input) => {
|
|
14
10
|
const { shipping_option_id, pickup_datetime: rawPickupDatetime } = input;
|
|
15
11
|
if (!shipping_option_id) {
|
|
@@ -24,34 +20,27 @@ exports.validatePickupDateStep = (0, workflows_sdk_1.createStep)("validate-picku
|
|
|
24
20
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Pickup date must not be in the past");
|
|
25
21
|
}
|
|
26
22
|
const pickupDatetimeModuleService = framework_1.container.resolve(pickup_datetime_1.PICKUP_DATETIME_MODULE);
|
|
27
|
-
const dayOfWeek =
|
|
28
|
-
"sunday",
|
|
29
|
-
"monday",
|
|
30
|
-
"tuesday",
|
|
31
|
-
"wednesday",
|
|
32
|
-
"thursday",
|
|
33
|
-
"friday",
|
|
34
|
-
"saturday",
|
|
35
|
-
][pickup_datetime.getUTCDay()];
|
|
23
|
+
const dayOfWeek = (0, store_timezone_1.getDayOfWeekInStoreTimezone)(pickup_datetime);
|
|
36
24
|
const availabilities = await pickupDatetimeModuleService.listPickupAvailabilities({
|
|
37
25
|
shipping_option_id,
|
|
38
26
|
day_of_week: dayOfWeek,
|
|
39
27
|
enable: true, // Filter only enabled availability slots
|
|
40
28
|
});
|
|
41
29
|
if (!availabilities || availabilities.length === 0) {
|
|
42
|
-
|
|
30
|
+
console.warn(`[pickup-date] No availability configured for shipping option ${shipping_option_id} on ${dayOfWeek}. Allowing requested pickup time.`);
|
|
31
|
+
return new workflows_sdk_1.StepResponse(pickup_datetime, pickup_datetime);
|
|
43
32
|
}
|
|
44
|
-
const pickupTime =
|
|
33
|
+
const pickupTime = (0, store_timezone_1.convertDateToStoreMinutes)(pickup_datetime);
|
|
45
34
|
// Log for debugging
|
|
46
35
|
console.log(`[Pickup Validation] Checking ${availabilities.length} availability slots for ${dayOfWeek}`);
|
|
47
|
-
console.log(`[Pickup Validation] Pickup time: ${Math.floor(pickupTime / 60)}:${(pickupTime % 60).toString().padStart(2,
|
|
36
|
+
console.log(`[Pickup Validation] Pickup time: ${Math.floor(pickupTime / 60)}:${(pickupTime % 60).toString().padStart(2, "0")}`);
|
|
48
37
|
const isAvailable = availabilities.some((availability) => {
|
|
49
|
-
//
|
|
50
|
-
const availTimeStart =
|
|
51
|
-
const availTimeEnd =
|
|
38
|
+
// Normalize availability rows to the store timezone
|
|
39
|
+
const availTimeStart = (0, store_timezone_1.convertAvailabilityToStoreMinutes)(availability.timeStart);
|
|
40
|
+
const availTimeEnd = (0, store_timezone_1.convertAvailabilityToStoreMinutes)(availability.timeEnd);
|
|
52
41
|
// Check if pickup time falls within this availability slot
|
|
53
42
|
const inRange = availTimeStart <= pickupTime && pickupTime <= availTimeEnd;
|
|
54
|
-
console.log(`[Pickup Validation] Slot ${Math.floor(availTimeStart / 60)}:${(availTimeStart % 60).toString().padStart(2,
|
|
43
|
+
console.log(`[Pickup Validation] Slot ${Math.floor(availTimeStart / 60)}:${(availTimeStart % 60).toString().padStart(2, "0")} - ${Math.floor(availTimeEnd / 60)}:${(availTimeEnd % 60).toString().padStart(2, "0")}: ${inRange ? "MATCH" : "no match"}`);
|
|
55
44
|
return inRange;
|
|
56
45
|
});
|
|
57
46
|
if (!isAvailable) {
|
|
@@ -59,4 +48,4 @@ exports.validatePickupDateStep = (0, workflows_sdk_1.createStep)("validate-picku
|
|
|
59
48
|
}
|
|
60
49
|
return new workflows_sdk_1.StepResponse(pickup_datetime, pickup_datetime);
|
|
61
50
|
});
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVQaWNrdXBEYXRlU3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcGlja3VwLWF2YWlsYWJsaXR5L3BpY2t1cC9zdGVwcy92YWxpZGF0ZVBpY2t1cERhdGVTdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJEQUFtRTtBQUNuRSxtREFBZ0Q7QUFDaEQscURBQXdEO0FBRXhELHlFQUE2RTtBQUM3RSxxRUFJMEM7QUFPN0IsUUFBQSxzQkFBc0IsR0FBRyxJQUFBLDBCQUFVLEVBQzlDLDJCQUEyQixFQUMzQixLQUFLLEVBQUUsS0FBa0MsRUFBRSxFQUFFO0lBQzNDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDekUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsZ0NBQWdDLENBQ2pDLENBQUM7SUFDSixDQUFDO0lBRUQscUJBQXFCO0lBQ3JCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSw0QkFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwRCxJQUFJLGVBQWUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDckQsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIscUNBQXFDLENBQ3RDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSwyQkFBMkIsR0FDL0IscUJBQVMsQ0FBQyxPQUFPLENBQThCLHdDQUFz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
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.updatePickupAvailabilityWorkflow = void 0;
|
|
4
4
|
const framework_1 = require("@medusajs/framework");
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
6
|
const workflows_sdk_1 = require("@medusajs/workflows-sdk");
|
|
6
7
|
const pickup_datetime_1 = require("../../modules/pickup-datetime");
|
|
8
|
+
const store_timezone_1 = require("../../utils/store-timezone");
|
|
7
9
|
const validateOverlapsPickupStep_1 = require("./steps/validateOverlapsPickupStep");
|
|
8
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
9
10
|
const build_shipping_option_link_1 = require("./utils/build-shipping-option-link");
|
|
10
11
|
const updatePickupAvailabilityStep = (0, workflows_sdk_1.createStep)("update-pickup-availability-step", async (input) => {
|
|
11
12
|
const { shipping_option_id, schedules } = input;
|
|
@@ -24,18 +25,11 @@ const updatePickupAvailabilityStep = (0, workflows_sdk_1.createStep)("update-pic
|
|
|
24
25
|
.filter((schedule) => schedule.enable)
|
|
25
26
|
.map((schedule) => {
|
|
26
27
|
return schedule.timeSlots.map((timeSlot) => {
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
timeStart
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
timeStart.setMilliseconds(0);
|
|
33
|
-
let timeEnd = new Date(timeStart);
|
|
34
|
-
const [endHours, endMinutes] = timeSlot.end.split(":").map(Number);
|
|
35
|
-
timeEnd.setHours(endHours);
|
|
36
|
-
timeEnd.setMinutes(endMinutes);
|
|
37
|
-
timeEnd.setSeconds(0);
|
|
38
|
-
timeEnd.setMilliseconds(0);
|
|
28
|
+
const timeStart = (0, store_timezone_1.parseTimeStringToStoreDate)(timeSlot.start);
|
|
29
|
+
const timeEnd = (0, store_timezone_1.parseTimeStringToStoreDate)(timeSlot.end);
|
|
30
|
+
if (!timeStart || !timeEnd) {
|
|
31
|
+
throw new Error(`Invalid time slot "${timeSlot.start ?? ""}-${timeSlot.end ?? ""}"`);
|
|
32
|
+
}
|
|
39
33
|
return {
|
|
40
34
|
shipping_option_id,
|
|
41
35
|
enable: true,
|
|
@@ -65,4 +59,4 @@ exports.updatePickupAvailabilityWorkflow = (0, workflows_sdk_1.createWorkflow)("
|
|
|
65
59
|
availability: data,
|
|
66
60
|
});
|
|
67
61
|
});
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlUGlja3VwQXZhaWxhYmlsaXR5V29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3BpY2t1cC1hdmFpbGFibGl0eS91cGRhdGVQaWNrdXBBdmFpbGFiaWxpdHlXb3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBZ0Q7QUFDaEQscURBQXNFO0FBQ3RFLDJEQUtpQztBQUNqQyxtRUFBdUU7QUFHdkUsK0RBQXdFO0FBQ3hFLG1GQUFnRjtBQUNoRixtRkFBbUY7QUFPbkYsTUFBTSw0QkFBNEIsR0FBRyxJQUFBLDBCQUFVLEVBQzdDLGlDQUFpQyxFQUNqQyxLQUFLLEVBQUUsS0FBNEMsRUFBRSxFQUFFO0lBQ3JELE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFaEQsTUFBTSxxQkFBcUIsR0FDekIscUJBQVMsQ0FBQyxPQUFPLENBQUMsd0NBQXNCLENBQUMsQ0FBQztJQUU1QyxNQUFNLElBQUksR0FBRyxxQkFBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUvRCxpQ0FBaUM7SUFDakMsTUFBTSxzQkFBc0IsR0FDMUIsTUFBTSxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQztRQUNuRCxrQkFBa0I7S0FDbkIsQ0FBQyxDQUFDO0lBRUwsSUFBSSxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQ2hCLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQzFDLElBQUEsMERBQTZCLEVBQUMsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUNuRSxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxxQkFBcUIsQ0FBQywwQkFBMEIsQ0FDcEQsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQzlELENBQUM7SUFFRiw0QkFBNEI7SUFDNUIsTUFBTSxjQUFjLEdBQUcsU0FBUztTQUM3QixNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7U0FDckMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDaEIsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3pDLE1BQU0sU0FBUyxHQUFHLElBQUEsMkNBQTBCLEVBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdELE1BQU0sT0FBTyxHQUFHLElBQUEsMkNBQTBCLEVBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXpELElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxJQUFJLEtBQUssQ0FDYixzQkFBc0IsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFLElBQUksUUFBUSxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FDcEUsQ0FBQztZQUNKLENBQUM7WUFFRCxPQUFPO2dCQUNMLGtCQUFrQjtnQkFDbEIsTUFBTSxFQUFFLElBQUk7Z0JBQ1osV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXO2dCQUNqQyxTQUFTO2dCQUNULE9BQU87YUFDUixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7U0FDRCxJQUFJLEVBQUUsQ0FBQztJQUVWLE1BQU0scUJBQXFCLEdBQ3pCLE1BQU0scUJBQXFCLENBQUMsMEJBQTBCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFekUsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUNmLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQ3pDLElBQUEsMERBQTZCLEVBQUMsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUNuRSxDQUNGLENBQUM7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsTUFBTSxxQkFBcUIsQ0FBQywwQkFBMEIsQ0FBQztZQUNyRCxHQUFHLEVBQUUscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1NBQ2xFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3hFLENBQUMsQ0FDRixDQUFDO0FBRVcsUUFBQSxnQ0FBZ0MsR0FBRyxJQUFBLDhCQUFjLEVBQzVELHFDQUFxQyxFQUNyQyxDQUFDLEtBQTRDLEVBQUUsRUFBRTtJQUMvQyxJQUFBLHVEQUEwQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWxDLE1BQU0sSUFBSSxHQUFHLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWpELE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQztRQUMxQixZQUFZLEVBQUUsSUFBSTtLQUNuQixDQUFDLENBQUM7QUFDTCxDQUFDLENBQ0YsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodashventure/medusa-booking-for-pickup",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.18",
|
|
4
4
|
"description": "A starter for Medusa plugins.",
|
|
5
5
|
"author": "Medusa (https://medusajs.com)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -51,15 +51,15 @@
|
|
|
51
51
|
"yalc": "1.0.0-pre.53"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
|
-
"@medusajs/admin-sdk": "2.11.
|
|
55
|
-
"@medusajs/cli": "2.11.
|
|
56
|
-
"@medusajs/framework": "2.11.
|
|
57
|
-
"@medusajs/icons": "^2.11.
|
|
58
|
-
"@medusajs/js-sdk": "2.11.
|
|
59
|
-
"@medusajs/medusa": "2.11.
|
|
60
|
-
"@medusajs/test-utils": "2.11.
|
|
54
|
+
"@medusajs/admin-sdk": "2.11.3",
|
|
55
|
+
"@medusajs/cli": "2.11.3",
|
|
56
|
+
"@medusajs/framework": "2.11.3",
|
|
57
|
+
"@medusajs/icons": "^2.11.3",
|
|
58
|
+
"@medusajs/js-sdk": "2.11.3",
|
|
59
|
+
"@medusajs/medusa": "2.11.3",
|
|
60
|
+
"@medusajs/test-utils": "2.11.3",
|
|
61
61
|
"@medusajs/ui": "^4.0.3",
|
|
62
|
-
"@medusajs/workflows-sdk": "2.11.
|
|
62
|
+
"@medusajs/workflows-sdk": "2.11.3",
|
|
63
63
|
"zod": "*"
|
|
64
64
|
},
|
|
65
65
|
"engines": {
|