@commercetools-frontend/application-shell 20.13.0 → 21.0.0-rc.4

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 (58) hide show
  1. package/README.md +1 -1
  2. package/dist/{application-entry-point-0e540c26.cjs.prod.js → application-entry-point-0480091d.cjs.prod.js} +76 -41
  3. package/dist/{application-entry-point-fa443a5c.esm.js → application-entry-point-15f08ea9.esm.js} +67 -23
  4. package/dist/{application-entry-point-9bcb1dcd.cjs.dev.js → application-entry-point-ff03d6cd.cjs.dev.js} +85 -41
  5. package/dist/commercetools-frontend-application-shell.cjs.dev.js +7 -7
  6. package/dist/commercetools-frontend-application-shell.cjs.prod.js +7 -7
  7. package/dist/commercetools-frontend-application-shell.esm.js +5 -5
  8. package/dist/declarations/src/components/app-bar/app-bar.d.ts +0 -2
  9. package/dist/declarations/src/components/application-entry-point/application-entry-point.d.ts +1 -0
  10. package/dist/declarations/src/components/application-shell/application-shell.d.ts +1 -3
  11. package/dist/declarations/src/components/application-shell-provider/use-coerced-environment-values.d.ts +1 -1
  12. package/dist/declarations/src/components/navbar/compiled/navbar.css.json.d.ts +1 -1
  13. package/dist/declarations/src/components/navbar/navbar.d.ts +0 -2
  14. package/dist/declarations/src/components/navbar/use-navbar-state-manager.d.ts +0 -2
  15. package/dist/declarations/src/components/project-container/project-container.d.ts +1 -0
  16. package/dist/declarations/src/components/user-settings-menu/user-settings-menu.d.ts +1 -4
  17. package/dist/declarations/src/hooks/use-applications-menu/use-applications-menu.d.ts +2 -3
  18. package/dist/declarations/src/test-utils/test-utils.d.ts +22 -6
  19. package/dist/formatters-1c23c0a9.esm.js +93 -0
  20. package/dist/{oidc-7e7761de.cjs.dev.js → formatters-a5bb12eb.cjs.prod.js} +52 -38
  21. package/dist/{oidc-be09bd90.cjs.prod.js → formatters-e4b9b9dc.cjs.dev.js} +52 -38
  22. package/dist/index-0e0e9b7e.esm.js +4519 -0
  23. package/dist/{index-b8de2a19.cjs.prod.js → index-76603186.cjs.prod.js} +121 -209
  24. package/dist/index-853d7264.cjs.dev.js +4592 -0
  25. package/dist/oidc-cb5c92bd.esm.js +39 -0
  26. package/dist/oidc-d5829556.cjs.prod.js +46 -0
  27. package/dist/oidc-f43cd8da.cjs.dev.js +46 -0
  28. package/dist/{project-expired-081f7710.cjs.dev.js → project-expired-15ecc19f.cjs.prod.js} +10 -10
  29. package/dist/{project-expired-1090404c.esm.js → project-expired-4ee38a9e.esm.js} +10 -10
  30. package/dist/{project-expired-b7b2dc9c.cjs.prod.js → project-expired-8686a3a0.cjs.dev.js} +10 -10
  31. package/dist/{project-not-found-b42cec67.esm.js → project-not-found-4f9d158f.esm.js} +10 -10
  32. package/dist/{project-not-found-a631b489.cjs.dev.js → project-not-found-b26113db.cjs.dev.js} +10 -10
  33. package/dist/{project-not-found-f0de3443.cjs.prod.js → project-not-found-c43f3bd6.cjs.prod.js} +10 -10
  34. package/dist/{project-not-initialized-5f3922ea.cjs.dev.js → project-not-initialized-2e4ac3db.cjs.prod.js} +10 -10
  35. package/dist/{project-not-initialized-3e276968.cjs.prod.js → project-not-initialized-34a6cc96.cjs.dev.js} +10 -10
  36. package/dist/{project-not-initialized-1f945b2d.esm.js → project-not-initialized-37a30cd5.esm.js} +10 -10
  37. package/dist/{project-suspended-2a8ee7c7.cjs.dev.js → project-suspended-e5b7ec4f.cjs.dev.js} +10 -10
  38. package/dist/{project-suspended-55fb4c82.cjs.prod.js → project-suspended-eb81b9e8.cjs.prod.js} +10 -10
  39. package/dist/{project-suspended-60b18d52.esm.js → project-suspended-f5f71734.esm.js} +10 -10
  40. package/dist/{quick-access-191a24de.esm.js → quick-access-0a923c81.esm.js} +7 -7
  41. package/dist/{quick-access-b148b0da.cjs.dev.js → quick-access-b88c5bed.cjs.dev.js} +7 -7
  42. package/dist/{quick-access-0f6a3105.cjs.prod.js → quick-access-b8f4ddba.cjs.prod.js} +7 -7
  43. package/dist/{service-page-project-switcher-6217ebd1.cjs.dev.js → service-page-project-switcher-68e04bc9.cjs.dev.js} +1 -1
  44. package/dist/{service-page-project-switcher-6f0e736d.cjs.prod.js → service-page-project-switcher-902fc225.cjs.prod.js} +1 -1
  45. package/dist/{service-page-project-switcher-a3be39d0.esm.js → service-page-project-switcher-f439d7fd.esm.js} +1 -1
  46. package/package.json +31 -32
  47. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +4 -4
  48. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +4 -4
  49. package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +2 -2
  50. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +45 -51
  51. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +44 -50
  52. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +42 -52
  53. package/dist/constants-33a16227.esm.js +0 -46
  54. package/dist/constants-745aeeca.cjs.prod.js +0 -54
  55. package/dist/constants-fdbe0e9d.cjs.dev.js +0 -54
  56. package/dist/index-08bd5156.cjs.dev.js +0 -4684
  57. package/dist/index-145d8478.esm.js +0 -4611
  58. 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-745aeeca.cjs.prod.js');
