@commercetools-frontend/application-shell 21.0.0-rc.1 → 21.0.0-rc.6

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 (50) hide show
  1. package/README.md +1 -1
  2. package/dist/{application-entry-point-58093e24.cjs.dev.js → application-entry-point-2c4677cb.cjs.dev.js} +85 -41
  3. package/dist/{application-entry-point-43e5d2d3.esm.js → application-entry-point-a47dc2c3.esm.js} +67 -23
  4. package/dist/{application-entry-point-b89a7e84.cjs.prod.js → application-entry-point-e361b90d.cjs.prod.js} +76 -41
  5. package/dist/commercetools-frontend-application-shell.cjs.dev.js +7 -8
  6. package/dist/commercetools-frontend-application-shell.cjs.prod.js +7 -8
  7. package/dist/commercetools-frontend-application-shell.esm.js +5 -6
  8. package/dist/declarations/src/components/application-entry-point/application-entry-point.d.ts +1 -0
  9. package/dist/declarations/src/components/application-shell/application-shell.d.ts +2 -1
  10. package/dist/declarations/src/components/application-shell-provider/use-coerced-environment-values.d.ts +1 -1
  11. package/dist/declarations/src/components/project-container/project-container.d.ts +1 -0
  12. package/dist/declarations/src/test-utils/test-utils.d.ts +3 -3
  13. package/dist/formatters-1c23c0a9.esm.js +93 -0
  14. package/dist/{oidc-7e7761de.cjs.dev.js → formatters-a5bb12eb.cjs.prod.js} +52 -38
  15. package/dist/{oidc-be09bd90.cjs.prod.js → formatters-e4b9b9dc.cjs.dev.js} +52 -38
  16. package/dist/{index-a0f21c48.esm.js → index-38531754.esm.js} +28 -23
  17. package/dist/{index-3a993fb5.cjs.dev.js → index-d414fb90.cjs.dev.js} +67 -62
  18. package/dist/{index-e270df38.cjs.prod.js → index-fc809935.cjs.prod.js} +57 -54
  19. package/dist/oidc-cb5c92bd.esm.js +39 -0
  20. package/dist/oidc-d5829556.cjs.prod.js +46 -0
  21. package/dist/oidc-f43cd8da.cjs.dev.js +46 -0
  22. package/dist/{project-expired-1482bfa9.cjs.dev.js → project-expired-04ae67a4.cjs.prod.js} +8 -9
  23. package/dist/{project-expired-a0171912.cjs.prod.js → project-expired-2ecba3b5.cjs.dev.js} +8 -9
  24. package/dist/{project-expired-e68a5ca7.esm.js → project-expired-859d9185.esm.js} +8 -9
  25. package/dist/{project-not-found-f34fa3de.cjs.dev.js → project-not-found-7d69a5b2.cjs.prod.js} +8 -9
  26. package/dist/{project-not-found-007518e8.cjs.prod.js → project-not-found-f2a5a561.cjs.dev.js} +8 -9
  27. package/dist/{project-not-found-9c7c1af4.esm.js → project-not-found-fd8fca8a.esm.js} +8 -9
  28. package/dist/{project-not-initialized-cdb93a84.esm.js → project-not-initialized-54ecc7b9.esm.js} +8 -9
  29. package/dist/{project-not-initialized-7d2cbb3c.cjs.dev.js → project-not-initialized-6752e409.cjs.dev.js} +8 -9
  30. package/dist/{project-not-initialized-70fd56de.cjs.prod.js → project-not-initialized-a59668f1.cjs.prod.js} +8 -9
  31. package/dist/{project-suspended-de520a33.esm.js → project-suspended-bf0c2b6a.esm.js} +8 -9
  32. package/dist/{project-suspended-01aa362c.cjs.dev.js → project-suspended-cb63d22c.cjs.prod.js} +8 -9
  33. package/dist/{project-suspended-9ec4ac13.cjs.prod.js → project-suspended-fe5179a1.cjs.dev.js} +8 -9
  34. package/dist/{quick-access-72feb162.cjs.prod.js → quick-access-04e3ef41.cjs.prod.js} +5 -6
  35. package/dist/{quick-access-eb5a65a4.cjs.dev.js → quick-access-afccd252.cjs.dev.js} +5 -6
  36. package/dist/{quick-access-fb587f16.esm.js → quick-access-c3d5c82d.esm.js} +5 -6
  37. package/dist/{service-page-project-switcher-f0404bf1.esm.js → service-page-project-switcher-944120d5.esm.js} +1 -1
  38. package/dist/{service-page-project-switcher-e4971c9c.cjs.dev.js → service-page-project-switcher-99d1a1e0.cjs.dev.js} +1 -1
  39. package/dist/{service-page-project-switcher-b5b1f738.cjs.prod.js → service-page-project-switcher-c392a5c0.cjs.prod.js} +1 -1
  40. package/package.json +12 -12
  41. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +4 -4
  42. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +4 -4
  43. package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +2 -2
  44. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +22 -13
  45. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +21 -11
  46. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +22 -13
  47. package/dist/constants-33a16227.esm.js +0 -46
  48. package/dist/constants-745aeeca.cjs.prod.js +0 -54
  49. package/dist/constants-fdbe0e9d.cjs.dev.js +0 -54
  50. package/dist/oidc-8e05c00e.esm.js +0 -84
