@mercurjs/core 2.3.8-canary.3 → 2.3.9-canary.1
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/offers/route.js +4 -2
- package/.medusa/server/src/api/admin/offers/validators.d.ts +14 -0
- package/.medusa/server/src/api/admin/offers/validators.js +2 -1
- package/.medusa/server/src/api/admin/order-groups/query-config.js +2 -1
- package/.medusa/server/src/api/admin/sellers/route.js +4 -2
- package/.medusa/server/src/api/admin/sellers/validators.d.ts +16 -2
- package/.medusa/server/src/api/admin/sellers/validators.js +4 -3
- package/.medusa/server/src/api/store/offers/[id]/route.js +5 -2
- package/.medusa/server/src/api/store/offers/helpers.d.ts +12 -0
- package/.medusa/server/src/api/store/offers/helpers.js +50 -4
- package/.medusa/server/src/api/store/offers/query-config.js +2 -1
- package/.medusa/server/src/api/store/offers/route.js +5 -2
- package/.medusa/server/src/api/store/order-groups/query-config.js +2 -1
- package/.medusa/server/src/api/store/products/[id]/route.js +2 -2
- package/.medusa/server/src/api/store/products/route.js +2 -2
- package/.medusa/server/src/api/utils/filter-by-seller-id.d.ts +14 -2
- package/.medusa/server/src/api/utils/filter-by-seller-id.js +28 -1
- package/.medusa/server/src/api/utils/sellers.js +5 -3
- package/.medusa/server/src/api/vendor/campaigns/middlewares.js +2 -10
- package/.medusa/server/src/api/vendor/customer-groups/middlewares.js +2 -10
- package/.medusa/server/src/api/vendor/customers/middlewares.js +2 -10
- package/.medusa/server/src/api/vendor/inventory-items/middlewares.js +2 -10
- package/.medusa/server/src/api/vendor/orders/middlewares.js +3 -11
- package/.medusa/server/src/api/vendor/payments/middlewares.js +8 -10
- package/.medusa/server/src/api/vendor/payout-accounts/middlewares.js +2 -10
- package/.medusa/server/src/api/vendor/payouts/middlewares.js +2 -10
- package/.medusa/server/src/api/vendor/price-lists/middlewares.js +2 -10
- package/.medusa/server/src/api/vendor/products/helpers.d.ts +4 -3
- package/.medusa/server/src/api/vendor/products/helpers.js +32 -20
- package/.medusa/server/src/api/vendor/products/middlewares.js +3 -3
- package/.medusa/server/src/api/vendor/promotions/middlewares.js +2 -10
- package/.medusa/server/src/api/vendor/regions/helpers.js +3 -3
- package/.medusa/server/src/api/vendor/returns/middlewares.js +2 -10
- package/.medusa/server/src/api/vendor/reviews/middlewares.js +2 -14
- package/.medusa/server/src/api/vendor/sales-channels/helpers.js +2 -2
- package/.medusa/server/src/api/vendor/sellers/validators.d.ts +1 -1
- package/.medusa/server/src/api/vendor/sellers/validators.js +2 -2
- package/.medusa/server/src/api/vendor/shipping-options/middlewares.js +2 -9
- package/.medusa/server/src/api/vendor/stock-locations/middlewares.js +2 -10
- package/.medusa/server/src/modules/commission/migrations/Migration20261021000000.d.ts +5 -0
- package/.medusa/server/src/modules/commission/migrations/Migration20261021000000.js +14 -0
- package/.medusa/server/src/modules/commission/models/commission-line.js +16 -3
- package/.medusa/server/src/modules/commission/models/commission-rule.js +11 -3
- package/.medusa/server/src/modules/commission/providers/system.d.ts +7 -0
- package/.medusa/server/src/modules/commission/providers/system.js +19 -4
- package/.medusa/server/src/modules/commission/service.d.ts +1 -0
- package/.medusa/server/src/modules/commission/service.js +14 -1
- package/.medusa/server/src/modules/offer/migrations/Migration20261021000000.d.ts +5 -0
- package/.medusa/server/src/modules/offer/migrations/Migration20261021000000.js +16 -0
- package/.medusa/server/src/modules/offer/models/offer.js +11 -1
- package/.medusa/server/src/modules/payout/migrations/Migration20261021000000.d.ts +5 -0
- package/.medusa/server/src/modules/payout/migrations/Migration20261021000000.js +16 -0
- package/.medusa/server/src/modules/payout/models/payout.js +16 -3
- package/.medusa/server/src/modules/review/migrations/Migration20261021000000.d.ts +5 -0
- package/.medusa/server/src/modules/review/migrations/Migration20261021000000.js +14 -0
- package/.medusa/server/src/modules/review/models/review.js +11 -3
- package/.medusa/server/src/modules/seller/migrations/Migration20261021000000.d.ts +5 -0
- package/.medusa/server/src/modules/seller/migrations/Migration20261021000000.js +18 -0
- package/.medusa/server/src/modules/seller/migrations/Migration20261021120000.d.ts +5 -0
- package/.medusa/server/src/modules/seller/migrations/Migration20261021120000.js +14 -0
- package/.medusa/server/src/modules/seller/migrations/Migration20261023000000.d.ts +5 -0
- package/.medusa/server/src/modules/seller/migrations/Migration20261023000000.js +18 -0
- package/.medusa/server/src/modules/seller/models/address.d.ts +1 -1
- package/.medusa/server/src/modules/seller/models/member-invite.d.ts +1 -1
- package/.medusa/server/src/modules/seller/models/member.d.ts +1 -1
- package/.medusa/server/src/modules/seller/models/order-group.d.ts +1 -0
- package/.medusa/server/src/modules/seller/models/order-group.js +22 -3
- package/.medusa/server/src/modules/seller/models/payment-details.d.ts +1 -1
- package/.medusa/server/src/modules/seller/models/professional-details.d.ts +1 -1
- package/.medusa/server/src/modules/seller/models/seller-member.d.ts +2 -2
- package/.medusa/server/src/modules/seller/models/seller.d.ts +1 -1
- package/.medusa/server/src/modules/seller/models/seller.js +2 -2
- package/.medusa/server/src/modules/seller/repositories/order-group.d.ts +1 -0
- package/.medusa/server/src/modules/seller/repositories/order-group.js +10 -10
- package/.medusa/server/src/modules/seller/service.d.ts +9 -8
- package/.medusa/server/src/patches/manifest.js +20 -8
- package/.medusa/server/src/patches/patches/{@medusajs+core-flows@2.21.0-payment-hooks.patch → @medusajs+core-flows@2.22.0-payment-hooks.patch} +11 -7
- package/.medusa/server/src/patches/patches/@medusajs+order@2.21.2-cross-module-count.patch +46 -0
- package/.medusa/server/src/permissions/definitions/integrations.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/integrations.js +8 -0
- package/.medusa/server/src/permissions/index.d.ts +1 -0
- package/.medusa/server/src/permissions/index.js +2 -1
- package/.medusa/server/src/workflows/campaign/steps/link-seller-campaign.js +4 -1
- package/.medusa/server/src/workflows/cart/workflows/complete-cart-with-split-orders.d.ts +1 -1
- package/.medusa/server/src/workflows/cart/workflows/complete-cart-with-split-orders.js +56 -51
- package/.medusa/server/src/workflows/commission/steps/get-commission-lines.js +5 -5
- package/.medusa/server/src/workflows/commission/steps/upsert-commission-lines.js +4 -1
- package/.medusa/server/src/workflows/commission/workflows/refresh-order-commission-lines.js +5 -15
- package/.medusa/server/src/workflows/customer-group/steps/link-seller-customer-group.js +4 -1
- package/.medusa/server/src/workflows/inventory-item/steps/link-seller-inventory-item.js +4 -1
- package/.medusa/server/src/workflows/offer/steps/create-offers.js +4 -1
- package/.medusa/server/src/workflows/offer/steps/update-offer-conditions.js +3 -3
- package/.medusa/server/src/workflows/offer/steps/update-offers.js +6 -9
- package/.medusa/server/src/workflows/order-group/steps/create-order-group.d.ts +1 -0
- package/.medusa/server/src/workflows/payment/workflows/payment-hooks.d.ts +1 -0
- package/.medusa/server/src/workflows/payment/workflows/payment-hooks.js +1 -1
- package/.medusa/server/src/workflows/payment/workflows/split-order-payments.js +8 -6
- package/.medusa/server/src/workflows/price-list/steps/link-seller-price-list.js +4 -1
- package/.medusa/server/src/workflows/promotion/steps/link-seller-promotion.js +4 -1
- package/.medusa/server/src/workflows/seller/steps/create-seller-member.d.ts +4 -2
- package/.medusa/server/src/workflows/seller/steps/update-member.d.ts +2 -1
- package/.medusa/server/src/workflows/seller/steps/update-seller-member.d.ts +4 -2
- package/.medusa/server/src/workflows/seller/workflows/add-seller-member.d.ts +4 -2
- package/.medusa/server/src/workflows/shipping-option/steps/link-seller-shipping-option.js +4 -1
- package/.medusa/server/src/workflows/stock-location/steps/link-seller-stock-location.js +4 -1
- package/package.json +18 -17
|
@@ -5,8 +5,8 @@ exports.PATCHES = [
|
|
|
5
5
|
{
|
|
6
6
|
file: "@medusajs+core-flows@2.18.0.patch",
|
|
7
7
|
package: "@medusajs/core-flows",
|
|
8
|
-
// Both targeted files are byte-identical from 2.17.2 through 2.
|
|
9
|
-
compatible: { from: "2.17.0", to: "2.
|
|
8
|
+
// Both targeted files are byte-identical from 2.17.2 through 2.22.0.
|
|
9
|
+
compatible: { from: "2.17.0", to: "2.23.0" },
|
|
10
10
|
reason: "refreshCartShippingMethodsWorkflow deletes any shipping method whose " +
|
|
11
11
|
"profile is not required by a cart item, deriving that set from each " +
|
|
12
12
|
"item's master product. In Mercur the profile belongs to the offer — the " +
|
|
@@ -16,10 +16,11 @@ exports.PATCHES = [
|
|
|
16
16
|
"See mercurjs/mercur#1442.",
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
|
-
file: "@medusajs+core-flows@2.
|
|
19
|
+
file: "@medusajs+core-flows@2.22.0-payment-hooks.patch",
|
|
20
20
|
package: "@medusajs/core-flows",
|
|
21
|
-
//
|
|
22
|
-
|
|
21
|
+
// 2.22.0 made refundPaymentWorkflow replay-safe (medusajs/medusa#16964),
|
|
22
|
+
// which moved the hunk this patch anchors on.
|
|
23
|
+
compatible: { from: "2.22.0", to: "2.23.0" },
|
|
23
24
|
reason: "capturePaymentWorkflow and refundPaymentWorkflow end in an event and expose no " +
|
|
24
25
|
"hook, unlike createOrderWorkflow and cancelOrderWorkflow. A ledger that must " +
|
|
25
26
|
"record every capture and refund inside the movement's own transaction, with " +
|
|
@@ -28,7 +29,7 @@ exports.PATCHES = [
|
|
|
28
29
|
{
|
|
29
30
|
file: "@medusajs+core-flows@2.21.2-seller-promotion-scope.patch",
|
|
30
31
|
package: "@medusajs/core-flows",
|
|
31
|
-
compatible: { from: "2.21.0", to: "2.
|
|
32
|
+
compatible: { from: "2.21.0", to: "2.23.0" },
|
|
32
33
|
reason: "prepareAdjustmentsFromPromotionActionsStep hands back every adjustment the " +
|
|
33
34
|
"promotion module computes for the whole cart, and every cart refresh runs it " +
|
|
34
35
|
"through updateCartPromotionsWorkflow. Without the seller scope applied in the " +
|
|
@@ -38,11 +39,22 @@ exports.PATCHES = [
|
|
|
38
39
|
{
|
|
39
40
|
file: "@medusajs+core-flows@2.20.1-delivery-hook.patch",
|
|
40
41
|
package: "@medusajs/core-flows",
|
|
41
|
-
compatible: { from: "2.18.0", to: "2.
|
|
42
|
+
compatible: { from: "2.18.0", to: "2.23.0" },
|
|
42
43
|
reason: "markOrderFulfillmentAsDeliveredWorkflow ends in an event and exposes no hook. " +
|
|
43
44
|
"Delivery is where a marketplace releases the seller's money from pending to " +
|
|
44
45
|
"payable, and that release must run in the delivery's own transaction, with " +
|
|
45
46
|
"compensation, so it needs fulfillmentDelivered.",
|
|
46
47
|
},
|
|
48
|
+
{
|
|
49
|
+
file: "@medusajs+order@2.21.2-cross-module-count.patch",
|
|
50
|
+
package: "@medusajs/order",
|
|
51
|
+
compatible: { from: "2.21.0", to: "2.23.0" },
|
|
52
|
+
reason: "The order module's findAndCount runs find and count as two queries over " +
|
|
53
|
+
"the same where clause. A cross-module filter (filters.seller.id on orders, " +
|
|
54
|
+
"returns, claims, exchanges) is a MikroORM raw EXISTS fragment that the " +
|
|
55
|
+
"registry drops after its first use, so the count query renders the dead " +
|
|
56
|
+
"key as a column and every paginated vendor list 500s. The patch gives the " +
|
|
57
|
+
"count its own copy of each fragment.",
|
|
58
|
+
},
|
|
47
59
|
];
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGF0Y2hlcy9tYW5pZmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFjYSxRQUFBLE9BQU8sR0FBaUI7SUFDbkM7UUFDRSxJQUFJLEVBQUUsbUNBQW1DO1FBQ3pDLE9BQU8sRUFBRSxzQkFBc0I7UUFDL0IscUVBQXFFO1FBQ3JFLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRTtRQUM1QyxNQUFNLEVBQ0osdUVBQXVFO1lBQ3ZFLHNFQUFzRTtZQUN0RSwwRUFBMEU7WUFDMUUscUVBQXFFO1lBQ3JFLDBFQUEwRTtZQUMxRSwwRUFBMEU7WUFDMUUsMkJBQTJCO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsaURBQWlEO1FBQ3ZELE9BQU8sRUFBRSxzQkFBc0I7UUFDL0IseUVBQXlFO1FBQ3pFLDhDQUE4QztRQUM5QyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUU7UUFDNUMsTUFBTSxFQUNKLGlGQUFpRjtZQUNqRiwrRUFBK0U7WUFDL0UsOEVBQThFO1lBQzlFLDBEQUEwRDtLQUM3RDtJQUNEO1FBQ0UsSUFBSSxFQUFFLDBEQUEwRDtRQUNoRSxPQUFPLEVBQUUsc0JBQXNCO1FBQy9CLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRTtRQUM1QyxNQUFNLEVBQ0osNkVBQTZFO1lBQzdFLCtFQUErRTtZQUMvRSxnRkFBZ0Y7WUFDaEYsMkVBQTJFO1lBQzNFLDJFQUEyRTtLQUM5RTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGlEQUFpRDtRQUN2RCxPQUFPLEVBQUUsc0JBQXNCO1FBQy9CLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRTtRQUM1QyxNQUFNLEVBQ0osZ0ZBQWdGO1lBQ2hGLDhFQUE4RTtZQUM5RSw2RUFBNkU7WUFDN0UsaURBQWlEO0tBQ3BEO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsaURBQWlEO1FBQ3ZELE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFO1FBQzVDLE1BQU0sRUFDSiwwRUFBMEU7WUFDMUUsNkVBQTZFO1lBQzdFLHlFQUF5RTtZQUN6RSwwRUFBMEU7WUFDMUUsNEVBQTRFO1lBQzVFLHNDQUFzQztLQUN6QztDQUNGLENBQUEifQ==
|
|
@@ -40,10 +40,10 @@ index 404cfaf..e069e4d 100644
|
|
|
40
40
|
//# sourceMappingURL=capture-payment.js.map
|
|
41
41
|
|
|
42
42
|
diff --git a/dist/payment/workflows/refund-payment.d.ts b/dist/payment/workflows/refund-payment.d.ts
|
|
43
|
-
index
|
|
43
|
+
index 0767e6a..7ca010f 100644
|
|
44
44
|
--- a/dist/payment/workflows/refund-payment.d.ts
|
|
45
45
|
+++ b/dist/payment/workflows/refund-payment.d.ts
|
|
46
|
-
@@ -
|
|
46
|
+
@@ -77,5 +77,18 @@ export declare const refundPaymentWorkflowId = "refund-payment-workflow";
|
|
47
47
|
*
|
|
48
48
|
* Refund a payment.
|
|
49
49
|
*/
|
|
@@ -59,27 +59,31 @@ index 3848939..7ff118d 100644
|
|
|
59
59
|
+ label: string;
|
|
60
60
|
+ code: string | null;
|
|
61
61
|
+ } | null;
|
|
62
|
+
+ is_replay: boolean;
|
|
62
63
|
+ }, unknown>
|
|
63
64
|
+]>;
|
|
64
65
|
//# sourceMappingURL=refund-payment.d.ts.map
|
|
65
66
|
|
|
66
67
|
diff --git a/dist/payment/workflows/refund-payment.js b/dist/payment/workflows/refund-payment.js
|
|
67
|
-
index
|
|
68
|
+
index a1b667a..de51ee2 100644
|
|
68
69
|
--- a/dist/payment/workflows/refund-payment.js
|
|
69
70
|
+++ b/dist/payment/workflows/refund-payment.js
|
|
70
|
-
@@ -
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
@@ -190,6 +190,20 @@ exports.refundPaymentWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.refu
|
|
72
|
+
data: { id: payment.id },
|
|
73
|
+
});
|
|
73
74
|
});
|
|
74
75
|
- return new workflows_sdk_1.WorkflowResponse(payment);
|
|
75
76
|
+ // MERCUR: see capture-payment.js. A refund is the correction side of a
|
|
76
|
-
+ // capture and needs the same in-transaction seam.
|
|
77
|
+
+ // capture and needs the same in-transaction seam. A replay moved no funds,
|
|
78
|
+
+ // so is_replay lets a ledger skip the second record the way the credit
|
|
79
|
+
+ // line and the event above are skipped.
|
|
77
80
|
+ const paymentRefunded = (0, workflows_sdk_1.createHook)("paymentRefunded", {
|
|
78
81
|
+ payment: refundPayment,
|
|
79
82
|
+ order_id: (0, workflows_sdk_1.transform)({ order }, ({ order }) => order?.id ?? null),
|
|
80
83
|
+ amount: (0, workflows_sdk_1.transform)({ input }, ({ input }) => input.amount ?? null),
|
|
81
84
|
+ credit_line_amount: creditLineAmount,
|
|
82
85
|
+ refund_reason: (0, workflows_sdk_1.transform)({ refundReason }, ({ refundReason }) => refundReason ?? null),
|
|
86
|
+
+ is_replay: isReplay,
|
|
83
87
|
+ });
|
|
84
88
|
+ return new workflows_sdk_1.WorkflowResponse(payment, {
|
|
85
89
|
+ hooks: [paymentRefunded],
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
diff --git a/dist/utils/base-repository-find.js b/dist/utils/base-repository-find.js
|
|
2
|
+
index 1003e55..9d8c693 100644
|
|
3
|
+
--- a/dist/utils/base-repository-find.js
|
|
4
|
+
+++ b/dist/utils/base-repository-find.js
|
|
5
|
+
@@ -28,6 +28,25 @@ function applyCrossModuleJoins(repository, findOptions, manager) {
|
|
6
|
+
}
|
|
7
|
+
return augmented;
|
|
8
|
+
}
|
|
9
|
+
+function cloneWhereWithFreshRawFragments(where) {
|
|
10
|
+
+ if (Array.isArray(where)) {
|
|
11
|
+
+ return where.map(cloneWhereWithFreshRawFragments);
|
|
12
|
+
+ }
|
|
13
|
+
+ if (where === null ||
|
|
14
|
+
+ typeof where !== "object" ||
|
|
15
|
+
+ Object.getPrototypeOf(where) !== Object.prototype) {
|
|
16
|
+
+ return where;
|
|
17
|
+
+ }
|
|
18
|
+
+ const cloned = {};
|
|
19
|
+
+ for (const key of Object.keys(where)) {
|
|
20
|
+
+ const fragment = core_1.RawQueryFragment.getKnownFragment(key, false);
|
|
21
|
+
+ const nextKey = fragment
|
|
22
|
+
+ ? (0, core_1.raw)(fragment.sql, fragment.params)
|
|
23
|
+
+ : key;
|
|
24
|
+
+ cloned[nextKey] = cloneWhereWithFreshRawFragments(where[key]);
|
|
25
|
+
+ }
|
|
26
|
+
+ return cloned;
|
|
27
|
+
+}
|
|
28
|
+
function ensureOrderItemFieldsSelection(config, isRelatedEntity) {
|
|
29
|
+
const populate = config.options?.populate ?? [];
|
|
30
|
+
const fields = config.options?.fields ?? [];
|
|
31
|
+
@@ -272,9 +291,14 @@ function setFindMethods(klass, entity) {
|
|
32
|
+
// control which items to load (not which root entities to count), we run
|
|
33
|
+
// find and count separately with different populateWhere options.
|
|
34
|
+
const countOptions = { ...config.options, populateWhere: undefined };
|
|
35
|
+
+ // `find` and `count` each consume the raw fragments in the where clause
|
|
36
|
+
+ // (the cross-module EXISTS filters). MikroORM drops a fragment from its
|
|
37
|
+
+ // registry on first use, so the second query would meet a dead key and
|
|
38
|
+
+ // render it as a column name. Hand the count its own copy of each one.
|
|
39
|
+
+ const countWhere = cloneWhereWithFreshRawFragments(config.where);
|
|
40
|
+
const [result, count] = await Promise.all([
|
|
41
|
+
manager.find(this.entity, config.where, config.options),
|
|
42
|
+
- manager.count(this.entity, config.where, countOptions),
|
|
43
|
+
+ manager.count(this.entity, countWhere, countOptions),
|
|
44
|
+
]);
|
|
45
|
+
if (loadAdjustments || shouldLoadShippingAdjustments) {
|
|
46
|
+
const orders = !isRelatedEntity
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const integrationsPermissions: import("@mercurjs/types").PermissionDefinition[];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.integrationsPermissions = void 0;
|
|
4
|
+
const registry_1 = require("../registry");
|
|
5
|
+
exports.integrationsPermissions = (0, registry_1.defineMercurPermissions)([
|
|
6
|
+
{ key: "integrations", group: "integrations", surface: ["admin"], rights: ["view", "edit", "manage"] },
|
|
7
|
+
]);
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Blcm1pc3Npb25zL2RlZmluaXRpb25zL2ludGVncmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwQ0FBcUQ7QUFFeEMsUUFBQSx1QkFBdUIsR0FBRyxJQUFBLGtDQUF1QixFQUFDO0lBQzdELEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUU7Q0FDdkcsQ0FBQyxDQUFBIn0=
|
|
@@ -40,5 +40,6 @@ require("./definitions/translations");
|
|
|
40
40
|
require("./definitions/notifications");
|
|
41
41
|
require("./definitions/workflow-executions");
|
|
42
42
|
require("./definitions/reviews");
|
|
43
|
+
require("./definitions/integrations");
|
|
43
44
|
__exportStar(require("./registry"), exports);
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGVybWlzc2lvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlDQUE4QjtBQUM5QixpQ0FBOEI7QUFDOUIsK0JBQTRCO0FBQzVCLGdDQUE2QjtBQUM3QixrQ0FBK0I7QUFDL0IsbUNBQWdDO0FBQ2hDLGtDQUErQjtBQUMvQiw0Q0FBeUM7QUFDekMsZ0NBQTZCO0FBQzdCLG1DQUFnQztBQUNoQyxxQ0FBa0M7QUFDbEMsb0NBQWlDO0FBQ2pDLHFDQUFrQztBQUNsQyxpQ0FBOEI7QUFDOUIscUNBQWtDO0FBQ2xDLGlDQUE4QjtBQUM5QiwrQkFBNEI7QUFDNUIsd0NBQXFDO0FBQ3JDLHdDQUFxQztBQUNyQyx3Q0FBcUM7QUFDckMsK0JBQTRCO0FBQzVCLGtDQUErQjtBQUMvQixzQ0FBbUM7QUFDbkMsdUNBQW9DO0FBQ3BDLDZDQUEwQztBQUMxQyxpQ0FBOEI7QUFDOUIsc0NBQW1DO0FBRW5DLDZDQUEwQiJ9
|
|
@@ -5,6 +5,9 @@ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
|
5
5
|
const utils_1 = require("@medusajs/framework/utils");
|
|
6
6
|
const types_1 = require("@mercurjs/types");
|
|
7
7
|
exports.linkSellerCampaignStep = (0, workflows_sdk_1.createStep)("link-seller-campaign", async (input, { container }) => {
|
|
8
|
+
if (!input.campaign_ids.length) {
|
|
9
|
+
return new workflows_sdk_1.StepResponse(undefined, undefined);
|
|
10
|
+
}
|
|
8
11
|
const remoteLink = container.resolve(utils_1.ContainerRegistrationKeys.LINK);
|
|
9
12
|
const links = input.campaign_ids.map((campaignId) => ({
|
|
10
13
|
[utils_1.Modules.PROMOTION]: {
|
|
@@ -33,4 +36,4 @@ exports.linkSellerCampaignStep = (0, workflows_sdk_1.createStep)("link-seller-ca
|
|
|
33
36
|
}));
|
|
34
37
|
await remoteLink.dismiss(links);
|
|
35
38
|
});
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1zZWxsZXItY2FtcGFpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NhbXBhaWduL3N0ZXBzL2xpbmstc2VsbGVyLWNhbXBhaWduLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE0RTtBQUM1RSxxREFBOEU7QUFFOUUsMkNBQStDO0FBT2xDLFFBQUEsc0JBQXNCLEdBQUcsSUFBQSwwQkFBVSxFQUM5QyxzQkFBc0IsRUFDdEIsS0FBSyxFQUFFLEtBQWtDLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQy9CLE9BQU8sSUFBSSw0QkFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUMvQyxDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQVMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUUxRSxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDLGVBQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNuQixXQUFXLEVBQUUsVUFBVTtTQUN4QjtRQUNELENBQUMscUJBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0QixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7U0FDM0I7S0FDRixDQUFDLENBQUMsQ0FBQTtJQUVILE1BQU0sVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUU5QixPQUFPLElBQUksNEJBQVksQ0FBQyxTQUFTLEVBQUU7UUFDakMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzFCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtLQUNqQyxDQUFDLENBQUE7QUFDSixDQUFDLEVBQ0QsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDNUIsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFNO0lBRWpCLE1BQU0sVUFBVSxHQUFTLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsV0FBVyxDQUFDLENBQUE7SUFFakYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxlQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDbkIsV0FBVyxFQUFFLFVBQVU7U0FDeEI7UUFDRCxDQUFDLHFCQUFhLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzFCO0tBQ0YsQ0FBQyxDQUFDLENBQUE7SUFFSCxNQUFNLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDakMsQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -8,7 +8,7 @@ export type SetOrderStatusHookResult = {
|
|
|
8
8
|
status_by_seller_id?: Record<string, OrderStatus>;
|
|
9
9
|
} | undefined;
|
|
10
10
|
export declare const THREE_DAYS: number;
|
|
11
|
-
export declare const THIRTY_SECONDS
|
|
11
|
+
export declare const THIRTY_SECONDS = 30;
|
|
12
12
|
export declare const TWO_MINUTES: number;
|
|
13
13
|
export declare const completeCartWithSplitOrdersWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<CompleteCartWithSplitOrdersWorkflowInput, {
|
|
14
14
|
order_group_id: any;
|
|
@@ -13,19 +13,24 @@ const promotion_1 = require("../../promotion");
|
|
|
13
13
|
const split_order_payments_1 = require("../../payment/workflows/split-order-payments");
|
|
14
14
|
const refresh_order_commission_lines_1 = require("../../commission/workflows/refresh-order-commission-lines");
|
|
15
15
|
const utils_3 = require("../../offer/utils");
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
exports.
|
|
16
|
+
// Lock timeout/ttl and retentionTime are seconds, the same units the native
|
|
17
|
+
// completeCartWorkflow uses.
|
|
18
|
+
exports.THREE_DAYS = 3 * 24 * 60 * 60;
|
|
19
|
+
exports.THIRTY_SECONDS = 30;
|
|
20
|
+
exports.TWO_MINUTES = 2 * 60;
|
|
19
21
|
exports.completeCartWithSplitOrdersWorkflow = (0, workflows_sdk_1.createWorkflow)({
|
|
20
22
|
name: "complete-cart-with-split-orders",
|
|
21
23
|
store: true,
|
|
22
24
|
idempotent: false,
|
|
23
25
|
retentionTime: exports.THREE_DAYS,
|
|
24
26
|
}, (input) => {
|
|
27
|
+
// processPaymentWorkflow releases its own cart lock before running this
|
|
28
|
+
// as a sub-workflow, so the lock must not be skipped on that path.
|
|
25
29
|
(0, core_flows_1.acquireLockStep)({
|
|
26
30
|
key: input.cart_id,
|
|
27
31
|
timeout: exports.THIRTY_SECONDS,
|
|
28
32
|
ttl: exports.TWO_MINUTES,
|
|
33
|
+
executeOnSubWorkflow: true,
|
|
29
34
|
});
|
|
30
35
|
const [orderGroup, cartData] = (0, workflows_sdk_1.parallelize)((0, core_flows_1.useQueryGraphStep)({
|
|
31
36
|
entity: "order_group",
|
|
@@ -66,7 +71,36 @@ exports.completeCartWithSplitOrdersWorkflow = (0, workflows_sdk_1.createWorkflow
|
|
|
66
71
|
const cartOptionIds = (0, workflows_sdk_1.transform)({ cart: cartData.data }, ({ cart }) => {
|
|
67
72
|
return cart.shipping_methods?.map((sm) => sm.shipping_option_id);
|
|
68
73
|
});
|
|
69
|
-
const
|
|
74
|
+
const cartPromotionIds = (0, workflows_sdk_1.transform)({ cart: cartData.data }, ({ cart }) => {
|
|
75
|
+
const adjustments = [
|
|
76
|
+
...(cart.items ?? []).flatMap((item) => item.adjustments ?? []),
|
|
77
|
+
...(cart.shipping_methods ?? []).flatMap((sm) => sm.adjustments ?? []),
|
|
78
|
+
];
|
|
79
|
+
return { promotion_ids: adjustments.map((adjustment) => adjustment.promotion_id) };
|
|
80
|
+
});
|
|
81
|
+
const sellerCustomerQueryFilters = (0, workflows_sdk_1.transform)({ cart: cartData.data }, ({ cart }) => {
|
|
82
|
+
if (!cart.customer_id) {
|
|
83
|
+
return { seller_id: [], customer_id: "" };
|
|
84
|
+
}
|
|
85
|
+
const sellerIds = new Set((cart.items ?? [])
|
|
86
|
+
.map((item) => item.offer?.seller_id)
|
|
87
|
+
.filter((id) => typeof id === "string"));
|
|
88
|
+
return {
|
|
89
|
+
seller_id: Array.from(sellerIds),
|
|
90
|
+
customer_id: cart.customer?.id,
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
const uniqueOffers = (0, workflows_sdk_1.transform)({ cart: cartData.data }, ({ cart }) => {
|
|
94
|
+
const byId = new Map();
|
|
95
|
+
for (const item of cart.items ?? []) {
|
|
96
|
+
const offer = item.offer;
|
|
97
|
+
if (offer?.id && !byId.has(offer.id)) {
|
|
98
|
+
byId.set(offer.id, item);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return Array.from(byId.keys());
|
|
102
|
+
});
|
|
103
|
+
const [shippingOptionsData, promotionSellerIds, existingSellerCustomerLinks, offersWithInventoryData,] = (0, workflows_sdk_1.parallelize)((0, core_flows_1.useQueryGraphStep)({
|
|
70
104
|
entity: "shipping_option",
|
|
71
105
|
fields: ['id', "shipping_profile_id", 'seller.id'],
|
|
72
106
|
filters: { id: cartOptionIds },
|
|
@@ -77,7 +111,17 @@ exports.completeCartWithSplitOrdersWorkflow = (0, workflows_sdk_1.createWorkflow
|
|
|
77
111
|
},
|
|
78
112
|
}).config({
|
|
79
113
|
name: "shipping-options-query",
|
|
80
|
-
})
|
|
114
|
+
}), (0, steps_1.getPromotionSellerIdsStep)(cartPromotionIds), (0, core_flows_1.useQueryGraphStep)({
|
|
115
|
+
entity: "seller_customer",
|
|
116
|
+
fields: ["seller_id", "customer_id"],
|
|
117
|
+
filters: sellerCustomerQueryFilters,
|
|
118
|
+
}).config({
|
|
119
|
+
name: "existing-seller-customer-links-query",
|
|
120
|
+
}), (0, core_flows_1.useQueryGraphStep)({
|
|
121
|
+
entity: "offer",
|
|
122
|
+
fields: utils_3.requiredOfferFieldsForInventoryConfirmation,
|
|
123
|
+
filters: { id: uniqueOffers },
|
|
124
|
+
}).config({ name: "fetch-offers-for-reservation" }));
|
|
81
125
|
(0, steps_1.validateSellerCartItemsStep)({
|
|
82
126
|
cart: cartData.data,
|
|
83
127
|
});
|
|
@@ -91,14 +135,6 @@ exports.completeCartWithSplitOrdersWorkflow = (0, workflows_sdk_1.createWorkflow
|
|
|
91
135
|
};
|
|
92
136
|
});
|
|
93
137
|
const orderStatusResult = setOrderStatus.getResult();
|
|
94
|
-
const cartPromotionIds = (0, workflows_sdk_1.transform)({ cart: cartData.data }, ({ cart }) => {
|
|
95
|
-
const adjustments = [
|
|
96
|
-
...(cart.items ?? []).flatMap((item) => item.adjustments ?? []),
|
|
97
|
-
...(cart.shipping_methods ?? []).flatMap((sm) => sm.adjustments ?? []),
|
|
98
|
-
];
|
|
99
|
-
return { promotion_ids: adjustments.map((adjustment) => adjustment.promotion_id) };
|
|
100
|
-
});
|
|
101
|
-
const promotionSellerIds = (0, steps_1.getPromotionSellerIdsStep)(cartPromotionIds);
|
|
102
138
|
const { ordersToCreate, sellerOrdersMap, offerIdsByOrderId } = (0, workflows_sdk_1.transform)({ cart: cartData.data, shippingOptionsData: shippingOptionsData.data, orderStatusResult, promotionSellerIds }, ({ cart, shippingOptionsData, orderStatusResult, promotionSellerIds }) => {
|
|
103
139
|
const statusResult = orderStatusResult;
|
|
104
140
|
const sellerIdOfPromotion = (promotionId) => promotionId ? (promotionSellerIds[promotionId] ?? null) : null;
|
|
@@ -229,24 +265,9 @@ exports.completeCartWithSplitOrdersWorkflow = (0, workflows_sdk_1.createWorkflow
|
|
|
229
265
|
return {
|
|
230
266
|
customer_id: cart.customer?.id,
|
|
231
267
|
cart_id: cart.id,
|
|
268
|
+
metadata: cart.metadata ?? null,
|
|
232
269
|
};
|
|
233
270
|
});
|
|
234
|
-
const sellerCustomerQueryFilters = (0, workflows_sdk_1.transform)({ cart: cartData.data, sellerOrdersMap }, ({ cart, sellerOrdersMap }) => {
|
|
235
|
-
if (!cart.customer_id) {
|
|
236
|
-
return { seller_id: [], customer_id: "" };
|
|
237
|
-
}
|
|
238
|
-
return {
|
|
239
|
-
seller_id: Object.keys(sellerOrdersMap),
|
|
240
|
-
customer_id: cart.customer?.id,
|
|
241
|
-
};
|
|
242
|
-
});
|
|
243
|
-
const existingSellerCustomerLinks = (0, core_flows_1.useQueryGraphStep)({
|
|
244
|
-
entity: "seller_customer",
|
|
245
|
-
fields: ["seller_id", "customer_id"],
|
|
246
|
-
filters: sellerCustomerQueryFilters,
|
|
247
|
-
}).config({
|
|
248
|
-
name: "existing-seller-customer-links-query",
|
|
249
|
-
});
|
|
250
271
|
const [createdOrderGroup, createdOrders] = (0, workflows_sdk_1.parallelize)((0, order_group_1.createOrderGroupStep)(orderGroupData), (0, core_flows_1.createOrdersStep)(ordersToCreate));
|
|
251
272
|
const orderLineOfferPairs = (0, workflows_sdk_1.transform)({ createdOrders, offerIdsByOrderId }, ({ createdOrders, offerIdsByOrderId }) => {
|
|
252
273
|
const pairs = [];
|
|
@@ -265,9 +286,6 @@ exports.completeCartWithSplitOrdersWorkflow = (0, workflows_sdk_1.createWorkflow
|
|
|
265
286
|
}
|
|
266
287
|
return pairs;
|
|
267
288
|
});
|
|
268
|
-
(0, steps_1.mirrorLineItemOfferLinksToOrderStep)({
|
|
269
|
-
pairs: orderLineOfferPairs,
|
|
270
|
-
});
|
|
271
289
|
const offerReservationItems = (0, workflows_sdk_1.transform)({ createdOrders, orderLineOfferPairs }, ({ createdOrders, orderLineOfferPairs }) => {
|
|
272
290
|
const offerByOrderLine = new Map(orderLineOfferPairs.map((p) => [
|
|
273
291
|
p.order_line_item_id,
|
|
@@ -286,26 +304,11 @@ exports.completeCartWithSplitOrdersWorkflow = (0, workflows_sdk_1.createWorkflow
|
|
|
286
304
|
}
|
|
287
305
|
return offerItems;
|
|
288
306
|
});
|
|
289
|
-
const uniqueOffers = (0, workflows_sdk_1.transform)({ cart: cartData.data }, ({ cart }) => {
|
|
290
|
-
const byId = new Map();
|
|
291
|
-
for (const item of cart.items ?? []) {
|
|
292
|
-
const offer = item.offer;
|
|
293
|
-
if (offer?.id && !byId.has(offer.id)) {
|
|
294
|
-
byId.set(offer.id, item);
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
return Array.from(byId.keys());
|
|
298
|
-
});
|
|
299
|
-
const { data: offersWithInventory } = (0, core_flows_1.useQueryGraphStep)({
|
|
300
|
-
entity: "offer",
|
|
301
|
-
fields: utils_3.requiredOfferFieldsForInventoryConfirmation,
|
|
302
|
-
filters: { id: uniqueOffers },
|
|
303
|
-
}).config({ name: "fetch-offers-for-reservation" });
|
|
304
307
|
const formatedInventoryItems = (0, workflows_sdk_1.transform)({
|
|
305
308
|
input: {
|
|
306
309
|
sales_channel_id,
|
|
307
310
|
items: offerReservationItems,
|
|
308
|
-
offers:
|
|
311
|
+
offers: offersWithInventoryData.data,
|
|
309
312
|
},
|
|
310
313
|
}, utils_3.prepareOfferInventoryInput);
|
|
311
314
|
// Native reserveInventoryStep rejects the extra `manage_inventory`
|
|
@@ -398,8 +401,9 @@ exports.completeCartWithSplitOrdersWorkflow = (0, workflows_sdk_1.createWorkflow
|
|
|
398
401
|
const orderEventData = (0, workflows_sdk_1.transform)({ createdOrders }, ({ createdOrders }) => {
|
|
399
402
|
return createdOrders.map((order) => ({ id: order.id }));
|
|
400
403
|
});
|
|
401
|
-
(0, core_flows_1.createRemoteLinkStep)(linksToCreate)
|
|
402
|
-
|
|
404
|
+
(0, workflows_sdk_1.parallelize)((0, core_flows_1.createRemoteLinkStep)(linksToCreate), (0, steps_1.mirrorLineItemOfferLinksToOrderStep)({
|
|
405
|
+
pairs: orderLineOfferPairs,
|
|
406
|
+
}), (0, core_flows_1.updateCartsStep)([updateCompletedAt]), (0, core_flows_1.reserveInventoryStep)(reservableInventoryItems), (0, promotion_1.registerUsageStep)(promotionUsage), (0, core_flows_1.emitEventStep)({
|
|
403
407
|
eventName: utils_1.OrderWorkflowEvents.PLACED,
|
|
404
408
|
data: orderEventData
|
|
405
409
|
}).config({
|
|
@@ -441,6 +445,7 @@ exports.completeCartWithSplitOrdersWorkflow = (0, workflows_sdk_1.createWorkflow
|
|
|
441
445
|
});
|
|
442
446
|
(0, core_flows_1.releaseLockStep)({
|
|
443
447
|
key: input.cart_id,
|
|
448
|
+
executeOnSubWorkflow: true,
|
|
444
449
|
});
|
|
445
450
|
const result = (0, workflows_sdk_1.transform)({ createdOrderGroup, orderGroupId }, ({ createdOrderGroup, orderGroupId }) => {
|
|
446
451
|
return { order_group_id: createdOrderGroup?.id ?? orderGroupId };
|
|
@@ -449,4 +454,4 @@ exports.completeCartWithSplitOrdersWorkflow = (0, workflows_sdk_1.createWorkflow
|
|
|
449
454
|
hooks: [validate, setOrderStatus],
|
|
450
455
|
});
|
|
451
456
|
});
|
|
452
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxldGUtY2FydC13aXRoLXNwbGl0LW9yZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvY2FydC93b3JrZmxvd3MvY29tcGxldGUtY2FydC13aXRoLXNwbGl0LW9yZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFRQSxxREFLa0M7QUFDbEMscUVBTzBDO0FBQzFDLDREQVdvQztBQUNwQywyQ0FBK0U7QUFDL0UsbURBQXdEO0FBQ3hELHlDQUF1RDtBQUN2RCxvQ0FLaUI7QUFDakIsb0NBUWlCO0FBQ2pCLCtDQUFtRDtBQUNuRCx1RkFBK0Y7QUFDL0YsOEdBQStHO0FBQy9HLDZDQUcwQjtBQWNiLFFBQUEsVUFBVSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUE7QUFDcEMsUUFBQSxjQUFjLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQTtBQUMxQixRQUFBLFdBQVcsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQTtBQUUzQixRQUFBLG1DQUFtQyxHQUFHLElBQUEsOEJBQWMsRUFDN0Q7SUFDSSxJQUFJLEVBQUUsaUNBQWlDO0lBQ3ZDLEtBQUssRUFBRSxJQUFJO0lBQ1gsVUFBVSxFQUFFLEtBQUs7SUFDakIsYUFBYSxFQUFFLGtCQUFVO0NBQzVCLEVBQ0QsQ0FBQyxLQUErQyxFQUFFLEVBQUU7SUFDaEQsSUFBQSw0QkFBZSxFQUFDO1FBQ1osR0FBRyxFQUFFLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE9BQU8sRUFBRSxzQkFBYztRQUN2QixHQUFHLEVBQUUsbUJBQVc7S0FDbkIsQ0FBQyxDQUFBO0lBRUYsTUFBTSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFBLDJCQUFXLEVBQ3RDLElBQUEsOEJBQWlCLEVBQUM7UUFDZCxNQUFNLEVBQUUsYUFBYTtRQUNyQixNQUFNLEVBQUUsQ0FBQyxJQUFJ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
|
|
457
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxldGUtY2FydC13aXRoLXNwbGl0LW9yZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvY2FydC93b3JrZmxvd3MvY29tcGxldGUtY2FydC13aXRoLXNwbGl0LW9yZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFRQSxxREFLa0M7QUFDbEMscUVBTzBDO0FBQzFDLDREQVdvQztBQUNwQywyQ0FBK0U7QUFDL0UsbURBQXdEO0FBQ3hELHlDQUF1RDtBQUN2RCxvQ0FLaUI7QUFDakIsb0NBUWlCO0FBQ2pCLCtDQUFtRDtBQUNuRCx1RkFBK0Y7QUFDL0YsOEdBQStHO0FBQy9HLDZDQUcwQjtBQWMxQiw0RUFBNEU7QUFDNUUsNkJBQTZCO0FBQ2hCLFFBQUEsVUFBVSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQTtBQUM3QixRQUFBLGNBQWMsR0FBRyxFQUFFLENBQUE7QUFDbkIsUUFBQSxXQUFXLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtBQUVwQixRQUFBLG1DQUFtQyxHQUFHLElBQUEsOEJBQWMsRUFDN0Q7SUFDSSxJQUFJLEVBQUUsaUNBQWlDO0lBQ3ZDLEtBQUssRUFBRSxJQUFJO0lBQ1gsVUFBVSxFQUFFLEtBQUs7SUFDakIsYUFBYSxFQUFFLGtCQUFVO0NBQzVCLEVBQ0QsQ0FBQyxLQUErQyxFQUFFLEVBQUU7SUFDaEQsd0VBQXdFO0lBQ3hFLG1FQUFtRTtJQUNuRSxJQUFBLDRCQUFlLEVBQUM7UUFDWixHQUFHLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDbEIsT0FBTyxFQUFFLHNCQUFjO1FBQ3ZCLEdBQUcsRUFBRSxtQkFBVztRQUNoQixvQkFBb0IsRUFBRSxJQUFJO0tBQzdCLENBQUMsQ0FBQTtJQUVGLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEdBQUcsSUFBQSwyQkFBVyxFQUN0QyxJQUFBLDhCQUFpQixFQUFD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
|
|
@@ -3,13 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getCommissionLinesStep = exports.getCommissionLinesStepId = void 0;
|
|
4
4
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
5
|
const types_1 = require("@mercurjs/types");
|
|
6
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
7
6
|
exports.getCommissionLinesStepId = "get-commission-lines";
|
|
8
7
|
exports.getCommissionLinesStep = (0, workflows_sdk_1.createStep)(exports.getCommissionLinesStepId, async (input, { container }) => {
|
|
8
|
+
if (!input.length) {
|
|
9
|
+
return new workflows_sdk_1.StepResponse([]);
|
|
10
|
+
}
|
|
9
11
|
const service = container.resolve(types_1.MercurModules.COMMISSION);
|
|
10
|
-
const commissionLines = await
|
|
11
|
-
return await service.getCommissionLines(context);
|
|
12
|
-
}));
|
|
12
|
+
const commissionLines = await service.getCommissionLinesBatch(input);
|
|
13
13
|
return new workflows_sdk_1.StepResponse(commissionLines.flat());
|
|
14
14
|
});
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNvbW1pc3Npb24tbGluZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NvbW1pc3Npb24vc3RlcHMvZ2V0LWNvbW1pc3Npb24tbGluZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTRFO0FBQzVFLDJDQUl3QjtBQUlYLFFBQUEsd0JBQXdCLEdBQUcsc0JBQXNCLENBQUE7QUFFakQsUUFBQSxzQkFBc0IsR0FBRyxJQUFBLDBCQUFVLEVBQzlDLGdDQUF3QixFQUN4QixLQUFLLEVBQ0gsS0FBcUMsRUFDckMsRUFBRSxTQUFTLEVBQUUsRUFDcUMsRUFBRTtJQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSw0QkFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FDWCxTQUFTLENBQUMsT0FBTyxDQUFDLHFCQUFhLENBQUMsVUFBVSxDQUE0QixDQUFBO0lBRXhFLE1BQU0sZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRXBFLE9BQU8sSUFBSSw0QkFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQ2pELENBQUMsQ0FDRixDQUFBIn0=
|
|
@@ -5,8 +5,11 @@ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
|
5
5
|
const types_1 = require("@mercurjs/types");
|
|
6
6
|
exports.upsertCommissionLinesStepId = "upsert-commission-lines";
|
|
7
7
|
exports.upsertCommissionLinesStep = (0, workflows_sdk_1.createStep)(exports.upsertCommissionLinesStepId, async (input, { container }) => {
|
|
8
|
+
if (!input.commission_lines.length) {
|
|
9
|
+
return new workflows_sdk_1.StepResponse([]);
|
|
10
|
+
}
|
|
8
11
|
const service = container.resolve(types_1.MercurModules.COMMISSION);
|
|
9
12
|
const commissionLines = await service.upsertCommissionLines(input.commission_lines);
|
|
10
13
|
return new workflows_sdk_1.StepResponse(commissionLines);
|
|
11
14
|
});
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBzZXJ0LWNvbW1pc3Npb24tbGluZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NvbW1pc3Npb24vc3RlcHMvdXBzZXJ0LWNvbW1pc3Npb24tbGluZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTRFO0FBQzVFLDJDQUl3QjtBQVFYLFFBQUEsMkJBQTJCLEdBQUcseUJBQXlCLENBQUE7QUFFdkQsUUFBQSx5QkFBeUIsR0FBRyxJQUFBLDBCQUFVLEVBQ2pELG1DQUEyQixFQUMzQixLQUFLLEVBQ0gsS0FBcUMsRUFDckMsRUFBRSxTQUFTLEVBQUUsRUFDK0IsRUFBRTtJQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25DLE9BQU8sSUFBSSw0QkFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUMvQixxQkFBYSxDQUFDLFVBQVUsQ0FDekIsQ0FBQTtJQUVELE1BQU0sZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLHFCQUFxQixDQUN6RCxLQUFLLENBQUMsZ0JBQWdCLENBQ3ZCLENBQUE7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQTtBQUMxQyxDQUFDLENBQ0YsQ0FBQSJ9
|
|
@@ -4,24 +4,18 @@ exports.refreshOrderCommissionLinesWorkflow = exports.refreshOrderCommissionLine
|
|
|
4
4
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
5
|
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
6
6
|
const steps_1 = require("../steps");
|
|
7
|
+
// The order module only decorates totals when a top-level total field such
|
|
8
|
+
// as `subtotal` is selected, and derives line totals from the raw columns in
|
|
9
|
+
// `items.*` / `shipping_methods.*`, so those stay in the list.
|
|
7
10
|
const orderFields = [
|
|
8
11
|
"id",
|
|
9
|
-
"status",
|
|
10
|
-
"version",
|
|
11
12
|
"currency_code",
|
|
12
|
-
"email",
|
|
13
|
-
"canceled_at",
|
|
14
|
-
"sales_channel_id",
|
|
15
|
-
"region_id",
|
|
16
|
-
"customer_id",
|
|
17
|
-
"customer.*",
|
|
18
|
-
"customer.groups.*",
|
|
19
|
-
"promotions.*",
|
|
20
13
|
"subtotal",
|
|
21
14
|
"items.*",
|
|
22
15
|
"items.subtotal",
|
|
23
16
|
"items.tax_total",
|
|
24
17
|
"items.total",
|
|
18
|
+
"items.adjustments.*",
|
|
25
19
|
"items.product.id",
|
|
26
20
|
"items.product.collection_id",
|
|
27
21
|
"items.product.categories.id",
|
|
@@ -29,14 +23,10 @@ const orderFields = [
|
|
|
29
23
|
"items.product.type_id",
|
|
30
24
|
"items.product.attribute_values.id",
|
|
31
25
|
"items.offer.seller_id",
|
|
32
|
-
"items.adjustments.*",
|
|
33
26
|
"shipping_methods.*",
|
|
34
|
-
"shipping_methods.total",
|
|
35
27
|
"shipping_methods.subtotal",
|
|
36
28
|
"shipping_methods.tax_total",
|
|
37
29
|
"shipping_methods.adjustments.*",
|
|
38
|
-
"shipping_methods.shipping_option_id",
|
|
39
|
-
"shipping_address.*",
|
|
40
30
|
];
|
|
41
31
|
exports.refreshOrderCommissionLinesWorkflowId = "refresh-order-commission-lines";
|
|
42
32
|
exports.refreshOrderCommissionLinesWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.refreshOrderCommissionLinesWorkflowId, function (input) {
|
|
@@ -97,4 +87,4 @@ exports.refreshOrderCommissionLinesWorkflow = (0, workflows_sdk_1.createWorkflow
|
|
|
97
87
|
hooks: [setCommissionContext, commissionLinesUpserted],
|
|
98
88
|
});
|
|
99
89
|
});
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmcmVzaC1vcmRlci1jb21taXNzaW9uLWxpbmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jb21taXNzaW9uL3dvcmtmbG93cy9yZWZyZXNoLW9yZGVyLWNvbW1pc3Npb24tbGluZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBUTBDO0FBQzFDLDREQUErRDtBQU0vRCxvQ0FBNEU7QUFFNUUsMkVBQTJFO0FBQzNFLDZFQUE2RTtBQUM3RSwrREFBK0Q7QUFDL0QsTUFBTSxXQUFXLEdBQUc7SUFDbEIsSUFBSTtJQUNKLGVBQWU7SUFDZixVQUFVO0lBQ1YsU0FBUztJQUNULGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsYUFBYTtJQUNiLHFCQUFxQjtJQUNyQixrQkFBa0I7SUFDbEIsNkJBQTZCO0lBQzdCLDZCQUE2QjtJQUM3Qix1QkFBdUI7SUFDdkIsdUJBQXVCO0lBQ3ZCLG1DQUFtQztJQUNuQyx1QkFBdUI7SUFDdkIsb0JBQW9CO0lBQ3BCLDJCQUEyQjtJQUMzQiw0QkFBNEI7SUFDNUIsZ0NBQWdDO0NBQ2pDLENBQUE7QUFNWSxRQUFBLHFDQUFxQyxHQUFHLGdDQUFnQyxDQUFBO0FBdUJ4RSxRQUFBLG1DQUFtQyxHQUk1QyxJQUFBLDhCQUFjLEVBQ2hCLDZDQUFxQyxFQUNyQyxVQUNFLEtBQTZEO0lBRTdELE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUN6QyxNQUFNLEVBQUUsT0FBTztRQUNmLE1BQU0sRUFBRSxXQUFXO1FBQ25CLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFO1FBQ2hDLE9BQU8sRUFBRTtZQUNQLGtCQUFrQixFQUFFLElBQUk7U0FDekI7S0FDRixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUE7SUFFbkMsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtRQUM5RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQWdDLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtZQUNsQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDbEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUztZQUM3QyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDN0MsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNYLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztvQkFDbkIsQ0FBQyxDQUFDO3dCQUNBLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQ25CLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWE7d0JBQ3pDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7d0JBQ25DLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7d0JBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87d0JBQzdCLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVM7NEJBQzNCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTs0QkFDOUIsQ0FBQyxDQUFDLFNBQVM7d0JBQ2IsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQzs2QkFDdkQsR0FBRyxDQUFDLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztxQkFDNUM7b0JBQ0QsQ0FBQyxDQUFDLFNBQVM7YUFDZCxDQUFDLENBQUM7WUFDSCxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3JFLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDYixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7Z0JBQ3pCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUzthQUM1QixDQUFDLENBQUM7U0FDSixDQUFDLENBQUMsQ0FBQTtJQUNMLENBQUMsQ0FBQyxDQUFBO0lBRUYsTUFBTSxvQkFBb0IsR0FBRyxJQUFBLDBCQUFVLEVBQUMsc0JBQXNCLEVBQUU7UUFDOUQsUUFBUSxFQUFFLGtCQUFrQjtLQUM3QixDQUFDLENBQUE7SUFFRixNQUFNLFFBQVEsR0FBRyxJQUFBLHlCQUFTLEVBQ3hCLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQ3BFLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsRUFBa0MsRUFBRSxDQUNwRSxVQUF5RDtRQUMxRCxrQkFBa0IsQ0FDckIsQ0FBQTtJQUVELE1BQU0sZUFBZSxHQUFHLElBQUEsOEJBQXNCLEVBQUMsUUFBUSxDQUFDLENBQUE7SUFFeEQsTUFBTSx1QkFBdUIsR0FBRyxJQUFBLGlDQUF5QixFQUFDO1FBQ3hELGdCQUFnQixFQUFFLGVBQWU7S0FDbEMsQ0FBQyxDQUFBO0lBRUYsTUFBTSx1QkFBdUIsR0FBRyxJQUFBLDBCQUFVLEVBQUMseUJBQXlCLEVBQUU7UUFDcEUsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzFCLGdCQUFnQixFQUFFLHVCQUF1QjtLQUMxQyxDQUFDLENBQUE7SUFFRixPQUFPLElBQUksZ0NBQWdCLENBQUMsdUJBQXVCLEVBQUU7UUFDbkQsS0FBSyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsdUJBQXVCLENBQUM7S0FDdkQsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUNGLENBQUEifQ==
|