25
+ var formatters = require('./formatters-a5bb12eb.cjs.prod.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 @@ 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
 
@@ -99,7 +100,7 @@ var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
99
100
  var invariant__default = /*#__PURE__*/_interopDefault(invariant);
100
101
 
101
102
  // NOTE: This string will be replaced on build time with the package version.
102
- var version = "20.13.0";
103
+ var version = "21.0.0-rc.4";
103
104
 
104
105
  var isAddNotificationErrorAction = function isAddNotificationErrorAction(action) {
105
106
  var errorAction = action;
@@ -226,9 +227,9 @@ var messages = reactIntl.defineMessages({
226
227
  }
227
228
  });
228
229
 
229
- function ownKeys$4(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); if (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; }
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; }
230
231
 
231
- function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty__default["default"](_context = ownKeys$4(Object(source), true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default["default"]) { _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)); } else { var _context2; _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; }
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; }
232
233
 
233
234
  var getPortalContainer = function getPortalContainer() {
234
235
  return document.querySelector("#".concat(REQUESTS_IN_FLIGHT_LOADER_DOM_ID));
@@ -240,7 +241,7 @@ var RequestsInFlightLoader = function RequestsInFlightLoader() {
240
241
  });
241
242
  if (!hasRequestsInFlight) return null;
242
243
  return /*#__PURE__*/ReactDOM__default["default"].createPortal(jsxRuntime.jsx(LoadingSpinner__default["default"], {
243
- children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages.labelLoading))
244
+ children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$5({}, messages.labelLoading))
244
245
  }), getPortalContainer());
245
246
  };
246
247
 
@@ -282,7 +283,7 @@ var requestsInFlightReducer = (function (requestsInFlight, action) {
282
283
  });
283
284
 