package/README.md CHANGED
@@ -4,4 +4,4 @@
4
4
  <a href="https://www.npmjs.com/package/@commercetools-frontend/application-shell"><img src="https://badgen.net/npm/v/@commercetools-frontend/application-shell" alt="Latest release (latest dist-tag)" /></a> <a href="https://www.npmjs.com/package/@commercetools-frontend/application-shell"><img src="https://badgen.net/npm/v/@commercetools-frontend/application-shell/next" alt="Latest release (next dist-tag)" /></a> <a href="https://bundlephobia.com/result?p=@commercetools-frontend/application-shell"><img src="https://badgen.net/bundlephobia/minzip/@commercetools-frontend/application-shell" alt="Minified + GZipped size" /></a> <a href="https://github.com/commercetools/merchant-center-application-kit/blob/main/LICENSE"><img src="https://badgen.net/github/license/commercetools/merchant-center-application-kit" alt="GitHub license" /></a>
5
5
  </p>
6
6
 
7
- Check out the [documentation](https://docs.commercetools.com/custom-applications/components/application-shell) for more information.
7
+ Check out the [documentation](https://docs.commercetools.com/custom-applications/api-reference/commercetools-frontend-application-shell) for more information.
@@ -22,7 +22,7 @@ var omitEmpty = require('omit-empty-es');
22
22
  var notifications = require('@commercetools-frontend/notifications');
23
23
  var sdk = require('@commercetools-frontend/sdk');
24
24
  var constants = require('@commercetools-frontend/constants');
25
- var constants$1 = require('./constants-fdbe0e9d.cjs.dev.js');
25
+ var formatters = require('./formatters-e4b9b9dc.cjs.dev.js');
26
26
  var reactNotifications = require('@commercetools-frontend/react-notifications');
27
27
  var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
28
28
  var _includesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/includes');
@@ -57,6 +57,7 @@ var _pt = require('prop-types');
57
57
  var react = require('react');
58
58
  var reactRouterDom = require('react-router-dom');
59
59
  var invariant = require('tiny-invariant');
60
+ var permissions = require('@commercetools-frontend/permissions');
60
61
  var applicationComponents = require('@commercetools-frontend/application-components');
61
62
  var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
62
63
 
@@ -100,7 +101,7 @@ var _pt__default = /*#__PURE__*/_interopDefault(_pt);
100
101
  var invariant__default = /*#__PURE__*/_interopDefault(invariant);
101
102
 
102
103
  // NOTE: This string will be replaced on build time with the package version.
103
- var version = "21.0.0-rc.1";
104
+ var version = "21.0.0-rc.6";
104
105
 
105
106
  var isAddNotificationErrorAction = function isAddNotificationErrorAction(action) {
106
107
  var errorAction = action;
@@ -228,9 +229,9 @@ var messages = reactIntl.defineMessages({
228
229
  }
229
230
  });
230
231
 
231
- 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; }
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; }
232
233
 
233
- function _objectSpread$4(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$4(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$4(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
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; }
234
235
 
235
236
  var getPortalContainer = function getPortalContainer() {
236
237
  return process.env.NODE_ENV === 'test' ? document.body : document.querySelector("#".concat(REQUESTS_IN_FLIGHT_LOADER_DOM_ID));
@@ -242,7 +243,7 @@ var RequestsInFlightLoader = function RequestsInFlightLoader() {
242
243
  });
243
244
  if (!hasRequestsInFlight) return null;
244
245
  return /*#__PURE__*/ReactDOM__default["default"].createPortal(jsxRuntime.jsx(LoadingSpinner__default["default"], {
245
- children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages.labelLoading))
246
+ children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.labelLoading))
246
247
  }), getPortalContainer());
247
248
  };
248
249
 
@@ -284,7 +285,7 @@ var requestsInFlightReducer = (function (requestsInFlight, action) {
284
285
  });
285
286
 
286
287
  function selectTeamIdFromLocalStorage() {
287
- return window.localStorage.getItem(constants$1.STORAGE_KEYS.ACTIVE_TEAM_ID) || undefined;
288
+ return window.localStorage.getItem(formatters.STORAGE_KEYS.ACTIVE_TEAM_ID) || undefined;
288
289
  }
289
290
 
290
291
  var staticUrlPathsInPositionOfProjectKey = ['login', 'logout', 'account']; // Attempt to extract the `:projectKey` from the URL.
@@ -397,47 +398,47 @@ function getMcApiUrl() {
397
398
  }
398
399
 
399
400
  var getSessionToken = function getSessionToken() {
400
- return window.sessionStorage.getItem(constants$1.STORAGE_KEYS.SESSION_TOKEN);
401
+ return window.sessionStorage.getItem(formatters.STORAGE_KEYS.SESSION_TOKEN);
401
402
  };
402
403
 
403
404
  var setActiveSession = function setActiveSession(sessionToken) {
404
405
  if (!sessionToken) return;
405
- window.sessionStorage.setItem(constants$1.STORAGE_KEYS.SESSION_TOKEN, sessionToken !== null && sessionToken !== void 0 ? sessionToken : '');
406
- window.localStorage.setItem(constants$1.STORAGE_KEYS.LOGIN_STRATEGY, constants$1.LOGIN_STRATEGY_OIDC); // Remove flag for original workflow
406
+ window.sessionStorage.setItem(formatters.STORAGE_KEYS.SESSION_TOKEN, sessionToken !== null && sessionToken !== void 0 ? sessionToken : '');
407
+ window.localStorage.setItem(formatters.STORAGE_KEYS.LOGIN_STRATEGY, formatters.LOGIN_STRATEGY_OIDC); // Remove flag for original workflow
407
408
 
408
- window.localStorage.removeItem(constants$1.STORAGE_KEYS.IS_AUTHENTICATED);
409
+ window.localStorage.removeItem(formatters.STORAGE_KEYS.IS_AUTHENTICATED);
409
410
  };
