@commercetools-frontend/application-shell-connectors 27.9.0 → 27.9.1
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.
|
@@ -15,6 +15,7 @@ var react = require('react');
|
|
|
15
15
|
var moment = require('moment-timezone');
|
|
16
16
|
var sentry = require('@commercetools-frontend/sentry');
|
|
17
17
|
var _URL = require('@babel/runtime-corejs3/core-js-stable/url');
|
|
18
|
+
var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
|
|
18
19
|
var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
19
20
|
var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
20
21
|
var _Object$entries = require('@babel/runtime-corejs3/core-js-stable/object/entries');
|
|
@@ -32,7 +33,6 @@ var history = require('@commercetools-frontend/browser-history');
|
|
|
32
33
|
var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
|
|
33
34
|
var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
|
|
34
35
|
var _Object$values = require('@babel/runtime-corejs3/core-js-stable/object/values');
|
|
35
|
-
var _bindInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/bind');
|
|
36
36
|
var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
|
|
37
37
|
var createHttpUserAgent = require('@commercetools/http-user-agent');
|
|
38
38
|
var omitEmpty = require('omit-empty-es');
|
|
@@ -59,6 +59,7 @@ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$def
|
|
|
59
59
|
var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
|
|
60
60
|
var moment__default = /*#__PURE__*/_interopDefault(moment);
|
|
61
61
|
var _URL__default = /*#__PURE__*/_interopDefault(_URL);
|
|
62
|
+
var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
|
|
62
63
|
var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
|
|
63
64
|
var _Object$entries__default = /*#__PURE__*/_interopDefault(_Object$entries);
|
|
64
65
|
var _valuesInstanceProperty__default = /*#__PURE__*/_interopDefault(_valuesInstanceProperty);
|
|
@@ -70,7 +71,6 @@ var history__default = /*#__PURE__*/_interopDefault(history);
|
|
|
70
71
|
var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
|
|
71
72
|
var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
|
|
72
73
|
var _Object$values__default = /*#__PURE__*/_interopDefault(_Object$values);
|
|
73
|
-
var _bindInstanceProperty__default = /*#__PURE__*/_interopDefault(_bindInstanceProperty);
|
|
74
74
|
var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
|
|
75
75
|
var createHttpUserAgent__default = /*#__PURE__*/_interopDefault(createHttpUserAgent);
|
|
76
76
|
var omitEmpty__default = /*#__PURE__*/_interopDefault(omitEmpty);
|
|
@@ -78,7 +78,7 @@ var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construc
|
|
|
78
78
|
var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
|
|
79
79
|
|
|
80
80
|
// NOTE: This string will be replaced on build time with the package version.
|
|
81
|
-
var version = "27.9.
|
|
81
|
+
var version = "27.9.1";
|
|
82
82
|
|
|
83
83
|
// From https://github.com/acdlite/recompose/blob/master/src/packages/recompose/getDisplayName.js
|
|
84
84
|
const getDisplayName = Component => {
|
|
@@ -100,9 +100,10 @@ const getMcOriginTld = host => {
|
|
|
100
100
|
return host.replace(mcHostnameRegex, '$3');
|
|
101
101
|
};
|
|
102
102
|
const getMcApiUrlFromOrigin = origin => {
|
|
103
|
+
var _context;
|
|
103
104
|
const url = new _URL__default["default"](origin);
|
|
104
105
|
const originTld = getMcOriginTld(url.host);
|
|
105
|
-
return
|
|
106
|
+
return _concatInstanceProperty__default["default"](_context = "".concat(url.protocol, "//mc-api.")).call(_context, originTld);
|
|
106
107
|
};
|
|
107
108
|
const parseAsBoolean = value => value === true || value === 'true';
|
|
108
109
|
function getMcApiUrl() {
|
|
@@ -322,9 +323,9 @@ const createApplicationContext = (environment, user, project, projectDataLocale)
|
|
|
322
323
|
environment: mapEnvironmentToApplicationContextEnvironment(environment),
|
|
323
324
|
user: mapUserToApplicationContextUser(user),
|
|
324
325
|
project: mapProjectToApplicationContextProject(project),
|
|
325
|
-
permissions: normalizeAllAppliedPermissions(project
|
|
326
|
-
actionRights: normalizeAllAppliedActionRights(project
|
|
327
|
-
dataFences: normalizeAllAppliedDataFences(project
|
|
326
|
+
permissions: normalizeAllAppliedPermissions(project === null || project === void 0 ? void 0 : project.allAppliedPermissions),
|
|
327
|
+
actionRights: normalizeAllAppliedActionRights(project === null || project === void 0 ? void 0 : project.allAppliedActionRights),
|
|
328
|
+
dataFences: normalizeAllAppliedDataFences(project === null || project === void 0 ? void 0 : project.allAppliedDataFences),
|
|
328
329
|
dataLocale: projectDataLocale || null
|
|
329
330
|
});
|
|
330
331
|
const ApplicationContextProvider = props => jsxRuntime.jsx(Context$2.Provider, {
|
|
@@ -354,7 +355,7 @@ function withApplicationContext(mapApplicationContextToProps) {
|
|
|
354
355
|
return jsxRuntime.jsx(Component, _objectSpread$6(_objectSpread$6({}, props), mappedProps));
|
|
355
356
|
}
|
|
356
357
|
});
|
|
357
|
-
WrappedComponent.displayName =
|
|
358
|
+
WrappedComponent.displayName = "withApplicationContext(".concat(getDisplayName(Component), ")");
|
|
358
359
|
return WrappedComponent;
|
|
359
360
|
};
|
|
360
361
|
}
|
|
@@ -470,7 +471,7 @@ const ProjectExtensionProviderForImageRegex = props => {
|
|
|
470
471
|
};
|
|
471
472
|
ProjectExtensionProviderForImageRegex.displayName = 'ProjectExtensionProviderForImageRegex';
|
|
472
473
|
const GetProjectExtensionImageRegex = props => {
|
|
473
|
-
useWarning(false,
|
|
474
|
+
useWarning(false, "@commercetools-frontend/application-shell-connectors: It is not recommended to use the 'GetProjectExtensionImageRegex' anymore. Please use the 'useProjectExtensionImageRegex' hook instead.");
|
|
474
475
|
return jsxRuntime.jsx(Context.Consumer, {
|
|
475
476
|
children: imageRegexContext => props.render(imageRegexContext)
|
|
476
477
|
});
|
|
@@ -480,7 +481,7 @@ function withProjectExtensionImageRegex() {
|
|
|
480
481
|
let propKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'imageRegexData';
|
|
481
482
|
return Component => {
|
|
482
483
|
const WrappedComponent = props => {
|
|
483
|
-
useWarning(false,
|
|
484
|
+
useWarning(false, "@commercetools-frontend/application-shell-connectors: It is not recommended to use the 'withProjectExtensionImageRegex' high order component anymore. Please use the 'useProjectExtensionImageRegex' hook instead.");
|
|
484
485
|
const imageregexContext = useProjectExtensionImageRegex();
|
|
485
486
|
return jsxRuntime.jsx(GetProjectExtensionImageRegex, {
|
|
486
487
|
render: () =>
|
|
@@ -490,7 +491,7 @@ function withProjectExtensionImageRegex() {
|
|
|
490
491
|
}))
|
|
491
492
|
});
|
|
492
493
|
};
|
|
493
|
-
WrappedComponent.displayName =
|
|
494
|
+
WrappedComponent.displayName = "withProjectExtensionImageRegex(".concat(getDisplayName(Component), ")");
|
|
494
495
|
return WrappedComponent;
|
|
495
496
|
};
|
|
496
497
|
}
|
|
@@ -511,8 +512,8 @@ const forwardTokenRetryHeader = headers => _objectSpread$3(_objectSpread$3({}, h
|
|
|
511
512
|
// so that the MC BE can issue a new token.
|
|
512
513
|
// NOTE: the retry is not meant to work for the MC access token.
|
|
513
514
|
const getDoesGraphQLTargetSupportTokenRetry = context => {
|
|
514
|
-
var _context;
|
|
515
|
-
const graphQLTarget = context.headers
|
|
515
|
+
var _context$headers, _context$headers2, _context;
|
|
516
|
+
const graphQLTarget = ((_context$headers = context.headers) === null || _context$headers === void 0 ? void 0 : _context$headers[constants.SUPPORTED_HEADERS.X_GRAPHQL_TARGET]) || ((_context$headers2 = context.headers) === null || _context$headers2 === void 0 ? void 0 : _context$headers2[constants.SUPPORTED_HEADERS.X_GRAPHQL_TARGET.toLowerCase()]);
|
|
516
517
|
return Boolean(graphQLTarget && _includesInstanceProperty__default["default"](_context = [constants.GRAPHQL_TARGETS.COMMERCETOOLS_PLATFORM, constants.GRAPHQL_TARGETS.ADMINISTRATION_SERVICE, constants.GRAPHQL_TARGETS.SETTINGS_SERVICE, constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND]).call(_context, graphQLTarget));
|
|
517
518
|
};
|
|
518
519
|
const isHttpError = error => error.statusCode !== undefined || error.statusCode !== undefined;
|
|
@@ -526,7 +527,7 @@ const errorLink = error.onError(_ref => {
|
|
|
526
527
|
operation = _ref.operation,
|
|
527
528
|
forward = _ref.forward;
|
|
528
529
|
if (networkError && isHttpError(networkError) && networkError.statusCode === constants.STATUS_CODES.UNAUTHORIZED) {
|
|
529
|
-
history__default["default"].push(
|
|
530
|
+
history__default["default"].push("/logout?reason=".concat(constants.LOGOUT_REASONS.UNAUTHORIZED));
|
|
530
531
|
return;
|
|
531
532
|
}
|
|
532
533
|
|
|
@@ -538,7 +539,8 @@ const errorLink = error.onError(_ref => {
|
|
|
538
539
|
const context = operation.getContext();
|
|
539
540
|
if (graphQLErrors && isGraphQLError(graphQLErrors)) {
|
|
540
541
|
for (const err of graphQLErrors) {
|
|
541
|
-
|
|
542
|
+
var _err$extensions;
|
|
543
|
+
const isNonAuthenticatedViaExtensionCode = (err === null || err === void 0 || (_err$extensions = err.extensions) === null || _err$extensions === void 0 ? void 0 : _err$extensions.code) === 'UNAUTHENTICATED';
|
|
542
544
|
/**
|
|
543
545
|
* NOTE:
|
|
544
546
|
* Not not all GraphQL APIs expose an `extensions` field in
|
|
@@ -546,7 +548,7 @@ const errorLink = error.onError(_ref => {
|
|
|
546
548
|
* property until they introduced support for the `extensions`
|
|
547
549
|
* field.
|
|
548
550
|
*/
|
|
549
|
-
const isNonAuthenticatedViaCode = err
|
|
551
|
+
const isNonAuthenticatedViaCode = (err === null || err === void 0 ? void 0 : err.message) === 'invalid_token';
|
|
550
552
|
if ((isNonAuthenticatedViaExtensionCode || isNonAuthenticatedViaCode) && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
551
553
|
operation.setContext(_ref2 => {
|
|
552
554
|
let headers = _ref2.headers;
|
|
@@ -582,7 +584,8 @@ const errorLink = error.onError(_ref => {
|
|
|
582
584
|
|
|
583
585
|
// Attempt to load the `teamId` from sessionStorage
|
|
584
586
|
function selectTeamIdFromStorage() {
|
|
585
|
-
|
|
587
|
+
var _window$app$__DEVELOP;
|
|
588
|
+
return window.sessionStorage.getItem(constants.STORAGE_KEYS.ACTIVE_TEAM_ID) || ((_window$app$__DEVELOP = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP === void 0 || (_window$app$__DEVELOP = _window$app$__DEVELOP.oidc) === null || _window$app$__DEVELOP === void 0 ? void 0 : _window$app$__DEVELOP.teamId);
|
|
586
589
|
}
|
|
587
590
|
|
|
588
591
|
const staticUrlPathsInPositionOfProjectKey = ['login', 'logout', 'account'];
|
|
@@ -643,7 +646,7 @@ function getCorrelationId() {
|
|
|
643
646
|
|
|
644
647
|
const createApolloContextForProxyForwardTo = proxyForwardTocontext => ({
|
|
645
648
|
// Send the request to the forward-to endpoint.
|
|
646
|
-
uri:
|
|
649
|
+
uri: "".concat(getMcApiUrl(), "/proxy/forward-to"),
|
|
647
650
|
// Custom properties to be used by the "header-link".
|
|
648
651
|
forwardToConfig: proxyForwardTocontext,
|
|
649
652
|
skipGraphQlTargetCheck: true
|
|
@@ -685,7 +688,7 @@ function selectUserLanguageFromStorage() {
|
|
|
685
688
|
const getSessionToken = () => window.sessionStorage.getItem(constants.STORAGE_KEYS.SESSION_TOKEN);
|
|
686
689
|
const setActiveSession = sessionToken => {
|
|
687
690
|
if (!sessionToken) return;
|
|
688
|
-
window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_TOKEN, sessionToken
|
|
691
|
+
window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_TOKEN, sessionToken !== null && sessionToken !== void 0 ? sessionToken : '');
|
|
689
692
|
window.localStorage.setItem(constants.STORAGE_KEYS.LOGIN_STRATEGY, constants.LOGIN_STRATEGY_OIDC);
|
|
690
693
|
// Remove flag for original workflow
|
|
691
694
|
window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
|
|
@@ -707,7 +710,8 @@ const setSessionScope = scope => {
|
|
|
707
710
|
window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_SCOPE, scope);
|
|
708
711
|
};
|
|
709
712
|
const getSessionState = stateId => {
|
|
710
|
-
|
|
713
|
+
var _context;
|
|
714
|
+
const sessionStateKey = _concatInstanceProperty__default["default"](_context = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context, stateId);
|
|
711
715
|
const unparsedSessionState = window.sessionStorage.getItem(sessionStateKey);
|
|
712
716
|
if (unparsedSessionState) {
|
|
713
717
|
try {
|
|
@@ -715,19 +719,22 @@ const getSessionState = stateId => {
|
|
|
715
719
|
return parsedSessionState;
|
|
716
720
|
} catch (error) {
|
|
717
721
|
if (process.env.NODE_ENV !== 'production') {
|
|
722
|
+
var _context2;
|
|
718
723
|
// eslint-disable-next-line no-console
|
|
719
|
-
console.warn(
|
|
724
|
+
console.warn(_concatInstanceProperty__default["default"](_context2 = "Cannot parse session state for \"".concat(sessionStateKey, "\".\n")).call(_context2, unparsedSessionState));
|
|
720
725
|
}
|
|
721
726
|
}
|
|
722
727
|
}
|
|
723
728
|
return null;
|
|
724
729
|
};
|
|
725
730
|
const setSessionState = (stateId, state) => {
|
|
726
|
-
|
|
731
|
+
var _context3;
|
|
732
|
+
const sessionStateKey = _concatInstanceProperty__default["default"](_context3 = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context3, stateId);
|
|
727
733
|
window.sessionStorage.setItem(sessionStateKey, _JSON$stringify__default["default"](state));
|
|
728
734
|
};
|
|
729
735
|
const removeSessionState = stateId => {
|
|
730
|
-
|
|
736
|
+
var _context4;
|
|
737
|
+
const sessionStateKey = _concatInstanceProperty__default["default"](_context4 = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context4, stateId);
|
|
731
738
|
window.sessionStorage.removeItem(sessionStateKey);
|
|
732
739
|
};
|
|
733
740
|
|
|
@@ -749,13 +756,14 @@ var oidcStorage = /*#__PURE__*/Object.freeze({
|
|
|
749
756
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? _Reflect$construct__default["default"](o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
750
757
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function () { return !!t; })(); }
|
|
751
758
|
function ownKeys$2(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
752
|
-
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
759
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var _context3, _context4; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context3 = ownKeys$2(Object(t), !0)).call(_context3, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context4 = ownKeys$2(Object(t))).call(_context4, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
753
760
|
let _userAgent$1;
|
|
754
761
|
const getUserAgent$1 = () => {
|
|
755
762
|
if (!_userAgent$1) {
|
|
763
|
+
var _window$app$applicati, _window$app;
|
|
756
764
|
_userAgent$1 = createHttpUserAgent__default["default"]({
|
|
757
765
|
name: 'unknown-http-client',
|
|
758
|
-
libraryName: typeof window !== 'undefined' ? window.app
|
|
766
|
+
libraryName: typeof window !== 'undefined' ? (_window$app$applicati = (_window$app = window.app) === null || _window$app === void 0 ? void 0 : _window$app.applicationName) !== null && _window$app$applicati !== void 0 ? _window$app$applicati : 'unknown-application-name' : undefined
|
|
759
767
|
});
|
|
760
768
|
}
|
|
761
769
|
return _userAgent$1;
|
|
@@ -763,48 +771,50 @@ const getUserAgent$1 = () => {
|
|
|
763
771
|
const defaultForwardToVersion = 'v2';
|
|
764
772
|
const defaultForwardToAudiencePolicy = 'forward-url-full-path';
|
|
765
773
|
function buildApiUrl(endpoint) {
|
|
774
|
+
var _context;
|
|
766
775
|
const apiUrl = getMcApiUrl().replace(/\/$/, '');
|
|
767
|
-
return
|
|
776
|
+
return _concatInstanceProperty__default["default"](_context = "".concat(apiUrl)).call(_context, endpoint);
|
|
768
777
|
}
|
|
769
778
|
const getAppliedForwardToHeaders = forwardToConfig => {
|
|
770
|
-
var
|
|
779
|
+
var _context2, _forwardToConfig$head, _forwardToConfig$vers, _forwardToConfig$audi;
|
|
771
780
|
if (!forwardToConfig) {
|
|
772
781
|
return {};
|
|
773
782
|
}
|
|
774
783
|
if (!forwardToConfig.uri) {
|
|
775
|
-
throw new Error(
|
|
784
|
+
throw new Error("Missing required \"uri\" option.");
|
|
776
785
|
}
|
|
777
786
|
const exchangeTokenClaims = [];
|
|
778
787
|
if (forwardToConfig.includeUserPermissions) {
|
|
779
788
|
exchangeTokenClaims.push('permissions');
|
|
780
789
|
}
|
|
781
|
-
return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty__default["default"](
|
|
790
|
+
return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty__default["default"](_context2 = _Object$entries__default["default"]((_forwardToConfig$head = forwardToConfig.headers) !== null && _forwardToConfig$head !== void 0 ? _forwardToConfig$head : {})).call(_context2, (customForwardHeaders, _ref) => {
|
|
782
791
|
let _ref2 = _slicedToArray(_ref, 2),
|
|
783
792
|
headerName = _ref2[0],
|
|
784
793
|
headerValue = _ref2[1];
|
|
785
794
|
return _objectSpread$2(_objectSpread$2({}, customForwardHeaders), {}, {
|
|
786
795
|
// Prefix headers so that the MC API can allow and forward them.
|
|
787
|
-
[
|
|
796
|
+
["x-forward-header-".concat(headerName)]: headerValue
|
|
788
797
|
});
|
|
789
798
|
}, {})), {}, {
|
|
790
|
-
[constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: forwardToConfig.version
|
|
799
|
+
[constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: (_forwardToConfig$vers = forwardToConfig.version) !== null && _forwardToConfig$vers !== void 0 ? _forwardToConfig$vers : defaultForwardToVersion,
|
|
791
800
|
[constants.SUPPORTED_HEADERS.X_FORWARD_TO]: forwardToConfig.uri,
|
|
792
|
-
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: forwardToConfig.audiencePolicy
|
|
801
|
+
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: (_forwardToConfig$audi = forwardToConfig.audiencePolicy) !== null && _forwardToConfig$audi !== void 0 ? _forwardToConfig$audi : defaultForwardToAudiencePolicy,
|
|
793
802
|
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_CLAIMS]: exchangeTokenClaims.join(' ')
|
|
794
803
|
});
|
|
795
804
|
};
|
|
796
805
|
function createHttpClientOptions() {
|
|
806
|
+
var _config$projectKey, _window$app$__DEVELOP;
|
|
797
807
|
let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
798
808
|
const sessionToken = getSessionToken();
|
|
799
|
-
const projectKey = config.projectKey
|
|
809
|
+
const projectKey = (_config$projectKey = config.projectKey) !== null && _config$projectKey !== void 0 ? _config$projectKey : selectProjectKeyFromUrl();
|
|
800
810
|
const userId = selectUserId();
|
|
801
|
-
const userAgent = config
|
|
811
|
+
const userAgent = (config === null || config === void 0 ? void 0 : config.userAgent) || getUserAgent$1();
|
|
802
812
|
return {
|
|
803
813
|
credentials: 'include',
|
|
804
814
|
headers: omitEmpty__default["default"](_objectSpread$2(_objectSpread$2({}, config.headers), {}, {
|
|
805
815
|
// Required headers
|
|
806
816
|
[constants.SUPPORTED_HEADERS.ACCEPT]: 'application/json',
|
|
807
|
-
[constants.SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ?
|
|
817
|
+
[constants.SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ? "Bearer ".concat(sessionToken) : undefined,
|
|
808
818
|
[constants.SUPPORTED_HEADERS.X_APPLICATION_ID]: window.app.applicationIdentifier,
|
|
809
819
|
[constants.SUPPORTED_HEADERS.X_CUSTOM_VIEW_ID]: window.app.customViewId,
|
|
810
820
|
[constants.SUPPORTED_HEADERS.X_CORRELATION_ID]: getCorrelationId({
|
|
@@ -813,7 +823,7 @@ function createHttpClientOptions() {
|
|
|
813
823
|
[constants.SUPPORTED_HEADERS.X_PROJECT_KEY]: projectKey,
|
|
814
824
|
[constants.SUPPORTED_HEADERS.X_USER_AGENT]: userAgent,
|
|
815
825
|
// MC Identity Login Mode Override header for development
|
|
816
|
-
[constants.SUPPORTED_HEADERS.X_MC_IDENTITY_LOGIN_MODE_OVERRIDE]: window.app.__DEVELOPMENT__
|
|
826
|
+
[constants.SUPPORTED_HEADERS.X_MC_IDENTITY_LOGIN_MODE_OVERRIDE]: (_window$app$__DEVELOP = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP === void 0 ? void 0 : _window$app$__DEVELOP.mcIdentityLoginModeOverride
|
|
817
827
|
}, getAppliedForwardToHeaders(config.forwardToConfig)))
|
|
818
828
|
};
|
|
819
829
|
}
|
|
@@ -844,7 +854,7 @@ async function executeHttpClientRequest(fetcher) {
|
|
|
844
854
|
}))
|
|
845
855
|
}));
|
|
846
856
|
if (response.statusCode === constants.STATUS_CODES.UNAUTHORIZED) {
|
|
847
|
-
throw new RenewTokenError(
|
|
857
|
+
throw new RenewTokenError("Unauthorized response, attempting retry.");
|
|
848
858
|
}
|
|
849
859
|
|
|
850
860
|
// In case a new session token is returned from the server, save it.
|
|
@@ -868,15 +878,15 @@ async function executeHttpClientRequest(fetcher) {
|
|
|
868
878
|
}
|
|
869
879
|
|
|
870
880
|
function ownKeys$1(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
871
|
-
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
881
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var _context5, _context6; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context5 = ownKeys$1(Object(t), !0)).call(_context5, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context6 = ownKeys$1(Object(t))).call(_context6, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
872
882
|
let _userAgent;
|
|
873
883
|
const getUserAgent = () => {
|
|
874
884
|
if (!_userAgent) {
|
|
875
|
-
var _context;
|
|
885
|
+
var _context, _window$app$applicati, _window$app;
|
|
876
886
|
_userAgent = createHttpUserAgent__default["default"]({
|
|
877
887
|
name: 'apollo-client',
|
|
878
888
|
// version: apolloVersion,
|
|
879
|
-
libraryName: _filterInstanceProperty__default["default"](_context = [typeof window !== 'undefined' ? window.app
|
|
889
|
+
libraryName: _filterInstanceProperty__default["default"](_context = [typeof window !== 'undefined' ? (_window$app$applicati = (_window$app = window.app) === null || _window$app === void 0 ? void 0 : _window$app.applicationName) !== null && _window$app$applicati !== void 0 ? _window$app$applicati : 'unknown-application-name' : undefined, 'application-shell']).call(_context, Boolean).join('/'),
|
|
880
890
|
libraryVersion: version,
|
|
881
891
|
contactUrl: 'https://git.io/fjuyC',
|
|
882
892
|
// points to the appkit repo issues
|
|
@@ -890,14 +900,18 @@ const isKnownGraphQlTarget = target => {
|
|
|
890
900
|
return target ? _includesInstanceProperty__default["default"](_context2 = _Object$values__default["default"](constants.GRAPHQL_TARGETS)).call(_context2, target) : false;
|
|
891
901
|
};
|
|
892
902
|
const extractSessionTokenFromResponse = context => {
|
|
893
|
-
var
|
|
894
|
-
const refreshedSessionToken = context.response
|
|
903
|
+
var _context$response, _context$restResponse;
|
|
904
|
+
const refreshedSessionToken = (_context$response = context.response) === null || _context$response === void 0 || (_context$response = _context$response.headers) === null || _context$response === void 0 ? void 0 : _context$response.get('x-refreshed-session-token');
|
|
895
905
|
if (refreshedSessionToken) {
|
|
896
|
-
return refreshedSessionToken
|
|
906
|
+
return refreshedSessionToken !== null && refreshedSessionToken !== void 0 ? refreshedSessionToken : null;
|
|
897
907
|
}
|
|
898
|
-
const restResponseWithRefreshTokenHeader = (
|
|
908
|
+
const restResponseWithRefreshTokenHeader = (_context$restResponse = context.restResponses) === null || _context$restResponse === void 0 ? void 0 : _findInstanceProperty__default["default"](_context$restResponse).call(_context$restResponse, response => {
|
|
909
|
+
var _response$headers;
|
|
910
|
+
return (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.has('x-refreshed-session-token');
|
|
911
|
+
});
|
|
899
912
|
if (restResponseWithRefreshTokenHeader) {
|
|
900
|
-
|
|
913
|
+
var _restResponseWithRefr;
|
|
914
|
+
return (_restResponseWithRefr = restResponseWithRefreshTokenHeader.headers.get('x-refreshed-session-token')) !== null && _restResponseWithRefr !== void 0 ? _restResponseWithRefr : null;
|
|
901
915
|
}
|
|
902
916
|
return null;
|
|
903
917
|
};
|
|
@@ -905,11 +919,11 @@ const extractSessionTokenFromResponse = context => {
|
|
|
905
919
|
/* eslint-disable import/prefer-default-export */
|
|
906
920
|
// Use a middleware to update the request headers with the correct params.
|
|
907
921
|
const headerLink = new client.ApolloLink((operation, forward) => {
|
|
908
|
-
var
|
|
922
|
+
var _context3, _context4;
|
|
909
923
|
const apolloContext = operation.getContext();
|
|
910
924
|
const variables = operation.variables;
|
|
911
925
|
const graphQlTarget = apolloContext.target || variables.target;
|
|
912
|
-
if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(
|
|
926
|
+
if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(_concatInstanceProperty__default["default"](_context3 = "GraphQL target \"".concat(graphQlTarget, "\" is missing (or is not supported) in operation \"")).call(_context3, operation.operationName, "\""));
|
|
913
927
|
|
|
914
928
|
/**
|
|
915
929
|
* NOTE:
|
|
@@ -936,7 +950,7 @@ const headerLink = new client.ApolloLink((operation, forward) => {
|
|
|
936
950
|
forwardToConfig: apolloContext.forwardToConfig,
|
|
937
951
|
projectKey
|
|
938
952
|
}));
|
|
939
|
-
return _mapInstanceProperty__default["default"](
|
|
953
|
+
return _mapInstanceProperty__default["default"](_context4 = forward(operation)).call(_context4, response => {
|
|
940
954
|
const context = operation.getContext();
|
|
941
955
|
const refreshedSessionToken = extractSessionTokenFromResponse(context);
|
|
942
956
|
if (refreshedSessionToken) {
|
|
@@ -949,7 +963,7 @@ const headerLink = new client.ApolloLink((operation, forward) => {
|
|
|
949
963
|
const tokenRetryLink = new retry.RetryLink({
|
|
950
964
|
attempts: (count, operation, error) => {
|
|
951
965
|
const context = operation.getContext();
|
|
952
|
-
if (error
|
|
966
|
+
if ((error === null || error === void 0 ? void 0 : error.statusCode) === constants.STATUS_CODES.UNAUTHORIZED && count === 1 && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
953
967
|
operation.setContext(_ref => {
|
|
954
968
|
let headers = _ref.headers;
|
|
955
969
|
return {
|
|
@@ -967,7 +981,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _co
|
|
|
967
981
|
const createApolloLink = function () {
|
|
968
982
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
969
983
|
const httpLink = client.createHttpLink({
|
|
970
|
-
uri:
|
|
984
|
+
uri: "".concat(getMcApiUrl(), "/graphql"),
|
|
971
985
|
fetch
|
|
972
986
|
});
|
|
973
987
|
|
|
@@ -1011,8 +1025,9 @@ const mergeArraysObjects = function () {
|
|
|
1011
1025
|
}, []);
|
|
1012
1026
|
};
|
|
1013
1027
|
const createApolloClient = function () {
|
|
1028
|
+
var _options$cache, _customCacheConfig$ty;
|
|
1014
1029
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1015
|
-
const customCacheConfig = options
|
|
1030
|
+
const customCacheConfig = (_options$cache = options === null || options === void 0 ? void 0 : options.cache) !== null && _options$cache !== void 0 ? _options$cache : {};
|
|
1016
1031
|
return new client.ApolloClient({
|
|
1017
1032
|
link: createApolloLink(options),
|
|
1018
1033
|
// https://www.apollographql.com/docs/react/caching/cache-configuration/
|
|
@@ -1051,7 +1066,7 @@ const createApolloClient = function () {
|
|
|
1051
1066
|
}
|
|
1052
1067
|
}
|
|
1053
1068
|
}
|
|
1054
|
-
}, customCacheConfig.typePolicies
|
|
1069
|
+
}, (_customCacheConfig$ty = customCacheConfig.typePolicies) !== null && _customCacheConfig$ty !== void 0 ? _customCacheConfig$ty : {})
|
|
1055
1070
|
}))
|
|
1056
1071
|
});
|
|
1057
1072
|
};
|
|
@@ -15,6 +15,7 @@ var react = require('react');
|
|
|
15
15
|
var moment = require('moment-timezone');
|
|
16
16
|
var sentry = require('@commercetools-frontend/sentry');
|
|
17
17
|
var _URL = require('@babel/runtime-corejs3/core-js-stable/url');
|
|
18
|
+
var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
|
|
18
19
|
var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
19
20
|
var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
20
21
|
var _Object$entries = require('@babel/runtime-corejs3/core-js-stable/object/entries');
|
|
@@ -32,7 +33,6 @@ var history = require('@commercetools-frontend/browser-history');
|
|
|
32
33
|
var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
|
|
33
34
|
var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
|
|
34
35
|
var _Object$values = require('@babel/runtime-corejs3/core-js-stable/object/values');
|
|
35
|
-
var _bindInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/bind');
|
|
36
36
|
var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
|
|
37
37
|
var createHttpUserAgent = require('@commercetools/http-user-agent');
|
|
38
38
|
var omitEmpty = require('omit-empty-es');
|
|
@@ -59,6 +59,7 @@ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$def
|
|
|
59
59
|
var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
|
|
60
60
|
var moment__default = /*#__PURE__*/_interopDefault(moment);
|
|
61
61
|
var _URL__default = /*#__PURE__*/_interopDefault(_URL);
|
|
62
|
+
var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
|
|
62
63
|
var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
|
|
63
64
|
var _Object$entries__default = /*#__PURE__*/_interopDefault(_Object$entries);
|
|
64
65
|
var _valuesInstanceProperty__default = /*#__PURE__*/_interopDefault(_valuesInstanceProperty);
|
|
@@ -69,7 +70,6 @@ var history__default = /*#__PURE__*/_interopDefault(history);
|
|
|
69
70
|
var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
|
|
70
71
|
var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
|
|
71
72
|
var _Object$values__default = /*#__PURE__*/_interopDefault(_Object$values);
|
|
72
|
-
var _bindInstanceProperty__default = /*#__PURE__*/_interopDefault(_bindInstanceProperty);
|
|
73
73
|
var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
|
|
74
74
|
var createHttpUserAgent__default = /*#__PURE__*/_interopDefault(createHttpUserAgent);
|
|
75
75
|
var omitEmpty__default = /*#__PURE__*/_interopDefault(omitEmpty);
|
|
@@ -77,7 +77,7 @@ var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construc
|
|
|
77
77
|
var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
|
|
78
78
|
|
|
79
79
|
// NOTE: This string will be replaced on build time with the package version.
|
|
80
|
-
var version = "27.9.
|
|
80
|
+
var version = "27.9.1";
|
|
81
81
|
|
|
82
82
|
// From https://github.com/acdlite/recompose/blob/master/src/packages/recompose/getDisplayName.js
|
|
83
83
|
const getDisplayName = Component => {
|
|
@@ -99,9 +99,10 @@ const getMcOriginTld = host => {
|
|
|
99
99
|
return host.replace(mcHostnameRegex, '$3');
|
|
100
100
|
};
|
|
101
101
|
const getMcApiUrlFromOrigin = origin => {
|
|
102
|
+
var _context;
|
|
102
103
|
const url = new _URL__default["default"](origin);
|
|
103
104
|
const originTld = getMcOriginTld(url.host);
|
|
104
|
-
return
|
|
105
|
+
return _concatInstanceProperty__default["default"](_context = "".concat(url.protocol, "//mc-api.")).call(_context, originTld);
|
|
105
106
|
};
|
|
106
107
|
const parseAsBoolean = value => value === true || value === 'true';
|
|
107
108
|
function getMcApiUrl() {
|
|
@@ -321,9 +322,9 @@ const createApplicationContext = (environment, user, project, projectDataLocale)
|
|
|
321
322
|
environment: mapEnvironmentToApplicationContextEnvironment(environment),
|
|
322
323
|
user: mapUserToApplicationContextUser(user),
|
|
323
324
|
project: mapProjectToApplicationContextProject(project),
|
|
324
|
-
permissions: normalizeAllAppliedPermissions(project
|
|
325
|
-
actionRights: normalizeAllAppliedActionRights(project
|
|
326
|
-
dataFences: normalizeAllAppliedDataFences(project
|
|
325
|
+
permissions: normalizeAllAppliedPermissions(project === null || project === void 0 ? void 0 : project.allAppliedPermissions),
|
|
326
|
+
actionRights: normalizeAllAppliedActionRights(project === null || project === void 0 ? void 0 : project.allAppliedActionRights),
|
|
327
|
+
dataFences: normalizeAllAppliedDataFences(project === null || project === void 0 ? void 0 : project.allAppliedDataFences),
|
|
327
328
|
dataLocale: projectDataLocale || null
|
|
328
329
|
});
|
|
329
330
|
const ApplicationContextProvider = props => jsxRuntime.jsx(Context$2.Provider, {
|
|
@@ -353,7 +354,7 @@ function withApplicationContext(mapApplicationContextToProps) {
|
|
|
353
354
|
return jsxRuntime.jsx(Component, _objectSpread$6(_objectSpread$6({}, props), mappedProps));
|
|
354
355
|
}
|
|
355
356
|
});
|
|
356
|
-
WrappedComponent.displayName =
|
|
357
|
+
WrappedComponent.displayName = "withApplicationContext(".concat(getDisplayName(Component), ")");
|
|
357
358
|
return WrappedComponent;
|
|
358
359
|
};
|
|
359
360
|
}
|
|
@@ -488,7 +489,7 @@ function withProjectExtensionImageRegex() {
|
|
|
488
489
|
}))
|
|
489
490
|
});
|
|
490
491
|
};
|
|
491
|
-
WrappedComponent.displayName =
|
|
492
|
+
WrappedComponent.displayName = "withProjectExtensionImageRegex(".concat(getDisplayName(Component), ")");
|
|
492
493
|
return WrappedComponent;
|
|
493
494
|
};
|
|
494
495
|
}
|
|
@@ -509,8 +510,8 @@ const forwardTokenRetryHeader = headers => _objectSpread$3(_objectSpread$3({}, h
|
|
|
509
510
|
// so that the MC BE can issue a new token.
|
|
510
511
|
// NOTE: the retry is not meant to work for the MC access token.
|
|
511
512
|
const getDoesGraphQLTargetSupportTokenRetry = context => {
|
|
512
|
-
var _context;
|
|
513
|
-
const graphQLTarget = context.headers
|
|
513
|
+
var _context$headers, _context$headers2, _context;
|
|
514
|
+
const graphQLTarget = ((_context$headers = context.headers) === null || _context$headers === void 0 ? void 0 : _context$headers[constants.SUPPORTED_HEADERS.X_GRAPHQL_TARGET]) || ((_context$headers2 = context.headers) === null || _context$headers2 === void 0 ? void 0 : _context$headers2[constants.SUPPORTED_HEADERS.X_GRAPHQL_TARGET.toLowerCase()]);
|
|
514
515
|
return Boolean(graphQLTarget && _includesInstanceProperty__default["default"](_context = [constants.GRAPHQL_TARGETS.COMMERCETOOLS_PLATFORM, constants.GRAPHQL_TARGETS.ADMINISTRATION_SERVICE, constants.GRAPHQL_TARGETS.SETTINGS_SERVICE, constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND]).call(_context, graphQLTarget));
|
|
515
516
|
};
|
|
516
517
|
const isHttpError = error => error.statusCode !== undefined || error.statusCode !== undefined;
|
|
@@ -524,7 +525,7 @@ const errorLink = error.onError(_ref => {
|
|
|
524
525
|
operation = _ref.operation,
|
|
525
526
|
forward = _ref.forward;
|
|
526
527
|
if (networkError && isHttpError(networkError) && networkError.statusCode === constants.STATUS_CODES.UNAUTHORIZED) {
|
|
527
|
-
history__default["default"].push(
|
|
528
|
+
history__default["default"].push("/logout?reason=".concat(constants.LOGOUT_REASONS.UNAUTHORIZED));
|
|
528
529
|
return;
|
|
529
530
|
}
|
|
530
531
|
|
|
@@ -536,7 +537,8 @@ const errorLink = error.onError(_ref => {
|
|
|
536
537
|
const context = operation.getContext();
|
|
537
538
|
if (graphQLErrors && isGraphQLError(graphQLErrors)) {
|
|
538
539
|
for (const err of graphQLErrors) {
|
|
539
|
-
|
|
540
|
+
var _err$extensions;
|
|
541
|
+
const isNonAuthenticatedViaExtensionCode = (err === null || err === void 0 || (_err$extensions = err.extensions) === null || _err$extensions === void 0 ? void 0 : _err$extensions.code) === 'UNAUTHENTICATED';
|
|
540
542
|
/**
|
|
541
543
|
* NOTE:
|
|
542
544
|
* Not not all GraphQL APIs expose an `extensions` field in
|
|
@@ -544,7 +546,7 @@ const errorLink = error.onError(_ref => {
|
|
|
544
546
|
* property until they introduced support for the `extensions`
|
|
545
547
|
* field.
|
|
546
548
|
*/
|
|
547
|
-
const isNonAuthenticatedViaCode = err
|
|
549
|
+
const isNonAuthenticatedViaCode = (err === null || err === void 0 ? void 0 : err.message) === 'invalid_token';
|
|
548
550
|
if ((isNonAuthenticatedViaExtensionCode || isNonAuthenticatedViaCode) && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
549
551
|
operation.setContext(_ref2 => {
|
|
550
552
|
let headers = _ref2.headers;
|
|
@@ -580,7 +582,8 @@ const errorLink = error.onError(_ref => {
|
|
|
580
582
|
|
|
581
583
|
// Attempt to load the `teamId` from sessionStorage
|
|
582
584
|
function selectTeamIdFromStorage() {
|
|
583
|
-
|
|
585
|
+
var _window$app$__DEVELOP;
|
|
586
|
+
return window.sessionStorage.getItem(constants.STORAGE_KEYS.ACTIVE_TEAM_ID) || ((_window$app$__DEVELOP = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP === void 0 || (_window$app$__DEVELOP = _window$app$__DEVELOP.oidc) === null || _window$app$__DEVELOP === void 0 ? void 0 : _window$app$__DEVELOP.teamId);
|
|
584
587
|
}
|
|
585
588
|
|
|
586
589
|
const staticUrlPathsInPositionOfProjectKey = ['login', 'logout', 'account'];
|
|
@@ -641,7 +644,7 @@ function getCorrelationId() {
|
|
|
641
644
|
|
|
642
645
|
const createApolloContextForProxyForwardTo = proxyForwardTocontext => ({
|
|
643
646
|
// Send the request to the forward-to endpoint.
|
|
644
|
-
uri:
|
|
647
|
+
uri: "".concat(getMcApiUrl(), "/proxy/forward-to"),
|
|
645
648
|
// Custom properties to be used by the "header-link".
|
|
646
649
|
forwardToConfig: proxyForwardTocontext,
|
|
647
650
|
skipGraphQlTargetCheck: true
|
|
@@ -682,7 +685,7 @@ function selectUserLanguageFromStorage() {
|
|
|
682
685
|
const getSessionToken = () => window.sessionStorage.getItem(constants.STORAGE_KEYS.SESSION_TOKEN);
|
|
683
686
|
const setActiveSession = sessionToken => {
|
|
684
687
|
if (!sessionToken) return;
|
|
685
|
-
window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_TOKEN, sessionToken
|
|
688
|
+
window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_TOKEN, sessionToken !== null && sessionToken !== void 0 ? sessionToken : '');
|
|
686
689
|
window.localStorage.setItem(constants.STORAGE_KEYS.LOGIN_STRATEGY, constants.LOGIN_STRATEGY_OIDC);
|
|
687
690
|
// Remove flag for original workflow
|
|
688
691
|
window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
|
|
@@ -704,7 +707,8 @@ const setSessionScope = scope => {
|
|
|
704
707
|
window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_SCOPE, scope);
|
|
705
708
|
};
|
|
706
709
|
const getSessionState = stateId => {
|
|
707
|
-
|
|
710
|
+
var _context;
|
|
711
|
+
const sessionStateKey = _concatInstanceProperty__default["default"](_context = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context, stateId);
|
|
708
712
|
const unparsedSessionState = window.sessionStorage.getItem(sessionStateKey);
|
|
709
713
|
if (unparsedSessionState) {
|
|
710
714
|
try {
|
|
@@ -716,11 +720,13 @@ const getSessionState = stateId => {
|
|
|
716
720
|
return null;
|
|
717
721
|
};
|
|
718
722
|
const setSessionState = (stateId, state) => {
|
|
719
|
-
|
|
723
|
+
var _context3;
|
|
724
|
+
const sessionStateKey = _concatInstanceProperty__default["default"](_context3 = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context3, stateId);
|
|
720
725
|
window.sessionStorage.setItem(sessionStateKey, _JSON$stringify__default["default"](state));
|
|
721
726
|
};
|
|
722
727
|
const removeSessionState = stateId => {
|
|
723
|
-
|
|
728
|
+
var _context4;
|
|
729
|
+
const sessionStateKey = _concatInstanceProperty__default["default"](_context4 = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context4, stateId);
|
|
724
730
|
window.sessionStorage.removeItem(sessionStateKey);
|
|
725
731
|
};
|
|
726
732
|
|
|
@@ -742,13 +748,14 @@ var oidcStorage = /*#__PURE__*/Object.freeze({
|
|
|
742
748
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? _Reflect$construct__default["default"](o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
743
749
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function () { return !!t; })(); }
|
|
744
750
|
function ownKeys$2(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
745
|
-
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
751
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var _context3, _context4; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context3 = ownKeys$2(Object(t), !0)).call(_context3, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context4 = ownKeys$2(Object(t))).call(_context4, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
746
752
|
let _userAgent$1;
|
|
747
753
|
const getUserAgent$1 = () => {
|
|
748
754
|
if (!_userAgent$1) {
|
|
755
|
+
var _window$app$applicati, _window$app;
|
|
749
756
|
_userAgent$1 = createHttpUserAgent__default["default"]({
|
|
750
757
|
name: 'unknown-http-client',
|
|
751
|
-
libraryName: typeof window !== 'undefined' ? window.app
|
|
758
|
+
libraryName: typeof window !== 'undefined' ? (_window$app$applicati = (_window$app = window.app) === null || _window$app === void 0 ? void 0 : _window$app.applicationName) !== null && _window$app$applicati !== void 0 ? _window$app$applicati : 'unknown-application-name' : undefined
|
|
752
759
|
});
|
|
753
760
|
}
|
|
754
761
|
return _userAgent$1;
|
|
@@ -756,48 +763,50 @@ const getUserAgent$1 = () => {
|
|
|
756
763
|
const defaultForwardToVersion = 'v2';
|
|
757
764
|
const defaultForwardToAudiencePolicy = 'forward-url-full-path';
|
|
758
765
|
function buildApiUrl(endpoint) {
|
|
766
|
+
var _context;
|
|
759
767
|
const apiUrl = getMcApiUrl().replace(/\/$/, '');
|
|
760
|
-
return
|
|
768
|
+
return _concatInstanceProperty__default["default"](_context = "".concat(apiUrl)).call(_context, endpoint);
|
|
761
769
|
}
|
|
762
770
|
const getAppliedForwardToHeaders = forwardToConfig => {
|
|
763
|
-
var
|
|
771
|
+
var _context2, _forwardToConfig$head, _forwardToConfig$vers, _forwardToConfig$audi;
|
|
764
772
|
if (!forwardToConfig) {
|
|
765
773
|
return {};
|
|
766
774
|
}
|
|
767
775
|
if (!forwardToConfig.uri) {
|
|
768
|
-
throw new Error(
|
|
776
|
+
throw new Error("Missing required \"uri\" option.");
|
|
769
777
|
}
|
|
770
778
|
const exchangeTokenClaims = [];
|
|
771
779
|
if (forwardToConfig.includeUserPermissions) {
|
|
772
780
|
exchangeTokenClaims.push('permissions');
|
|
773
781
|
}
|
|
774
|
-
return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty__default["default"](
|
|
782
|
+
return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty__default["default"](_context2 = _Object$entries__default["default"]((_forwardToConfig$head = forwardToConfig.headers) !== null && _forwardToConfig$head !== void 0 ? _forwardToConfig$head : {})).call(_context2, (customForwardHeaders, _ref) => {
|
|
775
783
|
let _ref2 = _slicedToArray(_ref, 2),
|
|
776
784
|
headerName = _ref2[0],
|
|
777
785
|
headerValue = _ref2[1];
|
|
778
786
|
return _objectSpread$2(_objectSpread$2({}, customForwardHeaders), {}, {
|
|
779
787
|
// Prefix headers so that the MC API can allow and forward them.
|
|
780
|
-
[
|
|
788
|
+
["x-forward-header-".concat(headerName)]: headerValue
|
|
781
789
|
});
|
|
782
790
|
}, {})), {}, {
|
|
783
|
-
[constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: forwardToConfig.version
|
|
791
|
+
[constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: (_forwardToConfig$vers = forwardToConfig.version) !== null && _forwardToConfig$vers !== void 0 ? _forwardToConfig$vers : defaultForwardToVersion,
|
|
784
792
|
[constants.SUPPORTED_HEADERS.X_FORWARD_TO]: forwardToConfig.uri,
|
|
785
|
-
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: forwardToConfig.audiencePolicy
|
|
793
|
+
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: (_forwardToConfig$audi = forwardToConfig.audiencePolicy) !== null && _forwardToConfig$audi !== void 0 ? _forwardToConfig$audi : defaultForwardToAudiencePolicy,
|
|
786
794
|
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_CLAIMS]: exchangeTokenClaims.join(' ')
|
|
787
795
|
});
|
|
788
796
|
};
|
|
789
797
|
function createHttpClientOptions() {
|
|
798
|
+
var _config$projectKey, _window$app$__DEVELOP;
|
|
790
799
|
let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
791
800
|
const sessionToken = getSessionToken();
|
|
792
|
-
const projectKey = config.projectKey
|
|
801
|
+
const projectKey = (_config$projectKey = config.projectKey) !== null && _config$projectKey !== void 0 ? _config$projectKey : selectProjectKeyFromUrl();
|
|
793
802
|
const userId = selectUserId();
|
|
794
|
-
const userAgent = config
|
|
803
|
+
const userAgent = (config === null || config === void 0 ? void 0 : config.userAgent) || getUserAgent$1();
|
|
795
804
|
return {
|
|
796
805
|
credentials: 'include',
|
|
797
806
|
headers: omitEmpty__default["default"](_objectSpread$2(_objectSpread$2({}, config.headers), {}, {
|
|
798
807
|
// Required headers
|
|
799
808
|
[constants.SUPPORTED_HEADERS.ACCEPT]: 'application/json',
|
|
800
|
-
[constants.SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ?
|
|
809
|
+
[constants.SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ? "Bearer ".concat(sessionToken) : undefined,
|
|
801
810
|
[constants.SUPPORTED_HEADERS.X_APPLICATION_ID]: window.app.applicationIdentifier,
|
|
802
811
|
[constants.SUPPORTED_HEADERS.X_CUSTOM_VIEW_ID]: window.app.customViewId,
|
|
803
812
|
[constants.SUPPORTED_HEADERS.X_CORRELATION_ID]: getCorrelationId({
|
|
@@ -806,7 +815,7 @@ function createHttpClientOptions() {
|
|
|
806
815
|
[constants.SUPPORTED_HEADERS.X_PROJECT_KEY]: projectKey,
|
|
807
816
|
[constants.SUPPORTED_HEADERS.X_USER_AGENT]: userAgent,
|
|
808
817
|
// MC Identity Login Mode Override header for development
|
|
809
|
-
[constants.SUPPORTED_HEADERS.X_MC_IDENTITY_LOGIN_MODE_OVERRIDE]: window.app.__DEVELOPMENT__
|
|
818
|
+
[constants.SUPPORTED_HEADERS.X_MC_IDENTITY_LOGIN_MODE_OVERRIDE]: (_window$app$__DEVELOP = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP === void 0 ? void 0 : _window$app$__DEVELOP.mcIdentityLoginModeOverride
|
|
810
819
|
}, getAppliedForwardToHeaders(config.forwardToConfig)))
|
|
811
820
|
};
|
|
812
821
|
}
|
|
@@ -837,7 +846,7 @@ async function executeHttpClientRequest(fetcher) {
|
|
|
837
846
|
}))
|
|
838
847
|
}));
|
|
839
848
|
if (response.statusCode === constants.STATUS_CODES.UNAUTHORIZED) {
|
|
840
|
-
throw new RenewTokenError(
|
|
849
|
+
throw new RenewTokenError("Unauthorized response, attempting retry.");
|
|
841
850
|
}
|
|
842
851
|
|
|
843
852
|
// In case a new session token is returned from the server, save it.
|
|
@@ -861,15 +870,15 @@ async function executeHttpClientRequest(fetcher) {
|
|
|
861
870
|
}
|
|
862
871
|
|
|
863
872
|
function ownKeys$1(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
864
|
-
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
873
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var _context5, _context6; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context5 = ownKeys$1(Object(t), !0)).call(_context5, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context6 = ownKeys$1(Object(t))).call(_context6, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
865
874
|
let _userAgent;
|
|
866
875
|
const getUserAgent = () => {
|
|
867
876
|
if (!_userAgent) {
|
|
868
|
-
var _context;
|
|
877
|
+
var _context, _window$app$applicati, _window$app;
|
|
869
878
|
_userAgent = createHttpUserAgent__default["default"]({
|
|
870
879
|
name: 'apollo-client',
|
|
871
880
|
// version: apolloVersion,
|
|
872
|
-
libraryName: _filterInstanceProperty__default["default"](_context = [typeof window !== 'undefined' ? window.app
|
|
881
|
+
libraryName: _filterInstanceProperty__default["default"](_context = [typeof window !== 'undefined' ? (_window$app$applicati = (_window$app = window.app) === null || _window$app === void 0 ? void 0 : _window$app.applicationName) !== null && _window$app$applicati !== void 0 ? _window$app$applicati : 'unknown-application-name' : undefined, 'application-shell']).call(_context, Boolean).join('/'),
|
|
873
882
|
libraryVersion: version,
|
|
874
883
|
contactUrl: 'https://git.io/fjuyC',
|
|
875
884
|
// points to the appkit repo issues
|
|
@@ -883,14 +892,18 @@ const isKnownGraphQlTarget = target => {
|
|
|
883
892
|
return target ? _includesInstanceProperty__default["default"](_context2 = _Object$values__default["default"](constants.GRAPHQL_TARGETS)).call(_context2, target) : false;
|
|
884
893
|
};
|
|
885
894
|
const extractSessionTokenFromResponse = context => {
|
|
886
|
-
var
|
|
887
|
-
const refreshedSessionToken = context.response
|
|
895
|
+
var _context$response, _context$restResponse;
|
|
896
|
+
const refreshedSessionToken = (_context$response = context.response) === null || _context$response === void 0 || (_context$response = _context$response.headers) === null || _context$response === void 0 ? void 0 : _context$response.get('x-refreshed-session-token');
|
|
888
897
|
if (refreshedSessionToken) {
|
|
889
|
-
return refreshedSessionToken
|
|
898
|
+
return refreshedSessionToken !== null && refreshedSessionToken !== void 0 ? refreshedSessionToken : null;
|
|
890
899
|
}
|
|
891
|
-
const restResponseWithRefreshTokenHeader = (
|
|
900
|
+
const restResponseWithRefreshTokenHeader = (_context$restResponse = context.restResponses) === null || _context$restResponse === void 0 ? void 0 : _findInstanceProperty__default["default"](_context$restResponse).call(_context$restResponse, response => {
|
|
901
|
+
var _response$headers;
|
|
902
|
+
return (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.has('x-refreshed-session-token');
|
|
903
|
+
});
|
|
892
904
|
if (restResponseWithRefreshTokenHeader) {
|
|
893
|
-
|
|
905
|
+
var _restResponseWithRefr;
|
|
906
|
+
return (_restResponseWithRefr = restResponseWithRefreshTokenHeader.headers.get('x-refreshed-session-token')) !== null && _restResponseWithRefr !== void 0 ? _restResponseWithRefr : null;
|
|
894
907
|
}
|
|
895
908
|
return null;
|
|
896
909
|
};
|
|
@@ -898,11 +911,11 @@ const extractSessionTokenFromResponse = context => {
|
|
|
898
911
|
/* eslint-disable import/prefer-default-export */
|
|
899
912
|
// Use a middleware to update the request headers with the correct params.
|
|
900
913
|
const headerLink = new client.ApolloLink((operation, forward) => {
|
|
901
|
-
var
|
|
914
|
+
var _context3, _context4;
|
|
902
915
|
const apolloContext = operation.getContext();
|
|
903
916
|
const variables = operation.variables;
|
|
904
917
|
const graphQlTarget = apolloContext.target || variables.target;
|
|
905
|
-
if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(
|
|
918
|
+
if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(_concatInstanceProperty__default["default"](_context3 = "GraphQL target \"".concat(graphQlTarget, "\" is missing (or is not supported) in operation \"")).call(_context3, operation.operationName, "\""));
|
|
906
919
|
|
|
907
920
|
/**
|
|
908
921
|
* NOTE:
|
|
@@ -929,7 +942,7 @@ const headerLink = new client.ApolloLink((operation, forward) => {
|
|
|
929
942
|
forwardToConfig: apolloContext.forwardToConfig,
|
|
930
943
|
projectKey
|
|
931
944
|
}));
|
|
932
|
-
return _mapInstanceProperty__default["default"](
|
|
945
|
+
return _mapInstanceProperty__default["default"](_context4 = forward(operation)).call(_context4, response => {
|
|
933
946
|
const context = operation.getContext();
|
|
934
947
|
const refreshedSessionToken = extractSessionTokenFromResponse(context);
|
|
935
948
|
if (refreshedSessionToken) {
|
|
@@ -942,7 +955,7 @@ const headerLink = new client.ApolloLink((operation, forward) => {
|
|
|
942
955
|
const tokenRetryLink = new retry.RetryLink({
|
|
943
956
|
attempts: (count, operation, error) => {
|
|
944
957
|
const context = operation.getContext();
|
|
945
|
-
if (error
|
|
958
|
+
if ((error === null || error === void 0 ? void 0 : error.statusCode) === constants.STATUS_CODES.UNAUTHORIZED && count === 1 && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
946
959
|
operation.setContext(_ref => {
|
|
947
960
|
let headers = _ref.headers;
|
|
948
961
|
return {
|
|
@@ -960,7 +973,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _co
|
|
|
960
973
|
const createApolloLink = function () {
|
|
961
974
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
962
975
|
const httpLink = client.createHttpLink({
|
|
963
|
-
uri:
|
|
976
|
+
uri: "".concat(getMcApiUrl(), "/graphql"),
|
|
964
977
|
fetch
|
|
965
978
|
});
|
|
966
979
|
|
|
@@ -1004,8 +1017,9 @@ const mergeArraysObjects = function () {
|
|
|
1004
1017
|
}, []);
|
|
1005
1018
|
};
|
|
1006
1019
|
const createApolloClient = function () {
|
|
1020
|
+
var _options$cache, _customCacheConfig$ty;
|
|
1007
1021
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1008
|
-
const customCacheConfig = options
|
|
1022
|
+
const customCacheConfig = (_options$cache = options === null || options === void 0 ? void 0 : options.cache) !== null && _options$cache !== void 0 ? _options$cache : {};
|
|
1009
1023
|
return new client.ApolloClient({
|
|
1010
1024
|
link: createApolloLink(options),
|
|
1011
1025
|
// https://www.apollographql.com/docs/react/caching/cache-configuration/
|
|
@@ -1044,7 +1058,7 @@ const createApolloClient = function () {
|
|
|
1044
1058
|
}
|
|
1045
1059
|
}
|
|
1046
1060
|
}
|
|
1047
|
-
}, customCacheConfig.typePolicies
|
|
1061
|
+
}, (_customCacheConfig$ty = customCacheConfig.typePolicies) !== null && _customCacheConfig$ty !== void 0 ? _customCacheConfig$ty : {})
|
|
1048
1062
|
}))
|
|
1049
1063
|
});
|
|
1050
1064
|
};
|
|
@@ -11,6 +11,7 @@ import { createContext, useContext, useCallback, useEffect, useMemo } from 'reac
|
|
|
11
11
|
import moment from 'moment-timezone';
|
|
12
12
|
import { reportErrorToSentry } from '@commercetools-frontend/sentry';
|
|
13
13
|
import _URL from '@babel/runtime-corejs3/core-js-stable/url';
|
|
14
|
+
import _concatInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/concat';
|
|
14
15
|
import _slicedToArray from '@babel/runtime-corejs3/helpers/esm/slicedToArray';
|
|
15
16
|
import _reduceInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/reduce';
|
|
16
17
|
import _Object$entries from '@babel/runtime-corejs3/core-js-stable/object/entries';
|
|
@@ -28,7 +29,6 @@ import history from '@commercetools-frontend/browser-history';
|
|
|
28
29
|
import _Array$isArray from '@babel/runtime-corejs3/core-js-stable/array/is-array';
|
|
29
30
|
import _someInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/some';
|
|
30
31
|
import _Object$values from '@babel/runtime-corejs3/core-js-stable/object/values';
|
|
31
|
-
import _bindInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/bind';
|
|
32
32
|
import _mapInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/map';
|
|
33
33
|
import createHttpUserAgent from '@commercetools/http-user-agent';
|
|
34
34
|
import omitEmpty from 'omit-empty-es';
|
|
@@ -44,7 +44,7 @@ import _JSON$stringify from '@babel/runtime-corejs3/core-js-stable/json/stringif
|
|
|
44
44
|
import { RetryLink } from '@apollo/client/link/retry';
|
|
45
45
|
|
|
46
46
|
// NOTE: This string will be replaced on build time with the package version.
|
|
47
|
-
var version = "27.9.
|
|
47
|
+
var version = "27.9.1";
|
|
48
48
|
|
|
49
49
|
// From https://github.com/acdlite/recompose/blob/master/src/packages/recompose/getDisplayName.js
|
|
50
50
|
const getDisplayName = Component => {
|
|
@@ -66,9 +66,10 @@ const getMcOriginTld = host => {
|
|
|
66
66
|
return host.replace(mcHostnameRegex, '$3');
|
|
67
67
|
};
|
|
68
68
|
const getMcApiUrlFromOrigin = origin => {
|
|
69
|
+
var _context;
|
|
69
70
|
const url = new _URL(origin);
|
|
70
71
|
const originTld = getMcOriginTld(url.host);
|
|
71
|
-
return
|
|
72
|
+
return _concatInstanceProperty(_context = "".concat(url.protocol, "//mc-api.")).call(_context, originTld);
|
|
72
73
|
};
|
|
73
74
|
const parseAsBoolean = value => value === true || value === 'true';
|
|
74
75
|
function getMcApiUrl() {
|
|
@@ -288,9 +289,9 @@ const createApplicationContext = (environment, user, project, projectDataLocale)
|
|
|
288
289
|
environment: mapEnvironmentToApplicationContextEnvironment(environment),
|
|
289
290
|
user: mapUserToApplicationContextUser(user),
|
|
290
291
|
project: mapProjectToApplicationContextProject(project),
|
|
291
|
-
permissions: normalizeAllAppliedPermissions(project
|
|
292
|
-
actionRights: normalizeAllAppliedActionRights(project
|
|
293
|
-
dataFences: normalizeAllAppliedDataFences(project
|
|
292
|
+
permissions: normalizeAllAppliedPermissions(project === null || project === void 0 ? void 0 : project.allAppliedPermissions),
|
|
293
|
+
actionRights: normalizeAllAppliedActionRights(project === null || project === void 0 ? void 0 : project.allAppliedActionRights),
|
|
294
|
+
dataFences: normalizeAllAppliedDataFences(project === null || project === void 0 ? void 0 : project.allAppliedDataFences),
|
|
294
295
|
dataLocale: projectDataLocale || null
|
|
295
296
|
});
|
|
296
297
|
const ApplicationContextProvider = props => jsx(Context$2.Provider, {
|
|
@@ -320,7 +321,7 @@ function withApplicationContext(mapApplicationContextToProps) {
|
|
|
320
321
|
return jsx(Component, _objectSpread$6(_objectSpread$6({}, props), mappedProps));
|
|
321
322
|
}
|
|
322
323
|
});
|
|
323
|
-
WrappedComponent.displayName =
|
|
324
|
+
WrappedComponent.displayName = "withApplicationContext(".concat(getDisplayName(Component), ")");
|
|
324
325
|
return WrappedComponent;
|
|
325
326
|
};
|
|
326
327
|
}
|
|
@@ -436,7 +437,7 @@ const ProjectExtensionProviderForImageRegex = props => {
|
|
|
436
437
|
};
|
|
437
438
|
ProjectExtensionProviderForImageRegex.displayName = 'ProjectExtensionProviderForImageRegex';
|
|
438
439
|
const GetProjectExtensionImageRegex = props => {
|
|
439
|
-
useWarning(false,
|
|
440
|
+
useWarning(false, "@commercetools-frontend/application-shell-connectors: It is not recommended to use the 'GetProjectExtensionImageRegex' anymore. Please use the 'useProjectExtensionImageRegex' hook instead.");
|
|
440
441
|
return jsx(Context.Consumer, {
|
|
441
442
|
children: imageRegexContext => props.render(imageRegexContext)
|
|
442
443
|
});
|
|
@@ -446,7 +447,7 @@ function withProjectExtensionImageRegex() {
|
|
|
446
447
|
let propKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'imageRegexData';
|
|
447
448
|
return Component => {
|
|
448
449
|
const WrappedComponent = props => {
|
|
449
|
-
useWarning(false,
|
|
450
|
+
useWarning(false, "@commercetools-frontend/application-shell-connectors: It is not recommended to use the 'withProjectExtensionImageRegex' high order component anymore. Please use the 'useProjectExtensionImageRegex' hook instead.");
|
|
450
451
|
const imageregexContext = useProjectExtensionImageRegex();
|
|
451
452
|
return jsx(GetProjectExtensionImageRegex, {
|
|
452
453
|
render: () =>
|
|
@@ -456,7 +457,7 @@ function withProjectExtensionImageRegex() {
|
|
|
456
457
|
}))
|
|
457
458
|
});
|
|
458
459
|
};
|
|
459
|
-
WrappedComponent.displayName =
|
|
460
|
+
WrappedComponent.displayName = "withProjectExtensionImageRegex(".concat(getDisplayName(Component), ")");
|
|
460
461
|
return WrappedComponent;
|
|
461
462
|
};
|
|
462
463
|
}
|
|
@@ -477,8 +478,8 @@ const forwardTokenRetryHeader = headers => _objectSpread$3(_objectSpread$3({}, h
|
|
|
477
478
|
// so that the MC BE can issue a new token.
|
|
478
479
|
// NOTE: the retry is not meant to work for the MC access token.
|
|
479
480
|
const getDoesGraphQLTargetSupportTokenRetry = context => {
|
|
480
|
-
var _context;
|
|
481
|
-
const graphQLTarget = context.headers
|
|
481
|
+
var _context$headers, _context$headers2, _context;
|
|
482
|
+
const graphQLTarget = ((_context$headers = context.headers) === null || _context$headers === void 0 ? void 0 : _context$headers[SUPPORTED_HEADERS.X_GRAPHQL_TARGET]) || ((_context$headers2 = context.headers) === null || _context$headers2 === void 0 ? void 0 : _context$headers2[SUPPORTED_HEADERS.X_GRAPHQL_TARGET.toLowerCase()]);
|
|
482
483
|
return Boolean(graphQLTarget && _includesInstanceProperty(_context = [GRAPHQL_TARGETS.COMMERCETOOLS_PLATFORM, GRAPHQL_TARGETS.ADMINISTRATION_SERVICE, GRAPHQL_TARGETS.SETTINGS_SERVICE, GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND]).call(_context, graphQLTarget));
|
|
483
484
|
};
|
|
484
485
|
const isHttpError = error => error.statusCode !== undefined || error.statusCode !== undefined;
|
|
@@ -492,7 +493,7 @@ const errorLink = onError(_ref => {
|
|
|
492
493
|
operation = _ref.operation,
|
|
493
494
|
forward = _ref.forward;
|
|
494
495
|
if (networkError && isHttpError(networkError) && networkError.statusCode === STATUS_CODES.UNAUTHORIZED) {
|
|
495
|
-
history.push(
|
|
496
|
+
history.push("/logout?reason=".concat(LOGOUT_REASONS.UNAUTHORIZED));
|
|
496
497
|
return;
|
|
497
498
|
}
|
|
498
499
|
|
|
@@ -504,7 +505,8 @@ const errorLink = onError(_ref => {
|
|
|
504
505
|
const context = operation.getContext();
|
|
505
506
|
if (graphQLErrors && isGraphQLError(graphQLErrors)) {
|
|
506
507
|
for (const err of graphQLErrors) {
|
|
507
|
-
|
|
508
|
+
var _err$extensions;
|
|
509
|
+
const isNonAuthenticatedViaExtensionCode = (err === null || err === void 0 || (_err$extensions = err.extensions) === null || _err$extensions === void 0 ? void 0 : _err$extensions.code) === 'UNAUTHENTICATED';
|
|
508
510
|
/**
|
|
509
511
|
* NOTE:
|
|
510
512
|
* Not not all GraphQL APIs expose an `extensions` field in
|
|
@@ -512,7 +514,7 @@ const errorLink = onError(_ref => {
|
|
|
512
514
|
* property until they introduced support for the `extensions`
|
|
513
515
|
* field.
|
|
514
516
|
*/
|
|
515
|
-
const isNonAuthenticatedViaCode = err
|
|
517
|
+
const isNonAuthenticatedViaCode = (err === null || err === void 0 ? void 0 : err.message) === 'invalid_token';
|
|
516
518
|
if ((isNonAuthenticatedViaExtensionCode || isNonAuthenticatedViaCode) && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
517
519
|
operation.setContext(_ref2 => {
|
|
518
520
|
let headers = _ref2.headers;
|
|
@@ -548,7 +550,8 @@ const errorLink = onError(_ref => {
|
|
|
548
550
|
|
|
549
551
|
// Attempt to load the `teamId` from sessionStorage
|
|
550
552
|
function selectTeamIdFromStorage() {
|
|
551
|
-
|
|
553
|
+
var _window$app$__DEVELOP;
|
|
554
|
+
return window.sessionStorage.getItem(STORAGE_KEYS.ACTIVE_TEAM_ID) || ((_window$app$__DEVELOP = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP === void 0 || (_window$app$__DEVELOP = _window$app$__DEVELOP.oidc) === null || _window$app$__DEVELOP === void 0 ? void 0 : _window$app$__DEVELOP.teamId);
|
|
552
555
|
}
|
|
553
556
|
|
|
554
557
|
const staticUrlPathsInPositionOfProjectKey = ['login', 'logout', 'account'];
|
|
@@ -609,7 +612,7 @@ function getCorrelationId() {
|
|
|
609
612
|
|
|
610
613
|
const createApolloContextForProxyForwardTo = proxyForwardTocontext => ({
|
|
611
614
|
// Send the request to the forward-to endpoint.
|
|
612
|
-
uri:
|
|
615
|
+
uri: "".concat(getMcApiUrl(), "/proxy/forward-to"),
|
|
613
616
|
// Custom properties to be used by the "header-link".
|
|
614
617
|
forwardToConfig: proxyForwardTocontext,
|
|
615
618
|
skipGraphQlTargetCheck: true
|
|
@@ -651,7 +654,7 @@ function selectUserLanguageFromStorage() {
|
|
|
651
654
|
const getSessionToken = () => window.sessionStorage.getItem(STORAGE_KEYS.SESSION_TOKEN);
|
|
652
655
|
const setActiveSession = sessionToken => {
|
|
653
656
|
if (!sessionToken) return;
|
|
654
|
-
window.sessionStorage.setItem(STORAGE_KEYS.SESSION_TOKEN, sessionToken
|
|
657
|
+
window.sessionStorage.setItem(STORAGE_KEYS.SESSION_TOKEN, sessionToken !== null && sessionToken !== void 0 ? sessionToken : '');
|
|
655
658
|
window.localStorage.setItem(STORAGE_KEYS.LOGIN_STRATEGY, LOGIN_STRATEGY_OIDC);
|
|
656
659
|
// Remove flag for original workflow
|
|
657
660
|
window.localStorage.removeItem(STORAGE_KEYS.IS_AUTHENTICATED);
|
|
@@ -673,7 +676,8 @@ const setSessionScope = scope => {
|
|
|
673
676
|
window.sessionStorage.setItem(STORAGE_KEYS.SESSION_SCOPE, scope);
|
|
674
677
|
};
|
|
675
678
|
const getSessionState = stateId => {
|
|
676
|
-
|
|
679
|
+
var _context;
|
|
680
|
+
const sessionStateKey = _concatInstanceProperty(_context = "".concat(STORAGE_KEYS.NONCE, "_")).call(_context, stateId);
|
|
677
681
|
const unparsedSessionState = window.sessionStorage.getItem(sessionStateKey);
|
|
678
682
|
if (unparsedSessionState) {
|
|
679
683
|
try {
|
|
@@ -681,19 +685,22 @@ const getSessionState = stateId => {
|
|
|
681
685
|
return parsedSessionState;
|
|
682
686
|
} catch (error) {
|
|
683
687
|
if (process.env.NODE_ENV !== 'production') {
|
|
688
|
+
var _context2;
|
|
684
689
|
// eslint-disable-next-line no-console
|
|
685
|
-
console.warn(
|
|
690
|
+
console.warn(_concatInstanceProperty(_context2 = "Cannot parse session state for \"".concat(sessionStateKey, "\".\n")).call(_context2, unparsedSessionState));
|
|
686
691
|
}
|
|
687
692
|
}
|
|
688
693
|
}
|
|
689
694
|
return null;
|
|
690
695
|
};
|
|
691
696
|
const setSessionState = (stateId, state) => {
|
|
692
|
-
|
|
697
|
+
var _context3;
|
|
698
|
+
const sessionStateKey = _concatInstanceProperty(_context3 = "".concat(STORAGE_KEYS.NONCE, "_")).call(_context3, stateId);
|
|
693
699
|
window.sessionStorage.setItem(sessionStateKey, _JSON$stringify(state));
|
|
694
700
|
};
|
|
695
701
|
const removeSessionState = stateId => {
|
|
696
|
-
|
|
702
|
+
var _context4;
|
|
703
|
+
const sessionStateKey = _concatInstanceProperty(_context4 = "".concat(STORAGE_KEYS.NONCE, "_")).call(_context4, stateId);
|
|
697
704
|
window.sessionStorage.removeItem(sessionStateKey);
|
|
698
705
|
};
|
|
699
706
|
|
|
@@ -715,13 +722,14 @@ var oidcStorage = /*#__PURE__*/Object.freeze({
|
|
|
715
722
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
716
723
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function () { return !!t; })(); }
|
|
717
724
|
function ownKeys$2(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
718
|
-
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
725
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var _context3, _context4; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context3 = ownKeys$2(Object(t), !0)).call(_context3, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context4 = ownKeys$2(Object(t))).call(_context4, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
719
726
|
let _userAgent$1;
|
|
720
727
|
const getUserAgent$1 = () => {
|
|
721
728
|
if (!_userAgent$1) {
|
|
729
|
+
var _window$app$applicati, _window$app;
|
|
722
730
|
_userAgent$1 = createHttpUserAgent({
|
|
723
731
|
name: 'unknown-http-client',
|
|
724
|
-
libraryName: typeof window !== 'undefined' ? window.app
|
|
732
|
+
libraryName: typeof window !== 'undefined' ? (_window$app$applicati = (_window$app = window.app) === null || _window$app === void 0 ? void 0 : _window$app.applicationName) !== null && _window$app$applicati !== void 0 ? _window$app$applicati : 'unknown-application-name' : undefined
|
|
725
733
|
});
|
|
726
734
|
}
|
|
727
735
|
return _userAgent$1;
|
|
@@ -729,48 +737,50 @@ const getUserAgent$1 = () => {
|
|
|
729
737
|
const defaultForwardToVersion = 'v2';
|
|
730
738
|
const defaultForwardToAudiencePolicy = 'forward-url-full-path';
|
|
731
739
|
function buildApiUrl(endpoint) {
|
|
740
|
+
var _context;
|
|
732
741
|
const apiUrl = getMcApiUrl().replace(/\/$/, '');
|
|
733
|
-
return
|
|
742
|
+
return _concatInstanceProperty(_context = "".concat(apiUrl)).call(_context, endpoint);
|
|
734
743
|
}
|
|
735
744
|
const getAppliedForwardToHeaders = forwardToConfig => {
|
|
736
|
-
var
|
|
745
|
+
var _context2, _forwardToConfig$head, _forwardToConfig$vers, _forwardToConfig$audi;
|
|
737
746
|
if (!forwardToConfig) {
|
|
738
747
|
return {};
|
|
739
748
|
}
|
|
740
749
|
if (!forwardToConfig.uri) {
|
|
741
|
-
throw new Error(
|
|
750
|
+
throw new Error("Missing required \"uri\" option.");
|
|
742
751
|
}
|
|
743
752
|
const exchangeTokenClaims = [];
|
|
744
753
|
if (forwardToConfig.includeUserPermissions) {
|
|
745
754
|
exchangeTokenClaims.push('permissions');
|
|
746
755
|
}
|
|
747
|
-
return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty(
|
|
756
|
+
return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty(_context2 = _Object$entries((_forwardToConfig$head = forwardToConfig.headers) !== null && _forwardToConfig$head !== void 0 ? _forwardToConfig$head : {})).call(_context2, (customForwardHeaders, _ref) => {
|
|
748
757
|
let _ref2 = _slicedToArray(_ref, 2),
|
|
749
758
|
headerName = _ref2[0],
|
|
750
759
|
headerValue = _ref2[1];
|
|
751
760
|
return _objectSpread$2(_objectSpread$2({}, customForwardHeaders), {}, {
|
|
752
761
|
// Prefix headers so that the MC API can allow and forward them.
|
|
753
|
-
[
|
|
762
|
+
["x-forward-header-".concat(headerName)]: headerValue
|
|
754
763
|
});
|
|
755
764
|
}, {})), {}, {
|
|
756
|
-
[SUPPORTED_HEADERS.ACCEPT_VERSION]: forwardToConfig.version
|
|
765
|
+
[SUPPORTED_HEADERS.ACCEPT_VERSION]: (_forwardToConfig$vers = forwardToConfig.version) !== null && _forwardToConfig$vers !== void 0 ? _forwardToConfig$vers : defaultForwardToVersion,
|
|
757
766
|
[SUPPORTED_HEADERS.X_FORWARD_TO]: forwardToConfig.uri,
|
|
758
|
-
[SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: forwardToConfig.audiencePolicy
|
|
767
|
+
[SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: (_forwardToConfig$audi = forwardToConfig.audiencePolicy) !== null && _forwardToConfig$audi !== void 0 ? _forwardToConfig$audi : defaultForwardToAudiencePolicy,
|
|
759
768
|
[SUPPORTED_HEADERS.X_FORWARD_TO_CLAIMS]: exchangeTokenClaims.join(' ')
|
|
760
769
|
});
|
|
761
770
|
};
|
|
762
771
|
function createHttpClientOptions() {
|
|
772
|
+
var _config$projectKey, _window$app$__DEVELOP;
|
|
763
773
|
let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
764
774
|
const sessionToken = getSessionToken();
|
|
765
|
-
const projectKey = config.projectKey
|
|
775
|
+
const projectKey = (_config$projectKey = config.projectKey) !== null && _config$projectKey !== void 0 ? _config$projectKey : selectProjectKeyFromUrl();
|
|
766
776
|
const userId = selectUserId();
|
|
767
|
-
const userAgent = config
|
|
777
|
+
const userAgent = (config === null || config === void 0 ? void 0 : config.userAgent) || getUserAgent$1();
|
|
768
778
|
return {
|
|
769
779
|
credentials: 'include',
|
|
770
780
|
headers: omitEmpty(_objectSpread$2(_objectSpread$2({}, config.headers), {}, {
|
|
771
781
|
// Required headers
|
|
772
782
|
[SUPPORTED_HEADERS.ACCEPT]: 'application/json',
|
|
773
|
-
[SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ?
|
|
783
|
+
[SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ? "Bearer ".concat(sessionToken) : undefined,
|
|
774
784
|
[SUPPORTED_HEADERS.X_APPLICATION_ID]: window.app.applicationIdentifier,
|
|
775
785
|
[SUPPORTED_HEADERS.X_CUSTOM_VIEW_ID]: window.app.customViewId,
|
|
776
786
|
[SUPPORTED_HEADERS.X_CORRELATION_ID]: getCorrelationId({
|
|
@@ -779,7 +789,7 @@ function createHttpClientOptions() {
|
|
|
779
789
|
[SUPPORTED_HEADERS.X_PROJECT_KEY]: projectKey,
|
|
780
790
|
[SUPPORTED_HEADERS.X_USER_AGENT]: userAgent,
|
|
781
791
|
// MC Identity Login Mode Override header for development
|
|
782
|
-
[SUPPORTED_HEADERS.X_MC_IDENTITY_LOGIN_MODE_OVERRIDE]: window.app.__DEVELOPMENT__
|
|
792
|
+
[SUPPORTED_HEADERS.X_MC_IDENTITY_LOGIN_MODE_OVERRIDE]: (_window$app$__DEVELOP = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP === void 0 ? void 0 : _window$app$__DEVELOP.mcIdentityLoginModeOverride
|
|
783
793
|
}, getAppliedForwardToHeaders(config.forwardToConfig)))
|
|
784
794
|
};
|
|
785
795
|
}
|
|
@@ -810,7 +820,7 @@ async function executeHttpClientRequest(fetcher) {
|
|
|
810
820
|
}))
|
|
811
821
|
}));
|
|
812
822
|
if (response.statusCode === STATUS_CODES.UNAUTHORIZED) {
|
|
813
|
-
throw new RenewTokenError(
|
|
823
|
+
throw new RenewTokenError("Unauthorized response, attempting retry.");
|
|
814
824
|
}
|
|
815
825
|
|
|
816
826
|
// In case a new session token is returned from the server, save it.
|
|
@@ -834,15 +844,15 @@ async function executeHttpClientRequest(fetcher) {
|
|
|
834
844
|
}
|
|
835
845
|
|
|
836
846
|
function ownKeys$1(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
837
|
-
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
847
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var _context5, _context6; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context5 = ownKeys$1(Object(t), !0)).call(_context5, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context6 = ownKeys$1(Object(t))).call(_context6, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
838
848
|
let _userAgent;
|
|
839
849
|
const getUserAgent = () => {
|
|
840
850
|
if (!_userAgent) {
|
|
841
|
-
var _context;
|
|
851
|
+
var _context, _window$app$applicati, _window$app;
|
|
842
852
|
_userAgent = createHttpUserAgent({
|
|
843
853
|
name: 'apollo-client',
|
|
844
854
|
// version: apolloVersion,
|
|
845
|
-
libraryName: _filterInstanceProperty(_context = [typeof window !== 'undefined' ? window.app
|
|
855
|
+
libraryName: _filterInstanceProperty(_context = [typeof window !== 'undefined' ? (_window$app$applicati = (_window$app = window.app) === null || _window$app === void 0 ? void 0 : _window$app.applicationName) !== null && _window$app$applicati !== void 0 ? _window$app$applicati : 'unknown-application-name' : undefined, 'application-shell']).call(_context, Boolean).join('/'),
|
|
846
856
|
libraryVersion: version,
|
|
847
857
|
contactUrl: 'https://git.io/fjuyC',
|
|
848
858
|
// points to the appkit repo issues
|
|
@@ -856,14 +866,18 @@ const isKnownGraphQlTarget = target => {
|
|
|
856
866
|
return target ? _includesInstanceProperty(_context2 = _Object$values(GRAPHQL_TARGETS)).call(_context2, target) : false;
|
|
857
867
|
};
|
|
858
868
|
const extractSessionTokenFromResponse = context => {
|
|
859
|
-
var
|
|
860
|
-
const refreshedSessionToken = context.response
|
|
869
|
+
var _context$response, _context$restResponse;
|
|
870
|
+
const refreshedSessionToken = (_context$response = context.response) === null || _context$response === void 0 || (_context$response = _context$response.headers) === null || _context$response === void 0 ? void 0 : _context$response.get('x-refreshed-session-token');
|
|
861
871
|
if (refreshedSessionToken) {
|
|
862
|
-
return refreshedSessionToken
|
|
872
|
+
return refreshedSessionToken !== null && refreshedSessionToken !== void 0 ? refreshedSessionToken : null;
|
|
863
873
|
}
|
|
864
|
-
const restResponseWithRefreshTokenHeader = (
|
|
874
|
+
const restResponseWithRefreshTokenHeader = (_context$restResponse = context.restResponses) === null || _context$restResponse === void 0 ? void 0 : _findInstanceProperty(_context$restResponse).call(_context$restResponse, response => {
|
|
875
|
+
var _response$headers;
|
|
876
|
+
return (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.has('x-refreshed-session-token');
|
|
877
|
+
});
|
|
865
878
|
if (restResponseWithRefreshTokenHeader) {
|
|
866
|
-
|
|
879
|
+
var _restResponseWithRefr;
|
|
880
|
+
return (_restResponseWithRefr = restResponseWithRefreshTokenHeader.headers.get('x-refreshed-session-token')) !== null && _restResponseWithRefr !== void 0 ? _restResponseWithRefr : null;
|
|
867
881
|
}
|
|
868
882
|
return null;
|
|
869
883
|
};
|
|
@@ -871,11 +885,11 @@ const extractSessionTokenFromResponse = context => {
|
|
|
871
885
|
/* eslint-disable import/prefer-default-export */
|
|
872
886
|
// Use a middleware to update the request headers with the correct params.
|
|
873
887
|
const headerLink = new ApolloLink((operation, forward) => {
|
|
874
|
-
var
|
|
888
|
+
var _context3, _context4;
|
|
875
889
|
const apolloContext = operation.getContext();
|
|
876
890
|
const variables = operation.variables;
|
|
877
891
|
const graphQlTarget = apolloContext.target || variables.target;
|
|
878
|
-
if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(
|
|
892
|
+
if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(_concatInstanceProperty(_context3 = "GraphQL target \"".concat(graphQlTarget, "\" is missing (or is not supported) in operation \"")).call(_context3, operation.operationName, "\""));
|
|
879
893
|
|
|
880
894
|
/**
|
|
881
895
|
* NOTE:
|
|
@@ -902,7 +916,7 @@ const headerLink = new ApolloLink((operation, forward) => {
|
|
|
902
916
|
forwardToConfig: apolloContext.forwardToConfig,
|
|
903
917
|
projectKey
|
|
904
918
|
}));
|
|
905
|
-
return _mapInstanceProperty(
|
|
919
|
+
return _mapInstanceProperty(_context4 = forward(operation)).call(_context4, response => {
|
|
906
920
|
const context = operation.getContext();
|
|
907
921
|
const refreshedSessionToken = extractSessionTokenFromResponse(context);
|
|
908
922
|
if (refreshedSessionToken) {
|
|
@@ -915,7 +929,7 @@ const headerLink = new ApolloLink((operation, forward) => {
|
|
|
915
929
|
const tokenRetryLink = new RetryLink({
|
|
916
930
|
attempts: (count, operation, error) => {
|
|
917
931
|
const context = operation.getContext();
|
|
918
|
-
if (error
|
|
932
|
+
if ((error === null || error === void 0 ? void 0 : error.statusCode) === STATUS_CODES.UNAUTHORIZED && count === 1 && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
919
933
|
operation.setContext(_ref => {
|
|
920
934
|
let headers = _ref.headers;
|
|
921
935
|
return {
|
|
@@ -933,7 +947,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _co
|
|
|
933
947
|
const createApolloLink = function () {
|
|
934
948
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
935
949
|
const httpLink = createHttpLink({
|
|
936
|
-
uri:
|
|
950
|
+
uri: "".concat(getMcApiUrl(), "/graphql"),
|
|
937
951
|
fetch
|
|
938
952
|
});
|
|
939
953
|
|
|
@@ -977,8 +991,9 @@ const mergeArraysObjects = function () {
|
|
|
977
991
|
}, []);
|
|
978
992
|
};
|
|
979
993
|
const createApolloClient = function () {
|
|
994
|
+
var _options$cache, _customCacheConfig$ty;
|
|
980
995
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
981
|
-
const customCacheConfig = options
|
|
996
|
+
const customCacheConfig = (_options$cache = options === null || options === void 0 ? void 0 : options.cache) !== null && _options$cache !== void 0 ? _options$cache : {};
|
|
982
997
|
return new ApolloClient({
|
|
983
998
|
link: createApolloLink(options),
|
|
984
999
|
// https://www.apollographql.com/docs/react/caching/cache-configuration/
|
|
@@ -1017,7 +1032,7 @@ const createApolloClient = function () {
|
|
|
1017
1032
|
}
|
|
1018
1033
|
}
|
|
1019
1034
|
}
|
|
1020
|
-
}, customCacheConfig.typePolicies
|
|
1035
|
+
}, (_customCacheConfig$ty = customCacheConfig.typePolicies) !== null && _customCacheConfig$ty !== void 0 ? _customCacheConfig$ty : {})
|
|
1021
1036
|
}))
|
|
1022
1037
|
});
|
|
1023
1038
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commercetools-frontend/application-shell-connectors",
|
|
3
|
-
"version": "27.9.
|
|
3
|
+
"version": "27.9.1",
|
|
4
4
|
"description": "Contains complementary tools for @commercetools-frontend/application-shell",
|
|
5
5
|
"bugs": "https://github.com/commercetools/merchant-center-application-kit/issues",
|
|
6
6
|
"repository": {
|
|
@@ -43,28 +43,28 @@
|
|
|
43
43
|
"@types/prop-types": "^15.7.5",
|
|
44
44
|
"@types/react": "^19.0.3",
|
|
45
45
|
"apollo-link-logger": "2.0.1",
|
|
46
|
-
"graphql": "16.
|
|
46
|
+
"graphql": "16.14.2",
|
|
47
47
|
"lodash": "4.18.1",
|
|
48
48
|
"moment-timezone": "^0.6.0",
|
|
49
49
|
"omit-empty-es": "1.2.0",
|
|
50
50
|
"prop-types": "15.8.1",
|
|
51
51
|
"tiny-warning": "1.0.3",
|
|
52
|
-
"uuid": "14.0.
|
|
52
|
+
"uuid": "14.0.1",
|
|
53
53
|
"wait-for-observables": "1.0.3",
|
|
54
|
-
"@commercetools-frontend/application-config": "^27.9.
|
|
55
|
-
"@commercetools-frontend/browser-history": "^27.9.
|
|
56
|
-
"@commercetools-frontend/constants": "^27.9.
|
|
57
|
-
"@commercetools-frontend/sentry": "^27.9.
|
|
54
|
+
"@commercetools-frontend/application-config": "^27.9.1",
|
|
55
|
+
"@commercetools-frontend/browser-history": "^27.9.1",
|
|
56
|
+
"@commercetools-frontend/constants": "^27.9.1",
|
|
57
|
+
"@commercetools-frontend/sentry": "^27.9.1"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@apollo/client": "3.
|
|
61
|
-
"@testing-library/react": "16.
|
|
60
|
+
"@apollo/client": "3.14.1",
|
|
61
|
+
"@testing-library/react": "16.3.2",
|
|
62
62
|
"@types/jest": "^29.5.14",
|
|
63
63
|
"headers-polyfill": "^3.1.2",
|
|
64
64
|
"jest": "30.2.0",
|
|
65
65
|
"jest-mock": "30.2.0",
|
|
66
66
|
"msw": "^1.3.5",
|
|
67
|
-
"react": "19.
|
|
67
|
+
"react": "19.2.8"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
70
|
"@apollo/client": "3.x",
|