@commercetools-frontend/application-shell 21.10.0 → 21.13.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.
Files changed (40) hide show
  1. package/dist/{application-entry-point-9a23a345.cjs.prod.js → application-entry-point-0712cf7e.cjs.prod.js} +242 -86
  2. package/dist/{application-entry-point-4de6686c.cjs.dev.js → application-entry-point-56bf2606.cjs.dev.js} +242 -86
  3. package/dist/{application-entry-point-a5b662f7.esm.js → application-entry-point-7cff60bd.esm.js} +237 -84
  4. package/dist/commercetools-frontend-application-shell.cjs.dev.js +19 -18
  5. package/dist/commercetools-frontend-application-shell.cjs.prod.js +19 -18
  6. package/dist/commercetools-frontend-application-shell.esm.js +15 -15
  7. package/dist/declarations/src/configure-apollo.d.ts +1 -2
  8. package/dist/declarations/src/export-types.d.ts +2 -2
  9. package/dist/declarations/src/index.d.ts +1 -1
  10. package/dist/declarations/src/types/generated/settings.d.ts +108 -84
  11. package/dist/declarations/src/utils/apollo-client-runtime-cache.d.ts +1 -2
  12. package/dist/declarations/src/utils/apollo-context.d.ts +3 -14
  13. package/dist/declarations/src/utils/get-mc-api-url/get-mc-api-url.d.ts +2 -7
  14. package/dist/declarations/src/utils/http-client.d.ts +10 -0
  15. package/dist/declarations/src/utils/index.d.ts +1 -1
  16. package/dist/{index-5062ecc2.esm.js → index-4381d726.esm.js} +112 -270
  17. package/dist/{index-e96ff96a.cjs.prod.js → index-7c6d524e.cjs.prod.js} +108 -271
  18. package/dist/{index-f576ae07.cjs.dev.js → index-b3e5cace.cjs.dev.js} +109 -272
  19. package/dist/{project-expired-1f22bb6e.cjs.dev.js → project-expired-438ef0b1.cjs.dev.js} +14 -14
  20. package/dist/{project-expired-609688e8.esm.js → project-expired-c12c6746.esm.js} +14 -14
  21. package/dist/{project-expired-3802e644.cjs.prod.js → project-expired-d3cd31db.cjs.prod.js} +14 -14
  22. package/dist/{project-not-found-345a1103.cjs.prod.js → project-not-found-6b730bb8.cjs.prod.js} +14 -14
  23. package/dist/{project-not-found-2bf5f586.cjs.dev.js → project-not-found-8c9e17dd.cjs.dev.js} +14 -14
  24. package/dist/{project-not-found-931cbb6b.esm.js → project-not-found-cd6c819e.esm.js} +14 -14
  25. package/dist/{project-not-initialized-f840b682.cjs.prod.js → project-not-initialized-0d7bf4dc.cjs.prod.js} +14 -14
  26. package/dist/{project-not-initialized-69a8f77c.esm.js → project-not-initialized-55c95285.esm.js} +14 -14
  27. package/dist/{project-not-initialized-24d58aac.cjs.dev.js → project-not-initialized-7fa9142a.cjs.dev.js} +14 -14
  28. package/dist/{project-suspended-283ebad8.cjs.prod.js → project-suspended-6dcd1921.cjs.prod.js} +14 -14
  29. package/dist/{project-suspended-b650b271.esm.js → project-suspended-b4a42afc.esm.js} +14 -14
  30. package/dist/{project-suspended-a21d49f2.cjs.dev.js → project-suspended-edeef9ee.cjs.dev.js} +14 -14
  31. package/dist/{quick-access-d42f4898.cjs.dev.js → quick-access-6d91795e.cjs.dev.js} +11 -11
  32. package/dist/{quick-access-6368a1c1.cjs.prod.js → quick-access-7507cee0.cjs.prod.js} +11 -11
  33. package/dist/{quick-access-193a477e.esm.js → quick-access-9f7222ae.esm.js} +11 -11
  34. package/dist/{service-page-project-switcher-5d2bef22.cjs.dev.js → service-page-project-switcher-777675d0.cjs.dev.js} +1 -1
  35. package/dist/{service-page-project-switcher-ea8878cf.esm.js → service-page-project-switcher-8015085f.esm.js} +1 -1
  36. package/dist/{service-page-project-switcher-5e28ee0f.cjs.prod.js → service-page-project-switcher-ee31b66a.cjs.prod.js} +1 -1
  37. package/package.json +26 -26
  38. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +12 -2
  39. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +12 -2
  40. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +12 -2
