@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
  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,11 +105,14 @@ 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 invariant__default = /*#__PURE__*/_interopDefault(invariant);
101
113
 
102
114
  // NOTE: This string will be replaced on build time with the package version.
103
- var version = "21.10.0";
115
+ var version = "21.13.0";
104
116
 
105
117
  var isAddNotificationErrorAction = function isAddNotificationErrorAction(action) {
106
118
  var errorAction = action;
@@ -227,9 +239,9 @@ var messages = reactIntl.defineMessages({
227
239
  }
228
240
  });
229
241
 
230
- 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; }
242
+ 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; }
231
243
 
232
- 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; }
244
+ 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; }
233
245
 
234
246
  var getPortalContainer = function getPortalContainer() {
235
247
  return document.querySelector("#".concat(REQUESTS_IN_FLIGHT_LOADER_DOM_ID));
@@ -241,7 +253,7 @@ var RequestsInFlightLoader = function RequestsInFlightLoader() {
241
253
  });
242
254
  if (!hasRequestsInFlight) return null;
243
255
  return /*#__PURE__*/ReactDOM__default["default"].createPortal(jsxRuntime.jsx(LoadingSpinner__default["default"], {
244
- children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.labelLoading))
256
+ children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$6({}, messages.labelLoading))
245
257
  }), getPortalContainer());
246
258
  };
247
259
 
@@ -347,52 +359,47 @@ function getCorrelationId() {
347
359
  return _filterInstanceProperty__default["default"](_context = ['mc', selectProjectKeyFromUrl(), userId, uuid.v4()]).call(_context, skipMalformedPart).join('/');
348
360
  }
349
361
 
350
- var removeMcPrefix = function removeMcPrefix(host) {
351
- return host.replace(/^mc(-(\d){4,})?\.(.*)$/, '$3');
362
+ // NOTE: Copied from `@application-shell-connectors`.
363
+ // TODO: Remove this version once the change in the connectors has been released.
364
+ var mcHostnameRegex = /^mc(-(\d){4,})?\.(.*)$/;
365
+ var mcPreviewHostnameRegex = /^.*\.mc-preview\.(.*)$/;
366
+
367
+ var getMcOriginTld = function getMcOriginTld(host) {
368
+ if (host.match(mcPreviewHostnameRegex)) {
369
+ return host.replace(mcPreviewHostnameRegex, '$1');
370
+ }
371
+
372
+ return host.replace(mcHostnameRegex, '$3');
352
373
  };
353
- /**
354
- * NOTE:
355
- * Given the Merchant Center or Custom Application runs behind the proxy
356
- * then the `mcApiUrl` should be build using the origin on the window.
357
- *
358
- * This allows the Merchant Center (or any Custom Appliction) to automatically
359
- * use an `mcApiUrl` which matches the respective url of the deployment.
360
- *
361
- * This is particularily useful with the new and old hostnames for the Merchant Center.
362
- * When using the origin, it will be made sure that the authorization cookie will
363
- * always be sent as the appropriate API url is used.
364
- *
365
- * 1. MC: mc.commercetools.com with API: mc-api.europe-west1.gcp.commercetools.com
366
- * -> Will not work as urls differ
367
- * 2. MC: mc.europe-west1.gcp.commercetools.com with API: mc-api.commercetools.com
368
- * -> Will not work as urls differ
369
- *
370
- * Using the origin ensures that urls always match with the cookie sent. Otherwise,
371
- * the application shell will rightfully redirect to the logout page.
372
- */
373
-
374
-
375
- var getMcApiUrlFromOrigin = function getMcApiUrlFromOrigin(actualWindow) {
374
+
375
+ var getMcApiUrlFromOrigin = function getMcApiUrlFromOrigin(origin) {
376
376
  var _context;
377
377
 
378
- var url = new _URL__default["default"](actualWindow.origin);
379
- var originTld = removeMcPrefix(url.host);
378
+ var url = new _URL__default["default"](origin);
379
+ var originTld = getMcOriginTld(url.host);
380
380
  return _concatInstanceProperty__default["default"](_context = "".concat(url.protocol, "//mc-api.")).call(_context, originTld);
381
381
  };
382
382
 
383
- var isEnvironmentConfigurationEnabled = function isEnvironmentConfigurationEnabled(environmentConfiguration) {
384
- return environmentConfiguration === true || environmentConfiguration === 'true';
383
+ var parseAsBoolean = function parseAsBoolean(value) {
384
+ return value === true || value === 'true';
385
385
  };
386
386
 
387
387
  function getMcApiUrl() {
388
- var actualWindow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
389
- var isServedByProxy = isEnvironmentConfigurationEnabled(actualWindow.app.servedByProxy);
388
+ var environment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.app;
389
+ var origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.origin;
390
+ var isServedByProxy = parseAsBoolean(environment.servedByProxy);
391
+ /**
392
+ * Prefer using the origin URL for the MC API based on the origin value
393
+ * of the browser's `window.location`.
394
+ * This ensures that the application always uses the correct URL associated
395
+ * with that environment, instead of relying on the config value.
396
+ */
390
397
 
391
398
  if (isServedByProxy) {
392
- return getMcApiUrlFromOrigin(actualWindow);
399
+ return getMcApiUrlFromOrigin(origin);
393
400
  }
394
401
 
395
- return actualWindow.app.mcApiUrl;
402
+ return environment.mcApiUrl;
396
403
  }
397
404
 
398
405
  var getSessionToken = function getSessionToken() {
@@ -461,9 +468,9 @@ var setSessionState = function setSessionState(stateId, state) {
461
468
  window.sessionStorage.setItem(sessionStateKey, _JSON$stringify__default["default"](state));
462
469
  };
463
470
 
464
- 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; }
471
+ 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; }
465
472
 
466
- 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; }
473
+ 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; }
467
474
 
