@jetshop/core 5.10.0 → 5.11.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/ChannelHandler/ChannelHandler.d.ts +9 -13
- package/ChannelHandler/ChannelHandler.js +16 -63
- 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 +1 -1
- package/analytics/AnalyticsProvider.js.map +1 -1
- package/boot/SharedTree.js +1 -1
- package/boot/SharedTree.js.map +1 -1
- package/boot/apollo.d.ts +5 -3
- package/boot/apollo.js +9 -13
- package/boot/apollo.js.map +1 -1
- package/boot/client/startClient.js +5 -10
- package/boot/client/startClient.js.map +1 -1
- package/boot/server/createRenderer.js +8 -7
- 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/components/Auth/CustomerUpdateForm.js +7 -7
- package/components/Auth/CustomerUpdateForm.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/Mutation/cartMutationUtils.js +7 -6
- package/components/Mutation/cartMutationUtils.js.map +1 -1
- package/components/Query/CartProvider.js +31 -21
- 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/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 +125 -31
- 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 +2 -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/package.json +1 -1
- package/resolvers/index.d.ts +3 -0
- package/resolvers/index.js +3 -0
- package/resolvers/index.js.map +1 -1
- package/sentry/client.js +1 -1
- package/sentry/client.js.map +1 -1
- package/time.d.ts +1 -0
- package/time.js +6 -0
- package/time.js.map +1 -0
@@ -1,17 +1,20 @@
|
|
1
1
|
import { SelectedChannel } from '@jetshop/core/components/ChannelContext/ChannelContext';
|
2
2
|
import { Channel } from '@jetshop/core/types';
|
3
3
|
import { RendererOptions } from '@jetshop/core/boot/server/createRenderer';
|
4
|
-
import ApolloClient from 'apollo-client';
|
5
4
|
import { BootOptions, Routes } from '@jetshop/core/components/ConfigProvider';
|
5
|
+
import type { GetPrimaryRoutePath } from './redirectUtils';
|
6
6
|
export declare class ChannelHandler {
|
7
7
|
selectedChannel?: SelectedChannel;
|
8
8
|
recommendedChannel?: SelectedChannel;
|
9
9
|
channels?: Channel[];
|
10
|
+
getPrimaryRoutePath?: GetPrimaryRoutePath;
|
10
11
|
constructor(args?: {
|
11
|
-
selectedChannel
|
12
|
-
recommendedChannel
|
13
|
-
channels
|
12
|
+
selectedChannel?: SelectedChannel;
|
13
|
+
recommendedChannel?: SelectedChannel;
|
14
|
+
channels?: Channel[];
|
15
|
+
getPrimaryRoutePath?: GetPrimaryRoutePath;
|
14
16
|
});
|
17
|
+
setGetPrimaryRoutePath: (getPrimaryRoutePath: GetPrimaryRoutePath) => GetPrimaryRoutePath;
|
15
18
|
getSelectedChannel: () => SelectedChannel;
|
16
19
|
setSelectedChannel: (selectedChannel: SelectedChannel) => void;
|
17
20
|
setRecommendedChannel: (recommendedChannel: SelectedChannel) => void;
|
@@ -32,21 +35,14 @@ export declare class ChannelHandler {
|
|
32
35
|
name?: undefined;
|
33
36
|
};
|
34
37
|
getChannelBasename: () => string;
|
35
|
-
getPreservedRedirect
|
36
|
-
|
37
|
-
url: string;
|
38
|
-
newChannel: SelectedChannel;
|
39
|
-
routes?: Routes;
|
40
|
-
}) => Promise<string>;
|
41
|
-
getRedirectUrl: ({ newChannel, client, preserveRedirect, url, routes }: {
|
42
|
-
client: ApolloClient<any>;
|
38
|
+
private getPreservedRedirect;
|
39
|
+
getRedirectUrl: ({ newChannel, preserveRedirect, url, routes }: {
|
43
40
|
newChannel: SelectedChannel;
|
44
41
|
preserveRedirect?: boolean;
|
45
42
|
url: string;
|
46
43
|
routes?: Routes;
|
47
44
|
}) => Promise<string>;
|
48
45
|
updateChannel: ({ config, ...args }: {
|
49
|
-
client: ApolloClient<any>;
|
50
46
|
newChannel: SelectedChannel;
|
51
47
|
config: BootOptions | RendererOptions;
|
52
48
|
}) => void;
|
@@ -10,24 +10,15 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
10
10
|
return t;
|
11
11
|
};
|
12
12
|
import qs from 'qs';
|
13
|
-
import
|
14
|
-
import ProductPathnameRedirectQuery from './ProductPathnameRedirectQuery.gql';
|
15
|
-
import CategoryPathnameRedirectQuery from './CategoryPathnameRedirectQuery.gql';
|
16
|
-
import StartPagePathnameRedirectQuery from './StartPagePathnameRedirectQuery.gql';
|
17
|
-
import PagePathnameRedirectQuery from './PagePathnameRedirectQuery.gql';
|
18
|
-
import { getChannelBasename, getLanguageFromCulture, isInDev } from './channelUtils';
|
19
|
-
const PathnameRedirectQueryMap = {
|
20
|
-
Product: ProductPathnameRedirectQuery,
|
21
|
-
Category: CategoryPathnameRedirectQuery,
|
22
|
-
StartPage: StartPagePathnameRedirectQuery,
|
23
|
-
Page: PagePathnameRedirectQuery
|
24
|
-
};
|
13
|
+
import { getChannelBasename, getChannelHeaders, getLanguageFromCulture, isInDev } from './channelUtils';
|
25
14
|
export class ChannelHandler {
|
26
15
|
constructor(args = {
|
27
16
|
selectedChannel: undefined,
|
28
17
|
recommendedChannel: undefined,
|
29
|
-
channels: undefined
|
18
|
+
channels: undefined,
|
19
|
+
getPrimaryRoutePath: undefined
|
30
20
|
}) {
|
21
|
+
this.setGetPrimaryRoutePath = (getPrimaryRoutePath) => (this.getPrimaryRoutePath = getPrimaryRoutePath);
|
31
22
|
this.getSelectedChannel = () => this.selectedChannel;
|
32
23
|
this.setSelectedChannel = (selectedChannel) => {
|
33
24
|
this.selectedChannel = selectedChannel;
|
@@ -40,21 +31,9 @@ export class ChannelHandler {
|
|
40
31
|
this.channels = channels;
|
41
32
|
};
|
42
33
|
this.getChannels = () => this.channels;
|
43
|
-
this.getChannelHeaders = () =>
|
44
|
-
|
45
|
-
|
46
|
-
currency: this.selectedChannel.currency.id,
|
47
|
-
channelid: this.selectedChannel.id,
|
48
|
-
culture: this.selectedChannel.language.culture,
|
49
|
-
country: this.selectedChannel.country.code,
|
50
|
-
name: this.selectedChannel.name
|
51
|
-
}
|
52
|
-
: {};
|
53
|
-
};
|
54
|
-
this.getChannelBasename = () => {
|
55
|
-
return getChannelBasename(this.selectedChannel);
|
56
|
-
};
|
57
|
-
this.getPreservedRedirect = ({ client, url, newChannel, routes }) => {
|
34
|
+
this.getChannelHeaders = () => getChannelHeaders(this.selectedChannel);
|
35
|
+
this.getChannelBasename = () => getChannelBasename(this.selectedChannel);
|
36
|
+
this.getPreservedRedirect = ({ url, newChannel, routes }) => {
|
58
37
|
const path = this.getPathWithoutBasename(url);
|
59
38
|
const routePathsArray = routes
|
60
39
|
? Object.keys(routes).map((key) => routes[key].path)
|
@@ -63,42 +42,16 @@ export class ChannelHandler {
|
|
63
42
|
return Promise.resolve(path);
|
64
43
|
}
|
65
44
|
if (path) {
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
path
|
71
|
-
}
|
72
|
-
})
|
73
|
-
.then((routeQueryResult) => {
|
74
|
-
const { id, __typename } = routeQueryResult.data.route.object;
|
75
|
-
this.setSelectedChannel(newChannel);
|
76
|
-
return client
|
77
|
-
.query({
|
78
|
-
fetchPolicy: 'network-only',
|
79
|
-
query: PathnameRedirectQueryMap[__typename],
|
80
|
-
variables: {
|
81
|
-
id
|
82
|
-
}
|
83
|
-
})
|
84
|
-
.then((pathnameQueryResult) => {
|
85
|
-
let newPath = '';
|
86
|
-
newPath = pathnameQueryResult.data[__typename].primaryRoute.path;
|
87
|
-
return newPath;
|
88
|
-
})
|
89
|
-
.catch(() => {
|
90
|
-
return '/';
|
91
|
-
});
|
92
|
-
})
|
93
|
-
.catch(() => {
|
94
|
-
return '/';
|
95
|
-
});
|
45
|
+
// Make sure we set the selected channel so any queries in
|
46
|
+
// getPrimaryRoutePath will pick up the selected channel
|
47
|
+
this.setSelectedChannel(newChannel);
|
48
|
+
return this.getPrimaryRoutePath(path);
|
96
49
|
}
|
97
50
|
else {
|
98
51
|
return Promise.resolve('/');
|
99
52
|
}
|
100
53
|
};
|
101
|
-
this.getRedirectUrl = ({ newChannel,
|
54
|
+
this.getRedirectUrl = ({ newChannel, preserveRedirect = true, url, routes }) => {
|
102
55
|
// If no country is set, select the default country
|
103
56
|
if (!newChannel.country) {
|
104
57
|
newChannel = Object.assign(Object.assign({}, newChannel), { country: newChannel.countries.find((c) => c.isDefault) });
|
@@ -122,7 +75,6 @@ export class ChannelHandler {
|
|
122
75
|
//Unless they specifically disable redirect we want to preserve the route
|
123
76
|
if (preserveRedirect) {
|
124
77
|
return this.getPreservedRedirect({
|
125
|
-
client,
|
126
78
|
url,
|
127
79
|
newChannel,
|
128
80
|
routes
|
@@ -138,13 +90,14 @@ export class ChannelHandler {
|
|
138
90
|
this.updateChannel = (_a) => {
|
139
91
|
var { config } = _a, args = __rest(_a, ["config"]);
|
140
92
|
this.getRedirectUrl(Object.assign(Object.assign({}, args), { url: window.location.href, preserveRedirect: config.preserveRedirect }))
|
141
|
-
.then((url) =>
|
142
|
-
.catch((url) =>
|
93
|
+
.then((url) => window.location.assign(url))
|
94
|
+
.catch((url) => window.location.assign(url));
|
143
95
|
};
|
144
|
-
const { selectedChannel, recommendedChannel, channels } = args;
|
96
|
+
const { selectedChannel, recommendedChannel, channels, getPrimaryRoutePath } = args;
|
145
97
|
this.selectedChannel = selectedChannel;
|
146
98
|
this.recommendedChannel = recommendedChannel;
|
147
99
|
this.channels = channels;
|
100
|
+
this.getPrimaryRoutePath = getPrimaryRoutePath;
|
148
101
|
}
|
149
102
|
getPathWithoutBasename(url) {
|
150
103
|
const urlObject = new URL(url);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ChannelHandler.js","sourceRoot":"","sources":["ChannelHandler.ts"],"names":[],"mappings":";;;;;;;;;;;
|
1
|
+
{"version":3,"file":"ChannelHandler.js","sourceRoot":"","sources":["ChannelHandler.ts"],"names":[],"mappings":"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"}
|
@@ -53,3 +53,16 @@ export declare function getSelectedAndRecommendedChannel({ url, singleDomainMode
|
|
53
53
|
selectedChannel: SelectedChannel;
|
54
54
|
recommendedChannel: SelectedChannel;
|
55
55
|
};
|
56
|
+
export declare function getChannelHeaders(channel?: SelectedChannel): {
|
57
|
+
currency: string;
|
58
|
+
channelid: number;
|
59
|
+
culture: string;
|
60
|
+
country: string;
|
61
|
+
name: string;
|
62
|
+
} | {
|
63
|
+
currency?: undefined;
|
64
|
+
channelid?: undefined;
|
65
|
+
culture?: undefined;
|
66
|
+
country?: undefined;
|
67
|
+
name?: undefined;
|
68
|
+
};
|
@@ -16,7 +16,7 @@ export const getURLLanguageBasename = ({ url, singleDomainMode }) => {
|
|
16
16
|
* @param channels List of channels to search through
|
17
17
|
*/
|
18
18
|
export const getDefaultChannel = (channels) => {
|
19
|
-
return channels.find(channel => channel.isDefault) || channels[0];
|
19
|
+
return channels.find((channel) => channel.isDefault) || channels[0];
|
20
20
|
};
|
21
21
|
/**
|
22
22
|
* Converts a Channel object to a SelectedChannel with the specified culture and currency
|
@@ -26,14 +26,14 @@ export const getDefaultChannel = (channels) => {
|
|
26
26
|
* @param country? Optional desired country code
|
27
27
|
*/
|
28
28
|
export const createSelectedChannel = (channel, culture, currency, country, urlBasenameLanguage) => {
|
29
|
-
const selectedLanguage = channel.languages.find(language => getLanguageFromCulture(language.culture) === urlBasenameLanguage) ||
|
30
|
-
channel.languages.find(language => language.culture === culture) ||
|
31
|
-
channel.languages.find(language => language.isDefault);
|
32
|
-
const selectedCurrency = channel.currencies.find(c => c.id === currency) ||
|
33
|
-
channel.currencies.find(c => c.isDefault);
|
29
|
+
const selectedLanguage = channel.languages.find((language) => getLanguageFromCulture(language.culture) === urlBasenameLanguage) ||
|
30
|
+
channel.languages.find((language) => language.culture === culture) ||
|
31
|
+
channel.languages.find((language) => language.isDefault);
|
32
|
+
const selectedCurrency = channel.currencies.find((c) => c.id === currency) ||
|
33
|
+
channel.currencies.find((c) => c.isDefault);
|
34
34
|
// Set selectedCountry to the prop `country`, else use the default
|
35
|
-
const selectedCountry = channel.countries.find(c => c.code === country) ||
|
36
|
-
channel.countries.find(c => c.isDefault);
|
35
|
+
const selectedCountry = channel.countries.find((c) => c.code === country) ||
|
36
|
+
channel.countries.find((c) => c.isDefault);
|
37
37
|
return Object.assign(Object.assign({}, channel), { currency: selectedCurrency || channel.defaultCurrency, language: selectedLanguage || channel.defaultLanguage, country: selectedCountry });
|
38
38
|
};
|
39
39
|
/**
|
@@ -42,20 +42,20 @@ export const createSelectedChannel = (channel, culture, currency, country, urlBa
|
|
42
42
|
* @param channels Array of channels to search through
|
43
43
|
*/
|
44
44
|
export const findChannel = (channelName, channels) => {
|
45
|
-
return channels.find(channel => channel.name === channelName);
|
45
|
+
return channels.find((channel) => channel.name === channelName);
|
46
46
|
};
|
47
47
|
const sanitizeURL = (url) => String(url).replace(/^(?:[\w]+:\/\/)?(?:www\.)?/, '');
|
48
48
|
export const findChannelById = (id, channels) => {
|
49
|
-
return channels.find(channel => channel.id === id);
|
49
|
+
return channels.find((channel) => channel.id === id);
|
50
50
|
};
|
51
51
|
export const findChannelByCountry = (countryCode, channels) => {
|
52
52
|
// We want to give priority to channels that have the country we are looking for as a default country
|
53
|
-
const channelWithDefaultCountry = channels.find(channel => channel.countries.find(country => country.code === countryCode && country.isDefault)
|
53
|
+
const channelWithDefaultCountry = channels.find((channel) => channel.countries.find((country) => country.code === countryCode && country.isDefault)
|
54
54
|
? true
|
55
55
|
: false);
|
56
56
|
if (!channelWithDefaultCountry) {
|
57
57
|
// If we don't find a channel with the default country then just return the first channel we find with that country
|
58
|
-
return channels.find(channel => channel.countries.find(country => country.code === countryCode)
|
58
|
+
return channels.find((channel) => channel.countries.find((country) => country.code === countryCode)
|
59
59
|
? true
|
60
60
|
: false);
|
61
61
|
}
|
@@ -115,7 +115,7 @@ export function isInDev(url) {
|
|
115
115
|
function getChannelFromPathOrUrl({ url, singleDomainMode, channels }) {
|
116
116
|
if (isInDev(url) && singleDomainMode) {
|
117
117
|
const basename = getURLBasename(new URL(url));
|
118
|
-
const activeChannels = channels.filter(channel => basename === getURLBasename(new URL(channel.url)));
|
118
|
+
const activeChannels = channels.filter((channel) => basename === getURLBasename(new URL(channel.url)));
|
119
119
|
// If we find more than one active channel we will end up in an infinite redirect so we return the first channel
|
120
120
|
// This likely means that there are multiple channels with the same basename but different domains
|
121
121
|
// To handle channel switching on development we also return the activeChannels array
|
@@ -127,7 +127,7 @@ function getChannelFromPathOrUrl({ url, singleDomainMode, channels }) {
|
|
127
127
|
else {
|
128
128
|
const currentUrl = sanitizeURL(url);
|
129
129
|
const sorted = channels.slice().sort((a, b) => b.url.length - a.url.length);
|
130
|
-
const activeChannels = sorted.filter(channel => currentUrl.indexOf(sanitizeURL(channel.url)) === 0);
|
130
|
+
const activeChannels = sorted.filter((channel) => currentUrl.indexOf(sanitizeURL(channel.url)) === 0);
|
131
131
|
// If we find more than one active channel we will end up in an infinite redirect so we return false
|
132
132
|
// This likely means that there are multiple channels with the same domain
|
133
133
|
return {
|
@@ -162,7 +162,7 @@ function getCultureFromAcceptLanguages({ channel, acceptedLanguages }) {
|
|
162
162
|
const acceptedLanguagesString = typeof acceptedLanguages !== 'string'
|
163
163
|
? acceptedLanguages[0]
|
164
164
|
: acceptedLanguages;
|
165
|
-
const channelLanguages = channel.languages.map(language => language.culture);
|
165
|
+
const channelLanguages = channel.languages.map((language) => language.culture);
|
166
166
|
return (acceptedLanguages &&
|
167
167
|
acceptLanguageParser.pick(channelLanguages, acceptedLanguagesString));
|
168
168
|
}
|
@@ -253,4 +253,15 @@ export function getSelectedAndRecommendedChannel({ url, singleDomainMode, channe
|
|
253
253
|
recommendedChannel
|
254
254
|
};
|
255
255
|
}
|
256
|
+
export function getChannelHeaders(channel) {
|
257
|
+
return channel
|
258
|
+
? {
|
259
|
+
currency: channel.currency.id,
|
260
|
+
channelid: channel.id,
|
261
|
+
culture: channel.language.culture,
|
262
|
+
country: channel.country.code,
|
263
|
+
name: channel.name
|
264
|
+
}
|
265
|
+
: {};
|
266
|
+
}
|
256
267
|
//# sourceMappingURL=channelUtils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"channelUtils.js","sourceRoot":"","sources":["channelUtils.ts"],"names":[],"mappings":"AAEA,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAAE,MAAM,IAAI,CAAC;AAWpB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAQ,EAAE,EAAE;IACzC,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACrC,GAAG,EACH,gBAAgB,EAIjB,EAAE,EAAE;IACH,IAAI,gBAAgB,EAAE;QACpB,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACnC;SAAM;QACL,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;KAC5B;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAmB,EAAE,EAAE;IACvD,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,
|
1
|
+
{"version":3,"file":"channelUtils.js","sourceRoot":"","sources":["channelUtils.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
+
});
|
9
|
+
};
|
10
|
+
import preserveRedirectRouteQuery from './PreserveRedirectRouteQuery.gql';
|
11
|
+
import ProductPathnameRedirectQuery from './ProductPathnameRedirectQuery.gql';
|
12
|
+
import CategoryPathnameRedirectQuery from './CategoryPathnameRedirectQuery.gql';
|
13
|
+
import StartPagePathnameRedirectQuery from './StartPagePathnameRedirectQuery.gql';
|
14
|
+
import PagePathnameRedirectQuery from './PagePathnameRedirectQuery.gql';
|
15
|
+
const PathnameRedirectQueryMap = {
|
16
|
+
Product: ProductPathnameRedirectQuery,
|
17
|
+
Category: CategoryPathnameRedirectQuery,
|
18
|
+
StartPage: StartPagePathnameRedirectQuery,
|
19
|
+
Page: PagePathnameRedirectQuery
|
20
|
+
};
|
21
|
+
export function primaryRouteForPathFetcher(client) {
|
22
|
+
return (path) => __awaiter(this, void 0, void 0, function* () {
|
23
|
+
try {
|
24
|
+
if (!path) {
|
25
|
+
throw new Error('No path was provided');
|
26
|
+
}
|
27
|
+
const routeQueryResult = yield client.query({
|
28
|
+
query: preserveRedirectRouteQuery,
|
29
|
+
variables: {
|
30
|
+
path
|
31
|
+
}
|
32
|
+
});
|
33
|
+
const { id, __typename } = routeQueryResult.data.route.object;
|
34
|
+
const pathnameQueryResult = yield client.query({
|
35
|
+
fetchPolicy: 'network-only',
|
36
|
+
query: PathnameRedirectQueryMap[__typename],
|
37
|
+
variables: {
|
38
|
+
id
|
39
|
+
}
|
40
|
+
});
|
41
|
+
return pathnameQueryResult.data[__typename].primaryRoute.path;
|
42
|
+
}
|
43
|
+
catch (e) {
|
44
|
+
return '/';
|
45
|
+
}
|
46
|
+
});
|
47
|
+
}
|
48
|
+
//# sourceMappingURL=redirectUtils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"redirectUtils.js","sourceRoot":"","sources":["redirectUtils.ts"],"names":[],"mappings":";;;;;;;;;AASA,OAAO,0BAA0B,MAAM,kCAAkC,CAAC;AAC1E,OAAO,4BAA4B,MAAM,oCAAoC,CAAC;AAC9E,OAAO,6BAA6B,MAAM,qCAAqC,CAAC;AAChF,OAAO,8BAA8B,MAAM,sCAAsC,CAAC;AAClF,OAAO,yBAAyB,MAAM,iCAAiC,CAAC;AAExE,MAAM,wBAAwB,GAAG;IAC/B,OAAO,EAAE,4BAA4B;IACrC,QAAQ,EAAE,6BAA6B;IACvC,SAAS,EAAE,8BAA8B;IACzC,IAAI,EAAE,yBAAyB;CAChC,CAAC;AAKF,MAAM,UAAU,0BAA0B,CACxC,MAAyB;IAEzB,OAAO,CAAO,IAAI,EAAE,EAAE;QACpB,IAAI;YACF,IAAI,CAAC,IAAI,EAAE;gBACT,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;aACzC;YAED,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,KAAK,CAOxC;gBACD,KAAK,EAAE,0BAA0B;gBACjC,SAAS,EAAE;oBACT,IAAI;iBACL;aACF,CAAC,CAAC;YAEH,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAE9D,MAAM,mBAAmB,GAAG,MAAM,MAAM,CAAC,KAAK,CAK3C;gBACD,WAAW,EAAE,cAAc;gBAC3B,KAAK,EAAE,wBAAwB,CAAC,UAAU,CAAC;gBAC3C,SAAS,EAAE;oBACT,EAAE;iBACH;aACF,CAAC,CAAC;YAEH,OAAO,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;SAC/D;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,GAAG,CAAC;SACZ;IACH,CAAC,CAAA,CAAC;AACJ,CAAC"}
|
@@ -9,6 +9,7 @@ import gql from 'graphql-tag';
|
|
9
9
|
import { ChannelHandler } from './ChannelHandler';
|
10
10
|
import { channels, singleDomainChannels } from '../test-utils/variables';
|
11
11
|
import { Cookies } from 'react-cookie';
|
12
|
+
import { primaryRouteForPathFetcher } from './redirectUtils';
|
12
13
|
|
13
14
|
const preserveRedirectRouteQuery = gql`
|
14
15
|
query preserveRedirectRouteQuery($path: String!) {
|
@@ -180,6 +181,7 @@ function createClient(mocks) {
|
|
180
181
|
}
|
181
182
|
|
182
183
|
const client = createClient(redirectQueryMocks);
|
184
|
+
const getPrimaryRoutePath = primaryRouteForPathFetcher(client);
|
183
185
|
|
184
186
|
const selectedChannelSingleDomain = createSelectedChannel(
|
185
187
|
singleDomainChannels[0]
|
@@ -199,6 +201,7 @@ describe('Channel utils', () => {
|
|
199
201
|
const channelHandler = new ChannelHandler({
|
200
202
|
selectedChannel,
|
201
203
|
recommendedChannel,
|
204
|
+
getPrimaryRoutePath,
|
202
205
|
channels
|
203
206
|
});
|
204
207
|
const redirectUrl = channelHandler.getRedirectUrl({
|
@@ -382,6 +385,7 @@ describe('Single domain mode', () => {
|
|
382
385
|
const channelHandler = new ChannelHandler({
|
383
386
|
selectedChannel,
|
384
387
|
recommendedChannel,
|
388
|
+
getPrimaryRoutePath,
|
385
389
|
channels
|
386
390
|
});
|
387
391
|
|
@@ -411,6 +415,7 @@ describe('Single domain mode', () => {
|
|
411
415
|
const channelHandler = new ChannelHandler({
|
412
416
|
selectedChannel,
|
413
417
|
recommendedChannel,
|
418
|
+
getPrimaryRoutePath,
|
414
419
|
channels
|
415
420
|
});
|
416
421
|
|
@@ -440,6 +445,7 @@ describe('Single domain mode', () => {
|
|
440
445
|
const channelHandler = new ChannelHandler({
|
441
446
|
selectedChannel,
|
442
447
|
recommendedChannel,
|
448
|
+
getPrimaryRoutePath,
|
443
449
|
channels
|
444
450
|
});
|
445
451
|
|
@@ -489,6 +495,7 @@ describe('Single domain mode', () => {
|
|
489
495
|
const channelHandler = new ChannelHandler({
|
490
496
|
selectedChannel,
|
491
497
|
recommendedChannel,
|
498
|
+
getPrimaryRoutePath,
|
492
499
|
channels
|
493
500
|
});
|
494
501
|
const redirectUrl = channelHandler.getRedirectUrl({
|
@@ -516,6 +523,7 @@ describe('Single domain mode', () => {
|
|
516
523
|
const channelHandler = new ChannelHandler({
|
517
524
|
selectedChannel,
|
518
525
|
recommendedChannel,
|
526
|
+
getPrimaryRoutePath,
|
519
527
|
channels
|
520
528
|
});
|
521
529
|
const redirectUrl = channelHandler.getRedirectUrl({
|
@@ -32,7 +32,7 @@ export const AnalyticsContext = createContext({
|
|
32
32
|
});
|
33
33
|
export const getGoogleAnalytics = (config, selectedChannel) => {
|
34
34
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
35
|
-
// Channel overrides are used in order to support channel specific overrides for certain shop config variables. You can read more here: https://docs.dev.jetshop.se/
|
35
|
+
// Channel overrides are used in order to support channel specific overrides for certain shop config variables. You can read more here: https://docs.dev.jetshop.se/features/shop-config#other-options
|
36
36
|
const channelOverrides = config.channelOverrides
|
37
37
|
? config.channelOverrides[selectedChannel.name]
|
38
38
|
: {};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AnalyticsProvider.js","sourceRoot":"","sources":["AnalyticsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAW,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,eAAe,EAEhB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AA8BhD,SAAS,YAAY,CAAC,QAAkB;IACtC,OAAO,6BAA6B,IAAI,QAAQ,CAAC;AACnD,CAAC;AAED,MAAM,sBAAsB,GAAoB;IAC9C,IAAI,EAAE;QACJ,UAAU,EAAE,IAAI;QAChB,oBAAoB,EAAE,KAAK;QAC3B,yBAAyB,EAAE,IAAI;KAChC;IACD,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;IAC1B,QAAQ,EAAE;QACR,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,IAAI;KACV;IACD,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAC3B,aAAa,CAAC;IACZ,MAAM,EAAE,sBAAsB;IAC9B,eAAe,EAAE,IAAI;CACtB,CAAC,CAAC;AAML,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAmB,EACnB,eAAgC,EAChC,EAAE;;IACF,
|
1
|
+
{"version":3,"file":"AnalyticsProvider.js","sourceRoot":"","sources":["AnalyticsProvider.tsx"],"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,18 +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
21
|
};
|
package/boot/apollo.js
CHANGED
@@ -22,13 +22,10 @@ import { resolvers } from '../resolvers';
|
|
22
22
|
import typeDefs from './client-schema.gql';
|
23
23
|
import { logOperationTime } from './utils/queryLoggingMiddleware';
|
24
24
|
import { link as networkStatusLink } from '@jetshop/ui/Loading/NetworkStatusNotifier';
|
25
|
-
export const createClient = ({ apolloConfig: { token, shopid, enableGateway, graphQLURI, useGraphQLProxyServer }, schema, authHandler,
|
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
|