chore: Remove FlagRouter from core (#4710)
* Allow nested feature flags * clean up * Create loud-wombats-shave.md * add warning * Add more tests * Address PR comments * add back boolean check * Replace core flag router with utils one * lol - actually remove it * Create eleven-doors-roll.md --------- Co-authored-by: carlos-r-l-rodrigues <rodrigolr@gmail.com>
This commit is contained in:
co-authored by
carlos-r-l-rodrigues
parent
281b0746cf
commit
d1e298f5dc
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@medusajs/medusa": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
chore: Remove FlagRouter from core
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { NextFunction, Request, Response } from "express"
|
import { NextFunction, Request, Response } from "express"
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
|
||||||
|
|
||||||
export function isFeatureFlagEnabled(
|
export function isFeatureFlagEnabled(
|
||||||
flagKey: string
|
flagKey: string
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { NextFunction, Request, Response } from "express"
|
import { NextFunction, Request, Response } from "express"
|
||||||
import SalesChannelFeatureFlag from "../../loaders/feature-flags/sales-channels"
|
import SalesChannelFeatureFlag from "../../loaders/feature-flags/sales-channels"
|
||||||
import { SalesChannelService } from "../../services"
|
import { SalesChannelService } from "../../services"
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Middleware that includes the default sales channel on the request, if no sales channels present
|
* Middleware that includes the default sales channel on the request, if no sales channels present
|
||||||
|
|||||||
@@ -1,81 +1,81 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { Router } from "express"
|
import { Router } from "express"
|
||||||
import "reflect-metadata"
|
import "reflect-metadata"
|
||||||
import { Order } from "../../../.."
|
import { Order } from "../../../.."
|
||||||
import SalesChannelFeatureFlag from "../../../../loaders/feature-flags/sales-channels"
|
import SalesChannelFeatureFlag from "../../../../loaders/feature-flags/sales-channels"
|
||||||
import { FindParams, PaginatedResponse } from "../../../../types/common"
|
import { FindParams, PaginatedResponse } from "../../../../types/common"
|
||||||
import { FlagRouter } from "../../../../utils/flag-router"
|
import {
|
||||||
|
defaultAdminOrdersFields,
|
||||||
|
defaultAdminOrdersRelations,
|
||||||
|
} from "../../../../types/orders"
|
||||||
import middlewares, {
|
import middlewares, {
|
||||||
transformBody,
|
transformBody,
|
||||||
transformIncludesOptions,
|
transformIncludesOptions,
|
||||||
transformQuery,
|
transformQuery,
|
||||||
} from "../../../middlewares"
|
} from "../../../middlewares"
|
||||||
import { checkRegisteredModules } from "../../../middlewares/check-registered-modules"
|
import { checkRegisteredModules } from "../../../middlewares/check-registered-modules"
|
||||||
import { AdminOrdersOrderLineItemReservationReq } from "./create-reservation-for-line-item"
|
|
||||||
import { AdminGetOrdersOrderReservationsParams } from "./get-reservations"
|
|
||||||
import { AdminGetOrdersParams } from "./list-orders"
|
|
||||||
import {
|
|
||||||
AdminPostOrdersOrderSwapsParams,
|
|
||||||
AdminPostOrdersOrderSwapsReq,
|
|
||||||
} from "./create-swap"
|
|
||||||
import {
|
|
||||||
AdminPostOrdersOrderParams,
|
|
||||||
AdminPostOrdersOrderReq,
|
|
||||||
} from "./update-order"
|
|
||||||
import { AdminPostOrdersOrderCompleteParams } from "./complete-order"
|
|
||||||
import {
|
|
||||||
AdminPostOrdersOrderRefundsParams,
|
|
||||||
AdminPostOrdersOrderRefundsReq,
|
|
||||||
} from "./refund-payment"
|
|
||||||
import { AdminPostOrdersOrderCaptureParams } from "./capture-payment"
|
|
||||||
import {
|
|
||||||
AdminPostOrdersOrderFulfillmentsParams,
|
|
||||||
AdminPostOrdersOrderFulfillmentsReq,
|
|
||||||
} from "./create-fulfillment"
|
|
||||||
import { AdminPostOrdersOrderFulfillementsCancelParams } from "./cancel-fulfillment"
|
|
||||||
import { AdminPostOrdersOrderSwapFulfillementsCancelParams } from "./cancel-fulfillment-swap"
|
|
||||||
import { AdminPostOrdersClaimFulfillmentsCancelParams } from "./cancel-fulfillment-claim"
|
|
||||||
import {
|
|
||||||
AdminPostOrdersOrderShipmentParams,
|
|
||||||
AdminPostOrdersOrderShipmentReq,
|
|
||||||
} from "./create-shipment"
|
|
||||||
import {
|
|
||||||
AdminPostOrdersOrderReturnsParams,
|
|
||||||
AdminPostOrdersOrderReturnsReq,
|
|
||||||
} from "./request-return"
|
|
||||||
import { AdminPostOrdersOrderCancel } from "./cancel-order"
|
|
||||||
import {
|
import {
|
||||||
AdminPostOrdersOrderShippingMethodsParams,
|
AdminPostOrdersOrderShippingMethodsParams,
|
||||||
AdminPostOrdersOrderShippingMethodsReq,
|
AdminPostOrdersOrderShippingMethodsReq,
|
||||||
} from "./add-shipping-method"
|
} from "./add-shipping-method"
|
||||||
import { AdminPostOrdersOrderArchiveParams } from "./archive-order"
|
import { AdminPostOrdersOrderArchiveParams } from "./archive-order"
|
||||||
|
import { AdminPostOrdersClaimCancel } from "./cancel-claim"
|
||||||
|
import { AdminPostOrdersOrderFulfillementsCancelParams } from "./cancel-fulfillment"
|
||||||
|
import { AdminPostOrdersClaimFulfillmentsCancelParams } from "./cancel-fulfillment-claim"
|
||||||
|
import { AdminPostOrdersOrderSwapFulfillementsCancelParams } from "./cancel-fulfillment-swap"
|
||||||
|
import { AdminPostOrdersOrderCancel } from "./cancel-order"
|
||||||
import { AdminPostOrdersSwapCancelParams } from "./cancel-swap"
|
import { AdminPostOrdersSwapCancelParams } from "./cancel-swap"
|
||||||
import { AdminPostOrdersOrderSwapsSwapFulfillmentsParams } from "./fulfill-swap"
|
import { AdminPostOrdersOrderCaptureParams } from "./capture-payment"
|
||||||
import {
|
import { AdminPostOrdersOrderCompleteParams } from "./complete-order"
|
||||||
AdminPostOrdersOrderSwapsSwapShipmentsParams,
|
|
||||||
AdminPostOrdersOrderSwapsSwapShipmentsReq,
|
|
||||||
} from "./create-swap-shipment"
|
|
||||||
import { AdminPostOrdersOrderSwapsSwapProcessPaymentParams } from "./process-swap-payment"
|
|
||||||
import {
|
import {
|
||||||
AdminPostOrdersOrderClaimsParams,
|
AdminPostOrdersOrderClaimsParams,
|
||||||
AdminPostOrdersOrderClaimsReq,
|
AdminPostOrdersOrderClaimsReq,
|
||||||
} from "./create-claim"
|
} from "./create-claim"
|
||||||
import { AdminPostOrdersClaimCancel } from "./cancel-claim"
|
|
||||||
import {
|
|
||||||
AdminPostOrdersOrderClaimsClaimParams,
|
|
||||||
AdminPostOrdersOrderClaimsClaimReq,
|
|
||||||
} from "./update-claim"
|
|
||||||
import {
|
|
||||||
AdminPostOrdersOrderClaimsClaimFulfillmentsParams,
|
|
||||||
AdminPostOrdersOrderClaimsClaimFulfillmentsReq,
|
|
||||||
} from "./fulfill-claim"
|
|
||||||
import {
|
import {
|
||||||
AdminPostOrdersOrderClaimsClaimShipmentsParams,
|
AdminPostOrdersOrderClaimsClaimShipmentsParams,
|
||||||
AdminPostOrdersOrderClaimsClaimShipmentsReq,
|
AdminPostOrdersOrderClaimsClaimShipmentsReq,
|
||||||
} from "./create-claim-shipment"
|
} from "./create-claim-shipment"
|
||||||
import {
|
import {
|
||||||
defaultAdminOrdersFields,
|
AdminPostOrdersOrderFulfillmentsParams,
|
||||||
defaultAdminOrdersRelations,
|
AdminPostOrdersOrderFulfillmentsReq,
|
||||||
} from "../../../../types/orders"
|
} from "./create-fulfillment"
|
||||||
|
import { AdminOrdersOrderLineItemReservationReq } from "./create-reservation-for-line-item"
|
||||||
|
import {
|
||||||
|
AdminPostOrdersOrderShipmentParams,
|
||||||
|
AdminPostOrdersOrderShipmentReq,
|
||||||
|
} from "./create-shipment"
|
||||||
|
import {
|
||||||
|
AdminPostOrdersOrderSwapsParams,
|
||||||
|
AdminPostOrdersOrderSwapsReq,
|
||||||
|
} from "./create-swap"
|
||||||
|
import {
|
||||||
|
AdminPostOrdersOrderSwapsSwapShipmentsParams,
|
||||||
|
AdminPostOrdersOrderSwapsSwapShipmentsReq,
|
||||||
|
} from "./create-swap-shipment"
|
||||||
|
import {
|
||||||
|
AdminPostOrdersOrderClaimsClaimFulfillmentsParams,
|
||||||
|
AdminPostOrdersOrderClaimsClaimFulfillmentsReq,
|
||||||
|
} from "./fulfill-claim"
|
||||||
|
import { AdminPostOrdersOrderSwapsSwapFulfillmentsParams } from "./fulfill-swap"
|
||||||
|
import { AdminGetOrdersOrderReservationsParams } from "./get-reservations"
|
||||||
|
import { AdminGetOrdersParams } from "./list-orders"
|
||||||
|
import { AdminPostOrdersOrderSwapsSwapProcessPaymentParams } from "./process-swap-payment"
|
||||||
|
import {
|
||||||
|
AdminPostOrdersOrderRefundsParams,
|
||||||
|
AdminPostOrdersOrderRefundsReq,
|
||||||
|
} from "./refund-payment"
|
||||||
|
import {
|
||||||
|
AdminPostOrdersOrderReturnsParams,
|
||||||
|
AdminPostOrdersOrderReturnsReq,
|
||||||
|
} from "./request-return"
|
||||||
|
import {
|
||||||
|
AdminPostOrdersOrderClaimsClaimParams,
|
||||||
|
AdminPostOrdersOrderClaimsClaimReq,
|
||||||
|
} from "./update-claim"
|
||||||
|
import {
|
||||||
|
AdminPostOrdersOrderParams,
|
||||||
|
AdminPostOrdersOrderReq,
|
||||||
|
} from "./update-order"
|
||||||
|
|
||||||
const route = Router()
|
const route = Router()
|
||||||
|
|
||||||
@@ -779,3 +779,4 @@ export * from "./refund-payment"
|
|||||||
export * from "./request-return"
|
export * from "./request-return"
|
||||||
export * from "./update-claim"
|
export * from "./update-claim"
|
||||||
export * from "./update-order"
|
export * from "./update-order"
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { Router } from "express"
|
import { Router } from "express"
|
||||||
import "reflect-metadata"
|
import "reflect-metadata"
|
||||||
import { PriceList, Product } from "../../../.."
|
import { PriceList, Product } from "../../../.."
|
||||||
|
import TaxInclusivePricingFeatureFlag from "../../../../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
import { DeleteResponse, PaginatedResponse } from "../../../../types/common"
|
import { DeleteResponse, PaginatedResponse } from "../../../../types/common"
|
||||||
import middlewares, {
|
import middlewares, {
|
||||||
transformBody,
|
transformBody,
|
||||||
transformQuery,
|
transformQuery,
|
||||||
} from "../../../middlewares"
|
} from "../../../middlewares"
|
||||||
import { AdminGetPriceListPaginationParams } from "./list-price-lists"
|
|
||||||
import { AdminGetPriceListsPriceListProductsParams } from "./list-price-list-products"
|
|
||||||
import {
|
import {
|
||||||
defaultAdminProductFields,
|
defaultAdminProductFields,
|
||||||
defaultAdminProductRelations,
|
defaultAdminProductRelations,
|
||||||
} from "../products"
|
} from "../products"
|
||||||
import { AdminPostPriceListsPriceListReq } from "./create-price-list"
|
import { AdminPostPriceListsPriceListReq } from "./create-price-list"
|
||||||
import { FlagRouter } from "../../../../utils/flag-router"
|
import { AdminGetPriceListsPriceListProductsParams } from "./list-price-list-products"
|
||||||
import TaxInclusivePricingFeatureFlag from "../../../../loaders/feature-flags/tax-inclusive-pricing"
|
import { AdminGetPriceListPaginationParams } from "./list-price-lists"
|
||||||
|
|
||||||
const route = Router()
|
const route = Router()
|
||||||
|
|
||||||
@@ -280,8 +280,9 @@ export type AdminPriceListsProductsListRes = PaginatedResponse & {
|
|||||||
export * from "./add-prices-batch"
|
export * from "./add-prices-batch"
|
||||||
export * from "./create-price-list"
|
export * from "./create-price-list"
|
||||||
export * from "./delete-price-list"
|
export * from "./delete-price-list"
|
||||||
|
export * from "./delete-prices-batch"
|
||||||
export * from "./get-price-list"
|
export * from "./get-price-list"
|
||||||
|
export * from "./list-price-list-products"
|
||||||
export * from "./list-price-lists"
|
export * from "./list-price-lists"
|
||||||
export * from "./update-price-list"
|
export * from "./update-price-list"
|
||||||
export * from "./delete-prices-batch"
|
|
||||||
export * from "./list-price-list-products"
|
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
import "reflect-metadata"
|
import "reflect-metadata"
|
||||||
|
|
||||||
import { FindParams, PaginatedResponse } from "../../../../types/common"
|
|
||||||
import { Product, ProductTag, ProductType, ProductVariant } from "../../../.."
|
import { Product, ProductTag, ProductType, ProductVariant } from "../../../.."
|
||||||
|
import { FindParams, PaginatedResponse } from "../../../../types/common"
|
||||||
import middlewares, { transformQuery } from "../../../middlewares"
|
import middlewares, { transformQuery } from "../../../middlewares"
|
||||||
|
|
||||||
import { AdminGetProductsParams } from "./list-products"
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { FlagRouter } from "../../../../utils/flag-router"
|
|
||||||
import { Router } from "express"
|
import { Router } from "express"
|
||||||
import { validateSalesChannelsExist } from "../../../middlewares/validators/sales-channel-existence"
|
|
||||||
import { PricedProduct } from "../../../../types/pricing"
|
import { PricedProduct } from "../../../../types/pricing"
|
||||||
|
import { validateSalesChannelsExist } from "../../../middlewares/validators/sales-channel-existence"
|
||||||
|
import { AdminGetProductsParams } from "./list-products"
|
||||||
|
|
||||||
const route = Router()
|
const route = Router()
|
||||||
|
|
||||||
@@ -407,3 +407,4 @@ export * from "./set-metadata"
|
|||||||
export * from "./update-option"
|
export * from "./update-option"
|
||||||
export * from "./update-product"
|
export * from "./update-product"
|
||||||
export * from "./update-variant"
|
export * from "./update-variant"
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { Router } from "express"
|
import { Router } from "express"
|
||||||
|
import "reflect-metadata"
|
||||||
import { Region } from "../../../.."
|
import { Region } from "../../../.."
|
||||||
|
import TaxInclusivePricingFeatureFlag from "../../../../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
import { DeleteResponse, PaginatedResponse } from "../../../../types/common"
|
import { DeleteResponse, PaginatedResponse } from "../../../../types/common"
|
||||||
import middlewares from "../../../middlewares"
|
import middlewares from "../../../middlewares"
|
||||||
import "reflect-metadata"
|
|
||||||
import { FlagRouter } from "../../../../utils/flag-router"
|
|
||||||
import TaxInclusivePricingFeatureFlag from "../../../../loaders/feature-flags/tax-inclusive-pricing"
|
|
||||||
|
|
||||||
const route = Router()
|
const route = Router()
|
||||||
|
|
||||||
@@ -204,9 +204,10 @@ export class AdminGetRegionsRegionFulfillmentOptionsRes {
|
|||||||
fulfillment_options: FulfillmentOption[]
|
fulfillment_options: FulfillmentOption[]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export * from "./add-country"
|
||||||
|
export * from "./add-fulfillment-provider"
|
||||||
|
export * from "./add-payment-provider"
|
||||||
|
export * from "./create-region"
|
||||||
export * from "./list-regions"
|
export * from "./list-regions"
|
||||||
export * from "./update-region"
|
export * from "./update-region"
|
||||||
export * from "./create-region"
|
|
||||||
export * from "./add-country"
|
|
||||||
export * from "./add-payment-provider"
|
|
||||||
export * from "./add-fulfillment-provider"
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { Router } from "express"
|
import { Router } from "express"
|
||||||
import { ShippingOption } from "../../../.."
|
import { ShippingOption } from "../../../.."
|
||||||
|
import TaxInclusivePricingFeatureFlag from "../../../../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
import { DeleteResponse, PaginatedResponse } from "../../../../types/common"
|
import { DeleteResponse, PaginatedResponse } from "../../../../types/common"
|
||||||
import middlewares from "../../../middlewares"
|
import middlewares from "../../../middlewares"
|
||||||
import { FlagRouter } from "../../../../utils/flag-router"
|
|
||||||
import TaxInclusivePricingFeatureFlag from "../../../../loaders/feature-flags/tax-inclusive-pricing"
|
|
||||||
|
|
||||||
const route = Router()
|
const route = Router()
|
||||||
|
|
||||||
@@ -139,3 +139,4 @@ export * from "./delete-shipping-option"
|
|||||||
export * from "./get-shipping-option"
|
export * from "./get-shipping-option"
|
||||||
export * from "./list-shipping-options"
|
export * from "./list-shipping-options"
|
||||||
export * from "./update-shipping-option"
|
export * from "./update-shipping-option"
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import { ModulesHelper } from "@medusajs/modules-sdk"
|
import { ModulesHelper } from "@medusajs/modules-sdk"
|
||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { defaultRelationsExtended } from "."
|
import { defaultRelationsExtended } from "."
|
||||||
import {
|
import {
|
||||||
FulfillmentProviderService,
|
FulfillmentProviderService,
|
||||||
PaymentProviderService,
|
PaymentProviderService,
|
||||||
StoreService,
|
StoreService,
|
||||||
} from "../../../../services"
|
} from "../../../../services"
|
||||||
import { ExtendedStoreDTO } from "../../../../types/store"
|
import { ExtendedStoreDTO } from "../../../../types/store"
|
||||||
import { FlagRouter } from "../../../../utils/flag-router"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @oas [get] /admin/store
|
* @oas [get] /admin/store
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import reqIp from "request-ip"
|
|||||||
import { EntityManager } from "typeorm"
|
import { EntityManager } from "typeorm"
|
||||||
|
|
||||||
import { Logger } from "@medusajs/types"
|
import { Logger } from "@medusajs/types"
|
||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { defaultStoreCartFields, defaultStoreCartRelations } from "."
|
import { defaultStoreCartFields, defaultStoreCartRelations } from "."
|
||||||
import SalesChannelFeatureFlag from "../../../../loaders/feature-flags/sales-channels"
|
import SalesChannelFeatureFlag from "../../../../loaders/feature-flags/sales-channels"
|
||||||
import { Cart, LineItem } from "../../../../models"
|
import { Cart, LineItem } from "../../../../models"
|
||||||
@@ -28,7 +29,6 @@ import {
|
|||||||
import { CartCreateProps } from "../../../../types/cart"
|
import { CartCreateProps } from "../../../../types/cart"
|
||||||
import { cleanResponseData } from "../../../../utils/clean-response-data"
|
import { cleanResponseData } from "../../../../utils/clean-response-data"
|
||||||
import { FeatureFlagDecorators } from "../../../../utils/feature-flag-decorators"
|
import { FeatureFlagDecorators } from "../../../../utils/feature-flag-decorators"
|
||||||
import { FlagRouter } from "../../../../utils/flag-router"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @oas [post] /store/carts
|
* @oas [post] /store/carts
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { AwilixContainer } from "awilix"
|
import { AwilixContainer } from "awilix"
|
||||||
import { EntityManager } from "typeorm"
|
import { EntityManager } from "typeorm"
|
||||||
import { Cart } from "../../../../../../models"
|
import { Cart } from "../../../../../../models"
|
||||||
import { CartService, LineItemService } from "../../../../../../services"
|
import { CartService, LineItemService } from "../../../../../../services"
|
||||||
import { WithRequiredProperty } from "../../../../../../types/common"
|
import { WithRequiredProperty } from "../../../../../../types/common"
|
||||||
import { IdempotencyCallbackResult } from "../../../../../../types/idempotency-key"
|
import { IdempotencyCallbackResult } from "../../../../../../types/idempotency-key"
|
||||||
import { FlagRouter } from "../../../../../../utils/flag-router"
|
|
||||||
import { defaultStoreCartFields, defaultStoreCartRelations } from "../../index"
|
import { defaultStoreCartFields, defaultStoreCartRelations } from "../../index"
|
||||||
|
|
||||||
export const CreateLineItemSteps = {
|
export const CreateLineItemSteps = {
|
||||||
|
|||||||
@@ -2,17 +2,17 @@ import "reflect-metadata"
|
|||||||
|
|
||||||
import middlewares, { transformStoreQuery } from "../../../middlewares"
|
import middlewares, { transformStoreQuery } from "../../../middlewares"
|
||||||
|
|
||||||
import { FlagRouter } from "../../../../utils/flag-router"
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
|
import { Router } from "express"
|
||||||
|
import { Product } from "../../../.."
|
||||||
import { PaginatedResponse } from "../../../../types/common"
|
import { PaginatedResponse } from "../../../../types/common"
|
||||||
import { PricedProduct } from "../../../../types/pricing"
|
import { PricedProduct } from "../../../../types/pricing"
|
||||||
import { Product } from "../../../.."
|
|
||||||
import { Router } from "express"
|
|
||||||
import { StoreGetProductsParams } from "./list-products"
|
|
||||||
import { StoreGetProductsProductParams } from "./get-product"
|
|
||||||
import { extendRequestParams } from "../../../middlewares/publishable-api-key/extend-request-params"
|
import { extendRequestParams } from "../../../middlewares/publishable-api-key/extend-request-params"
|
||||||
import { validateProductSalesChannelAssociation } from "../../../middlewares/publishable-api-key/validate-product-sales-channel-association"
|
import { validateProductSalesChannelAssociation } from "../../../middlewares/publishable-api-key/validate-product-sales-channel-association"
|
||||||
import { validateSalesChannelParam } from "../../../middlewares/publishable-api-key/validate-sales-channel-param"
|
import { validateSalesChannelParam } from "../../../middlewares/publishable-api-key/validate-sales-channel-param"
|
||||||
import { withDefaultSalesChannel } from "../../../middlewares/with-default-sales-channel"
|
import { withDefaultSalesChannel } from "../../../middlewares/with-default-sales-channel"
|
||||||
|
import { StoreGetProductsProductParams } from "./get-product"
|
||||||
|
import { StoreGetProductsParams } from "./list-products"
|
||||||
|
|
||||||
const route = Router()
|
const route = Router()
|
||||||
|
|
||||||
|
|||||||
@@ -1,31 +1,31 @@
|
|||||||
import {
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
BaseFulfillmentService,
|
|
||||||
BaseNotificationService,
|
|
||||||
BasePaymentService,
|
|
||||||
} from "medusa-interfaces"
|
|
||||||
import { currencies } from "../utils/currencies"
|
|
||||||
import { countries } from "../utils/countries"
|
|
||||||
import { AwilixContainer } from "awilix"
|
import { AwilixContainer } from "awilix"
|
||||||
import { Logger } from "../types/global"
|
import {
|
||||||
|
BaseFulfillmentService,
|
||||||
|
BaseNotificationService,
|
||||||
|
BasePaymentService,
|
||||||
|
} from "medusa-interfaces"
|
||||||
import { EntityManager } from "typeorm"
|
import { EntityManager } from "typeorm"
|
||||||
import { CountryRepository } from "../repositories/country"
|
|
||||||
import {
|
import {
|
||||||
FulfillmentProviderService,
|
AbstractPaymentProcessor,
|
||||||
NotificationService,
|
AbstractPaymentService,
|
||||||
PaymentProviderService,
|
AbstractTaxService,
|
||||||
SalesChannelService,
|
|
||||||
ShippingProfileService,
|
|
||||||
StoreService,
|
|
||||||
TaxProviderService,
|
|
||||||
} from "../services"
|
|
||||||
import { CurrencyRepository } from "../repositories/currency"
|
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
import SalesChannelFeatureFlag from "./feature-flags/sales-channels"
|
|
||||||
import {
|
|
||||||
AbstractPaymentProcessor,
|
|
||||||
AbstractPaymentService,
|
|
||||||
AbstractTaxService,
|
|
||||||
} from "../interfaces"
|
} from "../interfaces"
|
||||||
|
import { CountryRepository } from "../repositories/country"
|
||||||
|
import { CurrencyRepository } from "../repositories/currency"
|
||||||
|
import {
|
||||||
|
FulfillmentProviderService,
|
||||||
|
NotificationService,
|
||||||
|
PaymentProviderService,
|
||||||
|
SalesChannelService,
|
||||||
|
ShippingProfileService,
|
||||||
|
StoreService,
|
||||||
|
TaxProviderService,
|
||||||
|
} from "../services"
|
||||||
|
import { Logger } from "../types/global"
|
||||||
|
import { countries } from "../utils/countries"
|
||||||
|
import { currencies } from "../utils/currencies"
|
||||||
|
import SalesChannelFeatureFlag from "./feature-flags/sales-channels"
|
||||||
|
|
||||||
const silentResolution = <T>(
|
const silentResolution = <T>(
|
||||||
container: AwilixContainer,
|
container: AwilixContainer,
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { asClass, asValue, createContainer } from "awilix"
|
import { asClass, asValue, createContainer } from "awilix"
|
||||||
import { IdMap, MockManager } from "medusa-test-utils"
|
import { IdMap, MockManager } from "medusa-test-utils"
|
||||||
import { taxProviderServiceMock } from "../__mocks__/tax-provider"
|
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
|
||||||
import {
|
import {
|
||||||
GiftCard,
|
GiftCard,
|
||||||
LineItem,
|
LineItem,
|
||||||
LineItemTaxLine,
|
LineItemTaxLine,
|
||||||
ShippingMethod,
|
ShippingMethod,
|
||||||
ShippingMethodTaxLine,
|
ShippingMethodTaxLine,
|
||||||
} from "../../models"
|
} from "../../models"
|
||||||
import TaxCalculationStrategy from "../../strategies/tax-calculation"
|
import TaxCalculationStrategy from "../../strategies/tax-calculation"
|
||||||
|
import { taxProviderServiceMock } from "../__mocks__/tax-provider"
|
||||||
|
|
||||||
export const defaultContainerMock = createContainer()
|
export const defaultContainerMock = createContainer()
|
||||||
defaultContainerMock.register("manager", asValue(MockManager))
|
defaultContainerMock.register("manager", asValue(MockManager))
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { asClass, asFunction, asValue, createContainer } from "awilix"
|
import { asClass, asFunction, asValue, createContainer } from "awilix"
|
||||||
import { MockManager, MockRepository } from "medusa-test-utils"
|
import { MockManager, MockRepository } from "medusa-test-utils"
|
||||||
import PaymentProviderService from "../payment-provider"
|
|
||||||
import { PaymentProviderServiceMock } from "../__mocks__/payment-provider"
|
|
||||||
import { CustomerServiceMock } from "../__mocks__/customer"
|
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
|
||||||
import Logger from "../../loaders/logger"
|
|
||||||
import {
|
import {
|
||||||
AbstractPaymentProcessor,
|
AbstractPaymentProcessor,
|
||||||
PaymentProcessorContext,
|
PaymentProcessorContext,
|
||||||
PaymentProcessorError,
|
PaymentProcessorError,
|
||||||
PaymentProcessorSessionResponse,
|
PaymentProcessorSessionResponse,
|
||||||
} from "../../interfaces"
|
} from "../../interfaces"
|
||||||
|
import Logger from "../../loaders/logger"
|
||||||
import { PaymentSessionStatus } from "../../models"
|
import { PaymentSessionStatus } from "../../models"
|
||||||
|
import { CustomerServiceMock } from "../__mocks__/customer"
|
||||||
import { PaymentServiceMock } from "../__mocks__/payment"
|
import { PaymentServiceMock } from "../__mocks__/payment"
|
||||||
|
import { PaymentProviderServiceMock } from "../__mocks__/payment-provider"
|
||||||
|
import PaymentProviderService from "../payment-provider"
|
||||||
|
|
||||||
export const defaultContainer = createContainer()
|
export const defaultContainer = createContainer()
|
||||||
defaultContainer.register(
|
defaultContainer.register(
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import _ from "lodash"
|
|||||||
import { asClass, asValue, createContainer } from "awilix"
|
import { asClass, asValue, createContainer } from "awilix"
|
||||||
import { MedusaError } from "medusa-core-utils"
|
import { MedusaError } from "medusa-core-utils"
|
||||||
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import CartService from "../cart"
|
import CartService from "../cart"
|
||||||
import { ProductVariantInventoryServiceMock } from "../__mocks__/product-variant-inventory"
|
import { ProductVariantInventoryServiceMock } from "../__mocks__/product-variant-inventory"
|
||||||
import { LineItemAdjustmentServiceMock } from "../__mocks__/line-item-adjustment"
|
import { LineItemAdjustmentServiceMock } from "../__mocks__/line-item-adjustment"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
||||||
import TaxInclusivePricingFeatureFlag from "../../loaders/feature-flags/tax-inclusive-pricing"
|
import TaxInclusivePricingFeatureFlag from "../../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
import { Currency } from "../../models"
|
import { Currency } from "../../models"
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
|
||||||
import CurrencyService from "../currency"
|
import CurrencyService from "../currency"
|
||||||
import EventBusService from "../event-bus"
|
import EventBusService from "../event-bus"
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import DiscountService from "../discount"
|
import DiscountService from "../discount"
|
||||||
import { TotalsServiceMock } from "../__mocks__/totals"
|
import { TotalsServiceMock } from "../__mocks__/totals"
|
||||||
import { newTotalsServiceMock } from "../__mocks__/new-totals"
|
import { newTotalsServiceMock } from "../__mocks__/new-totals"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import LineItemService from "../line-item"
|
import LineItemService from "../line-item"
|
||||||
import { PricingServiceMock } from "../__mocks__/pricing"
|
import { PricingServiceMock } from "../__mocks__/pricing"
|
||||||
import { ProductVariantServiceMock } from "../__mocks__/product-variant"
|
import { ProductVariantServiceMock } from "../__mocks__/product-variant"
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { asClass, asValue, createContainer } from "awilix"
|
import { asClass, asValue, createContainer } from "awilix"
|
||||||
import {
|
|
||||||
defaultContainerMock,
|
|
||||||
giftCards,
|
|
||||||
giftCardsWithTaxRate,
|
|
||||||
lineItems,
|
|
||||||
shippingMethods,
|
|
||||||
} from "../__fixtures__/new-totals"
|
|
||||||
import { NewTotalsService } from "../index"
|
|
||||||
import { TaxCalculationContext } from "../../interfaces"
|
import { TaxCalculationContext } from "../../interfaces"
|
||||||
import { taxProviderServiceMock } from "../__mocks__/tax-provider"
|
|
||||||
import {
|
|
||||||
Discount,
|
|
||||||
DiscountRuleType,
|
|
||||||
LineItem,
|
|
||||||
ProductVariant,
|
|
||||||
Region,
|
|
||||||
ShippingMethod,
|
|
||||||
} from "../../models"
|
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
|
||||||
import TaxInclusivePricingFeatureFlag from "../../loaders/feature-flags/tax-inclusive-pricing"
|
import TaxInclusivePricingFeatureFlag from "../../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
|
import {
|
||||||
|
Discount,
|
||||||
|
DiscountRuleType,
|
||||||
|
LineItem,
|
||||||
|
ProductVariant,
|
||||||
|
Region,
|
||||||
|
ShippingMethod,
|
||||||
|
} from "../../models"
|
||||||
|
import {
|
||||||
|
defaultContainerMock,
|
||||||
|
giftCards,
|
||||||
|
giftCardsWithTaxRate,
|
||||||
|
lineItems,
|
||||||
|
shippingMethods,
|
||||||
|
} from "../__fixtures__/new-totals"
|
||||||
|
import { taxProviderServiceMock } from "../__mocks__/tax-provider"
|
||||||
|
import { NewTotalsService } from "../index"
|
||||||
|
|
||||||
describe("New totals service", () => {
|
describe("New totals service", () => {
|
||||||
describe("Without [MEDUSA_FF_TAX_INCLUSIVE_PRICING]", () => {
|
describe("Without [MEDUSA_FF_TAX_INCLUSIVE_PRICING]", () => {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { MedusaError } from "medusa-core-utils"
|
import { MedusaError } from "medusa-core-utils"
|
||||||
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
||||||
import { MoneyAmountRepository } from "../../repositories/money-amount"
|
import { MoneyAmountRepository } from "../../repositories/money-amount"
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import PriceListService from "../price-list"
|
import PriceListService from "../price-list"
|
||||||
import { RegionServiceMock } from "../__mocks__/region"
|
import { RegionServiceMock } from "../__mocks__/region"
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
||||||
import ProductService from "../product"
|
import ProductService from "../product"
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
|
|
||||||
const eventBusService = {
|
const eventBusService = {
|
||||||
emit: jest.fn(),
|
emit: jest.fn(),
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
||||||
import { CreateRegionInput } from "../../types/region"
|
import { CreateRegionInput } from "../../types/region"
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
|
||||||
import EventBusService from "../event-bus"
|
import EventBusService from "../event-bus"
|
||||||
import {
|
import {
|
||||||
FulfillmentProviderService,
|
FulfillmentProviderService,
|
||||||
PaymentProviderService,
|
PaymentProviderService,
|
||||||
StoreService,
|
StoreService,
|
||||||
} from "../index"
|
} from "../index"
|
||||||
import RegionService from "../region"
|
import RegionService from "../region"
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
||||||
import TaxInclusivePricingFeatureFlag from "../../loaders/feature-flags/tax-inclusive-pricing"
|
import TaxInclusivePricingFeatureFlag from "../../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import ShippingOptionService from "../shipping-option"
|
import ShippingOptionService from "../shipping-option"
|
||||||
|
|
||||||
describe("ShippingOptionService", () => {
|
describe("ShippingOptionService", () => {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { IdMap } from "medusa-test-utils"
|
import { IdMap } from "medusa-test-utils"
|
||||||
import TotalsService from "../totals"
|
import TotalsService from "../totals"
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
|
|
||||||
import TaxInclusivePricingFeatureFlag from "../../loaders/feature-flags/tax-inclusive-pricing"
|
import TaxInclusivePricingFeatureFlag from "../../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
import { calculatePriceTaxAmount } from "../../utils"
|
import { calculatePriceTaxAmount } from "../../utils"
|
||||||
|
|||||||
@@ -1,41 +1,42 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { isEmpty, isEqual } from "lodash"
|
import { isEmpty, isEqual } from "lodash"
|
||||||
import { isDefined, MedusaError } from "medusa-core-utils"
|
import { MedusaError, isDefined } from "medusa-core-utils"
|
||||||
import { DeepPartial, EntityManager, In, IsNull, Not } from "typeorm"
|
import { DeepPartial, EntityManager, In, IsNull, Not } from "typeorm"
|
||||||
import {
|
import {
|
||||||
CustomerService,
|
CustomShippingOptionService,
|
||||||
CustomShippingOptionService,
|
CustomerService,
|
||||||
DiscountService,
|
DiscountService,
|
||||||
EventBusService,
|
EventBusService,
|
||||||
GiftCardService,
|
GiftCardService,
|
||||||
LineItemAdjustmentService,
|
LineItemAdjustmentService,
|
||||||
LineItemService,
|
LineItemService,
|
||||||
NewTotalsService,
|
NewTotalsService,
|
||||||
PaymentProviderService,
|
PaymentProviderService,
|
||||||
ProductService,
|
ProductService,
|
||||||
ProductVariantInventoryService,
|
ProductVariantInventoryService,
|
||||||
ProductVariantService,
|
ProductVariantService,
|
||||||
RegionService,
|
RegionService,
|
||||||
SalesChannelService,
|
SalesChannelService,
|
||||||
ShippingOptionService,
|
ShippingOptionService,
|
||||||
StoreService,
|
StoreService,
|
||||||
TaxProviderService,
|
TaxProviderService,
|
||||||
TotalsService,
|
TotalsService,
|
||||||
} from "."
|
} from "."
|
||||||
import { IPriceSelectionStrategy, TransactionBaseService } from "../interfaces"
|
import { IPriceSelectionStrategy, TransactionBaseService } from "../interfaces"
|
||||||
import SalesChannelFeatureFlag from "../loaders/feature-flags/sales-channels"
|
import SalesChannelFeatureFlag from "../loaders/feature-flags/sales-channels"
|
||||||
import {
|
import {
|
||||||
Address,
|
Address,
|
||||||
Cart,
|
Cart,
|
||||||
Customer,
|
CustomShippingOption,
|
||||||
CustomShippingOption,
|
Customer,
|
||||||
Discount,
|
Discount,
|
||||||
DiscountRule,
|
DiscountRule,
|
||||||
DiscountRuleType,
|
DiscountRuleType,
|
||||||
LineItem,
|
LineItem,
|
||||||
PaymentSession,
|
PaymentSession,
|
||||||
PaymentSessionStatus,
|
PaymentSessionStatus,
|
||||||
SalesChannel,
|
SalesChannel,
|
||||||
ShippingMethod,
|
ShippingMethod,
|
||||||
} from "../models"
|
} from "../models"
|
||||||
import { AddressRepository } from "../repositories/address"
|
import { AddressRepository } from "../repositories/address"
|
||||||
import { CartRepository } from "../repositories/cart"
|
import { CartRepository } from "../repositories/cart"
|
||||||
@@ -43,22 +44,21 @@ import { LineItemRepository } from "../repositories/line-item"
|
|||||||
import { PaymentSessionRepository } from "../repositories/payment-session"
|
import { PaymentSessionRepository } from "../repositories/payment-session"
|
||||||
import { ShippingMethodRepository } from "../repositories/shipping-method"
|
import { ShippingMethodRepository } from "../repositories/shipping-method"
|
||||||
import {
|
import {
|
||||||
CartCreateProps,
|
CartCreateProps,
|
||||||
CartUpdateProps,
|
CartUpdateProps,
|
||||||
FilterableCartProps,
|
FilterableCartProps,
|
||||||
isCart,
|
LineItemUpdate,
|
||||||
LineItemUpdate,
|
LineItemValidateData,
|
||||||
LineItemValidateData,
|
isCart,
|
||||||
} from "../types/cart"
|
} from "../types/cart"
|
||||||
import {
|
import {
|
||||||
AddressPayload,
|
AddressPayload,
|
||||||
FindConfig,
|
FindConfig,
|
||||||
TotalField,
|
TotalField,
|
||||||
WithRequiredProperty,
|
WithRequiredProperty,
|
||||||
} from "../types/common"
|
} from "../types/common"
|
||||||
import { PaymentSessionInput } from "../types/payment"
|
import { PaymentSessionInput } from "../types/payment"
|
||||||
import { buildQuery, isString, setMetadata } from "../utils"
|
import { buildQuery, isString, setMetadata } from "../utils"
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
import { validateEmail } from "../utils/is-email"
|
import { validateEmail } from "../utils/is-email"
|
||||||
|
|
||||||
type InjectedDependencies = {
|
type InjectedDependencies = {
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { MedusaError } from "medusa-core-utils"
|
import { MedusaError } from "medusa-core-utils"
|
||||||
import { EntityManager } from "typeorm"
|
import { EntityManager } from "typeorm"
|
||||||
import { TransactionBaseService } from "../interfaces"
|
import { TransactionBaseService } from "../interfaces"
|
||||||
@@ -7,7 +8,6 @@ import { CurrencyRepository } from "../repositories/currency"
|
|||||||
import { FindConfig, Selector } from "../types/common"
|
import { FindConfig, Selector } from "../types/common"
|
||||||
import { UpdateCurrencyInput } from "../types/currency"
|
import { UpdateCurrencyInput } from "../types/currency"
|
||||||
import { buildQuery } from "../utils"
|
import { buildQuery } from "../utils"
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
import EventBusService from "./event-bus"
|
import EventBusService from "./event-bus"
|
||||||
|
|
||||||
type InjectedDependencies = {
|
type InjectedDependencies = {
|
||||||
|
|||||||
@@ -1,32 +1,33 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { parse, toSeconds } from "iso8601-duration"
|
import { parse, toSeconds } from "iso8601-duration"
|
||||||
import { isEmpty, omit } from "lodash"
|
import { isEmpty, omit } from "lodash"
|
||||||
import { MedusaError, isDefined } from "medusa-core-utils"
|
import { MedusaError, isDefined } from "medusa-core-utils"
|
||||||
import {
|
import {
|
||||||
DeepPartial,
|
DeepPartial,
|
||||||
EntityManager,
|
EntityManager,
|
||||||
FindOptionsWhere,
|
FindOptionsWhere,
|
||||||
ILike,
|
ILike,
|
||||||
In,
|
In,
|
||||||
} from "typeorm"
|
} from "typeorm"
|
||||||
import {
|
import {
|
||||||
NewTotalsService,
|
NewTotalsService,
|
||||||
ProductService,
|
ProductService,
|
||||||
RegionService,
|
RegionService,
|
||||||
TotalsService,
|
TotalsService,
|
||||||
} from "."
|
} from "."
|
||||||
import { TransactionBaseService } from "../interfaces"
|
import { TransactionBaseService } from "../interfaces"
|
||||||
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
import {
|
import {
|
||||||
Cart,
|
Cart,
|
||||||
Discount,
|
Discount,
|
||||||
DiscountConditionType,
|
DiscountConditionType,
|
||||||
LineItem,
|
LineItem,
|
||||||
Region,
|
Region,
|
||||||
} from "../models"
|
} from "../models"
|
||||||
import {
|
import {
|
||||||
AllocationType as DiscountAllocation,
|
AllocationType as DiscountAllocation,
|
||||||
DiscountRule,
|
DiscountRule,
|
||||||
DiscountRuleType,
|
DiscountRuleType,
|
||||||
} from "../models/discount-rule"
|
} from "../models/discount-rule"
|
||||||
import { DiscountRepository } from "../repositories/discount"
|
import { DiscountRepository } from "../repositories/discount"
|
||||||
import { DiscountConditionRepository } from "../repositories/discount-condition"
|
import { DiscountConditionRepository } from "../repositories/discount-condition"
|
||||||
@@ -34,17 +35,16 @@ import { DiscountRuleRepository } from "../repositories/discount-rule"
|
|||||||
import { GiftCardRepository } from "../repositories/gift-card"
|
import { GiftCardRepository } from "../repositories/gift-card"
|
||||||
import { FindConfig, Selector } from "../types/common"
|
import { FindConfig, Selector } from "../types/common"
|
||||||
import {
|
import {
|
||||||
CreateDiscountInput,
|
CreateDiscountInput,
|
||||||
CreateDiscountRuleInput,
|
CreateDiscountRuleInput,
|
||||||
CreateDynamicDiscountInput,
|
CreateDynamicDiscountInput,
|
||||||
FilterableDiscountProps,
|
FilterableDiscountProps,
|
||||||
UpdateDiscountInput,
|
UpdateDiscountInput,
|
||||||
UpdateDiscountRuleInput,
|
UpdateDiscountRuleInput,
|
||||||
} from "../types/discount"
|
} from "../types/discount"
|
||||||
import { CalculationContextData } from "../types/totals"
|
import { CalculationContextData } from "../types/totals"
|
||||||
import { buildQuery, setMetadata } from "../utils"
|
import { buildQuery, setMetadata } from "../utils"
|
||||||
import { isFuture, isPast } from "../utils/date-helpers"
|
import { isFuture, isPast } from "../utils/date-helpers"
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
import CustomerService from "./customer"
|
import CustomerService from "./customer"
|
||||||
import DiscountConditionService from "./discount-condition"
|
import DiscountConditionService from "./discount-condition"
|
||||||
import EventBusService from "./event-bus"
|
import EventBusService from "./event-bus"
|
||||||
|
|||||||
@@ -2,13 +2,14 @@ import { MedusaError } from "medusa-core-utils"
|
|||||||
import { EntityManager, In } from "typeorm"
|
import { EntityManager, In } from "typeorm"
|
||||||
import { DeepPartial } from "typeorm/common/DeepPartial"
|
import { DeepPartial } from "typeorm/common/DeepPartial"
|
||||||
|
|
||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { TransactionBaseService } from "../interfaces"
|
import { TransactionBaseService } from "../interfaces"
|
||||||
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
import {
|
import {
|
||||||
LineItem,
|
LineItem,
|
||||||
LineItemAdjustment,
|
LineItemAdjustment,
|
||||||
LineItemTaxLine,
|
LineItemTaxLine,
|
||||||
ProductVariant,
|
ProductVariant,
|
||||||
} from "../models"
|
} from "../models"
|
||||||
import { CartRepository } from "../repositories/cart"
|
import { CartRepository } from "../repositories/cart"
|
||||||
import { LineItemRepository } from "../repositories/line-item"
|
import { LineItemRepository } from "../repositories/line-item"
|
||||||
@@ -17,13 +18,12 @@ import { FindConfig, Selector } from "../types/common"
|
|||||||
import { GenerateInputData, GenerateLineItemContext } from "../types/line-item"
|
import { GenerateInputData, GenerateLineItemContext } from "../types/line-item"
|
||||||
import { ProductVariantPricing } from "../types/pricing"
|
import { ProductVariantPricing } from "../types/pricing"
|
||||||
import { buildQuery, isString, setMetadata } from "../utils"
|
import { buildQuery, isString, setMetadata } from "../utils"
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
import {
|
import {
|
||||||
PricingService,
|
PricingService,
|
||||||
ProductService,
|
ProductService,
|
||||||
ProductVariantService,
|
ProductVariantService,
|
||||||
RegionService,
|
RegionService,
|
||||||
TaxProviderService,
|
TaxProviderService,
|
||||||
} from "./index"
|
} from "./index"
|
||||||
import LineItemAdjustmentService from "./line-item-adjustment"
|
import LineItemAdjustmentService from "./line-item-adjustment"
|
||||||
|
|
||||||
|
|||||||
@@ -1,25 +1,25 @@
|
|||||||
import {
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
ITaxCalculationStrategy,
|
import { MedusaError, isDefined } from "medusa-core-utils"
|
||||||
TaxCalculationContext,
|
|
||||||
TransactionBaseService,
|
|
||||||
} from "../interfaces"
|
|
||||||
import { EntityManager } from "typeorm"
|
import { EntityManager } from "typeorm"
|
||||||
import {
|
import {
|
||||||
Discount,
|
ITaxCalculationStrategy,
|
||||||
DiscountRuleType,
|
TaxCalculationContext,
|
||||||
GiftCard,
|
TransactionBaseService,
|
||||||
LineItem,
|
} from "../interfaces"
|
||||||
LineItemTaxLine,
|
|
||||||
Region,
|
|
||||||
ShippingMethod,
|
|
||||||
ShippingMethodTaxLine,
|
|
||||||
} from "../models"
|
|
||||||
import { TaxProviderService } from "./index"
|
|
||||||
import { LineAllocationsMap } from "../types/totals"
|
|
||||||
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
import {
|
||||||
|
Discount,
|
||||||
|
DiscountRuleType,
|
||||||
|
GiftCard,
|
||||||
|
LineItem,
|
||||||
|
LineItemTaxLine,
|
||||||
|
Region,
|
||||||
|
ShippingMethod,
|
||||||
|
ShippingMethodTaxLine,
|
||||||
|
} from "../models"
|
||||||
|
import { LineAllocationsMap } from "../types/totals"
|
||||||
import { calculatePriceTaxAmount } from "../utils"
|
import { calculatePriceTaxAmount } from "../utils"
|
||||||
import { isDefined, MedusaError } from "medusa-core-utils"
|
import { TaxProviderService } from "./index"
|
||||||
|
|
||||||
type LineItemTotals = {
|
type LineItemTotals = {
|
||||||
unit_price: number
|
unit_price: number
|
||||||
|
|||||||
@@ -1,67 +1,67 @@
|
|||||||
import { IInventoryService } from "@medusajs/types"
|
import { IInventoryService } from "@medusajs/types"
|
||||||
import {
|
import {
|
||||||
buildRelations,
|
buildRelations,
|
||||||
buildSelects,
|
buildSelects,
|
||||||
isDefined,
|
FlagRouter,
|
||||||
MedusaError,
|
isDefined,
|
||||||
|
MedusaError,
|
||||||
} from "@medusajs/utils"
|
} from "@medusajs/utils"
|
||||||
import {
|
import {
|
||||||
EntityManager,
|
EntityManager,
|
||||||
FindManyOptions,
|
FindManyOptions,
|
||||||
FindOptionsWhere,
|
FindOptionsWhere,
|
||||||
ILike,
|
ILike,
|
||||||
IsNull,
|
IsNull,
|
||||||
Not,
|
Not,
|
||||||
Raw,
|
Raw,
|
||||||
} from "typeorm"
|
} from "typeorm"
|
||||||
import {
|
import {
|
||||||
CartService,
|
CartService,
|
||||||
CustomerService,
|
CustomerService,
|
||||||
DiscountService,
|
DiscountService,
|
||||||
DraftOrderService,
|
DraftOrderService,
|
||||||
FulfillmentProviderService,
|
FulfillmentProviderService,
|
||||||
FulfillmentService,
|
FulfillmentService,
|
||||||
GiftCardService,
|
GiftCardService,
|
||||||
LineItemService,
|
LineItemService,
|
||||||
NewTotalsService,
|
NewTotalsService,
|
||||||
PaymentProviderService,
|
PaymentProviderService,
|
||||||
ProductVariantInventoryService,
|
ProductVariantInventoryService,
|
||||||
RegionService,
|
RegionService,
|
||||||
ShippingOptionService,
|
ShippingOptionService,
|
||||||
ShippingProfileService,
|
ShippingProfileService,
|
||||||
TaxProviderService,
|
TaxProviderService,
|
||||||
TotalsService,
|
TotalsService,
|
||||||
} from "."
|
} from "."
|
||||||
|
import { TransactionBaseService } from "../interfaces"
|
||||||
import SalesChannelFeatureFlag from "../loaders/feature-flags/sales-channels"
|
import SalesChannelFeatureFlag from "../loaders/feature-flags/sales-channels"
|
||||||
import {
|
import {
|
||||||
Address,
|
Address,
|
||||||
Cart,
|
Cart,
|
||||||
ClaimOrder,
|
ClaimOrder,
|
||||||
Fulfillment,
|
Fulfillment,
|
||||||
FulfillmentItem,
|
FulfillmentItem,
|
||||||
FulfillmentStatus,
|
FulfillmentStatus,
|
||||||
GiftCard,
|
GiftCard,
|
||||||
LineItem,
|
LineItem,
|
||||||
Order,
|
Order,
|
||||||
OrderStatus,
|
OrderStatus,
|
||||||
Payment,
|
Payment,
|
||||||
PaymentStatus,
|
PaymentStatus,
|
||||||
Return,
|
Return,
|
||||||
Swap,
|
Swap,
|
||||||
TrackingLink,
|
TrackingLink,
|
||||||
} from "../models"
|
} from "../models"
|
||||||
import { TransactionBaseService } from "../interfaces"
|
|
||||||
import { AddressRepository } from "../repositories/address"
|
import { AddressRepository } from "../repositories/address"
|
||||||
import { OrderRepository } from "../repositories/order"
|
import { OrderRepository } from "../repositories/order"
|
||||||
import { FindConfig, QuerySelector, Selector } from "../types/common"
|
import { FindConfig, QuerySelector, Selector } from "../types/common"
|
||||||
import {
|
import {
|
||||||
CreateFulfillmentOrder,
|
CreateFulfillmentOrder,
|
||||||
FulFillmentItemType,
|
FulFillmentItemType,
|
||||||
} from "../types/fulfillment"
|
} from "../types/fulfillment"
|
||||||
import { TotalsContext, UpdateOrderInput } from "../types/orders"
|
import { TotalsContext, UpdateOrderInput } from "../types/orders"
|
||||||
import { CreateShippingMethodDto } from "../types/shipping-options"
|
import { CreateShippingMethodDto } from "../types/shipping-options"
|
||||||
import { buildQuery, isString, setMetadata } from "../utils"
|
import { buildQuery, isString, setMetadata } from "../utils"
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
import EventBusService from "./event-bus"
|
import EventBusService from "./event-bus"
|
||||||
|
|
||||||
export const ORDER_CART_ALREADY_EXISTS_ERROR = "Order from cart already exists"
|
export const ORDER_CART_ALREADY_EXISTS_ERROR = "Order from cart already exists"
|
||||||
|
|||||||
@@ -1,22 +1,24 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { isDefined, MedusaError } from "medusa-core-utils"
|
import { isDefined, MedusaError } from "medusa-core-utils"
|
||||||
import { BasePaymentService } from "medusa-interfaces"
|
import { BasePaymentService } from "medusa-interfaces"
|
||||||
|
import { EOL } from "os"
|
||||||
import { EntityManager } from "typeorm"
|
import { EntityManager } from "typeorm"
|
||||||
import {
|
import {
|
||||||
AbstractPaymentProcessor,
|
AbstractPaymentProcessor,
|
||||||
AbstractPaymentService,
|
AbstractPaymentService,
|
||||||
isPaymentProcessorError,
|
isPaymentProcessorError,
|
||||||
PaymentContext,
|
PaymentContext,
|
||||||
PaymentProcessorError,
|
PaymentProcessorError,
|
||||||
PaymentSessionResponse,
|
PaymentSessionResponse,
|
||||||
TransactionBaseService,
|
TransactionBaseService,
|
||||||
} from "../interfaces"
|
} from "../interfaces"
|
||||||
import {
|
import {
|
||||||
Cart,
|
Cart,
|
||||||
Payment,
|
Payment,
|
||||||
PaymentProvider,
|
PaymentProvider,
|
||||||
PaymentSession,
|
PaymentSession,
|
||||||
PaymentSessionStatus,
|
PaymentSessionStatus,
|
||||||
Refund,
|
Refund,
|
||||||
} from "../models"
|
} from "../models"
|
||||||
import { PaymentRepository } from "../repositories/payment"
|
import { PaymentRepository } from "../repositories/payment"
|
||||||
import { PaymentProviderRepository } from "../repositories/payment-provider"
|
import { PaymentProviderRepository } from "../repositories/payment-provider"
|
||||||
@@ -26,10 +28,8 @@ import { FindConfig, Selector } from "../types/common"
|
|||||||
import { Logger } from "../types/global"
|
import { Logger } from "../types/global"
|
||||||
import { CreatePaymentInput, PaymentSessionInput } from "../types/payment"
|
import { CreatePaymentInput, PaymentSessionInput } from "../types/payment"
|
||||||
import { buildQuery, isString } from "../utils"
|
import { buildQuery, isString } from "../utils"
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
import { CustomerService } from "./index"
|
import { CustomerService } from "./index"
|
||||||
import PaymentService from "./payment"
|
import PaymentService from "./payment"
|
||||||
import { EOL } from "os"
|
|
||||||
|
|
||||||
type PaymentProviderKey = `pp_${string}` | "systemPaymentProviderService"
|
type PaymentProviderKey = `pp_${string}` | "systemPaymentProviderService"
|
||||||
type InjectedDependencies = {
|
type InjectedDependencies = {
|
||||||
|
|||||||
@@ -1,27 +1,27 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { isDefined, MedusaError } from "medusa-core-utils"
|
import { isDefined, MedusaError } from "medusa-core-utils"
|
||||||
import { DeepPartial, EntityManager } from "typeorm"
|
import { DeepPartial, EntityManager } from "typeorm"
|
||||||
import { CustomerGroupService } from "."
|
import { CustomerGroupService } from "."
|
||||||
|
import { TransactionBaseService } from "../interfaces"
|
||||||
|
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
import { CustomerGroup, PriceList, Product, ProductVariant } from "../models"
|
import { CustomerGroup, PriceList, Product, ProductVariant } from "../models"
|
||||||
import { MoneyAmountRepository } from "../repositories/money-amount"
|
import { MoneyAmountRepository } from "../repositories/money-amount"
|
||||||
import { PriceListRepository } from "../repositories/price-list"
|
import { PriceListRepository } from "../repositories/price-list"
|
||||||
|
import { ProductVariantRepository } from "../repositories/product-variant"
|
||||||
import { FindConfig, Selector } from "../types/common"
|
import { FindConfig, Selector } from "../types/common"
|
||||||
import {
|
import {
|
||||||
CreatePriceListInput,
|
CreatePriceListInput,
|
||||||
FilterablePriceListProps,
|
FilterablePriceListProps,
|
||||||
PriceListPriceCreateInput,
|
PriceListPriceCreateInput,
|
||||||
PriceListPriceUpdateInput,
|
PriceListPriceUpdateInput,
|
||||||
UpdatePriceListInput,
|
UpdatePriceListInput,
|
||||||
} from "../types/price-list"
|
} from "../types/price-list"
|
||||||
import ProductService from "./product"
|
|
||||||
import RegionService from "./region"
|
|
||||||
import { TransactionBaseService } from "../interfaces"
|
|
||||||
import { buildQuery } from "../utils"
|
|
||||||
import { FilterableProductProps } from "../types/product"
|
import { FilterableProductProps } from "../types/product"
|
||||||
import ProductVariantService from "./product-variant"
|
|
||||||
import { FilterableProductVariantProps } from "../types/product-variant"
|
import { FilterableProductVariantProps } from "../types/product-variant"
|
||||||
import { ProductVariantRepository } from "../repositories/product-variant"
|
import { buildQuery } from "../utils"
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
import ProductService from "./product"
|
||||||
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
import ProductVariantService from "./product-variant"
|
||||||
|
import RegionService from "./region"
|
||||||
|
|
||||||
type PriceListConstructorProps = {
|
type PriceListConstructorProps = {
|
||||||
manager: EntityManager
|
manager: EntityManager
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { MedusaError } from "medusa-core-utils"
|
import { MedusaError } from "medusa-core-utils"
|
||||||
import { EntityManager } from "typeorm"
|
import { EntityManager } from "typeorm"
|
||||||
import { ProductVariantService, RegionService, TaxProviderService } from "."
|
import { ProductVariantService, RegionService, TaxProviderService } from "."
|
||||||
import { TransactionBaseService } from "../interfaces"
|
import { TransactionBaseService } from "../interfaces"
|
||||||
import {
|
import {
|
||||||
IPriceSelectionStrategy,
|
IPriceSelectionStrategy,
|
||||||
PriceSelectionContext,
|
PriceSelectionContext,
|
||||||
} from "../interfaces/price-selection-strategy"
|
} from "../interfaces/price-selection-strategy"
|
||||||
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
import { Product, ProductVariant, Region, ShippingOption } from "../models"
|
import { Product, ProductVariant, Region, ShippingOption } from "../models"
|
||||||
import {
|
import {
|
||||||
PricedProduct,
|
PricedProduct,
|
||||||
PricedShippingOption,
|
PricedShippingOption,
|
||||||
PricedVariant,
|
PricedVariant,
|
||||||
PricingContext,
|
PricingContext,
|
||||||
ProductVariantPricing,
|
ProductVariantPricing,
|
||||||
TaxedPricing,
|
TaxedPricing,
|
||||||
} from "../types/pricing"
|
} from "../types/pricing"
|
||||||
import { TaxServiceRate } from "../types/tax-service"
|
import { TaxServiceRate } from "../types/tax-service"
|
||||||
import { calculatePriceTaxAmount } from "../utils"
|
import { calculatePriceTaxAmount } from "../utils"
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
|
|
||||||
type InjectedDependencies = {
|
type InjectedDependencies = {
|
||||||
manager: EntityManager
|
manager: EntityManager
|
||||||
|
|||||||
@@ -1,22 +1,26 @@
|
|||||||
|
import {
|
||||||
|
buildRelations,
|
||||||
|
buildSelects, FlagRouter, objectToStringPath
|
||||||
|
} from "@medusajs/utils"
|
||||||
import { isDefined, MedusaError } from "medusa-core-utils"
|
import { isDefined, MedusaError } from "medusa-core-utils"
|
||||||
import { EntityManager, In } from "typeorm"
|
import { EntityManager, In } from "typeorm"
|
||||||
import { ProductVariantService, SearchService } from "."
|
import { ProductVariantService, SearchService } from "."
|
||||||
import { TransactionBaseService } from "../interfaces"
|
import { TransactionBaseService } from "../interfaces"
|
||||||
import SalesChannelFeatureFlag from "../loaders/feature-flags/sales-channels"
|
import SalesChannelFeatureFlag from "../loaders/feature-flags/sales-channels"
|
||||||
import {
|
import {
|
||||||
Product,
|
Product,
|
||||||
ProductCategory,
|
ProductCategory,
|
||||||
ProductOption,
|
ProductOption,
|
||||||
ProductTag,
|
ProductTag,
|
||||||
ProductType,
|
ProductType,
|
||||||
ProductVariant,
|
ProductVariant,
|
||||||
SalesChannel,
|
SalesChannel,
|
||||||
ShippingProfile,
|
ShippingProfile,
|
||||||
} from "../models"
|
} from "../models"
|
||||||
import { ImageRepository } from "../repositories/image"
|
import { ImageRepository } from "../repositories/image"
|
||||||
import {
|
import {
|
||||||
FindWithoutRelationsOptions,
|
FindWithoutRelationsOptions,
|
||||||
ProductRepository,
|
ProductRepository,
|
||||||
} from "../repositories/product"
|
} from "../repositories/product"
|
||||||
import { ProductCategoryRepository } from "../repositories/product-category"
|
import { ProductCategoryRepository } from "../repositories/product-category"
|
||||||
import { ProductOptionRepository } from "../repositories/product-option"
|
import { ProductOptionRepository } from "../repositories/product-option"
|
||||||
@@ -25,21 +29,15 @@ import { ProductTypeRepository } from "../repositories/product-type"
|
|||||||
import { ProductVariantRepository } from "../repositories/product-variant"
|
import { ProductVariantRepository } from "../repositories/product-variant"
|
||||||
import { Selector } from "../types/common"
|
import { Selector } from "../types/common"
|
||||||
import {
|
import {
|
||||||
CreateProductInput,
|
CreateProductInput,
|
||||||
FilterableProductProps,
|
FilterableProductProps,
|
||||||
FindProductConfig,
|
FindProductConfig,
|
||||||
ProductOptionInput,
|
ProductOptionInput,
|
||||||
ProductSelector,
|
ProductSelector,
|
||||||
UpdateProductInput,
|
UpdateProductInput,
|
||||||
} from "../types/product"
|
} from "../types/product"
|
||||||
import { buildQuery, isString, setMetadata } from "../utils"
|
import { buildQuery, isString, setMetadata } from "../utils"
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
import EventBusService from "./event-bus"
|
import EventBusService from "./event-bus"
|
||||||
import {
|
|
||||||
buildRelations,
|
|
||||||
buildSelects,
|
|
||||||
objectToStringPath,
|
|
||||||
} from "@medusajs/utils"
|
|
||||||
|
|
||||||
type InjectedDependencies = {
|
type InjectedDependencies = {
|
||||||
manager: EntityManager
|
manager: EntityManager
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
import { Country, Currency, Region } from "../models"
|
|
||||||
import { CreateRegionInput, UpdateRegionInput } from "../types/region"
|
|
||||||
import { DeepPartial, EntityManager } from "typeorm"
|
|
||||||
import { FindConfig, Selector } from "../types/common"
|
|
||||||
import { MedusaError, isDefined } from "medusa-core-utils"
|
import { MedusaError, isDefined } from "medusa-core-utils"
|
||||||
|
import { DeepPartial, EntityManager } from "typeorm"
|
||||||
|
import { Country, Currency, Region } from "../models"
|
||||||
|
import { FindConfig, Selector } from "../types/common"
|
||||||
|
import { CreateRegionInput, UpdateRegionInput } from "../types/region"
|
||||||
import { buildQuery, setMetadata } from "../utils"
|
import { buildQuery, setMetadata } from "../utils"
|
||||||
|
|
||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
|
import { TransactionBaseService } from "../interfaces"
|
||||||
|
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
import { CountryRepository } from "../repositories/country"
|
import { CountryRepository } from "../repositories/country"
|
||||||
import { CurrencyRepository } from "../repositories/currency"
|
import { CurrencyRepository } from "../repositories/currency"
|
||||||
import EventBusService from "./event-bus"
|
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
import { FulfillmentProviderRepository } from "../repositories/fulfillment-provider"
|
import { FulfillmentProviderRepository } from "../repositories/fulfillment-provider"
|
||||||
import FulfillmentProviderService from "./fulfillment-provider"
|
|
||||||
import { PaymentProviderRepository } from "../repositories/payment-provider"
|
import { PaymentProviderRepository } from "../repositories/payment-provider"
|
||||||
import { PaymentProviderService } from "./index"
|
|
||||||
import { RegionRepository } from "../repositories/region"
|
import { RegionRepository } from "../repositories/region"
|
||||||
import StoreService from "./store"
|
|
||||||
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
|
||||||
import { TaxProviderRepository } from "../repositories/tax-provider"
|
import { TaxProviderRepository } from "../repositories/tax-provider"
|
||||||
import { TransactionBaseService } from "../interfaces"
|
|
||||||
import { countries } from "../utils/countries"
|
import { countries } from "../utils/countries"
|
||||||
|
import EventBusService from "./event-bus"
|
||||||
|
import FulfillmentProviderService from "./fulfillment-provider"
|
||||||
|
import { PaymentProviderService } from "./index"
|
||||||
|
import StoreService from "./store"
|
||||||
|
|
||||||
type InjectedDependencies = {
|
type InjectedDependencies = {
|
||||||
manager: EntityManager
|
manager: EntityManager
|
||||||
|
|||||||
@@ -1,28 +1,28 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { isDefined, MedusaError } from "medusa-core-utils"
|
import { isDefined, MedusaError } from "medusa-core-utils"
|
||||||
import { EntityManager } from "typeorm"
|
import { EntityManager } from "typeorm"
|
||||||
import { TransactionBaseService } from "../interfaces"
|
import { TransactionBaseService } from "../interfaces"
|
||||||
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
import {
|
import {
|
||||||
Cart,
|
Cart,
|
||||||
Order,
|
Order,
|
||||||
ShippingMethod,
|
ShippingMethod,
|
||||||
ShippingOption,
|
ShippingOption,
|
||||||
ShippingOptionPriceType,
|
ShippingOptionPriceType,
|
||||||
ShippingOptionRequirement,
|
ShippingOptionRequirement,
|
||||||
} from "../models"
|
} from "../models"
|
||||||
import { ShippingMethodRepository } from "../repositories/shipping-method"
|
import { ShippingMethodRepository } from "../repositories/shipping-method"
|
||||||
import { ShippingOptionRepository } from "../repositories/shipping-option"
|
import { ShippingOptionRepository } from "../repositories/shipping-option"
|
||||||
import { ShippingOptionRequirementRepository } from "../repositories/shipping-option-requirement"
|
import { ShippingOptionRequirementRepository } from "../repositories/shipping-option-requirement"
|
||||||
import { FindConfig, Selector } from "../types/common"
|
import { FindConfig, Selector } from "../types/common"
|
||||||
import {
|
import {
|
||||||
CreateShippingMethodDto,
|
CreateShippingMethodDto,
|
||||||
CreateShippingOptionInput,
|
CreateShippingOptionInput,
|
||||||
ShippingMethodUpdate,
|
ShippingMethodUpdate,
|
||||||
UpdateShippingOptionInput,
|
UpdateShippingOptionInput,
|
||||||
ValidatePriceTypeAndAmountInput,
|
ValidatePriceTypeAndAmountInput,
|
||||||
} from "../types/shipping-options"
|
} from "../types/shipping-options"
|
||||||
import { buildQuery, isString, setMetadata } from "../utils"
|
import { buildQuery, isString, setMetadata } from "../utils"
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
import FulfillmentProviderService from "./fulfillment-provider"
|
import FulfillmentProviderService from "./fulfillment-provider"
|
||||||
import RegionService from "./region"
|
import RegionService from "./region"
|
||||||
|
|
||||||
|
|||||||
@@ -1,36 +1,36 @@
|
|||||||
import { isDefined, MedusaError } from "@medusajs/utils"
|
import { isDefined, MedusaError } from "@medusajs/utils"
|
||||||
import { EntityManager } from "typeorm"
|
import { EntityManager } from "typeorm"
|
||||||
import {
|
import {
|
||||||
ITaxCalculationStrategy,
|
ITaxCalculationStrategy,
|
||||||
TaxCalculationContext,
|
TaxCalculationContext,
|
||||||
TransactionBaseService,
|
TransactionBaseService,
|
||||||
} from "../interfaces"
|
} from "../interfaces"
|
||||||
import {
|
import {
|
||||||
Cart,
|
Cart,
|
||||||
ClaimOrder,
|
ClaimOrder,
|
||||||
Discount,
|
Discount,
|
||||||
DiscountRuleType,
|
DiscountRuleType,
|
||||||
LineItem,
|
LineItem,
|
||||||
LineItemTaxLine,
|
LineItemTaxLine,
|
||||||
Order,
|
Order,
|
||||||
ShippingMethod,
|
ShippingMethod,
|
||||||
ShippingMethodTaxLine,
|
ShippingMethodTaxLine,
|
||||||
Swap,
|
Swap,
|
||||||
} from "../models"
|
} from "../models"
|
||||||
import { isCart } from "../types/cart"
|
import { isCart } from "../types/cart"
|
||||||
import { isOrder } from "../types/orders"
|
import { isOrder } from "../types/orders"
|
||||||
import {
|
import {
|
||||||
CalculationContextData,
|
CalculationContextData,
|
||||||
LineAllocationsMap,
|
LineAllocationsMap,
|
||||||
LineDiscount,
|
LineDiscount,
|
||||||
LineDiscountAmount,
|
LineDiscountAmount,
|
||||||
SubtotalOptions,
|
SubtotalOptions,
|
||||||
} from "../types/totals"
|
} from "../types/totals"
|
||||||
import { NewTotalsService, TaxProviderService } from "./index"
|
import { NewTotalsService, TaxProviderService } from "./index"
|
||||||
|
|
||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
import { calculatePriceTaxAmount } from "../utils"
|
import { calculatePriceTaxAmount } from "../utils"
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
|
|
||||||
type ShippingMethodTotals = {
|
type ShippingMethodTotals = {
|
||||||
price: number
|
price: number
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import jwt from "jsonwebtoken"
|
import jwt from "jsonwebtoken"
|
||||||
import { isDefined, MedusaError } from "medusa-core-utils"
|
import { isDefined, MedusaError } from "medusa-core-utils"
|
||||||
import Scrypt from "scrypt-kdf"
|
import Scrypt from "scrypt-kdf"
|
||||||
@@ -8,12 +9,11 @@ import { User } from "../models"
|
|||||||
import { UserRepository } from "../repositories/user"
|
import { UserRepository } from "../repositories/user"
|
||||||
import { FindConfig } from "../types/common"
|
import { FindConfig } from "../types/common"
|
||||||
import {
|
import {
|
||||||
CreateUserInput,
|
CreateUserInput,
|
||||||
FilterableUserProps,
|
FilterableUserProps,
|
||||||
UpdateUserInput,
|
UpdateUserInput,
|
||||||
} from "../types/user"
|
} from "../types/user"
|
||||||
import { buildQuery, setMetadata } from "../utils"
|
import { buildQuery, setMetadata } from "../utils"
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
import { validateEmail } from "../utils/is-email"
|
import { validateEmail } from "../utils/is-email"
|
||||||
import AnalyticsConfigService from "./analytics-config"
|
import AnalyticsConfigService from "./analytics-config"
|
||||||
import EventBusService from "./event-bus"
|
import EventBusService from "./event-bus"
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import OrderExportStrategy from "../../../batch-jobs/order/export"
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { IdMap, MockManager } from "medusa-test-utils"
|
import { IdMap, MockManager } from "medusa-test-utils"
|
||||||
|
import SalesChannelFeatureFlag from "../../../../loaders/feature-flags/sales-channels"
|
||||||
import { User } from "../../../../models"
|
import { User } from "../../../../models"
|
||||||
import { BatchJobStatus } from "../../../../types/batch-job"
|
import { BatchJobStatus } from "../../../../types/batch-job"
|
||||||
import { ordersToExport } from "../../../__fixtures__/order-export-data"
|
import { ordersToExport } from "../../../__fixtures__/order-export-data"
|
||||||
import { FlagRouter } from "../../../../utils/flag-router";
|
import OrderExportStrategy from "../../../batch-jobs/order/export"
|
||||||
import SalesChannelFeatureFlag from "../../../../loaders/feature-flags/sales-channels";
|
|
||||||
|
|
||||||
const orderServiceMock = {
|
const orderServiceMock = {
|
||||||
withTransaction: function (): any {
|
withTransaction: function (): any {
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import ProductExportStrategy from "../../../batch-jobs/product/export"
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
|
import { Request } from "express"
|
||||||
import { IdMap, MockManager } from "medusa-test-utils"
|
import { IdMap, MockManager } from "medusa-test-utils"
|
||||||
|
import { AdminPostBatchesReq, defaultAdminProductRelations, } from "../../../../api"
|
||||||
|
import SalesChannelFeatureFlag from "../../../../loaders/feature-flags/sales-channels"
|
||||||
import { User } from "../../../../models"
|
import { User } from "../../../../models"
|
||||||
import { BatchJobStatus } from "../../../../types/batch-job"
|
import { BatchJobStatus } from "../../../../types/batch-job"
|
||||||
import { productsToExport } from "../../../__fixtures__/product-export-data"
|
import { productsToExport } from "../../../__fixtures__/product-export-data"
|
||||||
import { AdminPostBatchesReq, defaultAdminProductRelations, } from "../../../../api"
|
import ProductExportStrategy from "../../../batch-jobs/product/export"
|
||||||
import { ProductExportBatchJob } from "../../../batch-jobs/product/types"
|
import { ProductExportBatchJob } from "../../../batch-jobs/product/types"
|
||||||
import { Request } from "express"
|
|
||||||
import { FlagRouter } from "../../../../utils/flag-router"
|
|
||||||
import SalesChannelFeatureFlag from "../../../../loaders/feature-flags/sales-channels"
|
|
||||||
|
|
||||||
const productServiceMock = {
|
const productServiceMock = {
|
||||||
withTransaction: function () {
|
withTransaction: function () {
|
||||||
|
|||||||
@@ -4,16 +4,16 @@ import { EntityManager } from "typeorm"
|
|||||||
import { FileService } from "medusa-interfaces"
|
import { FileService } from "medusa-interfaces"
|
||||||
import { IdMap, MockManager } from "medusa-test-utils"
|
import { IdMap, MockManager } from "medusa-test-utils"
|
||||||
|
|
||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { User } from "../../../../models"
|
import { User } from "../../../../models"
|
||||||
import {
|
import {
|
||||||
BatchJobService,
|
BatchJobService,
|
||||||
ProductService,
|
ProductService,
|
||||||
ProductVariantService,
|
ProductVariantService,
|
||||||
RegionService,
|
RegionService,
|
||||||
ShippingProfileService,
|
ShippingProfileService,
|
||||||
} from "../../../../services"
|
} from "../../../../services"
|
||||||
import { BatchJobStatus } from "../../../../types/batch-job"
|
import { BatchJobStatus } from "../../../../types/batch-job"
|
||||||
import { FlagRouter } from "../../../../utils/flag-router"
|
|
||||||
import ProductImportStrategy from "../../../batch-jobs/product/import"
|
import ProductImportStrategy from "../../../batch-jobs/product/import"
|
||||||
import { ProductImportInjectedProps } from "../../../batch-jobs/product/types"
|
import { ProductImportInjectedProps } from "../../../batch-jobs/product/types"
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { FlagRouter } from "../../utils/flag-router"
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import PriceSelectionStrategy from "../price-selection"
|
import PriceSelectionStrategy from "../price-selection"
|
||||||
import { cacheServiceMock } from "../../services/__mocks__/cache"
|
import { cacheServiceMock } from "../../services/__mocks__/cache"
|
||||||
import TaxInclusivePricingFeatureFlag from "../../loaders/feature-flags/tax-inclusive-pricing"
|
import TaxInclusivePricingFeatureFlag from "../../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import TaxCalculationStrategy from "../tax-calculation"
|
import TaxCalculationStrategy from "../tax-calculation"
|
||||||
import TaxInclusivePricingFeatureFlag from "../../loaders/feature-flags/tax-inclusive-pricing"
|
import TaxInclusivePricingFeatureFlag from "../../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
|
|
||||||
const toTest = [
|
const toTest = [
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { EntityManager } from "typeorm"
|
import { EntityManager } from "typeorm"
|
||||||
import {
|
import {
|
||||||
OrderDescriptor,
|
OrderDescriptor,
|
||||||
OrderExportBatchJob,
|
OrderExportBatchJob,
|
||||||
OrderExportBatchJobContext,
|
OrderExportBatchJobContext,
|
||||||
orderExportPropertiesDescriptors,
|
orderExportPropertiesDescriptors,
|
||||||
} from "."
|
} from "."
|
||||||
import { AdminPostBatchesReq } from "../../../api"
|
import { AdminPostBatchesReq } from "../../../api"
|
||||||
import { AbstractBatchJobStrategy, IFileService } from "../../../interfaces"
|
import { AbstractBatchJobStrategy, IFileService } from "../../../interfaces"
|
||||||
@@ -13,7 +14,6 @@ import { OrderService } from "../../../services"
|
|||||||
import BatchJobService from "../../../services/batch-job"
|
import BatchJobService from "../../../services/batch-job"
|
||||||
import { BatchJobStatus } from "../../../types/batch-job"
|
import { BatchJobStatus } from "../../../types/batch-job"
|
||||||
import { FindConfig } from "../../../types/common"
|
import { FindConfig } from "../../../types/common"
|
||||||
import { FlagRouter } from "../../../utils/flag-router"
|
|
||||||
import { prepareListQuery } from "../../../utils/get-query-config"
|
import { prepareListQuery } from "../../../utils/get-query-config"
|
||||||
|
|
||||||
type InjectedDependencies = {
|
type InjectedDependencies = {
|
||||||
|
|||||||
@@ -2,29 +2,29 @@ import { EntityManager } from "typeorm"
|
|||||||
|
|
||||||
import { humanizeAmount } from "medusa-core-utils"
|
import { humanizeAmount } from "medusa-core-utils"
|
||||||
|
|
||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
|
import { defaultAdminProductRelations } from "../../../api"
|
||||||
import { AbstractBatchJobStrategy, IFileService } from "../../../interfaces"
|
import { AbstractBatchJobStrategy, IFileService } from "../../../interfaces"
|
||||||
|
import ProductCategoryFeatureFlag from "../../../loaders/feature-flags/product-categories"
|
||||||
|
import SalesChannelFeatureFlag from "../../../loaders/feature-flags/sales-channels"
|
||||||
import { Product, ProductVariant } from "../../../models"
|
import { Product, ProductVariant } from "../../../models"
|
||||||
import { BatchJobService, ProductService } from "../../../services"
|
import { BatchJobService, ProductService } from "../../../services"
|
||||||
import { BatchJobStatus, CreateBatchJobInput } from "../../../types/batch-job"
|
import { BatchJobStatus, CreateBatchJobInput } from "../../../types/batch-job"
|
||||||
import { defaultAdminProductRelations } from "../../../api"
|
import { FindProductConfig } from "../../../types/product"
|
||||||
|
import { csvCellContentFormatter } from "../../../utils"
|
||||||
import { prepareListQuery } from "../../../utils/get-query-config"
|
import { prepareListQuery } from "../../../utils/get-query-config"
|
||||||
import {
|
import {
|
||||||
DynamicProductExportDescriptor,
|
DynamicProductExportDescriptor,
|
||||||
ProductExportBatchJob,
|
ProductExportBatchJob,
|
||||||
ProductExportBatchJobContext,
|
ProductExportBatchJobContext,
|
||||||
ProductExportInjectedDependencies,
|
ProductExportInjectedDependencies,
|
||||||
ProductExportPriceData,
|
ProductExportPriceData,
|
||||||
} from "./types"
|
} from "./types"
|
||||||
import { FindProductConfig } from "../../../types/product"
|
|
||||||
import { FlagRouter } from "../../../utils/flag-router"
|
|
||||||
import SalesChannelFeatureFlag from "../../../loaders/feature-flags/sales-channels"
|
|
||||||
import { csvCellContentFormatter } from "../../../utils"
|
|
||||||
import {
|
import {
|
||||||
productCategoriesColumnsDefinition,
|
productCategoriesColumnsDefinition,
|
||||||
productColumnsDefinition,
|
productColumnsDefinition,
|
||||||
productSalesChannelColumnsDefinition,
|
productSalesChannelColumnsDefinition,
|
||||||
} from "./types/columns-definition"
|
} from "./types/columns-definition"
|
||||||
import ProductCategoryFeatureFlag from "../../../loaders/feature-flags/product-categories"
|
|
||||||
|
|
||||||
export default class ProductExportStrategy extends AbstractBatchJobStrategy {
|
export default class ProductExportStrategy extends AbstractBatchJobStrategy {
|
||||||
public static identifier = "product-export-strategy"
|
public static identifier = "product-export-strategy"
|
||||||
|
|||||||
@@ -2,38 +2,38 @@
|
|||||||
import { computerizeAmount, MedusaError } from "medusa-core-utils"
|
import { computerizeAmount, MedusaError } from "medusa-core-utils"
|
||||||
import { EntityManager } from "typeorm"
|
import { EntityManager } from "typeorm"
|
||||||
|
|
||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { AbstractBatchJobStrategy, IFileService } from "../../../interfaces"
|
import { AbstractBatchJobStrategy, IFileService } from "../../../interfaces"
|
||||||
|
import ProductCategoryFeatureFlag from "../../../loaders/feature-flags/product-categories"
|
||||||
import SalesChannelFeatureFlag from "../../../loaders/feature-flags/sales-channels"
|
import SalesChannelFeatureFlag from "../../../loaders/feature-flags/sales-channels"
|
||||||
import { BatchJob, SalesChannel } from "../../../models"
|
import { BatchJob, SalesChannel } from "../../../models"
|
||||||
import {
|
import {
|
||||||
BatchJobService,
|
BatchJobService,
|
||||||
ProductCategoryService,
|
ProductCategoryService,
|
||||||
ProductCollectionService,
|
ProductCollectionService,
|
||||||
ProductService,
|
ProductService,
|
||||||
ProductVariantService,
|
ProductVariantService,
|
||||||
RegionService,
|
RegionService,
|
||||||
SalesChannelService,
|
SalesChannelService,
|
||||||
ShippingProfileService,
|
ShippingProfileService,
|
||||||
} from "../../../services"
|
} from "../../../services"
|
||||||
import CsvParser from "../../../services/csv-parser"
|
import CsvParser from "../../../services/csv-parser"
|
||||||
import { CreateProductInput } from "../../../types/product"
|
import { CreateProductInput } from "../../../types/product"
|
||||||
import { CreateProductVariantInput } from "../../../types/product-variant"
|
import { CreateProductVariantInput } from "../../../types/product-variant"
|
||||||
import { FlagRouter } from "../../../utils/flag-router"
|
|
||||||
import {
|
import {
|
||||||
OperationType,
|
OperationType,
|
||||||
ProductImportBatchJob,
|
ProductImportBatchJob,
|
||||||
ProductImportCsvSchema,
|
ProductImportCsvSchema,
|
||||||
ProductImportInjectedProps,
|
ProductImportInjectedProps,
|
||||||
ProductImportJobContext,
|
ProductImportJobContext,
|
||||||
TParsedProductImportRowData,
|
TParsedProductImportRowData,
|
||||||
} from "./types"
|
} from "./types"
|
||||||
import {
|
import {
|
||||||
productImportColumnsDefinition,
|
productImportColumnsDefinition,
|
||||||
productImportSalesChannelsColumnsDefinition,
|
productImportProductCategoriesColumnsDefinition,
|
||||||
productImportProductCategoriesColumnsDefinition,
|
productImportSalesChannelsColumnsDefinition,
|
||||||
} from "./types/columns-definition"
|
} from "./types/columns-definition"
|
||||||
import { transformProductData, transformVariantData } from "./utils"
|
import { transformProductData, transformVariantData } from "./utils"
|
||||||
import ProductCategoryFeatureFlag from "../../../loaders/feature-flags/product-categories"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Process this many variant rows before reporting progress.
|
* Process this many variant rows before reporting progress.
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
import { BatchJob, Product, ProductVariant } from "../../../../models"
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { Selector } from "../../../../types/common"
|
|
||||||
import { CsvSchema, CsvSchemaColumn } from "../../../../interfaces/csv-parser"
|
|
||||||
import {
|
|
||||||
BatchJobService,
|
|
||||||
ProductCategoryService,
|
|
||||||
ProductCollectionService,
|
|
||||||
ProductService,
|
|
||||||
ProductVariantService,
|
|
||||||
RegionService,
|
|
||||||
SalesChannelService,
|
|
||||||
ShippingProfileService,
|
|
||||||
} from "../../../../services"
|
|
||||||
import { FileService } from "medusa-interfaces"
|
import { FileService } from "medusa-interfaces"
|
||||||
import { FlagRouter } from "../../../../utils/flag-router"
|
|
||||||
import { EntityManager } from "typeorm"
|
import { EntityManager } from "typeorm"
|
||||||
import { IFileService } from "../../../../interfaces"
|
import { IFileService } from "../../../../interfaces"
|
||||||
|
import { CsvSchema, CsvSchemaColumn } from "../../../../interfaces/csv-parser"
|
||||||
|
import { BatchJob, Product, ProductVariant } from "../../../../models"
|
||||||
|
import {
|
||||||
|
BatchJobService,
|
||||||
|
ProductCategoryService,
|
||||||
|
ProductCollectionService,
|
||||||
|
ProductService,
|
||||||
|
ProductVariantService,
|
||||||
|
RegionService,
|
||||||
|
SalesChannelService,
|
||||||
|
ShippingProfileService,
|
||||||
|
} from "../../../../services"
|
||||||
|
import { Selector } from "../../../../types/common"
|
||||||
|
|
||||||
export type ProductExportInjectedDependencies = {
|
export type ProductExportInjectedDependencies = {
|
||||||
manager: EntityManager
|
manager: EntityManager
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
import {
|
import {
|
||||||
AbstractPriceSelectionStrategy,
|
AbstractPriceSelectionStrategy,
|
||||||
PriceSelectionContext,
|
PriceSelectionContext,
|
||||||
PriceSelectionResult,
|
PriceSelectionResult,
|
||||||
PriceType,
|
PriceType,
|
||||||
} from "../interfaces"
|
} from "../interfaces"
|
||||||
|
|
||||||
import { EntityManager } from "typeorm"
|
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
import { ICacheService } from "@medusajs/types"
|
import { ICacheService } from "@medusajs/types"
|
||||||
import { MoneyAmountRepository } from "../repositories/money-amount"
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
|
||||||
import { TaxServiceRate } from "../types/tax-service"
|
|
||||||
import { isDefined } from "medusa-core-utils"
|
import { isDefined } from "medusa-core-utils"
|
||||||
|
import { EntityManager } from "typeorm"
|
||||||
|
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
|
import { MoneyAmountRepository } from "../repositories/money-amount"
|
||||||
|
import { TaxServiceRate } from "../types/tax-service"
|
||||||
|
|
||||||
class PriceSelectionStrategy extends AbstractPriceSelectionStrategy {
|
class PriceSelectionStrategy extends AbstractPriceSelectionStrategy {
|
||||||
protected manager_: EntityManager
|
protected manager_: EntityManager
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import {
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
LineItem,
|
|
||||||
LineItemTaxLine,
|
|
||||||
ShippingMethod,
|
|
||||||
ShippingMethodTaxLine,
|
|
||||||
} from "../models"
|
|
||||||
import { ITaxCalculationStrategy, TaxCalculationContext } from "../interfaces"
|
import { ITaxCalculationStrategy, TaxCalculationContext } from "../interfaces"
|
||||||
import { calculatePriceTaxAmount } from "../utils"
|
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
||||||
|
import {
|
||||||
|
LineItem,
|
||||||
|
LineItemTaxLine,
|
||||||
|
ShippingMethod,
|
||||||
|
ShippingMethodTaxLine,
|
||||||
|
} from "../models"
|
||||||
|
import { calculatePriceTaxAmount } from "../utils"
|
||||||
|
|
||||||
class TaxCalculationStrategy implements ITaxCalculationStrategy {
|
class TaxCalculationStrategy implements ITaxCalculationStrategy {
|
||||||
protected readonly featureFlagRouter_: FlagRouter
|
protected readonly featureFlagRouter_: FlagRouter
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
import { IEventBusService, ISearchService } from "@medusajs/types"
|
import { IEventBusService, ISearchService } from "@medusajs/types"
|
||||||
import { defaultSearchIndexingProductRelations } from "@medusajs/utils"
|
import { FlagRouter, defaultSearchIndexingProductRelations } from "@medusajs/utils"
|
||||||
import { indexTypes } from "medusa-core-utils"
|
import { indexTypes } from "medusa-core-utils"
|
||||||
import ProductCategoryFeatureFlag from "../loaders/feature-flags/product-categories"
|
import ProductCategoryFeatureFlag from "../loaders/feature-flags/product-categories"
|
||||||
import { SEARCH_INDEX_EVENT } from "../loaders/search-index"
|
import { SEARCH_INDEX_EVENT } from "../loaders/search-index"
|
||||||
import { Product } from "../models"
|
import { Product } from "../models"
|
||||||
import ProductService from "../services/product"
|
import ProductService from "../services/product"
|
||||||
import { FlagRouter } from "../utils/flag-router"
|
|
||||||
|
|
||||||
type InjectedDependencies = {
|
type InjectedDependencies = {
|
||||||
eventBusService: IEventBusService
|
eventBusService: IEventBusService
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
|
import { FlagRouter } from "@medusajs/utils"
|
||||||
import { calculatePriceTaxAmount } from "../calculate-price-tax-amount"
|
import { calculatePriceTaxAmount } from "../calculate-price-tax-amount"
|
||||||
import { FlagRouter } from "../../utils/flag-router"
|
|
||||||
|
|
||||||
describe("calculatePriceTaxAmount", () => {
|
describe("calculatePriceTaxAmount", () => {
|
||||||
describe("Calculate taxes from a given price", () => {
|
describe("Calculate taxes from a given price", () => {
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
import { FlagRouter } from "../flag-router"
|
|
||||||
|
|
||||||
describe("Flag Router", () => {
|
|
||||||
describe("listFlags", () => {
|
|
||||||
it("should list all feature flags", () => {
|
|
||||||
const flagRouter = new FlagRouter({})
|
|
||||||
|
|
||||||
flagRouter.setFlag("test", false)
|
|
||||||
flagRouter.setFlag("test2", true)
|
|
||||||
flagRouter.setFlag("test3", false)
|
|
||||||
|
|
||||||
const listOfFlags = flagRouter.listFlags()
|
|
||||||
|
|
||||||
expect(listOfFlags).toEqual([
|
|
||||||
{
|
|
||||||
key: "test",
|
|
||||||
value: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "test2",
|
|
||||||
value: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "test3",
|
|
||||||
value: false,
|
|
||||||
},
|
|
||||||
])
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
import { FeatureFlagTypes } from "@medusajs/types"
|
|
||||||
import { isObject, isString } from "@medusajs/utils"
|
|
||||||
|
|
||||||
export class FlagRouter implements FeatureFlagTypes.IFlagRouter {
|
|
||||||
private readonly flags: Record<string, boolean | Record<string, boolean>> = {}
|
|
||||||
|
|
||||||
constructor(flags: Record<string, boolean | Record<string, boolean>>) {
|
|
||||||
this.flags = flags
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if a feature flag is enabled.
|
|
||||||
* There are two ways of using this method:
|
|
||||||
* 1. `isFeatureEnabled("myFeatureFlag")`
|
|
||||||
* 2. `isFeatureEnabled({ myNestedFeatureFlag: "someNestedFlag" })`
|
|
||||||
* We use 1. for top-level feature flags and 2. for nested feature flags. Almost all flags are top-level.
|
|
||||||
* An example of a nested flag is workflows. To use it, you would do:
|
|
||||||
* `isFeatureEnabled({ workflows: Workflows.CreateCart })`
|
|
||||||
* @param flag - The flag to check
|
|
||||||
* @return {boolean} - Whether the flag is enabled or not
|
|
||||||
*/
|
|
||||||
public isFeatureEnabled(flag: string | Record<string, string>): boolean {
|
|
||||||
if (isString(flag)) {
|
|
||||||
return !!this.flags[flag]
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isObject(flag)) {
|
|
||||||
const [nestedFlag, value] = Object.entries(flag)[0]
|
|
||||||
|
|
||||||
if (typeof this.flags[nestedFlag] === "boolean") {
|
|
||||||
return this.flags[nestedFlag] as boolean
|
|
||||||
}
|
|
||||||
|
|
||||||
return !!this.flags[nestedFlag]?.[value]
|
|
||||||
}
|
|
||||||
|
|
||||||
throw Error("Flag must be a string or an object")
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets a feature flag.
|
|
||||||
* Flags take two shapes:
|
|
||||||
* setFlag("myFeatureFlag", true)
|
|
||||||
* setFlag("myFeatureFlag", { nestedFlag: true })
|
|
||||||
* These shapes are used for top-level and nested flags respectively, as explained in isFeatureEnabled.
|
|
||||||
* @param key - The key of the flag to set.
|
|
||||||
* @param value - The value of the flag to set.
|
|
||||||
* @return {void} - void
|
|
||||||
*/
|
|
||||||
public setFlag(
|
|
||||||
key: string,
|
|
||||||
value: boolean | { [key: string]: boolean }
|
|
||||||
): void {
|
|
||||||
if (isObject(value)) {
|
|
||||||
const existing = this.flags[key]
|
|
||||||
|
|
||||||
if (!existing) {
|
|
||||||
this.flags[key] = value
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
this.flags[key] = { ...(this.flags[key] as object), ...value }
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
this.flags[key] = value
|
|
||||||
}
|
|
||||||
|
|
||||||
public listFlags(): FeatureFlagTypes.FeatureFlagsResponse {
|
|
||||||
return Object.entries(this.flags || {}).map(([key, value]) => ({
|
|
||||||
key,
|
|
||||||
value,
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user