468
475
  var identityStoreEnhancer = function identityStoreEnhancer(noop) {
469
476
  return noop;
@@ -476,7 +483,7 @@ var mergeObjectValues = function mergeObjectValues(object) {
476
483
  var _ref2 = _slicedToArray(_ref, 2),
477
484
  value = _ref2[1];
478
485
 
479
- return _objectSpread$4(_objectSpread$4({}, acc), value);
486
+ return _objectSpread$5(_objectSpread$5({}, acc), value);
480
487
  }, {});
481
488
  };
482
489
 
@@ -521,7 +528,7 @@ var createInternalReducer = function createInternalReducer() {
521
528
  }); // NOTE: since we don't know in advance which reducers will be injected,
522
529
  // we pass an `unknown` type to express this uncertainty and make the compiler happy.
523
530
 
524
- return redux.combineReducers(_objectSpread$4(_objectSpread$4({
531
+ return redux.combineReducers(_objectSpread$5(_objectSpread$5({
525
532
  requestsInFlight: requestsInFlightReducer,
526
533
  notifications: notifications.reducer
527
534
  }, injectedReducers), preloadedStateReducers));
@@ -564,9 +571,9 @@ var createReduxStore = function createReduxStore() {
564
571
  };
565
572
  var internalReduxStore = createReduxStore();
566
573
 
567
- 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; }
574
+ 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; }
568
575
 
569
- 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; }
576
+ 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; }
570
577
 
571
578
  var getSkipTokenRetry = function getSkipTokenRetry(context) {
572
579
  var skipTokenRetry = Boolean(context.skipTokenRetry);
@@ -574,7 +581,7 @@ var getSkipTokenRetry = function getSkipTokenRetry(context) {
574
581
  };
575
582
 
576
583
  var forwardTokenRetryHeader = function forwardTokenRetryHeader(headers) {
577
- return _objectSpread$3(_objectSpread$3({}, headers), {}, _defineProperty({}, constants$1.SUPPORTED_HEADERS.X_TOKEN_RETRY, 'true'));
584
+ return _objectSpread$4(_objectSpread$4({}, headers), {}, _defineProperty({}, constants$1.SUPPORTED_HEADERS.X_TOKEN_RETRY, 'true'));
578
585
  }; // This link retries requests to the CTP API that have been rejected
579
586
  // because of an invalid/expired oauth token.
580
587
  // To do so, we resend the request with the header "X-Force-Token: true"
@@ -665,30 +672,193 @@ var errorLink = error.onError(function (_ref) {
665
672
  return;
666
673
  });
667
674
 
668
- 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; }
675
+ 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); }; }
669
676
 
