@labdigital/commercetools-mock 2.17.1 → 2.18.1

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 (180) hide show
  1. package/dist/index.cjs +4351 -4099
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +266 -413
  4. package/dist/index.d.ts +266 -413
  5. package/dist/index.js +4351 -4099
  6. package/dist/index.js.map +1 -1
  7. package/package.json +47 -47
  8. package/src/constants.ts +2 -2
  9. package/src/ctMock.test.ts +11 -11
  10. package/src/ctMock.ts +141 -127
  11. package/src/deprecation.ts +8 -0
  12. package/src/exceptions.ts +17 -15
  13. package/src/helpers.ts +32 -32
  14. package/src/index.test.ts +128 -128
  15. package/src/index.ts +3 -3
  16. package/src/lib/expandParser.ts +13 -13
  17. package/src/lib/haversine.test.ts +9 -9
  18. package/src/lib/haversine.ts +11 -11
  19. package/src/lib/masking.ts +11 -11
  20. package/src/lib/parser.ts +2 -2
  21. package/src/lib/password.ts +23 -3
  22. package/src/lib/predicateParser.test.ts +185 -183
  23. package/src/lib/predicateParser.ts +234 -234
  24. package/src/lib/projectionSearchFilter.test.ts +103 -101
  25. package/src/lib/projectionSearchFilter.ts +152 -150
  26. package/src/lib/proxy.ts +5 -5
  27. package/src/oauth/errors.ts +4 -4
  28. package/src/oauth/helpers.ts +6 -6
  29. package/src/oauth/server.test.ts +86 -86
  30. package/src/oauth/server.ts +158 -144
  31. package/src/oauth/store.ts +44 -43
  32. package/src/priceSelector.test.ts +35 -35
  33. package/src/priceSelector.ts +30 -30
  34. package/src/product-projection-search.ts +136 -134
  35. package/src/projectAPI.test.ts +7 -7
  36. package/src/projectAPI.ts +24 -22
  37. package/src/repositories/abstract.ts +168 -116
  38. package/src/repositories/associate-role.ts +90 -77
  39. package/src/repositories/attribute-group.ts +51 -40
  40. package/src/repositories/business-unit.ts +168 -148
  41. package/src/repositories/cart/actions.ts +489 -0
  42. package/src/repositories/cart/helpers.ts +30 -0
  43. package/src/repositories/cart/index.ts +180 -0
  44. package/src/repositories/cart-discount/actions.ts +148 -0
  45. package/src/repositories/cart-discount/index.ts +86 -0
  46. package/src/repositories/category/actions.ts +231 -0
  47. package/src/repositories/category/index.ts +52 -0
  48. package/src/repositories/channel.ts +88 -90
  49. package/src/repositories/custom-object.ts +46 -45
  50. package/src/repositories/customer/actions.ts +165 -0
  51. package/src/repositories/customer/index.ts +79 -0
  52. package/src/repositories/customer-group.ts +66 -55
  53. package/src/repositories/discount-code/actions.ts +149 -0
  54. package/src/repositories/discount-code/index.ts +50 -0
  55. package/src/repositories/errors.ts +10 -10
  56. package/src/repositories/extension.ts +64 -62
  57. package/src/repositories/helpers.ts +117 -118
  58. package/src/repositories/index.ts +80 -79
  59. package/src/repositories/inventory-entry/actions.ts +84 -0
  60. package/src/repositories/inventory-entry/index.ts +44 -0
  61. package/src/repositories/my-customer.ts +114 -0
  62. package/src/repositories/my-order.ts +8 -8
  63. package/src/repositories/order/actions.ts +281 -0
  64. package/src/repositories/{order.test.ts → order/index.test.ts} +77 -77
  65. package/src/repositories/order/index.ts +260 -0
  66. package/src/repositories/order-edit.ts +10 -23
  67. package/src/repositories/payment/actions.ts +305 -0
  68. package/src/repositories/payment/helpers.ts +17 -0
  69. package/src/repositories/payment/index.ts +56 -0
  70. package/src/repositories/product/actions.ts +943 -0
  71. package/src/repositories/product/helpers.ts +98 -0
  72. package/src/repositories/product/index.ts +130 -0
  73. package/src/repositories/product-discount.ts +127 -117
  74. package/src/repositories/product-projection.ts +56 -62
  75. package/src/repositories/product-selection.ts +31 -28
  76. package/src/repositories/product-type.ts +136 -134
  77. package/src/repositories/project.ts +133 -118
  78. package/src/repositories/quote-request.ts +7 -19
  79. package/src/repositories/quote.ts +7 -22
  80. package/src/repositories/review.ts +13 -26
  81. package/src/repositories/shipping-method/actions.ts +198 -0
  82. package/src/repositories/shipping-method/helpers.ts +10 -0
  83. package/src/repositories/shipping-method/index.ts +138 -0
  84. package/src/repositories/shopping-list/actions.ts +295 -0
  85. package/src/repositories/shopping-list/index.ts +122 -0
  86. package/src/repositories/staged-quote.ts +7 -20
  87. package/src/repositories/standalone-price.ts +57 -44
  88. package/src/repositories/state.ts +113 -68
  89. package/src/repositories/store.ts +106 -94
  90. package/src/repositories/subscription.ts +46 -22
  91. package/src/repositories/tax-category/actions.ts +94 -0
  92. package/src/repositories/tax-category/helpers.ts +8 -0
  93. package/src/repositories/tax-category/index.ts +25 -0
  94. package/src/repositories/type/actions.ts +162 -0
  95. package/src/repositories/type/index.ts +24 -0
  96. package/src/repositories/zone.ts +62 -58
  97. package/src/schemas/update-request.ts +12 -0
  98. package/src/server.ts +9 -9
  99. package/src/services/abstract.ts +85 -72
  100. package/src/services/associate-roles.test.ts +27 -27
  101. package/src/services/associate-roles.ts +7 -7
  102. package/src/services/attribute-group.ts +7 -7
  103. package/src/services/business-units.test.ts +28 -28
  104. package/src/services/business-units.ts +7 -7
  105. package/src/services/cart-discount.test.ts +199 -199
  106. package/src/services/cart-discount.ts +7 -7
  107. package/src/services/cart.test.ts +261 -261
  108. package/src/services/cart.ts +22 -21
  109. package/src/services/category.test.ts +121 -121
  110. package/src/services/category.ts +7 -7
  111. package/src/services/channel.ts +7 -7
  112. package/src/services/custom-object.test.ts +130 -130
  113. package/src/services/custom-object.ts +34 -31
  114. package/src/services/customer-group.ts +7 -7
  115. package/src/services/customer.test.ts +205 -205
  116. package/src/services/customer.ts +23 -36
  117. package/src/services/discount-code.ts +7 -7
  118. package/src/services/extension.ts +7 -7
  119. package/src/services/index.ts +85 -81
  120. package/src/services/inventory-entry.test.ts +106 -106
  121. package/src/services/inventory-entry.ts +7 -7
  122. package/src/services/my-cart.test.ts +56 -56
  123. package/src/services/my-cart.ts +20 -20
  124. package/src/services/my-customer.test.ts +155 -104
  125. package/src/services/my-customer.ts +66 -75
  126. package/src/services/my-order.ts +16 -16
  127. package/src/services/my-payment.test.ts +40 -40
  128. package/src/services/my-payment.ts +7 -7
  129. package/src/services/my-shopping-list.ts +7 -7
  130. package/src/services/order.test.ts +243 -243
  131. package/src/services/order.ts +23 -18
  132. package/src/services/payment.test.ts +40 -40
  133. package/src/services/payment.ts +7 -7
  134. package/src/services/product-discount.ts +7 -7
  135. package/src/services/product-projection.test.ts +190 -190
  136. package/src/services/product-projection.ts +34 -32
  137. package/src/services/product-selection.test.ts +19 -19
  138. package/src/services/product-selection.ts +7 -7
  139. package/src/services/product-type.test.ts +38 -38
  140. package/src/services/product-type.ts +7 -7
  141. package/src/services/product.test.ts +658 -656
  142. package/src/services/product.ts +7 -7
  143. package/src/services/project.test.ts +29 -24
  144. package/src/services/project.ts +22 -17
  145. package/src/services/reviews.ts +7 -7
  146. package/src/services/shipping-method.test.ts +78 -78
  147. package/src/services/shipping-method.ts +16 -16
  148. package/src/services/shopping-list.test.ts +170 -170
  149. package/src/services/shopping-list.ts +7 -7
  150. package/src/services/standalone-price.test.ts +112 -112
  151. package/src/services/standalone-price.ts +7 -7
  152. package/src/services/state.test.ts +30 -30
  153. package/src/services/state.ts +7 -7
  154. package/src/services/store.test.ts +40 -40
  155. package/src/services/store.ts +7 -7
  156. package/src/services/subscription.ts +7 -7
  157. package/src/services/tax-category.test.ts +43 -43
  158. package/src/services/tax-category.ts +7 -7
  159. package/src/services/type.ts +7 -7
  160. package/src/services/zone.ts +7 -7
  161. package/src/shippingCalculator.test.ts +43 -43
  162. package/src/shippingCalculator.ts +23 -23
  163. package/src/storage/abstract.ts +36 -34
  164. package/src/storage/in-memory.ts +237 -233
  165. package/src/storage/index.ts +2 -2
  166. package/src/types.ts +91 -91
  167. package/src/validate.ts +18 -0
  168. package/src/repositories/cart-discount.ts +0 -219
  169. package/src/repositories/cart.ts +0 -659
  170. package/src/repositories/category.ts +0 -256
  171. package/src/repositories/customer.ts +0 -228
  172. package/src/repositories/discount-code.ts +0 -181
  173. package/src/repositories/inventory-entry.ts +0 -109
  174. package/src/repositories/order.ts +0 -514
  175. package/src/repositories/payment.ts +0 -342
  176. package/src/repositories/product.ts +0 -1106
  177. package/src/repositories/shipping-method.ts +0 -312
  178. package/src/repositories/shopping-list.ts +0 -392
  179. package/src/repositories/tax-category.ts +0 -111
  180. package/src/repositories/type.ts +0 -172
