@commercetools-frontend/application-shell 20.12.1 → 20.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/{application-entry-point-aa870890.cjs.prod.js → application-entry-point-0e540c26.cjs.prod.js} +26 -74
  2. package/dist/{application-entry-point-140f92f2.cjs.dev.js → application-entry-point-9bcb1dcd.cjs.dev.js} +26 -74
  3. package/dist/{application-entry-point-21cef8e6.esm.js → application-entry-point-fa443a5c.esm.js} +5 -48
  4. package/dist/commercetools-frontend-application-shell.cjs.dev.js +9 -3
  5. package/dist/commercetools-frontend-application-shell.cjs.prod.js +9 -3
  6. package/dist/commercetools-frontend-application-shell.esm.js +7 -3
  7. package/dist/constants-33a16227.esm.js +46 -0
  8. package/dist/constants-745aeeca.cjs.prod.js +54 -0
  9. package/dist/constants-fdbe0e9d.cjs.dev.js +54 -0
  10. package/dist/declarations/src/components/locale-switcher/locale-switcher.d.ts +3 -4
  11. package/dist/declarations/src/index.d.ts +1 -1
  12. package/dist/declarations/src/ssr/index.d.ts +2 -0
  13. package/dist/declarations/src/utils/formatters.d.ts +8 -0
  14. package/dist/declarations/src/utils/index.d.ts +1 -0
  15. package/dist/declarations/src/{components/authenticated/helpers.d.ts → utils/oidc.d.ts} +0 -0
  16. package/dist/{index-91dc2ebb.cjs.dev.js → index-08bd5156.cjs.dev.js} +95 -114
  17. package/dist/{index-eebc40b6.esm.js → index-145d8478.esm.js} +54 -73
  18. package/dist/{index-473958c5.cjs.prod.js → index-b8de2a19.cjs.prod.js} +80 -99
  19. package/dist/oidc-7e7761de.cjs.dev.js +94 -0
  20. package/dist/oidc-8e05c00e.esm.js +84 -0
  21. package/dist/oidc-be09bd90.cjs.prod.js +94 -0
  22. package/dist/{project-expired-a0163148.cjs.prod.js → project-expired-081f7710.cjs.dev.js} +8 -4
  23. package/dist/{project-expired-9d8377ce.esm.js → project-expired-1090404c.esm.js} +8 -4
  24. package/dist/{project-expired-d0c9a419.cjs.dev.js → project-expired-b7b2dc9c.cjs.prod.js} +8 -4
  25. package/dist/{project-not-found-6bdfc28d.cjs.prod.js → project-not-found-a631b489.cjs.dev.js} +8 -4
  26. package/dist/{project-not-found-a48ca67b.esm.js → project-not-found-b42cec67.esm.js} +8 -4
  27. package/dist/{project-not-found-4f1e5015.cjs.dev.js → project-not-found-f0de3443.cjs.prod.js} +8 -4
  28. package/dist/{project-not-initialized-746e3f1c.esm.js → project-not-initialized-1f945b2d.esm.js} +8 -4
  29. package/dist/{project-not-initialized-e07d2b6b.cjs.prod.js → project-not-initialized-3e276968.cjs.prod.js} +8 -4
  30. package/dist/{project-not-initialized-84372c36.cjs.dev.js → project-not-initialized-5f3922ea.cjs.dev.js} +8 -4
  31. package/dist/{project-suspended-08625b77.cjs.prod.js → project-suspended-2a8ee7c7.cjs.dev.js} +8 -4
  32. package/dist/{project-suspended-bee672c3.cjs.dev.js → project-suspended-55fb4c82.cjs.prod.js} +8 -4
  33. package/dist/{project-suspended-1a678884.esm.js → project-suspended-60b18d52.esm.js} +8 -4
  34. package/dist/{quick-access-0a31b56f.cjs.prod.js → quick-access-0f6a3105.cjs.prod.js} +6 -2
  35. package/dist/{quick-access-de902fa0.esm.js → quick-access-191a24de.esm.js} +6 -2
  36. package/dist/{quick-access-a50256b3.cjs.dev.js → quick-access-b148b0da.cjs.dev.js} +6 -2
  37. package/dist/{service-page-project-switcher-ab78eb6d.cjs.dev.js → service-page-project-switcher-6217ebd1.cjs.dev.js} +1 -1
  38. package/dist/{service-page-project-switcher-bf6bb20a.cjs.prod.js → service-page-project-switcher-6f0e736d.cjs.prod.js} +1 -1
  39. package/dist/{service-page-project-switcher-454e6146.esm.js → service-page-project-switcher-a3be39d0.esm.js} +1 -1
  40. package/package.json +55 -48
  41. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.d.ts +1 -0
  42. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +16 -0
  43. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.js +7 -0
  44. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +16 -0
  45. package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +6 -0
  46. package/ssr/package.json +4 -0
  47. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +3 -1
  48. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +3 -1
  49. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +3 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var applicationEntryPoint = require('./application-entry-point-aa870890.cjs.prod.js');
3
+ var applicationEntryPoint = require('./application-entry-point-0e540c26.cjs.prod.js');
4
4
  var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
5
5
  var _styled = require('@emotion/styled/base');
6
6
  var _pt = require('prop-types');
@@ -18,15 +18,18 @@ var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/obje
18
18
  var react = require('react');
19
19
  var reactRouterDom = require('react-router-dom');
20
20
  var react$2 = require('@emotion/react');
21
- var constants = require('@commercetools-frontend/constants');
21
+ var constants$1 = require('@commercetools-frontend/constants');
22
22
  var sentry = require('@commercetools-frontend/sentry');
23
23
  var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
24
24
  var applicationComponents = require('@commercetools-frontend/application-components');
25
25
  var reactNotifications = require('@commercetools-frontend/react-notifications');
26
26
  var i18n = require('@commercetools-frontend/i18n');
27
27
  var uuid = require('uuid');
28
+ var constants = require('./constants-745aeeca.cjs.prod.js');
28
29
  var _URL = require('@babel/runtime-corejs3/core-js-stable/url');
29
30
  var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
31
+ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
32
+ require('lodash/upperFirst');
30
33
  var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
31
34
  var jsxRuntime = require('@emotion/react/jsx-runtime');
