@commercetools-frontend/application-shell-connectors 22.30.3 → 22.32.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 +45 -62
- package/dist/commercetools-frontend-application-shell-connectors.cjs.prod.js +42 -58
- package/dist/commercetools-frontend-application-shell-connectors.esm.js +45 -61
- package/dist/declarations/src/components/application-context/application-context.d.ts +10 -0
- package/dist/declarations/src/components/application-context/normalizers.d.ts +18 -0
- package/dist/declarations/src/types/generated/mc.d.ts +5 -0
- package/dist/declarations/src/types/generated/settings.d.ts +22 -0
- package/dist/declarations/src/utils/http-client.d.ts +76 -0
- package/package.json +5 -5
|
@@ -16,7 +16,6 @@ var react = require('react');
|
|
|
16
16
|
var moment = require('moment-timezone');
|
|
17
17
|
var sentry = require('@commercetools-frontend/sentry');
|
|
18
18
|
var _URL = require('@babel/runtime-corejs3/core-js-stable/url');
|
|
19
|
-
var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
|
|
20
19
|
var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
21
20
|
var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
22
21
|
var _Object$entries = require('@babel/runtime-corejs3/core-js-stable/object/entries');
|
|
@@ -61,7 +60,6 @@ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$def
|
|
|
61
60
|
var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
|
|
62
61
|
var moment__default = /*#__PURE__*/_interopDefault(moment);
|
|
63
62
|
var _URL__default = /*#__PURE__*/_interopDefault(_URL);
|
|
64
|
-
var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
|
|
65
63
|
var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
|
|
66
64
|
var _Object$entries__default = /*#__PURE__*/_interopDefault(_Object$entries);
|
|
67
65
|
var _valuesInstanceProperty__default = /*#__PURE__*/_interopDefault(_valuesInstanceProperty);
|
|
@@ -79,7 +77,7 @@ var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construc
|
|
|
79
77
|
var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
|
|
80
78
|
|
|
81
79
|
// NOTE: This string will be replaced on build time with the package version.
|
|
82
|
-
var version = "22.
|
|
80
|
+
var version = "22.32.0";
|
|
83
81
|
|
|
84
82
|
// From https://github.com/acdlite/recompose/blob/master/src/packages/recompose/getDisplayName.js
|
|
85
83
|
const getDisplayName = Component => {
|
|
@@ -101,10 +99,9 @@ const getMcOriginTld = host => {
|
|
|
101
99
|
return host.replace(mcHostnameRegex, '$3');
|
|
102
100
|
};
|
|
103
101
|
const getMcApiUrlFromOrigin = origin => {
|
|
104
|
-
var _context;
|
|
105
102
|
const url = new _URL__default["default"](origin);
|
|
106
103
|
const originTld = getMcOriginTld(url.host);
|
|
107
|
-
return
|
|
104
|
+
return `${url.protocol}//mc-api.${originTld}`;
|
|
108
105
|
};
|
|
109
106
|
const parseAsBoolean = value => value === true || value === 'true';
|
|
110
107
|
function getMcApiUrl() {
|
|
@@ -336,9 +333,9 @@ const createApplicationContext = (environment, user, project, projectDataLocale)
|
|
|
336
333
|
environment: mapEnvironmentToApplicationContextEnvironment(environment),
|
|
337
334
|
user: mapUserToApplicationContextUser(user),
|
|
338
335
|
project: mapProjectToApplicationContextProject(project),
|
|
339
|
-
permissions: normalizeAllAppliedPermissions(project
|
|
340
|
-
actionRights: normalizeAllAppliedActionRights(project
|
|
341
|
-
dataFences: normalizeAllAppliedDataFences(project
|
|
336
|
+
permissions: normalizeAllAppliedPermissions(project?.allAppliedPermissions),
|
|
337
|
+
actionRights: normalizeAllAppliedActionRights(project?.allAppliedActionRights),
|
|
338
|
+
dataFences: normalizeAllAppliedDataFences(project?.allAppliedDataFences),
|
|
342
339
|
dataLocale: projectDataLocale || null
|
|
343
340
|
});
|
|
344
341
|
const ApplicationContextProvider = props => jsxRuntime.jsx(Context$2.Provider, {
|
|
@@ -369,7 +366,7 @@ function withApplicationContext(mapApplicationContextToProps) {
|
|
|
369
366
|
return jsxRuntime.jsx(Component, _objectSpread$6(_objectSpread$6({}, props), mappedProps));
|
|
370
367
|
}
|
|
371
368
|
});
|
|
372
|
-
WrappedComponent.displayName =
|
|
369
|
+
WrappedComponent.displayName = `withApplicationContext(${getDisplayName(Component)})`;
|
|
373
370
|
return WrappedComponent;
|
|
374
371
|
};
|
|
375
372
|
}
|
|
@@ -489,7 +486,7 @@ function withProjectExtensionImageRegex() {
|
|
|
489
486
|
}))
|
|
490
487
|
});
|
|
491
488
|
};
|
|
492
|
-
WrappedComponent.displayName =
|
|
489
|
+
WrappedComponent.displayName = `withProjectExtensionImageRegex(${getDisplayName(Component)})`;
|
|
493
490
|
return WrappedComponent;
|
|
494
491
|
};
|
|
495
492
|
}
|
|
@@ -510,8 +507,8 @@ const forwardTokenRetryHeader = headers => _objectSpread$3(_objectSpread$3({}, h
|
|
|
510
507
|
// so that the MC BE can issue a new token.
|
|
511
508
|
// NOTE: the retry is not meant to work for the MC access token.
|
|
512
509
|
const getDoesGraphQLTargetSupportTokenRetry = context => {
|
|
513
|
-
var _context
|
|
514
|
-
const graphQLTarget =
|
|
510
|
+
var _context;
|
|
511
|
+
const graphQLTarget = context.headers?.[constants.SUPPORTED_HEADERS.X_GRAPHQL_TARGET] || context.headers?.[constants.SUPPORTED_HEADERS.X_GRAPHQL_TARGET.toLowerCase()];
|
|
515
512
|
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));
|
|
516
513
|
};
|
|
517
514
|
const isHttpError = error => error.statusCode !== undefined || error.statusCode !== undefined;
|
|
@@ -525,7 +522,7 @@ const errorLink = error.onError(_ref => {
|
|
|
525
522
|
operation = _ref.operation,
|
|
526
523
|
forward = _ref.forward;
|
|
527
524
|
if (networkError && isHttpError(networkError) && networkError.statusCode === constants.STATUS_CODES.UNAUTHORIZED) {
|
|
528
|
-
history__default["default"].push(
|
|
525
|
+
history__default["default"].push(`/logout?reason=${constants.LOGOUT_REASONS.UNAUTHORIZED}`);
|
|
529
526
|
return;
|
|
530
527
|
}
|
|
531
528
|
|
|
@@ -537,8 +534,7 @@ const errorLink = error.onError(_ref => {
|
|
|
537
534
|
if (graphQLErrors && isGraphQLError(graphQLErrors)) {
|
|
538
535
|
const context = operation.getContext();
|
|
539
536
|
for (const err of graphQLErrors) {
|
|
540
|
-
|
|
541
|
-
const isNonAuthenticatedViaExtensionCode = (err === null || err === void 0 || (_err$extensions = err.extensions) === null || _err$extensions === void 0 ? void 0 : _err$extensions.code) === 'UNAUTHENTICATED';
|
|
537
|
+
const isNonAuthenticatedViaExtensionCode = err?.extensions?.code === 'UNAUTHENTICATED';
|
|
542
538
|
/**
|
|
543
539
|
* NOTE:
|
|
544
540
|
* Not not all GraphQL APIs expose an `extensions` field in
|
|
@@ -546,7 +542,7 @@ const errorLink = error.onError(_ref => {
|
|
|
546
542
|
* property until they introduced support for the `extensions`
|
|
547
543
|
* field.
|
|
548
544
|
*/
|
|
549
|
-
const isNonAuthenticatedViaCode =
|
|
545
|
+
const isNonAuthenticatedViaCode = err?.message === 'invalid_token';
|
|
550
546
|
if ((isNonAuthenticatedViaExtensionCode || isNonAuthenticatedViaCode) && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
551
547
|
operation.setContext(_ref2 => {
|
|
552
548
|
let headers = _ref2.headers;
|
|
@@ -564,8 +560,7 @@ const errorLink = error.onError(_ref => {
|
|
|
564
560
|
|
|
565
561
|
// Attempt to load the `teamId` from sessionStorage
|
|
566
562
|
function selectTeamIdFromStorage() {
|
|
567
|
-
|
|
568
|
-
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);
|
|
563
|
+
return window.sessionStorage.getItem(constants.STORAGE_KEYS.ACTIVE_TEAM_ID) || window.app.__DEVELOPMENT__?.oidc?.teamId;
|
|
569
564
|
}
|
|
570
565
|
|
|
571
566
|
const staticUrlPathsInPositionOfProjectKey = ['login', 'logout', 'account'];
|
|
@@ -626,7 +621,7 @@ function getCorrelationId() {
|
|
|
626
621
|
|
|
627
622
|
const createApolloContextForProxyForwardTo = proxyForwardTocontext => ({
|
|
628
623
|
// Send the request to the forward-to endpoint.
|
|
629
|
-
uri:
|
|
624
|
+
uri: `${getMcApiUrl()}/proxy/forward-to`,
|
|
630
625
|
// Custom properties to be used by the "header-link".
|
|
631
626
|
forwardToConfig: proxyForwardTocontext,
|
|
632
627
|
skipGraphQlTargetCheck: true
|
|
@@ -662,7 +657,7 @@ const logger = {
|
|
|
662
657
|
const getSessionToken = () => window.sessionStorage.getItem(constants.STORAGE_KEYS.SESSION_TOKEN);
|
|
663
658
|
const setActiveSession = sessionToken => {
|
|
664
659
|
if (!sessionToken) return;
|
|
665
|
-
window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_TOKEN, sessionToken
|
|
660
|
+
window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_TOKEN, sessionToken ?? '');
|
|
666
661
|
window.localStorage.setItem(constants.STORAGE_KEYS.LOGIN_STRATEGY, constants.LOGIN_STRATEGY_OIDC);
|
|
667
662
|
// Remove flag for original workflow
|
|
668
663
|
window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
|
|
@@ -684,8 +679,7 @@ const setSessionScope = scope => {
|
|
|
684
679
|
window.sessionStorage.setItem(constants.STORAGE_KEYS.SESSION_SCOPE, scope);
|
|
685
680
|
};
|
|
686
681
|
const getSessionState = stateId => {
|
|
687
|
-
|
|
688
|
-
const sessionStateKey = _concatInstanceProperty__default["default"](_context = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context, stateId);
|
|
682
|
+
const sessionStateKey = `${constants.STORAGE_KEYS.NONCE}_${stateId}`;
|
|
689
683
|
const unparsedSessionState = window.sessionStorage.getItem(sessionStateKey);
|
|
690
684
|
if (unparsedSessionState) {
|
|
691
685
|
try {
|
|
@@ -697,13 +691,11 @@ const getSessionState = stateId => {
|
|
|
697
691
|
return null;
|
|
698
692
|
};
|
|
699
693
|
const setSessionState = (stateId, state) => {
|
|
700
|
-
|
|
701
|
-
const sessionStateKey = _concatInstanceProperty__default["default"](_context3 = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context3, stateId);
|
|
694
|
+
const sessionStateKey = `${constants.STORAGE_KEYS.NONCE}_${stateId}`;
|
|
702
695
|
window.sessionStorage.setItem(sessionStateKey, _JSON$stringify__default["default"](state));
|
|
703
696
|
};
|
|
704
697
|
const removeSessionState = stateId => {
|
|
705
|
-
|
|
706
|
-
const sessionStateKey = _concatInstanceProperty__default["default"](_context4 = "".concat(constants.STORAGE_KEYS.NONCE, "_")).call(_context4, stateId);
|
|
698
|
+
const sessionStateKey = `${constants.STORAGE_KEYS.NONCE}_${stateId}`;
|
|
707
699
|
window.sessionStorage.removeItem(sessionStateKey);
|
|
708
700
|
};
|
|
709
701
|
|
|
@@ -725,7 +717,7 @@ var oidcStorage = /*#__PURE__*/Object.freeze({
|
|
|
725
717
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = _Reflect$construct__default["default"](Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
726
718
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function () { return !!t; })(); }
|
|
727
719
|
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; }
|
|
728
|
-
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
720
|
+
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; }
|
|
729
721
|
const defaultUserAgent = createHttpUserAgent__default["default"]({
|
|
730
722
|
name: 'unknown-http-client',
|
|
731
723
|
libraryName: typeof window !== 'undefined' ? window.app.applicationName : 'unknown-application-name'
|
|
@@ -733,50 +725,48 @@ const defaultUserAgent = createHttpUserAgent__default["default"]({
|
|
|
733
725
|
const defaultForwardToVersion = 'v2';
|
|
734
726
|
const defaultForwardToAudiencePolicy = 'forward-url-full-path';
|
|
735
727
|
function buildApiUrl(endpoint) {
|
|
736
|
-
var _context;
|
|
737
728
|
const apiUrl = getMcApiUrl().replace(/\/$/, '');
|
|
738
|
-
return
|
|
729
|
+
return `${apiUrl}${endpoint}`;
|
|
739
730
|
}
|
|
740
731
|
const getAppliedForwardToHeaders = forwardToConfig => {
|
|
741
|
-
var
|
|
732
|
+
var _context;
|
|
742
733
|
if (!forwardToConfig) {
|
|
743
734
|
return {};
|
|
744
735
|
}
|
|
745
736
|
if (!forwardToConfig.uri) {
|
|
746
|
-
throw new Error(
|
|
737
|
+
throw new Error(`Missing required "uri" option.`);
|
|
747
738
|
}
|
|
748
739
|
const exchangeTokenClaims = [];
|
|
749
740
|
if (forwardToConfig.includeUserPermissions) {
|
|
750
741
|
exchangeTokenClaims.push('permissions');
|
|
751
742
|
}
|
|
752
|
-
return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty__default["default"](
|
|
743
|
+
return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty__default["default"](_context = _Object$entries__default["default"](forwardToConfig.headers ?? {})).call(_context, (customForwardHeaders, _ref) => {
|
|
753
744
|
let _ref2 = _slicedToArray(_ref, 2),
|
|
754
745
|
headerName = _ref2[0],
|
|
755
746
|
headerValue = _ref2[1];
|
|
756
747
|
return _objectSpread$2(_objectSpread$2({}, customForwardHeaders), {}, {
|
|
757
748
|
// Prefix headers so that the MC API can allow and forward them.
|
|
758
|
-
[
|
|
749
|
+
[`x-forward-header-${headerName}`]: headerValue
|
|
759
750
|
});
|
|
760
751
|
}, {})), {}, {
|
|
761
|
-
[constants.SUPPORTED_HEADERS.ACCEPT_VERSION]:
|
|
752
|
+
[constants.SUPPORTED_HEADERS.ACCEPT_VERSION]: forwardToConfig.version ?? defaultForwardToVersion,
|
|
762
753
|
[constants.SUPPORTED_HEADERS.X_FORWARD_TO]: forwardToConfig.uri,
|
|
763
|
-
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]:
|
|
754
|
+
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY]: forwardToConfig.audiencePolicy ?? defaultForwardToAudiencePolicy,
|
|
764
755
|
[constants.SUPPORTED_HEADERS.X_FORWARD_TO_CLAIMS]: exchangeTokenClaims.join(' ')
|
|
765
756
|
});
|
|
766
757
|
};
|
|
767
758
|
function createHttpClientOptions() {
|
|
768
|
-
var _config$projectKey;
|
|
769
759
|
let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
770
760
|
const sessionToken = getSessionToken();
|
|
771
|
-
const projectKey =
|
|
761
|
+
const projectKey = config.projectKey ?? selectProjectKeyFromUrl();
|
|
772
762
|
const userId = selectUserId();
|
|
773
|
-
const userAgent =
|
|
763
|
+
const userAgent = config?.userAgent || defaultUserAgent;
|
|
774
764
|
return {
|
|
775
765
|
credentials: 'include',
|
|
776
766
|
headers: omitEmpty__default["default"](_objectSpread$2(_objectSpread$2({}, config.headers), {}, {
|
|
777
767
|
// Required headers
|
|
778
768
|
[constants.SUPPORTED_HEADERS.ACCEPT]: 'application/json',
|
|
779
|
-
[constants.SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ?
|
|
769
|
+
[constants.SUPPORTED_HEADERS.AUTHORIZATION]: sessionToken ? `Bearer ${sessionToken}` : undefined,
|
|
780
770
|
[constants.SUPPORTED_HEADERS.X_APPLICATION_ID]: window.app.applicationIdentifier,
|
|
781
771
|
[constants.SUPPORTED_HEADERS.X_CUSTOM_VIEW_ID]: window.app.customViewId,
|
|
782
772
|
[constants.SUPPORTED_HEADERS.X_CORRELATION_ID]: getCorrelationId({
|
|
@@ -815,7 +805,7 @@ async function executeHttpClientRequest(fetcher) {
|
|
|
815
805
|
}))
|
|
816
806
|
}));
|
|
817
807
|
if (response.statusCode === constants.STATUS_CODES.UNAUTHORIZED) {
|
|
818
|
-
throw new RenewTokenError(
|
|
808
|
+
throw new RenewTokenError(`Unauthorized response, attempting retry.`);
|
|
819
809
|
}
|
|
820
810
|
|
|
821
811
|
// In case a new session token is returned from the server, save it.
|
|
@@ -839,7 +829,7 @@ async function executeHttpClientRequest(fetcher) {
|
|
|
839
829
|
}
|
|
840
830
|
|
|
841
831
|
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; }
|
|
842
|
-
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
832
|
+
function _objectSpread$1(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$1(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$1(Object(t))).call(_context4, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
843
833
|
const userAgent = createHttpUserAgent__default["default"]({
|
|
844
834
|
name: 'apollo-client',
|
|
845
835
|
// version: apolloVersion,
|
|
@@ -854,18 +844,13 @@ const isKnownGraphQlTarget = target => {
|
|
|
854
844
|
return target ? _includesInstanceProperty__default["default"](_context = _Object$values__default["default"](constants.GRAPHQL_TARGETS)).call(_context, target) : false;
|
|
855
845
|
};
|
|
856
846
|
const extractSessionTokenFromResponse = context => {
|
|
857
|
-
|
|
858
|
-
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');
|
|
847
|
+
const refreshedSessionToken = context.response?.headers?.get('x-refreshed-session-token');
|
|
859
848
|
if (refreshedSessionToken) {
|
|
860
|
-
return refreshedSessionToken
|
|
849
|
+
return refreshedSessionToken ?? null;
|
|
861
850
|
}
|
|
862
|
-
const restResponseWithRefreshTokenHeader =
|
|
863
|
-
var _response$headers;
|
|
864
|
-
return (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.has('x-refreshed-session-token');
|
|
865
|
-
});
|
|
851
|
+
const restResponseWithRefreshTokenHeader = context.restResponses?.find(response => response.headers?.has('x-refreshed-session-token'));
|
|
866
852
|
if (restResponseWithRefreshTokenHeader) {
|
|
867
|
-
|
|
868
|
-
return (_restResponseWithRefr = restResponseWithRefreshTokenHeader.headers.get('x-refreshed-session-token')) !== null && _restResponseWithRefr !== void 0 ? _restResponseWithRefr : null;
|
|
853
|
+
return restResponseWithRefreshTokenHeader.headers.get('x-refreshed-session-token') ?? null;
|
|
869
854
|
}
|
|
870
855
|
return null;
|
|
871
856
|
};
|
|
@@ -873,11 +858,11 @@ const extractSessionTokenFromResponse = context => {
|
|
|
873
858
|
/* eslint-disable import/prefer-default-export */
|
|
874
859
|
// Use a middleware to update the request headers with the correct params.
|
|
875
860
|
const headerLink = new client.ApolloLink((operation, forward) => {
|
|
876
|
-
var _context2
|
|
861
|
+
var _context2;
|
|
877
862
|
const apolloContext = operation.getContext();
|
|
878
863
|
const variables = operation.variables;
|
|
879
864
|
const graphQlTarget = apolloContext.target || variables.target;
|
|
880
|
-
if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(
|
|
865
|
+
if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(`GraphQL target "${graphQlTarget}" is missing (or is not supported) in operation "${operation.operationName}"`);
|
|
881
866
|
|
|
882
867
|
/**
|
|
883
868
|
* NOTE:
|
|
@@ -904,7 +889,7 @@ const headerLink = new client.ApolloLink((operation, forward) => {
|
|
|
904
889
|
forwardToConfig: apolloContext.forwardToConfig,
|
|
905
890
|
projectKey
|
|
906
891
|
}));
|
|
907
|
-
return _mapInstanceProperty__default["default"](
|
|
892
|
+
return _mapInstanceProperty__default["default"](_context2 = forward(operation)).call(_context2, response => {
|
|
908
893
|
const context = operation.getContext();
|
|
909
894
|
const refreshedSessionToken = extractSessionTokenFromResponse(context);
|
|
910
895
|
if (refreshedSessionToken) {
|
|
@@ -917,7 +902,7 @@ const headerLink = new client.ApolloLink((operation, forward) => {
|
|
|
917
902
|
const tokenRetryLink = new retry.RetryLink({
|
|
918
903
|
attempts: (count, operation, error) => {
|
|
919
904
|
const context = operation.getContext();
|
|
920
|
-
if (
|
|
905
|
+
if (error?.statusCode === constants.STATUS_CODES.UNAUTHORIZED && count === 1 && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
921
906
|
operation.setContext(_ref => {
|
|
922
907
|
let headers = _ref.headers;
|
|
923
908
|
return {
|
|
@@ -935,7 +920,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _co
|
|
|
935
920
|
const createApolloLink = function () {
|
|
936
921
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
937
922
|
const httpLink = client.createHttpLink({
|
|
938
|
-
uri:
|
|
923
|
+
uri: `${getMcApiUrl()}/graphql`,
|
|
939
924
|
fetch
|
|
940
925
|
});
|
|
941
926
|
|
|
@@ -979,9 +964,8 @@ const mergeArraysObjects = function () {
|
|
|
979
964
|
}, []);
|
|
980
965
|
};
|
|
981
966
|
const createApolloClient = function () {
|
|
982
|
-
var _options$cache, _customCacheConfig$ty;
|
|
983
967
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
984
|
-
const customCacheConfig =
|
|
968
|
+
const customCacheConfig = options?.cache ?? {};
|
|
985
969
|
return new client.ApolloClient({
|
|
986
970
|
link: createApolloLink(options),
|
|
987
971
|
// https://www.apollographql.com/docs/react/caching/cache-configuration/
|
|
@@ -1020,7 +1004,7 @@ const createApolloClient = function () {
|
|
|
1020
1004
|
}
|
|
1021
1005
|
}
|
|
1022
1006
|
}
|
|
1023
|
-
},
|
|
1007
|
+
}, customCacheConfig.typePolicies ?? {})
|
|
1024
1008
|
}))
|
|
1025
1009
|
});
|
|
1026
1010
|
};
|