@labdigital/commercetools-mock 2.47.0 → 2.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -28,15 +28,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
30
  // src/index.ts
31
- var src_exports = {};
32
- __export(src_exports, {
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
33
  CommercetoolsMock: () => CommercetoolsMock,
34
34
  getBaseResourceProperties: () => getBaseResourceProperties
35
35
  });
36
- module.exports = __toCommonJS(src_exports);
36
+ module.exports = __toCommonJS(index_exports);
37
37
 
38
38
  // src/ctMock.ts
39
- var import_express10 = __toESM(require("express"), 1);
39
+ var import_express11 = __toESM(require("express"), 1);
40
40
  var import_light_my_request = __toESM(require("light-my-request"), 1);
41
41
  var import_morgan = __toESM(require("morgan"), 1);
42
42
  var import_msw = require("msw");
@@ -246,8 +246,7 @@ var OAuth2Store = class {
246
246
  };
247
247
  }
248
248
  validateToken(token) {
249
- if (!this.validate)
250
- return true;
249
+ if (!this.validate) return true;
251
250
  const foundToken = this.tokens.find((t) => t.access_token === token);
252
251
  if (foundToken) {
253
252
  return true;
@@ -362,7 +361,7 @@ var OAuth2Server = class {
362
361
  )
363
362
  );
364
363
  }
