@labdigital/commercetools-mock 2.45.1 → 2.47.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 +614 -250
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +788 -59
- package/dist/index.d.ts +788 -59
- package/dist/index.js +602 -238
- package/dist/index.js.map +1 -1
- package/package.json +41 -48
- package/src/ctMock.ts +11 -13
- package/src/index.test.ts +5 -5
- package/src/lib/predicateParser.test.ts +91 -60
- package/src/lib/predicateParser.ts +38 -42
- package/src/lib/productSearchFilter.test.ts +18 -0
- package/src/lib/productSearchFilter.ts +7 -0
- package/src/lib/projectionSearchFilter.test.ts +17 -17
- package/src/lib/projectionSearchFilter.ts +2 -3
- package/src/oauth/server.test.ts +1 -1
- package/src/oauth/server.ts +11 -11
- package/src/priceSelector.ts +1 -1
- package/src/product-projection-search.ts +18 -19
- package/src/product-search.ts +48 -8
- package/src/repositories/business-unit.ts +17 -16
- package/src/repositories/cart/actions.ts +32 -32
- package/src/repositories/cart/helpers.ts +1 -1
- package/src/repositories/cart/index.ts +25 -8
- package/src/repositories/cart-discount/actions.ts +1 -4
- package/src/repositories/category/actions.ts +2 -6
- package/src/repositories/custom-object.ts +20 -21
- package/src/repositories/customer/actions.ts +4 -4
- package/src/repositories/errors.ts +1 -1
- package/src/repositories/extension.ts +2 -1
- package/src/repositories/helpers.ts +27 -27
- package/src/repositories/index.ts +17 -17
- package/src/repositories/my-customer.ts +1 -1
- package/src/repositories/my-order.ts +2 -2
- package/src/repositories/order/index.ts +1 -1
- package/src/repositories/product/actions.ts +1 -1
- package/src/repositories/quote/actions.ts +83 -0
- package/src/repositories/quote/index.ts +54 -0
- package/src/repositories/quote-request/actions.ts +84 -0
- package/src/repositories/quote-request/index.test.ts +167 -0
- package/src/repositories/quote-request/index.ts +67 -0
- package/src/repositories/quote-staged/actions.ts +84 -0
- package/src/repositories/quote-staged/index.ts +47 -0
- package/src/repositories/review.ts +4 -4
- package/src/repositories/shipping-method/actions.ts +17 -17
- package/src/repositories/shipping-method/index.ts +6 -6
- package/src/repositories/shopping-list/actions.ts +1 -1
- package/src/repositories/shopping-list/index.ts +9 -1
- package/src/repositories/subscription.ts +2 -4
- package/src/server.ts +3 -2
- package/src/services/abstract.ts +7 -7
- package/src/services/as-associate-order.test.ts +1 -1
- package/src/services/cart-discount.test.ts +1 -1
- package/src/services/cart.test.ts +40 -15
- package/src/services/category.test.ts +1 -1
- package/src/services/customer.test.ts +16 -55
- package/src/services/customer.ts +1 -1
- package/src/services/index.ts +20 -14
- package/src/services/inventory-entry.test.ts +5 -5
- package/src/services/my-cart.test.ts +2 -2
- package/src/services/my-customer.test.ts +2 -2
- package/src/services/order.test.ts +8 -8
- package/src/services/product-projection.test.ts +5 -5
- package/src/services/product-projection.ts +12 -14
- package/src/services/product.test.ts +155 -71
- package/src/services/quote-request.test.ts +59 -0
- package/src/services/quote-request.ts +16 -0
- package/src/services/quote-staged.ts +16 -0
- package/src/services/quote.ts +16 -0
- package/src/services/standalone-price.test.ts +4 -4
- package/src/services/state.test.ts +1 -1
- package/src/services/store.test.ts +2 -2
- package/src/services/tax-category.test.ts +1 -1
- package/src/shipping.ts +3 -3
- package/src/storage/in-memory.ts +55 -63
- package/src/testing/customer.ts +40 -0
- package/src/types.ts +51 -31
- package/src/repositories/quote-request.ts +0 -17
- package/src/repositories/quote.ts +0 -14
- package/src/repositories/staged-quote.ts +0 -17
package/dist/index.cjs
CHANGED
|
@@ -246,7 +246,8 @@ var OAuth2Store = class {
|
|
|
246
246
|
};
|
|
247
247
|
}
|
|
248
248
|
validateToken(token) {
|
|
249
|
-
if (!this.validate)
|
|
249
|
+
if (!this.validate)
|
|
250
|
+
return true;
|
|
250
251
|
const foundToken = this.tokens.find((t) => t.access_token === token);
|
|
251
252
|
if (foundToken) {
|
|
252
253
|
return true;
|
|
@@ -380,7 +381,8 @@ var OAuth2Server = class {
|
|
|
380
381
|
request.query.scope?.toString()
|
|
381
382
|
);
|
|
382
383
|
return response.status(200).send(token);
|
|
383
|
-
}
|
|
384
|
+
}
|
|
385
|
+
if (grantType === "refresh_token") {
|
|
384
386
|
const refreshToken = request.query.refresh_token?.toString() || request.body.refresh_token;
|
|
385
387
|
if (!refreshToken) {
|
|
386
388
|
return next(
|
|
@@ -412,17 +414,16 @@ var OAuth2Server = class {
|
|
|
412
414
|
);
|
|
413
415
|
}
|
|
414
416
|
return response.status(200).send(token);
|
|
415
|
-
} else {
|
|
416
|
-
return next(
|
|
417
|
-
new CommercetoolsError(
|
|
418
|
-
{
|
|
419
|
-
code: "unsupported_grant_type",
|
|
420
|
-
message: `Invalid parameter: grant_type: Invalid grant type: ${grantType}`
|
|
421
|
-
},
|
|
422
|
-
400
|
|
423
|
-
)
|
|
424
|
-
);
|
|
425
417
|
}
|
|
418
|
+
return next(
|
|
419
|
+
new CommercetoolsError(
|
|
420
|
+
{
|
|
421
|
+
code: "unsupported_grant_type",
|
|
422
|
+
message: `Invalid parameter: grant_type: Invalid grant type: ${grantType}`
|
|
423
|
+
},
|
|
424
|
+
400
|
|
425
|
+
)
|
|
426
|
+
);
|
|
426
427
|
}
|
|
427
428
|
async customerTokenHandler(request, response, next) {
|
|
428
429
|
const projectKey = request.params.projectKey;
|
|
@@ -589,7 +590,8 @@ var import_deep_equal = __toESM(require("deep-equal"), 1);
|
|
|
589
590
|
|
|
590
591
|
// src/repositories/errors.ts
|
|
591
592
|
var checkConcurrentModification = (currentVersion, expectedVersion, identifier) => {
|
|
592
|
-
if (currentVersion === expectedVersion)
|
|
593
|
+
if (currentVersion === expectedVersion)
|
|
594
|
+
return;
|
|
593
595
|
throw new CommercetoolsError(
|
|
594
596
|
{
|
|
595
597
|
message: `Object ${identifier} has a different version than expected. Expected: ${expectedVersion} - Actual: ${currentVersion}.`,
|
|
@@ -780,7 +782,8 @@ var import_uuid6 = require("uuid");
|
|
|
780
782
|
var import_decimal = require("decimal.js/decimal");
|
|
781
783
|
var import_uuid4 = require("uuid");
|
|
782
784
|
var createAddress = (base, projectKey, storage) => {
|
|
783
|
-
if (!base)
|
|
785
|
+
if (!base)
|
|
786
|
+
return void 0;
|
|
784
787
|
if (!base?.country) {
|
|
785
788
|
throw new Error("Country is required");
|
|
786
789
|
}
|
|
@@ -789,9 +792,12 @@ var createAddress = (base, projectKey, storage) => {
|
|
|
789
792
|
};
|
|
790
793
|
};
|
|
791
794
|
var createCustomFields = (draft, projectKey, storage) => {
|
|
792
|
-
if (!draft)
|
|
793
|
-
|
|
794
|
-
if (!draft.type
|
|
795
|
+
if (!draft)
|
|
796
|
+
return void 0;
|
|
797
|
+
if (!draft.type)
|
|
798
|
+
return void 0;
|
|
799
|
+
if (!draft.type.typeId)
|
|
800
|
+
return void 0;
|
|
795
801
|
const typeResource = storage.getByResourceIdentifier(
|
|
796
802
|
projectKey,
|
|
797
803
|
draft.type
|
|
@@ -874,7 +880,8 @@ var createTypedMoney = (value) => {
|
|
|
874
880
|
return result;
|
|
875
881
|
};
|
|
876
882
|
var resolveStoreReference = (ref, projectKey, storage) => {
|
|
877
|
-
if (!ref)
|
|
883
|
+
if (!ref)
|
|
884
|
+
return void 0;
|
|
878
885
|
const resource = storage.getByResourceIdentifier(projectKey, ref);
|
|
879
886
|
if (!resource) {
|
|
880
887
|
throw new Error("No such store");
|
|
@@ -942,7 +949,8 @@ var getRepositoryContext = (request) => ({
|
|
|
942
949
|
storeKey: request.params.storeKey
|
|
943
950
|
});
|
|
944
951
|
var createAssociate = (a, projectKey, storage) => {
|
|
945
|
-
if (!a)
|
|
952
|
+
if (!a)
|
|
953
|
+
return void 0;
|
|
946
954
|
if (!a.associateRoleAssignments) {
|
|
947
955
|
throw new Error("AssociateRoleAssignments is required");
|
|
948
956
|
}
|
|
@@ -1029,10 +1037,6 @@ var markMatchingShippingRatePriceTiers = (cart, tiers) => {
|
|
|
1029
1037
|
switch (tierType) {
|
|
1030
1038
|
case "CartValue":
|
|
1031
1039
|
return markMatchingCartValueTiers(cart, tiers);
|
|
1032
|
-
// case 'CartClassification':
|
|
1033
|
-
// return markMatchingCartClassificationTiers(cart, tiers)
|
|
1034
|
-
// case 'CartScore':
|
|
1035
|
-
// return markMatchingCartScoreTiers(cart, tiers)
|
|
1036
1040
|
default:
|
|
1037
1041
|
throw new Error(`Unsupported tier type: ${tierType}`);
|
|
1038
1042
|
}
|
|
@@ -1045,7 +1049,8 @@ var markMatchingCartValueTiers = (cart, tiers) => {
|
|
|
1045
1049
|
let hasMatchingTier = false;
|
|
1046
1050
|
for (const tier of sortedTiers) {
|
|
1047
1051
|
const isMatching = !hasMatchingTier && cart.totalPrice.currencyCode === tier.price.currencyCode && cart.totalPrice.centAmount >= tier.minimumCentAmount;
|
|
1048
|
-
if (isMatching)
|
|
1052
|
+
if (isMatching)
|
|
1053
|
+
hasMatchingTier = true;
|
|
1049
1054
|
result[tier.minimumCentAmount] = {
|
|
1050
1055
|
...tier,
|
|
1051
1056
|
isMatching
|
|
@@ -1069,12 +1074,12 @@ var getShippingMethodsMatchingCart = (context, storage, cart, params = {}) => {
|
|
|
1069
1074
|
context.projectKey,
|
|
1070
1075
|
"shipping-method",
|
|
1071
1076
|
{
|
|
1072
|
-
|
|
1073
|
-
|
|
1077
|
+
where: [
|
|
1078
|
+
"zoneRates(zone(id in (:zoneIds)))",
|
|
1074
1079
|
`zoneRates(shippingRates(price(currencyCode="${cart.totalPrice.currencyCode}")))`
|
|
1075
1080
|
],
|
|
1076
1081
|
"var.zoneIds": zoneIds,
|
|
1077
|
-
|
|
1082
|
+
expand: params.expand
|
|
1078
1083
|
}
|
|
1079
1084
|
);
|
|
1080
1085
|
const results = shippingMethods.results.map((shippingMethod) => {
|
|
@@ -1110,7 +1115,7 @@ var selectPrice = ({
|
|
|
1110
1115
|
return countryMatch && currencyMatch;
|
|
1111
1116
|
});
|
|
1112
1117
|
};
|
|
1113
|
-
var calculateLineItemTotalPrice = (lineItem) => lineItem.price
|
|
1118
|
+
var calculateLineItemTotalPrice = (lineItem) => lineItem.price?.value.centAmount * lineItem.quantity;
|
|
1114
1119
|
var calculateCartTotalPrice = (cart) => cart.lineItems.reduce((cur, item) => cur + item.totalPrice.centAmount, 0);
|
|
1115
1120
|
|
|
1116
1121
|
// src/repositories/cart/actions.ts
|
|
@@ -1157,8 +1162,10 @@ var CartUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
1157
1162
|
product.masterData.current.masterVariant,
|
|
1158
1163
|
...product.masterData.current.variants
|
|
1159
1164
|
].find((x) => {
|
|
1160
|
-
if (sku)
|
|
1161
|
-
|
|
1165
|
+
if (sku)
|
|
1166
|
+
return x.sku === sku;
|
|
1167
|
+
if (variantId)
|
|
1168
|
+
return x.id === variantId;
|
|
1162
1169
|
return false;
|
|
1163
1170
|
});
|
|
1164
1171
|
if (!variant) {
|
|
@@ -1244,7 +1251,7 @@ var CartUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
1244
1251
|
} else {
|
|
1245
1252
|
throw new CommercetoolsError({
|
|
1246
1253
|
code: "General",
|
|
1247
|
-
message:
|
|
1254
|
+
message: "Either lineItemid or lineItemKey needs to be provided."
|
|
1248
1255
|
});
|
|
1249
1256
|
}
|
|
1250
1257
|
if (quantity === 0) {
|
|
@@ -1511,7 +1518,7 @@ var CartUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
1511
1518
|
});
|
|
1512
1519
|
}
|
|
1513
1520
|
const zoneRate = method.zoneRates.find(
|
|
1514
|
-
(rate) => rate.zone.obj
|
|
1521
|
+
(rate) => rate.zone.obj?.locations.some((loc) => loc.country === country)
|
|
1515
1522
|
);
|
|
1516
1523
|
if (!zoneRate) {
|
|
1517
1524
|
throw new Error("Zone rate not found");
|
|
@@ -1589,6 +1596,18 @@ var CartRepository = class extends AbstractResourceRepository {
|
|
|
1589
1596
|
this.actions = new CartUpdateHandler(this._storage);
|
|
1590
1597
|
}
|
|
1591
1598
|
create(context, draft) {
|
|
1599
|
+
if (draft.anonymousId && draft.customerId) {
|
|
1600
|
+
throw new CommercetoolsError({
|
|
1601
|
+
code: "InvalidOperation",
|
|
1602
|
+
message: "Can set only one of customer OR anonymousId"
|
|
1603
|
+
});
|
|
1604
|
+
}
|
|
1605
|
+
if (draft.customerId) {
|
|
1606
|
+
this._storage.getByResourceIdentifier(context.projectKey, {
|
|
1607
|
+
typeId: "customer",
|
|
1608
|
+
id: draft.customerId
|
|
1609
|
+
});
|
|
1610
|
+
}
|
|
1592
1611
|
const lineItems = draft.lineItems?.map(
|
|
1593
1612
|
(draftLineItem) => this.draftLineItemtoLineItem(
|
|
1594
1613
|
context.projectKey,
|
|
@@ -1603,6 +1622,7 @@ var CartRepository = class extends AbstractResourceRepository {
|
|
|
1603
1622
|
billingAddress: draft.billingAddress ? createAddress(draft.billingAddress, context.projectKey, this._storage) : void 0,
|
|
1604
1623
|
cartState: "Active",
|
|
1605
1624
|
country: draft.country,
|
|
1625
|
+
customerId: draft.customerId,
|
|
1606
1626
|
customerEmail: draft.customerEmail,
|
|
1607
1627
|
customLineItems: [],
|
|
1608
1628
|
directDiscounts: [],
|
|
@@ -1673,8 +1693,10 @@ var CartRepository = class extends AbstractResourceRepository {
|
|
|
1673
1693
|
product.masterData.current.masterVariant,
|
|
1674
1694
|
...product.masterData.current.variants
|
|
1675
1695
|
].find((x) => {
|
|
1676
|
-
if (sku)
|
|
1677
|
-
|
|
1696
|
+
if (sku)
|
|
1697
|
+
return x.sku === sku;
|
|
1698
|
+
if (variantId)
|
|
1699
|
+
return x.id === variantId;
|
|
1678
1700
|
return false;
|
|
1679
1701
|
});
|
|
1680
1702
|
if (!variant) {
|
|
@@ -1716,7 +1738,7 @@ var CartRepository = class extends AbstractResourceRepository {
|
|
|
1716
1738
|
};
|
|
1717
1739
|
|
|
1718
1740
|
// src/repositories/order/index.ts
|
|
1719
|
-
var
|
|
1741
|
+
var import_node_assert = __toESM(require("assert"), 1);
|
|
1720
1742
|
|
|
1721
1743
|
// src/repositories/order/actions.ts
|
|
1722
1744
|
var OrderUpdateHandler = class extends AbstractUpdateHandler {
|
|
@@ -1856,7 +1878,8 @@ var OrderUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
1856
1878
|
);
|
|
1857
1879
|
}
|
|
1858
1880
|
setStore(context, resource, { store }) {
|
|
1859
|
-
if (!store)
|
|
1881
|
+
if (!store)
|
|
1882
|
+
return;
|
|
1860
1883
|
const resolvedType = this._storage.getByResourceIdentifier(
|
|
1861
1884
|
context.projectKey,
|
|
1862
1885
|
store
|
|
@@ -1887,7 +1910,8 @@ var OrderUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
1887
1910
|
};
|
|
1888
1911
|
}
|
|
1889
1912
|
updateSyncInfo(context, resource, { channel, externalId, syncedAt }) {
|
|
1890
|
-
if (!channel)
|
|
1913
|
+
if (!channel)
|
|
1914
|
+
return;
|
|
1891
1915
|
const resolvedType = this._storage.getByResourceIdentifier(
|
|
1892
1916
|
context.projectKey,
|
|
1893
1917
|
channel
|
|
@@ -1921,7 +1945,7 @@ var OrderRepository = class extends AbstractResourceRepository {
|
|
|
1921
1945
|
this.actions = new OrderUpdateHandler(config.storage);
|
|
1922
1946
|
}
|
|
1923
1947
|
create(context, draft) {
|
|
1924
|
-
(0,
|
|
1948
|
+
(0, import_node_assert.default)(draft.cart, "draft.cart is missing");
|
|
1925
1949
|
return this.createFromCart(
|
|
1926
1950
|
context,
|
|
1927
1951
|
{
|
|
@@ -1976,7 +2000,7 @@ var OrderRepository = class extends AbstractResourceRepository {
|
|
|
1976
2000
|
return this.saveNew(context, resource);
|
|
1977
2001
|
}
|
|
1978
2002
|
import(context, draft) {
|
|
1979
|
-
(0,
|
|
2003
|
+
(0, import_node_assert.default)(this, "OrderRepository not valid");
|
|
1980
2004
|
const resource = {
|
|
1981
2005
|
...getBaseResourceProperties(),
|
|
1982
2006
|
billingAddress: createAddress(
|
|
@@ -2283,7 +2307,8 @@ var BusinessUnitRepository = class extends AbstractResourceRepository {
|
|
|
2283
2307
|
};
|
|
2284
2308
|
this.saveNew(context, division);
|
|
2285
2309
|
return division;
|
|
2286
|
-
}
|
|
2310
|
+
}
|
|
2311
|
+
if (this._isCompanyDraft(draft)) {
|
|
2287
2312
|
const company = resource;
|
|
2288
2313
|
this.saveNew(context, company);
|
|
2289
2314
|
return company;
|
|
@@ -2405,7 +2430,7 @@ var CartDiscountUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2405
2430
|
throw new CommercetoolsError(
|
|
2406
2431
|
{
|
|
2407
2432
|
code: "InvalidOperation",
|
|
2408
|
-
message:
|
|
2433
|
+
message: `Cannot remove custom field ${name} because it does not exist.`
|
|
2409
2434
|
},
|
|
2410
2435
|
400
|
|
2411
2436
|
);
|
|
@@ -2585,15 +2610,11 @@ var CategoryUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2585
2610
|
return;
|
|
2586
2611
|
}
|
|
2587
2612
|
if (assetId) {
|
|
2588
|
-
resource.assets = resource.assets.filter(
|
|
2589
|
-
return obj.id !== assetId;
|
|
2590
|
-
});
|
|
2613
|
+
resource.assets = resource.assets.filter((obj) => obj.id !== assetId);
|
|
2591
2614
|
return;
|
|
2592
2615
|
}
|
|
2593
2616
|
if (assetKey) {
|
|
2594
|
-
resource.assets = resource.assets.filter(
|
|
2595
|
-
return obj.key !== assetKey;
|
|
2596
|
-
});
|
|
2617
|
+
resource.assets = resource.assets.filter((obj) => obj.key !== assetKey);
|
|
2597
2618
|
return;
|
|
2598
2619
|
}
|
|
2599
2620
|
}
|
|
@@ -2816,26 +2837,25 @@ var CustomObjectRepository = class extends AbstractResourceRepository {
|
|
|
2816
2837
|
return updated;
|
|
2817
2838
|
}
|
|
2818
2839
|
return current;
|
|
2819
|
-
} else {
|
|
2820
|
-
if (draft.version) {
|
|
2821
|
-
throw new CommercetoolsError(
|
|
2822
|
-
{
|
|
2823
|
-
code: "InvalidOperation",
|
|
2824
|
-
message: "version on create must be 0"
|
|
2825
|
-
},
|
|
2826
|
-
400
|
|
2827
|
-
);
|
|
2828
|
-
}
|
|
2829
|
-
const baseProperties = getBaseResourceProperties();
|
|
2830
|
-
const resource = {
|
|
2831
|
-
...baseProperties,
|
|
2832
|
-
container: draft.container,
|
|
2833
|
-
key: draft.key,
|
|
2834
|
-
value: draft.value
|
|
2835
|
-
};
|
|
2836
|
-
this.saveNew(context, resource);
|
|
2837
|
-
return resource;
|
|
2838
2840
|
}
|
|
2841
|
+
if (draft.version) {
|
|
2842
|
+
throw new CommercetoolsError(
|
|
2843
|
+
{
|
|
2844
|
+
code: "InvalidOperation",
|
|
2845
|
+
message: "version on create must be 0"
|
|
2846
|
+
},
|
|
2847
|
+
400
|
|
2848
|
+
);
|
|
2849
|
+
}
|
|
2850
|
+
const baseProperties = getBaseResourceProperties();
|
|
2851
|
+
const resource = {
|
|
2852
|
+
...baseProperties,
|
|
2853
|
+
container: draft.container,
|
|
2854
|
+
key: draft.key,
|
|
2855
|
+
value: draft.value
|
|
2856
|
+
};
|
|
2857
|
+
this.saveNew(context, resource);
|
|
2858
|
+
return resource;
|
|
2839
2859
|
}
|
|
2840
2860
|
getWithContainerAndKey(context, container, key) {
|
|
2841
2861
|
const items = this._storage.all(context.projectKey, this.getTypeId());
|
|
@@ -2860,7 +2880,7 @@ var CustomObjectRepository = class extends AbstractResourceRepository {
|
|
|
2860
2880
|
};
|
|
2861
2881
|
|
|
2862
2882
|
// src/repositories/customer/actions.ts
|
|
2863
|
-
var
|
|
2883
|
+
var import_node_assert2 = __toESM(require("assert"), 1);
|
|
2864
2884
|
var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
2865
2885
|
addAddress(_context, resource, { address }) {
|
|
2866
2886
|
resource.addresses.push({
|
|
@@ -2870,7 +2890,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2870
2890
|
}
|
|
2871
2891
|
addBillingAddressId(_context, resource, { addressId, addressKey }) {
|
|
2872
2892
|
const address = this._findAddress(resource, addressId, addressKey, true);
|
|
2873
|
-
(0,
|
|
2893
|
+
(0, import_node_assert2.default)(address?.id);
|
|
2874
2894
|
if (resource.billingAddressIds === void 0) {
|
|
2875
2895
|
resource.billingAddressIds = [];
|
|
2876
2896
|
}
|
|
@@ -2880,7 +2900,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2880
2900
|
}
|
|
2881
2901
|
addShippingAddressId(_context, resource, { addressId, addressKey }) {
|
|
2882
2902
|
const address = this._findAddress(resource, addressId, addressKey, true);
|
|
2883
|
-
(0,
|
|
2903
|
+
(0, import_node_assert2.default)(address?.id);
|
|
2884
2904
|
if (resource.shippingAddressIds === void 0) {
|
|
2885
2905
|
resource.shippingAddressIds = [];
|
|
2886
2906
|
}
|
|
@@ -2894,7 +2914,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2894
2914
|
}
|
|
2895
2915
|
changeAddress(context, resource, { addressId, addressKey, address }) {
|
|
2896
2916
|
const current = this._findAddress(resource, addressId, addressKey, true);
|
|
2897
|
-
(0,
|
|
2917
|
+
(0, import_node_assert2.default)(current?.id);
|
|
2898
2918
|
const oldAddressIndex = resource.addresses.findIndex(
|
|
2899
2919
|
(a) => a.id === current.id
|
|
2900
2920
|
);
|
|
@@ -2920,7 +2940,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2920
2940
|
action.addressKey,
|
|
2921
2941
|
true
|
|
2922
2942
|
);
|
|
2923
|
-
(0,
|
|
2943
|
+
(0, import_node_assert2.default)(address?.id);
|
|
2924
2944
|
resource.addresses = resource.addresses.filter((a) => a.id !== address.id);
|
|
2925
2945
|
}
|
|
2926
2946
|
removeBillingAddressId(context, resource, action) {
|
|
@@ -2930,7 +2950,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2930
2950
|
action.addressKey,
|
|
2931
2951
|
true
|
|
2932
2952
|
);
|
|
2933
|
-
(0,
|
|
2953
|
+
(0, import_node_assert2.default)(address?.id);
|
|
2934
2954
|
resource.billingAddressIds = resource.billingAddressIds?.filter(
|
|
2935
2955
|
(id) => id !== address.id
|
|
2936
2956
|
);
|
|
@@ -2945,7 +2965,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2945
2965
|
action.addressKey,
|
|
2946
2966
|
true
|
|
2947
2967
|
);
|
|
2948
|
-
(0,
|
|
2968
|
+
(0, import_node_assert2.default)(address?.id);
|
|
2949
2969
|
resource.shippingAddressIds = resource.shippingAddressIds?.filter(
|
|
2950
2970
|
(id) => id !== address.id
|
|
2951
2971
|
);
|
|
@@ -2974,7 +2994,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
2974
2994
|
}
|
|
2975
2995
|
resource.authenticationMode = authMode;
|
|
2976
2996
|
if (authMode === "ExternalAuth") {
|
|
2977
|
-
|
|
2997
|
+
resource.password = void 0;
|
|
2978
2998
|
return;
|
|
2979
2999
|
}
|
|
2980
3000
|
if (authMode === "Password") {
|
|
@@ -3047,7 +3067,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
3047
3067
|
action.addressKey,
|
|
3048
3068
|
true
|
|
3049
3069
|
);
|
|
3050
|
-
(0,
|
|
3070
|
+
(0, import_node_assert2.default)(address?.id);
|
|
3051
3071
|
resource.defaultBillingAddressId = address.id;
|
|
3052
3072
|
if (resource.billingAddressIds === void 0) {
|
|
3053
3073
|
resource.billingAddressIds = [];
|
|
@@ -3063,7 +3083,7 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
3063
3083
|
action.addressKey,
|
|
3064
3084
|
true
|
|
3065
3085
|
);
|
|
3066
|
-
(0,
|
|
3086
|
+
(0, import_node_assert2.default)(address?.id);
|
|
3067
3087
|
resource.defaultShippingAddressId = address.id;
|
|
3068
3088
|
if (resource.shippingAddressIds === void 0) {
|
|
3069
3089
|
resource.shippingAddressIds = [];
|
|
@@ -3528,7 +3548,8 @@ var ExtensionRepository = class extends AbstractResourceRepository {
|
|
|
3528
3548
|
extension,
|
|
3529
3549
|
"destination.authentication.headerValue"
|
|
3530
3550
|
);
|
|
3531
|
-
}
|
|
3551
|
+
}
|
|
3552
|
+
if (extension.destination.type === "AWSLambda") {
|
|
3532
3553
|
return maskSecretValue(resource, "destination.accessSecret");
|
|
3533
3554
|
}
|
|
3534
3555
|
}
|
|
@@ -3695,10 +3716,10 @@ var MyCustomerRepository = class extends CustomerRepository {
|
|
|
3695
3716
|
};
|
|
3696
3717
|
|
|
3697
3718
|
// src/repositories/my-order.ts
|
|
3698
|
-
var
|
|
3719
|
+
var import_node_assert3 = __toESM(require("assert"), 1);
|
|
3699
3720
|
var MyOrderRepository = class extends OrderRepository {
|
|
3700
3721
|
create(context, draft) {
|
|
3701
|
-
(0,
|
|
3722
|
+
(0, import_node_assert3.default)(draft.id, "draft.id is missing");
|
|
3702
3723
|
const cartIdentifier = {
|
|
3703
3724
|
id: draft.id,
|
|
3704
3725
|
typeId: "cart"
|
|
@@ -4003,16 +4024,19 @@ function toRegExp(str) {
|
|
|
4003
4024
|
return new RegExp(str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"));
|
|
4004
4025
|
}
|
|
4005
4026
|
function normalize(regex) {
|
|
4006
|
-
if (typeof regex === "string")
|
|
4027
|
+
if (typeof regex === "string")
|
|
4028
|
+
regex = toRegExp(regex);
|
|
4007
4029
|
if (!regex.source.startsWith("^"))
|
|
4008
4030
|
return new RegExp(`^${regex.source}`, regex.flags);
|
|
4009
|
-
else
|
|
4031
|
+
else
|
|
4032
|
+
return regex;
|
|
4010
4033
|
}
|
|
4011
4034
|
function first(arr, predicate) {
|
|
4012
4035
|
let i = 0;
|
|
4013
4036
|
for (const item of arr) {
|
|
4014
4037
|
const result = predicate(item, i++);
|
|
4015
|
-
if (result)
|
|
4038
|
+
if (result)
|
|
4039
|
+
return { item, result };
|
|
4016
4040
|
}
|
|
4017
4041
|
}
|
|
4018
4042
|
var TokenTypes = class {
|
|
@@ -4176,7 +4200,8 @@ var Lexer = class {
|
|
|
4176
4200
|
*/
|
|
4177
4201
|
peek(position = this._state.position) {
|
|
4178
4202
|
const read = (i = position) => {
|
|
4179
|
-
if (i >= this._state.source.length)
|
|
4203
|
+
if (i >= this._state.source.length)
|
|
4204
|
+
return EOF(this);
|
|
4180
4205
|
const n = this._tokenTypes.peek(this._state.source, i);
|
|
4181
4206
|
if (!n || !n.result) {
|
|
4182
4207
|
throw new Error(
|
|
@@ -4196,7 +4221,8 @@ var Lexer = class {
|
|
|
4196
4221
|
) : null;
|
|
4197
4222
|
};
|
|
4198
4223
|
const t = read();
|
|
4199
|
-
if (t)
|
|
4224
|
+
if (t)
|
|
4225
|
+
return t;
|
|
4200
4226
|
let unexpected = this._state.source.substring(position, position + 1);
|
|
4201
4227
|
try {
|
|
4202
4228
|
this.peek(position + 1);
|
|
@@ -4218,7 +4244,8 @@ var Lexer = class {
|
|
|
4218
4244
|
*/
|
|
4219
4245
|
strpos(i) {
|
|
4220
4246
|
let lines = this._state.source.substring(0, i).split(/\r?\n/);
|
|
4221
|
-
if (!Array.isArray(lines))
|
|
4247
|
+
if (!Array.isArray(lines))
|
|
4248
|
+
lines = [lines];
|
|
4222
4249
|
const line = lines.length;
|
|
4223
4250
|
const column = lines[lines.length - 1].length + 1;
|
|
4224
4251
|
return { line, column };
|
|
@@ -4317,7 +4344,8 @@ var Parser = class {
|
|
|
4317
4344
|
* @returns {number} The binding power of the specified token type
|
|
4318
4345
|
*/
|
|
4319
4346
|
bp(tokenOrType) {
|
|
4320
|
-
if (tokenOrType == null)
|
|
4347
|
+
if (tokenOrType == null)
|
|
4348
|
+
return Number.NEGATIVE_INFINITY;
|
|
4321
4349
|
if (tokenOrType && typeof tokenOrType.isEof == "function" && tokenOrType.isEof())
|
|
4322
4350
|
return Number.NEGATIVE_INFINITY;
|
|
4323
4351
|
const type = this._type(tokenOrType);
|
|
@@ -4362,21 +4390,27 @@ var Parser = class {
|
|
|
4362
4390
|
parse(opts = { terminals: [0] }) {
|
|
4363
4391
|
const stop = opts.stop = opts.stop || createStop();
|
|
4364
4392
|
const check = () => {
|
|
4365
|
-
if (stop.isStopped())
|
|
4393
|
+
if (stop.isStopped())
|
|
4394
|
+
return false;
|
|
4366
4395
|
const t = this.lexer.peek();
|
|
4367
4396
|
const bp = this.bp(t);
|
|
4368
4397
|
return opts.terminals.reduce((canContinue, rbpOrType) => {
|
|
4369
|
-
if (!canContinue)
|
|
4370
|
-
|
|
4371
|
-
if (typeof 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;
|
|
4372
4404
|
}, true);
|
|
4373
4405
|
};
|
|
4374
4406
|
const mkinfo = (token) => {
|
|
4375
4407
|
const bp = this.bp(token);
|
|
4376
4408
|
return { token, bp, stop, ctx: opts.ctx, options: opts };
|
|
4377
4409
|
};
|
|
4378
|
-
if (!opts.terminals)
|
|
4379
|
-
|
|
4410
|
+
if (!opts.terminals)
|
|
4411
|
+
opts.terminals = [0];
|
|
4412
|
+
if (opts.terminals.length == 0)
|
|
4413
|
+
opts.terminals.push(0);
|
|
4380
4414
|
let left = this.nud(mkinfo(this.lexer.next()));
|
|
4381
4415
|
while (check()) {
|
|
4382
4416
|
const operator = this.lexer.next();
|
|
@@ -4508,7 +4542,7 @@ var parseFilter = (filter) => {
|
|
|
4508
4542
|
(t) => ({
|
|
4509
4543
|
type: "Symbol",
|
|
4510
4544
|
kind: "int",
|
|
4511
|
-
value: parseInt(t.token.match, 10)
|
|
4545
|
+
value: Number.parseInt(t.token.match, 10)
|
|
4512
4546
|
})
|
|
4513
4547
|
).nud("STAR", 5, (_) => ({
|
|
4514
4548
|
type: "Symbol",
|
|
@@ -4532,9 +4566,8 @@ var parseFilter = (filter) => {
|
|
|
4532
4566
|
const expr = parser.parse({ terminals: [bp - 1] });
|
|
4533
4567
|
if (Array.isArray(expr)) {
|
|
4534
4568
|
return [left, ...expr];
|
|
4535
|
-
} else {
|
|
4536
|
-
return [left, expr];
|
|
4537
4569
|
}
|
|
4570
|
+
return [left, expr];
|
|
4538
4571
|
}).nud("(", 100, (t) => {
|
|
4539
4572
|
const expr = parser.parse({ terminals: [")"] });
|
|
4540
4573
|
lexer.expect(")");
|
|
@@ -4580,7 +4613,8 @@ var generateMatchFunc = (filter) => {
|
|
|
4580
4613
|
throw new Error(`Syntax error while parsing '${filter}'.`);
|
|
4581
4614
|
}
|
|
4582
4615
|
return (obj) => {
|
|
4583
|
-
if (!result.children)
|
|
4616
|
+
if (!result.children)
|
|
4617
|
+
return false;
|
|
4584
4618
|
return result.children.some((c) => c.match(obj));
|
|
4585
4619
|
};
|
|
4586
4620
|
};
|
|
@@ -4686,6 +4720,12 @@ var parseSearchQuery = (searchQuery) => {
|
|
|
4686
4720
|
return generateFieldMatchFunc(generateRangeMatchFunc, searchQuery.range);
|
|
4687
4721
|
}
|
|
4688
4722
|
if (isSearchExactExpression(searchQuery)) {
|
|
4723
|
+
if (Array.isArray(searchQuery.exact.values)) {
|
|
4724
|
+
return generateFieldMatchFunc(
|
|
4725
|
+
(value) => (searchQuery.exact.values ?? []).includes(value),
|
|
4726
|
+
searchQuery.exact
|
|
4727
|
+
);
|
|
4728
|
+
}
|
|
4689
4729
|
return generateFieldMatchFunc(
|
|
4690
4730
|
(value) => value === searchQuery.exact.value,
|
|
4691
4731
|
searchQuery.exact
|
|
@@ -4891,8 +4931,23 @@ var ProductSearch = class {
|
|
|
4891
4931
|
this._storage = config.storage;
|
|
4892
4932
|
}
|
|
4893
4933
|
search(projectKey, params) {
|
|
4894
|
-
|
|
4895
|
-
|
|
4934
|
+
const availabilityBySku = this._storage.all(projectKey, "inventory-entry").reduce((acc, entry) => {
|
|
4935
|
+
const existingEntry = acc.get(entry.sku);
|
|
4936
|
+
acc.set(entry.sku, {
|
|
4937
|
+
isOnStock: existingEntry?.isOnStock || entry.quantityOnStock > 0,
|
|
4938
|
+
availableQuantity: existingEntry?.availableQuantity ?? 0 + entry.quantityOnStock,
|
|
4939
|
+
// NOTE: This doesn't handle inventory entries for multiple channels,
|
|
4940
|
+
// so it doesn't exactly replicate the behavior of the commercetools api.
|
|
4941
|
+
isOnStockForChannel: existingEntry?.isOnStockForChannel ?? entry.supplyChannel?.id
|
|
4942
|
+
});
|
|
4943
|
+
return acc;
|
|
4944
|
+
}, /* @__PURE__ */ new Map());
|
|
4945
|
+
let productResources = this._storage.all(projectKey, "product").map(
|
|
4946
|
+
(r) => this.transformProduct(
|
|
4947
|
+
r,
|
|
4948
|
+
params.productProjectionParameters?.staged ?? false,
|
|
4949
|
+
availabilityBySku
|
|
4950
|
+
)
|
|
4896
4951
|
).filter((p) => {
|
|
4897
4952
|
if (!(params.productProjectionParameters?.staged ?? false)) {
|
|
4898
4953
|
return p.published;
|
|
@@ -4904,7 +4959,7 @@ var ProductSearch = class {
|
|
|
4904
4959
|
try {
|
|
4905
4960
|
validateSearchQuery(params.query);
|
|
4906
4961
|
const matchFunc = parseSearchQuery(params.query);
|
|
4907
|
-
|
|
4962
|
+
productResources = productResources.filter(
|
|
4908
4963
|
(resource) => matchFunc(resource, markMatchingVariant)
|
|
4909
4964
|
);
|
|
4910
4965
|
} catch (err) {
|
|
@@ -4919,7 +4974,7 @@ var ProductSearch = class {
|
|
|
4919
4974
|
}
|
|
4920
4975
|
}
|
|
4921
4976
|
if (params.productProjectionParameters) {
|
|
4922
|
-
applyPriceSelector(
|
|
4977
|
+
applyPriceSelector(productResources, {
|
|
4923
4978
|
country: params.productProjectionParameters.priceCountry,
|
|
4924
4979
|
channel: params.productProjectionParameters.priceChannel,
|
|
4925
4980
|
customerGroup: params.productProjectionParameters.priceCustomerGroup,
|
|
@@ -4928,7 +4983,10 @@ var ProductSearch = class {
|
|
|
4928
4983
|
}
|
|
4929
4984
|
const offset = params.offset || 0;
|
|
4930
4985
|
const limit = params.limit || 20;
|
|
4931
|
-
const productProjectionsResult =
|
|
4986
|
+
const productProjectionsResult = productResources.slice(
|
|
4987
|
+
offset,
|
|
4988
|
+
offset + limit
|
|
4989
|
+
);
|
|
4932
4990
|
const productProjectionsParameterGiven = !!params?.productProjectionParameters;
|
|
4933
4991
|
const results = productProjectionsResult.map(
|
|
4934
4992
|
(product) => ({
|
|
@@ -4941,14 +4999,14 @@ var ProductSearch = class {
|
|
|
4941
4999
|
})
|
|
4942
5000
|
);
|
|
4943
5001
|
return {
|
|
4944
|
-
total:
|
|
5002
|
+
total: productResources.length,
|
|
4945
5003
|
offset,
|
|
4946
5004
|
limit,
|
|
4947
5005
|
results,
|
|
4948
5006
|
facets: []
|
|
4949
5007
|
};
|
|
4950
5008
|
}
|
|
4951
|
-
|
|
5009
|
+
transformProduct(product, staged, availabilityBySku) {
|
|
4952
5010
|
const obj = !staged ? product.masterData.current : product.masterData.staged;
|
|
4953
5011
|
return {
|
|
4954
5012
|
id: product.id,
|
|
@@ -4962,7 +5020,10 @@ var ProductSearch = class {
|
|
|
4962
5020
|
slug: obj.slug,
|
|
4963
5021
|
categories: obj.categories,
|
|
4964
5022
|
masterVariant: obj.masterVariant,
|
|
4965
|
-
variants: obj.variants
|
|
5023
|
+
variants: obj.variants.map((variant) => ({
|
|
5024
|
+
...variant,
|
|
5025
|
+
availability: variant.sku ? availabilityBySku.get(variant.sku) : { isOnStock: false, availableQuantity: 0, isOnStockForChannel: [] }
|
|
5026
|
+
})),
|
|
4966
5027
|
productType: product.productType,
|
|
4967
5028
|
hasStagedChanges: product.masterData.hasStagedChanges,
|
|
4968
5029
|
published: product.masterData.published
|
|
@@ -5283,7 +5344,7 @@ var ProductUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
5283
5344
|
}
|
|
5284
5345
|
if (position >= variantImages.length) {
|
|
5285
5346
|
throw new Error(
|
|
5286
|
-
|
|
5347
|
+
"Invalid position given. Position in images where the image should be moved. Must be between 0 and the total number of images minus 1."
|
|
5287
5348
|
);
|
|
5288
5349
|
}
|
|
5289
5350
|
variant.images = variantImages.filter((image) => image.url !== imageUrl);
|
|
@@ -5916,9 +5977,8 @@ var parseQueryExpression = (predicate) => {
|
|
|
5916
5977
|
if (Array.isArray(predicate)) {
|
|
5917
5978
|
const callbacks = predicate.map((item) => generateMatchFunc2(item));
|
|
5918
5979
|
return (target, variables) => callbacks.every((callback) => callback(target, variables));
|
|
5919
|
-
} else {
|
|
5920
|
-
return generateMatchFunc2(predicate);
|
|
5921
5980
|
}
|
|
5981
|
+
return generateMatchFunc2(predicate);
|
|
5922
5982
|
};
|
|
5923
5983
|
var validateSymbol = (val) => {
|
|
5924
5984
|
if (!val.type) {
|
|
@@ -5954,7 +6014,10 @@ var resolveValue = (obj, val) => {
|
|
|
5954
6014
|
}
|
|
5955
6015
|
return obj[val.value];
|
|
5956
6016
|
};
|
|
5957
|
-
var getLexer2 = (value) => new Lexer(value).token("AND", /and(?![-_a-z0-9]+)/i).token("OR", /or(?![-_a-z0-9]+)/i).token("NOT", /not(?![-_a-z0-9]+)/i).token("WITHIN", /within(?![-_a-z0-9]+)/i).token("IN", /in(?![-_a-z0-9]+)/i).token("MATCHES_IGNORE_CASE", /matches\s+ignore\s+case(?![-_a-z0-9]+)/i).token("CONTAINS", /contains(?![-_a-z0-9]+)/i).token("ALL", /all(?![-_a-z0-9]+)/i).token("ANY", /any(?![-_a-z0-9]+)/i).token("EMPTY", /empty(?![-_a-z0-9]+)/i).token("IS", /is(?![-_a-z0-9]+)/i).token("DEFINED", /defined(?![-_a-z0-9]+)/i).token(
|
|
6017
|
+
var getLexer2 = (value) => new Lexer(value).token("AND", /and(?![-_a-z0-9]+)/i).token("OR", /or(?![-_a-z0-9]+)/i).token("NOT", /not(?![-_a-z0-9]+)/i).token("WITHIN", /within(?![-_a-z0-9]+)/i).token("IN", /in(?![-_a-z0-9]+)/i).token("MATCHES_IGNORE_CASE", /matches\s+ignore\s+case(?![-_a-z0-9]+)/i).token("CONTAINS", /contains(?![-_a-z0-9]+)/i).token("ALL", /all(?![-_a-z0-9]+)/i).token("ANY", /any(?![-_a-z0-9]+)/i).token("EMPTY", /empty(?![-_a-z0-9]+)/i).token("IS", /is(?![-_a-z0-9]+)/i).token("DEFINED", /defined(?![-_a-z0-9]+)/i).token(
|
|
6018
|
+
"IDENTIFIER",
|
|
6019
|
+
/[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}/
|
|
6020
|
+
).token("FLOAT", /\d+\.\d+/).token("INT", /\d+/).token("VARIABLE", /:([-_A-Za-z0-9]+)/).token("BOOLEAN", /(true|false)/).token("IDENTIFIER", /[-_A-Za-z0-9]+/).token("STRING", /"((?:\\.|[^"\\])*)"/).token("STRING", /'((?:\\.|[^'\\])*)'/).token("COMMA", ",").token("(", "(").token(")", ")").token(">=", ">=").token("<=", "<=").token(">", ">").token("<", "<").token("!=", "!=").token("=", "=").token('"', '"').token("WS", /\s+/, true);
|
|
5958
6021
|
var generateMatchFunc2 = (predicate) => {
|
|
5959
6022
|
const lexer = getLexer2(predicate);
|
|
5960
6023
|
const parser = new Parser(lexer).builder().nud(
|
|
@@ -5970,7 +6033,7 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
5970
6033
|
1,
|
|
5971
6034
|
(t) => ({
|
|
5972
6035
|
type: "boolean",
|
|
5973
|
-
value: t.token.match === "true"
|
|
6036
|
+
value: t.token.match === "true",
|
|
5974
6037
|
pos: t.token.strpos()
|
|
5975
6038
|
})
|
|
5976
6039
|
).nud(
|
|
@@ -5996,7 +6059,7 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
5996
6059
|
1,
|
|
5997
6060
|
(t) => ({
|
|
5998
6061
|
type: "int",
|
|
5999
|
-
value: parseInt(t.token.match, 10),
|
|
6062
|
+
value: Number.parseInt(t.token.match, 10),
|
|
6000
6063
|
pos: t.token.strpos()
|
|
6001
6064
|
})
|
|
6002
6065
|
).nud(
|
|
@@ -6004,7 +6067,7 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6004
6067
|
1,
|
|
6005
6068
|
(t) => ({
|
|
6006
6069
|
type: "float",
|
|
6007
|
-
value: parseFloat(t.token.match),
|
|
6070
|
+
value: Number.parseFloat(t.token.match),
|
|
6008
6071
|
pos: t.token.strpos()
|
|
6009
6072
|
})
|
|
6010
6073
|
).nud("NOT", 100, ({ bp }) => {
|
|
@@ -6020,9 +6083,8 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6020
6083
|
const expr = parser.parse({ terminals: [bp - 1] });
|
|
6021
6084
|
if (Array.isArray(expr)) {
|
|
6022
6085
|
return [left, ...expr];
|
|
6023
|
-
} else {
|
|
6024
|
-
return [left, expr];
|
|
6025
6086
|
}
|
|
6087
|
+
return [left, expr];
|
|
6026
6088
|
}).nud("(", 100, (t) => {
|
|
6027
6089
|
const expr = parser.parse({ terminals: [")"] });
|
|
6028
6090
|
return expr;
|
|
@@ -6032,22 +6094,21 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6032
6094
|
return (obj, vars) => {
|
|
6033
6095
|
if (Array.isArray(obj)) {
|
|
6034
6096
|
return obj.some((item) => {
|
|
6035
|
-
const
|
|
6036
|
-
if (
|
|
6037
|
-
return expr(
|
|
6097
|
+
const value2 = resolveValue(item, left);
|
|
6098
|
+
if (value2) {
|
|
6099
|
+
return expr(value2, vars);
|
|
6038
6100
|
}
|
|
6039
6101
|
return false;
|
|
6040
6102
|
});
|
|
6041
|
-
}
|
|
6042
|
-
|
|
6043
|
-
|
|
6044
|
-
|
|
6045
|
-
|
|
6046
|
-
}
|
|
6047
|
-
return expr(value, vars);
|
|
6103
|
+
}
|
|
6104
|
+
const value = resolveValue(obj, left);
|
|
6105
|
+
if (value) {
|
|
6106
|
+
if (Array.isArray(value)) {
|
|
6107
|
+
return value.some((item) => expr(item, vars));
|
|
6048
6108
|
}
|
|
6049
|
-
return
|
|
6109
|
+
return expr(value, vars);
|
|
6050
6110
|
}
|
|
6111
|
+
return false;
|
|
6051
6112
|
};
|
|
6052
6113
|
}).bp(")", 0).led("=", 20, ({ left, bp }) => {
|
|
6053
6114
|
const expr = parser.parse({ terminals: [bp - 1] });
|
|
@@ -6062,14 +6123,13 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6062
6123
|
}
|
|
6063
6124
|
return value === other;
|
|
6064
6125
|
});
|
|
6065
|
-
} else {
|
|
6066
|
-
const resolvedValue = resolveValue(obj, left);
|
|
6067
|
-
const resolvedSymbol = resolveSymbol(expr, vars);
|
|
6068
|
-
if (Array.isArray(resolvedValue)) {
|
|
6069
|
-
return !!resolvedValue.some((elem) => elem === resolvedSymbol);
|
|
6070
|
-
}
|
|
6071
|
-
return resolvedValue === resolvedSymbol;
|
|
6072
6126
|
}
|
|
6127
|
+
const resolvedValue = resolveValue(obj, left);
|
|
6128
|
+
const resolvedSymbol = resolveSymbol(expr, vars);
|
|
6129
|
+
if (Array.isArray(resolvedValue)) {
|
|
6130
|
+
return !!resolvedValue.some((elem) => elem === resolvedSymbol);
|
|
6131
|
+
}
|
|
6132
|
+
return resolvedValue === resolvedSymbol;
|
|
6073
6133
|
};
|
|
6074
6134
|
}).led("!=", 20, ({ left, bp }) => {
|
|
6075
6135
|
const expr = parser.parse({ terminals: [bp - 1] });
|
|
@@ -6106,12 +6166,11 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6106
6166
|
const val = resolveValue(obj, left);
|
|
6107
6167
|
return val.length === 0;
|
|
6108
6168
|
};
|
|
6109
|
-
} else {
|
|
6110
|
-
return (obj, vars) => {
|
|
6111
|
-
const val = resolveValue(obj, left);
|
|
6112
|
-
return val.length !== 0;
|
|
6113
|
-
};
|
|
6114
6169
|
}
|
|
6170
|
+
return (obj, vars) => {
|
|
6171
|
+
const val = resolveValue(obj, left);
|
|
6172
|
+
return val.length !== 0;
|
|
6173
|
+
};
|
|
6115
6174
|
}
|
|
6116
6175
|
case "defined": {
|
|
6117
6176
|
if (!invert) {
|
|
@@ -6119,12 +6178,11 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6119
6178
|
const val = resolveValue(obj, left);
|
|
6120
6179
|
return val !== void 0;
|
|
6121
6180
|
};
|
|
6122
|
-
} else {
|
|
6123
|
-
return (obj, vars) => {
|
|
6124
|
-
const val = resolveValue(obj, left);
|
|
6125
|
-
return val === void 0;
|
|
6126
|
-
};
|
|
6127
6181
|
}
|
|
6182
|
+
return (obj, vars) => {
|
|
6183
|
+
const val = resolveValue(obj, left);
|
|
6184
|
+
return val === void 0;
|
|
6185
|
+
};
|
|
6128
6186
|
}
|
|
6129
6187
|
default: {
|
|
6130
6188
|
throw new Error("Unexpected");
|
|
@@ -6167,7 +6225,8 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6167
6225
|
const expr = parser.parse({ terminals: [")"] });
|
|
6168
6226
|
return (obj, vars) => {
|
|
6169
6227
|
const value = resolveValue(obj, left);
|
|
6170
|
-
if (!value)
|
|
6228
|
+
if (!value)
|
|
6229
|
+
return false;
|
|
6171
6230
|
const maxDistance = resolveSymbol(expr[2], vars);
|
|
6172
6231
|
const distance = haversineDistance(
|
|
6173
6232
|
{
|
|
@@ -6197,9 +6256,8 @@ var generateMatchFunc2 = (predicate) => {
|
|
|
6197
6256
|
const array = expr.map((item) => resolveSymbol(item, vars));
|
|
6198
6257
|
if (keyword.type === "ALL") {
|
|
6199
6258
|
return array.every((item) => value.includes(item));
|
|
6200
|
-
} else {
|
|
6201
|
-
return array.some((item) => value.includes(item));
|
|
6202
6259
|
}
|
|
6260
|
+
return array.some((item) => value.includes(item));
|
|
6203
6261
|
};
|
|
6204
6262
|
}).build();
|
|
6205
6263
|
const result = parser.parse();
|
|
@@ -6306,7 +6364,8 @@ var ProductProjectionSearch = class {
|
|
|
6306
6364
|
};
|
|
6307
6365
|
}
|
|
6308
6366
|
getFacets(params, products) {
|
|
6309
|
-
if (!params.facet)
|
|
6367
|
+
if (!params.facet)
|
|
6368
|
+
return {};
|
|
6310
6369
|
const result = {};
|
|
6311
6370
|
const regexp = new RegExp(/ counting products$/);
|
|
6312
6371
|
for (let facet of params.facet) {
|
|
@@ -6440,9 +6499,8 @@ var ProductProjectionSearch = class {
|
|
|
6440
6499
|
max: numValues > 0 ? Math.max(...values) : 0,
|
|
6441
6500
|
mean: numValues > 0 ? mean(values) : 0
|
|
6442
6501
|
};
|
|
6443
|
-
} else {
|
|
6444
|
-
throw new Error("not supported");
|
|
6445
6502
|
}
|
|
6503
|
+
throw new Error("not supported");
|
|
6446
6504
|
}) || [];
|
|
6447
6505
|
const data = {
|
|
6448
6506
|
type: "range",
|
|
@@ -6789,23 +6847,289 @@ var ProjectUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
6789
6847
|
}
|
|
6790
6848
|
};
|
|
6791
6849
|
|
|
6792
|
-
// src/repositories/quote.ts
|
|
6850
|
+
// src/repositories/quote/actions.ts
|
|
6851
|
+
var QuoteUpdateHandler = class extends AbstractUpdateHandler {
|
|
6852
|
+
setCustomField(context, resource, { name, value }) {
|
|
6853
|
+
if (!resource.custom) {
|
|
6854
|
+
throw new Error("Resource has no custom field");
|
|
6855
|
+
}
|
|
6856
|
+
resource.custom.fields[name] = value;
|
|
6857
|
+
}
|
|
6858
|
+
setCustomType(context, resource, { type, fields }) {
|
|
6859
|
+
if (!type) {
|
|
6860
|
+
resource.custom = void 0;
|
|
6861
|
+
} else {
|
|
6862
|
+
const resolvedType = this._storage.getByResourceIdentifier(
|
|
6863
|
+
context.projectKey,
|
|
6864
|
+
type
|
|
6865
|
+
);
|
|
6866
|
+
if (!resolvedType) {
|
|
6867
|
+
throw new Error(`Type ${type} not found`);
|
|
6868
|
+
}
|
|
6869
|
+
resource.custom = {
|
|
6870
|
+
type: {
|
|
6871
|
+
typeId: "type",
|
|
6872
|
+
id: resolvedType.id
|
|
6873
|
+
},
|
|
6874
|
+
fields: fields || {}
|
|
6875
|
+
};
|
|
6876
|
+
}
|
|
6877
|
+
}
|
|
6878
|
+
transitionState(context, resource, { state, force }) {
|
|
6879
|
+
let stateReference = void 0;
|
|
6880
|
+
if (state) {
|
|
6881
|
+
stateReference = getReferenceFromResourceIdentifier(
|
|
6882
|
+
state,
|
|
6883
|
+
context.projectKey,
|
|
6884
|
+
this._storage
|
|
6885
|
+
);
|
|
6886
|
+
resource.state = stateReference;
|
|
6887
|
+
} else {
|
|
6888
|
+
throw new CommercetoolsError(
|
|
6889
|
+
{
|
|
6890
|
+
code: "InvalidJsonInput",
|
|
6891
|
+
message: "Request body does not contain valid JSON.",
|
|
6892
|
+
detailedErrorMessage: "actions -> state: Missing required value"
|
|
6893
|
+
},
|
|
6894
|
+
400
|
|
6895
|
+
);
|
|
6896
|
+
}
|
|
6897
|
+
return resource;
|
|
6898
|
+
}
|
|
6899
|
+
};
|
|
6900
|
+
|
|
6901
|
+
// src/repositories/quote/index.ts
|
|
6793
6902
|
var QuoteRepository = class extends AbstractResourceRepository {
|
|
6794
6903
|
constructor(config) {
|
|
6795
6904
|
super("quote", config);
|
|
6905
|
+
this.actions = new QuoteUpdateHandler(config.storage);
|
|
6796
6906
|
}
|
|
6797
6907
|
create(context, draft) {
|
|
6798
|
-
|
|
6908
|
+
const staged = this._storage.getByResourceIdentifier(
|
|
6909
|
+
context.projectKey,
|
|
6910
|
+
draft.stagedQuote
|
|
6911
|
+
);
|
|
6912
|
+
const cart = this._storage.getByResourceIdentifier(
|
|
6913
|
+
context.projectKey,
|
|
6914
|
+
staged.quotationCart
|
|
6915
|
+
);
|
|
6916
|
+
if (!cart.customerId) {
|
|
6917
|
+
throw new Error("Cart does not have a customer");
|
|
6918
|
+
}
|
|
6919
|
+
const resource = {
|
|
6920
|
+
...getBaseResourceProperties(),
|
|
6921
|
+
quoteState: "Accepted",
|
|
6922
|
+
quoteRequest: staged.quoteRequest,
|
|
6923
|
+
lineItems: cart.lineItems,
|
|
6924
|
+
customLineItems: cart.customLineItems,
|
|
6925
|
+
customer: {
|
|
6926
|
+
typeId: "customer",
|
|
6927
|
+
id: cart.customerId
|
|
6928
|
+
},
|
|
6929
|
+
stagedQuote: {
|
|
6930
|
+
typeId: "staged-quote",
|
|
6931
|
+
id: staged.id
|
|
6932
|
+
},
|
|
6933
|
+
totalPrice: cart.totalPrice,
|
|
6934
|
+
taxedPrice: cart.taxedPrice,
|
|
6935
|
+
taxMode: cart.taxMode,
|
|
6936
|
+
taxRoundingMode: cart.taxRoundingMode,
|
|
6937
|
+
taxCalculationMode: cart.taxCalculationMode,
|
|
6938
|
+
billingAddress: cart.billingAddress,
|
|
6939
|
+
shippingAddress: cart.shippingAddress
|
|
6940
|
+
};
|
|
6941
|
+
return resource;
|
|
6942
|
+
}
|
|
6943
|
+
};
|
|
6944
|
+
|
|
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;
|
|
6799
6996
|
}
|
|
6800
6997
|
};
|
|
6801
6998
|
|
|
6802
|
-
// src/repositories/quote-request.ts
|
|
6999
|
+
// src/repositories/quote-request/index.ts
|
|
6803
7000
|
var QuoteRequestRepository = class extends AbstractResourceRepository {
|
|
6804
7001
|
constructor(config) {
|
|
6805
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
|
+
// src/repositories/quote-staged/actions.ts
|
|
7052
|
+
var StagedQuoteUpdateHandler = class extends AbstractUpdateHandler {
|
|
7053
|
+
setCustomField(context, resource, { name, value }) {
|
|
7054
|
+
if (!resource.custom) {
|
|
7055
|
+
throw new Error("Resource has no custom field");
|
|
7056
|
+
}
|
|
7057
|
+
resource.custom.fields[name] = value;
|
|
7058
|
+
}
|
|
7059
|
+
setCustomType(context, resource, { type, fields }) {
|
|
7060
|
+
if (!type) {
|
|
7061
|
+
resource.custom = void 0;
|
|
7062
|
+
} else {
|
|
7063
|
+
const resolvedType = this._storage.getByResourceIdentifier(
|
|
7064
|
+
context.projectKey,
|
|
7065
|
+
type
|
|
7066
|
+
);
|
|
7067
|
+
if (!resolvedType) {
|
|
7068
|
+
throw new Error(`Type ${type} not found`);
|
|
7069
|
+
}
|
|
7070
|
+
resource.custom = {
|
|
7071
|
+
type: {
|
|
7072
|
+
typeId: "type",
|
|
7073
|
+
id: resolvedType.id
|
|
7074
|
+
},
|
|
7075
|
+
fields: fields || {}
|
|
7076
|
+
};
|
|
7077
|
+
}
|
|
7078
|
+
}
|
|
7079
|
+
transitionState(context, resource, { state, force }) {
|
|
7080
|
+
let stateReference = void 0;
|
|
7081
|
+
if (state) {
|
|
7082
|
+
stateReference = getReferenceFromResourceIdentifier(
|
|
7083
|
+
state,
|
|
7084
|
+
context.projectKey,
|
|
7085
|
+
this._storage
|
|
7086
|
+
);
|
|
7087
|
+
resource.state = stateReference;
|
|
7088
|
+
} else {
|
|
7089
|
+
throw new CommercetoolsError(
|
|
7090
|
+
{
|
|
7091
|
+
code: "InvalidJsonInput",
|
|
7092
|
+
message: "Request body does not contain valid JSON.",
|
|
7093
|
+
detailedErrorMessage: "actions -> state: Missing required value"
|
|
7094
|
+
},
|
|
7095
|
+
400
|
|
7096
|
+
);
|
|
7097
|
+
}
|
|
7098
|
+
return resource;
|
|
7099
|
+
}
|
|
7100
|
+
};
|
|
7101
|
+
|
|
7102
|
+
// src/repositories/quote-staged/index.ts
|
|
7103
|
+
var StagedQuoteRepository = class extends AbstractResourceRepository {
|
|
7104
|
+
constructor(config) {
|
|
7105
|
+
super("staged-quote", config);
|
|
7106
|
+
this.actions = new StagedQuoteUpdateHandler(config.storage);
|
|
6806
7107
|
}
|
|
6807
7108
|
create(context, draft) {
|
|
6808
|
-
|
|
7109
|
+
const quoteRequest = this._storage.getByResourceIdentifier(
|
|
7110
|
+
context.projectKey,
|
|
7111
|
+
draft.quoteRequest
|
|
7112
|
+
);
|
|
7113
|
+
if (!quoteRequest.cart) {
|
|
7114
|
+
throw new Error("Cannot find quote request");
|
|
7115
|
+
}
|
|
7116
|
+
const cart = this._storage.getByResourceIdentifier(
|
|
7117
|
+
context.projectKey,
|
|
7118
|
+
quoteRequest.cart
|
|
7119
|
+
);
|
|
7120
|
+
const resource = {
|
|
7121
|
+
...getBaseResourceProperties(),
|
|
7122
|
+
stagedQuoteState: "InProgress",
|
|
7123
|
+
quoteRequest: {
|
|
7124
|
+
typeId: "quote-request",
|
|
7125
|
+
id: quoteRequest.id
|
|
7126
|
+
},
|
|
7127
|
+
quotationCart: {
|
|
7128
|
+
typeId: "cart",
|
|
7129
|
+
id: cart.id
|
|
7130
|
+
}
|
|
7131
|
+
};
|
|
7132
|
+
return resource;
|
|
6809
7133
|
}
|
|
6810
7134
|
};
|
|
6811
7135
|
|
|
@@ -6815,7 +7139,8 @@ var ReviewRepository = class extends AbstractResourceRepository {
|
|
|
6815
7139
|
super("review", config);
|
|
6816
7140
|
}
|
|
6817
7141
|
create(context, draft) {
|
|
6818
|
-
if (!draft.target)
|
|
7142
|
+
if (!draft.target)
|
|
7143
|
+
throw new Error("Missing target");
|
|
6819
7144
|
const resource = {
|
|
6820
7145
|
...getBaseResourceProperties(),
|
|
6821
7146
|
locale: draft.locale,
|
|
@@ -7087,7 +7412,7 @@ var ShoppingListUpdateHandler = class extends AbstractUpdateHandler {
|
|
|
7087
7412
|
} else {
|
|
7088
7413
|
throw new CommercetoolsError({
|
|
7089
7414
|
code: "General",
|
|
7090
|
-
message:
|
|
7415
|
+
message: "Either lineItemid or lineItemKey needs to be provided."
|
|
7091
7416
|
});
|
|
7092
7417
|
}
|
|
7093
7418
|
if (quantity === 0) {
|
|
@@ -7212,7 +7537,12 @@ var ShoppingListRepository = class extends AbstractResourceRepository {
|
|
|
7212
7537
|
context.projectKey,
|
|
7213
7538
|
this._storage
|
|
7214
7539
|
) : void 0,
|
|
7215
|
-
store: draft.store ? getStoreKeyReference(draft.store, context.projectKey, this._storage) : void 0
|
|
7540
|
+
store: draft.store ? getStoreKeyReference(draft.store, context.projectKey, this._storage) : void 0,
|
|
7541
|
+
businessUnit: draft.businessUnit ? getBusinessUnitKeyReference(
|
|
7542
|
+
draft.businessUnit,
|
|
7543
|
+
context.projectKey,
|
|
7544
|
+
this._storage
|
|
7545
|
+
) : void 0
|
|
7216
7546
|
};
|
|
7217
7547
|
return this.saveNew(context, resource);
|
|
7218
7548
|
}
|
|
@@ -7267,21 +7597,11 @@ var ShoppingListRepository = class extends AbstractResourceRepository {
|
|
|
7267
7597
|
return lineItem;
|
|
7268
7598
|
}
|
|
7269
7599
|
throw new Error(
|
|
7270
|
-
|
|
7600
|
+
"must provide either sku, productId or variantId for ShoppingListLineItem"
|
|
7271
7601
|
);
|
|
7272
7602
|
};
|
|
7273
7603
|
};
|
|
7274
7604
|
|
|
7275
|
-
// src/repositories/staged-quote.ts
|
|
7276
|
-
var StagedQuoteRepository = class extends AbstractResourceRepository {
|
|
7277
|
-
constructor(config) {
|
|
7278
|
-
super("staged-quote", config);
|
|
7279
|
-
}
|
|
7280
|
-
create(context, draft) {
|
|
7281
|
-
throw new Error("not implemented");
|
|
7282
|
-
}
|
|
7283
|
-
};
|
|
7284
|
-
|
|
7285
7605
|
// src/repositories/standalone-price.ts
|
|
7286
7606
|
var StandAlonePriceRepository = class extends AbstractResourceRepository {
|
|
7287
7607
|
constructor(config) {
|
|
@@ -7426,7 +7746,8 @@ var StoreRepository = class extends AbstractResourceRepository {
|
|
|
7426
7746
|
}
|
|
7427
7747
|
};
|
|
7428
7748
|
var transformChannels = (context, storage, channels) => {
|
|
7429
|
-
if (!channels)
|
|
7749
|
+
if (!channels)
|
|
7750
|
+
return [];
|
|
7430
7751
|
return channels.map(
|
|
7431
7752
|
(ref) => getReferenceFromResourceIdentifier(
|
|
7432
7753
|
ref,
|
|
@@ -7505,7 +7826,8 @@ var SubscriptionRepository = class extends AbstractResourceRepository {
|
|
|
7505
7826
|
},
|
|
7506
7827
|
key: draft.key,
|
|
7507
7828
|
messages: draft.messages || [],
|
|
7508
|
-
status: "Healthy"
|
|
7829
|
+
status: "Healthy",
|
|
7830
|
+
events: draft.events || []
|
|
7509
7831
|
};
|
|
7510
7832
|
return this.saveNew(context, resource);
|
|
7511
7833
|
}
|
|
@@ -7727,44 +8049,44 @@ var createRepositories = (config) => ({
|
|
|
7727
8049
|
"associate-role": new AssociateRoleRepository(config),
|
|
7728
8050
|
"attribute-group": new AttributeGroupRepository(config),
|
|
7729
8051
|
"business-unit": new BusinessUnitRepository(config),
|
|
7730
|
-
|
|
7731
|
-
|
|
8052
|
+
category: new CategoryRepository(config),
|
|
8053
|
+
cart: new CartRepository(config),
|
|
7732
8054
|
"cart-discount": new CartDiscountRepository(config),
|
|
7733
|
-
|
|
7734
|
-
|
|
8055
|
+
customer: new CustomerRepository(config),
|
|
8056
|
+
channel: new ChannelRepository(config),
|
|
7735
8057
|
"customer-group": new CustomerGroupRepository(config),
|
|
7736
8058
|
"discount-code": new DiscountCodeRepository(config),
|
|
7737
|
-
|
|
8059
|
+
extension: new ExtensionRepository(config),
|
|
7738
8060
|
"inventory-entry": new InventoryEntryRepository(config),
|
|
7739
8061
|
"key-value-document": new CustomObjectRepository(config),
|
|
7740
|
-
|
|
8062
|
+
order: new OrderRepository(config),
|
|
7741
8063
|
"order-edit": new OrderEditRepository(config),
|
|
7742
|
-
|
|
8064
|
+
payment: new PaymentRepository(config),
|
|
7743
8065
|
"my-cart": new CartRepository(config),
|
|
7744
8066
|
"my-order": new MyOrderRepository(config),
|
|
7745
8067
|
"my-customer": new MyCustomerRepository(config),
|
|
7746
8068
|
"my-payment": new PaymentRepository(config),
|
|
7747
8069
|
"my-shopping-list": new ShoppingListRepository(config),
|
|
7748
|
-
|
|
8070
|
+
product: new ProductRepository(config),
|
|
7749
8071
|
"product-type": new ProductTypeRepository(config),
|
|
7750
8072
|
"product-discount": new ProductDiscountRepository(config),
|
|
7751
8073
|
"product-projection": new ProductProjectionRepository(config),
|
|
7752
8074
|
"product-selection": new ProductSelectionRepository(config),
|
|
7753
8075
|
"product-tailoring": new ProductTailoringRepository(config),
|
|
7754
|
-
|
|
7755
|
-
|
|
7756
|
-
|
|
8076
|
+
project: new ProjectRepository(config),
|
|
8077
|
+
review: new ReviewRepository(config),
|
|
8078
|
+
quote: new QuoteRepository(config),
|
|
7757
8079
|
"quote-request": new QuoteRequestRepository(config),
|
|
7758
8080
|
"shipping-method": new ShippingMethodRepository(config),
|
|
7759
8081
|
"shopping-list": new ShoppingListRepository(config),
|
|
7760
8082
|
"staged-quote": new StagedQuoteRepository(config),
|
|
7761
8083
|
"standalone-price": new StandAlonePriceRepository(config),
|
|
7762
|
-
|
|
7763
|
-
|
|
7764
|
-
|
|
8084
|
+
state: new StateRepository(config),
|
|
8085
|
+
store: new StoreRepository(config),
|
|
8086
|
+
subscription: new SubscriptionRepository(config),
|
|
7765
8087
|
"tax-category": new TaxCategoryRepository(config),
|
|
7766
|
-
|
|
7767
|
-
|
|
8088
|
+
type: new TypeRepository(config),
|
|
8089
|
+
zone: new ZoneRepository(config)
|
|
7768
8090
|
});
|
|
7769
8091
|
|
|
7770
8092
|
// src/services/as-associate.ts
|
|
@@ -7845,7 +8167,7 @@ var AbstractService = class {
|
|
|
7845
8167
|
return response.status(200).send(result);
|
|
7846
8168
|
}
|
|
7847
8169
|
getWithId(request, response) {
|
|
7848
|
-
const result = this._expandWithId(request, request.params
|
|
8170
|
+
const result = this._expandWithId(request, request.params.id);
|
|
7849
8171
|
if (!result) {
|
|
7850
8172
|
return response.status(404).send();
|
|
7851
8173
|
}
|
|
@@ -7854,18 +8176,19 @@ var AbstractService = class {
|
|
|
7854
8176
|
getWithKey(request, response) {
|
|
7855
8177
|
const result = this.repository.getByKey(
|
|
7856
8178
|
getRepositoryContext(request),
|
|
7857
|
-
request.params
|
|
8179
|
+
request.params.key,
|
|
7858
8180
|
{
|
|
7859
8181
|
expand: this._parseParam(request.query.expand)
|
|
7860
8182
|
}
|
|
7861
8183
|
);
|
|
7862
|
-
if (!result)
|
|
8184
|
+
if (!result)
|
|
8185
|
+
return response.status(404).send();
|
|
7863
8186
|
return response.status(200).send(result);
|
|
7864
8187
|
}
|
|
7865
8188
|
deleteWithId(request, response) {
|
|
7866
8189
|
const result = this.repository.delete(
|
|
7867
8190
|
getRepositoryContext(request),
|
|
7868
|
-
request.params
|
|
8191
|
+
request.params.id,
|
|
7869
8192
|
{
|
|
7870
8193
|
expand: this._parseParam(request.query.expand)
|
|
7871
8194
|
}
|
|
@@ -7878,7 +8201,7 @@ var AbstractService = class {
|
|
|
7878
8201
|
deleteWithKey(request, response) {
|
|
7879
8202
|
const resource = this.repository.getByKey(
|
|
7880
8203
|
getRepositoryContext(request),
|
|
7881
|
-
request.params
|
|
8204
|
+
request.params.key
|
|
7882
8205
|
);
|
|
7883
8206
|
if (!resource) {
|
|
7884
8207
|
return response.status(404).send("Not found");
|
|
@@ -7911,7 +8234,7 @@ var AbstractService = class {
|
|
|
7911
8234
|
);
|
|
7912
8235
|
const resource = this.repository.get(
|
|
7913
8236
|
getRepositoryContext(request),
|
|
7914
|
-
request.params
|
|
8237
|
+
request.params.id
|
|
7915
8238
|
);
|
|
7916
8239
|
if (!resource) {
|
|
7917
8240
|
return response.status(404).send("Not found");
|
|
@@ -7932,7 +8255,7 @@ var AbstractService = class {
|
|
|
7932
8255
|
);
|
|
7933
8256
|
const resource = this.repository.getByKey(
|
|
7934
8257
|
getRepositoryContext(request),
|
|
7935
|
-
request.params
|
|
8258
|
+
request.params.key
|
|
7936
8259
|
);
|
|
7937
8260
|
if (!resource) {
|
|
7938
8261
|
return response.status(404).send("Not found");
|
|
@@ -8628,19 +8951,19 @@ var ProductProjectionService = class extends AbstractService {
|
|
|
8628
8951
|
search(request, response) {
|
|
8629
8952
|
const query = request.query;
|
|
8630
8953
|
const searchParams = {
|
|
8631
|
-
|
|
8954
|
+
filter: queryParamsArray(query.filter),
|
|
8632
8955
|
"filter.query": queryParamsArray(query["filter.query"]),
|
|
8633
|
-
|
|
8634
|
-
|
|
8635
|
-
|
|
8636
|
-
|
|
8637
|
-
|
|
8638
|
-
|
|
8639
|
-
|
|
8640
|
-
|
|
8641
|
-
|
|
8642
|
-
|
|
8643
|
-
|
|
8956
|
+
facet: queryParamsArray(query.facet),
|
|
8957
|
+
expand: queryParamsArray(query.expand),
|
|
8958
|
+
staged: queryParamsValue(query.staged) === "true",
|
|
8959
|
+
localeProjection: queryParamsValue(query.localeProjection),
|
|
8960
|
+
storeProjection: queryParamsValue(query.storeProjection),
|
|
8961
|
+
priceChannel: queryParamsValue(query.priceChannel),
|
|
8962
|
+
priceCountry: queryParamsValue(query.priceCountry),
|
|
8963
|
+
priceCurrency: queryParamsValue(query.priceCurrency),
|
|
8964
|
+
priceCustomerGroup: queryParamsValue(query.priceCustomerGroup),
|
|
8965
|
+
offset: query.offset ? Number(queryParamsValue(query.offset)) : void 0,
|
|
8966
|
+
limit: query.limit ? Number(queryParamsValue(query.limit)) : void 0
|
|
8644
8967
|
};
|
|
8645
8968
|
const resource = this.repository.search(
|
|
8646
8969
|
getRepositoryContext(request),
|
|
@@ -8674,6 +8997,42 @@ var ProductTypeService = class extends AbstractService {
|
|
|
8674
8997
|
}
|
|
8675
8998
|
};
|
|
8676
8999
|
|
|
9000
|
+
// src/services/quote.ts
|
|
9001
|
+
var QuoteService = class extends AbstractService {
|
|
9002
|
+
repository;
|
|
9003
|
+
constructor(parent, repository) {
|
|
9004
|
+
super(parent);
|
|
9005
|
+
this.repository = repository;
|
|
9006
|
+
}
|
|
9007
|
+
getBasePath() {
|
|
9008
|
+
return "quotes";
|
|
9009
|
+
}
|
|
9010
|
+
};
|
|
9011
|
+
|
|
9012
|
+
// src/services/quote-request.ts
|
|
9013
|
+
var QuoteRequestService = class extends AbstractService {
|
|
9014
|
+
repository;
|
|
9015
|
+
constructor(parent, repository) {
|
|
9016
|
+
super(parent);
|
|
9017
|
+
this.repository = repository;
|
|
9018
|
+
}
|
|
9019
|
+
getBasePath() {
|
|
9020
|
+
return "quote-requests";
|
|
9021
|
+
}
|
|
9022
|
+
};
|
|
9023
|
+
|
|
9024
|
+
// src/services/quote-staged.ts
|
|
9025
|
+
var StagedQuoteService = class extends AbstractService {
|
|
9026
|
+
repository;
|
|
9027
|
+
constructor(parent, repository) {
|
|
9028
|
+
super(parent);
|
|
9029
|
+
this.repository = repository;
|
|
9030
|
+
}
|
|
9031
|
+
getBasePath() {
|
|
9032
|
+
return "staged-quotes";
|
|
9033
|
+
}
|
|
9034
|
+
};
|
|
9035
|
+
|
|
8677
9036
|
// src/services/reviews.ts
|
|
8678
9037
|
var ReviewService = class extends AbstractService {
|
|
8679
9038
|
repository;
|
|
@@ -8817,14 +9176,14 @@ var createServices = (router, repos) => ({
|
|
|
8817
9176
|
"associate-role": new AssociateRoleServices(router, repos["associate-role"]),
|
|
8818
9177
|
"as-associate": new AsAssociateService(router, repos["as-associate"]),
|
|
8819
9178
|
"business-unit": new BusinessUnitServices(router, repos["business-unit"]),
|
|
8820
|
-
|
|
8821
|
-
|
|
9179
|
+
category: new CategoryServices(router, repos.category),
|
|
9180
|
+
cart: new CartService(router, repos.cart, repos.order),
|
|
8822
9181
|
"cart-discount": new CartDiscountService(router, repos["cart-discount"]),
|
|
8823
|
-
|
|
8824
|
-
|
|
9182
|
+
customer: new CustomerService(router, repos.customer),
|
|
9183
|
+
channel: new ChannelService(router, repos.channel),
|
|
8825
9184
|
"customer-group": new CustomerGroupService(router, repos["customer-group"]),
|
|
8826
9185
|
"discount-code": new DiscountCodeService(router, repos["discount-code"]),
|
|
8827
|
-
|
|
9186
|
+
extension: new ExtensionServices(router, repos.extension),
|
|
8828
9187
|
"inventory-entry": new InventoryEntryService(
|
|
8829
9188
|
router,
|
|
8830
9189
|
repos["inventory-entry"]
|
|
@@ -8833,8 +9192,8 @@ var createServices = (router, repos) => ({
|
|
|
8833
9192
|
router,
|
|
8834
9193
|
repos["key-value-document"]
|
|
8835
9194
|
),
|
|
8836
|
-
|
|
8837
|
-
|
|
9195
|
+
order: new OrderService(router, repos.order),
|
|
9196
|
+
payment: new PaymentService(router, repos.payment),
|
|
8838
9197
|
"standalone-price": new StandAlonePriceService(
|
|
8839
9198
|
router,
|
|
8840
9199
|
repos["standalone-price"]
|
|
@@ -8853,7 +9212,7 @@ var createServices = (router, repos) => ({
|
|
|
8853
9212
|
repos["shipping-method"]
|
|
8854
9213
|
),
|
|
8855
9214
|
"product-type": new ProductTypeService(router, repos["product-type"]),
|
|
8856
|
-
|
|
9215
|
+
product: new ProductService(router, repos.product),
|
|
8857
9216
|
"product-discount": new ProductDiscountService(
|
|
8858
9217
|
router,
|
|
8859
9218
|
repos["product-discount"]
|
|
@@ -8866,18 +9225,21 @@ var createServices = (router, repos) => ({
|
|
|
8866
9225
|
router,
|
|
8867
9226
|
repos["product-selection"]
|
|
8868
9227
|
),
|
|
8869
|
-
|
|
9228
|
+
quotes: new QuoteService(router, repos.quote),
|
|
9229
|
+
"quote-request": new QuoteRequestService(router, repos["quote-request"]),
|
|
9230
|
+
reviews: new ReviewService(router, repos.review),
|
|
8870
9231
|
"shopping-list": new ShoppingListService(router, repos["shopping-list"]),
|
|
8871
|
-
"
|
|
8872
|
-
|
|
8873
|
-
|
|
9232
|
+
"staged-quote": new StagedQuoteService(router, repos["staged-quote"]),
|
|
9233
|
+
state: new StateService(router, repos.state),
|
|
9234
|
+
store: new StoreService(router, repos.store),
|
|
9235
|
+
subscription: new SubscriptionService(router, repos.subscription),
|
|
8874
9236
|
"tax-category": new TaxCategoryService(router, repos["tax-category"]),
|
|
8875
9237
|
"attribute-group": new AttributeGroupService(
|
|
8876
9238
|
router,
|
|
8877
9239
|
repos["attribute-group"]
|
|
8878
9240
|
),
|
|
8879
|
-
|
|
8880
|
-
|
|
9241
|
+
type: new TypeService(router, repos.type),
|
|
9242
|
+
zone: new ZoneService(router, repos.zone)
|
|
8881
9243
|
});
|
|
8882
9244
|
|
|
8883
9245
|
// src/services/project.ts
|
|
@@ -8919,7 +9281,7 @@ var AbstractStorage = class {
|
|
|
8919
9281
|
};
|
|
8920
9282
|
|
|
8921
9283
|
// src/storage/in-memory.ts
|
|
8922
|
-
var
|
|
9284
|
+
var import_node_assert5 = __toESM(require("assert"), 1);
|
|
8923
9285
|
var InMemoryStorage = class extends AbstractStorage {
|
|
8924
9286
|
resources = {};
|
|
8925
9287
|
projects = {};
|
|
@@ -8966,7 +9328,8 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
8966
9328
|
getProject = (projectKey) => this.addProject(projectKey);
|
|
8967
9329
|
// Expand resolves a nested reference and injects the object in the given obj
|
|
8968
9330
|
expand = (projectKey, obj, clause) => {
|
|
8969
|
-
if (!clause)
|
|
9331
|
+
if (!clause)
|
|
9332
|
+
return obj;
|
|
8970
9333
|
const newObj = cloneObject(obj);
|
|
8971
9334
|
if (Array.isArray(clause)) {
|
|
8972
9335
|
for (const c of clause) {
|
|
@@ -8997,13 +9360,15 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
8997
9360
|
this._resolveReference(projectKey, reference, params.rest);
|
|
8998
9361
|
} else if (params.index === "*") {
|
|
8999
9362
|
const reference = obj[params.element];
|
|
9000
|
-
if (reference === void 0 || !Array.isArray(reference))
|
|
9363
|
+
if (reference === void 0 || !Array.isArray(reference))
|
|
9364
|
+
return;
|
|
9001
9365
|
for (const itemRef of reference) {
|
|
9002
9366
|
this._resolveReference(projectKey, itemRef, params.rest);
|
|
9003
9367
|
}
|
|
9004
9368
|
} else {
|
|
9005
9369
|
const reference = obj[params.element][params.index];
|
|
9006
|
-
if (reference === void 0)
|
|
9370
|
+
if (reference === void 0)
|
|
9371
|
+
return;
|
|
9007
9372
|
this._resolveReference(projectKey, reference, params.rest);
|
|
9008
9373
|
}
|
|
9009
9374
|
};
|
|
@@ -9015,38 +9380,38 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
9015
9380
|
"associate-role": /* @__PURE__ */ new Map(),
|
|
9016
9381
|
"attribute-group": /* @__PURE__ */ new Map(),
|
|
9017
9382
|
"business-unit": /* @__PURE__ */ new Map(),
|
|
9018
|
-
|
|
9383
|
+
cart: /* @__PURE__ */ new Map(),
|
|
9019
9384
|
"cart-discount": /* @__PURE__ */ new Map(),
|
|
9020
|
-
|
|
9021
|
-
|
|
9022
|
-
|
|
9385
|
+
category: /* @__PURE__ */ new Map(),
|
|
9386
|
+
channel: /* @__PURE__ */ new Map(),
|
|
9387
|
+
customer: /* @__PURE__ */ new Map(),
|
|
9023
9388
|
"customer-group": /* @__PURE__ */ new Map(),
|
|
9024
9389
|
"discount-code": /* @__PURE__ */ new Map(),
|
|
9025
|
-
|
|
9390
|
+
extension: /* @__PURE__ */ new Map(),
|
|
9026
9391
|
"inventory-entry": /* @__PURE__ */ new Map(),
|
|
9027
9392
|
"key-value-document": /* @__PURE__ */ new Map(),
|
|
9028
|
-
|
|
9393
|
+
order: /* @__PURE__ */ new Map(),
|
|
9029
9394
|
"order-edit": /* @__PURE__ */ new Map(),
|
|
9030
|
-
|
|
9031
|
-
|
|
9032
|
-
|
|
9395
|
+
payment: /* @__PURE__ */ new Map(),
|
|
9396
|
+
product: /* @__PURE__ */ new Map(),
|
|
9397
|
+
quote: /* @__PURE__ */ new Map(),
|
|
9033
9398
|
"quote-request": /* @__PURE__ */ new Map(),
|
|
9034
9399
|
"product-discount": /* @__PURE__ */ new Map(),
|
|
9035
9400
|
"product-selection": /* @__PURE__ */ new Map(),
|
|
9036
9401
|
"product-type": /* @__PURE__ */ new Map(),
|
|
9037
9402
|
"product-projection": /* @__PURE__ */ new Map(),
|
|
9038
9403
|
"product-tailoring": /* @__PURE__ */ new Map(),
|
|
9039
|
-
|
|
9404
|
+
review: /* @__PURE__ */ new Map(),
|
|
9040
9405
|
"shipping-method": /* @__PURE__ */ new Map(),
|
|
9041
9406
|
"staged-quote": /* @__PURE__ */ new Map(),
|
|
9042
|
-
|
|
9043
|
-
|
|
9407
|
+
state: /* @__PURE__ */ new Map(),
|
|
9408
|
+
store: /* @__PURE__ */ new Map(),
|
|
9044
9409
|
"shopping-list": /* @__PURE__ */ new Map(),
|
|
9045
9410
|
"standalone-price": /* @__PURE__ */ new Map(),
|
|
9046
|
-
|
|
9411
|
+
subscription: /* @__PURE__ */ new Map(),
|
|
9047
9412
|
"tax-category": /* @__PURE__ */ new Map(),
|
|
9048
|
-
|
|
9049
|
-
|
|
9413
|
+
type: /* @__PURE__ */ new Map(),
|
|
9414
|
+
zone: /* @__PURE__ */ new Map()
|
|
9050
9415
|
};
|
|
9051
9416
|
}
|
|
9052
9417
|
return projectStorage;
|
|
@@ -9069,7 +9434,7 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
9069
9434
|
const store = this.forProjectKey(projectKey);
|
|
9070
9435
|
store[typeId]?.set(obj.id, obj);
|
|
9071
9436
|
const resource = this.get(projectKey, typeId, obj.id, params);
|
|
9072
|
-
(0,
|
|
9437
|
+
(0, import_node_assert5.default)(
|
|
9073
9438
|
resource,
|
|
9074
9439
|
`resource of type ${typeId} with id ${obj.id} not created`
|
|
9075
9440
|
);
|
|
@@ -9214,7 +9579,8 @@ var InMemoryStorage = class extends AbstractStorage {
|
|
|
9214
9579
|
});
|
|
9215
9580
|
}
|
|
9216
9581
|
_resolveReference(projectKey, reference, expand) {
|
|
9217
|
-
if (reference === void 0)
|
|
9582
|
+
if (reference === void 0)
|
|
9583
|
+
return;
|
|
9218
9584
|
if (reference.typeId !== void 0 && (reference.id !== void 0 || reference.key !== void 0)) {
|
|
9219
9585
|
if (!reference.obj) {
|
|
9220
9586
|
reference.obj = this.getByResourceIdentifier(projectKey, {
|
|
@@ -9367,12 +9733,11 @@ var CommercetoolsMock = class {
|
|
|
9367
9733
|
message: err.message,
|
|
9368
9734
|
errors: [err.info]
|
|
9369
9735
|
});
|
|
9370
|
-
} else {
|
|
9371
|
-
console.error(err);
|
|
9372
|
-
return resp.status(500).send({
|
|
9373
|
-
error: err.message
|
|
9374
|
-
});
|
|
9375
9736
|
}
|
|
9737
|
+
console.error(err);
|
|
9738
|
+
return resp.status(500).send({
|
|
9739
|
+
error: err.message
|
|
9740
|
+
});
|
|
9376
9741
|
});
|
|
9377
9742
|
return app;
|
|
9378
9743
|
}
|
|
@@ -9390,7 +9755,7 @@ var CommercetoolsMock = class {
|
|
|
9390
9755
|
const body = await request.text();
|
|
9391
9756
|
const url = new URL(request.url);
|
|
9392
9757
|
const headers = copyHeaders(request.headers);
|
|
9393
|
-
const res = await (0, import_light_my_request.default)(app).post(url.pathname
|
|
9758
|
+
const res = await (0, import_light_my_request.default)(app).post(`${url.pathname}?${url.searchParams.toString()}`).body(body).headers(headers).end();
|
|
9394
9759
|
return new import_msw.HttpResponse(res.body, {
|
|
9395
9760
|
status: res.statusCode,
|
|
9396
9761
|
headers: mapHeaderType(res.headers)
|
|
@@ -9400,7 +9765,7 @@ var CommercetoolsMock = class {
|
|
|
9400
9765
|
const body = await request.text();
|
|
9401
9766
|
const url = new URL(request.url);
|
|
9402
9767
|
const headers = copyHeaders(request.headers);
|
|
9403
|
-
const res = await (0, import_light_my_request.default)(app).get(url.pathname
|
|
9768
|
+
const res = await (0, import_light_my_request.default)(app).get(`${url.pathname}?${url.searchParams.toString()}`).body(body).headers(headers).end();
|
|
9404
9769
|
if (res.statusCode === 200) {
|
|
9405
9770
|
const parsedBody = JSON.parse(res.body);
|
|
9406
9771
|
const resultCount = "count" in parsedBody ? parsedBody.count : Object.keys(parsedBody).length;
|
|
@@ -9418,7 +9783,7 @@ var CommercetoolsMock = class {
|
|
|
9418
9783
|
const body = await request.text();
|
|
9419
9784
|
const url = new URL(request.url);
|
|
9420
9785
|
const headers = copyHeaders(request.headers);
|
|
9421
|
-
const res = await (0, import_light_my_request.default)(app).get(url.pathname
|
|
9786
|
+
const res = await (0, import_light_my_request.default)(app).get(`${url.pathname}?${url.searchParams.toString()}`).body(body).headers(headers).end();
|
|
9422
9787
|
return new import_msw.HttpResponse(res.body, {
|
|
9423
9788
|
status: res.statusCode,
|
|
9424
9789
|
headers: mapHeaderType(res.headers)
|
|
@@ -9428,7 +9793,7 @@ var CommercetoolsMock = class {
|
|
|
9428
9793
|
const body = await request.text();
|
|
9429
9794
|
const url = new URL(request.url);
|
|
9430
9795
|
const headers = copyHeaders(request.headers);
|
|
9431
|
-
const res = await (0, import_light_my_request.default)(app).post(url.pathname
|
|
9796
|
+
const res = await (0, import_light_my_request.default)(app).post(`${url.pathname}?${url.searchParams.toString()}`).body(body).headers(headers).end();
|
|
9432
9797
|
return new import_msw.HttpResponse(res.body, {
|
|
9433
9798
|
status: res.statusCode,
|
|
9434
9799
|
headers: mapHeaderType(res.headers)
|
|
@@ -9438,7 +9803,7 @@ var CommercetoolsMock = class {
|
|
|
9438
9803
|
const body = await request.text();
|
|
9439
9804
|
const url = new URL(request.url);
|
|
9440
9805
|
const headers = copyHeaders(request.headers);
|
|
9441
|
-
const res = await (0, import_light_my_request.default)(app).delete(url.pathname
|
|
9806
|
+
const res = await (0, import_light_my_request.default)(app).delete(`${url.pathname}?${url.searchParams.toString()}`).body(body).headers(headers).end();
|
|
9442
9807
|
return new import_msw.HttpResponse(res.body, {
|
|
9443
9808
|
status: res.statusCode,
|
|
9444
9809
|
headers: mapHeaderType(res.headers)
|
|
@@ -9453,10 +9818,9 @@ var CommercetoolsMock = class {
|
|
|
9453
9818
|
if (_globalListeners.length > 0) {
|
|
9454
9819
|
if (this._mswServer !== void 0) {
|
|
9455
9820
|
throw new Error("Server already started");
|
|
9456
|
-
} else {
|
|
9457
|
-
process.emitWarning("Server wasn't stopped properly, clearing");
|
|
9458
|
-
_globalListeners.forEach((listener) => listener.close());
|
|
9459
9821
|
}
|
|
9822
|
+
process.emitWarning("Server wasn't stopped properly, clearing");
|
|
9823
|
+
_globalListeners.forEach((listener) => listener.close());
|
|
9460
9824
|
}
|
|
9461
9825
|
const server = (0, import_node.setupServer)();
|
|
9462
9826
|
this.registerHandlers(server);
|