@@ -38,7 +38,6 @@ var sentry = require('@commercetools-frontend/sentry');
38
38
  var _URL = require('@babel/runtime-corejs3/core-js-stable/url');
39
39
  var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
40
40
  var client = require('@apollo/client');
41
- var createHttpUserAgent = require('@commercetools/http-user-agent');
42
41
  var loggerLink = require('apollo-link-logger');
43
42
  var _Array$from = require('@babel/runtime-corejs3/core-js-stable/array/from');
44
43
  var _Symbol = require('@babel/runtime-corejs3/core-js-stable/symbol');
@@ -49,8 +48,19 @@ var history = require('@commercetools-frontend/browser-history');
49
48
  var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
50
49
  var _Object$values = require('@babel/runtime-corejs3/core-js-stable/object/values');
51
50
  var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
51
+ var createHttpUserAgent = require('@commercetools/http-user-agent');
52
52
  var uuid = require('uuid');
53
53
  var _JSON$stringify = require('@babel/runtime-corejs3/core-js-stable/json/stringify');
54
+ var _Reflect$construct = require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
55
+ var _asyncToGenerator = require('@babel/runtime-corejs3/helpers/asyncToGenerator');
56
+ var _createClass = require('@babel/runtime-corejs3/helpers/createClass');
57
+ var _classCallCheck = require('@babel/runtime-corejs3/helpers/classCallCheck');
58
+ var _assertThisInitialized = require('@babel/runtime-corejs3/helpers/assertThisInitialized');
59
+ var _inherits = require('@babel/runtime-corejs3/helpers/inherits');
60
+ var _possibleConstructorReturn = require('@babel/runtime-corejs3/helpers/possibleConstructorReturn');
61
+ var _getPrototypeOf = require('@babel/runtime-corejs3/helpers/getPrototypeOf');
62
+ var _wrapNativeSuper = require('@babel/runtime-corejs3/helpers/wrapNativeSuper');
63
+ var _regeneratorRuntime = require('@babel/runtime-corejs3/regenerator');
54
64
  var retry = require('@apollo/client/link/retry');
55
65
  var _pt = require('prop-types');
56
66
  var react = require('react');
