@hszrdm/core 1.4.0 → 1.5.0
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 +5582 -3769
- package/.medusa/server/src/admin/index.mjs +5582 -3769
- package/.medusa/server/src/api/admin/back-in-stock/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/back-in-stock/route.js +70 -0
- package/.medusa/server/src/api/admin/customer-activation/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/customer-activation/route.js +97 -0
- package/.medusa/server/src/api/admin/customer-import/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/customer-import/route.js +166 -0
- package/.medusa/server/src/api/admin/order-export/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/order-export/route.js +88 -0
- package/.medusa/server/src/api/admin/product-migration/inventory/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/product-migration/inventory/route.js +164 -0
- package/.medusa/server/src/api/admin/product-migration/price-list-prices/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/product-migration/price-list-prices/route.js +204 -0
- package/.medusa/server/src/api/admin/product-migration/products/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/product-migration/products/route.js +24 -0
- package/.medusa/server/src/api/admin/product-reviews/[id]/route.js +36 -4
- package/.medusa/server/src/api/admin/product-reviews/settings/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/product-reviews/settings/route.js +63 -0
- package/.medusa/server/src/api/admin/system-runtime/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/system-runtime/route.js +18 -0
- package/.medusa/server/src/api/hooks/packeta/status/route.d.ts +2 -0
- package/.medusa/server/src/api/hooks/packeta/status/route.js +55 -0
- package/.medusa/server/src/api/middlewares.js +16 -1
- package/.medusa/server/src/api/store/abandoned-cart/recover/route.d.ts +2 -0
- package/.medusa/server/src/api/store/abandoned-cart/recover/route.js +37 -0
- package/.medusa/server/src/api/store/back-in-stock/route.d.ts +8 -0
- package/.medusa/server/src/api/store/back-in-stock/route.js +124 -0
- package/.medusa/server/src/api/store/customer-activation/complete/route.d.ts +2 -0
- package/.medusa/server/src/api/store/customer-activation/complete/route.js +96 -0
- package/.medusa/server/src/api/store/customer-activation/route.d.ts +2 -0
- package/.medusa/server/src/api/store/customer-activation/route.js +34 -0
- package/.medusa/server/src/api/store/products/[id]/reviews/route.d.ts +1 -0
- package/.medusa/server/src/api/store/products/[id]/reviews/route.js +76 -34
- package/.medusa/server/src/api/store/review-request/route.d.ts +2 -0
- package/.medusa/server/src/api/store/review-request/route.js +60 -0
- package/.medusa/server/src/core/abandoned-cart.d.ts +64 -0
- package/.medusa/server/src/core/abandoned-cart.js +197 -0
- package/.medusa/server/src/core/back-in-stock.d.ts +51 -0
- package/.medusa/server/src/core/back-in-stock.js +107 -0
- package/.medusa/server/src/core/checkout-contract.d.ts +1 -0
- package/.medusa/server/src/core/checkout-contract.js +2 -1
- package/.medusa/server/src/core/customer-account-contract.d.ts +3 -0
- package/.medusa/server/src/core/customer-account-contract.js +4 -1
- package/.medusa/server/src/core/customer-activation.d.ts +120 -0
- package/.medusa/server/src/core/customer-activation.js +169 -0
- package/.medusa/server/src/core/customer-email.d.ts +1 -1
- package/.medusa/server/src/core/customer-email.js +4 -1
- package/.medusa/server/src/core/native-migration-export.d.ts +6 -0
- package/.medusa/server/src/core/native-migration-export.js +105 -0
- package/.medusa/server/src/core/order-export.d.ts +11 -0
- package/.medusa/server/src/core/order-export.js +297 -0
- package/.medusa/server/src/core/review-request.d.ts +61 -0
- package/.medusa/server/src/core/review-request.js +105 -0
- package/.medusa/server/src/core/review-reward.d.ts +94 -0
- package/.medusa/server/src/core/review-reward.js +124 -0
- package/.medusa/server/src/core/runtime-health.d.ts +39 -0
- package/.medusa/server/src/core/runtime-health.js +250 -0
- package/.medusa/server/src/core/storefront-core-config.d.ts +10 -0
- package/.medusa/server/src/core/storefront-core-config.js +26 -1
- package/.medusa/server/src/core/version.d.ts +2 -2
- package/.medusa/server/src/core/version.js +2 -2
- package/.medusa/server/src/jobs/abandoned-cart-recovery.d.ts +23 -0
- package/.medusa/server/src/jobs/abandoned-cart-recovery.js +138 -0
- package/.medusa/server/src/jobs/back-in-stock-reconciliation.d.ts +15 -0
- package/.medusa/server/src/jobs/back-in-stock-reconciliation.js +90 -0
- package/.medusa/server/src/jobs/dpd-statusdata-sync.d.ts +17 -0
- package/.medusa/server/src/jobs/dpd-statusdata-sync.js +107 -0
- package/.medusa/server/src/jobs/mpl-push-tracking.d.ts +19 -0
- package/.medusa/server/src/jobs/mpl-push-tracking.js +183 -0
- package/.medusa/server/src/jobs/mpl-status-sync.d.ts +8 -2
- package/.medusa/server/src/jobs/mpl-status-sync.js +12 -7
- package/.medusa/server/src/jobs/product-review-request-dispatch.d.ts +28 -0
- package/.medusa/server/src/jobs/product-review-request-dispatch.js +84 -0
- package/.medusa/server/src/jobs/runtime-heartbeat.d.ts +12 -0
- package/.medusa/server/src/jobs/runtime-heartbeat.js +13 -0
- package/.medusa/server/src/jobs/shipping-status-sync.d.ts +8 -2
- package/.medusa/server/src/jobs/shipping-status-sync.js +11 -14
- package/.medusa/server/src/lib/modules/shipping/idempotency.js +3 -3
- package/.medusa/server/src/lib/modules/shipping/index.d.ts +1 -0
- package/.medusa/server/src/lib/modules/shipping/index.js +2 -1
- package/.medusa/server/src/lib/modules/shipping/tracking.d.ts +48 -0
- package/.medusa/server/src/lib/modules/shipping/tracking.js +368 -0
- package/.medusa/server/src/lib/modules/shipping/webhooks.d.ts +6 -9
- package/.medusa/server/src/lib/modules/shipping/webhooks.js +24 -137
- package/.medusa/server/src/modules/back-in-stock/index.d.ts +23 -0
- package/.medusa/server/src/modules/back-in-stock/index.js +16 -0
- package/.medusa/server/src/modules/back-in-stock/migrations/Migration20261101202000.d.ts +5 -0
- package/.medusa/server/src/modules/back-in-stock/migrations/Migration20261101202000.js +18 -0
- package/.medusa/server/src/modules/back-in-stock/models/back-in-stock-subscription.d.ts +13 -0
- package/.medusa/server/src/modules/back-in-stock/models/back-in-stock-subscription.js +23 -0
- package/.medusa/server/src/modules/back-in-stock/service.d.ts +22 -0
- package/.medusa/server/src/modules/back-in-stock/service.js +12 -0
- package/.medusa/server/src/modules/email-center/abandoned-cart-registration.d.ts +1 -0
- package/.medusa/server/src/modules/email-center/abandoned-cart-registration.js +27 -0
- package/.medusa/server/src/modules/email-center/back-in-stock-registration.d.ts +1 -0
- package/.medusa/server/src/modules/email-center/back-in-stock-registration.js +27 -0
- package/.medusa/server/src/modules/email-center/defaults.js +7 -1
- package/.medusa/server/src/modules/email-center/index.d.ts +2 -0
- package/.medusa/server/src/modules/email-center/index.js +3 -1
- package/.medusa/server/src/modules/integration-settings/abandoned-cart-registration.d.ts +1 -0
- package/.medusa/server/src/modules/integration-settings/abandoned-cart-registration.js +30 -0
- package/.medusa/server/src/modules/integration-settings/index.d.ts +1 -0
- package/.medusa/server/src/modules/integration-settings/index.js +2 -1
- package/.medusa/server/src/modules/integration-settings/storefront-public-registration.js +15 -1
- package/.medusa/server/src/modules/product-review/index.d.ts +14 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101113000.d.ts +5 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101113000.js +28 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101114500.d.ts +5 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101114500.js +20 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101121500.d.ts +5 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101121500.js +18 -0
- package/.medusa/server/src/modules/product-review/models/product-review-settings.d.ts +15 -0
- package/.medusa/server/src/modules/product-review/models/product-review-settings.js +19 -0
- package/.medusa/server/src/modules/product-review/models/product-review.d.ts +6 -2
- package/.medusa/server/src/modules/product-review/models/product-review.js +7 -3
- package/.medusa/server/src/modules/product-review/service.d.ts +22 -1
- package/.medusa/server/src/modules/product-review/service.js +3 -2
- package/.medusa/server/src/providers/dpd/index.d.ts +2 -0
- package/.medusa/server/src/providers/dpd/index.js +3 -1
- package/.medusa/server/src/providers/dpd/statusdata-ftp.d.ts +16 -0
- package/.medusa/server/src/providers/dpd/statusdata-ftp.js +268 -0
- package/.medusa/server/src/providers/dpd/statusdata.d.ts +14 -0
- package/.medusa/server/src/providers/dpd/statusdata.js +161 -0
- package/.medusa/server/src/providers/mpl/client.d.ts +3 -1
- package/.medusa/server/src/providers/mpl/client.js +154 -2
- package/.medusa/server/src/providers/mpl/service.js +31 -20
- package/.medusa/server/src/providers/mpl/types.d.ts +25 -0
- package/.medusa/server/src/providers/mpl/types.js +1 -1
- package/.medusa/server/src/providers/packeta/index.d.ts +1 -0
- package/.medusa/server/src/providers/packeta/index.js +2 -1
- package/.medusa/server/src/providers/packeta/push-tracking.d.ts +8 -0
- package/.medusa/server/src/providers/packeta/push-tracking.js +96 -0
- package/.medusa/server/src/providers/packeta/service.js +22 -2
- package/.medusa/server/src/scripts/core-init.d.ts +1 -1
- package/.medusa/server/src/scripts/core-init.js +3 -2
- package/.medusa/server/src/subscribers/back-in-stock-inventory-changed.d.ts +7 -0
- package/.medusa/server/src/subscribers/back-in-stock-inventory-changed.js +65 -0
- package/.medusa/server/src/workflows/link-migrated-customer.d.ts +8 -0
- package/.medusa/server/src/workflows/link-migrated-customer.js +17 -0
- package/package.json +2 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
const packeta_1 = require("../../../../providers/packeta");
|
|
5
|
+
const shipping_1 = require("../../../../lib/modules/shipping");
|
|
6
|
+
const integration_operation_1 = require("../../../../modules/integration-operation");
|
|
7
|
+
function headerValue(value) {
|
|
8
|
+
return Array.isArray(value) ? value[0] : value;
|
|
9
|
+
}
|
|
10
|
+
async function POST(req, res) {
|
|
11
|
+
const rawBody = req.rawBody
|
|
12
|
+
? req.rawBody.toString("utf8")
|
|
13
|
+
: JSON.stringify(req.body ?? {});
|
|
14
|
+
const timestamp = headerValue(req.headers["x-webhook-timestamp"]);
|
|
15
|
+
const signature = headerValue(req.headers["x-webhook-signature"]);
|
|
16
|
+
const eventId = headerValue(req.headers["x-webhook-event-id"]);
|
|
17
|
+
if (!(0, packeta_1.verifyPacketaPushSignature)({
|
|
18
|
+
rawBody,
|
|
19
|
+
timestamp,
|
|
20
|
+
signature,
|
|
21
|
+
signingKey: process.env.PACKETA_WEBHOOK_SIGNING_KEY,
|
|
22
|
+
})) {
|
|
23
|
+
return res.status(401).json({ message: "Érvénytelen Packeta webhook aláírás." });
|
|
24
|
+
}
|
|
25
|
+
let event;
|
|
26
|
+
try {
|
|
27
|
+
event = (0, packeta_1.packetaPushEvent)(req.body, eventId);
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
return res.status(400).json({
|
|
31
|
+
message: error instanceof Error ? error.message : "Érvénytelen Packeta tracking esemény.",
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const orderService = req.scope.resolve("order");
|
|
36
|
+
const operationStore = req.scope.resolve(integration_operation_1.INTEGRATION_OPERATION_MODULE);
|
|
37
|
+
const result = await (0, shipping_1.applyNormalizedTrackingEvent)({
|
|
38
|
+
orderService,
|
|
39
|
+
operationStore,
|
|
40
|
+
event,
|
|
41
|
+
});
|
|
42
|
+
if (!result) {
|
|
43
|
+
// Packeta retries non-2xx responses with exponential backoff. If the
|
|
44
|
+
// order/operation is not visible yet, keep the signed event retryable.
|
|
45
|
+
return res.status(503).json({ received: true, matched: false });
|
|
46
|
+
}
|
|
47
|
+
return res.status(200).json({ received: true, matched: true, ...result });
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
return res.status(503).json({
|
|
51
|
+
message: error instanceof Error ? error.message : "Packeta tracking feldolgozási hiba.",
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2hvb2tzL3BhY2tldGEvc3RhdHVzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0JBLG9CQXVEQztBQXhFRCwyREFHc0M7QUFDdEMsK0RBR3lDO0FBQ3pDLHFGQUdrRDtBQUVsRCxTQUFTLFdBQVcsQ0FBQyxLQUFvQztJQUN2RCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0FBQ2hELENBQUM7QUFFTSxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDaEUsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU87UUFDekIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ2xDLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FDM0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBa0MsQ0FDcEUsQ0FBQTtJQUNELE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FDM0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBa0MsQ0FDcEUsQ0FBQTtJQUNELE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FDekIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBa0MsQ0FDbkUsQ0FBQTtJQUVELElBQUksQ0FBQyxJQUFBLG9DQUEwQixFQUFDO1FBQzlCLE9BQU87UUFDUCxTQUFTO1FBQ1QsU0FBUztRQUNULFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQjtLQUNwRCxDQUFDLEVBQUUsQ0FBQztRQUNILE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsQ0FBQyxDQUFBO0lBQ2xGLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQTtJQUNULElBQUksQ0FBQztRQUNILEtBQUssR0FBRyxJQUFBLDBCQUFnQixFQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDN0MsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFCLE9BQU8sRUFBRSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyx1Q0FBdUM7U0FDMUYsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBb0MsQ0FBQTtRQUNsRixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDdEMsb0RBQTRCLENBQ0UsQ0FBQTtRQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsdUNBQTRCLEVBQUM7WUFDaEQsWUFBWTtZQUNaLGNBQWM7WUFDZCxLQUFLO1NBQ04sQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1oscUVBQXFFO1lBQ3JFLHVFQUF1RTtZQUN2RSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUNqRSxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDM0UsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFCLE9BQU8sRUFBRSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7U0FDeEYsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -304,6 +304,16 @@ exports.default = (0, http_1.defineMiddlewares)({
|
|
|
304
304
|
method: ["POST"],
|
|
305
305
|
middlewares: [captureCategorySeoRedirect],
|
|
306
306
|
},
|
|
307
|
+
{
|
|
308
|
+
matcher: "/admin/customer-import",
|
|
309
|
+
method: ["POST"],
|
|
310
|
+
bodyParser: { sizeLimit: "5mb" },
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
matcher: "/admin/product-migration/*",
|
|
314
|
+
method: ["POST"],
|
|
315
|
+
bodyParser: { sizeLimit: "5mb" },
|
|
316
|
+
},
|
|
307
317
|
{
|
|
308
318
|
matcher: "/admin/legal/documents*",
|
|
309
319
|
method: ["POST"],
|
|
@@ -314,6 +324,11 @@ exports.default = (0, http_1.defineMiddlewares)({
|
|
|
314
324
|
method: ["POST"],
|
|
315
325
|
bodyParser: { preserveRawBody: true },
|
|
316
326
|
},
|
|
327
|
+
{
|
|
328
|
+
matcher: "/hooks/packeta/status",
|
|
329
|
+
method: ["POST"],
|
|
330
|
+
bodyParser: { preserveRawBody: true },
|
|
331
|
+
},
|
|
317
332
|
],
|
|
318
333
|
});
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBTWlDO0FBQ2pDLHFEQUFxRTtBQUNyRSxpRUFBZ0U7QUFDaEUsaUVBR2tDO0FBQ2xDLDJEQUcrQjtBQUMvQiw0REFJaUM7QUFDakMsd0NBS3VCO0FBc0J2QixTQUFTLDBCQUEwQixDQUNqQyxJQUFtQixFQUNuQixHQUFtQixFQUNuQixJQUF3QjtJQUV4QixHQUFHLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxrREFBOEIsQ0FBQyxDQUFBO0lBQzlELEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBQ25DLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQzdCLE9BQU8sSUFBSSxFQUFFLENBQUE7QUFDZixDQUFDO0FBRUQsS0FBSyxVQUFVLG9CQUFvQixDQUNqQyxHQUFrQixFQUNsQixHQUFtQixFQUNuQixJQUF3QjtJQUV4QixJQUFJLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDbEMsb0NBQW9CLENBQ1csQ0FBQTtRQUVqQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsMkNBQTJCLEVBQUM7WUFDL0MsVUFBVTtZQUNWLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7U0FDdEIsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksRUFBRSxDQUFBO1FBRTdELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDMUIsSUFBSSxFQUFFLHdCQUF3QjtZQUM5QixJQUFJLEVBQUUs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
|
|
334
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBTWlDO0FBQ2pDLHFEQUFxRTtBQUNyRSxpRUFBZ0U7QUFDaEUsaUVBR2tDO0FBQ2xDLDJEQUcrQjtBQUMvQiw0REFJaUM7QUFDakMsd0NBS3VCO0FBc0J2QixTQUFTLDBCQUEwQixDQUNqQyxJQUFtQixFQUNuQixHQUFtQixFQUNuQixJQUF3QjtJQUV4QixHQUFHLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxrREFBOEIsQ0FBQyxDQUFBO0lBQzlELEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBQ25DLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQzdCLE9BQU8sSUFBSSxFQUFFLENBQUE7QUFDZixDQUFDO0FBRUQsS0FBSyxVQUFVLG9CQUFvQixDQUNqQyxHQUFrQixFQUNsQixHQUFtQixFQUNuQixJQUF3QjtJQUV4QixJQUFJLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDbEMsb0NBQW9CLENBQ1csQ0FBQTtRQUVqQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsMkNBQTJCLEVBQUM7WUFDL0MsVUFBVTtZQUNWLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7U0FDdEIsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksRUFBRSxDQUFBO1FBRTdELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDMUIsSUFBSSxFQUFFLHdCQUF3QjtZQUM5QixJQUFJLEVBQUUs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
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const abandoned_cart_1 = require("../../../../core/abandoned-cart");
|
|
6
|
+
async function GET(req, res) {
|
|
7
|
+
res.setHeader("Cache-Control", "private, no-store, max-age=0");
|
|
8
|
+
const token = String(req.query.token || "").trim();
|
|
9
|
+
if (!token)
|
|
10
|
+
return res.status(400).json({ valid: false, reason: "missing" });
|
|
11
|
+
const payload = (0, abandoned_cart_1.verifyAbandonedCartRecoveryToken)(token);
|
|
12
|
+
if (!payload)
|
|
13
|
+
return res.status(410).json({ valid: false, reason: "invalid_or_expired" });
|
|
14
|
+
const cartService = req.scope.resolve(utils_1.Modules.CART);
|
|
15
|
+
try {
|
|
16
|
+
const cart = await cartService.retrieveCart(payload.cart_id, { relations: ["items"] });
|
|
17
|
+
if (cart.completed_at) {
|
|
18
|
+
return res.status(410).json({ valid: false, reason: "completed" });
|
|
19
|
+
}
|
|
20
|
+
if (!Array.isArray(cart.items) || !cart.items.some((item) => Number(item?.quantity) > 0)) {
|
|
21
|
+
return res.status(410).json({ valid: false, reason: "empty" });
|
|
22
|
+
}
|
|
23
|
+
if ((0, abandoned_cart_1.abandonedCartEmailHash)(cart.email) !== payload.email_hash) {
|
|
24
|
+
return res.status(410).json({ valid: false, reason: "invalid" });
|
|
25
|
+
}
|
|
26
|
+
return res.json({
|
|
27
|
+
valid: true,
|
|
28
|
+
cart_id: cart.id,
|
|
29
|
+
locale: payload.locale,
|
|
30
|
+
coupon_code: cart.metadata?.abandoned_cart_recovery_coupon_code || null,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return res.status(410).json({ valid: false, reason: "invalid" });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2FiYW5kb25lZC1jYXJ0L3JlY292ZXIvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSxrQkErQkM7QUFyQ0QscURBQW1EO0FBQ25ELG9FQUd3QztBQUVqQyxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsR0FBRyxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsOEJBQThCLENBQUMsQ0FBQTtJQUU5RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDbEQsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtJQUU1RSxNQUFNLE9BQU8sR0FBRyxJQUFBLGlEQUFnQyxFQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3ZELElBQUksQ0FBQyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQTtJQUV6RixNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsSUFBSSxDQUFRLENBQUE7SUFDMUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQUcsTUFBTSxXQUFXLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDdEYsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7UUFDcEUsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDOUYsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDaEUsQ0FBQztRQUNELElBQUksSUFBQSx1Q0FBc0IsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzlELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBQ2xFLENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDZCxLQUFLLEVBQUUsSUFBSTtZQUNYLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNoQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsbUNBQW1DLElBQUksSUFBSTtTQUN4RSxDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUE7SUFDbEUsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
|
|
2
|
+
type Body = {
|
|
3
|
+
email?: unknown;
|
|
4
|
+
variant_id?: unknown;
|
|
5
|
+
locale?: unknown;
|
|
6
|
+
};
|
|
7
|
+
export declare function POST(req: MedusaRequest<Body>, res: MedusaResponse): Promise<MedusaResponse>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const back_in_stock_1 = require("../../../core/back-in-stock");
|
|
6
|
+
const back_in_stock_2 = require("../../../modules/back-in-stock");
|
|
7
|
+
async function POST(req, res) {
|
|
8
|
+
const email = normalizeEmail(req.body?.email);
|
|
9
|
+
const variantId = stringValue(req.body?.variant_id);
|
|
10
|
+
const locale = normalizeLocale(req.body?.locale);
|
|
11
|
+
if (!email)
|
|
12
|
+
return res.status(400).json({ message: "Érvényes e-mail-cím szükséges." });
|
|
13
|
+
if (!variantId)
|
|
14
|
+
return res.status(400).json({ message: "A variáns azonosítója kötelező." });
|
|
15
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
16
|
+
const { data } = await query.graph({
|
|
17
|
+
entity: "product_variant",
|
|
18
|
+
fields: [
|
|
19
|
+
"id",
|
|
20
|
+
"title",
|
|
21
|
+
"sku",
|
|
22
|
+
"manage_inventory",
|
|
23
|
+
"allow_backorder",
|
|
24
|
+
"metadata",
|
|
25
|
+
"product.id",
|
|
26
|
+
"product.title",
|
|
27
|
+
"product.handle",
|
|
28
|
+
"product.metadata",
|
|
29
|
+
],
|
|
30
|
+
filters: { id: variantId },
|
|
31
|
+
});
|
|
32
|
+
const variant = data[0];
|
|
33
|
+
if (!variant?.id || !variant.product?.id) {
|
|
34
|
+
return res.status(404).json({ message: "A termékváltozat nem található." });
|
|
35
|
+
}
|
|
36
|
+
const availability = await (0, back_in_stock_1.variantAvailability)(query, variant.id);
|
|
37
|
+
if ((0, back_in_stock_1.variantIsPurchasable)(variant, availability)) {
|
|
38
|
+
return res.status(200).json({
|
|
39
|
+
subscribed: false,
|
|
40
|
+
already_available: true,
|
|
41
|
+
availability,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const service = req.scope.resolve(back_in_stock_2.BACK_IN_STOCK_MODULE);
|
|
45
|
+
const existing = await findExisting(service, variant.id, email);
|
|
46
|
+
if (existing) {
|
|
47
|
+
return respondForExisting(res, service, existing, {
|
|
48
|
+
productId: variant.product.id,
|
|
49
|
+
variantId: variant.id,
|
|
50
|
+
email,
|
|
51
|
+
locale,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
const created = await service.createBackInStockSubscriptions({
|
|
56
|
+
product_id: variant.product.id,
|
|
57
|
+
variant_id: variant.id,
|
|
58
|
+
email,
|
|
59
|
+
locale,
|
|
60
|
+
status: "active",
|
|
61
|
+
notification_cycle: 1,
|
|
62
|
+
notified_at: null,
|
|
63
|
+
last_error: null,
|
|
64
|
+
});
|
|
65
|
+
return res.status(201).json({
|
|
66
|
+
subscribed: true,
|
|
67
|
+
subscription_id: created.id,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
// Two identical requests can race between the initial lookup and create.
|
|
72
|
+
// The unique (variant_id, email) index is the final guard; recover by
|
|
73
|
+
// re-reading the winner just like the newsletter signup flow does.
|
|
74
|
+
const raced = await findExisting(service, variant.id, email);
|
|
75
|
+
if (!raced)
|
|
76
|
+
throw error;
|
|
77
|
+
return respondForExisting(res, service, raced, {
|
|
78
|
+
productId: variant.product.id,
|
|
79
|
+
variantId: variant.id,
|
|
80
|
+
email,
|
|
81
|
+
locale,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async function findExisting(service, variantId, email) {
|
|
86
|
+
const existing = await service.listBackInStockSubscriptions({ variant_id: variantId, email }, { take: 1 });
|
|
87
|
+
return existing[0] || null;
|
|
88
|
+
}
|
|
89
|
+
async function respondForExisting(res, service, current, input) {
|
|
90
|
+
if (current.status === "active") {
|
|
91
|
+
return res.status(200).json({
|
|
92
|
+
subscribed: true,
|
|
93
|
+
already_subscribed: true,
|
|
94
|
+
subscription_id: current.id,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
const updated = await service.updateBackInStockSubscriptions({
|
|
98
|
+
id: current.id,
|
|
99
|
+
product_id: input.productId,
|
|
100
|
+
variant_id: input.variantId,
|
|
101
|
+
email: input.email,
|
|
102
|
+
locale: input.locale,
|
|
103
|
+
status: "active",
|
|
104
|
+
notification_cycle: Math.max(1, Number(current.notification_cycle) || 1) + 1,
|
|
105
|
+
notified_at: null,
|
|
106
|
+
last_error: null,
|
|
107
|
+
});
|
|
108
|
+
return res.status(200).json({
|
|
109
|
+
subscribed: true,
|
|
110
|
+
reactivated: true,
|
|
111
|
+
subscription_id: updated.id,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
function normalizeEmail(value) {
|
|
115
|
+
const email = stringValue(value).toLowerCase();
|
|
116
|
+
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email) && email.length <= 320 ? email : "";
|
|
117
|
+
}
|
|
118
|
+
function normalizeLocale(value) {
|
|
119
|
+
return stringValue(value).toLowerCase().startsWith("en") ? "en-US" : "hu-HU";
|
|
120
|
+
}
|
|
121
|
+
function stringValue(value) {
|
|
122
|
+
return typeof value === "string" ? value.trim() : "";
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2JhY2staW4tc3RvY2svcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSxvQkFrRkM7QUE1RkQscURBQXFFO0FBQ3JFLCtEQUFnSDtBQUNoSCxrRUFBOEY7QUFRdkYsS0FBSyxVQUFVLElBQUksQ0FBQyxHQUF3QixFQUFFLEdBQW1CO0lBQ3RFLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQzdDLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBQ25ELE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBRWhELElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxDQUFDLENBQUE7SUFDdEYsSUFBSSxDQUFDLFNBQVM7UUFBRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLENBQUMsQ0FBQTtJQUUzRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQVEsQ0FBQTtJQUN2RSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ2pDLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsTUFBTSxFQUFFO1lBQ04sSUFBSTtZQUNKLE9BQU87WUFDUCxLQUFLO1lBQ0wsa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUNqQixVQUFVO1lB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
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const customer_activation_1 = require("../../../../core/customer-activation");
|
|
6
|
+
const link_migrated_customer_1 = require("../../../../workflows/link-migrated-customer");
|
|
7
|
+
async function POST(req, res) {
|
|
8
|
+
res.setHeader("Cache-Control", "no-store, private");
|
|
9
|
+
const body = (req.body || {});
|
|
10
|
+
const customerId = String(body.customer_id || body.customer || "").trim();
|
|
11
|
+
const token = String(body.token || "").trim();
|
|
12
|
+
const password = typeof body.password === "string" ? body.password : "";
|
|
13
|
+
if (!customerId || !token || !password) {
|
|
14
|
+
return res.status(400).json({ message: "Hiányzó aktiválási adatok vagy jelszó." });
|
|
15
|
+
}
|
|
16
|
+
const customerService = req.scope.resolve(utils_1.Modules.CUSTOMER);
|
|
17
|
+
const authService = req.scope.resolve(utils_1.Modules.AUTH);
|
|
18
|
+
let customer;
|
|
19
|
+
try {
|
|
20
|
+
customer = await customerService.retrieveCustomer(customerId);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return res.status(410).json({ message: "Az aktiváló link érvénytelen vagy lejárt." });
|
|
24
|
+
}
|
|
25
|
+
const verification = (0, customer_activation_1.verifyCustomerActivation)(customer, token);
|
|
26
|
+
if (!verification.valid || !verification.state) {
|
|
27
|
+
return res.status(410).json({
|
|
28
|
+
message: verification.reason === "expired"
|
|
29
|
+
? "Az aktiváló link lejárt. Kérj új aktiváló linket."
|
|
30
|
+
: verification.reason === "used"
|
|
31
|
+
? "Ezt az aktiváló linket már felhasználták."
|
|
32
|
+
: "Az aktiváló link érvénytelen.",
|
|
33
|
+
reason: verification.reason,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
const state = verification.state;
|
|
37
|
+
let authIdentityId = state.auth_identity_id || null;
|
|
38
|
+
try {
|
|
39
|
+
if (!authIdentityId) {
|
|
40
|
+
const registration = await authService.register("emailpass", {
|
|
41
|
+
url: req.originalUrl || req.url,
|
|
42
|
+
headers: req.headers,
|
|
43
|
+
query: req.query,
|
|
44
|
+
protocol: req.protocol,
|
|
45
|
+
body: {
|
|
46
|
+
email: String(customer.email || "").trim().toLowerCase(),
|
|
47
|
+
password,
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
if (!registration?.success || !registration?.authIdentity?.id) {
|
|
51
|
+
throw new Error(registration?.error || "A Medusa hitelesítési fiók létrehozása nem sikerült.");
|
|
52
|
+
}
|
|
53
|
+
const registeredAuthIdentityId = String(registration.authIdentity.id).trim();
|
|
54
|
+
if (!registeredAuthIdentityId) {
|
|
55
|
+
throw new Error("A Medusa hitelesítési azonosító nem áll rendelkezésre.");
|
|
56
|
+
}
|
|
57
|
+
authIdentityId = registeredAuthIdentityId;
|
|
58
|
+
await (0, link_migrated_customer_1.linkMigratedCustomerWorkflow)(req.scope).run({
|
|
59
|
+
input: {
|
|
60
|
+
auth_identity_id: registeredAuthIdentityId,
|
|
61
|
+
customer_id: customer.id,
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
await customerService.updateCustomers(customer.id, {
|
|
65
|
+
metadata: (0, customer_activation_1.mergeActivationMetadata)(customer.metadata, {
|
|
66
|
+
...state,
|
|
67
|
+
status: "auth_linked",
|
|
68
|
+
auth_identity_id: registeredAuthIdentityId,
|
|
69
|
+
}),
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (!authIdentityId) {
|
|
73
|
+
throw new Error("A Medusa hitelesítési azonosító nem áll rendelkezésre az aktiválás befejezéséhez.");
|
|
74
|
+
}
|
|
75
|
+
const linkedAuthIdentityId = authIdentityId;
|
|
76
|
+
const promotion = state.promotion_id && state.coupon_code
|
|
77
|
+
? { id: state.promotion_id, code: state.coupon_code }
|
|
78
|
+
: await (0, customer_activation_1.createCustomerActivationPromotion)(req.scope, customer.id, state.reward || { enabled: false, type: "percentage", value: 10 });
|
|
79
|
+
const finalState = (0, customer_activation_1.activatedState)({ ...state, auth_identity_id: linkedAuthIdentityId }, { authIdentityId: linkedAuthIdentityId, promotion });
|
|
80
|
+
await customerService.updateCustomers(customer.id, {
|
|
81
|
+
metadata: (0, customer_activation_1.mergeActivationMetadata)(customer.metadata, finalState),
|
|
82
|
+
});
|
|
83
|
+
return res.json({
|
|
84
|
+
activated: true,
|
|
85
|
+
customer_id: customer.id,
|
|
86
|
+
coupon_code: promotion?.code || null,
|
|
87
|
+
reward: state.reward || null,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
catch (cause) {
|
|
91
|
+
return res.status(400).json({
|
|
92
|
+
message: cause instanceof Error ? cause.message : "A fiók aktiválása nem sikerült.",
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVyLWFjdGl2YXRpb24vY29tcGxldGUvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSxvQkE2R0M7QUF0SEQscURBQW1EO0FBQ25ELDhFQUs2QztBQUM3Qyx5RkFBMkY7QUFFcEYsS0FBSyxVQUFVLElBQUksQ0FBQyxHQUFrQixFQUFFLEdBQW1CO0lBQ2hFLEdBQUcsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLG1CQUFtQixDQUFDLENBQUE7SUFFbkQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBNEIsQ0FBQTtJQUN4RCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ3pFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQzdDLE1BQU0sUUFBUSxHQUFHLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUV2RSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxDQUFDLENBQUE7SUFDcEYsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxRQUFRLENBQVEsQ0FBQTtJQUNs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
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const customer_activation_1 = require("../../../core/customer-activation");
|
|
6
|
+
async function GET(req, res) {
|
|
7
|
+
res.setHeader("Cache-Control", "no-store, private");
|
|
8
|
+
const customerId = String(req.query.customer || "").trim();
|
|
9
|
+
const token = String(req.query.token || "").trim();
|
|
10
|
+
if (!customerId || !token) {
|
|
11
|
+
return res.status(400).json({ valid: false, reason: "missing" });
|
|
12
|
+
}
|
|
13
|
+
const customerService = req.scope.resolve(utils_1.Modules.CUSTOMER);
|
|
14
|
+
try {
|
|
15
|
+
const customer = await customerService.retrieveCustomer(customerId);
|
|
16
|
+
const verification = (0, customer_activation_1.verifyCustomerActivation)(customer, token);
|
|
17
|
+
if (!verification.valid) {
|
|
18
|
+
return res.status(410).json({ valid: false, reason: verification.reason });
|
|
19
|
+
}
|
|
20
|
+
const state = (0, customer_activation_1.readCustomerActivation)(customer);
|
|
21
|
+
return res.json({
|
|
22
|
+
valid: true,
|
|
23
|
+
customer_id: customer.id,
|
|
24
|
+
masked_email: (0, customer_activation_1.maskEmail)(String(customer.email || "")),
|
|
25
|
+
first_name: customer.first_name || null,
|
|
26
|
+
expires_at: state.expires_at || null,
|
|
27
|
+
reward: state.reward || null,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return res.status(410).json({ valid: false, reason: "invalid" });
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVyLWFjdGl2YXRpb24vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxrQkE2QkM7QUFwQ0QscURBQW1EO0FBQ25ELDJFQUkwQztBQUVuQyxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsR0FBRyxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTtJQUVuRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDMUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ2xELElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLFFBQVEsQ0FBUSxDQUFBO0lBQ2xFLElBQUksQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBZSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ25FLE1BQU0sWUFBWSxHQUFHLElBQUEsOENBQXdCLEVBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQzlELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQzVFLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFBLDRDQUFzQixFQUFDLFFBQVEsQ0FBRSxDQUFBO1FBQy9DLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztZQUNkLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ3hCLFlBQVksRUFBRSxJQUFBLCtCQUFTLEVBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7WUFDckQsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVLElBQUksSUFBSTtZQUN2QyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJO1lBQ3BDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUk7U0FDN0IsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO0lBQ2xFLENBQUM7QUFDSCxDQUFDIn0=
|
|
@@ -2,6 +2,7 @@ import type { AuthenticatedMedusaRequest, MedusaRequest, MedusaResponse } from "
|
|
|
2
2
|
type Body = {
|
|
3
3
|
rating?: unknown;
|
|
4
4
|
body?: unknown;
|
|
5
|
+
review_request_token?: unknown;
|
|
5
6
|
};
|
|
6
7
|
export declare function GET(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
|
|
7
8
|
export declare function POST(req: AuthenticatedMedusaRequest<Body>, res: MedusaResponse): Promise<MedusaResponse>;
|