410
411
 
411
412
  var clearSession = function clearSession() {
412
- window.sessionStorage.removeItem(constants$1.STORAGE_KEYS.SESSION_TOKEN);
413
- window.sessionStorage.removeItem(constants$1.STORAGE_KEYS.SESSION_SCOPE);
414
- window.sessionStorage.removeItem(constants$1.STORAGE_KEYS.IS_AUTHENTICATED);
413
+ window.sessionStorage.removeItem(formatters.STORAGE_KEYS.SESSION_TOKEN);
414
+ window.sessionStorage.removeItem(formatters.STORAGE_KEYS.SESSION_SCOPE);
415
+ window.sessionStorage.removeItem(formatters.STORAGE_KEYS.IS_AUTHENTICATED);
415
416
  };
416
417
 
417
418
  var getActiveProjectKey = function getActiveProjectKey() {
418
- return window.localStorage.getItem(constants$1.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
419
+ return window.localStorage.getItem(formatters.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
419
420
  };
420
421
 
421
422
  var removeActiveProjectKey = function removeActiveProjectKey() {
422
- window.localStorage.removeItem(constants$1.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
423
+ window.localStorage.removeItem(formatters.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
423
424
  };
424
425
 
425
426
  var setActiveProjectKey = function setActiveProjectKey(projectKey) {
426
- window.localStorage.setItem(constants$1.STORAGE_KEYS.ACTIVE_PROJECT_KEY, projectKey);
427
+ window.localStorage.setItem(formatters.STORAGE_KEYS.ACTIVE_PROJECT_KEY, projectKey);
427
428
  };
428
429
 
429
430
  var getSessionScope = function getSessionScope() {
430
- return window.sessionStorage.getItem(constants$1.STORAGE_KEYS.SESSION_SCOPE);
431
+ return window.sessionStorage.getItem(formatters.STORAGE_KEYS.SESSION_SCOPE);
431
432
  };
432
433
 
433
434
  var setSessionScope = function setSessionScope(scope) {
434
- window.sessionStorage.setItem(constants$1.STORAGE_KEYS.SESSION_SCOPE, scope);
435
+ window.sessionStorage.setItem(formatters.STORAGE_KEYS.SESSION_SCOPE, scope);
435
436
  };
436
437
 
437
438
  var getSessionState = function getSessionState(stateId) {
438
439
  var _context;
439
440
 
440
- var sessionStateKey = _concatInstanceProperty__default["default"](_context = "".concat(constants$1.STORAGE_KEYS.NONCE, "_")).call(_context, stateId);
441
+ var sessionStateKey = _concatInstanceProperty__default["default"](_context = "".concat(formatters.STORAGE_KEYS.NONCE, "_")).call(_context, stateId);
441
442
 
442
443
  var unparsedSessionState = window.sessionStorage.getItem(sessionStateKey);
443
444
 
@@ -464,14 +465,14 @@ var getSessionState = function getSessionState(stateId) {
464
465
  var setSessionState = function setSessionState(stateId, state) {
465
466
  var _context3;
466
467
 
467
- var sessionStateKey = _concatInstanceProperty__default["default"](_context3 = "".concat(constants$1.STORAGE_KEYS.NONCE, "_")).call(_context3, stateId);
468
+ var sessionStateKey = _concatInstanceProperty__default["default"](_context3 = "".concat(formatters.STORAGE_KEYS.NONCE, "_")).call(_context3, stateId);
468
469
 
469
470
  window.sessionStorage.setItem(sessionStateKey, _JSON$stringify__default["default"](state));
470
471
  };
471
472
 
472
- 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; }
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; }
473
474
 
474
- function _objectSpread$3(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$3(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$3(Object(source))).call(_context4, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
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; }
475
476
 
476
477
  var identityStoreEnhancer = function identityStoreEnhancer(noop) {
477
478
  return noop;
@@ -484,7 +485,7 @@ var mergeObjectValues = function mergeObjectValues(object) {
484
485
  var _ref2 = _slicedToArray(_ref, 2),
485
486
  value = _ref2[1];
486
487
 
487
- return _objectSpread$3(_objectSpread$3({}, acc), value);
488
+ return _objectSpread$4(_objectSpread$4({}, acc), value);
488
489
  }, {});
489
490
  };
490
491
 
@@ -498,7 +499,7 @@ var getAdditionalHeaders = function getAdditionalHeaders() {
498
499
  var _omitEmpty;
499
500
 
500
501
  var sessionToken = getSessionToken();
501
- return omitEmpty__default["default"]((_omitEmpty = {}, _defineProperty(_omitEmpty, constants$1.SUPPORTED_HEADERS.AUTHORIZATION, sessionToken ? "Bearer ".concat(sessionToken) : undefined), _defineProperty(_omitEmpty, constants$1.SUPPORTED_HEADERS.X_APPLICATION_ID, window.app.applicationId), _defineProperty(_omitEmpty, constants$1.SUPPORTED_HEADERS.X_TEAM_ID, selectTeamIdFromLocalStorage()), _omitEmpty));
502
+ return omitEmpty__default["default"]((_omitEmpty = {}, _defineProperty(_omitEmpty, formatters.SUPPORTED_HEADERS.AUTHORIZATION, sessionToken ? "Bearer ".concat(sessionToken) : undefined), _defineProperty(_omitEmpty, formatters.SUPPORTED_HEADERS.X_APPLICATION_ID, window.app.applicationId), _defineProperty(_omitEmpty, formatters.SUPPORTED_HEADERS.X_TEAM_ID, selectTeamIdFromLocalStorage()), _omitEmpty));
502
503
  };
503
504
 
504
505
  var sdkMiddleware = sdk.createMiddleware({
@@ -529,7 +530,7 @@ var createInternalReducer = function createInternalReducer() {
529
530
  }); // NOTE: since we don't know in advance which reducers will be injected,
530
531
  // we pass an `unknown` type to express this uncertainty and make the compiler happy.
531
532
 
532
- return redux.combineReducers(_objectSpread$3(_objectSpread$3({
533
+ return redux.combineReducers(_objectSpread$4(_objectSpread$4({
533
534
  requestsInFlight: requestsInFlightReducer,
534
535
  notifications: notifications.reducer
535
536
  }, injectedReducers), preloadedStateReducers));
@@ -572,9 +573,9 @@ var createReduxStore = function createReduxStore() {
572
573
  };
573
574
  var internalReduxStore = createReduxStore();
574
575
 
575
- 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; }
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; }
576
577
 
577
- function _objectSpread$2(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$2(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$2(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
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; }
578
579
 
579
580
  var getSkipTokenRetry = function getSkipTokenRetry(context) {
580
581
  var skipTokenRetry = Boolean(context.skipTokenRetry);
@@ -582,7 +583,7 @@ var getSkipTokenRetry = function getSkipTokenRetry(context) {
582
583
  };
583
584
 
584
585
  var forwardTokenRetryHeader = function forwardTokenRetryHeader(headers) {
585
- return _objectSpread$2(_objectSpread$2({}, headers), {}, _defineProperty({}, constants$1.SUPPORTED_HEADERS.X_TOKEN_RETRY, 'true'));
586
+ return _objectSpread$3(_objectSpread$3({}, headers), {}, _defineProperty({}, formatters.SUPPORTED_HEADERS.X_TOKEN_RETRY, 'true'));
586
587
  }; // This link retries requests to the CTP API that have been rejected
587
588
  // because of an invalid/expired oauth token.
588
589
  // To do so, we resend the request with the header "X-Force-Token: true"
@@ -593,7 +594,7 @@ var forwardTokenRetryHeader = function forwardTokenRetryHeader(headers) {
593
594
  var getDoesGraphQLTargetSupportTokenRetry = function getDoesGraphQLTargetSupportTokenRetry(context) {
594
595
  var _context$headers, _context$headers2, _context;
595
596
 
596
- var graphQLTarget = ((_context$headers = context.headers) === null || _context$headers === void 0 ? void 0 : _context$headers[constants$1.SUPPORTED_HEADERS.X_GRAPHQL_TARGET]) || ((_context$headers2 = context.headers) === null || _context$headers2 === void 0 ? void 0 : _context$headers2[constants$1.SUPPORTED_HEADERS.X_GRAPHQL_TARGET.toLowerCase()]);
597
+ var graphQLTarget = ((_context$headers = context.headers) === null || _context$headers === void 0 ? void 0 : _context$headers[formatters.SUPPORTED_HEADERS.X_GRAPHQL_TARGET]) || ((_context$headers2 = context.headers) === null || _context$headers2 === void 0 ? void 0 : _context$headers2[formatters.SUPPORTED_HEADERS.X_GRAPHQL_TARGET.toLowerCase()]);
597
598
  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));
598
599
  };
599
600
 
@@ -673,9 +674,9 @@ var errorLink = error.onError(function (_ref) {
673
674
  return;
674
675
  });
675
676
 
676
- 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; }
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; }
677
678
 
678
- function _objectSpread$1(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$1(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$1(Object(source))).call(_context6, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
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; }
679
680
 
680
681
  var isKnownGraphQlTarget = function isKnownGraphQlTarget(target) {
681
682
  var _context;
@@ -687,13 +688,13 @@ var getAppliedForwardToHeaders = function getAppliedForwardToHeaders(apolloConte
687
688
  if (apolloContext.forwardToConfig) {
688
689
  var _context2, _apolloContext$forwar, _objectSpread3;
689
690
 
690
- return _objectSpread$1(_objectSpread$1({}, _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) {
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) {
691
692
  var _ref2 = _slicedToArray(_ref, 2),
692
693
  headerName = _ref2[0],
693
694
  headerValue = _ref2[1];
694
695
 
695
- return _objectSpread$1(_objectSpread$1({}, customForwardHeaders), {}, _defineProperty({}, "x-forward-header-".concat(headerName), headerValue));
696
- }, {})), {}, (_objectSpread3 = {}, _defineProperty(_objectSpread3, constants$1.SUPPORTED_HEADERS.ACCEPT_VERSION, apolloContext.forwardToConfig.version), _defineProperty(_objectSpread3, constants$1.SUPPORTED_HEADERS.X_FORWARD_TO, apolloContext.forwardToConfig.uri), _objectSpread3));
696
+ return _objectSpread$2(_objectSpread$2({}, customForwardHeaders), {}, _defineProperty({}, "x-forward-header-".concat(headerName), headerValue));
697
+ }, {})), {}, (_objectSpread3 = {}, _defineProperty(_objectSpread3, formatters.SUPPORTED_HEADERS.ACCEPT_VERSION, apolloContext.forwardToConfig.version), _defineProperty(_objectSpread3, formatters.SUPPORTED_HEADERS.X_FORWARD_TO, apolloContext.forwardToConfig.uri), _objectSpread3));
697
698
  }
698
699
 
699
700
  return {};
@@ -725,9 +726,9 @@ var headerLink = new client.ApolloLink(function (operation, forward) {
725
726
  var sessionToken = getSessionToken();
726
727
  operation.setContext({
727
728
  credentials: 'include',
728
- headers: omitEmpty__default["default"](_objectSpread$1(_objectSpread$1({}, 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({
729
+ headers: omitEmpty__default["default"](_objectSpread$2(_objectSpread$2({}, apolloContext.headers), {}, (_objectSpread4 = {}, _defineProperty(_objectSpread4, formatters.SUPPORTED_HEADERS.AUTHORIZATION, sessionToken ? "Bearer ".concat(sessionToken) : undefined), _defineProperty(_objectSpread4, formatters.SUPPORTED_HEADERS.X_PROJECT_KEY, projectKey), _defineProperty(_objectSpread4, formatters.SUPPORTED_HEADERS.X_CORRELATION_ID, getCorrelationId({
729
730
  userId: userId
730
- })), _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)))
731
+ })), _defineProperty(_objectSpread4, formatters.SUPPORTED_HEADERS.X_GRAPHQL_TARGET, graphQlTarget), _defineProperty(_objectSpread4, formatters.SUPPORTED_HEADERS.X_GRAPHQL_OPERATION_NAME, operation.operationName), _defineProperty(_objectSpread4, formatters.SUPPORTED_HEADERS.X_TEAM_ID, teamId), _defineProperty(_objectSpread4, formatters.SUPPORTED_HEADERS.X_APPLICATION_ID, window.app.applicationId), _defineProperty(_objectSpread4, formatters.SUPPORTED_HEADERS.X_FEATURE_FLAG, featureFlag), _objectSpread4), getAppliedForwardToHeaders(apolloContext)))
731
732
  });
732
733
  return _mapInstanceProperty__default["default"](_context4 = forward(operation)).call(_context4, function (response) {
733
734
  var _context$response, _context$response$hea;
@@ -763,9 +764,9 @@ var tokenRetryLink = new retry.RetryLink({
763
764
 
764
765
  var _context;
765
766
 
766
- function ownKeys(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; }
767
+ 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; }
767
768
 
768
- function _objectSpread(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(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(Object(source))).call(_context5, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
769
+ 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; }
769
770
  var userAgent = createHttpUserAgent__default["default"]({
770
771
  name: 'apollo-client',
771
772
  // version: apolloVersion,
@@ -828,9 +829,9 @@ var createApolloClient = function createApolloClient() {
828
829
  return new client.ApolloClient({
829
830
  link: link,
830
831
  // https://www.apollographql.com/docs/react/caching/cache-configuration/
831
- cache: new client.InMemoryCache(_objectSpread(_objectSpread({}, customCacheConfig), {}, {
832
+ cache: new client.InMemoryCache(_objectSpread$1(_objectSpread$1({}, customCacheConfig), {}, {
832
833
  // https://www.apollographql.com/docs/react/caching/cache-configuration/#generating-unique-identifiers
833
- typePolicies: _objectSpread({
834
+ typePolicies: _objectSpread$1({
834
835
  // CTP types with `key` as identifier
835
836
  Project: {
836
837
  keyFields: ['key']
@@ -929,6 +930,48 @@ var RouteCatchAll = function RouteCatchAll() {
929
930
  });
930
931
  };
931
932
 
933
+ function ownKeys(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; }
934
+
935
+ function _objectSpread(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(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(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
936
+
937
+ var ApplicationRouteWithPermissionCheck = function ApplicationRouteWithPermissionCheck(props) {
938
+ var permissionKeys = formatters.entryPointUriPathToPermissionKeys(props.environment.entryPointUriPath); // Require View permission to render the application.
939
+
940
+ var canView = permissions.useIsAuthorized({
941
+ demandedPermissions: [permissionKeys.View]
942
+ });
943
+
944
+ if (canView) {
945
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
946
+ children: react.Children.only(props.children)
947
+ });
948
+ }
949
+
950
+ return jsxRuntime.jsx(applicationComponents.PageUnauthorized, {});
951
+ };
952
+
953
+ ApplicationRouteWithPermissionCheck.propTypes = process.env.NODE_ENV !== "production" ? {
954
+ disableRoutePermissionCheck: _pt__default["default"].bool,
955
+ render: _pt__default["default"].func,
956
+ children: _pt__default["default"].node
957
+ } : {};
958
+
959
+ var ApplicationRoute = function ApplicationRoute(props) {
960
+ if (props.disableRoutePermissionCheck) {
961
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
962
+ children: react.Children.only(props.children)
963
+ });
964
+ }
965
+
966
+ return jsxRuntime.jsx(ApplicationRouteWithPermissionCheck, _objectSpread({}, props));
967
+ };
968
+
969
+ ApplicationRoute.propTypes = process.env.NODE_ENV !== "production" ? {
970
+ disableRoutePermissionCheck: _pt__default["default"].bool,
971
+ render: _pt__default["default"].func,
972
+ children: _pt__default["default"].node
973
+ } : {};
974
+
932
975
  var ApplicationEntryPoint = function ApplicationEntryPoint(props) {
933
976
  // If the `children` prop is used (instead of the `render` prop),
934
977
  // we pre-configure the application entry point routes to avoid
@@ -944,7 +987,7 @@ var ApplicationEntryPoint = function ApplicationEntryPoint(props) {
944
987
  to: "/:projectKey/".concat(entryPointUriPath)
945
988
  }), jsxRuntime.jsx(reactRouterDom.Route, {
946
989
  path: "/:projectKey/".concat(entryPointUriPath),
947
- children: react.Children.only(props.children)
990
+ children: jsxRuntime.jsx(ApplicationRoute, _objectSpread({}, props))
948
991
  }), jsxRuntime.jsx(RouteCatchAll, {})]
949
992
  });
950
993
  } // We still support the `render` prop, for backwards compatibility
@@ -963,6 +1006,7 @@ var ApplicationEntryPoint = function ApplicationEntryPoint(props) {
963
1006
  };
964
1007
 
965
1008
  ApplicationEntryPoint.propTypes = process.env.NODE_ENV !== "production" ? {
1009
+ disableRoutePermissionCheck: _pt__default["default"].bool,
966
1010
  render: _pt__default["default"].func,
967
1011
  children: _pt__default["default"].node
968
1012
  } : {};
@@ -20,7 +20,7 @@ import omitEmpty from 'omit-empty-es';
20
20
  import { ADD_NOTIFICATION, removeNotification, REMOVE_NOTIFICATION, reducer, middleware } from '@commercetools-frontend/notifications';
21
21
  import { createMiddleware } from '@commercetools-frontend/sdk';
22
22
  import { HIDE_ALL_PAGE_NOTIFICATIONS, NOTIFICATION_KINDS_PAGE, SHOW_LOADING, HIDE_LOADING, GRAPHQL_TARGETS, STATUS_CODES, LOGOUT_REASONS } from '@commercetools-frontend/constants';
23
- import { S as STORAGE_KEYS, L as LOGIN_STRATEGY_OIDC, c as SUPPORTED_HEADERS } from './constants-33a16227.esm.js';
23
+ import { S as STORAGE_KEYS, L as LOGIN_STRATEGY_OIDC, d as SUPPORTED_HEADERS, e as entryPointUriPathToPermissionKeys } from './formatters-1c23c0a9.esm.js';
24
24
  import { selectPageNotifications } from '@commercetools-frontend/react-notifications';
25
25
  import _startsWithInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/starts-with';
26
26
  import _includesInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/includes';
@@ -55,11 +55,12 @@ import _pt from 'prop-types';
55
55
  import { useEffect, Children } from 'react';
56
56
  import { Route, Switch, Redirect } from 'react-router-dom';
57
57
  import invariant from 'tiny-invariant';
58
- import { PageNotFound } from '@commercetools-frontend/application-components';
58
+ import { useIsAuthorized } from '@commercetools-frontend/permissions';
59
+ import { PageNotFound, PageUnauthorized } from '@commercetools-frontend/application-components';
59
60
  import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
60
61
 
61
62
  // NOTE: This string will be replaced on build time with the package version.
62
- var version = "21.0.0-rc.1";
63
+ var version = "21.0.0-rc.6";
63
64
 
64
65
  var isAddNotificationErrorAction = function isAddNotificationErrorAction(action) {
65
66
  var errorAction = action;
@@ -187,9 +188,9 @@ var messages = defineMessages({
187
188
  }
188
189
  });
189
190
 
190
- function ownKeys$4(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
191
+ function ownKeys$5(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
191
192
 
192
- function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys$4(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys$4(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
193
+ 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(_context = ownKeys$5(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys$5(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
193
194
 
194
195
  var getPortalContainer = function getPortalContainer() {
195
196
  return process.env.NODE_ENV === 'test' ? document.body : document.querySelector("#".concat(REQUESTS_IN_FLIGHT_LOADER_DOM_ID));
@@ -201,7 +202,7 @@ var RequestsInFlightLoader = function RequestsInFlightLoader() {
201
202
  });
202
203
  if (!hasRequestsInFlight) return null;
203
204
  return /*#__PURE__*/ReactDOM.createPortal(jsx(LoadingSpinner, {
204
- children: jsx(FormattedMessage, _objectSpread$4({}, messages.labelLoading))
205
+ children: jsx(FormattedMessage, _objectSpread$5({}, messages.labelLoading))
205
206
  }), getPortalContainer());
206
207
  };
207
208
 
@@ -428,9 +429,9 @@ var setSessionState = function setSessionState(stateId, state) {
428
429
  window.sessionStorage.setItem(sessionStateKey, _JSON$stringify(state));
429
430
  };
430
431
 
431
- function ownKeys$3(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
432
+ function ownKeys$4(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
432
433
 
433
- function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context3 = ownKeys$3(Object(source), !0)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context4 = ownKeys$3(Object(source))).call(_context4, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
434
+ 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(_context3 = ownKeys$4(Object(source), !0)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context4 = ownKeys$4(Object(source))).call(_context4, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
434
435
 
435
436
  var identityStoreEnhancer = function identityStoreEnhancer(noop) {
436
437
  return noop;
@@ -443,7 +444,7 @@ var mergeObjectValues = function mergeObjectValues(object) {
443
444
  var _ref2 = _slicedToArray(_ref, 2),
444
445
  value = _ref2[1];
445
446
 
446
- return _objectSpread$3(_objectSpread$3({}, acc), value);
447
+ return _objectSpread$4(_objectSpread$4({}, acc), value);
447
448
  }, {});
448
449
  };
449
450
 
@@ -488,7 +489,7 @@ var createInternalReducer = function createInternalReducer() {
488
489
  }); // NOTE: since we don't know in advance which reducers will be injected,
489
490
  // we pass an `unknown` type to express this uncertainty and make the compiler happy.
490
491
 
491
- return combineReducers(_objectSpread$3(_objectSpread$3({
492
+ return combineReducers(_objectSpread$4(_objectSpread$4({
492
493
  requestsInFlight: requestsInFlightReducer,
493
494
  notifications: reducer
494
495
  }, injectedReducers), preloadedStateReducers));
@@ -531,9 +532,9 @@ var createReduxStore = function createReduxStore() {
531
532
  };
532
533
  var internalReduxStore = createReduxStore();
533
534
 
534
- function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
535
+ function ownKeys$3(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
535
536
 
536
- function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys$2(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys$2(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
537
+ 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(_context2 = ownKeys$3(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys$3(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
537
538
 
538
539
  var getSkipTokenRetry = function getSkipTokenRetry(context) {
539
540
  var skipTokenRetry = Boolean(context.skipTokenRetry);
@@ -541,7 +542,7 @@ var getSkipTokenRetry = function getSkipTokenRetry(context) {
541
542
  };
542
543
 
543
544
  var forwardTokenRetryHeader = function forwardTokenRetryHeader(headers) {
544
- return _objectSpread$2(_objectSpread$2({}, headers), {}, _defineProperty({}, SUPPORTED_HEADERS.X_TOKEN_RETRY, 'true'));
545
+ return _objectSpread$3(_objectSpread$3({}, headers), {}, _defineProperty({}, SUPPORTED_HEADERS.X_TOKEN_RETRY, 'true'));
545
546
  }; // This link retries requests to the CTP API that have been rejected
546
547
  // because of an invalid/expired oauth token.
547
548
  // To do so, we resend the request with the header "X-Force-Token: true"
@@ -632,9 +633,9 @@ var errorLink = onError(function (_ref) {
632
633
  return;
633
634
  });
634
635
 
635
- function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
636
+ function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
636
637
 
637
- function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var _context5, _context6; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context5 = ownKeys$1(Object(source), !0)).call(_context5, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context6 = ownKeys$1(Object(source))).call(_context6, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
638
+ 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(_context5 = ownKeys$2(Object(source), !0)).call(_context5, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context6 = ownKeys$2(Object(source))).call(_context6, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
638
639
 
639
640
  var isKnownGraphQlTarget = function isKnownGraphQlTarget(target) {
640
641
  var _context;
@@ -646,12 +647,12 @@ var getAppliedForwardToHeaders = function getAppliedForwardToHeaders(apolloConte
646
647
  if (apolloContext.forwardToConfig) {
647
648
  var _context2, _apolloContext$forwar, _objectSpread3;
648
649
 
649
- return _objectSpread$1(_objectSpread$1({}, _reduceInstanceProperty(_context2 = _Object$entries((_apolloContext$forwar = apolloContext.forwardToConfig.headers) !== null && _apolloContext$forwar !== void 0 ? _apolloContext$forwar : {})).call(_context2, function (customForwardHeaders, _ref) {
650
+ return _objectSpread$2(_objectSpread$2({}, _reduceInstanceProperty(_context2 = _Object$entries((_apolloContext$forwar = apolloContext.forwardToConfig.headers) !== null && _apolloContext$forwar !== void 0 ? _apolloContext$forwar : {})).call(_context2, function (customForwardHeaders, _ref) {
650
651
  var _ref2 = _slicedToArray(_ref, 2),
651
652
  headerName = _ref2[0],
652
653
  headerValue = _ref2[1];
653
654
 
654
- return _objectSpread$1(_objectSpread$1({}, customForwardHeaders), {}, _defineProperty({}, "x-forward-header-".concat(headerName), headerValue));
655
+ return _objectSpread$2(_objectSpread$2({}, customForwardHeaders), {}, _defineProperty({}, "x-forward-header-".concat(headerName), headerValue));
655
656
  }, {})), {}, (_objectSpread3 = {}, _defineProperty(_objectSpread3, SUPPORTED_HEADERS.ACCEPT_VERSION, apolloContext.forwardToConfig.version), _defineProperty(_objectSpread3, SUPPORTED_HEADERS.X_FORWARD_TO, apolloContext.forwardToConfig.uri), _objectSpread3));
656
657
  }
657
658
 
@@ -684,7 +685,7 @@ var headerLink = new ApolloLink(function (operation, forward) {
684
685
  var sessionToken = getSessionToken();
685
686
  operation.setContext({
686
687
  credentials: 'include',
687
- headers: omitEmpty(_objectSpread$1(_objectSpread$1({}, apolloContext.headers), {}, (_objectSpread4 = {}, _defineProperty(_objectSpread4, SUPPORTED_HEADERS.AUTHORIZATION, sessionToken ? "Bearer ".concat(sessionToken) : undefined), _defineProperty(_objectSpread4, SUPPORTED_HEADERS.X_PROJECT_KEY, projectKey), _defineProperty(_objectSpread4, SUPPORTED_HEADERS.X_CORRELATION_ID, getCorrelationId({
688
+ headers: omitEmpty(_objectSpread$2(_objectSpread$2({}, apolloContext.headers), {}, (_objectSpread4 = {}, _defineProperty(_objectSpread4, SUPPORTED_HEADERS.AUTHORIZATION, sessionToken ? "Bearer ".concat(sessionToken) : undefined), _defineProperty(_objectSpread4, SUPPORTED_HEADERS.X_PROJECT_KEY, projectKey), _defineProperty(_objectSpread4, SUPPORTED_HEADERS.X_CORRELATION_ID, getCorrelationId({
688
689
  userId: userId
689
690
  })), _defineProperty(_objectSpread4, SUPPORTED_HEADERS.X_GRAPHQL_TARGET, graphQlTarget), _defineProperty(_objectSpread4, SUPPORTED_HEADERS.X_GRAPHQL_OPERATION_NAME, operation.operationName), _defineProperty(_objectSpread4, SUPPORTED_HEADERS.X_TEAM_ID, teamId), _defineProperty(_objectSpread4, SUPPORTED_HEADERS.X_APPLICATION_ID, window.app.applicationId), _defineProperty(_objectSpread4, SUPPORTED_HEADERS.X_FEATURE_FLAG, featureFlag), _objectSpread4), getAppliedForwardToHeaders(apolloContext)))
690
691
  });
@@ -722,9 +723,9 @@ var tokenRetryLink = new RetryLink({
722
723
 
723
724
  var _context;
724
725
 
725
- function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
726
+ function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
726
727
 
727
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context4, _context5; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context4 = ownKeys(Object(source), !0)).call(_context4, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context5 = ownKeys(Object(source))).call(_context5, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
728
+ 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(_context4 = ownKeys$1(Object(source), !0)).call(_context4, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context5 = ownKeys$1(Object(source))).call(_context5, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
728
729
  var userAgent = createHttpUserAgent({
729
730
  name: 'apollo-client',
730
731
  // version: apolloVersion,
@@ -787,9 +788,9 @@ var createApolloClient = function createApolloClient() {
787
788
  return new ApolloClient({
788
789
  link: link,
789
790
  // https://www.apollographql.com/docs/react/caching/cache-configuration/
790
- cache: new InMemoryCache(_objectSpread(_objectSpread({}, customCacheConfig), {}, {
791
+ cache: new InMemoryCache(_objectSpread$1(_objectSpread$1({}, customCacheConfig), {}, {
791
792
  // https://www.apollographql.com/docs/react/caching/cache-configuration/#generating-unique-identifiers
792
- typePolicies: _objectSpread({
793
+ typePolicies: _objectSpread$1({
793
794
  // CTP types with `key` as identifier
794
795
  Project: {
795
796
  keyFields: ['key']
@@ -888,6 +889,48 @@ var RouteCatchAll = function RouteCatchAll() {
888
889
  });
889
890
  };
890
891
 
892
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
893
+
894
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
895
+
896
+ var ApplicationRouteWithPermissionCheck = function ApplicationRouteWithPermissionCheck(props) {
897
+ var permissionKeys = entryPointUriPathToPermissionKeys(props.environment.entryPointUriPath); // Require View permission to render the application.
898
+
899
+ var canView = useIsAuthorized({
900
+ demandedPermissions: [permissionKeys.View]
901
+ });
902
+
903
+ if (canView) {
904
+ return jsx(Fragment, {
905
+ children: Children.only(props.children)
906
+ });
907
+ }
908
+
909
+ return jsx(PageUnauthorized, {});
910
+ };
911
+
912
+ ApplicationRouteWithPermissionCheck.propTypes = process.env.NODE_ENV !== "production" ? {
913
+ disableRoutePermissionCheck: _pt.bool,
914
+ render: _pt.func,
915
+ children: _pt.node
916
+ } : {};
917
+
918
+ var ApplicationRoute = function ApplicationRoute(props) {
919
+ if (props.disableRoutePermissionCheck) {
920
+ return jsx(Fragment, {
921
+ children: Children.only(props.children)
922
+ });
923
+ }
924
+
925
+ return jsx(ApplicationRouteWithPermissionCheck, _objectSpread({}, props));
926
+ };
927
+
928
+ ApplicationRoute.propTypes = process.env.NODE_ENV !== "production" ? {
929
+ disableRoutePermissionCheck: _pt.bool,
930
+ render: _pt.func,
931
+ children: _pt.node
932
+ } : {};
933
+
891
934
  var ApplicationEntryPoint = function ApplicationEntryPoint(props) {
892
935
  // If the `children` prop is used (instead of the `render` prop),
893
936
  // we pre-configure the application entry point routes to avoid
@@ -903,7 +946,7 @@ var ApplicationEntryPoint = function ApplicationEntryPoint(props) {
903
946
  to: "/:projectKey/".concat(entryPointUriPath)
904
947
  }), jsx(Route, {
905
948
  path: "/:projectKey/".concat(entryPointUriPath),
906
- children: Children.only(props.children)
949
+ children: jsx(ApplicationRoute, _objectSpread({}, props))
907
950
  }), jsx(RouteCatchAll, {})]
908
951
  });
909
952
  } // We still support the `render` prop, for backwards compatibility
@@ -922,6 +965,7 @@ var ApplicationEntryPoint = function ApplicationEntryPoint(props) {
922
965
  };
923
966
 
924
967
  ApplicationEntryPoint.propTypes = process.env.NODE_ENV !== "production" ? {
968
+ disableRoutePermissionCheck: _pt.bool,
925
969
  render: _pt.func,
926
970
  children: _pt.node
927
971
  } : {};