@commercetools-frontend/application-shell-connectors 24.10.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.10.0";
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 `${url.protocol}//mc-api.${originTld}`;
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?.allAppliedPermissions),
336
- actionRights: normalizeAllAppliedActionRights(project?.allAppliedActionRights),
337
- dataFences: normalizeAllAppliedDataFences(project?.allAppliedDataFences),
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 = `withApplicationContext(${getDisplayName(Component)})`;
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, `@commercetools-frontend/application-shell-connectors: It is not recommended to use the 'GetProjectExtensionImageRegex' anymore. Please use the 'useProjectExtensionImageRegex' hook instead.`);
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, `@commercetools-frontend/application-shell-connectors: It is not recommended to use the 'withProjectExtensionImageRegex' high order component anymore. Please use the 'useProjectExtensionImageRegex' hook instead.`);
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 = `withProjectExtensionImageRegex(${getDisplayName(Component)})`;
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?.[constants.SUPPORTED_HEADERS.X_GRAPHQL_TARGET] || context.headers?.[constants.SUPPORTED_HEADERS.X_GRAPHQL_TARGET.toLowerCase()];
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(`/logout?reason=${constants.LOGOUT_REASONS.UNAUTHORIZED}`);
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
- const isNonAuthenticatedViaExtensionCode = err?.extensions?.code === 'UNAUTHENTICATED';
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?.message === 'invalid_token';
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
- return window.sessionStorage.getItem(constants.STORAGE_KEYS.ACTIVE_TEAM_ID) || window.app.__DEVELOPMENT__?.oidc?.teamId;
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: `${getMcApiUrl()}/proxy/forward-to`,
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
@@ -687,10 +692,15 @@ const logger = {
687
692
  }
688
693
  };
689
694
 
695
+ // Attempt to load the `user language` from sessionStorage
696
+ function selectUserLanguageFromStorage() {
697
+ return window.sessionStorage.getItem(constants.STORAGE_KEYS.ACTIVE_USER_LANGUAGE) || null;
698
+ }
699
+
690
700
  const getSessionToken = () => window.sessionStorage.getItem(constants.STORAGE_KEYS.SESSION_TOKEN);
691
701
  const setActiveSession = sessionToken => {
692
702
  if (!sessionToken) return;
693
- window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_TOKEN, sessionToken ?? '');
703
+ window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_TOKEN, sessionToken !== null && sessionToken !== void 0 ? sessionToken : '');
694
704
  window.localStorage.setItem(constants.STORAGE_KEYS.LOGIN_STRATEGY, constants.LOGIN_STRATEGY_OIDC);
695
705
  // Remove flag for original workflow
696
706
  window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
@@ -712,7 +722,8 @@ const setSessionScope = scope => {
712
722
  window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_SCOPE, scope);
713
723
  };
