@hszrdm/core 1.5.0 → 1.7.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 +3834 -2905
- package/.medusa/server/src/admin/index.mjs +3834 -2905
- package/.medusa/server/src/api/admin/core-carts/[id]/items/[itemId]/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/items/[itemId]/route.js +64 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/items/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/items/route.js +40 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/promotions/[code]/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/promotions/[code]/route.js +40 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/promotions/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/promotions/route.js +41 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/route.js +28 -0
- package/.medusa/server/src/api/admin/core-carts/customer/[id]/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core-carts/customer/[id]/route.js +34 -0
- package/.medusa/server/src/api/admin/core-carts/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/core-carts/route.js +69 -0
- package/.medusa/server/src/api/admin/shared-cart/settings/route.d.ts +5 -0
- package/.medusa/server/src/api/admin/shared-cart/settings/route.js +31 -0
- package/.medusa/server/src/api/middlewares.js +9 -1
- package/.medusa/server/src/api/store/core-carts/me/active/route.d.ts +2 -0
- package/.medusa/server/src/api/store/core-carts/me/active/route.js +54 -0
- package/.medusa/server/src/api/store/shared-carts/[token]/route.d.ts +2 -0
- package/.medusa/server/src/api/store/shared-carts/[token]/route.js +52 -0
- package/.medusa/server/src/api/store/shared-carts/route.d.ts +13 -0
- package/.medusa/server/src/api/store/shared-carts/route.js +78 -0
- package/.medusa/server/src/core/admin-cart-management.d.ts +18 -0
- package/.medusa/server/src/core/admin-cart-management.js +102 -0
- package/.medusa/server/src/core/admin-cart-visibility.d.ts +94 -0
- package/.medusa/server/src/core/admin-cart-visibility.js +192 -0
- package/.medusa/server/src/core/cart-observability.d.ts +23 -0
- package/.medusa/server/src/core/cart-observability.js +54 -0
- package/.medusa/server/src/core/customer-cart-resume.d.ts +21 -0
- package/.medusa/server/src/core/customer-cart-resume.js +72 -0
- 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.js +6 -7
- package/.medusa/server/src/modules/shared-cart/index.d.ts +21 -0
- package/.medusa/server/src/modules/shared-cart/index.js +13 -0
- package/.medusa/server/src/modules/shared-cart/migrations/Migration20261102010000.d.ts +5 -0
- package/.medusa/server/src/modules/shared-cart/migrations/Migration20261102010000.js +16 -0
- package/.medusa/server/src/modules/shared-cart/models/shared-cart.d.ts +10 -0
- package/.medusa/server/src/modules/shared-cart/models/shared-cart.js +17 -0
- package/.medusa/server/src/modules/shared-cart/service.d.ts +14 -0
- package/.medusa/server/src/modules/shared-cart/service.js +11 -0
- package/.medusa/server/src/modules/shared-cart/settings.d.ts +7 -0
- package/.medusa/server/src/modules/shared-cart/settings.js +64 -0
- package/README.md +1 -1
- package/package.json +29 -8
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type CustomerCartResumeAction = "none" | "resume" | "keep-current" | "merge-required";
|
|
2
|
+
export declare class CustomerCartResumeError extends Error {
|
|
3
|
+
readonly statusCode: number;
|
|
4
|
+
constructor(statusCode: number, message: string);
|
|
5
|
+
}
|
|
6
|
+
export type CustomerCartResumeCart = {
|
|
7
|
+
id: string;
|
|
8
|
+
customer_id?: string | null;
|
|
9
|
+
item_count?: number;
|
|
10
|
+
status?: string | null;
|
|
11
|
+
};
|
|
12
|
+
export declare function requireResumeCustomerId(value: unknown): string;
|
|
13
|
+
export declare function decideCustomerCartResume(input: {
|
|
14
|
+
customerId: string;
|
|
15
|
+
activeCart: CustomerCartResumeCart | null;
|
|
16
|
+
currentCart: CustomerCartResumeCart | null;
|
|
17
|
+
}): {
|
|
18
|
+
action: CustomerCartResumeAction;
|
|
19
|
+
target_cart_id: string | null;
|
|
20
|
+
};
|
|
21
|
+
export declare function customerCartResumeStatus(error: unknown): number;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CustomerCartResumeError = void 0;
|
|
4
|
+
exports.requireResumeCustomerId = requireResumeCustomerId;
|
|
5
|
+
exports.decideCustomerCartResume = decideCustomerCartResume;
|
|
6
|
+
exports.customerCartResumeStatus = customerCartResumeStatus;
|
|
7
|
+
class CustomerCartResumeError extends Error {
|
|
8
|
+
constructor(statusCode, message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = "CustomerCartResumeError";
|
|
11
|
+
this.statusCode = statusCode;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.CustomerCartResumeError = CustomerCartResumeError;
|
|
15
|
+
function requireResumeCustomerId(value) {
|
|
16
|
+
const id = String(value || "").trim();
|
|
17
|
+
if (!id) {
|
|
18
|
+
throw new CustomerCartResumeError(401, "A bejelentkezett vásárló nem azonosítható.");
|
|
19
|
+
}
|
|
20
|
+
return id;
|
|
21
|
+
}
|
|
22
|
+
function decideCustomerCartResume(input) {
|
|
23
|
+
const customerId = requireResumeCustomerId(input.customerId);
|
|
24
|
+
const activeCart = normalizeResumeCart(input.activeCart);
|
|
25
|
+
let currentCart = normalizeResumeCart(input.currentCart);
|
|
26
|
+
if (currentCart?.status === "converted") {
|
|
27
|
+
currentCart = null;
|
|
28
|
+
}
|
|
29
|
+
const currentOwner = String(currentCart?.customer_id || "").trim();
|
|
30
|
+
if (currentOwner && currentOwner !== customerId) {
|
|
31
|
+
throw new CustomerCartResumeError(403, "A megadott kosár nem ehhez a vásárlóhoz tartozik.");
|
|
32
|
+
}
|
|
33
|
+
if (!activeCart && !currentCart) {
|
|
34
|
+
return { action: "none", target_cart_id: null };
|
|
35
|
+
}
|
|
36
|
+
if (!activeCart && currentCart) {
|
|
37
|
+
return { action: "keep-current", target_cart_id: currentCart.id };
|
|
38
|
+
}
|
|
39
|
+
if (activeCart && !currentCart) {
|
|
40
|
+
return { action: "resume", target_cart_id: activeCart.id };
|
|
41
|
+
}
|
|
42
|
+
if (activeCart && currentCart) {
|
|
43
|
+
if (activeCart.id === currentCart.id) {
|
|
44
|
+
return { action: "keep-current", target_cart_id: currentCart.id };
|
|
45
|
+
}
|
|
46
|
+
if (Number(currentCart.item_count || 0) > 0) {
|
|
47
|
+
return { action: "merge-required", target_cart_id: null };
|
|
48
|
+
}
|
|
49
|
+
return { action: "resume", target_cart_id: activeCart.id };
|
|
50
|
+
}
|
|
51
|
+
return { action: "none", target_cart_id: null };
|
|
52
|
+
}
|
|
53
|
+
function customerCartResumeStatus(error) {
|
|
54
|
+
if (error instanceof CustomerCartResumeError)
|
|
55
|
+
return error.statusCode;
|
|
56
|
+
return 500;
|
|
57
|
+
}
|
|
58
|
+
function normalizeResumeCart(cart) {
|
|
59
|
+
if (!cart)
|
|
60
|
+
return null;
|
|
61
|
+
const id = String(cart.id || "").trim();
|
|
62
|
+
if (!id)
|
|
63
|
+
return null;
|
|
64
|
+
return {
|
|
65
|
+
...cart,
|
|
66
|
+
id,
|
|
67
|
+
customer_id: String(cart.customer_id || "").trim() || null,
|
|
68
|
+
item_count: Math.max(0, Number(cart.item_count || 0)),
|
|
69
|
+
status: String(cart.status || "").trim() || null,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItY2FydC1yZXN1bWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29yZS9jdXN0b21lci1jYXJ0LXJlc3VtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1QkEsMERBU0M7QUFFRCw0REFpREM7QUFFRCw0REFHQztBQWxGRCxNQUFhLHVCQUF3QixTQUFRLEtBQUs7SUFHaEQsWUFBWSxVQUFrQixFQUFFLE9BQWU7UUFDN0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyx5QkFBeUIsQ0FBQTtRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTtJQUM5QixDQUFDO0NBQ0Y7QUFSRCwwREFRQztBQVNELFNBQWdCLHVCQUF1QixDQUFDLEtBQWM7SUFDcEQsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNyQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDUixNQUFNLElBQUksdUJBQXVCLENBQy9CLEdBQUcsRUFDSCw0Q0FBNEMsQ0FDN0MsQ0FBQTtJQUNILENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQTtBQUNYLENBQUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxLQUl4QztJQUlDLE1BQU0sVUFBVSxHQUFHLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUM1RCxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDeEQsSUFBSSxXQUFXLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBRXhELElBQUksV0FBVyxFQUFFLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUN4QyxXQUFXLEdBQUcsSUFBSSxDQUFBO0lBQ3BCLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxN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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const CORE_VERSION = "1.
|
|
1
|
+
export declare const CORE_VERSION = "1.7.0";
|
|
2
2
|
export declare const CORE_API_CONTRACT_VERSION = "1.0";
|
|
3
3
|
export declare const STOREFRONT_CORE_CONFIG_SCHEMA_VERSION = 1;
|
|
4
|
-
export declare const CORE_DB_SCHEMA_VERSION =
|
|
4
|
+
export declare const CORE_DB_SCHEMA_VERSION = 7;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CORE_DB_SCHEMA_VERSION = exports.STOREFRONT_CORE_CONFIG_SCHEMA_VERSION = exports.CORE_API_CONTRACT_VERSION = exports.CORE_VERSION = void 0;
|
|
4
|
-
exports.CORE_VERSION = "1.
|
|
4
|
+
exports.CORE_VERSION = "1.7.0";
|
|
5
5
|
exports.CORE_API_CONTRACT_VERSION = "1.0";
|
|
6
6
|
exports.STOREFRONT_CORE_CONFIG_SCHEMA_VERSION = 1;
|
|
7
|
-
exports.CORE_DB_SCHEMA_VERSION =
|
|
7
|
+
exports.CORE_DB_SCHEMA_VERSION = 7;
|
|
8
8
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxZQUFZLEdBQUcsT0FBTyxDQUFBO0FBQ3RCLFFBQUEseUJBQXlCLEdBQUcsS0FBSyxDQUFBO0FBQ2pDLFFBQUEscUNBQXFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3pDLFFBQUEsc0JBQXNCLEdBQUcsQ0FBQyxDQUFBIn0=
|
|
@@ -6,6 +6,7 @@ exports.runBatch = runBatch;
|
|
|
6
6
|
const utils_1 = require("@medusajs/framework/utils");
|
|
7
7
|
const integration_settings_1 = require("../modules/integration-settings");
|
|
8
8
|
const abandoned_cart_1 = require("../core/abandoned-cart");
|
|
9
|
+
const cart_observability_1 = require("../core/cart-observability");
|
|
9
10
|
const PAGE_SIZE = 100;
|
|
10
11
|
async function abandonedCartRecovery(container) {
|
|
11
12
|
const locking = container.resolve("locking");
|
|
@@ -30,7 +31,7 @@ async function runBatch(container) {
|
|
|
30
31
|
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
31
32
|
const cartService = container.resolve(utils_1.Modules.CART);
|
|
32
33
|
const logger = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
33
|
-
const
|
|
34
|
+
const statusFilters = (0, cart_observability_1.abandonedCartQueryFilters)(settings.delayHours);
|
|
34
35
|
let cursor = null;
|
|
35
36
|
let scanned = 0;
|
|
36
37
|
let sent = 0;
|
|
@@ -42,15 +43,15 @@ async function runBatch(container) {
|
|
|
42
43
|
"email",
|
|
43
44
|
"locale",
|
|
44
45
|
"currency_code",
|
|
46
|
+
"created_at",
|
|
45
47
|
"updated_at",
|
|
46
48
|
"completed_at",
|
|
47
49
|
"metadata",
|
|
48
50
|
"items.quantity",
|
|
49
51
|
],
|
|
50
52
|
filters: {
|
|
51
|
-
|
|
53
|
+
...statusFilters,
|
|
52
54
|
email: { $ne: null },
|
|
53
|
-
completed_at: null,
|
|
54
55
|
...(cursor ? { id: { $gt: cursor } } : {}),
|
|
55
56
|
},
|
|
56
57
|
pagination: {
|
|
@@ -65,9 +66,7 @@ async function runBatch(container) {
|
|
|
65
66
|
scanned += 1;
|
|
66
67
|
if (!cart.email)
|
|
67
68
|
continue;
|
|
68
|
-
if (cart.
|
|
69
|
-
continue;
|
|
70
|
-
if (!Array.isArray(cart.items) || !cart.items.some((item) => Number(item?.quantity) > 0))
|
|
69
|
+
if (!(0, cart_observability_1.isAbandonedCart)(cart, settings.delayHours))
|
|
71
70
|
continue;
|
|
72
71
|
if (cart.metadata?.abandoned_cart_recovery_sent_at)
|
|
73
72
|
continue;
|
|
@@ -135,4 +134,4 @@ async function runBatch(container) {
|
|
|
135
134
|
return { scanned, sent, delayHours: settings.delayHours };
|
|
136
135
|
}
|
|
137
136
|
exports.config = { name: "abandoned-cart-recovery", schedule: "30 * * * *" };
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJhbmRvbmVkLWNhcnQtcmVjb3ZlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvam9icy9hYmFuZG9uZWQtY2FydC1yZWNvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQ0Esd0NBbUJDO0FBRUQsNEJBaUhDO0FBektELHFEQUE4RTtBQUM5RSwwRUFJd0M7QUFDeEMsMkRBSytCO0FBQy9CLG1FQUdtQztBQUVuQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUE7QUFrQk4sS0FBSyxVQUFVLHFCQUFxQixDQUFDLFNBQTBCO0lBQzVFLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUUxQyxDQUFBO0lBRUQsSUFBSSxDQUFDO1FBQ0gsT0FBTyxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQzFCLDZCQUE2QixFQUM3QixHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQ3pCLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQzdCLENBQUE7SUFDSCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbEUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3pCLEtBQUssRUFBRSw4QkFBOEI7WUFDckMsR0FBRyxFQUFFLHlCQUF5QjtZQUM5QixPQUFPLEVBQUUsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUNoRSxDQUFDLENBQUMsQ0FBQTtJQUNMLENBQUM7QUFDSCxDQUFDO0FBRU0sS0FBSyxVQUFVLFFBQVEsQ0FBQyxTQUEwQjtJQUN2RCxNQUFNLGFBQWEsR0FBRyxTQUFT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
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import SharedCartModuleService from "./service";
|
|
2
|
+
export declare const SHARED_CART_MODULE = "sharedCart";
|
|
3
|
+
declare const _default: import("@medusajs/types").ModuleExports<typeof SharedCartModuleService> & {
|
|
4
|
+
linkable: {
|
|
5
|
+
readonly sharedCart: {
|
|
6
|
+
id: {
|
|
7
|
+
serviceName: "sharedCart";
|
|
8
|
+
field: "sharedCart";
|
|
9
|
+
linkable: "shared_cart_id";
|
|
10
|
+
primaryKey: "id";
|
|
11
|
+
};
|
|
12
|
+
toJSON: () => {
|
|
13
|
+
serviceName: "sharedCart";
|
|
14
|
+
field: "sharedCart";
|
|
15
|
+
linkable: "shared_cart_id";
|
|
16
|
+
primaryKey: "id";
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SHARED_CART_MODULE = void 0;
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
const service_1 = __importDefault(require("./service"));
|
|
9
|
+
exports.SHARED_CART_MODULE = "sharedCart";
|
|
10
|
+
exports.default = (0, utils_1.Module)(exports.SHARED_CART_MODULE, {
|
|
11
|
+
service: service_1.default,
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9zaGFyZWQtY2FydC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxREFBa0Q7QUFDbEQsd0RBQStDO0FBRWxDLFFBQUEsa0JBQWtCLEdBQUcsWUFBWSxDQUFBO0FBRTlDLGtCQUFlLElBQUEsY0FBTSxFQUFDLDBCQUFrQixFQUFFO0lBQ3hDLE9BQU8sRUFBRSxpQkFBdUI7Q0FDakMsQ0FBQyxDQUFBIn0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20261102010000 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20261102010000 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`create table if not exists "shared_cart" ("id" text not null, "token_hash" text not null, "items" jsonb not null, "region_id" text null, "currency_code" text null, "use_count" int not null default 0, "expires_at" timestamptz not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "shared_cart_pkey" primary key ("id"));`);
|
|
8
|
+
this.addSql(`create unique index if not exists "IDX_shared_cart_token_hash" on "shared_cart" ("token_hash") where deleted_at is null;`);
|
|
9
|
+
this.addSql(`create index if not exists "IDX_shared_cart_expires_at" on "shared_cart" ("expires_at") where deleted_at is null;`);
|
|
10
|
+
}
|
|
11
|
+
async down() {
|
|
12
|
+
this.addSql(`drop table if exists "shared_cart" cascade;`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.Migration20261102010000 = Migration20261102010000;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjExMDIwMTAwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9zaGFyZWQtY2FydC9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjYxMTAyMDEwMDAwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUFvRTtBQUVwRSxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBQ3BELEtBQUssQ0FBQyxFQUFFO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnYUFBZ2EsQ0FBQyxDQUFBO1FBQzdhLElBQUksQ0FBQyxNQUFNLENBQUMsMEhBQTBILENBQUMsQ0FBQTtRQUN2SSxJQUFJLENBQUMsTUFBTSxDQUFDLG1IQUFtSCxDQUFDLENBQUE7SUFDbEksQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFBO0lBQzVELENBQUM7Q0FDRjtBQVZELDBEQVVDIn0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare const SharedCart: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
2
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
3
|
+
token_hash: import("@medusajs/framework/utils").TextProperty;
|
|
4
|
+
items: import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>;
|
|
5
|
+
region_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
6
|
+
currency_code: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
7
|
+
use_count: import("@medusajs/framework/utils").NumberProperty;
|
|
8
|
+
expires_at: import("@medusajs/framework/utils").DateTimeProperty;
|
|
9
|
+
}>, "shared_cart">;
|
|
10
|
+
export default SharedCart;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
4
|
+
const SharedCart = utils_1.model.define("shared_cart", {
|
|
5
|
+
id: utils_1.model.id().primaryKey(),
|
|
6
|
+
token_hash: utils_1.model.text(),
|
|
7
|
+
items: utils_1.model.json(),
|
|
8
|
+
region_id: utils_1.model.text().nullable(),
|
|
9
|
+
currency_code: utils_1.model.text().nullable(),
|
|
10
|
+
use_count: utils_1.model.number().default(0),
|
|
11
|
+
expires_at: utils_1.model.dateTime(),
|
|
12
|
+
}).indexes([
|
|
13
|
+
{ on: ["token_hash"], unique: true },
|
|
14
|
+
{ on: ["expires_at"] },
|
|
15
|
+
]);
|
|
16
|
+
exports.default = SharedCart;
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWNhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9zaGFyZWQtY2FydC9tb2RlbHMvc2hhcmVkLWNhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBaUQ7QUFFakQsTUFBTSxVQUFVLEdBQUcsYUFBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUU7SUFDN0MsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUU7SUFDM0IsVUFBVSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDeEIsS0FBSyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDbkIsU0FBUyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsYUFBYSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsU0FBUyxFQUFFLGFBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLFVBQVUsRUFBRSxhQUFLLENBQUMsUUFBUSxFQUFFO0NBQzdCLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDVCxFQUFFLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7SUFDcEMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRTtDQUN2QixDQUFDLENBQUE7QUFFRixrQkFBZSxVQUFVLENBQUEifQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare const SharedCartModuleService_base: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
|
|
2
|
+
readonly SharedCart: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
3
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
4
|
+
token_hash: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
+
items: import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>;
|
|
6
|
+
region_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
7
|
+
currency_code: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
8
|
+
use_count: import("@medusajs/framework/utils").NumberProperty;
|
|
9
|
+
expires_at: import("@medusajs/framework/utils").DateTimeProperty;
|
|
10
|
+
}>, "shared_cart">;
|
|
11
|
+
}>>;
|
|
12
|
+
declare class SharedCartModuleService extends SharedCartModuleService_base {
|
|
13
|
+
}
|
|
14
|
+
export default SharedCartModuleService;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const shared_cart_1 = __importDefault(require("./models/shared-cart"));
|
|
8
|
+
class SharedCartModuleService extends (0, utils_1.MedusaService)({ SharedCart: shared_cart_1.default }) {
|
|
9
|
+
}
|
|
10
|
+
exports.default = SharedCartModuleService;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3NoYXJlZC1jYXJ0L3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBeUQ7QUFDekQsdUVBQTZDO0FBRTdDLE1BQU0sdUJBQXdCLFNBQVEsSUFBQSxxQkFBYSxFQUFDLEVBQUUsVUFBVSxFQUFWLHFCQUFVLEVBQUUsQ0FBQztDQUFHO0FBRXRFLGtCQUFlLHVCQUF1QixDQUFBIn0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { IntegrationSettingsStore } from "../integration-settings";
|
|
2
|
+
export declare const SHARED_CART_SETTINGS_KEY = "shared-cart";
|
|
3
|
+
export declare const DEFAULT_SHARED_CART_TTL_DAYS = 30;
|
|
4
|
+
export declare const MIN_SHARED_CART_TTL_DAYS = 1;
|
|
5
|
+
export declare const MAX_SHARED_CART_TTL_DAYS = 365;
|
|
6
|
+
export declare function getSharedCartTtlDays(store: IntegrationSettingsStore): Promise<number>;
|
|
7
|
+
export declare function saveSharedCartTtlDays(store: IntegrationSettingsStore, ttlDays: number, actorId?: string | null): Promise<number>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MAX_SHARED_CART_TTL_DAYS = exports.MIN_SHARED_CART_TTL_DAYS = exports.DEFAULT_SHARED_CART_TTL_DAYS = exports.SHARED_CART_SETTINGS_KEY = void 0;
|
|
4
|
+
exports.getSharedCartTtlDays = getSharedCartTtlDays;
|
|
5
|
+
exports.saveSharedCartTtlDays = saveSharedCartTtlDays;
|
|
6
|
+
exports.SHARED_CART_SETTINGS_KEY = "shared-cart";
|
|
7
|
+
exports.DEFAULT_SHARED_CART_TTL_DAYS = 30;
|
|
8
|
+
exports.MIN_SHARED_CART_TTL_DAYS = 1;
|
|
9
|
+
exports.MAX_SHARED_CART_TTL_DAYS = 365;
|
|
10
|
+
async function getSharedCartTtlDays(store) {
|
|
11
|
+
const rows = await store.listIntegrationSettings({ integration: exports.SHARED_CART_SETTINGS_KEY }, { take: 1 });
|
|
12
|
+
const config = cleanConfig(rows[0]?.config);
|
|
13
|
+
return normalizeTtl(config.ttl_days);
|
|
14
|
+
}
|
|
15
|
+
async function saveSharedCartTtlDays(store, ttlDays, actorId) {
|
|
16
|
+
const ttl = normalizeTtl(ttlDays, true);
|
|
17
|
+
const rows = await store.listIntegrationSettings({ integration: exports.SHARED_CART_SETTINGS_KEY }, { take: 1 });
|
|
18
|
+
const existing = rows[0];
|
|
19
|
+
const config = {
|
|
20
|
+
...cleanConfig(existing?.config),
|
|
21
|
+
ttl_days: String(ttl),
|
|
22
|
+
};
|
|
23
|
+
const payload = {
|
|
24
|
+
integration: exports.SHARED_CART_SETTINGS_KEY,
|
|
25
|
+
enabled: true,
|
|
26
|
+
config,
|
|
27
|
+
secret_data: existing?.secret_data || null,
|
|
28
|
+
last_test_status: existing?.last_test_status || "unknown",
|
|
29
|
+
last_test_message: existing?.last_test_message || null,
|
|
30
|
+
last_test_at: existing?.last_test_at || null,
|
|
31
|
+
updated_by: actorId || existing?.updated_by || null,
|
|
32
|
+
};
|
|
33
|
+
if (existing) {
|
|
34
|
+
await store.updateIntegrationSettings({ id: existing.id, ...payload });
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
await store.createIntegrationSettings(payload);
|
|
38
|
+
}
|
|
39
|
+
return ttl;
|
|
40
|
+
}
|
|
41
|
+
function normalizeTtl(value, strict = false) {
|
|
42
|
+
const parsed = typeof value === "number" ? value : Number(String(value || ""));
|
|
43
|
+
if (!Number.isFinite(parsed)) {
|
|
44
|
+
if (strict)
|
|
45
|
+
throw new Error("A lejárati időnek számnak kell lennie.");
|
|
46
|
+
return exports.DEFAULT_SHARED_CART_TTL_DAYS;
|
|
47
|
+
}
|
|
48
|
+
const ttl = Math.trunc(parsed);
|
|
49
|
+
if (ttl < exports.MIN_SHARED_CART_TTL_DAYS || ttl > exports.MAX_SHARED_CART_TTL_DAYS) {
|
|
50
|
+
if (strict) {
|
|
51
|
+
throw new Error(`A lejárati idő ${exports.MIN_SHARED_CART_TTL_DAYS} és ${exports.MAX_SHARED_CART_TTL_DAYS} nap között lehet.`);
|
|
52
|
+
}
|
|
53
|
+
return exports.DEFAULT_SHARED_CART_TTL_DAYS;
|
|
54
|
+
}
|
|
55
|
+
return ttl;
|
|
56
|
+
}
|
|
57
|
+
function cleanConfig(value) {
|
|
58
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
59
|
+
return {};
|
|
60
|
+
return Object.fromEntries(Object.entries(value)
|
|
61
|
+
.filter(([, item]) => typeof item === "string")
|
|
62
|
+
.map(([key, item]) => [key, item]));
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9zaGFyZWQtY2FydC9zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFPQSxvREFPQztBQUVELHNEQWtDQztBQWhEWSxRQUFBLHdCQUF3QixHQUFHLGFBQWEsQ0FBQTtBQUN4QyxRQUFBLDRCQUE0QixHQUFHLEVBQUUsQ0FBQTtBQUNqQyxRQUFBLHdCQUF3QixHQUFHLENBQUMsQ0FBQTtBQUM1QixRQUFBLHdCQUF3QixHQUFHLEdBQUcsQ0FBQTtBQUVwQyxLQUFLLFVBQVUsb0JBQW9CLENBQUMsS0FBK0I7SUFDeEUsTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLLENBQUMsdUJBQXVCLENBQzlDLEVBQUUsV0FBVyxFQUFFLGdDQUF3QixFQUFFLEVBQ3pDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUNaLENBQUE7SUFDRCxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzNDLE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUN0QyxDQUFDO0FBRU0sS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxLQUErQixFQUMvQixPQUFlLEVBQ2YsT0FBdUI7SUFFdkIsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUN2QyxNQUFNLElBQUksR0FBRyxNQUFNLEtBQUssQ0FBQyx1QkFBdUIsQ0FDOUMsRUFBRSxXQUFXLEVBQUUsZ0NBQXdCLEVBQUUsRUFDekMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQ1osQ0FBQTtJQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN4QixNQUFNLE1BQU0sR0FBRztRQUNiLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxN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
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ npm run core:plugin:typecheck
|
|
|
11
11
|
npm run core:plugin:build
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
The
|
|
14
|
+
`source/` is the canonical editable implementation. `scripts/prepare-source.mjs` recreates `src/`, and plugin build emits `.medusa/server/`. The thin `apps/backend` reference application loads this package; generated customer backends come from `starters/backend`. Function guides and implementation references are indexed in [the repository documentation](../../docs/README.md). The documentation directory is repository-only and is not included in the published npm package.
|
|
15
15
|
|
|
16
16
|
## Release rule
|
|
17
17
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hszrdm/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "Reusable HSZRDM Commerce Core plugin for Medusa v2.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"files": [
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
"build": "npm run prepare:source && medusa plugin:build",
|
|
37
37
|
"prepack": "npm run build",
|
|
38
38
|
"typecheck": "npm run prepare:source && tsc --noEmit",
|
|
39
|
+
"test:storefront": "NODE_ENV=test npx jest --config ../../apps/backend/jest.config.js --rootDir ../.. --runInBand --runTestsByPath \"$PWD/source/__tests__/storefront-capability-parity.unit.spec.ts\" \"$PWD/source/__tests__/core-storefront-starter-complete.unit.spec.ts\" \"$PWD/source/__tests__/storefront-starter-contract.unit.spec.ts\" \"$PWD/source/__tests__/customer-cart-resume.unit.spec.ts\"",
|
|
39
40
|
"dev": "npm run prepare:source && medusa plugin:develop",
|
|
40
41
|
"publish:local": "npm run build && medusa plugin:publish"
|
|
41
42
|
},
|
|
@@ -77,13 +78,33 @@
|
|
|
77
78
|
"react-router-dom": "7.18.2"
|
|
78
79
|
},
|
|
79
80
|
"peerDependenciesMeta": {
|
|
80
|
-
"@medusajs/admin-sdk": {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
"@medusajs/
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
"
|
|
81
|
+
"@medusajs/admin-sdk": {
|
|
82
|
+
"optional": true
|
|
83
|
+
},
|
|
84
|
+
"@medusajs/cli": {
|
|
85
|
+
"optional": true
|
|
86
|
+
},
|
|
87
|
+
"@medusajs/dashboard": {
|
|
88
|
+
"optional": true
|
|
89
|
+
},
|
|
90
|
+
"@medusajs/framework": {
|
|
91
|
+
"optional": true
|
|
92
|
+
},
|
|
93
|
+
"@medusajs/medusa": {
|
|
94
|
+
"optional": true
|
|
95
|
+
},
|
|
96
|
+
"@medusajs/ui": {
|
|
97
|
+
"optional": true
|
|
98
|
+
},
|
|
99
|
+
"react": {
|
|
100
|
+
"optional": true
|
|
101
|
+
},
|
|
102
|
+
"react-dom": {
|
|
103
|
+
"optional": true
|
|
104
|
+
},
|
|
105
|
+
"react-router-dom": {
|
|
106
|
+
"optional": true
|
|
107
|
+
}
|
|
87
108
|
},
|
|
88
109
|
"engines": {
|
|
89
110
|
"node": "22.x"
|