@mercurjs/core 2.2.0-canary.29 → 2.2.0-canary.30
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/claims/[id]/outbound/items/route.d.ts +0 -7
- package/.medusa/server/src/api/admin/claims/[id]/outbound/items/route.js +1 -8
- package/.medusa/server/src/api/admin/claims/[id]/request/route.d.ts +0 -6
- package/.medusa/server/src/api/admin/claims/[id]/request/route.js +1 -7
- package/.medusa/server/src/api/admin/collections/middlewares.js +1 -7
- package/.medusa/server/src/api/admin/collections/validators.d.ts +20 -29
- package/.medusa/server/src/api/admin/commission-rates/validators.d.ts +40 -39
- package/.medusa/server/src/api/admin/customer-groups/middlewares.js +1 -6
- package/.medusa/server/src/api/admin/customer-groups/validators.d.ts +55 -551
- package/.medusa/server/src/api/admin/customer-groups/validators.js +2 -3
- package/.medusa/server/src/api/admin/exchanges/[id]/outbound/items/route.d.ts +0 -8
- package/.medusa/server/src/api/admin/exchanges/[id]/outbound/items/route.js +1 -9
- package/.medusa/server/src/api/admin/exchanges/[id]/request/route.d.ts +0 -6
- package/.medusa/server/src/api/admin/exchanges/[id]/request/route.js +1 -7
- package/.medusa/server/src/api/admin/members/validators.d.ts +12 -13
- package/.medusa/server/src/api/admin/offers/validators.d.ts +16 -17
- package/.medusa/server/src/api/admin/order-edits/[id]/confirm/route.d.ts +0 -9
- package/.medusa/server/src/api/admin/order-edits/[id]/confirm/route.js +1 -10
- package/.medusa/server/src/api/admin/order-edits/[id]/items/route.d.ts +0 -11
- package/.medusa/server/src/api/admin/order-edits/[id]/items/route.js +1 -12
- package/.medusa/server/src/api/admin/order-groups/apply-request-filter.js +4 -10
- package/.medusa/server/src/api/admin/order-groups/validators.d.ts +16 -17
- package/.medusa/server/src/api/admin/order-groups/validators.js +1 -6
- package/.medusa/server/src/api/admin/orders/resolve-order-seller-id.d.ts +0 -9
- package/.medusa/server/src/api/admin/orders/resolve-order-seller-id.js +1 -10
- package/.medusa/server/src/api/admin/orders/validators.d.ts +1 -333
- package/.medusa/server/src/api/admin/payouts/validators.d.ts +16 -17
- package/.medusa/server/src/api/admin/product-attributes/middlewares.js +1 -3
- package/.medusa/server/src/api/admin/product-attributes/route.js +1 -4
- package/.medusa/server/src/api/admin/product-attributes/validators.d.ts +99 -110
- package/.medusa/server/src/api/admin/product-attributes/validators.js +1 -3
- package/.medusa/server/src/api/admin/product-categories/validators.d.ts +87 -89
- package/.medusa/server/src/api/admin/product-changes/[id]/cancel/route.d.ts +0 -7
- package/.medusa/server/src/api/admin/product-changes/[id]/cancel/route.js +1 -8
- package/.medusa/server/src/api/admin/product-changes/[id]/confirm/route.d.ts +0 -7
- package/.medusa/server/src/api/admin/product-changes/[id]/confirm/route.js +1 -8
- package/.medusa/server/src/api/admin/products/[id]/attributes/batch/route.js +6 -9
- package/.medusa/server/src/api/admin/products/[id]/confirm/route.d.ts +0 -12
- package/.medusa/server/src/api/admin/products/[id]/confirm/route.js +1 -13
- package/.medusa/server/src/api/admin/products/[id]/preview/route.d.ts +0 -7
- package/.medusa/server/src/api/admin/products/[id]/preview/route.js +1 -8
- package/.medusa/server/src/api/admin/products/[id]/reject/route.d.ts +0 -8
- package/.medusa/server/src/api/admin/products/[id]/reject/route.js +1 -9
- package/.medusa/server/src/api/admin/products/[id]/request-changes/route.d.ts +0 -9
- package/.medusa/server/src/api/admin/products/[id]/request-changes/route.js +1 -10
- package/.medusa/server/src/api/admin/products/[id]/route.js +2 -6
- package/.medusa/server/src/api/admin/products/[id]/sellers/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/products/[id]/sellers/route.js +13 -0
- package/.medusa/server/src/api/admin/products/middlewares.js +4 -42
- package/.medusa/server/src/api/admin/products/query-config.js +41 -16
- package/.medusa/server/src/api/admin/products/route.js +2 -5
- package/.medusa/server/src/api/admin/products/validators.d.ts +512 -1288
- package/.medusa/server/src/api/admin/products/validators.js +55 -96
- package/.medusa/server/src/api/admin/returns/[id]/receive/confirm/route.d.ts +0 -6
- package/.medusa/server/src/api/admin/returns/[id]/receive/confirm/route.js +1 -7
- package/.medusa/server/src/api/admin/sellers/middlewares.js +1 -20
- package/.medusa/server/src/api/admin/sellers/validators.d.ts +59 -79
- package/.medusa/server/src/api/store/carts/[id]/complete/route.js +1 -5
- package/.medusa/server/src/api/store/carts/[id]/complete/validators.d.ts +1 -1
- package/.medusa/server/src/api/store/offers/validators.d.ts +19 -20
- package/.medusa/server/src/api/store/order-groups/validators.d.ts +14 -15
- package/.medusa/server/src/api/store/product-attributes/validators.d.ts +50 -46
- package/.medusa/server/src/api/store/product-categories/validators.d.ts +59 -53
- package/.medusa/server/src/api/store/products/[id]/route.js +1 -5
- package/.medusa/server/src/api/store/products/middlewares.js +1 -7
- package/.medusa/server/src/api/store/products/query-config.js +23 -7
- package/.medusa/server/src/api/store/products/validators.d.ts +69 -65
- package/.medusa/server/src/api/store/sellers/validators.d.ts +35 -34
- package/.medusa/server/src/api/utils/filter-attributes-by-category-link.d.ts +0 -15
- package/.medusa/server/src/api/utils/filter-attributes-by-category-link.js +22 -26
- package/.medusa/server/src/api/utils/format-product-attributes.d.ts +5 -50
- package/.medusa/server/src/api/utils/format-product-attributes.js +90 -166
- package/.medusa/server/src/api/utils/index.d.ts +1 -0
- package/.medusa/server/src/api/utils/index.js +2 -1
- package/.medusa/server/src/api/utils/offers.d.ts +2 -29
- package/.medusa/server/src/api/utils/offers.js +3 -40
- package/.medusa/server/src/api/utils/order-commission-lines.d.ts +0 -7
- package/.medusa/server/src/api/utils/order-commission-lines.js +1 -8
- package/.medusa/server/src/api/utils/product-attribute-fields.d.ts +5 -0
- package/.medusa/server/src/api/utils/product-attribute-fields.js +35 -0
- package/.medusa/server/src/api/vendor/campaigns/validators.d.ts +12 -13
- package/.medusa/server/src/api/vendor/claims/[id]/outbound/items/route.d.ts +0 -6
- package/.medusa/server/src/api/vendor/claims/[id]/outbound/items/route.js +1 -7
- package/.medusa/server/src/api/vendor/claims/[id]/request/route.js +1 -4
- package/.medusa/server/src/api/vendor/claims/validators.d.ts +14 -15
- package/.medusa/server/src/api/vendor/collections/validators.d.ts +18 -19
- package/.medusa/server/src/api/vendor/currencies/validators.d.ts +12 -13
- package/.medusa/server/src/api/vendor/customer-groups/validators.d.ts +16 -17
- package/.medusa/server/src/api/vendor/customers/[id]/customer-groups/route.js +1 -2
- package/.medusa/server/src/api/vendor/customers/[id]/route.js +1 -3
- package/.medusa/server/src/api/vendor/customers/validators.d.ts +35 -34
- package/.medusa/server/src/api/vendor/exchanges/[id]/outbound/items/route.d.ts +0 -6
- package/.medusa/server/src/api/vendor/exchanges/[id]/outbound/items/route.js +1 -7
- package/.medusa/server/src/api/vendor/exchanges/[id]/request/route.js +1 -4
- package/.medusa/server/src/api/vendor/exchanges/validators.d.ts +13 -14
- package/.medusa/server/src/api/vendor/fulfillment-providers/validators.d.ts +24 -23
- package/.medusa/server/src/api/vendor/fulfillment-sets/validators.d.ts +2 -2
- package/.medusa/server/src/api/vendor/inventory-items/validators.d.ts +98 -104
- package/.medusa/server/src/api/vendor/offers/validators.d.ts +20 -25
- package/.medusa/server/src/api/vendor/offers/validators.js +1 -5
- package/.medusa/server/src/api/vendor/order-edits/[id]/confirm/route.d.ts +0 -11
- package/.medusa/server/src/api/vendor/order-edits/[id]/confirm/route.js +1 -12
- package/.medusa/server/src/api/vendor/order-edits/[id]/items/[action_id]/route.d.ts +0 -9
- package/.medusa/server/src/api/vendor/order-edits/[id]/items/[action_id]/route.js +1 -10
- package/.medusa/server/src/api/vendor/order-edits/[id]/items/item/[item_id]/route.d.ts +0 -6
- package/.medusa/server/src/api/vendor/order-edits/[id]/items/item/[item_id]/route.js +1 -7
- package/.medusa/server/src/api/vendor/order-edits/[id]/items/route.d.ts +0 -12
- package/.medusa/server/src/api/vendor/order-edits/[id]/items/route.js +1 -13
- package/.medusa/server/src/api/vendor/order-edits/[id]/request/route.d.ts +0 -7
- package/.medusa/server/src/api/vendor/order-edits/[id]/request/route.js +1 -8
- package/.medusa/server/src/api/vendor/order-edits/[id]/route.d.ts +0 -7
- package/.medusa/server/src/api/vendor/order-edits/[id]/route.js +1 -8
- package/.medusa/server/src/api/vendor/order-edits/[id]/shipping-method/[action_id]/route.d.ts +0 -9
- package/.medusa/server/src/api/vendor/order-edits/[id]/shipping-method/[action_id]/route.js +1 -10
- package/.medusa/server/src/api/vendor/order-edits/[id]/shipping-method/route.d.ts +0 -5
- package/.medusa/server/src/api/vendor/order-edits/[id]/shipping-method/route.js +1 -6
- package/.medusa/server/src/api/vendor/order-edits/middlewares.js +1 -13
- package/.medusa/server/src/api/vendor/order-edits/route.d.ts +0 -6
- package/.medusa/server/src/api/vendor/order-edits/route.js +1 -7
- package/.medusa/server/src/api/vendor/order-edits/validators.d.ts +0 -6
- package/.medusa/server/src/api/vendor/order-edits/validators.js +1 -1
- package/.medusa/server/src/api/vendor/orders/apply-request-filter.js +1 -4
- package/.medusa/server/src/api/vendor/orders/resolve-offer-items.d.ts +0 -18
- package/.medusa/server/src/api/vendor/orders/resolve-offer-items.js +1 -1
- package/.medusa/server/src/api/vendor/orders/validators.d.ts +19 -20
- package/.medusa/server/src/api/vendor/payment-collections/validators.d.ts +1 -1
- package/.medusa/server/src/api/vendor/payments/helpers.d.ts +0 -9
- package/.medusa/server/src/api/vendor/payments/helpers.js +1 -10
- package/.medusa/server/src/api/vendor/payments/validators.d.ts +36 -36
- package/.medusa/server/src/api/vendor/payout-accounts/validators.d.ts +11 -12
- package/.medusa/server/src/api/vendor/payouts/validators.d.ts +16 -17
- package/.medusa/server/src/api/vendor/price-lists/validators.d.ts +26 -28
- package/.medusa/server/src/api/vendor/price-preferences/validators.d.ts +12 -13
- package/.medusa/server/src/api/vendor/product-attributes/route.js +1 -3
- package/.medusa/server/src/api/vendor/product-attributes/validators.d.ts +74 -86
- package/.medusa/server/src/api/vendor/product-attributes/validators.js +1 -1
- package/.medusa/server/src/api/vendor/product-categories/[id]/products/route.js +2 -2
- package/.medusa/server/src/api/vendor/product-categories/validators.d.ts +89 -83
- package/.medusa/server/src/api/vendor/product-tags/validators.d.ts +2 -2
- package/.medusa/server/src/api/vendor/product-types/validators.d.ts +12 -13
- package/.medusa/server/src/api/vendor/product-variants/middlewares.js +11 -19
- package/.medusa/server/src/api/vendor/product-variants/query-config.js +1 -3
- package/.medusa/server/src/api/vendor/product-variants/validators.d.ts +103 -97
- package/.medusa/server/src/api/vendor/products/[id]/attributes/batch/route.d.ts +2 -9
- package/.medusa/server/src/api/vendor/products/[id]/attributes/batch/route.js +3 -27
- package/.medusa/server/src/api/vendor/products/[id]/cancel/route.d.ts +0 -6
- package/.medusa/server/src/api/vendor/products/[id]/cancel/route.js +1 -7
- package/.medusa/server/src/api/vendor/products/[id]/preview/route.d.ts +0 -9
- package/.medusa/server/src/api/vendor/products/[id]/preview/route.js +1 -10
- package/.medusa/server/src/api/vendor/products/[id]/route.d.ts +0 -14
- package/.medusa/server/src/api/vendor/products/[id]/route.js +3 -21
- package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/route.d.ts +0 -8
- package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/route.js +2 -16
- package/.medusa/server/src/api/vendor/products/[id]/variants/route.d.ts +0 -7
- package/.medusa/server/src/api/vendor/products/[id]/variants/route.js +2 -9
- package/.medusa/server/src/api/vendor/products/helpers.d.ts +6 -5
- package/.medusa/server/src/api/vendor/products/helpers.js +54 -10
- package/.medusa/server/src/api/vendor/products/middlewares.js +14 -65
- package/.medusa/server/src/api/vendor/products/query-config.js +44 -15
- package/.medusa/server/src/api/vendor/products/route.d.ts +0 -9
- package/.medusa/server/src/api/vendor/products/route.js +7 -21
- package/.medusa/server/src/api/vendor/products/validators.d.ts +404 -830
- package/.medusa/server/src/api/vendor/products/validators.js +59 -112
- package/.medusa/server/src/api/vendor/promotions/validators.d.ts +43 -45
- package/.medusa/server/src/api/vendor/refund-reasons/validators.d.ts +16 -17
- package/.medusa/server/src/api/vendor/regions/validators.d.ts +16 -17
- package/.medusa/server/src/api/vendor/reservations/[id]/route.js +1 -1
- package/.medusa/server/src/api/vendor/reservations/helpers.js +1 -4
- package/.medusa/server/src/api/vendor/reservations/query-config.js +1 -4
- package/.medusa/server/src/api/vendor/reservations/route.js +1 -1
- package/.medusa/server/src/api/vendor/reservations/validators.d.ts +22 -23
- package/.medusa/server/src/api/vendor/reservations/validators.js +1 -1
- package/.medusa/server/src/api/vendor/return-reasons/validators.d.ts +16 -17
- package/.medusa/server/src/api/vendor/returns/validators.d.ts +22 -23
- package/.medusa/server/src/api/vendor/sales-channels/helpers.js +6 -1
- package/.medusa/server/src/api/vendor/sales-channels/validators.d.ts +25 -24
- package/.medusa/server/src/api/vendor/sellers/middlewares.js +1 -18
- package/.medusa/server/src/api/vendor/sellers/route.js +1 -4
- package/.medusa/server/src/api/vendor/sellers/validators.d.ts +16 -37
- package/.medusa/server/src/api/vendor/sellers/validators.js +1 -4
- package/.medusa/server/src/api/vendor/shipping-option-types/validators.d.ts +16 -17
- package/.medusa/server/src/api/vendor/shipping-options/validators.d.ts +33 -34
- package/.medusa/server/src/api/vendor/shipping-profiles/validators.d.ts +16 -17
- package/.medusa/server/src/api/vendor/stock-locations/validators.d.ts +16 -17
- package/.medusa/server/src/api/vendor/stores/validators.d.ts +12 -13
- package/.medusa/server/src/links/product-attribute-category-link.d.ts +6 -11
- package/.medusa/server/src/links/product-attribute-category-link.js +10 -20
- package/.medusa/server/src/links/product-attribute-option-mirror-link.d.ts +6 -0
- package/.medusa/server/src/links/product-attribute-option-mirror-link.js +24 -0
- package/.medusa/server/src/links/product-attribute-product-link.d.ts +0 -5
- package/.medusa/server/src/links/product-attribute-product-link.js +2 -7
- package/.medusa/server/src/links/product-attribute-value-option-value-mirror-link.d.ts +6 -0
- package/.medusa/server/src/links/product-attribute-value-option-value-mirror-link.js +24 -0
- package/.medusa/server/src/links/{product-variant-attribute-link.d.ts → product-attribute-value-pivot-link.d.ts} +3 -0
- package/.medusa/server/src/links/product-attribute-value-pivot-link.js +23 -0
- package/.medusa/server/src/modules/product-attribute/migrations/Migration20260601000002.d.ts +14 -0
- package/.medusa/server/src/modules/product-attribute/migrations/Migration20260601000002.js +31 -0
- package/.medusa/server/src/modules/product-attribute/models/product-attribute-value.d.ts +2 -0
- package/.medusa/server/src/modules/product-attribute/models/product-attribute-value.js +2 -1
- package/.medusa/server/src/modules/product-attribute/models/product-attribute.d.ts +2 -0
- package/.medusa/server/src/modules/product-attribute/models/product-attribute.js +2 -1
- package/.medusa/server/src/modules/product-attribute/service.d.ts +18 -3
- package/.medusa/server/src/modules/product-attribute/service.js +213 -1
- package/.medusa/server/src/modules/seller/repositories/order-group.js +1 -11
- package/.medusa/server/src/modules/seller/service.js +1 -2
- package/.medusa/server/src/workflows/cart/hooks/validate.js +1 -12
- package/.medusa/server/src/workflows/cart/steps/prepare-adjustments-from-promotion-actions.js +3 -5
- package/.medusa/server/src/workflows/cart/utils/fields.js +1 -13
- package/.medusa/server/src/workflows/cart/utils/prepare-line-item-data.js +1 -3
- package/.medusa/server/src/workflows/cart/workflows/add-seller-shipping-method-to-cart.js +1 -2
- package/.medusa/server/src/workflows/cart/workflows/complete-cart-with-split-orders.js +1 -24
- package/.medusa/server/src/workflows/cart/workflows/list-seller-shipping-options-for-cart.d.ts +2 -2
- package/.medusa/server/src/workflows/cart/workflows/list-seller-shipping-options-for-cart.js +1 -2
- package/.medusa/server/src/workflows/commission/steps/upsert-commission-lines.d.ts +0 -4
- package/.medusa/server/src/workflows/commission/steps/upsert-commission-lines.js +1 -5
- package/.medusa/server/src/workflows/commission/steps/validate-commission-rates-deletable.d.ts +0 -3
- package/.medusa/server/src/workflows/commission/steps/validate-commission-rates-deletable.js +1 -4
- package/.medusa/server/src/workflows/commission/workflows/delete-commission-rates.d.ts +1 -2
- package/.medusa/server/src/workflows/media/steps/create-images.d.ts +0 -3
- package/.medusa/server/src/workflows/media/steps/create-images.js +1 -4
- package/.medusa/server/src/workflows/media/steps/delete-images.d.ts +0 -3
- package/.medusa/server/src/workflows/media/steps/delete-images.js +1 -4
- package/.medusa/server/src/workflows/media/workflows/create-product-category-with-images.d.ts +0 -8
- package/.medusa/server/src/workflows/media/workflows/create-product-category-with-images.js +1 -6
- package/.medusa/server/src/workflows/media/workflows/create-product-collection-with-images.d.ts +0 -8
- package/.medusa/server/src/workflows/media/workflows/create-product-collection-with-images.js +1 -6
- package/.medusa/server/src/workflows/media/workflows/delete-product-category-with-images.d.ts +0 -4
- package/.medusa/server/src/workflows/media/workflows/delete-product-category-with-images.js +1 -6
- package/.medusa/server/src/workflows/media/workflows/delete-product-collection-with-images.d.ts +0 -5
- package/.medusa/server/src/workflows/media/workflows/delete-product-collection-with-images.js +1 -7
- package/.medusa/server/src/workflows/media/workflows/set-category-images.d.ts +0 -11
- package/.medusa/server/src/workflows/media/workflows/set-category-images.js +1 -10
- package/.medusa/server/src/workflows/media/workflows/set-collection-images.d.ts +0 -12
- package/.medusa/server/src/workflows/media/workflows/set-collection-images.js +1 -11
- package/.medusa/server/src/workflows/media/workflows/update-product-category-with-images.d.ts +0 -7
- package/.medusa/server/src/workflows/media/workflows/update-product-category-with-images.js +1 -5
- package/.medusa/server/src/workflows/media/workflows/update-product-collection-with-images.d.ts +0 -7
- package/.medusa/server/src/workflows/media/workflows/update-product-collection-with-images.js +1 -5
- package/.medusa/server/src/workflows/offer/steps/add-offer-prices.d.ts +0 -12
- package/.medusa/server/src/workflows/offer/steps/add-offer-prices.js +1 -16
- package/.medusa/server/src/workflows/offer/steps/ensure-variant-price-sets.d.ts +0 -9
- package/.medusa/server/src/workflows/offer/steps/ensure-variant-price-sets.js +1 -10
- package/.medusa/server/src/workflows/offer/steps/update-offers.d.ts +0 -5
- package/.medusa/server/src/workflows/offer/steps/update-offers.js +1 -1
- package/.medusa/server/src/workflows/offer/utils/assert-offer-price-ownership.d.ts +0 -11
- package/.medusa/server/src/workflows/offer/utils/assert-offer-price-ownership.js +1 -12
- package/.medusa/server/src/workflows/offer/utils/prepare-offer-inventory-input.d.ts +0 -10
- package/.medusa/server/src/workflows/offer/utils/prepare-offer-inventory-input.js +1 -19
- package/.medusa/server/src/workflows/offer/workflows/create-offers.js +1 -14
- package/.medusa/server/src/workflows/offer/workflows/update-offers.d.ts +0 -11
- package/.medusa/server/src/workflows/offer/workflows/update-offers.js +1 -22
- package/.medusa/server/src/workflows/order/workflows/cancel-order-fulfillment.d.ts +1 -2
- package/.medusa/server/src/workflows/order/workflows/cancel-order-fulfillment.js +1 -2
- package/.medusa/server/src/workflows/order/workflows/confirm-claim-request.js +1 -3
- package/.medusa/server/src/workflows/order/workflows/confirm-exchange-request.js +1 -8
- package/.medusa/server/src/workflows/order/workflows/confirm-order-edit-request.js +1 -1
- package/.medusa/server/src/workflows/order/workflows/confirm-return-receive.js +1 -9
- package/.medusa/server/src/workflows/order/workflows/create-order-fulfillment.js +2 -3
- package/.medusa/server/src/workflows/order-group/utils/aggregate-status.js +1 -7
- package/.medusa/server/src/workflows/product/events.d.ts +0 -6
- package/.medusa/server/src/workflows/product/events.js +1 -7
- package/.medusa/server/src/workflows/product/steps/index.d.ts +0 -2
- package/.medusa/server/src/workflows/product/steps/index.js +1 -3
- package/.medusa/server/src/workflows/product/steps/validate-products-status.d.ts +0 -8
- package/.medusa/server/src/workflows/product/steps/validate-products-status.js +1 -9
- package/.medusa/server/src/workflows/product/steps/validate-seller-product-permissions.js +1 -3
- package/.medusa/server/src/workflows/product/workflows/confirm-products.d.ts +0 -16
- package/.medusa/server/src/workflows/product/workflows/confirm-products.js +1 -13
- package/.medusa/server/src/workflows/product/workflows/create-products.d.ts +4 -74
- package/.medusa/server/src/workflows/product/workflows/create-products.js +70 -209
- package/.medusa/server/src/workflows/product/workflows/index.d.ts +0 -1
- package/.medusa/server/src/workflows/product/workflows/index.js +1 -2
- package/.medusa/server/src/workflows/product/workflows/link-sellers-to-product-category.d.ts +0 -7
- package/.medusa/server/src/workflows/product/workflows/link-sellers-to-product-category.js +1 -1
- package/.medusa/server/src/workflows/product/workflows/link-sellers-to-product.d.ts +0 -7
- package/.medusa/server/src/workflows/product/workflows/link-sellers-to-product.js +1 -1
- package/.medusa/server/src/workflows/product/workflows/reject-product.d.ts +0 -7
- package/.medusa/server/src/workflows/product/workflows/reject-product.js +1 -8
- package/.medusa/server/src/workflows/product/workflows/request-product-change.d.ts +0 -14
- package/.medusa/server/src/workflows/product/workflows/request-product-change.js +1 -15
- package/.medusa/server/src/workflows/product-attribute/events.d.ts +0 -9
- package/.medusa/server/src/workflows/product-attribute/events.js +1 -10
- package/.medusa/server/src/workflows/product-attribute/steps/create-product-attribute-values.d.ts +1 -31
- package/.medusa/server/src/workflows/product-attribute/steps/create-product-attributes.d.ts +1 -41
- package/.medusa/server/src/workflows/product-attribute/steps/create-product-attributes.js +1 -1
- package/.medusa/server/src/workflows/product-attribute/steps/detach-product-option-values-from-product.d.ts +14 -0
- package/.medusa/server/src/workflows/product-attribute/steps/detach-product-option-values-from-product.js +40 -0
- package/.medusa/server/src/workflows/product-attribute/steps/index.d.ts +3 -4
- package/.medusa/server/src/workflows/product-attribute/steps/index.js +4 -5
- package/.medusa/server/src/workflows/product-attribute/steps/update-product-attribute-values.d.ts +6 -3
- package/.medusa/server/src/workflows/product-attribute/steps/update-product-attribute-values.js +17 -2
- package/.medusa/server/src/workflows/product-attribute/steps/update-product-attributes.d.ts +1 -31
- package/.medusa/server/src/workflows/product-attribute/steps/validate-product-attributes-not-linked.d.ts +2 -0
- package/.medusa/server/src/workflows/product-attribute/steps/validate-product-attributes-not-linked.js +28 -0
- package/.medusa/server/src/workflows/product-attribute/steps/validate-product-attributes-not-required.d.ts +7 -0
- package/.medusa/server/src/workflows/product-attribute/steps/validate-product-attributes-not-required.js +16 -0
- package/.medusa/server/src/workflows/product-attribute/workflows/add-product-attributes-to-product.d.ts +9 -0
- package/.medusa/server/src/workflows/product-attribute/workflows/add-product-attributes-to-product.js +242 -0
- package/.medusa/server/src/workflows/product-attribute/workflows/create-and-link-product-attributes.d.ts +14 -0
- package/.medusa/server/src/workflows/product-attribute/workflows/create-and-link-product-attributes.js +27 -0
- package/.medusa/server/src/workflows/product-attribute/workflows/create-product-attribute-values.js +44 -3
- package/.medusa/server/src/workflows/product-attribute/workflows/create-product-attributes.js +41 -17
- package/.medusa/server/src/workflows/product-attribute/workflows/delete-product-attribute-values.js +36 -15
- package/.medusa/server/src/workflows/product-attribute/workflows/delete-product-attributes.d.ts +0 -7
- package/.medusa/server/src/workflows/product-attribute/workflows/delete-product-attributes.js +11 -8
- package/.medusa/server/src/workflows/product-attribute/workflows/index.d.ts +4 -6
- package/.medusa/server/src/workflows/product-attribute/workflows/index.js +5 -7
- package/.medusa/server/src/workflows/product-attribute/workflows/remove-product-attributes-from-product.d.ts +10 -0
- package/.medusa/server/src/workflows/product-attribute/workflows/remove-product-attributes-from-product.js +83 -0
- package/.medusa/server/src/workflows/product-attribute/workflows/update-product-attribute-values.js +34 -1
- package/.medusa/server/src/workflows/product-attribute/workflows/update-product-attributes-on-product.d.ts +11 -0
- package/.medusa/server/src/workflows/product-attribute/workflows/update-product-attributes-on-product.js +285 -0
- package/.medusa/server/src/workflows/product-attribute/workflows/update-product-attributes.js +15 -1
- package/.medusa/server/src/workflows/product-attribute/workflows/upsert-product-attribute-values.d.ts +4 -11
- package/.medusa/server/src/workflows/product-attribute/workflows/upsert-product-attribute-values.js +19 -19
- package/.medusa/server/src/workflows/product-edit/events.d.ts +0 -7
- package/.medusa/server/src/workflows/product-edit/events.js +1 -8
- package/.medusa/server/src/workflows/product-edit/steps/apply-variant-image-links.d.ts +2 -10
- package/.medusa/server/src/workflows/product-edit/steps/apply-variant-image-links.js +3 -9
- package/.medusa/server/src/workflows/product-edit/steps/confirm-product-change-validation.d.ts +0 -4
- package/.medusa/server/src/workflows/product-edit/steps/confirm-product-change-validation.js +1 -5
- package/.medusa/server/src/workflows/product-edit/steps/confirm-product-changes.d.ts +0 -6
- package/.medusa/server/src/workflows/product-edit/steps/confirm-product-changes.js +1 -7
- package/.medusa/server/src/workflows/product-edit/steps/create-product-change-actions.d.ts +0 -5
- package/.medusa/server/src/workflows/product-edit/steps/create-product-change-actions.js +1 -6
- package/.medusa/server/src/workflows/product-edit/steps/create-product-changes.d.ts +0 -6
- package/.medusa/server/src/workflows/product-edit/steps/create-product-changes.js +1 -1
- package/.medusa/server/src/workflows/product-edit/steps/decline-product-change.d.ts +0 -5
- package/.medusa/server/src/workflows/product-edit/steps/decline-product-change.js +1 -6
- package/.medusa/server/src/workflows/product-edit/steps/update-product-change-actions.d.ts +0 -5
- package/.medusa/server/src/workflows/product-edit/steps/update-product-change-actions.js +1 -6
- package/.medusa/server/src/workflows/product-edit/steps/validate-no-pending-product-change.d.ts +0 -6
- package/.medusa/server/src/workflows/product-edit/steps/validate-no-pending-product-change.js +2 -8
- package/.medusa/server/src/workflows/product-edit/workflows/apply-product-attribute-change-actions.d.ts +5 -19
- package/.medusa/server/src/workflows/product-edit/workflows/apply-product-attribute-change-actions.js +11 -128
- package/.medusa/server/src/workflows/product-edit/workflows/apply-product-change-actions.d.ts +0 -31
- package/.medusa/server/src/workflows/product-edit/workflows/apply-product-change-actions.js +27 -56
- package/.medusa/server/src/workflows/product-edit/workflows/auto-confirm-product-change.d.ts +0 -14
- package/.medusa/server/src/workflows/product-edit/workflows/auto-confirm-product-change.js +1 -10
- package/.medusa/server/src/workflows/product-edit/workflows/confirm-product-change.d.ts +0 -11
- package/.medusa/server/src/workflows/product-edit/workflows/confirm-product-change.js +1 -12
- package/.medusa/server/src/workflows/product-edit/workflows/index.d.ts +1 -1
- package/.medusa/server/src/workflows/product-edit/workflows/index.js +2 -2
- package/.medusa/server/src/workflows/product-edit/workflows/product-edit-delete-product.d.ts +0 -12
- package/.medusa/server/src/workflows/product-edit/workflows/product-edit-delete-product.js +1 -13
- package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-attributes.d.ts +4 -46
- package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-attributes.js +11 -162
- package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-product.d.ts +11 -0
- package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-product.js +133 -0
- package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-variants.d.ts +0 -10
- package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-variants.js +1 -45
- package/.medusa/server/src/workflows/product-edit/workflows/record-product-audit-change.d.ts +0 -24
- package/.medusa/server/src/workflows/product-edit/workflows/record-product-audit-change.js +1 -15
- package/.medusa/server/src/workflows/product-edit/workflows/stage-product-change.d.ts +0 -30
- package/.medusa/server/src/workflows/product-edit/workflows/stage-product-change.js +1 -15
- package/.medusa/server/src/workflows/promotion/steps/register-usage.d.ts +0 -3
- package/.medusa/server/src/workflows/promotion/steps/register-usage.js +1 -4
- package/.medusa/server/src/workflows/seller/workflows/accept-member-invite.js +1 -2
- package/.medusa/server/src/workflows/seller/workflows/create-sellers.js +1 -2
- package/package.json +15 -15
- package/.medusa/server/src/api/admin/products/[id]/attributes/[attribute_id]/route.d.ts +0 -13
- package/.medusa/server/src/api/admin/products/[id]/attributes/[attribute_id]/route.js +0 -90
- package/.medusa/server/src/api/admin/products/[id]/attributes/route.d.ts +0 -5
- package/.medusa/server/src/api/admin/products/[id]/attributes/route.js +0 -63
- package/.medusa/server/src/api/vendor/products/[id]/attributes/[attribute_id]/route.d.ts +0 -22
- package/.medusa/server/src/api/vendor/products/[id]/attributes/[attribute_id]/route.js +0 -97
- package/.medusa/server/src/api/vendor/products/[id]/attributes/route.d.ts +0 -15
- package/.medusa/server/src/api/vendor/products/[id]/attributes/route.js +0 -80
- package/.medusa/server/src/links/product-attribute-value-link.d.ts +0 -22
- package/.medusa/server/src/links/product-attribute-value-link.js +0 -46
- package/.medusa/server/src/links/product-variant-attribute-link.js +0 -21
- package/.medusa/server/src/links/product-variant-attribute-value-link.d.ts +0 -2
- package/.medusa/server/src/links/product-variant-attribute-value-link.js +0 -21
- package/.medusa/server/src/workflows/product/steps/replace-product-attribute-value-links.d.ts +0 -28
- package/.medusa/server/src/workflows/product/steps/replace-product-attribute-value-links.js +0 -72
- package/.medusa/server/src/workflows/product/steps/resolve-attribute-refs.d.ts +0 -90
- package/.medusa/server/src/workflows/product/steps/resolve-attribute-refs.js +0 -185
- package/.medusa/server/src/workflows/product/workflows/update-products.d.ts +0 -39
- package/.medusa/server/src/workflows/product/workflows/update-products.js +0 -161
- package/.medusa/server/src/workflows/product-attribute/steps/upsert-product-attribute-values.d.ts +0 -43
- package/.medusa/server/src/workflows/product-attribute/steps/upsert-product-attribute-values.js +0 -51
- package/.medusa/server/src/workflows/product-attribute/steps/upsert-product-options-for-axis.d.ts +0 -7
- package/.medusa/server/src/workflows/product-attribute/steps/upsert-product-options-for-axis.js +0 -59
- package/.medusa/server/src/workflows/product-attribute/steps/validate-attribute-accepts-values.d.ts +0 -6
- package/.medusa/server/src/workflows/product-attribute/steps/validate-attribute-accepts-values.js +0 -20
- package/.medusa/server/src/workflows/product-attribute/steps/validate-product-attribute-input.d.ts +0 -7
- package/.medusa/server/src/workflows/product-attribute/steps/validate-product-attribute-input.js +0 -20
- package/.medusa/server/src/workflows/product-attribute/workflows/add-product-attribute.d.ts +0 -52
- package/.medusa/server/src/workflows/product-attribute/workflows/add-product-attribute.js +0 -120
- package/.medusa/server/src/workflows/product-attribute/workflows/batch-product-attribute-values.d.ts +0 -23
- package/.medusa/server/src/workflows/product-attribute/workflows/batch-product-attribute-values.js +0 -252
- package/.medusa/server/src/workflows/product-attribute/workflows/detach-product-attribute.d.ts +0 -17
- package/.medusa/server/src/workflows/product-attribute/workflows/detach-product-attribute.js +0 -62
- package/.medusa/server/src/workflows/product-attribute/workflows/materialize-product-attributes.d.ts +0 -135
- package/.medusa/server/src/workflows/product-attribute/workflows/materialize-product-attributes.js +0 -43
- package/.medusa/server/src/workflows/product-attribute/workflows/sync-product-attribute-options.d.ts +0 -24
- package/.medusa/server/src/workflows/product-attribute/workflows/sync-product-attribute-options.js +0 -27
- package/.medusa/server/src/workflows/product-attribute/workflows/update-product-attribute.d.ts +0 -23
- package/.medusa/server/src/workflows/product-attribute/workflows/update-product-attribute.js +0 -67
- package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-fields.d.ts +0 -25
- package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-fields.js +0 -148
|
@@ -8,11 +8,6 @@ const product_1 = __importDefault(require("@medusajs/medusa/product"));
|
|
|
8
8
|
const product_attribute_1 = __importDefault(require("../modules/product-attribute"));
|
|
9
9
|
/**
|
|
10
10
|
* Read-only link Product → ProductAttribute (product-scoped attributes).
|
|
11
|
-
* `ProductAttribute.product_id` is the FK; global attributes have it NULL.
|
|
12
|
-
* Exposes the scoped attributes under `product.scoped_attributes`.
|
|
13
|
-
*
|
|
14
|
-
* Same pattern as `product-change-link.ts`: no pivot table — the FK lives
|
|
15
|
-
* directly on the child row, and the link is read-only.
|
|
16
11
|
*/
|
|
17
12
|
exports.default = (0, utils_1.defineLink)({
|
|
18
13
|
linkable: product_1.default.linkable.product,
|
|
@@ -20,10 +15,10 @@ exports.default = (0, utils_1.defineLink)({
|
|
|
20
15
|
isList: true,
|
|
21
16
|
}, {
|
|
22
17
|
...product_attribute_1.default.linkable.productAttribute.id,
|
|
23
|
-
alias:
|
|
18
|
+
alias: 'scoped_attributes',
|
|
24
19
|
primaryKey: "product_id",
|
|
25
20
|
isList: true,
|
|
26
21
|
}, {
|
|
27
22
|
readOnly: true,
|
|
28
23
|
});
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1hdHRyaWJ1dGUtcHJvZHVjdC1saW5rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpbmtzL3Byb2R1Y3QtYXR0cmlidXRlLXByb2R1Y3QtbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUFzRDtBQUN0RCx1RUFBb0Q7QUFFcEQscUZBQWlFO0FBRWpFOztHQUVHO0FBQ0gsa0JBQWUsSUFBQSxrQkFBVSxFQUN2QjtJQUNFLFFBQVEsRUFBRSxpQkFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPO0lBQ3hDLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7Q0FDYixFQUNEO0lBQ0UsR0FBRywyQkFBc0IsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtJQUN0RCxLQUFLLEVBQUUsbUJBQW1CO0lBQzFCLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLE1BQU0sRUFBRSxJQUFJO0NBQ2IsRUFDRDtJQUNFLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FDRixDQUFBIn0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read-only link ProductAttributeValue → ProductOptionValue mirror (1:1).
|
|
3
|
+
* `ProductAttributeValue.product_option_value_id` is the FK; no pivot table.
|
|
4
|
+
*/
|
|
5
|
+
declare const _default: import("@medusajs/framework/utils").DefineLinkExport;
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const product_1 = __importDefault(require("@medusajs/medusa/product"));
|
|
8
|
+
const product_attribute_1 = __importDefault(require("../modules/product-attribute"));
|
|
9
|
+
/**
|
|
10
|
+
* Read-only link ProductAttributeValue → ProductOptionValue mirror (1:1).
|
|
11
|
+
* `ProductAttributeValue.product_option_value_id` is the FK; no pivot table.
|
|
12
|
+
*/
|
|
13
|
+
exports.default = (0, utils_1.defineLink)({
|
|
14
|
+
...product_attribute_1.default.linkable.productAttributeValue.id,
|
|
15
|
+
primaryKey: "product_option_value_id",
|
|
16
|
+
isList: false,
|
|
17
|
+
}, {
|
|
18
|
+
linkable: product_1.default.linkable.productOptionValue.id,
|
|
19
|
+
field: "id",
|
|
20
|
+
isList: false,
|
|
21
|
+
}, {
|
|
22
|
+
readOnly: true,
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1hdHRyaWJ1dGUtdmFsdWUtb3B0aW9uLXZhbHVlLW1pcnJvci1saW5rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpbmtzL3Byb2R1Y3QtYXR0cmlidXRlLXZhbHVlLW9wdGlvbi12YWx1ZS1taXJyb3ItbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUFzRDtBQUN0RCx1RUFBb0Q7QUFFcEQscUZBQWlFO0FBRWpFOzs7R0FHRztBQUNILGtCQUFlLElBQUEsa0JBQVUsRUFDdkI7SUFDRSxHQUFHLDJCQUFzQixDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO0lBQzNELFVBQVUsRUFBRSx5QkFBeUI7SUFDckMsTUFBTSxFQUFFLEtBQUs7Q0FDZCxFQUNEO0lBQ0UsUUFBUSxFQUFFLGlCQUFhLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7SUFDdEQsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsS0FBSztDQUNkLEVBQ0Q7SUFDRSxRQUFRLEVBQUUsSUFBSTtDQUNmLENBQ0YsQ0FBQSJ9
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const product_1 = __importDefault(require("@medusajs/medusa/product"));
|
|
8
|
+
const product_attribute_1 = __importDefault(require("../modules/product-attribute"));
|
|
9
|
+
/**
|
|
10
|
+
* Product ↔ ProductAttributeValue pivot link.
|
|
11
|
+
*/
|
|
12
|
+
exports.default = (0, utils_1.defineLink)({
|
|
13
|
+
linkable: product_1.default.linkable.product.id,
|
|
14
|
+
isList: true,
|
|
15
|
+
}, {
|
|
16
|
+
linkable: product_attribute_1.default.linkable.productAttributeValue.id,
|
|
17
|
+
isList: true,
|
|
18
|
+
}, {
|
|
19
|
+
database: {
|
|
20
|
+
table: "product_attribute_value_link",
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1hdHRyaWJ1dGUtdmFsdWUtcGl2b3QtbGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW5rcy9wcm9kdWN0LWF0dHJpYnV0ZS12YWx1ZS1waXZvdC1saW5rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQXNEO0FBQ3RELHVFQUFvRDtBQUVwRCxxRkFBaUU7QUFFakU7O0dBRUc7QUFDSCxrQkFBZSxJQUFBLGtCQUFVLEVBQ3ZCO0lBQ0UsUUFBUSxFQUFFLGlCQUFhLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO0lBQzNDLE1BQU0sRUFBRSxJQUFJO0NBQ2IsRUFDRDtJQUNFLFFBQVEsRUFBRSwyQkFBc0IsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRTtJQUNsRSxNQUFNLEVBQUUsSUFBSTtDQUNiLEVBQ0Q7SUFDRSxRQUFRLEVBQUU7UUFDUixLQUFLLEVBQUUsOEJBQThCO0tBQ3RDO0NBQ0YsQ0FDRixDQUFBIn0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Migration } from "@medusajs/framework/mikro-orm/migrations";
|
|
2
|
+
/**
|
|
3
|
+
* Adds the native-option mirror FK columns (SPEC-014):
|
|
4
|
+
* - `product_attribute.product_option_id` → mirror `ProductOption`
|
|
5
|
+
* (variant-axis multi_select attributes).
|
|
6
|
+
* - `product_attribute_value.product_option_value_id` → mirror
|
|
7
|
+
* `ProductOptionValue`.
|
|
8
|
+
* Both nullable; non-axis attributes/values leave them NULL. Read-only
|
|
9
|
+
* mirror links resolve through these FKs. Safe to re-run.
|
|
10
|
+
*/
|
|
11
|
+
export declare class Migration20260601000002 extends Migration {
|
|
12
|
+
up(): Promise<void>;
|
|
13
|
+
down(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20260601000002 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
/**
|
|
6
|
+
* Adds the native-option mirror FK columns (SPEC-014):
|
|
7
|
+
* - `product_attribute.product_option_id` → mirror `ProductOption`
|
|
8
|
+
* (variant-axis multi_select attributes).
|
|
9
|
+
* - `product_attribute_value.product_option_value_id` → mirror
|
|
10
|
+
* `ProductOptionValue`.
|
|
11
|
+
* Both nullable; non-axis attributes/values leave them NULL. Read-only
|
|
12
|
+
* mirror links resolve through these FKs. Safe to re-run.
|
|
13
|
+
*/
|
|
14
|
+
class Migration20260601000002 extends migrations_1.Migration {
|
|
15
|
+
async up() {
|
|
16
|
+
this.addSql(`
|
|
17
|
+
ALTER TABLE "product_attribute"
|
|
18
|
+
ADD COLUMN IF NOT EXISTS "product_option_id" text NULL;
|
|
19
|
+
`);
|
|
20
|
+
this.addSql(`
|
|
21
|
+
ALTER TABLE "product_attribute_value"
|
|
22
|
+
ADD COLUMN IF NOT EXISTS "product_option_value_id" text NULL;
|
|
23
|
+
`);
|
|
24
|
+
}
|
|
25
|
+
async down() {
|
|
26
|
+
this.addSql(`ALTER TABLE "product_attribute_value" DROP COLUMN IF EXISTS "product_option_value_id";`);
|
|
27
|
+
this.addSql(`ALTER TABLE "product_attribute" DROP COLUMN IF EXISTS "product_option_id";`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.Migration20260601000002 = Migration20260601000002;
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjA2MDEwMDAwMDIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wcm9kdWN0LWF0dHJpYnV0ZS9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjYwNjAxMDAwMDAyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUFvRTtBQUVwRTs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFDM0MsS0FBSyxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDOzs7S0FHWCxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDOzs7S0FHWCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FDVCx3RkFBd0YsQ0FDekYsQ0FBQTtRQUNELElBQUksQ0FBQyxNQUFNLENBQ1QsNEVBQTRFLENBQzdFLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUFwQkQsMERBb0JDIn0=
|
|
@@ -5,6 +5,7 @@ declare const ProductAttributeValue: import("@medusajs/framework/utils").DmlEnti
|
|
|
5
5
|
rank: import("@medusajs/framework/utils").NumberProperty;
|
|
6
6
|
is_active: import("@medusajs/framework/utils").BooleanProperty;
|
|
7
7
|
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
8
|
+
product_option_value_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
8
9
|
attribute: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
9
10
|
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
10
11
|
handle: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
@@ -18,6 +19,7 @@ declare const ProductAttributeValue: import("@medusajs/framework/utils").DmlEnti
|
|
|
18
19
|
is_active: import("@medusajs/framework/utils").BooleanProperty;
|
|
19
20
|
created_by: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
20
21
|
product_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
22
|
+
product_option_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
21
23
|
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
22
24
|
values: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "ProductAttributeValue">>;
|
|
23
25
|
}>, "ProductAttribute">, undefined>;
|
|
@@ -13,6 +13,7 @@ const ProductAttributeValue = utils_1.model
|
|
|
13
13
|
rank: utils_1.model.number().default(0),
|
|
14
14
|
is_active: utils_1.model.boolean().default(true),
|
|
15
15
|
metadata: utils_1.model.json().nullable(),
|
|
16
|
+
product_option_value_id: utils_1.model.text().nullable(),
|
|
16
17
|
attribute: utils_1.model.belongsTo(() => product_attribute_1.default, {
|
|
17
18
|
mappedBy: "values",
|
|
18
19
|
}),
|
|
@@ -26,4 +27,4 @@ const ProductAttributeValue = utils_1.model
|
|
|
26
27
|
},
|
|
27
28
|
]);
|
|
28
29
|
exports.default = ProductAttributeValue;
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1hdHRyaWJ1dGUtdmFsdWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wcm9kdWN0LWF0dHJpYnV0ZS9tb2RlbHMvcHJvZHVjdC1hdHRyaWJ1dGUtdmFsdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBaUQ7QUFFakQsNEVBQWtEO0FBRWxELE1BQU0scUJBQXFCLEdBQUcsYUFBSztLQUNoQyxNQUFNLENBQUMsdUJBQXVCLEVBQUU7SUFDL0IsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUU7SUFDakQsTUFBTSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsSUFBSSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDbEIsSUFBSSxFQUFFLGFBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQy9CLFNBQVMsRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN4QyxRQUFRLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNqQyx1QkFBdUIsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBRWhELFNBQVMsRUFBRSxhQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUFnQixFQUFFO1FBQ2pELFFBQVEsRUFBRSxRQUFRO0tBQ25CLENBQUM7Q0FDSCxDQUFDO0tBQ0QsT0FBTyxDQUFDO0lBQ1A7UUFDRSxJQUFJLEVBQUUsMkNBQTJDO1FBQ2pELEVBQUUsRUFBRSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUM7UUFDOUIsTUFBTSxFQUFFLElBQUk7UUFDWixLQUFLLEVBQUUsMkNBQTJDO0tBQ25EO0NBQ0YsQ0FBQyxDQUFBO0FBRUosa0JBQWUscUJBQXFCLENBQUEifQ==
|
|
@@ -12,6 +12,7 @@ declare const ProductAttribute: import("@medusajs/framework/utils").DmlEntity<im
|
|
|
12
12
|
is_active: import("@medusajs/framework/utils").BooleanProperty;
|
|
13
13
|
created_by: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
14
14
|
product_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
15
|
+
product_option_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
15
16
|
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
16
17
|
values: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
17
18
|
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
@@ -20,6 +21,7 @@ declare const ProductAttribute: import("@medusajs/framework/utils").DmlEntity<im
|
|
|
20
21
|
rank: import("@medusajs/framework/utils").NumberProperty;
|
|
21
22
|
is_active: import("@medusajs/framework/utils").BooleanProperty;
|
|
22
23
|
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
24
|
+
product_option_value_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
23
25
|
attribute: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "ProductAttribute">, undefined>;
|
|
24
26
|
}>, "ProductAttributeValue">>;
|
|
25
27
|
}>, "ProductAttribute">;
|
|
@@ -23,6 +23,7 @@ const ProductAttribute = utils_1.model
|
|
|
23
23
|
// from a single product's edit/create form, not visible in the global
|
|
24
24
|
// /product-attributes catalogue). Null = global attribute.
|
|
25
25
|
product_id: utils_1.model.text().nullable(),
|
|
26
|
+
product_option_id: utils_1.model.text().nullable(),
|
|
26
27
|
metadata: utils_1.model.json().nullable(),
|
|
27
28
|
values: utils_1.model.hasMany(() => product_attribute_value_1.default, {
|
|
28
29
|
mappedBy: "attribute",
|
|
@@ -50,4 +51,4 @@ const ProductAttribute = utils_1.model
|
|
|
50
51
|
},
|
|
51
52
|
]);
|
|
52
53
|
exports.default = ProductAttribute;
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1hdHRyaWJ1dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wcm9kdWN0LWF0dHJpYnV0ZS9tb2RlbHMvcHJvZHVjdC1hdHRyaWJ1dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBaUQ7QUFDakQsMkNBQStDO0FBRS9DLHdGQUE2RDtBQUU3RCxNQUFNLGdCQUFnQixHQUFHLGFBQUs7S0FDM0IsTUFBTSxDQUFDLGtCQUFrQixFQUFFO0lBQzFCLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQzlDLE1BQU0sRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQy9CLElBQUksRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQy9CLFdBQVcsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3BDLElBQUksRUFBRSxhQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFhLENBQUM7SUFDL0IsV0FBVyxFQUFFLGFBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzNDLGFBQWEsRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM3QyxlQUFlLEVBQUUsYUFBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDL0MsSUFBSSxFQUFFLGFBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQy9CLFNBQVMsRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN4QyxVQUFVLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNuQyx5RUFBeUU7SUFDekUsc0VBQXNFO0lBQ3RFLDJEQUEyRDtJQUMzRCxVQUFVLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNuQyxpQkFBaUIsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzFDLFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBRWpDLE1BQU0sRUFBRSxhQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLGlDQUFxQixFQUFFO1FBQ2pELFFBQVEsRUFBRSxXQUFXO0tBQ3RCLENBQUM7Q0FDSCxDQUFDO0tBQ0QsUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztLQUNoQyxPQUFPLENBQUM7SUFDUDtRQUNFLElBQUksRUFBRSxxQ0FBcUM7UUFDM0MsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDO1FBQ2QsTUFBTSxFQUFFLElBQUk7UUFDWixLQUFLLEVBQUUsMkNBQTJDO0tBQ25EO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsNEJBQTRCO1FBQ2xDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUNaLE1BQU0sRUFBRSxLQUFLO1FBQ2IsS0FBSyxFQUFFLG9CQUFvQjtLQUM1QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGtDQUFrQztRQUN4QyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFDbEIsTUFBTSxFQUFFLEtBQUs7UUFDYixLQUFLLEVBQUUsK0NBQStDO0tBQ3ZEO0NBQ0YsQ0FBQyxDQUFBO0FBRUosa0JBQWUsZ0JBQWdCLENBQUEifQ==
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import type { ModuleJoinerConfig } from "@medusajs/framework/types";
|
|
1
|
+
import type { Context, FindConfig, ModuleJoinerConfig } from "@medusajs/framework/types";
|
|
2
|
+
import { AttributeType } from "@mercurjs/types";
|
|
2
3
|
declare const ProductAttributeModuleService_base: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
|
|
3
4
|
readonly ProductAttribute: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
4
5
|
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
5
6
|
handle: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
6
7
|
name: import("@medusajs/framework/utils").TextProperty;
|
|
7
8
|
description: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
8
|
-
type: import("@medusajs/framework/utils").EnumProperty<typeof
|
|
9
|
+
type: import("@medusajs/framework/utils").EnumProperty<typeof AttributeType>;
|
|
9
10
|
is_required: import("@medusajs/framework/utils").BooleanProperty;
|
|
10
11
|
is_filterable: import("@medusajs/framework/utils").BooleanProperty;
|
|
11
12
|
is_variant_axis: import("@medusajs/framework/utils").BooleanProperty;
|
|
@@ -13,6 +14,7 @@ declare const ProductAttributeModuleService_base: import("@medusajs/framework/ut
|
|
|
13
14
|
is_active: import("@medusajs/framework/utils").BooleanProperty;
|
|
14
15
|
created_by: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
15
16
|
product_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
17
|
+
product_option_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
16
18
|
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
17
19
|
values: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
18
20
|
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
@@ -21,6 +23,7 @@ declare const ProductAttributeModuleService_base: import("@medusajs/framework/ut
|
|
|
21
23
|
rank: import("@medusajs/framework/utils").NumberProperty;
|
|
22
24
|
is_active: import("@medusajs/framework/utils").BooleanProperty;
|
|
23
25
|
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
26
|
+
product_option_value_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
24
27
|
attribute: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "ProductAttribute">, undefined>;
|
|
25
28
|
}>, "ProductAttributeValue">>;
|
|
26
29
|
}>, "ProductAttribute">;
|
|
@@ -31,12 +34,13 @@ declare const ProductAttributeModuleService_base: import("@medusajs/framework/ut
|
|
|
31
34
|
rank: import("@medusajs/framework/utils").NumberProperty;
|
|
32
35
|
is_active: import("@medusajs/framework/utils").BooleanProperty;
|
|
33
36
|
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
37
|
+
product_option_value_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
34
38
|
attribute: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
35
39
|
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
36
40
|
handle: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
37
41
|
name: import("@medusajs/framework/utils").TextProperty;
|
|
38
42
|
description: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
39
|
-
type: import("@medusajs/framework/utils").EnumProperty<typeof
|
|
43
|
+
type: import("@medusajs/framework/utils").EnumProperty<typeof AttributeType>;
|
|
40
44
|
is_required: import("@medusajs/framework/utils").BooleanProperty;
|
|
41
45
|
is_filterable: import("@medusajs/framework/utils").BooleanProperty;
|
|
42
46
|
is_variant_axis: import("@medusajs/framework/utils").BooleanProperty;
|
|
@@ -44,6 +48,7 @@ declare const ProductAttributeModuleService_base: import("@medusajs/framework/ut
|
|
|
44
48
|
is_active: import("@medusajs/framework/utils").BooleanProperty;
|
|
45
49
|
created_by: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
46
50
|
product_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
51
|
+
product_option_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
47
52
|
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
48
53
|
values: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "ProductAttributeValue">>;
|
|
49
54
|
}>, "ProductAttribute">, undefined>;
|
|
@@ -51,5 +56,15 @@ declare const ProductAttributeModuleService_base: import("@medusajs/framework/ut
|
|
|
51
56
|
}>>;
|
|
52
57
|
declare class ProductAttributeModuleService extends ProductAttributeModuleService_base {
|
|
53
58
|
__joinerConfig(): ModuleJoinerConfig;
|
|
59
|
+
createProductAttributes<T extends any | any[]>(data: T, sharedContext?: Context): Promise<T extends any[] ? any[] : any>;
|
|
60
|
+
updateProductAttributes<T extends any | any[]>(data: T, sharedContext?: Context): Promise<T extends any[] ? any[] : any>;
|
|
61
|
+
private static readonly VALUE_TYPES;
|
|
62
|
+
private wantsValues;
|
|
63
|
+
private stripValuesFromConfig;
|
|
64
|
+
private deriveValueConfig;
|
|
65
|
+
private attachValues;
|
|
66
|
+
listProductAttributes(filters?: any, config?: FindConfig<any>, sharedContext?: Context): Promise<any[]>;
|
|
67
|
+
listAndCountProductAttributes(filters?: any, config?: FindConfig<any>, sharedContext?: Context): Promise<[any[], number]>;
|
|
68
|
+
createProductAttributeValues<T extends any | any[]>(data: T, sharedContext?: Context): Promise<T extends any[] ? any[] : any>;
|
|
54
69
|
}
|
|
55
70
|
export default ProductAttributeModuleService;
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var _a, _b, _c;
|
|
2
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
16
|
const utils_1 = require("@medusajs/framework/utils");
|
|
17
|
+
const types_1 = require("@mercurjs/types");
|
|
4
18
|
const joiner_config_1 = require("./joiner-config");
|
|
5
19
|
const models_1 = require("./models");
|
|
6
20
|
class ProductAttributeModuleService extends (0, utils_1.MedusaService)({
|
|
@@ -10,6 +24,204 @@ class ProductAttributeModuleService extends (0, utils_1.MedusaService)({
|
|
|
10
24
|
__joinerConfig() {
|
|
11
25
|
return joiner_config_1.joinerConfig;
|
|
12
26
|
}
|
|
27
|
+
// @ts-ignore
|
|
28
|
+
async createProductAttributes(data, sharedContext) {
|
|
29
|
+
const input = (Array.isArray(data) ? data : [data]).map((attribute) => {
|
|
30
|
+
if (!attribute.handle && !attribute.product_id && attribute.name) {
|
|
31
|
+
attribute.handle = (0, utils_1.toHandle)(attribute.name);
|
|
32
|
+
}
|
|
33
|
+
return attribute;
|
|
34
|
+
});
|
|
35
|
+
// @ts-ignore
|
|
36
|
+
const result = await super.createProductAttributes(input, sharedContext);
|
|
37
|
+
const created = Array.isArray(result) ? result : [result];
|
|
38
|
+
const toggleValues = created
|
|
39
|
+
.filter((attribute) => attribute.type === types_1.AttributeType.TOGGLE)
|
|
40
|
+
.flatMap((attribute) => [
|
|
41
|
+
{ attribute_id: attribute.id, name: "true", rank: 0 },
|
|
42
|
+
{ attribute_id: attribute.id, name: "false", rank: 1 },
|
|
43
|
+
]);
|
|
44
|
+
if (toggleValues.length) {
|
|
45
|
+
await this.createProductAttributeValues(toggleValues, sharedContext);
|
|
46
|
+
}
|
|
47
|
+
return (Array.isArray(data) ? result : result[0]);
|
|
48
|
+
}
|
|
49
|
+
// @ts-ignore
|
|
50
|
+
async updateProductAttributes(data, sharedContext) {
|
|
51
|
+
const updates = Array.isArray(data) ? data : [data];
|
|
52
|
+
const idsWithType = updates
|
|
53
|
+
.filter((u) => u.id && u.type !== undefined)
|
|
54
|
+
.map((u) => u.id);
|
|
55
|
+
if (idsWithType.length) {
|
|
56
|
+
const existing = await this.listProductAttributes({ id: idsWithType }, { select: ["id", "type"] }, sharedContext);
|
|
57
|
+
const typeById = new Map(existing.map((a) => [a.id, a.type]));
|
|
58
|
+
for (const update of updates) {
|
|
59
|
+
if (!update.id || update.type === undefined) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
const currentType = typeById.get(update.id);
|
|
63
|
+
if (currentType !== undefined && update.type !== currentType) {
|
|
64
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Cannot change the type of an existing attribute (${update.id}): "${currentType}" -> "${update.type}".`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// @ts-ignore
|
|
69
|
+
return super.updateProductAttributes(data, sharedContext);
|
|
70
|
+
}
|
|
71
|
+
wantsValues(config) {
|
|
72
|
+
const relations = config?.relations ?? [];
|
|
73
|
+
if (relations.some((r) => r === "values" || r.startsWith("values."))) {
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
const select = config?.select ?? [];
|
|
77
|
+
return select.some((s) => s === "values" || s.startsWith("values."));
|
|
78
|
+
}
|
|
79
|
+
stripValuesFromConfig(config) {
|
|
80
|
+
if (!config) {
|
|
81
|
+
return config;
|
|
82
|
+
}
|
|
83
|
+
const next = { ...config };
|
|
84
|
+
if (Array.isArray(next.relations)) {
|
|
85
|
+
next.relations = next.relations.filter((r) => r !== "values" && !r.startsWith("values."));
|
|
86
|
+
}
|
|
87
|
+
if (Array.isArray(next.select)) {
|
|
88
|
+
next.select = Array.from(new Set([
|
|
89
|
+
...next.select.filter((s) => s !== "values" && !s.startsWith("values.")),
|
|
90
|
+
"id",
|
|
91
|
+
"type",
|
|
92
|
+
]));
|
|
93
|
+
}
|
|
94
|
+
return next;
|
|
95
|
+
}
|
|
96
|
+
deriveValueConfig(config) {
|
|
97
|
+
const relations = (config?.relations ?? [])
|
|
98
|
+
.filter((r) => r.startsWith("values."))
|
|
99
|
+
.map((r) => r.slice("values.".length));
|
|
100
|
+
const selectPaths = (config?.select ?? [])
|
|
101
|
+
.filter((s) => s.startsWith("values."))
|
|
102
|
+
.map((s) => s.slice("values.".length));
|
|
103
|
+
const valueConfig = {};
|
|
104
|
+
if (relations.length) {
|
|
105
|
+
valueConfig.relations = relations;
|
|
106
|
+
}
|
|
107
|
+
if (selectPaths.length) {
|
|
108
|
+
valueConfig.select = Array.from(new Set([...selectPaths, "attribute_id"]));
|
|
109
|
+
}
|
|
110
|
+
return valueConfig;
|
|
111
|
+
}
|
|
112
|
+
async attachValues(attributes, config, sharedContext) {
|
|
113
|
+
const valueAttributes = attributes.filter((a) => ProductAttributeModuleService.VALUE_TYPES.has(a.type));
|
|
114
|
+
for (const attribute of attributes) {
|
|
115
|
+
if (!ProductAttributeModuleService.VALUE_TYPES.has(attribute.type)) {
|
|
116
|
+
attribute.values = [];
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (!valueAttributes.length) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const values = await this.listProductAttributeValues({ attribute_id: valueAttributes.map((a) => a.id) }, this.deriveValueConfig(config), sharedContext);
|
|
123
|
+
const valuesByAttribute = new Map();
|
|
124
|
+
for (const value of values) {
|
|
125
|
+
const list = valuesByAttribute.get(value.attribute_id) ?? [];
|
|
126
|
+
list.push(value);
|
|
127
|
+
valuesByAttribute.set(value.attribute_id, list);
|
|
128
|
+
}
|
|
129
|
+
for (const attribute of valueAttributes) {
|
|
130
|
+
attribute.values = valuesByAttribute.get(attribute.id) ?? [];
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// @ts-ignore
|
|
134
|
+
async listProductAttributes(filters, config, sharedContext) {
|
|
135
|
+
const wantsValues = this.wantsValues(config);
|
|
136
|
+
// @ts-ignore
|
|
137
|
+
const attributes = await super.listProductAttributes(filters, this.stripValuesFromConfig(config), sharedContext);
|
|
138
|
+
if (wantsValues && attributes.length) {
|
|
139
|
+
await this.attachValues(attributes, config, sharedContext);
|
|
140
|
+
}
|
|
141
|
+
return attributes;
|
|
142
|
+
}
|
|
143
|
+
// @ts-ignore
|
|
144
|
+
async listAndCountProductAttributes(filters, config, sharedContext) {
|
|
145
|
+
const wantsValues = this.wantsValues(config);
|
|
146
|
+
// @ts-ignore
|
|
147
|
+
const [attributes, count] = await super.listAndCountProductAttributes(filters, this.stripValuesFromConfig(config), sharedContext);
|
|
148
|
+
if (wantsValues && attributes.length) {
|
|
149
|
+
await this.attachValues(attributes, config, sharedContext);
|
|
150
|
+
}
|
|
151
|
+
return [attributes, count];
|
|
152
|
+
}
|
|
153
|
+
// @ts-ignore
|
|
154
|
+
async createProductAttributeValues(data, sharedContext) {
|
|
155
|
+
const values = Array.isArray(data) ? data : [data];
|
|
156
|
+
const attributeIds = Array.from(new Set(values.map((v) => v.attribute_id).filter(Boolean)));
|
|
157
|
+
const attributes = attributeIds.length
|
|
158
|
+
? await this.listProductAttributes({ id: attributeIds }, { select: ["id", "product_id", "type"] }, sharedContext)
|
|
159
|
+
: [];
|
|
160
|
+
const attributeById = new Map(attributes.map((a) => [a.id, a]));
|
|
161
|
+
const selectTypes = new Set([
|
|
162
|
+
types_1.AttributeType.SINGLE_SELECT,
|
|
163
|
+
types_1.AttributeType.MULTI_SELECT,
|
|
164
|
+
]);
|
|
165
|
+
const input = values.map((value) => {
|
|
166
|
+
const attribute = attributeById.get(value.attribute_id);
|
|
167
|
+
const isProductScoped = !!attribute?.product_id;
|
|
168
|
+
const isSelectType = !!attribute && selectTypes.has(attribute.type);
|
|
169
|
+
if (!value.handle && !isProductScoped && isSelectType && value.name) {
|
|
170
|
+
value.handle = (0, utils_1.toHandle)(value.name);
|
|
171
|
+
}
|
|
172
|
+
return value;
|
|
173
|
+
});
|
|
174
|
+
// @ts-ignore
|
|
175
|
+
const result = await super.createProductAttributeValues(input, sharedContext);
|
|
176
|
+
return (Array.isArray(data) ? result : result[0]);
|
|
177
|
+
}
|
|
13
178
|
}
|
|
179
|
+
ProductAttributeModuleService.VALUE_TYPES = new Set([
|
|
180
|
+
types_1.AttributeType.SINGLE_SELECT,
|
|
181
|
+
types_1.AttributeType.MULTI_SELECT,
|
|
182
|
+
types_1.AttributeType.TOGGLE,
|
|
183
|
+
]);
|
|
184
|
+
__decorate([
|
|
185
|
+
(0, utils_1.InjectTransactionManager)()
|
|
186
|
+
// @ts-ignore
|
|
187
|
+
,
|
|
188
|
+
__metadata("design:type", Function),
|
|
189
|
+
__metadata("design:paramtypes", [typeof (_a = typeof T !== "undefined" && T) === "function" ? _a : Object, Object]),
|
|
190
|
+
__metadata("design:returntype", Promise)
|
|
191
|
+
], ProductAttributeModuleService.prototype, "createProductAttributes", null);
|
|
192
|
+
__decorate([
|
|
193
|
+
(0, utils_1.InjectTransactionManager)()
|
|
194
|
+
// @ts-ignore
|
|
195
|
+
,
|
|
196
|
+
__metadata("design:type", Function),
|
|
197
|
+
__metadata("design:paramtypes", [typeof (_b = typeof T !== "undefined" && T) === "function" ? _b : Object, Object]),
|
|
198
|
+
__metadata("design:returntype", Promise)
|
|
199
|
+
], ProductAttributeModuleService.prototype, "updateProductAttributes", null);
|
|
200
|
+
__decorate([
|
|
201
|
+
(0, utils_1.InjectManager)()
|
|
202
|
+
// @ts-ignore
|
|
203
|
+
,
|
|
204
|
+
__param(2, (0, utils_1.MedusaContext)()),
|
|
205
|
+
__metadata("design:type", Function),
|
|
206
|
+
__metadata("design:paramtypes", [Object, Object, Object]),
|
|
207
|
+
__metadata("design:returntype", Promise)
|
|
208
|
+
], ProductAttributeModuleService.prototype, "listProductAttributes", null);
|
|
209
|
+
__decorate([
|
|
210
|
+
(0, utils_1.InjectManager)()
|
|
211
|
+
// @ts-ignore
|
|
212
|
+
,
|
|
213
|
+
__param(2, (0, utils_1.MedusaContext)()),
|
|
214
|
+
__metadata("design:type", Function),
|
|
215
|
+
__metadata("design:paramtypes", [Object, Object, Object]),
|
|
216
|
+
__metadata("design:returntype", Promise)
|
|
217
|
+
], ProductAttributeModuleService.prototype, "listAndCountProductAttributes", null);
|
|
218
|
+
__decorate([
|
|
219
|
+
(0, utils_1.InjectTransactionManager)()
|
|
220
|
+
// @ts-ignore
|
|
221
|
+
,
|
|
222
|
+
__metadata("design:type", Function),
|
|
223
|
+
__metadata("design:paramtypes", [typeof (_c = typeof T !== "undefined" && T) === "function" ? _c : Object, Object]),
|
|
224
|
+
__metadata("design:returntype", Promise)
|
|
225
|
+
], ProductAttributeModuleService.prototype, "createProductAttributeValues", null);
|
|
14
226
|
exports.default = ProductAttributeModuleService;
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3Byb2R1Y3QtYXR0cmlidXRlL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxxREFBeUQ7QUFFekQsbURBQThDO0FBQzlDLHFDQUFrRTtBQUVsRSxNQUFNLDZCQUE4QixTQUFRLElBQUEscUJBQWEsRUFBQztJQUN4RCxnQkFBZ0IsRUFBaEIseUJBQWdCO0lBQ2hCLHFCQUFxQixFQUFyQiw4QkFBcUI7Q0FDdEIsQ0FBQztJQUNBLGNBQWM7UUFDWixPQUFPLDRCQUFZLENBQUE7SUFDckIsQ0FBQztDQUNGO0FBRUQsa0JBQWUsNkJBQTZCLENBQUEifQ==
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3Byb2R1Y3QtYXR0cmlidXRlL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBS0EscURBT2tDO0FBQ2xDLDJDQUErQztBQUUvQyxtREFBOEM7QUFDOUMscUNBQWtFO0FBRWxFLE1BQU0sNkJBQThCLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQ3hELGdCQUFnQixFQUFoQix5QkFBZ0I7SUFDaEIscUJBQXFCLEVBQXJCLDhCQUFxQjtDQUN0QixDQUFDO0lBQ0EsY0FBYztRQUNaLE9BQU8sNEJBQVksQ0FBQTtJQUNyQixDQUFDO0lBSUssQUFETixhQUFhO0lBQ2IsS0FBSyxDQUFDLHVCQUF1QixDQUMzQixJQUFPLEVBQ1AsYUFBdUI7UUFFdkIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNqRSxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUEsZ0JBQVEsRUFBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDN0MsQ0FBQztZQUVELE9BQU8sU0FBUyxDQUFBO1FBQ2xCLENBQUMsQ0FBQyxDQUFBO1FBRUYsYUFBYTtRQUNiLE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQTtRQUV4RSxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFD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
|