@mercurjs/core 2.3.6-canary.9 → 2.3.7-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/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/payout/migrations/Migration20261006120000.d.ts +5 -0
- package/.medusa/server/src/modules/payout/migrations/Migration20261006120000.js +16 -0
- package/.medusa/server/src/modules/payout/services/payout-module-service.d.ts +10 -5
- package/.medusa/server/src/modules/payout/services/payout-module-service.js +40 -15
- package/.medusa/server/src/modules/seller/repositories/order-group.js +36 -16
- package/.medusa/server/src/patches/manifest.js +2 -2
- 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-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
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.GET = void 0;
|
|
4
4
|
const order_group_1 = require("../../../workflows/order-group");
|
|
5
5
|
const GET = async (req, res) => {
|
|
6
|
-
|
|
6
|
+
// `applyOrderGroupSellerFilter` already narrowed `id` to the seller's groups.
|
|
7
|
+
const { seller_id: _sellerId, ...filterableFields } = req.filterableFields;
|
|
7
8
|
const { result } = await (0, order_group_1.getOrderGroupsListWorkflow)(req.scope).run({
|
|
8
9
|
input: {
|
|
9
10
|
fields: req.queryConfig.fields ?? [],
|
|
@@ -13,7 +14,6 @@ const GET = async (req, res) => {
|
|
|
13
14
|
take: req.queryConfig.pagination?.take,
|
|
14
15
|
order: req.queryConfig.pagination?.order,
|
|
15
16
|
},
|
|
16
|
-
sellerId: sellerId,
|
|
17
17
|
},
|
|
18
18
|
});
|
|
19
19
|
const { rows, metadata } = result;
|
|
@@ -25,4 +25,4 @@ const GET = async (req, res) => {
|
|
|
25
25
|
});
|
|
26
26
|
};
|
|
27
27
|
exports.GET = GET;
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL29yZGVyLWdyb3Vwcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSxnRUFBMkU7QUFFcEUsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUErQixFQUMvQixHQUEwRCxFQUMxRCxFQUFFO0lBQ0YsOEVBQThFO0lBQzlFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxHQUFHLENBQUMsZ0JBQWdCLENBQUE7SUFFMUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSx3Q0FBMEIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ2pFLEtBQUssRUFBRTtZQUNMLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxFQUFFO1lBQ3BDLFNBQVMsRUFBRTtnQkFDVCxHQUFHLGdCQUFnQjtnQkFDbkIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLElBQUk7Z0JBQ3RDLElBQUksRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxJQUFJO2dCQUN0QyxLQUFLLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsS0FBK0I7YUFDbkU7U0FDRjtLQUNGLENBQUMsQ0FBQTtJQUVGLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFBO0lBRWpDLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCxZQUFZLEVBQUUsSUFBSTtRQUNsQixLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssSUFBSSxDQUFDO1FBQzNCLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUM7UUFDM0IsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQztLQUMzQixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUEzQlksUUFBQSxHQUFHLE9BMkJmIn0=
|
|
@@ -34,7 +34,9 @@ function hasAuthenticateFalse(filePath) {
|
|
|
34
34
|
try {
|
|
35
35
|
const content = fs_1.default.readFileSync(filePath, "utf-8");
|
|
36
36
|
return (/export\s+const\s+AUTHENTICATE\s*=\s*false/.test(content) ||
|
|
37
|
-
/export\s*\{[^}]*\bAUTHENTICATE\b[^}]*\}/.test(content)
|
|
37
|
+
/export\s*\{[^}]*\bAUTHENTICATE\b[^}]*\}/.test(content) ||
|
|
38
|
+
// Plugin routes are scanned in their compiled CommonJS output.
|
|
39
|
+
/\bexports\.AUTHENTICATE\s*=\s*false\b/.test(content));
|
|
38
40
|
}
|
|
39
41
|
catch {
|
|
40
42
|
return false;
|
|
@@ -83,4 +85,4 @@ const resolvePluginUnauthenticatedRoutes = (req) => {
|
|
|
83
85
|
return pluginPatterns;
|
|
84
86
|
};
|
|
85
87
|
exports.resolvePluginUnauthenticatedRoutes = resolvePluginUnauthenticatedRoutes;
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi11bmF1dGhlbnRpY2F0ZWQtcm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS91dGlscy9zY2FuLXVuYXV0aGVudGljYXRlZC1yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBZ0ZBLDhEQUVDO0FBbEZELDRDQUFtQjtBQUNuQixnREFBdUI7QUFFdkIscURBR2tDO0FBRWxDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUV2RCxTQUFTLFdBQVcsQ0FBQyxHQUFXO0lBQzlCLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQTtJQUUxQixJQUFJLENBQUMsWUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLFlBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7SUFFNUQsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM1QixNQUFNLFFBQVEsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFM0MsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDdEMsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDMUIsTUFBTSxHQUFHLEdBQUcsY0FBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDcEMsTUFBTSxRQUFRLEdBQUcsY0FBSSxDQUFDLFFBQVEsQ0FB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
|
|
@@ -3,36 +3,40 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.normalizeOrderPaymentCollections = exports.withCartPaymentCollectionFields = void 0;
|
|
4
4
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
5
|
const aggregate_status_1 = require("../../workflows/order-group/utils/aggregate-status");
|
|
6
|
-
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
// the
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
6
|
+
const split_order_payment_group_1 = require("../../workflows/payment/utils/split-order-payment-group");
|
|
7
|
+
// An order is paid through the cart's shared payment collection until that
|
|
8
|
+
// payment is captured, and through its own linked collection afterwards. Both
|
|
9
|
+
// are always loaded so the routes can pick the right one and recompute
|
|
10
|
+
// `payment_status`, even when the client sends an absolute `fields=` list that
|
|
11
|
+
// would otherwise replace the route defaults.
|
|
12
|
+
const PAYMENT_COLLECTION_FIELDS = [
|
|
13
|
+
"*",
|
|
14
|
+
"payments.*",
|
|
15
|
+
"payments.refunds.*",
|
|
16
|
+
"payments.refunds.refund_reason.*",
|
|
17
|
+
"payment_sessions.*",
|
|
17
18
|
];
|
|
18
19
|
const withCartPaymentCollectionFields = (fields) => {
|
|
19
|
-
return (0, utils_1.deduplicate)([
|
|
20
|
+
return (0, utils_1.deduplicate)([
|
|
21
|
+
...fields,
|
|
22
|
+
...PAYMENT_COLLECTION_FIELDS.map((f) => `payment_collections.${f}`),
|
|
23
|
+
...PAYMENT_COLLECTION_FIELDS.map((f) => `cart.payment_collection.${f}`),
|
|
24
|
+
]);
|
|
20
25
|
};
|
|
21
26
|
exports.withCartPaymentCollectionFields = withCartPaymentCollectionFields;
|
|
22
|
-
//
|
|
23
|
-
//
|
|
24
|
-
//
|
|
25
|
-
// `payment_status` from it — Medusa's aggregation reads the linked payment
|
|
26
|
-
// collections, which are always empty for split orders under the cart-path model.
|
|
27
|
+
// Exposes the order's payment collections under `payment_collections` whichever
|
|
28
|
+
// way they are attached, and recomputes `payment_status` from them: Medusa's
|
|
29
|
+
// aggregation only reads the linked ones.
|
|
27
30
|
const normalizeOrderPaymentCollections = (order) => {
|
|
28
|
-
const
|
|
31
|
+
const hadCart = !!order.cart;
|
|
32
|
+
const paymentCollections = (0, split_order_payment_group_1.resolveOrderPaymentCollections)(order);
|
|
29
33
|
delete order.cart;
|
|
30
|
-
if (!
|
|
34
|
+
if (!hadCart && !order.payment_collections) {
|
|
31
35
|
return order;
|
|
32
36
|
}
|
|
33
|
-
order.payment_collections =
|
|
37
|
+
order.payment_collections = paymentCollections;
|
|
34
38
|
order.payment_status = (0, aggregate_status_1.getLastPaymentStatus)(order);
|
|
35
39
|
return order;
|
|
36
40
|
};
|
|
37
41
|
exports.normalizeOrderPaymentCollections = normalizeOrderPaymentCollections;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtb3JkZXItcGF5bWVudC1zdGF0dXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3V0aWxzL3NwbGl0LW9yZGVyLXBheW1lbnQtc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUF1RDtBQUV2RCx5RkFBeUY7QUFFekYsdUdBQXdHO0FBUXhHLDJFQUEyRTtBQUMzRSw4RUFBOEU7QUFDOUUsdUVBQXVFO0FBQ3ZFLCtFQUErRTtBQUMvRSw4Q0FBOEM7QUFDOUMsTUFBTSx5QkFBeUIsR0FBRztJQUNoQyxHQUFHO0lBQ0gsWUFBWTtJQUNaLG9CQUFvQjtJQUNwQixrQ0FBa0M7SUFDbEMsb0JBQW9CO0NBQ3JCLENBQUE7QUFFTSxNQUFNLCtCQUErQixHQUFHLENBQUMsTUFBZ0IsRUFBWSxFQUFFO0lBQzVFLE9BQU8sSUFBQSxtQkFBVyxFQUFDO1FBQ2pCLEdBQUcsTUFBTTtRQUNULEdBQUcseUJBQXlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUM7UUFDbkUsR0FBRyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsQ0FBQztLQUN4RSxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFOWSxRQUFBLCtCQUErQixtQ0FNM0M7QUFFRCxnRkFBZ0Y7QUFDaEYsNkVBQTZFO0FBQzdFLDBDQUEwQztBQUNuQyxNQUFNLGdDQUFnQyxHQUFHLENBRzlDLEtBQVEsRUFDTCxFQUFFO0lBQ0wsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUE7SUFDNUIsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLDBEQUE4QixFQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQTtJQUVqQixJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0MsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixHQUFHLGtCQUFrQixDQUFBO0lBQzlDLEtBQUssQ0FBQyxjQUFjLEdBQUcsSUFBQSx1Q0FBb0IsRUFDekMsS0FBa0MsQ0FDbkMsQ0FBQTtJQUVELE9BQU8sS0FBSyxDQUFBO0FBQ2QsQ0FBQyxDQUFBO0FBcEJZLFFBQUEsZ0NBQWdDLG9DQW9CNUMifQ==
|
|
@@ -14,26 +14,32 @@ const refetchPayment = async (scope, paymentId, fields) => {
|
|
|
14
14
|
exports.refetchPayment = refetchPayment;
|
|
15
15
|
const validateSellerPayment = async (scope, sellerId, paymentId) => {
|
|
16
16
|
const query = scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
// check the seller owns one of that cart's orders.
|
|
17
|
+
// A payment is either an order's own, or the cart payment its orders share
|
|
18
|
+
// until it is captured, which is reachable only through the cart.
|
|
20
19
|
const { data: [payment], } = await query.graph({
|
|
21
20
|
entity: "payment",
|
|
22
21
|
filters: { id: paymentId },
|
|
23
|
-
fields: [
|
|
22
|
+
fields: [
|
|
23
|
+
"id",
|
|
24
|
+
"payment_collection.order.id",
|
|
25
|
+
"payment_collection.cart.id",
|
|
26
|
+
],
|
|
24
27
|
});
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
const paymentCollection = payment?.payment_collection;
|
|
29
|
+
let orderIds = [];
|
|
30
|
+
if (paymentCollection?.order?.id) {
|
|
31
|
+
orderIds = [paymentCollection.order.id];
|
|
32
|
+
}
|
|
33
|
+
else if (paymentCollection?.cart?.id) {
|
|
34
|
+
const { data: orderCartLinks } = await query.graph({
|
|
35
|
+
entity: "order_cart",
|
|
36
|
+
filters: { cart_id: paymentCollection.cart.id },
|
|
37
|
+
fields: ["order_id"],
|
|
38
|
+
});
|
|
39
|
+
orderIds = orderCartLinks
|
|
40
|
+
.map((link) => link.order_id)
|
|
41
|
+
.filter((id) => Boolean(id));
|
|
28
42
|
}
|
|
29
|
-
const { data: orderCartLinks } = await query.graph({
|
|
30
|
-
entity: "order_cart",
|
|
31
|
-
filters: { cart_id: cartId },
|
|
32
|
-
fields: ["order_id"],
|
|
33
|
-
});
|
|
34
|
-
const orderIds = orderCartLinks
|
|
35
|
-
.map((link) => link.order_id)
|
|
36
|
-
.filter((id) => Boolean(id));
|
|
37
43
|
if (!orderIds.length) {
|
|
38
44
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Payment with id: ${paymentId} was not found`);
|
|
39
45
|
}
|
|
@@ -47,4 +53,4 @@ const validateSellerPayment = async (scope, sellerId, paymentId) => {
|
|
|
47
53
|
}
|
|
48
54
|
};
|
|
49
55
|
exports.validateSellerPayment = validateSellerPayment;
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvdmVuZG9yL3BheW1lbnRzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBR2tDO0FBRTNCLE1BQU0sY0FBYyxHQUFHLEtBQUssRUFDakMsS0FBc0IsRUFDdEIsU0FBaUIsRUFDakIsTUFBZ0IsRUFDaEIsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFNUQsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUNoQixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsU0FBUztRQUNqQixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFO1FBQzFCLE1BQU07S0FDUCxDQUFDLENBQUE7SUFFRixPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDLENBQUE7QUFoQlksUUFBQSxjQUFjLGtCQWdCMUI7QUFFTSxNQUFNLHFCQUFxQixHQUFHLEtBQUssRUFDeEMsS0FBc0IsRUFDdEIsUUFBZ0IsRUFDaEIsU0FBaUIsRUFDakIsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFNUQsMkVBQTJFO0lBQzNFLGtFQUFrRTtJQUNsRSxNQUFNLEVBQ0osSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQ2hCLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUU7UUFDMUIsTUFBTSxFQUFFO1lBQ04sSUFBSTtZQUNKLDZCQUE2QjtZQUM3Qiw0QkFBNEI7U0FDN0I7S0FDRixDQUFDLENBQUE7SUFFRixNQUFNLGlCQUFpQixHQUNyQixPQVFELEVBQUUsa0JBQWtCLENBQUE7SUFFckIsSUFBSSxRQUFRLEdBQWEsRUFBRSxDQUFBO0lBRTNCLElBQUksaUJBQWlCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2pDLFFBQVEsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN6QyxDQUFDO1NBQU0sSUFBSSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDdkMsTUFBTSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDakQsTUFBTSxFQUFFLFlBQVk7WUFDcEIsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDL0MsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDO1NBQ3JCLENBQUMsQ0FBQTtRQUVGLFFBQVEsR0FBRyxjQUFjO2FBQ3RCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUUsSUFBOEIsQ0FBQyxRQUFRLENBQUM7YUFDdkQsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFDM0Isb0JBQW9CLFNBQVMsZ0JBQWdCLENBQzlDLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUNwQixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsY0FBYztRQUN0QixPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUU7UUFDcEQsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDO0tBQ3RCLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUMzQixvQkFBb0IsU0FBUyxnQkFBZ0IsQ0FDOUMsQ0FBQTtJQUNILENBQUM7QUFDSCxDQUFDLENBQUE7QUFyRVksUUFBQSxxQkFBcUIseUJBcUVqQyJ9
|
|
@@ -17,8 +17,10 @@ const POST = async (req, res) => {
|
|
|
17
17
|
if (!sellerMembers.length) {
|
|
18
18
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_ALLOWED, "You are not a member of this seller account");
|
|
19
19
|
}
|
|
20
|
-
req.session
|
|
21
|
-
|
|
20
|
+
if (req.session?.auth_context) {
|
|
21
|
+
req.session.seller_id = seller_id;
|
|
22
|
+
}
|
|
23
|
+
res.json({ success: true, seller_id });
|
|
22
24
|
};
|
|
23
25
|
exports.POST = POST;
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9zZWxsZXJzL3NlbGVjdC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxxREFHa0M7QUFJM0IsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUF1RCxFQUN2RCxHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUE7SUFDdkMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUE7SUFFMUMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQy9DO1FBQ0UsTUFBTSxFQUFFLGVBQWU7UUFDdkIsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7UUFDeEMsT0FBTyxFQUFFO1lBQ1AsU0FBUztZQUNULFNBQVMsRUFBRSxRQUFRO1NBQ3BCO0tBQ0YsRUFDRCxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUM1QixDQUFBO0lBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUM3Qiw2Q0FBNkMsQ0FDOUMsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUM7UUFDOUIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO0lBQ25DLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO0FBQ3hDLENBQUMsQ0FBQTtBQWpDWSxRQUFBLElBQUksUUFpQ2hCIn0=
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
4
|
-
const fs_1 = require("fs");
|
|
5
|
-
const path_1 = require("path");
|
|
3
|
+
const utils_1 = require("../utils");
|
|
6
4
|
class CodegenModuleService {
|
|
7
5
|
constructor({ logger }) {
|
|
8
6
|
this.__hooks = {
|
|
@@ -16,36 +14,17 @@ class CodegenModuleService {
|
|
|
16
14
|
if (process.env.NODE_ENV !== "development") {
|
|
17
15
|
return;
|
|
18
16
|
}
|
|
17
|
+
if (process.env.MERCUR_DEV_CODEGEN === "false") {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
19
20
|
try {
|
|
20
|
-
await
|
|
21
|
+
await (0, utils_1.runCodegen)(process.cwd());
|
|
21
22
|
}
|
|
22
23
|
catch (error) {
|
|
23
|
-
|
|
24
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
25
|
+
this.logger.warn(`Codegen failed: ${message}`);
|
|
24
26
|
}
|
|
25
27
|
}
|
|
26
|
-
detectPackageRunner_() {
|
|
27
|
-
const cwd = process.cwd();
|
|
28
|
-
const lockfiles = [
|
|
29
|
-
["bun.lockb", "bunx"],
|
|
30
|
-
["bun.lock", "bunx"],
|
|
31
|
-
["pnpm-lock.yaml", "pnpm exec"],
|
|
32
|
-
["yarn.lock", "yarn"],
|
|
33
|
-
];
|
|
34
|
-
const runner = lockfiles.find(([file]) => (0, fs_1.existsSync)((0, path_1.join)(cwd, file)));
|
|
35
|
-
return `${runner ? runner[1] : "npx"} @mercurjs/cli codegen`;
|
|
36
|
-
}
|
|
37
|
-
runCodegen_() {
|
|
38
|
-
return new Promise((resolve, reject) => {
|
|
39
|
-
const command = this.detectPackageRunner_();
|
|
40
|
-
(0, child_process_1.exec)(command, { cwd: process.cwd() }, (error, _stdout, stderr) => {
|
|
41
|
-
if (error) {
|
|
42
|
-
reject(stderr || error.message);
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
resolve();
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
28
|
}
|
|
50
29
|
exports.default = CodegenModuleService;
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWdlbi1tb2R1bGUtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2NvZGVnZW4vc2VydmljZXMvY29kZWdlbi1tb2R1bGUtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLG9DQUFxQztBQUVyQyxNQUFxQixvQkFBb0I7SUFHckMsWUFBWSxFQUFFLE1BQU0sRUFBc0I7UUFJMUMsWUFBTyxHQUFHO1lBQ04sa0JBQWtCLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQzNCLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7WUFDbkMsQ0FBQztTQUNKLENBQUE7UUFQRyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUN4QixDQUFDO0lBUUQsS0FBSyxDQUFDLGtCQUFrQjtRQUNwQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLE9BQU07UUFDVixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzdDLE9BQU07UUFDVixDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0QsTUFBTSxJQUFBLGtCQUFVLEVBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFDbkMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixNQUFNLE9BQU8sR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDbEQsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQTdCRCx1Q0E2QkMifQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function resolveLocalCli(cwd: string): string | null;
|
|
2
|
+
export declare function findNearestLockfileRunner(cwd: string): string;
|
|
3
|
+
export declare function detectPackageRunner(cwd: string): string;
|
|
4
|
+
export declare function runCodegen(cwd?: string, timeout?: number): Promise<void>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveLocalCli = resolveLocalCli;
|
|
4
|
+
exports.findNearestLockfileRunner = findNearestLockfileRunner;
|
|
5
|
+
exports.detectPackageRunner = detectPackageRunner;
|
|
6
|
+
exports.runCodegen = runCodegen;
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
const fs_1 = require("fs");
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
function resolveLocalCli(cwd) {
|
|
11
|
+
try {
|
|
12
|
+
return require.resolve("@mercurjs/cli", { paths: [cwd] });
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function findNearestLockfileRunner(cwd) {
|
|
19
|
+
let currentDir = cwd;
|
|
20
|
+
const lockfiles = [
|
|
21
|
+
["bun.lockb", "bunx"],
|
|
22
|
+
["bun.lock", "bunx"],
|
|
23
|
+
["pnpm-lock.yaml", "pnpm dlx"],
|
|
24
|
+
];
|
|
25
|
+
while (true) {
|
|
26
|
+
for (const [file, runner] of lockfiles) {
|
|
27
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(currentDir, file))) {
|
|
28
|
+
return runner;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const parentDir = (0, path_1.dirname)(currentDir);
|
|
32
|
+
if (parentDir === currentDir) {
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
currentDir = parentDir;
|
|
36
|
+
}
|
|
37
|
+
return "npx";
|
|
38
|
+
}
|
|
39
|
+
function detectPackageRunner(cwd) {
|
|
40
|
+
const userAgent = process.env.npm_config_user_agent;
|
|
41
|
+
if (userAgent) {
|
|
42
|
+
if (userAgent.startsWith("bun")) {
|
|
43
|
+
return "bunx";
|
|
44
|
+
}
|
|
45
|
+
if (userAgent.startsWith("pnpm")) {
|
|
46
|
+
return "pnpm dlx";
|
|
47
|
+
}
|
|
48
|
+
return "npx";
|
|
49
|
+
}
|
|
50
|
+
return findNearestLockfileRunner(cwd);
|
|
51
|
+
}
|
|
52
|
+
function runCodegen(cwd = process.cwd(), timeout = 15000) {
|
|
53
|
+
return new Promise((resolve, reject) => {
|
|
54
|
+
const localCli = resolveLocalCli(cwd);
|
|
55
|
+
if (localCli) {
|
|
56
|
+
(0, child_process_1.execFile)(process.execPath, [localCli, "codegen"], { cwd, timeout }, (error, _stdout, stderr) => {
|
|
57
|
+
if (error) {
|
|
58
|
+
if (error.killed) {
|
|
59
|
+
reject(new Error("Codegen timed out after 15s"));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
reject(new Error(stderr || error.message));
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
resolve();
|
|
66
|
+
});
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const runner = detectPackageRunner(cwd);
|
|
70
|
+
(0, child_process_1.exec)(`${runner} @mercurjs/cli codegen`, { cwd }, (error, _stdout, stderr) => {
|
|
71
|
+
if (error) {
|
|
72
|
+
reject(new Error(stderr || error.message));
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
resolve();
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jb2RlZ2VuL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsMENBTUM7QUFFRCw4REFzQkM7QUFFRCxrREFhQztBQUVELGdDQW9DQztBQXZGRCxpREFBOEM7QUFDOUMsMkJBQStCO0FBQy9CLCtCQUFvQztBQUVwQyxTQUFnQixlQUFlLENBQUMsR0FBVztJQUN2QyxJQUFJLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFBQyxNQUFNLENBQUM7UUFDTCxPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBZ0IseUJBQXlCLENBQUMsR0FBVztJQUNqRCxJQUFJLFVBQVUsR0FBRyxHQUFHLENBQUE7SUFDcEIsTUFBTSxTQUFTLEdBQXVCO1FBQ2xDLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztRQUNyQixDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUM7UUFDcEIsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUM7S0FDakMsQ0FBQTtJQUVELE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDVixLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksU0FBUyxFQUFFLENBQUM7WUFDckMsSUFBSSxJQUFBLGVBQVUsRUFBQyxJQUFBLFdBQUksRUFBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxPQUFPLE1BQU0sQ0FBQTtZQUNqQixDQUFDO1FBQ0wsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLElBQUEsY0FBTyxFQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3JDLElBQUksU0FBUyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzNCLE1BQUs7UUFDVCxDQUFDO1FBQ0QsVUFBVSxHQUFHLFNBQVMsQ0FBQTtJQUMxQixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUE7QUFDaEIsQ0FBQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLEdBQVc7SUFDM0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQTtJQUNuRCxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ1osSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxNQUFNLENBQUE7UUFDakIsQ0FBQztRQUNELElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sVUFBVSxDQUFBO1FBQ3JCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0lBRUQsT0FBTyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUN6QyxDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLE1BQWMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFVBQWtCLEtBQUs7SUFDM0UsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNuQyxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDckMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNYLElBQUEsd0JBQVEsRUFDSixPQUFPLENBQUMsUUFBUSxFQUNoQixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFDckIsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQ2hCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDdkIsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDUixJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDZixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFBO3dCQUNoRCxPQUFNO29CQUNWLENBQUM7b0JBQ0QsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtvQkFDMUMsT0FBTTtnQkFDVixDQUFDO2dCQUNELE9BQU8sRUFBRSxDQUFBO1lBQ2IsQ0FBQyxDQUNKLENBQUE7WUFDRCxPQUFNO1FBQ1YsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3ZDLElBQUEsb0JBQUksRUFDQSxHQUFHLE1BQU0sd0JBQXdCLEVBQ2pDLEVBQUUsR0FBRyxFQUFFLEVBQ1AsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3ZCLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1IsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtnQkFDMUMsT0FBTTtZQUNWLENBQUM7WUFDRCxPQUFPLEVBQUUsQ0FBQTtRQUNiLENBQUMsQ0FDSixDQUFBO0lBQ0wsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDIn0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20261006120000 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20261006120000 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`alter table if exists "payout" drop constraint if exists "payout_status_check";`);
|
|
8
|
+
this.addSql(`alter table if exists "payout" add constraint "payout_status_check" check ("status" in ('pending', 'processing', 'paid', 'failed', 'canceled'));`);
|
|
9
|
+
}
|
|
10
|
+
async down() {
|
|
11
|
+
this.addSql(`alter table if exists "payout" drop constraint if exists "payout_status_check";`);
|
|
12
|
+
this.addSql(`alter table if exists "payout" add constraint "payout_status_check" check ("status" in ('pending', 'paid', 'failed', 'canceled'));`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.Migration20261006120000 = Migration20261006120000;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjEwMDYxMjAwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wYXlvdXQvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI2MTAwNjEyMDAwMC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBcUU7QUFFckUsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsaUZBQWlGLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsTUFBTSxDQUFDLGtKQUFrSixDQUFDLENBQUM7SUFDbEssQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsaUZBQWlGLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsTUFBTSxDQUFDLG9JQUFvSSxDQUFDLENBQUM7SUFDcEosQ0FBQztDQUVGO0FBWkQsMERBWUMifQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { CreatePayoutAccountDTO, CreatePayoutDTO, CreateOnboardingDTO, OnboardingDTO, PayoutAccountDTO, PayoutAccountStatus, PayoutDTO, PayoutWebhookActionInput, PayoutWebhookResult, PayoutModuleOptions } from "@mercurjs/types";
|
|
1
|
+
import { CreatePayoutAccountDTO, CreatePayoutDTO, CreateOnboardingDTO, OnboardingDTO, PayoutAccountDTO, PayoutAccountStatus, PayoutDTO, PayoutWebhookActionInput, PayoutWebhookResult, PayoutModuleOptions, PayoutStatus } from "@mercurjs/types";
|
|
2
2
|
import PayoutProviderService from "./provider-service";
|
|
3
|
-
import {
|
|
3
|
+
import { Payout, PayoutAccount } from "../models";
|
|
4
|
+
import { Context, DAL, InferEntityType } from "@medusajs/framework/types";
|
|
4
5
|
import { EntityManager } from "@medusajs/framework/mikro-orm/knex";
|
|
5
6
|
type InjectedDependencies = {
|
|
6
7
|
payoutProviderService: PayoutProviderService;
|
|
@@ -24,7 +25,7 @@ declare const PayoutModuleService_base: import("@medusajs/framework/utils").Medu
|
|
|
24
25
|
amount: import("@medusajs/framework/utils").BigNumberProperty;
|
|
25
26
|
data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
|
|
26
27
|
account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout_account">, undefined>;
|
|
27
|
-
status: import("@medusajs/framework/utils").EnumProperty<typeof
|
|
28
|
+
status: import("@medusajs/framework/utils").EnumProperty<typeof PayoutStatus>;
|
|
28
29
|
}>, "payout">>;
|
|
29
30
|
}>, "payout_account">, undefined>;
|
|
30
31
|
}>, "onboarding">;
|
|
@@ -52,7 +53,7 @@ declare const PayoutModuleService_base: import("@medusajs/framework/utils").Medu
|
|
|
52
53
|
}>, "onboarding">>, false>;
|
|
53
54
|
payouts: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout">>;
|
|
54
55
|
}>, "payout_account">, undefined>;
|
|
55
|
-
status: import("@medusajs/framework/utils").EnumProperty<typeof
|
|
56
|
+
status: import("@medusajs/framework/utils").EnumProperty<typeof PayoutStatus>;
|
|
56
57
|
}>, "payout">;
|
|
57
58
|
readonly PayoutAccount: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
58
59
|
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
@@ -77,7 +78,7 @@ declare const PayoutModuleService_base: import("@medusajs/framework/utils").Medu
|
|
|
77
78
|
amount: import("@medusajs/framework/utils").BigNumberProperty;
|
|
78
79
|
data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
|
|
79
80
|
account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout_account">, undefined>;
|
|
80
|
-
status: import("@medusajs/framework/utils").EnumProperty<typeof
|
|
81
|
+
status: import("@medusajs/framework/utils").EnumProperty<typeof PayoutStatus>;
|
|
81
82
|
}>, "payout">>;
|
|
82
83
|
}>, "payout_account">;
|
|
83
84
|
}>>;
|
|
@@ -101,6 +102,10 @@ export default class PayoutModuleService extends PayoutModuleService_base {
|
|
|
101
102
|
createPayoutAccount(input: CreatePayoutAccountDTO, sharedContext?: Context<EntityManager>): Promise<PayoutAccountDTO>;
|
|
102
103
|
createOnboarding(input: CreateOnboardingDTO, sharedContext?: Context<EntityManager>): Promise<OnboardingDTO>;
|
|
103
104
|
createPayouts(input: CreatePayoutDTO, sharedContext?: Context<EntityManager>): Promise<PayoutDTO>;
|
|
105
|
+
protected createPayouts_(input: CreatePayoutDTO, sharedContext?: Context<EntityManager>): Promise<{
|
|
106
|
+
payout: InferEntityType<typeof Payout>;
|
|
107
|
+
payoutAccount: InferEntityType<typeof PayoutAccount>;
|
|
108
|
+
}>;
|
|
104
109
|
getWebhookActionAndData(input: PayoutWebhookActionInput): Promise<PayoutWebhookResult>;
|
|
105
110
|
}
|
|
106
111
|
export {};
|
|
@@ -104,30 +104,48 @@ class PayoutModuleService extends (0, utils_1.MedusaService)({
|
|
|
104
104
|
}
|
|
105
105
|
// @ts-ignore
|
|
106
106
|
async createPayouts(input, sharedContext) {
|
|
107
|
+
const { payout, payoutAccount } = await this.createPayouts_(input, sharedContext);
|
|
108
|
+
let updated;
|
|
109
|
+
try {
|
|
110
|
+
const providerResponse = await this.payoutProviderService_.createPayout({
|
|
111
|
+
account_id: input.account_id,
|
|
112
|
+
amount: input.amount,
|
|
113
|
+
currency_code: input.currency_code,
|
|
114
|
+
context: {
|
|
115
|
+
idempotency_key: payout.id,
|
|
116
|
+
...input.context
|
|
117
|
+
},
|
|
118
|
+
data: {
|
|
119
|
+
...payoutAccount.data,
|
|
120
|
+
...input.data
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
updated = await this.updatePayouts({
|
|
124
|
+
id: payout.id,
|
|
125
|
+
data: providerResponse.data,
|
|
126
|
+
status: providerResponse.status,
|
|
127
|
+
}, sharedContext);
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
await this.deletePayouts(payout.id, sharedContext).catch(() => null);
|
|
131
|
+
throw error;
|
|
132
|
+
}
|
|
133
|
+
return await this.baseRepository_.serialize(updated);
|
|
134
|
+
}
|
|
135
|
+
async createPayouts_(input, sharedContext) {
|
|
107
136
|
const payoutAccount = await this.retrievePayoutAccount(input.account_id, {
|
|
108
137
|
select: ['id', 'status', 'data']
|
|
109
138
|
}, sharedContext);
|
|
110
139
|
if (payoutAccount.status !== types_1.PayoutAccountStatus.ACTIVE) {
|
|
111
140
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_ALLOWED, `Account '${input.account_id}' is not active`);
|
|
112
141
|
}
|
|
113
|
-
const providerResponse = await this.payoutProviderService_.createPayout({
|
|
114
|
-
account_id: input.account_id,
|
|
115
|
-
amount: input.amount,
|
|
116
|
-
currency_code: input.currency_code,
|
|
117
|
-
context: input.context,
|
|
118
|
-
data: {
|
|
119
|
-
...payoutAccount.data,
|
|
120
|
-
...input.data
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
142
|
const payout = await super.createPayouts({
|
|
124
143
|
amount: input.amount,
|
|
125
144
|
currency_code: input.currency_code,
|
|
126
145
|
account_id: payoutAccount.id,
|
|
127
|
-
|
|
128
|
-
status: providerResponse.status,
|
|
146
|
+
status: types_1.PayoutStatus.PENDING,
|
|
129
147
|
}, sharedContext);
|
|
130
|
-
return
|
|
148
|
+
return { payout, payoutAccount };
|
|
131
149
|
}
|
|
132
150
|
async getWebhookActionAndData(input) {
|
|
133
151
|
return await this.payoutProviderService_.getWebhookActionAndData(input);
|
|
@@ -151,7 +169,7 @@ __decorate([
|
|
|
151
169
|
__metadata("design:returntype", Promise)
|
|
152
170
|
], PayoutModuleService.prototype, "createOnboarding", null);
|
|
153
171
|
__decorate([
|
|
154
|
-
(0, utils_1.
|
|
172
|
+
(0, utils_1.InjectManager)(),
|
|
155
173
|
(0, utils_1.EmitEvents)()
|
|
156
174
|
// @ts-ignore
|
|
157
175
|
,
|
|
@@ -160,4 +178,11 @@ __decorate([
|
|
|
160
178
|
__metadata("design:paramtypes", [Object, Object]),
|
|
161
179
|
__metadata("design:returntype", Promise)
|
|
162
180
|
], PayoutModuleService.prototype, "createPayouts", null);
|
|
163
|
-
|
|
181
|
+
__decorate([
|
|
182
|
+
(0, utils_1.InjectTransactionManager)(),
|
|
183
|
+
__param(1, (0, utils_1.MedusaContext)()),
|
|
184
|
+
__metadata("design:type", Function),
|
|
185
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
186
|
+
__metadata("design:returntype", Promise)
|
|
187
|
+
], PayoutModuleService.prototype, "createPayouts_", null);
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5b3V0LW1vZHVsZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvcGF5b3V0L3NlcnZpY2VzL3BheW91dC1tb2R1bGUtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLHFEQU9rQztBQUNsQywyQ0Fjd0I7QUFFeEIsc0NBQTZEO0FBUzdELE1BQXFCLG1CQUFvQixTQUFRLElBQUEscUJBQWEsRUFBQztJQUMzRCxVQUFVLEVBQVYsbUJBQVU7SUFDVixNQUFNLEVBQU4sZUFBTTtJQUNOLGFBQWEsRUFBYixzQkFBYTtDQUNoQixDQUFDO0lBS0UsWUFBWSxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBd0IsRUFBRSxPQUE0QjtRQUNyRyxhQUFhO1FBQ2IsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUE7UUFDbkIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHFCQUFxQixDQUFBO1FBQ25ELElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUc7WUFDWixHQUFHLHFDQUE2QjtZQUNoQyxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztTQUNyQixDQUFBO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDTixPQUFPO1lBQ0gsR0FBRyxxQ0FBNkI7WUFDaEMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1NBQzNCLENBQUE7SUFDTCxDQUFDO0lBSUssQUFBTixLQUFLLENBQUMsbUJBQW1CLENBQ3JCLEtBQTZCLEVBQ1osYUFBc0M7UUFFdkQsSUFBSSxhQUFhLEdBQWlELElBQUksQ0FBQTtRQUN0RSxJQUFJLGVBQWUsR0FBdUMsSUFBSSxDQUFBO1FBRTlELElBQUksQ0FBQztZQUNELGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FDM0MsRUFBRSxJQUFJLEVBQUUs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
|