32
35
  var Perfume = require('perfume.js');
@@ -38,8 +41,7 @@ var reactRedux = require('react-redux');
38
41
  var history = require('@commercetools-frontend/browser-history');
39
42
  var reactIntl = require('react-intl');
40
43
  var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
41
- var _toConsumableArray = require('@babel/runtime-corejs3/helpers/toConsumableArray');
42
- var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
44
+ var oidc = require('./oidc-be09bd90.cjs.prod.js');
43
45
  var qss = require('qss');
44
46
  var jwtDecode = require('jwt-decode');
45
47
  var FailedAuthenticationSVG = require('@commercetools-frontend/assets/images/locked-diamond.svg');
@@ -75,6 +77,7 @@ var SelectInput = require('@commercetools-uikit/select-input');
75
77
  var _taggedTemplateLiteral = require('@babel/runtime-corejs3/helpers/taggedTemplateLiteral');
76
78
  var ReactDOM = require('react-dom');
77
79
  var isNil = require('lodash/isNil');
80
+ var reactSelect = require('react-select');
78
81
  var _asyncToGenerator = require('@babel/runtime-corejs3/helpers/asyncToGenerator');
79
82
  var _regeneratorRuntime = require('@babel/runtime-corejs3/regenerator');
80
83
  var _Object$fromEntries = require('@babel/runtime-corejs3/core-js-stable/object/from-entries');
@@ -82,6 +85,7 @@ var _flagsInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/inst
82
85
  var ldAdapter = require('@flopflip/launchdarkly-adapter');
83
86
  var httpAdapter = require('@flopflip/http-adapter');
84
87
  var combineAdapters = require('@flopflip/combine-adapters');
88
+ require('@babel/runtime-corejs3/helpers/toConsumableArray');
85
89
  require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
86
90
  require('@babel/runtime-corejs3/core-js-stable/instance/slice');
87
91
  var _everyInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/every');
@@ -112,12 +116,12 @@ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$def
112
116
  var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
113
117
  var _URL__default = /*#__PURE__*/_interopDefault(_URL);
114
118
  var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
119
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
115
120
  var Perfume__default = /*#__PURE__*/_interopDefault(Perfume);
116
121
  var _reverseInstanceProperty__default = /*#__PURE__*/_interopDefault(_reverseInstanceProperty);
117
122
  var camelcase__default = /*#__PURE__*/_interopDefault(camelcase);
118
123
  var history__default = /*#__PURE__*/_interopDefault(history);
119
124
  var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
120
- var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
121
125
  var jwtDecode__default = /*#__PURE__*/_interopDefault(jwtDecode);
122
126
  var FailedAuthenticationSVG__default = /*#__PURE__*/_interopDefault(FailedAuthenticationSVG);
123
127
  var Spacings__default = /*#__PURE__*/_interopDefault(Spacings);
@@ -153,7 +157,7 @@ var throttle__default = /*#__PURE__*/_interopDefault(throttle);
153
157
  var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
154
158
 
