@mercurjs/core 2.3.5-canary.0 → 2.3.6-canary.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/api/admin/collections/validators.d.ts +12 -185
- package/.medusa/server/src/api/admin/collections/validators.js +3 -3
- package/.medusa/server/src/api/admin/commission-rates/validators.d.ts +21 -226
- package/.medusa/server/src/api/admin/customer-groups/validators.d.ts +6 -26
- package/.medusa/server/src/api/admin/members/validators.d.ts +1 -18
- package/.medusa/server/src/api/admin/offers/validators.d.ts +22 -261
- package/.medusa/server/src/api/admin/order-groups/validators.d.ts +9 -94
- package/.medusa/server/src/api/admin/orders/validators.d.ts +162 -1
- package/.medusa/server/src/api/admin/payouts/validators.d.ts +7 -86
- package/.medusa/server/src/api/admin/product-attributes/validators.d.ts +45 -398
- package/.medusa/server/src/api/admin/product-attributes/validators.js +8 -8
- package/.medusa/server/src/api/admin/product-categories/middlewares.js +4 -2
- package/.medusa/server/src/api/admin/product-categories/validators.d.ts +41 -376
- package/.medusa/server/src/api/admin/product-categories/validators.js +3 -3
- package/.medusa/server/src/api/admin/product-changes/validators.d.ts +2 -10
- package/.medusa/server/src/api/admin/products/middlewares.js +4 -2
- package/.medusa/server/src/api/admin/products/validators.d.ts +128 -1702
- package/.medusa/server/src/api/admin/products/validators.js +9 -9
- package/.medusa/server/src/api/admin/promotions/[id]/cost/validators.d.ts +6 -8
- package/.medusa/server/src/api/admin/reservations/validators.d.ts +2 -39
- package/.medusa/server/src/api/admin/reviews/validators.d.ts +24 -46
- package/.medusa/server/src/api/admin/sellers/validators.d.ts +32 -358
- package/.medusa/server/src/api/admin/sellers/validators.js +4 -4
- package/.medusa/server/src/api/store/carts/[id]/complete/validators.d.ts +1 -5
- package/.medusa/server/src/api/store/carts/[id]/line-items/validators.d.ts +1 -17
- package/.medusa/server/src/api/store/carts/[id]/line-items/validators.js +3 -5
- package/.medusa/server/src/api/store/offers/validators.d.ts +9 -112
- package/.medusa/server/src/api/store/order-groups/validators.d.ts +5 -80
- package/.medusa/server/src/api/store/product-attributes/validators.d.ts +19 -175
- package/.medusa/server/src/api/store/product-categories/validators.d.ts +21 -184
- package/.medusa/server/src/api/store/products/validators.d.ts +25 -210
- package/.medusa/server/src/api/store/reviews/validators.d.ts +7 -34
- package/.medusa/server/src/api/store/sellers/validators.d.ts +7 -92
- package/.medusa/server/src/api/vendor/campaigns/validators.d.ts +28 -165
- package/.medusa/server/src/api/vendor/campaigns/validators.js +4 -4
- package/.medusa/server/src/api/vendor/claims/validators.d.ts +23 -276
- package/.medusa/server/src/api/vendor/collections/validators.d.ts +8 -117
- package/.medusa/server/src/api/vendor/currencies/validators.d.ts +5 -32
- package/.medusa/server/src/api/vendor/customer-groups/[id]/customers/route.js +10 -9
- package/.medusa/server/src/api/vendor/customer-groups/validators.d.ts +11 -108
- package/.medusa/server/src/api/vendor/customer-groups/validators.js +3 -3
- package/.medusa/server/src/api/vendor/customers/helpers.d.ts +1 -1
- package/.medusa/server/src/api/vendor/customers/helpers.js +12 -6
- package/.medusa/server/src/api/vendor/customers/validators.d.ts +11 -102
- package/.medusa/server/src/api/vendor/exchanges/validators.d.ts +17 -228
- package/.medusa/server/src/api/vendor/fulfillment-providers/validators.d.ts +4 -27
- package/.medusa/server/src/api/vendor/fulfillment-sets/validators.d.ts +18 -290
- package/.medusa/server/src/api/vendor/fulfillment-sets/validators.js +3 -3
- package/.medusa/server/src/api/vendor/inventory-items/validators.d.ts +48 -560
- package/.medusa/server/src/api/vendor/inventory-items/validators.js +3 -3
- package/.medusa/server/src/api/vendor/members/validators.d.ts +2 -18
- package/.medusa/server/src/api/vendor/offers/validators.d.ts +34 -497
- package/.medusa/server/src/api/vendor/order-edits/validators.d.ts +8 -118
- package/.medusa/server/src/api/vendor/order-edits/validators.js +6 -6
- package/.medusa/server/src/api/vendor/orders/validators.d.ts +17 -170
- package/.medusa/server/src/api/vendor/payments/validators.d.ts +11 -121
- package/.medusa/server/src/api/vendor/payout-accounts/validators.d.ts +4 -32
- package/.medusa/server/src/api/vendor/payout-accounts/validators.js +5 -5
- package/.medusa/server/src/api/vendor/payouts/validators.d.ts +5 -80
- package/.medusa/server/src/api/vendor/price-lists/validators.d.ts +21 -262
- package/.medusa/server/src/api/vendor/price-preferences/validators.d.ts +5 -30
- package/.medusa/server/src/api/vendor/product-attributes/validators.d.ts +33 -273
- package/.medusa/server/src/api/vendor/product-attributes/validators.js +5 -5
- package/.medusa/server/src/api/vendor/product-categories/validators.d.ts +34 -275
- package/.medusa/server/src/api/vendor/product-tags/validators.d.ts +12 -48
- package/.medusa/server/src/api/vendor/product-types/validators.d.ts +4 -27
- package/.medusa/server/src/api/vendor/product-variants/middlewares.js +7 -2
- package/.medusa/server/src/api/vendor/product-variants/validators.d.ts +38 -364
- package/.medusa/server/src/api/vendor/products/middlewares.js +19 -3
- package/.medusa/server/src/api/vendor/products/validators.d.ts +102 -1012
- package/.medusa/server/src/api/vendor/products/validators.js +13 -13
- package/.medusa/server/src/api/vendor/promotions/validators.d.ts +104 -1109
- package/.medusa/server/src/api/vendor/promotions/validators.js +3 -3
- package/.medusa/server/src/api/vendor/refund-reasons/validators.d.ts +5 -82
- package/.medusa/server/src/api/vendor/regions/validators.d.ts +7 -88
- package/.medusa/server/src/api/vendor/reservations/validators.d.ts +14 -207
- package/.medusa/server/src/api/vendor/return-reasons/validators.d.ts +9 -94
- package/.medusa/server/src/api/vendor/returns/validators.d.ts +26 -306
- package/.medusa/server/src/api/vendor/returns/validators.js +8 -8
- package/.medusa/server/src/api/vendor/reviews/validators.d.ts +19 -36
- package/.medusa/server/src/api/vendor/sales-channels/validators.d.ts +5 -32
- package/.medusa/server/src/api/vendor/sellers/validators.d.ts +17 -249
- package/.medusa/server/src/api/vendor/sellers/validators.js +4 -4
- package/.medusa/server/src/api/vendor/shipping-option-types/validators.d.ts +8 -91
- package/.medusa/server/src/api/vendor/shipping-options/validators.d.ts +59 -730
- package/.medusa/server/src/api/vendor/shipping-options/validators.js +5 -5
- package/.medusa/server/src/api/vendor/shipping-profiles/validators.d.ts +5 -86
- package/.medusa/server/src/api/vendor/stock-locations/validators.d.ts +14 -209
- package/.medusa/server/src/api/vendor/stock-locations/validators.js +3 -3
- package/.medusa/server/src/api/vendor/stores/query-config.d.ts +1 -0
- package/.medusa/server/src/api/vendor/stores/query-config.js +7 -4
- package/.medusa/server/src/api/vendor/stores/validators.d.ts +4 -27
- package/.medusa/server/src/patches/manifest.js +2 -2
- package/.medusa/server/src/utils/disable-medusa-middlewares.d.ts +2 -0
- package/.medusa/server/src/utils/disable-medusa-middlewares.js +35 -10
- package/.medusa/server/src/workflows/offer/workflows/index.d.ts +1 -0
- package/.medusa/server/src/workflows/offer/workflows/index.js +2 -1
- package/.medusa/server/src/workflows/offer/workflows/update-offers.js +9 -138
- package/.medusa/server/src/workflows/offer/workflows/upsert-offer-prices.d.ts +14 -0
- package/.medusa/server/src/workflows/offer/workflows/upsert-offer-prices.js +130 -0
- package/package.json +17 -17
|
@@ -5,24 +5,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ORIGINAL_MIDDLEWARES = void 0;
|
|
7
7
|
exports.disableMedusaMiddlewares = disableMedusaMiddlewares;
|
|
8
|
+
exports.withOriginalMiddlewares = withOriginalMiddlewares;
|
|
8
9
|
const fs_1 = require("fs");
|
|
9
10
|
const path_1 = require("path");
|
|
10
11
|
const resolve_cwd_1 = __importDefault(require("resolve-cwd"));
|
|
11
12
|
const pkg_dir_1 = __importDefault(require("pkg-dir"));
|
|
12
13
|
// Medusa's `dist/api/middlewares.js` is a single aggregator that statically
|
|
13
14
|
// requires every sub-middleware file (e.g. `./store/carts/middlewares`) and
|
|
14
|
-
// spreads each one's exported array into a flat list. Mercur
|
|
15
|
-
// of those modules
|
|
16
|
-
// (carts). Overriding route handlers is trivial in Medusa (file-based,
|
|
15
|
+
// spreads each one's exported array into a flat list. Mercur overrides a
|
|
16
|
+
// subset of the routes in each of those modules. Overriding route handlers is trivial in Medusa (file-based,
|
|
17
17
|
// plugin scanned after core), but middlewares can't be overridden the same
|
|
18
18
|
// way — hence this patch.
|
|
19
19
|
//
|
|
20
20
|
// We preload each listed sub-middleware module and empty its exported array
|
|
21
21
|
// in place BEFORE Medusa's aggregator runs. The aggregator then spreads an
|
|
22
|
-
// empty array.
|
|
23
|
-
// (carts), the original entries are captured into `ORIGINAL_MIDDLEWARES`
|
|
22
|
+
// empty array. The original entries are captured into `ORIGINAL_MIDDLEWARES`
|
|
24
23
|
// first so Mercur's own middlewares.ts can re-spread the non-overridden
|
|
25
|
-
// ones.
|
|
24
|
+
// ones (see `withOriginalMiddlewares`).
|
|
26
25
|
//
|
|
27
26
|
// Bun deduplicates each transitive copy of `@medusajs/medusa` under
|
|
28
27
|
// `node_modules/.bun/@medusajs+medusa@<ver>+<hash>/`. The framework can
|
|
@@ -33,7 +32,6 @@ const OVERRIDES = [
|
|
|
33
32
|
"dist/api/admin/promotions/middlewares.js",
|
|
34
33
|
"dist/api/admin/campaigns/middlewares.js",
|
|
35
34
|
"dist/api/admin/price-lists/middlewares.js",
|
|
36
|
-
"dist/api/admin/product-variants/middlewares.js",
|
|
37
35
|
"dist/api/admin/product-categories/middlewares.js",
|
|
38
36
|
"dist/api/admin/collections/middlewares.js",
|
|
39
37
|
"dist/api/admin/customer-groups/middlewares.js",
|
|
@@ -45,7 +43,6 @@ const OVERRIDES = [
|
|
|
45
43
|
"dist/api/admin/inventory-items/middlewares.js",
|
|
46
44
|
"dist/api/store/products/middlewares.js",
|
|
47
45
|
"dist/api/store/product-categories/middlewares.js",
|
|
48
|
-
"dist/api/store/product-variants/middlewares.js",
|
|
49
46
|
"dist/api/store/carts/middlewares.js",
|
|
50
47
|
];
|
|
51
48
|
exports.ORIGINAL_MIDDLEWARES = {};
|
|
@@ -92,10 +89,38 @@ function disableMedusaMiddlewares() {
|
|
|
92
89
|
const value = mod[key];
|
|
93
90
|
if (!Array.isArray(value))
|
|
94
91
|
continue;
|
|
95
|
-
|
|
92
|
+
// The first dir is the copy the app resolves; later copies (possibly
|
|
93
|
+
// other Medusa versions further up the tree) must not replace it.
|
|
94
|
+
if (!exports.ORIGINAL_MIDDLEWARES[file] && value.length) {
|
|
95
|
+
exports.ORIGINAL_MIDDLEWARES[file] = [...value];
|
|
96
|
+
}
|
|
96
97
|
value.length = 0;
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
100
|
}
|
|
100
101
|
}
|
|
101
|
-
|
|
102
|
+
const toMethods = (route) => {
|
|
103
|
+
if (!route.method)
|
|
104
|
+
return undefined;
|
|
105
|
+
return Array.isArray(route.method) ? route.method : [route.method];
|
|
106
|
+
};
|
|
107
|
+
const collides = (original, override) => {
|
|
108
|
+
if (String(original.matcher) !== String(override.matcher))
|
|
109
|
+
return false;
|
|
110
|
+
const a = toMethods(original);
|
|
111
|
+
const b = toMethods(override);
|
|
112
|
+
if (!a || !b)
|
|
113
|
+
return true;
|
|
114
|
+
return a.some((method) => b.includes(method));
|
|
115
|
+
};
|
|
116
|
+
// Medusa's handlers for routes Mercur doesn't override still load and expect
|
|
117
|
+
// Medusa's validators/query config, so every original entry must be kept
|
|
118
|
+
// unless Mercur registers the same matcher + method itself.
|
|
119
|
+
function withOriginalMiddlewares(file, overrides) {
|
|
120
|
+
const original = (exports.ORIGINAL_MIDDLEWARES[file] ?? []);
|
|
121
|
+
return [
|
|
122
|
+
...original.filter((route) => !overrides.some((override) => collides(route, override))),
|
|
123
|
+
...overrides,
|
|
124
|
+
];
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS1tZWR1c2EtbWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvZGlzYWJsZS1tZWR1c2EtbWlkZGxld2FyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBNkVBLDREQXlCQztBQWtCRCwwREFXQztBQW5JRCwyQkFBNEM7QUFDNUMsK0JBQW9DO0FBQ3BDLDhEQUFvQztBQUNwQyxzREFBNEI7QUFHNUIsNEVBQTRFO0FBQzVFLDRFQUE0RTtBQUM1RSx5RUFBeUU7QUFDekUsNkdBQTZHO0FBQzdHLDJFQUEyRTtBQUMzRSwwQkFBMEI7QUFDMUIsRUFBRTtBQUNGLDRFQUE0RTtBQUM1RSwyRUFBMkU7QUFDM0UsNkVBQTZFO0FBQzdFLHdFQUF3RTtBQUN4RSx3Q0FBd0M7QUFDeEMsRUFBRTtBQUNGLG9FQUFvRTtBQUNwRSx3RUFBd0U7QUFDeEUsMEVBQTBFO0FBQzFFLGdCQUFnQjtBQUVoQixNQUFNLFNBQVMsR0FBYTtJQUMxQix3Q0FBd0M7SUFDeEMsMENBQTBDO0lBQzFDLHlDQUF5QztJQUN6QywyQ0FBMkM7SUFDM0Msa0RBQWtEO0lBQ2xELDJDQUEyQztJQUMzQywrQ0FBK0M7SUFDL0Msc0NBQXNDO0lBQ3RDLGdEQUFnRDtJQUNoRCxpREFBaUQ7SUFDakQsK0NBQStDO0lBQy9DLDRDQUE0QztJQUM1QywrQ0FBK0M7SUFDL0Msd0NBQXdDO0lBQ3hDLGtEQUFrRDtJQUNsRCxxQ0FBcUM7Q0FDdEMsQ0FBQTtBQUVZLFFBQUEsb0JBQW9CLEdBQThCLEVBQUUsQ0FBQTtBQUVqRSxTQUFTLGNBQWM7SUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtJQUU5QixNQUFNLEtBQUssR0FBRyxJQUFBLHFCQUFVLEVBQUMsa0JBQWtCLENBQUMsQ0FBQTtJQUM1QyxNQUFNLE9BQU8sR0FBRyxpQkFBTSxDQUFDLElBQUksQ0FBQyxJQUFBLGNBQU8sRUFBQyxLQUFL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
|
|
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./create-offers"), exports);
|
|
18
18
|
__exportStar(require("./update-offers"), exports);
|
|
19
|
+
__exportStar(require("./upsert-offer-prices"), exports);
|
|
19
20
|
__exportStar(require("./delete-offers"), exports);
|
|
20
21
|
__exportStar(require("./batch-offer-inventory-items"), exports);
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL29mZmVyL3dvcmtmbG93cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQStCO0FBQy9CLGtEQUErQjtBQUMvQix3REFBcUM7QUFDckMsa0RBQStCO0FBQy9CLGdFQUE2QyJ9
|
|
@@ -3,10 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.updateOffersWorkflow = exports.updateOffersWorkflowId = void 0;
|
|
4
4
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
5
|
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
6
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
-
const types_1 = require("@mercurjs/types");
|
|
8
6
|
const steps_1 = require("../steps");
|
|
9
|
-
const
|
|
7
|
+
const upsert_offer_prices_1 = require("./upsert-offer-prices");
|
|
10
8
|
const events_1 = require("../../events");
|
|
11
9
|
exports.updateOffersWorkflowId = "update-offers";
|
|
12
10
|
exports.updateOffersWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.updateOffersWorkflowId, function (input) {
|
|
@@ -21,140 +19,13 @@ exports.updateOffersWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.updat
|
|
|
21
19
|
metadata: o.metadata,
|
|
22
20
|
})));
|
|
23
21
|
const offers = (0, steps_1.updateOffersStep)(rowUpdates);
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"variant_id",
|
|
32
|
-
"product_variant.price_set.id",
|
|
33
|
-
"prices.id",
|
|
34
|
-
"prices.amount",
|
|
35
|
-
"prices.currency_code",
|
|
36
|
-
"prices.min_quantity",
|
|
37
|
-
"prices.max_quantity",
|
|
38
|
-
"prices.price_rules.attribute",
|
|
39
|
-
"prices.price_rules.value",
|
|
40
|
-
],
|
|
41
|
-
filters: { id: offersWithPriceUpdates },
|
|
42
|
-
}).config({ name: "get-offer-prices" });
|
|
43
|
-
const pricingDiff = (0, workflows_sdk_1.transform)({ input, offerRows }, ({ input, offerRows }) => {
|
|
44
|
-
const offerById = new Map(offerRows.map((o) => [o.id, o]));
|
|
45
|
-
const priceSetUpserts = [];
|
|
46
|
-
const toRemoveIds = [];
|
|
47
|
-
const newPriceOwners = [];
|
|
48
|
-
const removedLinks = [];
|
|
49
|
-
for (const offer of input.offers) {
|
|
50
|
-
if (!Array.isArray(offer.prices)) {
|
|
51
|
-
continue;
|
|
52
|
-
}
|
|
53
|
-
const loaded = offerById.get(offer.id);
|
|
54
|
-
if (!loaded) {
|
|
55
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Offer ${offer.id} was not found`);
|
|
56
|
-
}
|
|
57
|
-
const priceSetId = loaded.product_variant?.price_set?.id;
|
|
58
|
-
if (!priceSetId) {
|
|
59
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Variant ${loaded.variant_id} has no PriceSet`);
|
|
60
|
-
}
|
|
61
|
-
// `prices` comes through the offer <-> price link, so a link row
|
|
62
|
-
// whose price no longer resolves yields a null element. Such a
|
|
63
|
-
// dangling link takes no part in the diff.
|
|
64
|
-
const ownedIds = new Set((loaded.prices ?? [])
|
|
65
|
-
.filter((p) => !!p?.id)
|
|
66
|
-
.map((p) => p.id));
|
|
67
|
-
const incomingIds = offer.prices
|
|
68
|
-
.map((p) => p.id)
|
|
69
|
-
.filter((id) => !!id);
|
|
70
|
-
(0, utils_2.assertOfferPriceOwnership)({
|
|
71
|
-
offer_id: offer.id,
|
|
72
|
-
price_ids: incomingIds,
|
|
73
|
-
owned_price_ids: ownedIds,
|
|
74
|
-
});
|
|
75
|
-
const keepIds = new Set(incomingIds);
|
|
76
|
-
for (const ownedId of ownedIds) {
|
|
77
|
-
if (!keepIds.has(ownedId)) {
|
|
78
|
-
toRemoveIds.push(ownedId);
|
|
79
|
-
removedLinks.push({
|
|
80
|
-
[types_1.MercurModules.OFFER]: { offer_id: offer.id },
|
|
81
|
-
[utils_1.Modules.PRICING]: { price_id: ownedId },
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
const upsertPrices = offer.prices.map((p) => {
|
|
86
|
-
const base = {
|
|
87
|
-
amount: p.amount,
|
|
88
|
-
currency_code: p.currency_code,
|
|
89
|
-
rules: { ...(p.rules ?? {}), offer_id: offer.id },
|
|
90
|
-
};
|
|
91
|
-
if (p.id) {
|
|
92
|
-
base.id = p.id;
|
|
93
|
-
}
|
|
94
|
-
if (p.min_quantity !== undefined && p.min_quantity !== null) {
|
|
95
|
-
base.min_quantity = p.min_quantity;
|
|
96
|
-
}
|
|
97
|
-
if (p.max_quantity !== undefined && p.max_quantity !== null) {
|
|
98
|
-
base.max_quantity = p.max_quantity;
|
|
99
|
-
}
|
|
100
|
-
return base;
|
|
101
|
-
});
|
|
102
|
-
const newRowCount = offer.prices.filter((p) => !p.id).length;
|
|
103
|
-
priceSetUpserts.push({
|
|
104
|
-
id: priceSetId,
|
|
105
|
-
prices: upsertPrices,
|
|
106
|
-
});
|
|
107
|
-
if (newRowCount > 0) {
|
|
108
|
-
newPriceOwners.push({
|
|
109
|
-
offer_id: offer.id,
|
|
110
|
-
priceSetId,
|
|
111
|
-
newRowCount,
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
return {
|
|
116
|
-
price_sets: priceSetUpserts,
|
|
117
|
-
toRemoveIds,
|
|
118
|
-
newPriceOwners,
|
|
119
|
-
removedLinks,
|
|
120
|
-
};
|
|
121
|
-
});
|
|
122
|
-
const priceSetsPayload = (0, workflows_sdk_1.transform)({ pricingDiff }, ({ pricingDiff }) => ({ price_sets: pricingDiff.price_sets }));
|
|
123
|
-
const upsertedPriceSets = (0, core_flows_1.updatePriceSetsStep)(priceSetsPayload);
|
|
124
|
-
const toRemoveIds = (0, workflows_sdk_1.transform)({ pricingDiff }, ({ pricingDiff }) => pricingDiff.toRemoveIds);
|
|
125
|
-
const removedLinks = (0, workflows_sdk_1.transform)({ pricingDiff }, ({ pricingDiff }) => pricingDiff.removedLinks);
|
|
126
|
-
// Dismiss the links before deleting the prices: a failure between the two
|
|
127
|
-
// then leaves an orphaned price rather than a dangling link, which would
|
|
128
|
-
// make the offer permanently unupdatable.
|
|
129
|
-
(0, core_flows_1.dismissRemoteLinkStep)(removedLinks).config({
|
|
130
|
-
name: "dismiss-removed-offer-price-links",
|
|
131
|
-
});
|
|
132
|
-
(0, steps_1.removeOfferPricesStep)(toRemoveIds);
|
|
133
|
-
const newLinks = (0, workflows_sdk_1.transform)({ pricingDiff, upsertedPriceSets }, ({ pricingDiff, upsertedPriceSets }) => {
|
|
134
|
-
if (!pricingDiff.newPriceOwners.length) {
|
|
135
|
-
return [];
|
|
136
|
-
}
|
|
137
|
-
const priceSetById = new Map((upsertedPriceSets ?? []).map((ps) => [ps.id, ps]));
|
|
138
|
-
const links = [];
|
|
139
|
-
for (const owner of pricingDiff.newPriceOwners) {
|
|
140
|
-
const set = priceSetById.get(owner.priceSetId);
|
|
141
|
-
if (!set)
|
|
142
|
-
continue;
|
|
143
|
-
const matchingPrices = (set.prices ?? []).filter((price) => {
|
|
144
|
-
const rules = price.price_rules ?? [];
|
|
145
|
-
return rules.some((r) => r.attribute === "offer_id" && r.value === owner.offer_id);
|
|
146
|
-
});
|
|
147
|
-
for (const price of matchingPrices) {
|
|
148
|
-
links.push({
|
|
149
|
-
[types_1.MercurModules.OFFER]: { offer_id: owner.offer_id },
|
|
150
|
-
[utils_1.Modules.PRICING]: { price_id: price.id },
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return links;
|
|
155
|
-
});
|
|
156
|
-
(0, core_flows_1.createRemoteLinkStep)(newLinks).config({
|
|
157
|
-
name: "create-new-offer-price-links",
|
|
22
|
+
const offerPrices = (0, workflows_sdk_1.transform)({ input }, ({ input }) => ({
|
|
23
|
+
offers: input.offers
|
|
24
|
+
.filter((o) => Array.isArray(o.prices))
|
|
25
|
+
.map((o) => ({ id: o.id, prices: o.prices ?? [] })),
|
|
26
|
+
}));
|
|
27
|
+
(0, workflows_sdk_1.when)({ offerPrices }, ({ offerPrices }) => offerPrices.offers.length > 0).then(() => {
|
|
28
|
+
upsert_offer_prices_1.upsertOfferPricesWorkflow.runAsStep({ input: offerPrices });
|
|
158
29
|
});
|
|
159
30
|
const eventData = (0, workflows_sdk_1.transform)({ offers }, ({ offers }) => offers.map((o) => ({ id: o.id, product_id: o.product_id })));
|
|
160
31
|
(0, core_flows_1.emitEventStep)({
|
|
@@ -169,4 +40,4 @@ exports.updateOffersWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.updat
|
|
|
169
40
|
hooks: [validate, offersUpdated],
|
|
170
41
|
});
|
|
171
42
|
});
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLW9mZmVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvb2ZmZXIvd29ya2Zsb3dzL3VwZGF0ZS1vZmZlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBUTBDO0FBRTFDLDREQUEyRDtBQUczRCxvQ0FBMkM7QUFDM0MsK0RBQWlFO0FBQ2pFLHlDQUFrRDtBQWtCckMsUUFBQSxzQkFBc0IsR0FBRyxlQUFlLENBQUE7QUFFeEMsUUFBQSxvQkFBb0IsR0FJN0IsSUFBQSw4QkFBYyxFQUNoQiw4QkFBc0IsRUFDdEIsVUFBVSxLQUFnQztJQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFBLDBCQUFVLEVBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUVsRCxNQUFNLFVBQVUsR0FBRyxJQUFBLHlCQUFTLEVBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQ2pELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHO1FBQ1YsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQjtRQUMxQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsZ0JBQWdCO1FBQ3BDLGVBQWUsRUFBRSxDQUFDLENBQUMsZUFBZTtRQUNsQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsZ0JBQWdCO1FBQ3BDLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtLQUNyQixDQUFDLENBQUMsQ0FDSixDQUFBO0lBRUQsTUFBTSxNQUFNLEdBQUcsSUFBQSx3QkFBZ0IsRUFBQyxVQUFVLENBQUMsQ0FBQTtJQUUzQyxNQUFNLFdBQVcsR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkQsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO2FBQ2pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztLQUN0RCxDQUFDLENBQUMsQ0FBQTtJQUVILElBQUEsb0JBQUksRUFBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM1RSxHQUFHLEVBQUU7UUFDSCwrQ0FBeUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUM3RCxDQUFDLENBQ0YsQ0FBQTtJQUVELE1BQU0sU0FBUyxHQUFHLElBQUEseUJBQVMsRUFBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQ3JELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FDNUQsQ0FBQTtJQUVELElBQUEsMEJBQWEsRUFBQztRQUNaLFNBQVMsRUFBRSw0QkFBbUIsQ0FBQyxPQUFPO1FBQ3RDLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUMsQ0FBQTtJQUVGLE1BQU0sYUFBYSxHQUFHLElBQUEsMEJBQVUsRUFBQyxlQUFlLEVBQUU7UUFDaEQsTUFBTTtRQUNOLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtLQUN2QyxDQUFDLENBQUE7SUFFRixPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxFQUFFO1FBQ2xDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUM7S0FDakMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { UpsertOfferPriceDTO } from "@mercurjs/types";
|
|
2
|
+
export type UpsertOfferPricesWorkflowInput = {
|
|
3
|
+
offers: {
|
|
4
|
+
id: string;
|
|
5
|
+
prices: UpsertOfferPriceDTO[];
|
|
6
|
+
}[];
|
|
7
|
+
};
|
|
8
|
+
export declare const upsertOfferPricesWorkflowId = "upsert-offer-prices";
|
|
9
|
+
/**
|
|
10
|
+
* Replaces each offer's own prices. Offers on the same variant share its
|
|
11
|
+
* PriceSet, so prices are upserted by id instead of rewriting the set, which
|
|
12
|
+
* would drop the prices of every other offer on the variant.
|
|
13
|
+
*/
|
|
14
|
+
export declare const upsertOfferPricesWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<UpsertOfferPricesWorkflowInput, import("../steps").AddOfferPricesStepOutput, []>;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.upsertOfferPricesWorkflow = exports.upsertOfferPricesWorkflowId = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const types_1 = require("@mercurjs/types");
|
|
8
|
+
const steps_1 = require("../steps");
|
|
9
|
+
const utils_2 = require("../utils");
|
|
10
|
+
exports.upsertOfferPricesWorkflowId = "upsert-offer-prices";
|
|
11
|
+
/**
|
|
12
|
+
* Replaces each offer's own prices. Offers on the same variant share its
|
|
13
|
+
* PriceSet, so prices are upserted by id instead of rewriting the set, which
|
|
14
|
+
* would drop the prices of every other offer on the variant.
|
|
15
|
+
*/
|
|
16
|
+
exports.upsertOfferPricesWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.upsertOfferPricesWorkflowId, function (input) {
|
|
17
|
+
const offerIds = (0, workflows_sdk_1.transform)({ input }, ({ input }) => input.offers.map((o) => o.id));
|
|
18
|
+
const { data: offerRows } = (0, core_flows_1.useQueryGraphStep)({
|
|
19
|
+
entity: "offer",
|
|
20
|
+
fields: [
|
|
21
|
+
"id",
|
|
22
|
+
"variant_id",
|
|
23
|
+
"product_variant.price_set.id",
|
|
24
|
+
"prices.id",
|
|
25
|
+
"prices.amount",
|
|
26
|
+
"prices.currency_code",
|
|
27
|
+
"prices.min_quantity",
|
|
28
|
+
"prices.max_quantity",
|
|
29
|
+
"prices.price_rules.attribute",
|
|
30
|
+
"prices.price_rules.value",
|
|
31
|
+
],
|
|
32
|
+
filters: { id: offerIds },
|
|
33
|
+
}).config({ name: "get-offer-prices" });
|
|
34
|
+
const pricingDiff = (0, workflows_sdk_1.transform)({ input, offerRows }, ({ input, offerRows }) => {
|
|
35
|
+
const offerById = new Map(offerRows.map((o) => [o.id, o]));
|
|
36
|
+
const addPricesPayload = [];
|
|
37
|
+
const toRemoveIds = [];
|
|
38
|
+
const removedLinks = [];
|
|
39
|
+
for (const offer of input.offers) {
|
|
40
|
+
const loaded = offerById.get(offer.id);
|
|
41
|
+
if (!loaded) {
|
|
42
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Offer ${offer.id} was not found`);
|
|
43
|
+
}
|
|
44
|
+
const priceSetId = loaded.product_variant?.price_set?.id;
|
|
45
|
+
if (!priceSetId) {
|
|
46
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Variant ${loaded.variant_id} has no PriceSet`);
|
|
47
|
+
}
|
|
48
|
+
// `prices` comes through the offer <-> price link, so a link row
|
|
49
|
+
// whose price no longer resolves yields a null element. Such a
|
|
50
|
+
// dangling link takes no part in the diff.
|
|
51
|
+
const ownedIds = new Set((loaded.prices ?? [])
|
|
52
|
+
.filter((p) => !!p?.id)
|
|
53
|
+
.map((p) => p.id));
|
|
54
|
+
const incomingIds = offer.prices
|
|
55
|
+
.map((p) => p.id)
|
|
56
|
+
.filter((id) => !!id);
|
|
57
|
+
(0, utils_2.assertOfferPriceOwnership)({
|
|
58
|
+
offer_id: offer.id,
|
|
59
|
+
price_ids: incomingIds,
|
|
60
|
+
owned_price_ids: ownedIds,
|
|
61
|
+
});
|
|
62
|
+
const keepIds = new Set(incomingIds);
|
|
63
|
+
for (const ownedId of ownedIds) {
|
|
64
|
+
if (!keepIds.has(ownedId)) {
|
|
65
|
+
toRemoveIds.push(ownedId);
|
|
66
|
+
removedLinks.push({
|
|
67
|
+
[types_1.MercurModules.OFFER]: { offer_id: offer.id },
|
|
68
|
+
[utils_1.Modules.PRICING]: { price_id: ownedId },
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const upsertPrices = offer.prices.map((p) => {
|
|
73
|
+
const base = {
|
|
74
|
+
amount: p.amount,
|
|
75
|
+
currency_code: p.currency_code,
|
|
76
|
+
rules: { ...(p.rules ?? {}), offer_id: offer.id },
|
|
77
|
+
};
|
|
78
|
+
if (p.id) {
|
|
79
|
+
base.id = p.id;
|
|
80
|
+
}
|
|
81
|
+
if (p.min_quantity !== undefined && p.min_quantity !== null) {
|
|
82
|
+
base.min_quantity = p.min_quantity;
|
|
83
|
+
}
|
|
84
|
+
if (p.max_quantity !== undefined && p.max_quantity !== null) {
|
|
85
|
+
base.max_quantity = p.max_quantity;
|
|
86
|
+
}
|
|
87
|
+
return base;
|
|
88
|
+
});
|
|
89
|
+
if (upsertPrices.length) {
|
|
90
|
+
addPricesPayload.push({
|
|
91
|
+
priceSetId,
|
|
92
|
+
prices: upsertPrices,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
addPricesPayload,
|
|
98
|
+
toRemoveIds,
|
|
99
|
+
removedLinks,
|
|
100
|
+
};
|
|
101
|
+
});
|
|
102
|
+
const toRemoveIds = (0, workflows_sdk_1.transform)({ pricingDiff }, ({ pricingDiff }) => pricingDiff.toRemoveIds);
|
|
103
|
+
const removedLinks = (0, workflows_sdk_1.transform)({ pricingDiff }, ({ pricingDiff }) => pricingDiff.removedLinks);
|
|
104
|
+
// Dismiss the links before deleting the prices: a failure between the two
|
|
105
|
+
// then leaves an orphaned price rather than a dangling link, which would
|
|
106
|
+
// make the offer permanently unupdatable.
|
|
107
|
+
(0, core_flows_1.dismissRemoteLinkStep)(removedLinks).config({
|
|
108
|
+
name: "dismiss-removed-offer-price-links",
|
|
109
|
+
});
|
|
110
|
+
(0, steps_1.removeOfferPricesStep)(toRemoveIds);
|
|
111
|
+
const addPricesPayload = (0, workflows_sdk_1.transform)({ pricingDiff }, ({ pricingDiff }) => pricingDiff.addPricesPayload);
|
|
112
|
+
const addedPrices = (0, steps_1.addOfferPricesStep)(addPricesPayload);
|
|
113
|
+
const newLinks = (0, workflows_sdk_1.transform)({ addedPrices }, ({ addedPrices }) => {
|
|
114
|
+
const links = [];
|
|
115
|
+
for (const entry of addedPrices) {
|
|
116
|
+
for (const priceId of entry.price_ids) {
|
|
117
|
+
links.push({
|
|
118
|
+
[types_1.MercurModules.OFFER]: { offer_id: entry.offer_id },
|
|
119
|
+
[utils_1.Modules.PRICING]: { price_id: priceId },
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return links;
|
|
124
|
+
});
|
|
125
|
+
(0, core_flows_1.createRemoteLinkStep)(newLinks).config({
|
|
126
|
+
name: "create-new-offer-price-links",
|
|
127
|
+
});
|
|
128
|
+
return new workflows_sdk_1.WorkflowResponse(addedPrices);
|
|
129
|
+
});
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBzZXJ0LW9mZmVyLXByaWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvb2ZmZXIvd29ya2Zsb3dzL3Vwc2VydC1vZmZlci1wcmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBSzBDO0FBRTFDLDREQUlvQztBQUNwQyxxREFBZ0U7QUFDaEUsMkNBQW9FO0FBRXBFLG9DQUlpQjtBQUNqQixvQ0FBb0Q7QUFTdkMsUUFBQSwyQkFBMkIsR0FBRyxxQkFBcUIsQ0FBQTtBQUVoRTs7OztHQUlHO0FBQ1UsUUFBQSx5QkFBeUIsR0FBRyxJQUFBLDhCQUFjLEVBQ3JELG1DQUEyQixFQUMzQixVQUFVLEtBQW1EO0lBQzNELE1BQU0sUUFBUSxHQUFHLElBQUEseUJBQVMsRUFBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQ2xELEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQzlCLENBQUE7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDNUMsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUU7WUFDTixJQUFJO1lBQ0osWUFBWTtZQUNaLDhCQUE4QjtZQUM5QixXQUFXO1lBQ1gsZUFBZTtZQUNmLHNCQUFzQjtZQUN0QixxQkFBcUI7WUFDckIscUJBQXFCO1lBQ3JCLDhCQUE4QjtZQUM5QiwwQkFBMEI7U0FDM0I7UUFDRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFO0tBQzFCLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFBO0lBRXZDLE1BQU0sV0FBVyxHQUFHLElBQUEseUJBQVMsRUFDM0IsRUFB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mercurjs/core",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.6-canary.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/mercurjs/mercur",
|
|
@@ -54,14 +54,14 @@
|
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"cors": "^2.8.5",
|
|
57
|
-
"@medusajs/core-flows": "2.
|
|
58
|
-
"@medusajs/cli": "2.
|
|
59
|
-
"@medusajs/framework": "2.
|
|
60
|
-
"@medusajs/icons": "2.
|
|
61
|
-
"@medusajs/medusa": "2.
|
|
62
|
-
"@medusajs/test-utils": "2.
|
|
57
|
+
"@medusajs/core-flows": "2.21.0",
|
|
58
|
+
"@medusajs/cli": "2.21.0",
|
|
59
|
+
"@medusajs/framework": "2.21.0",
|
|
60
|
+
"@medusajs/icons": "2.21.0",
|
|
61
|
+
"@medusajs/medusa": "2.21.0",
|
|
62
|
+
"@medusajs/test-utils": "2.21.0",
|
|
63
63
|
"@medusajs/ui": "4.2.3",
|
|
64
|
-
"@mercurjs/types": "2.3.
|
|
64
|
+
"@mercurjs/types": "2.3.6-canary.0",
|
|
65
65
|
"@swc/core": "^1.7.28",
|
|
66
66
|
"@types/cors": "^2.8.17",
|
|
67
67
|
"@types/express": "^4.17.21",
|
|
@@ -76,19 +76,19 @@
|
|
|
76
76
|
"tsx": "^4.19.2",
|
|
77
77
|
"typescript": "5.9.3",
|
|
78
78
|
"yalc": "^1.0.0-pre.53",
|
|
79
|
-
"@medusajs/types": "2.
|
|
79
|
+
"@medusajs/types": "2.21.0",
|
|
80
80
|
"multer": "^2.0.2",
|
|
81
81
|
"http-proxy-middleware": "^3.0.3",
|
|
82
|
-
"jsonwebtoken": "^9.0.
|
|
83
|
-
"@mercurjs/cli": "2.3.
|
|
82
|
+
"jsonwebtoken": "^9.0.3",
|
|
83
|
+
"@mercurjs/cli": "2.3.6-canary.0"
|
|
84
84
|
},
|
|
85
85
|
"peerDependencies": {
|
|
86
|
-
"@medusajs/admin-sdk": ">=2.
|
|
87
|
-
"@medusajs/cli": ">=2.
|
|
88
|
-
"@medusajs/framework": ">=2.
|
|
89
|
-
"@medusajs/icons": ">=2.
|
|
90
|
-
"@medusajs/medusa": ">=2.
|
|
91
|
-
"@medusajs/test-utils": ">=2.
|
|
86
|
+
"@medusajs/admin-sdk": ">=2.21.0",
|
|
87
|
+
"@medusajs/cli": ">=2.21.0",
|
|
88
|
+
"@medusajs/framework": ">=2.21.0",
|
|
89
|
+
"@medusajs/icons": ">=2.21.0",
|
|
90
|
+
"@medusajs/medusa": ">=2.21.0",
|
|
91
|
+
"@medusajs/test-utils": ">=2.21.0",
|
|
92
92
|
"express": "^4.21.0"
|
|
93
93
|
},
|
|
94
94
|
"engines": {
|