@@ -1,78 +1,78 @@
1
- import type { ProductProjection } from '@commercetools/platform-sdk'
2
- import { beforeEach, describe, expect, test } from 'vitest'
3
- import { applyPriceSelector } from './priceSelector.js'
1
+ import type { ProductProjection } from "@commercetools/platform-sdk";
2
+ import { beforeEach, describe, expect, test } from "vitest";
3
+ import { applyPriceSelector } from "./priceSelector";
4
4
 
5
- describe('priceSelector', () => {
6
- let product: ProductProjection
5
+ describe("priceSelector", () => {
6
+ let product: ProductProjection;
7
7
 
8
8
  beforeEach(() => {
9
9
  product = {
10
- id: '7401d82f-1378-47ba-996a-85beeb87ac87',
10
+ id: "7401d82f-1378-47ba-996a-85beeb87ac87",
11
11
  version: 2,
12
- createdAt: '2022-07-22T10:02:40.851Z',
13
- lastModifiedAt: '2022-07-22T10:02:44.427Z',
12
+ createdAt: "2022-07-22T10:02:40.851Z",
13
+ lastModifiedAt: "2022-07-22T10:02:44.427Z",
14
14
  productType: {
15
- typeId: 'product-type',
16
- id: 'b9b4b426-938b-4ccb-9f36-c6f933e8446e',
15
+ typeId: "product-type",
16
+ id: "b9b4b426-938b-4ccb-9f36-c6f933e8446e",
17
17
  },
18
18
  name: {
19
- 'nl-NL': 'test',
19
+ "nl-NL": "test",
20
20
  },
21
21
  slug: {
22
- 'nl-NL': 'test',
22
+ "nl-NL": "test",
23
23
  },
24
24
  variants: [],
25
25
  searchKeywords: {},
26
26
  categories: [],
27
27
  masterVariant: {
28
28
  id: 1,
29
- sku: 'MYSKU',
29
+ sku: "MYSKU",
30
30
  attributes: [
31
31
  {
32
- name: 'Country',
32
+ name: "Country",
33
33
  value: {
34
- key: 'NL',
34
+ key: "NL",
35
35
  label: {
36
- de: 'niederlande',
37
- en: 'netherlands',
38
- nl: 'nederland',
36
+ de: "niederlande",
37
+ en: "netherlands",
38
+ nl: "nederland",
39
39
  },
40
40
  },
41
41
  },
42
42
  {
43
- name: 'number',
43
+ name: "number",
44
44
  value: 4,
45
45
  },
46
46
  ],
47
47
  prices: [
48
48
  {
49
- id: 'dummy-uuid',
49
+ id: "dummy-uuid",
50
50
  value: {
51
- type: 'centPrecision',
52
- currencyCode: 'EUR',
51
+ type: "centPrecision",
52
+ currencyCode: "EUR",
53
53
  centAmount: 1789,
54
54
  fractionDigits: 2,
55
55
  },
56
56
  },
57
57
  ],
58
58
  },
59
- }
60
- })
59
+ };
60
+ });
61
61
 
62
- test('currency (match)', async () => {
63
- applyPriceSelector([product], { currency: 'EUR' })
62
+ test("currency (match)", async () => {
63
+ applyPriceSelector([product], { currency: "EUR" });
64
64
 
65
65
  expect(product).toMatchObject({
66
66
  masterVariant: {
67
- sku: 'MYSKU',
67
+ sku: "MYSKU",
68
68
  scopedPrice: { value: { centAmount: 1789 } },
69
69
  },
70
- })
71
- })
70
+ });
71
+ });
72
72
 