284
285
  function selectTeamIdFromLocalStorage() {
285
- return window.localStorage.getItem(constants$1.STORAGE_KEYS.ACTIVE_TEAM_ID) || undefined;
286
+ return window.localStorage.getItem(formatters.STORAGE_KEYS.ACTIVE_TEAM_ID) || undefined;
286
287
  }
287
288
 
288
289
  var staticUrlPathsInPositionOfProjectKey = ['login', 'logout', 'account']; // Attempt to extract the `:projectKey` from the URL.
@@ -395,47 +396,47 @@ function getMcApiUrl() {
395
396
  }
396
397
 
397
398
  var getSessionToken = function getSessionToken() {
398
- return window.sessionStorage.getItem(constants$1.STORAGE_KEYS.SESSION_TOKEN);
399
+ return window.sessionStorage.getItem(formatters.STORAGE_KEYS.SESSION_TOKEN);
399
400
  };
400
401
 
401
402
  var setActiveSession = function setActiveSession(sessionToken) {
402
403
  if (!sessionToken) return;
403
- window.sessionStorage.setItem(constants$1.STORAGE_KEYS.SESSION_TOKEN, sessionToken !== null && sessionToken !== void 0 ? sessionToken : '');
404
- window.localStorage.setItem(constants$1.STORAGE_KEYS.LOGIN_STRATEGY, constants$1.LOGIN_STRATEGY_OIDC); // Remove flag for original workflow
404
+ window.sessionStorage.setItem(formatters.STORAGE_KEYS.SESSION_TOKEN, sessionToken !== null && sessionToken !== void 0 ? sessionToken : '');
405
+ window.localStorage.setItem(formatters.STORAGE_KEYS.LOGIN_STRATEGY, formatters.LOGIN_STRATEGY_OIDC); // Remove flag for original workflow
405
406
 
406
- window.localStorage.removeItem(constants$1.STORAGE_KEYS.IS_AUTHENTICATED);
407
+ window.localStorage.removeItem(formatters.STORAGE_KEYS.IS_AUTHENTICATED);
407
408
  };
408
409
 
409
410
  var clearSession = function clearSession() {
410
- window.sessionStorage.removeItem(constants$1.STORAGE_KEYS.SESSION_TOKEN);
411
- window.sessionStorage.removeItem(constants$1.STORAGE_KEYS.SESSION_SCOPE);
412
- window.sessionStorage.removeItem(constants$1.STORAGE_KEYS.IS_AUTHENTICATED);
411
+ window.sessionStorage.removeItem(formatters.STORAGE_KEYS.SESSION_TOKEN);
412
+ window.sessionStorage.removeItem(formatters.STORAGE_KEYS.SESSION_SCOPE);
413
+ window.sessionStorage.removeItem(formatters.STORAGE_KEYS.IS_AUTHENTICATED);
413
414
  };
414
415
 
