@valantic/spartacus-mock
Version:
This project offers you the possibility to mock the OCC Endpoints of your Composable Storefront (Spartacus). It uses the Mock Service Worker to mock the API calls.
1 lines • 373 kB
Source Map (JSON)
{"version":3,"file":"valantic-spartacus-mock.mjs","sources":["../../../projects/spartacus-mock/src/lib/occ-config/occ-cart-config.ts","../../../projects/spartacus-mock/src/lib/occ-config/occ-checkout-config.ts","../../../projects/spartacus-mock/src/lib/occ-config/occ-order-config.ts","../../../projects/spartacus-mock/src/lib/occ-config/occ-saved-cart-config.ts","../../../projects/spartacus-mock/src/lib/occ-config/occ-store-finder-config.ts","../../../projects/spartacus-mock/src/lib/occ-config/occ-user-config.ts","../../../projects/spartacus-mock/src/lib/defaultRoutes.ts","../../../projects/spartacus-mock/src/lib/mock-data/general/countries.ts","../../../projects/spartacus-mock/src/lib/mock-data/general/currencies.ts","../../../projects/spartacus-mock/src/lib/mock-data/general/pagination.ts","../../../projects/spartacus-mock/src/lib/mock-data/general/regions.ts","../../../projects/spartacus-mock/src/lib/mock-data/general/sort.ts","../../../projects/spartacus-mock/src/lib/mock-data/general/titles.ts","../../../projects/spartacus-mock/src/lib/mock-data/account/addresses.ts","../../../projects/spartacus-mock/src/lib/mock-data/account/customer-coupons.ts","../../../projects/spartacus-mock/src/lib/mock-data/account/notification-preferences.ts","../../../projects/spartacus-mock/src/lib/mock-data/account/payments.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/price.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/delivery-mode.ts","../../../projects/spartacus-mock/src/lib/mock-data/media/image.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/promotion.ts","../../../projects/spartacus-mock/src/lib/types/types.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/voucher.ts","../../../projects/spartacus-mock/src/lib/mock-data/products/product-stock.ts","../../../projects/spartacus-mock/src/lib/mock-data/products/product-base-option.ts","../../../projects/spartacus-mock/src/lib/mock-data/products/product-categories.ts","../../../projects/spartacus-mock/src/lib/mock-data/products/product-classification.ts","../../../projects/spartacus-mock/src/lib/mock-data/products/product-references.ts","../../../projects/spartacus-mock/src/lib/mock-data/languages/languages.ts","../../../projects/spartacus-mock/src/lib/mock-data/auth/user.ts","../../../projects/spartacus-mock/src/lib/mock-data/products/product-reviews.ts","../../../projects/spartacus-mock/src/lib/mock-data/products/product.ts","../../../projects/spartacus-mock/src/lib/mock-data/account/product-interests.ts","../../../projects/spartacus-mock/src/lib/mock-data/auth/auth.ts","../../../projects/spartacus-mock/src/lib/mock-data/order/order.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/cart.ts","../../../projects/spartacus-mock/src/lib/mock-data/account/saved-cart.ts","../../../projects/spartacus-mock/src/lib/mock-data/base-sites/base-sites.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/cms-link.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/flex-type-component.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/cms-paragraph.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/components.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/content-slot.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/media.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/simple-banner.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/simple-responsive-banner.ts","../../../projects/spartacus-mock/src/lib/mock-data/consent-templates/consent-templates.ts","../../../projects/spartacus-mock/src/lib/mock-data/order/order-history.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-address-book-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-close-account-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-consents-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-coupons-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-my-interests-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-notification-preference-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-order-history-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-order-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-payment-details-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-personal-details-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-quick-order-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-saved-cart-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-saved-carts-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-update-email-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-update-password-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/account-wish-list-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/cart-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/checkout-default-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/checkout-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/checkout-delivery-address-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/checkout-delivery-mode-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/checkout-login-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/checkout-payment-details-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/checkout-review-order-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/cms-page-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/cms-page-content-slots-not-found.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/example-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/order-confirmation-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/search-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/store-finder-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/pages/pages.ts","../../../projects/spartacus-mock/src/lib/mock-data/pages/page.service.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/breadcrumb.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/navigation-node.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/footer-navigation.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/profile-script.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/footer-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/category-navigation.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/mini-cart.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/search-box.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/site-context.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/header-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/product-carousel.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/home-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/cms-tab-paragraph.ts","../../../projects/spartacus-mock/src/lib/mock-data/components/product-references.ts","../../../projects/spartacus-mock/src/lib/mock-data/slots/product-detail-content-slots.ts","../../../projects/spartacus-mock/src/lib/mock-data/pages/page-factory.service.ts","../../../projects/spartacus-mock/src/lib/mock-data/search/facet.ts","../../../projects/spartacus-mock/src/lib/mock-data/search/search.ts","../../../projects/spartacus-mock/src/lib/mock-data/search/breadcrumb.ts","../../../projects/spartacus-mock/src/lib/mock-data/search/search-suggestions.ts","../../../projects/spartacus-mock/src/lib/mock-data/store-finder/store-finder.ts","../../../projects/spartacus-mock/src/lib/mock-data/translations/translations.ts","../../../projects/spartacus-mock/src/lib/utils/request-params.ts","../../../projects/spartacus-mock/src/lib/utils/redirect.ts","../../../projects/spartacus-mock/src/lib/handlers/account-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/base-handler.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/checkout.ts","../../../projects/spartacus-mock/src/lib/handlers/cart-handler.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/payment-sop.ts","../../../projects/spartacus-mock/src/lib/mock-data/commerce/payment-sop-response.ts","../../../projects/spartacus-mock/src/lib/handlers/checkout-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/cms-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/order-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/product-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/search-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/store-finder-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/translation-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/user-handler.ts","../../../projects/spartacus-mock/src/lib/handlers/handler.service.ts","../../../projects/spartacus-mock/src/lib/local-storage/local-storage.service.ts","../../../projects/spartacus-mock/src/lib/pass-through/pass-through-requests.ts","../../../projects/spartacus-mock/src/lib/pass-through/pass-through.service.ts","../../../projects/spartacus-mock/src/lib/index.ts","../../../projects/spartacus-mock/src/public-api.ts","../../../projects/spartacus-mock/src/valantic-spartacus-mock.ts"],"sourcesContent":["import { CartOccEndpoints } from '@spartacus/cart/base/occ';\nimport { OccConfig } from '@spartacus/core';\n\n// needed to have a working typing\ninterface CartOccConfig extends OccConfig {\n backend: {\n occ: {\n endpoints: CartOccEndpoints;\n };\n };\n}\n\nexport const occCartConfig: CartOccConfig = {\n backend: {\n occ: {\n // cannot extend from defaultOccCartConfig as it is not exported\n endpoints: {\n carts:\n 'users/${userId}/carts?fields=carts(DEFAULT,potentialProductPromotions,appliedProductPromotions,potentialOrderPromotions,appliedOrderPromotions,entries(totalPrice(formattedValue),product(images(FULL),stock(FULL)),basePrice(formattedValue,value),updateable),totalPrice(formattedValue),totalItems,totalPriceWithTax(formattedValue),totalDiscounts(value,formattedValue),subTotal(formattedValue),deliveryItemsQuantity,deliveryCost(formattedValue),totalTax(formattedValue, value),pickupItemsQuantity,net,appliedVouchers,productDiscounts(formattedValue),user,saveTime,name,description)',\n cart: 'users/${userId}/carts/${cartId}?fields=DEFAULT,potentialProductPromotions,appliedProductPromotions,potentialOrderPromotions,appliedOrderPromotions,entries(totalPrice(formattedValue),product(images(FULL),stock(FULL)),basePrice(formattedValue,value),updateable),totalPrice(formattedValue),totalItems,totalPriceWithTax(formattedValue),totalDiscounts(value,formattedValue),subTotal(formattedValue),deliveryItemsQuantity,deliveryCost(formattedValue),totalTax(formattedValue, value),pickupItemsQuantity,net,appliedVouchers,productDiscounts(formattedValue),user,saveTime,name,description',\n createCart:\n 'users/${userId}/carts?fields=DEFAULT,potentialProductPromotions,appliedProductPromotions,potentialOrderPromotions,appliedOrderPromotions,entries(totalPrice(formattedValue),product(images(FULL),stock(FULL)),basePrice(formattedValue,value),updateable),totalPrice(formattedValue),totalItems,totalPriceWithTax(formattedValue),totalDiscounts(value,formattedValue),subTotal(formattedValue),deliveryItemsQuantity,deliveryCost(formattedValue),totalTax(formattedValue, value),pickupItemsQuantity,net,appliedVouchers,productDiscounts(formattedValue),user',\n addEntries: 'users/${userId}/carts/${cartId}/entries',\n updateEntries: 'users/${userId}/carts/${cartId}/entries/${entryNumber}',\n removeEntries: 'users/${userId}/carts/${cartId}/entries/${entryNumber}',\n addEmail: 'users/${userId}/carts/${cartId}/email',\n deleteCart: 'users/${userId}/carts/${cartId}',\n cartVoucher: 'users/${userId}/carts/${cartId}/vouchers',\n saveCart:\n '/users/${userId}/carts/${cartId}/save?saveCartName=${saveCartName}&saveCartDescription=${saveCartDescription}',\n validate: 'users/${userId}/carts/${cartId}/validate?fields=DEFAULT',\n },\n },\n },\n};\n","import { CheckoutOccEndpoints } from '@spartacus/checkout/base/occ';\nimport { OccConfig } from '@spartacus/core';\n\n// needed to have a working typing\ninterface CheckoutOccConfig extends OccConfig {\n backend: {\n occ: {\n endpoints: CheckoutOccEndpoints;\n };\n };\n}\n\nexport const occCheckoutConfig: CheckoutOccConfig = {\n backend: {\n occ: {\n // cannot extend from defaultOccCheckoutConfig as it is not exported\n endpoints: {\n setDeliveryAddress: 'users/${userId}/carts/${cartId}/addresses/delivery',\n cardTypes: 'cardtypes',\n createDeliveryAddress: 'users/${userId}/carts/${cartId}/addresses/delivery',\n removeDeliveryAddress: 'users/${userId}/carts/${cartId}/addresses/delivery',\n deliveryMode: 'users/${userId}/carts/${cartId}/deliverymode',\n setDeliveryMode: 'users/${userId}/carts/${cartId}/deliverymode',\n clearDeliveryMode: 'users/${userId}/carts/${cartId}/deliverymode',\n deliveryModes: 'users/${userId}/carts/${cartId}/deliverymodes',\n setCartPaymentDetails: 'users/${userId}/carts/${cartId}/paymentdetails',\n paymentProviderSubInfo: 'users/${userId}/carts/${cartId}/payment/sop/request?responseUrl=sampleUrl',\n createPaymentDetails: 'users/${userId}/carts/${cartId}/payment/sop/response',\n getCheckoutDetails:\n 'users/${userId}/carts/${cartId}?fields=deliveryAddress(FULL),deliveryMode(FULL),paymentInfo(FULL)',\n },\n },\n },\n};\n","import { OccConfig } from '@spartacus/core';\nimport { OrderOccEndpoints } from '@spartacus/order/occ';\n\n// needed to have a working typing\ninterface OrderOccConfig extends OccConfig {\n backend: {\n occ: {\n endpoints: OrderOccEndpoints;\n };\n };\n}\n\nexport const occOrderConfig: OrderOccConfig = {\n backend: {\n occ: {\n // cannot extend from defaultOccCartConfig as it is not exported\n endpoints: {\n orderHistory: 'users/${userId}/orders',\n orderDetail: 'users/${userId}/orders/${orderId}?fields=FULL',\n consignmentTracking: 'users/${userId}/orders/${orderCode}/consignments/${consignmentCode}/tracking',\n cancelOrder: 'users/${userId}/orders/${orderId}/cancellation',\n returnOrder:\n 'users/${userId}/orderReturns?fields=BASIC,returnEntries(BASIC,refundAmount(formattedValue),orderEntry(basePrice(formattedValue),product(name,code,baseOptions,images(DEFAULT,galleryIndex)))),deliveryCost(formattedValue),totalPrice(formattedValue),subTotal(formattedValue)',\n orderReturns: 'users/${userId}/orderReturns?fields=BASIC',\n orderReturnDetail:\n 'users/${userId}/orderReturns/${returnRequestCode}?fields=BASIC,returnEntries(BASIC,refundAmount(formattedValue),orderEntry(basePrice(formattedValue),product(name,code,baseOptions,images(DEFAULT,galleryIndex)))),deliveryCost(formattedValue),totalPrice(formattedValue),subTotal(formattedValue)',\n cancelReturn: 'users/${userId}/orderReturns/${returnRequestCode}',\n /* eslint-enable */\n\n /** scheduled replenishment endpoints start */\n replenishmentOrderDetails:\n 'users/${userId}/replenishmentOrders/${replenishmentOrderCode}?fields=FULL,costCenter(FULL),purchaseOrderNumber,paymentType,user',\n replenishmentOrderDetailsHistory: 'users/${userId}/replenishmentOrders/${replenishmentOrderCode}/orders',\n cancelReplenishmentOrder:\n 'users/${userId}/replenishmentOrders/${replenishmentOrderCode}?fields=FULL,costCenter(FULL),purchaseOrderNumber,paymentType,user',\n replenishmentOrderHistory:\n 'users/${userId}/replenishmentOrders?fields=FULL,replenishmentOrders(FULL, purchaseOrderNumber)',\n /** scheduled replenishment endpoints end */\n\n /** placing an order endpoints start **/\n placeOrder: 'users/${userId}/orders?fields=FULL',\n /** placing an order endpoints end **/\n },\n },\n },\n};\n","interface SavedCartEndpoints {\n savedCarts?: string;\n savedCart?: string;\n restoreSavedCart?: string;\n cloneSavedCart?: string;\n}\n\ninterface SavedCartConfig {\n backend: {\n occ: {\n endpoints: SavedCartEndpoints;\n };\n };\n}\n\nexport const occSavedCartConfig: SavedCartConfig = {\n backend: {\n occ: {\n endpoints: {\n savedCarts:\n 'users/${userId}/carts?savedCartsOnly=true&fields=carts(DEFAULT,potentialProductPromotions,appliedProductPromotions,potentialOrderPromotions,appliedOrderPromotions,entries(totalPrice(formattedValue),product(images(FULL),stock(FULL)),basePrice(formattedValue,value),updateable),totalPrice(formattedValue),totalItems,totalPriceWithTax(formattedValue),totalDiscounts(value,formattedValue),subTotal(formattedValue),deliveryItemsQuantity,deliveryCost(formattedValue),totalTax(formattedValue, value),pickupItemsQuantity,net,appliedVouchers,productDiscounts(formattedValue),saveTime,user,name,description)',\n savedCart: 'users/${userId}/carts/${cartId}/savedcart',\n restoreSavedCart: 'users/${userId}/carts/${cartId}/restoresavedcart',\n cloneSavedCart: 'users/${userId}/carts/${cartId}/clonesavedcart?name=${saveCartName}',\n },\n },\n },\n};\n","import { OccConfig, OccEndpoints } from '@spartacus/core';\n\ninterface StoreFinderOccEndpoints extends OccEndpoints {\n store: string;\n stores: string;\n storescounts: string;\n}\n\n// needed to have a working typing\ninterface StoreFinderOccConfig extends OccConfig {\n backend: {\n occ: {\n endpoints: StoreFinderOccEndpoints;\n };\n };\n}\n\nexport const occStoreFinderConfig: StoreFinderOccConfig = {\n backend: {\n occ: {\n endpoints: {\n store: 'stores/${storeId}?fields=FULL',\n stores:\n 'stores?fields=stores(name,displayName,formattedDistance,openingHours(weekDayOpeningList(FULL),specialDayOpeningList(FULL)),geoPoint(latitude,longitude),address(line1,line2,town,region(FULL),postalCode,phone,country,email), features),pagination(DEFAULT),sorts(DEFAULT)',\n storescounts: 'stores/storescounts',\n },\n },\n },\n};\n","import { OccConfig, OccEndpoints } from '@spartacus/core';\n\n// needed to have a working typing\ninterface UserOccConfig extends OccConfig {\n backend: {\n occ: {\n endpoints: OccEndpoints;\n };\n };\n}\n\nexport const occUserConfig: UserOccConfig = {\n backend: {\n occ: {\n // cannot extend from defaultOccCartConfig as it is not exported\n endpoints: {\n paymentDetailsAll: 'users/${userId}/paymentdetails',\n paymentDetail: 'users/${userId}/paymentdetails/${paymentDetailId}',\n anonymousConsentTemplates: 'users/anonymous/consenttemplates',\n consentTemplates: 'users/${userId}/consenttemplates',\n consents: 'users/${userId}/consents',\n consentDetail: 'users/${userId}/consents/${consentId}',\n addresses: 'users/${userId}/addresses',\n addressDetail: 'users/${userId}/addresses/${addressId}',\n addressVerification: 'users/${userId}/addresses/verification',\n customerCoupons: 'users/${userId}/customercoupons',\n claimCoupon: 'users/${userId}/customercoupons/${couponCode}/claim',\n couponNotification: 'users/${userId}/customercoupons/${couponCode}/notification',\n notificationPreference: 'users/${userId}/notificationpreferences',\n productInterests: 'users/${userId}/productinterests',\n getProductInterests:\n 'users/${userId}/productinterests?fields=sorts,pagination,results(productInterestEntry,product(code))',\n },\n },\n },\n};\n","import { defaultOccUserProfileConfig } from '@spartacus/user/profile/occ';\nimport { occCartConfig } from './occ-config/occ-cart-config';\nimport { occCheckoutConfig } from './occ-config/occ-checkout-config';\nimport { occOrderConfig } from './occ-config/occ-order-config';\nimport { occSavedCartConfig } from './occ-config/occ-saved-cart-config';\nimport { occStoreFinderConfig } from './occ-config/occ-store-finder-config';\nimport { occUserConfig } from './occ-config/occ-user-config';\nimport { Environment } from './types';\n\n/**\n * TODO use endpoints from default configs after SAP exports them, see https://github.com/SAP/spartacus/issues/17442\n *\n * defaultOccCartConfig\n * defaultOccCheckoutConfig\n * defaultOccOrderConfig\n * defaultOccAccountSummaryConfig\n * defaultOccStoreFinderConfig\n * defaultOccUserAccountConfig\n * defaultOccUserProfileConfig\n * defaultOccProductConfig\n * defaultOccSiteContextConfig\n * defaultOccUserConfig\n */\n\nconst i18nEndpoint = 'i18n/${language}/${namespace}';\n\nconst cartEndpoints = occCartConfig.backend.occ.endpoints;\nconst checkoutEndpoints = occCheckoutConfig.backend.occ.endpoints;\nconst orderEndpoints = occOrderConfig.backend.occ.endpoints;\nconst savedCartEndpoints = occSavedCartConfig.backend?.occ?.endpoints;\nconst userEndpoints = occUserConfig.backend?.occ?.endpoints;\nconst userProfileEndpoints = defaultOccUserProfileConfig.backend?.occ?.endpoints;\nconst storeFinderEndpoints = occStoreFinderConfig.backend.occ.endpoints;\n\n/**\n * Returns the default routes for Spartacus Mock Server\n * @param environment\n */\nexport function getDefaultRoutes(environment: Environment) {\n const occEndpoint = `${environment.backend.occ?.baseUrl}${environment.backend.occ?.prefix}`;\n\n // TODO Take all endpoints from the defaultXxx configs above\n return {\n /**\n * General Calls ***************************************************************************************************\n */\n\n /**\n * Route for the baseSites call being done by spartacus on application startup\n */\n baseSites: `${occEndpoint}basesites`,\n\n /**\n * Route for the languages call being done by spartacus on application startup\n */\n languages: `${occEndpoint}:baseSiteId/languages`,\n\n /**\n * Route for the currencies call being done by spartacus on application startup\n */\n currencies: `${occEndpoint}:baseSiteId/currencies`,\n\n /**\n * Route for the titles call being done by spartacus when showing the address form\n */\n titles: `${occEndpoint}:baseSiteId/titles`,\n\n /**\n * Route for the countries call being done by spartacus when showing the address form\n */\n countries: `${occEndpoint}:baseSiteId/countries`,\n\n /**\n * Route for the regions call being done by spartacus when showing the address form\n */\n regions: `${occEndpoint}:baseSiteId/countries/:isocode/regions`,\n\n /**\n * Route for the i18n call to load the translations from the backend when having i18n lazy loading activated\n * Url is defined as <occ-base-url>/<occ-prefix>/i18n/${language}/${namespace} and can be overridden via\n * option i18nEndpoint of the spartacus-mock options\n */\n i18n: `${occEndpoint}:baseSiteId/${i18nEndpoint\n .split('?')[0]\n .replace('${language}', ':language')\n .replace('${namespace}', ':namespace')}`,\n\n /**\n * User related calls **********************************************************************************************\n */\n\n /**\n * Route for the login call to the authorizationserver\n */\n authLogin: '*/authorizationserver/oauth/token',\n\n /**\n * Route for the logout call to the authorizationserver\n */\n authRevoke: '*/authorizationserver/oauth/revoke',\n\n /**\n * Route for the users call to create a new user during registration\n */\n users: `${occEndpoint}:baseSiteId/users`,\n\n /**\n * Route for the user call to get the user details after login\n */\n user: `${occEndpoint}:baseSiteId/users/:user`,\n\n /**\n * Route for the call to get the user details\n * call somehow needed and done without baseSite sometimes\n */\n userTemp: `${occEndpoint}users/:user`,\n\n /**\n * Route for the call to get the consent templates for the current user\n */\n consentTemplates: `${occEndpoint}:baseSiteId/users/:user/consenttemplates`,\n\n /**\n * Route for the call to get the consent templates for the current user\n */\n anonymousConsentTemplates: `${occEndpoint}:baseSiteId/users/:user/consenttemplates`,\n\n /**\n * Route for the call to get the notification preferences for the current user\n */\n notificationPreferences: `${occEndpoint}:baseSiteId/users/:user/notificationpreferences`,\n\n /**\n * Route for the call to get the product interests for the current user\n */\n productInterests: `${occEndpoint}:baseSiteId/users/:user/productinterests`,\n\n /**\n * Route for the call to get the customer coupons for the current user\n */\n customerCoupons: `${occEndpoint}:baseSiteId/users/:user/customercoupons`,\n\n /**\n * Route for the call to get the addresses for the current user\n */\n addresses: `${occEndpoint}:baseSiteId/users/:user/addresses`,\n\n /**\n * Route for the call to get the payment details for the current user\n */\n payments: `${occEndpoint}:baseSiteId/users/:user/paymentDetails`,\n\n /**\n * Route for the call to get execute the address verification for the current user\n */\n addressVerification: `${occEndpoint}:baseSiteId/users/:user/addresses/verification`,\n\n /**\n * CMS Calls *******************************************************************************************************\n */\n\n /**\n * Route for the call to get the page data (basic page data & slots with components) for the current page\n */\n pages: `${occEndpoint}:baseSiteId/cms/pages`,\n\n /**\n * Route for the call to get the component data (spartacus does this call with aggregated component Uid's)\n */\n components: `${occEndpoint}:baseSiteId/cms/components`,\n\n /**\n * Product Calls ***************************************************************************************************\n */\n\n /**\n * Route for the call to get the product references for the current product (works on product detail page)\n */\n productReferences: `${occEndpoint}:baseSiteId/products/:productCode/references`,\n\n /**\n * Route for the call to get the product references for the current product (works on product detail page)\n */\n productReviews: `${occEndpoint}:baseSiteId/products/:productCode/reviews`,\n\n /**\n * Route for the call to search for products and return a productSearchPage Object\n */\n productSearch: `${occEndpoint}:baseSiteId/products/search`,\n\n /**\n * Route for the call to search for text based product suggestions\n */\n searchSuggestions: `${occEndpoint}:baseSiteId/products/suggestions`,\n\n /**\n * Route for the call to load the product details\n */\n product: `${occEndpoint}:baseSiteId/products/:productCode`,\n\n /**\n * Cart Calls ******************************************************************************************************\n */\n /**\n * Route for the call to load the carts for a user. The returned array can contain multiple (normal, wishlist, selective) carts.\n */\n carts: `${occEndpoint}:baseSiteId/${(cartEndpoints.carts as string).split('?')[0]}`.replace('${userId}', ':userId'),\n\n /**\n * Route for the call to load the cart data for a certain cartId\n */\n cart: `${occEndpoint}:baseSiteId/${(cartEndpoints.cart as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to add an entry to cart\n */\n addEntries: `${occEndpoint}:baseSiteId/${(cartEndpoints.addEntries as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to update an entry in the cart\n */\n updateEntries: `${occEndpoint}:baseSiteId/${(cartEndpoints.updateEntries as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId')\n .replace('${entryNumber}', ':entryNumber'),\n\n /**\n * Route for the call to remove an entry from the cart\n */\n removeEntries: `${occEndpoint}:baseSiteId/${(cartEndpoints.removeEntries as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId')\n .replace('${entryNumber}', ':entryNumber'),\n\n /**\n * Route for the call to delete a cart\n */\n deleteCart: `${occEndpoint}:baseSiteId/${(cartEndpoints.deleteCart as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to set an email on the cart (needed for guest checkout)\n */\n addEmail: `${occEndpoint}:baseSiteId/${(cartEndpoints.addEmail as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to add a voucher on the cart\n */\n cartVoucher: `${occEndpoint}:baseSiteId/${(cartEndpoints.cartVoucher as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to remove a voucher from the cart\n */\n cartVoucherRemove: `${occEndpoint}:baseSiteId/${(cartEndpoints.cartVoucher as string).split('?')[0]}/:voucherCode`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to validate the cart\n */\n validate: `${occEndpoint}:baseSiteId/${(cartEndpoints.validate as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to save a cart as wishlist cart for user logging in and not having a wishlist cart yet\n */\n saveCart: `${occEndpoint}:baseSiteId${(cartEndpoints.saveCart as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'), // Note: The saveCart endpoint from the Spartacus Core starts with a \"/\"\n\n /**\n * Checkout Calls **************************************************************************************************\n */\n\n /**\n * Route for the call to set a delivery address on the cart during checkout\n */\n setDeliveryAddress: `${occEndpoint}:baseSiteId/${(checkoutEndpoints.setDeliveryAddress as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to create a new delivery address on the cart during checkout\n */\n createDeliveryAddress: `${occEndpoint}:baseSiteId/${\n (checkoutEndpoints.createDeliveryAddress as string).split('?')[0]\n }`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to remove a delivery address on the cart during checkout\n */\n removeDeliveryAddress: `${occEndpoint}:baseSiteId/${\n (checkoutEndpoints.removeDeliveryAddress as string).split('?')[0]\n }`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to set a delivery mode on the cart during checkout\n */\n deliveryMode: `${occEndpoint}:baseSiteId/${(checkoutEndpoints.deliveryMode as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to get all available delivery modes\n */\n deliveryModes: `${occEndpoint}:baseSiteId/${(checkoutEndpoints.deliveryModes as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to get all available card types for payment\n */\n cardTypes: `${occEndpoint}:baseSiteId/${(checkoutEndpoints.cardTypes as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to get the payment provider sub info when using an integrated payment provider (default spartacus)\n */\n paymentProviderSubInfo: `${occEndpoint}:baseSiteId/${\n (checkoutEndpoints.paymentProviderSubInfo as string).split('?')[0]\n }`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to create a new payment method\n */\n createPaymentDetails: `${occEndpoint}:baseSiteId/${\n (checkoutEndpoints.createPaymentDetails as string).split('?')[0]\n }`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to set an existing payment method on the cart\n */\n setCartPaymentDetails: `${occEndpoint}:baseSiteId/${\n (checkoutEndpoints.setCartPaymentDetails as string).split('?')[0]\n }`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to get the mock sop payment response (html page)\n */\n sopMockProcess: `${environment.backend.occ?.baseUrl}/acceleratorservices/sop-mock/process`,\n\n /**\n * Order Calls *****************************************************************************************************\n */\n\n /**\n * Route for the call to place the order\n */\n placeOrder: `${occEndpoint}:baseSiteId/${(orderEndpoints.placeOrder as string).split('?')[0]}`.replace(\n '${userId}',\n ':userId'\n ),\n\n /**\n * Route for the call to load the orders for a user\n */\n orderHistory: `${occEndpoint}:baseSiteId/${(orderEndpoints.orderHistory as string).split('?')[0]}`.replace(\n '${userId}',\n ':userId'\n ),\n\n /**\n * Route for the call to load the order details for an order\n */\n orderDetail: `${occEndpoint}:baseSiteId/${(orderEndpoints.orderDetail as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${orderId}', ':orderId'),\n\n /**\n * Route for the call to cancel an order\n */\n cancelOrder: `${occEndpoint}:baseSiteId/${(orderEndpoints.cancelOrder as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${orderId}', ':orderId'),\n\n /**\n * Route for the call to return an order\n */\n returnOrder: `${occEndpoint}:baseSiteId/${(orderEndpoints.returnOrder as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${orderId}', ':orderId'),\n\n /**\n * Route for the call to load the order returns\n */\n orderReturns: `${occEndpoint}:baseSiteId/${(orderEndpoints.orderReturns as string).split('?')[0]}`.replace(\n '${userId}',\n ':userId'\n ),\n\n /**\n * Route for the call to load the the order return details\n */\n orderReturnDetail: `${occEndpoint}:baseSiteId/${(orderEndpoints.orderReturnDetail as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${returnRequestCode}', ':returnRequestCode'),\n\n /**\n * Route for the call to cancel an order return\n */\n cancelReturn: `${occEndpoint}:baseSiteId/${(orderEndpoints.cancelReturn as string).split('?')[0]}`\n .replace('${userId}', ':userId')\n .replace('${returnRequestCode}', ':returnRequestCode'),\n\n /**\n * Account Calls ***************************************************************************************************\n */\n\n /**\n * Route for the call to restore a saved cart\n */\n restoreSavedCart: `${occEndpoint}:baseSideId/${savedCartEndpoints?.restoreSavedCart}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to clone a saved cart\n */\n cloneSavedCart: `${occEndpoint}:baseSideId/${(savedCartEndpoints?.cloneSavedCart as string).split('?')}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to get a saved cart\n */\n savedCart: `${occEndpoint}:baseSideId/${savedCartEndpoints?.savedCart}`\n .replace('${userId}', ':userId')\n .replace('${cartId}', ':cartId'),\n\n /**\n * Route for the call to change / delete an address\n */\n addressDetail: `${occEndpoint}:baseSideId/${userEndpoints?.addressDetail}`\n .replace('${userId}', ':userId')\n .replace('${addressId}', ':addressId'),\n\n /**\n * Route for the call to delete an payment type\n */\n paymentDetail: `${occEndpoint}:baseSiteId/${userEndpoints?.paymentDetail}`\n .replace('${userId}', ':userId')\n .replace('${paymentDetailId}', ':paymentDetailId'),\n\n /**\n * Route for the call to update the user password\n */\n userUpdatePassword: `${occEndpoint}:baseSiteId/${userProfileEndpoints?.userUpdatePassword}`.replace(\n '${userId}',\n ':userId'\n ),\n\n /**\n * Route for the call to update the user id (email)\n */\n userUpdateLoginId: `${occEndpoint}:baseSiteId/${userProfileEndpoints?.userUpdateLoginId}`.replace(\n '${userId}',\n ':userId'\n ),\n\n /**\n * Route for the call to delete a previously given consent\n */\n consentDetail: `${occEndpoint}:baseSiteId/${userEndpoints?.consentDetail}`\n .replace('${userId}', ':userId')\n .replace('${consentId}', ':consentId'),\n\n /**\n * Route for the call to get all consents of a user\n */\n consents: `${occEndpoint}:baseSiteId/${userEndpoints?.consents}`.replace('${userId}', ':userId'),\n\n /**\n * Route for the call to get all consents of a user\n */\n anonymousConsents: `${occEndpoint}:baseSiteId/${\n (userEndpoints?.anonymousConsentTemplates as string).split('?')[0]\n }}`,\n\n /**\n * Route for the call to get the notification preferences of a user\n */\n notificationPreference: `${occEndpoint}:baseSiteId/${userEndpoints?.notificationPreference}`.replace(\n '${userId}',\n ':userId'\n ),\n\n /**\n * Store Finder ****************************************************************************************************\n */\n\n /**\n * Route for the call to get the number of stores\n */\n storescounts: `${occEndpoint}:baseSiteId/${(storeFinderEndpoints.storescounts as string).split('?')[0]}`,\n\n /**\n * Route for the call to get the stores\n */\n stores: `${occEndpoint}:baseSiteId/${(storeFinderEndpoints.stores as string).split('?')[0]}`,\n\n /**\n * Route for the call to get the store details\n */\n store: `${occEndpoint}:baseSiteId/${(storeFinderEndpoints.store as string).split('?')[0]}`.replace(\n '${storeId}',\n ':storeId'\n ),\n };\n}\n","import { Occ } from '@spartacus/core';\n\nexport const createCountry = (additionalData?: Occ.Country): Occ.Country => {\n return {\n isocode: 'CH',\n name: 'Schweiz',\n ...additionalData,\n };\n};\n\nexport const countryList = (): Occ.CountryList => {\n return {\n countries: [\n createCountry({\n isocode: 'CH',\n name: 'Switzerland',\n }),\n createCountry({\n isocode: 'DE',\n name: 'Germany',\n }),\n createCountry({\n isocode: 'FR',\n name: 'France',\n }),\n createCountry({\n isocode: 'IT',\n name: 'Italy',\n }),\n ],\n };\n};\n","import { Occ } from '@spartacus/core';\n\nexport const createCurrency = (additionalData?: Occ.Currency): Occ.Currency => {\n return {\n active: true,\n isocode: 'USD',\n name: 'US Dollar',\n symbol: '$',\n ...additionalData,\n };\n};\n\nexport const currencyList = (): Occ.CurrencyList => {\n return {\n currencies: [\n createCurrency(),\n createCurrency({\n isocode: 'EUR',\n name: 'Euro',\n symbol: '€',\n }),\n createCurrency({\n isocode: 'CHF',\n name: 'Schweizer Franken',\n symbol: 'CHF',\n }),\n ],\n };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\n\nexport const createPagination = (additionalData?: Occ.Pagination): Occ.Pagination => {\n return {\n count: 10,\n page: 1,\n totalCount: 10,\n totalPages: 1,\n ...additionalData,\n };\n};\n\nexport const createPaginationModel = (additionalData?: Occ.PaginationModel): Occ.PaginationModel => {\n const totalResults = faker.number.int({ min: 1, max: 999 });\n const pageSize = 12;\n\n return {\n currentPage: 1,\n pageSize,\n sort: '',\n totalPages: totalResults / pageSize + 1,\n totalResults,\n ...additionalData,\n };\n};\n","import { Occ } from '@spartacus/core';\n\nexport const createRegion = (additionalData?: Occ.Region): Occ.Region => {\n return {\n countryIso: 'CH',\n isocode: 'SG',\n isocodeShort: 'SG',\n name: 'St. Gallen',\n ...additionalData,\n };\n};\n\nexport const regionList = (): Occ.RegionList => {\n return {\n regions: [\n createRegion(),\n createRegion({\n isocode: 'ZH',\n isocodeShort: 'ZH',\n name: 'Zürich',\n }),\n createRegion({\n isocode: 'BE',\n isocodeShort: 'BE',\n name: 'Bern',\n }),\n createRegion({\n isocode: 'TG',\n isocodeShort: 'TG',\n name: 'Thurgau',\n }),\n ],\n };\n};\n","import { Occ, SortModel } from '@spartacus/core';\n\nexport const createSort = (additionalData?: Occ.Sort): Occ.Sort => {\n return {\n asc: true,\n code: 'name',\n ...additionalData,\n };\n};\n\nexport const createSortModel = (additionalData?: SortModel): Occ.SortModel => {\n return {\n code: 'name',\n name: 'Name',\n selected: false,\n ...additionalData,\n };\n};\n","import { Occ } from '@spartacus/core';\n\nexport const createTitle = (additionalData?: Occ.Title): Occ.Title => {\n return {\n code: 'mr',\n name: 'Mr',\n ...additionalData,\n };\n};\n\nexport const titleList = (): Occ.TitleList => {\n return {\n titles: [\n createTitle({\n code: 'mr',\n name: 'Mr.',\n }),\n createTitle({\n code: 'mrs',\n name: 'Mrs.',\n }),\n createTitle({\n code: 'div',\n name: 'Divers',\n }),\n ],\n };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { createCountry, createRegion } from '../general';\n\nexport const createAddress = (additionalData?: Occ.Address): Occ.Address => {\n const firstName = faker.person.firstName();\n const lastName = faker.person.lastName();\n\n return {\n id: faker.string.uuid(),\n title: 'Mr.',\n titleCode: 'mr',\n email: faker.internet.email({ firstName, lastName }),\n firstName,\n lastName,\n companyName: faker.company.name(),\n line1: faker.location.streetAddress(),\n line2: '',\n postalCode: faker.location.zipCode('####'),\n town: faker.location.city(),\n country: createCountry(),\n region: createRegion(),\n cellphone: faker.phone.number(),\n defaultAddress: false,\n shippingAddress: true,\n formattedAddress: '',\n phone: faker.phone.number(),\n visibleInAddressBook: true,\n ...additionalData,\n };\n};\n\nexport const addressList = (): Occ.AddressList => {\n return {\n addresses: [\n createAddress({\n shippingAddress: true,\n }),\n createAddress({\n shippingAddress: false,\n }),\n ],\n };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { createPagination } from '../general/pagination';\nimport { createSort } from '../general/sort';\n\nexport const createCustomerCoupon = (additionalData?: Occ.CustomerCoupon): Occ.CustomerCoupon => {\n return {\n couponId: faker.string.numeric(6),\n name: 'Free Delivery Coupon',\n startDate: faker.date.past().toDateString(),\n endDate: faker.date.future().toDateString(),\n status: 'Effective',\n description: faker.lorem.sentences(2),\n notificationOn: false,\n allProductsApplicable: true,\n ...additionalData,\n };\n};\n\nexport const customerCouponSearchResult = (\n additionalData?: Occ.CustomerCouponSearchResult\n): Occ.CustomerCouponSearchResult => {\n return {\n coupons: [createCustomerCoupon()],\n pagination: createPagination(),\n sorts: [\n createSort({\n code: 'startdata',\n }),\n ],\n ...additionalData,\n };\n};\n","import { faker } from '@faker-js/faker';\nimport { NotificationPreference, NotificationPreferenceList } from '@spartacus/core';\n\nexport const createNotificationPreference = (additionalData?: NotificationPreference): NotificationPreference => {\n return {\n channel: 'EMAIL',\n enabled: true,\n value: faker.internet.email(),\n visible: true,\n ...additionalData,\n };\n};\n\nexport const notificationPreferenceList = (): NotificationPreferenceList => {\n return {\n preferences: [\n createNotificationPreference(),\n createNotificationPreference({\n channel: 'SITE_MESSAGE',\n enabled: false,\n visible: true,\n value: '',\n }),\n ],\n };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { createAddress } from './addresses';\n\nexport const DEFAULT_PAYMENT_ID: string = '8796126183466';\n\nexport const createCardType = (additionalData?: Occ.CardType): Occ.CardType => {\n return {\n code: 'maestro',\n name: 'Maestro',\n ...additionalData,\n };\n};\n\nexport const createPaymentDetails = (additionalData?: Occ.PaymentDetails): Occ.PaymentDetails => {\n return {\n accountHolderName: faker.person.fullName(),\n billingAddress: createAddress({ shippingAddress: false }),\n cardNumber: `************${faker.string.numeric(4)}`,\n cardType: createCardType(),\n defaultPayment: false,\n expiryMonth: faker.number.int({ min: 1, max: 12 }).toString(),\n expiryYear: faker.number.int({ min: 2030, max: 2050 }).toString(),\n id: faker.string.numeric(9),\n saved: true,\n subscriptionId: faker.string.uuid(),\n ...additionalData,\n };\n};\n\nexport const paymentDetailsList = (): Occ.PaymentDetailsList => {\n return {\n payments: [\n createPaymentDetails({\n defaultPayment: true,\n id: DEFAULT_PAYMENT_ID,\n }),\n createPaymentDetails({\n cardType: createCardType({\n code: 'visa',\n name: 'Visa',\n }),\n }),\n createPaymentDetails({\n cardType: createCardType({\n code: 'amex',\n name: 'American Express',\n }),\n }),\n createPaymentDetails({\n cardType: createCardType({\n code: 'diners',\n name: \"Diner's Club\",\n }),\n }),\n ],\n };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { PriceModifier } from '../../types';\n\nexport const createPrice = (additionalData?: Occ.Price, modifier?: PriceModifier): Occ.Price => {\n const valueMin = Number.isInteger(modifier?.valueMin) ? modifier?.valueMin : faker.number.int({ min: 1, max: 9999 });\n const valueMax = Number.isInteger(modifier?.valueMax)\n ? modifier?.valueMax\n : faker.number.int({ min: valueMin, max: 9999 });\n const value = faker.number.int({ min: valueMin, max: valueMax });\n\n return {\n currencyIso: 'CHF',\n formattedValue: faker.commerce.price({ min: valueMin, max: valueMax, dec: 2, symbol: 'CHF' }),\n maxQuantity: undefined,\n minQuantity: undefined,\n priceType: Occ.PriceType.BUY,\n value,\n ...additionalData,\n };\n};\n\nexport const createPriceRange = (additionalData?: Occ.PriceRange): Occ.PriceRange => {\n const minPrice = faker.number.int({ min: 1, max: 999 });\n const maxPrice = faker.number.int({ min: minPrice, max: 9999 });\n\n return {\n minPrice: createPrice({\n value: minPrice,\n formattedValue: faker.commerce.price({ min: minPrice, max: minPrice, dec: 2, symbol: 'CHF' }),\n }),\n maxPrice: createPrice({\n value: maxPrice,\n formattedValue: faker.commerce.price({ min: maxPrice, max: maxPrice, dec: 2, symbol: 'CHF' }),\n }),\n ...additionalData,\n };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { createPrice } from './price';\n\nexport const createDeliveryMode = (additionalData?: Occ.DeliveryMode): Occ.DeliveryMode => {\n return {\n code: faker.string.uuid(),\n name: faker.lorem.words(3),\n description: faker.lorem.sentences(1),\n deliveryCost: createPrice(),\n ...additionalData,\n };\n};\n","import { faker } from '@faker-js/faker';\nimport { Occ } from '@spartacus/core';\nimport { ImageModifier } from '../../types';\n\nexport const image = (additionalData?: Occ.Image, modifier?: ImageModifier): Occ.Image => {\n return {\n altText: faker.lorem.words(5),\n format: 'picture',\n galleryIndex: undefined,\n