155
159
  function selectProjectKeyFromLocalStorage() {
156
- return window.localStorage.getItem(applicationEntryPoint.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
160
+ return window.localStorage.getItem(constants.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
157
161
  }
158
162
 
159
163
  var getPreviousProjectKey = function getPreviousProjectKey(defaultProjectKeyOfUser) {
@@ -178,7 +182,7 @@ var createApolloContextForProxyForwardTo = function createApolloContextForProxyF
178
182
  };
179
183
 
180
184
  var getSelectedDataLocaleForProject = function getSelectedDataLocaleForProject(projectLocales) {
181
- var cachedDataLocale = window.localStorage.getItem(applicationEntryPoint.STORAGE_KEYS.SELECTED_DATA_LOCALE); // Make sure the cached locale is listed in the selected project
185
+ var cachedDataLocale = window.localStorage.getItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE); // Make sure the cached locale is listed in the selected project
182
186
 
183
187
  var isCachedDataLocaleIncludedInProjectLanguages = _includesInstanceProperty__default["default"](projectLocales).call(projectLocales, cachedDataLocale || '');
184
188
 
@@ -186,7 +190,7 @@ var getSelectedDataLocaleForProject = function getSelectedDataLocaleForProject(p
186
190
 
187
191
  var defaultDataLocaleForProject = projectLocales[0]; // Cache it
188
192
 
189
- window.localStorage.setItem(applicationEntryPoint.STORAGE_KEYS.SELECTED_DATA_LOCALE, defaultDataLocaleForProject);
193
+ window.localStorage.setItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE, defaultDataLocaleForProject);
190
194
  return defaultDataLocaleForProject;
191
195
  };
192
196
 
@@ -199,7 +203,7 @@ var ProjectDataLocale = function ProjectDataLocale(props) {
199
203
  var handleSetProjectDataLocale = react.useCallback(function (locale) {
200
204
  setLocale(locale); // Cache it
201
205
 
202
- window.localStorage.setItem(applicationEntryPoint.STORAGE_KEYS.SELECTED_DATA_LOCALE, locale);
206
+ window.localStorage.setItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE, locale);
203
207
  }, []);
204
208
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
205
209
  children: props.children({
@@ -617,44 +621,11 @@ var ConfigureIntlProvider = function ConfigureIntlProvider(props) {
617
621
  ConfigureIntlProvider.propTypes = {};
618
622
  ConfigureIntlProvider.displayName = 'ConfigureIntlProvider';
619
623
 
620
- var buildOidcScope = function buildOidcScope(options) {
621
- var _context7;
622
-
623
- var claims = [];
624
-
625
- if (options.projectKey) {
626
- var _context, _context2, _options$oAuthScopes$, _options$oAuthScopes, _context4, _options$oAuthScopes$2, _options$oAuthScopes2;
627
-
628
- claims.push(_concatInstanceProperty__default["default"](_context = "".concat(applicationEntryPoint.OIDC_CLAIMS.PROJECT_KEY, ":")).call(_context, options.projectKey));
629
- claims.push.apply(claims, _toConsumableArray(_mapInstanceProperty__default["default"](_context2 = (_options$oAuthScopes$ = (_options$oAuthScopes = options.oAuthScopes) === null || _options$oAuthScopes === void 0 ? void 0 : _options$oAuthScopes.view) !== null && _options$oAuthScopes$ !== void 0 ? _options$oAuthScopes$ : []).call(_context2, function (scope) {
630
- var _context3;
631
-
632
- return _concatInstanceProperty__default["default"](_context3 = "".concat(applicationEntryPoint.OIDC_CLAIMS.VIEW, ":")).call(_context3, scope);
633
- })));
634
- claims.push.apply(claims, _toConsumableArray(_mapInstanceProperty__default["default"](_context4 = (_options$oAuthScopes$2 = (_options$oAuthScopes2 = options.oAuthScopes) === null || _options$oAuthScopes2 === void 0 ? void 0 : _options$oAuthScopes2.manage) !== null && _options$oAuthScopes$2 !== void 0 ? _options$oAuthScopes$2 : []).call(_context4, function (scope) {
635
- var _context5;
636
-
637
- return _concatInstanceProperty__default["default"](_context5 = "".concat(applicationEntryPoint.OIDC_CLAIMS.MANAGE, ":")).call(_context5, scope);
638
- })));
639
- }
640
-
641
- var teamId = options.teamId;
642
-
643
- if (teamId) {
644
- var _context6;
645
-
646
- claims.push(_concatInstanceProperty__default["default"](_context6 = "".concat(applicationEntryPoint.OIDC_CLAIMS.TEAM_ID, ":")).call(_context6, teamId));
647
- }
648
-
649
- return _concatInstanceProperty__default["default"](_context7 = [// This is required as per OIDC spec.
650
- applicationEntryPoint.OIDC_CLAIMS.OPEN_ID]).call(_context7, claims).join(' ');
651
- };
652
-
653
624
  var withoutProjectKeyClaim = function withoutProjectKeyClaim(scope) {
654
625
  var _context;
655
626
 
656
627
  return _filterInstanceProperty__default["default"](_context = scope.split(' ')).call(_context, function (claim) {
657
- return !_startsWithInstanceProperty__default["default"](claim).call(claim, applicationEntryPoint.OIDC_CLAIMS.PROJECT_KEY);
628
+ return !_startsWithInstanceProperty__default["default"](claim).call(claim, constants.OIDC_CLAIMS.PROJECT_KEY);
658
629
  }).join(' ');
659
630
  };
660
631
 
@@ -701,7 +672,7 @@ var hasCachedAuthenticationState = function hasCachedAuthenticationState() {
701
672
  } // Rebuild the requested OIDC scope to verify that it didn't change.
702
673
 
703
674
 
704
- var requestedScope = buildOidcScope({
675
+ var requestedScope = oidc.buildOidcScope({
705
676
  projectKey: activeProjectKey !== null && activeProjectKey !== void 0 ? activeProjectKey : undefined,
706
677
  oAuthScopes: (_window$app$__DEVELOP9 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP9 === void 0 ? void 0 : (_window$app$__DEVELOP10 = _window$app$__DEVELOP9.oidc) === null || _window$app$__DEVELOP10 === void 0 ? void 0 : _window$app$__DEVELOP10.oAuthScopes,
707
678
  teamId: (_window$app$__DEVELOP11 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP11 === void 0 ? void 0 : (_window$app$__DEVELOP12 = _window$app$__DEVELOP11.oidc) === null || _window$app$__DEVELOP12 === void 0 ? void 0 : _window$app$__DEVELOP12.teamId
@@ -721,7 +692,7 @@ var hasCachedAuthenticationState = function hasCachedAuthenticationState() {
721
692
  }
722
693
  }
723
694
 
724
- return window.localStorage.getItem(applicationEntryPoint.STORAGE_KEYS.IS_AUTHENTICATED) === 'true';
695
+ return window.localStorage.getItem(constants.STORAGE_KEYS.IS_AUTHENTICATED) === 'true';
725
696
  };
726
697
 
727
698
  function useMcQuery(query, options) {
@@ -745,7 +716,7 @@ var AmILoggedIn = function AmILoggedIn(props) {
745
716
  // is valid. We return null while the query is loading.
746
717
  var _useMcQuery = useMcQuery(AmILoggedInQuery, {
747
718
  context: {
748
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND,
719
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND,
749
720
  skipTokenRetry: true
750
721
  },
751
722
  // NOTE: With `no-cache` the `useQuery` will not trigger a
@@ -764,20 +735,20 @@ var AmILoggedIn = function AmILoggedIn(props) {
764
735
  if (!data) {
765
736
  // In case the request is 200 but there is no data, we assume
766
737
  // there are some errors.
767
- window.localStorage.removeItem(applicationEntryPoint.STORAGE_KEYS.IS_AUTHENTICATED);
738
+ window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
768
739
  } else {
769
740
  // Even though the login page might set this flag, we just make sure that
770
741
  // we do it here as well. This will help in the future when we eventually
771
742
  // move the auth service to itw own domain, in which case the local storage
772
743
  // is not shared anymore.
773
- window.localStorage.setItem(applicationEntryPoint.STORAGE_KEYS.IS_AUTHENTICATED, String(true));
744
+ window.localStorage.setItem(constants.STORAGE_KEYS.IS_AUTHENTICATED, String(true));
774
745
  }
775
746
  },
776
747
  onError: function onError() {
777
748
  // The query fails without the `mcAccessToken`. In this case the caching
778
749
  // needs to be unset as otherwise the application will end up in a infinte
779
750
  // redirect loop.
780
- window.localStorage.removeItem(applicationEntryPoint.STORAGE_KEYS.IS_AUTHENTICATED);
751
+ window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
781
752
  }
782
753
  }),
783
754
  data = _useMcQuery.data,
@@ -1334,7 +1305,7 @@ var FetchUser = function FetchUser(props) {
1334
1305
  var _useMcQuery = useMcQuery(LoggedInUserQuery, {
1335
1306
  onError: sentry.reportErrorToSentry,
1336
1307
  context: {
1337
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
1308
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
1338
1309
  }
1339
1310
  }),
1340
1311
  loading = _useMcQuery.loading,
@@ -1359,7 +1330,7 @@ var pushDependencyVersionCounter = function pushDependencyVersionCounter(_ref) {
1359
1330
  var payload = _ref.payload;
1360
1331
  return sdk.actions.post({
1361
1332
  uri: '/metrics/counters',
1362
- mcApiProxyTarget: constants.MC_API_PROXY_TARGETS.MC_METRICS,
1333
+ mcApiProxyTarget: constants$1.MC_API_PROXY_TARGETS.MC_METRICS,
1363
1334
  payload: _JSON$stringify__default["default"](payload)
1364
1335
  });
1365
1336
  };
@@ -1411,7 +1382,7 @@ var FetchProject = function FetchProject(props) {
1411
1382
  projectKey: props.projectKey
1412
1383
  },
1413
1384
  context: {
1414
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
1385
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
1415
1386
  },
1416
1387
  skip: props.skip === true
1417
1388
  }),
@@ -1790,7 +1761,7 @@ var renderLabel = function renderLabel(menu, applicationLanguage) {
1790
1761
  });
1791
1762
 
1792
1763
  if (localizedLabel) return localizedLabel.value;
1793
- return constants.NO_VALUE_FALLBACK;
1764
+ return constants$1.NO_VALUE_FALLBACK;
1794
1765
  };
1795
1766
 
1796
1767
  var MenuItem$1 = _styled__default["default"]("div", {
@@ -1896,7 +1867,7 @@ var UserSettingsMenuBody = function UserSettingsMenuBody(props) {
1896
1867
  })
1897
1868
  }), jsxRuntime.jsx("a", {
1898
1869
  css: getUserSettingsMenuItemLinkStyles(),
1899
- href: constants.SUPPORT_PORTAL_URL,
1870
+ href: constants$1.SUPPORT_PORTAL_URL,
1900
1871
  rel: "noopener noreferrer",
1901
1872
  target: "_blank",
1902
1873
  "data-track-component": "Navigation-Support-links",
@@ -1918,7 +1889,7 @@ var UserSettingsMenuBody = function UserSettingsMenuBody(props) {
1918
1889
  css: getUserSettingsMenuItemLinkStyles() // NOTE: we want to redirect to a new page so that the
1919
1890
  // server can remove things like cookie for access token.
1920
1891
  ,
1921
- href: "/logout?reason=".concat(constants.LOGOUT_REASONS.USER),
1892
+ href: "/logout?reason=".concat(constants$1.LOGOUT_REASONS.USER),
1922
1893
  "data-test": "logout-button",
1923
1894
  "data-user-settings-menu": true,
1924
1895
  children: [jsxRuntime.jsx(MenuItem$1, {
@@ -2102,7 +2073,7 @@ var ProjectSwitcher = function ProjectSwitcher(props) {
2102
2073
  var _useMcQuery = useMcQuery(ProjectsQuery, {
2103
2074
  onError: sentry.reportErrorToSentry,
2104
2075
  context: {
2105
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
2076
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
2106
2077
  }
2107
2078
  }),
2108
2079
  loading = _useMcQuery.loading,
@@ -2138,11 +2109,7 @@ var ProjectSwitcher = function ProjectSwitcher(props) {
2138
2109
  return option.suspension.isActive || option.expiry.isActive;
2139
2110
  },
2140
2111
  components: {
2141
- // eslint-disable-next-line react/display-name
2142
- Option: function Option(optionsProps) {
2143
- return jsxRuntime.jsx(ProjectSwitcherOption, _objectSpread$7({}, optionsProps));
2144
- },
2145
- // eslint-disable-next-line react/display-name
2112
+ Option: ProjectSwitcherOption,
2146
2113
  ValueContainer: function ValueContainer(valueContainerProps) {
2147
2114
  return jsxRuntime.jsx(ProjectSwitcherValueContainer, _objectSpread$7(_objectSpread$7({}, valueContainerProps), {}, {
2148
2115
  projectCount: data && data.user && data.user.projects.results.length || 0
@@ -2326,7 +2293,7 @@ var AppBar = function AppBar(props) {
2326
2293
  children: [jsxRuntime.jsxs(Spacings__default["default"].Inline, {
2327
2294
  alignItems: "center",
2328
2295
  children: [jsxRuntime.jsx("div", {
2329
- id: applicationEntryPoint.CONTAINERS.LOCALE_SWITCHER
2296
+ id: constants.CONTAINERS.LOCALE_SWITCHER
2330
2297
  }), function () {
2331
2298
  if (!props.user) {
2332
2299
  return jsxRuntime.jsx(LoadingPlaceholder, {
@@ -2396,6 +2363,18 @@ var _SingleValue = function SingleValue(props) {
2396
2363
  _SingleValue.propTypes = {};
2397
2364
  _SingleValue.displayName = 'SingleValue';
2398
2365
 
2366
+ var PatchedValueContainer = function PatchedValueContainer(props) {
2367
+ return jsxRuntime.jsx(reactSelect.components.ValueContainer, _objectSpread$6(_objectSpread$6({}, props), {}, {
2368
+ innerProps: {
2369
+ style: {
2370
+ display: 'flex'
2371
+ }
2372
+ }
2373
+ }));
2374
+ };
2375
+
2376
+ PatchedValueContainer.displayName = 'PatchedValueContainer';
2377
+
2399
2378
  var LocaleSwitcher = function LocaleSwitcher(props) {
2400
2379
  var _context;
2401
2380
 
@@ -2418,12 +2397,12 @@ var LocaleSwitcher = function LocaleSwitcher(props) {
2418
2397
  };
2419
2398
  }),
2420
2399
  components: {
2421
- // eslint-disable-next-line react/display-name
2422
2400
  SingleValue: function SingleValue(valueProps) {
2423
2401
  return jsxRuntime.jsx(_SingleValue, _objectSpread$6(_objectSpread$6({}, valueProps), {}, {
2424
2402
  localeCount: props.availableLocales.length
2425
2403
  }));
2426
- }
2404
+ },
2405
+ ValueContainer: PatchedValueContainer
2427
2406
  },
2428
2407
  isClearable: false,
2429
2408
  backspaceRemovesValue: false,
@@ -2435,19 +2414,19 @@ var LocaleSwitcher = function LocaleSwitcher(props) {
2435
2414
  LocaleSwitcher.propTypes = {};
2436
2415
 
2437
2416
  var ProjectNotFound = /*#__PURE__*/react.lazy(function () {
2438
- return Promise.resolve().then(function () { return require('./project-not-found-6bdfc28d.cjs.prod.js'
2417
+ return Promise.resolve().then(function () { return require('./project-not-found-f0de3443.cjs.prod.js'
2439
2418
  /* webpackChunkName: "project-not-found" */
2440
2419
  ); });
2441
2420
  });
2442
2421
 
2443
2422
  var ProjectExpired = /*#__PURE__*/react.lazy(function () {
2444
- return Promise.resolve().then(function () { return require('./project-expired-a0163148.cjs.prod.js'
2423
+ return Promise.resolve().then(function () { return require('./project-expired-b7b2dc9c.cjs.prod.js'
2445
2424
  /* webpackChunkName: "project-expired" */
2446
2425
  ); });
2447
2426
  });
2448
2427
 
2449
2428
  var ProjectNotInitialized = /*#__PURE__*/react.lazy(function () {
2450
- return Promise.resolve().then(function () { return require('./project-not-initialized-e07d2b6b.cjs.prod.js'
2429
+ return Promise.resolve().then(function () { return require('./project-not-initialized-3e276968.cjs.prod.js'
2451
2430
  /* webpackChunkName: "project-not-initialized" */
2452
2431
  ); });
2453
2432
  });
@@ -2494,7 +2473,7 @@ var RedirectToProjectCreate = function RedirectToProjectCreate() {
2494
2473
  RedirectToProjectCreate.displayName = 'RedirectToProjectCreate';
2495
2474
 
2496
2475
  var ProjectSuspended = /*#__PURE__*/react.lazy(function () {
2497
- return Promise.resolve().then(function () { return require('./project-suspended-08625b77.cjs.prod.js'
2476
+ return Promise.resolve().then(function () { return require('./project-suspended-55fb4c82.cjs.prod.js'
2498
2477
  /* webpackChunkName: "project-suspended" */
2499
2478
  ); });
2500
2479
  });
@@ -2541,13 +2520,13 @@ var ProjectContainer = function ProjectContainer(props) {
2541
2520
  * is inserted in the DOM tree.
2542
2521
  * "
2543
2522
  */
2544
- setLocaleSwitcherNode(document.getElementById(applicationEntryPoint.CONTAINERS.LOCALE_SWITCHER));
2523
+ setLocaleSwitcherNode(document.getElementById(constants.CONTAINERS.LOCALE_SWITCHER));
2545
2524
  }, [setLocaleSwitcherNode]);
2546
2525
  var projectKey = props.match.params.projectKey;
2547
2526
  react.useEffect(function () {
2548
2527
  // Ensure to sync the `projectKey` from the URL with localStorage.
2549
2528
  if (projectKey) {
2550
- window.localStorage.setItem(applicationEntryPoint.STORAGE_KEYS.ACTIVE_PROJECT_KEY, projectKey);
2529
+ window.localStorage.setItem(constants.STORAGE_KEYS.ACTIVE_PROJECT_KEY, projectKey);
2551
2530
  }
2552
2531
  }, [projectKey]); // }
2553
2532
 
@@ -2565,7 +2544,7 @@ var ProjectContainer = function ProjectContainer(props) {
2565
2544
  */
2566
2545
 
2567
2546
  if (hasNoProjects && props.environment.enableSignUp !== true && props.environment.servedByProxy) return jsxRuntime.jsx(reactRouterDom.Redirect, {
2568
- to: "/logout?reason=".concat(constants.LOGOUT_REASONS.NO_PROJECTS)
2547
+ to: "/logout?reason=".concat(constants$1.LOGOUT_REASONS.NO_PROJECTS)
2569
2548
  });
2570
2549
  if (hasNoProjects && props.environment.enableSignUp) return jsxRuntime.jsxs(reactRouterDom.Switch, {
2571
2550
  children: [jsxRuntime.jsx(reactRouterDom.Route, {
@@ -2589,7 +2568,7 @@ var ProjectContainer = function ProjectContainer(props) {
2589
2568
  if (isProjectLoading) return jsxRuntime.jsx(ApplicationLoader, {});
2590
2569
  if (!project) return jsxRuntime.jsx(ProjectNotFound, {});
2591
2570
  if (project.suspension && project.suspension.isActive) return jsxRuntime.jsx(ProjectSuspended, {
2592
- isTemporary: project.suspension.reason === applicationEntryPoint.SUSPENSION_REASONS.TEMPORARY_MAINTENANCE
2571
+ isTemporary: project.suspension.reason === constants.SUSPENSION_REASONS.TEMPORARY_MAINTENANCE
2593
2572
  });
2594
2573
  if (project.expiry && project.expiry.isActive) return jsxRuntime.jsx(ProjectExpired, {});
2595
2574
  if (project.initialized === false) return jsxRuntime.jsx(ProjectNotInitialized, {});
@@ -2608,7 +2587,7 @@ var ProjectContainer = function ProjectContainer(props) {
2608
2587
  children: jsxRuntime.jsxs(jsxRuntime.Fragment, {
2609
2588
  children: [shouldShowNotificationForTrialExpired((_project$expiry$daysL = project.expiry.daysLeft) !== null && _project$expiry$daysL !== void 0 ? _project$expiry$daysL : undefined) && jsxRuntime.jsx(reactNotifications.Notifier, {
2610
2589
  kind: "warning",
2611
- domain: constants.DOMAINS.GLOBAL,
2590
+ domain: constants$1.DOMAINS.GLOBAL,
2612
2591
  text: intl.formatMessage(messages$1.trialDaysLeft, {
2613
2592
  daysLeft: project.expiry.daysLeft || 0
2614
2593
  })
@@ -2783,7 +2762,7 @@ var SetupFlopFlipProvider = function SetupFlopFlipProvider(props) {
2783
2762
  query: AllFeaturesQuery,
2784
2763
  errorPolicy: 'ignore',
2785
2764
  context: {
2786
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
2765
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
2787
2766
  }
2788
2767
  });
2789
2768
 
@@ -2859,7 +2838,7 @@ var messages = reactIntl.defineMessages({
2859
2838
  });
2860
2839
 
2861
2840
  var useLoadingMenuLayoutEffect = function useLoadingMenuLayoutEffect() {
2862
- var cachedIsForcedMenuOpen = window.localStorage.getItem(applicationEntryPoint.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
2841
+ var cachedIsForcedMenuOpen = window.localStorage.getItem(constants.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
2863
2842
  var isForcedMenuOpen = isNil__default["default"](cachedIsForcedMenuOpen) ? null : JSON.parse(cachedIsForcedMenuOpen);
2864
2843
  react.useLayoutEffect(function () {
2865
2844
  if (isForcedMenuOpen) document.body.classList.add('body__menu-open');
@@ -2938,7 +2917,7 @@ var useNavbarStateManager = function useNavbarStateManager(props) {
2938
2917
  var _useMcQuery = useMcQuery(FetchProjectExtensionsNavbar, {
2939
2918
  skip: !props.environment.servedByProxy,
2940
2919
  context: {
2941
- target: constants.GRAPHQL_TARGETS.SETTINGS_SERVICE
2920
+ target: constants$1.GRAPHQL_TARGETS.SETTINGS_SERVICE
2942
2921
  },
2943
2922
  fetchPolicy: 'cache-and-network',
2944
2923
  onError: sentry.reportErrorToSentry
@@ -3014,7 +2993,7 @@ var useNavbarStateManager = function useNavbarStateManager(props) {
3014
2993
  })
3015
2994
  };
3016
2995
  })).call(_context4, nonNullable) : [];
3017
- var cachedIsForcedMenuOpen = window.localStorage.getItem(applicationEntryPoint.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
2996
+ var cachedIsForcedMenuOpen = window.localStorage.getItem(constants.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
3018
2997
  var isForcedMenuOpen = isNil__default["default"](cachedIsForcedMenuOpen) ? null : JSON.parse(cachedIsForcedMenuOpen);
3019
2998
 
3020
2999
  var _useReducer = react.useReducer(reducer, getInitialState(isForcedMenuOpen)),
@@ -3096,7 +3075,7 @@ var useNavbarStateManager = function useNavbarStateManager(props) {
3096
3075
  type: 'toggleIsMenuOpen'
3097
3076
  }); // Synchronize the menu state with local storage.
3098
3077
 
3099
- window.localStorage.setItem(applicationEntryPoint.STORAGE_KEYS.IS_FORCED_MENU_OPEN, String(!state.isMenuOpen));
3078
+ window.localStorage.setItem(constants.STORAGE_KEYS.IS_FORCED_MENU_OPEN, String(!state.isMenuOpen));
3100
3079
  }, [state.activeItemIndex, state.isMenuOpen]);
3101
3080
 
3102
3081
  var allApplicationNavbarMenu = _concatInstanceProperty__default["default"](_context7 = _concatInstanceProperty__default["default"](_context8 = applicationsNavBarMenu || []).call(_context8, legacyCustomAppsMenu)).call(_context7, organizationCustomAppsMenu);
@@ -3330,11 +3309,7 @@ var MenuItemDivider = function MenuItemDivider() {
3330
3309
  });
3331
3310
  };
3332
3311
 
3333
- MenuItemDivider.displayName = 'MenuItemDivider'; // This component wraps `<RestrictedByPermissions>`
3334
- // and the `<ToggleFeature>` components. However, it's necessary to have it as
3335
- // the `<ToggleFeature>` wrapper should be rendered only if the `featureToggle`
3336
- // prop is defined. This is because `<ToggleFeature>` will not render any
3337
- // children if the flag is missing/not found.
3312
+ MenuItemDivider.displayName = 'MenuItemDivider';
3338
3313
 
3339
3314
  var isEveryMenuVisibilitySetToHidden = function isEveryMenuVisibilitySetToHidden(menuVisibilities, namesOfMenuVisibilities) {
3340
3315
  return _Array$isArray__default["default"](namesOfMenuVisibilities) && namesOfMenuVisibilities.length > 0 && _everyInstanceProperty__default["default"](namesOfMenuVisibilities).call(namesOfMenuVisibilities, function (nameOfMenuVisibility) {
@@ -3346,9 +3321,14 @@ var restrictedMenuItemDefaultProps = {
3346
3321
  permissions: []
3347
3322
  };
3348
3323
 
3324
+ function isLongLivedFlag(flag) {
3325
+ return typeof (flag === null || flag === void 0 ? void 0 : flag.value) === 'boolean';
3326
+ }
3327
+
3349
3328
  var RestrictedMenuItem = function RestrictedMenuItem(props) {
3350
3329
  // NOTE: Custom application are activated/deactivated while their
3351
3330
  // visibility is not controlled via a visibiility overwrite.
3331
+ var flagVariation = reactBroadcast.useFlagVariation(props.featureToggle);
3352
3332
  if (isEveryMenuVisibilitySetToHidden(props.menuVisibilities, props.namesOfMenuVisibilities)) return null;
3353
3333
  var permissionsWrapper = _Array$isArray__default["default"](props.permissions) && props.permissions.length > 0 || _Array$isArray__default["default"](props.dataFences) && props.dataFences.length > 0 ? jsxRuntime.jsx(permissions.RestrictedByPermissions, {
3354
3334
  permissions: props.permissions,
@@ -3372,10 +3352,11 @@ var RestrictedMenuItem = function RestrictedMenuItem(props) {
3372
3352
  });
3373
3353
 
3374
3354
  if (props.featureToggle) {
3375
- return jsxRuntime.jsx(reactBroadcast.ToggleFeature, {
3376
- flag: props.featureToggle,
3377
- children: permissionsWrapper
3378
- });
3355
+ // A regular short-lived feature toggle
3356
+ if (flagVariation === true) return permissionsWrapper; // A long-lived feature toggle with `{ value: boolean, string: reason }`
3357
+
3358
+ if (isLongLivedFlag(flagVariation) && flagVariation.value === true) return permissionsWrapper;
3359
+ return null;
3379
3360
  }
3380
3361
 
3381
3362
  return permissionsWrapper;
@@ -3417,7 +3398,7 @@ var MenuLabel = function MenuLabel(props) {
3417
3398
  children: props.defaultLabel
3418
3399
  });
3419
3400
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
3420
- children: constants.NO_VALUE_FALLBACK
3401
+ children: constants$1.NO_VALUE_FALLBACK
3421
3402
  });
3422
3403
  };
3423
3404
 
@@ -3620,7 +3601,7 @@ var NavBar = function NavBar(props) {
3620
3601
  },
3621
3602
  onMouseLeave: isMenuOpen ? undefined : shouldCloseMenuFly,
3622
3603
  children: jsxRuntime.jsx("a", {
3623
- href: constants.SUPPORT_PORTAL_URL,
3604
+ href: constants$1.SUPPORT_PORTAL_URL,
3624
3605
  rel: "noopener noreferrer",
3625
3606
  target: "_blank",
3626
3607
  children: jsxRuntime.jsxs("div", {
@@ -3708,7 +3689,7 @@ var pimIndexerStates = {
3708
3689
  };
3709
3690
 
3710
3691
  var QuickAccess = /*#__PURE__*/react.lazy(function () {
3711
- return Promise.resolve().then(function () { return require('./quick-access-0a31b56f.cjs.prod.js'
3692
+ return Promise.resolve().then(function () { return require('./quick-access-0f6a3105.cjs.prod.js'
3712
3693
  /* webpackChunkName: "quick-access" */
3713
3694
  ); });
3714
3695
  });
@@ -3892,7 +3873,7 @@ var RedirectToLogin = function RedirectToLogin() {
3892
3873
  redirectTo: nextProjectKey ? "/".concat(nextProjectKey) : '/'
3893
3874
  }
3894
3875
  });
3895
- var requestedScope = buildOidcScope({
3876
+ var requestedScope = oidc.buildOidcScope({
3896
3877
  projectKey: nextProjectKey !== null && nextProjectKey !== void 0 ? nextProjectKey : undefined,
3897
3878
  oAuthScopes: (_window$app$__DEVELOP3 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP3 === void 0 ? void 0 : (_window$app$__DEVELOP4 = _window$app$__DEVELOP3.oidc) === null || _window$app$__DEVELOP4 === void 0 ? void 0 : _window$app$__DEVELOP4.oAuthScopes,
3898
3879
  teamId: (_window$app$__DEVELOP5 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP5 === void 0 ? void 0 : (_window$app$__DEVELOP6 = _window$app$__DEVELOP5.oidc) === null || _window$app$__DEVELOP6 === void 0 ? void 0 : _window$app$__DEVELOP6.teamId
@@ -3906,10 +3887,10 @@ var RedirectToLogin = function RedirectToLogin() {
3906
3887
  origin: (_window$app$__DEVELOP7 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP7 === void 0 ? void 0 : (_window$app$__DEVELOP8 = _window$app$__DEVELOP7.oidc) === null || _window$app$__DEVELOP8 === void 0 ? void 0 : _window$app$__DEVELOP8.authorizeUrl,
3907
3888
  location: location,
3908
3889
  queryParams: {
3909
- reason: constants.LOGOUT_REASONS.UNAUTHORIZED,
3890
+ reason: constants$1.LOGOUT_REASONS.UNAUTHORIZED,
3910
3891
  // Query parameters for OIDC-lik workflow.
3911
3892
  client_id: window.app.applicationId,
3912
- response_type: applicationEntryPoint.OIDC_RESPONSE_TYPES.ID_TOKEN,
3893
+ response_type: constants.OIDC_RESPONSE_TYPES.ID_TOKEN,
3913
3894
  scope: requestedScope,
3914
3895
  state: sessionId,
3915
3896
  nonce: sessionId
@@ -3923,7 +3904,7 @@ var RedirectToLogin = function RedirectToLogin() {
3923
3904
  origin: mcOrigin,
3924
3905
  location: location,
3925
3906
  queryParams: {
3926
- reason: constants.LOGOUT_REASONS.UNAUTHORIZED,
3907
+ reason: constants$1.LOGOUT_REASONS.UNAUTHORIZED,
3927
3908
  redirectTo: urlUtils.trimLeadingAndTrailingSlashes(urlUtils.joinPaths(window.location.origin, location.pathname))
3928
3909
  }
3929
3910
  });
@@ -3956,7 +3937,7 @@ var RedirectToLogout = function RedirectToLogout(props) {
3956
3937
  origin: mcOrigin,
3957
3938
  location: location,
3958
3939
  queryParams: _objectSpread$1({
3959
- reason: (_props$reason = props.reason) !== null && _props$reason !== void 0 ? _props$reason : constants.LOGOUT_REASONS.USER
3940
+ reason: (_props$reason = props.reason) !== null && _props$reason !== void 0 ? _props$reason : constants$1.LOGOUT_REASONS.USER
3960
3941
  }, servedByProxy ? {} : {
3961
3942
  // This will be used after being logged in, to redirect to this location.
3962
3943
  redirectTo: window.location.origin
@@ -4043,7 +4024,7 @@ var RestrictedApplication = function RestrictedApplication(props) {
4043
4024
 
4044
4025
  if (hasUnauthorizedError || hasUserBeenDeletedError) {
4045
4026
  var logoutReason;
4046
- if (hasUnauthorizedError) logoutReason = constants.LOGOUT_REASONS.UNAUTHORIZED;else if (hasUserBeenDeletedError) logoutReason = constants.LOGOUT_REASONS.DELETED;
4027
+ if (hasUnauthorizedError) logoutReason = constants$1.LOGOUT_REASONS.UNAUTHORIZED;else if (hasUserBeenDeletedError) logoutReason = constants$1.LOGOUT_REASONS.DELETED;
4047
4028
  return jsxRuntime.jsx(RedirectToLogout, {
4048
4029
  reason: logoutReason
4049
4030
  });
@@ -4110,7 +4091,7 @@ var RestrictedApplication = function RestrictedApplication(props) {
4110
4091
  role: "global-notifications",
4111
4092
  css: _ref5,
4112
4093
  children: jsxRuntime.jsx(reactNotifications.NotificationsList, {
4113
- domain: constants.DOMAINS.GLOBAL
4094
+ domain: constants$1.DOMAINS.GLOBAL
4114
4095
  })
4115
4096
  }), jsxRuntime.jsx(reactRouterDom.Route, {
4116
4097
  children: function children() {
@@ -4199,9 +4180,9 @@ var RestrictedApplication = function RestrictedApplication(props) {
4199
4180
  }) : jsxRuntime.jsxs(MainContainer, {
4200
4181
  role: "main",
4201
4182
  children: [jsxRuntime.jsx(reactNotifications.NotificationsList, {
4202
- domain: constants.DOMAINS.PAGE
4183
+ domain: constants$1.DOMAINS.PAGE
4203
4184
  }), jsxRuntime.jsx(reactNotifications.NotificationsList, {
4204
- domain: constants.DOMAINS.SIDE
4185
+ domain: constants$1.DOMAINS.SIDE
4205
4186
  }), jsxRuntime.jsxs("div", {
4206
4187
  css: _ref2,
4207
4188
  children: [jsxRuntime.jsx(applicationComponents.PortalsContainer, {}), jsxRuntime.jsxs(reactRouterDom.Switch, {
@@ -0,0 +1,94 @@
1
+ 'use strict';
2
+
3
+ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
4
+ var upperFirst = require('lodash/upperFirst');
5
+ var _toConsumableArray = require('@babel/runtime-corejs3/helpers/toConsumableArray');
6
+ var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
7
+ var constants = require('./constants-fdbe0e9d.cjs.dev.js');
8
+
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
10
+
11
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
12
+ var upperFirst__default = /*#__PURE__*/_interopDefault(upperFirst);
13
+ var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
14
+
15
+ // removing special characters except underscore.
16
+ // It makes the first character of the string and the next character after a special character an uppercase.
17
+ // It replaces hyphen(-) with a forward slash(/) if the hyphen(-) is followed by a number.
18
+ // Examples:
19
+ // input: foo-bar result: FooBar
20
+ // input: foo_bar result: Foo_Bar
21
+ // input: foo-1bar result: Foo/1bar
22
+
23
+ var formatEntryPointUriPathToResourceAccessKey = function formatEntryPointUriPathToResourceAccessKey(entryPointUriPath) {
24
+ var _context, _context2;
25
+
26
+ return _mapInstanceProperty__default["default"](_context = _mapInstanceProperty__default["default"](_context2 = entryPointUriPath //Splits the string by underscore.
27
+ .split('_') // Uppercase the first character of each word split.
28
+ ).call(_context2, function (word) {
29
+ return upperFirst__default["default"](word);
30
+ }) // Join the words by an underscore.
31
+ .join('_') // Each word is split by a hyphen.
32
+ .split('-')).call(_context, function (word, i) {
33
+ // Regex below checking if the character is numeric.
34
+ // If the word after the hyphen is numeric, replace the hyphen with a forward slash.
35
+ // If not, omit the hyphen and uppercase the first character
36
+ if (i > 0 && /^-?\d+$/.test(word[0])) {
37
+ return '/' + word;
38
+ }
39
+
40
+ return upperFirst__default["default"](word);
41
+ }).join('');
42
+ };
43
+
44
+ var entryPointUriPathToResourceAccesses = function entryPointUriPathToResourceAccesses(entryPointUriPath) {
45
+ var convertedEntryPointUriPath = formatEntryPointUriPathToResourceAccessKey(entryPointUriPath);
46
+ return {
47
+ view: "view".concat(convertedEntryPointUriPath),
48
+ manage: "manage".concat(convertedEntryPointUriPath)
49
+ };
50
+ };
51
+ var entryPointUriPathToPermissionKeys = function entryPointUriPathToPermissionKeys(entryPointUriPath) {
52
+ var resourceAccesses = entryPointUriPathToResourceAccesses(entryPointUriPath);
53
+ return {
54
+ View: upperFirst__default["default"](resourceAccesses.view),
55
+ Manage: upperFirst__default["default"](resourceAccesses.manage)
56
+ };
57
+ };
58
+
59
+ var buildOidcScope = function buildOidcScope(options) {
60
+ var _context7;
61
+
62
+ var claims = [];
63
+
64
+ if (options.projectKey) {
65
+ var _context, _context2, _options$oAuthScopes$, _options$oAuthScopes, _context4, _options$oAuthScopes$2, _options$oAuthScopes2;
66
+
67
+ claims.push(_concatInstanceProperty__default["default"](_context = "".concat(constants.OIDC_CLAIMS.PROJECT_KEY, ":")).call(_context, options.projectKey));
68
+ claims.push.apply(claims, _toConsumableArray(_mapInstanceProperty__default["default"](_context2 = (_options$oAuthScopes$ = (_options$oAuthScopes = options.oAuthScopes) === null || _options$oAuthScopes === void 0 ? void 0 : _options$oAuthScopes.view) !== null && _options$oAuthScopes$ !== void 0 ? _options$oAuthScopes$ : []).call(_context2, function (scope) {
69
+ var _context3;
70
+
71
+ return _concatInstanceProperty__default["default"](_context3 = "".concat(constants.OIDC_CLAIMS.VIEW, ":")).call(_context3, scope);
72
+ })));
73
+ claims.push.apply(claims, _toConsumableArray(_mapInstanceProperty__default["default"](_context4 = (_options$oAuthScopes$2 = (_options$oAuthScopes2 = options.oAuthScopes) === null || _options$oAuthScopes2 === void 0 ? void 0 : _options$oAuthScopes2.manage) !== null && _options$oAuthScopes$2 !== void 0 ? _options$oAuthScopes$2 : []).call(_context4, function (scope) {
74
+ var _context5;
75
+
76
+ return _concatInstanceProperty__default["default"](_context5 = "".concat(constants.OIDC_CLAIMS.MANAGE, ":")).call(_context5, scope);
77
+ })));
78
+ }
79
+
80
+ var teamId = options.teamId;
81
+
82
+ if (teamId) {
83
+ var _context6;
84
+
85
+ claims.push(_concatInstanceProperty__default["default"](_context6 = "".concat(constants.OIDC_CLAIMS.TEAM_ID, ":")).call(_context6, teamId));
86
+ }
87
+
88
+ return _concatInstanceProperty__default["default"](_context7 = [// This is required as per OIDC spec.
89
+ constants.OIDC_CLAIMS.OPEN_ID]).call(_context7, claims).join(' ');
90
+ };
91
+
92
+ exports.buildOidcScope = buildOidcScope;
93
+ exports.entryPointUriPathToPermissionKeys = entryPointUriPathToPermissionKeys;
94
+ exports.entryPointUriPathToResourceAccesses = entryPointUriPathToResourceAccesses;