365
- const grantType = request.query.grant_type || request.body.grant_type;
364
+ const grantType = request.query.grant_type || request.body?.grant_type;
366
365
  if (!grantType) {
367
366
  return next(
368
367
  new CommercetoolsError(
@@ -380,10 +379,11 @@ var OAuth2Server = class {
380
379
  request.credentials.clientSecret,
381
380
  request.query.scope?.toString()
382
381
  );
383
- return response.status(200).send(token);
382
+ response.status(200).send(token);
383
+ return;
384
384
  }
385
385
  if (grantType === "refresh_token") {
386
- const refreshToken = request.query.refresh_token?.toString() || request.body.refresh_token;
386
+ const refreshToken = request.query.refresh_token?.toString() || request.body?.refresh_token;
387
387
  if (!refreshToken) {
388
388
  return next(
389
389
  new CommercetoolsError(
@@ -413,7 +413,8 @@ var OAuth2Server = class {
413
413
  )
414
414
  );
415
415
  }
416
- return response.status(200).send(token);
416
+ response.status(200).send(token);
417
+ return;
417
418
  }
418
419
  return next(
419
420
  new CommercetoolsError(
@@ -427,7 +428,7 @@ var OAuth2Server = class {
427
428
  }
428
429
  async customerTokenHandler(request, response, next) {
429
430
  const projectKey = request.params.projectKey;
430
- const grantType = request.query.grant_type || request.body.grant_type;
431
+ const grantType = request.query.grant_type || request.body?.grant_type;
431
432
  if (!grantType) {
432
433
  return next(
433
434
  new CommercetoolsError(
@@ -440,11 +441,11 @@ var OAuth2Server = class {
440
441
  );
441
442
  }
442
443
  if (grantType === "password") {
443
- const username = request.query.username || request.body.username;
444
+ const username = request.query.username || request.body?.username;
444
445
  const password = hashPassword(
445
446
  request.query.password || request.body.password
446
447
  );
447
- const scope = request.query.scope?.toString() || request.body.scope?.toString();
448
+ const scope = request.query.scope?.toString() || request.body?.scope?.toString();
448
449
  const result = this.customerRepository.query(
449
450
  { projectKey: request.params.projectKey },
450
451
  {
@@ -464,7 +465,7 @@ var OAuth2Server = class {
464
465
  }
465
466
  const customer = result.results[0];
466
467
  const token = this.store.getCustomerToken(projectKey, customer.id, scope);
467
- return response.status(200).send(token);
468
+ response.status(200).send(token);
468
469
  }
469
470
  }
470
471
  async inStoreCustomerTokenHandler(request, response, next) {
@@ -507,7 +508,8 @@ var OAuth2Server = class {
507
508
  }
508
509
  const customer = result.results[0];
509
510
  const token = this.store.getCustomerToken(projectKey, customer.id, scope);
510
- return response.status(200).send(token);
511
+ response.status(200).send(token);
512
+ return;
511
513
  }
512
514
  }
513
515
  async anonymousTokenHandler(request, response, next) {
@@ -525,14 +527,15 @@ var OAuth2Server = class {
525
527
  );
526
528
  }
527
529
  if (grantType === "client_credentials") {
528
- const scope = request.query.scope?.toString() || request.body.scope?.toString();
530
+ const scope = request.query.scope?.toString() || request.body?.scope?.toString();
529
531
  const anonymous_id = void 0;
530
532
  const token = this.store.getAnonymousToken(
531
533
  projectKey,
532
534
  anonymous_id,
533
535
  scope
534
536
  );
535
- return response.status(200).send(token);
537
+ response.status(200).send(token);
538
+ return;
536
539
  }
537
540
  }
538
541
  };
@@ -590,8 +593,7 @@ var import_deep_equal = __toESM(require("deep-equal"), 1);
590
593
 
591
594
  // src/repositories/errors.ts
592
595
  var checkConcurrentModification = (currentVersion, expectedVersion, identifier) => {
593
- if (currentVersion === expectedVersion)
594
- return;
596
+ if (currentVersion === expectedVersion) return;
595
597
  throw new CommercetoolsError(
596
598
  {
597
599
  message: `Object ${identifier} has a different version than expected. Expected: ${expectedVersion} - Actual: ${currentVersion}.`,
@@ -782,8 +784,7 @@ var import_uuid6 = require("uuid");
782
784
  var import_decimal = require("decimal.js/decimal");
783
785
  var import_uuid4 = require("uuid");
784
786
  var createAddress = (base, projectKey, storage) => {
785
- if (!base)
786
- return void 0;
787
+ if (!base) return void 0;
787
788
  if (!base?.country) {
788
789
  throw new Error("Country is required");
789
790
  }
@@ -792,12 +793,9 @@ var createAddress = (base, projectKey, storage) => {
792
793
  };
793
794
  };
794
795
  var createCustomFields = (draft, projectKey, storage) => {
795
- if (!draft)
796
- return void 0;
797
- if (!draft.type)
798
- return void 0;
799
- if (!draft.type.typeId)
800
- return void 0;
796
+ if (!draft) return void 0;
797
+ if (!draft.type) return void 0;
798
+ if (!draft.type.typeId) return void 0;
801
799
  const typeResource = storage.getByResourceIdentifier(
802
800
  projectKey,
803
801
  draft.type
@@ -880,8 +878,7 @@ var createTypedMoney = (value) => {
880
878
  return result;
881
879
  };
882
880
  var resolveStoreReference = (ref, projectKey, storage) => {
883
- if (!ref)
884
- return void 0;
881
+ if (!ref) return void 0;
885
882
  const resource = storage.getByResourceIdentifier(projectKey, ref);
886
883
  if (!resource) {
887
884
  throw new Error("No such store");
@@ -949,8 +946,7 @@ var getRepositoryContext = (request) => ({
949
946
  storeKey: request.params.storeKey
950
947
  });
951
948
  var createAssociate = (a, projectKey, storage) => {
952
- if (!a)
953
- return void 0;
949
+ if (!a) return void 0;
954
950
  if (!a.associateRoleAssignments) {
955
951
  throw new Error("AssociateRoleAssignments is required");
956
952
  }
@@ -1037,6 +1033,10 @@ var markMatchingShippingRatePriceTiers = (cart, tiers) => {
1037
1033
  switch (tierType) {
1038
1034
  case "CartValue":
1039
1035
  return markMatchingCartValueTiers(cart, tiers);
1036
+ // case 'CartClassification':
1037
+ // return markMatchingCartClassificationTiers(cart, tiers)
1038
+ // case 'CartScore':
1039
+ // return markMatchingCartScoreTiers(cart, tiers)
1040
1040
  default:
1041
1041
  throw new Error(`Unsupported tier type: ${tierType}`);
1042
1042
  }
@@ -1049,8 +1049,7 @@ var markMatchingCartValueTiers = (cart, tiers) => {
1049
1049
  let hasMatchingTier = false;
1050
1050
  for (const tier of sortedTiers) {
1051
1051
  const isMatching = !hasMatchingTier && cart.totalPrice.currencyCode === tier.price.currencyCode && cart.totalPrice.centAmount >= tier.minimumCentAmount;
1052
- if (isMatching)
1053
- hasMatchingTier = true;
1052
+ if (isMatching) hasMatchingTier = true;
1054
1053
  result[tier.minimumCentAmount] = {
1055
1054
  ...tier,
1056
1055
  isMatching
@@ -1162,10 +1161,8 @@ var CartUpdateHandler = class extends AbstractUpdateHandler {
1162
1161
  product.masterData.current.masterVariant,
1163
1162
  ...product.masterData.current.variants
1164
1163
  ].find((x) => {
1165
- if (sku)
1166
- return x.sku === sku;
1167
- if (variantId)
1168
- return x.id === variantId;
1164
+ if (sku) return x.sku === sku;
1165
+ if (variantId) return x.id === variantId;
1169
1166
  return false;
1170
1167
  });
1171
1168
  if (!variant) {
@@ -1693,10 +1690,8 @@ var CartRepository = class extends AbstractResourceRepository {
1693
1690
  product.masterData.current.masterVariant,
1694
1691
  ...product.masterData.current.variants
1695
1692
  ].find((x) => {
1696
- if (sku)
1697
- return x.sku === sku;
1698
- if (variantId)
1699
- return x.id === variantId;
1693
+ if (sku) return x.sku === sku;
1694
+ if (variantId) return x.id === variantId;
1700
1695
  return false;
1701
1696
  });
1702
1697
  if (!variant) {
@@ -1878,8 +1873,7 @@ var OrderUpdateHandler = class extends AbstractUpdateHandler {
1878
1873
  );
1879
1874
  }
1880
1875
  setStore(context, resource, { store }) {
1881
- if (!store)
1882
- return;
1876
+ if (!store) return;
1883
1877
  const resolvedType = this._storage.getByResourceIdentifier(
1884
1878
  context.projectKey,
1885
1879
  store
@@ -1910,8 +1904,7 @@ var OrderUpdateHandler = class extends AbstractUpdateHandler {
1910
1904
  };
1911
1905
  }
1912
1906
  updateSyncInfo(context, resource, { channel, externalId, syncedAt }) {
1913
- if (!channel)
1914
- return;
1907
+ if (!channel) return;
1915
1908
  const resolvedType = this._storage.getByResourceIdentifier(
1916
1909
  context.projectKey,
1917
1910
  channel
@@ -2140,11 +2133,125 @@ var OrderRepository = class extends AbstractResourceRepository {
2140
2133
  }
2141
2134
  };
2142
2135
 
2136
+ // src/repositories/quote-request/index.ts
2137
+ var import_node_assert2 = __toESM(require("assert"), 1);
2138
+
2139
+ // src/repositories/quote-request/actions.ts
2140
+ var QuoteRequestUpdateHandler = class extends AbstractUpdateHandler {
2141
+ setCustomField(context, resource, { name, value }) {
2142
+ if (!resource.custom) {
2143
+ throw new Error("Resource has no custom field");
2144
+ }
2145
+ resource.custom.fields[name] = value;
2146
+ }
2147
+ setCustomType(context, resource, { type, fields }) {
2148
+ if (!type) {
2149
+ resource.custom = void 0;
2150
+ } else {
2151
+ const resolvedType = this._storage.getByResourceIdentifier(
2152
+ context.projectKey,
2153
+ type
2154
+ );
2155
+ if (!resolvedType) {
2156
+ throw new Error(`Type ${type} not found`);
2157
+ }
2158
+ resource.custom = {
2159
+ type: {
2160
+ typeId: "type",
2161
+ id: resolvedType.id
2162
+ },
2163
+ fields: fields || {}
2164
+ };
2165
+ }
2166
+ }
2167
+ transitionState(context, resource, { state, force }) {
2168
+ let stateReference = void 0;
2169
+ if (state) {
2170
+ stateReference = getReferenceFromResourceIdentifier(
2171
+ state,
2172
+ context.projectKey,
2173
+ this._storage
2174
+ );
2175
+ resource.state = stateReference;
2176
+ } else {
2177
+ throw new CommercetoolsError(
2178
+ {
2179
+ code: "InvalidJsonInput",
2180
+ message: "Request body does not contain valid JSON.",
2181
+ detailedErrorMessage: "actions -> state: Missing required value"
2182
+ },
2183
+ 400
2184
+ );
2185
+ }
2186
+ return resource;
2187
+ }
2188
+ };
2189
+
2190
+ // src/repositories/quote-request/index.ts
2191
+ var QuoteRequestRepository = class extends AbstractResourceRepository {
2192
+ constructor(config) {
2193
+ super("quote-request", config);
2194
+ this.actions = new QuoteRequestUpdateHandler(config.storage);
2195
+ }
2196
+ create(context, draft) {
2197
+ if ("cartId" in draft) {
2198
+ return this.createFromCart(context, {
2199
+ id: draft.cartId,
2200
+ typeId: "cart"
2201
+ });
2202
+ }
2203
+ (0, import_node_assert2.default)(draft.cart, "draft.cart is missing");
2204
+ return this.createFromCart(context, {
2205
+ id: draft.cart.id,
2206
+ typeId: "cart"
2207
+ });
2208
+ }
2209
+ createFromCart(context, cartReference) {
2210
+ const cart = this._storage.getByResourceIdentifier(
2211
+ context.projectKey,
2212
+ cartReference
2213
+ );
2214
+ if (!cart) {
2215
+ throw new Error("Cannot find cart");
2216
+ }
2217
+ if (!cart.customerId) {
2218
+ throw new Error("Cart does not have a customer");
2219
+ }
2220
+ const resource = {
2221
+ ...getBaseResourceProperties(),
2222
+ billingAddress: cart.billingAddress,
2223
+ cart: cartReference,
2224
+ country: cart.country,
2225
+ custom: cart.custom,
2226
+ customer: {
2227
+ typeId: "customer",
2228
+ id: cart.customerId
2229
+ },
2230
+ customerGroup: cart.customerGroup,
2231
+ customLineItems: [],
2232
+ directDiscounts: cart.directDiscounts,
2233
+ lineItems: cart.lineItems,
2234
+ paymentInfo: cart.paymentInfo,
2235
+ quoteRequestState: "Submitted",
2236
+ shippingAddress: cart.shippingAddress,
2237
+ taxCalculationMode: cart.taxCalculationMode,
2238
+ taxedPrice: cart.taxedPrice,
2239
+ taxMode: cart.taxMode,
2240
+ taxRoundingMode: cart.taxRoundingMode,
2241
+ totalPrice: cart.totalPrice,
2242
+ store: cart.store
2243
+ };
2244
+ return this.saveNew(context, resource);
2245
+ }
2246
+ };
2247
+
2143
2248
  // src/repositories/as-associate.ts
2144
2249
  var AsAssociateOrderRepository = class extends OrderRepository {
2145
2250
  };
2146
2251
  var AsAssociateCartRepository = class extends CartRepository {
2147
2252
  };
2253
+ var AsAssociateQuoteRequestRepository = class extends QuoteRequestRepository {
2254
+ };
2148
2255
 
2149
2256
  // src/repositories/associate-role.ts
2150
2257
  var AssociateRoleRepository = class extends AbstractResourceRepository {
@@ -2880,7 +2987,7 @@ var CustomObjectRepository = class extends AbstractResourceRepository {
2880
2987
  };
2881
2988
 
2882
2989
  // src/repositories/customer/actions.ts
2883
- var import_node_assert2 = __toESM(require("assert"), 1);
2990
+ var import_node_assert3 = __toESM(require("assert"), 1);
2884
2991
  var CustomerUpdateHandler = class extends AbstractUpdateHandler {
2885
2992
  addAddress(_context, resource, { address }) {
2886
2993
  resource.addresses.push({
@@ -2890,7 +2997,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
2890
2997
  }
2891
2998
  addBillingAddressId(_context, resource, { addressId, addressKey }) {
2892
2999
  const address = this._findAddress(resource, addressId, addressKey, true);
2893
- (0, import_node_assert2.default)(address?.id);
3000
+ (0, import_node_assert3.default)(address?.id);
2894
3001
  if (resource.billingAddressIds === void 0) {
2895
3002
  resource.billingAddressIds = [];
2896
3003
  }
@@ -2900,7 +3007,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
2900
3007
  }
2901
3008
  addShippingAddressId(_context, resource, { addressId, addressKey }) {
2902
3009
  const address = this._findAddress(resource, addressId, addressKey, true);
2903
- (0, import_node_assert2.default)(address?.id);
3010
+ (0, import_node_assert3.default)(address?.id);
2904
3011
  if (resource.shippingAddressIds === void 0) {
2905
3012
  resource.shippingAddressIds = [];
2906
3013
  }
@@ -2914,7 +3021,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
2914
3021
  }
2915
3022
  changeAddress(context, resource, { addressId, addressKey, address }) {
2916
3023
  const current = this._findAddress(resource, addressId, addressKey, true);
2917
- (0, import_node_assert2.default)(current?.id);
3024
+ (0, import_node_assert3.default)(current?.id);
2918
3025
  const oldAddressIndex = resource.addresses.findIndex(
2919
3026
  (a) => a.id === current.id
2920
3027
  );
@@ -2940,7 +3047,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
2940
3047
  action.addressKey,
2941
3048
  true
2942
3049
  );
2943
- (0, import_node_assert2.default)(address?.id);
3050
+ (0, import_node_assert3.default)(address?.id);
2944
3051
  resource.addresses = resource.addresses.filter((a) => a.id !== address.id);
2945
3052
  }
2946
3053
  removeBillingAddressId(context, resource, action) {
@@ -2950,7 +3057,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
2950
3057
  action.addressKey,
2951
3058
  true
2952
3059
  );
2953
- (0, import_node_assert2.default)(address?.id);
3060
+ (0, import_node_assert3.default)(address?.id);
2954
3061
  resource.billingAddressIds = resource.billingAddressIds?.filter(
2955
3062
  (id) => id !== address.id
2956
3063
  );
@@ -2965,7 +3072,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
2965
3072
  action.addressKey,
2966
3073
  true
2967
3074
  );
2968
- (0, import_node_assert2.default)(address?.id);
3075
+ (0, import_node_assert3.default)(address?.id);
2969
3076
  resource.shippingAddressIds = resource.shippingAddressIds?.filter(
2970
3077
  (id) => id !== address.id
2971
3078
  );
@@ -3067,7 +3174,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
3067
3174
  action.addressKey,
3068
3175
  true
3069
3176
  );
3070
- (0, import_node_assert2.default)(address?.id);
3177
+ (0, import_node_assert3.default)(address?.id);
3071
3178
  resource.defaultBillingAddressId = address.id;
3072
3179
  if (resource.billingAddressIds === void 0) {
3073
3180
  resource.billingAddressIds = [];
@@ -3083,7 +3190,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
3083
3190
  action.addressKey,
3084
3191
  true
3085
3192
  );
3086
- (0, import_node_assert2.default)(address?.id);
3193
+ (0, import_node_assert3.default)(address?.id);
3087
3194
  resource.defaultShippingAddressId = address.id;
3088
3195
  if (resource.shippingAddressIds === void 0) {
3089
3196
  resource.shippingAddressIds = [];
@@ -3716,10 +3823,10 @@ var MyCustomerRepository = class extends CustomerRepository {
3716
3823
  };
3717
3824
 
3718
3825
  // src/repositories/my-order.ts
3719
- var import_node_assert3 = __toESM(require("assert"), 1);
3826
+ var import_node_assert4 = __toESM(require("assert"), 1);
3720
3827
  var MyOrderRepository = class extends OrderRepository {
3721
3828
  create(context, draft) {
3722
- (0, import_node_assert3.default)(draft.id, "draft.id is missing");
3829
+ (0, import_node_assert4.default)(draft.id, "draft.id is missing");
3723
3830
  const cartIdentifier = {
3724
3831
  id: draft.id,
3725
3832
  typeId: "cart"
@@ -4024,19 +4131,16 @@ function toRegExp(str) {
4024
4131
  return new RegExp(str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"));
4025
4132
  }
4026
4133
  function normalize(regex) {
4027
- if (typeof regex === "string")
4028
- regex = toRegExp(regex);
4134
+ if (typeof regex === "string") regex = toRegExp(regex);
4029
4135
  if (!regex.source.startsWith("^"))
4030
4136
  return new RegExp(`^${regex.source}`, regex.flags);
4031
- else
4032
- return regex;
4137
+ else return regex;
4033
4138
  }
4034
4139
  function first(arr, predicate) {
4035
4140
  let i = 0;
4036
4141
  for (const item of arr) {
4037
4142
  const result = predicate(item, i++);
4038
- if (result)
4039
- return { item, result };
4143
+ if (result) return { item, result };
4040
4144
  }
4041
4145
  }
4042
4146
  var TokenTypes = class {
@@ -4200,8 +4304,7 @@ var Lexer = class {
4200
4304
  */
4201
4305
  peek(position = this._state.position) {
4202
4306
  const read = (i = position) => {
4203
- if (i >= this._state.source.length)
4204
- return EOF(this);
4307
+ if (i >= this._state.source.length) return EOF(this);
4205
4308
  const n = this._tokenTypes.peek(this._state.source, i);
4206
4309
  if (!n || !n.result) {
4207
4310
  throw new Error(
@@ -4221,8 +4324,7 @@ var Lexer = class {
4221
4324
  ) : null;
4222
4325
  };
4223
4326
  const t = read();
4224
- if (t)
4225
- return t;
4327
+ if (t) return t;
4226
4328
  let unexpected = this._state.source.substring(position, position + 1);
4227
4329
  try {
4228
4330
  this.peek(position + 1);
@@ -4244,8 +4346,7 @@ var Lexer = class {
4244
4346
  */
4245
4347
  strpos(i) {
4246
4348
  let lines = this._state.source.substring(0, i).split(/\r?\n/);
4247
- if (!Array.isArray(lines))
4248
- lines = [lines];
4349
+ if (!Array.isArray(lines)) lines = [lines];
4249
4350
  const line = lines.length;
4250
4351
  const column = lines[lines.length - 1].length + 1;
4251
4352
  return { line, column };
@@ -4344,8 +4445,7 @@ var Parser = class {
4344
4445
  * @returns {number} The binding power of the specified token type
4345
4446
  */
4346
4447
  bp(tokenOrType) {
4347
- if (tokenOrType == null)
4348
- return Number.NEGATIVE_INFINITY;
4448
+ if (tokenOrType == null) return Number.NEGATIVE_INFINITY;
4349
4449
  if (tokenOrType && typeof tokenOrType.isEof == "function" && tokenOrType.isEof())
4350
4450
  return Number.NEGATIVE_INFINITY;
4351
4451
  const type = this._type(tokenOrType);
@@ -4390,27 +4490,21 @@ var Parser = class {
4390
4490
  parse(opts = { terminals: [0] }) {
4391
4491
  const stop = opts.stop = opts.stop || createStop();
4392
4492
  const check = () => {
4393
- if (stop.isStopped())
4394
- return false;
4493
+ if (stop.isStopped()) return false;
4395
4494
  const t = this.lexer.peek();
4396
4495
  const bp = this.bp(t);
4397
4496
  return opts.terminals.reduce((canContinue, rbpOrType) => {
4398
- if (!canContinue)
4399
- return false;
4400
- if (typeof rbpOrType == "number")
4401
- return rbpOrType < bp;
4402
- if (typeof rbpOrType == "string")
4403
- return t.type != rbpOrType;
4497
+ if (!canContinue) return false;
4498
+ if (typeof rbpOrType == "number") return rbpOrType < bp;
4499
+ if (typeof rbpOrType == "string") return t.type != rbpOrType;
4404
4500
  }, true);
4405
4501
  };
4406
4502
  const mkinfo = (token) => {
4407
4503
  const bp = this.bp(token);
4408
4504
  return { token, bp, stop, ctx: opts.ctx, options: opts };
4409
4505
  };
4410
- if (!opts.terminals)
4411
- opts.terminals = [0];
4412
- if (opts.terminals.length == 0)
4413
- opts.terminals.push(0);
4506
+ if (!opts.terminals) opts.terminals = [0];
4507
+ if (opts.terminals.length == 0) opts.terminals.push(0);
4414
4508
  let left = this.nud(mkinfo(this.lexer.next()));
4415
4509
  while (check()) {
4416
4510
  const operator = this.lexer.next();
@@ -4613,8 +4707,7 @@ var generateMatchFunc = (filter) => {
4613
4707
  throw new Error(`Syntax error while parsing '${filter}'.`);
4614
4708
  }
4615
4709
  return (obj) => {
4616
- if (!result.children)
4617
- return false;
4710
+ if (!result.children) return false;
4618
4711
  return result.children.some((c) => c.match(obj));
4619
4712
  };
4620
4713
  };
@@ -6225,8 +6318,7 @@ var generateMatchFunc2 = (predicate) => {
6225
6318
  const expr = parser.parse({ terminals: [")"] });
6226
6319
  return (obj, vars) => {
6227
6320
  const value = resolveValue(obj, left);
6228
- if (!value)
6229
- return false;
6321
+ if (!value) return false;
6230
6322
  const maxDistance = resolveSymbol(expr[2], vars);
6231
6323
  const distance = haversineDistance(
6232
6324
  {
@@ -6364,8 +6456,7 @@ var ProductProjectionSearch = class {
6364
6456
  };
6365
6457
  }
6366
6458
  getFacets(params, products) {
6367
- if (!params.facet)
6368
- return {};
6459
+ if (!params.facet) return {};
6369
6460
  const result = {};
6370
6461
  const regexp = new RegExp(/ counting products$/);
6371
6462
  for (let facet of params.facet) {
@@ -6942,112 +7033,6 @@ var QuoteRepository = class extends AbstractResourceRepository {
6942
7033
  }
6943
7034
  };
6944
7035
 
6945
- // src/repositories/quote-request/index.ts
6946
- var import_node_assert4 = __toESM(require("assert"), 1);
6947
-
6948
- // src/repositories/quote-request/actions.ts
6949
- var QuoteRequestUpdateHandler = class extends AbstractUpdateHandler {
6950
- setCustomField(context, resource, { name, value }) {
6951
- if (!resource.custom) {
6952
- throw new Error("Resource has no custom field");
6953
- }
6954
- resource.custom.fields[name] = value;
6955
- }
6956
- setCustomType(context, resource, { type, fields }) {
6957
- if (!type) {
6958
- resource.custom = void 0;
6959
- } else {
6960
- const resolvedType = this._storage.getByResourceIdentifier(
6961
- context.projectKey,
6962
- type
6963
- );
6964
- if (!resolvedType) {
6965
- throw new Error(`Type ${type} not found`);
6966
- }
6967
- resource.custom = {
6968
- type: {
6969
- typeId: "type",
6970
- id: resolvedType.id
6971
- },
6972
- fields: fields || {}
6973
- };
6974
- }
6975
- }
6976
- transitionState(context, resource, { state, force }) {
6977
- let stateReference = void 0;
6978
- if (state) {
6979
- stateReference = getReferenceFromResourceIdentifier(
6980
- state,
6981
- context.projectKey,
6982
- this._storage
6983
- );
6984
- resource.state = stateReference;
6985
- } else {
6986
- throw new CommercetoolsError(
6987
- {
6988
- code: "InvalidJsonInput",
6989
- message: "Request body does not contain valid JSON.",
6990
- detailedErrorMessage: "actions -> state: Missing required value"
6991
- },
6992
- 400
6993
- );
6994
- }
6995
- return resource;
6996
- }
6997
- };
6998
-
6999
- // src/repositories/quote-request/index.ts
7000
- var QuoteRequestRepository = class extends AbstractResourceRepository {
7001
- constructor(config) {
7002
- super("quote-request", config);
7003
- this.actions = new QuoteRequestUpdateHandler(config.storage);
7004
- }
7005
- create(context, draft) {
7006
- (0, import_node_assert4.default)(draft.cart, "draft.cart is missing");
7007
- return this.createFromCart(context, {
7008
- id: draft.cart.id,
7009
- typeId: "cart"
7010
- });
7011
- }
7012
- createFromCart(context, cartReference) {
7013
- const cart = this._storage.getByResourceIdentifier(
7014
- context.projectKey,
7015
- cartReference
7016
- );
7017
- if (!cart) {
7018
- throw new Error("Cannot find cart");
7019
- }
7020
- if (!cart.customerId) {
7021
- throw new Error("Cart does not have a customer");
7022
- }
7023
- const resource = {
7024
- ...getBaseResourceProperties(),
7025
- billingAddress: cart.billingAddress,
7026
- cart: cartReference,
7027
- country: cart.country,
7028
- custom: cart.custom,
7029
- customer: {
7030
- typeId: "customer",
7031
- id: cart.customerId
7032
- },
7033
- customerGroup: cart.customerGroup,
7034
- customLineItems: [],
7035
- directDiscounts: cart.directDiscounts,
7036
- lineItems: cart.lineItems,
7037
- paymentInfo: cart.paymentInfo,
7038
- quoteRequestState: "Submitted",
7039
- shippingAddress: cart.shippingAddress,
7040
- taxCalculationMode: cart.taxCalculationMode,
7041
- taxedPrice: cart.taxedPrice,
7042
- taxMode: cart.taxMode,
7043
- taxRoundingMode: cart.taxRoundingMode,
7044
- totalPrice: cart.totalPrice,
7045
- store: cart.store
7046
- };
7047
- return this.saveNew(context, resource);
7048
- }
7049
- };
7050
-
7051
7036
  // src/repositories/quote-staged/actions.ts
7052
7037
  var StagedQuoteUpdateHandler = class extends AbstractUpdateHandler {
7053
7038
  setCustomField(context, resource, { name, value }) {
@@ -7139,8 +7124,7 @@ var ReviewRepository = class extends AbstractResourceRepository {
7139
7124
  super("review", config);
7140
7125
  }
7141
7126
  create(context, draft) {
7142
- if (!draft.target)
7143
- throw new Error("Missing target");
7127
+ if (!draft.target) throw new Error("Missing target");
7144
7128
  const resource = {
7145
7129
  ...getBaseResourceProperties(),
7146
7130
  locale: draft.locale,
@@ -7746,8 +7730,7 @@ var StoreRepository = class extends AbstractResourceRepository {
7746
7730
  }
7747
7731
  };
7748
7732
  var transformChannels = (context, storage, channels) => {
7749
- if (!channels)
7750
- return [];
7733
+ if (!channels) return [];
7751
7734
  return channels.map(
7752
7735
  (ref) => getReferenceFromResourceIdentifier(
7753
7736
  ref,
@@ -8044,7 +8027,8 @@ var ZoneUpdateHandler = class extends AbstractUpdateHandler {
8044
8027
  var createRepositories = (config) => ({
8045
8028
  "as-associate": {
8046
8029
  cart: new AsAssociateCartRepository(config),
8047
- order: new AsAssociateOrderRepository(config)
8030
+ order: new AsAssociateOrderRepository(config),
8031
+ "quote-request": new AsAssociateQuoteRequestRepository(config)
8048
8032
  },
8049
8033
  "associate-role": new AssociateRoleRepository(config),
8050
8034
  "attribute-group": new AttributeGroupRepository(config),
@@ -8090,7 +8074,7 @@ var createRepositories = (config) => ({
8090
8074
  });
8091
8075
 
8092
8076
  // src/services/as-associate.ts
8093
- var import_express5 = require("express");
8077
+ var import_express6 = require("express");
8094
8078
 
8095
8079
  // src/services/as-associate-cart.ts
8096
8080
  var import_express3 = require("express");
@@ -8164,14 +8148,25 @@ var AbstractService = class {
8164
8148
  }
8165
8149
  }
8166
8150
  const result = this.repository.query(getRepositoryContext(request), params);
8167
- return response.status(200).send(result);
8151
+ response.status(200).send(result);
8152
+ return;
8168
8153
  }
8169
8154
  getWithId(request, response) {
8170
8155
  const result = this._expandWithId(request, request.params.id);
8171
8156
  if (!result) {
8172
- return response.status(404).send();
8157
+ response.status(404).send({
8158
+ statusCode: 404,
8159
+ message: `The Resource with ID '${request.params.id} was not found.`,
8160
+ errors: [
8161
+ {
8162
+ code: "ResourceNotFound",
8163
+ message: `The Resource with ID '${request.params.id} was not found.`
8164
+ }
8165
+ ]
8166
+ });
8167
+ return;
8173
8168
  }
8174
- return response.status(200).send(result);
8169
+ response.status(200).send(result);
8175
8170
  }
8176
8171
  getWithKey(request, response) {
8177
8172
  const result = this.repository.getByKey(
@@ -8181,9 +8176,20 @@ var AbstractService = class {
8181
8176
  expand: this._parseParam(request.query.expand)
8182
8177
  }
8183
8178
  );
8184
- if (!result)
8185
- return response.status(404).send();
8186
- return response.status(200).send(result);
8179
+ if (!result) {
8180
+ response.status(404).send({
8181
+ statusCode: 404,
8182
+ message: `The Resource with key '${request.params.id} was not found.`,
8183
+ errors: [
8184
+ {
8185
+ code: "ResourceNotFound",
8186
+ message: `The Resource with key '${request.params.id} was not found.`
8187
+ }
8188
+ ]
8189
+ });
8190
+ return;
8191
+ }
8192
+ response.status(200).send(result);
8187
8193
  }
8188
8194
  deleteWithId(request, response) {
8189
8195
  const result = this.repository.delete(
@@ -8194,9 +8200,10 @@ var AbstractService = class {
8194
8200
  }
8195
8201
  );
8196
8202
  if (!result) {
8197
- return response.status(404).send("Not found");
8203
+ response.sendStatus(404);
8204
+ return;
8198
8205
  }
8199
- return response.status(200).send(result);
8206
+ response.status(200).send(result);
8200
8207
  }
8201
8208
  deleteWithKey(request, response) {
8202
8209
  const resource = this.repository.getByKey(
@@ -8204,7 +8211,8 @@ var AbstractService = class {
8204
8211
  request.params.key
8205
8212
  );
8206
8213
  if (!resource) {
8207
- return response.status(404).send("Not found");
8214
+ response.sendStatus(404);
8215
+ return;
8208
8216
  }
8209
8217
  const result = this.repository.delete(
8210
8218
  getRepositoryContext(request),
@@ -8214,9 +8222,10 @@ var AbstractService = class {
8214
8222
  }
8215
8223
  );
8216
8224
  if (!result) {
8217
- return response.status(404).send("Not found");
8225
+ response.sendStatus(404);
8226
+ return;
8218
8227
  }
8219
- return response.status(200).send(result);
8228
+ response.status(200).send(result);
8220
8229
  }
8221
8230
  post(request, response) {
8222
8231
  const draft = request.body;
@@ -8225,7 +8234,7 @@ var AbstractService = class {
8225
8234
  draft
8226
8235
  );
8227
8236
  const result = this._expandWithId(request, resource.id);
8228
- return response.status(this.createStatusCode).send(result);
8237
+ response.status(this.createStatusCode).send(result);
8229
8238
  }
8230
8239
  postWithId(request, response) {
8231
8240
  const updateRequest = validateData(
@@ -8237,7 +8246,8 @@ var AbstractService = class {
8237
8246
  request.params.id
8238
8247
  );
8239
8248
  if (!resource) {
8240
- return response.status(404).send("Not found");
8249
+ response.sendStatus(404);
8250
+ return;
8241
8251
  }
8242
8252
  const updatedResource = this.repository.processUpdateActions(
8243
8253
  getRepositoryContext(request),
@@ -8246,7 +8256,7 @@ var AbstractService = class {
8246
8256
  updateRequest.actions
8247
8257
  );
8248
8258
  const result = this._expandWithId(request, updatedResource.id);
8249
- return response.status(200).send(result);
8259
+ response.status(200).send(result);
8250
8260
  }
8251
8261
  postWithKey(request, response) {
8252
8262
  const updateRequest = validateData(
@@ -8258,7 +8268,8 @@ var AbstractService = class {
8258
8268
  request.params.key
8259
8269
  );
8260
8270
  if (!resource) {
8261
- return response.status(404).send("Not found");
8271
+ response.sendStatus(404);
8272
+ return;
8262
8273
  }
8263
8274
  const updatedResource = this.repository.processUpdateActions(
8264
8275
  getRepositoryContext(request),
@@ -8267,7 +8278,7 @@ var AbstractService = class {
8267
8278
  updateRequest.actions
8268
8279
  );
8269
8280
  const result = this._expandWithId(request, updatedResource.id);
8270
- return response.status(200).send(result);
8281
+ response.status(200).send(result);
8271
8282
  }
8272
8283
  _expandWithId(request, resourceId) {
8273
8284
  const result = this.repository.get(
@@ -8332,15 +8343,43 @@ var AsAssociateOrderService = class extends AbstractService {
8332
8343
  }
8333
8344
  };
8334
8345
 
8346
+ // src/services/as-associate-quote-request.ts
8347
+ var import_express5 = require("express");
8348
+ var AsAssociateQuoteRequestService = class extends AbstractService {
8349
+ repository;
8350
+ constructor(parent, repository) {
8351
+ super(parent);
8352
+ this.repository = repository;
8353
+ }
8354
+ getBasePath() {
8355
+ return "quote-requests";
8356
+ }
8357
+ registerRoutes(parent) {
8358
+ const basePath = this.getBasePath();
8359
+ const router = (0, import_express5.Router)({ mergeParams: true });
8360
+ this.extraRoutes(router);
8361
+ router.get("/", this.get.bind(this));
8362
+ router.get("/:id", this.getWithId.bind(this));
8363
+ router.delete("/:id", this.deleteWithId.bind(this));
8364
+ router.post("/", this.post.bind(this));
8365
+ router.post("/:id", this.postWithId.bind(this));
8366
+ parent.use(`/${basePath}`, router);
8367
+ }
8368
+ };
8369
+
8335
8370
  // src/services/as-associate.ts
8336
8371
  var AsAssociateService = class {
8337
8372
  router;
8338
8373
  subServices;
8339
8374
  constructor(parent, repositories) {
8340
- this.router = (0, import_express5.Router)({ mergeParams: true });
8375
+ this.router = (0, import_express6.Router)({ mergeParams: true });
8341
8376
  this.subServices = {
8342
8377
  order: new AsAssociateOrderService(this.router, repositories.order),
8343
- cart: new AsAssociateCartService(this.router, repositories.cart)
8378
+ cart: new AsAssociateCartService(this.router, repositories.cart),
8379
+ "quote-request": new AsAssociateQuoteRequestService(
8380
+ this.router,
8381
+ repositories["quote-request"]
8382
+ )
8344
8383
  };
8345
8384
  parent.use(
8346
8385
  "/as-associate/:associateId/in-business-unit/key=:businessUnitId",
@@ -8404,7 +8443,8 @@ var CartService = class extends AbstractService {
8404
8443
  const context = getRepositoryContext(request);
8405
8444
  const cartOrOrder = request.body.reference.typeId === "order" ? this.orderRepository.get(context, request.body.reference.id) : this.repository.get(context, request.body.reference.id);
8406
8445
  if (!cartOrOrder) {
8407
- return response.status(400).send();
8446
+ response.status(400).send();
8447
+ return;
8408
8448
  }
8409
8449
  const cartDraft = {
8410
8450
  ...cartOrOrder,
@@ -8419,7 +8459,7 @@ var CartService = class extends AbstractService {
8419
8459
  }))
8420
8460
  };
8421
8461
  const newCart = this.repository.create(context, cartDraft);
8422
- return response.status(200).send(newCart);
8462
+ response.status(200).send(newCart);
8423
8463
  }
8424
8464
  };
8425
8465
 
@@ -8491,7 +8531,7 @@ var CustomObjectService = class extends AbstractService {
8491
8531
  offset: offset !== void 0 ? Number(offset) : void 0
8492
8532
  }
8493
8533
  );
8494
- return response.status(200).send(result);
8534
+ response.status(200).send(result);
8495
8535
  }
8496
8536
  getWithContainerAndKey(request, response) {
8497
8537
  const result = this.repository.getWithContainerAndKey(
@@ -8500,9 +8540,10 @@ var CustomObjectService = class extends AbstractService {
8500
8540
  request.params.key
8501
8541
  );
8502
8542
  if (!result) {
8503
- return response.status(404).send("Not Found");
8543
+ response.sendStatus(404);
8544
+ return;
8504
8545
  }
8505
- return response.status(200).send(result);
8546
+ response.status(200).send(result);
8506
8547
  }
8507
8548
  createWithContainerAndKey(request, response) {
8508
8549
  const draft = {
@@ -8511,7 +8552,7 @@ var CustomObjectService = class extends AbstractService {
8511
8552
  container: request.params.container
8512
8553
  };
8513
8554
  const result = this.repository.create(getRepositoryContext(request), draft);
8514
- return response.status(200).send(result);
8555
+ response.status(200).send(result);
8515
8556
  }
8516
8557
  deleteWithContainerAndKey(request, response) {
8517
8558
  const current = this.repository.getWithContainerAndKey(
@@ -8520,13 +8561,14 @@ var CustomObjectService = class extends AbstractService {
8520
8561
  request.params.key
8521
8562
  );
8522
8563
  if (!current) {
8523
- return response.status(404).send("Not Found");
8564
+ response.sendStatus(404);
8565
+ return;
8524
8566
  }
8525
8567
  const result = this.repository.delete(
8526
8568
  getRepositoryContext(request),
8527
8569
  current.id
8528
8570
  );
8529
- return response.status(200).send(result);
8571
+ response.status(200).send(result);
8530
8572
  }
8531
8573
  };
8532
8574
 
@@ -8555,21 +8597,21 @@ var CustomerService = class extends AbstractService {
8555
8597
  const result = {
8556
8598
  customer: expanded
8557
8599
  };
8558
- return response.status(this.createStatusCode).send(result);
8600
+ response.status(this.createStatusCode).send(result);
8559
8601
  }
8560
8602
  passwordResetToken(request, response) {
8561
8603
  const customer = this.repository.passwordResetToken(
8562
8604
  getRepositoryContext(request),
8563
8605
  request.body
8564
8606
  );
8565
- return response.status(200).send(customer);
8607
+ response.status(200).send(customer);
8566
8608
  }
8567
8609
  passwordReset(request, response) {
8568
8610
  const customer = this.repository.passwordReset(
8569
8611
  getRepositoryContext(request),
8570
8612
  request.body
8571
8613
  );
8572
- return response.status(200).send(customer);
8614
+ response.status(200).send(customer);
8573
8615
  }
8574
8616
  confirmEmailToken(request, response) {
8575
8617
  const id = request.body.id;
@@ -8577,7 +8619,7 @@ var CustomerService = class extends AbstractService {
8577
8619
  getRepositoryContext(request),
8578
8620
  id
8579
8621
  );
8580
- return response.status(200).send(token);
8622
+ response.status(200).send(token);
8581
8623
  }
8582
8624
  };
8583
8625
 
@@ -8630,7 +8672,7 @@ var InventoryEntryService = class extends AbstractService {
8630
8672
  };
8631
8673
 
8632
8674
  // src/services/my-business-unit.ts
8633
- var import_express6 = require("express");
8675
+ var import_express7 = require("express");
8634
8676
  var MyBusinessUnitService = class extends AbstractService {
8635
8677
  repository;
8636
8678
  constructor(parent, repository) {
@@ -8642,7 +8684,7 @@ var MyBusinessUnitService = class extends AbstractService {
8642
8684
  }
8643
8685
  registerRoutes(parent) {
8644
8686
  const basePath = this.getBasePath();
8645
- const router = (0, import_express6.Router)({ mergeParams: true });
8687
+ const router = (0, import_express7.Router)({ mergeParams: true });
8646
8688
  this.extraRoutes(router);
8647
8689
  router.get("/business-units/", this.get.bind(this));
8648
8690
  parent.use(`/${basePath}`, router);
@@ -8650,7 +8692,7 @@ var MyBusinessUnitService = class extends AbstractService {
8650
8692
  };
8651
8693
 
8652
8694
  // src/services/my-cart.ts
8653
- var import_express7 = require("express");
8695
+ var import_express8 = require("express");
8654
8696
  var MyCartService = class extends AbstractService {
8655
8697
  repository;
8656
8698
  constructor(parent, repository) {
@@ -8662,7 +8704,7 @@ var MyCartService = class extends AbstractService {
8662
8704
  }
8663
8705
  registerRoutes(parent) {
8664
8706
  const basePath = this.getBasePath();
8665
- const router = (0, import_express7.Router)({ mergeParams: true });
8707
+ const router = (0, import_express8.Router)({ mergeParams: true });
8666
8708
  this.extraRoutes(router);
8667
8709
  router.get("/active-cart", this.activeCart.bind(this));
8668
8710
  router.get("/carts/", this.get.bind(this));
@@ -8675,14 +8717,15 @@ var MyCartService = class extends AbstractService {
8675
8717
  activeCart(request, response) {
8676
8718
  const resource = this.repository.getActiveCart(request.params.projectKey);
8677
8719
  if (!resource) {
8678
- return response.status(404).send("Not found");
8720
+ response.sendStatus(404);
8721
+ return;
8679
8722
  }
8680
- return response.status(200).send(resource);
8723
+ response.status(200).send(resource);
8681
8724
  }
8682
8725
  };
8683
8726
 
8684
8727
  // src/services/my-customer.ts
8685
- var import_express8 = require("express");
8728
+ var import_express9 = require("express");
8686
8729
  var MyCustomerService = class extends AbstractService {
8687
8730
  repository;
8688
8731
  constructor(parent, repository) {
@@ -8694,7 +8737,7 @@ var MyCustomerService = class extends AbstractService {
8694
8737
  }
8695
8738
  registerRoutes(parent) {
8696
8739
  const basePath = this.getBasePath();
8697
- const router = (0, import_express8.Router)({ mergeParams: true });
8740
+ const router = (0, import_express9.Router)({ mergeParams: true });
8698
8741
  this.extraRoutes(router);
8699
8742
  router.get("", this.getMe.bind(this));
8700
8743
  router.post("", this.updateMe.bind(this));
@@ -8709,14 +8752,16 @@ var MyCustomerService = class extends AbstractService {
8709
8752
  getMe(request, response) {
8710
8753
  const resource = this.repository.getMe(getRepositoryContext(request));
8711
8754
  if (!resource) {
8712
- return response.status(404).send("Not found");
8755
+ response.sendStatus(404);
8756
+ return;
8713
8757
  }
8714
- return response.status(200).send(resource);
8758
+ response.status(200).send(resource);
8715
8759
  }
8716
8760
  updateMe(request, response) {
8717
8761
  const resource = this.repository.getMe(getRepositoryContext(request));
8718
8762
  if (!resource) {
8719
- return response.status(404).send("Not found");
8763
+ response.sendStatus(404);
8764
+ return;
8720
8765
  }
8721
8766
  const updateRequest = validateData(
8722
8767
  request.body,
@@ -8729,14 +8774,15 @@ var MyCustomerService = class extends AbstractService {
8729
8774
  updateRequest.actions
8730
8775
  );
8731
8776
  const result = this._expandWithId(request, updatedResource.id);
8732
- return response.status(200).send(result);
8777
+ response.status(200).send(result);
8733
8778
  }
8734
8779
  deleteMe(request, response) {
8735
8780
  const resource = this.repository.deleteMe(getRepositoryContext(request));
8736
8781
  if (!resource) {
8737
- return response.status(404).send("Not found");
8782
+ response.sendStatus(404);
8783
+ return;
8738
8784
  }
8739
- return response.status(200).send(resource);
8785
+ response.status(200).send(resource);
8740
8786
  }
8741
8787
  signUp(request, response) {
8742
8788
  const draft = request.body;
@@ -8745,28 +8791,28 @@ var MyCustomerService = class extends AbstractService {
8745
8791
  draft
8746
8792
  );
8747
8793
  const result = this._expandWithId(request, resource.id);
8748
- return response.status(this.createStatusCode).send({ customer: result });
8794
+ response.status(this.createStatusCode).send({ customer: result });
8749
8795
  }
8750
8796
  changePassword(request, response) {
8751
8797
  const customer = this.repository.changePassword(
8752
8798
  getRepositoryContext(request),
8753
8799
  request.body
8754
8800
  );
8755
- return response.status(200).send(customer);
8801
+ response.status(200).send(customer);
8756
8802
  }
8757
8803
  resetPassword(request, response) {
8758
8804
  const customer = this.repository.passwordReset(
8759
8805
  getRepositoryContext(request),
8760
8806
  request.body
8761
8807
  );
8762
- return response.status(200).send(customer);
8808
+ response.status(200).send(customer);
8763
8809
  }
8764
8810
  emailConfirm(request, response) {
8765
8811
  const customer = this.repository.confirmEmail(
8766
8812
  getRepositoryContext(request),
8767
8813
  request.body
8768
8814
  );
8769
- return response.status(200).send(customer);
8815
+ response.status(200).send(customer);
8770
8816
  }
8771
8817
  signIn(request, response) {
8772
8818
  const { email, password } = request.body;
@@ -8775,7 +8821,7 @@ var MyCustomerService = class extends AbstractService {
8775
8821
  where: [`email = "${email}"`, `password = "${encodedPassword}"`]
8776
8822
  });
8777
8823
  if (result.count === 0) {
8778
- return response.status(400).send({
8824
+ response.status(400).send({
8779
8825
  message: "Account with the given credentials not found.",
8780
8826
  errors: [
8781
8827
  {
@@ -8784,13 +8830,14 @@ var MyCustomerService = class extends AbstractService {
8784
8830
  }
8785
8831
  ]
8786
8832
  });
8833
+ return;
8787
8834
  }
8788
- return response.status(200).send({ customer: result.results[0] });
8835
+ response.status(200).send({ customer: result.results[0] });
8789
8836
  }
8790
8837
  };
8791
8838
 
8792
8839
  // src/services/my-order.ts
8793
- var import_express9 = require("express");
8840
+ var import_express10 = require("express");
8794
8841
  var MyOrderService = class extends AbstractService {
8795
8842
  repository;
8796
8843
  constructor(parent, repository) {
@@ -8802,7 +8849,7 @@ var MyOrderService = class extends AbstractService {
8802
8849
  }
8803
8850
  registerRoutes(parent) {
8804
8851
  const basePath = this.getBasePath();
8805
- const router = (0, import_express9.Router)({ mergeParams: true });
8852
+ const router = (0, import_express10.Router)({ mergeParams: true });
8806
8853
  this.extraRoutes(router);
8807
8854
  router.get("/orders/", this.get.bind(this));
8808
8855
  router.get("/orders/:id", this.getWithId.bind(this));
@@ -8860,7 +8907,7 @@ var OrderService = class extends AbstractService {
8860
8907
  getRepositoryContext(request),
8861
8908
  importDraft
8862
8909
  );
8863
- return response.status(200).send(resource);
8910
+ response.status(200).send(resource);
8864
8911
  }
8865
8912
  getWithOrderNumber(request, response) {
8866
8913
  const resource = this.repository.getWithOrderNumber(
@@ -8870,9 +8917,10 @@ var OrderService = class extends AbstractService {
8870
8917
  request.query
8871
8918
  );
8872
8919
  if (resource) {
8873
- return response.status(200).send(resource);
8920
+ response.status(200).send(resource);
8921
+ return;
8874
8922
  }
8875
- return response.status(404).send("Not found");
8923
+ response.sendStatus(404);
8876
8924
  }
8877
8925
  };
8878
8926
 
@@ -8907,7 +8955,7 @@ var ProductService = class extends AbstractService {
8907
8955
  getRepositoryContext(request),
8908
8956
  searchBody
8909
8957
  );
8910
- return response.status(200).send(resource);
8958
+ response.status(200).send(resource);
8911
8959
  }
8912
8960
  };
8913
8961
 
@@ -8946,7 +8994,7 @@ var ProductProjectionService = class extends AbstractService {
8946
8994
  limit: limit !== void 0 ? Number(limit) : void 0,
8947
8995
  offset: offset !== void 0 ? Number(offset) : void 0
8948
8996
  });
8949
- return response.status(200).send(result);
8997
+ response.status(200).send(result);
8950
8998
  }
8951
8999
  search(request, response) {
8952
9000
  const query = request.query;
@@ -8969,7 +9017,7 @@ var ProductProjectionService = class extends AbstractService {
8969
9017
  getRepositoryContext(request),
8970
9018
  searchParams
8971
9019
  );
8972
- return response.status(200).send(resource);
9020
+ response.status(200).send(resource);
8973
9021
  }
8974
9022
  };
8975
9023
 
@@ -9062,7 +9110,8 @@ var ShippingMethodService = class extends AbstractService {
9062
9110
  matchingCart(request, response) {
9063
9111
  const cartId = queryParamsValue(request.query.cartId);
9064
9112
  if (!cartId) {
9065
- return response.status(400).send();
9113
+ response.status(400).send();
9114
+ return;
9066
9115
  }
9067
9116
  const result = this.repository.matchingCart(
9068
9117
  getRepositoryContext(request),
@@ -9071,7 +9120,8 @@ var ShippingMethodService = class extends AbstractService {
9071
9120
  expand: this._parseParam(request.query.expand)
9072
9121
  }
9073
9122
  );
9074
- return response.status(200).send(result);
9123
+ response.status(200).send(result);
9124
+ return;
9075
9125
  }
9076
9126
  };
9077
9127
 
@@ -9255,7 +9305,7 @@ var ProjectService = class {
9255
9305
  }
9256
9306
  get(request, response) {
9257
9307
  const project = this.repository.get(getRepositoryContext(request));
9258
- return response.status(200).send(project);
9308
+ response.status(200).send(project);
9259
9309
  }
9260
9310
  post(request, response) {
9261
9311
  const updateRequest = validateData(
@@ -9264,7 +9314,8 @@ var ProjectService = class {
9264
9314
  );
9265
9315
  const project = this.repository.get(getRepositoryContext(request));
9266
9316
  if (!project) {
9267
- return response.status(404).send({});
9317
+ response.sendStatus(404);
9318
+ return;
9268
9319
  }
9269
9320
  const updatedResource = this.repository.processUpdateActions(
9270
9321
  getRepositoryContext(request),
@@ -9272,7 +9323,7 @@ var ProjectService = class {
9272
9323
  updateRequest.version,
9273
9324
  updateRequest.actions
9274
9325
  );
9275
- return response.status(200).send(updatedResource);
9326
+ response.status(200).send(updatedResource);
9276
9327
  }
9277
9328
  };
9278
9329
 
@@ -9328,8 +9379,7 @@ var InMemoryStorage = class extends AbstractStorage {
9328
9379
  getProject = (projectKey) => this.addProject(projectKey);
9329
9380
  // Expand resolves a nested reference and injects the object in the given obj
9330
9381
  expand = (projectKey, obj, clause) => {
9331
- if (!clause)
9332
- return obj;
9382
+ if (!clause) return obj;
9333
9383
  const newObj = cloneObject(obj);
9334
9384
  if (Array.isArray(clause)) {
9335
9385
  for (const c of clause) {
@@ -9360,15 +9410,13 @@ var InMemoryStorage = class extends AbstractStorage {
9360
9410
  this._resolveReference(projectKey, reference, params.rest);
9361
9411
  } else if (params.index === "*") {
9362
9412
  const reference = obj[params.element];
9363
- if (reference === void 0 || !Array.isArray(reference))
9364
- return;
9413
+ if (reference === void 0 || !Array.isArray(reference)) return;
9365
9414
  for (const itemRef of reference) {
9366
9415
  this._resolveReference(projectKey, itemRef, params.rest);
9367
9416
  }
9368
9417
  } else {
9369
9418
  const reference = obj[params.element][params.index];
9370
- if (reference === void 0)
9371
- return;
9419
+ if (reference === void 0) return;
9372
9420
  this._resolveReference(projectKey, reference, params.rest);
9373
9421
  }
9374
9422
  };
@@ -9579,8 +9627,7 @@ var InMemoryStorage = class extends AbstractStorage {
9579
9627
  });
9580
9628
  }
9581
9629
  _resolveReference(projectKey, reference, expand) {
9582
- if (reference === void 0)
9583
- return;
9630
+ if (reference === void 0) return;
9584
9631
  if (reference.typeId !== void 0 && (reference.id !== void 0 || reference.key !== void 0)) {
9585
9632
  if (!reference.obj) {
9586
9633
  reference.obj = this.getByResourceIdentifier(projectKey, {
@@ -9696,9 +9743,9 @@ var CommercetoolsMock = class {
9696
9743
  };
9697
9744
  this._repositories = createRepositories(config);
9698
9745
  this._oauth2.setCustomerRepository(this._repositories.customer);
9699
- const app = (0, import_express10.default)();
9700
- const projectRouter = import_express10.default.Router({ mergeParams: true });
9701
- projectRouter.use(import_express10.default.json());
9746
+ const app = (0, import_express11.default)();
9747
+ const projectRouter = import_express11.default.Router({ mergeParams: true });
9748
+ projectRouter.use(import_express11.default.json());
9702
9749
  if (!options?.silent) {
9703
9750
  app.use((0, import_morgan.default)("tiny"));
9704
9751
  }
@@ -9722,22 +9769,25 @@ var CommercetoolsMock = class {
9722
9769
  app.use((err, req, resp, next) => {
9723
9770
  if (err instanceof CommercetoolsError) {
9724
9771
  if (err.errors?.length > 0) {
9725
- return resp.status(err.statusCode).send({
9772
+ resp.status(err.statusCode).send({
9726
9773
  statusCode: err.statusCode,
9727
9774
  message: err.message,
9728
9775
  errors: err.errors
9729
9776
  });
9777
+ return;
9730
9778
  }
9731
- return resp.status(err.statusCode).send({
9779
+ resp.status(err.statusCode).send({
9732
9780
  statusCode: err.statusCode,
9733
9781
  message: err.message,
9734
9782
  errors: [err.info]
9735
9783
  });
9784
+ return;
9736
9785
  }
9737
9786
  console.error(err);
9738
- return resp.status(500).send({
9787
+ resp.status(500).send({
9739
9788
  error: err.message
9740
9789
  });
9790
+ return;
9741
9791
  });
9742
9792
  return app;
9743
9793
  }