670
- 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; }
677
+ 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; } }
671
678
 
672
- var isKnownGraphQlTarget = function isKnownGraphQlTarget(target) {
679
+ 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; }
680
+
681
+ 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; }
682
+ var defaultUserAgent = createHttpUserAgent__default["default"]({
683
+ name: 'unknown-http-client',
684
+ libraryName: window.app.applicationName
685
+ });
686
+ var defaultForwardToVersion = 'v2';
687
+ var defaultForwardToAudiencePolicy = 'forward-url-full-path';
688
+
689
+ function buildApiUrl(endpoint) {
673
690
  var _context;
674
691
 
675
- return target ? _includesInstanceProperty__default["default"](_context = _Object$values__default["default"](constants.GRAPHQL_TARGETS)).call(_context, target) : false;
692
+ var apiUrl = getMcApiUrl().replace(/\/$/, '');
693
+ return _concatInstanceProperty__default["default"](_context = "".concat(apiUrl)).call(_context, endpoint);
694
+ }
695
+
696
+ var getAppliedForwardToHeaders = function getAppliedForwardToHeaders(forwardToConfig) {
697
+ var _context2, _forwardToConfig$head, _forwardToConfig$vers, _forwardToConfig$audi, _objectSpread3;
698
+
699
+ if (!forwardToConfig) {
700
+ return {};
701
+ }
702
+
703
+ if (!forwardToConfig.uri) {
704
+ throw new Error("Missing required \"uri\" option.");
705
+ }
706
+
707
+ 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) {
708
+ var _ref2 = _slicedToArray(_ref, 2),
709
+ headerName = _ref2[0],
710
+ headerValue = _ref2[1];
711
+
712
+ return _objectSpread$3(_objectSpread$3({}, customForwardHeaders), {}, _defineProperty({}, "x-forward-header-".concat(headerName), headerValue));
713
+ }, {})), {}, (_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));
676
714
  };
677
715
 
678
- var getAppliedForwardToHeaders = function getAppliedForwardToHeaders(apolloContext) {
679
- if (apolloContext.forwardToConfig) {
680
- var _context2, _apolloContext$forwar, _objectSpread3;
716
+ function createHttpClientOptions() {
717
+ var _config$projectKey, _objectSpread4;
718
+
719
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
720
+ var sessionToken = getSessionToken();
721
+ var projectKey = (_config$projectKey = config.projectKey) !== null && _config$projectKey !== void 0 ? _config$projectKey : selectProjectKeyFromUrl();
722
+ var userId = selectUserId();
723
+ var userAgent = (config === null || config === void 0 ? void 0 : config.userAgent) || defaultUserAgent;
724
+ return {
725
+ credentials: 'include',
726
+ 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({
727
+ userId: userId
728
+ })), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_PROJECT_KEY, projectKey), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_USER_AGENT, userAgent), _objectSpread4), getAppliedForwardToHeaders(config.forwardToConfig)))
729
+ };
730
+ }
681
731
 
682
- 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) {
683
- var _ref2 = _slicedToArray(_ref, 2),
684
- headerName = _ref2[0],
685
- headerValue = _ref2[1];
732
+ var RenewTokenError = /*#__PURE__*/function (_Error) {
733
+ _inherits(RenewTokenError, _Error);
686
734
 
687
- return _objectSpread$2(_objectSpread$2({}, customForwardHeaders), {}, _defineProperty({}, "x-forward-header-".concat(headerName), headerValue));
688
- }, {})), {}, (_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));
735
+ var _super = _createSuper(RenewTokenError);
736
+
737
+ function RenewTokenError(message) {
738
+ var _this;
739
+
740
+ _classCallCheck(this, RenewTokenError);
741
+
742
+ _this = _super.call(this, message);
743
+
744
+ _Object$defineProperty__default["default"](_assertThisInitialized(_this), 'name', {
745
+ value: 'RenewTokenError'
746
+ });
747
+
748
+ return _this;
689
749
  }
690
750
 