714
724
  const getSessionState = stateId => {
715
- const sessionStateKey = `${constants.STORAGE_KEYS.NONCE}_${stateId}`;
725
+ var _context;
726
+ const sessionStateKey = _concatInstanceProperty__default["default"](_context = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context, stateId);
716
727
  const unparsedSessionState = window.sessionStorage.getItem(sessionStateKey);
717
728
  if (unparsedSessionState) {
718
729
  try {
@@ -720,19 +731,22 @@ const getSessionState = stateId => {
720
731
  return parsedSessionState;
721
732
  } catch (error) {
722
733
  if (process.env.NODE_ENV !== 'production') {
734
+ var _context2;
723
735
  // eslint-disable-next-line no-console
724
- console.warn(`Cannot parse session state for "${sessionStateKey}".\n${unparsedSessionState}`);
736
+ console.warn(_concatInstanceProperty__default["default"](_context2 = "Cannot parse session state for \"".concat(sessionStateKey, "\".\n")).call(_context2, unparsedSessionState));
725
737
  }
726
738
  }
727
739
  }
728
740
  return null;
729
741
  };
730
742
  const setSessionState = (stateId, state) => {
731
- const sessionStateKey = `${constants.STORAGE_KEYS.NONCE}_${stateId}`;
743
+ var _context3;
744
+ const sessionStateKey = _concatInstanceProperty__default["default"](_context3 = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context3, stateId);
732
745
  window.sessionStorage.setItem(sessionStateKey, _JSON$stringify__default["default"](state));
733
746
  };
734
747
  const removeSessionState = stateId => {
735
- const sessionStateKey = `${constants.STORAGE_KEYS.NONCE}_${stateId}`;
748
+ var _context4;
749
+ const sessionStateKey = _concatInstanceProperty__default["default"](_context4 = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context4, stateId);
736
750
  window.sessionStorage.removeItem(sessionStateKey);
737
751
  };
738
752
 
@@ -754,13 +768,14 @@ var oidcStorage = /*#__PURE__*/Object.freeze({
754
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)); }
755
769
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function () { return !!t; })(); }
756
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; }
757
- function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$2(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$2(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
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; }
758
772
  let _userAgent$1;
759
773
  const getUserAgent$1 = () => {
760
774
  if (!_userAgent$1) {
775
+ var _window$app$applicati, _window$app;
761
776
  _userAgent$1 = createHttpUserAgent__default["default"]({
762
777
  name: 'unknown-http-client',
763
- libraryName: typeof window !== 'undefined' ? window.app?.applicationName ?? 'unknown-application-name' : undefined
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
764
779
  });
765
780
  }
766
781
  return _userAgent$1;
@@ -768,48 +783,50 @@ const getUserAgent$1 = () => {
768
783
  const defaultForwardToVersion = 'v2';
769
784
  const defaultForwardToAudiencePolicy = 'forward-url-full-path';
770
785
  function buildApiUrl(endpoint) {
786
+ var _context;
771
787
  const apiUrl = getMcApiUrl().replace(/\/$/, '');
772
- return `${apiUrl}${endpoint}`;
788
+ return _concatInstanceProperty__default["default"](_context = "".concat(apiUrl)).call(_context, endpoint);
773
789
  }
774
790
  const getAppliedForwardToHeaders = forwardToConfig => {
775
- var _context;
791
+ var _context2, _forwardToConfig$head, _forwardToConfig$vers, _forwardToConfig$audi;
776
792
  if (!forwardToConfig) {
777
793
  return {};
778
794
  }
779
795
  if (!forwardToConfig.uri) {
780
- throw new Error(`Missing required "uri" option.`);
796
+ throw new Error("Missing required \"uri\" option.");
781
797
  }
782
798
  const exchangeTokenClaims = [];
783
799
  if (forwardToConfig.includeUserPermissions) {
784
800
  exchangeTokenClaims.push('permissions');
785
801
  }
786
- return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty__default["default"](_context = _Object$entries__default["default"](forwardToConfig.headers ?? {})).call(_context, (customForwardHeaders, _ref) => {
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) => {
787
803
  let _ref2 = _slicedToArray(_ref, 2),
788
804
  headerName = _ref2[0],
789
805
  headerValue = _ref2[1];
790
806
  return _objectSpread$2(_objectSpread$2({}, customForwardHeaders), {}, {
791
807
  // Prefix headers so that the MC API can allow and forward them.
792
- [`x-forward-header-${headerName}`]: headerValue
808
+ ["x-forward-header-".concat(headerName)]: headerValue
793
809
  });
794
810
  }, {})), {}, {
795
- [constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: forwardToConfig.version ?? defaultForwardToVersion,
811
+ [constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: (_forwardToConfig$vers = forwardToConfig.version) !== null && _forwardToConfig$vers !== void 0 ? _forwardToConfig$vers : defaultForwardToVersion,
796
812
  [constants.SUPPORTED_HEADERS.X_FORWARD_TO]: forwardToConfig.uri,
797
- [constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: forwardToConfig.audiencePolicy ?? defaultForwardToAudiencePolicy,
813
+ [constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: (_forwardToConfig$audi = forwardToConfig.audiencePolicy) !== null && _forwardToConfig$audi !== void 0 ? _forwardToConfig$audi : defaultForwardToAudiencePolicy,
798
814
  [constants.SUPPORTED_HEADERS.X_FORWARD_TO_CLAIMS]: exchangeTokenClaims.join(' ')
799
815
  });
800
816
  };
801
817
  function createHttpClientOptions() {
818
+ var _config$projectKey, _window$app$__DEVELOP;
802
819
  let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
803
820
  const sessionToken = getSessionToken();
804
- const projectKey = config.projectKey ?? selectProjectKeyFromUrl();
821
+ const projectKey = (_config$projectKey = config.projectKey) !== null && _config$projectKey !== void 0 ? _config$projectKey : selectProjectKeyFromUrl();
805
822
  const userId = selectUserId();
806
- const userAgent = config?.userAgent || getUserAgent$1();
823
+ const userAgent = (config === null || config === void 0 ? void 0 : config.userAgent) || getUserAgent$1();
807
824
  return {
808
825
  credentials: 'include',
809
826
  headers: omitEmpty__default["default"](_objectSpread$2(_objectSpread$2({}, config.headers), {}, {
810
827
  // Required headers
811
828
  [constants.SUPPORTED_HEADERS.ACCEPT]: 'application/json',
812
- [constants.SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ? `Bearer ${sessionToken}` : undefined,
829
+ [constants.SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ? "Bearer ".concat(sessionToken) : undefined,
813
830
  [constants.SUPPORTED_HEADERS.X_APPLICATION_ID]: window.app.applicationIdentifier,
814
831
  [constants.SUPPORTED_HEADERS.X_CUSTOM_VIEW_ID]: window.app.customViewId,
815
832
  [constants.SUPPORTED_HEADERS.X_CORRELATION_ID]: getCorrelationId({
@@ -818,7 +835,7 @@ function createHttpClientOptions() {
818
835
  [constants.SUPPORTED_HEADERS.X_PROJECT_KEY]: projectKey,
819
836
  [constants.SUPPORTED_HEADERS.X_USER_AGENT]: userAgent,
820
837
  // MC Identity Login Mode Override header for development
821
- [constants.SUPPORTED_HEADERS.X_MC_IDENTITY_LOGIN_MODE_OVERRIDE]: window.app.__DEVELOPMENT__?.mcIdentityLoginModeOverride
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
822
839
  }, getAppliedForwardToHeaders(config.forwardToConfig)))
823
840
  };
824
841
  }
@@ -849,7 +866,7 @@ async function executeHttpClientRequest(fetcher) {
849
866
  }))
850
867
  }));
851
868
  if (response.statusCode === constants.STATUS_CODES.UNAUTHORIZED) {
852
- throw new RenewTokenError(`Unauthorized response, attempting retry.`);
869
+ throw new RenewTokenError("Unauthorized response, attempting retry.");
853
870
  }
854
871
 
855
872
  // In case a new session token is returned from the server, save it.
@@ -873,15 +890,15 @@ async function executeHttpClientRequest(fetcher) {
873
890
  }
874
891
 
875
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; }
876
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var _context4, _context5; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context4 = ownKeys$1(Object(t), !0)).call(_context4, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context5 = ownKeys$1(Object(t))).call(_context5, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
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; }
877
894
  let _userAgent;
878
895
  const getUserAgent = () => {
879
896
  if (!_userAgent) {
880
- var _context;
897
+ var _context, _window$app$applicati, _window$app;
881
898
  _userAgent = createHttpUserAgent__default["default"]({
882
899
  name: 'apollo-client',
883
900
  // version: apolloVersion,
884
- libraryName: _filterInstanceProperty__default["default"](_context = [typeof window !== 'undefined' ? window.app?.applicationName ?? 'unknown-application-name' : undefined, 'application-shell']).call(_context, Boolean).join('/'),
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('/'),
885
902
  libraryVersion: version,
886
903
  contactUrl: 'https://git.io/fjuyC',
887
904
  // points to the appkit repo issues
@@ -895,13 +912,18 @@ const isKnownGraphQlTarget = target => {
895
912
  return target ? _includesInstanceProperty__default["default"](_context2 = _Object$values__default["default"](constants.GRAPHQL_TARGETS)).call(_context2, target) : false;
896
913
  };
897
914
  const extractSessionTokenFromResponse = context => {
898
- const refreshedSessionToken = context.response?.headers?.get('x-refreshed-session-token');
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');
899
917
  if (refreshedSessionToken) {
900
- return refreshedSessionToken ?? null;
918
+ return refreshedSessionToken !== null && refreshedSessionToken !== void 0 ? refreshedSessionToken : null;
901
919
  }
902
- const restResponseWithRefreshTokenHeader = context.restResponses?.find(response => response.headers?.has('x-refreshed-session-token'));
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
+ });
903
924
  if (restResponseWithRefreshTokenHeader) {
904
- return restResponseWithRefreshTokenHeader.headers.get('x-refreshed-session-token') ?? null;
925
+ var _restResponseWithRefr;
926
+ return (_restResponseWithRefr = restResponseWithRefreshTokenHeader.headers.get('x-refreshed-session-token')) !== null && _restResponseWithRefr !== void 0 ? _restResponseWithRefr : null;
905
927
  }
906
928
  return null;
907
929
  };
@@ -909,11 +931,11 @@ const extractSessionTokenFromResponse = context => {
909
931
  /* eslint-disable import/prefer-default-export */
910
932
  // Use a middleware to update the request headers with the correct params.
911
933
  const headerLink = new client.ApolloLink((operation, forward) => {
912
- var _context3;
934
+ var _context3, _context4;
913
935
  const apolloContext = operation.getContext();
914
936
  const variables = operation.variables;
915
937
  const graphQlTarget = apolloContext.target || variables.target;
916
- if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(`GraphQL target "${graphQlTarget}" is missing (or is not supported) in operation "${operation.operationName}"`);
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, "\""));
917
939
 
918
940
  /**
919
941
  * NOTE:
@@ -940,7 +962,7 @@ const headerLink = new client.ApolloLink((operation, forward) => {
940
962
  forwardToConfig: apolloContext.forwardToConfig,
941
963
  projectKey
942
964
  }));
943
- return _mapInstanceProperty__default["default"](_context3 = forward(operation)).call(_context3, response => {
965
+ return _mapInstanceProperty__default["default"](_context4 = forward(operation)).call(_context4, response => {
944
966
  const context = operation.getContext();
945
967
  const refreshedSessionToken = extractSessionTokenFromResponse(context);
946
968
  if (refreshedSessionToken) {
@@ -953,7 +975,7 @@ const headerLink = new client.ApolloLink((operation, forward) => {
953
975
  const tokenRetryLink = new retry.RetryLink({
954
976
  attempts: (count, operation, error) => {
955
977
  const context = operation.getContext();
956
- if (error?.statusCode === constants.STATUS_CODES.UNAUTHORIZED && count === 1 && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
978
+ if ((error === null || error === void 0 ? void 0 : error.statusCode) === constants.STATUS_CODES.UNAUTHORIZED && count === 1 && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
957
979
  operation.setContext(_ref => {
958
980
  let headers = _ref.headers;
959
981
  return {
@@ -971,7 +993,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _co
971
993
  const createApolloLink = function () {
972
994
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
973
995
  const httpLink = client.createHttpLink({
974
- uri: `${getMcApiUrl()}/graphql`,
996
+ uri: "".concat(getMcApiUrl(), "/graphql"),
975
997
  fetch
976
998
  });
977
999
 
@@ -1015,8 +1037,9 @@ const mergeArraysObjects = function () {
1015
1037
  }, []);
1016
1038
  };
1017
1039
  const createApolloClient = function () {
1040
+ var _options$cache, _customCacheConfig$ty;
1018
1041
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1019
- const customCacheConfig = options?.cache ?? {};
1042
+ const customCacheConfig = (_options$cache = options === null || options === void 0 ? void 0 : options.cache) !== null && _options$cache !== void 0 ? _options$cache : {};
1020
1043
  return new client.ApolloClient({
1021
1044
  link: createApolloLink(options),
1022
1045
  // https://www.apollographql.com/docs/react/caching/cache-configuration/
@@ -1055,7 +1078,7 @@ const createApolloClient = function () {
1055
1078
  }
1056
1079
  }
1057
1080
  }
1058
- }, customCacheConfig.typePolicies ?? {})
1081
+ }, (_customCacheConfig$ty = customCacheConfig.typePolicies) !== null && _customCacheConfig$ty !== void 0 ? _customCacheConfig$ty : {})
1059
1082
  }))
1060
1083
  });
1061
1084
  };
@@ -1094,6 +1117,7 @@ exports.oidcStorage = oidcStorage;
1094
1117
  exports.selectProjectKeyFromUrl = selectProjectKeyFromUrl;
1095
1118
  exports.selectTeamIdFromStorage = selectTeamIdFromStorage;
1096
1119
  exports.selectUserId = selectUserId;
1120
+ exports.selectUserLanguageFromStorage = selectUserLanguageFromStorage;
1097
1121
  exports.setCachedApolloClient = setCachedApolloClient;
1098
1122
  exports.useApplicationContext = useApplicationContext;
1099
1123
  exports.useCustomViewContext = useCustomViewContext;
@@ -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.10.0";
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 `${url.protocol}//mc-api.${originTld}`;
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?.allAppliedPermissions),
335
- actionRights: normalizeAllAppliedActionRights(project?.allAppliedActionRights),
336
- dataFences: normalizeAllAppliedDataFences(project?.allAppliedDataFences),
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 = `withApplicationContext(${getDisplayName(Component)})`;
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 = `withProjectExtensionImageRegex(${getDisplayName(Component)})`;
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?.[constants.SUPPORTED_HEADERS.X_GRAPHQL_TARGET] || context.headers?.[constants.SUPPORTED_HEADERS.X_GRAPHQL_TARGET.toLowerCase()];
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(`/logout?reason=${constants.LOGOUT_REASONS.UNAUTHORIZED}`);
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
- const isNonAuthenticatedViaExtensionCode = err?.extensions?.code === 'UNAUTHENTICATED';
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?.message === 'invalid_token';
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
- return window.sessionStorage.getItem(constants.STORAGE_KEYS.ACTIVE_TEAM_ID) || window.app.__DEVELOPMENT__?.oidc?.teamId;
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: `${getMcApiUrl()}/proxy/forward-to`,
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
@@ -684,10 +689,15 @@ const logger = {
684
689
  }
685
690
  };
686
691
 
692
+ // Attempt to load the `user language` from sessionStorage
693
+ function selectUserLanguageFromStorage() {
694
+ return window.sessionStorage.getItem(constants.STORAGE_KEYS.ACTIVE_USER_LANGUAGE) || null;
695
+ }
696
+
687
697
  const getSessionToken = () => window.sessionStorage.getItem(constants.STORAGE_KEYS.SESSION_TOKEN);
688
698
  const setActiveSession = sessionToken => {
689
699
  if (!sessionToken) return;
690
- window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_TOKEN, sessionToken ?? '');
700
+ window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_TOKEN, sessionToken !== null && sessionToken !== void 0 ? sessionToken : '');
691
701
  window.localStorage.setItem(constants.STORAGE_KEYS.LOGIN_STRATEGY, constants.LOGIN_STRATEGY_OIDC);
692
702
  // Remove flag for original workflow
693
703
  window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
@@ -709,7 +719,8 @@ const setSessionScope = scope => {
709
719
  window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_SCOPE, scope);
710
720
  };
711
721
  const getSessionState = stateId => {
712
- const sessionStateKey = `${constants.STORAGE_KEYS.NONCE}_${stateId}`;
722
+ var _context;
723
+ const sessionStateKey = _concatInstanceProperty__default["default"](_context = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context, stateId);
713
724
  const unparsedSessionState = window.sessionStorage.getItem(sessionStateKey);
714
725
  if (unparsedSessionState) {
715
726
  try {
@@ -721,11 +732,13 @@ const getSessionState = stateId => {
721
732
  return null;
722
733
  };
723
734
  const setSessionState = (stateId, state) => {
724
- const sessionStateKey = `${constants.STORAGE_KEYS.NONCE}_${stateId}`;
735
+ var _context3;
736
+ const sessionStateKey = _concatInstanceProperty__default["default"](_context3 = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context3, stateId);
725
737
  window.sessionStorage.setItem(sessionStateKey, _JSON$stringify__default["default"](state));
726
738
  };
727
739
  const removeSessionState = stateId => {
728
- const sessionStateKey = `${constants.STORAGE_KEYS.NONCE}_${stateId}`;
740
+ var _context4;
741
+ const sessionStateKey = _concatInstanceProperty__default["default"](_context4 = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context4, stateId);
729
742
  window.sessionStorage.removeItem(sessionStateKey);
730
743
  };
731
744
 
@@ -747,13 +760,14 @@ var oidcStorage = /*#__PURE__*/Object.freeze({
747
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)); }
748
761
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function () { return !!t; })(); }
749
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; }
750
- function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$2(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$2(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
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; }
751
764
  let _userAgent$1;
752
765
  const getUserAgent$1 = () => {
753
766
  if (!_userAgent$1) {
767
+ var _window$app$applicati, _window$app;
754
768
  _userAgent$1 = createHttpUserAgent__default["default"]({
755
769
  name: 'unknown-http-client',
756
- libraryName: typeof window !== 'undefined' ? window.app?.applicationName ?? 'unknown-application-name' : undefined
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
757
771
  });
758
772
  }
759
773
  return _userAgent$1;
@@ -761,48 +775,50 @@ const getUserAgent$1 = () => {
761
775
  const defaultForwardToVersion = 'v2';
762
776
  const defaultForwardToAudiencePolicy = 'forward-url-full-path';
763
777
  function buildApiUrl(endpoint) {
778
+ var _context;
764
779
  const apiUrl = getMcApiUrl().replace(/\/$/, '');
765
- return `${apiUrl}${endpoint}`;
780
+ return _concatInstanceProperty__default["default"](_context = "".concat(apiUrl)).call(_context, endpoint);
766
781
  }
767
782
  const getAppliedForwardToHeaders = forwardToConfig => {
768
- var _context;
783
+ var _context2, _forwardToConfig$head, _forwardToConfig$vers, _forwardToConfig$audi;
769
784
  if (!forwardToConfig) {
770
785
  return {};
771
786
  }
772
787
  if (!forwardToConfig.uri) {
773
- throw new Error(`Missing required "uri" option.`);
788
+ throw new Error("Missing required \"uri\" option.");
774
789
  }
775
790
  const exchangeTokenClaims = [];
776
791
  if (forwardToConfig.includeUserPermissions) {
777
792
  exchangeTokenClaims.push('permissions');
778
793
  }
779
- return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty__default["default"](_context = _Object$entries__default["default"](forwardToConfig.headers ?? {})).call(_context, (customForwardHeaders, _ref) => {
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) => {
780
795
  let _ref2 = _slicedToArray(_ref, 2),
781
796
  headerName = _ref2[0],
782
797
  headerValue = _ref2[1];
783
798
  return _objectSpread$2(_objectSpread$2({}, customForwardHeaders), {}, {
784
799
  // Prefix headers so that the MC API can allow and forward them.
785
- [`x-forward-header-${headerName}`]: headerValue
800
+ ["x-forward-header-".concat(headerName)]: headerValue
786
801
  });
787
802
  }, {})), {}, {
788
- [constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: forwardToConfig.version ?? defaultForwardToVersion,
803
+ [constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: (_forwardToConfig$vers = forwardToConfig.version) !== null && _forwardToConfig$vers !== void 0 ? _forwardToConfig$vers : defaultForwardToVersion,
789
804
  [constants.SUPPORTED_HEADERS.X_FORWARD_TO]: forwardToConfig.uri,
790
- [constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: forwardToConfig.audiencePolicy ?? defaultForwardToAudiencePolicy,
805
+ [constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: (_forwardToConfig$audi = forwardToConfig.audiencePolicy) !== null && _forwardToConfig$audi !== void 0 ? _forwardToConfig$audi : defaultForwardToAudiencePolicy,
791
806
  [constants.SUPPORTED_HEADERS.X_FORWARD_TO_CLAIMS]: exchangeTokenClaims.join(' ')
792
807
  });
793
808
  };
794
809
  function createHttpClientOptions() {
810
+ var _config$projectKey, _window$app$__DEVELOP;
795
811
  let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
796
812
  const sessionToken = getSessionToken();
797
- const projectKey = config.projectKey ?? selectProjectKeyFromUrl();
813
+ const projectKey = (_config$projectKey = config.projectKey) !== null && _config$projectKey !== void 0 ? _config$projectKey : selectProjectKeyFromUrl();
798
814
  const userId = selectUserId();
799
- const userAgent = config?.userAgent || getUserAgent$1();
815
+ const userAgent = (config === null || config === void 0 ? void 0 : config.userAgent) || getUserAgent$1();
800
816
  return {
801
817
  credentials: 'include',
802
818
  headers: omitEmpty__default["default"](_objectSpread$2(_objectSpread$2({}, config.headers), {}, {
803
819
  // Required headers
804
820
  [constants.SUPPORTED_HEADERS.ACCEPT]: 'application/json',
805
- [constants.SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ? `Bearer ${sessionToken}` : undefined,
821
+ [constants.SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ? "Bearer ".concat(sessionToken) : undefined,
806
822
  [constants.SUPPORTED_HEADERS.X_APPLICATION_ID]: window.app.applicationIdentifier,
807
823
  [constants.SUPPORTED_HEADERS.X_CUSTOM_VIEW_ID]: window.app.customViewId,
808
824
  [constants.SUPPORTED_HEADERS.X_CORRELATION_ID]: getCorrelationId({
@@ -811,7 +827,7 @@ function createHttpClientOptions() {
811
827
  [constants.SUPPORTED_HEADERS.X_PROJECT_KEY]: projectKey,
812
828
  [constants.SUPPORTED_HEADERS.X_USER_AGENT]: userAgent,
813
829
  // MC Identity Login Mode Override header for development
814
- [constants.SUPPORTED_HEADERS.X_MC_IDENTITY_LOGIN_MODE_OVERRIDE]: window.app.__DEVELOPMENT__?.mcIdentityLoginModeOverride
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
815
831
  }, getAppliedForwardToHeaders(config.forwardToConfig)))
816
832
  };
817
833
  }
@@ -842,7 +858,7 @@ async function executeHttpClientRequest(fetcher) {
842
858
  }))
843
859
  }));
844
860
  if (response.statusCode === constants.STATUS_CODES.UNAUTHORIZED) {
845
- throw new RenewTokenError(`Unauthorized response, attempting retry.`);
861
+ throw new RenewTokenError("Unauthorized response, attempting retry.");
846
862
  }
847
863
 
848
864
  // In case a new session token is returned from the server, save it.
@@ -866,15 +882,15 @@ async function executeHttpClientRequest(fetcher) {
866
882
  }
867
883
 
868
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; }
869
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var _context4, _context5; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context4 = ownKeys$1(Object(t), !0)).call(_context4, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context5 = ownKeys$1(Object(t))).call(_context5, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
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; }
870
886
  let _userAgent;
871
887
  const getUserAgent = () => {
872
888
  if (!_userAgent) {
873
- var _context;
889
+ var _context, _window$app$applicati, _window$app;
874
890
  _userAgent = createHttpUserAgent__default["default"]({
875
891
  name: 'apollo-client',
876
892
  // version: apolloVersion,
877
- libraryName: _filterInstanceProperty__default["default"](_context = [typeof window !== 'undefined' ? window.app?.applicationName ?? 'unknown-application-name' : undefined, 'application-shell']).call(_context, Boolean).join('/'),
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('/'),
878
894
  libraryVersion: version,
879
895
  contactUrl: 'https://git.io/fjuyC',
880
896
  // points to the appkit repo issues
@@ -888,13 +904,18 @@ const isKnownGraphQlTarget = target => {
888
904
  return target ? _includesInstanceProperty__default["default"](_context2 = _Object$values__default["default"](constants.GRAPHQL_TARGETS)).call(_context2, target) : false;
889
905
  };
890
906
  const extractSessionTokenFromResponse = context => {
891
- const refreshedSessionToken = context.response?.headers?.get('x-refreshed-session-token');
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');
892
909
  if (refreshedSessionToken) {
893
- return refreshedSessionToken ?? null;
910
+ return refreshedSessionToken !== null && refreshedSessionToken !== void 0 ? refreshedSessionToken : null;
894
911
  }
895
- const restResponseWithRefreshTokenHeader = context.restResponses?.find(response => response.headers?.has('x-refreshed-session-token'));
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
+ });
896
916
  if (restResponseWithRefreshTokenHeader) {
897
- return restResponseWithRefreshTokenHeader.headers.get('x-refreshed-session-token') ?? null;
917
+ var _restResponseWithRefr;
918
+ return (_restResponseWithRefr = restResponseWithRefreshTokenHeader.headers.get('x-refreshed-session-token')) !== null && _restResponseWithRefr !== void 0 ? _restResponseWithRefr : null;
898
919
  }
899
920
  return null;
900
921
  };
@@ -902,11 +923,11 @@ const extractSessionTokenFromResponse = context => {
902
923
  /* eslint-disable import/prefer-default-export */
903
924
  // Use a middleware to update the request headers with the correct params.
904
925
  const headerLink = new client.ApolloLink((operation, forward) => {
905
- var _context3;
926
+ var _context3, _context4;
906
927
  const apolloContext = operation.getContext();
907
928
  const variables = operation.variables;
908
929
  const graphQlTarget = apolloContext.target || variables.target;
909
- if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(`GraphQL target "${graphQlTarget}" is missing (or is not supported) in operation "${operation.operationName}"`);
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, "\""));
910
931
 
911
932
  /**
912
933
  * NOTE:
@@ -933,7 +954,7 @@ const headerLink = new client.ApolloLink((operation, forward) => {
933
954
  forwardToConfig: apolloContext.forwardToConfig,
934
955
  projectKey
935
956
  }));
936
- return _mapInstanceProperty__default["default"](_context3 = forward(operation)).call(_context3, response => {
957
+ return _mapInstanceProperty__default["default"](_context4 = forward(operation)).call(_context4, response => {
937
958
  const context = operation.getContext();
938
959
  const refreshedSessionToken = extractSessionTokenFromResponse(context);
939
960
  if (refreshedSessionToken) {
@@ -946,7 +967,7 @@ const headerLink = new client.ApolloLink((operation, forward) => {
946
967
  const tokenRetryLink = new retry.RetryLink({
947
968
  attempts: (count, operation, error) => {
948
969
  const context = operation.getContext();
949
- if (error?.statusCode === constants.STATUS_CODES.UNAUTHORIZED && count === 1 && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
970
+ if ((error === null || error === void 0 ? void 0 : error.statusCode) === constants.STATUS_CODES.UNAUTHORIZED && count === 1 && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
950
971
  operation.setContext(_ref => {
951
972
  let headers = _ref.headers;
952
973
  return {
@@ -964,7 +985,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _co
964
985
  const createApolloLink = function () {
965
986
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
966
987
  const httpLink = client.createHttpLink({
967
- uri: `${getMcApiUrl()}/graphql`,
988
+ uri: "".concat(getMcApiUrl(), "/graphql"),
968
989
  fetch
969
990
  });
970
991
 
@@ -1008,8 +1029,9 @@ const mergeArraysObjects = function () {
1008
1029
  }, []);
1009
1030
  };
1010
1031
  const createApolloClient = function () {
1032
+ var _options$cache, _customCacheConfig$ty;
1011
1033
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1012
- const customCacheConfig = options?.cache ?? {};
1034
+ const customCacheConfig = (_options$cache = options === null || options === void 0 ? void 0 : options.cache) !== null && _options$cache !== void 0 ? _options$cache : {};
1013
1035
  return new client.ApolloClient({
1014
1036
  link: createApolloLink(options),
1015
1037
  // https://www.apollographql.com/docs/react/caching/cache-configuration/
@@ -1048,7 +1070,7 @@ const createApolloClient = function () {
1048
1070
  }
1049
1071
  }
1050
1072
  }
1051
- }, customCacheConfig.typePolicies ?? {})
1073
+ }, (_customCacheConfig$ty = customCacheConfig.typePolicies) !== null && _customCacheConfig$ty !== void 0 ? _customCacheConfig$ty : {})
1052
1074
  }))
1053
1075
  });
1054
1076
  };
@@ -1087,6 +1109,7 @@ exports.oidcStorage = oidcStorage;
1087
1109
  exports.selectProjectKeyFromUrl = selectProjectKeyFromUrl;
1088
1110
  exports.selectTeamIdFromStorage = selectTeamIdFromStorage;
1089
1111
  exports.selectUserId = selectUserId;
1112
+ exports.selectUserLanguageFromStorage = selectUserLanguageFromStorage;
1090
1113
  exports.setCachedApolloClient = setCachedApolloClient;
1091
1114
  exports.useApplicationContext = useApplicationContext;
1092
1115
  exports.useCustomViewContext = useCustomViewContext;
@@ -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.10.0";
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 `${url.protocol}//mc-api.${originTld}`;
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?.allAppliedPermissions),
303
- actionRights: normalizeAllAppliedActionRights(project?.allAppliedActionRights),
304
- dataFences: normalizeAllAppliedDataFences(project?.allAppliedDataFences),
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 = `withApplicationContext(${getDisplayName(Component)})`;
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, `@commercetools-frontend/application-shell-connectors: It is not recommended to use the 'GetProjectExtensionImageRegex' anymore. Please use the 'useProjectExtensionImageRegex' hook instead.`);
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, `@commercetools-frontend/application-shell-connectors: It is not recommended to use the 'withProjectExtensionImageRegex' high order component anymore. Please use the 'useProjectExtensionImageRegex' hook instead.`);
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 = `withProjectExtensionImageRegex(${getDisplayName(Component)})`;
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?.[SUPPORTED_HEADERS.X_GRAPHQL_TARGET] || context.headers?.[SUPPORTED_HEADERS.X_GRAPHQL_TARGET.toLowerCase()];
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(`/logout?reason=${LOGOUT_REASONS.UNAUTHORIZED}`);
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
- const isNonAuthenticatedViaExtensionCode = err?.extensions?.code === 'UNAUTHENTICATED';
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?.message === 'invalid_token';
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
- return window.sessionStorage.getItem(STORAGE_KEYS.ACTIVE_TEAM_ID) || window.app.__DEVELOPMENT__?.oidc?.teamId;
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: `${getMcApiUrl()}/proxy/forward-to`,
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
@@ -654,10 +658,15 @@ const logger = {
654
658
  }
655
659
  };
656
660
 
661
+ // Attempt to load the `user language` from sessionStorage
662
+ function selectUserLanguageFromStorage() {
663
+ return window.sessionStorage.getItem(STORAGE_KEYS.ACTIVE_USER_LANGUAGE) || null;
664
+ }
665
+
657
666
  const getSessionToken = () => window.sessionStorage.getItem(STORAGE_KEYS.SESSION_TOKEN);
658
667
  const setActiveSession = sessionToken => {
659
668
  if (!sessionToken) return;
660
- window.sessionStorage.setItem(STORAGE_KEYS.SESSION_TOKEN, sessionToken ?? '');
669
+ window.sessionStorage.setItem(STORAGE_KEYS.SESSION_TOKEN, sessionToken !== null && sessionToken !== void 0 ? sessionToken : '');
661
670
  window.localStorage.setItem(STORAGE_KEYS.LOGIN_STRATEGY, LOGIN_STRATEGY_OIDC);
662
671
  // Remove flag for original workflow
663
672
  window.localStorage.removeItem(STORAGE_KEYS.IS_AUTHENTICATED);
@@ -679,7 +688,8 @@ const setSessionScope = scope => {
679
688
  window.sessionStorage.setItem(STORAGE_KEYS.SESSION_SCOPE, scope);
680
689
  };
681
690
  const getSessionState = stateId => {
682
- const sessionStateKey = `${STORAGE_KEYS.NONCE}_${stateId}`;
691
+ var _context;
692
+ const sessionStateKey = _concatInstanceProperty(_context = "".concat(STORAGE_KEYS.NONCE, "_")).call(_context, stateId);
683
693
  const unparsedSessionState = window.sessionStorage.getItem(sessionStateKey);
684
694
  if (unparsedSessionState) {
685
695
  try {
@@ -687,19 +697,22 @@ const getSessionState = stateId => {
687
697
  return parsedSessionState;
688
698
  } catch (error) {
689
699
  if (process.env.NODE_ENV !== 'production') {
700
+ var _context2;
690
701
  // eslint-disable-next-line no-console
691
- console.warn(`Cannot parse session state for "${sessionStateKey}".\n${unparsedSessionState}`);
702
+ console.warn(_concatInstanceProperty(_context2 = "Cannot parse session state for \"".concat(sessionStateKey, "\".\n")).call(_context2, unparsedSessionState));
692
703
  }
693
704
  }
694
705
  }
695
706
  return null;
696
707
  };
697
708
  const setSessionState = (stateId, state) => {
698
- const sessionStateKey = `${STORAGE_KEYS.NONCE}_${stateId}`;
709
+ var _context3;
710
+ const sessionStateKey = _concatInstanceProperty(_context3 = "".concat(STORAGE_KEYS.NONCE, "_")).call(_context3, stateId);
699
711
  window.sessionStorage.setItem(sessionStateKey, _JSON$stringify(state));
700
712
  };
701
713
  const removeSessionState = stateId => {
702
- const sessionStateKey = `${STORAGE_KEYS.NONCE}_${stateId}`;
714
+ var _context4;
715
+ const sessionStateKey = _concatInstanceProperty(_context4 = "".concat(STORAGE_KEYS.NONCE, "_")).call(_context4, stateId);
703
716
  window.sessionStorage.removeItem(sessionStateKey);
704
717
  };
705
718
 
@@ -721,13 +734,14 @@ var oidcStorage = /*#__PURE__*/Object.freeze({
721
734
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
722
735
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function () { return !!t; })(); }
723
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; }
724
- function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context2 = ownKeys$2(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context3 = ownKeys$2(Object(t))).call(_context3, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
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; }
725
738
  let _userAgent$1;
726
739
  const getUserAgent$1 = () => {
727
740
  if (!_userAgent$1) {
741
+ var _window$app$applicati, _window$app;
728
742
  _userAgent$1 = createHttpUserAgent({
729
743
  name: 'unknown-http-client',
730
- libraryName: typeof window !== 'undefined' ? window.app?.applicationName ?? 'unknown-application-name' : undefined
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
731
745
  });
732
746
  }
733
747
  return _userAgent$1;
@@ -735,48 +749,50 @@ const getUserAgent$1 = () => {
735
749
  const defaultForwardToVersion = 'v2';
736
750
  const defaultForwardToAudiencePolicy = 'forward-url-full-path';
737
751
  function buildApiUrl(endpoint) {
752
+ var _context;
738
753
  const apiUrl = getMcApiUrl().replace(/\/$/, '');
739
- return `${apiUrl}${endpoint}`;
754
+ return _concatInstanceProperty(_context = "".concat(apiUrl)).call(_context, endpoint);
740
755
  }
741
756
  const getAppliedForwardToHeaders = forwardToConfig => {
742
- var _context;
757
+ var _context2, _forwardToConfig$head, _forwardToConfig$vers, _forwardToConfig$audi;
743
758
  if (!forwardToConfig) {
744
759
  return {};
745
760
  }
746
761
  if (!forwardToConfig.uri) {
747
- throw new Error(`Missing required "uri" option.`);
762
+ throw new Error("Missing required \"uri\" option.");
748
763
  }
749
764
  const exchangeTokenClaims = [];
750
765
  if (forwardToConfig.includeUserPermissions) {
751
766
  exchangeTokenClaims.push('permissions');
752
767
  }
753
- return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty(_context = _Object$entries(forwardToConfig.headers ?? {})).call(_context, (customForwardHeaders, _ref) => {
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) => {
754
769
  let _ref2 = _slicedToArray(_ref, 2),
755
770
  headerName = _ref2[0],
756
771
  headerValue = _ref2[1];
757
772
  return _objectSpread$2(_objectSpread$2({}, customForwardHeaders), {}, {
758
773
  // Prefix headers so that the MC API can allow and forward them.
759
- [`x-forward-header-${headerName}`]: headerValue
774
+ ["x-forward-header-".concat(headerName)]: headerValue
760
775
  });
761
776
  }, {})), {}, {
762
- [SUPPORTED_HEADERS.ACCEPT_VERSION]: forwardToConfig.version ?? defaultForwardToVersion,
777
+ [SUPPORTED_HEADERS.ACCEPT_VERSION]: (_forwardToConfig$vers = forwardToConfig.version) !== null && _forwardToConfig$vers !== void 0 ? _forwardToConfig$vers : defaultForwardToVersion,
763
778
  [SUPPORTED_HEADERS.X_FORWARD_TO]: forwardToConfig.uri,
764
- [SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: forwardToConfig.audiencePolicy ?? defaultForwardToAudiencePolicy,
779
+ [SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: (_forwardToConfig$audi = forwardToConfig.audiencePolicy) !== null && _forwardToConfig$audi !== void 0 ? _forwardToConfig$audi : defaultForwardToAudiencePolicy,
765
780
  [SUPPORTED_HEADERS.X_FORWARD_TO_CLAIMS]: exchangeTokenClaims.join(' ')
766
781
  });
767
782
  };
768
783
  function createHttpClientOptions() {
784
+ var _config$projectKey, _window$app$__DEVELOP;
769
785
  let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
770
786
  const sessionToken = getSessionToken();
771
- const projectKey = config.projectKey ?? selectProjectKeyFromUrl();
787
+ const projectKey = (_config$projectKey = config.projectKey) !== null && _config$projectKey !== void 0 ? _config$projectKey : selectProjectKeyFromUrl();
772
788
  const userId = selectUserId();
773
- const userAgent = config?.userAgent || getUserAgent$1();
789
+ const userAgent = (config === null || config === void 0 ? void 0 : config.userAgent) || getUserAgent$1();
774
790
  return {
775
791
  credentials: 'include',
776
792
  headers: omitEmpty(_objectSpread$2(_objectSpread$2({}, config.headers), {}, {
777
793
  // Required headers
778
794
  [SUPPORTED_HEADERS.ACCEPT]: 'application/json',
779
- [SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ? `Bearer ${sessionToken}` : undefined,
795
+ [SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ? "Bearer ".concat(sessionToken) : undefined,
780
796
  [SUPPORTED_HEADERS.X_APPLICATION_ID]: window.app.applicationIdentifier,
781
797
  [SUPPORTED_HEADERS.X_CUSTOM_VIEW_ID]: window.app.customViewId,
782
798
  [SUPPORTED_HEADERS.X_CORRELATION_ID]: getCorrelationId({
@@ -785,7 +801,7 @@ function createHttpClientOptions() {
785
801
  [SUPPORTED_HEADERS.X_PROJECT_KEY]: projectKey,
786
802
  [SUPPORTED_HEADERS.X_USER_AGENT]: userAgent,
787
803
  // MC Identity Login Mode Override header for development
788
- [SUPPORTED_HEADERS.X_MC_IDENTITY_LOGIN_MODE_OVERRIDE]: window.app.__DEVELOPMENT__?.mcIdentityLoginModeOverride
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
789
805
  }, getAppliedForwardToHeaders(config.forwardToConfig)))
790
806
  };
791
807
  }
@@ -816,7 +832,7 @@ async function executeHttpClientRequest(fetcher) {
816
832
  }))
817
833
  }));
818
834
  if (response.statusCode === STATUS_CODES.UNAUTHORIZED) {
819
- throw new RenewTokenError(`Unauthorized response, attempting retry.`);
835
+ throw new RenewTokenError("Unauthorized response, attempting retry.");
820
836
  }
821
837
 
822
838
  // In case a new session token is returned from the server, save it.
@@ -840,15 +856,15 @@ async function executeHttpClientRequest(fetcher) {
840
856
  }
841
857
 
842
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; }
843
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var _context4, _context5; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context4 = ownKeys$1(Object(t), !0)).call(_context4, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context5 = ownKeys$1(Object(t))).call(_context5, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
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; }
844
860
  let _userAgent;
845
861
  const getUserAgent = () => {
846
862
  if (!_userAgent) {
847
- var _context;
863
+ var _context, _window$app$applicati, _window$app;
848
864
  _userAgent = createHttpUserAgent({
849
865
  name: 'apollo-client',
850
866
  // version: apolloVersion,
851
- libraryName: _filterInstanceProperty(_context = [typeof window !== 'undefined' ? window.app?.applicationName ?? 'unknown-application-name' : undefined, 'application-shell']).call(_context, Boolean).join('/'),
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('/'),
852
868
  libraryVersion: version,
853
869
  contactUrl: 'https://git.io/fjuyC',
854
870
  // points to the appkit repo issues
@@ -862,13 +878,18 @@ const isKnownGraphQlTarget = target => {
862
878
  return target ? _includesInstanceProperty(_context2 = _Object$values(GRAPHQL_TARGETS)).call(_context2, target) : false;
863
879
  };
864
880
  const extractSessionTokenFromResponse = context => {
865
- const refreshedSessionToken = context.response?.headers?.get('x-refreshed-session-token');
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');
866
883
  if (refreshedSessionToken) {
867
- return refreshedSessionToken ?? null;
884
+ return refreshedSessionToken !== null && refreshedSessionToken !== void 0 ? refreshedSessionToken : null;
868
885
  }
869
- const restResponseWithRefreshTokenHeader = context.restResponses?.find(response => response.headers?.has('x-refreshed-session-token'));
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
+ });
870
890
  if (restResponseWithRefreshTokenHeader) {
871
- return restResponseWithRefreshTokenHeader.headers.get('x-refreshed-session-token') ?? null;
891
+ var _restResponseWithRefr;
892
+ return (_restResponseWithRefr = restResponseWithRefreshTokenHeader.headers.get('x-refreshed-session-token')) !== null && _restResponseWithRefr !== void 0 ? _restResponseWithRefr : null;
872
893
  }
873
894
  return null;
874
895
  };
@@ -876,11 +897,11 @@ const extractSessionTokenFromResponse = context => {
876
897
  /* eslint-disable import/prefer-default-export */
877
898
  // Use a middleware to update the request headers with the correct params.
878
899
  const headerLink = new ApolloLink((operation, forward) => {
879
- var _context3;
900
+ var _context3, _context4;
880
901
  const apolloContext = operation.getContext();
881
902
  const variables = operation.variables;
882
903
  const graphQlTarget = apolloContext.target || variables.target;
883
- if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(`GraphQL target "${graphQlTarget}" is missing (or is not supported) in operation "${operation.operationName}"`);
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, "\""));
884
905
 
885
906
  /**
886
907
  * NOTE:
@@ -907,7 +928,7 @@ const headerLink = new ApolloLink((operation, forward) => {
907
928
  forwardToConfig: apolloContext.forwardToConfig,
908
929
  projectKey
909
930
  }));
910
- return _mapInstanceProperty(_context3 = forward(operation)).call(_context3, response => {
931
+ return _mapInstanceProperty(_context4 = forward(operation)).call(_context4, response => {
911
932
  const context = operation.getContext();
912
933
  const refreshedSessionToken = extractSessionTokenFromResponse(context);
913
934
  if (refreshedSessionToken) {
@@ -920,7 +941,7 @@ const headerLink = new ApolloLink((operation, forward) => {
920
941
  const tokenRetryLink = new RetryLink({
921
942
  attempts: (count, operation, error) => {
922
943
  const context = operation.getContext();
923
- if (error?.statusCode === STATUS_CODES.UNAUTHORIZED && count === 1 && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
944
+ if ((error === null || error === void 0 ? void 0 : error.statusCode) === STATUS_CODES.UNAUTHORIZED && count === 1 && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
924
945
  operation.setContext(_ref => {
925
946
  let headers = _ref.headers;
926
947
  return {
@@ -938,7 +959,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _co
938
959
  const createApolloLink = function () {
939
960
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
940
961
  const httpLink = createHttpLink({
941
- uri: `${getMcApiUrl()}/graphql`,
962
+ uri: "".concat(getMcApiUrl(), "/graphql"),
942
963
  fetch
943
964
  });
944
965
 
@@ -982,8 +1003,9 @@ const mergeArraysObjects = function () {
982
1003
  }, []);
983
1004
  };
984
1005
  const createApolloClient = function () {
1006
+ var _options$cache, _customCacheConfig$ty;
985
1007
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
986
- const customCacheConfig = options?.cache ?? {};
1008
+ const customCacheConfig = (_options$cache = options === null || options === void 0 ? void 0 : options.cache) !== null && _options$cache !== void 0 ? _options$cache : {};
987
1009
  return new ApolloClient({
988
1010
  link: createApolloLink(options),
989
1011
  // https://www.apollographql.com/docs/react/caching/cache-configuration/
@@ -1022,7 +1044,7 @@ const createApolloClient = function () {
1022
1044
  }
1023
1045
  }
1024
1046
  }
1025
- }, customCacheConfig.typePolicies ?? {})
1047
+ }, (_customCacheConfig$ty = customCacheConfig.typePolicies) !== null && _customCacheConfig$ty !== void 0 ? _customCacheConfig$ty : {})
1026
1048
  }))
1027
1049
  });
1028
1050
  };
@@ -1037,4 +1059,4 @@ function useMcMutation(mutation, options) {
1037
1059
  return useMutation(mutation, options);
1038
1060
  }
1039
1061
 
1040
- export { ApplicationContext, ApplicationContextProvider, Context$2 as Context, CustomViewContextProvider, GetProjectExtensionImageRegex, ProjectExtensionProviderForImageRegex, buildApiUrl, createApolloClient, createApolloContextForProxyForwardTo, createHttpClientOptions, executeHttpClientRequest, getCachedApolloClient, getCorrelationId, getMcApiUrl, isLoggerEnabled, logger, normalizeAllAppliedActionRights, normalizeAllAppliedDataFences, normalizeAllAppliedMenuVisibilities, normalizeAllAppliedPermissions, oidcStorage, selectProjectKeyFromUrl, selectTeamIdFromStorage, selectUserId, setCachedApolloClient, useApplicationContext, useCustomViewContext, useCustomViewParentDataRefresher, useMcLazyQuery, useMcMutation, useMcQuery, useProjectExtensionImageRegex, version, withApplicationContext, withProjectExtensionImageRegex };
1062
+ export { ApplicationContext, ApplicationContextProvider, Context$2 as Context, CustomViewContextProvider, GetProjectExtensionImageRegex, ProjectExtensionProviderForImageRegex, buildApiUrl, createApolloClient, createApolloContextForProxyForwardTo, createHttpClientOptions, executeHttpClientRequest, getCachedApolloClient, getCorrelationId, getMcApiUrl, isLoggerEnabled, logger, normalizeAllAppliedActionRights, normalizeAllAppliedDataFences, normalizeAllAppliedMenuVisibilities, normalizeAllAppliedPermissions, oidcStorage, selectProjectKeyFromUrl, selectTeamIdFromStorage, selectUserId, selectUserLanguageFromStorage, setCachedApolloClient, useApplicationContext, useCustomViewContext, useCustomViewParentDataRefresher, useMcLazyQuery, useMcMutation, useMcQuery, useProjectExtensionImageRegex, version, withApplicationContext, withProjectExtensionImageRegex };
@@ -5,7 +5,7 @@ export { useCustomViewParentDataRefresher } from "./hooks/custom-views/use-custo
5
5
  export { CustomViewContextProvider, useCustomViewContext, } from "./components/custom-view-context/index.js";
6
6
  export { GetProjectExtensionImageRegex, ProjectExtensionProviderForImageRegex, withProjectExtensionImageRegex, useProjectExtensionImageRegex, } from "./components/project-extension-image-regex/index.js";
7
7
  export { default as createApolloClient } from "./configure-apollo.js";
8
- export { getCorrelationId, getMcApiUrl, isLoggerEnabled, logger, selectUserId, selectProjectKeyFromUrl, selectTeamIdFromStorage, createApolloContextForProxyForwardTo, } from "./utils/index.js";
8
+ export { getCorrelationId, getMcApiUrl, isLoggerEnabled, logger, selectUserId, selectProjectKeyFromUrl, selectTeamIdFromStorage, selectUserLanguageFromStorage, createApolloContextForProxyForwardTo, } from "./utils/index.js";
9
9
  export { useMcQuery, useMcLazyQuery, useMcMutation, } from "./hooks/apollo-hooks/index.js";
10
10
  export { buildApiUrl, createHttpClientOptions, executeHttpClientRequest, } from "./utils/http-client.js";
11
11
  export * as oidcStorage from "./utils/oidc-storage.js";
@@ -5,3 +5,4 @@ export { default as getCorrelationId } from "./get-correlation-id/index.js";
5
5
  export { default as getMcApiUrl } from "./get-mc-api-url/index.js";
6
6
  export { createApolloContextForProxyForwardTo } from "./apollo-context.js";
7
7
  export { isLoggerEnabled, default as logger } from "./logger.js";
8
+ export { default as selectUserLanguageFromStorage } from "./select-user-language-from-storage/index.js";
@@ -0,0 +1 @@
1
+ export { default } from "./select-user-language-from-storage.js";
@@ -0,0 +1 @@
1
+ export default function selectUserLanguageFromStorage(): string | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@commercetools-frontend/application-shell-connectors",
3
- "version": "24.10.0",
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.10.0",
41
- "@commercetools-frontend/browser-history": "24.10.0",
42
- "@commercetools-frontend/constants": "24.10.0",
43
- "@commercetools-frontend/sentry": "24.10.0",
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",