73
- test('currency, country (no match)', async () => {
74
- applyPriceSelector([product], { currency: 'EUR', country: 'US' })
75
- expect(product.masterVariant.scopedPrice).toBeUndefined()
76
- expect(product.masterVariant.scopedPrice).toBeUndefined()
77
- })
78
- })
73
+ test("currency, country (no match)", async () => {
74
+ applyPriceSelector([product], { currency: "EUR", country: "US" });
75
+ expect(product.masterVariant.scopedPrice).toBeUndefined();
76
+ expect(product.masterVariant.scopedPrice).toBeUndefined();
77
+ });
78
+ });
@@ -3,16 +3,16 @@ import type {
3
3
  Price,
4
4
  ProductProjection,
5
5
  ProductVariant,
6
- } from '@commercetools/platform-sdk'
7
- import { CommercetoolsError } from './exceptions.js'
8
- import type { Writable } from './types.js'
6
+ } from "@commercetools/platform-sdk";
7
+ import { CommercetoolsError } from "./exceptions";
8
+ import type { Writable } from "./types";
9
9
 
10
10
  export type PriceSelector = {
11
- currency?: string
12
- country?: string
13
- customerGroup?: string
14
- channel?: string
15
- }
11
+ currency?: string;
12
+ country?: string;
13
+ customerGroup?: string;
14
+ channel?: string;
15
+ };
16
16
 