691
- return {};
751
+ return _createClass(RenewTokenError);
752
+ }( /*#__PURE__*/_wrapNativeSuper(Error));
753
+
754
+ function executeHttpClientRequest(_x) {
755
+ return _executeHttpClientRequest.apply(this, arguments);
756
+ }
757
+
758
+ function _executeHttpClientRequest() {
759
+ _executeHttpClientRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(fetcher) {
760
+ var config,
761
+ sendRequest,
762
+ _sendRequest,
763
+ _args2 = arguments;
764
+
765
+ return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context4) {
766
+ while (1) {
767
+ switch (_context4.prev = _context4.next) {
768
+ case 0:
769
+ _sendRequest = function _sendRequest3() {
770
+ _sendRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
771
+ var _ref3,
772
+ shouldRenewToken,
773
+ requestOptions,
774
+ response,
775
+ refreshedSessionToken,
776
+ _args = arguments;
777
+
778
+ return _regeneratorRuntime__default["default"].wrap(function _callee$(_context3) {
779
+ while (1) {
780
+ switch (_context3.prev = _context3.next) {
781
+ case 0:
782
+ _ref3 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, shouldRenewToken = _ref3.shouldRenewToken;
783
+ requestOptions = createHttpClientOptions(config);
784
+ _context3.next = 4;
785
+ return fetcher(_objectSpread$3(_objectSpread$3({}, requestOptions), {}, {
786
+ headers: omitEmpty__default["default"](_objectSpread$3(_objectSpread$3({}, requestOptions.headers), {}, _defineProperty({}, constants$1.SUPPORTED_HEADERS.X_TOKEN_RETRY, shouldRenewToken)))
787
+ }));
788
+
789
+ case 4:
790
+ response = _context3.sent;
791
+
792
+ if (!(response.statusCode === constants.STATUS_CODES.UNAUTHORIZED)) {
793
+ _context3.next = 7;
794
+ break;
795
+ }
796
+
797
+ throw new RenewTokenError("Unauthorized response, attempting retry.");
798
+
799
+ case 7:
800
+ // In case a new session token is returned from the server, save it.
801
+ refreshedSessionToken = response.getHeader('x-refreshed-session-token');
802
+
803
+ if (refreshedSessionToken) {
804
+ setActiveSession(refreshedSessionToken);
805
+ }
806
+
807
+ return _context3.abrupt("return", response.data);
808
+
809
+ case 10:
810
+ case "end":
811
+ return _context3.stop();
812
+ }
813
+ }
814
+ }, _callee);
815
+ }));
816
+ return _sendRequest.apply(this, arguments);
817
+ };
818
+
819
+ sendRequest = function _sendRequest2() {
820
+ return _sendRequest.apply(this, arguments);
821
+ };
822
+
823
+ config = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : {};
824
+ return _context4.abrupt("return", sendRequest().catch(function (error) {
825
+ if (error instanceof RenewTokenError) {
826
+ // Retry the request and ask to renew the token.
827
+ return sendRequest({
828
+ shouldRenewToken: true
829
+ });
830
+ }
831
+
832
+ throw error;
833
+ }));
834
+
835
+ case 4:
836
+ case "end":
837
+ return _context4.stop();
838
+ }
839
+ }
840
+ }, _callee2);
841
+ }));
842
+ return _executeHttpClientRequest.apply(this, arguments);
843
+ }
844
+
845
+ 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; }
846
+
847
+ 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; }
848
+ var userAgent = createHttpUserAgent__default["default"]({
849
+ name: 'apollo-client',
850
+ // version: apolloVersion,
851
+ libraryName: [window.app.applicationName, 'application-shell'].join('/'),
852
+ libraryVersion: version,
853
+ contactUrl: 'https://git.io/fjuyC',
854
+ // points to the appkit repo issues
855
+ contactEmail: 'support@commercetools.com'
856
+ });
857
+
858
+ var isKnownGraphQlTarget = function isKnownGraphQlTarget(target) {
859
+ var _context;
860
+
861
+ return target ? _includesInstanceProperty__default["default"](_context = _Object$values__default["default"](constants.GRAPHQL_TARGETS)).call(_context, target) : false;
692
862
  };
693
863
 
