@mercurjs/core 2.3.6-canary.0 → 2.3.6-canary.10
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/campaigns/middlewares.js +3 -9
- package/.medusa/server/src/api/admin/collections/middlewares.js +8 -33
- package/.medusa/server/src/api/admin/commission-rates/middlewares.js +9 -39
- package/.medusa/server/src/api/admin/core-route-permissions.d.ts +18 -0
- package/.medusa/server/src/api/admin/core-route-permissions.js +82 -0
- package/.medusa/server/src/api/admin/customer-groups/middlewares.js +3 -9
- package/.medusa/server/src/api/admin/inventory-items/middlewares.js +3 -9
- package/.medusa/server/src/api/admin/members/middlewares.js +3 -9
- package/.medusa/server/src/api/admin/middlewares.js +8 -2
- package/.medusa/server/src/api/admin/offers/middlewares.js +10 -21
- package/.medusa/server/src/api/admin/order-groups/middlewares.js +10 -15
- package/.medusa/server/src/api/admin/orders/middlewares.js +3 -9
- package/.medusa/server/src/api/admin/payouts/middlewares.js +4 -15
- package/.medusa/server/src/api/admin/price-lists/middlewares.js +3 -9
- package/.medusa/server/src/api/admin/product-attributes/middlewares.js +11 -51
- package/.medusa/server/src/api/admin/product-categories/middlewares.js +14 -45
- package/.medusa/server/src/api/admin/product-changes/middlewares.js +8 -15
- package/.medusa/server/src/api/admin/products/[id]/route.js +8 -3
- package/.medusa/server/src/api/admin/products/middlewares.js +21 -99
- package/.medusa/server/src/api/admin/products/validators.d.ts +3 -3
- package/.medusa/server/src/api/admin/products/validators.js +4 -3
- package/.medusa/server/src/api/admin/promotions/middlewares.js +7 -21
- package/.medusa/server/src/api/admin/reservations/middlewares.js +3 -9
- package/.medusa/server/src/api/admin/reviews/middlewares.js +8 -33
- package/.medusa/server/src/api/admin/sellers/middlewares.js +32 -117
- package/.medusa/server/src/api/admin/sellers/query-config.js +3 -3
- package/.medusa/server/src/api/admin/shipping-options/middlewares.js +3 -9
- package/.medusa/server/src/api/admin/shipping-profiles/middlewares.js +3 -9
- package/.medusa/server/src/api/admin/stock-locations/middlewares.js +3 -9
- package/.medusa/server/src/api/admin/users/me/route.d.ts +4 -0
- package/.medusa/server/src/api/admin/users/me/route.js +42 -0
- package/.medusa/server/src/api/admin/users/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/users/middlewares.js +17 -0
- package/.medusa/server/src/api/utils/ensure-seller-middleware.js +1 -15
- package/.medusa/server/src/api/utils/index.d.ts +1 -2
- package/.medusa/server/src/api/utils/index.js +2 -3
- package/.medusa/server/src/api/utils/permissions-middleware.d.ts +32 -0
- package/.medusa/server/src/api/utils/permissions-middleware.js +133 -0
- package/.medusa/server/src/api/utils/scan-unauthenticated-routes.d.ts +6 -0
- package/.medusa/server/src/api/utils/scan-unauthenticated-routes.js +29 -6
- 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/utils/unless-base-url.d.ts +4 -2
- package/.medusa/server/src/api/utils/unless-base-url.js +12 -4
- package/.medusa/server/src/api/vendor/campaigns/middlewares.js +9 -39
- package/.medusa/server/src/api/vendor/claims/middlewares.js +37 -129
- package/.medusa/server/src/api/vendor/collections/middlewares.js +5 -21
- package/.medusa/server/src/api/vendor/currencies/middlewares.js +4 -15
- package/.medusa/server/src/api/vendor/customer-groups/middlewares.js +9 -39
- package/.medusa/server/src/api/vendor/customers/middlewares.js +5 -21
- package/.medusa/server/src/api/vendor/exchanges/middlewares.js +31 -105
- package/.medusa/server/src/api/vendor/fulfillment-providers/middlewares.js +3 -9
- package/.medusa/server/src/api/vendor/fulfillment-sets/middlewares.js +8 -33
- package/.medusa/server/src/api/vendor/inventory-items/middlewares.js +14 -69
- package/.medusa/server/src/api/vendor/members/invites/accept/route.js +2 -1
- package/.medusa/server/src/api/vendor/members/me/route.js +6 -3
- package/.medusa/server/src/api/vendor/members/middlewares.js +3 -17
- package/.medusa/server/src/api/vendor/members/validators.d.ts +4 -2
- package/.medusa/server/src/api/vendor/members/validators.js +3 -2
- package/.medusa/server/src/api/vendor/middlewares.js +8 -3
- package/.medusa/server/src/api/vendor/offers/middlewares.js +10 -45
- package/.medusa/server/src/api/vendor/order-edits/middlewares.js +23 -69
- package/.medusa/server/src/api/vendor/orders/middlewares.js +18 -63
- package/.medusa/server/src/api/vendor/payments/helpers.js +22 -16
- package/.medusa/server/src/api/vendor/payments/middlewares.js +7 -33
- package/.medusa/server/src/api/vendor/payout-accounts/middlewares.js +6 -27
- package/.medusa/server/src/api/vendor/payouts/middlewares.js +4 -15
- package/.medusa/server/src/api/vendor/price-lists/middlewares.js +11 -51
- package/.medusa/server/src/api/vendor/price-preferences/middlewares.js +4 -15
- package/.medusa/server/src/api/vendor/product-attributes/middlewares.js +4 -15
- package/.medusa/server/src/api/vendor/product-categories/middlewares.js +5 -21
- package/.medusa/server/src/api/vendor/product-tags/middlewares.js +4 -15
- package/.medusa/server/src/api/vendor/product-types/middlewares.js +4 -15
- package/.medusa/server/src/api/vendor/product-variants/middlewares.js +3 -9
- package/.medusa/server/src/api/vendor/products/middlewares.js +24 -75
- package/.medusa/server/src/api/vendor/products/validators.d.ts +2 -2
- package/.medusa/server/src/api/vendor/products/validators.js +4 -3
- package/.medusa/server/src/api/vendor/promotions/middlewares.js +14 -69
- package/.medusa/server/src/api/vendor/refund-reasons/middlewares.js +4 -15
- package/.medusa/server/src/api/vendor/regions/middlewares.js +4 -15
- package/.medusa/server/src/api/vendor/reservations/middlewares.js +9 -33
- package/.medusa/server/src/api/vendor/return-reasons/middlewares.js +4 -15
- package/.medusa/server/src/api/vendor/returns/middlewares.js +26 -135
- package/.medusa/server/src/api/vendor/reviews/middlewares.js +5 -21
- package/.medusa/server/src/api/vendor/sales-channels/middlewares.js +5 -21
- package/.medusa/server/src/api/vendor/sellers/me/route.js +1 -1
- package/.medusa/server/src/api/vendor/sellers/middlewares.js +15 -92
- package/.medusa/server/src/api/vendor/sellers/query-config.d.ts +0 -4
- package/.medusa/server/src/api/vendor/sellers/query-config.js +8 -11
- package/.medusa/server/src/api/vendor/shipping-option-types/middlewares.js +4 -15
- package/.medusa/server/src/api/vendor/shipping-options/middlewares.js +9 -39
- package/.medusa/server/src/api/vendor/shipping-profiles/middlewares.js +4 -15
- package/.medusa/server/src/api/vendor/stock-locations/middlewares.js +11 -51
- package/.medusa/server/src/api/vendor/stock-locations/validators.d.ts +2 -2
- package/.medusa/server/src/api/vendor/uploads/middlewares.js +9 -9
- package/.medusa/server/src/modules/payout/migrations/Migration20260928120000.d.ts +5 -0
- package/.medusa/server/src/modules/payout/migrations/Migration20260928120000.js +14 -0
- package/.medusa/server/src/modules/payout/models/payout-account.js +2 -2
- package/.medusa/server/src/modules/seller/repositories/order-group.js +9 -1
- package/.medusa/server/src/patches/index.d.ts +11 -1
- package/.medusa/server/src/patches/index.js +63 -17
- package/.medusa/server/src/patches/loader.d.ts +10 -0
- package/.medusa/server/src/patches/loader.js +46 -4
- package/.medusa/server/src/patches/manifest.js +21 -2
- package/.medusa/server/src/patches/patches/@medusajs+core-flows@2.20.1-delivery-hook.patch +39 -0
- package/.medusa/server/src/patches/patches/@medusajs+core-flows@2.21.0-payment-hooks.patch +89 -0
- package/.medusa/server/src/patches/register.d.ts +1 -0
- package/.medusa/server/src/patches/register.js +10 -0
- package/.medusa/server/src/permissions/definitions/api-keys.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/api-keys.js +8 -0
- package/.medusa/server/src/permissions/definitions/commissions.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/commissions.js +9 -0
- package/.medusa/server/src/permissions/definitions/customers.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/customers.js +9 -0
- package/.medusa/server/src/permissions/definitions/fulfillment.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/fulfillment.js +10 -0
- package/.medusa/server/src/permissions/definitions/inventory.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/inventory.js +10 -0
- package/.medusa/server/src/permissions/definitions/members.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/members.js +9 -0
- package/.medusa/server/src/permissions/definitions/notifications.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/notifications.js +8 -0
- package/.medusa/server/src/permissions/definitions/offers.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/offers.js +8 -0
- package/.medusa/server/src/permissions/definitions/orders.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/orders.js +12 -0
- package/.medusa/server/src/permissions/definitions/payments.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/payments.js +8 -0
- package/.medusa/server/src/permissions/definitions/payouts.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/payouts.js +9 -0
- package/.medusa/server/src/permissions/definitions/price-lists.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/price-lists.js +9 -0
- package/.medusa/server/src/permissions/definitions/product-attributes.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/product-attributes.js +8 -0
- package/.medusa/server/src/permissions/definitions/products.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/products.js +14 -0
- package/.medusa/server/src/permissions/definitions/promotions.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/promotions.js +9 -0
- package/.medusa/server/src/permissions/definitions/refund-reasons.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/refund-reasons.js +8 -0
- package/.medusa/server/src/permissions/definitions/regions.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/regions.js +9 -0
- package/.medusa/server/src/permissions/definitions/return-reasons.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/return-reasons.js +8 -0
- package/.medusa/server/src/permissions/definitions/reviews.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/reviews.js +8 -0
- package/.medusa/server/src/permissions/definitions/roles.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/roles.js +9 -0
- package/.medusa/server/src/permissions/definitions/sales-channels.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/sales-channels.js +8 -0
- package/.medusa/server/src/permissions/definitions/sellers.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/sellers.js +10 -0
- package/.medusa/server/src/permissions/definitions/store.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/store.js +8 -0
- package/.medusa/server/src/permissions/definitions/translations.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/translations.js +8 -0
- package/.medusa/server/src/permissions/definitions/users.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/users.js +8 -0
- package/.medusa/server/src/permissions/definitions/workflow-executions.d.ts +1 -0
- package/.medusa/server/src/permissions/definitions/workflow-executions.js +8 -0
- package/.medusa/server/src/permissions/index.d.ts +27 -0
- package/.medusa/server/src/permissions/index.js +44 -0
- package/.medusa/server/src/permissions/registry.d.ts +18 -0
- package/.medusa/server/src/permissions/registry.js +86 -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/utils/sanitize-rich-text.d.ts +2 -0
- package/.medusa/server/src/utils/sanitize-rich-text.js +50 -0
- package/.medusa/server/src/with-mercur.d.ts +5 -3
- package/.medusa/server/src/with-mercur.js +4 -23
- package/.medusa/server/src/workflows/cart/workflows/complete-cart-with-split-orders.js +18 -31
- package/.medusa/server/src/workflows/commission/workflows/refresh-order-commission-lines.d.ts +8 -1
- package/.medusa/server/src/workflows/commission/workflows/refresh-order-commission-lines.js +6 -2
- package/.medusa/server/src/workflows/index.d.ts +1 -0
- package/.medusa/server/src/workflows/index.js +2 -1
- package/.medusa/server/src/workflows/offer/workflows/create-offers.js +34 -4
- package/.medusa/server/src/workflows/order/workflows/confirm-return-receive.d.ts +15 -2
- package/.medusa/server/src/workflows/order/workflows/confirm-return-receive.js +14 -3
- 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 +2 -0
- package/.medusa/server/src/workflows/payment/workflows/index.js +3 -1
- package/.medusa/server/src/workflows/payment/workflows/payment-hooks.d.ts +25 -0
- package/.medusa/server/src/workflows/payment/workflows/payment-hooks.js +10 -0
- 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/.medusa/server/src/workflows/payout/workflows/create-payout.d.ts +4 -1
- package/.medusa/server/src/workflows/payout/workflows/create-payout.js +6 -2
- package/.medusa/server/src/workflows/product-edit/workflows/apply-product-change-actions.js +18 -2
- package/.medusa/server/src/workflows/product-edit/workflows/product-edit-delete-product.d.ts +1 -0
- package/.medusa/server/src/workflows/product-edit/workflows/product-edit-delete-product.js +2 -2
- package/.medusa/server/src/workflows/seller/steps/index.d.ts +0 -1
- package/.medusa/server/src/workflows/seller/steps/index.js +1 -2
- package/.medusa/server/src/workflows/seller/workflows/accept-member-invite.d.ts +17 -2
- package/.medusa/server/src/workflows/seller/workflows/accept-member-invite.js +14 -3
- package/.medusa/server/src/workflows/seller/workflows/create-seller-account.d.ts +16 -1
- package/.medusa/server/src/workflows/seller/workflows/create-seller-account.js +6 -3
- package/.medusa/server/src/workflows/seller/workflows/index.d.ts +0 -1
- package/.medusa/server/src/workflows/seller/workflows/index.js +1 -2
- package/package.json +13 -11
- package/.medusa/server/src/api/utils/policy-resources.d.ts +0 -59
- package/.medusa/server/src/api/utils/policy-resources.js +0 -64
- package/.medusa/server/src/api/utils/rbac-role-fields.d.ts +0 -1
- package/.medusa/server/src/api/utils/rbac-role-fields.js +0 -10
- package/.medusa/server/src/api/utils/resolve-admin-roles-middleware.d.ts +0 -19
- package/.medusa/server/src/api/utils/resolve-admin-roles-middleware.js +0 -55
- package/.medusa/server/src/api/vendor/rbac/me/permissions/route.d.ts +0 -16
- package/.medusa/server/src/api/vendor/rbac/me/permissions/route.js +0 -58
- package/.medusa/server/src/links/seller-member-rbac-role.d.ts +0 -2
- package/.medusa/server/src/links/seller-member-rbac-role.js +0 -41
- package/.medusa/server/src/modules/seller/utils/ensure-seller-default-roles.d.ts +0 -11
- package/.medusa/server/src/modules/seller/utils/ensure-seller-default-roles.js +0 -128
- package/.medusa/server/src/policies/commission.d.ts +0 -1
- package/.medusa/server/src/policies/commission.js +0 -12
- package/.medusa/server/src/policies/offer.d.ts +0 -1
- package/.medusa/server/src/policies/offer.js +0 -7
- package/.medusa/server/src/policies/payout.d.ts +0 -1
- package/.medusa/server/src/policies/payout.js +0 -7
- package/.medusa/server/src/policies/product-attribute.d.ts +0 -1
- package/.medusa/server/src/policies/product-attribute.js +0 -7
- package/.medusa/server/src/policies/product-edit.d.ts +0 -1
- package/.medusa/server/src/policies/product-edit.js +0 -7
- package/.medusa/server/src/policies/review.d.ts +0 -1
- package/.medusa/server/src/policies/review.js +0 -7
- package/.medusa/server/src/policies/seller.d.ts +0 -1
- package/.medusa/server/src/policies/seller.js +0 -13
- package/.medusa/server/src/utils/generate-resource-policies.d.ts +0 -7
- package/.medusa/server/src/utils/generate-resource-policies.js +0 -30
- package/.medusa/server/src/workflows/seller/steps/create-seller-default-roles.d.ts +0 -2
- package/.medusa/server/src/workflows/seller/steps/create-seller-default-roles.js +0 -16
- package/.medusa/server/src/workflows/seller/workflows/create-seller-defaults.d.ts +0 -2
- package/.medusa/server/src/workflows/seller/workflows/create-seller-defaults.js +0 -11
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PERMISSIONS_FIELD = exports.REQUIRED_PERMISSION = void 0;
|
|
4
|
+
exports.isPermissionsModuleEnabled = isPermissionsModuleEnabled;
|
|
5
|
+
exports.resolvePermissionsMiddleware = resolvePermissionsMiddleware;
|
|
6
|
+
exports.requirePermission = requirePermission;
|
|
7
|
+
exports.requireAnyPermission = requireAnyPermission;
|
|
8
|
+
exports.takePermissionsField = takePermissionsField;
|
|
9
|
+
exports.attachPermissions = attachPermissions;
|
|
10
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
11
|
+
const types_1 = require("@mercurjs/types");
|
|
12
|
+
const permissions_1 = require("../../permissions");
|
|
13
|
+
function isPermissionsModuleEnabled(config) {
|
|
14
|
+
const modules = config.modules;
|
|
15
|
+
const entry = modules?.[types_1.PERMISSIONS_MODULE];
|
|
16
|
+
if (!entry) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return !(typeof entry === "object" && "disable" in entry && entry.disable);
|
|
20
|
+
}
|
|
21
|
+
function getResolver(req) {
|
|
22
|
+
const config = req.scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
|
|
23
|
+
if (!isPermissionsModuleEnabled(config)) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
return req.scope.resolve(types_1.PERMISSIONS_MODULE);
|
|
27
|
+
}
|
|
28
|
+
let catalogValidated = false;
|
|
29
|
+
function resolvePermissionsMiddleware(surface) {
|
|
30
|
+
return async (req, _res, next) => {
|
|
31
|
+
const catalog = (0, permissions_1.getPermissionCatalog)();
|
|
32
|
+
if (!catalogValidated) {
|
|
33
|
+
(0, permissions_1.validatePermissionCatalog)(catalog);
|
|
34
|
+
catalogValidated = true;
|
|
35
|
+
}
|
|
36
|
+
const resolver = getResolver(req);
|
|
37
|
+
const actorId = req.auth_context?.actor_id;
|
|
38
|
+
if (!resolver || !actorId) {
|
|
39
|
+
req.permissions = (0, permissions_1.grantAll)(catalog);
|
|
40
|
+
req.permissions_enforced = false;
|
|
41
|
+
return next();
|
|
42
|
+
}
|
|
43
|
+
const actor = {
|
|
44
|
+
actor_type: req.auth_context.actor_type,
|
|
45
|
+
actor_id: actorId,
|
|
46
|
+
surface,
|
|
47
|
+
seller_id: req.seller_context?.seller_id,
|
|
48
|
+
seller_member_id: req.seller_context?.seller_member?.id,
|
|
49
|
+
};
|
|
50
|
+
try {
|
|
51
|
+
req.permissions = await resolver.resolvePermissions(actor, catalog);
|
|
52
|
+
req.permissions_enforced = true;
|
|
53
|
+
next();
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
next(error);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
exports.REQUIRED_PERMISSION = Symbol.for("mercur:required-permission");
|
|
61
|
+
function requirePermission(key, right) {
|
|
62
|
+
const middleware = (req, res, next) => {
|
|
63
|
+
req.required_permissions ??= [];
|
|
64
|
+
req.required_permissions.push({ key, right });
|
|
65
|
+
// Routes reached before the resolving middleware (public or pre-seller
|
|
66
|
+
// routes) have nothing to enforce against.
|
|
67
|
+
if (!req.permissions_enforced) {
|
|
68
|
+
return next();
|
|
69
|
+
}
|
|
70
|
+
if ((0, permissions_1.satisfiesRight)(req.permissions?.[key], right)) {
|
|
71
|
+
return next();
|
|
72
|
+
}
|
|
73
|
+
res.status(403).json({
|
|
74
|
+
type: "not_allowed",
|
|
75
|
+
code: types_1.MISSING_PERMISSION_CODE,
|
|
76
|
+
message: `Missing required permission: ${key}:${right}`,
|
|
77
|
+
permission: key,
|
|
78
|
+
right,
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
return Object.assign(middleware, {
|
|
82
|
+
[exports.REQUIRED_PERMISSION]: { key, right },
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Passes when the actor holds any one of the requirements. For routes shared
|
|
87
|
+
* by several domains, e.g. uploads used by both products and the store profile.
|
|
88
|
+
*/
|
|
89
|
+
function requireAnyPermission(requirements) {
|
|
90
|
+
const middleware = (req, res, next) => {
|
|
91
|
+
req.required_permissions ??= [];
|
|
92
|
+
req.required_permissions.push(...requirements);
|
|
93
|
+
if (!req.permissions_enforced) {
|
|
94
|
+
return next();
|
|
95
|
+
}
|
|
96
|
+
if (requirements.some(({ key, right }) => (0, permissions_1.satisfiesRight)(req.permissions?.[key], right))) {
|
|
97
|
+
return next();
|
|
98
|
+
}
|
|
99
|
+
const [{ key, right }] = requirements;
|
|
100
|
+
res.status(403).json({
|
|
101
|
+
type: "not_allowed",
|
|
102
|
+
code: types_1.MISSING_PERMISSION_CODE,
|
|
103
|
+
message: `Missing required permission: ${requirements
|
|
104
|
+
.map((requirement) => `${requirement.key}:${requirement.right}`)
|
|
105
|
+
.join(" or ")}`,
|
|
106
|
+
permission: key,
|
|
107
|
+
right,
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
return Object.assign(middleware, {
|
|
111
|
+
[exports.REQUIRED_PERMISSION]: requirements[0],
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
exports.PERMISSIONS_FIELD = "permissions";
|
|
115
|
+
/**
|
|
116
|
+
* `permissions` is a virtual field: pull it out of the query config before it
|
|
117
|
+
* reaches `query.graph`, and report whether the client asked for it.
|
|
118
|
+
*/
|
|
119
|
+
function takePermissionsField(req) {
|
|
120
|
+
const fields = req.queryConfig?.fields ?? [];
|
|
121
|
+
const requested = fields.includes(exports.PERMISSIONS_FIELD);
|
|
122
|
+
if (requested) {
|
|
123
|
+
req.queryConfig.fields = fields.filter((field) => field !== exports.PERMISSIONS_FIELD);
|
|
124
|
+
}
|
|
125
|
+
return requested;
|
|
126
|
+
}
|
|
127
|
+
function attachPermissions(req, entity, requested) {
|
|
128
|
+
if (!requested || !req.permissions_enforced || !req.permissions) {
|
|
129
|
+
return entity;
|
|
130
|
+
}
|
|
131
|
+
return { ...entity, permissions: req.permissions };
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtbWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvdXRpbHMvcGVybWlzc2lvbnMtbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpQ0EsZ0VBU0M7QUFrQkQsb0VBb0NDO0FBSUQsOENBK0JDO0FBTUQsb0RBcUNDO0FBUUQsb0RBU0M7QUFFRCw4Q0FTQztBQXBNRCxxREFBcUU7QUFDckUsMkNBU3dCO0FBRXhCLG1EQUswQjtBQVUxQixTQUFnQiwwQkFBMEIsQ0FBQyxNQUFvQjtJQUM3RCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBOEMsQ0FBQTtJQUNyRSxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsQ0FBQywwQkFBa0IsQ0FBQyxDQUFBO0lBRTNDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxTQUFTLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUM1RSxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQ2xCLEdBQStCO0lBRS9CLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUM5QixpQ0FBeUIsQ0FBQyxhQUFhLENBQ3hDLENBQUE7SUFFRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN4QyxPQUFPLFNBQVMsQ0FBQTtJQUNsQixDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBc0IsMEJBQWtCLENBQUMsQ0FBQTtBQUNuRSxDQUFDO0FBRUQsSUFBSSxnQkFBZ0IsR0FBRyxLQUFLLENBQUE7QUFFNUIsU0FBZ0IsNEJBQTRCLENBQUMsT0FBMEI7SUFDckUsT0FBTyxLQUFLLEVBQ1YsR0FBK0Is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
|
|
@@ -1 +1,7 @@
|
|
|
1
|
+
import type { MedusaRequest } from "@medusajs/framework";
|
|
1
2
|
export declare function scanUnauthenticatedRoutes(projectRoot: string): RegExp[];
|
|
3
|
+
/**
|
|
4
|
+
* Plugin routes are resolved on the first request: the vendor middlewares are
|
|
5
|
+
* built at import time, before the config module is available.
|
|
6
|
+
*/
|
|
7
|
+
export declare const resolvePluginUnauthenticatedRoutes: (req: MedusaRequest) => Promise<RegExp[]>;
|
|
@@ -3,9 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.resolvePluginUnauthenticatedRoutes = void 0;
|
|
6
7
|
exports.scanUnauthenticatedRoutes = scanUnauthenticatedRoutes;
|
|
7
8
|
const fs_1 = __importDefault(require("fs"));
|
|
8
9
|
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
9
11
|
const VALID_EXTENSIONS = [".ts", ".tsx", ".js", ".jsx"];
|
|
10
12
|
function crawlRoutes(dir) {
|
|
11
13
|
const files = [];
|
|
@@ -32,7 +34,9 @@ function hasAuthenticateFalse(filePath) {
|
|
|
32
34
|
try {
|
|
33
35
|
const content = fs_1.default.readFileSync(filePath, "utf-8");
|
|
34
36
|
return (/export\s+const\s+AUTHENTICATE\s*=\s*false/.test(content) ||
|
|
35
|
-
/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));
|
|
36
40
|
}
|
|
37
41
|
catch {
|
|
38
42
|
return false;
|
|
@@ -50,10 +54,9 @@ function filePathToRegex(filePath, apiDir) {
|
|
|
50
54
|
});
|
|
51
55
|
return new RegExp("^\\/" + regexSegments.join("\\/") + "$");
|
|
52
56
|
}
|
|
53
|
-
function
|
|
54
|
-
const
|
|
55
|
-
const
|
|
56
|
-
const routeFiles = crawlRoutes(vendorApiDir);
|
|
57
|
+
function scanSourceDir(srcDir) {
|
|
58
|
+
const apiDir = path_1.default.join(srcDir, "api");
|
|
59
|
+
const routeFiles = crawlRoutes(path_1.default.join(apiDir, "vendor"));
|
|
57
60
|
const patterns = [];
|
|
58
61
|
for (const file of routeFiles) {
|
|
59
62
|
if (hasAuthenticateFalse(file)) {
|
|
@@ -62,4 +65,24 @@ function scanUnauthenticatedRoutes(projectRoot) {
|
|
|
62
65
|
}
|
|
63
66
|
return patterns;
|
|
64
67
|
}
|
|
65
|
-
|
|
68
|
+
function scanUnauthenticatedRoutes(projectRoot) {
|
|
69
|
+
return scanSourceDir(path_1.default.join(projectRoot, "src"));
|
|
70
|
+
}
|
|
71
|
+
let pluginPatterns;
|
|
72
|
+
/**
|
|
73
|
+
* Plugin routes are resolved on the first request: the vendor middlewares are
|
|
74
|
+
* built at import time, before the config module is available.
|
|
75
|
+
*/
|
|
76
|
+
const resolvePluginUnauthenticatedRoutes = (req) => {
|
|
77
|
+
pluginPatterns ??= (async () => {
|
|
78
|
+
const configModule = req.scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
|
|
79
|
+
const plugins = await (0, utils_1.getResolvedPlugins)(process.cwd(), configModule);
|
|
80
|
+
return plugins.flatMap((plugin) => scanSourceDir(plugin.resolve));
|
|
81
|
+
})().catch((error) => {
|
|
82
|
+
pluginPatterns = undefined;
|
|
83
|
+
throw error;
|
|
84
|
+
});
|
|
85
|
+
return pluginPatterns;
|
|
86
|
+
};
|
|
87
|
+
exports.resolvePluginUnauthenticatedRoutes = resolvePluginUnauthenticatedRoutes;
|
|
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==
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { MedusaNextFunction } from '@medusajs/framework';
|
|
2
2
|
import { MedusaResponse, MiddlewareFunction } from '@medusajs/framework';
|
|
3
3
|
import { MedusaRequest } from '@medusajs/framework';
|
|
4
|
+
type PathMatcher = RegExp | RegExp[] | ((req: MedusaRequest) => RegExp[] | Promise<RegExp[]>);
|
|
4
5
|
/**
|
|
5
6
|
* Due to Medusa's `unlessPath` function bug, we need to use this function to skip middlewares for particular routes.
|
|
6
|
-
* @param onPath - Regular expression
|
|
7
|
+
* @param onPath - Regular expression(s) to match against the base URL, or a resolver returning them per request
|
|
7
8
|
* @param middleware - The middleware function to execute
|
|
8
9
|
* @param methods - Optional array of HTTP methods to match against. If not provided, matches all methods.
|
|
9
10
|
*/
|
|
10
|
-
export declare const unlessBaseUrl: (onPath:
|
|
11
|
+
export declare const unlessBaseUrl: (onPath: PathMatcher, middleware: MiddlewareFunction, methods?: string[]) => (req: MedusaRequest, res: MedusaResponse, next: MedusaNextFunction) => Promise<any>;
|
|
12
|
+
export {};
|
|
@@ -3,13 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.unlessBaseUrl = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Due to Medusa's `unlessPath` function bug, we need to use this function to skip middlewares for particular routes.
|
|
6
|
-
* @param onPath - Regular expression
|
|
6
|
+
* @param onPath - Regular expression(s) to match against the base URL, or a resolver returning them per request
|
|
7
7
|
* @param middleware - The middleware function to execute
|
|
8
8
|
* @param methods - Optional array of HTTP methods to match against. If not provided, matches all methods.
|
|
9
9
|
*/
|
|
10
|
-
const unlessBaseUrl = (onPath, middleware, methods) => (req, res, next) => {
|
|
10
|
+
const unlessBaseUrl = (onPath, middleware, methods) => async (req, res, next) => {
|
|
11
11
|
const methodMatches = !methods || methods.includes(req.method.toUpperCase());
|
|
12
|
-
|
|
12
|
+
let paths;
|
|
13
|
+
try {
|
|
14
|
+
paths = typeof onPath === "function"
|
|
15
|
+
? await onPath(req)
|
|
16
|
+
: Array.isArray(onPath) ? onPath : [onPath];
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
return next(error);
|
|
20
|
+
}
|
|
13
21
|
const pathMatches = paths.some(p => p.test(req.baseUrl));
|
|
14
22
|
if (pathMatches && methodMatches) {
|
|
15
23
|
return next();
|
|
@@ -19,4 +27,4 @@ const unlessBaseUrl = (onPath, middleware, methods) => (req, res, next) => {
|
|
|
19
27
|
}
|
|
20
28
|
};
|
|
21
29
|
exports.unlessBaseUrl = unlessBaseUrl;
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5sZXNzLWJhc2UtdXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS91dGlscy91bmxlc3MtYmFzZS11cmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBU0E7Ozs7O0dBS0c7QUFDSSxNQUFNLGFBQWEsR0FDdEIsQ0FBQyxNQUFtQixFQUFFLFVBQThCLEVBQUUsT0FBa0IsRUFBRSxFQUFFLENBQ3hFLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsSUFBd0IsRUFBRSxFQUFFO0lBQ3hFLE1BQU0sYUFBYSxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBQzVFLElBQUksS0FBZSxDQUFBO0lBQ25CLElBQUksQ0FBQztRQUNELEtBQUssR0FBRyxPQUFPLE1BQU0sS0FBSyxVQUFVO1lBQ2hDLENBQUMsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUM7WUFDbkIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3RCLENBQUM7SUFDRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUN4RCxJQUFJLFdBQVcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMvQixPQUFPLElBQUksRUFBRSxDQUFBO0lBQ2pCLENBQUM7U0FBTSxDQUFDO1FBQ0osT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0FBQ0wsQ0FBQyxDQUFBO0FBbEJJLFFBQUEsYUFBYSxpQkFrQmpCIn0=
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.vendorCampaignsMiddlewares = void 0;
|
|
4
|
-
const
|
|
5
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
6
5
|
const http_1 = require("@medusajs/framework/http");
|
|
7
6
|
const framework_1 = require("@medusajs/framework");
|
|
8
7
|
const validators_1 = require("@medusajs/medusa/api/utils/validators");
|
|
@@ -22,82 +21,53 @@ exports.vendorCampaignsMiddlewares = [
|
|
|
22
21
|
method: ["GET"],
|
|
23
22
|
matcher: "/vendor/campaigns",
|
|
24
23
|
middlewares: [
|
|
24
|
+
(0, utils_1.requirePermission)("campaigns", "view"),
|
|
25
25
|
(0, framework_1.validateAndTransformQuery)(validators_2.VendorGetCampaignsParams, query_config_1.vendorCampaignQueryConfig.list),
|
|
26
26
|
applySellerCampaignLinkFilter,
|
|
27
27
|
helpers_1.applyCampaignFilters,
|
|
28
28
|
],
|
|
29
|
-
policies: [
|
|
30
|
-
{
|
|
31
|
-
resource: policy_resources_1.PolicyResource.campaign,
|
|
32
|
-
operation: utils_1.PolicyOperation.read,
|
|
33
|
-
},
|
|
34
|
-
],
|
|
35
29
|
},
|
|
36
30
|
{
|
|
37
31
|
method: ["POST"],
|
|
38
32
|
matcher: "/vendor/campaigns",
|
|
39
33
|
middlewares: [
|
|
34
|
+
(0, utils_1.requirePermission)("campaigns", "edit"),
|
|
40
35
|
(0, framework_1.validateAndTransformBody)(validators_2.VendorCreateCampaign),
|
|
41
36
|
(0, framework_1.validateAndTransformQuery)(validators_2.VendorGetCampaignParams, query_config_1.vendorCampaignQueryConfig.retrieve),
|
|
42
37
|
],
|
|
43
|
-
policies: [
|
|
44
|
-
{
|
|
45
|
-
resource: policy_resources_1.PolicyResource.campaign,
|
|
46
|
-
operation: utils_1.PolicyOperation.create,
|
|
47
|
-
},
|
|
48
|
-
],
|
|
49
38
|
},
|
|
50
39
|
{
|
|
51
40
|
method: ["GET"],
|
|
52
41
|
matcher: "/vendor/campaigns/:id",
|
|
53
42
|
middlewares: [
|
|
43
|
+
(0, utils_1.requirePermission)("campaigns", "view"),
|
|
54
44
|
(0, framework_1.validateAndTransformQuery)(validators_2.VendorGetCampaignParams, query_config_1.vendorCampaignQueryConfig.retrieve),
|
|
55
45
|
],
|
|
56
|
-
policies: [
|
|
57
|
-
{
|
|
58
|
-
resource: policy_resources_1.PolicyResource.campaign,
|
|
59
|
-
operation: utils_1.PolicyOperation.read,
|
|
60
|
-
},
|
|
61
|
-
],
|
|
62
46
|
},
|
|
63
47
|
{
|
|
64
48
|
method: ["POST"],
|
|
65
49
|
matcher: "/vendor/campaigns/:id",
|
|
66
50
|
middlewares: [
|
|
51
|
+
(0, utils_1.requirePermission)("campaigns", "edit"),
|
|
67
52
|
(0, framework_1.validateAndTransformBody)(validators_2.VendorUpdateCampaign),
|
|
68
53
|
(0, framework_1.validateAndTransformQuery)(validators_2.VendorGetCampaignParams, query_config_1.vendorCampaignQueryConfig.retrieve),
|
|
69
54
|
],
|
|
70
|
-
policies: [
|
|
71
|
-
{
|
|
72
|
-
resource: policy_resources_1.PolicyResource.campaign,
|
|
73
|
-
operation: utils_1.PolicyOperation.update,
|
|
74
|
-
},
|
|
75
|
-
],
|
|
76
55
|
},
|
|
77
56
|
{
|
|
78
57
|
method: ["DELETE"],
|
|
79
58
|
matcher: "/vendor/campaigns/:id",
|
|
80
|
-
middlewares: [
|
|
81
|
-
|
|
82
|
-
{
|
|
83
|
-
resource: policy_resources_1.PolicyResource.campaign,
|
|
84
|
-
operation: utils_1.PolicyOperation.delete,
|
|
85
|
-
},
|
|
59
|
+
middlewares: [
|
|
60
|
+
(0, utils_1.requirePermission)("campaigns", "manage"),
|
|
86
61
|
],
|
|
87
62
|
},
|
|
88
63
|
{
|
|
89
64
|
method: ["POST"],
|
|
90
65
|
matcher: "/vendor/campaigns/:id/promotions",
|
|
91
66
|
middlewares: [
|
|
67
|
+
(0, utils_1.requirePermission)("campaigns", "edit"),
|
|
92
68
|
(0, framework_1.validateAndTransformBody)((0, validators_1.createLinkBody)()),
|
|
93
69
|
(0, framework_1.validateAndTransformQuery)(validators_2.VendorGetCampaignParams, query_config_1.vendorCampaignQueryConfig.retrieve),
|
|
94
70
|
],
|
|
95
|
-
policies: [
|
|
96
|
-
{
|
|
97
|
-
resource: policy_resources_1.PolicyResource.campaign,
|
|
98
|
-
operation: utils_1.PolicyOperation.update,
|
|
99
|
-
},
|
|
100
|
-
],
|
|
101
71
|
},
|
|
102
72
|
];
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9jYW1wYWlnbnMvbWlkZGxld2FyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQStDO0FBQy9DLG1EQU1pQztBQUNqQyxtREFHNEI7QUFDNUIsc0VBQXNFO0FBRXRFLHVDQUFnRDtBQUNoRCxpREFBMEQ7QUFDMUQsNkNBS3FCO0FBRXJCLE1BQU0sNkJBQTZCLEdBQUcsQ0FDcEMsR0FBK0IsRUFDL0IsR0FBbUIsRUFDbkIsSUFBd0IsRUFDeEIsRUFBRTtJQUNGLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLGNBQWUsQ0FBQyxTQUFTLENBQUE7SUFFOUQsT0FBTyxJQUFBLDJCQUFvQixFQUFDO1FBQzFCLFVBQVUsRUFBRSxpQkFBaUI7UUFDN0IsVUFBVSxFQUFFLGFBQWE7UUFDekIsZUFBZSxFQUFFLFdBQVc7S0FDN0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7QUFDcEIsQ0FBQyxDQUFBO0FBRVksUUFBQSwwQkFBMEIsR0FBc0I7SUFDM0Q7UUFDRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDZixPQUFPLEVBQUUsbUJBQW1CO1FBQzVCLFdBQVcsRUFBRTtZQUNYLElBQUEseUJBQWlCLEVBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztZQUN0QyxJQUFBLHFDQUF5QixFQUN2QixxQ0FBd0IsRUFDeEIsd0NBQXlCLENBQUMsSUFBSSxDQUMvQjtZQUNELDZCQUE2QjtZQUM3Qiw4QkFBb0I7U0FDckI7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxtQkFBbUI7UUFDNUIsV0FBVyxFQUFFO1lBQ1gsSUFBQSx5QkFBaUIsRUFBQyxXQUFXLEVBQUUsTUFBTSxDQUFDO1lBQ3RDLElBQUEsb0NBQXdCLEVBQUMsaUNBQW9CLENBQUM7WUFDOUMsSUFBQSxxQ0FBeUIsRUFDdkIsb0NBQXVCLEVBQ3ZCLHdDQUF5QixDQUFDLFFBQVEsQ0FDbkM7U0FDRjtLQUNGO0lBQ0Q7UUFDRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDZixPQUFPLEVBQUUsdUJBQXVCO1FBQ2hDLFdBQVcsRUFBRTtZQUNYLElBQUEseUJBQWlCLEVBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztZQUN0QyxJQUFBLHFDQUF5QixFQUN2QixvQ0FBdUIsRUFDdkIsd0NBQXlCLENBQUMsUUFBUSxDQUNuQztTQUNGO0tBQ0Y7SUFDRDtRQUNFLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUNoQixPQUFPLEVBQUUsdUJBQXVCO1FBQ2hDLFdBQVcsRUFBRTtZQUNYLElBQUEseUJBQWlCLEVBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztZQUN0QyxJQUFBLG9DQUF3QixFQUFDLGlDQUFvQixDQUFDO1lBQzlDLElBQUEscUNBQXlCLEVBQ3ZCLG9DQUF1QixFQUN2Qix3Q0FBeUIsQ0FBQyxRQUFRLENBQ25DO1NBQ0Y7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO1FBQ2xCLE9BQU8sRUFBRSx1QkFBdUI7UUFDaEMsV0FBVyxFQUFFO1lBQ1gsSUFBQSx5QkFBaUIsRUFBQyxXQUFXLEVBQUUsUUFBUSxDQUFDO1NBQ3pDO0tBQ0Y7SUFDRDtRQUNFLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUNoQixPQUFPLEVBQUUsa0NBQWtDO1FBQzNDLFdBQVcsRUFBRTtZQUNYLElBQUEseUJBQWlCLEVBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztZQUN0QyxJQUFBLG9DQUF3QixFQUFDLElBQUEsMkJBQWMsR0FBRSxDQUFDO1lBQzFDLElBQUEscUNBQXlCLEVBQ3ZCLG9DQUF1QixFQUN2Qix3Q0FBeUIsQ0FBQyxRQUFRLENBQ25DO1NBQ0Y7S0FDRjtDQUNGLENBQUEifQ==
|