415
416
  var getActiveProjectKey = function getActiveProjectKey() {
416
- return window.localStorage.getItem(constants$1.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
417
+ return window.localStorage.getItem(formatters.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
417
418
  };
418
419
 
419
420
  var removeActiveProjectKey = function removeActiveProjectKey() {
420
- window.localStorage.removeItem(constants$1.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
421
+ window.localStorage.removeItem(formatters.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
421
422
  };
422
423
 
423
424
  var setActiveProjectKey = function setActiveProjectKey(projectKey) {
424
- window.localStorage.setItem(constants$1.STORAGE_KEYS.ACTIVE_PROJECT_KEY, projectKey);
425
+ window.localStorage.setItem(formatters.STORAGE_KEYS.ACTIVE_PROJECT_KEY, projectKey);
425
426
  };
426
427
 
427
428
  var getSessionScope = function getSessionScope() {
428
- return window.sessionStorage.getItem(constants$1.STORAGE_KEYS.SESSION_SCOPE);
429
+ return window.sessionStorage.getItem(formatters.STORAGE_KEYS.SESSION_SCOPE);
429
430
  };
430
431
 
431
432
  var setSessionScope = function setSessionScope(scope) {
432
- window.sessionStorage.setItem(constants$1.STORAGE_KEYS.SESSION_SCOPE, scope);
433
+ window.sessionStorage.setItem(formatters.STORAGE_KEYS.SESSION_SCOPE, scope);
433
434
  };
434
435
 
435
436
  var getSessionState = function getSessionState(stateId) {
436
437
  var _context;
437
438
 
438
- var sessionStateKey = _concatInstanceProperty__default["default"](_context = "".concat(constants$1.STORAGE_KEYS.NONCE, "_")).call(_context, stateId);
439
+ var sessionStateKey = _concatInstanceProperty__default["default"](_context = "".concat(formatters.STORAGE_KEYS.NONCE, "_")).call(_context, stateId);
439
440
 
440
441
  var unparsedSessionState = window.sessionStorage.getItem(sessionStateKey);
441
442
 
@@ -455,14 +456,14 @@ var getSessionState = function getSessionState(stateId) {
455
456
  var setSessionState = function setSessionState(stateId, state) {
456
457
  var _context3;
457
458
 
458
- var sessionStateKey = _concatInstanceProperty__default["default"](_context3 = "".concat(constants$1.STORAGE_KEYS.NONCE, "_")).call(_context3, stateId);
459
+ var sessionStateKey = _concatInstanceProperty__default["default"](_context3 = "".concat(formatters.STORAGE_KEYS.NONCE, "_")).call(_context3, stateId);
459
460
 
460
461
  window.sessionStorage.setItem(sessionStateKey, _JSON$stringify__default["default"](state));
461
462
  };
462
463
 
463
- function ownKeys$3(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); if (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; }
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; }
464
465
 
465
- function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context3; _forEachInstanceProperty__default["default"](_context3 = ownKeys$3(Object(source), true)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default["default"]) { _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)); } else { var _context4; _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; }
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; }
466
467
 
467
468
  var identityStoreEnhancer = function identityStoreEnhancer(noop) {
468
469
  return noop;
@@ -475,7 +476,7 @@ var mergeObjectValues = function mergeObjectValues(object) {
475
476
  var _ref2 = _slicedToArray(_ref, 2),
476
477
  value = _ref2[1];
477
478
 
478
- return _objectSpread$3(_objectSpread$3({}, acc), value);
479
+ return _objectSpread$4(_objectSpread$4({}, acc), value);
479
480
  }, {});
480
481
  };
481
482
 
@@ -489,7 +490,7 @@ var getAdditionalHeaders = function getAdditionalHeaders() {
489
490
  var _omitEmpty;
490
491
 
491
492
  var sessionToken = getSessionToken();
492
- 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));
493
+ 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));
493
494
  };
494
495
 
495
496
  var sdkMiddleware = sdk.createMiddleware({
@@ -520,7 +521,7 @@ var createInternalReducer = function createInternalReducer() {
520
521
  }); // NOTE: since we don't know in advance which reducers will be injected,
521
522
  // we pass an `unknown` type to express this uncertainty and make the compiler happy.
522
523
 
523
- return redux.combineReducers(_objectSpread$3(_objectSpread$3({
524
+ return redux.combineReducers(_objectSpread$4(_objectSpread$4({
524
525
  requestsInFlight: requestsInFlightReducer,
525
526
  notifications: notifications.reducer
526
527
  }, injectedReducers), preloadedStateReducers));
@@ -563,9 +564,9 @@ var createReduxStore = function createReduxStore() {
563
564
  };
564
565
  var internalReduxStore = createReduxStore();
565
566
 
566
- function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); if (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; }
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; }
567
568
 
568
- function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context2; _forEachInstanceProperty__default["default"](_context2 = ownKeys$2(Object(source), true)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default["default"]) { _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)); } else { var _context3; _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; }
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; }
569
570
 
