@jetshop/core 5.11.2 → 5.12.2
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/ChannelHandler/ChannelHandler.js +3 -6
- package/ChannelHandler/ChannelHandler.js.map +1 -1
- package/ChannelHandler/redirectUtils.d.ts +2 -1
- package/ChannelHandler/redirectUtils.js +2 -1
- package/ChannelHandler/redirectUtils.js.map +1 -1
- package/analytics/AnalyticsProvider.d.ts +4 -0
- package/analytics/AnalyticsProvider.js +17 -1
- package/analytics/AnalyticsProvider.js.map +1 -1
- package/analytics/integrations/releware/index.js +1 -1
- package/analytics/integrations/releware/index.js.map +1 -1
- package/analytics/integrations/unslugify.js +6 -4
- package/analytics/integrations/unslugify.js.map +1 -1
- package/analytics/trackerRegistry.d.ts +6 -3
- package/analytics/trackerRegistry.js +41 -17
- package/analytics/trackerRegistry.js.map +1 -1
- package/analytics/utils/breadcrumbsWithoutProduct.js +1 -1
- package/analytics/utils/breadcrumbsWithoutProduct.js.map +1 -1
- package/boot/PreviewHandler.js.map +1 -1
- package/boot/addMissingConfig.js +1 -1
- package/boot/addMissingConfig.js.map +1 -1
- package/components/ChannelContext/ChannelContext.d.ts +2 -0
- package/components/ChannelContext/ChannelContext.js.map +1 -1
- package/components/ChannelContext/ChannelProvider.js +18 -1
- package/components/ChannelContext/ChannelProvider.js.map +1 -1
- package/components/ConfigProvider.d.ts +2 -0
- package/components/ConfigProvider.js.map +1 -1
- package/components/DynamicRoute/CategoryRoute.js +9 -2
- package/components/DynamicRoute/CategoryRoute.js.map +1 -1
- package/components/DynamicRoute/ContentRoute.js +9 -1
- package/components/DynamicRoute/ContentRoute.js.map +1 -1
- package/components/DynamicRoute/PreviewRoute.js +12 -2
- package/components/DynamicRoute/PreviewRoute.js.map +1 -1
- package/components/Filters/utils/replaceInSearch.d.ts +1 -0
- package/components/Filters/utils/updateHistory.d.ts +3 -0
- package/components/PreviewContext.js +3 -1
- package/components/PreviewContext.js.map +1 -1
- package/components/SortOrder/SortOrderContainer.d.ts +15 -3
- package/components/SortOrder/SortOrderContainer.js +27 -18
- package/components/SortOrder/SortOrderContainer.js.map +1 -1
- package/components/StructuredData/StructuredCategoryData.d.ts +16 -0
- package/components/StructuredData/StructuredCategoryData.js +18 -0
- package/components/StructuredData/StructuredCategoryData.js.map +1 -0
- package/components/StructuredData/StructuredPageData.d.ts +16 -0
- package/components/StructuredData/StructuredPageData.js +17 -0
- package/components/StructuredData/StructuredPageData.js.map +1 -0
- package/components/StructuredData/index.d.ts +2 -0
- package/components/StructuredData/index.js +2 -0
- package/components/StructuredData/index.js.map +1 -1
- package/data/fragments/ChannelsFragment.gql +4 -0
- package/helpers/isRelativeUrl.js +0 -1
- package/helpers/isRelativeUrl.js.map +1 -1
- package/hooks/Filters/useSortOrder.d.ts +1 -0
- package/hooks/Filters/useSortOrder.js +6 -3
- package/hooks/Filters/useSortOrder.js.map +1 -1
- package/hooks/PackageProducts/usePackageProductItem.d.ts +1 -2
- package/hooks/ProductList/list-transforms.d.ts +1 -0
- package/package.json +1 -1
- package/resolvers/filters/defaultActiveFilters.d.ts +1 -1
- package/resolvers/filters/defaultActiveFilters.js.map +1 -1
- package/resolvers/filters/filterParams.d.ts +1 -1
- package/resolvers/filters/filterParams.js +5 -5
- package/resolvers/filters/filterParams.js.map +1 -1
- package/resolvers/filters/index.d.ts +4 -4
- package/resolvers/filters/updateQueryString.d.ts +4 -3
- package/resolvers/filters/updateQueryString.js +16 -10
- package/resolvers/filters/updateQueryString.js.map +1 -1
- package/server/tracking/facebook.d.ts +2 -2
- package/server/tracking/facebook.js +11 -12
- package/server/tracking/facebook.js.map +1 -1
- package/server/tracking/middleware.d.ts +5 -1
- package/server/tracking/middleware.js.map +1 -1
- package/server/tracking/types.d.ts +3 -1
- package/types.d.ts +9 -2
|
@@ -10,18 +10,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
import fetch from 'node-fetch';
|
|
11
11
|
import requestIp from 'request-ip';
|
|
12
12
|
function getUserData(req) {
|
|
13
|
-
var _a, _b;
|
|
14
13
|
return {
|
|
15
14
|
client_ip_address: requestIp.getClientIp(req),
|
|
16
15
|
client_user_agent: req.headers['user-agent'],
|
|
17
|
-
fbc:
|
|
18
|
-
fbp:
|
|
16
|
+
fbc: req.universalCookies.get('_fbc') || '',
|
|
17
|
+
fbp: req.universalCookies.get('_fbp') || ''
|
|
19
18
|
};
|
|
20
19
|
}
|
|
21
|
-
function createTrackFacebookEvent({
|
|
22
|
-
return function trackFacebookEvent(data) {
|
|
20
|
+
function createTrackFacebookEvent({ pixelId, token }) {
|
|
21
|
+
return function trackFacebookEvent(data, channelPixelId, channelToken) {
|
|
23
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
const response = yield fetch(`https://graph.facebook.com/
|
|
23
|
+
const response = yield fetch(`https://graph.facebook.com/v13.0/${channelPixelId || pixelId}/events?access_token=${channelToken || token}`, {
|
|
25
24
|
method: 'POST',
|
|
26
25
|
headers: {
|
|
27
26
|
'Content-Type': 'application/json'
|
|
@@ -67,7 +66,7 @@ export default function createFacebookTracker(config) {
|
|
|
67
66
|
content_type: 'product',
|
|
68
67
|
currency: data.currency,
|
|
69
68
|
value: (_b = productData.product.price) === null || _b === void 0 ? void 0 : _b.incVat
|
|
70
|
-
} }));
|
|
69
|
+
} }), data.pixelId, data.token);
|
|
71
70
|
}
|
|
72
71
|
else if (productData.action === 'view') {
|
|
73
72
|
return yield trackFacebookEvent(Object.assign(Object.assign({}, defaults), { event_name: 'ViewContent', custom_data: {
|
|
@@ -84,7 +83,7 @@ export default function createFacebookTracker(config) {
|
|
|
84
83
|
content_type: 'product',
|
|
85
84
|
currency: data.currency,
|
|
86
85
|
value: (_d = productData.product.price) === null || _d === void 0 ? void 0 : _d.incVat
|
|
87
|
-
} }));
|
|
86
|
+
} }), data.pixelId, data.token);
|
|
88
87
|
}
|
|
89
88
|
break;
|
|
90
89
|
case 'trackAddToWishList':
|
|
@@ -94,9 +93,9 @@ export default function createFacebookTracker(config) {
|
|
|
94
93
|
content_category: data.context.list || '',
|
|
95
94
|
content_ids: [wishListData.articleNumber],
|
|
96
95
|
currency: data.currency
|
|
97
|
-
} }));
|
|
96
|
+
} }), data.pixelId, data.token);
|
|
98
97
|
case 'trackRegister':
|
|
99
|
-
return yield trackFacebookEvent(Object.assign(Object.assign({}, defaults), { event_name: 'CompleteRegistration', custom_data: {} }));
|
|
98
|
+
return yield trackFacebookEvent(Object.assign(Object.assign({}, defaults), { event_name: 'CompleteRegistration', custom_data: {} }), data.pixelId, data.token);
|
|
100
99
|
case 'trackCartCheckout':
|
|
101
100
|
const checkoutData = data.props;
|
|
102
101
|
return yield trackFacebookEvent(Object.assign(Object.assign({}, defaults), { event_name: 'InitiateCheckout', custom_data: {
|
|
@@ -114,13 +113,13 @@ export default function createFacebookTracker(config) {
|
|
|
114
113
|
currency: data.currency,
|
|
115
114
|
num_items: checkoutData.cart.totalQuantity,
|
|
116
115
|
value: checkoutData.cart.productTotal.incVat
|
|
117
|
-
} }));
|
|
116
|
+
} }), data.pixelId, data.token);
|
|
118
117
|
case 'trackPageView':
|
|
119
118
|
const pageViewData = data.props;
|
|
120
119
|
return yield trackFacebookEvent(Object.assign(Object.assign({}, defaults), { event_name: 'PageView', custom_data: {
|
|
121
120
|
content_name: pageViewData.title,
|
|
122
121
|
currency: data.currency
|
|
123
|
-
} }));
|
|
122
|
+
} }), data.pixelId, data.token);
|
|
124
123
|
}
|
|
125
124
|
}
|
|
126
125
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facebook.js","sourceRoot":"","sources":["facebook.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,SAAS,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"facebook.js","sourceRoot":"","sources":["facebook.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { Response, Request } from 'express';
|
|
2
|
+
import { Cookies } from 'react-cookie';
|
|
2
3
|
import { ServerTracker } from './types';
|
|
3
|
-
declare function trackingMiddleware(trackers: ServerTracker[]): (req: Request
|
|
4
|
+
declare function trackingMiddleware(trackers: ServerTracker[]): (req: Request & {
|
|
5
|
+
universalCookies: Cookies;
|
|
6
|
+
breakpoint: string;
|
|
7
|
+
}, res: Response) => void;
|
|
4
8
|
export default trackingMiddleware;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["middleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["middleware.ts"],"names":[],"mappings":"AAIA,SAAS,kBAAkB,CAAC,QAAyB;IACnD,OAAO,CACL,GAAgE,EAChE,GAAa,EACP,EAAE;QACR,IAAI;YACF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;YAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;SACvB;QAAC,OAAO,CAAC,EAAE;YACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;SACvB;IACH,CAAC,CAAC;AACJ,CAAC;AAED,eAAe,kBAAkB,CAAC"}
|
package/types.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export type Scalars = {
|
|
|
13
13
|
Uri: any;
|
|
14
14
|
/** The `DateTime` scalar type represents a date and time. `DateTime` expects timestamps to be formatted in accordance with the [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) standard. */
|
|
15
15
|
DateTime: any;
|
|
16
|
-
/** The `Paging` scalar type represents a numeric values between
|
|
16
|
+
/** The `Paging` scalar type represents a numeric values between <1; 100> */
|
|
17
17
|
Paging: any;
|
|
18
18
|
};
|
|
19
19
|
|
|
@@ -207,6 +207,7 @@ export type Category = Document & {
|
|
|
207
207
|
mainHeader?: Maybe<Scalars['String']>;
|
|
208
208
|
content?: Maybe<Scalars['String']>;
|
|
209
209
|
externalId?: Maybe<Scalars['String']>;
|
|
210
|
+
externalDiscountId?: Maybe<Scalars['String']>;
|
|
210
211
|
images?: Maybe<Array<Maybe<CategoryImage>>>;
|
|
211
212
|
/** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
|
|
212
213
|
products?: Maybe<PagedResult>;
|
|
@@ -230,7 +231,10 @@ export type Category = Document & {
|
|
|
230
231
|
* product.primaryRoute will have to be used.
|
|
231
232
|
*/
|
|
232
233
|
isDynamic: Scalars['Boolean'];
|
|
233
|
-
/**
|
|
234
|
+
/**
|
|
235
|
+
* Get content data set via the Content Editor.NB: Carries a performance cost, as
|
|
236
|
+
* asking for this will result in a separate API call in the backend.
|
|
237
|
+
*/
|
|
234
238
|
data?: Maybe<Content>;
|
|
235
239
|
};
|
|
236
240
|
|
|
@@ -733,6 +737,7 @@ export type DeleteCustomerProductListResult = {
|
|
|
733
737
|
|
|
734
738
|
export type Discount = {
|
|
735
739
|
__typename?: 'Discount';
|
|
740
|
+
externalId?: Maybe<Scalars['ID']>;
|
|
736
741
|
name?: Maybe<Scalars['String']>;
|
|
737
742
|
value?: Maybe<Price>;
|
|
738
743
|
description?: Maybe<Scalars['String']>;
|
|
@@ -1332,6 +1337,7 @@ export type Order = {
|
|
|
1332
1337
|
orderDate?: Maybe<Scalars['DateTime']>;
|
|
1333
1338
|
currency?: Maybe<Currency>;
|
|
1334
1339
|
attachments?: Maybe<Array<Maybe<OrderAttachment>>>;
|
|
1340
|
+
orderPurchaseLocation?: Maybe<Scalars['String']>;
|
|
1335
1341
|
};
|
|
1336
1342
|
|
|
1337
1343
|
|
|
@@ -1697,6 +1703,7 @@ export type Product = Document & {
|
|
|
1697
1703
|
*/
|
|
1698
1704
|
configurations?: Maybe<Array<Maybe<ProductConfiguration>>>;
|
|
1699
1705
|
hasConfigurations: Scalars['Boolean'];
|
|
1706
|
+
hasFamilyMembers: Scalars['Boolean'];
|
|
1700
1707
|
/**
|
|
1701
1708
|
* Calculates the price of the product based on the configuration choices that's
|
|
1702
1709
|
* been made. NB: Carries a performance cost, as asking for this will result in a
|