@reactionary/commercetools 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +11 -0
  2. package/capabilities/cart.capability.js +324 -0
  3. package/capabilities/category.capability.js +198 -0
  4. package/capabilities/checkout.capability.js +374 -0
  5. package/capabilities/identity.capability.js +95 -0
  6. package/capabilities/index.js +15 -0
  7. package/capabilities/inventory.capability.js +63 -0
  8. package/capabilities/order-search.capability.js +106 -0
  9. package/capabilities/order.capability.js +48 -0
  10. package/capabilities/price.capability.js +114 -0
  11. package/capabilities/product-associations.capability.js +120 -0
  12. package/capabilities/product-list.capability.js +393 -0
  13. package/capabilities/product-reviews.capability.js +193 -0
  14. package/capabilities/product-search.capability.js +297 -0
  15. package/capabilities/product.capability.js +103 -0
  16. package/capabilities/profile.capability.js +337 -0
  17. package/capabilities/store.capability.js +51 -0
  18. package/core/capability-descriptors.js +274 -0
  19. package/core/client.js +318 -0
  20. package/core/initialize.js +47 -0
  21. package/core/initialize.types.js +8 -0
  22. package/core/token-cache.js +36 -0
  23. package/factories/cart/cart.factory.js +110 -0
  24. package/factories/category/category.factory.js +40 -0
  25. package/factories/checkout/checkout-initializer-overrides.example.js +67 -0
  26. package/factories/checkout/checkout.factory.js +235 -0
  27. package/factories/identity/identity.factory.js +14 -0
  28. package/factories/inventory/inventory.factory.js +30 -0
  29. package/factories/order/order.factory.js +114 -0
  30. package/factories/order-search/order-search.factory.js +68 -0
  31. package/factories/price/price.factory.js +52 -0
  32. package/factories/product/product-capability-custom-method-only.example.js +38 -0
  33. package/factories/product/product-capability-schema-signature-extension.example.js +46 -0
  34. package/factories/product/product-factory-baseline.example.js +10 -0
  35. package/factories/product/product-factory-schema-and-parse-extension.example.js +25 -0
  36. package/factories/product/product-factory-schema-extension.example.js +18 -0
  37. package/factories/product/product-initializer-factory-extension.example.js +33 -0
  38. package/factories/product/product.factory.js +151 -0
  39. package/factories/product/utils.example.js +8 -0
  40. package/factories/product-associations/product-associations.factory.js +63 -0
  41. package/factories/product-list/product-list.factory.js +65 -0
  42. package/factories/product-reviews/product-reviews.factory.js +42 -0
  43. package/factories/product-search/product-search.factory.js +114 -0
  44. package/factories/profile/profile.factory.js +62 -0
  45. package/factories/store/store.factory.js +29 -0
  46. package/index.js +28 -0
  47. package/package.json +17 -0
  48. package/schema/capabilities.schema.js +46 -0
  49. package/schema/commercetools.schema.js +30 -0
  50. package/schema/configuration.schema.js +19 -0
  51. package/schema/session.schema.js +9 -0
  52. package/src/capabilities/cart.capability.d.ts +34 -0
  53. package/src/capabilities/category.capability.d.ts +47 -0
  54. package/src/capabilities/checkout.capability.d.ts +39 -0
  55. package/src/capabilities/identity.capability.d.ts +14 -0
  56. package/src/capabilities/index.d.ts +15 -0
  57. package/src/capabilities/inventory.capability.d.ts +13 -0
  58. package/src/capabilities/order-search.capability.d.ts +13 -0
  59. package/src/capabilities/order.capability.d.ts +13 -0
  60. package/src/capabilities/price.capability.d.ts +18 -0
  61. package/src/capabilities/product-associations.capability.d.ts +17 -0
  62. package/src/capabilities/product-list.capability.d.ts +29 -0
  63. package/src/capabilities/product-reviews.capability.d.ts +18 -0
  64. package/src/capabilities/product-search.capability.d.ts +82 -0
  65. package/src/capabilities/product.capability.d.ts +17 -0
  66. package/src/capabilities/profile.capability.d.ts +30 -0
  67. package/src/capabilities/store.capability.d.ts +13 -0
  68. package/src/core/capability-descriptors.d.ts +16 -0
  69. package/src/core/client.d.ts +55 -0
  70. package/src/core/initialize.d.ts +5 -0
  71. package/src/core/initialize.types.d.ts +118 -0
  72. package/src/core/token-cache.d.ts +9 -0
  73. package/src/factories/cart/cart.factory.d.ts +14 -0
  74. package/src/factories/category/category.factory.d.ts +11 -0
  75. package/src/factories/checkout/checkout-initializer-overrides.example.d.ts +1 -0
  76. package/src/factories/checkout/checkout.factory.d.ts +18 -0
  77. package/src/factories/identity/identity.factory.d.ts +8 -0
  78. package/src/factories/inventory/inventory.factory.d.ts +9 -0
  79. package/src/factories/order/order.factory.d.ts +9 -0
  80. package/src/factories/order-search/order-search.factory.d.ts +11 -0
  81. package/src/factories/price/price.factory.d.ts +11 -0
  82. package/src/factories/product/product-capability-custom-method-only.example.d.ts +1 -0
  83. package/src/factories/product/product-capability-schema-signature-extension.example.d.ts +1 -0
  84. package/src/factories/product/product-factory-baseline.example.d.ts +1 -0
  85. package/src/factories/product/product-factory-schema-and-parse-extension.example.d.ts +1 -0
  86. package/src/factories/product/product-factory-schema-extension.example.d.ts +1 -0
  87. package/src/factories/product/product-initializer-factory-extension.example.d.ts +1 -0
  88. package/src/factories/product/product.factory.d.ts +18 -0
  89. package/src/factories/product/utils.example.d.ts +4 -0
  90. package/src/factories/product-associations/product-associations.factory.d.ts +15 -0
  91. package/src/factories/product-list/product-list.factory.d.ts +17 -0
  92. package/src/factories/product-reviews/product-reviews.factory.d.ts +14 -0
  93. package/src/factories/product-search/product-search.factory.d.ts +13 -0
  94. package/src/factories/profile/profile.factory.d.ts +11 -0
  95. package/src/factories/store/store.factory.d.ts +9 -0
  96. package/src/index.d.ts +28 -0
  97. package/src/schema/capabilities.schema.d.ts +104 -0
  98. package/src/schema/commercetools.schema.d.ts +30 -0
  99. package/src/schema/configuration.schema.d.ts +30 -0
  100. package/src/schema/session.schema.d.ts +7 -0
  101. package/src/test/client-builder-merge-extensions.example.d.ts +1 -0
  102. package/src/test/test-utils.d.ts +27 -0
  103. package/test/client-builder-merge-extensions.example.js +94 -0
  104. package/test/test-utils.js +27 -0
