@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.
- package/dist/commercetools-frontend-application-shell-connectors.cjs.dev.js +73 -49
- package/dist/commercetools-frontend-application-shell-connectors.cjs.prod.js +69 -46
- package/dist/commercetools-frontend-application-shell-connectors.esm.js +72 -50
- package/dist/declarations/src/index.d.ts +1 -1
- package/dist/declarations/src/utils/index.d.ts +1 -0
- package/dist/declarations/src/utils/select-user-language-from-storage/index.d.ts +1 -0
- package/dist/declarations/src/utils/select-user-language-from-storage/select-user-language-from-storage.d.ts +1 -0
- package/package.json +5 -5
|
@@ -15,6 +15,7 @@ var react = require('react');
|
|
|
15
15
|
var moment = require('moment-timezone');
|
|
16
16
|
var sentry = require('@commercetools-frontend/sentry');
|
|
17
17
|
var _URL = require('@babel/runtime-corejs3/core-js-stable/url');
|
|
18
|
+
var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
|
|
18
19
|
var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
19
20
|
var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
20
21
|
var _Object$entries = require('@babel/runtime-corejs3/core-js-stable/object/entries');
|
|
@@ -58,6 +59,7 @@ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$def
|
|
|
58
59
|
var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
|
|
59
60
|
var moment__default = /*#__PURE__*/_interopDefault(moment);
|
|
60
61
|
var _URL__default = /*#__PURE__*/_interopDefault(_URL);
|
|
62
|
+
var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
|
|
61
63
|
var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
|
|
62
64
|
var _Object$entries__default = /*#__PURE__*/_interopDefault(_Object$entries);
|
|
63
65
|
var _valuesInstanceProperty__default = /*#__PURE__*/_interopDefault(_valuesInstanceProperty);
|
|
@@ -76,7 +78,7 @@ var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construc
|
|
|
76
78
|
var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
|
|
77
79
|
|
|
78
80
|
// NOTE: This string will be replaced on build time with the package version.
|
|
79
|
-
var version = "24.
|
|
81
|
+
var version = "24.12.0";
|
|
80
82
|
|
|
81
83
|
// From https://github.com/acdlite/recompose/blob/master/src/packages/recompose/getDisplayName.js
|
|
82
84
|
const getDisplayName = Component => {
|
|
@@ -98,9 +100,10 @@ const getMcOriginTld = host => {
|
|
|
98
100
|
return host.replace(mcHostnameRegex, '$3');
|
|
99
101
|
};
|
|
100
102
|
const getMcApiUrlFromOrigin = origin => {
|
|
103
|
+
var _context;
|
|
101
104
|
const url = new _URL__default["default"](origin);
|
|
102
105
|
const originTld = getMcOriginTld(url.host);
|
|
103
|
-
return
|
|
106
|
+
return _concatInstanceProperty__default["default"](_context = "".concat(url.protocol, "//mc-api.")).call(_context, originTld);
|
|
104
107
|
};
|
|
105
108
|
const parseAsBoolean = value => value === true || value === 'true';
|
|
106
109
|
function getMcApiUrl() {
|
|
@@ -332,9 +335,9 @@ const createApplicationContext = (environment, user, project, projectDataLocale)
|
|
|
332
335
|
environment: mapEnvironmentToApplicationContextEnvironment(environment),
|
|
333
336
|
user: mapUserToApplicationContextUser(user),
|
|
334
337
|
project: mapProjectToApplicationContextProject(project),
|
|
335
|
-
permissions: normalizeAllAppliedPermissions(project
|
|
336
|
-
actionRights: normalizeAllAppliedActionRights(project
|
|
337
|
-
dataFences: normalizeAllAppliedDataFences(project
|
|
338
|
+
permissions: normalizeAllAppliedPermissions(project === null || project === void 0 ? void 0 : project.allAppliedPermissions),
|
|
339
|
+
actionRights: normalizeAllAppliedActionRights(project === null || project === void 0 ? void 0 : project.allAppliedActionRights),
|
|
340
|
+
dataFences: normalizeAllAppliedDataFences(project === null || project === void 0 ? void 0 : project.allAppliedDataFences),
|
|
338
341
|
dataLocale: projectDataLocale || null
|
|
339
342
|
});
|
|
340
343
|
const ApplicationContextProvider = props => jsxRuntime.jsx(Context$2.Provider, {
|
|
@@ -364,7 +367,7 @@ function withApplicationContext(mapApplicationContextToProps) {
|
|
|
364
367
|
return jsxRuntime.jsx(Component, _objectSpread$6(_objectSpread$6({}, props), mappedProps));
|
|
365
368
|
}
|
|
366
369
|
});
|
|
367
|
-
WrappedComponent.displayName =
|
|
370
|
+
WrappedComponent.displayName = "withApplicationContext(".concat(getDisplayName(Component), ")");
|
|
368
371
|
return WrappedComponent;
|
|
369
372
|
};
|
|
370
373
|
}
|
|
@@ -480,7 +483,7 @@ const ProjectExtensionProviderForImageRegex = props => {
|
|
|
480
483
|
};
|
|
481
484
|
ProjectExtensionProviderForImageRegex.displayName = 'ProjectExtensionProviderForImageRegex';
|
|
482
485
|
const GetProjectExtensionImageRegex = props => {
|
|
483
|
-
useWarning(false,
|
|
486
|
+
useWarning(false, "@commercetools-frontend/application-shell-connectors: It is not recommended to use the 'GetProjectExtensionImageRegex' anymore. Please use the 'useProjectExtensionImageRegex' hook instead.");
|
|
484
487
|
return jsxRuntime.jsx(Context.Consumer, {
|
|
485
488
|
children: imageRegexContext => props.render(imageRegexContext)
|
|
486
489
|
});
|
|
@@ -490,7 +493,7 @@ function withProjectExtensionImageRegex() {
|
|
|
490
493
|
let propKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'imageRegexData';
|
|
491
494
|
return Component => {
|
|
492
495
|
const WrappedComponent = props => {
|
|
493
|
-
useWarning(false,
|
|
496
|
+
useWarning(false, "@commercetools-frontend/application-shell-connectors: It is not recommended to use the 'withProjectExtensionImageRegex' high order component anymore. Please use the 'useProjectExtensionImageRegex' hook instead.");
|
|
494
497
|
const imageregexContext = useProjectExtensionImageRegex();
|
|
495
498
|
return jsxRuntime.jsx(GetProjectExtensionImageRegex, {
|
|
496
499
|
render: () =>
|
|
@@ -500,7 +503,7 @@ function withProjectExtensionImageRegex() {
|
|
|
500
503
|
}))
|
|
501
504
|
});
|
|
502
505
|
};
|
|
503
|
-
WrappedComponent.displayName =
|
|
506
|
+
WrappedComponent.displayName = "withProjectExtensionImageRegex(".concat(getDisplayName(Component), ")");
|
|
504
507
|
return WrappedComponent;
|
|
505
508
|
};
|
|
506
509
|
}
|
|
@@ -521,8 +524,8 @@ const forwardTokenRetryHeader = headers => _objectSpread$3(_objectSpread$3({}, h
|
|
|
521
524
|
// so that the MC BE can issue a new token.
|
|
522
525
|
// NOTE: the retry is not meant to work for the MC access token.
|
|
523
526
|
const getDoesGraphQLTargetSupportTokenRetry = context => {
|
|
524
|
-
var _context;
|
|
525
|
-
const graphQLTarget = context.headers
|
|
527
|
+
var _context$headers, _context$headers2, _context;
|
|
528
|
+
const graphQLTarget = ((_context$headers = context.headers) === null || _context$headers === void 0 ? void 0 : _context$headers[constants.SUPPORTED_HEADERS.X_GRAPHQL_TARGET]) || ((_context$headers2 = context.headers) === null || _context$headers2 === void 0 ? void 0 : _context$headers2[constants.SUPPORTED_HEADERS.X_GRAPHQL_TARGET.toLowerCase()]);
|
|
526
529
|
return Boolean(graphQLTarget && _includesInstanceProperty__default["default"](_context = [constants.GRAPHQL_TARGETS.COMMERCETOOLS_PLATFORM, constants.GRAPHQL_TARGETS.ADMINISTRATION_SERVICE, constants.GRAPHQL_TARGETS.SETTINGS_SERVICE, constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND]).call(_context, graphQLTarget));
|
|
527
530
|
};
|
|
528
531
|
const isHttpError = error => error.statusCode !== undefined || error.statusCode !== undefined;
|
|
@@ -536,7 +539,7 @@ const errorLink = error.onError(_ref => {
|
|
|
536
539
|
operation = _ref.operation,
|
|
537
540
|
forward = _ref.forward;
|
|
538
541
|
if (networkError && isHttpError(networkError) && networkError.statusCode === constants.STATUS_CODES.UNAUTHORIZED) {
|
|
539
|
-
history__default["default"].push(
|
|
542
|
+
history__default["default"].push("/logout?reason=".concat(constants.LOGOUT_REASONS.UNAUTHORIZED));
|
|
540
543
|
return;
|
|
541
544
|
}
|
|
542
545
|
|
|
@@ -548,7 +551,8 @@ const errorLink = error.onError(_ref => {
|
|
|
548
551
|
const context = operation.getContext();
|
|
549
552
|
if (graphQLErrors && isGraphQLError(graphQLErrors)) {
|
|
550
553
|
for (const err of graphQLErrors) {
|
|
551
|
-
|
|
554
|
+
var _err$extensions;
|
|
555
|
+
const isNonAuthenticatedViaExtensionCode = (err === null || err === void 0 || (_err$extensions = err.extensions) === null || _err$extensions === void 0 ? void 0 : _err$extensions.code) === 'UNAUTHENTICATED';
|
|
552
556
|
/**
|
|
553
557
|
* NOTE:
|
|
554
558
|
* Not not all GraphQL APIs expose an `extensions` field in
|
|
@@ -556,7 +560,7 @@ const errorLink = error.onError(_ref => {
|
|
|
556
560
|
* property until they introduced support for the `extensions`
|
|
557
561
|
* field.
|
|
558
562
|
*/
|
|
559
|
-
const isNonAuthenticatedViaCode = err
|
|
563
|
+
const isNonAuthenticatedViaCode = (err === null || err === void 0 ? void 0 : err.message) === 'invalid_token';
|
|
560
564
|
if ((isNonAuthenticatedViaExtensionCode || isNonAuthenticatedViaCode) && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
561
565
|
operation.setContext(_ref2 => {
|
|
562
566
|
let headers = _ref2.headers;
|
|
@@ -592,7 +596,8 @@ const errorLink = error.onError(_ref => {
|
|
|
592
596
|
|
|
593
597
|
// Attempt to load the `teamId` from sessionStorage
|
|
594
598
|
function selectTeamIdFromStorage() {
|
|
595
|
-
|
|
599
|
+
var _window$app$__DEVELOP;
|
|
600
|
+
return window.sessionStorage.getItem(constants.STORAGE_KEYS.ACTIVE_TEAM_ID) || ((_window$app$__DEVELOP = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP === void 0 || (_window$app$__DEVELOP = _window$app$__DEVELOP.oidc) === null || _window$app$__DEVELOP === void 0 ? void 0 : _window$app$__DEVELOP.teamId);
|
|
596
601
|
}
|
|
597
602
|
|
|
598
603
|
const staticUrlPathsInPositionOfProjectKey = ['login', 'logout', 'account'];
|
|
@@ -653,7 +658,7 @@ function getCorrelationId() {
|
|
|
653
658
|
|
|
654
659
|
const createApolloContextForProxyForwardTo = proxyForwardTocontext => ({
|
|
655
660
|
// Send the request to the forward-to endpoint.
|
|
656
|
-
uri:
|
|
661
|
+
uri: "".concat(getMcApiUrl(), "/proxy/forward-to"),
|
|
657
662
|
// Custom properties to be used by the "header-link".
|
|
658
663
|
forwardToConfig: proxyForwardTocontext,
|
|
659
664
|
skipGraphQlTargetCheck: true
|
|
@@ -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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
788
|
+
return _concatInstanceProperty__default["default"](_context = "".concat(apiUrl)).call(_context, endpoint);
|
|
773
789
|
}
|
|
774
790
|
const getAppliedForwardToHeaders = forwardToConfig => {
|
|
775
|
-
var
|
|
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(
|
|
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"](
|
|
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
|
-
[
|
|
808
|
+
["x-forward-header-".concat(headerName)]: headerValue
|
|
793
809
|
});
|
|
794
810
|
}, {})), {}, {
|
|
795
|
-
[constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: forwardToConfig.version
|
|
811
|
+
[constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: (_forwardToConfig$vers = forwardToConfig.version) !== null && _forwardToConfig$vers !== void 0 ? _forwardToConfig$vers : defaultForwardToVersion,
|
|
796
812
|
[constants.SUPPORTED_HEADERS.X_FORWARD_TO]: forwardToConfig.uri,
|
|
797
|
-
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: forwardToConfig.audiencePolicy
|
|
813
|
+
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: (_forwardToConfig$audi = forwardToConfig.audiencePolicy) !== null && _forwardToConfig$audi !== void 0 ? _forwardToConfig$audi : defaultForwardToAudiencePolicy,
|
|
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
|
|
821
|
+
const projectKey = (_config$projectKey = config.projectKey) !== null && _config$projectKey !== void 0 ? _config$projectKey : selectProjectKeyFromUrl();
|
|
805
822
|
const userId = selectUserId();
|
|
806
|
-
const userAgent = config
|
|
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 ?
|
|
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__
|
|
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(
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
918
|
+
return refreshedSessionToken !== null && refreshedSessionToken !== void 0 ? refreshedSessionToken : null;
|
|
901
919
|
}
|
|
902
|
-
const restResponseWithRefreshTokenHeader = context.restResponses
|
|
920
|
+
const restResponseWithRefreshTokenHeader = (_context$restResponse = context.restResponses) === null || _context$restResponse === void 0 ? void 0 : _findInstanceProperty__default["default"](_context$restResponse).call(_context$restResponse, response => {
|
|
921
|
+
var _response$headers;
|
|
922
|
+
return (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.has('x-refreshed-session-token');
|
|
923
|
+
});
|
|
903
924
|
if (restResponseWithRefreshTokenHeader) {
|
|
904
|
-
|
|
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(
|
|
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"](
|
|
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
|
|
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:
|
|
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
|
|
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.
|
|
80
|
+
var version = "24.12.0";
|
|
79
81
|
|
|
80
82
|
// From https://github.com/acdlite/recompose/blob/master/src/packages/recompose/getDisplayName.js
|
|
81
83
|
const getDisplayName = Component => {
|
|
@@ -97,9 +99,10 @@ const getMcOriginTld = host => {
|
|
|
97
99
|
return host.replace(mcHostnameRegex, '$3');
|
|
98
100
|
};
|
|
99
101
|
const getMcApiUrlFromOrigin = origin => {
|
|
102
|
+
var _context;
|
|
100
103
|
const url = new _URL__default["default"](origin);
|
|
101
104
|
const originTld = getMcOriginTld(url.host);
|
|
102
|
-
return
|
|
105
|
+
return _concatInstanceProperty__default["default"](_context = "".concat(url.protocol, "//mc-api.")).call(_context, originTld);
|
|
103
106
|
};
|
|
104
107
|
const parseAsBoolean = value => value === true || value === 'true';
|
|
105
108
|
function getMcApiUrl() {
|
|
@@ -331,9 +334,9 @@ const createApplicationContext = (environment, user, project, projectDataLocale)
|
|
|
331
334
|
environment: mapEnvironmentToApplicationContextEnvironment(environment),
|
|
332
335
|
user: mapUserToApplicationContextUser(user),
|
|
333
336
|
project: mapProjectToApplicationContextProject(project),
|
|
334
|
-
permissions: normalizeAllAppliedPermissions(project
|
|
335
|
-
actionRights: normalizeAllAppliedActionRights(project
|
|
336
|
-
dataFences: normalizeAllAppliedDataFences(project
|
|
337
|
+
permissions: normalizeAllAppliedPermissions(project === null || project === void 0 ? void 0 : project.allAppliedPermissions),
|
|
338
|
+
actionRights: normalizeAllAppliedActionRights(project === null || project === void 0 ? void 0 : project.allAppliedActionRights),
|
|
339
|
+
dataFences: normalizeAllAppliedDataFences(project === null || project === void 0 ? void 0 : project.allAppliedDataFences),
|
|
337
340
|
dataLocale: projectDataLocale || null
|
|
338
341
|
});
|
|
339
342
|
const ApplicationContextProvider = props => jsxRuntime.jsx(Context$2.Provider, {
|
|
@@ -363,7 +366,7 @@ function withApplicationContext(mapApplicationContextToProps) {
|
|
|
363
366
|
return jsxRuntime.jsx(Component, _objectSpread$6(_objectSpread$6({}, props), mappedProps));
|
|
364
367
|
}
|
|
365
368
|
});
|
|
366
|
-
WrappedComponent.displayName =
|
|
369
|
+
WrappedComponent.displayName = "withApplicationContext(".concat(getDisplayName(Component), ")");
|
|
367
370
|
return WrappedComponent;
|
|
368
371
|
};
|
|
369
372
|
}
|
|
@@ -498,7 +501,7 @@ function withProjectExtensionImageRegex() {
|
|
|
498
501
|
}))
|
|
499
502
|
});
|
|
500
503
|
};
|
|
501
|
-
WrappedComponent.displayName =
|
|
504
|
+
WrappedComponent.displayName = "withProjectExtensionImageRegex(".concat(getDisplayName(Component), ")");
|
|
502
505
|
return WrappedComponent;
|
|
503
506
|
};
|
|
504
507
|
}
|
|
@@ -519,8 +522,8 @@ const forwardTokenRetryHeader = headers => _objectSpread$3(_objectSpread$3({}, h
|
|
|
519
522
|
// so that the MC BE can issue a new token.
|
|
520
523
|
// NOTE: the retry is not meant to work for the MC access token.
|
|
521
524
|
const getDoesGraphQLTargetSupportTokenRetry = context => {
|
|
522
|
-
var _context;
|
|
523
|
-
const graphQLTarget = context.headers
|
|
525
|
+
var _context$headers, _context$headers2, _context;
|
|
526
|
+
const graphQLTarget = ((_context$headers = context.headers) === null || _context$headers === void 0 ? void 0 : _context$headers[constants.SUPPORTED_HEADERS.X_GRAPHQL_TARGET]) || ((_context$headers2 = context.headers) === null || _context$headers2 === void 0 ? void 0 : _context$headers2[constants.SUPPORTED_HEADERS.X_GRAPHQL_TARGET.toLowerCase()]);
|
|
524
527
|
return Boolean(graphQLTarget && _includesInstanceProperty__default["default"](_context = [constants.GRAPHQL_TARGETS.COMMERCETOOLS_PLATFORM, constants.GRAPHQL_TARGETS.ADMINISTRATION_SERVICE, constants.GRAPHQL_TARGETS.SETTINGS_SERVICE, constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND]).call(_context, graphQLTarget));
|
|
525
528
|
};
|
|
526
529
|
const isHttpError = error => error.statusCode !== undefined || error.statusCode !== undefined;
|
|
@@ -534,7 +537,7 @@ const errorLink = error.onError(_ref => {
|
|
|
534
537
|
operation = _ref.operation,
|
|
535
538
|
forward = _ref.forward;
|
|
536
539
|
if (networkError && isHttpError(networkError) && networkError.statusCode === constants.STATUS_CODES.UNAUTHORIZED) {
|
|
537
|
-
history__default["default"].push(
|
|
540
|
+
history__default["default"].push("/logout?reason=".concat(constants.LOGOUT_REASONS.UNAUTHORIZED));
|
|
538
541
|
return;
|
|
539
542
|
}
|
|
540
543
|
|
|
@@ -546,7 +549,8 @@ const errorLink = error.onError(_ref => {
|
|
|
546
549
|
const context = operation.getContext();
|
|
547
550
|
if (graphQLErrors && isGraphQLError(graphQLErrors)) {
|
|
548
551
|
for (const err of graphQLErrors) {
|
|
549
|
-
|
|
552
|
+
var _err$extensions;
|
|
553
|
+
const isNonAuthenticatedViaExtensionCode = (err === null || err === void 0 || (_err$extensions = err.extensions) === null || _err$extensions === void 0 ? void 0 : _err$extensions.code) === 'UNAUTHENTICATED';
|
|
550
554
|
/**
|
|
551
555
|
* NOTE:
|
|
552
556
|
* Not not all GraphQL APIs expose an `extensions` field in
|
|
@@ -554,7 +558,7 @@ const errorLink = error.onError(_ref => {
|
|
|
554
558
|
* property until they introduced support for the `extensions`
|
|
555
559
|
* field.
|
|
556
560
|
*/
|
|
557
|
-
const isNonAuthenticatedViaCode = err
|
|
561
|
+
const isNonAuthenticatedViaCode = (err === null || err === void 0 ? void 0 : err.message) === 'invalid_token';
|
|
558
562
|
if ((isNonAuthenticatedViaExtensionCode || isNonAuthenticatedViaCode) && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
559
563
|
operation.setContext(_ref2 => {
|
|
560
564
|
let headers = _ref2.headers;
|
|
@@ -590,7 +594,8 @@ const errorLink = error.onError(_ref => {
|
|
|
590
594
|
|
|
591
595
|
// Attempt to load the `teamId` from sessionStorage
|
|
592
596
|
function selectTeamIdFromStorage() {
|
|
593
|
-
|
|
597
|
+
var _window$app$__DEVELOP;
|
|
598
|
+
return window.sessionStorage.getItem(constants.STORAGE_KEYS.ACTIVE_TEAM_ID) || ((_window$app$__DEVELOP = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP === void 0 || (_window$app$__DEVELOP = _window$app$__DEVELOP.oidc) === null || _window$app$__DEVELOP === void 0 ? void 0 : _window$app$__DEVELOP.teamId);
|
|
594
599
|
}
|
|
595
600
|
|
|
596
601
|
const staticUrlPathsInPositionOfProjectKey = ['login', 'logout', 'account'];
|
|
@@ -651,7 +656,7 @@ function getCorrelationId() {
|
|
|
651
656
|
|
|
652
657
|
const createApolloContextForProxyForwardTo = proxyForwardTocontext => ({
|
|
653
658
|
// Send the request to the forward-to endpoint.
|
|
654
|
-
uri:
|
|
659
|
+
uri: "".concat(getMcApiUrl(), "/proxy/forward-to"),
|
|
655
660
|
// Custom properties to be used by the "header-link".
|
|
656
661
|
forwardToConfig: proxyForwardTocontext,
|
|
657
662
|
skipGraphQlTargetCheck: true
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
780
|
+
return _concatInstanceProperty__default["default"](_context = "".concat(apiUrl)).call(_context, endpoint);
|
|
766
781
|
}
|
|
767
782
|
const getAppliedForwardToHeaders = forwardToConfig => {
|
|
768
|
-
var
|
|
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(
|
|
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"](
|
|
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
|
-
[
|
|
800
|
+
["x-forward-header-".concat(headerName)]: headerValue
|
|
786
801
|
});
|
|
787
802
|
}, {})), {}, {
|
|
788
|
-
[constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: forwardToConfig.version
|
|
803
|
+
[constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: (_forwardToConfig$vers = forwardToConfig.version) !== null && _forwardToConfig$vers !== void 0 ? _forwardToConfig$vers : defaultForwardToVersion,
|
|
789
804
|
[constants.SUPPORTED_HEADERS.X_FORWARD_TO]: forwardToConfig.uri,
|
|
790
|
-
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: forwardToConfig.audiencePolicy
|
|
805
|
+
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: (_forwardToConfig$audi = forwardToConfig.audiencePolicy) !== null && _forwardToConfig$audi !== void 0 ? _forwardToConfig$audi : defaultForwardToAudiencePolicy,
|
|
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
|
|
813
|
+
const projectKey = (_config$projectKey = config.projectKey) !== null && _config$projectKey !== void 0 ? _config$projectKey : selectProjectKeyFromUrl();
|
|
798
814
|
const userId = selectUserId();
|
|
799
|
-
const userAgent = config
|
|
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 ?
|
|
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__
|
|
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(
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
910
|
+
return refreshedSessionToken !== null && refreshedSessionToken !== void 0 ? refreshedSessionToken : null;
|
|
894
911
|
}
|
|
895
|
-
const restResponseWithRefreshTokenHeader = context.restResponses
|
|
912
|
+
const restResponseWithRefreshTokenHeader = (_context$restResponse = context.restResponses) === null || _context$restResponse === void 0 ? void 0 : _findInstanceProperty__default["default"](_context$restResponse).call(_context$restResponse, response => {
|
|
913
|
+
var _response$headers;
|
|
914
|
+
return (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.has('x-refreshed-session-token');
|
|
915
|
+
});
|
|
896
916
|
if (restResponseWithRefreshTokenHeader) {
|
|
897
|
-
|
|
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(
|
|
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"](
|
|
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
|
|
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:
|
|
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
|
|
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.
|
|
47
|
+
var version = "24.12.0";
|
|
47
48
|
|
|
48
49
|
// From https://github.com/acdlite/recompose/blob/master/src/packages/recompose/getDisplayName.js
|
|
49
50
|
const getDisplayName = Component => {
|
|
@@ -65,9 +66,10 @@ const getMcOriginTld = host => {
|
|
|
65
66
|
return host.replace(mcHostnameRegex, '$3');
|
|
66
67
|
};
|
|
67
68
|
const getMcApiUrlFromOrigin = origin => {
|
|
69
|
+
var _context;
|
|
68
70
|
const url = new _URL(origin);
|
|
69
71
|
const originTld = getMcOriginTld(url.host);
|
|
70
|
-
return
|
|
72
|
+
return _concatInstanceProperty(_context = "".concat(url.protocol, "//mc-api.")).call(_context, originTld);
|
|
71
73
|
};
|
|
72
74
|
const parseAsBoolean = value => value === true || value === 'true';
|
|
73
75
|
function getMcApiUrl() {
|
|
@@ -299,9 +301,9 @@ const createApplicationContext = (environment, user, project, projectDataLocale)
|
|
|
299
301
|
environment: mapEnvironmentToApplicationContextEnvironment(environment),
|
|
300
302
|
user: mapUserToApplicationContextUser(user),
|
|
301
303
|
project: mapProjectToApplicationContextProject(project),
|
|
302
|
-
permissions: normalizeAllAppliedPermissions(project
|
|
303
|
-
actionRights: normalizeAllAppliedActionRights(project
|
|
304
|
-
dataFences: normalizeAllAppliedDataFences(project
|
|
304
|
+
permissions: normalizeAllAppliedPermissions(project === null || project === void 0 ? void 0 : project.allAppliedPermissions),
|
|
305
|
+
actionRights: normalizeAllAppliedActionRights(project === null || project === void 0 ? void 0 : project.allAppliedActionRights),
|
|
306
|
+
dataFences: normalizeAllAppliedDataFences(project === null || project === void 0 ? void 0 : project.allAppliedDataFences),
|
|
305
307
|
dataLocale: projectDataLocale || null
|
|
306
308
|
});
|
|
307
309
|
const ApplicationContextProvider = props => jsx(Context$2.Provider, {
|
|
@@ -331,7 +333,7 @@ function withApplicationContext(mapApplicationContextToProps) {
|
|
|
331
333
|
return jsx(Component, _objectSpread$6(_objectSpread$6({}, props), mappedProps));
|
|
332
334
|
}
|
|
333
335
|
});
|
|
334
|
-
WrappedComponent.displayName =
|
|
336
|
+
WrappedComponent.displayName = "withApplicationContext(".concat(getDisplayName(Component), ")");
|
|
335
337
|
return WrappedComponent;
|
|
336
338
|
};
|
|
337
339
|
}
|
|
@@ -447,7 +449,7 @@ const ProjectExtensionProviderForImageRegex = props => {
|
|
|
447
449
|
};
|
|
448
450
|
ProjectExtensionProviderForImageRegex.displayName = 'ProjectExtensionProviderForImageRegex';
|
|
449
451
|
const GetProjectExtensionImageRegex = props => {
|
|
450
|
-
useWarning(false,
|
|
452
|
+
useWarning(false, "@commercetools-frontend/application-shell-connectors: It is not recommended to use the 'GetProjectExtensionImageRegex' anymore. Please use the 'useProjectExtensionImageRegex' hook instead.");
|
|
451
453
|
return jsx(Context.Consumer, {
|
|
452
454
|
children: imageRegexContext => props.render(imageRegexContext)
|
|
453
455
|
});
|
|
@@ -457,7 +459,7 @@ function withProjectExtensionImageRegex() {
|
|
|
457
459
|
let propKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'imageRegexData';
|
|
458
460
|
return Component => {
|
|
459
461
|
const WrappedComponent = props => {
|
|
460
|
-
useWarning(false,
|
|
462
|
+
useWarning(false, "@commercetools-frontend/application-shell-connectors: It is not recommended to use the 'withProjectExtensionImageRegex' high order component anymore. Please use the 'useProjectExtensionImageRegex' hook instead.");
|
|
461
463
|
const imageregexContext = useProjectExtensionImageRegex();
|
|
462
464
|
return jsx(GetProjectExtensionImageRegex, {
|
|
463
465
|
render: () =>
|
|
@@ -467,7 +469,7 @@ function withProjectExtensionImageRegex() {
|
|
|
467
469
|
}))
|
|
468
470
|
});
|
|
469
471
|
};
|
|
470
|
-
WrappedComponent.displayName =
|
|
472
|
+
WrappedComponent.displayName = "withProjectExtensionImageRegex(".concat(getDisplayName(Component), ")");
|
|
471
473
|
return WrappedComponent;
|
|
472
474
|
};
|
|
473
475
|
}
|
|
@@ -488,8 +490,8 @@ const forwardTokenRetryHeader = headers => _objectSpread$3(_objectSpread$3({}, h
|
|
|
488
490
|
// so that the MC BE can issue a new token.
|
|
489
491
|
// NOTE: the retry is not meant to work for the MC access token.
|
|
490
492
|
const getDoesGraphQLTargetSupportTokenRetry = context => {
|
|
491
|
-
var _context;
|
|
492
|
-
const graphQLTarget = context.headers
|
|
493
|
+
var _context$headers, _context$headers2, _context;
|
|
494
|
+
const graphQLTarget = ((_context$headers = context.headers) === null || _context$headers === void 0 ? void 0 : _context$headers[SUPPORTED_HEADERS.X_GRAPHQL_TARGET]) || ((_context$headers2 = context.headers) === null || _context$headers2 === void 0 ? void 0 : _context$headers2[SUPPORTED_HEADERS.X_GRAPHQL_TARGET.toLowerCase()]);
|
|
493
495
|
return Boolean(graphQLTarget && _includesInstanceProperty(_context = [GRAPHQL_TARGETS.COMMERCETOOLS_PLATFORM, GRAPHQL_TARGETS.ADMINISTRATION_SERVICE, GRAPHQL_TARGETS.SETTINGS_SERVICE, GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND]).call(_context, graphQLTarget));
|
|
494
496
|
};
|
|
495
497
|
const isHttpError = error => error.statusCode !== undefined || error.statusCode !== undefined;
|
|
@@ -503,7 +505,7 @@ const errorLink = onError(_ref => {
|
|
|
503
505
|
operation = _ref.operation,
|
|
504
506
|
forward = _ref.forward;
|
|
505
507
|
if (networkError && isHttpError(networkError) && networkError.statusCode === STATUS_CODES.UNAUTHORIZED) {
|
|
506
|
-
history.push(
|
|
508
|
+
history.push("/logout?reason=".concat(LOGOUT_REASONS.UNAUTHORIZED));
|
|
507
509
|
return;
|
|
508
510
|
}
|
|
509
511
|
|
|
@@ -515,7 +517,8 @@ const errorLink = onError(_ref => {
|
|
|
515
517
|
const context = operation.getContext();
|
|
516
518
|
if (graphQLErrors && isGraphQLError(graphQLErrors)) {
|
|
517
519
|
for (const err of graphQLErrors) {
|
|
518
|
-
|
|
520
|
+
var _err$extensions;
|
|
521
|
+
const isNonAuthenticatedViaExtensionCode = (err === null || err === void 0 || (_err$extensions = err.extensions) === null || _err$extensions === void 0 ? void 0 : _err$extensions.code) === 'UNAUTHENTICATED';
|
|
519
522
|
/**
|
|
520
523
|
* NOTE:
|
|
521
524
|
* Not not all GraphQL APIs expose an `extensions` field in
|
|
@@ -523,7 +526,7 @@ const errorLink = onError(_ref => {
|
|
|
523
526
|
* property until they introduced support for the `extensions`
|
|
524
527
|
* field.
|
|
525
528
|
*/
|
|
526
|
-
const isNonAuthenticatedViaCode = err
|
|
529
|
+
const isNonAuthenticatedViaCode = (err === null || err === void 0 ? void 0 : err.message) === 'invalid_token';
|
|
527
530
|
if ((isNonAuthenticatedViaExtensionCode || isNonAuthenticatedViaCode) && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
528
531
|
operation.setContext(_ref2 => {
|
|
529
532
|
let headers = _ref2.headers;
|
|
@@ -559,7 +562,8 @@ const errorLink = onError(_ref => {
|
|
|
559
562
|
|
|
560
563
|
// Attempt to load the `teamId` from sessionStorage
|
|
561
564
|
function selectTeamIdFromStorage() {
|
|
562
|
-
|
|
565
|
+
var _window$app$__DEVELOP;
|
|
566
|
+
return window.sessionStorage.getItem(STORAGE_KEYS.ACTIVE_TEAM_ID) || ((_window$app$__DEVELOP = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP === void 0 || (_window$app$__DEVELOP = _window$app$__DEVELOP.oidc) === null || _window$app$__DEVELOP === void 0 ? void 0 : _window$app$__DEVELOP.teamId);
|
|
563
567
|
}
|
|
564
568
|
|
|
565
569
|
const staticUrlPathsInPositionOfProjectKey = ['login', 'logout', 'account'];
|
|
@@ -620,7 +624,7 @@ function getCorrelationId() {
|
|
|
620
624
|
|
|
621
625
|
const createApolloContextForProxyForwardTo = proxyForwardTocontext => ({
|
|
622
626
|
// Send the request to the forward-to endpoint.
|
|
623
|
-
uri:
|
|
627
|
+
uri: "".concat(getMcApiUrl(), "/proxy/forward-to"),
|
|
624
628
|
// Custom properties to be used by the "header-link".
|
|
625
629
|
forwardToConfig: proxyForwardTocontext,
|
|
626
630
|
skipGraphQlTargetCheck: true
|
|
@@ -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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
754
|
+
return _concatInstanceProperty(_context = "".concat(apiUrl)).call(_context, endpoint);
|
|
740
755
|
}
|
|
741
756
|
const getAppliedForwardToHeaders = forwardToConfig => {
|
|
742
|
-
var
|
|
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(
|
|
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(
|
|
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
|
-
[
|
|
774
|
+
["x-forward-header-".concat(headerName)]: headerValue
|
|
760
775
|
});
|
|
761
776
|
}, {})), {}, {
|
|
762
|
-
[SUPPORTED_HEADERS.ACCEPT_VERSION]: forwardToConfig.version
|
|
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
|
|
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
|
|
787
|
+
const projectKey = (_config$projectKey = config.projectKey) !== null && _config$projectKey !== void 0 ? _config$projectKey : selectProjectKeyFromUrl();
|
|
772
788
|
const userId = selectUserId();
|
|
773
|
-
const userAgent = config
|
|
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 ?
|
|
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__
|
|
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(
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
884
|
+
return refreshedSessionToken !== null && refreshedSessionToken !== void 0 ? refreshedSessionToken : null;
|
|
868
885
|
}
|
|
869
|
-
const restResponseWithRefreshTokenHeader = context.restResponses
|
|
886
|
+
const restResponseWithRefreshTokenHeader = (_context$restResponse = context.restResponses) === null || _context$restResponse === void 0 ? void 0 : _findInstanceProperty(_context$restResponse).call(_context$restResponse, response => {
|
|
887
|
+
var _response$headers;
|
|
888
|
+
return (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.has('x-refreshed-session-token');
|
|
889
|
+
});
|
|
870
890
|
if (restResponseWithRefreshTokenHeader) {
|
|
871
|
-
|
|
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(
|
|
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(
|
|
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
|
|
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:
|
|
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
|
|
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.
|
|
3
|
+
"version": "24.12.0",
|
|
4
4
|
"description": "Contains complementary tools for @commercetools-frontend/application-shell",
|
|
5
5
|
"bugs": "https://github.com/commercetools/merchant-center-application-kit/issues",
|
|
6
6
|
"repository": {
|
|
@@ -37,10 +37,10 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@babel/runtime": "^7.22.15",
|
|
39
39
|
"@babel/runtime-corejs3": "^7.22.15",
|
|
40
|
-
"@commercetools-frontend/application-config": "24.
|
|
41
|
-
"@commercetools-frontend/browser-history": "24.
|
|
42
|
-
"@commercetools-frontend/constants": "24.
|
|
43
|
-
"@commercetools-frontend/sentry": "24.
|
|
40
|
+
"@commercetools-frontend/application-config": "24.12.0",
|
|
41
|
+
"@commercetools-frontend/browser-history": "24.12.0",
|
|
42
|
+
"@commercetools-frontend/constants": "24.12.0",
|
|
43
|
+
"@commercetools-frontend/sentry": "24.12.0",
|
|
44
44
|
"@commercetools/http-user-agent": "3.0.0",
|
|
45
45
|
"@emotion/react": "^11.14.0",
|
|
46
46
|
"@types/lodash": "^4.14.198",
|