@jetshop/core 5.8.3 → 5.11.0
Sign up to get free protection for your applications and to get access to all the features.
- package/ChannelHandler/ChannelHandler.d.ts +9 -13
- package/ChannelHandler/ChannelHandler.js +24 -66
- package/ChannelHandler/ChannelHandler.js.map +1 -1
- package/ChannelHandler/channelUtils.d.ts +13 -0
- package/ChannelHandler/channelUtils.js +26 -15
- package/ChannelHandler/channelUtils.js.map +1 -1
- package/ChannelHandler/redirectUtils.d.ts +3 -0
- package/ChannelHandler/redirectUtils.js +48 -0
- package/ChannelHandler/redirectUtils.js.map +1 -0
- package/ChannelHandler/redirectUtils.test.js +8 -0
- package/analytics/AnalyticsProvider.js +9 -2
- package/analytics/AnalyticsProvider.js.map +1 -1
- package/analytics/integrations/ga4.d.ts +2 -1
- package/analytics/integrations/ga4.js +15 -6
- package/analytics/integrations/ga4.js.map +1 -1
- package/analytics/integrations/gtag/gtag.d.ts +2 -1
- package/analytics/integrations/gtag/gtag.js +20 -10
- package/analytics/integrations/gtag/gtag.js.map +1 -1
- package/analytics/integrations/gtm/index.d.ts +10 -1
- package/analytics/integrations/gtm/index.js +175 -2
- package/analytics/integrations/gtm/index.js.map +1 -1
- package/boot/SharedTree.js +1 -1
- package/boot/SharedTree.js.map +1 -1
- package/boot/apollo.d.ts +5 -4
- package/boot/apollo.js +18 -18
- package/boot/apollo.js.map +1 -1
- package/boot/client/startClient.js +7 -16
- package/boot/client/startClient.js.map +1 -1
- package/boot/server/createRenderer.js +10 -9
- package/boot/server/createRenderer.js.map +1 -1
- package/boot/server/index.js +2 -2
- package/boot/server/index.js.map +1 -1
- package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +53 -39
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.js +2 -2
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.js.map +1 -1
- package/cart/useAddToCart.d.ts +2 -2
- package/cart/useAddToCart.js +13 -12
- package/cart/useAddToCart.js.map +1 -1
- package/components/Auth/CustomerUpdateForm.js +7 -7
- package/components/Auth/CustomerUpdateForm.js.map +1 -1
- package/components/Cart/CartIdContext.js +18 -18
- package/components/Cart/CartIdContext.js.map +1 -1
- package/components/ChannelContext/ChannelProvider.d.ts +1 -3
- package/components/ChannelContext/ChannelProvider.js +6 -13
- package/components/ChannelContext/ChannelProvider.js.map +1 -1
- package/components/ChannelContext/ChannelProvider.test.js +110 -0
- package/components/ConfigProvider.d.ts +1 -0
- package/components/ConfigProvider.js.map +1 -1
- package/components/DynamicRoute/ContentRoute.d.ts +1 -1
- package/components/DynamicRoute/ProductRoute.d.ts +1 -0
- package/components/DynamicRoute/ProductRoute.js +4 -2
- package/components/DynamicRoute/ProductRoute.js.map +1 -1
- package/components/DynamicRoute/RouteResolver.js +4 -2
- package/components/DynamicRoute/RouteResolver.js.map +1 -1
- package/components/Mutation/AddToCart/addToCartUtils.js +3 -2
- package/components/Mutation/AddToCart/addToCartUtils.js.map +1 -1
- package/components/Mutation/RemoveFromCart.d.ts +1 -1
- package/components/Mutation/cartMutationUtils.js +7 -6
- package/components/Mutation/cartMutationUtils.js.map +1 -1
- package/components/OpenGraph/OpenGraph.test.js +32 -5
- package/components/OpenGraph/OpenGraphProductData.d.ts +6 -1
- package/components/OpenGraph/OpenGraphProductData.js +18 -12
- package/components/OpenGraph/OpenGraphProductData.js.map +1 -1
- package/components/Query/CartProvider.js +32 -22
- package/components/Query/CartProvider.js.map +1 -1
- package/components/StructuredData/StructuredBreadcrumbData.js +4 -3
- package/components/StructuredData/StructuredBreadcrumbData.js.map +1 -1
- package/hooks/PackageProducts/packagePriceQuery.gql +1 -1
- package/hooks/ProductList/ProductListContext.js +37 -14
- package/hooks/ProductList/ProductListContext.js.map +1 -1
- package/hooks/ProductList/action-creators.d.ts +20 -7
- package/hooks/ProductList/action-creators.js +138 -44
- package/hooks/ProductList/action-creators.js.map +1 -1
- package/hooks/ProductList/index.d.ts +34 -8
- package/hooks/ProductList/index.js +19 -0
- package/hooks/ProductList/index.js.map +1 -1
- package/hooks/ProductList/list-transforms.d.ts +3 -2
- package/hooks/ProductList/list-transforms.js +22 -22
- package/hooks/ProductList/list-transforms.js.map +1 -1
- package/hooks/ProductList/list-transforms.test.js +103 -100
- package/hooks/ProductList/product-list-reducer.d.ts +37 -14
- package/hooks/ProductList/product-list-reducer.js +106 -43
- package/hooks/ProductList/product-list-reducer.js.map +1 -1
- package/hooks/ProductList/product-list-reducer.test.js +144 -82
- package/hooks/ProductList/useProductList.d.ts +2 -2
- package/hooks/ProductList/useProductList.js +12 -5
- package/hooks/ProductList/useProductList.js.map +1 -1
- package/hooks/ProductList/useProductListItems.d.ts +1 -1
- package/hooks/ProductList/useProductListItems.js +8 -6
- package/hooks/ProductList/useProductListItems.js.map +1 -1
- package/hooks/useInfinitePagination.js +2 -2
- package/hooks/useInfinitePagination.js.map +1 -1
- package/hooks/useRoutePreload.js +2 -2
- package/hooks/useRoutePreload.js.map +1 -1
- package/package.json +5 -5
- package/resolvers/index.d.ts +3 -0
- package/resolvers/index.js +3 -0
- package/resolvers/index.js.map +1 -1
- package/sentry/client.js +9 -4
- package/sentry/client.js.map +1 -1
- package/sentry/common.d.ts +1 -0
- package/sentry/common.js +5 -0
- package/sentry/common.js.map +1 -0
- package/sentry/server.js +11 -2
- package/sentry/server.js.map +1 -1
- package/time.d.ts +1 -0
- package/time.js +6 -0
- package/time.js.map +1 -0
- package/types.d.ts +31 -7
@@ -2,7 +2,7 @@ import { injectScript } from '../utils/script';
|
|
2
2
|
import { unSlugify } from './gtag';
|
3
3
|
import { getBrand } from '../../../core/components/OpenGraph/OpenGraphProductData';
|
4
4
|
const gtag = () => window.gtag;
|
5
|
-
function productToItem(product, selectedVariation, useArticleNumberAsId = false) {
|
5
|
+
function productToItem(product, selectedVariation, useArticleNumberAsId = false, brandCustomField) {
|
6
6
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
7
7
|
return {
|
8
8
|
item_name: product === null || product === void 0 ? void 0 : product.name,
|
@@ -15,16 +15,25 @@ function productToItem(product, selectedVariation, useArticleNumberAsId = false)
|
|
15
15
|
item_category3: unSlugify((product === null || product === void 0 ? void 0 : product.categories) && ((_j = (_h = product === null || product === void 0 ? void 0 : product.categories[2]) === null || _h === void 0 ? void 0 : _h.primaryRoute) === null || _j === void 0 ? void 0 : _j.path)),
|
16
16
|
item_category4: unSlugify((product === null || product === void 0 ? void 0 : product.categories) && ((_l = (_k = product === null || product === void 0 ? void 0 : product.categories[3]) === null || _k === void 0 ? void 0 : _k.primaryRoute) === null || _l === void 0 ? void 0 : _l.path)),
|
17
17
|
item_variant: (_m = selectedVariation === null || selectedVariation === void 0 ? void 0 : selectedVariation.values) === null || _m === void 0 ? void 0 : _m.join('_'),
|
18
|
-
item_brand: getBrand(product)
|
18
|
+
item_brand: getBrand(product, brandCustomField)
|
19
19
|
};
|
20
20
|
}
|
21
|
-
export function ga4Tracker({ trackingId, additionalGtagTrackingIds = [], currency, useArticleNumberAsId = false }) {
|
21
|
+
export function ga4Tracker({ trackingId, additionalGtagTrackingIds = [], currency, brandCustomField, useArticleNumberAsId = false }) {
|
22
22
|
return {
|
23
23
|
name: 'ga4',
|
24
24
|
initBrowser() {
|
25
25
|
const script = `https://www.googletagmanager.com/gtag/js?id=${trackingId}`;
|
26
26
|
const w = window;
|
27
27
|
w.dataLayer = w.dataLayer || [];
|
28
|
+
w.dataLayer.push({
|
29
|
+
'gtm.start': new Date().getTime(),
|
30
|
+
event: 'gtm.js',
|
31
|
+
originalLocation: document.location.protocol +
|
32
|
+
'//' +
|
33
|
+
document.location.hostname +
|
34
|
+
document.location.pathname +
|
35
|
+
document.location.search
|
36
|
+
});
|
28
37
|
w.gtag = function gtag() {
|
29
38
|
w.dataLayer.push(arguments);
|
30
39
|
};
|
@@ -43,7 +52,7 @@ export function ga4Tracker({ trackingId, additionalGtagTrackingIds = [], currenc
|
|
43
52
|
gtag();
|
44
53
|
},
|
45
54
|
trackProduct({ quantity, action, product, selectedVariation, list, listName, index }, context, eventId) {
|
46
|
-
const productItem = Object.assign(Object.assign({}, productToItem(product, selectedVariation, useArticleNumberAsId)), { quantity, item_list_name: list || listName || context.list, index: index });
|
55
|
+
const productItem = Object.assign(Object.assign({}, productToItem(product, selectedVariation, useArticleNumberAsId, brandCustomField)), { quantity, item_list_name: list || listName || context.list, index: index });
|
47
56
|
switch (action) {
|
48
57
|
case 'click':
|
49
58
|
gtag()('event', 'select_item', {
|
@@ -83,7 +92,7 @@ export function ga4Tracker({ trackingId, additionalGtagTrackingIds = [], currenc
|
|
83
92
|
}
|
84
93
|
},
|
85
94
|
trackCartCheckout({ cart }, _context, eventId) {
|
86
|
-
const items = cart.items.map((item) => (Object.assign(Object.assign({}, productToItem(item.product, item.variant, useArticleNumberAsId)), { quantity: item.quantity, eventId })));
|
95
|
+
const items = cart.items.map((item) => (Object.assign(Object.assign({}, productToItem(item.product, item.variant, useArticleNumberAsId, brandCustomField)), { quantity: item.quantity, eventId })));
|
87
96
|
gtag()('event', 'begin_checkout', {
|
88
97
|
ecommerce: {
|
89
98
|
items
|
@@ -101,7 +110,7 @@ export function ga4Tracker({ trackingId, additionalGtagTrackingIds = [], currenc
|
|
101
110
|
trackList({ listName, products }, _context, eventId) {
|
102
111
|
const items = products.map((product, i) => {
|
103
112
|
var _a;
|
104
|
-
return (Object.assign(Object.assign({}, productToItem(product, null, useArticleNumberAsId)), { price: (_a = product.price) === null || _a === void 0 ? void 0 : _a.incVat, item_list_name: listName, index: i }));
|
113
|
+
return (Object.assign(Object.assign({}, productToItem(product, null, useArticleNumberAsId, brandCustomField)), { price: (_a = product.price) === null || _a === void 0 ? void 0 : _a.incVat, item_list_name: listName, index: i }));
|
105
114
|
});
|
106
115
|
gtag()('event', 'view_item_list', {
|
107
116
|
ecommerce: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ga4.js","sourceRoot":"","sources":["ga4.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAC;AAEnF,MAAM,IAAI,GAAG,GAAG,EAAE,CAAE,MAAc,CAAC,IAAI,CAAC;AAkBxC,SAAS,aAAa,CACpB,OAAgB,EAChB,iBAAiC,EACjC,oBAAoB,GAAG,KAAK;;
|
1
|
+
{"version":3,"file":"ga4.js","sourceRoot":"","sources":["ga4.ts"],"names":[],"mappings":"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"}
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import { Tracker } from '../../trackerRegistry';
|
2
2
|
export declare function unSlugify(slug?: string): string;
|
3
|
-
export declare const gtagTracker: ({ trackingId, additionalGtagTrackingIds, currency, useArticleNumberAsId }: {
|
3
|
+
export declare const gtagTracker: ({ trackingId, additionalGtagTrackingIds, currency, brandCustomField, useArticleNumberAsId }: {
|
4
4
|
trackingId: string;
|
5
5
|
additionalGtagTrackingIds: string[];
|
6
6
|
currency: string;
|
7
|
+
brandCustomField?: string;
|
7
8
|
useArticleNumberAsId?: boolean;
|
8
9
|
}) => Tracker;
|
@@ -5,17 +5,18 @@ export function unSlugify(slug) {
|
|
5
5
|
if (slug) {
|
6
6
|
slug = slug
|
7
7
|
.split('-')
|
8
|
-
.map(part => part.length > 0 ? part[0].toUpperCase() + part.substring(1) : '')
|
8
|
+
.map((part) => part.length > 0 ? part[0].toUpperCase() + part.substring(1) : '')
|
9
9
|
.join(' ');
|
10
10
|
slug = slug
|
11
11
|
.split('/')
|
12
|
-
.map(part => part.length > 0 ? part[0].toUpperCase() + part.substring(1) : '')
|
12
|
+
.map((part) => part.length > 0 ? part[0].toUpperCase() + part.substring(1) : '')
|
13
13
|
.join('/');
|
14
14
|
}
|
15
15
|
return slug;
|
16
16
|
}
|
17
|
-
function getProductData(product, selectedVariation, useArticleNumberAsId = false) {
|
17
|
+
function getProductData(product, selectedVariation, useArticleNumberAsId = false, brandCustomField) {
|
18
18
|
var _a, _b, _c, _d;
|
19
|
+
const brand = getBrand(product, brandCustomField);
|
19
20
|
if (useArticleNumberAsId) {
|
20
21
|
return {
|
21
22
|
id: product.articleNumber,
|
@@ -26,7 +27,7 @@ function getProductData(product, selectedVariation, useArticleNumberAsId = false
|
|
26
27
|
name: product.name,
|
27
28
|
base_product: product.articleNumber,
|
28
29
|
category: unSlugify((_b = (_a = product === null || product === void 0 ? void 0 : product.canonicalCategory) === null || _a === void 0 ? void 0 : _a.primaryRoute) === null || _b === void 0 ? void 0 : _b.path),
|
29
|
-
brand
|
30
|
+
brand
|
30
31
|
};
|
31
32
|
}
|
32
33
|
else {
|
@@ -40,16 +41,25 @@ function getProductData(product, selectedVariation, useArticleNumberAsId = false
|
|
40
41
|
name: product.name,
|
41
42
|
base_product: product.articleNumber,
|
42
43
|
category: unSlugify((_d = (_c = product === null || product === void 0 ? void 0 : product.canonicalCategory) === null || _c === void 0 ? void 0 : _c.primaryRoute) === null || _d === void 0 ? void 0 : _d.path),
|
43
|
-
brand
|
44
|
+
brand
|
44
45
|
};
|
45
46
|
}
|
46
47
|
}
|
47
|
-
export const gtagTracker = ({ trackingId, additionalGtagTrackingIds = [], currency, useArticleNumberAsId = false }) => ({
|
48
|
+
export const gtagTracker = ({ trackingId, additionalGtagTrackingIds = [], currency, brandCustomField, useArticleNumberAsId = false }) => ({
|
48
49
|
name: 'gtag',
|
49
50
|
initBrowser() {
|
50
51
|
const script = `https://www.googletagmanager.com/gtag/js?id=${trackingId}`;
|
51
52
|
const w = window;
|
52
53
|
w.dataLayer = w.dataLayer || [];
|
54
|
+
w.dataLayer.push({
|
55
|
+
'gtm.start': new Date().getTime(),
|
56
|
+
event: 'gtm.js',
|
57
|
+
originalLocation: document.location.protocol +
|
58
|
+
'//' +
|
59
|
+
document.location.hostname +
|
60
|
+
document.location.pathname +
|
61
|
+
document.location.search
|
62
|
+
});
|
53
63
|
w.gtag = function gtag() {
|
54
64
|
w.dataLayer.push(arguments); // I'm not sure why but this dosen't work using rest params. Don't change this line
|
55
65
|
};
|
@@ -58,7 +68,7 @@ export const gtagTracker = ({ trackingId, additionalGtagTrackingIds = [], curren
|
|
58
68
|
currency,
|
59
69
|
send_page_view: false
|
60
70
|
});
|
61
|
-
additionalGtagTrackingIds.forEach(id => {
|
71
|
+
additionalGtagTrackingIds.forEach((id) => {
|
62
72
|
gtag()('config', id, {
|
63
73
|
currency,
|
64
74
|
send_page_view: false
|
@@ -68,7 +78,7 @@ export const gtagTracker = ({ trackingId, additionalGtagTrackingIds = [], curren
|
|
68
78
|
gtag();
|
69
79
|
},
|
70
80
|
trackProduct({ quantity, action, product, selectedVariation, list, listName, index }, context, eventId) {
|
71
|
-
const productData = Object.assign(Object.assign({}, getProductData(product, selectedVariation, useArticleNumberAsId)), { price: (selectedVariation && selectedVariation.price.incVat) ||
|
81
|
+
const productData = Object.assign(Object.assign({}, getProductData(product, selectedVariation, useArticleNumberAsId, brandCustomField)), { price: (selectedVariation && selectedVariation.price.incVat) ||
|
72
82
|
(product.price && product.price.incVat), quantity, list_name: list || listName || context.list, list_position: index });
|
73
83
|
switch (action) {
|
74
84
|
case 'click':
|
@@ -107,7 +117,7 @@ export const gtagTracker = ({ trackingId, additionalGtagTrackingIds = [], curren
|
|
107
117
|
}
|
108
118
|
},
|
109
119
|
trackCartCheckout({ cart }, _context, eventId) {
|
110
|
-
const items = cart.items.map(item => (Object.assign(Object.assign({}, getProductData(item.product, item.variant, useArticleNumberAsId)), { price: item.total.incVat, quantity: item.quantity })));
|
120
|
+
const items = cart.items.map((item) => (Object.assign(Object.assign({}, getProductData(item.product, item.variant, useArticleNumberAsId, brandCustomField)), { price: item.total.incVat, quantity: item.quantity })));
|
111
121
|
gtag()('event', 'begin_checkout', {
|
112
122
|
currency,
|
113
123
|
items,
|
@@ -125,7 +135,7 @@ export const gtagTracker = ({ trackingId, additionalGtagTrackingIds = [], curren
|
|
125
135
|
trackList({ listName, products }, _context, eventId) {
|
126
136
|
const productData = products.map((product, i) => {
|
127
137
|
var _a;
|
128
|
-
return (Object.assign(Object.assign({}, getProductData(product, null, useArticleNumberAsId)), { price: (_a = product.price) === null || _a === void 0 ? void 0 : _a.incVat, list_name: listName, list_position: i }));
|
138
|
+
return (Object.assign(Object.assign({}, getProductData(product, null, useArticleNumberAsId, brandCustomField)), { price: (_a = product.price) === null || _a === void 0 ? void 0 : _a.incVat, list_name: listName, list_position: i }));
|
129
139
|
});
|
130
140
|
gtag()('event', 'view_item_list', {
|
131
141
|
currency,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"gtag.js","sourceRoot":"","sources":["gtag.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,oDAAoD,CAAC;AAE9E,MAAM,IAAI,GAAG,GAAG,EAAE,CAAE,MAAc,CAAC,IAAI,CAAC;AAExC,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,IAAI,IAAI,EAAE;QACR,IAAI,GAAG,IAAI;aACR,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,IAAI,
|
1
|
+
{"version":3,"file":"gtag.js","sourceRoot":"","sources":["gtag.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,oDAAoD,CAAC;AAE9E,MAAM,IAAI,GAAG,GAAG,EAAE,CAAE,MAAc,CAAC,IAAI,CAAC;AAExC,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,IAAI,IAAI,EAAE;QACR,IAAI,GAAG,IAAI;aACR,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CACjE;aACA,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,IAAI,GAAG,IAAI;aACR,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CACjE;aACA,IAAI,CAAC,GAAG,CAAC,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CACrB,OAAgB,EAChB,iBAAiC,EACjC,oBAAoB,GAAG,KAAK,EAC5B,gBAAyB;;IAEzB,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAClD,IAAI,oBAAoB,EAAE;QACxB,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,aAAa;YACzB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,UAAU,EAAE,OAAO,CAAC,aAAa;YACjC,OAAO,EAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YAC5C,UAAU,EAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,aAAa;YAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,YAAY,EAAE,OAAO,CAAC,aAAa;YACnC,QAAQ,EAAE,SAAS,CAAC,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,0CAAE,YAAY,0CAAE,IAAI,CAAC;YACnE,KAAK;SACN,CAAC;KACH;SAAM;QACL,2IAA2I;QAC3I,yHAAyH;QACzH,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,iBAAiB;gBACxB,CAAC,CAAC,iBAAiB,CAAC,aAAa;gBACjC,CAAC,CAAC,OAAO,CAAC,aAAa;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,YAAY,EAAE,OAAO,CAAC,aAAa;YACnC,QAAQ,EAAE,SAAS,CAAC,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,0CAAE,YAAY,0CAAE,IAAI,CAAC;YACnE,KAAK;SACN,CAAC;KACH;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,UAAU,EACV,yBAAyB,GAAG,EAAE,EAC9B,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,GAAG,KAAK,EAO7B,EAAW,EAAE,CAAC,CAAC;IACd,IAAI,EAAE,MAAM;IACZ,WAAW;QACT,MAAM,MAAM,GAAG,+CAA+C,UAAU,EAAE,CAAC;QAE3E,MAAM,CAAC,GAAQ,MAAM,CAAC;QACtB,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;QAChC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;YACf,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;YACjC,KAAK,EAAE,QAAQ;YACf,gBAAgB,EACd,QAAQ,CAAC,QAAQ,CAAC,QAAQ;gBAC1B,IAAI;gBACJ,QAAQ,CAAC,QAAQ,CAAC,QAAQ;gBAC1B,QAAQ,CAAC,QAAQ,CAAC,QAAQ;gBAC1B,QAAQ,CAAC,QAAQ,CAAC,MAAM;SAC3B,CAAC,CAAC;QACH,CAAC,CAAC,IAAI,GAAG,SAAS,IAAI;YACpB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,mFAAmF;QAClH,CAAC,CAAC;QACF,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAEzB,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE;YAC3B,QAAQ;YACR,cAAc,EAAE,KAAK;SACtB,CAAC,CAAC;QAEH,yBAAyB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACvC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE;gBACnB,QAAQ;gBACR,cAAc,EAAE,KAAK;aACtB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QAE9B,IAAI,EAAE,CAAC;IACT,CAAC;IACD,YAAY,CACV,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EACvE,OAAO,EACP,OAAO;QAEP,MAAM,WAAW,mCACZ,cAAc,CACf,OAAO,EACP,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,CACjB,KACD,KAAK,EACH,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC;gBACrD,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EACzC,QAAQ,EACR,SAAS,EAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,EAC3C,aAAa,EAAE,KAAK,GACrB,CAAC;QAEF,QAAQ,MAAM,EAAE;YACd,KAAK,OAAO;gBACV,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE;oBAChC,QAAQ;oBACR,YAAY,EAAE,SAAS;oBACvB,KAAK,EAAE,CAAC,WAAW,CAAC;oBACpB,OAAO;iBACR,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE;oBAC3B,QAAQ;oBACR,KAAK,EAAE,CAAC,WAAW,CAAC;oBACpB,eAAe,EAAE,IAAI;oBACrB,OAAO;iBACR,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE;oBAC7B,QAAQ;oBACR,KAAK,EAAE,CAAC,WAAW,CAAC;oBACpB,OAAO;iBACR,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE;oBAClC,QAAQ;oBACR,KAAK,EAAE,CAAC,WAAW,CAAC;oBACpB,OAAO;iBACR,CAAC,CAAC;gBACH,MAAM;YACR;gBACE,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,MAAM,CAAC,CAAC;gBAC1D,MAAM;SACT;IACH,CAAC;IACD,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iCAClC,cAAc,CACf,IAAI,CAAC,OAAkB,EACvB,IAAI,CAAC,OAAO,EACZ,oBAAoB,EACpB,gBAAgB,CACjB,KACD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IACvB,CAAC,CAAC;QACJ,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE;YAChC,QAAQ;YACR,KAAK;YACL,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IACD,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO;QAClD,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE;YAC3B,QAAQ;YACR,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE,KAAK;YACjB,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO;QACjD,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;;YAAC,OAAA,iCAC5C,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,KACxE,KAAK,EAAE,MAAA,OAAO,CAAC,KAAK,0CAAE,MAAM,EAC5B,SAAS,EAAE,QAAQ,EACnB,aAAa,EAAE,CAAC,IAChB,CAAA;SAAA,CAAC,CAAC;QACJ,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE;YAChC,QAAQ;YACR,KAAK,EAAE,WAAW;YAClB,eAAe,EAAE,IAAI;YACrB,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IACD,eAAe,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO;QAChD,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE;YAC3B,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;YAC9B,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO;QACrC,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO;QAClC,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO;QACrC,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,kBAAkB,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO;QAClE,IAAI,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE;YACjC,aAAa;YACb,WAAW;YACX,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
|
@@ -1,4 +1,13 @@
|
|
1
1
|
import { Tracker } from './../../trackerRegistry';
|
2
|
-
|
2
|
+
declare global {
|
3
|
+
interface Window {
|
4
|
+
dataLayer: any[];
|
5
|
+
}
|
6
|
+
}
|
7
|
+
export declare function unSlugify(slug?: string): string;
|
8
|
+
export declare const gtmTracker: ({ containerId, currency, useArticleNumberAsId, brandCustomField }: {
|
3
9
|
containerId: string;
|
10
|
+
currency: string;
|
11
|
+
brandCustomField?: string;
|
12
|
+
useArticleNumberAsId?: boolean;
|
4
13
|
}) => Tracker;
|
@@ -1,5 +1,57 @@
|
|
1
1
|
import { injectScript } from '../../utils/script';
|
2
|
-
|
2
|
+
import { getBrand } from '@jetshop/core/components/OpenGraph/OpenGraphProductData';
|
3
|
+
function push(event) {
|
4
|
+
if (window.dataLayer) {
|
5
|
+
if (event.ecommerce) {
|
6
|
+
window.dataLayer.push({ ecommerce: null });
|
7
|
+
}
|
8
|
+
window.dataLayer.push(event);
|
9
|
+
}
|
10
|
+
}
|
11
|
+
export function unSlugify(slug) {
|
12
|
+
if (slug) {
|
13
|
+
slug = slug
|
14
|
+
.split('-')
|
15
|
+
.map((part) => part.length > 0 ? part[0].toUpperCase() + part.substring(1) : '')
|
16
|
+
.join(' ');
|
17
|
+
slug = slug
|
18
|
+
.split('/')
|
19
|
+
.map((part) => part.length > 0 ? part[0].toUpperCase() + part.substring(1) : '')
|
20
|
+
.join('/');
|
21
|
+
}
|
22
|
+
return slug;
|
23
|
+
}
|
24
|
+
function getProductData(product, selectedVariation, useArticleNumberAsId = false, brandCustomField) {
|
25
|
+
var _a, _b, _c, _d;
|
26
|
+
if (useArticleNumberAsId) {
|
27
|
+
return {
|
28
|
+
id: product.articleNumber,
|
29
|
+
productId: product.id,
|
30
|
+
productSKU: product.articleNumber,
|
31
|
+
variant: selectedVariation === null || selectedVariation === void 0 ? void 0 : selectedVariation.values.join('_'),
|
32
|
+
variantSKU: selectedVariation === null || selectedVariation === void 0 ? void 0 : selectedVariation.articleNumber,
|
33
|
+
name: product.name,
|
34
|
+
base_product: product.articleNumber,
|
35
|
+
category: unSlugify((_b = (_a = product === null || product === void 0 ? void 0 : product.canonicalCategory) === null || _a === void 0 ? void 0 : _a.primaryRoute) === null || _b === void 0 ? void 0 : _b.path),
|
36
|
+
brand: getBrand(product, brandCustomField)
|
37
|
+
};
|
38
|
+
}
|
39
|
+
else {
|
40
|
+
// This is kept as backwards compatibility. Some shops rely on the product id being the internal Jetshop id, instead of the article number.
|
41
|
+
// Changing this could affect the statistics in Google Ads/Merchant/Analytics, so we want the new behaviour to be opt-in.
|
42
|
+
return {
|
43
|
+
id: product.id,
|
44
|
+
variant: selectedVariation
|
45
|
+
? selectedVariation.articleNumber
|
46
|
+
: product.articleNumber,
|
47
|
+
name: product.name,
|
48
|
+
base_product: product.articleNumber,
|
49
|
+
category: unSlugify((_d = (_c = product === null || product === void 0 ? void 0 : product.canonicalCategory) === null || _c === void 0 ? void 0 : _c.primaryRoute) === null || _d === void 0 ? void 0 : _d.path),
|
50
|
+
brand: getBrand(product, brandCustomField)
|
51
|
+
};
|
52
|
+
}
|
53
|
+
}
|
54
|
+
export const gtmTracker = ({ containerId, currency, useArticleNumberAsId = false, brandCustomField }) => ({
|
3
55
|
name: 'gtm',
|
4
56
|
initBrowser() {
|
5
57
|
const script = `https://www.googletagmanager.com/gtm.js?id=${containerId}`;
|
@@ -7,9 +59,130 @@ export const gtmTracker = ({ containerId }) => ({
|
|
7
59
|
w.dataLayer = w.dataLayer || [];
|
8
60
|
w.dataLayer.push({
|
9
61
|
'gtm.start': new Date().getTime(),
|
10
|
-
event: 'gtm.js'
|
62
|
+
event: 'gtm.js',
|
63
|
+
originalLocation: document.location.protocol +
|
64
|
+
'//' +
|
65
|
+
document.location.hostname +
|
66
|
+
document.location.pathname +
|
67
|
+
document.location.search
|
11
68
|
});
|
12
69
|
injectScript({ src: script });
|
70
|
+
},
|
71
|
+
trackProduct({ quantity, action, product, selectedVariation, list, listName, index }, context) {
|
72
|
+
const productData = Object.assign(Object.assign({}, getProductData(product, selectedVariation, useArticleNumberAsId, brandCustomField)), { price: (selectedVariation && selectedVariation.price.incVat) ||
|
73
|
+
(product.price && product.price.incVat), quantity, position: index });
|
74
|
+
switch (action) {
|
75
|
+
case 'click':
|
76
|
+
push({
|
77
|
+
event: 'productClick',
|
78
|
+
productIds: product.articleNumber,
|
79
|
+
ecommerce: {
|
80
|
+
click: {
|
81
|
+
actionField: { list: list || listName || context.list },
|
82
|
+
products: [productData]
|
83
|
+
}
|
84
|
+
}
|
85
|
+
});
|
86
|
+
break;
|
87
|
+
case 'view':
|
88
|
+
push({
|
89
|
+
event: 'productDetails',
|
90
|
+
ecommerce: {
|
91
|
+
currencyCode: currency,
|
92
|
+
detail: {
|
93
|
+
products: [productData]
|
94
|
+
}
|
95
|
+
}
|
96
|
+
});
|
97
|
+
break;
|
98
|
+
case 'add':
|
99
|
+
push({
|
100
|
+
event: 'addToCart',
|
101
|
+
productIds: product.articleNumber,
|
102
|
+
ecommerce: {
|
103
|
+
actionField: {
|
104
|
+
list: list || listName || context.list
|
105
|
+
},
|
106
|
+
currencyCode: currency,
|
107
|
+
add: {
|
108
|
+
products: [productData]
|
109
|
+
}
|
110
|
+
}
|
111
|
+
});
|
112
|
+
break;
|
113
|
+
case 'remove':
|
114
|
+
push({
|
115
|
+
event: 'removeFromCart',
|
116
|
+
productIds: product.articleNumber,
|
117
|
+
pageType: 'cart',
|
118
|
+
ecommerce: {
|
119
|
+
currencyCode: currency,
|
120
|
+
remove: {
|
121
|
+
products: [productData]
|
122
|
+
}
|
123
|
+
}
|
124
|
+
});
|
125
|
+
break;
|
126
|
+
default:
|
127
|
+
console.log('Error: Gtag can not track action ' + action);
|
128
|
+
break;
|
129
|
+
}
|
130
|
+
},
|
131
|
+
trackCartCheckout({ cart }) {
|
132
|
+
const items = cart.items.map((item) => (Object.assign(Object.assign({}, getProductData(item.product, item.variant, useArticleNumberAsId, brandCustomField)), { price: item.total.incVat, quantity: item.quantity })));
|
133
|
+
push({
|
134
|
+
event: 'checkout',
|
135
|
+
ecommerce: {
|
136
|
+
products: items
|
137
|
+
}
|
138
|
+
});
|
139
|
+
},
|
140
|
+
trackPageView({ pathname, title }) {
|
141
|
+
push({
|
142
|
+
event: 'pageView',
|
143
|
+
pagePath: pathname,
|
144
|
+
pageTitle: title
|
145
|
+
});
|
146
|
+
},
|
147
|
+
trackList({ listName, products }) {
|
148
|
+
const productData = products.map((product, i) => {
|
149
|
+
var _a;
|
150
|
+
return (Object.assign(Object.assign({}, getProductData(product, null, useArticleNumberAsId, brandCustomField)), { price: (_a = product.price) === null || _a === void 0 ? void 0 : _a.incVat, position: i, list: listName }));
|
151
|
+
});
|
152
|
+
push({
|
153
|
+
event: 'productList',
|
154
|
+
ecommerce: {
|
155
|
+
currencyCode: currency,
|
156
|
+
impressions: productData
|
157
|
+
}
|
158
|
+
});
|
159
|
+
},
|
160
|
+
trackExperiment({ id, variant }) {
|
161
|
+
push({
|
162
|
+
experiment: `${id}.${variant}`
|
163
|
+
});
|
164
|
+
},
|
165
|
+
trackUser({ userId }) {
|
166
|
+
push({
|
167
|
+
userId
|
168
|
+
});
|
169
|
+
},
|
170
|
+
trackLogin() {
|
171
|
+
push({
|
172
|
+
event: 'login'
|
173
|
+
});
|
174
|
+
},
|
175
|
+
trackRegister() {
|
176
|
+
push({
|
177
|
+
event: 'register'
|
178
|
+
});
|
179
|
+
},
|
180
|
+
trackAddToWishList({ articleNumber, productName }) {
|
181
|
+
push({
|
182
|
+
event: 'addToWishlist',
|
183
|
+
articleNumber,
|
184
|
+
productName
|
185
|
+
});
|
13
186
|
}
|
14
187
|
});
|
15
188
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,WAAW,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
|
package/boot/SharedTree.js
CHANGED
@@ -19,7 +19,7 @@ const SharedTree = ({ activeBreakpoint, cookies, helmetContext, releware, client
|
|
19
19
|
React.createElement(HelmetProvider, { context: helmetContext },
|
20
20
|
React.createElement(BreakpointProvider, { value: activeBreakpoint },
|
21
21
|
React.createElement(ApolloProvider, { client: client },
|
22
|
-
React.createElement(ChannelProvider, { config: config,
|
22
|
+
React.createElement(ChannelProvider, { config: config, channelHandler: channelHandler },
|
23
23
|
React.createElement(AnalyticsProvider, { releware: releware },
|
24
24
|
React.createElement(PreviewProvider, { previewHandler: previewHandler },
|
25
25
|
React.createElement(Router, Object.assign({ basename: channelHandler.getChannelBasename() || undefined }, routerProps),
|
package/boot/SharedTree.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SharedTree.js","sourceRoot":"","sources":["SharedTree.tsx"],"names":[],"mappings":"AAAA,OAAO,iBAEN,MAAM,2CAA2C,CAAC;AAEnD,OAAO,KAAuB,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,UAAU;AACV,OAAO,EAAW,eAAe,EAAE,MAAM,cAAc,CAAC;AACxD,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,YAAY,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAe,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAgBpE,MAAM,UAAU,GAAG,CAAC,EAClB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAW,EACX,MAAM,EACN,WAAW,EACX,QAAQ,EACR,cAAc,EACd,cAAc,EACE,EAAgB,EAAE;IAClC,OAAO,CACL,oBAAC,cAAc,IAAC,MAAM,EAAE,MAAM;QAC5B,oBAAC,qBAAqB;YACpB,oBAAC,eAAe,IAAC,OAAO,EAAE,OAAO;gBAC/B,oBAAC,cAAc,IAAC,OAAO,EAAE,aAAa;oBACpC,oBAAC,kBAAkB,IAAC,KAAK,EAAE,gBAAgB;wBACzC,oBAAC,cAAc,IAAC,MAAM,EAAE,MAAM;4BAC5B,oBAAC,eAAe,IACd,MAAM,EAAE,MAAM,EACd,
|
1
|
+
{"version":3,"file":"SharedTree.js","sourceRoot":"","sources":["SharedTree.tsx"],"names":[],"mappings":"AAAA,OAAO,iBAEN,MAAM,2CAA2C,CAAC;AAEnD,OAAO,KAAuB,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,UAAU;AACV,OAAO,EAAW,eAAe,EAAE,MAAM,cAAc,CAAC;AACxD,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,YAAY,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAe,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAgBpE,MAAM,UAAU,GAAG,CAAC,EAClB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAW,EACX,MAAM,EACN,WAAW,EACX,QAAQ,EACR,cAAc,EACd,cAAc,EACE,EAAgB,EAAE;IAClC,OAAO,CACL,oBAAC,cAAc,IAAC,MAAM,EAAE,MAAM;QAC5B,oBAAC,qBAAqB;YACpB,oBAAC,eAAe,IAAC,OAAO,EAAE,OAAO;gBAC/B,oBAAC,cAAc,IAAC,OAAO,EAAE,aAAa;oBACpC,oBAAC,kBAAkB,IAAC,KAAK,EAAE,gBAAgB;wBACzC,oBAAC,cAAc,IAAC,MAAM,EAAE,MAAM;4BAC5B,oBAAC,eAAe,IACd,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc;gCAE9B,oBAAC,iBAAiB,IAAC,QAAQ,EAAE,QAAQ;oCACnC,oBAAC,eAAe,IAAC,cAAc,EAAE,cAAc;wCAC7C,oBAAC,MAAM,kBACL,QAAQ,EACN,cAAc,CAAC,kBAAkB,EAAE,IAAI,SAAS,IAE9C,WAAW;4CAEf,oBAAC,YAAY,IAAC,IAAI,EAAE,WAAW,IAC5B,QAAQ,CACI,CACR,CACO,CACA,CACJ,CACH,CACE,CACN,CACD,CACI,CACT,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
package/boot/apollo.d.ts
CHANGED
@@ -2,19 +2,20 @@ import { NormalizedCacheObject } from 'apollo-cache-inmemory';
|
|
2
2
|
import { ApolloClient } from 'apollo-client';
|
3
3
|
import { Request } from 'express';
|
4
4
|
import { GraphQLSchema } from 'graphql';
|
5
|
-
import { ChannelHandler } from '../ChannelHandler/ChannelHandler';
|
6
5
|
import { ApolloConfig } from '../components/ConfigProvider';
|
7
6
|
import { AuthHandler } from './AuthHandler';
|
8
7
|
import { PreviewHandler } from './PreviewHandler';
|
8
|
+
import { SelectedChannel } from '../components/ChannelContext/ChannelContext';
|
9
|
+
import { ChannelHandler } from '../ChannelHandler/ChannelHandler';
|
9
10
|
export interface CreateClientOpts {
|
10
11
|
apolloConfig: ApolloConfig;
|
11
12
|
schema?: GraphQLSchema;
|
12
13
|
authHandler?: AuthHandler;
|
13
|
-
|
14
|
+
selectedChannel?: SelectedChannel;
|
14
15
|
previewHandler?: PreviewHandler;
|
15
16
|
req?: Request;
|
17
|
+
channelHandler?: ChannelHandler;
|
16
18
|
}
|
17
|
-
export declare const createClient: ({ apolloConfig: { token, shopid, enableGateway, graphQLURI, useGraphQLProxyServer }, schema, authHandler,
|
19
|
+
export declare const createClient: ({ apolloConfig: { token, shopid, enableGateway, graphQLURI, useGraphQLProxyServer }, schema, authHandler, previewHandler, req, channelHandler }: CreateClientOpts) => {
|
18
20
|
client: ApolloClient<NormalizedCacheObject>;
|
19
|
-
NetworkStatusNotifier: any;
|
20
21
|
};
|
package/boot/apollo.js
CHANGED
@@ -16,19 +16,16 @@ import { createHttpLink } from 'apollo-link-http';
|
|
16
16
|
import { createPersistedQueryLink } from 'apollo-link-persisted-queries';
|
17
17
|
import { SchemaLink } from 'apollo-link-schema';
|
18
18
|
import qs from 'qs';
|
19
|
-
import { createNetworkStatusNotifier } from 'react-apollo-network-status';
|
20
19
|
import createCache from '../data/cache';
|
21
20
|
import report from '../errorReporting';
|
22
21
|
import { resolvers } from '../resolvers';
|
23
22
|
import typeDefs from './client-schema.gql';
|
24
23
|
import { logOperationTime } from './utils/queryLoggingMiddleware';
|
25
|
-
|
24
|
+
import { link as networkStatusLink } from '@jetshop/ui/Loading/NetworkStatusNotifier';
|
25
|
+
export const createClient = ({ apolloConfig: { token, shopid, enableGateway, graphQLURI, useGraphQLProxyServer }, schema, authHandler, previewHandler, req, channelHandler }) => {
|
26
26
|
if (!token || !shopid) {
|
27
27
|
throw new Error(`Missing ${!token && `token`} ${!shopid && `shopid`}`);
|
28
28
|
}
|
29
|
-
const channelHeaders = channelHandler
|
30
|
-
? channelHandler.getChannelHeaders()
|
31
|
-
: {};
|
32
29
|
const authHeaders = authHandler ? authHandler.getAuthHeaders() : {};
|
33
30
|
const previewHeaders = previewHandler
|
34
31
|
? previewHandler.getPreviewHeaders()
|
@@ -48,7 +45,7 @@ export const createClient = ({ apolloConfig: { token, shopid, enableGateway, gra
|
|
48
45
|
? new SchemaLink({
|
49
46
|
schema,
|
50
47
|
context: {
|
51
|
-
headers: Object.assign(Object.assign(Object.assign({},
|
48
|
+
headers: Object.assign(Object.assign(Object.assign({}, ((channelHandler === null || channelHandler === void 0 ? void 0 : channelHandler.getChannelHeaders()) || {})), authHeaders), previewHeaders)
|
52
49
|
}
|
53
50
|
})
|
54
51
|
: createHttpLink({
|
@@ -94,14 +91,13 @@ export const createClient = ({ apolloConfig: { token, shopid, enableGateway, gra
|
|
94
91
|
: enableGateway
|
95
92
|
? createGatewayLink()
|
96
93
|
: createDirectLink();
|
97
|
-
const channelMiddleware =
|
98
|
-
new
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
});
|
94
|
+
const channelMiddleware = new ApolloLink((operation, forward) => {
|
95
|
+
// Sets the current channel before each new HTTP request is made
|
96
|
+
operation.setContext(({ headers = {} }) => ({
|
97
|
+
headers: Object.assign(Object.assign({}, headers), ((channelHandler === null || channelHandler === void 0 ? void 0 : channelHandler.getChannelHeaders()) || {}))
|
98
|
+
}));
|
99
|
+
return forward ? forward(operation) : null;
|
100
|
+
});
|
105
101
|
const authMiddleware = authHandler &&
|
106
102
|
new ApolloLink((operation, forward) => {
|
107
103
|
// Sets the auth token when a new request is made
|
@@ -122,7 +118,7 @@ export const createClient = ({ apolloConfig: { token, shopid, enableGateway, gra
|
|
122
118
|
var _b, _c;
|
123
119
|
var { graphQLErrors, networkError, operation } = _a, rest = __rest(_a, ["graphQLErrors", "networkError", "operation"]);
|
124
120
|
if (graphQLErrors) {
|
125
|
-
graphQLErrors.forEach(error => {
|
121
|
+
graphQLErrors.forEach((error) => {
|
126
122
|
var _a;
|
127
123
|
const code = (_a = error === null || error === void 0 ? void 0 : error.extensions) === null || _a === void 0 ? void 0 : _a.code;
|
128
124
|
if (code === 'EmptyRoute') {
|
@@ -135,6 +131,11 @@ export const createClient = ({ apolloConfig: { token, shopid, enableGateway, gra
|
|
135
131
|
window.location.href = '/';
|
136
132
|
}
|
137
133
|
}
|
134
|
+
else if (code === 'InvalidCreateCustomerInput' ||
|
135
|
+
code === 'UnableToLoginCustomer') {
|
136
|
+
// Don't report this to Sentry
|
137
|
+
console.log(error);
|
138
|
+
}
|
138
139
|
else {
|
139
140
|
console.log(error);
|
140
141
|
// Other graph errors will be logged to Sentry
|
@@ -165,14 +166,13 @@ export const createClient = ({ apolloConfig: { token, shopid, enableGateway, gra
|
|
165
166
|
report(networkError);
|
166
167
|
}
|
167
168
|
});
|
168
|
-
const { link: networkStatusNotifierLink, NetworkStatusNotifier } = createNetworkStatusNotifier();
|
169
169
|
const links = [
|
170
|
+
...(__IN_SERVER__ ? [] : [networkStatusLink]),
|
170
171
|
errorMiddleware,
|
171
172
|
// Only add the middleware to the links array if the exist
|
172
173
|
...(channelMiddleware ? [channelMiddleware] : []),
|
173
174
|
...(authMiddleware ? [authMiddleware] : []),
|
174
175
|
...(previewMiddleware ? [previewMiddleware] : []),
|
175
|
-
networkStatusNotifierLink,
|
176
176
|
apiLink
|
177
177
|
];
|
178
178
|
if (process.env.DEBUG_MODE === 'true') {
|
@@ -193,6 +193,6 @@ export const createClient = ({ apolloConfig: { token, shopid, enableGateway, gra
|
|
193
193
|
resolvers: resolvers(qs.stringify(req === null || req === void 0 ? void 0 : req.query, { encode: true, encodeValuesOnly: true })),
|
194
194
|
typeDefs
|
195
195
|
});
|
196
|
-
return { client
|
196
|
+
return { client };
|
197
197
|
};
|
198
198
|
//# sourceMappingURL=apollo.js.map
|
package/boot/apollo.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"apollo.js","sourceRoot":"","sources":["apollo.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,MAAM,IAAI,CAAC;
|
1
|
+
{"version":3,"file":"apollo.js","sourceRoot":"","sources":["apollo.ts"],"names":[],"mappings":"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"}
|