@commercetools-frontend/application-shell-connectors 24.11.0 → 24.12.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.
|
@@ -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');
|
|
@@ -58,6 +59,7 @@ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$def
|
|
|
58
59
|
var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
|
|
59
60
|
var moment__default = /*#__PURE__*/_interopDefault(moment);
|
|
60
61
|
var _URL__default = /*#__PURE__*/_interopDefault(_URL);
|
|
62
|
+
var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
|
|
61
63
|
var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
|
|
62
64
|
var _Object$entries__default = /*#__PURE__*/_interopDefault(_Object$entries);
|
|
63
65
|
var _valuesInstanceProperty__default = /*#__PURE__*/_interopDefault(_valuesInstanceProperty);
|
|
@@ -76,7 +78,7 @@ var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construc
|
|
|
76
78
|
var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
|
|
77
79
|
|
|
78
80
|
// NOTE: This string will be replaced on build time with the package version.
|
|
79
|
-
var version = "24.
|
|
81
|
+
var version = "24.12.0";
|
|
80
82
|
|
|
81
83
|
// From https://github.com/acdlite/recompose/blob/master/src/packages/recompose/getDisplayName.js
|
|
82
84
|
const getDisplayName = Component => {
|
|
@@ -98,9 +100,10 @@ const getMcOriginTld = host => {
|
|
|
98
100
|
return host.replace(mcHostnameRegex, '$3');
|
|
99
101
|
};
|
|
100
102
|
const getMcApiUrlFromOrigin = origin => {
|
|
103
|
+
var _context;
|
|
101
104
|
const url = new _URL__default["default"](origin);
|
|
102
105
|
const originTld = getMcOriginTld(url.host);
|
|
103
|
-
return
|
|
106
|
+
return _concatInstanceProperty__default["default"](_context = "".concat(url.protocol, "//mc-api.")).call(_context, originTld);
|
|
104
107
|
};
|
|
105
108
|
const parseAsBoolean = value => value === true || value === 'true';
|
|
106
109
|
function getMcApiUrl() {
|
|
@@ -332,9 +335,9 @@ const createApplicationContext = (environment, user, project, projectDataLocale)
|
|
|
332
335
|
environment: mapEnvironmentToApplicationContextEnvironment(environment),
|
|
333
336
|
user: mapUserToApplicationContextUser(user),
|
|
334
337
|
project: mapProjectToApplicationContextProject(project),
|
|
335
|
-
permissions: normalizeAllAppliedPermissions(project
|
|
336
|
-
actionRights: normalizeAllAppliedActionRights(project
|
|
337
|
-
dataFences: normalizeAllAppliedDataFences(project
|
|
338
|
+
permissions: normalizeAllAppliedPermissions(project === null || project === void 0 ? void 0 : project.allAppliedPermissions),
|
|
339
|
+
actionRights: normalizeAllAppliedActionRights(project === null || project === void 0 ? void 0 : project.allAppliedActionRights),
|
|
340
|
+
dataFences: normalizeAllAppliedDataFences(project === null || project === void 0 ? void 0 : project.allAppliedDataFences),
|
|
338
341
|
dataLocale: projectDataLocale || null
|
|
339
342
|
});
|
|
340
343
|
const ApplicationContextProvider = props => jsxRuntime.jsx(Context$2.Provider, {
|
|
@@ -364,7 +367,7 @@ function withApplicationContext(mapApplicationContextToProps) {
|
|
|
364
367
|
return jsxRuntime.jsx(Component, _objectSpread$6(_objectSpread$6({}, props), mappedProps));
|
|
365
368
|
}
|
|
366
369
|
});
|
|
367
|
-
WrappedComponent.displayName =
|
|
370
|
+
WrappedComponent.displayName = "withApplicationContext(".concat(getDisplayName(Component), ")");
|
|
368
371
|
return WrappedComponent;
|
|
369
372
|
};
|
|
370
373
|
}
|
|
@@ -480,7 +483,7 @@ const ProjectExtensionProviderForImageRegex = props => {
|
|
|
480
483
|
};
|
|
481
484
|
ProjectExtensionProviderForImageRegex.displayName = 'ProjectExtensionProviderForImageRegex';
|
|
482
485
|
const GetProjectExtensionImageRegex = props => {
|
|
483
|
-
useWarning(false,
|
|
486
|
+
useWarning(false, "@commercetools-frontend/application-shell-connectors: It is not recommended to use the 'GetProjectExtensionImageRegex' anymore. Please use the 'useProjectExtensionImageRegex' hook instead.");
|
|
484
487
|
return jsxRuntime.jsx(Context.Consumer, {
|
|
485
488
|
children: imageRegexContext => props.render(imageRegexContext)
|
|
486
489
|
});
|
|
@@ -490,7 +493,7 @@ function withProjectExtensionImageRegex() {
|
|
|
490
493
|
let propKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'imageRegexData';
|
|
491
494
|
return Component => {
|
|
492
495
|
const WrappedComponent = props => {
|
|
493
|
-
useWarning(false,
|
|
496
|
+
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.");
|
|
494
497
|
const imageregexContext = useProjectExtensionImageRegex();
|
|
495
498
|
return jsxRuntime.jsx(GetProjectExtensionImageRegex, {
|
|
496
499
|
render: () =>
|
|
@@ -500,7 +503,7 @@ function withProjectExtensionImageRegex() {
|
|
|
500
503
|
}))
|
|
501
504
|
});
|
|
502
505
|
};
|
|
503
|
-
WrappedComponent.displayName =
|
|
506
|
+
WrappedComponent.displayName = "withProjectExtensionImageRegex(".concat(getDisplayName(Component), ")");
|
|
504
507
|
return WrappedComponent;
|
|
505
508
|
};
|
|
506
509
|
}
|
|
@@ -521,8 +524,8 @@ const forwardTokenRetryHeader = headers => _objectSpread$3(_objectSpread$3({}, h
|
|
|
521
524
|
// so that the MC BE can issue a new token.
|
|
522
525
|
// NOTE: the retry is not meant to work for the MC access token.
|
|
523
526
|
const getDoesGraphQLTargetSupportTokenRetry = context => {
|
|
524
|
-
var _context;
|
|
525
|
-
const graphQLTarget = context.headers
|
|
527
|
+
var _context$headers, _context$headers2, _context;
|
|
528
|
+
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()]);
|
|
526
529
|
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));
|
|
527
530
|
};
|
|
528
531
|
const isHttpError = error => error.statusCode !== undefined || error.statusCode !== undefined;
|
|
@@ -536,7 +539,7 @@ const errorLink = error.onError(_ref => {
|
|
|
536
539
|
operation = _ref.operation,
|
|
537
540
|
forward = _ref.forward;
|
|
538
541
|
if (networkError && isHttpError(networkError) && networkError.statusCode === constants.STATUS_CODES.UNAUTHORIZED) {
|
|
539
|
-
history__default["default"].push(
|
|
542
|
+
history__default["default"].push("/logout?reason=".concat(constants.LOGOUT_REASONS.UNAUTHORIZED));
|
|
540
543
|
return;
|
|
541
544
|
}
|
|
542
545
|
|
|
@@ -548,7 +551,8 @@ const errorLink = error.onError(_ref => {
|
|
|
548
551
|
const context = operation.getContext();
|
|
549
552
|
if (graphQLErrors && isGraphQLError(graphQLErrors)) {
|
|
550
553
|
for (const err of graphQLErrors) {
|
|
551
|
-
|
|
554
|
+
var _err$extensions;
|
|
555
|
+
const isNonAuthenticatedViaExtensionCode = (err === null || err === void 0 || (_err$extensions = err.extensions) === null || _err$extensions === void 0 ? void 0 : _err$extensions.code) === 'UNAUTHENTICATED';
|
|
552
556
|
/**
|
|
553
557
|
* NOTE:
|
|
554
558
|
* Not not all GraphQL APIs expose an `extensions` field in
|
|
@@ -556,7 +560,7 @@ const errorLink = error.onError(_ref => {
|
|
|
556
560
|
* property until they introduced support for the `extensions`
|
|
557
561
|
* field.
|
|
558
562
|
*/
|
|
559
|
-
const isNonAuthenticatedViaCode = err
|
|
563
|
+
const isNonAuthenticatedViaCode = (err === null || err === void 0 ? void 0 : err.message) === 'invalid_token';
|
|
560
564
|
if ((isNonAuthenticatedViaExtensionCode || isNonAuthenticatedViaCode) && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
561
565
|
operation.setContext(_ref2 => {
|
|
562
566
|
let headers = _ref2.headers;
|
|
@@ -592,7 +596,8 @@ const errorLink = error.onError(_ref => {
|
|
|
592
596
|
|
|
593
597
|
// Attempt to load the `teamId` from sessionStorage
|
|
594
598
|
function selectTeamIdFromStorage() {
|
|
595
|
-
|
|
599
|
+
var _window$app$__DEVELOP;
|
|
600
|
+
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);
|
|
596
601
|
}
|
|
597
602
|
|
|
598
603
|
const staticUrlPathsInPositionOfProjectKey = ['login', 'logout', 'account'];
|
|
@@ -653,7 +658,7 @@ function getCorrelationId() {
|
|
|
653
658
|
|
|
654
659
|
const createApolloContextForProxyForwardTo = proxyForwardTocontext => ({
|
|
655
660
|
// Send the request to the forward-to endpoint.
|
|
656
|
-
uri:
|
|
661
|
+
uri: "".concat(getMcApiUrl(), "/proxy/forward-to"),
|
|
657
662
|
// Custom properties to be used by the "header-link".
|
|
658
663
|
forwardToConfig: proxyForwardTocontext,
|
|
659
664
|
skipGraphQlTargetCheck: true
|
|
@@ -695,7 +700,7 @@ function selectUserLanguageFromStorage() {
|
|
|
695
700
|
const getSessionToken = () => window.sessionStorage.getItem(constants.STORAGE_KEYS.SESSION_TOKEN);
|
|
696
701
|
const setActiveSession = sessionToken => {
|
|
697
702
|
if (!sessionToken) return;
|
|
698
|
-
window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_TOKEN, sessionToken
|
|
703
|
+
window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_TOKEN, sessionToken !== null && sessionToken !== void 0 ? sessionToken : '');
|
|
699
704
|
window.localStorage.setItem(constants.STORAGE_KEYS.LOGIN_STRATEGY, constants.LOGIN_STRATEGY_OIDC);
|
|
700
705
|
// Remove flag for original workflow
|
|
701
706
|
window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
|
|
@@ -717,7 +722,8 @@ const setSessionScope = scope => {
|
|
|
717
722
|
window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_SCOPE, scope);
|
|
718
723
|
};
|
|
719
724
|
const getSessionState = stateId => {
|
|
720
|
-
|
|
725
|
+
var _context;
|
|
726
|
+
const sessionStateKey = _concatInstanceProperty__default["default"](_context = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context, stateId);
|
|
721
727
|
const unparsedSessionState = window.sessionStorage.getItem(sessionStateKey);
|
|
722
728
|
if (unparsedSessionState) {
|
|
723
729
|
try {
|
|
@@ -725,19 +731,22 @@ const getSessionState = stateId => {
|
|
|
725
731
|
return parsedSessionState;
|
|
726
732
|
} catch (error) {
|
|
727
733
|
if (process.env.NODE_ENV !== 'production') {
|
|
734
|
+
var _context2;
|
|
728
735
|
// eslint-disable-next-line no-console
|
|
729
|
-
console.warn(
|
|
736
|
+
console.warn(_concatInstanceProperty__default["default"](_context2 = "Cannot parse session state for \"".concat(sessionStateKey, "\".\n")).call(_context2, unparsedSessionState));
|
|
730
737
|
}
|
|
731
738
|
}
|
|
732
739
|
}
|
|
733
740
|
return null;
|
|
734
741
|
};
|
|
735
742
|
const setSessionState = (stateId, state) => {
|
|
736
|
-
|
|
743
|
+
var _context3;
|
|
744
|
+
const sessionStateKey = _concatInstanceProperty__default["default"](_context3 = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context3, stateId);
|
|
737
745
|
window.sessionStorage.setItem(sessionStateKey, _JSON$stringify__default["default"](state));
|
|
738
746
|
};
|
|
739
747
|
const removeSessionState = stateId => {
|
|
740
|
-
|
|
748
|
+
var _context4;
|
|
749
|
+
const sessionStateKey = _concatInstanceProperty__default["default"](_context4 = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context4, stateId);
|
|
741
750
|
window.sessionStorage.removeItem(sessionStateKey);
|
|
742
751
|
};
|
|
743
752
|
|
|
@@ -759,13 +768,14 @@ var oidcStorage = /*#__PURE__*/Object.freeze({
|
|
|
759
768
|
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)); }
|
|
760
769
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function () { return !!t; })(); }
|
|
761
770
|
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; }
|
|
762
|
-
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
771
|
+
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; }
|
|
763
772
|
let _userAgent$1;
|
|
764
773
|
const getUserAgent$1 = () => {
|
|
765
774
|
if (!_userAgent$1) {
|
|
775
|
+
var _window$app$applicati, _window$app;
|
|
766
776
|
_userAgent$1 = createHttpUserAgent__default["default"]({
|
|
767
777
|
name: 'unknown-http-client',
|
|
768
|
-
libraryName: typeof window !== 'undefined' ? window.app
|
|
778
|
+
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
|
|
769
779
|
});
|
|
770
780
|
}
|
|
771
781
|
return _userAgent$1;
|
|
@@ -773,48 +783,50 @@ const getUserAgent$1 = () => {
|
|
|
773
783
|
const defaultForwardToVersion = 'v2';
|
|
774
784
|
const defaultForwardToAudiencePolicy = 'forward-url-full-path';
|
|
775
785
|
function buildApiUrl(endpoint) {
|
|
786
|
+
var _context;
|
|
776
787
|
const apiUrl = getMcApiUrl().replace(/\/$/, '');
|
|
777
|
-
return
|
|
788
|
+
return _concatInstanceProperty__default["default"](_context = "".concat(apiUrl)).call(_context, endpoint);
|
|
778
789
|
}
|
|
779
790
|
const getAppliedForwardToHeaders = forwardToConfig => {
|
|
780
|
-
var
|
|
791
|
+
var _context2, _forwardToConfig$head, _forwardToConfig$vers, _forwardToConfig$audi;
|
|
781
792
|
if (!forwardToConfig) {
|
|
782
793
|
return {};
|
|
783
794
|
}
|
|
784
795
|
if (!forwardToConfig.uri) {
|
|
785
|
-
throw new Error(
|
|
796
|
+
throw new Error("Missing required \"uri\" option.");
|
|
786
797
|
}
|
|
787
798
|
const exchangeTokenClaims = [];
|
|
788
799
|
if (forwardToConfig.includeUserPermissions) {
|
|
789
800
|
exchangeTokenClaims.push('permissions');
|
|
790
801
|
}
|
|
791
|
-
return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty__default["default"](
|
|
802
|
+
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) => {
|
|
792
803
|
let _ref2 = _slicedToArray(_ref, 2),
|
|
793
804
|
headerName = _ref2[0],
|
|
794
805
|
headerValue = _ref2[1];
|
|
795
806
|
return _objectSpread$2(_objectSpread$2({}, customForwardHeaders), {}, {
|
|
796
807
|
// Prefix headers so that the MC API can allow and forward them.
|
|
797
|
-
[
|
|
808
|
+
["x-forward-header-".concat(headerName)]: headerValue
|
|
798
809
|
});
|
|
799
810
|
}, {})), {}, {
|
|
800
|
-
[constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: forwardToConfig.version
|
|
811
|
+
[constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: (_forwardToConfig$vers = forwardToConfig.version) !== null && _forwardToConfig$vers !== void 0 ? _forwardToConfig$vers : defaultForwardToVersion,
|
|
801
812
|
[constants.SUPPORTED_HEADERS.X_FORWARD_TO]: forwardToConfig.uri,
|
|
802
|
-
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: forwardToConfig.audiencePolicy
|
|
813
|
+
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: (_forwardToConfig$audi = forwardToConfig.audiencePolicy) !== null && _forwardToConfig$audi !== void 0 ? _forwardToConfig$audi : defaultForwardToAudiencePolicy,
|
|
803
814
|
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_CLAIMS]: exchangeTokenClaims.join(' ')
|
|
804
815
|
});
|
|
805
816
|
};
|
|
806
817
|
function createHttpClientOptions() {
|
|
818
|
+
var _config$projectKey, _window$app$__DEVELOP;
|
|
807
819
|
let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
808
820
|
const sessionToken = getSessionToken();
|
|
809
|
-
const projectKey = config.projectKey
|
|
821
|
+
const projectKey = (_config$projectKey = config.projectKey) !== null && _config$projectKey !== void 0 ? _config$projectKey : selectProjectKeyFromUrl();
|
|
810
822
|
const userId = selectUserId();
|
|
811
|
-
const userAgent = config
|
|
823
|
+
const userAgent = (config === null || config === void 0 ? void 0 : config.userAgent) || getUserAgent$1();
|
|
812
824
|
return {
|
|
813
825
|
credentials: 'include',
|
|
814
826
|
headers: omitEmpty__default["default"](_objectSpread$2(_objectSpread$2({}, config.headers), {}, {
|
|
815
827
|
// Required headers
|
|
816
828
|
[constants.SUPPORTED_HEADERS.ACCEPT]: 'application/json',
|
|
817
|
-
[constants.SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ?
|
|
829
|
+
[constants.SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ? "Bearer ".concat(sessionToken) : undefined,
|
|
818
830
|
[constants.SUPPORTED_HEADERS.X_APPLICATION_ID]: window.app.applicationIdentifier,
|
|
819
831
|
[constants.SUPPORTED_HEADERS.X_CUSTOM_VIEW_ID]: window.app.customViewId,
|
|
820
832
|
[constants.SUPPORTED_HEADERS.X_CORRELATION_ID]: getCorrelationId({
|
|
@@ -823,7 +835,7 @@ function createHttpClientOptions() {
|
|
|
823
835
|
[constants.SUPPORTED_HEADERS.X_PROJECT_KEY]: projectKey,
|
|
824
836
|
[constants.SUPPORTED_HEADERS.X_USER_AGENT]: userAgent,
|
|
825
837
|
// MC Identity Login Mode Override header for development
|
|
826
|
-
[constants.SUPPORTED_HEADERS.X_MC_IDENTITY_LOGIN_MODE_OVERRIDE]: window.app.__DEVELOPMENT__
|
|
838
|
+
[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
|
|
827
839
|
}, getAppliedForwardToHeaders(config.forwardToConfig)))
|
|
828
840
|
};
|
|
829
841
|
}
|
|
@@ -854,7 +866,7 @@ async function executeHttpClientRequest(fetcher) {
|
|
|
854
866
|
}))
|
|
855
867
|
}));
|
|
856
868
|
if (response.statusCode === constants.STATUS_CODES.UNAUTHORIZED) {
|
|
857
|
-
throw new RenewTokenError(
|
|
869
|
+
throw new RenewTokenError("Unauthorized response, attempting retry.");
|
|
858
870
|
}
|
|
859
871
|
|
|
860
872
|
// In case a new session token is returned from the server, save it.
|
|
@@ -878,15 +890,15 @@ async function executeHttpClientRequest(fetcher) {
|
|
|
878
890
|
}
|
|
879
891
|
|
|
880
892
|
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; }
|
|
881
|
-
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
893
|
+
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; }
|
|
882
894
|
let _userAgent;
|
|
883
895
|
const getUserAgent = () => {
|
|
884
896
|
if (!_userAgent) {
|
|
885
|
-
var _context;
|
|
897
|
+
var _context, _window$app$applicati, _window$app;
|
|
886
898
|
_userAgent = createHttpUserAgent__default["default"]({
|
|
887
899
|
name: 'apollo-client',
|
|
888
900
|
// version: apolloVersion,
|
|
889
|
-
libraryName: _filterInstanceProperty__default["default"](_context = [typeof window !== 'undefined' ? window.app
|
|
901
|
+
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('/'),
|
|
890
902
|
libraryVersion: version,
|
|
891
903
|
contactUrl: 'https://git.io/fjuyC',
|
|
892
904
|
// points to the appkit repo issues
|
|
@@ -900,13 +912,18 @@ const isKnownGraphQlTarget = target => {
|
|
|
900
912
|
return target ? _includesInstanceProperty__default["default"](_context2 = _Object$values__default["default"](constants.GRAPHQL_TARGETS)).call(_context2, target) : false;
|
|
901
913
|
};
|
|
902
914
|
const extractSessionTokenFromResponse = context => {
|
|
903
|
-
|
|
915
|
+
var _context$response, _context$restResponse;
|
|
916
|
+
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');
|
|
904
917
|
if (refreshedSessionToken) {
|
|
905
|
-
return refreshedSessionToken
|
|
918
|
+
return refreshedSessionToken !== null && refreshedSessionToken !== void 0 ? refreshedSessionToken : null;
|
|
906
919
|
}
|
|
907
|
-
const restResponseWithRefreshTokenHeader = context.restResponses
|
|
920
|
+
const restResponseWithRefreshTokenHeader = (_context$restResponse = context.restResponses) === null || _context$restResponse === void 0 ? void 0 : _findInstanceProperty__default["default"](_context$restResponse).call(_context$restResponse, response => {
|
|
921
|
+
var _response$headers;
|
|
922
|
+
return (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.has('x-refreshed-session-token');
|
|
923
|
+
});
|
|
908
924
|
if (restResponseWithRefreshTokenHeader) {
|
|
909
|
-
|
|
925
|
+
var _restResponseWithRefr;
|
|
926
|
+
return (_restResponseWithRefr = restResponseWithRefreshTokenHeader.headers.get('x-refreshed-session-token')) !== null && _restResponseWithRefr !== void 0 ? _restResponseWithRefr : null;
|
|
910
927
|
}
|
|
911
928
|
return null;
|
|
912
929
|
};
|
|
@@ -914,11 +931,11 @@ const extractSessionTokenFromResponse = context => {
|
|
|
914
931
|
/* eslint-disable import/prefer-default-export */
|
|
915
932
|
// Use a middleware to update the request headers with the correct params.
|
|
916
933
|
const headerLink = new client.ApolloLink((operation, forward) => {
|
|
917
|
-
var _context3;
|
|
934
|
+
var _context3, _context4;
|
|
918
935
|
const apolloContext = operation.getContext();
|
|
919
936
|
const variables = operation.variables;
|
|
920
937
|
const graphQlTarget = apolloContext.target || variables.target;
|
|
921
|
-
if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(
|
|
938
|
+
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, "\""));
|
|
922
939
|
|
|
923
940
|
/**
|
|
924
941
|
* NOTE:
|
|
@@ -945,7 +962,7 @@ const headerLink = new client.ApolloLink((operation, forward) => {
|
|
|
945
962
|
forwardToConfig: apolloContext.forwardToConfig,
|
|
946
963
|
projectKey
|
|
947
964
|
}));
|
|
948
|
-
return _mapInstanceProperty__default["default"](
|
|
965
|
+
return _mapInstanceProperty__default["default"](_context4 = forward(operation)).call(_context4, response => {
|
|
949
966
|
const context = operation.getContext();
|
|
950
967
|
const refreshedSessionToken = extractSessionTokenFromResponse(context);
|
|
951
968
|
if (refreshedSessionToken) {
|
|
@@ -958,7 +975,7 @@ const headerLink = new client.ApolloLink((operation, forward) => {
|
|
|
958
975
|
const tokenRetryLink = new retry.RetryLink({
|
|
959
976
|
attempts: (count, operation, error) => {
|
|
960
977
|
const context = operation.getContext();
|
|
961
|
-
if (error
|
|
978
|
+
if ((error === null || error === void 0 ? void 0 : error.statusCode) === constants.STATUS_CODES.UNAUTHORIZED && count === 1 && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
962
979
|
operation.setContext(_ref => {
|
|
963
980
|
let headers = _ref.headers;
|
|
964
981
|
return {
|
|
@@ -976,7 +993,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _co
|
|
|
976
993
|
const createApolloLink = function () {
|
|
977
994
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
978
995
|
const httpLink = client.createHttpLink({
|
|
979
|
-
uri:
|
|
996
|
+
uri: "".concat(getMcApiUrl(), "/graphql"),
|
|
980
997
|
fetch
|
|
981
998
|
});
|
|
982
999
|
|
|
@@ -1020,8 +1037,9 @@ const mergeArraysObjects = function () {
|
|
|
1020
1037
|
}, []);
|
|
1021
1038
|
};
|
|
1022
1039
|
const createApolloClient = function () {
|
|
1040
|
+
var _options$cache, _customCacheConfig$ty;
|
|
1023
1041
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1024
|
-
const customCacheConfig = options
|
|
1042
|
+
const customCacheConfig = (_options$cache = options === null || options === void 0 ? void 0 : options.cache) !== null && _options$cache !== void 0 ? _options$cache : {};
|
|
1025
1043
|
return new client.ApolloClient({
|
|
1026
1044
|
link: createApolloLink(options),
|
|
1027
1045
|
// https://www.apollographql.com/docs/react/caching/cache-configuration/
|
|
@@ -1060,7 +1078,7 @@ const createApolloClient = function () {
|
|
|
1060
1078
|
}
|
|
1061
1079
|
}
|
|
1062
1080
|
}
|
|
1063
|
-
}, customCacheConfig.typePolicies
|
|
1081
|
+
}, (_customCacheConfig$ty = customCacheConfig.typePolicies) !== null && _customCacheConfig$ty !== void 0 ? _customCacheConfig$ty : {})
|
|
1064
1082
|
}))
|
|
1065
1083
|
});
|
|
1066
1084
|
};
|
|
@@ -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');
|
|
@@ -58,6 +59,7 @@ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$def
|
|
|
58
59
|
var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
|
|
59
60
|
var moment__default = /*#__PURE__*/_interopDefault(moment);
|
|
60
61
|
var _URL__default = /*#__PURE__*/_interopDefault(_URL);
|
|
62
|
+
var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
|
|
61
63
|
var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
|
|
62
64
|
var _Object$entries__default = /*#__PURE__*/_interopDefault(_Object$entries);
|
|
63
65
|
var _valuesInstanceProperty__default = /*#__PURE__*/_interopDefault(_valuesInstanceProperty);
|
|
@@ -75,7 +77,7 @@ var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construc
|
|
|
75
77
|
var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
|
|
76
78
|
|
|
77
79
|
// NOTE: This string will be replaced on build time with the package version.
|
|
78
|
-
var version = "24.
|
|
80
|
+
var version = "24.12.0";
|
|
79
81
|
|
|
80
82
|
// From https://github.com/acdlite/recompose/blob/master/src/packages/recompose/getDisplayName.js
|
|
81
83
|
const getDisplayName = Component => {
|
|
@@ -97,9 +99,10 @@ const getMcOriginTld = host => {
|
|
|
97
99
|
return host.replace(mcHostnameRegex, '$3');
|
|
98
100
|
};
|
|
99
101
|
const getMcApiUrlFromOrigin = origin => {
|
|
102
|
+
var _context;
|
|
100
103
|
const url = new _URL__default["default"](origin);
|
|
101
104
|
const originTld = getMcOriginTld(url.host);
|
|
102
|
-
return
|
|
105
|
+
return _concatInstanceProperty__default["default"](_context = "".concat(url.protocol, "//mc-api.")).call(_context, originTld);
|
|
103
106
|
};
|
|
104
107
|
const parseAsBoolean = value => value === true || value === 'true';
|
|
105
108
|
function getMcApiUrl() {
|
|
@@ -331,9 +334,9 @@ const createApplicationContext = (environment, user, project, projectDataLocale)
|
|
|
331
334
|
environment: mapEnvironmentToApplicationContextEnvironment(environment),
|
|
332
335
|
user: mapUserToApplicationContextUser(user),
|
|
333
336
|
project: mapProjectToApplicationContextProject(project),
|
|
334
|
-
permissions: normalizeAllAppliedPermissions(project
|
|
335
|
-
actionRights: normalizeAllAppliedActionRights(project
|
|
336
|
-
dataFences: normalizeAllAppliedDataFences(project
|
|
337
|
+
permissions: normalizeAllAppliedPermissions(project === null || project === void 0 ? void 0 : project.allAppliedPermissions),
|
|
338
|
+
actionRights: normalizeAllAppliedActionRights(project === null || project === void 0 ? void 0 : project.allAppliedActionRights),
|
|
339
|
+
dataFences: normalizeAllAppliedDataFences(project === null || project === void 0 ? void 0 : project.allAppliedDataFences),
|
|
337
340
|
dataLocale: projectDataLocale || null
|
|
338
341
|
});
|
|
339
342
|
const ApplicationContextProvider = props => jsxRuntime.jsx(Context$2.Provider, {
|
|
@@ -363,7 +366,7 @@ function withApplicationContext(mapApplicationContextToProps) {
|
|
|
363
366
|
return jsxRuntime.jsx(Component, _objectSpread$6(_objectSpread$6({}, props), mappedProps));
|
|
364
367
|
}
|
|
365
368
|
});
|
|
366
|
-
WrappedComponent.displayName =
|
|
369
|
+
WrappedComponent.displayName = "withApplicationContext(".concat(getDisplayName(Component), ")");
|
|
367
370
|
return WrappedComponent;
|
|
368
371
|
};
|
|
369
372
|
}
|
|
@@ -498,7 +501,7 @@ function withProjectExtensionImageRegex() {
|
|
|
498
501
|
}))
|
|
499
502
|
});
|
|
500
503
|
};
|
|
501
|
-
WrappedComponent.displayName =
|
|
504
|
+
WrappedComponent.displayName = "withProjectExtensionImageRegex(".concat(getDisplayName(Component), ")");
|
|
502
505
|
return WrappedComponent;
|
|
503
506
|
};
|
|
504
507
|
}
|
|
@@ -519,8 +522,8 @@ const forwardTokenRetryHeader = headers => _objectSpread$3(_objectSpread$3({}, h
|
|
|
519
522
|
// so that the MC BE can issue a new token.
|
|
520
523
|
// NOTE: the retry is not meant to work for the MC access token.
|
|
521
524
|
const getDoesGraphQLTargetSupportTokenRetry = context => {
|
|
522
|
-
var _context;
|
|
523
|
-
const graphQLTarget = context.headers
|
|
525
|
+
var _context$headers, _context$headers2, _context;
|
|
526
|
+
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()]);
|
|
524
527
|
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));
|
|
525
528
|
};
|
|
526
529
|
const isHttpError = error => error.statusCode !== undefined || error.statusCode !== undefined;
|
|
@@ -534,7 +537,7 @@ const errorLink = error.onError(_ref => {
|
|
|
534
537
|
operation = _ref.operation,
|
|
535
538
|
forward = _ref.forward;
|
|
536
539
|
if (networkError && isHttpError(networkError) && networkError.statusCode === constants.STATUS_CODES.UNAUTHORIZED) {
|
|
537
|
-
history__default["default"].push(
|
|
540
|
+
history__default["default"].push("/logout?reason=".concat(constants.LOGOUT_REASONS.UNAUTHORIZED));
|
|
538
541
|
return;
|
|
539
542
|
}
|
|
540
543
|
|
|
@@ -546,7 +549,8 @@ const errorLink = error.onError(_ref => {
|
|
|
546
549
|
const context = operation.getContext();
|
|
547
550
|
if (graphQLErrors && isGraphQLError(graphQLErrors)) {
|
|
548
551
|
for (const err of graphQLErrors) {
|
|
549
|
-
|
|
552
|
+
var _err$extensions;
|
|
553
|
+
const isNonAuthenticatedViaExtensionCode = (err === null || err === void 0 || (_err$extensions = err.extensions) === null || _err$extensions === void 0 ? void 0 : _err$extensions.code) === 'UNAUTHENTICATED';
|
|
550
554
|
/**
|
|
551
555
|
* NOTE:
|
|
552
556
|
* Not not all GraphQL APIs expose an `extensions` field in
|
|
@@ -554,7 +558,7 @@ const errorLink = error.onError(_ref => {
|
|
|
554
558
|
* property until they introduced support for the `extensions`
|
|
555
559
|
* field.
|
|
556
560
|
*/
|
|
557
|
-
const isNonAuthenticatedViaCode = err
|
|
561
|
+
const isNonAuthenticatedViaCode = (err === null || err === void 0 ? void 0 : err.message) === 'invalid_token';
|
|
558
562
|
if ((isNonAuthenticatedViaExtensionCode || isNonAuthenticatedViaCode) && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
559
563
|
operation.setContext(_ref2 => {
|
|
560
564
|
let headers = _ref2.headers;
|
|
@@ -590,7 +594,8 @@ const errorLink = error.onError(_ref => {
|
|
|
590
594
|
|
|
591
595
|
// Attempt to load the `teamId` from sessionStorage
|
|
592
596
|
function selectTeamIdFromStorage() {
|
|
593
|
-
|
|
597
|
+
var _window$app$__DEVELOP;
|
|
598
|
+
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);
|
|
594
599
|
}
|
|
595
600
|
|
|
596
601
|
const staticUrlPathsInPositionOfProjectKey = ['login', 'logout', 'account'];
|
|
@@ -651,7 +656,7 @@ function getCorrelationId() {
|
|
|
651
656
|
|
|
652
657
|
const createApolloContextForProxyForwardTo = proxyForwardTocontext => ({
|
|
653
658
|
// Send the request to the forward-to endpoint.
|
|
654
|
-
uri:
|
|
659
|
+
uri: "".concat(getMcApiUrl(), "/proxy/forward-to"),
|
|
655
660
|
// Custom properties to be used by the "header-link".
|
|
656
661
|
forwardToConfig: proxyForwardTocontext,
|
|
657
662
|
skipGraphQlTargetCheck: true
|
|
@@ -692,7 +697,7 @@ function selectUserLanguageFromStorage() {
|
|
|
692
697
|
const getSessionToken = () => window.sessionStorage.getItem(constants.STORAGE_KEYS.SESSION_TOKEN);
|
|
693
698
|
const setActiveSession = sessionToken => {
|
|
694
699
|
if (!sessionToken) return;
|
|
695
|
-
window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_TOKEN, sessionToken
|
|
700
|
+
window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_TOKEN, sessionToken !== null && sessionToken !== void 0 ? sessionToken : '');
|
|
696
701
|
window.localStorage.setItem(constants.STORAGE_KEYS.LOGIN_STRATEGY, constants.LOGIN_STRATEGY_OIDC);
|
|
697
702
|
// Remove flag for original workflow
|
|
698
703
|
window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
|
|
@@ -714,7 +719,8 @@ const setSessionScope = scope => {
|
|
|
714
719
|
window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_SCOPE, scope);
|
|
715
720
|
};
|
|
716
721
|
const getSessionState = stateId => {
|
|
717
|
-
|
|
722
|
+
var _context;
|
|
723
|
+
const sessionStateKey = _concatInstanceProperty__default["default"](_context = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context, stateId);
|
|
718
724
|
const unparsedSessionState = window.sessionStorage.getItem(sessionStateKey);
|
|
719
725
|
if (unparsedSessionState) {
|
|
720
726
|
try {
|
|
@@ -726,11 +732,13 @@ const getSessionState = stateId => {
|
|
|
726
732
|
return null;
|
|
727
733
|
};
|
|
728
734
|
const setSessionState = (stateId, state) => {
|
|
729
|
-
|
|
735
|
+
var _context3;
|
|
736
|
+
const sessionStateKey = _concatInstanceProperty__default["default"](_context3 = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context3, stateId);
|
|
730
737
|
window.sessionStorage.setItem(sessionStateKey, _JSON$stringify__default["default"](state));
|
|
731
738
|
};
|
|
732
739
|
const removeSessionState = stateId => {
|
|
733
|
-
|
|
740
|
+
var _context4;
|
|
741
|
+
const sessionStateKey = _concatInstanceProperty__default["default"](_context4 = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context4, stateId);
|
|
734
742
|
window.sessionStorage.removeItem(sessionStateKey);
|
|
735
743
|
};
|
|
736
744
|
|
|
@@ -752,13 +760,14 @@ var oidcStorage = /*#__PURE__*/Object.freeze({
|
|
|
752
760
|
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)); }
|
|
753
761
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function () { return !!t; })(); }
|
|
754
762
|
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; }
|
|
755
|
-
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
763
|
+
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; }
|
|
756
764
|
let _userAgent$1;
|
|
757
765
|
const getUserAgent$1 = () => {
|
|
758
766
|
if (!_userAgent$1) {
|
|
767
|
+
var _window$app$applicati, _window$app;
|
|
759
768
|
_userAgent$1 = createHttpUserAgent__default["default"]({
|
|
760
769
|
name: 'unknown-http-client',
|
|
761
|
-
libraryName: typeof window !== 'undefined' ? window.app
|
|
770
|
+
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
|
|
762
771
|
});
|
|
763
772
|
}
|
|
764
773
|
return _userAgent$1;
|
|
@@ -766,48 +775,50 @@ const getUserAgent$1 = () => {
|
|
|
766
775
|
const defaultForwardToVersion = 'v2';
|
|
767
776
|
const defaultForwardToAudiencePolicy = 'forward-url-full-path';
|
|
768
777
|
function buildApiUrl(endpoint) {
|
|
778
|
+
var _context;
|
|
769
779
|
const apiUrl = getMcApiUrl().replace(/\/$/, '');
|
|
770
|
-
return
|
|
780
|
+
return _concatInstanceProperty__default["default"](_context = "".concat(apiUrl)).call(_context, endpoint);
|
|
771
781
|
}
|
|
772
782
|
const getAppliedForwardToHeaders = forwardToConfig => {
|
|
773
|
-
var
|
|
783
|
+
var _context2, _forwardToConfig$head, _forwardToConfig$vers, _forwardToConfig$audi;
|
|
774
784
|
if (!forwardToConfig) {
|
|
775
785
|
return {};
|
|
776
786
|
}
|
|
777
787
|
if (!forwardToConfig.uri) {
|
|
778
|
-
throw new Error(
|
|
788
|
+
throw new Error("Missing required \"uri\" option.");
|
|
779
789
|
}
|
|
780
790
|
const exchangeTokenClaims = [];
|
|
781
791
|
if (forwardToConfig.includeUserPermissions) {
|
|
782
792
|
exchangeTokenClaims.push('permissions');
|
|
783
793
|
}
|
|
784
|
-
return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty__default["default"](
|
|
794
|
+
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) => {
|
|
785
795
|
let _ref2 = _slicedToArray(_ref, 2),
|
|
786
796
|
headerName = _ref2[0],
|
|
787
797
|
headerValue = _ref2[1];
|
|
788
798
|
return _objectSpread$2(_objectSpread$2({}, customForwardHeaders), {}, {
|
|
789
799
|
// Prefix headers so that the MC API can allow and forward them.
|
|
790
|
-
[
|
|
800
|
+
["x-forward-header-".concat(headerName)]: headerValue
|
|
791
801
|
});
|
|
792
802
|
}, {})), {}, {
|
|
793
|
-
[constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: forwardToConfig.version
|
|
803
|
+
[constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: (_forwardToConfig$vers = forwardToConfig.version) !== null && _forwardToConfig$vers !== void 0 ? _forwardToConfig$vers : defaultForwardToVersion,
|
|
794
804
|
[constants.SUPPORTED_HEADERS.X_FORWARD_TO]: forwardToConfig.uri,
|
|
795
|
-
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: forwardToConfig.audiencePolicy
|
|
805
|
+
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: (_forwardToConfig$audi = forwardToConfig.audiencePolicy) !== null && _forwardToConfig$audi !== void 0 ? _forwardToConfig$audi : defaultForwardToAudiencePolicy,
|
|
796
806
|
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_CLAIMS]: exchangeTokenClaims.join(' ')
|
|
797
807
|
});
|
|
798
808
|
};
|
|
799
809
|
function createHttpClientOptions() {
|
|
810
|
+
var _config$projectKey, _window$app$__DEVELOP;
|
|
800
811
|
let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
801
812
|
const sessionToken = getSessionToken();
|
|
802
|
-
const projectKey = config.projectKey
|
|
813
|
+
const projectKey = (_config$projectKey = config.projectKey) !== null && _config$projectKey !== void 0 ? _config$projectKey : selectProjectKeyFromUrl();
|
|
803
814
|
const userId = selectUserId();
|
|
804
|
-
const userAgent = config
|
|
815
|
+
const userAgent = (config === null || config === void 0 ? void 0 : config.userAgent) || getUserAgent$1();
|
|
805
816
|
return {
|
|
806
817
|
credentials: 'include',
|
|
807
818
|
headers: omitEmpty__default["default"](_objectSpread$2(_objectSpread$2({}, config.headers), {}, {
|
|
808
819
|
// Required headers
|
|
809
820
|
[constants.SUPPORTED_HEADERS.ACCEPT]: 'application/json',
|
|
810
|
-
[constants.SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ?
|
|
821
|
+
[constants.SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ? "Bearer ".concat(sessionToken) : undefined,
|
|
811
822
|
[constants.SUPPORTED_HEADERS.X_APPLICATION_ID]: window.app.applicationIdentifier,
|
|
812
823
|
[constants.SUPPORTED_HEADERS.X_CUSTOM_VIEW_ID]: window.app.customViewId,
|
|
813
824
|
[constants.SUPPORTED_HEADERS.X_CORRELATION_ID]: getCorrelationId({
|
|
@@ -816,7 +827,7 @@ function createHttpClientOptions() {
|
|
|
816
827
|
[constants.SUPPORTED_HEADERS.X_PROJECT_KEY]: projectKey,
|
|
817
828
|
[constants.SUPPORTED_HEADERS.X_USER_AGENT]: userAgent,
|
|
818
829
|
// MC Identity Login Mode Override header for development
|
|
819
|
-
[constants.SUPPORTED_HEADERS.X_MC_IDENTITY_LOGIN_MODE_OVERRIDE]: window.app.__DEVELOPMENT__
|
|
830
|
+
[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
|
|
820
831
|
}, getAppliedForwardToHeaders(config.forwardToConfig)))
|
|
821
832
|
};
|
|
822
833
|
}
|
|
@@ -847,7 +858,7 @@ async function executeHttpClientRequest(fetcher) {
|
|
|
847
858
|
}))
|
|
848
859
|
}));
|
|
849
860
|
if (response.statusCode === constants.STATUS_CODES.UNAUTHORIZED) {
|
|
850
|
-
throw new RenewTokenError(
|
|
861
|
+
throw new RenewTokenError("Unauthorized response, attempting retry.");
|
|
851
862
|
}
|
|
852
863
|
|
|
853
864
|
// In case a new session token is returned from the server, save it.
|
|
@@ -871,15 +882,15 @@ async function executeHttpClientRequest(fetcher) {
|
|
|
871
882
|
}
|
|
872
883
|
|
|
873
884
|
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; }
|
|
874
|
-
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
885
|
+
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; }
|
|
875
886
|
let _userAgent;
|
|
876
887
|
const getUserAgent = () => {
|
|
877
888
|
if (!_userAgent) {
|
|
878
|
-
var _context;
|
|
889
|
+
var _context, _window$app$applicati, _window$app;
|
|
879
890
|
_userAgent = createHttpUserAgent__default["default"]({
|
|
880
891
|
name: 'apollo-client',
|
|
881
892
|
// version: apolloVersion,
|
|
882
|
-
libraryName: _filterInstanceProperty__default["default"](_context = [typeof window !== 'undefined' ? window.app
|
|
893
|
+
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('/'),
|
|
883
894
|
libraryVersion: version,
|
|
884
895
|
contactUrl: 'https://git.io/fjuyC',
|
|
885
896
|
// points to the appkit repo issues
|
|
@@ -893,13 +904,18 @@ const isKnownGraphQlTarget = target => {
|
|
|
893
904
|
return target ? _includesInstanceProperty__default["default"](_context2 = _Object$values__default["default"](constants.GRAPHQL_TARGETS)).call(_context2, target) : false;
|
|
894
905
|
};
|
|
895
906
|
const extractSessionTokenFromResponse = context => {
|
|
896
|
-
|
|
907
|
+
var _context$response, _context$restResponse;
|
|
908
|
+
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');
|
|
897
909
|
if (refreshedSessionToken) {
|
|
898
|
-
return refreshedSessionToken
|
|
910
|
+
return refreshedSessionToken !== null && refreshedSessionToken !== void 0 ? refreshedSessionToken : null;
|
|
899
911
|
}
|
|
900
|
-
const restResponseWithRefreshTokenHeader = context.restResponses
|
|
912
|
+
const restResponseWithRefreshTokenHeader = (_context$restResponse = context.restResponses) === null || _context$restResponse === void 0 ? void 0 : _findInstanceProperty__default["default"](_context$restResponse).call(_context$restResponse, response => {
|
|
913
|
+
var _response$headers;
|
|
914
|
+
return (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.has('x-refreshed-session-token');
|
|
915
|
+
});
|
|
901
916
|
if (restResponseWithRefreshTokenHeader) {
|
|
902
|
-
|
|
917
|
+
var _restResponseWithRefr;
|
|
918
|
+
return (_restResponseWithRefr = restResponseWithRefreshTokenHeader.headers.get('x-refreshed-session-token')) !== null && _restResponseWithRefr !== void 0 ? _restResponseWithRefr : null;
|
|
903
919
|
}
|
|
904
920
|
return null;
|
|
905
921
|
};
|
|
@@ -907,11 +923,11 @@ const extractSessionTokenFromResponse = context => {
|
|
|
907
923
|
/* eslint-disable import/prefer-default-export */
|
|
908
924
|
// Use a middleware to update the request headers with the correct params.
|
|
909
925
|
const headerLink = new client.ApolloLink((operation, forward) => {
|
|
910
|
-
var _context3;
|
|
926
|
+
var _context3, _context4;
|
|
911
927
|
const apolloContext = operation.getContext();
|
|
912
928
|
const variables = operation.variables;
|
|
913
929
|
const graphQlTarget = apolloContext.target || variables.target;
|
|
914
|
-
if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(
|
|
930
|
+
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, "\""));
|
|
915
931
|
|
|
916
932
|
/**
|
|
917
933
|
* NOTE:
|
|
@@ -938,7 +954,7 @@ const headerLink = new client.ApolloLink((operation, forward) => {
|
|
|
938
954
|
forwardToConfig: apolloContext.forwardToConfig,
|
|
939
955
|
projectKey
|
|
940
956
|
}));
|
|
941
|
-
return _mapInstanceProperty__default["default"](
|
|
957
|
+
return _mapInstanceProperty__default["default"](_context4 = forward(operation)).call(_context4, response => {
|
|
942
958
|
const context = operation.getContext();
|
|
943
959
|
const refreshedSessionToken = extractSessionTokenFromResponse(context);
|
|
944
960
|
if (refreshedSessionToken) {
|
|
@@ -951,7 +967,7 @@ const headerLink = new client.ApolloLink((operation, forward) => {
|
|
|
951
967
|
const tokenRetryLink = new retry.RetryLink({
|
|
952
968
|
attempts: (count, operation, error) => {
|
|
953
969
|
const context = operation.getContext();
|
|
954
|
-
if (error
|
|
970
|
+
if ((error === null || error === void 0 ? void 0 : error.statusCode) === constants.STATUS_CODES.UNAUTHORIZED && count === 1 && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
955
971
|
operation.setContext(_ref => {
|
|
956
972
|
let headers = _ref.headers;
|
|
957
973
|
return {
|
|
@@ -969,7 +985,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _co
|
|
|
969
985
|
const createApolloLink = function () {
|
|
970
986
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
971
987
|
const httpLink = client.createHttpLink({
|
|
972
|
-
uri:
|
|
988
|
+
uri: "".concat(getMcApiUrl(), "/graphql"),
|
|
973
989
|
fetch
|
|
974
990
|
});
|
|
975
991
|
|
|
@@ -1013,8 +1029,9 @@ const mergeArraysObjects = function () {
|
|
|
1013
1029
|
}, []);
|
|
1014
1030
|
};
|
|
1015
1031
|
const createApolloClient = function () {
|
|
1032
|
+
var _options$cache, _customCacheConfig$ty;
|
|
1016
1033
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1017
|
-
const customCacheConfig = options
|
|
1034
|
+
const customCacheConfig = (_options$cache = options === null || options === void 0 ? void 0 : options.cache) !== null && _options$cache !== void 0 ? _options$cache : {};
|
|
1018
1035
|
return new client.ApolloClient({
|
|
1019
1036
|
link: createApolloLink(options),
|
|
1020
1037
|
// https://www.apollographql.com/docs/react/caching/cache-configuration/
|
|
@@ -1053,7 +1070,7 @@ const createApolloClient = function () {
|
|
|
1053
1070
|
}
|
|
1054
1071
|
}
|
|
1055
1072
|
}
|
|
1056
|
-
}, customCacheConfig.typePolicies
|
|
1073
|
+
}, (_customCacheConfig$ty = customCacheConfig.typePolicies) !== null && _customCacheConfig$ty !== void 0 ? _customCacheConfig$ty : {})
|
|
1057
1074
|
}))
|
|
1058
1075
|
});
|
|
1059
1076
|
};
|
|
@@ -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';
|
|
@@ -43,7 +44,7 @@ import _JSON$stringify from '@babel/runtime-corejs3/core-js-stable/json/stringif
|
|
|
43
44
|
import { RetryLink } from '@apollo/client/link/retry';
|
|
44
45
|
|
|
45
46
|
// NOTE: This string will be replaced on build time with the package version.
|
|
46
|
-
var version = "24.
|
|
47
|
+
var version = "24.12.0";
|
|
47
48
|
|
|
48
49
|
// From https://github.com/acdlite/recompose/blob/master/src/packages/recompose/getDisplayName.js
|
|
49
50
|
const getDisplayName = Component => {
|
|
@@ -65,9 +66,10 @@ const getMcOriginTld = host => {
|
|
|
65
66
|
return host.replace(mcHostnameRegex, '$3');
|
|
66
67
|
};
|
|
67
68
|
const getMcApiUrlFromOrigin = origin => {
|
|
69
|
+
var _context;
|
|
68
70
|
const url = new _URL(origin);
|
|
69
71
|
const originTld = getMcOriginTld(url.host);
|
|
70
|
-
return
|
|
72
|
+
return _concatInstanceProperty(_context = "".concat(url.protocol, "//mc-api.")).call(_context, originTld);
|
|
71
73
|
};
|
|
72
74
|
const parseAsBoolean = value => value === true || value === 'true';
|
|
73
75
|
function getMcApiUrl() {
|
|
@@ -299,9 +301,9 @@ const createApplicationContext = (environment, user, project, projectDataLocale)
|
|
|
299
301
|
environment: mapEnvironmentToApplicationContextEnvironment(environment),
|
|
300
302
|
user: mapUserToApplicationContextUser(user),
|
|
301
303
|
project: mapProjectToApplicationContextProject(project),
|
|
302
|
-
permissions: normalizeAllAppliedPermissions(project
|
|
303
|
-
actionRights: normalizeAllAppliedActionRights(project
|
|
304
|
-
dataFences: normalizeAllAppliedDataFences(project
|
|
304
|
+
permissions: normalizeAllAppliedPermissions(project === null || project === void 0 ? void 0 : project.allAppliedPermissions),
|
|
305
|
+
actionRights: normalizeAllAppliedActionRights(project === null || project === void 0 ? void 0 : project.allAppliedActionRights),
|
|
306
|
+
dataFences: normalizeAllAppliedDataFences(project === null || project === void 0 ? void 0 : project.allAppliedDataFences),
|
|
305
307
|
dataLocale: projectDataLocale || null
|
|
306
308
|
});
|
|
307
309
|
const ApplicationContextProvider = props => jsx(Context$2.Provider, {
|
|
@@ -331,7 +333,7 @@ function withApplicationContext(mapApplicationContextToProps) {
|
|
|
331
333
|
return jsx(Component, _objectSpread$6(_objectSpread$6({}, props), mappedProps));
|
|
332
334
|
}
|
|
333
335
|
});
|
|
334
|
-
WrappedComponent.displayName =
|
|
336
|
+
WrappedComponent.displayName = "withApplicationContext(".concat(getDisplayName(Component), ")");
|
|
335
337
|
return WrappedComponent;
|
|
336
338
|
};
|
|
337
339
|
}
|
|
@@ -447,7 +449,7 @@ const ProjectExtensionProviderForImageRegex = props => {
|
|
|
447
449
|
};
|
|
448
450
|
ProjectExtensionProviderForImageRegex.displayName = 'ProjectExtensionProviderForImageRegex';
|
|
449
451
|
const GetProjectExtensionImageRegex = props => {
|
|
450
|
-
useWarning(false,
|
|
452
|
+
useWarning(false, "@commercetools-frontend/application-shell-connectors: It is not recommended to use the 'GetProjectExtensionImageRegex' anymore. Please use the 'useProjectExtensionImageRegex' hook instead.");
|
|
451
453
|
return jsx(Context.Consumer, {
|
|
452
454
|
children: imageRegexContext => props.render(imageRegexContext)
|
|
453
455
|
});
|
|
@@ -457,7 +459,7 @@ function withProjectExtensionImageRegex() {
|
|
|
457
459
|
let propKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'imageRegexData';
|
|
458
460
|
return Component => {
|
|
459
461
|
const WrappedComponent = props => {
|
|
460
|
-
useWarning(false,
|
|
462
|
+
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.");
|
|
461
463
|
const imageregexContext = useProjectExtensionImageRegex();
|
|
462
464
|
return jsx(GetProjectExtensionImageRegex, {
|
|
463
465
|
render: () =>
|
|
@@ -467,7 +469,7 @@ function withProjectExtensionImageRegex() {
|
|
|
467
469
|
}))
|
|
468
470
|
});
|
|
469
471
|
};
|
|
470
|
-
WrappedComponent.displayName =
|
|
472
|
+
WrappedComponent.displayName = "withProjectExtensionImageRegex(".concat(getDisplayName(Component), ")");
|
|
471
473
|
return WrappedComponent;
|
|
472
474
|
};
|
|
473
475
|
}
|
|
@@ -488,8 +490,8 @@ const forwardTokenRetryHeader = headers => _objectSpread$3(_objectSpread$3({}, h
|
|
|
488
490
|
// so that the MC BE can issue a new token.
|
|
489
491
|
// NOTE: the retry is not meant to work for the MC access token.
|
|
490
492
|
const getDoesGraphQLTargetSupportTokenRetry = context => {
|
|
491
|
-
var _context;
|
|
492
|
-
const graphQLTarget = context.headers
|
|
493
|
+
var _context$headers, _context$headers2, _context;
|
|
494
|
+
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()]);
|
|
493
495
|
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));
|
|
494
496
|
};
|
|
495
497
|
const isHttpError = error => error.statusCode !== undefined || error.statusCode !== undefined;
|
|
@@ -503,7 +505,7 @@ const errorLink = onError(_ref => {
|
|
|
503
505
|
operation = _ref.operation,
|
|
504
506
|
forward = _ref.forward;
|
|
505
507
|
if (networkError && isHttpError(networkError) && networkError.statusCode === STATUS_CODES.UNAUTHORIZED) {
|
|
506
|
-
history.push(
|
|
508
|
+
history.push("/logout?reason=".concat(LOGOUT_REASONS.UNAUTHORIZED));
|
|
507
509
|
return;
|
|
508
510
|
}
|
|
509
511
|
|
|
@@ -515,7 +517,8 @@ const errorLink = onError(_ref => {
|
|
|
515
517
|
const context = operation.getContext();
|
|
516
518
|
if (graphQLErrors && isGraphQLError(graphQLErrors)) {
|
|
517
519
|
for (const err of graphQLErrors) {
|
|
518
|
-
|
|
520
|
+
var _err$extensions;
|
|
521
|
+
const isNonAuthenticatedViaExtensionCode = (err === null || err === void 0 || (_err$extensions = err.extensions) === null || _err$extensions === void 0 ? void 0 : _err$extensions.code) === 'UNAUTHENTICATED';
|
|
519
522
|
/**
|
|
520
523
|
* NOTE:
|
|
521
524
|
* Not not all GraphQL APIs expose an `extensions` field in
|
|
@@ -523,7 +526,7 @@ const errorLink = onError(_ref => {
|
|
|
523
526
|
* property until they introduced support for the `extensions`
|
|
524
527
|
* field.
|
|
525
528
|
*/
|
|
526
|
-
const isNonAuthenticatedViaCode = err
|
|
529
|
+
const isNonAuthenticatedViaCode = (err === null || err === void 0 ? void 0 : err.message) === 'invalid_token';
|
|
527
530
|
if ((isNonAuthenticatedViaExtensionCode || isNonAuthenticatedViaCode) && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
528
531
|
operation.setContext(_ref2 => {
|
|
529
532
|
let headers = _ref2.headers;
|
|
@@ -559,7 +562,8 @@ const errorLink = onError(_ref => {
|
|
|
559
562
|
|
|
560
563
|
// Attempt to load the `teamId` from sessionStorage
|
|
561
564
|
function selectTeamIdFromStorage() {
|
|
562
|
-
|
|
565
|
+
var _window$app$__DEVELOP;
|
|
566
|
+
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);
|
|
563
567
|
}
|
|
564
568
|
|
|
565
569
|
const staticUrlPathsInPositionOfProjectKey = ['login', 'logout', 'account'];
|
|
@@ -620,7 +624,7 @@ function getCorrelationId() {
|
|
|
620
624
|
|
|
621
625
|
const createApolloContextForProxyForwardTo = proxyForwardTocontext => ({
|
|
622
626
|
// Send the request to the forward-to endpoint.
|
|
623
|
-
uri:
|
|
627
|
+
uri: "".concat(getMcApiUrl(), "/proxy/forward-to"),
|
|
624
628
|
// Custom properties to be used by the "header-link".
|
|
625
629
|
forwardToConfig: proxyForwardTocontext,
|
|
626
630
|
skipGraphQlTargetCheck: true
|
|
@@ -662,7 +666,7 @@ function selectUserLanguageFromStorage() {
|
|
|
662
666
|
const getSessionToken = () => window.sessionStorage.getItem(STORAGE_KEYS.SESSION_TOKEN);
|
|
663
667
|
const setActiveSession = sessionToken => {
|
|
664
668
|
if (!sessionToken) return;
|
|
665
|
-
window.sessionStorage.setItem(STORAGE_KEYS.SESSION_TOKEN, sessionToken
|
|
669
|
+
window.sessionStorage.setItem(STORAGE_KEYS.SESSION_TOKEN, sessionToken !== null && sessionToken !== void 0 ? sessionToken : '');
|
|
666
670
|
window.localStorage.setItem(STORAGE_KEYS.LOGIN_STRATEGY, LOGIN_STRATEGY_OIDC);
|
|
667
671
|
// Remove flag for original workflow
|
|
668
672
|
window.localStorage.removeItem(STORAGE_KEYS.IS_AUTHENTICATED);
|
|
@@ -684,7 +688,8 @@ const setSessionScope = scope => {
|
|
|
684
688
|
window.sessionStorage.setItem(STORAGE_KEYS.SESSION_SCOPE, scope);
|
|
685
689
|
};
|
|
686
690
|
const getSessionState = stateId => {
|
|
687
|
-
|
|
691
|
+
var _context;
|
|
692
|
+
const sessionStateKey = _concatInstanceProperty(_context = "".concat(STORAGE_KEYS.NONCE, "_")).call(_context, stateId);
|
|
688
693
|
const unparsedSessionState = window.sessionStorage.getItem(sessionStateKey);
|
|
689
694
|
if (unparsedSessionState) {
|
|
690
695
|
try {
|
|
@@ -692,19 +697,22 @@ const getSessionState = stateId => {
|
|
|
692
697
|
return parsedSessionState;
|
|
693
698
|
} catch (error) {
|
|
694
699
|
if (process.env.NODE_ENV !== 'production') {
|
|
700
|
+
var _context2;
|
|
695
701
|
// eslint-disable-next-line no-console
|
|
696
|
-
console.warn(
|
|
702
|
+
console.warn(_concatInstanceProperty(_context2 = "Cannot parse session state for \"".concat(sessionStateKey, "\".\n")).call(_context2, unparsedSessionState));
|
|
697
703
|
}
|
|
698
704
|
}
|
|
699
705
|
}
|
|
700
706
|
return null;
|
|
701
707
|
};
|
|
702
708
|
const setSessionState = (stateId, state) => {
|
|
703
|
-
|
|
709
|
+
var _context3;
|
|
710
|
+
const sessionStateKey = _concatInstanceProperty(_context3 = "".concat(STORAGE_KEYS.NONCE, "_")).call(_context3, stateId);
|
|
704
711
|
window.sessionStorage.setItem(sessionStateKey, _JSON$stringify(state));
|
|
705
712
|
};
|
|
706
713
|
const removeSessionState = stateId => {
|
|
707
|
-
|
|
714
|
+
var _context4;
|
|
715
|
+
const sessionStateKey = _concatInstanceProperty(_context4 = "".concat(STORAGE_KEYS.NONCE, "_")).call(_context4, stateId);
|
|
708
716
|
window.sessionStorage.removeItem(sessionStateKey);
|
|
709
717
|
};
|
|
710
718
|
|
|
@@ -726,13 +734,14 @@ var oidcStorage = /*#__PURE__*/Object.freeze({
|
|
|
726
734
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
727
735
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function () { return !!t; })(); }
|
|
728
736
|
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; }
|
|
729
|
-
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
737
|
+
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; }
|
|
730
738
|
let _userAgent$1;
|
|
731
739
|
const getUserAgent$1 = () => {
|
|
732
740
|
if (!_userAgent$1) {
|
|
741
|
+
var _window$app$applicati, _window$app;
|
|
733
742
|
_userAgent$1 = createHttpUserAgent({
|
|
734
743
|
name: 'unknown-http-client',
|
|
735
|
-
libraryName: typeof window !== 'undefined' ? window.app
|
|
744
|
+
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
|
|
736
745
|
});
|
|
737
746
|
}
|
|
738
747
|
return _userAgent$1;
|
|
@@ -740,48 +749,50 @@ const getUserAgent$1 = () => {
|
|
|
740
749
|
const defaultForwardToVersion = 'v2';
|
|
741
750
|
const defaultForwardToAudiencePolicy = 'forward-url-full-path';
|
|
742
751
|
function buildApiUrl(endpoint) {
|
|
752
|
+
var _context;
|
|
743
753
|
const apiUrl = getMcApiUrl().replace(/\/$/, '');
|
|
744
|
-
return
|
|
754
|
+
return _concatInstanceProperty(_context = "".concat(apiUrl)).call(_context, endpoint);
|
|
745
755
|
}
|
|
746
756
|
const getAppliedForwardToHeaders = forwardToConfig => {
|
|
747
|
-
var
|
|
757
|
+
var _context2, _forwardToConfig$head, _forwardToConfig$vers, _forwardToConfig$audi;
|
|
748
758
|
if (!forwardToConfig) {
|
|
749
759
|
return {};
|
|
750
760
|
}
|
|
751
761
|
if (!forwardToConfig.uri) {
|
|
752
|
-
throw new Error(
|
|
762
|
+
throw new Error("Missing required \"uri\" option.");
|
|
753
763
|
}
|
|
754
764
|
const exchangeTokenClaims = [];
|
|
755
765
|
if (forwardToConfig.includeUserPermissions) {
|
|
756
766
|
exchangeTokenClaims.push('permissions');
|
|
757
767
|
}
|
|
758
|
-
return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty(
|
|
768
|
+
return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty(_context2 = _Object$entries((_forwardToConfig$head = forwardToConfig.headers) !== null && _forwardToConfig$head !== void 0 ? _forwardToConfig$head : {})).call(_context2, (customForwardHeaders, _ref) => {
|
|
759
769
|
let _ref2 = _slicedToArray(_ref, 2),
|
|
760
770
|
headerName = _ref2[0],
|
|
761
771
|
headerValue = _ref2[1];
|
|
762
772
|
return _objectSpread$2(_objectSpread$2({}, customForwardHeaders), {}, {
|
|
763
773
|
// Prefix headers so that the MC API can allow and forward them.
|
|
764
|
-
[
|
|
774
|
+
["x-forward-header-".concat(headerName)]: headerValue
|
|
765
775
|
});
|
|
766
776
|
}, {})), {}, {
|
|
767
|
-
[SUPPORTED_HEADERS.ACCEPT_VERSION]: forwardToConfig.version
|
|
777
|
+
[SUPPORTED_HEADERS.ACCEPT_VERSION]: (_forwardToConfig$vers = forwardToConfig.version) !== null && _forwardToConfig$vers !== void 0 ? _forwardToConfig$vers : defaultForwardToVersion,
|
|
768
778
|
[SUPPORTED_HEADERS.X_FORWARD_TO]: forwardToConfig.uri,
|
|
769
|
-
[SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: forwardToConfig.audiencePolicy
|
|
779
|
+
[SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: (_forwardToConfig$audi = forwardToConfig.audiencePolicy) !== null && _forwardToConfig$audi !== void 0 ? _forwardToConfig$audi : defaultForwardToAudiencePolicy,
|
|
770
780
|
[SUPPORTED_HEADERS.X_FORWARD_TO_CLAIMS]: exchangeTokenClaims.join(' ')
|
|
771
781
|
});
|
|
772
782
|
};
|
|
773
783
|
function createHttpClientOptions() {
|
|
784
|
+
var _config$projectKey, _window$app$__DEVELOP;
|
|
774
785
|
let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
775
786
|
const sessionToken = getSessionToken();
|
|
776
|
-
const projectKey = config.projectKey
|
|
787
|
+
const projectKey = (_config$projectKey = config.projectKey) !== null && _config$projectKey !== void 0 ? _config$projectKey : selectProjectKeyFromUrl();
|
|
777
788
|
const userId = selectUserId();
|
|
778
|
-
const userAgent = config
|
|
789
|
+
const userAgent = (config === null || config === void 0 ? void 0 : config.userAgent) || getUserAgent$1();
|
|
779
790
|
return {
|
|
780
791
|
credentials: 'include',
|
|
781
792
|
headers: omitEmpty(_objectSpread$2(_objectSpread$2({}, config.headers), {}, {
|
|
782
793
|
// Required headers
|
|
783
794
|
[SUPPORTED_HEADERS.ACCEPT]: 'application/json',
|
|
784
|
-
[SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ?
|
|
795
|
+
[SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ? "Bearer ".concat(sessionToken) : undefined,
|
|
785
796
|
[SUPPORTED_HEADERS.X_APPLICATION_ID]: window.app.applicationIdentifier,
|
|
786
797
|
[SUPPORTED_HEADERS.X_CUSTOM_VIEW_ID]: window.app.customViewId,
|
|
787
798
|
[SUPPORTED_HEADERS.X_CORRELATION_ID]: getCorrelationId({
|
|
@@ -790,7 +801,7 @@ function createHttpClientOptions() {
|
|
|
790
801
|
[SUPPORTED_HEADERS.X_PROJECT_KEY]: projectKey,
|
|
791
802
|
[SUPPORTED_HEADERS.X_USER_AGENT]: userAgent,
|
|
792
803
|
// MC Identity Login Mode Override header for development
|
|
793
|
-
[SUPPORTED_HEADERS.X_MC_IDENTITY_LOGIN_MODE_OVERRIDE]: window.app.__DEVELOPMENT__
|
|
804
|
+
[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
|
|
794
805
|
}, getAppliedForwardToHeaders(config.forwardToConfig)))
|
|
795
806
|
};
|
|
796
807
|
}
|
|
@@ -821,7 +832,7 @@ async function executeHttpClientRequest(fetcher) {
|
|
|
821
832
|
}))
|
|
822
833
|
}));
|
|
823
834
|
if (response.statusCode === STATUS_CODES.UNAUTHORIZED) {
|
|
824
|
-
throw new RenewTokenError(
|
|
835
|
+
throw new RenewTokenError("Unauthorized response, attempting retry.");
|
|
825
836
|
}
|
|
826
837
|
|
|
827
838
|
// In case a new session token is returned from the server, save it.
|
|
@@ -845,15 +856,15 @@ async function executeHttpClientRequest(fetcher) {
|
|
|
845
856
|
}
|
|
846
857
|
|
|
847
858
|
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; }
|
|
848
|
-
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
859
|
+
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; }
|
|
849
860
|
let _userAgent;
|
|
850
861
|
const getUserAgent = () => {
|
|
851
862
|
if (!_userAgent) {
|
|
852
|
-
var _context;
|
|
863
|
+
var _context, _window$app$applicati, _window$app;
|
|
853
864
|
_userAgent = createHttpUserAgent({
|
|
854
865
|
name: 'apollo-client',
|
|
855
866
|
// version: apolloVersion,
|
|
856
|
-
libraryName: _filterInstanceProperty(_context = [typeof window !== 'undefined' ? window.app
|
|
867
|
+
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('/'),
|
|
857
868
|
libraryVersion: version,
|
|
858
869
|
contactUrl: 'https://git.io/fjuyC',
|
|
859
870
|
// points to the appkit repo issues
|
|
@@ -867,13 +878,18 @@ const isKnownGraphQlTarget = target => {
|
|
|
867
878
|
return target ? _includesInstanceProperty(_context2 = _Object$values(GRAPHQL_TARGETS)).call(_context2, target) : false;
|
|
868
879
|
};
|
|
869
880
|
const extractSessionTokenFromResponse = context => {
|
|
870
|
-
|
|
881
|
+
var _context$response, _context$restResponse;
|
|
882
|
+
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');
|
|
871
883
|
if (refreshedSessionToken) {
|
|
872
|
-
return refreshedSessionToken
|
|
884
|
+
return refreshedSessionToken !== null && refreshedSessionToken !== void 0 ? refreshedSessionToken : null;
|
|
873
885
|
}
|
|
874
|
-
const restResponseWithRefreshTokenHeader = context.restResponses
|
|
886
|
+
const restResponseWithRefreshTokenHeader = (_context$restResponse = context.restResponses) === null || _context$restResponse === void 0 ? void 0 : _findInstanceProperty(_context$restResponse).call(_context$restResponse, response => {
|
|
887
|
+
var _response$headers;
|
|
888
|
+
return (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.has('x-refreshed-session-token');
|
|
889
|
+
});
|
|
875
890
|
if (restResponseWithRefreshTokenHeader) {
|
|
876
|
-
|
|
891
|
+
var _restResponseWithRefr;
|
|
892
|
+
return (_restResponseWithRefr = restResponseWithRefreshTokenHeader.headers.get('x-refreshed-session-token')) !== null && _restResponseWithRefr !== void 0 ? _restResponseWithRefr : null;
|
|
877
893
|
}
|
|
878
894
|
return null;
|
|
879
895
|
};
|
|
@@ -881,11 +897,11 @@ const extractSessionTokenFromResponse = context => {
|
|
|
881
897
|
/* eslint-disable import/prefer-default-export */
|
|
882
898
|
// Use a middleware to update the request headers with the correct params.
|
|
883
899
|
const headerLink = new ApolloLink((operation, forward) => {
|
|
884
|
-
var _context3;
|
|
900
|
+
var _context3, _context4;
|
|
885
901
|
const apolloContext = operation.getContext();
|
|
886
902
|
const variables = operation.variables;
|
|
887
903
|
const graphQlTarget = apolloContext.target || variables.target;
|
|
888
|
-
if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(
|
|
904
|
+
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, "\""));
|
|
889
905
|
|
|
890
906
|
/**
|
|
891
907
|
* NOTE:
|
|
@@ -912,7 +928,7 @@ const headerLink = new ApolloLink((operation, forward) => {
|
|
|
912
928
|
forwardToConfig: apolloContext.forwardToConfig,
|
|
913
929
|
projectKey
|
|
914
930
|
}));
|
|
915
|
-
return _mapInstanceProperty(
|
|
931
|
+
return _mapInstanceProperty(_context4 = forward(operation)).call(_context4, response => {
|
|
916
932
|
const context = operation.getContext();
|
|
917
933
|
const refreshedSessionToken = extractSessionTokenFromResponse(context);
|
|
918
934
|
if (refreshedSessionToken) {
|
|
@@ -925,7 +941,7 @@ const headerLink = new ApolloLink((operation, forward) => {
|
|
|
925
941
|
const tokenRetryLink = new RetryLink({
|
|
926
942
|
attempts: (count, operation, error) => {
|
|
927
943
|
const context = operation.getContext();
|
|
928
|
-
if (error
|
|
944
|
+
if ((error === null || error === void 0 ? void 0 : error.statusCode) === STATUS_CODES.UNAUTHORIZED && count === 1 && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
929
945
|
operation.setContext(_ref => {
|
|
930
946
|
let headers = _ref.headers;
|
|
931
947
|
return {
|
|
@@ -943,7 +959,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _co
|
|
|
943
959
|
const createApolloLink = function () {
|
|
944
960
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
945
961
|
const httpLink = createHttpLink({
|
|
946
|
-
uri:
|
|
962
|
+
uri: "".concat(getMcApiUrl(), "/graphql"),
|
|
947
963
|
fetch
|
|
948
964
|
});
|
|
949
965
|
|
|
@@ -987,8 +1003,9 @@ const mergeArraysObjects = function () {
|
|
|
987
1003
|
}, []);
|
|
988
1004
|
};
|
|
989
1005
|
const createApolloClient = function () {
|
|
1006
|
+
var _options$cache, _customCacheConfig$ty;
|
|
990
1007
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
991
|
-
const customCacheConfig = options
|
|
1008
|
+
const customCacheConfig = (_options$cache = options === null || options === void 0 ? void 0 : options.cache) !== null && _options$cache !== void 0 ? _options$cache : {};
|
|
992
1009
|
return new ApolloClient({
|
|
993
1010
|
link: createApolloLink(options),
|
|
994
1011
|
// https://www.apollographql.com/docs/react/caching/cache-configuration/
|
|
@@ -1027,7 +1044,7 @@ const createApolloClient = function () {
|
|
|
1027
1044
|
}
|
|
1028
1045
|
}
|
|
1029
1046
|
}
|
|
1030
|
-
}, customCacheConfig.typePolicies
|
|
1047
|
+
}, (_customCacheConfig$ty = customCacheConfig.typePolicies) !== null && _customCacheConfig$ty !== void 0 ? _customCacheConfig$ty : {})
|
|
1031
1048
|
}))
|
|
1032
1049
|
});
|
|
1033
1050
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commercetools-frontend/application-shell-connectors",
|
|
3
|
-
"version": "24.
|
|
3
|
+
"version": "24.12.0",
|
|
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": {
|
|
@@ -37,10 +37,10 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@babel/runtime": "^7.22.15",
|
|
39
39
|
"@babel/runtime-corejs3": "^7.22.15",
|
|
40
|
-
"@commercetools-frontend/application-config": "24.
|
|
41
|
-
"@commercetools-frontend/browser-history": "24.
|
|
42
|
-
"@commercetools-frontend/constants": "24.
|
|
43
|
-
"@commercetools-frontend/sentry": "24.
|
|
40
|
+
"@commercetools-frontend/application-config": "24.12.0",
|
|
41
|
+
"@commercetools-frontend/browser-history": "24.12.0",
|
|
42
|
+
"@commercetools-frontend/constants": "24.12.0",
|
|
43
|
+
"@commercetools-frontend/sentry": "24.12.0",
|
|
44
44
|
"@commercetools/http-user-agent": "3.0.0",
|
|
45
45
|
"@emotion/react": "^11.14.0",
|
|
46
46
|
"@types/lodash": "^4.14.198",
|