@@ -0,0 +1,9 @@
1
+ import * as z from "zod";
2
+ const CommercetoolsSessionSchema = z.looseObject({
3
+ token: z.string().default(""),
4
+ refreshToken: z.string().optional(),
5
+ expirationTime: z.number().default(0)
6
+ });
7
+ export {
8
+ CommercetoolsSessionSchema
9
+ };
@@ -0,0 +1,34 @@
1
+ import { type CartFactory, type CartFactoryCartOutput, type CartFactoryWithOutput, CartCapability } from '@reactionary/core';
2
+ import type { CartMutationItemAdd, CartMutationItemQuantityChange, CartMutationItemRemove, CartQueryById, CartMutationApplyCoupon, CartMutationDeleteCart, CartMutationRemoveCoupon, CartMutationChangeCurrency, RequestContext, CartIdentifier, Cache, Result, NotFoundError } from '@reactionary/core';
3
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
4
+ import type { MyCartUpdateAction } from '@commercetools/platform-sdk';
5
+ import type { CommercetoolsAPI } from '../core/client.js';
6
+ import type { CommercetoolsCartFactory } from '../factories/cart/cart.factory.js';
7
+ export declare class CommercetoolsCartCapability<TFactory extends CartFactory = CommercetoolsCartFactory> extends CartCapability<CartFactoryCartOutput<TFactory>, CartIdentifier> {
8
+ protected config: CommercetoolsConfiguration;
9
+ protected commercetools: CommercetoolsAPI;
10
+ protected expandedCartFields: string[];
11
+ protected factory: CartFactoryWithOutput<TFactory>;
12
+ constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: CartFactoryWithOutput<TFactory>);
13
+ getById(payload: CartQueryById): Promise<Result<CartFactoryCartOutput<TFactory>, NotFoundError>>;
14
+ add(payload: CartMutationItemAdd): Promise<Result<CartFactoryCartOutput<TFactory>>>;
15
+ remove(payload: CartMutationItemRemove): Promise<Result<CartFactoryCartOutput<TFactory>>>;
16
+ changeQuantity(payload: CartMutationItemQuantityChange): Promise<Result<CartFactoryCartOutput<TFactory>>>;
17
+ getActiveCartId(): Promise<Result<CartIdentifier, NotFoundError>>;
18
+ deleteCart(payload: CartMutationDeleteCart): Promise<Result<void>>;
19
+ applyCouponCode(payload: CartMutationApplyCoupon): Promise<Result<CartFactoryCartOutput<TFactory>>>;
20
+ removeCouponCode(payload: CartMutationRemoveCoupon): Promise<Result<CartFactoryCartOutput<TFactory>>>;
21
+ changeCurrency(payload: CartMutationChangeCurrency): Promise<Result<CartFactoryCartOutput<TFactory>>>;
22
+ protected createCart(): Promise<CartIdentifier>;
23
+ protected applyActions(cart: CartIdentifier, actions: MyCartUpdateAction[]): Promise<CartFactoryCartOutput<TFactory>>;
24
+ /**
25
+ * Creates a new Commercetools client, optionally upgrading it from Anonymous mode to Guest mode.
26
+ * For now, any Query or Mutation will require an upgrade to Guest mode.
27
+ * In the future, maybe we can delay this upgrade until we actually need it.
28
+ */
29
+ protected getClient(): Promise<{
30
+ carts: import("@commercetools/platform-sdk").ByProjectKeyMeCartsRequestBuilder;
31
+ activeCart: import("@commercetools/platform-sdk").ByProjectKeyMeActiveCartRequestBuilder;
32
+ orders: import("@commercetools/platform-sdk").ByProjectKeyMeOrdersRequestBuilder;
33
+ }>;
34
+ }
@@ -0,0 +1,47 @@
1
+ import { type CategoryFactory, type CategoryFactoryCategoryOutput, type CategoryFactoryWithOutput, CategoryCapability } from '@reactionary/core';
2
+ import type { CategoryQueryById, CategoryQueryBySlug, CategoryQueryForBreadcrumb, CategoryQueryForChildCategories, CategoryQueryForTopCategories, RequestContext, Cache, CategoryPaginatedResult, Result, NotFoundError } from '@reactionary/core';
3
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
4
+ import type { ByProjectKeyCategoriesRequestBuilder } from '@commercetools/platform-sdk';
5
+ import type { CommercetoolsAPI } from '../core/client.js';
6
+ import type { CommercetoolsCategoryFactory } from '../factories/category/category.factory.js';
7
+ export declare class CommercetoolsCategoryCapability<TFactory extends CategoryFactory = CommercetoolsCategoryFactory> extends CategoryCapability<CategoryFactoryCategoryOutput<TFactory>, CategoryPaginatedResult> {
8
+ protected config: CommercetoolsConfiguration;
9
+ protected commercetools: CommercetoolsAPI;
10
+ protected factory: CategoryFactoryWithOutput<TFactory>;
11
+ constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: CategoryFactoryWithOutput<TFactory>);
12
+ protected getClient(): Promise<ByProjectKeyCategoriesRequestBuilder>;
13
+ /**
14
+ * Look it up by the category ID (key in commercetools), and if not there, return a placeholder.
15
+ */
16
+ getById(payload: CategoryQueryById): Promise<Result<CategoryFactoryCategoryOutput<TFactory>, NotFoundError>>;
17
+ /**
18
+ * Resolve the category by slug, in the users current locale.
19
+ */
20
+ getBySlug(payload: CategoryQueryBySlug): Promise<Result<CategoryFactoryCategoryOutput<TFactory>, NotFoundError>>;
21
+ /**
22
+ * Returns the breadcrumb path to the category, i.e. all parents up to the root.
23
+ * The returned order is from root to leaf.
24
+ */
25
+ getBreadcrumbPathToCategory(payload: CategoryQueryForBreadcrumb): Promise<Result<Array<CategoryFactoryCategoryOutput<TFactory>>>>;
26
+ /**
27
+ * Returns a page of child categories for the given parent category ID.
28
+ * You must provide the pagination options to control the size of the result set.
29
+ * If you expect your frontend will load many many categories, consider adding a "load more" button, or lazy load the next page.
30
+ *
31
+ * This is cached by ID + page number + page size + locale + store
32
+ */
33
+ findChildCategories(payload: CategoryQueryForChildCategories): Promise<import("@reactionary/core").Ok<ReturnType<TFactory["parseCategoryPaginatedResult"]>> | import("@reactionary/core").Ok<{
34
+ items: never[];
35
+ pageNumber: number;
36
+ pageSize: number;
37
+ totalCount: number;
38
+ totalPages: number;
39
+ }>>;
40
+ findTopCategories(payload: CategoryQueryForTopCategories): Promise<import("@reactionary/core").Ok<ReturnType<TFactory["parseCategoryPaginatedResult"]>> | import("@reactionary/core").Ok<{
41
+ items: never[];
42
+ pageNumber: number;
43
+ pageSize: number;
44
+ totalCount: number;
45
+ totalPages: number;
46
+ }>>;
47
+ }
@@ -0,0 +1,39 @@
1
+ import type { MyCartUpdateAction } from '@commercetools/platform-sdk';
2
+ import type { Cache, CheckoutFactory, CheckoutFactoryCheckoutOutput, CheckoutFactoryPaymentMethodOutput, CheckoutFactoryShippingMethodOutput, CheckoutFactoryWithOutput, CheckoutIdentifier, CheckoutMutationAddPaymentInstruction, CheckoutMutationFinalizeCheckout, CheckoutMutationInitiateCheckout, CheckoutMutationRemovePaymentInstruction, CheckoutMutationSetShippingAddress, CheckoutMutationSetShippingInstruction, CheckoutQueryById, CheckoutQueryForAvailablePaymentMethods, CheckoutQueryForAvailableShippingMethods, NotFoundError, PaymentMethod, RequestContext, Result } from '@reactionary/core';
3
+ import { CheckoutCapability } from '@reactionary/core';
4
+ import type { CommercetoolsAPI } from '../core/client.js';
5
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
6
+ import type { CommercetoolsCheckoutFactory } from '../factories/checkout/checkout.factory.js';
7
+ export declare class CheckoutNotReadyForFinalizationError extends Error {
8
+ checkoutIdentifier: CheckoutIdentifier;
9
+ constructor(checkoutIdentifier: CheckoutIdentifier);
10
+ }
11
+ export declare class CommercetoolsCheckoutCapability<TFactory extends CheckoutFactory = CommercetoolsCheckoutFactory> extends CheckoutCapability<CheckoutFactoryCheckoutOutput<TFactory>, CheckoutFactoryShippingMethodOutput<TFactory>, CheckoutFactoryPaymentMethodOutput<TFactory>> {
12
+ protected config: CommercetoolsConfiguration;
13
+ protected commercetools: CommercetoolsAPI;
14
+ protected factory: CheckoutFactoryWithOutput<TFactory>;
15
+ constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: CheckoutFactoryWithOutput<TFactory>);
16
+ protected getClient(): Promise<{
17
+ payments: import("@commercetools/platform-sdk").ByProjectKeyMePaymentsRequestBuilder;
18
+ carts: import("@commercetools/platform-sdk").ByProjectKeyMeCartsRequestBuilder;
19
+ shippingMethods: import("@commercetools/platform-sdk").ByProjectKeyShippingMethodsRequestBuilder;
20
+ orders: import("@commercetools/platform-sdk").ByProjectKeyMeOrdersRequestBuilder;
21
+ }>;
22
+ initiateCheckoutForCart(payload: CheckoutMutationInitiateCheckout): Promise<Result<CheckoutFactoryCheckoutOutput<TFactory>>>;
23
+ getById(payload: CheckoutQueryById): Promise<Result<CheckoutFactoryCheckoutOutput<TFactory>, NotFoundError>>;
24
+ setShippingAddress(payload: CheckoutMutationSetShippingAddress): Promise<Result<CheckoutFactoryCheckoutOutput<TFactory>>>;
25
+ getAvailableShippingMethods(payload: CheckoutQueryForAvailableShippingMethods): Promise<Result<CheckoutFactoryShippingMethodOutput<TFactory>[]>>;
26
+ getAvailablePaymentMethods(payload: CheckoutQueryForAvailablePaymentMethods): Promise<Result<CheckoutFactoryPaymentMethodOutput<TFactory>[]>>;
27
+ addPaymentInstruction(payload: CheckoutMutationAddPaymentInstruction): Promise<Result<CheckoutFactoryCheckoutOutput<TFactory>>>;
28
+ removePaymentInstruction(payload: CheckoutMutationRemovePaymentInstruction): Promise<Result<CheckoutFactoryCheckoutOutput<TFactory>>>;
29
+ setShippingInstruction(payload: CheckoutMutationSetShippingInstruction): Promise<Result<CheckoutFactoryCheckoutOutput<TFactory>>>;
30
+ finalizeCheckout(payload: CheckoutMutationFinalizeCheckout): Promise<Result<CheckoutFactoryCheckoutOutput<TFactory>>>;
31
+ protected applyActions(checkout: CheckoutIdentifier, actions: MyCartUpdateAction[]): Promise<CheckoutFactoryCheckoutOutput<TFactory>>;
32
+ /**
33
+ * Extension point, to allow filtering the options, or adding new ones, like invoicing for b2b.
34
+ *
35
+ * Usecase: Override this, if you need to change the payment options based on the request context.
36
+ * @returns
37
+ */
38
+ protected getStaticPaymentMethods(_checkout: CheckoutIdentifier): PaymentMethod[];
39
+ }
@@ -0,0 +1,14 @@
1
+ import { type IdentityFactory, type IdentityFactoryOutput, type IdentityFactoryWithOutput, type IdentityMutationLogin, type IdentityQuerySelf, type RequestContext, type Cache, IdentityCapability, type IdentityMutationRegister, type Result } from '@reactionary/core';
2
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
3
+ import type { CommercetoolsAPI } from '../core/client.js';
4
+ import type { CommercetoolsIdentityFactory } from '../factories/identity/identity.factory.js';
5
+ export declare class CommercetoolsIdentityCapability<TFactory extends IdentityFactory = CommercetoolsIdentityFactory> extends IdentityCapability<IdentityFactoryOutput<TFactory>> {
6
+ protected config: CommercetoolsConfiguration;
7
+ protected commercetools: CommercetoolsAPI;
8
+ protected factory: IdentityFactoryWithOutput<TFactory>;
9
+ constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: IdentityFactoryWithOutput<TFactory>);
10
+ getSelf(payload: IdentityQuerySelf): Promise<Result<IdentityFactoryOutput<TFactory>>>;
11
+ login(payload: IdentityMutationLogin): Promise<Result<IdentityFactoryOutput<TFactory>>>;
12
+ logout(payload: Record<string, never>): Promise<Result<IdentityFactoryOutput<TFactory>>>;
13
+ register(payload: IdentityMutationRegister): Promise<Result<IdentityFactoryOutput<TFactory>>>;
14
+ }
@@ -0,0 +1,15 @@
1
+ export * from './cart.capability.js';
2
+ export * from './category.capability.js';
3
+ export * from './identity.capability.js';
4
+ export * from './inventory.capability.js';
5
+ export * from './order-search.capability.js';
6
+ export * from './price.capability.js';
7
+ export * from './product-associations.capability.js';
8
+ export * from './product-list.capability.js';
9
+ export * from './product.capability.js';
10
+ export * from './product-reviews.capability.js';
11
+ export * from './profile.capability.js';
12
+ export * from './product-search.capability.js';
13
+ export * from './store.capability.js';
14
+ export * from './order.capability.js';
15
+ export * from './checkout.capability.js';
@@ -0,0 +1,13 @@
1
+ import type { InventoryFactory, InventoryFactoryOutput, InventoryFactoryWithOutput, RequestContext, Cache, InventoryQueryBySKU, Result, NotFoundError } from '@reactionary/core';
2
+ import { InventoryCapability } from '@reactionary/core';
3
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
4
+ import type { CommercetoolsAPI } from '../core/client.js';
5
+ import type { CommercetoolsInventoryFactory } from '../factories/inventory/inventory.factory.js';
6
+ export declare class CommercetoolsInventoryCapability<TFactory extends InventoryFactory = CommercetoolsInventoryFactory> extends InventoryCapability<InventoryFactoryOutput<TFactory>> {
7
+ protected config: CommercetoolsConfiguration;
8
+ protected commercetools: CommercetoolsAPI;
9
+ protected factory: InventoryFactoryWithOutput<TFactory>;
10
+ constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: InventoryFactoryWithOutput<TFactory>);
11
+ protected getClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyRequestBuilder>;
12
+ getBySKU(payload: InventoryQueryBySKU): Promise<Result<InventoryFactoryOutput<TFactory>, NotFoundError>>;
13
+ }
@@ -0,0 +1,13 @@
1
+ import type { RequestContext, Cache, OrderSearchFactory, OrderSearchFactoryOutput, OrderSearchFactoryWithOutput, OrderSearchQueryByTerm, Result } from '@reactionary/core';
2
+ import { OrderSearchCapability } from '@reactionary/core';
3
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
4
+ import type { CommercetoolsAPI } from '../core/client.js';
5
+ import type { CommercetoolsOrderSearchFactory } from '../factories/order-search/order-search.factory.js';
6
+ export declare class CommercetoolsOrderSearchCapability<TFactory extends OrderSearchFactory = CommercetoolsOrderSearchFactory> extends OrderSearchCapability<OrderSearchFactoryOutput<TFactory>> {
7
+ protected config: CommercetoolsConfiguration;
8
+ protected commercetools: CommercetoolsAPI;
9
+ protected factory: OrderSearchFactoryWithOutput<TFactory>;
10
+ constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: OrderSearchFactoryWithOutput<TFactory>);
11
+ protected getClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyMeOrdersRequestBuilder>;
12
+ queryByTerm(payload: OrderSearchQueryByTerm): Promise<Result<OrderSearchFactoryOutput<TFactory>>>;
13
+ }
@@ -0,0 +1,13 @@
1
+ import type { RequestContext, Cache, OrderFactory, OrderFactoryOutput, OrderFactoryWithOutput, OrderQueryById, Result, NotFoundError } from '@reactionary/core';
2
+ import { OrderCapability } from '@reactionary/core';
3
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
4
+ import type { CommercetoolsAPI } from '../core/client.js';
5
+ import type { CommercetoolsOrderFactory } from '../factories/order/order.factory.js';
6
+ export declare class CommercetoolsOrderCapability<TFactory extends OrderFactory = CommercetoolsOrderFactory> extends OrderCapability<OrderFactoryOutput<TFactory>> {
7
+ protected config: CommercetoolsConfiguration;
8
+ protected commercetools: CommercetoolsAPI;
9
+ protected factory: OrderFactoryWithOutput<TFactory>;
10
+ constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: OrderFactoryWithOutput<TFactory>);
11
+ protected getClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyMeOrdersRequestBuilder>;
12
+ getById(payload: OrderQueryById): Promise<Result<OrderFactoryOutput<TFactory>, NotFoundError>>;
13
+ }
@@ -0,0 +1,18 @@
1
+ import { PriceCapability, type PriceFactory, type PriceFactoryOutput, type PriceFactoryWithOutput } from '@reactionary/core';
2
+ import type { RequestContext, Cache, CustomerPriceQuery, ListPriceQuery, Result } from '@reactionary/core';
3
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
4
+ import type { CommercetoolsAPI } from '../core/client.js';
5
+ import type { CommercetoolsPriceFactory } from '../factories/price/price.factory.js';
6
+ export declare class CommercetoolsPriceCapability<TFactory extends PriceFactory = CommercetoolsPriceFactory> extends PriceCapability<PriceFactoryOutput<TFactory>> {
7
+ protected config: CommercetoolsConfiguration;
8
+ protected commercetools: CommercetoolsAPI;
9
+ protected factory: PriceFactoryWithOutput<TFactory>;
10
+ constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: PriceFactoryWithOutput<TFactory>);
11
+ getCustomerPrice(payload: CustomerPriceQuery): Promise<Result<PriceFactoryOutput<TFactory>>>;
12
+ getListPrice(payload: ListPriceQuery): Promise<Result<PriceFactoryOutput<TFactory>>>;
13
+ protected getClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyRequestBuilder>;
14
+ protected getChannels(): Promise<{
15
+ offer: string;
16
+ list: string;
17
+ }>;
18
+ }
@@ -0,0 +1,17 @@
1
+ import { type ProductAssociationsFactory, type ProductAssociationsFactoryOutput, type ProductAssociationsFactoryWithOutput, ProductAssociationsCapability } from '@reactionary/core';
2
+ import type { ProductIdentifier, ProductAssociationsGetAccessoriesQuery, ProductAssociationsGetSparepartsQuery, ProductAssociationsGetReplacementsQuery, Result, RequestContext, Cache } from '@reactionary/core';
3
+ import type { ProductProjection } from '@commercetools/platform-sdk';
4
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
5
+ import type { CommercetoolsAPI } from '../core/client.js';
6
+ import type { CommercetoolsProductAssociationsFactory } from '../factories/product-associations/product-associations.factory.js';
7
+ export declare class CommercetoolsProductAssociationsCapability<TFactory extends ProductAssociationsFactory = CommercetoolsProductAssociationsFactory> extends ProductAssociationsCapability<ProductAssociationsFactoryOutput<TFactory>> {
8
+ protected config: CommercetoolsConfiguration;
9
+ protected commercetools: CommercetoolsAPI;
10
+ protected factory: ProductAssociationsFactoryWithOutput<TFactory>;
11
+ constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: ProductAssociationsFactoryWithOutput<TFactory>);
12
+ protected getClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyRequestBuilder>;
13
+ protected fetchAssociatedProductsFor(productKey: ProductIdentifier, maxNumberOfAssociations: number, attributeName: string): Promise<ProductProjection[]>;
14
+ getAccessories(query: ProductAssociationsGetAccessoriesQuery): Promise<Result<ProductAssociationsFactoryOutput<TFactory>[]>>;
15
+ getSpareparts(query: ProductAssociationsGetSparepartsQuery): Promise<Result<ProductAssociationsFactoryOutput<TFactory>[]>>;
16
+ getReplacements(query: ProductAssociationsGetReplacementsQuery): Promise<Result<ProductAssociationsFactoryOutput<TFactory>[]>>;
17
+ }
@@ -0,0 +1,29 @@
1
+ import type { ShoppingList, ShoppingListLineItem } from '@commercetools/platform-sdk';
2
+ import type { Cache, ProductListFactory, ProductListFactoryItemOutput, ProductListFactoryItemPaginatedOutput, ProductListFactoryListOutput, ProductListFactoryListPaginatedOutput, ProductListFactoryWithOutput, ProductList, ProductListIdentifier, ProductListItem, ProductListItemMutationCreate, ProductListItemMutationDelete, ProductListItemMutationUpdate, ProductListItemsQuery, ProductListMutationCreate, ProductListMutationDelete, ProductListMutationUpdate, ProductListQuery, ProductListQueryById, RequestContext, Result } from '@reactionary/core';
3
+ import { ProductListCapability } from '@reactionary/core';
4
+ import type { CommercetoolsAPI } from '../core/client.js';
5
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
6
+ import type { CommercetoolsProductListFactory } from '../factories/product-list/product-list.factory.js';
7
+ export declare class CommercetoolsProductListCapability<TFactory extends ProductListFactory = CommercetoolsProductListFactory> extends ProductListCapability<ProductListFactoryListOutput<TFactory>, ProductListFactoryItemOutput<TFactory>, ProductListFactoryListPaginatedOutput<TFactory>, ProductListFactoryItemPaginatedOutput<TFactory>> {
8
+ protected config: CommercetoolsConfiguration;
9
+ protected commercetools: CommercetoolsAPI;
10
+ protected factory: ProductListFactoryWithOutput<TFactory>;
11
+ constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: ProductListFactoryWithOutput<TFactory>);
12
+ protected getClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyMeRequestBuilder>;
13
+ getById(payload: ProductListQueryById): Promise<Result<ProductListFactoryListOutput<TFactory>>>;
14
+ queryLists(payload: ProductListQuery): Promise<Result<ProductListFactoryListPaginatedOutput<TFactory>>>;
15
+ addList(mutation: ProductListMutationCreate): Promise<Result<ProductListFactoryListOutput<TFactory>>>;
16
+ updateList(mutation: ProductListMutationUpdate): Promise<Result<ProductListFactoryListOutput<TFactory>>>;
17
+ deleteList(mutation: ProductListMutationDelete): Promise<Result<void>>;
18
+ queryListItems(query: ProductListItemsQuery): Promise<Result<ProductListFactoryItemPaginatedOutput<TFactory>>>;
19
+ addItem(mutation: ProductListItemMutationCreate): Promise<Result<ProductListFactoryItemOutput<TFactory>>>;
20
+ deleteItem(mutation: ProductListItemMutationDelete): Promise<Result<void>>;
21
+ updateItem(mutation: ProductListItemMutationUpdate): Promise<Result<ProductListFactoryItemOutput<TFactory>>>;
22
+ /**
23
+ * It is not clear to me, why i'd want my CUSTOMER defined resources to be localized, since that means, if he changes visual language,
24
+ * the names of his lists will disappear, since they are not translated. But maybe there are usecases for this, so we should support it, but default to english.
25
+ **/
26
+ protected getLocaleString(): string;
27
+ protected parseSingle(list: ShoppingList): ProductList;
28
+ protected parseProductListItem(listIdentifier: ProductListIdentifier, lineItem: ShoppingListLineItem): ProductListItem;
29
+ }
@@ -0,0 +1,18 @@
1
+ import { type ProductReviewsFactory, type ProductReviewsFactoryRatingOutput, type ProductReviewsFactoryReviewOutput, type ProductReviewsFactoryReviewPaginatedOutput, type ProductReviewsFactoryWithOutput, ProductReviewsCapability } from '@reactionary/core';
2
+ import type { ProductReview, ProductReviewsListQuery, ProductReviewsGetRatingSummaryQuery, ProductReviewMutationSubmit, Result, RequestContext, Cache } from '@reactionary/core';
3
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
4
+ import type { CommercetoolsAPI } from '../core/client.js';
5
+ import type { Review as CTReview } from '@commercetools/platform-sdk';
6
+ import type { CommercetoolsProductReviewsFactory } from '../factories/product-reviews/product-reviews.factory.js';
7
+ export declare class CommercetoolsProductReviewsCapability<TFactory extends ProductReviewsFactory = CommercetoolsProductReviewsFactory> extends ProductReviewsCapability<ProductReviewsFactoryRatingOutput<TFactory>, ProductReviewsFactoryReviewPaginatedOutput<TFactory>, ProductReviewsFactoryReviewOutput<TFactory>> {
8
+ protected config: CommercetoolsConfiguration;
9
+ protected commercetools: CommercetoolsAPI;
10
+ protected factory: ProductReviewsFactoryWithOutput<TFactory>;
11
+ constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: ProductReviewsFactoryWithOutput<TFactory>);
12
+ protected getClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyRequestBuilder>;
13
+ protected getAdminClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyRequestBuilder>;
14
+ getRatingSummary(query: ProductReviewsGetRatingSummaryQuery): Promise<Result<ProductReviewsFactoryRatingOutput<TFactory>>>;
15
+ findReviews(query: ProductReviewsListQuery): Promise<Result<ProductReviewsFactoryReviewPaginatedOutput<TFactory>>>;
16
+ submitReview(mutation: ProductReviewMutationSubmit): Promise<Result<ProductReviewsFactoryReviewOutput<TFactory>>>;
17
+ protected parseSingle(review: CTReview, productKey: string): ProductReview;
18
+ }
@@ -0,0 +1,82 @@
1
+ import type { ProductSearchFacetExpression } from '@commercetools/platform-sdk';
2
+ import type { Cache, FacetValueIdentifier, ProductSearchFactory, ProductSearchFactoryOutput, ProductSearchFactoryWithOutput, ProductSearchQueryByTerm, ProductSearchQueryCreateNavigationFilter, RequestContext, Result } from '@reactionary/core';
3
+ import { ProductSearchCapability } from '@reactionary/core';
4
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
5
+ import type { CommercetoolsAPI } from '../core/client.js';
6
+ import { type CommercetoolsCategoryLookup, type CommercetoolsResolveCategoryQueryById, type CommercetoolsResolveCategoryQueryByKey } from '../schema/commercetools.schema.js';
7
+ import type { CommercetoolsProductSearchFactory } from '../factories/product-search/product-search.factory.js';
8
+ export declare class CommercetoolsProductSearchCapability<TFactory extends ProductSearchFactory = CommercetoolsProductSearchFactory> extends ProductSearchCapability<ProductSearchFactoryOutput<TFactory>> {
9
+ protected config: CommercetoolsConfiguration;
10
+ protected commercetools: CommercetoolsAPI;
11
+ protected factory: ProductSearchFactoryWithOutput<TFactory>;
12
+ constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: ProductSearchFactoryWithOutput<TFactory>);
13
+ protected getClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyProductsRequestBuilder>;
14
+ protected getFacetQuery(payload: ProductSearchQueryByTerm, selectedFacetValue: FacetValueIdentifier): Promise<{
15
+ exact: {
16
+ field: string;
17
+ values: string[];
18
+ fieldType: string;
19
+ value?: undefined;
20
+ };
21
+ } | {
22
+ exact: {
23
+ field: string;
24
+ fieldType: string;
25
+ value: string;
26
+ values?: undefined;
27
+ };
28
+ }>;
29
+ protected resolveCategoryFromId(payload: CommercetoolsResolveCategoryQueryById): Promise<CommercetoolsCategoryLookup>;
30
+ protected resolveCategoryFromKey(payload: CommercetoolsResolveCategoryQueryByKey): Promise<CommercetoolsCategoryLookup>;
31
+ protected getCategoryFilterExpression(payload: ProductSearchQueryByTerm): Promise<{
32
+ exact: {
33
+ field: string;
34
+ values: string[];
35
+ fieldType: string;
36
+ };
37
+ } | undefined>;
38
+ protected getSearchTermExpression(payload: ProductSearchQueryByTerm): Promise<{
39
+ or: {
40
+ fullText: {
41
+ field: string;
42
+ language: string;
43
+ value: string;
44
+ };
45
+ }[];
46
+ } | undefined>;
47
+ protected getFacetsQuery(payload: ProductSearchQueryByTerm): Promise<{
48
+ exact: {
49
+ field: string;
50
+ values: string[];
51
+ fieldType: string;
52
+ value?: undefined;
53
+ };
54
+ } | {
55
+ exact: {
56
+ field: string;
57
+ fieldType: string;
58
+ value: string;
59
+ values?: undefined;
60
+ };
61
+ } | {
62
+ and: ({
63
+ exact: {
64
+ field: string;
65
+ values: string[];
66
+ fieldType: string;
67
+ value?: undefined;
68
+ };
69
+ } | {
70
+ exact: {
71
+ field: string;
72
+ fieldType: string;
73
+ value: string;
74
+ values?: undefined;
75
+ };
76
+ })[];
77
+ } | undefined>;
78
+ protected getFacetsToReturn(payload: ProductSearchQueryByTerm): Promise<ProductSearchFacetExpression[]>;
79
+ createCategoryNavigationFilter(payload: ProductSearchQueryCreateNavigationFilter): Promise<Result<FacetValueIdentifier>>;
80
+ queryByTerm(payload: ProductSearchQueryByTerm): Promise<Result<ProductSearchFactoryOutput<TFactory>>>;
81
+ protected patchCategoryFacetValues(result: ProductSearchFactoryOutput<TFactory>): Promise<void>;
82
+ }
@@ -0,0 +1,17 @@
1
+ import { ProductCapability, type ProductFactory, type ProductFactoryOutput, type ProductFactoryWithOutput } from '@reactionary/core';
2
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
3
+ import type { ProductQueryById, ProductQueryBySKU, ProductQueryBySlug, RequestContext, Result } from '@reactionary/core';
4
+ import type { Cache } from '@reactionary/core';
5
+ import type { CommercetoolsAPI } from '../core/client.js';
6
+ import type { NotFoundError } from '@reactionary/core';
7
+ import type { CommercetoolsProductFactory } from '../factories/product/product.factory.js';
8
+ export declare class CommercetoolsProductCapability<TFactory extends ProductFactory = CommercetoolsProductFactory> extends ProductCapability<ProductFactoryOutput<TFactory>> {
9
+ protected config: CommercetoolsConfiguration;
10
+ protected commercetools: CommercetoolsAPI;
11
+ protected factory: ProductFactoryWithOutput<TFactory>;
12
+ constructor(cache: Cache, context: RequestContext, config: CommercetoolsConfiguration, commercetools: CommercetoolsAPI, factory: ProductFactoryWithOutput<TFactory>);
13
+ protected getClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyProductProjectionsRequestBuilder>;
14
+ getById(payload: ProductQueryById): Promise<Result<ProductFactoryOutput<TFactory>>>;
15
+ getBySlug(payload: ProductQueryBySlug): Promise<Result<ProductFactoryOutput<TFactory>, NotFoundError>>;
16
+ getBySKU(payload: ProductQueryBySKU): Promise<Result<ProductFactoryOutput<TFactory>>>;
17
+ }
@@ -0,0 +1,30 @@
1
+ import type { ProfileFactory, ProfileFactoryOutput, ProfileFactoryWithOutput, ProfileMutationAddShippingAddress, ProfileMutationMakeShippingAddressDefault, ProfileMutationRemoveShippingAddress, ProfileMutationSetBillingAddress, ProfileMutationUpdate, ProfileQuerySelf, RequestContext, Result, NotFoundError, ProfileMutationUpdateShippingAddress, Address } from '@reactionary/core';
2
+ import { ProfileCapability } from '@reactionary/core';
3
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
4
+ import type { Cache } from '@reactionary/core';
5
+ import type { Address as CTAddress } from '@commercetools/platform-sdk';
6
+ import type { CommercetoolsAPI } from '../core/client.js';
7
+ import type { CommercetoolsProfileFactory } from '../factories/profile/profile.factory.js';
8
+ export declare class CommercetoolsProfileCapability<TFactory extends ProfileFactory = CommercetoolsProfileFactory> extends ProfileCapability<ProfileFactoryOutput<TFactory>> {
9
+ protected config: CommercetoolsConfiguration;
10
+ protected commercetools: CommercetoolsAPI;
11
+ protected factory: ProfileFactoryWithOutput<TFactory>;
12
+ constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: ProfileFactoryWithOutput<TFactory>);
13
+ protected getClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyRequestBuilder>;
14
+ getById(payload: ProfileQuerySelf): Promise<Result<ProfileFactoryOutput<TFactory>, NotFoundError>>;
15
+ addShippingAddress(payload: ProfileMutationAddShippingAddress): Promise<Result<ProfileFactoryOutput<TFactory>, NotFoundError>>;
16
+ updateShippingAddress(payload: ProfileMutationUpdateShippingAddress): Promise<Result<ProfileFactoryOutput<TFactory>, NotFoundError>>;
17
+ removeShippingAddress(payload: ProfileMutationRemoveShippingAddress): Promise<Result<ProfileFactoryOutput<TFactory>, NotFoundError>>;
18
+ makeShippingAddressDefault(payload: ProfileMutationMakeShippingAddressDefault): Promise<Result<ProfileFactoryOutput<TFactory>, NotFoundError>>;
19
+ setBillingAddress(payload: ProfileMutationSetBillingAddress): Promise<Result<ProfileFactoryOutput<TFactory>, NotFoundError>>;
20
+ update(payload: ProfileMutationUpdate): Promise<Result<ProfileFactoryOutput<TFactory>, NotFoundError>>;
21
+ protected createCTAddressDraft(address: Address): CTAddress;
22
+ /**
23
+ * Checks if an address only contains phone information and lacks essential address fields.
24
+ * An address is considered incomplete if it exists but has no firstName, lastName, streetName,
25
+ * streetNumber, or city.
26
+ * @param address - The address to check, or undefined
27
+ * @returns true if the address exists but lacks essential fields, false otherwise (including when address is undefined)
28
+ */
29
+ protected isIncompleteAddress(address: CTAddress | undefined): boolean;
30
+ }
@@ -0,0 +1,13 @@
1
+ import type { RequestContext, Cache, StoreFactory, StoreFactoryOutput, StoreFactoryWithOutput, StoreQueryByProximity, Result } from '@reactionary/core';
2
+ import { StoreCapability } from '@reactionary/core';
3
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
4
+ import type { CommercetoolsAPI } from '../core/client.js';
5
+ import type { CommercetoolsStoreFactory } from '../factories/store/store.factory.js';
6
+ export declare class CommercetoolsStoreCapability<TFactory extends StoreFactory = CommercetoolsStoreFactory> extends StoreCapability<StoreFactoryOutput<TFactory>> {
7
+ protected config: CommercetoolsConfiguration;
8
+ protected commercetools: CommercetoolsAPI;
9
+ protected factory: StoreFactoryWithOutput<TFactory>;
10
+ constructor(config: CommercetoolsConfiguration, cache: Cache, context: RequestContext, commercetools: CommercetoolsAPI, factory: StoreFactoryWithOutput<TFactory>);
11
+ protected getClient(): Promise<import("@commercetools/platform-sdk").ByProjectKeyRequestBuilder>;
12
+ queryByProximity(payload: StoreQueryByProximity): Promise<Result<Array<StoreFactoryOutput<TFactory>>>>;
13
+ }
@@ -0,0 +1,16 @@
1
+ import type * as z from 'zod';
2
+ import { type CommercetoolsCapabilities, type CommercetoolsCapabilitiesSchema } from '../schema/capabilities.schema.js';
3
+ export declare const capabilityKeys: readonly ["product", "profile", "productSearch", "productAssociations", "productList", "productReviews", "identity", "cart", "inventory", "price", "category", "checkout", "store", "order", "orderSearch"];
4
+ export type OverridableCapabilityKey = (typeof capabilityKeys)[number];
5
+ type ParsedCapabilities = z.infer<typeof CommercetoolsCapabilitiesSchema>;
6
+ export type CapabilityDescriptor = {
7
+ isEnabled: (caps: ParsedCapabilities) => boolean | undefined;
8
+ getOverride: (caps: CommercetoolsCapabilities) => {
9
+ factory?: any;
10
+ capability?: (args: any) => any;
11
+ } | undefined;
12
+ createDefaultFactory: () => any;
13
+ createDefaultCapability: (args: any) => any;
14
+ };
15
+ export declare const capabilityDescriptors: Record<OverridableCapabilityKey, CapabilityDescriptor>;
16
+ export {};
@@ -0,0 +1,55 @@
1
+ import { ClientBuilder } from '@commercetools/ts-client';
2
+ import { type ApiRoot } from '@commercetools/platform-sdk';
3
+ import type { CommercetoolsConfiguration } from '../schema/configuration.schema.js';
4
+ import { type AnonymousIdentity, type GuestIdentity, type RegisteredIdentity, type RequestContext } from '@reactionary/core';
5
+ import { RequestContextTokenCache } from './token-cache.js';
6
+ import { type CommercetoolsSession } from '../schema/session.schema.js';
7
+ export declare const PROVIDER_SESSION_KEY = "COMMERCETOOLS_PROVIDER";
8
+ export declare class CommercetoolsAPI {
9
+ protected config: CommercetoolsConfiguration;
10
+ protected context: RequestContext;
11
+ protected tokenCache: RequestContextTokenCache;
12
+ protected client: Promise<ApiRoot> | undefined;
13
+ protected adminClient: Promise<ApiRoot> | undefined;
14
+ constructor(config: CommercetoolsConfiguration, context: RequestContext);
15
+ getClient(): Promise<ApiRoot>;
16
+ getAdminClient(): Promise<ApiRoot>;
17
+ getSessionData(): CommercetoolsSession;
18
+ setSessionData(sessionData: Partial<CommercetoolsSession>): void;
19
+ /**
20
+ * Only caches it pr session for now...... but still better than every call
21
+ * @param key
22
+ * @returns
23
+ */
24
+ resolveChannelIdByKey(key: string): Promise<string>;
25
+ /**
26
+ * Only caches it pr session for now...... but still better than every call
27
+ * @param key
28
+ * @returns
29
+ */
30
+ resolveChannelIdByRole(role: string): Promise<string>;
31
+ protected createAdminClient(): Promise<ApiRoot>;
32
+ protected createClient(): Promise<ApiRoot>;
33
+ register(username: string, password: string): Promise<{
34
+ [x: string]: unknown;
35
+ id: {
36
+ [x: string]: unknown;
37
+ userId: string;
38
+ };
39
+ type: "Registered";
40
+ }>;
41
+ login(username: string, password: string): Promise<{
42
+ [x: string]: unknown;
43
+ id: {
44
+ [x: string]: unknown;
45
+ userId: string;
46
+ };
47
+ type: "Registered";
48
+ }>;
49
+ logout(): Promise<{
50
+ type: "Anonymous";
51
+ }>;
52
+ introspect(): Promise<AnonymousIdentity | GuestIdentity | RegisteredIdentity>;
53
+ protected becomeGuest(): Promise<void>;
54
+ protected createBaseClientBuilder(): ClientBuilder;
55
+ }
@@ -0,0 +1,5 @@
1
+ import type { Cache, RequestContext } from '@reactionary/core';
2
+ import { type CommercetoolsCapabilities } from '../schema/capabilities.schema.js';
3
+ import { type CommercetoolsConfiguration } from '../schema/configuration.schema.js';
4
+ import { type CommercetoolsClientFromCapabilities } from './initialize.types.js';
5
+ export declare function withCommercetoolsCapabilities<T extends CommercetoolsCapabilities>(configuration: CommercetoolsConfiguration, capabilities: T): (cache: Cache, context: RequestContext) => CommercetoolsClientFromCapabilities<T>;