@@ -86,7 +96,6 @@ var _indexOfInstanceProperty__default = /*#__PURE__*/_interopDefault(_indexOfIns
86
96
  var _sliceInstanceProperty__default = /*#__PURE__*/_interopDefault(_sliceInstanceProperty);
87
97
  var _URL__default = /*#__PURE__*/_interopDefault(_URL);
88
98
  var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
89
- var createHttpUserAgent__default = /*#__PURE__*/_interopDefault(createHttpUserAgent);
90
99
  var loggerLink__default = /*#__PURE__*/_interopDefault(loggerLink);
91
100
  var _Array$from__default = /*#__PURE__*/_interopDefault(_Array$from);
92
101
  var _Symbol__default = /*#__PURE__*/_interopDefault(_Symbol);
@@ -96,12 +105,15 @@ var history__default = /*#__PURE__*/_interopDefault(history);
96
105
  var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
97
106
  var _Object$values__default = /*#__PURE__*/_interopDefault(_Object$values);
98
107
  var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
108
+ var createHttpUserAgent__default = /*#__PURE__*/_interopDefault(createHttpUserAgent);
99
109
  var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
110
+ var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
111
+ var _regeneratorRuntime__default = /*#__PURE__*/_interopDefault(_regeneratorRuntime);
100
112
  var _pt__default = /*#__PURE__*/_interopDefault(_pt);
101
113
  var invariant__default = /*#__PURE__*/_interopDefault(invariant);
102
114
 
103
115
  // NOTE: This string will be replaced on build time with the package version.
104
- var version = "21.10.0";
116
+ var version = "21.13.0";
105
117
 
106
118
  var isAddNotificationErrorAction = function isAddNotificationErrorAction(action) {
107
119
  var errorAction = action;
@@ -229,9 +241,9 @@ var messages = reactIntl.defineMessages({
229
241
  }
230
242
  });
231
243
 
232
- function ownKeys$5(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
244
+ function ownKeys$6(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
233
245
 
234
- function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$5(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$5(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
246
+ function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$6(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$6(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
235
247
 
236
248
  var getPortalContainer = function getPortalContainer() {
237
249
  return process.env.NODE_ENV === 'test' ? document.body : document.querySelector("#".concat(REQUESTS_IN_FLIGHT_LOADER_DOM_ID));
@@ -243,7 +255,7 @@ var RequestsInFlightLoader = function RequestsInFlightLoader() {
243
255
  });
244
256
  if (!hasRequestsInFlight) return null;
245
257
  return /*#__PURE__*/ReactDOM__default["default"].createPortal(jsxRuntime.jsx(LoadingSpinner__default["default"], {
246
- children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.labelLoading))
258
+ children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$6({}, messages.labelLoading))
247
259
  }), getPortalContainer());
248
260
  };
249
261
 
@@ -349,52 +361,47 @@ function getCorrelationId() {
349
361
  return _filterInstanceProperty__default["default"](_context = ['mc', selectProjectKeyFromUrl(), userId, uuid.v4()]).call(_context, skipMalformedPart).join('/');
350
362
  }
351
363
 
352
- var removeMcPrefix = function removeMcPrefix(host) {
353
- return host.replace(/^mc(-(\d){4,})?\.(.*)$/, '$3');
364
+ // NOTE: Copied from `@application-shell-connectors`.
365
+ // TODO: Remove this version once the change in the connectors has been released.
366
+ var mcHostnameRegex = /^mc(-(\d){4,})?\.(.*)$/;
367
+ var mcPreviewHostnameRegex = /^.*\.mc-preview\.(.*)$/;
368
+
369
+ var getMcOriginTld = function getMcOriginTld(host) {
370
+ if (host.match(mcPreviewHostnameRegex)) {
371
+ return host.replace(mcPreviewHostnameRegex, '$1');
372
+ }
373
+
374
+ return host.replace(mcHostnameRegex, '$3');
354
375
  };
355
- /**
356
- * NOTE:
357
- * Given the Merchant Center or Custom Application runs behind the proxy
358
- * then the `mcApiUrl` should be build using the origin on the window.
359
- *
360
- * This allows the Merchant Center (or any Custom Appliction) to automatically
361
- * use an `mcApiUrl` which matches the respective url of the deployment.
362
- *
363
- * This is particularily useful with the new and old hostnames for the Merchant Center.
364
- * When using the origin, it will be made sure that the authorization cookie will
365
- * always be sent as the appropriate API url is used.
366
- *
367
- * 1. MC: mc.commercetools.com with API: mc-api.europe-west1.gcp.commercetools.com
368
- * -> Will not work as urls differ
369
- * 2. MC: mc.europe-west1.gcp.commercetools.com with API: mc-api.commercetools.com
370
- * -> Will not work as urls differ
371
- *
372
- * Using the origin ensures that urls always match with the cookie sent. Otherwise,
373
- * the application shell will rightfully redirect to the logout page.
374
- */
375
-
376
-
377
- var getMcApiUrlFromOrigin = function getMcApiUrlFromOrigin(actualWindow) {
376
+
377
+ var getMcApiUrlFromOrigin = function getMcApiUrlFromOrigin(origin) {
378
378
  var _context;
379
379
 
380
- var url = new _URL__default["default"](actualWindow.origin);
381
- var originTld = removeMcPrefix(url.host);
380
+ var url = new _URL__default["default"](origin);
381
+ var originTld = getMcOriginTld(url.host);
382
382
  return _concatInstanceProperty__default["default"](_context = "".concat(url.protocol, "//mc-api.")).call(_context, originTld);
383
383
  };
384
384
 
385
- var isEnvironmentConfigurationEnabled = function isEnvironmentConfigurationEnabled(environmentConfiguration) {
386
- return environmentConfiguration === true || environmentConfiguration === 'true';
385
+ var parseAsBoolean = function parseAsBoolean(value) {
386
+ return value === true || value === 'true';
387
387
  };
388
388
 
389
389
  function getMcApiUrl() {
390
- var actualWindow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
391
- var isServedByProxy = isEnvironmentConfigurationEnabled(actualWindow.app.servedByProxy);
390
+ var environment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.app;
391
+ var origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.origin;
392
+ var isServedByProxy = parseAsBoolean(environment.servedByProxy);
393
+ /**
394
+ * Prefer using the origin URL for the MC API based on the origin value
395
+ * of the browser's `window.location`.
396
+ * This ensures that the application always uses the correct URL associated
397
+ * with that environment, instead of relying on the config value.
398
+ */
392
399
 
393
400
  if (isServedByProxy) {
394
- return getMcApiUrlFromOrigin(actualWindow);
401
+ return getMcApiUrlFromOrigin(origin);
395
402
  }
396
403
 
397
- return actualWindow.app.mcApiUrl;
404
+ return environment.mcApiUrl;
398
405
  }
399
406
 
400
407
  var getSessionToken = function getSessionToken() {
@@ -470,9 +477,9 @@ var setSessionState = function setSessionState(stateId, state) {
470
477
  window.sessionStorage.setItem(sessionStateKey, _JSON$stringify__default["default"](state));
471
478
  };
472
479
 
473
- function ownKeys$4(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
480
+ function ownKeys$5(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
474
481
 
475
- function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context3 = ownKeys$4(Object(source), !0)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context4 = ownKeys$4(Object(source))).call(_context4, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
482
+ function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context3 = ownKeys$5(Object(source), !0)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context4 = ownKeys$5(Object(source))).call(_context4, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
476
483
 
477
484
  var identityStoreEnhancer = function identityStoreEnhancer(noop) {
478
485
  return noop;
@@ -485,7 +492,7 @@ var mergeObjectValues = function mergeObjectValues(object) {
485
492
  var _ref2 = _slicedToArray(_ref, 2),
486
493
  value = _ref2[1];
487
494
 
488
- return _objectSpread$4(_objectSpread$4({}, acc), value);
495
+ return _objectSpread$5(_objectSpread$5({}, acc), value);
489
496
  }, {});
490
497
  };
491
498
 
@@ -530,7 +537,7 @@ var createInternalReducer = function createInternalReducer() {
530
537
  }); // NOTE: since we don't know in advance which reducers will be injected,
531
538
  // we pass an `unknown` type to express this uncertainty and make the compiler happy.
532
539
 
533
- return redux.combineReducers(_objectSpread$4(_objectSpread$4({
540
+ return redux.combineReducers(_objectSpread$5(_objectSpread$5({
534
541
  requestsInFlight: requestsInFlightReducer,
535
542
  notifications: notifications.reducer
536
543
  }, injectedReducers), preloadedStateReducers));
@@ -573,9 +580,9 @@ var createReduxStore = function createReduxStore() {
573
580
  };
574
581
  var internalReduxStore = createReduxStore();
575
582
 
576
- function ownKeys$3(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
583
+ function ownKeys$4(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
577
584
 
578
- function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$3(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$3(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
585
+ function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$4(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$4(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
579
586
 
580
587
  var getSkipTokenRetry = function getSkipTokenRetry(context) {
581
588
  var skipTokenRetry = Boolean(context.skipTokenRetry);
@@ -583,7 +590,7 @@ var getSkipTokenRetry = function getSkipTokenRetry(context) {
583
590
  };
584
591
 
585
592
  var forwardTokenRetryHeader = function forwardTokenRetryHeader(headers) {
586
- return _objectSpread$3(_objectSpread$3({}, headers), {}, _defineProperty({}, constants$1.SUPPORTED_HEADERS.X_TOKEN_RETRY, 'true'));
593
+ return _objectSpread$4(_objectSpread$4({}, headers), {}, _defineProperty({}, constants$1.SUPPORTED_HEADERS.X_TOKEN_RETRY, 'true'));
587
594
  }; // This link retries requests to the CTP API that have been rejected
588
595
  // because of an invalid/expired oauth token.
589
596
  // To do so, we resend the request with the header "X-Force-Token: true"
@@ -674,30 +681,193 @@ var errorLink = error.onError(function (_ref) {
674
681
  return;
675
682
  });
676
683
 
677
- function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
684
+ 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); }; }
678
685
 
679
- function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var _context5, _context6; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context5 = ownKeys$2(Object(source), !0)).call(_context5, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context6 = ownKeys$2(Object(source))).call(_context6, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
686
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct__default["default"]) return false; if (_Reflect$construct__default["default"].sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); return true; } catch (e) { return false; } }
680
687
 
681
- var isKnownGraphQlTarget = function isKnownGraphQlTarget(target) {
688
+ function ownKeys$3(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
689
+
690
+ function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var _context5, _context6; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context5 = ownKeys$3(Object(source), !0)).call(_context5, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context6 = ownKeys$3(Object(source))).call(_context6, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
691
+ var defaultUserAgent = createHttpUserAgent__default["default"]({
692
+ name: 'unknown-http-client',
693
+ libraryName: window.app.applicationName
694
+ });
695
+ var defaultForwardToVersion = 'v2';
696
+ var defaultForwardToAudiencePolicy = 'forward-url-full-path';
697
+
698
+ function buildApiUrl(endpoint) {
682
699
  var _context;
683
700
 
684
- return target ? _includesInstanceProperty__default["default"](_context = _Object$values__default["default"](constants.GRAPHQL_TARGETS)).call(_context, target) : false;
701
+ var apiUrl = getMcApiUrl().replace(/\/$/, '');
702
+ return _concatInstanceProperty__default["default"](_context = "".concat(apiUrl)).call(_context, endpoint);
703
+ }
704
+
705
+ var getAppliedForwardToHeaders = function getAppliedForwardToHeaders(forwardToConfig) {
706
+ var _context2, _forwardToConfig$head, _forwardToConfig$vers, _forwardToConfig$audi, _objectSpread3;
707
+
708
+ if (!forwardToConfig) {
709
+ return {};
710
+ }
711
+
712
+ if (!forwardToConfig.uri) {
713
+ throw new Error("Missing required \"uri\" option.");
714
+ }
715
+
716
+ return _objectSpread$3(_objectSpread$3({}, _reduceInstanceProperty__default["default"](_context2 = _Object$entries__default["default"]((_forwardToConfig$head = forwardToConfig.headers) !== null && _forwardToConfig$head !== void 0 ? _forwardToConfig$head : {})).call(_context2, function (customForwardHeaders, _ref) {
717
+ var _ref2 = _slicedToArray(_ref, 2),
718
+ headerName = _ref2[0],
719
+ headerValue = _ref2[1];
720
+
721
+ return _objectSpread$3(_objectSpread$3({}, customForwardHeaders), {}, _defineProperty({}, "x-forward-header-".concat(headerName), headerValue));
722
+ }, {})), {}, (_objectSpread3 = {}, _defineProperty(_objectSpread3, constants$1.SUPPORTED_HEADERS.ACCEPT_VERSION, (_forwardToConfig$vers = forwardToConfig.version) !== null && _forwardToConfig$vers !== void 0 ? _forwardToConfig$vers : defaultForwardToVersion), _defineProperty(_objectSpread3, constants$1.SUPPORTED_HEADERS.X_FORWARD_TO, forwardToConfig.uri), _defineProperty(_objectSpread3, constants$1.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY, (_forwardToConfig$audi = forwardToConfig.audiencePolicy) !== null && _forwardToConfig$audi !== void 0 ? _forwardToConfig$audi : defaultForwardToAudiencePolicy), _objectSpread3));
685
723
  };
686
724
 
687
- var getAppliedForwardToHeaders = function getAppliedForwardToHeaders(apolloContext) {
688
- if (apolloContext.forwardToConfig) {
689
- var _context2, _apolloContext$forwar, _objectSpread3;
725
+ function createHttpClientOptions() {
726
+ var _config$projectKey, _objectSpread4;
727
+
728
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
729
+ var sessionToken = getSessionToken();
730
+ var projectKey = (_config$projectKey = config.projectKey) !== null && _config$projectKey !== void 0 ? _config$projectKey : selectProjectKeyFromUrl();
731
+ var userId = selectUserId();
732
+ var userAgent = (config === null || config === void 0 ? void 0 : config.userAgent) || defaultUserAgent;
733
+ return {
734
+ credentials: 'include',
735
+ headers: omitEmpty__default["default"](_objectSpread$3(_objectSpread$3({}, config.headers), {}, (_objectSpread4 = {}, _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.ACCEPT, 'application/json'), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.AUTHORIZATION, sessionToken ? "Bearer ".concat(sessionToken) : undefined), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_APPLICATION_ID, window.app.applicationId), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_CORRELATION_ID, getCorrelationId({
736
+ userId: userId
737
+ })), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_PROJECT_KEY, projectKey), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_USER_AGENT, userAgent), _objectSpread4), getAppliedForwardToHeaders(config.forwardToConfig)))
738
+ };
739
+ }
690
740
 
691
- return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty__default["default"](_context2 = _Object$entries__default["default"]((_apolloContext$forwar = apolloContext.forwardToConfig.headers) !== null && _apolloContext$forwar !== void 0 ? _apolloContext$forwar : {})).call(_context2, function (customForwardHeaders, _ref) {
692
- var _ref2 = _slicedToArray(_ref, 2),
693
- headerName = _ref2[0],
694
- headerValue = _ref2[1];
741
+ var RenewTokenError = /*#__PURE__*/function (_Error) {
742
+ _inherits(RenewTokenError, _Error);
695
743
 
696
- return _objectSpread$2(_objectSpread$2({}, customForwardHeaders), {}, _defineProperty({}, "x-forward-header-".concat(headerName), headerValue));
697
- }, {})), {}, (_objectSpread3 = {}, _defineProperty(_objectSpread3, constants$1.SUPPORTED_HEADERS.ACCEPT_VERSION, apolloContext.forwardToConfig.version), _defineProperty(_objectSpread3, constants$1.SUPPORTED_HEADERS.X_FORWARD_TO, apolloContext.forwardToConfig.uri), _defineProperty(_objectSpread3, constants$1.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY, apolloContext.forwardToConfig.audiencePolicy), _objectSpread3));
744
+ var _super = _createSuper(RenewTokenError);
745
+
746
+ function RenewTokenError(message) {
747
+ var _this;
748
+
749
+ _classCallCheck(this, RenewTokenError);
750
+
751
+ _this = _super.call(this, message);
752
+
753
+ _Object$defineProperty__default["default"](_assertThisInitialized(_this), 'name', {
754
+ value: 'RenewTokenError'
755
+ });
756
+
757
+ return _this;
698
758
  }
699
759
 
700
- return {};
760
+ return _createClass(RenewTokenError);
761
+ }( /*#__PURE__*/_wrapNativeSuper(Error));
762
+
763
+ function executeHttpClientRequest(_x) {
764
+ return _executeHttpClientRequest.apply(this, arguments);
765
+ }
766
+
767
+ function _executeHttpClientRequest() {
768
+ _executeHttpClientRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(fetcher) {
769
+ var config,
770
+ sendRequest,
771
+ _sendRequest,
772
+ _args2 = arguments;
773
+
774
+ return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context4) {
775
+ while (1) {
776
+ switch (_context4.prev = _context4.next) {
777
+ case 0:
778
+ _sendRequest = function _sendRequest3() {
779
+ _sendRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
780
+ var _ref3,
781
+ shouldRenewToken,
782
+ requestOptions,
783
+ response,
784
+ refreshedSessionToken,
785
+ _args = arguments;
786
+
787
+ return _regeneratorRuntime__default["default"].wrap(function _callee$(_context3) {
788
+ while (1) {
789
+ switch (_context3.prev = _context3.next) {
790
+ case 0:
791
+ _ref3 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, shouldRenewToken = _ref3.shouldRenewToken;
792
+ requestOptions = createHttpClientOptions(config);
793
+ _context3.next = 4;
794
+ return fetcher(_objectSpread$3(_objectSpread$3({}, requestOptions), {}, {
795
+ headers: omitEmpty__default["default"](_objectSpread$3(_objectSpread$3({}, requestOptions.headers), {}, _defineProperty({}, constants$1.SUPPORTED_HEADERS.X_TOKEN_RETRY, shouldRenewToken)))
796
+ }));
797
+
798
+ case 4:
799
+ response = _context3.sent;
800
+
801
+ if (!(response.statusCode === constants.STATUS_CODES.UNAUTHORIZED)) {
802
+ _context3.next = 7;
803
+ break;
804
+ }
805
+
806
+ throw new RenewTokenError("Unauthorized response, attempting retry.");
807
+
808
+ case 7:
809
+ // In case a new session token is returned from the server, save it.
810
+ refreshedSessionToken = response.getHeader('x-refreshed-session-token');
811
+
812
+ if (refreshedSessionToken) {
813
+ setActiveSession(refreshedSessionToken);
814
+ }
815
+
816
+ return _context3.abrupt("return", response.data);
817
+
818
+ case 10:
819
+ case "end":
820
+ return _context3.stop();
821
+ }
822
+ }
823
+ }, _callee);
824
+ }));
825
+ return _sendRequest.apply(this, arguments);
826
+ };
827
+
828
+ sendRequest = function _sendRequest2() {
829
+ return _sendRequest.apply(this, arguments);
830
+ };
831
+
832
+ config = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : {};
833
+ return _context4.abrupt("return", sendRequest().catch(function (error) {
834
+ if (error instanceof RenewTokenError) {
835
+ // Retry the request and ask to renew the token.
836
+ return sendRequest({
837
+ shouldRenewToken: true
838
+ });
839
+ }
840
+
841
+ throw error;
842
+ }));
843
+
844
+ case 4:
845
+ case "end":
846
+ return _context4.stop();
847
+ }
848
+ }
849
+ }, _callee2);
850
+ }));
851
+ return _executeHttpClientRequest.apply(this, arguments);
852
+ }
853
+
854
+ function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
855
+
856
+ function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var _context4, _context5; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context4 = ownKeys$2(Object(source), !0)).call(_context4, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context5 = ownKeys$2(Object(source))).call(_context5, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
857
+ var userAgent = createHttpUserAgent__default["default"]({
858
+ name: 'apollo-client',
859
+ // version: apolloVersion,
860
+ libraryName: [window.app.applicationName, 'application-shell'].join('/'),
861
+ libraryVersion: version,
862
+ contactUrl: 'https://git.io/fjuyC',
863
+ // points to the appkit repo issues
864
+ contactEmail: 'support@commercetools.com'
865
+ });
866
+
867
+ var isKnownGraphQlTarget = function isKnownGraphQlTarget(target) {
868
+ var _context;
869
+
870
+ return target ? _includesInstanceProperty__default["default"](_context = _Object$values__default["default"](constants.GRAPHQL_TARGETS)).call(_context, target) : false;
701
871
  };
702
872
 
703
873
  var extractSessionTokenFromResponse = function extractSessionTokenFromResponse(context) {
@@ -728,12 +898,12 @@ var extractSessionTokenFromResponse = function extractSessionTokenFromResponse(c
728
898
 
729
899
 
730
900
  var headerLink = new client.ApolloLink(function (operation, forward) {
731
- var _context3, _objectSpread4, _context4;
901
+ var _context2, _objectSpread2, _context3;
732
902
 
733
903
  var apolloContext = operation.getContext();
734
904
  var variables = operation.variables;
735
905
  var graphQlTarget = apolloContext.target || variables.target;
736
- if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(_concatInstanceProperty__default["default"](_context3 = "GraphQL target \"".concat(graphQlTarget, "\" is missing (or is not supported) in operation \"")).call(_context3, operation.operationName, "\""));
906
+ if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(_concatInstanceProperty__default["default"](_context2 = "GraphQL target \"".concat(graphQlTarget, "\" is missing (or is not supported) in operation \"")).call(_context2, operation.operationName, "\""));
737
907
  /**
738
908
  * NOTE:
739
909
  * The project key is read from the url in a project related application context.
@@ -745,16 +915,14 @@ var headerLink = new client.ApolloLink(function (operation, forward) {
745
915
 
746
916
  var projectKey = apolloContext.projectKey || variables.projectKey || selectProjectKeyFromUrl();
747
917
  var teamId = apolloContext.teamId || variables.teamId || selectTeamIdFromLocalStorage();
748
- var userId = selectUserId();
749
918
  var featureFlag = apolloContext.featureFlag || variables.featureFlag;
750
- var sessionToken = getSessionToken();
751
- operation.setContext({
752
- credentials: 'include',
753
- headers: omitEmpty__default["default"](_objectSpread$2(_objectSpread$2({}, apolloContext.headers), {}, (_objectSpread4 = {}, _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.AUTHORIZATION, sessionToken ? "Bearer ".concat(sessionToken) : undefined), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_PROJECT_KEY, projectKey), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_CORRELATION_ID, getCorrelationId({
754
- userId: userId
755
- })), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_GRAPHQL_TARGET, graphQlTarget), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_GRAPHQL_OPERATION_NAME, operation.operationName), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_TEAM_ID, teamId), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_APPLICATION_ID, window.app.applicationId), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_FEATURE_FLAG, featureFlag), _objectSpread4), getAppliedForwardToHeaders(apolloContext)))
756
- });
757
- return _mapInstanceProperty__default["default"](_context4 = forward(operation)).call(_context4, function (response) {
919
+ operation.setContext(createHttpClientOptions({
920
+ userAgent: userAgent,
921
+ headers: omitEmpty__default["default"](_objectSpread$2(_objectSpread$2({}, apolloContext.headers), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, constants$1.SUPPORTED_HEADERS.X_GRAPHQL_TARGET, graphQlTarget), _defineProperty(_objectSpread2, constants$1.SUPPORTED_HEADERS.X_GRAPHQL_OPERATION_NAME, operation.operationName), _defineProperty(_objectSpread2, constants$1.SUPPORTED_HEADERS.X_TEAM_ID, teamId), _defineProperty(_objectSpread2, constants$1.SUPPORTED_HEADERS.X_FEATURE_FLAG, featureFlag), _objectSpread2))),
922
+ forwardToConfig: apolloContext.forwardToConfig,
923
+ projectKey: projectKey
924
+ }));
925
+ return _mapInstanceProperty__default["default"](_context3 = forward(operation)).call(_context3, function (response) {
758
926
  var context = operation.getContext();
759
927
  var refreshedSessionToken = extractSessionTokenFromResponse(context);
760
928
 
@@ -787,21 +955,8 @@ var tokenRetryLink = new retry.RetryLink({
787
955
  function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
788
956
 
789
957
  function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var _context4, _context5; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context4 = ownKeys$1(Object(source), !0)).call(_context4, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context5 = ownKeys$1(Object(source))).call(_context5, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
790
- var userAgent = createHttpUserAgent__default["default"]({
791
- name: 'apollo-client',
792
- // version: apolloVersion,
793
- libraryName: [window.app.applicationName, 'application-shell'].join('/'),
794
- libraryVersion: version,
795
- contactUrl: 'https://git.io/fjuyC',
796
- // points to the appkit repo issues
797
- contactEmail: 'support@commercetools.com'
798
- });
799
958
  var httpLink = client.createHttpLink({
800
959
  uri: "".concat(getMcApiUrl(), "/graphql"),
801
- headers: {
802
- accept: 'application/json',
803
- 'x-user-agent': userAgent
804
- },
805
960
  fetch: fetch
806
961
  });
807
962
 
@@ -1048,15 +1203,16 @@ exports.REQUESTS_IN_FLIGHT_LOADER_DOM_ID = REQUESTS_IN_FLIGHT_LOADER_DOM_ID;
1048
1203
  exports.RequestsInFlightLoader = RequestsInFlightLoader;
1049
1204
  exports.RouteCatchAll = RouteCatchAll;
1050
1205
  exports.applyDefaultMiddlewares = applyDefaultMiddlewares;
1206
+ exports.buildApiUrl = buildApiUrl;
1051
1207
  exports.clearSession = clearSession;
1052
1208
  exports.createApolloClient = createApolloClient;
1209
+ exports.createHttpClientOptions = createHttpClientOptions;
1053
1210
  exports.createReduxStore = createReduxStore;
1211
+ exports.executeHttpClientRequest = executeHttpClientRequest;
1054
1212
  exports.getActiveProjectKey = getActiveProjectKey;
1055
- exports.getCorrelationId = getCorrelationId;
1056
1213
  exports.getMcApiUrl = getMcApiUrl;
1057
1214
  exports.getSessionScope = getSessionScope;
1058
1215
  exports.getSessionState = getSessionState;
1059
- exports.getSessionToken = getSessionToken;
1060
1216
  exports.internalReduxStore = internalReduxStore;
1061
1217
  exports.location = location;
1062
1218
  exports.logger = logger;