@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.js CHANGED
@@ -144,7 +144,7 @@ var getBearerToken = (request) => {
144
144
  };
145
145
 
146
146
  // src/oauth/store.ts
147
- import { randomBytes } from "crypto";
147
+ import { randomBytes } from "node:crypto";
148
148
  import { v4 as uuidv43 } from "uuid";
149
149
  var OAuth2Store = class {
150
150
  tokens = [];
@@ -209,8 +209,7 @@ var OAuth2Store = class {
209
209
  };
210
210
  }
211
211
  validateToken(token) {
212
- if (!this.validate)
213
- return true;
212
+ if (!this.validate) return true;
214
213
  const foundToken = this.tokens.find((t) => t.access_token === token);
215
214
  if (foundToken) {
216
215
  return true;
@@ -325,7 +324,7 @@ var OAuth2Server = class {
325
324
  )
326
325
  );
327
326
  }
328
- const grantType = request.query.grant_type || request.body.grant_type;
327
+ const grantType = request.query.grant_type || request.body?.grant_type;
329
328
  if (!grantType) {
330
329
  return next(
331
330
  new CommercetoolsError(
@@ -343,10 +342,11 @@ var OAuth2Server = class {
343
342
  request.credentials.clientSecret,
344
343
  request.query.scope?.toString()
345
344
  );
346
- return response.status(200).send(token);
345
+ response.status(200).send(token);
346
+ return;
347
347
  }
348
348
  if (grantType === "refresh_token") {
349
- const refreshToken = request.query.refresh_token?.toString() || request.body.refresh_token;
349
+ const refreshToken = request.query.refresh_token?.toString() || request.body?.refresh_token;
350
350
  if (!refreshToken) {
351
351
  return next(
352
352
  new CommercetoolsError(
@@ -376,7 +376,8 @@ var OAuth2Server = class {
376
376
  )
377
377
  );
378
378
  }
379
- return response.status(200).send(token);
379
+ response.status(200).send(token);
380
+ return;
380
381
  }
381
382
  return next(
382
383
  new CommercetoolsError(
@@ -390,7 +391,7 @@ var OAuth2Server = class {
390
391
  }
391
392
  async customerTokenHandler(request, response, next) {
392
393
  const projectKey = request.params.projectKey;
393
- const grantType = request.query.grant_type || request.body.grant_type;
394
+ const grantType = request.query.grant_type || request.body?.grant_type;
394
395
  if (!grantType) {
395
396
  return next(
396
397
  new CommercetoolsError(
@@ -403,11 +404,11 @@ var OAuth2Server = class {
403
404
  );
404
405
  }
405
406
  if (grantType === "password") {
406
- const username = request.query.username || request.body.username;
407
+ const username = request.query.username || request.body?.username;
407
408
  const password = hashPassword(
408
409
  request.query.password || request.body.password
409
410
  );
410
- const scope = request.query.scope?.toString() || request.body.scope?.toString();
411
+ const scope = request.query.scope?.toString() || request.body?.scope?.toString();
411
412
  const result = this.customerRepository.query(
412
413
  { projectKey: request.params.projectKey },
413
414
  {
@@ -427,7 +428,7 @@ var OAuth2Server = class {
427
428
  }
428
429
  const customer = result.results[0];
429
430
  const token = this.store.getCustomerToken(projectKey, customer.id, scope);
430
- return response.status(200).send(token);
431
+ response.status(200).send(token);
431
432
  }
432
433
  }
433
434
  async inStoreCustomerTokenHandler(request, response, next) {
@@ -470,7 +471,8 @@ var OAuth2Server = class {
470
471
  }
471
472
  const customer = result.results[0];
472
473
  const token = this.store.getCustomerToken(projectKey, customer.id, scope);
473
- return response.status(200).send(token);
474
+ response.status(200).send(token);
475
+ return;
474
476
  }
475
477
  }
476
478
  async anonymousTokenHandler(request, response, next) {
@@ -488,14 +490,15 @@ var OAuth2Server = class {
488
490
  );
489
491
  }
490
492
  if (grantType === "client_credentials") {
491
- const scope = request.query.scope?.toString() || request.body.scope?.toString();
493
+ const scope = request.query.scope?.toString() || request.body?.scope?.toString();
492
494
  const anonymous_id = void 0;
493
495
  const token = this.store.getAnonymousToken(
494
496
  projectKey,
495
497
  anonymous_id,
496
498
  scope
497
499
  );
498
- return response.status(200).send(token);
500
+ response.status(200).send(token);
501
+ return;
499
502
  }
500
503
  }
501
504
  };
@@ -553,8 +556,7 @@ import deepEqual from "deep-equal";
553
556
 
554
557
  // src/repositories/errors.ts
555
558
  var checkConcurrentModification = (currentVersion, expectedVersion, identifier) => {
556
- if (currentVersion === expectedVersion)
557
- return;
559
+ if (currentVersion === expectedVersion) return;
558
560
  throw new CommercetoolsError(
559
561
  {
560
562
  message: `Object ${identifier} has a different version than expected. Expected: ${expectedVersion} - Actual: ${currentVersion}.`,
@@ -745,8 +747,7 @@ import { v4 as uuidv46 } from "uuid";
745
747
  import { Decimal } from "decimal.js/decimal";
746
748
  import { v4 as uuidv44 } from "uuid";
747
749
  var createAddress = (base, projectKey, storage) => {
748
- if (!base)
749
- return void 0;
750
+ if (!base) return void 0;
750
751
  if (!base?.country) {
751
752
  throw new Error("Country is required");
752
753
  }
@@ -755,12 +756,9 @@ var createAddress = (base, projectKey, storage) => {
755
756
  };
756
757
  };
757
758
  var createCustomFields = (draft, projectKey, storage) => {
758
- if (!draft)
759
- return void 0;
760
- if (!draft.type)
761
- return void 0;
762
- if (!draft.type.typeId)
763
- return void 0;
759
+ if (!draft) return void 0;
760
+ if (!draft.type) return void 0;
761
+ if (!draft.type.typeId) return void 0;
764
762
  const typeResource = storage.getByResourceIdentifier(
765
763
  projectKey,
766
764
  draft.type
@@ -843,8 +841,7 @@ var createTypedMoney = (value) => {
843
841
  return result;
844
842
  };
845
843
  var resolveStoreReference = (ref, projectKey, storage) => {
846
- if (!ref)
847
- return void 0;
844
+ if (!ref) return void 0;
848
845
  const resource = storage.getByResourceIdentifier(projectKey, ref);
849
846
  if (!resource) {
850
847
  throw new Error("No such store");
@@ -912,8 +909,7 @@ var getRepositoryContext = (request) => ({
912
909
  storeKey: request.params.storeKey
913
910
  });
914
911
  var createAssociate = (a, projectKey, storage) => {
915
- if (!a)
916
- return void 0;
912
+ if (!a) return void 0;
917
913
  if (!a.associateRoleAssignments) {
918
914
  throw new Error("AssociateRoleAssignments is required");
919
915
  }
@@ -1000,6 +996,10 @@ var markMatchingShippingRatePriceTiers = (cart, tiers) => {
1000
996
  switch (tierType) {
1001
997
  case "CartValue":
1002
998
  return markMatchingCartValueTiers(cart, tiers);
999
+ // case 'CartClassification':
1000
+ // return markMatchingCartClassificationTiers(cart, tiers)
1001
+ // case 'CartScore':
1002
+ // return markMatchingCartScoreTiers(cart, tiers)
1003
1003
  default:
1004
1004
  throw new Error(`Unsupported tier type: ${tierType}`);
1005
1005
  }
@@ -1012,8 +1012,7 @@ var markMatchingCartValueTiers = (cart, tiers) => {
1012
1012
  let hasMatchingTier = false;
1013
1013
  for (const tier of sortedTiers) {
1014
1014
  const isMatching = !hasMatchingTier && cart.totalPrice.currencyCode === tier.price.currencyCode && cart.totalPrice.centAmount >= tier.minimumCentAmount;
1015
- if (isMatching)
1016
- hasMatchingTier = true;
1015
+ if (isMatching) hasMatchingTier = true;
1017
1016
  result[tier.minimumCentAmount] = {
1018
1017
  ...tier,
1019
1018
  isMatching
@@ -1125,10 +1124,8 @@ var CartUpdateHandler = class extends AbstractUpdateHandler {
1125
1124
  product.masterData.current.masterVariant,
1126
1125
  ...product.masterData.current.variants
1127
1126
  ].find((x) => {
1128
- if (sku)
1129
- return x.sku === sku;
1130
- if (variantId)
1131
- return x.id === variantId;
1127
+ if (sku) return x.sku === sku;
1128
+ if (variantId) return x.id === variantId;
1132
1129
  return false;
1133
1130
  });
1134
1131
  if (!variant) {
@@ -1656,10 +1653,8 @@ var CartRepository = class extends AbstractResourceRepository {
1656
1653
  product.masterData.current.masterVariant,
1657
1654
  ...product.masterData.current.variants
1658
1655
  ].find((x) => {
1659
- if (sku)
1660
- return x.sku === sku;
1661
- if (variantId)
1662
- return x.id === variantId;
1656
+ if (sku) return x.sku === sku;
1657
+ if (variantId) return x.id === variantId;
1663
1658
  return false;
1664
1659
  });
1665
1660
  if (!variant) {
@@ -1701,7 +1696,7 @@ var CartRepository = class extends AbstractResourceRepository {
1701
1696
  };
1702
1697
 
1703
1698
  // src/repositories/order/index.ts
1704
- import assert from "assert";
1699
+ import assert from "node:assert";
1705
1700
 
1706
1701
  // src/repositories/order/actions.ts
1707
1702
  var OrderUpdateHandler = class extends AbstractUpdateHandler {
@@ -1841,8 +1836,7 @@ var OrderUpdateHandler = class extends AbstractUpdateHandler {
1841
1836
  );
1842
1837
  }
1843
1838
  setStore(context, resource, { store }) {
1844
- if (!store)
1845
- return;
1839
+ if (!store) return;
1846
1840
  const resolvedType = this._storage.getByResourceIdentifier(
1847
1841
  context.projectKey,
1848
1842
  store
@@ -1873,8 +1867,7 @@ var OrderUpdateHandler = class extends AbstractUpdateHandler {
1873
1867
  };
1874
1868
  }
1875
1869
  updateSyncInfo(context, resource, { channel, externalId, syncedAt }) {
1876
- if (!channel)
1877
- return;
1870
+ if (!channel) return;
1878
1871
  const resolvedType = this._storage.getByResourceIdentifier(
1879
1872
  context.projectKey,
1880
1873
  channel
@@ -2103,11 +2096,125 @@ var OrderRepository = class extends AbstractResourceRepository {
2103
2096
  }
2104
2097
  };
2105
2098
 
2099
+ // src/repositories/quote-request/index.ts
2100
+ import assert2 from "node:assert";
2101
+
2102
+ // src/repositories/quote-request/actions.ts
2103
+ var QuoteRequestUpdateHandler = class extends AbstractUpdateHandler {
2104
+ setCustomField(context, resource, { name, value }) {
2105
+ if (!resource.custom) {
2106
+ throw new Error("Resource has no custom field");
2107
+ }
2108
+ resource.custom.fields[name] = value;
2109
+ }
2110
+ setCustomType(context, resource, { type, fields }) {
2111
+ if (!type) {
2112
+ resource.custom = void 0;
2113
+ } else {
2114
+ const resolvedType = this._storage.getByResourceIdentifier(
2115
+ context.projectKey,
2116
+ type
2117
+ );
2118
+ if (!resolvedType) {
2119
+ throw new Error(`Type ${type} not found`);
2120
+ }
2121
+ resource.custom = {
2122
+ type: {
2123
+ typeId: "type",
2124
+ id: resolvedType.id
2125
+ },
2126
+ fields: fields || {}
2127
+ };
2128
+ }
2129
+ }
2130
+ transitionState(context, resource, { state, force }) {
2131
+ let stateReference = void 0;
2132
+ if (state) {
2133
+ stateReference = getReferenceFromResourceIdentifier(
2134
+ state,
2135
+ context.projectKey,
2136
+ this._storage
2137
+ );
2138
+ resource.state = stateReference;
2139
+ } else {
2140
+ throw new CommercetoolsError(
2141
+ {
2142
+ code: "InvalidJsonInput",
2143
+ message: "Request body does not contain valid JSON.",
2144
+ detailedErrorMessage: "actions -> state: Missing required value"
2145
+ },
2146
+ 400
2147
+ );
2148
+ }
2149
+ return resource;
2150
+ }
2151
+ };
2152
+
2153
+ // src/repositories/quote-request/index.ts
2154
+ var QuoteRequestRepository = class extends AbstractResourceRepository {
2155
+ constructor(config) {
2156
+ super("quote-request", config);
2157
+ this.actions = new QuoteRequestUpdateHandler(config.storage);
2158
+ }
2159
+ create(context, draft) {
2160
+ if ("cartId" in draft) {
2161
+ return this.createFromCart(context, {
2162
+ id: draft.cartId,
2163
+ typeId: "cart"
2164
+ });
2165
+ }
2166
+ assert2(draft.cart, "draft.cart is missing");
2167
+ return this.createFromCart(context, {
2168
+ id: draft.cart.id,
2169
+ typeId: "cart"
2170
+ });
2171
+ }
2172
+ createFromCart(context, cartReference) {
2173
+ const cart = this._storage.getByResourceIdentifier(
2174
+ context.projectKey,
2175
+ cartReference
2176
+ );
2177
+ if (!cart) {
2178
+ throw new Error("Cannot find cart");
2179
+ }
2180
+ if (!cart.customerId) {
2181
+ throw new Error("Cart does not have a customer");
2182
+ }
2183
+ const resource = {
2184
+ ...getBaseResourceProperties(),
2185
+ billingAddress: cart.billingAddress,
2186
+ cart: cartReference,
2187
+ country: cart.country,
2188
+ custom: cart.custom,
2189
+ customer: {
2190
+ typeId: "customer",
2191
+ id: cart.customerId
2192
+ },
2193
+ customerGroup: cart.customerGroup,
2194
+ customLineItems: [],
2195
+ directDiscounts: cart.directDiscounts,
2196
+ lineItems: cart.lineItems,
2197
+ paymentInfo: cart.paymentInfo,
2198
+ quoteRequestState: "Submitted",
2199
+ shippingAddress: cart.shippingAddress,
2200
+ taxCalculationMode: cart.taxCalculationMode,
2201
+ taxedPrice: cart.taxedPrice,
2202
+ taxMode: cart.taxMode,
2203
+ taxRoundingMode: cart.taxRoundingMode,
2204
+ totalPrice: cart.totalPrice,
2205
+ store: cart.store
2206
+ };
2207
+ return this.saveNew(context, resource);
2208
+ }
2209
+ };
2210
+
2106
2211
  // src/repositories/as-associate.ts
2107
2212
  var AsAssociateOrderRepository = class extends OrderRepository {
2108
2213
  };
2109
2214
  var AsAssociateCartRepository = class extends CartRepository {
2110
2215
  };
2216
+ var AsAssociateQuoteRequestRepository = class extends QuoteRequestRepository {
2217
+ };
2111
2218
 
2112
2219
  // src/repositories/associate-role.ts
2113
2220
  var AssociateRoleRepository = class extends AbstractResourceRepository {
@@ -2843,7 +2950,7 @@ var CustomObjectRepository = class extends AbstractResourceRepository {
2843
2950
  };
2844
2951
 
2845
2952
  // src/repositories/customer/actions.ts
2846
- import assert2 from "assert";
2953
+ import assert3 from "node:assert";
2847
2954
  var CustomerUpdateHandler = class extends AbstractUpdateHandler {
2848
2955
  addAddress(_context, resource, { address }) {
2849
2956
  resource.addresses.push({
@@ -2853,7 +2960,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
2853
2960
  }
2854
2961
  addBillingAddressId(_context, resource, { addressId, addressKey }) {
2855
2962
  const address = this._findAddress(resource, addressId, addressKey, true);
2856
- assert2(address?.id);
2963
+ assert3(address?.id);
2857
2964
  if (resource.billingAddressIds === void 0) {
2858
2965
  resource.billingAddressIds = [];
2859
2966
  }
@@ -2863,7 +2970,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
2863
2970
  }
2864
2971
  addShippingAddressId(_context, resource, { addressId, addressKey }) {
2865
2972
  const address = this._findAddress(resource, addressId, addressKey, true);
2866
- assert2(address?.id);
2973
+ assert3(address?.id);
2867
2974
  if (resource.shippingAddressIds === void 0) {
2868
2975
  resource.shippingAddressIds = [];
2869
2976
  }
@@ -2877,7 +2984,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
2877
2984
  }
2878
2985
  changeAddress(context, resource, { addressId, addressKey, address }) {
2879
2986
  const current = this._findAddress(resource, addressId, addressKey, true);
2880
- assert2(current?.id);
2987
+ assert3(current?.id);
2881
2988
  const oldAddressIndex = resource.addresses.findIndex(
2882
2989
  (a) => a.id === current.id
2883
2990
  );
@@ -2903,7 +3010,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
2903
3010
  action.addressKey,
2904
3011
  true
2905
3012
  );
2906
- assert2(address?.id);
3013
+ assert3(address?.id);
2907
3014
  resource.addresses = resource.addresses.filter((a) => a.id !== address.id);
2908
3015
  }
2909
3016
  removeBillingAddressId(context, resource, action) {
@@ -2913,7 +3020,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
2913
3020
  action.addressKey,
2914
3021
  true
2915
3022
  );
2916
- assert2(address?.id);
3023
+ assert3(address?.id);
2917
3024
  resource.billingAddressIds = resource.billingAddressIds?.filter(
2918
3025
  (id) => id !== address.id
2919
3026
  );
@@ -2928,7 +3035,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
2928
3035
  action.addressKey,
2929
3036
  true
2930
3037
  );
2931
- assert2(address?.id);
3038
+ assert3(address?.id);
2932
3039
  resource.shippingAddressIds = resource.shippingAddressIds?.filter(
2933
3040
  (id) => id !== address.id
2934
3041
  );
@@ -3030,7 +3137,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
3030
3137
  action.addressKey,
3031
3138
  true
3032
3139
  );
3033
- assert2(address?.id);
3140
+ assert3(address?.id);
3034
3141
  resource.defaultBillingAddressId = address.id;
3035
3142
  if (resource.billingAddressIds === void 0) {
3036
3143
  resource.billingAddressIds = [];
@@ -3046,7 +3153,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
3046
3153
  action.addressKey,
3047
3154
  true
3048
3155
  );
3049
- assert2(address?.id);
3156
+ assert3(address?.id);
3050
3157
  resource.defaultShippingAddressId = address.id;
3051
3158
  if (resource.shippingAddressIds === void 0) {
3052
3159
  resource.shippingAddressIds = [];
@@ -3679,10 +3786,10 @@ var MyCustomerRepository = class extends CustomerRepository {
3679
3786
  };
3680
3787
 
3681
3788
  // src/repositories/my-order.ts
3682
- import assert3 from "assert";
3789
+ import assert4 from "node:assert";
3683
3790
  var MyOrderRepository = class extends OrderRepository {
3684
3791
  create(context, draft) {
3685
- assert3(draft.id, "draft.id is missing");
3792
+ assert4(draft.id, "draft.id is missing");
3686
3793
  const cartIdentifier = {
3687
3794
  id: draft.id,
3688
3795
  typeId: "cart"
@@ -3987,19 +4094,16 @@ function toRegExp(str) {
3987
4094
  return new RegExp(str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"));
3988
4095
  }
3989
4096
  function normalize(regex) {
3990
- if (typeof regex === "string")
3991
- regex = toRegExp(regex);
4097
+ if (typeof regex === "string") regex = toRegExp(regex);
3992
4098
  if (!regex.source.startsWith("^"))
3993
4099
  return new RegExp(`^${regex.source}`, regex.flags);
3994
- else
3995
- return regex;
4100
+ else return regex;
3996
4101
  }
3997
4102
  function first(arr, predicate) {
3998
4103
  let i = 0;
3999
4104
  for (const item of arr) {
4000
4105
  const result = predicate(item, i++);
4001
- if (result)
4002
- return { item, result };
4106
+ if (result) return { item, result };
4003
4107
  }
4004
4108
  }
4005
4109
  var TokenTypes = class {
@@ -4163,8 +4267,7 @@ var Lexer = class {
4163
4267
  */
4164
4268
  peek(position = this._state.position) {
4165
4269
  const read = (i = position) => {
4166
- if (i >= this._state.source.length)
4167
- return EOF(this);
4270
+ if (i >= this._state.source.length) return EOF(this);
4168
4271
  const n = this._tokenTypes.peek(this._state.source, i);
4169
4272
  if (!n || !n.result) {
4170
4273
  throw new Error(
@@ -4184,8 +4287,7 @@ var Lexer = class {
4184
4287
  ) : null;
4185
4288
  };
4186
4289
  const t = read();
4187
- if (t)
4188
- return t;
4290
+ if (t) return t;
4189
4291
  let unexpected = this._state.source.substring(position, position + 1);
4190
4292
  try {
4191
4293
  this.peek(position + 1);
@@ -4207,8 +4309,7 @@ var Lexer = class {
4207
4309
  */
4208
4310
  strpos(i) {
4209
4311
  let lines = this._state.source.substring(0, i).split(/\r?\n/);
4210
- if (!Array.isArray(lines))
4211
- lines = [lines];
4312
+ if (!Array.isArray(lines)) lines = [lines];
4212
4313
  const line = lines.length;
4213
4314
  const column = lines[lines.length - 1].length + 1;
4214
4315
  return { line, column };
@@ -4307,8 +4408,7 @@ var Parser = class {
4307
4408
  * @returns {number} The binding power of the specified token type
4308
4409
  */
4309
4410
  bp(tokenOrType) {
4310
- if (tokenOrType == null)
4311
- return Number.NEGATIVE_INFINITY;
4411
+ if (tokenOrType == null) return Number.NEGATIVE_INFINITY;
4312
4412
  if (tokenOrType && typeof tokenOrType.isEof == "function" && tokenOrType.isEof())
4313
4413
  return Number.NEGATIVE_INFINITY;
4314
4414
  const type = this._type(tokenOrType);
@@ -4353,27 +4453,21 @@ var Parser = class {
4353
4453
  parse(opts = { terminals: [0] }) {
4354
4454
  const stop = opts.stop = opts.stop || createStop();
4355
4455
  const check = () => {
4356
- if (stop.isStopped())
4357
- return false;
4456
+ if (stop.isStopped()) return false;
4358
4457
  const t = this.lexer.peek();
4359
4458
  const bp = this.bp(t);
4360
4459
  return opts.terminals.reduce((canContinue, rbpOrType) => {
4361
- if (!canContinue)
4362
- return false;
4363
- if (typeof rbpOrType == "number")
4364
- return rbpOrType < bp;
4365
- if (typeof rbpOrType == "string")
4366
- return t.type != rbpOrType;
4460
+ if (!canContinue) return false;
4461
+ if (typeof rbpOrType == "number") return rbpOrType < bp;
4462
+ if (typeof rbpOrType == "string") return t.type != rbpOrType;
4367
4463
  }, true);
4368
4464
  };
4369
4465
  const mkinfo = (token) => {
4370
4466
  const bp = this.bp(token);
4371
4467
  return { token, bp, stop, ctx: opts.ctx, options: opts };
4372
4468
  };
4373
- if (!opts.terminals)
4374
- opts.terminals = [0];
4375
- if (opts.terminals.length == 0)
4376
- opts.terminals.push(0);
4469
+ if (!opts.terminals) opts.terminals = [0];
4470
+ if (opts.terminals.length == 0) opts.terminals.push(0);
4377
4471
  let left = this.nud(mkinfo(this.lexer.next()));
4378
4472
  while (check()) {
4379
4473
  const operator = this.lexer.next();
@@ -4576,8 +4670,7 @@ var generateMatchFunc = (filter) => {
4576
4670
  throw new Error(`Syntax error while parsing '${filter}'.`);
4577
4671
  }
4578
4672
  return (obj) => {
4579
- if (!result.children)
4580
- return false;
4673
+ if (!result.children) return false;
4581
4674
  return result.children.some((c) => c.match(obj));
4582
4675
  };
4583
4676
  };
@@ -6188,8 +6281,7 @@ var generateMatchFunc2 = (predicate) => {
6188
6281
  const expr = parser.parse({ terminals: [")"] });
6189
6282
  return (obj, vars) => {
6190
6283
  const value = resolveValue(obj, left);
6191
- if (!value)
6192
- return false;
6284
+ if (!value) return false;
6193
6285
  const maxDistance = resolveSymbol(expr[2], vars);
6194
6286
  const distance = haversineDistance(
6195
6287
  {
@@ -6327,8 +6419,7 @@ var ProductProjectionSearch = class {
6327
6419
  };
6328
6420
  }
6329
6421
  getFacets(params, products) {
6330
- if (!params.facet)
6331
- return {};
6422
+ if (!params.facet) return {};
6332
6423
  const result = {};
6333
6424
  const regexp = new RegExp(/ counting products$/);
6334
6425
  for (let facet of params.facet) {
@@ -6905,112 +6996,6 @@ var QuoteRepository = class extends AbstractResourceRepository {
6905
6996
  }
6906
6997
  };
6907
6998
 
6908
- // src/repositories/quote-request/index.ts
6909
- import assert4 from "assert";
6910
-
6911
- // src/repositories/quote-request/actions.ts
6912
- var QuoteRequestUpdateHandler = class extends AbstractUpdateHandler {
6913
- setCustomField(context, resource, { name, value }) {
6914
- if (!resource.custom) {
6915
- throw new Error("Resource has no custom field");
6916
- }
6917
- resource.custom.fields[name] = value;
6918
- }
6919
- setCustomType(context, resource, { type, fields }) {
6920
- if (!type) {
6921
- resource.custom = void 0;
6922
- } else {
6923
- const resolvedType = this._storage.getByResourceIdentifier(
6924
- context.projectKey,
6925
- type
6926
- );
6927
- if (!resolvedType) {
6928
- throw new Error(`Type ${type} not found`);
6929
- }
6930
- resource.custom = {
6931
- type: {
6932
- typeId: "type",
6933
- id: resolvedType.id
6934
- },
6935
- fields: fields || {}
6936
- };
6937
- }
6938
- }
6939
- transitionState(context, resource, { state, force }) {
6940
- let stateReference = void 0;
6941
- if (state) {
6942
- stateReference = getReferenceFromResourceIdentifier(
6943
- state,
6944
- context.projectKey,
6945
- this._storage
6946
- );
6947
- resource.state = stateReference;
6948
- } else {
6949
- throw new CommercetoolsError(
6950
- {
6951
- code: "InvalidJsonInput",
6952
- message: "Request body does not contain valid JSON.",
6953
- detailedErrorMessage: "actions -> state: Missing required value"
6954
- },
6955
- 400
6956
- );
6957
- }
6958
- return resource;
6959
- }
6960
- };
6961
-
6962
- // src/repositories/quote-request/index.ts
6963
- var QuoteRequestRepository = class extends AbstractResourceRepository {
6964
- constructor(config) {
6965
- super("quote-request", config);
6966
- this.actions = new QuoteRequestUpdateHandler(config.storage);
6967
- }
6968
- create(context, draft) {
6969
- assert4(draft.cart, "draft.cart is missing");
6970
- return this.createFromCart(context, {
6971
- id: draft.cart.id,
6972
- typeId: "cart"
6973
- });
6974
- }
6975
- createFromCart(context, cartReference) {
6976
- const cart = this._storage.getByResourceIdentifier(
6977
- context.projectKey,
6978
- cartReference
6979
- );
6980
- if (!cart) {
6981
- throw new Error("Cannot find cart");
6982
- }
6983
- if (!cart.customerId) {
6984
- throw new Error("Cart does not have a customer");
6985
- }
6986
- const resource = {
6987
- ...getBaseResourceProperties(),
6988
- billingAddress: cart.billingAddress,
6989
- cart: cartReference,
6990
- country: cart.country,
6991
- custom: cart.custom,
6992
- customer: {
6993
- typeId: "customer",
6994
- id: cart.customerId
6995
- },
6996
- customerGroup: cart.customerGroup,
6997
- customLineItems: [],
6998
- directDiscounts: cart.directDiscounts,
6999
- lineItems: cart.lineItems,
7000
- paymentInfo: cart.paymentInfo,
7001
- quoteRequestState: "Submitted",
7002
- shippingAddress: cart.shippingAddress,
7003
- taxCalculationMode: cart.taxCalculationMode,
7004
- taxedPrice: cart.taxedPrice,
7005
- taxMode: cart.taxMode,
7006
- taxRoundingMode: cart.taxRoundingMode,
7007
- totalPrice: cart.totalPrice,
7008
- store: cart.store
7009
- };
7010
- return this.saveNew(context, resource);
7011
- }
7012
- };
7013
-
7014
6999
  // src/repositories/quote-staged/actions.ts
7015
7000
  var StagedQuoteUpdateHandler = class extends AbstractUpdateHandler {
7016
7001
  setCustomField(context, resource, { name, value }) {
@@ -7102,8 +7087,7 @@ var ReviewRepository = class extends AbstractResourceRepository {
7102
7087
  super("review", config);
7103
7088
  }
7104
7089
  create(context, draft) {
7105
- if (!draft.target)
7106
- throw new Error("Missing target");
7090
+ if (!draft.target) throw new Error("Missing target");
7107
7091
  const resource = {
7108
7092
  ...getBaseResourceProperties(),
7109
7093
  locale: draft.locale,
@@ -7709,8 +7693,7 @@ var StoreRepository = class extends AbstractResourceRepository {
7709
7693
  }
7710
7694
  };
7711
7695
  var transformChannels = (context, storage, channels) => {
7712
- if (!channels)
7713
- return [];
7696
+ if (!channels) return [];
7714
7697
  return channels.map(
7715
7698
  (ref) => getReferenceFromResourceIdentifier(
7716
7699
  ref,
@@ -8007,7 +7990,8 @@ var ZoneUpdateHandler = class extends AbstractUpdateHandler {
8007
7990
  var createRepositories = (config) => ({
8008
7991
  "as-associate": {
8009
7992
  cart: new AsAssociateCartRepository(config),
8010
- order: new AsAssociateOrderRepository(config)
7993
+ order: new AsAssociateOrderRepository(config),
7994
+ "quote-request": new AsAssociateQuoteRequestRepository(config)
8011
7995
  },
8012
7996
  "associate-role": new AssociateRoleRepository(config),
8013
7997
  "attribute-group": new AttributeGroupRepository(config),
@@ -8053,7 +8037,7 @@ var createRepositories = (config) => ({
8053
8037
  });
8054
8038
 
8055
8039
  // src/services/as-associate.ts
8056
- import { Router as Router4 } from "express";
8040
+ import { Router as Router5 } from "express";
8057
8041
 
8058
8042
  // src/services/as-associate-cart.ts
8059
8043
  import { Router as Router2 } from "express";
@@ -8127,14 +8111,25 @@ var AbstractService = class {
8127
8111
  }
8128
8112
  }
8129
8113
  const result = this.repository.query(getRepositoryContext(request), params);
8130
- return response.status(200).send(result);
8114
+ response.status(200).send(result);
8115
+ return;
8131
8116
  }
8132
8117
  getWithId(request, response) {
8133
8118
  const result = this._expandWithId(request, request.params.id);
8134
8119
  if (!result) {
8135
- return response.status(404).send();
8120
+ response.status(404).send({
8121
+ statusCode: 404,
8122
+ message: `The Resource with ID '${request.params.id} was not found.`,
8123
+ errors: [
8124
+ {
8125
+ code: "ResourceNotFound",
8126
+ message: `The Resource with ID '${request.params.id} was not found.`
8127
+ }
8128
+ ]
8129
+ });
8130
+ return;
8136
8131
  }
8137
- return response.status(200).send(result);
8132
+ response.status(200).send(result);
8138
8133
  }
8139
8134
  getWithKey(request, response) {
8140
8135
  const result = this.repository.getByKey(
@@ -8144,9 +8139,20 @@ var AbstractService = class {
8144
8139
  expand: this._parseParam(request.query.expand)
8145
8140
  }
8146
8141
  );
8147
- if (!result)
8148
- return response.status(404).send();
8149
- return response.status(200).send(result);
8142
+ if (!result) {
8143
+ response.status(404).send({
8144
+ statusCode: 404,
8145
+ message: `The Resource with key '${request.params.id} was not found.`,
8146
+ errors: [
8147
+ {
8148
+ code: "ResourceNotFound",
8149
+ message: `The Resource with key '${request.params.id} was not found.`
8150
+ }
8151
+ ]
8152
+ });
8153
+ return;
8154
+ }
8155
+ response.status(200).send(result);
8150
8156
  }
8151
8157
  deleteWithId(request, response) {
8152
8158
  const result = this.repository.delete(
@@ -8157,9 +8163,10 @@ var AbstractService = class {
8157
8163
  }
8158
8164
  );
8159
8165
  if (!result) {
8160
- return response.status(404).send("Not found");
8166
+ response.sendStatus(404);
8167
+ return;
8161
8168
  }
8162
- return response.status(200).send(result);
8169
+ response.status(200).send(result);
8163
8170
  }
8164
8171
  deleteWithKey(request, response) {
8165
8172
  const resource = this.repository.getByKey(
@@ -8167,7 +8174,8 @@ var AbstractService = class {
8167
8174
  request.params.key
8168
8175
  );
8169
8176
  if (!resource) {
8170
- return response.status(404).send("Not found");
8177
+ response.sendStatus(404);
8178
+ return;
8171
8179
  }
8172
8180
  const result = this.repository.delete(
8173
8181
  getRepositoryContext(request),
@@ -8177,9 +8185,10 @@ var AbstractService = class {
8177
8185
  }
8178
8186
  );
8179
8187
  if (!result) {
8180
- return response.status(404).send("Not found");
8188
+ response.sendStatus(404);
8189
+ return;
8181
8190
  }
8182
- return response.status(200).send(result);
8191
+ response.status(200).send(result);
8183
8192
  }
8184
8193
  post(request, response) {
8185
8194
  const draft = request.body;
@@ -8188,7 +8197,7 @@ var AbstractService = class {
8188
8197
  draft
8189
8198
  );
8190
8199
  const result = this._expandWithId(request, resource.id);
8191
- return response.status(this.createStatusCode).send(result);
8200
+ response.status(this.createStatusCode).send(result);
8192
8201
  }
8193
8202
  postWithId(request, response) {
8194
8203
  const updateRequest = validateData(
@@ -8200,7 +8209,8 @@ var AbstractService = class {
8200
8209
  request.params.id
8201
8210
  );
8202
8211
  if (!resource) {
8203
- return response.status(404).send("Not found");
8212
+ response.sendStatus(404);
8213
+ return;
8204
8214
  }
8205
8215
  const updatedResource = this.repository.processUpdateActions(
8206
8216
  getRepositoryContext(request),
@@ -8209,7 +8219,7 @@ var AbstractService = class {
8209
8219
  updateRequest.actions
8210
8220
  );
8211
8221
  const result = this._expandWithId(request, updatedResource.id);
8212
- return response.status(200).send(result);
8222
+ response.status(200).send(result);
8213
8223
  }
8214
8224
  postWithKey(request, response) {
8215
8225
  const updateRequest = validateData(
@@ -8221,7 +8231,8 @@ var AbstractService = class {
8221
8231
  request.params.key
8222
8232
  );
8223
8233
  if (!resource) {
8224
- return response.status(404).send("Not found");
8234
+ response.sendStatus(404);
8235
+ return;
8225
8236
  }
8226
8237
  const updatedResource = this.repository.processUpdateActions(
8227
8238
  getRepositoryContext(request),
@@ -8230,7 +8241,7 @@ var AbstractService = class {
8230
8241
  updateRequest.actions
8231
8242
  );
8232
8243
  const result = this._expandWithId(request, updatedResource.id);
8233
- return response.status(200).send(result);
8244
+ response.status(200).send(result);
8234
8245
  }
8235
8246
  _expandWithId(request, resourceId) {
8236
8247
  const result = this.repository.get(
@@ -8295,15 +8306,43 @@ var AsAssociateOrderService = class extends AbstractService {
8295
8306
  }
8296
8307
  };
8297
8308
 
8309
+ // src/services/as-associate-quote-request.ts
8310
+ import { Router as Router4 } from "express";
8311
+ var AsAssociateQuoteRequestService = class extends AbstractService {
8312
+ repository;
8313
+ constructor(parent, repository) {
8314
+ super(parent);
8315
+ this.repository = repository;
8316
+ }
8317
+ getBasePath() {
8318
+ return "quote-requests";
8319
+ }
8320
+ registerRoutes(parent) {
8321
+ const basePath = this.getBasePath();
8322
+ const router = Router4({ mergeParams: true });
8323
+ this.extraRoutes(router);
8324
+ router.get("/", this.get.bind(this));
8325
+ router.get("/:id", this.getWithId.bind(this));
8326
+ router.delete("/:id", this.deleteWithId.bind(this));
8327
+ router.post("/", this.post.bind(this));
8328
+ router.post("/:id", this.postWithId.bind(this));
8329
+ parent.use(`/${basePath}`, router);
8330
+ }
8331
+ };
8332
+
8298
8333
  // src/services/as-associate.ts
8299
8334
  var AsAssociateService = class {
8300
8335
  router;
8301
8336
  subServices;
8302
8337
  constructor(parent, repositories) {
8303
- this.router = Router4({ mergeParams: true });
8338
+ this.router = Router5({ mergeParams: true });
8304
8339
  this.subServices = {
8305
8340
  order: new AsAssociateOrderService(this.router, repositories.order),
8306
- cart: new AsAssociateCartService(this.router, repositories.cart)
8341
+ cart: new AsAssociateCartService(this.router, repositories.cart),
8342
+ "quote-request": new AsAssociateQuoteRequestService(
8343
+ this.router,
8344
+ repositories["quote-request"]
8345
+ )
8307
8346
  };
8308
8347
  parent.use(
8309
8348
  "/as-associate/:associateId/in-business-unit/key=:businessUnitId",
@@ -8367,7 +8406,8 @@ var CartService = class extends AbstractService {
8367
8406
  const context = getRepositoryContext(request);
8368
8407
  const cartOrOrder = request.body.reference.typeId === "order" ? this.orderRepository.get(context, request.body.reference.id) : this.repository.get(context, request.body.reference.id);
8369
8408
  if (!cartOrOrder) {
8370
- return response.status(400).send();
8409
+ response.status(400).send();
8410
+ return;
8371
8411
  }
8372
8412
  const cartDraft = {
8373
8413
  ...cartOrOrder,
@@ -8382,7 +8422,7 @@ var CartService = class extends AbstractService {
8382
8422
  }))
8383
8423
  };
8384
8424
  const newCart = this.repository.create(context, cartDraft);
8385
- return response.status(200).send(newCart);
8425
+ response.status(200).send(newCart);
8386
8426
  }
8387
8427
  };
8388
8428
 
@@ -8454,7 +8494,7 @@ var CustomObjectService = class extends AbstractService {
8454
8494
  offset: offset !== void 0 ? Number(offset) : void 0
8455
8495
  }
8456
8496
  );
8457
- return response.status(200).send(result);
8497
+ response.status(200).send(result);
8458
8498
  }
8459
8499
  getWithContainerAndKey(request, response) {
8460
8500
  const result = this.repository.getWithContainerAndKey(
@@ -8463,9 +8503,10 @@ var CustomObjectService = class extends AbstractService {
8463
8503
  request.params.key
8464
8504
  );
8465
8505
  if (!result) {
8466
- return response.status(404).send("Not Found");
8506
+ response.sendStatus(404);
8507
+ return;
8467
8508
  }
8468
- return response.status(200).send(result);
8509
+ response.status(200).send(result);
8469
8510
  }
8470
8511
  createWithContainerAndKey(request, response) {
8471
8512
  const draft = {
@@ -8474,7 +8515,7 @@ var CustomObjectService = class extends AbstractService {
8474
8515
  container: request.params.container
8475
8516
  };
8476
8517
  const result = this.repository.create(getRepositoryContext(request), draft);
8477
- return response.status(200).send(result);
8518
+ response.status(200).send(result);
8478
8519
  }
8479
8520
  deleteWithContainerAndKey(request, response) {
8480
8521
  const current = this.repository.getWithContainerAndKey(
@@ -8483,13 +8524,14 @@ var CustomObjectService = class extends AbstractService {
8483
8524
  request.params.key
8484
8525
  );
8485
8526
  if (!current) {
8486
- return response.status(404).send("Not Found");
8527
+ response.sendStatus(404);
8528
+ return;
8487
8529
  }
8488
8530
  const result = this.repository.delete(
8489
8531
  getRepositoryContext(request),
8490
8532
  current.id
8491
8533
  );
8492
- return response.status(200).send(result);
8534
+ response.status(200).send(result);
8493
8535
  }
8494
8536
  };
8495
8537
 
@@ -8518,21 +8560,21 @@ var CustomerService = class extends AbstractService {
8518
8560
  const result = {
8519
8561
  customer: expanded
8520
8562
  };
8521
- return response.status(this.createStatusCode).send(result);
8563
+ response.status(this.createStatusCode).send(result);
8522
8564
  }
8523
8565
  passwordResetToken(request, response) {
8524
8566
  const customer = this.repository.passwordResetToken(
8525
8567
  getRepositoryContext(request),
8526
8568
  request.body
8527
8569
  );
8528
- return response.status(200).send(customer);
8570
+ response.status(200).send(customer);
8529
8571
  }
8530
8572
  passwordReset(request, response) {
8531
8573
  const customer = this.repository.passwordReset(
8532
8574
  getRepositoryContext(request),
8533
8575
  request.body
8534
8576
  );
8535
- return response.status(200).send(customer);
8577
+ response.status(200).send(customer);
8536
8578
  }
8537
8579
  confirmEmailToken(request, response) {
8538
8580
  const id = request.body.id;
@@ -8540,7 +8582,7 @@ var CustomerService = class extends AbstractService {
8540
8582
  getRepositoryContext(request),
8541
8583
  id
8542
8584
  );
8543
- return response.status(200).send(token);
8585
+ response.status(200).send(token);
8544
8586
  }
8545
8587
  };
8546
8588
 
@@ -8593,7 +8635,7 @@ var InventoryEntryService = class extends AbstractService {
8593
8635
  };
8594
8636
 
8595
8637
  // src/services/my-business-unit.ts
8596
- import { Router as Router5 } from "express";
8638
+ import { Router as Router6 } from "express";
8597
8639
  var MyBusinessUnitService = class extends AbstractService {
8598
8640
  repository;
8599
8641
  constructor(parent, repository) {
@@ -8605,7 +8647,7 @@ var MyBusinessUnitService = class extends AbstractService {
8605
8647
  }
8606
8648
  registerRoutes(parent) {
8607
8649
  const basePath = this.getBasePath();
8608
- const router = Router5({ mergeParams: true });
8650
+ const router = Router6({ mergeParams: true });
8609
8651
  this.extraRoutes(router);
8610
8652
  router.get("/business-units/", this.get.bind(this));
8611
8653
  parent.use(`/${basePath}`, router);
@@ -8613,7 +8655,7 @@ var MyBusinessUnitService = class extends AbstractService {
8613
8655
  };
8614
8656
 
8615
8657
  // src/services/my-cart.ts
8616
- import { Router as Router6 } from "express";
8658
+ import { Router as Router7 } from "express";
8617
8659
  var MyCartService = class extends AbstractService {
8618
8660
  repository;
8619
8661
  constructor(parent, repository) {
@@ -8625,7 +8667,7 @@ var MyCartService = class extends AbstractService {
8625
8667
  }
8626
8668
  registerRoutes(parent) {
8627
8669
  const basePath = this.getBasePath();
8628
- const router = Router6({ mergeParams: true });
8670
+ const router = Router7({ mergeParams: true });
8629
8671
  this.extraRoutes(router);
8630
8672
  router.get("/active-cart", this.activeCart.bind(this));
8631
8673
  router.get("/carts/", this.get.bind(this));
@@ -8638,14 +8680,15 @@ var MyCartService = class extends AbstractService {
8638
8680
  activeCart(request, response) {
8639
8681
  const resource = this.repository.getActiveCart(request.params.projectKey);
8640
8682
  if (!resource) {
8641
- return response.status(404).send("Not found");
8683
+ response.sendStatus(404);
8684
+ return;
8642
8685
  }
8643
- return response.status(200).send(resource);
8686
+ response.status(200).send(resource);
8644
8687
  }
8645
8688
  };
8646
8689
 
8647
8690
  // src/services/my-customer.ts
8648
- import { Router as Router7 } from "express";
8691
+ import { Router as Router8 } from "express";
8649
8692
  var MyCustomerService = class extends AbstractService {
8650
8693
  repository;
8651
8694
  constructor(parent, repository) {
@@ -8657,7 +8700,7 @@ var MyCustomerService = class extends AbstractService {
8657
8700
  }
8658
8701
  registerRoutes(parent) {
8659
8702
  const basePath = this.getBasePath();
8660
- const router = Router7({ mergeParams: true });
8703
+ const router = Router8({ mergeParams: true });
8661
8704
  this.extraRoutes(router);
8662
8705
  router.get("", this.getMe.bind(this));
8663
8706
  router.post("", this.updateMe.bind(this));
@@ -8672,14 +8715,16 @@ var MyCustomerService = class extends AbstractService {
8672
8715
  getMe(request, response) {
8673
8716
  const resource = this.repository.getMe(getRepositoryContext(request));
8674
8717
  if (!resource) {
8675
- return response.status(404).send("Not found");
8718
+ response.sendStatus(404);
8719
+ return;
8676
8720
  }
8677
- return response.status(200).send(resource);
8721
+ response.status(200).send(resource);
8678
8722
  }
8679
8723
  updateMe(request, response) {
8680
8724
  const resource = this.repository.getMe(getRepositoryContext(request));
8681
8725
  if (!resource) {
8682
- return response.status(404).send("Not found");
8726
+ response.sendStatus(404);
8727
+ return;
8683
8728
  }
8684
8729
  const updateRequest = validateData(
8685
8730
  request.body,
@@ -8692,14 +8737,15 @@ var MyCustomerService = class extends AbstractService {
8692
8737
  updateRequest.actions
8693
8738
  );
8694
8739
  const result = this._expandWithId(request, updatedResource.id);
8695
- return response.status(200).send(result);
8740
+ response.status(200).send(result);
8696
8741
  }
8697
8742
  deleteMe(request, response) {
8698
8743
  const resource = this.repository.deleteMe(getRepositoryContext(request));
8699
8744
  if (!resource) {
8700
- return response.status(404).send("Not found");
8745
+ response.sendStatus(404);
8746
+ return;
8701
8747
  }
8702
- return response.status(200).send(resource);
8748
+ response.status(200).send(resource);
8703
8749
  }
8704
8750
  signUp(request, response) {
8705
8751
  const draft = request.body;
@@ -8708,28 +8754,28 @@ var MyCustomerService = class extends AbstractService {
8708
8754
  draft
8709
8755
  );
8710
8756
  const result = this._expandWithId(request, resource.id);
8711
- return response.status(this.createStatusCode).send({ customer: result });
8757
+ response.status(this.createStatusCode).send({ customer: result });
8712
8758
  }
8713
8759
  changePassword(request, response) {
8714
8760
  const customer = this.repository.changePassword(
8715
8761
  getRepositoryContext(request),
8716
8762
  request.body
8717
8763
  );
8718
- return response.status(200).send(customer);
8764
+ response.status(200).send(customer);
8719
8765
  }
8720
8766
  resetPassword(request, response) {
8721
8767
  const customer = this.repository.passwordReset(
8722
8768
  getRepositoryContext(request),
8723
8769
  request.body
8724
8770
  );
8725
- return response.status(200).send(customer);
8771
+ response.status(200).send(customer);
8726
8772
  }
8727
8773
  emailConfirm(request, response) {
8728
8774
  const customer = this.repository.confirmEmail(
8729
8775
  getRepositoryContext(request),
8730
8776
  request.body
8731
8777
  );
8732
- return response.status(200).send(customer);
8778
+ response.status(200).send(customer);
8733
8779
  }
8734
8780
  signIn(request, response) {
8735
8781
  const { email, password } = request.body;
@@ -8738,7 +8784,7 @@ var MyCustomerService = class extends AbstractService {
8738
8784
  where: [`email = "${email}"`, `password = "${encodedPassword}"`]
8739
8785
  });
8740
8786
  if (result.count === 0) {
8741
- return response.status(400).send({
8787
+ response.status(400).send({
8742
8788
  message: "Account with the given credentials not found.",
8743
8789
  errors: [
8744
8790
  {
@@ -8747,13 +8793,14 @@ var MyCustomerService = class extends AbstractService {
8747
8793
  }
8748
8794
  ]
8749
8795
  });
8796
+ return;
8750
8797
  }
8751
- return response.status(200).send({ customer: result.results[0] });
8798
+ response.status(200).send({ customer: result.results[0] });
8752
8799
  }
8753
8800
  };
8754
8801
 
8755
8802
  // src/services/my-order.ts
8756
- import { Router as Router8 } from "express";
8803
+ import { Router as Router9 } from "express";
8757
8804
  var MyOrderService = class extends AbstractService {
8758
8805
  repository;
8759
8806
  constructor(parent, repository) {
@@ -8765,7 +8812,7 @@ var MyOrderService = class extends AbstractService {
8765
8812
  }
8766
8813
  registerRoutes(parent) {
8767
8814
  const basePath = this.getBasePath();
8768
- const router = Router8({ mergeParams: true });
8815
+ const router = Router9({ mergeParams: true });
8769
8816
  this.extraRoutes(router);
8770
8817
  router.get("/orders/", this.get.bind(this));
8771
8818
  router.get("/orders/:id", this.getWithId.bind(this));
@@ -8823,7 +8870,7 @@ var OrderService = class extends AbstractService {
8823
8870
  getRepositoryContext(request),
8824
8871
  importDraft
8825
8872
  );
8826
- return response.status(200).send(resource);
8873
+ response.status(200).send(resource);
8827
8874
  }
8828
8875
  getWithOrderNumber(request, response) {
8829
8876
  const resource = this.repository.getWithOrderNumber(
@@ -8833,9 +8880,10 @@ var OrderService = class extends AbstractService {
8833
8880
  request.query
8834
8881
  );
8835
8882
  if (resource) {
8836
- return response.status(200).send(resource);
8883
+ response.status(200).send(resource);
8884
+ return;
8837
8885
  }
8838
- return response.status(404).send("Not found");
8886
+ response.sendStatus(404);
8839
8887
  }
8840
8888
  };
8841
8889
 
@@ -8870,7 +8918,7 @@ var ProductService = class extends AbstractService {
8870
8918
  getRepositoryContext(request),
8871
8919
  searchBody
8872
8920
  );
8873
- return response.status(200).send(resource);
8921
+ response.status(200).send(resource);
8874
8922
  }
8875
8923
  };
8876
8924
 
@@ -8909,7 +8957,7 @@ var ProductProjectionService = class extends AbstractService {
8909
8957
  limit: limit !== void 0 ? Number(limit) : void 0,
8910
8958
  offset: offset !== void 0 ? Number(offset) : void 0
8911
8959
  });
8912
- return response.status(200).send(result);
8960
+ response.status(200).send(result);
8913
8961
  }
8914
8962
  search(request, response) {
8915
8963
  const query = request.query;
@@ -8932,7 +8980,7 @@ var ProductProjectionService = class extends AbstractService {
8932
8980
  getRepositoryContext(request),
8933
8981
  searchParams
8934
8982
  );
8935
- return response.status(200).send(resource);
8983
+ response.status(200).send(resource);
8936
8984
  }
8937
8985
  };
8938
8986
 
@@ -9025,7 +9073,8 @@ var ShippingMethodService = class extends AbstractService {
9025
9073
  matchingCart(request, response) {
9026
9074
  const cartId = queryParamsValue(request.query.cartId);
9027
9075
  if (!cartId) {
9028
- return response.status(400).send();
9076
+ response.status(400).send();
9077
+ return;
9029
9078
  }
9030
9079
  const result = this.repository.matchingCart(
9031
9080
  getRepositoryContext(request),
@@ -9034,7 +9083,8 @@ var ShippingMethodService = class extends AbstractService {
9034
9083
  expand: this._parseParam(request.query.expand)
9035
9084
  }
9036
9085
  );
9037
- return response.status(200).send(result);
9086
+ response.status(200).send(result);
9087
+ return;
9038
9088
  }
9039
9089
  };
9040
9090
 
@@ -9218,7 +9268,7 @@ var ProjectService = class {
9218
9268
  }
9219
9269
  get(request, response) {
9220
9270
  const project = this.repository.get(getRepositoryContext(request));
9221
- return response.status(200).send(project);
9271
+ response.status(200).send(project);
9222
9272
  }
9223
9273
  post(request, response) {
9224
9274
  const updateRequest = validateData(
@@ -9227,7 +9277,8 @@ var ProjectService = class {
9227
9277
  );
9228
9278
  const project = this.repository.get(getRepositoryContext(request));
9229
9279
  if (!project) {
9230
- return response.status(404).send({});
9280
+ response.sendStatus(404);
9281
+ return;
9231
9282
  }
9232
9283
  const updatedResource = this.repository.processUpdateActions(
9233
9284
  getRepositoryContext(request),
@@ -9235,7 +9286,7 @@ var ProjectService = class {
9235
9286
  updateRequest.version,
9236
9287
  updateRequest.actions
9237
9288
  );
9238
- return response.status(200).send(updatedResource);
9289
+ response.status(200).send(updatedResource);
9239
9290
  }
9240
9291
  };
9241
9292
 
@@ -9244,7 +9295,7 @@ var AbstractStorage = class {
9244
9295
  };
9245
9296
 
9246
9297
  // src/storage/in-memory.ts
9247
- import assert5 from "assert";
9298
+ import assert5 from "node:assert";
9248
9299
  var InMemoryStorage = class extends AbstractStorage {
9249
9300
  resources = {};
9250
9301
  projects = {};
@@ -9291,8 +9342,7 @@ var InMemoryStorage = class extends AbstractStorage {
9291
9342
  getProject = (projectKey) => this.addProject(projectKey);
9292
9343
  // Expand resolves a nested reference and injects the object in the given obj
9293
9344
  expand = (projectKey, obj, clause) => {
9294
- if (!clause)
9295
- return obj;
9345
+ if (!clause) return obj;
9296
9346
  const newObj = cloneObject(obj);
9297
9347
  if (Array.isArray(clause)) {
9298
9348
  for (const c of clause) {
@@ -9323,15 +9373,13 @@ var InMemoryStorage = class extends AbstractStorage {
9323
9373
  this._resolveReference(projectKey, reference, params.rest);
9324
9374
  } else if (params.index === "*") {
9325
9375
  const reference = obj[params.element];
9326
- if (reference === void 0 || !Array.isArray(reference))
9327
- return;
9376
+ if (reference === void 0 || !Array.isArray(reference)) return;
9328
9377
  for (const itemRef of reference) {
9329
9378
  this._resolveReference(projectKey, itemRef, params.rest);
9330
9379
  }
9331
9380
  } else {
9332
9381
  const reference = obj[params.element][params.index];
9333
- if (reference === void 0)
9334
- return;
9382
+ if (reference === void 0) return;
9335
9383
  this._resolveReference(projectKey, reference, params.rest);
9336
9384
  }
9337
9385
  };
@@ -9542,8 +9590,7 @@ var InMemoryStorage = class extends AbstractStorage {
9542
9590
  });
9543
9591
  }
9544
9592
  _resolveReference(projectKey, reference, expand) {
9545
- if (reference === void 0)
9546
- return;
9593
+ if (reference === void 0) return;
9547
9594
  if (reference.typeId !== void 0 && (reference.id !== void 0 || reference.key !== void 0)) {
9548
9595
  if (!reference.obj) {
9549
9596
  reference.obj = this.getByResourceIdentifier(projectKey, {
@@ -9685,22 +9732,25 @@ var CommercetoolsMock = class {
9685
9732
  app.use((err, req, resp, next) => {
9686
9733
  if (err instanceof CommercetoolsError) {
9687
9734
  if (err.errors?.length > 0) {
9688
- return resp.status(err.statusCode).send({
9735
+ resp.status(err.statusCode).send({
9689
9736
  statusCode: err.statusCode,
9690
9737
  message: err.message,
9691
9738
  errors: err.errors
9692
9739
  });
9740
+ return;
9693
9741
  }
9694
- return resp.status(err.statusCode).send({
9742
+ resp.status(err.statusCode).send({
9695
9743
  statusCode: err.statusCode,
9696
9744
  message: err.message,
9697
9745
  errors: [err.info]
9698
9746
  });
9747
+ return;
9699
9748
  }
9700
9749
  console.error(err);
9701
- return resp.status(500).send({
9750
+ resp.status(500).send({
9702
9751
  error: err.message
9703
9752
  });
9753
+ return;
9704
9754
  });
9705
9755
  return app;
9706
9756
  }