@mercurjs/core 2.3.6-canary.8 → 2.3.6
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/order-groups/route.js +3 -3
- package/.medusa/server/src/api/utils/scan-unauthenticated-routes.js +4 -2
- package/.medusa/server/src/api/utils/split-order-payment-status.d.ts +3 -1
- package/.medusa/server/src/api/utils/split-order-payment-status.js +25 -21
- package/.medusa/server/src/api/vendor/payments/helpers.js +22 -16
- package/.medusa/server/src/api/vendor/sellers/select/route.js +5 -3
- package/.medusa/server/src/modules/codegen/services/codegen-module-service.d.ts +0 -2
- package/.medusa/server/src/modules/codegen/services/codegen-module-service.js +8 -29
- package/.medusa/server/src/modules/codegen/utils.d.ts +4 -0
- package/.medusa/server/src/modules/codegen/utils.js +79 -0
- package/.medusa/server/src/modules/seller/repositories/order-group.js +36 -16
- package/.medusa/server/src/patches/index.d.ts +2 -1
- package/.medusa/server/src/patches/index.js +6 -3
- package/.medusa/server/src/patches/manifest.js +12 -3
- package/.medusa/server/src/patches/patches/@medusajs+core-flows@2.20.1-delivery-hook.patch +39 -0
- package/.medusa/server/src/subscribers/split-order-canceled.d.ts +5 -0
- package/.medusa/server/src/subscribers/split-order-canceled.js +24 -0
- package/.medusa/server/src/subscribers/split-order-payment-captured.d.ts +5 -0
- package/.medusa/server/src/subscribers/split-order-payment-captured.js +24 -0
- package/.medusa/server/src/workflows/cart/workflows/complete-cart-with-split-orders.js +17 -30
- package/.medusa/server/src/workflows/offer/workflows/create-offers.js +34 -4
- package/.medusa/server/src/workflows/order/workflows/fulfillment-hooks.d.ts +9 -0
- package/.medusa/server/src/workflows/order/workflows/fulfillment-hooks.js +9 -0
- package/.medusa/server/src/workflows/order/workflows/index.d.ts +1 -0
- package/.medusa/server/src/workflows/order/workflows/index.js +2 -1
- package/.medusa/server/src/workflows/order-group/workflows/get-order-group-detail.js +8 -8
- package/.medusa/server/src/workflows/order-group/workflows/get-order-groups-list.js +8 -8
- package/.medusa/server/src/workflows/payment/index.d.ts +2 -0
- package/.medusa/server/src/workflows/payment/index.js +3 -1
- package/.medusa/server/src/workflows/payment/steps/create-order-payments.d.ts +44 -0
- package/.medusa/server/src/workflows/payment/steps/create-order-payments.js +48 -0
- package/.medusa/server/src/workflows/payment/steps/index.d.ts +2 -0
- package/.medusa/server/src/workflows/payment/steps/index.js +19 -0
- package/.medusa/server/src/workflows/payment/steps/record-payment-captures.d.ts +29 -0
- package/.medusa/server/src/workflows/payment/steps/record-payment-captures.js +28 -0
- package/.medusa/server/src/workflows/payment/utils/index.d.ts +2 -0
- package/.medusa/server/src/workflows/payment/utils/index.js +19 -0
- package/.medusa/server/src/workflows/payment/utils/split-order-payment-group.d.ts +141 -0
- package/.medusa/server/src/workflows/payment/utils/split-order-payment-group.js +234 -0
- package/.medusa/server/src/workflows/payment/utils/split-order-payment.d.ts +15 -0
- package/.medusa/server/src/workflows/payment/utils/split-order-payment.js +65 -0
- package/.medusa/server/src/workflows/payment/workflows/index.d.ts +1 -0
- package/.medusa/server/src/workflows/payment/workflows/index.js +2 -1
- package/.medusa/server/src/workflows/payment/workflows/split-order-payments.d.ts +66 -0
- package/.medusa/server/src/workflows/payment/workflows/split-order-payments.js +164 -0
- package/package.json +11 -11
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.allocateProportionally = exports.getCurrencyDecimalDigits = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const DEFAULT_DECIMAL_DIGITS = 2;
|
|
6
|
+
const getCurrencyDecimalDigits = (currencyCode) => {
|
|
7
|
+
const currency = utils_1.defaultCurrencies[(currencyCode ?? "").toUpperCase()];
|
|
8
|
+
return currency?.decimal_digits ?? DEFAULT_DECIMAL_DIGITS;
|
|
9
|
+
};
|
|
10
|
+
exports.getCurrencyDecimalDigits = getCurrencyDecimalDigits;
|
|
11
|
+
const floorTo = (value, decimalDigits) => {
|
|
12
|
+
const rounded = utils_1.MathBN.convert(value, decimalDigits);
|
|
13
|
+
if (utils_1.MathBN.lte(rounded, value)) {
|
|
14
|
+
return rounded;
|
|
15
|
+
}
|
|
16
|
+
return utils_1.MathBN.sub(rounded, utils_1.MathBN.div(1, utils_1.MathBN.convert(10).pow(decimalDigits)));
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Splits `amount` across `weights` proportionally. Shares are rounded down to
|
|
20
|
+
* the currency precision and the remainder is handed out one minor unit at a
|
|
21
|
+
* time to the largest fractions, so the shares always sum exactly to `amount`.
|
|
22
|
+
*/
|
|
23
|
+
const allocateProportionally = ({ amount, weights, decimalDigits, }) => {
|
|
24
|
+
if (!weights.length) {
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
const total = utils_1.MathBN.convert(amount);
|
|
28
|
+
const positiveWeights = weights.map((weight) => utils_1.MathBN.max(utils_1.MathBN.convert(weight), 0));
|
|
29
|
+
const weightSum = positiveWeights.reduce((acc, weight) => utils_1.MathBN.add(acc, weight), utils_1.MathBN.convert(0));
|
|
30
|
+
const effectiveWeights = utils_1.MathBN.gt(weightSum, 0)
|
|
31
|
+
? positiveWeights
|
|
32
|
+
: positiveWeights.map(() => utils_1.MathBN.convert(1));
|
|
33
|
+
const effectiveSum = utils_1.MathBN.gt(weightSum, 0)
|
|
34
|
+
? weightSum
|
|
35
|
+
: utils_1.MathBN.convert(effectiveWeights.length);
|
|
36
|
+
const unit = utils_1.MathBN.div(1, utils_1.MathBN.convert(10).pow(decimalDigits));
|
|
37
|
+
const exact = effectiveWeights.map((weight) => utils_1.MathBN.div(utils_1.MathBN.mult(total, weight), effectiveSum));
|
|
38
|
+
const shares = exact.map((share) => floorTo(share, decimalDigits));
|
|
39
|
+
let leftover = utils_1.MathBN.sub(total, shares.reduce((acc, share) => utils_1.MathBN.add(acc, share), utils_1.MathBN.convert(0)));
|
|
40
|
+
const byLargestFraction = exact
|
|
41
|
+
.map((share, index) => ({
|
|
42
|
+
index,
|
|
43
|
+
fraction: utils_1.MathBN.sub(share, shares[index]),
|
|
44
|
+
}))
|
|
45
|
+
.sort((a, b) => utils_1.MathBN.eq(a.fraction, b.fraction)
|
|
46
|
+
? a.index - b.index
|
|
47
|
+
: utils_1.MathBN.gt(a.fraction, b.fraction)
|
|
48
|
+
? -1
|
|
49
|
+
: 1);
|
|
50
|
+
for (const { index } of byLargestFraction) {
|
|
51
|
+
if (utils_1.MathBN.lt(leftover, unit)) {
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
shares[index] = utils_1.MathBN.add(shares[index], unit);
|
|
55
|
+
leftover = utils_1.MathBN.sub(leftover, unit);
|
|
56
|
+
}
|
|
57
|
+
// Only reachable when `amount` itself is finer than the currency precision.
|
|
58
|
+
if (utils_1.MathBN.gt(leftover, 0)) {
|
|
59
|
+
const { index } = byLargestFraction[0];
|
|
60
|
+
shares[index] = utils_1.MathBN.add(shares[index], leftover);
|
|
61
|
+
}
|
|
62
|
+
return shares;
|
|
63
|
+
};
|
|
64
|
+
exports.allocateProportionally = allocateProportionally;
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtb3JkZXItcGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcGF5bWVudC91dGlscy9zcGxpdC1vcmRlci1wYXltZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUFxRTtBQUlyRSxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQTtBQUV6QixNQUFNLHdCQUF3QixHQUFHLENBQUMsWUFBNEIsRUFBRSxFQUFFO0lBQ3ZFLE1BQU0sUUFBUSxHQUFHLHlCQUFpQixDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDdEUsT0FBTyxRQUFRLEVBQUUsY0FBYyxJQUFJLHNCQUFzQixDQUFBO0FBQzNELENBQUMsQ0FBQTtBQUhZLFFBQUEsd0JBQXdCLDRCQUdwQztBQUVELE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBcUIsRUFBRSxhQUFxQixFQUFFLEVBQUU7SUFDL0QsTUFBTSxPQUFPLEdBQUcsY0FBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUE7SUFDcEQsSUFBSSxjQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQy9CLE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFDRCxPQUFPLGNBQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLGNBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLGNBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNsRixDQUFDLENBQUE7QUFFRDs7OztHQUlHO0FBQ0ksTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEVBQ3JDLE1BQU0sRUFDTixPQUFPLEVBQ1AsYUFBYSxHQUtkLEVBQW9CLEVBQUU7SUFDckIsSUFBSSxDQUFDLE9BQU8s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
|
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./process-payment"), exports);
|
|
18
18
|
__exportStar(require("./payment-hooks"), exports);
|
|
19
|
-
|
|
19
|
+
__exportStar(require("./split-order-payments"), exports);
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3BheW1lbnQvd29ya2Zsb3dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBaUM7QUFDakMsa0RBQStCO0FBQy9CLHlEQUFzQyJ9
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The cart whose payment to split.
|
|
3
|
+
*/
|
|
4
|
+
export type SplitCapturedCartPaymentWorkflowInput = {
|
|
5
|
+
/**
|
|
6
|
+
* The ID of the cart.
|
|
7
|
+
*/
|
|
8
|
+
cart_id: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const splitCapturedCartPaymentWorkflowId = "split-captured-cart-payment";
|
|
11
|
+
/**
|
|
12
|
+
* This workflow splits a captured cart payment between the orders of the
|
|
13
|
+
* cart. Every order gets a payment collection of its own, linked to the order,
|
|
14
|
+
* with a captured payment for the order's share on the cart payment's provider
|
|
15
|
+
* and pointing at the same charge, so Medusa's refund and cancel workflows
|
|
16
|
+
* apply to the order. What was charged for orders canceled before the capture
|
|
17
|
+
* is refunded against the cart payment.
|
|
18
|
+
*
|
|
19
|
+
* The workflow only adds what is missing: it does nothing until the cart
|
|
20
|
+
* payment has a capture, and nothing when run again for the same capture.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* const { result } = await splitCapturedCartPaymentWorkflow(container)
|
|
24
|
+
* .run({
|
|
25
|
+
* input: {
|
|
26
|
+
* cart_id: "cart_123",
|
|
27
|
+
* }
|
|
28
|
+
* })
|
|
29
|
+
*
|
|
30
|
+
* @summary
|
|
31
|
+
*
|
|
32
|
+
* Split a captured cart payment into a payment per order.
|
|
33
|
+
*/
|
|
34
|
+
export declare const splitCapturedCartPaymentWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<SplitCapturedCartPaymentWorkflowInput, import("@medusajs/types").PaymentDTO[], []>;
|
|
35
|
+
/**
|
|
36
|
+
* The cart whose payment to void.
|
|
37
|
+
*/
|
|
38
|
+
export type VoidCanceledCartPaymentWorkflowInput = {
|
|
39
|
+
/**
|
|
40
|
+
* The ID of the cart.
|
|
41
|
+
*/
|
|
42
|
+
cart_id: string;
|
|
43
|
+
};
|
|
44
|
+
export declare const voidCanceledCartPaymentWorkflowId = "void-canceled-cart-payment";
|
|
45
|
+
/**
|
|
46
|
+
* This workflow voids a cart's payment once every order of the cart is
|
|
47
|
+
* canceled. Until it is captured, the authorization is shared by the cart's
|
|
48
|
+
* orders, so canceling a single order leaves it in place. The workflow does
|
|
49
|
+
* nothing while an order is still open or once the payment is captured.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* const { result } = await voidCanceledCartPaymentWorkflow(container)
|
|
53
|
+
* .run({
|
|
54
|
+
* input: {
|
|
55
|
+
* cart_id: "cart_123",
|
|
56
|
+
* }
|
|
57
|
+
* })
|
|
58
|
+
*
|
|
59
|
+
* @summary
|
|
60
|
+
*
|
|
61
|
+
* Void a cart's payment when all of its orders are canceled.
|
|
62
|
+
*/
|
|
63
|
+
export declare const voidCanceledCartPaymentWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<VoidCanceledCartPaymentWorkflowInput, {
|
|
64
|
+
payment_ids: string[];
|
|
65
|
+
payment_collection_ids: string[];
|
|
66
|
+
}, []>;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.voidCanceledCartPaymentWorkflow = exports.voidCanceledCartPaymentWorkflowId = exports.splitCapturedCartPaymentWorkflow = exports.splitCapturedCartPaymentWorkflowId = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
7
|
+
const create_order_payments_1 = require("../steps/create-order-payments");
|
|
8
|
+
const record_payment_captures_1 = require("../steps/record-payment-captures");
|
|
9
|
+
const utils_2 = require("../utils");
|
|
10
|
+
const LOCK_TIMEOUT_SECONDS = 30;
|
|
11
|
+
const LOCK_TTL_SECONDS = 120;
|
|
12
|
+
const toOrders = (links) => links.flatMap((link) => link.order ?? []);
|
|
13
|
+
exports.splitCapturedCartPaymentWorkflowId = "split-captured-cart-payment";
|
|
14
|
+
/**
|
|
15
|
+
* This workflow splits a captured cart payment between the orders of the
|
|
16
|
+
* cart. Every order gets a payment collection of its own, linked to the order,
|
|
17
|
+
* with a captured payment for the order's share on the cart payment's provider
|
|
18
|
+
* and pointing at the same charge, so Medusa's refund and cancel workflows
|
|
19
|
+
* apply to the order. What was charged for orders canceled before the capture
|
|
20
|
+
* is refunded against the cart payment.
|
|
21
|
+
*
|
|
22
|
+
* The workflow only adds what is missing: it does nothing until the cart
|
|
23
|
+
* payment has a capture, and nothing when run again for the same capture.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* const { result } = await splitCapturedCartPaymentWorkflow(container)
|
|
27
|
+
* .run({
|
|
28
|
+
* input: {
|
|
29
|
+
* cart_id: "cart_123",
|
|
30
|
+
* }
|
|
31
|
+
* })
|
|
32
|
+
*
|
|
33
|
+
* @summary
|
|
34
|
+
*
|
|
35
|
+
* Split a captured cart payment into a payment per order.
|
|
36
|
+
*/
|
|
37
|
+
exports.splitCapturedCartPaymentWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.splitCapturedCartPaymentWorkflowId, (input) => {
|
|
38
|
+
// Not the cart id itself: checkout holds that lock while it runs this
|
|
39
|
+
// workflow as a step.
|
|
40
|
+
const lockKey = (0, workflows_sdk_1.transform)({ input }, ({ input }) => `split-order-payment:${input.cart_id}`);
|
|
41
|
+
(0, core_flows_1.acquireLockStep)({
|
|
42
|
+
key: lockKey,
|
|
43
|
+
timeout: LOCK_TIMEOUT_SECONDS,
|
|
44
|
+
ttl: LOCK_TTL_SECONDS,
|
|
45
|
+
});
|
|
46
|
+
const cartPaymentQuery = (0, core_flows_1.useQueryGraphStep)({
|
|
47
|
+
entity: "cart_payment_collection",
|
|
48
|
+
fields: utils_2.cartPaymentCollectionFields,
|
|
49
|
+
filters: { cart_id: input.cart_id },
|
|
50
|
+
}).config({ name: "get-cart-payment-collection" });
|
|
51
|
+
const cartOrdersQuery = (0, core_flows_1.useQueryGraphStep)({
|
|
52
|
+
entity: "order_cart",
|
|
53
|
+
fields: utils_2.cartOrderFields,
|
|
54
|
+
filters: { cart_id: input.cart_id },
|
|
55
|
+
}).config({ name: "get-cart-orders" });
|
|
56
|
+
const plan = (0, workflows_sdk_1.transform)({ cartPaymentQuery, cartOrdersQuery }, ({ cartPaymentQuery, cartOrdersQuery }) => (0, utils_2.planCartPaymentSplit)(cartPaymentQuery.data[0]
|
|
57
|
+
?.payment_collection, toOrders(cartOrdersQuery.data)));
|
|
58
|
+
const collections = (0, core_flows_1.createPaymentCollectionsStep)(plan.collections);
|
|
59
|
+
const links = (0, workflows_sdk_1.transform)({ plan, collections }, ({ plan, collections }) => (0, utils_2.buildOrderPaymentCollectionLinks)(plan, collections));
|
|
60
|
+
(0, core_flows_1.createRemoteLinkStep)(links).config({
|
|
61
|
+
name: "link-order-payment-collections",
|
|
62
|
+
});
|
|
63
|
+
const paymentsToCreate = (0, workflows_sdk_1.transform)({ plan, collections }, ({ plan, collections }) => {
|
|
64
|
+
const createdByOrder = new Map(plan.collections.map((collection, index) => [
|
|
65
|
+
collection.order_id,
|
|
66
|
+
collections[index].id,
|
|
67
|
+
]));
|
|
68
|
+
return plan.payments.map(({ order_id, ...payment }) => ({
|
|
69
|
+
...payment,
|
|
70
|
+
payment_collection_id: payment.payment_collection_id ??
|
|
71
|
+
createdByOrder.get(order_id),
|
|
72
|
+
}));
|
|
73
|
+
});
|
|
74
|
+
const payments = (0, create_order_payments_1.createOrderPaymentsStep)(paymentsToCreate);
|
|
75
|
+
const capturesToRecord = (0, workflows_sdk_1.transform)({ plan, payments }, ({ plan, payments }) => {
|
|
76
|
+
const createdByOrder = new Map(plan.payments.map((payment, index) => [
|
|
77
|
+
payment.order_id,
|
|
78
|
+
payments[index].id,
|
|
79
|
+
]));
|
|
80
|
+
return plan.captures.map((capture) => ({
|
|
81
|
+
payment_id: capture.payment_id ??
|
|
82
|
+
createdByOrder.get(capture.order_id),
|
|
83
|
+
amount: capture.amount,
|
|
84
|
+
}));
|
|
85
|
+
});
|
|
86
|
+
const capturedPayments = (0, record_payment_captures_1.recordPaymentCapturesStep)(capturesToRecord);
|
|
87
|
+
const orderTransactions = (0, workflows_sdk_1.transform)({ plan, capturedPayments }, ({ plan, capturedPayments }) => [
|
|
88
|
+
...plan.recorded.map((capture) => ({
|
|
89
|
+
order_id: capture.order_id,
|
|
90
|
+
amount: capture.amount,
|
|
91
|
+
currency_code: capture.currency_code,
|
|
92
|
+
reference: "capture",
|
|
93
|
+
reference_id: capture.capture_id,
|
|
94
|
+
})),
|
|
95
|
+
...capturedPayments.flatMap((payment, index) => (payment.captures ?? []).map((capture) => ({
|
|
96
|
+
order_id: plan.captures[index].order_id,
|
|
97
|
+
amount: capture.raw_amount ?? capture.amount,
|
|
98
|
+
currency_code: payment.currency_code,
|
|
99
|
+
reference: "capture",
|
|
100
|
+
reference_id: capture.id,
|
|
101
|
+
}))),
|
|
102
|
+
]);
|
|
103
|
+
(0, core_flows_1.addOrderTransactionStep)(orderTransactions);
|
|
104
|
+
(0, workflows_sdk_1.when)("flag-cart-payment-collection", { plan }, ({ plan }) => {
|
|
105
|
+
return !!plan.cart_payment_collection;
|
|
106
|
+
}).then(() => {
|
|
107
|
+
(0, core_flows_1.updatePaymentCollectionStep)({
|
|
108
|
+
selector: { id: plan.cart_payment_collection.id },
|
|
109
|
+
update: { metadata: plan.cart_payment_collection.metadata },
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
(0, core_flows_1.refundPaymentsStep)(plan.refunds);
|
|
113
|
+
const capturedEvents = (0, workflows_sdk_1.transform)({ capturedPayments }, ({ capturedPayments }) => capturedPayments.map((payment) => ({ id: payment.id })));
|
|
114
|
+
(0, core_flows_1.emitEventStep)({
|
|
115
|
+
eventName: utils_1.PaymentEvents.CAPTURED,
|
|
116
|
+
data: capturedEvents,
|
|
117
|
+
});
|
|
118
|
+
(0, core_flows_1.releaseLockStep)({ key: lockKey });
|
|
119
|
+
return new workflows_sdk_1.WorkflowResponse(capturedPayments);
|
|
120
|
+
});
|
|
121
|
+
exports.voidCanceledCartPaymentWorkflowId = "void-canceled-cart-payment";
|
|
122
|
+
/**
|
|
123
|
+
* This workflow voids a cart's payment once every order of the cart is
|
|
124
|
+
* canceled. Until it is captured, the authorization is shared by the cart's
|
|
125
|
+
* orders, so canceling a single order leaves it in place. The workflow does
|
|
126
|
+
* nothing while an order is still open or once the payment is captured.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* const { result } = await voidCanceledCartPaymentWorkflow(container)
|
|
130
|
+
* .run({
|
|
131
|
+
* input: {
|
|
132
|
+
* cart_id: "cart_123",
|
|
133
|
+
* }
|
|
134
|
+
* })
|
|
135
|
+
*
|
|
136
|
+
* @summary
|
|
137
|
+
*
|
|
138
|
+
* Void a cart's payment when all of its orders are canceled.
|
|
139
|
+
*/
|
|
140
|
+
exports.voidCanceledCartPaymentWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.voidCanceledCartPaymentWorkflowId, (input) => {
|
|
141
|
+
const cartPaymentQuery = (0, core_flows_1.useQueryGraphStep)({
|
|
142
|
+
entity: "cart_payment_collection",
|
|
143
|
+
fields: utils_2.cartPaymentCollectionFields,
|
|
144
|
+
filters: { cart_id: input.cart_id },
|
|
145
|
+
}).config({ name: "get-cart-payment-collection" });
|
|
146
|
+
const cartOrdersQuery = (0, core_flows_1.useQueryGraphStep)({
|
|
147
|
+
entity: "order_cart",
|
|
148
|
+
fields: utils_2.cartOrderFields,
|
|
149
|
+
filters: { cart_id: input.cart_id },
|
|
150
|
+
}).config({ name: "get-cart-orders" });
|
|
151
|
+
const plan = (0, workflows_sdk_1.transform)({ cartPaymentQuery, cartOrdersQuery }, ({ cartPaymentQuery, cartOrdersQuery }) => (0, utils_2.planCartPaymentVoid)(cartPaymentQuery.data[0]
|
|
152
|
+
?.payment_collection, toOrders(cartOrdersQuery.data)));
|
|
153
|
+
(0, core_flows_1.cancelPaymentStep)({ paymentIds: plan.payment_ids });
|
|
154
|
+
(0, workflows_sdk_1.when)("cancel-cart-payment-collection", { plan }, ({ plan }) => {
|
|
155
|
+
return plan.payment_collection_ids.length > 0;
|
|
156
|
+
}).then(() => {
|
|
157
|
+
(0, core_flows_1.updatePaymentCollectionStep)({
|
|
158
|
+
selector: { id: plan.payment_collection_ids },
|
|
159
|
+
update: { status: utils_1.PaymentCollectionStatus.CANCELED },
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
return new workflows_sdk_1.WorkflowResponse(plan);
|
|
163
|
+
});
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtb3JkZXItcGF5bWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3BheW1lbnQvd29ya2Zsb3dzL3NwbGl0LW9yZGVyLXBheW1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFrRjtBQUNsRixxRUFLMEM7QUFDMUMsNERBV29DO0FBRXBDLDBFQUF3RTtBQUN4RSw4RUFBNEU7QUFDNUUsb0NBUWlCO0FBWWpCLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFBO0FBQy9CLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFBO0FBUTVCLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQzFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUE7QUFFOUIsUUFBQSxrQ0FBa0MsR0FBRyw2QkFBNkIsQ0FBQTtBQUMvRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNVLFFBQUEsZ0NBQWdDLEdBQUcsSUFBQSw4QkFBYyxFQUM1RCwwQ0FBa0MsRUFDbEMsQ0FBQyxLQUE0QyxFQUFFLEVBQUU7SUFDL0Msc0VBQXNFO0lBQ3RFLHNCQUFzQjtJQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFBLHlCQUFTLEVBQ3ZCLEVBQUUsS0FBSyxFQUFFLEVBQ1QsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUN0RCxDQUFBO0lBRUQsSUFBQSw0QkFBZSxFQUFDO1FBQ2QsR0FBRyxFQUFFLE9BQU87UUFDWixPQUFPLEVBQUUsb0JBQW9CO1FBQzdCLEdBQUcsRUFBRSxnQkFBZ0I7S0FDdEIsQ0FBQyxDQUFBO0lBRUYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDhCQUFpQixFQUFDO1FBQ3pDLE1BQU0sRUFB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mercurjs/core",
|
|
3
|
-
"version": "2.3.6
|
|
3
|
+
"version": "2.3.6",
|
|
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.21.
|
|
58
|
-
"@medusajs/cli": "2.21.
|
|
59
|
-
"@medusajs/framework": "2.21.
|
|
60
|
-
"@medusajs/icons": "2.21.
|
|
61
|
-
"@medusajs/medusa": "2.21.
|
|
62
|
-
"@medusajs/test-utils": "2.21.
|
|
57
|
+
"@medusajs/core-flows": "2.21.2",
|
|
58
|
+
"@medusajs/cli": "2.21.2",
|
|
59
|
+
"@medusajs/framework": "2.21.2",
|
|
60
|
+
"@medusajs/icons": "2.21.2",
|
|
61
|
+
"@medusajs/medusa": "2.21.2",
|
|
62
|
+
"@medusajs/test-utils": "2.21.2",
|
|
63
63
|
"@medusajs/ui": "4.2.3",
|
|
64
|
-
"@mercurjs/types": "2.3.6
|
|
64
|
+
"@mercurjs/types": "2.3.6",
|
|
65
65
|
"@swc/core": "^1.7.28",
|
|
66
66
|
"@types/cors": "^2.8.17",
|
|
67
67
|
"@types/express": "^4.17.21",
|
|
@@ -77,11 +77,11 @@
|
|
|
77
77
|
"tsx": "^4.19.2",
|
|
78
78
|
"typescript": "5.9.3",
|
|
79
79
|
"yalc": "^1.0.0-pre.53",
|
|
80
|
-
"@medusajs/types": "2.21.
|
|
80
|
+
"@medusajs/types": "2.21.2",
|
|
81
81
|
"multer": "^2.0.2",
|
|
82
82
|
"http-proxy-middleware": "^3.0.3",
|
|
83
83
|
"jsonwebtoken": "^9.0.3",
|
|
84
|
-
"@mercurjs/cli": "2.3.6
|
|
84
|
+
"@mercurjs/cli": "2.3.6"
|
|
85
85
|
},
|
|
86
86
|
"peerDependencies": {
|
|
87
87
|
"@medusajs/admin-sdk": ">=2.21.0",
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"@orama/orama": "^3.1.18",
|
|
100
100
|
"pkg-dir": "4",
|
|
101
101
|
"resolve-cwd": "^3.0.0",
|
|
102
|
-
"sanitize-html": "2.17.
|
|
102
|
+
"sanitize-html": "2.17.7",
|
|
103
103
|
"zod": "4.6.5"
|
|
104
104
|
}
|
|
105
105
|
}
|