@commercetools-frontend/application-shell 21.23.10 → 21.24.1
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.
- package/dist/application-entry-point-47d5c548.cjs.dev.js +116 -0
- package/dist/application-entry-point-5619d5aa.cjs.prod.js +99 -0
- package/dist/application-entry-point-dc726674.esm.js +101 -0
- package/dist/{box-dd9e7e68.esm.js → box-4395623b.esm.js} +1 -3
- package/dist/{box-fdb2ccb6.cjs.dev.js → box-6b5be9a9.cjs.dev.js} +1 -3
- package/dist/{box-d849ea03.cjs.prod.js → box-8850277f.cjs.prod.js} +1 -3
- package/dist/{cart-ad0aba9b.cjs.prod.js → cart-0698b97d.cjs.prod.js} +1 -3
- package/dist/{cart-b92f3a8e.cjs.dev.js → cart-41f0b7bc.cjs.dev.js} +1 -3
- package/dist/{cart-167fea3b.esm.js → cart-a49faf67.esm.js} +1 -3
- package/dist/commercetools-frontend-application-shell.cjs.dev.js +49 -68
- package/dist/commercetools-frontend-application-shell.cjs.prod.js +49 -68
- package/dist/commercetools-frontend-application-shell.esm.js +39 -58
- package/dist/configure-apollo-942ef373.cjs.prod.js +922 -0
- package/dist/configure-apollo-a6f03ff8.cjs.dev.js +930 -0
- package/dist/configure-apollo-cc0b1668.esm.js +873 -0
- package/dist/{connected-square-4743b7de.esm.js → connected-square-3cac6bd7.esm.js} +1 -3
- package/dist/connected-square-47233754.cjs.dev.js +32 -0
- package/dist/connected-square-b2e25621.cjs.prod.js +32 -0
- package/dist/{constants-69249abd.esm.js → constants-7f04db3f.esm.js} +9 -9
- package/dist/{constants-88fb9ef8.cjs.prod.js → constants-e6409334.cjs.prod.js} +8 -8
- package/dist/{constants-c2d56f3d.cjs.dev.js → constants-e6f058e5.cjs.dev.js} +8 -8
- package/dist/declarations/src/apollo-links/utils.d.ts +2 -2
- package/dist/declarations/src/components/application-entry-point/application-entry-point.d.ts +4 -4
- package/dist/declarations/src/components/application-shell/application-shell.d.ts +7 -15
- package/dist/declarations/src/components/application-shell-authenticated/application-shell-authenticated.d.ts +21 -0
- package/dist/declarations/src/components/application-shell-provider/application-shell-provider.d.ts +6 -7
- package/dist/declarations/src/components/application-shell-provider/use-coerced-environment-values.d.ts +1 -23
- package/dist/declarations/src/components/authenticated/authenticated.d.ts +2 -2
- package/dist/declarations/src/components/authenticated/oidc-callback.async.d.ts +6 -0
- package/dist/declarations/src/components/authenticated/oidc-callback.d.ts +2 -2
- package/dist/declarations/src/components/configure-intl-provider/configure-intl-provider.d.ts +1 -1
- package/dist/declarations/src/components/error-apologizer/index.d.ts +6 -1
- package/dist/declarations/src/components/fetch-project/fetch-project.d.ts +4 -4
- package/dist/declarations/src/components/fetch-user/fetch-user.d.ts +3 -3
- package/dist/declarations/src/components/inject-reducers/inject-reducers.d.ts +1 -1
- package/dist/declarations/src/components/navbar/index.d.ts +100 -1
- package/dist/declarations/src/components/navbar/loading-navbar.d.ts +5 -0
- package/dist/declarations/src/components/navbar/menu-items.d.ts +99 -0
- package/dist/declarations/src/components/navbar/navbar.d.ts +6 -15
- package/dist/declarations/src/components/project-container/index.d.ts +78 -1
- package/dist/declarations/src/components/project-container/project-container.d.ts +6 -8
- package/dist/declarations/src/components/quick-access/butler-command/butler-command.d.ts +1 -1
- package/dist/declarations/src/components/quick-access/index.d.ts +2 -2
- package/dist/declarations/src/components/quick-access/types.d.ts +1 -1
- package/dist/declarations/src/components/redirect-to-login/index.d.ts +6 -0
- package/dist/declarations/src/components/redirect-to-logout/index.d.ts +5 -0
- package/dist/declarations/src/components/redirect-to-project-create/index.d.ts +6 -1
- package/dist/declarations/src/components/requests-in-flight-loader/index.d.ts +6 -1
- package/dist/declarations/src/components/route-catch-all/index.d.ts +3 -1
- package/dist/declarations/src/components/setup-flop-flip-provider/setup-flop-flip-provider.d.ts +3 -3
- package/dist/declarations/src/components/suspended-route/suspended-route.d.ts +1 -1
- package/dist/declarations/src/components/user-settings-menu/index.d.ts +12 -1
- package/dist/declarations/src/components/version-tracker/index.d.ts +6 -1
- package/dist/declarations/src/hooks/apollo-hooks/apollo-hooks.d.ts +1 -1
- package/dist/declarations/src/test-utils/test-utils.d.ts +2 -2
- package/dist/declarations/src/types/generated/mc.d.ts +3 -3
- package/dist/declarations/src/utils/get-mc-origin/get-mc-origin.d.ts +2 -0
- package/dist/declarations/src/utils/get-mc-origin/index.d.ts +1 -0
- package/dist/error-apologizer-c336db61.cjs.dev.js +56 -0
- package/dist/error-apologizer-c55ec6f7.cjs.prod.js +56 -0
- package/dist/error-apologizer-f8772b68.esm.js +42 -0
- package/dist/gear-2890f7fb.cjs.prod.js +32 -0
- package/dist/{gear-8418cd46.esm.js → gear-300dd24c.esm.js} +1 -3
- package/dist/gear-e8014c5a.cjs.dev.js +32 -0
- package/dist/get-mc-origin-314b77a2.cjs.dev.js +57 -0
- package/dist/get-mc-origin-5df60933.esm.js +50 -0
- package/dist/get-mc-origin-7968e04f.cjs.prod.js +57 -0
- package/dist/heart-000a023d.cjs.prod.js +32 -0
- package/dist/{heart-48c28091.esm.js → heart-dded66b4.esm.js} +1 -3
- package/dist/heart-f21b7d39.cjs.dev.js +32 -0
- package/dist/index-3765c4c9.cjs.prod.js +2870 -0
- package/dist/index-3fdf5681.esm.js +2970 -0
- package/dist/index-b9b8b690.cjs.dev.js +3054 -0
- package/dist/{list-with-search-c154a56e.esm.js → list-with-search-a3302710.esm.js} +1 -3
- package/dist/list-with-search-a5b72b33.cjs.prod.js +32 -0
- package/dist/list-with-search-ee796e9e.cjs.dev.js +32 -0
- package/dist/navbar-08a76df9.cjs.dev.js +670 -0
- package/dist/navbar-5384b0c3.esm.js +650 -0
- package/dist/navbar-c02843fb.cjs.prod.js +649 -0
- package/dist/oidc-0638d0c8.cjs.dev.js +67 -0
- package/dist/oidc-10fa96f0.esm.js +59 -0
- package/dist/oidc-540a091a.cjs.prod.js +67 -0
- package/dist/oidc-callback-152dc622.esm.js +240 -0
- package/dist/oidc-callback-784c3a39.cjs.prod.js +251 -0
- package/dist/oidc-callback-dc8682c0.cjs.dev.js +254 -0
- package/dist/paperclip-23d1e69c.cjs.prod.js +32 -0
- package/dist/{paperclip-18785dda.esm.js → paperclip-a61112e8.esm.js} +1 -3
- package/dist/paperclip-d653c134.cjs.dev.js +32 -0
- package/dist/plugin-0ee6aee4.cjs.dev.js +32 -0
- package/dist/{plugin-53c047bb.esm.js → plugin-3d353a5b.esm.js} +1 -3
- package/dist/plugin-7e57f237.cjs.prod.js +32 -0
- package/dist/project-container-6f0ea904.cjs.dev.js +387 -0
- package/dist/project-container-b6b2f6b2.esm.js +368 -0
- package/dist/project-container-bf8678e2.cjs.prod.js +369 -0
- package/dist/{project-expired-d8eaa253.esm.js → project-expired-6b9b6feb.esm.js} +47 -68
- package/dist/{project-expired-adce523b.cjs.dev.js → project-expired-9d71c314.cjs.dev.js} +47 -68
- package/dist/{project-expired-576a8329.cjs.prod.js → project-expired-d75d9e84.cjs.prod.js} +47 -68
- package/dist/{project-not-found-9a9753f2.cjs.dev.js → project-not-found-4b5b9479.cjs.prod.js} +42 -61
- package/dist/{project-not-found-8208c8f1.esm.js → project-not-found-c4634d60.esm.js} +42 -61
- package/dist/{project-not-found-daa5200b.cjs.prod.js → project-not-found-c977dbb0.cjs.dev.js} +42 -61
- package/dist/{project-not-initialized-4aeafe19.cjs.dev.js → project-not-initialized-4d0badf3.cjs.prod.js} +47 -68
- package/dist/{project-not-initialized-3408e87f.esm.js → project-not-initialized-a2f7b46e.esm.js} +47 -68
- package/dist/{project-not-initialized-5b416bcf.cjs.prod.js → project-not-initialized-e1533577.cjs.dev.js} +47 -68
- package/dist/{project-suspended-d3a6001d.cjs.dev.js → project-suspended-9027fc60.cjs.prod.js} +44 -63
- package/dist/{project-suspended-dc9ace34.cjs.prod.js → project-suspended-9e084c21.cjs.dev.js} +44 -63
- package/dist/{project-suspended-a7edc962.esm.js → project-suspended-f3d78447.esm.js} +44 -63
- package/dist/{quick-access-f42a8e0a.cjs.prod.js → quick-access-517ad7e1.cjs.prod.js} +573 -957
- package/dist/quick-access-82e1c9aa.esm.js +1907 -0
- package/dist/quick-access-8b2b678f.cjs.dev.js +1937 -0
- package/dist/redirect-to-login-1b892ab5.esm.js +147 -0
- package/dist/redirect-to-login-2be0e5db.cjs.prod.js +149 -0
- package/dist/redirect-to-login-64230f67.cjs.dev.js +149 -0
- package/dist/redirect-to-logout-15810ffb.cjs.dev.js +151 -0
- package/dist/redirect-to-logout-17e4ba2c.cjs.prod.js +151 -0
- package/dist/redirect-to-logout-80e772d1.esm.js +138 -0
- package/dist/redirect-to-project-create-048efa71.cjs.prod.js +61 -0
- package/dist/redirect-to-project-create-052f293e.esm.js +52 -0
- package/dist/redirect-to-project-create-f0e7b35e.cjs.dev.js +61 -0
- package/dist/{gear-28ff4f04.cjs.dev.js → redirector-0d98f9df.cjs.dev.js} +44 -5
- package/dist/redirector-47a6be71.esm.js +58 -0
- package/dist/{gear-6f8c30e3.cjs.prod.js → redirector-77ce2f5c.cjs.prod.js} +44 -5
- package/dist/requests-in-flight-loader-5329586b.esm.js +129 -0
- package/dist/requests-in-flight-loader-88f14402.cjs.dev.js +144 -0
- package/dist/requests-in-flight-loader-a7bc4e12.cjs.prod.js +144 -0
- package/dist/rocket-3e3f0a98.cjs.prod.js +32 -0
- package/dist/{rocket-ba116b5e.esm.js → rocket-4b088727.esm.js} +1 -3
- package/dist/rocket-95b6858d.cjs.dev.js +32 -0
- package/dist/route-catch-all-01cf0095.esm.js +41 -0
- package/dist/route-catch-all-3b490df1.cjs.prod.js +43 -0
- package/dist/route-catch-all-9ac99936.cjs.dev.js +43 -0
- package/dist/{service-page-project-switcher-49afafeb.cjs.prod.js → service-page-project-switcher-39dcfee8.cjs.prod.js} +5 -7
- package/dist/{service-page-project-switcher-866b2139.cjs.dev.js → service-page-project-switcher-7698339b.cjs.dev.js} +6 -8
- package/dist/{service-page-project-switcher-365c4c10.esm.js → service-page-project-switcher-fd30959b.esm.js} +6 -8
- package/dist/{speedometer-c1b94505.esm.js → speedometer-08a11d5a.esm.js} +1 -3
- package/dist/speedometer-2881cef6.cjs.prod.js +32 -0
- package/dist/speedometer-54f872f2.cjs.dev.js +32 -0
- package/dist/{star-da9123e0.esm.js → star-15244db1.esm.js} +1 -3
- package/dist/star-52bf7a64.cjs.dev.js +32 -0
- package/dist/star-f8502efb.cjs.prod.js +32 -0
- package/dist/tag-multi-1d1553b6.cjs.dev.js +32 -0
- package/dist/{tag-multi-c650b738.esm.js → tag-multi-3be995ac.esm.js} +1 -3
- package/dist/tag-multi-f9acb1c2.cjs.prod.js +32 -0
- package/dist/tree-structure-4650688d.cjs.dev.js +32 -0
- package/dist/{tree-structure-6af6fc3a.esm.js → tree-structure-c8753526.esm.js} +1 -3
- package/dist/tree-structure-f24ee3f6.cjs.prod.js +32 -0
- package/dist/use-applications-menu-4abb5796.esm.js +172 -0
- package/dist/use-applications-menu-68d83733.cjs.dev.js +188 -0
- package/dist/use-applications-menu-6b872b83.cjs.prod.js +188 -0
- package/dist/use-is-served-by-proxy-2b4916e5.cjs.dev.js +42 -0
- package/dist/use-is-served-by-proxy-499bfa16.esm.js +39 -0
- package/dist/use-is-served-by-proxy-51e76976.cjs.prod.js +42 -0
- package/dist/{user-filled-41729d77.esm.js → user-filled-2dc4e79e.esm.js} +1 -3
- package/dist/user-filled-2e6cb25e.cjs.dev.js +32 -0
- package/dist/user-filled-815b49a0.cjs.prod.js +32 -0
- package/dist/user-settings-menu-79d4cb1e.cjs.dev.js +523 -0
- package/dist/user-settings-menu-7bf6f146.cjs.prod.js +496 -0
- package/dist/user-settings-menu-ad7c27f0.esm.js +497 -0
- package/dist/version-tracker-20bb239d.esm.js +101 -0
- package/dist/version-tracker-69607d15.cjs.dev.js +107 -0
- package/dist/version-tracker-80e0f8f6.cjs.prod.js +107 -0
- package/dist/world-973090a5.cjs.dev.js +32 -0
- package/dist/{world-d91df1ee.esm.js → world-c5ea311a.esm.js} +1 -3
- package/dist/world-e1f9dbf8.cjs.prod.js +32 -0
- package/package.json +27 -27
- package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +2 -3
- package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +2 -3
- package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +2 -3
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +182 -215
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +182 -215
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +173 -206
- package/dist/application-entry-point-307baa50.cjs.prod.js +0 -1225
- package/dist/application-entry-point-3e14d46d.cjs.dev.js +0 -1250
- package/dist/application-entry-point-8d923438.esm.js +0 -1180
- package/dist/connected-square-abf36852.cjs.prod.js +0 -34
- package/dist/connected-square-ac52014f.cjs.dev.js +0 -34
- package/dist/declarations/src/components/application-shell/helpers.d.ts +0 -1
- package/dist/heart-33cd94c6.cjs.prod.js +0 -34
- package/dist/heart-fb31cf30.cjs.dev.js +0 -34
- package/dist/index-284fb405.esm.js +0 -4809
- package/dist/index-37414a3f.cjs.prod.js +0 -4643
- package/dist/index-ea32a85e.cjs.dev.js +0 -4888
- package/dist/list-with-search-34cd926c.cjs.dev.js +0 -34
- package/dist/list-with-search-a0b22169.cjs.prod.js +0 -34
- package/dist/oidc-1c91f5ee.cjs.prod.js +0 -67
- package/dist/oidc-5b2e4f8f.cjs.dev.js +0 -67
- package/dist/oidc-77749f1b.esm.js +0 -59
- package/dist/paperclip-2cd45b86.cjs.dev.js +0 -34
- package/dist/paperclip-b1b806ab.cjs.prod.js +0 -34
- package/dist/plugin-7cb7827e.cjs.dev.js +0 -34
- package/dist/plugin-e97ae3e6.cjs.prod.js +0 -34
- package/dist/quick-access-457a9f41.esm.js +0 -2290
- package/dist/quick-access-d553524e.cjs.dev.js +0 -2321
- package/dist/rocket-37c1aa11.cjs.dev.js +0 -34
- package/dist/rocket-b2dbda7f.cjs.prod.js +0 -34
- package/dist/speedometer-13b393fb.cjs.dev.js +0 -34
- package/dist/speedometer-1e69fd13.cjs.prod.js +0 -34
- package/dist/star-ab4be629.cjs.prod.js +0 -34
- package/dist/star-e165111e.cjs.dev.js +0 -34
- package/dist/tag-multi-5f498a7d.cjs.dev.js +0 -34
- package/dist/tag-multi-fb817131.cjs.prod.js +0 -34
- package/dist/tree-structure-779fcc36.cjs.prod.js +0 -34
- package/dist/tree-structure-ed6cdff8.cjs.dev.js +0 -34
- package/dist/user-filled-384a2eaf.cjs.prod.js +0 -34
- package/dist/user-filled-53d2eae0.cjs.dev.js +0 -34
- package/dist/world-12528632.cjs.prod.js +0 -34
- package/dist/world-6471d9f6.cjs.dev.js +0 -34
- /package/dist/declarations/src/components/{application-shell → redirect-to-login}/redirect-to-login.d.ts +0 -0
- /package/dist/declarations/src/components/{application-shell → redirect-to-logout}/redirect-to-logout.d.ts +0 -0
|
@@ -1,1225 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
|
|
4
|
-
var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
|
|
5
|
-
var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
|
|
6
|
-
var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
|
|
7
|
-
var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
|
|
8
|
-
var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
|
|
9
|
-
var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
|
|
10
|
-
var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
|
|
11
|
-
var _toConsumableArray = require('@babel/runtime-corejs3/helpers/toConsumableArray');
|
|
12
|
-
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
13
|
-
var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
14
|
-
var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
15
|
-
var _Object$entries = require('@babel/runtime-corejs3/core-js-stable/object/entries');
|
|
16
|
-
var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
|
|
17
|
-
var _Reflect$has = require('@babel/runtime-corejs3/core-js-stable/reflect/has');
|
|
18
|
-
var mapValues = require('lodash/mapValues');
|
|
19
|
-
var toolkit = require('@reduxjs/toolkit');
|
|
20
|
-
var thunk = require('redux-thunk');
|
|
21
|
-
var omitEmpty = require('omit-empty-es');
|
|
22
|
-
var notifications = require('@commercetools-frontend/notifications');
|
|
23
|
-
var sdk = require('@commercetools-frontend/sdk');
|
|
24
|
-
var constants = require('@commercetools-frontend/constants');
|
|
25
|
-
var constants$1 = require('./constants-88fb9ef8.cjs.prod.js');
|
|
26
|
-
var reactNotifications = require('@commercetools-frontend/react-notifications');
|
|
27
|
-
var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
|
|
28
|
-
var _includesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/includes');
|
|
29
|
-
var reduxLogger = require('redux-logger');
|
|
30
|
-
var ReactDOM = require('react-dom');
|
|
31
|
-
var reactIntl = require('react-intl');
|
|
32
|
-
var reactRedux = require('react-redux');
|
|
33
|
-
var LoadingSpinner = require('@commercetools-uikit/loading-spinner');
|
|
34
|
-
var jsxRuntime = require('@emotion/react/jsx-runtime');
|
|
35
|
-
var _indexOfInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
|
|
36
|
-
var _sliceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/slice');
|
|
37
|
-
var sentry = require('@commercetools-frontend/sentry');
|
|
38
|
-
var _URL = require('@babel/runtime-corejs3/core-js-stable/url');
|
|
39
|
-
var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
|
|
40
|
-
var client = require('@apollo/client');
|
|
41
|
-
var loggerLink = require('apollo-link-logger');
|
|
42
|
-
var _Array$from = require('@babel/runtime-corejs3/core-js-stable/array/from');
|
|
43
|
-
var _Symbol = require('@babel/runtime-corejs3/core-js-stable/symbol');
|
|
44
|
-
var _getIteratorMethod = require('@babel/runtime-corejs3/core-js/get-iterator-method');
|
|
45
|
-
var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
|
|
46
|
-
var error = require('@apollo/client/link/error');
|
|
47
|
-
var history = require('@commercetools-frontend/browser-history');
|
|
48
|
-
var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
|
|
49
|
-
var _Object$values = require('@babel/runtime-corejs3/core-js-stable/object/values');
|
|
50
|
-
var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
|
|
51
|
-
var createHttpUserAgent = require('@commercetools/http-user-agent');
|
|
52
|
-
var uuid = require('uuid');
|
|
53
|
-
var _JSON$stringify = require('@babel/runtime-corejs3/core-js-stable/json/stringify');
|
|
54
|
-
var _Reflect$construct = require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
|
|
55
|
-
var _asyncToGenerator = require('@babel/runtime-corejs3/helpers/asyncToGenerator');
|
|
56
|
-
var _createClass = require('@babel/runtime-corejs3/helpers/createClass');
|
|
57
|
-
var _classCallCheck = require('@babel/runtime-corejs3/helpers/classCallCheck');
|
|
58
|
-
var _assertThisInitialized = require('@babel/runtime-corejs3/helpers/assertThisInitialized');
|
|
59
|
-
var _inherits = require('@babel/runtime-corejs3/helpers/inherits');
|
|
60
|
-
var _possibleConstructorReturn = require('@babel/runtime-corejs3/helpers/possibleConstructorReturn');
|
|
61
|
-
var _getPrototypeOf = require('@babel/runtime-corejs3/helpers/getPrototypeOf');
|
|
62
|
-
var _wrapNativeSuper = require('@babel/runtime-corejs3/helpers/wrapNativeSuper');
|
|
63
|
-
var _regeneratorRuntime = require('@babel/runtime-corejs3/regenerator');
|
|
64
|
-
var retry = require('@apollo/client/link/retry');
|
|
65
|
-
require('prop-types');
|
|
66
|
-
var react = require('react');
|
|
67
|
-
var reactRouterDom = require('react-router-dom');
|
|
68
|
-
var invariant = require('tiny-invariant');
|
|
69
|
-
var permissions = require('@commercetools-frontend/permissions');
|
|
70
|
-
var applicationComponents = require('@commercetools-frontend/application-components');
|
|
71
|
-
var ssr = require('@commercetools-frontend/application-config/ssr');
|
|
72
|
-
var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
|
|
73
|
-
|
|
74
|
-
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
75
|
-
|
|
76
|
-
var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
|
|
77
|
-
var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
|
|
78
|
-
var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
|
|
79
|
-
var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
|
|
80
|
-
var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
|
|
81
|
-
var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
|
|
82
|
-
var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
|
|
83
|
-
var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
|
|
84
|
-
var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
|
|
85
|
-
var _Object$entries__default = /*#__PURE__*/_interopDefault(_Object$entries);
|
|
86
|
-
var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
|
|
87
|
-
var _Reflect$has__default = /*#__PURE__*/_interopDefault(_Reflect$has);
|
|
88
|
-
var mapValues__default = /*#__PURE__*/_interopDefault(mapValues);
|
|
89
|
-
var thunk__default = /*#__PURE__*/_interopDefault(thunk);
|
|
90
|
-
var omitEmpty__default = /*#__PURE__*/_interopDefault(omitEmpty);
|
|
91
|
-
var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
|
|
92
|
-
var _includesInstanceProperty__default = /*#__PURE__*/_interopDefault(_includesInstanceProperty);
|
|
93
|
-
var ReactDOM__default = /*#__PURE__*/_interopDefault(ReactDOM);
|
|
94
|
-
var LoadingSpinner__default = /*#__PURE__*/_interopDefault(LoadingSpinner);
|
|
95
|
-
var _indexOfInstanceProperty__default = /*#__PURE__*/_interopDefault(_indexOfInstanceProperty);
|
|
96
|
-
var _sliceInstanceProperty__default = /*#__PURE__*/_interopDefault(_sliceInstanceProperty);
|
|
97
|
-
var _URL__default = /*#__PURE__*/_interopDefault(_URL);
|
|
98
|
-
var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
|
|
99
|
-
var loggerLink__default = /*#__PURE__*/_interopDefault(loggerLink);
|
|
100
|
-
var _Array$from__default = /*#__PURE__*/_interopDefault(_Array$from);
|
|
101
|
-
var _Symbol__default = /*#__PURE__*/_interopDefault(_Symbol);
|
|
102
|
-
var _getIteratorMethod__default = /*#__PURE__*/_interopDefault(_getIteratorMethod);
|
|
103
|
-
var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
|
|
104
|
-
var history__default = /*#__PURE__*/_interopDefault(history);
|
|
105
|
-
var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
|
|
106
|
-
var _Object$values__default = /*#__PURE__*/_interopDefault(_Object$values);
|
|
107
|
-
var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
|
|
108
|
-
var createHttpUserAgent__default = /*#__PURE__*/_interopDefault(createHttpUserAgent);
|
|
109
|
-
var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
|
|
110
|
-
var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
|
|
111
|
-
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefault(_regeneratorRuntime);
|
|
112
|
-
var invariant__default = /*#__PURE__*/_interopDefault(invariant);
|
|
113
|
-
|
|
114
|
-
// NOTE: This string will be replaced on build time with the package version.
|
|
115
|
-
var version = "21.23.10";
|
|
116
|
-
|
|
117
|
-
var isAddNotificationErrorAction = function isAddNotificationErrorAction(action) {
|
|
118
|
-
var errorAction = action;
|
|
119
|
-
return errorAction.type === notifications.ADD_NOTIFICATION && errorAction.payload && (errorAction.payload.kind === constants.NOTIFICATION_KINDS_PAGE['api-error'] || errorAction.payload.kind === constants.NOTIFICATION_KINDS_PAGE['unexpected-error']);
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
var isHideAllNotificationsAction = function isHideAllNotificationsAction(action) {
|
|
123
|
-
return action.type === constants.HIDE_ALL_PAGE_NOTIFICATIONS;
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
var hideNotificationsMiddleware = function hideNotificationsMiddleware(_ref) {
|
|
127
|
-
var getState = _ref.getState;
|
|
128
|
-
return function (next) {
|
|
129
|
-
return function (action) {
|
|
130
|
-
if (isHideAllNotificationsAction(action) || isAddNotificationErrorAction(action)) {
|
|
131
|
-
var _context;
|
|
132
|
-
|
|
133
|
-
var state = getState();
|
|
134
|
-
|
|
135
|
-
_forEachInstanceProperty__default["default"](_context = reactNotifications.selectPageNotifications(state)).call(_context, function (notification) {
|
|
136
|
-
next(notifications.removeNotification(notification.id));
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
return next(action);
|
|
141
|
-
};
|
|
142
|
-
};
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
/* eslint-disable no-console */
|
|
146
|
-
var isLoggerEnabled = function isLoggerEnabled() {
|
|
147
|
-
if (process.env.DEBUG === 'true') return true;
|
|
148
|
-
var queryParams = new _URL__default["default"](window.location.href);
|
|
149
|
-
if (queryParams.searchParams.get('debug') === 'true') return true;
|
|
150
|
-
return false;
|
|
151
|
-
};
|
|
152
|
-
var logger = {
|
|
153
|
-
groupCollapsed: function groupCollapsed() {
|
|
154
|
-
var _console;
|
|
155
|
-
|
|
156
|
-
return isLoggerEnabled() && (_console = console).groupCollapsed.apply(_console, arguments);
|
|
157
|
-
},
|
|
158
|
-
groupEnd: function groupEnd() {
|
|
159
|
-
return isLoggerEnabled() && console.groupEnd();
|
|
160
|
-
},
|
|
161
|
-
info: function info() {
|
|
162
|
-
var _console2;
|
|
163
|
-
|
|
164
|
-
return isLoggerEnabled() && (_console2 = console).info.apply(_console2, arguments);
|
|
165
|
-
},
|
|
166
|
-
log: function log() {
|
|
167
|
-
var _console3;
|
|
168
|
-
|
|
169
|
-
return isLoggerEnabled() && (_console3 = console).log.apply(_console3, arguments);
|
|
170
|
-
},
|
|
171
|
-
error: function error() {
|
|
172
|
-
var _console4;
|
|
173
|
-
|
|
174
|
-
return isLoggerEnabled() && (_console4 = console).error.apply(_console4, arguments);
|
|
175
|
-
},
|
|
176
|
-
warn: function warn() {
|
|
177
|
-
var _console5;
|
|
178
|
-
|
|
179
|
-
return isLoggerEnabled() && (_console5 = console).warn.apply(_console5, arguments);
|
|
180
|
-
}
|
|
181
|
-
};
|
|
182
|
-
|
|
183
|
-
var loggerMiddleware = reduxLogger.createLogger({
|
|
184
|
-
logger: logger,
|
|
185
|
-
collapsed: true,
|
|
186
|
-
colors: {
|
|
187
|
-
title: function title() {
|
|
188
|
-
return '#000000';
|
|
189
|
-
},
|
|
190
|
-
prevState: function prevState() {
|
|
191
|
-
return '#9E9E9E';
|
|
192
|
-
},
|
|
193
|
-
action: function action() {
|
|
194
|
-
return '#03A9F4';
|
|
195
|
-
},
|
|
196
|
-
nextState: function nextState() {
|
|
197
|
-
return '#4CAF50';
|
|
198
|
-
},
|
|
199
|
-
error: function error() {
|
|
200
|
-
return '#F20404';
|
|
201
|
-
}
|
|
202
|
-
},
|
|
203
|
-
// WARNING: Enabling this option causes huge performance degradation.
|
|
204
|
-
// Only enable if you want detailed debugging.
|
|
205
|
-
diff: false,
|
|
206
|
-
predicate: function predicate(_getState, action) {
|
|
207
|
-
if (!action) return false;
|
|
208
|
-
var type = action.type,
|
|
209
|
-
payload = action.payload;
|
|
210
|
-
if (!type) return false;
|
|
211
|
-
if (_startsWithInstanceProperty__default["default"](type).call(type, 'SHOW_') || _startsWithInstanceProperty__default["default"](type).call(type, 'HIDE_') || _startsWithInstanceProperty__default["default"](type).call(type, 'APOLLO_')) return false;
|
|
212
|
-
|
|
213
|
-
switch (type) {
|
|
214
|
-
case notifications.REMOVE_NOTIFICATION:
|
|
215
|
-
return false;
|
|
216
|
-
|
|
217
|
-
case notifications.ADD_NOTIFICATION:
|
|
218
|
-
{
|
|
219
|
-
var ignoredKinds = ['api-error', 'unexpected-error'];
|
|
220
|
-
return !_includesInstanceProperty__default["default"](ignoredKinds).call(ignoredKinds, payload.kind);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
default:
|
|
224
|
-
return true;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
|
|
229
|
-
// eslint-disable-next-line import/prefer-default-export
|
|
230
|
-
var REQUESTS_IN_FLIGHT_LOADER_DOM_ID = 'loader-for-requests-in-flight';
|
|
231
|
-
|
|
232
|
-
var messages = reactIntl.defineMessages({
|
|
233
|
-
labelLoading: {
|
|
234
|
-
// Keep the id for backwards compatibility.
|
|
235
|
-
// TODO: provide a new key?
|
|
236
|
-
id: 'TopNavigation.labelLoading',
|
|
237
|
-
description: 'The text to show next to the loading icon',
|
|
238
|
-
defaultMessage: 'Processing...'
|
|
239
|
-
}
|
|
240
|
-
});
|
|
241
|
-
|
|
242
|
-
function ownKeys$6(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
243
|
-
|
|
244
|
-
function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$6(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$6(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
|
|
245
|
-
|
|
246
|
-
var getPortalContainer = function getPortalContainer() {
|
|
247
|
-
return document.querySelector("#".concat(REQUESTS_IN_FLIGHT_LOADER_DOM_ID));
|
|
248
|
-
};
|
|
249
|
-
|
|
250
|
-
var RequestsInFlightLoader = function RequestsInFlightLoader() {
|
|
251
|
-
var hasRequestsInFlight = reactRedux.useSelector(function (state) {
|
|
252
|
-
return Boolean(state.requestsInFlight && state.requestsInFlight.length > 0);
|
|
253
|
-
});
|
|
254
|
-
if (!hasRequestsInFlight) return null;
|
|
255
|
-
return /*#__PURE__*/ReactDOM__default["default"].createPortal(jsxRuntime.jsx(LoadingSpinner__default["default"], {
|
|
256
|
-
children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$6({}, messages.labelLoading))
|
|
257
|
-
}), getPortalContainer());
|
|
258
|
-
};
|
|
259
|
-
|
|
260
|
-
RequestsInFlightLoader.displayName = 'RequestsInFlightLoader';
|
|
261
|
-
|
|
262
|
-
var isShowRequestInFlightAction = function isShowRequestInFlightAction(action) {
|
|
263
|
-
return action.type === constants.SHOW_LOADING;
|
|
264
|
-
};
|
|
265
|
-
|
|
266
|
-
var isHideRequestInFlightAction = function isHideRequestInFlightAction(action) {
|
|
267
|
-
return action.type === constants.HIDE_LOADING;
|
|
268
|
-
};
|
|
269
|
-
|
|
270
|
-
var excludeFirstOccurrence = function excludeFirstOccurrence(list, item) {
|
|
271
|
-
var _context;
|
|
272
|
-
|
|
273
|
-
var index = _indexOfInstanceProperty__default["default"](list).call(list, item);
|
|
274
|
-
|
|
275
|
-
return _concatInstanceProperty__default["default"](_context = []).call(_context, _toConsumableArray(_sliceInstanceProperty__default["default"](list).call(list, 0, index)), _toConsumableArray(_sliceInstanceProperty__default["default"](list).call(list, index + 1)));
|
|
276
|
-
};
|
|
277
|
-
|
|
278
|
-
var requestsInFlightReducer = (function (requestsInFlight, action) {
|
|
279
|
-
var _context2;
|
|
280
|
-
|
|
281
|
-
if (!requestsInFlight || !action) return [];
|
|
282
|
-
if (isShowRequestInFlightAction(action)) return _concatInstanceProperty__default["default"](_context2 = []).call(_context2, _toConsumableArray(requestsInFlight), [action.payload]);
|
|
283
|
-
|
|
284
|
-
if (isHideRequestInFlightAction(action)) {
|
|
285
|
-
// may only remove first occurence
|
|
286
|
-
if (!_includesInstanceProperty__default["default"](requestsInFlight).call(requestsInFlight, action.payload)) {
|
|
287
|
-
sentry.reportErrorToSentry(new Error("Tried to hide \"".concat(action.payload, "\", but it was not progressing!")));
|
|
288
|
-
return requestsInFlight;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
return excludeFirstOccurrence(requestsInFlight, action.payload);
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
return requestsInFlight;
|
|
295
|
-
});
|
|
296
|
-
|
|
297
|
-
function selectTeamIdFromLocalStorage() {
|
|
298
|
-
return window.localStorage.getItem(constants$1.STORAGE_KEYS.ACTIVE_TEAM_ID) || undefined;
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
var staticUrlPathsInPositionOfProjectKey = ['login', 'logout', 'account']; // Attempt to extract the `:projectKey` from the URL.
|
|
302
|
-
// If the value matches one of the values in the list above,
|
|
303
|
-
// return `undefined` as we're not within a project context.
|
|
304
|
-
|
|
305
|
-
function selectProjectKeyFromUrl() {
|
|
306
|
-
var locationPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.location.pathname;
|
|
307
|
-
var possibleProjectKey = locationPath.split('/')[1];
|
|
308
|
-
return _includesInstanceProperty__default["default"](staticUrlPathsInPositionOfProjectKey).call(staticUrlPathsInPositionOfProjectKey, possibleProjectKey) ? undefined : possibleProjectKey;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
// Keep an in-memory reference to the apollo client that would be initialized
|
|
312
|
-
// by the application. This is useful to retrieve on runtime the reference
|
|
313
|
-
// to the apollo client in other static modules.
|
|
314
|
-
var cachedApolloClient;
|
|
315
|
-
|
|
316
|
-
var setCachedApolloClient = function setCachedApolloClient(apolloClient) {
|
|
317
|
-
cachedApolloClient = apolloClient;
|
|
318
|
-
};
|
|
319
|
-
|
|
320
|
-
var getCachedApolloClient = function getCachedApolloClient() {
|
|
321
|
-
return cachedApolloClient;
|
|
322
|
-
};
|
|
323
|
-
|
|
324
|
-
var FetchUserId = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchUserId" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", alias: { kind: "Name", value: "user" }, name: { kind: "Name", value: "me" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }] } }] } }], loc: { start: 0, end: 46, source: { body: "query FetchUserId {\n user: me {\n id\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
|
|
325
|
-
function selectUserId() {
|
|
326
|
-
var apolloClient = getCachedApolloClient();
|
|
327
|
-
|
|
328
|
-
if (!apolloClient) {
|
|
329
|
-
return null;
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
try {
|
|
333
|
-
var queryResult = apolloClient.readQuery({
|
|
334
|
-
query: FetchUserId
|
|
335
|
-
});
|
|
336
|
-
|
|
337
|
-
if (queryResult && queryResult.user) {
|
|
338
|
-
return queryResult.user.id;
|
|
339
|
-
}
|
|
340
|
-
} catch (e) {
|
|
341
|
-
return null;
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
return null;
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
var VALID_ID_PART_FORMAT = /^[\w-/]+$/;
|
|
348
|
-
|
|
349
|
-
var skipMalformedPart = function skipMalformedPart(part) {
|
|
350
|
-
return part && VALID_ID_PART_FORMAT.test(part);
|
|
351
|
-
};
|
|
352
|
-
|
|
353
|
-
function getCorrelationId() {
|
|
354
|
-
var _context;
|
|
355
|
-
|
|
356
|
-
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
357
|
-
userId = _ref.userId;
|
|
358
|
-
|
|
359
|
-
return _filterInstanceProperty__default["default"](_context = ['mc', selectProjectKeyFromUrl(), userId, uuid.v4()]).call(_context, skipMalformedPart).join('/');
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
// NOTE: Copied from `@application-shell-connectors`.
|
|
363
|
-
// TODO: Remove this version once the change in the connectors has been released.
|
|
364
|
-
var mcHostnameRegex = /^mc(-(\d){4,})?\.(.*)$/;
|
|
365
|
-
var mcPreviewHostnameRegex = /^.*\.mc-preview\.(.*)$/;
|
|
366
|
-
|
|
367
|
-
var getMcOriginTld = function getMcOriginTld(host) {
|
|
368
|
-
if (host.match(mcPreviewHostnameRegex)) {
|
|
369
|
-
return host.replace(mcPreviewHostnameRegex, '$1');
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
return host.replace(mcHostnameRegex, '$3');
|
|
373
|
-
};
|
|
374
|
-
|
|
375
|
-
var getMcApiUrlFromOrigin = function getMcApiUrlFromOrigin(origin) {
|
|
376
|
-
var _context;
|
|
377
|
-
|
|
378
|
-
var url = new _URL__default["default"](origin);
|
|
379
|
-
var originTld = getMcOriginTld(url.host);
|
|
380
|
-
return _concatInstanceProperty__default["default"](_context = "".concat(url.protocol, "//mc-api.")).call(_context, originTld);
|
|
381
|
-
};
|
|
382
|
-
|
|
383
|
-
var parseAsBoolean = function parseAsBoolean(value) {
|
|
384
|
-
return value === true || value === 'true';
|
|
385
|
-
};
|
|
386
|
-
|
|
387
|
-
function getMcApiUrl() {
|
|
388
|
-
var environment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.app;
|
|
389
|
-
var origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.origin;
|
|
390
|
-
var isServedByProxy = parseAsBoolean(environment.servedByProxy);
|
|
391
|
-
/**
|
|
392
|
-
* Prefer using the origin URL for the MC API based on the origin value
|
|
393
|
-
* of the browser's `window.location`.
|
|
394
|
-
* This ensures that the application always uses the correct URL associated
|
|
395
|
-
* with that environment, instead of relying on the config value.
|
|
396
|
-
*/
|
|
397
|
-
|
|
398
|
-
if (isServedByProxy) {
|
|
399
|
-
return getMcApiUrlFromOrigin(origin);
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
return environment.mcApiUrl;
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
var getSessionToken = function getSessionToken() {
|
|
406
|
-
return window.sessionStorage.getItem(constants$1.STORAGE_KEYS.SESSION_TOKEN);
|
|
407
|
-
};
|
|
408
|
-
|
|
409
|
-
var setActiveSession = function setActiveSession(sessionToken) {
|
|
410
|
-
if (!sessionToken) return;
|
|
411
|
-
window.sessionStorage.setItem(constants$1.STORAGE_KEYS.SESSION_TOKEN, sessionToken !== null && sessionToken !== void 0 ? sessionToken : '');
|
|
412
|
-
window.localStorage.setItem(constants$1.STORAGE_KEYS.LOGIN_STRATEGY, constants$1.LOGIN_STRATEGY_OIDC); // Remove flag for original workflow
|
|
413
|
-
|
|
414
|
-
window.localStorage.removeItem(constants$1.STORAGE_KEYS.IS_AUTHENTICATED);
|
|
415
|
-
};
|
|
416
|
-
|
|
417
|
-
var clearSession = function clearSession() {
|
|
418
|
-
window.sessionStorage.removeItem(constants$1.STORAGE_KEYS.SESSION_TOKEN);
|
|
419
|
-
window.sessionStorage.removeItem(constants$1.STORAGE_KEYS.SESSION_SCOPE);
|
|
420
|
-
window.sessionStorage.removeItem(constants$1.STORAGE_KEYS.IS_AUTHENTICATED);
|
|
421
|
-
};
|
|
422
|
-
|
|
423
|
-
var getActiveProjectKey = function getActiveProjectKey() {
|
|
424
|
-
return window.localStorage.getItem(constants$1.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
|
|
425
|
-
};
|
|
426
|
-
|
|
427
|
-
var removeActiveProjectKey = function removeActiveProjectKey() {
|
|
428
|
-
window.localStorage.removeItem(constants$1.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
|
|
429
|
-
};
|
|
430
|
-
|
|
431
|
-
var setActiveProjectKey = function setActiveProjectKey(projectKey) {
|
|
432
|
-
window.localStorage.setItem(constants$1.STORAGE_KEYS.ACTIVE_PROJECT_KEY, projectKey);
|
|
433
|
-
};
|
|
434
|
-
|
|
435
|
-
var getSessionScope = function getSessionScope() {
|
|
436
|
-
return window.sessionStorage.getItem(constants$1.STORAGE_KEYS.SESSION_SCOPE);
|
|
437
|
-
};
|
|
438
|
-
|
|
439
|
-
var setSessionScope = function setSessionScope(scope) {
|
|
440
|
-
window.sessionStorage.setItem(constants$1.STORAGE_KEYS.SESSION_SCOPE, scope);
|
|
441
|
-
};
|
|
442
|
-
|
|
443
|
-
var getSessionState = function getSessionState(stateId) {
|
|
444
|
-
var _context;
|
|
445
|
-
|
|
446
|
-
var sessionStateKey = _concatInstanceProperty__default["default"](_context = "".concat(constants$1.STORAGE_KEYS.NONCE, "_")).call(_context, stateId);
|
|
447
|
-
|
|
448
|
-
var unparsedSessionState = window.sessionStorage.getItem(sessionStateKey);
|
|
449
|
-
|
|
450
|
-
if (unparsedSessionState) {
|
|
451
|
-
try {
|
|
452
|
-
var parsedSessionState = JSON.parse(unparsedSessionState);
|
|
453
|
-
window.sessionStorage.removeItem(sessionStateKey);
|
|
454
|
-
return parsedSessionState;
|
|
455
|
-
} catch (error) {
|
|
456
|
-
window.sessionStorage.removeItem(sessionStateKey);
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
return null;
|
|
461
|
-
};
|
|
462
|
-
|
|
463
|
-
var setSessionState = function setSessionState(stateId, state) {
|
|
464
|
-
var _context3;
|
|
465
|
-
|
|
466
|
-
var sessionStateKey = _concatInstanceProperty__default["default"](_context3 = "".concat(constants$1.STORAGE_KEYS.NONCE, "_")).call(_context3, stateId);
|
|
467
|
-
|
|
468
|
-
window.sessionStorage.setItem(sessionStateKey, _JSON$stringify__default["default"](state));
|
|
469
|
-
};
|
|
470
|
-
|
|
471
|
-
function ownKeys$5(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
472
|
-
|
|
473
|
-
function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context3 = ownKeys$5(Object(source), !0)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context4 = ownKeys$5(Object(source))).call(_context4, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
|
|
474
|
-
|
|
475
|
-
var mergeObjectValues = function mergeObjectValues(object) {
|
|
476
|
-
var _context;
|
|
477
|
-
|
|
478
|
-
return _reduceInstanceProperty__default["default"](_context = _Object$entries__default["default"](object)).call(_context, function (acc, _ref) {
|
|
479
|
-
var _ref2 = _slicedToArray(_ref, 2),
|
|
480
|
-
value = _ref2[1];
|
|
481
|
-
|
|
482
|
-
return _objectSpread$5(_objectSpread$5({}, acc), value);
|
|
483
|
-
}, {});
|
|
484
|
-
};
|
|
485
|
-
|
|
486
|
-
var patchedGetCorrelationId = function patchedGetCorrelationId() {
|
|
487
|
-
return getCorrelationId({
|
|
488
|
-
userId: selectUserId()
|
|
489
|
-
});
|
|
490
|
-
};
|
|
491
|
-
|
|
492
|
-
var getAdditionalHeaders = function getAdditionalHeaders() {
|
|
493
|
-
var _omitEmpty;
|
|
494
|
-
|
|
495
|
-
var sessionToken = getSessionToken();
|
|
496
|
-
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));
|
|
497
|
-
};
|
|
498
|
-
|
|
499
|
-
var sdkMiddleware = sdk.createMiddleware({
|
|
500
|
-
getCorrelationId: patchedGetCorrelationId,
|
|
501
|
-
getProjectKey: selectProjectKeyFromUrl,
|
|
502
|
-
getAdditionalHeaders: getAdditionalHeaders
|
|
503
|
-
});
|
|
504
|
-
/**
|
|
505
|
-
* @deprecated: This function should not be used directly anymore.
|
|
506
|
-
*/
|
|
507
|
-
|
|
508
|
-
var applyDefaultMiddlewares = function applyDefaultMiddlewares() {
|
|
509
|
-
for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
510
|
-
middlewares[_key] = arguments[_key];
|
|
511
|
-
}
|
|
512
|
-
|
|
513
|
-
return toolkit.applyMiddleware.apply(void 0, _concatInstanceProperty__default["default"](middlewares).call(middlewares, [thunk__default["default"], loggerMiddleware]));
|
|
514
|
-
};
|
|
515
|
-
|
|
516
|
-
var createInternalReducer = function createInternalReducer() {
|
|
517
|
-
var injectedReducers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
518
|
-
var preloadedState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
519
|
-
// not providing preloadedStateReducers to combineReducers will cause an error
|
|
520
|
-
// when preloadedState contains keys other than requestsInFlight and
|
|
521
|
-
// notifications:
|
|
522
|
-
// Unexpected key "new Key" found in preloadedState argument passed to createStore. Expected to find one of the known reducer keys instead: "requestsInFlight", "notifications". Unexpected keys will be ignored.
|
|
523
|
-
// https://redux.js.org/api/createstore#createstorereducer-preloadedstate-enhancer
|
|
524
|
-
var preloadedStateReducers = mapValues__default["default"](preloadedState, function (value) {
|
|
525
|
-
return function () {
|
|
526
|
-
return value;
|
|
527
|
-
};
|
|
528
|
-
}); // NOTE: since we don't know in advance which reducers will be injected,
|
|
529
|
-
// we pass an `unknown` type to express this uncertainty and make the compiler happy.
|
|
530
|
-
|
|
531
|
-
return toolkit.combineReducers(_objectSpread$5(_objectSpread$5({
|
|
532
|
-
requestsInFlight: requestsInFlightReducer,
|
|
533
|
-
notifications: notifications.reducer
|
|
534
|
-
}, injectedReducers), preloadedStateReducers));
|
|
535
|
-
}; // We use a factory as it's more practicable for tests
|
|
536
|
-
// The application can import the configured store (the default export)
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
var createReduxStore = function createReduxStore() {
|
|
540
|
-
var preloadedState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
541
|
-
var additionalMiddlewares = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
542
|
-
var store = toolkit.configureStore({
|
|
543
|
-
preloadedState: preloadedState,
|
|
544
|
-
reducer: createInternalReducer(undefined, preloadedState),
|
|
545
|
-
devTools: {
|
|
546
|
-
actionsDenylist: [constants.SHOW_LOADING, constants.HIDE_LOADING]
|
|
547
|
-
},
|
|
548
|
-
middleware: function middleware(getDefaultMiddleware) {
|
|
549
|
-
var _context2;
|
|
550
|
-
|
|
551
|
-
return _concatInstanceProperty__default["default"](_context2 = []).call(_context2, _toConsumableArray(additionalMiddlewares), [hideNotificationsMiddleware, notifications.middleware, sdkMiddleware], _toConsumableArray(getDefaultMiddleware({
|
|
552
|
-
// https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data
|
|
553
|
-
serializableCheck: false,
|
|
554
|
-
// This default check is logging warnings to console for some MC FE tests, probably
|
|
555
|
-
// due to lower resources when running tests on CI.
|
|
556
|
-
// We don't consider this check to be very valuable in this context so we decided
|
|
557
|
-
// to turn it off.
|
|
558
|
-
// https://redux-toolkit.js.org/api/immutabilityMiddleware
|
|
559
|
-
immutableCheck: false
|
|
560
|
-
})), [loggerMiddleware]);
|
|
561
|
-
}
|
|
562
|
-
});
|
|
563
|
-
var enhancedStore = store; // Enable reducers to be injected on runtime (see `<InjectReducer>`)
|
|
564
|
-
|
|
565
|
-
enhancedStore.injectedReducers = {};
|
|
566
|
-
|
|
567
|
-
enhancedStore.injectReducers = function (_ref3) {
|
|
568
|
-
var id = _ref3.id,
|
|
569
|
-
reducers = _ref3.reducers;
|
|
570
|
-
var hasReducerBeenInjected = _Reflect$has__default["default"](enhancedStore.injectedReducers, id) && enhancedStore.injectedReducers[id] === reducers;
|
|
571
|
-
|
|
572
|
-
if (!hasReducerBeenInjected) {
|
|
573
|
-
// Keep track of the reducer by id, so we can check if it's been injected aleady
|
|
574
|
-
enhancedStore.injectedReducers[id] = reducers; // ...when we create the new reducer though, we spread the reducers from each namespace
|
|
575
|
-
|
|
576
|
-
enhancedStore.replaceReducer(createInternalReducer(mergeObjectValues(enhancedStore.injectedReducers)));
|
|
577
|
-
}
|
|
578
|
-
};
|
|
579
|
-
|
|
580
|
-
enhancedStore.removeReducers = function (_ref4) {
|
|
581
|
-
var id = _ref4.id;
|
|
582
|
-
delete enhancedStore.injectedReducers[id];
|
|
583
|
-
enhancedStore.replaceReducer(createInternalReducer(mergeObjectValues(enhancedStore.injectedReducers)));
|
|
584
|
-
};
|
|
585
|
-
|
|
586
|
-
return enhancedStore;
|
|
587
|
-
};
|
|
588
|
-
var internalReduxStore = createReduxStore();
|
|
589
|
-
|
|
590
|
-
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; }
|
|
591
|
-
|
|
592
|
-
function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$4(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$4(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
|
|
593
|
-
|
|
594
|
-
var getSkipTokenRetry = function getSkipTokenRetry(context) {
|
|
595
|
-
var skipTokenRetry = Boolean(context.skipTokenRetry);
|
|
596
|
-
return skipTokenRetry;
|
|
597
|
-
};
|
|
598
|
-
|
|
599
|
-
var forwardTokenRetryHeader = function forwardTokenRetryHeader(headers) {
|
|
600
|
-
return _objectSpread$4(_objectSpread$4({}, headers), {}, _defineProperty({}, constants$1.SUPPORTED_HEADERS.X_TOKEN_RETRY, 'true'));
|
|
601
|
-
}; // This link retries requests to the CTP API that have been rejected
|
|
602
|
-
// because of an invalid/expired oauth token.
|
|
603
|
-
// To do so, we resend the request with the header "X-Force-Token: true"
|
|
604
|
-
// so that the MC BE can issue a new token.
|
|
605
|
-
// NOTE: the retry is not meant to work for the MC access token.
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
var getDoesGraphQLTargetSupportTokenRetry = function getDoesGraphQLTargetSupportTokenRetry(context) {
|
|
609
|
-
var _context$headers, _context$headers2, _context;
|
|
610
|
-
|
|
611
|
-
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()]);
|
|
612
|
-
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));
|
|
613
|
-
};
|
|
614
|
-
|
|
615
|
-
var isHttpError = function isHttpError(error) {
|
|
616
|
-
return error.statusCode !== undefined || error.statusCode !== undefined;
|
|
617
|
-
};
|
|
618
|
-
|
|
619
|
-
var isGraphQLError = function isGraphQLError(error) {
|
|
620
|
-
return _Array$isArray__default["default"](error) && _someInstanceProperty__default["default"](error).call(error, function (err) {
|
|
621
|
-
return err.message !== undefined || err.extensions !== undefined;
|
|
622
|
-
});
|
|
623
|
-
};
|
|
624
|
-
|
|
625
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol__default["default"] !== "undefined" && _getIteratorMethod__default["default"](o) || o["@@iterator"]; if (!it) { if (_Array$isArray__default["default"](o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
626
|
-
|
|
627
|
-
function _unsupportedIterableToArray(o, minLen) { var _context; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty__default["default"](_context = Object.prototype.toString.call(o)).call(_context, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from__default["default"](o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
628
|
-
|
|
629
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
630
|
-
// user to the login page resetting the store and showing the proper message
|
|
631
|
-
|
|
632
|
-
var errorLink = error.onError(function (_ref) {
|
|
633
|
-
var graphQLErrors = _ref.graphQLErrors,
|
|
634
|
-
networkError = _ref.networkError,
|
|
635
|
-
operation = _ref.operation,
|
|
636
|
-
forward = _ref.forward;
|
|
637
|
-
|
|
638
|
-
if (networkError && isHttpError(networkError) && networkError.statusCode === constants.STATUS_CODES.UNAUTHORIZED) {
|
|
639
|
-
history__default["default"].push("/logout?reason=".concat(constants.LOGOUT_REASONS.UNAUTHORIZED));
|
|
640
|
-
return;
|
|
641
|
-
} // In case of graphql errors, we want to retry unauthenticated requests by
|
|
642
|
-
// forcing our API to fetch a new token, using the `X-Force-Token` header.
|
|
643
|
-
// https://www.apollographql.com/docs/link/links/error/#retrying-failed-requests
|
|
644
|
-
// We need to do this as the `token-retry-link` only works for network errors.
|
|
645
|
-
// https://www.apollographql.com/docs/link/links/retry/
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
if (graphQLErrors && isGraphQLError(graphQLErrors)) {
|
|
649
|
-
var context = operation.getContext();
|
|
650
|
-
|
|
651
|
-
var _iterator = _createForOfIteratorHelper(graphQLErrors),
|
|
652
|
-
_step;
|
|
653
|
-
|
|
654
|
-
try {
|
|
655
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
656
|
-
var _err$extensions;
|
|
657
|
-
|
|
658
|
-
var err = _step.value;
|
|
659
|
-
var isNonAuthenticatedViaExtensionCode = (err === null || err === void 0 ? void 0 : (_err$extensions = err.extensions) === null || _err$extensions === void 0 ? void 0 : _err$extensions.code) === 'UNAUTHENTICATED';
|
|
660
|
-
/**
|
|
661
|
-
* NOTE:
|
|
662
|
-
* Not not all GraphQL APIs expose an `extensions` field in
|
|
663
|
-
* each error. For those we have to use the `message`
|
|
664
|
-
* property until they introduced support for the `extensions`
|
|
665
|
-
* field.
|
|
666
|
-
*/
|
|
667
|
-
|
|
668
|
-
var isNonAuthenticatedViaCode = (err === null || err === void 0 ? void 0 : err.message) === 'invalid_token';
|
|
669
|
-
|
|
670
|
-
if ((isNonAuthenticatedViaExtensionCode || isNonAuthenticatedViaCode) && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
671
|
-
operation.setContext(function (_ref2) {
|
|
672
|
-
var headers = _ref2.headers;
|
|
673
|
-
return {
|
|
674
|
-
headers: forwardTokenRetryHeader(headers)
|
|
675
|
-
};
|
|
676
|
-
}); // retry the request, returning the new observable
|
|
677
|
-
|
|
678
|
-
return forward(operation);
|
|
679
|
-
}
|
|
680
|
-
}
|
|
681
|
-
} catch (err) {
|
|
682
|
-
_iterator.e(err);
|
|
683
|
-
} finally {
|
|
684
|
-
_iterator.f();
|
|
685
|
-
}
|
|
686
|
-
}
|
|
687
|
-
|
|
688
|
-
return;
|
|
689
|
-
});
|
|
690
|
-
|
|
691
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = _Reflect$construct__default["default"](Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
692
|
-
|
|
693
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct__default["default"]) return false; if (_Reflect$construct__default["default"].sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
694
|
-
|
|
695
|
-
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; }
|
|
696
|
-
|
|
697
|
-
function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var _context5, _context6; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context5 = ownKeys$3(Object(source), !0)).call(_context5, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context6 = ownKeys$3(Object(source))).call(_context6, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
|
|
698
|
-
var defaultUserAgent = createHttpUserAgent__default["default"]({
|
|
699
|
-
name: 'unknown-http-client',
|
|
700
|
-
libraryName: window.app.applicationName
|
|
701
|
-
});
|
|
702
|
-
var defaultForwardToVersion = 'v2';
|
|
703
|
-
var defaultForwardToAudiencePolicy = 'forward-url-full-path';
|
|
704
|
-
|
|
705
|
-
function buildApiUrl(endpoint) {
|
|
706
|
-
var _context;
|
|
707
|
-
|
|
708
|
-
var apiUrl = getMcApiUrl().replace(/\/$/, '');
|
|
709
|
-
return _concatInstanceProperty__default["default"](_context = "".concat(apiUrl)).call(_context, endpoint);
|
|
710
|
-
}
|
|
711
|
-
|
|
712
|
-
var getAppliedForwardToHeaders = function getAppliedForwardToHeaders(forwardToConfig) {
|
|
713
|
-
var _context2, _forwardToConfig$head, _forwardToConfig$vers, _forwardToConfig$audi, _objectSpread3;
|
|
714
|
-
|
|
715
|
-
if (!forwardToConfig) {
|
|
716
|
-
return {};
|
|
717
|
-
}
|
|
718
|
-
|
|
719
|
-
if (!forwardToConfig.uri) {
|
|
720
|
-
throw new Error("Missing required \"uri\" option.");
|
|
721
|
-
}
|
|
722
|
-
|
|
723
|
-
var exchangeTokenClaims = [];
|
|
724
|
-
|
|
725
|
-
if (forwardToConfig.includeUserPermissions) {
|
|
726
|
-
exchangeTokenClaims.push('permissions');
|
|
727
|
-
}
|
|
728
|
-
|
|
729
|
-
return _objectSpread$3(_objectSpread$3({}, _reduceInstanceProperty__default["default"](_context2 = _Object$entries__default["default"]((_forwardToConfig$head = forwardToConfig.headers) !== null && _forwardToConfig$head !== void 0 ? _forwardToConfig$head : {})).call(_context2, function (customForwardHeaders, _ref) {
|
|
730
|
-
var _ref2 = _slicedToArray(_ref, 2),
|
|
731
|
-
headerName = _ref2[0],
|
|
732
|
-
headerValue = _ref2[1];
|
|
733
|
-
|
|
734
|
-
return _objectSpread$3(_objectSpread$3({}, customForwardHeaders), {}, _defineProperty({}, "x-forward-header-".concat(headerName), headerValue));
|
|
735
|
-
}, {})), {}, (_objectSpread3 = {}, _defineProperty(_objectSpread3, constants$1.SUPPORTED_HEADERS.ACCEPT_VERSION, (_forwardToConfig$vers = forwardToConfig.version) !== null && _forwardToConfig$vers !== void 0 ? _forwardToConfig$vers : defaultForwardToVersion), _defineProperty(_objectSpread3, constants$1.SUPPORTED_HEADERS.X_FORWARD_TO, forwardToConfig.uri), _defineProperty(_objectSpread3, constants$1.SUPPORTED_HEADERS.X_FORWARD_TO_AUDIENCE_POLICY, (_forwardToConfig$audi = forwardToConfig.audiencePolicy) !== null && _forwardToConfig$audi !== void 0 ? _forwardToConfig$audi : defaultForwardToAudiencePolicy), _defineProperty(_objectSpread3, constants$1.SUPPORTED_HEADERS.X_FORWARD_TO_CLAIMS, exchangeTokenClaims.join(' ')), _objectSpread3));
|
|
736
|
-
};
|
|
737
|
-
|
|
738
|
-
function createHttpClientOptions() {
|
|
739
|
-
var _config$projectKey, _objectSpread4;
|
|
740
|
-
|
|
741
|
-
var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
742
|
-
var sessionToken = getSessionToken();
|
|
743
|
-
var projectKey = (_config$projectKey = config.projectKey) !== null && _config$projectKey !== void 0 ? _config$projectKey : selectProjectKeyFromUrl();
|
|
744
|
-
var userId = selectUserId();
|
|
745
|
-
var userAgent = (config === null || config === void 0 ? void 0 : config.userAgent) || defaultUserAgent;
|
|
746
|
-
return {
|
|
747
|
-
credentials: 'include',
|
|
748
|
-
headers: omitEmpty__default["default"](_objectSpread$3(_objectSpread$3({}, config.headers), {}, (_objectSpread4 = {}, _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.ACCEPT, 'application/json'), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.AUTHORIZATION, sessionToken ? "Bearer ".concat(sessionToken) : undefined), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_APPLICATION_ID, window.app.applicationId), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_CORRELATION_ID, getCorrelationId({
|
|
749
|
-
userId: userId
|
|
750
|
-
})), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_PROJECT_KEY, projectKey), _defineProperty(_objectSpread4, constants$1.SUPPORTED_HEADERS.X_USER_AGENT, userAgent), _objectSpread4), getAppliedForwardToHeaders(config.forwardToConfig)))
|
|
751
|
-
};
|
|
752
|
-
}
|
|
753
|
-
|
|
754
|
-
var RenewTokenError = /*#__PURE__*/function (_Error) {
|
|
755
|
-
_inherits(RenewTokenError, _Error);
|
|
756
|
-
|
|
757
|
-
var _super = _createSuper(RenewTokenError);
|
|
758
|
-
|
|
759
|
-
function RenewTokenError(message) {
|
|
760
|
-
var _this;
|
|
761
|
-
|
|
762
|
-
_classCallCheck(this, RenewTokenError);
|
|
763
|
-
|
|
764
|
-
_this = _super.call(this, message);
|
|
765
|
-
|
|
766
|
-
_Object$defineProperty__default["default"](_assertThisInitialized(_this), 'name', {
|
|
767
|
-
value: 'RenewTokenError'
|
|
768
|
-
});
|
|
769
|
-
|
|
770
|
-
return _this;
|
|
771
|
-
}
|
|
772
|
-
|
|
773
|
-
return _createClass(RenewTokenError);
|
|
774
|
-
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
775
|
-
|
|
776
|
-
function executeHttpClientRequest(_x) {
|
|
777
|
-
return _executeHttpClientRequest.apply(this, arguments);
|
|
778
|
-
}
|
|
779
|
-
|
|
780
|
-
function _executeHttpClientRequest() {
|
|
781
|
-
_executeHttpClientRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(fetcher) {
|
|
782
|
-
var config,
|
|
783
|
-
sendRequest,
|
|
784
|
-
_sendRequest,
|
|
785
|
-
_args2 = arguments;
|
|
786
|
-
|
|
787
|
-
return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context4) {
|
|
788
|
-
while (1) {
|
|
789
|
-
switch (_context4.prev = _context4.next) {
|
|
790
|
-
case 0:
|
|
791
|
-
_sendRequest = function _sendRequest3() {
|
|
792
|
-
_sendRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
|
|
793
|
-
var _ref3,
|
|
794
|
-
shouldRenewToken,
|
|
795
|
-
requestOptions,
|
|
796
|
-
response,
|
|
797
|
-
refreshedSessionToken,
|
|
798
|
-
_args = arguments;
|
|
799
|
-
|
|
800
|
-
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context3) {
|
|
801
|
-
while (1) {
|
|
802
|
-
switch (_context3.prev = _context3.next) {
|
|
803
|
-
case 0:
|
|
804
|
-
_ref3 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, shouldRenewToken = _ref3.shouldRenewToken;
|
|
805
|
-
requestOptions = createHttpClientOptions(config);
|
|
806
|
-
_context3.next = 4;
|
|
807
|
-
return fetcher(_objectSpread$3(_objectSpread$3({}, requestOptions), {}, {
|
|
808
|
-
headers: omitEmpty__default["default"](_objectSpread$3(_objectSpread$3({}, requestOptions.headers), {}, _defineProperty({}, constants$1.SUPPORTED_HEADERS.X_TOKEN_RETRY, shouldRenewToken)))
|
|
809
|
-
}));
|
|
810
|
-
|
|
811
|
-
case 4:
|
|
812
|
-
response = _context3.sent;
|
|
813
|
-
|
|
814
|
-
if (!(response.statusCode === constants.STATUS_CODES.UNAUTHORIZED)) {
|
|
815
|
-
_context3.next = 7;
|
|
816
|
-
break;
|
|
817
|
-
}
|
|
818
|
-
|
|
819
|
-
throw new RenewTokenError("Unauthorized response, attempting retry.");
|
|
820
|
-
|
|
821
|
-
case 7:
|
|
822
|
-
// In case a new session token is returned from the server, save it.
|
|
823
|
-
refreshedSessionToken = response.getHeader('x-refreshed-session-token');
|
|
824
|
-
|
|
825
|
-
if (refreshedSessionToken) {
|
|
826
|
-
setActiveSession(refreshedSessionToken);
|
|
827
|
-
}
|
|
828
|
-
|
|
829
|
-
return _context3.abrupt("return", response.data);
|
|
830
|
-
|
|
831
|
-
case 10:
|
|
832
|
-
case "end":
|
|
833
|
-
return _context3.stop();
|
|
834
|
-
}
|
|
835
|
-
}
|
|
836
|
-
}, _callee);
|
|
837
|
-
}));
|
|
838
|
-
return _sendRequest.apply(this, arguments);
|
|
839
|
-
};
|
|
840
|
-
|
|
841
|
-
sendRequest = function _sendRequest2() {
|
|
842
|
-
return _sendRequest.apply(this, arguments);
|
|
843
|
-
};
|
|
844
|
-
|
|
845
|
-
config = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : {};
|
|
846
|
-
return _context4.abrupt("return", sendRequest().catch(function (error) {
|
|
847
|
-
if (error instanceof RenewTokenError) {
|
|
848
|
-
// Retry the request and ask to renew the token.
|
|
849
|
-
return sendRequest({
|
|
850
|
-
shouldRenewToken: true
|
|
851
|
-
});
|
|
852
|
-
}
|
|
853
|
-
|
|
854
|
-
throw error;
|
|
855
|
-
}));
|
|
856
|
-
|
|
857
|
-
case 4:
|
|
858
|
-
case "end":
|
|
859
|
-
return _context4.stop();
|
|
860
|
-
}
|
|
861
|
-
}
|
|
862
|
-
}, _callee2);
|
|
863
|
-
}));
|
|
864
|
-
return _executeHttpClientRequest.apply(this, arguments);
|
|
865
|
-
}
|
|
866
|
-
|
|
867
|
-
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; }
|
|
868
|
-
|
|
869
|
-
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var _context4, _context5; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context4 = ownKeys$2(Object(source), !0)).call(_context4, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context5 = ownKeys$2(Object(source))).call(_context5, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
|
|
870
|
-
var userAgent = createHttpUserAgent__default["default"]({
|
|
871
|
-
name: 'apollo-client',
|
|
872
|
-
// version: apolloVersion,
|
|
873
|
-
libraryName: [window.app.applicationName, 'application-shell'].join('/'),
|
|
874
|
-
libraryVersion: version,
|
|
875
|
-
contactUrl: 'https://git.io/fjuyC',
|
|
876
|
-
// points to the appkit repo issues
|
|
877
|
-
contactEmail: 'support@commercetools.com'
|
|
878
|
-
});
|
|
879
|
-
|
|
880
|
-
var isKnownGraphQlTarget = function isKnownGraphQlTarget(target) {
|
|
881
|
-
var _context;
|
|
882
|
-
|
|
883
|
-
return target ? _includesInstanceProperty__default["default"](_context = _Object$values__default["default"](constants.GRAPHQL_TARGETS)).call(_context, target) : false;
|
|
884
|
-
};
|
|
885
|
-
|
|
886
|
-
var extractSessionTokenFromResponse = function extractSessionTokenFromResponse(context) {
|
|
887
|
-
var _context$response, _context$response$hea, _context$restResponse;
|
|
888
|
-
|
|
889
|
-
var refreshedSessionToken = (_context$response = context.response) === null || _context$response === void 0 ? void 0 : (_context$response$hea = _context$response.headers) === null || _context$response$hea === void 0 ? void 0 : _context$response$hea.get('x-refreshed-session-token');
|
|
890
|
-
|
|
891
|
-
if (refreshedSessionToken) {
|
|
892
|
-
return refreshedSessionToken !== null && refreshedSessionToken !== void 0 ? refreshedSessionToken : null;
|
|
893
|
-
}
|
|
894
|
-
|
|
895
|
-
var restResponseWithRefreshTokenHeader = (_context$restResponse = context.restResponses) === null || _context$restResponse === void 0 ? void 0 : _findInstanceProperty__default["default"](_context$restResponse).call(_context$restResponse, function (response) {
|
|
896
|
-
var _response$headers;
|
|
897
|
-
|
|
898
|
-
return (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.has('x-refreshed-session-token');
|
|
899
|
-
});
|
|
900
|
-
|
|
901
|
-
if (restResponseWithRefreshTokenHeader) {
|
|
902
|
-
var _restResponseWithRefr;
|
|
903
|
-
|
|
904
|
-
return (_restResponseWithRefr = restResponseWithRefreshTokenHeader.headers.get('x-refreshed-session-token')) !== null && _restResponseWithRefr !== void 0 ? _restResponseWithRefr : null;
|
|
905
|
-
}
|
|
906
|
-
|
|
907
|
-
return null;
|
|
908
|
-
};
|
|
909
|
-
/* eslint-disable import/prefer-default-export */
|
|
910
|
-
// Use a middleware to update the request headers with the correct params.
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
var headerLink = new client.ApolloLink(function (operation, forward) {
|
|
914
|
-
var _context2, _objectSpread2, _context3;
|
|
915
|
-
|
|
916
|
-
var apolloContext = operation.getContext();
|
|
917
|
-
var variables = operation.variables;
|
|
918
|
-
var graphQlTarget = apolloContext.target || variables.target;
|
|
919
|
-
if (!apolloContext.skipGraphQlTargetCheck && !isKnownGraphQlTarget(graphQlTarget)) throw new Error(_concatInstanceProperty__default["default"](_context2 = "GraphQL target \"".concat(graphQlTarget, "\" is missing (or is not supported) in operation \"")).call(_context2, operation.operationName, "\""));
|
|
920
|
-
/**
|
|
921
|
-
* NOTE:
|
|
922
|
-
* The project key is read from the url in a project related application context.
|
|
923
|
-
* This holds for most applications like `application-categories`, `application-discounts` etc.
|
|
924
|
-
* However, the `application-account` does not run with the project key being part of the url.
|
|
925
|
-
* As a result we allow passing the project key as a variable on the operation allowing
|
|
926
|
-
* it to be the fallback.
|
|
927
|
-
*/
|
|
928
|
-
|
|
929
|
-
var projectKey = apolloContext.projectKey || variables.projectKey || selectProjectKeyFromUrl();
|
|
930
|
-
var teamId = apolloContext.teamId || variables.teamId || selectTeamIdFromLocalStorage();
|
|
931
|
-
var featureFlag = apolloContext.featureFlag || variables.featureFlag;
|
|
932
|
-
operation.setContext(createHttpClientOptions({
|
|
933
|
-
userAgent: userAgent,
|
|
934
|
-
headers: omitEmpty__default["default"](_objectSpread$2(_objectSpread$2({}, apolloContext.headers), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, constants$1.SUPPORTED_HEADERS.X_GRAPHQL_TARGET, graphQlTarget), _defineProperty(_objectSpread2, constants$1.SUPPORTED_HEADERS.X_GRAPHQL_OPERATION_NAME, operation.operationName), _defineProperty(_objectSpread2, constants$1.SUPPORTED_HEADERS.X_TEAM_ID, teamId), _defineProperty(_objectSpread2, constants$1.SUPPORTED_HEADERS.X_FEATURE_FLAG, featureFlag), _objectSpread2))),
|
|
935
|
-
forwardToConfig: apolloContext.forwardToConfig,
|
|
936
|
-
projectKey: projectKey
|
|
937
|
-
}));
|
|
938
|
-
return _mapInstanceProperty__default["default"](_context3 = forward(operation)).call(_context3, function (response) {
|
|
939
|
-
var context = operation.getContext();
|
|
940
|
-
var refreshedSessionToken = extractSessionTokenFromResponse(context);
|
|
941
|
-
|
|
942
|
-
if (refreshedSessionToken) {
|
|
943
|
-
setActiveSession(refreshedSessionToken);
|
|
944
|
-
}
|
|
945
|
-
|
|
946
|
-
return response;
|
|
947
|
-
});
|
|
948
|
-
});
|
|
949
|
-
|
|
950
|
-
var tokenRetryLink = new retry.RetryLink({
|
|
951
|
-
attempts: function attempts(count, operation, error) {
|
|
952
|
-
var context = operation.getContext();
|
|
953
|
-
|
|
954
|
-
if ((error === null || error === void 0 ? void 0 : error.statusCode) === constants.STATUS_CODES.UNAUTHORIZED && count === 1 && getDoesGraphQLTargetSupportTokenRetry(context) && !getSkipTokenRetry(context)) {
|
|
955
|
-
operation.setContext(function (_ref) {
|
|
956
|
-
var headers = _ref.headers;
|
|
957
|
-
return {
|
|
958
|
-
headers: forwardTokenRetryHeader(headers)
|
|
959
|
-
};
|
|
960
|
-
});
|
|
961
|
-
return true;
|
|
962
|
-
}
|
|
963
|
-
|
|
964
|
-
return false;
|
|
965
|
-
}
|
|
966
|
-
});
|
|
967
|
-
|
|
968
|
-
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; }
|
|
969
|
-
|
|
970
|
-
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; }
|
|
971
|
-
var httpLink = client.createHttpLink({
|
|
972
|
-
uri: "".concat(getMcApiUrl(), "/graphql"),
|
|
973
|
-
fetch: fetch
|
|
974
|
-
});
|
|
975
|
-
|
|
976
|
-
var createApolloLink = function createApolloLink() {
|
|
977
|
-
var _context;
|
|
978
|
-
|
|
979
|
-
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
980
|
-
return (// The order of links is IMPORTANT!
|
|
981
|
-
// In the request-phase they are executed top to bottom.
|
|
982
|
-
// In the response/phase they are executed bottom to top.
|
|
983
|
-
// The `httpLink` is terminating so it must be last, while `tokenRetryLink` and `errorLink`
|
|
984
|
-
// wrap the links the their right.
|
|
985
|
-
client.from(_concatInstanceProperty__default["default"](_context = [headerLink]).call(_context, _toConsumableArray(options.restLink ? [options.restLink] : []), [// Must be before `tokenRetryLink`.
|
|
986
|
-
errorLink], _toConsumableArray(isLoggerEnabled() ? [loggerLink__default["default"]] : []), [// Must be after `errorLink`.
|
|
987
|
-
tokenRetryLink, // Must be last.
|
|
988
|
-
httpLink]))
|
|
989
|
-
);
|
|
990
|
-
}; // This custom merge function allows to merge two arrays of objects.
|
|
991
|
-
// The incoming list is what we need to update to, but we still need
|
|
992
|
-
// to ensure that existing cache elements are not removed but updated.
|
|
993
|
-
// This is usually the case when elements get removed.
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
var mergeArraysObjects = function mergeArraysObjects() {
|
|
997
|
-
var existing = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
998
|
-
var incoming = arguments.length > 1 ? arguments[1] : undefined;
|
|
999
|
-
|
|
1000
|
-
var _ref = arguments.length > 2 ? arguments[2] : undefined,
|
|
1001
|
-
mergeObjects = _ref.mergeObjects;
|
|
1002
|
-
|
|
1003
|
-
return _reduceInstanceProperty__default["default"](incoming).call(incoming, function (mergedElements, elem) {
|
|
1004
|
-
var _context3;
|
|
1005
|
-
|
|
1006
|
-
var existingElem = _findInstanceProperty__default["default"](existing).call(existing, function (el) {
|
|
1007
|
-
return el.__ref === elem.__ref;
|
|
1008
|
-
});
|
|
1009
|
-
|
|
1010
|
-
if (existingElem) {
|
|
1011
|
-
var updatedElem = mergeObjects(existingElem, elem);
|
|
1012
|
-
|
|
1013
|
-
if (updatedElem) {
|
|
1014
|
-
var _context2;
|
|
1015
|
-
|
|
1016
|
-
return _concatInstanceProperty__default["default"](_context2 = []).call(_context2, _toConsumableArray(mergedElements), [updatedElem]);
|
|
1017
|
-
}
|
|
1018
|
-
}
|
|
1019
|
-
|
|
1020
|
-
return _concatInstanceProperty__default["default"](_context3 = []).call(_context3, _toConsumableArray(mergedElements), [elem]);
|
|
1021
|
-
}, []);
|
|
1022
|
-
};
|
|
1023
|
-
|
|
1024
|
-
var createApolloClient = function createApolloClient() {
|
|
1025
|
-
var _options$cache, _customCacheConfig$ty;
|
|
1026
|
-
|
|
1027
|
-
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1028
|
-
var customCacheConfig = (_options$cache = options === null || options === void 0 ? void 0 : options.cache) !== null && _options$cache !== void 0 ? _options$cache : {};
|
|
1029
|
-
return new client.ApolloClient({
|
|
1030
|
-
link: createApolloLink(options),
|
|
1031
|
-
// https://www.apollographql.com/docs/react/caching/cache-configuration/
|
|
1032
|
-
cache: new client.InMemoryCache(_objectSpread$1(_objectSpread$1({}, customCacheConfig), {}, {
|
|
1033
|
-
// https://www.apollographql.com/docs/react/caching/cache-configuration/#generating-unique-identifiers
|
|
1034
|
-
typePolicies: _objectSpread$1({
|
|
1035
|
-
// CTP types with `key` as identifier
|
|
1036
|
-
Project: {
|
|
1037
|
-
keyFields: ['key']
|
|
1038
|
-
},
|
|
1039
|
-
Store: {
|
|
1040
|
-
keyFields: ['key']
|
|
1041
|
-
},
|
|
1042
|
-
// Internal apps menu links representations
|
|
1043
|
-
ApplicationsMenu: {
|
|
1044
|
-
fields: {
|
|
1045
|
-
appBar: {
|
|
1046
|
-
merge: mergeArraysObjects
|
|
1047
|
-
},
|
|
1048
|
-
navBar: {
|
|
1049
|
-
merge: mergeArraysObjects
|
|
1050
|
-
}
|
|
1051
|
-
}
|
|
1052
|
-
}
|
|
1053
|
-
}, (_customCacheConfig$ty = customCacheConfig.typePolicies) !== null && _customCacheConfig$ty !== void 0 ? _customCacheConfig$ty : {})
|
|
1054
|
-
}))
|
|
1055
|
-
});
|
|
1056
|
-
};
|
|
1057
|
-
|
|
1058
|
-
/**
|
|
1059
|
-
* NOTE
|
|
1060
|
-
* This module wraps `replace` and `reload` from the window's location.
|
|
1061
|
-
* This mainly helps in tests as we often expect that a reload or
|
|
1062
|
-
* replace on the location happened.
|
|
1063
|
-
* In previous code we could just overwrite the properties by:
|
|
1064
|
-
* `window.location.replace = jest.fn()`
|
|
1065
|
-
* This will fail in never versions of JSDOM (e.g. v16) as these
|
|
1066
|
-
* properties are not writable anymore. JSDOM follows the browser standards
|
|
1067
|
-
* which also state that these should not be writable.
|
|
1068
|
-
* There are different options to solve this:
|
|
1069
|
-
* 1. Extract those functions as a module an use `jest.mock` to mock them under test
|
|
1070
|
-
* 2. Use `Object.defineProperty` to overwrite the property
|
|
1071
|
-
* - The community opinion is that this is not preferred and does
|
|
1072
|
-
* not work in all cases
|
|
1073
|
-
* 3. Delete the property via `delete window.location` to re-create it after
|
|
1074
|
-
* - This is quite repetiive and noisy in tests and can also remote
|
|
1075
|
-
* other properties from under location
|
|
1076
|
-
* Given option 2. and 3. being quite noisy on tests and against working with
|
|
1077
|
-
* the stndards of the browser we will use 1. Here we only utilise the module
|
|
1078
|
-
* mocking system of Jest and no other trickery.
|
|
1079
|
-
* */
|
|
1080
|
-
var replace = function replace(url) {
|
|
1081
|
-
return window.location.replace(url);
|
|
1082
|
-
};
|
|
1083
|
-
|
|
1084
|
-
var reload = function reload() {
|
|
1085
|
-
return window.location.reload();
|
|
1086
|
-
};
|
|
1087
|
-
|
|
1088
|
-
var location = {
|
|
1089
|
-
replace: replace,
|
|
1090
|
-
reload: reload
|
|
1091
|
-
};
|
|
1092
|
-
|
|
1093
|
-
var useIsServedByProxy = function useIsServedByProxy() {
|
|
1094
|
-
var servedByProxy = applicationShellConnectors.useApplicationContext(function (context) {
|
|
1095
|
-
return context.environment.servedByProxy;
|
|
1096
|
-
});
|
|
1097
|
-
return servedByProxy;
|
|
1098
|
-
};
|
|
1099
|
-
|
|
1100
|
-
var ForcePageReload = function ForcePageReload() {
|
|
1101
|
-
react.useEffect(function () {
|
|
1102
|
-
location.reload();
|
|
1103
|
-
}, []);
|
|
1104
|
-
return null;
|
|
1105
|
-
};
|
|
1106
|
-
|
|
1107
|
-
var RouteCatchAll = function RouteCatchAll() {
|
|
1108
|
-
// NOTE: it's important that the return value is a `Route` component!
|
|
1109
|
-
var servedByProxy = useIsServedByProxy(); // In case the application is served by a proxy server, we assume that
|
|
1110
|
-
// the reverse proxy router handles requests forwarding to the specified
|
|
1111
|
-
// service.
|
|
1112
|
-
// For example, if the current "loaded" app is products and I click
|
|
1113
|
-
// on a link to discounts, the products app does not know about the
|
|
1114
|
-
// discount routes, thus falling back to this "catch all route" component.
|
|
1115
|
-
// At this point we force a page reload, effectively handing the
|
|
1116
|
-
// route control logic to the reverse proxy in our cluster. There,
|
|
1117
|
-
// the router mapping will match the discounts route and it will forward
|
|
1118
|
-
// the request to the discounts app.
|
|
1119
|
-
// If no route matches, the application fallback will handle the request
|
|
1120
|
-
// instead, showing e.g. a 404 page.
|
|
1121
|
-
|
|
1122
|
-
if (servedByProxy) return jsxRuntime.jsx(reactRouterDom.Route, {
|
|
1123
|
-
children: jsxRuntime.jsx(ForcePageReload, {})
|
|
1124
|
-
}); // In case we are developing the app locally, we simply render a 404
|
|
1125
|
-
// page because we most likely don't have other "apps" running at the same
|
|
1126
|
-
// time.
|
|
1127
|
-
|
|
1128
|
-
return jsxRuntime.jsx(reactRouterDom.Route, {
|
|
1129
|
-
children: jsxRuntime.jsx(applicationComponents.PageNotFound, {})
|
|
1130
|
-
});
|
|
1131
|
-
};
|
|
1132
|
-
|
|
1133
|
-
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; }
|
|
1134
|
-
|
|
1135
|
-
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; }
|
|
1136
|
-
|
|
1137
|
-
var ApplicationRouteWithPermissionCheck = function ApplicationRouteWithPermissionCheck(props) {
|
|
1138
|
-
var permissionKeys = ssr.entryPointUriPathToPermissionKeys(props.environment.entryPointUriPath); // Require View permission to render the application.
|
|
1139
|
-
|
|
1140
|
-
var canView = permissions.useIsAuthorized({
|
|
1141
|
-
demandedPermissions: [permissionKeys.View]
|
|
1142
|
-
});
|
|
1143
|
-
|
|
1144
|
-
if (canView) {
|
|
1145
|
-
return jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
1146
|
-
children: react.Children.only(props.children)
|
|
1147
|
-
});
|
|
1148
|
-
}
|
|
1149
|
-
|
|
1150
|
-
return jsxRuntime.jsx(applicationComponents.PageUnauthorized, {});
|
|
1151
|
-
};
|
|
1152
|
-
|
|
1153
|
-
ApplicationRouteWithPermissionCheck.propTypes = {};
|
|
1154
|
-
|
|
1155
|
-
var ApplicationRoute = function ApplicationRoute(props) {
|
|
1156
|
-
if (props.disableRoutePermissionCheck) {
|
|
1157
|
-
return jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
1158
|
-
children: react.Children.only(props.children)
|
|
1159
|
-
});
|
|
1160
|
-
}
|
|
1161
|
-
|
|
1162
|
-
return jsxRuntime.jsx(ApplicationRouteWithPermissionCheck, _objectSpread({}, props));
|
|
1163
|
-
};
|
|
1164
|
-
|
|
1165
|
-
ApplicationRoute.propTypes = {};
|
|
1166
|
-
|
|
1167
|
-
var ApplicationEntryPoint = function ApplicationEntryPoint(props) {
|
|
1168
|
-
// If the `children` prop is used (instead of the `render` prop),
|
|
1169
|
-
// we pre-configure the application entry point routes to avoid
|
|
1170
|
-
// users to do so on their own.
|
|
1171
|
-
if (props.children) {
|
|
1172
|
-
var entryPointUriPath = props.environment.entryPointUriPath;
|
|
1173
|
-
return jsxRuntime.jsxs(reactRouterDom.Switch, {
|
|
1174
|
-
children: [// For development, it's useful to redirect to the actual
|
|
1175
|
-
// application routes when you open the browser at http://localhost:3001
|
|
1176
|
-
null , jsxRuntime.jsx(reactRouterDom.Route, {
|
|
1177
|
-
path: "/:projectKey/".concat(entryPointUriPath),
|
|
1178
|
-
children: jsxRuntime.jsx(ApplicationRoute, _objectSpread({}, props))
|
|
1179
|
-
}), jsxRuntime.jsx(RouteCatchAll, {})]
|
|
1180
|
-
});
|
|
1181
|
-
} // We still support the `render` prop, for backwards compatibility
|
|
1182
|
-
// and for having more control in certain cases (mostly to some of our internal apps).
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
if (props.render && typeof props.render === 'function') {
|
|
1186
|
-
return jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
1187
|
-
children: props.render()
|
|
1188
|
-
});
|
|
1189
|
-
} // The `render` prop function is still required (backwards compatibility).
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
!!props.render ? invariant__default["default"](false) : void 0;
|
|
1193
|
-
return null;
|
|
1194
|
-
};
|
|
1195
|
-
|
|
1196
|
-
ApplicationEntryPoint.propTypes = {};
|
|
1197
|
-
|
|
1198
|
-
exports.ApplicationEntryPoint = ApplicationEntryPoint;
|
|
1199
|
-
exports.REQUESTS_IN_FLIGHT_LOADER_DOM_ID = REQUESTS_IN_FLIGHT_LOADER_DOM_ID;
|
|
1200
|
-
exports.RequestsInFlightLoader = RequestsInFlightLoader;
|
|
1201
|
-
exports.RouteCatchAll = RouteCatchAll;
|
|
1202
|
-
exports.applyDefaultMiddlewares = applyDefaultMiddlewares;
|
|
1203
|
-
exports.buildApiUrl = buildApiUrl;
|
|
1204
|
-
exports.clearSession = clearSession;
|
|
1205
|
-
exports.createApolloClient = createApolloClient;
|
|
1206
|
-
exports.createHttpClientOptions = createHttpClientOptions;
|
|
1207
|
-
exports.createReduxStore = createReduxStore;
|
|
1208
|
-
exports.executeHttpClientRequest = executeHttpClientRequest;
|
|
1209
|
-
exports.getActiveProjectKey = getActiveProjectKey;
|
|
1210
|
-
exports.getMcApiUrl = getMcApiUrl;
|
|
1211
|
-
exports.getSessionScope = getSessionScope;
|
|
1212
|
-
exports.getSessionState = getSessionState;
|
|
1213
|
-
exports.internalReduxStore = internalReduxStore;
|
|
1214
|
-
exports.location = location;
|
|
1215
|
-
exports.logger = logger;
|
|
1216
|
-
exports.removeActiveProjectKey = removeActiveProjectKey;
|
|
1217
|
-
exports.selectProjectKeyFromUrl = selectProjectKeyFromUrl;
|
|
1218
|
-
exports.selectUserId = selectUserId;
|
|
1219
|
-
exports.setActiveProjectKey = setActiveProjectKey;
|
|
1220
|
-
exports.setActiveSession = setActiveSession;
|
|
1221
|
-
exports.setCachedApolloClient = setCachedApolloClient;
|
|
1222
|
-
exports.setSessionScope = setSessionScope;
|
|
1223
|
-
exports.setSessionState = setSessionState;
|
|
1224
|
-
exports.useIsServedByProxy = useIsServedByProxy;
|
|
1225
|
-
exports.version = version;
|