17
17
  /**
18
18
  * Apply the price selector on all the variants. The price selector is applied
@@ -22,36 +22,36 @@ export type PriceSelector = {
22
22
  export const applyPriceSelector = (
23
23
  products: ProductProjection[],
24
24
  selector: PriceSelector,
25
- noScopedPrice: boolean = false
25
+ noScopedPrice: boolean = false,
26
26
  ) => {
27
- validatePriceSelector(selector)
27
+ validatePriceSelector(selector);
28
28
 
29
29
  for (const product of products) {
30
30
  // Get list of all variants (master + variants)
31
31
  const variants: Writable<ProductVariant>[] = [
32
32
  product.masterVariant,
33
33
  ...(product.variants ?? []),
34
- ].filter((x) => x != undefined)
34
+ ].filter((x) => x != undefined);
35
35
 
36
36
  for (const variant of variants) {
37
37
  const scopedPrices =
38
- variant.prices?.filter((p) => priceSelectorFilter(p, selector)) ?? []
38
+ variant.prices?.filter((p) => priceSelectorFilter(p, selector)) ?? [];
39
39
 
40
40
  if (scopedPrices.length > 0) {
41
- const price = scopedPrices[0]
41
+ const price = scopedPrices[0];
42
42
 
43
- variant.price = scopedPrices[0]
43
+ variant.price = scopedPrices[0];
44
44
  if (!noScopedPrice) {
45
- variant.scopedPriceDiscounted = false
45
+ variant.scopedPriceDiscounted = false;
46
46
  variant.scopedPrice = {
47
47
  ...price,
48
48
  currentValue: price.value,
49
- }
49
+ };
50
50
  }
51
51
  }
52
52
  }
53
53
  }
54
- }
54
+ };
55
55
 
56
56
  const validatePriceSelector = (selector: PriceSelector) => {
57
57
  if (
@@ -60,15 +60,15 @@ const validatePriceSelector = (selector: PriceSelector) => {
60
60
  ) {
61
61
  throw new CommercetoolsError<InvalidInputError>(
62
62
  {
63
- code: 'InvalidInput',
63
+ code: "InvalidInput",
64
64
  message:
65
- 'The price selecting parameters country, channel and customerGroup ' +
66
- 'cannot be used without the currency.',
65
+ "The price selecting parameters country, channel and customerGroup " +
66
+ "cannot be used without the currency.",
67
67
  },
68
- 400
69
- )
68
+ 400,
69
+ );
70
70
  }
71
- }
71
+ };
72
72
 
73
73
  /**
74
74
  * Return a boolean to indicate if the price matches the selector. Price
@@ -77,35 +77,35 @@ const validatePriceSelector = (selector: PriceSelector) => {
77
77
  */
78
78
  export const priceSelectorFilter = (
79
79
  price: Price,
80
- selector: PriceSelector
80
+ selector: PriceSelector,
81
81
  ): boolean => {
82
82
  if (
83
83
  (selector.country || price.country) &&
84
84
  selector.country !== price.country
85
85
  ) {
86
- return false
86
+ return false;
87
87
  }
88
88
 
89
89
  if (
90
90
  (selector.currency || price.value.currencyCode) &&
91
91
  selector.currency !== price.value.currencyCode
92
92
  ) {
93
- return false
93
+ return false;
94
94
  }
95
95
 
96
96
  if (
97
97
  (selector.channel || price.channel?.id) &&
98
98
  selector.channel !== price.channel?.id
99
99
  ) {
100
- return false
100
+ return false;
101
101
  }
102
102
 
103
103
  if (
104
104
  (selector.customerGroup || price.customerGroup?.id) &&
105
105
  selector.customerGroup !== price.customerGroup?.id
106
106
  ) {
107
- return false
107
+ return false;
108
108
  }
109
109
 
110
- return true
111
- }
110
+ return true;
111
+ };