694
864
  var extractSessionTokenFromResponse = function extractSessionTokenFromResponse(context) {
@@ -719,12 +889,12 @@ var extractSessionTokenFromResponse = function extractSessionTokenFromResponse(c
719
889
 
720
890
 
721
891
  var headerLink = new client.ApolloLink(function (operation, forward) {
722
- var _context3, _objectSpread4, _context4;
892
+ var _context2, _objectSpread2, _context3;
723
893
 
724
894
  var apolloContext = operation.getContext();
725
895
  var variables = operation.variables;
726
896
  var graphQlTarget = apolloContext.target || variables.target;
727
- 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, "\""));
897
+ 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, "\""));
728
898
  /**
729
899
  * NOTE:
730
900
  * The project key is read from the url in a project related application context.
@@ -736,16 +906,14 @@ var headerLink = new client.ApolloLink(function (operation, forward) {
736
906
 
737
907
  var projectKey = apolloContext.projectKey || variables.projectKey || selectProjectKeyFromUrl();
738
908
  var teamId = apolloContext.teamId || variables.teamId || selectTeamIdFromLocalStorage();
739
- var userId = selectUserId();
740
909
  var featureFlag = apolloContext.featureFlag || variables.featureFlag;
741
- var sessionToken = getSessionToken();
742
- operation.setContext({
743
- credentials: 'include',
744
- 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({
745
- userId: userId
746
- })), _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)))
747
- });
748
- return _mapInstanceProperty__default["default"](_context4 = forward(operation)).call(_context4, function (response) {
910
+ operation.setContext(createHttpClientOptions({
911
+ userAgent: userAgent,
912
+ 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))),
913
+ forwardToConfig: apolloContext.forwardToConfig,
914
+ projectKey: projectKey
915
+ }));
916
+ return _mapInstanceProperty__default["default"](_context3 = forward(operation)).call(_context3, function (response) {
749
917
  var context = operation.getContext();
750
918
  var refreshedSessionToken = extractSessionTokenFromResponse(context);
751
919
 
@@ -778,21 +946,8 @@ var tokenRetryLink = new retry.RetryLink({
778
946
  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; }
779
947
 
780
948
  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; }
781
- var userAgent = createHttpUserAgent__default["default"]({
782
- name: 'apollo-client',
783
- // version: apolloVersion,
784
- libraryName: [window.app.applicationName, 'application-shell'].join('/'),
785
- libraryVersion: version,
786
- contactUrl: 'https://git.io/fjuyC',
787
- // points to the appkit repo issues
788
- contactEmail: 'support@commercetools.com'
789
- });
790
949
  var httpLink = client.createHttpLink({
791
950
  uri: "".concat(getMcApiUrl(), "/graphql"),
792
- headers: {
793
- accept: 'application/json',
794
- 'x-user-agent': userAgent
795
- },
796
951
  fetch: fetch
797
952
  });
798
953
 
@@ -1023,15 +1178,16 @@ exports.REQUESTS_IN_FLIGHT_LOADER_DOM_ID = REQUESTS_IN_FLIGHT_LOADER_DOM_ID;
1023
1178
  exports.RequestsInFlightLoader = RequestsInFlightLoader;
1024
1179
  exports.RouteCatchAll = RouteCatchAll;
1025
1180
  exports.applyDefaultMiddlewares = applyDefaultMiddlewares;
1181
+ exports.buildApiUrl = buildApiUrl;
1026
1182
  exports.clearSession = clearSession;
1027
1183
  exports.createApolloClient = createApolloClient;
1184
+ exports.createHttpClientOptions = createHttpClientOptions;
1028
1185
  exports.createReduxStore = createReduxStore;
1186
+ exports.executeHttpClientRequest = executeHttpClientRequest;
1029
1187
  exports.getActiveProjectKey = getActiveProjectKey;
1030
- exports.getCorrelationId = getCorrelationId;
1031
1188
  exports.getMcApiUrl = getMcApiUrl;
1032
1189
  exports.getSessionScope = getSessionScope;
1033
1190
  exports.getSessionState = getSessionState;
1034
- exports.getSessionToken = getSessionToken;
1035
1191
  exports.internalReduxStore = internalReduxStore;
1036
1192
  exports.location = location;
1037
1193
  exports.logger = logger;