570
571
  var getSkipTokenRetry = function getSkipTokenRetry(context) {
571
572
  var skipTokenRetry = Boolean(context.skipTokenRetry);
@@ -573,7 +574,7 @@ var getSkipTokenRetry = function getSkipTokenRetry(context) {
573
574
  };
574
575
 
575
576
  var forwardTokenRetryHeader = function forwardTokenRetryHeader(headers) {
576
- return _objectSpread$2(_objectSpread$2({}, headers), {}, _defineProperty({}, constants$1.SUPPORTED_HEADERS.X_TOKEN_RETRY, 'true'));
577
+ return _objectSpread$3(_objectSpread$3({}, headers), {}, _defineProperty({}, formatters.SUPPORTED_HEADERS.X_TOKEN_RETRY, 'true'));
577
578
  }; // This link retries requests to the CTP API that have been rejected
578
579
  // because of an invalid/expired oauth token.
579
580
  // To do so, we resend the request with the header "X-Force-Token: true"
@@ -584,7 +585,7 @@ var forwardTokenRetryHeader = function forwardTokenRetryHeader(headers) {
584
585
  var getDoesGraphQLTargetSupportTokenRetry = function getDoesGraphQLTargetSupportTokenRetry(context) {
585
586
  var _context$headers, _context$headers2, _context;
586
587
 
587
- 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()]);
588
+ 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()]);
588
589
  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));
589
590
  };
590
591
 
@@ -664,9 +665,9 @@ var errorLink = error.onError(function (_ref) {
664
665
  return;
665
666
  });
666
667
 
667
- function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); if (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; }
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; }
668
669
 
669
- function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context5; _forEachInstanceProperty__default["default"](_context5 = ownKeys$1(Object(source), true)).call(_context5, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default["default"]) { _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)); } else { var _context6; _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; }
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; }
670
671
 
671
672
  var isKnownGraphQlTarget = function isKnownGraphQlTarget(target) {
672
673
  var _context;
@@ -678,13 +679,13 @@ var getAppliedForwardToHeaders = function getAppliedForwardToHeaders(apolloConte
678
679
  if (apolloContext.forwardToConfig) {
679
680
  var _context2, _apolloContext$forwar, _objectSpread3;
680
681
 
681
- 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) {
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) {
682
683
  var _ref2 = _slicedToArray(_ref, 2),
683
684
  headerName = _ref2[0],
684
685
  headerValue = _ref2[1];
685
686
 
686
- return _objectSpread$1(_objectSpread$1({}, customForwardHeaders), {}, _defineProperty({}, "x-forward-header-".concat(headerName), headerValue));
687
- }, {})), {}, (_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));
687
+ return _objectSpread$2(_objectSpread$2({}, customForwardHeaders), {}, _defineProperty({}, "x-forward-header-".concat(headerName), headerValue));
688
+ }, {})), {}, (_objectSpread3 = {}, _defineProperty(_objectSpread3, formatters.SUPPORTED_HEADERS.ACCEPT_VERSION, apolloContext.forwardToConfig.version), _defineProperty(_objectSpread3, formatters.SUPPORTED_HEADERS.X_FORWARD_TO, apolloContext.forwardToConfig.uri), _objectSpread3));
688
689
  }
689
690
 
690
691
  return {};
@@ -716,9 +717,9 @@ var headerLink = new client.ApolloLink(function (operation, forward) {
716
717
  var sessionToken = getSessionToken();
717
718
  operation.setContext({
718
719
  credentials: 'include',
719
- 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({
720
+ 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({
720
721
  userId: userId
721
- })), _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)))
722
+ })), _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)))
722
723
  });
723
724
  return _mapInstanceProperty__default["default"](_context4 = forward(operation)).call(_context4, function (response) {
724
725
  var _context$response, _context$response$hea;
@@ -754,9 +755,9 @@ var tokenRetryLink = new retry.RetryLink({
754
755
 
755
756
  var _context;
756
757
 
757
- function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); if (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; }
758
+ 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; }
758
759
 
759
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context4; _forEachInstanceProperty__default["default"](_context4 = ownKeys(Object(source), true)).call(_context4, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default["default"]) { _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)); } else { var _context5; _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; }
760
+ 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; }
760
761
  var userAgent = createHttpUserAgent__default["default"]({
761
762
  name: 'apollo-client',
762
763
  // version: apolloVersion,
@@ -819,9 +820,9 @@ var createApolloClient = function createApolloClient() {
819
820
  return new client.ApolloClient({
820
821
  link: link,
821
822
  // https://www.apollographql.com/docs/react/caching/cache-configuration/
822
- cache: new client.InMemoryCache(_objectSpread(_objectSpread({}, customCacheConfig), {}, {
823
+ cache: new client.InMemoryCache(_objectSpread$1(_objectSpread$1({}, customCacheConfig), {}, {
823
824
  // https://www.apollographql.com/docs/react/caching/cache-configuration/#generating-unique-identifiers
824
- typePolicies: _objectSpread({
825
+ typePolicies: _objectSpread$1({
825
826
  // CTP types with `key` as identifier
826
827
  Project: {
827
828
  keyFields: ['key']
@@ -920,6 +921,40 @@ var RouteCatchAll = function RouteCatchAll() {
920
921
  });
921
922
  };
922
923
 
924
+ 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; }
925
+
926
+ 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; }
927
+
928
+ var ApplicationRouteWithPermissionCheck = function ApplicationRouteWithPermissionCheck(props) {
929
+ var permissionKeys = formatters.entryPointUriPathToPermissionKeys(props.environment.entryPointUriPath); // Require View permission to render the application.
930
+
931
+ var canView = permissions.useIsAuthorized({
932
+ demandedPermissions: [permissionKeys.View]
933
+ });
934
+
935
+ if (canView) {
936
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
937
+ children: react.Children.only(props.children)
938
+ });
939
+ }
940
+
941
+ return jsxRuntime.jsx(applicationComponents.PageUnauthorized, {});
942
+ };
943
+
944
+ ApplicationRouteWithPermissionCheck.propTypes = {};
945
+
946
+ var ApplicationRoute = function ApplicationRoute(props) {
947
+ if (props.disableRoutePermissionCheck) {
948
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
949
+ children: react.Children.only(props.children)
950
+ });
951
+ }
952
+
953
+ return jsxRuntime.jsx(ApplicationRouteWithPermissionCheck, _objectSpread({}, props));
954
+ };
955
+
956
+ ApplicationRoute.propTypes = {};
957
+
923
958
  var ApplicationEntryPoint = function ApplicationEntryPoint(props) {
924
959
  // If the `children` prop is used (instead of the `render` prop),
925
960
  // we pre-configure the application entry point routes to avoid
@@ -931,7 +966,7 @@ var ApplicationEntryPoint = function ApplicationEntryPoint(props) {
931
966
  // application routes when you open the browser at http://localhost:3001
932
967
  null , jsxRuntime.jsx(reactRouterDom.Route, {
933
968
  path: "/:projectKey/".concat(entryPointUriPath),
934
- children: react.Children.only(props.children)
969
+ children: jsxRuntime.jsx(ApplicationRoute, _objectSpread({}, props))
935
970
  }), jsxRuntime.jsx(RouteCatchAll, {})]
936
971
  });
937
972
  } // We still support the `render` prop, for backwards compatibility
@@ -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 = "20.13.0";
63
+ var version = "21.0.0-rc.4";
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); if (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 source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty(_context = ownKeys$4(Object(source), true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context2; _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); if (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 source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context3; _forEachInstanceProperty(_context3 = ownKeys$3(Object(source), true)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context4; _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); if (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 source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context2; _forEachInstanceProperty(_context2 = ownKeys$2(Object(source), true)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context3; _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); if (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 source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context5; _forEachInstanceProperty(_context5 = ownKeys$1(Object(source), true)).call(_context5, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context6; _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); if (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 source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context4; _forEachInstanceProperty(_context4 = ownKeys(Object(source), true)).call(_context4, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context5; _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
  } : {};