@zengenti/contensis-react-base 2.4.1-beta.6 → 2.5.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.
- package/CHANGELOG.md +61 -0
- package/README.md +77 -0
- package/cjs/{App-2334f3e0.js → App-79703372.js} +213 -8
- package/cjs/App-79703372.js.map +1 -0
- package/cjs/{RouteLoader-5c44f039.js → RouteLoader-f67bbf9e.js} +8 -39
- package/cjs/RouteLoader-f67bbf9e.js.map +1 -0
- package/cjs/{ToJs-ca9bea03.js → ToJs-d72e5b10.js} +58 -2
- package/cjs/ToJs-d72e5b10.js.map +1 -0
- package/cjs/{actions-e22726ed.js → actions-e9f69947.js} +1 -1
- package/cjs/actions-e9f69947.js.map +1 -0
- package/cjs/client.js +13 -15
- package/cjs/client.js.map +1 -1
- package/cjs/contensis-react-base.js +38 -38
- package/cjs/contensis-react-base.js.map +1 -1
- package/cjs/forms.js +1 -2
- package/cjs/forms.js.map +1 -1
- package/cjs/{login-6eb5e46d.js → login-4f274c6a.js} +8 -5
- package/cjs/login-4f274c6a.js.map +1 -0
- package/cjs/reducers-cb531715.js +207 -0
- package/cjs/reducers-cb531715.js.map +1 -0
- package/cjs/redux.js +4 -4
- package/cjs/redux.js.map +1 -1
- package/cjs/routing.js +4 -5
- package/cjs/routing.js.map +1 -1
- package/cjs/search.js +6 -4
- package/cjs/search.js.map +1 -1
- package/cjs/{selectors-69c3d37c.js → selectors-1295124a.js} +9 -1
- package/cjs/selectors-1295124a.js.map +1 -0
- package/cjs/user.js +82 -27
- package/cjs/user.js.map +1 -1
- package/cjs/util.js +21 -91
- package/cjs/util.js.map +1 -1
- package/cjs/{version-d8f5b436.js → version-3a808c12.js} +4 -4
- package/cjs/version-3a808c12.js.map +1 -0
- package/esm/{App-b2b80182.js → App-452c2ab3.js} +213 -8
- package/esm/App-452c2ab3.js.map +1 -0
- package/esm/{RouteLoader-2cfdfc5c.js → RouteLoader-dedcc835.js} +8 -38
- package/esm/RouteLoader-dedcc835.js.map +1 -0
- package/esm/{ToJs-19a3244a.js → ToJs-6e7b247c.js} +47 -3
- package/esm/ToJs-6e7b247c.js.map +1 -0
- package/esm/{actions-fda5e103.js → actions-ddd9c623.js} +1 -1
- package/esm/actions-ddd9c623.js.map +1 -0
- package/esm/client.js +15 -16
- package/esm/client.js.map +1 -1
- package/esm/contensis-react-base.js +37 -37
- package/esm/contensis-react-base.js.map +1 -1
- package/esm/forms.js +1 -2
- package/esm/forms.js.map +1 -1
- package/esm/{login-866fe64c.js → login-1f9ad133.js} +8 -6
- package/esm/login-1f9ad133.js.map +1 -0
- package/esm/reducers-feab84fc.js +183 -0
- package/esm/reducers-feab84fc.js.map +1 -0
- package/esm/redux.js +5 -5
- package/esm/redux.js.map +1 -1
- package/esm/routing.js +4 -5
- package/esm/routing.js.map +1 -1
- package/esm/search.js +6 -4
- package/esm/search.js.map +1 -1
- package/esm/{selectors-170581d2.js → selectors-68799788.js} +9 -1
- package/esm/selectors-68799788.js.map +1 -0
- package/esm/user.js +80 -29
- package/esm/user.js.map +1 -1
- package/esm/util.js +20 -90
- package/esm/util.js.map +1 -1
- package/esm/{version-8d757fb4.js → version-64906b26.js} +5 -4
- package/esm/version-64906b26.js.map +1 -0
- package/models/app/App.d.ts +4 -0
- package/models/app/pages/VersionInfo/components/VersionInfo.d.ts +40 -0
- package/models/app/pages/VersionInfo/components/VersionInfo.styled.d.ts +1 -0
- package/models/app/pages/VersionInfo/index.d.ts +2 -0
- package/models/app/pages/VersionInfo/transformations/state-to-versioninfoprops.mapper.d.ts +3 -0
- package/models/client/client.d.ts +11 -0
- package/models/client/index.d.ts +3 -0
- package/models/config.d.ts +33 -0
- package/models/forms/index.d.ts +1 -0
- package/models/index.d.ts +5 -0
- package/models/redux/actions/index.d.ts +9 -0
- package/models/redux/actions/navigation.d.ts +1 -0
- package/models/redux/actions/version.d.ts +2 -0
- package/models/redux/index.d.ts +17 -0
- package/models/redux/reducers/navigation.d.ts +3 -0
- package/models/redux/reducers/version.d.ts +3 -0
- package/models/redux/sagas/index.d.ts +1 -0
- package/models/redux/sagas/navigation.d.ts +4 -0
- package/models/redux/selectors/index.d.ts +9 -0
- package/models/redux/selectors/navigation.d.ts +3 -0
- package/models/redux/selectors/version.d.ts +3 -0
- package/models/redux/store/history.d.ts +2 -0
- package/models/redux/store/injectors.d.ts +19 -0
- package/models/redux/store/routerMiddleware.d.ts +7 -0
- package/models/redux/store/store.d.ts +3 -0
- package/models/redux/types/index.d.ts +9 -0
- package/models/redux/types/navigation.d.ts +3 -0
- package/models/redux/types/version.d.ts +2 -0
- package/models/redux/util.d.ts +1 -0
- package/models/routing/components/Loading.d.ts +5 -0
- package/models/routing/components/NotFound.d.ts +6 -0
- package/models/routing/components/RouteLoader.d.ts +3 -0
- package/models/routing/components/Status.d.ts +4 -0
- package/models/routing/index.d.ts +4 -0
- package/models/routing/redux/actions.d.ts +6 -0
- package/models/routing/redux/reducers.d.ts +4 -0
- package/models/routing/redux/sagas.d.ts +1 -0
- package/models/routing/redux/selectors.d.ts +25 -0
- package/models/routing/redux/types.d.ts +12 -0
- package/models/routing/routes.d.ts +99 -0
- package/models/routing/util/expressions.d.ts +2 -0
- package/models/routing/util/find-contenttype-mapping.d.ts +2 -0
- package/models/routing/util/queries.d.ts +2 -0
- package/models/search/containers/withListing.d.ts +4 -0
- package/models/search/containers/withSearch.d.ts +4 -0
- package/models/search/hooks/useMinilist.hook.d.ts +23 -0
- package/models/search/index.d.ts +16 -0
- package/models/search/models/Enums.d.ts +5 -0
- package/models/search/models/Queries.d.ts +43 -0
- package/models/search/models/Search.d.ts +180 -0
- package/models/search/models/SearchActions.d.ts +127 -0
- package/models/search/models/SearchProps.d.ts +45 -0
- package/models/search/models/SearchState.d.ts +83 -0
- package/models/search/models/SearchUtil.d.ts +6 -0
- package/models/search/models/index.d.ts +3 -0
- package/models/search/redux/actions.d.ts +39 -0
- package/models/search/redux/queries.d.ts +3 -0
- package/models/search/redux/reducers.d.ts +4 -0
- package/models/search/redux/sagas.d.ts +20 -0
- package/models/search/redux/schema.d.ts +9 -0
- package/models/search/redux/selectors.d.ts +112 -0
- package/models/search/redux/types.d.ts +20 -0
- package/models/search/redux/util.d.ts +25 -0
- package/models/search/search/ContensisDeliveryApi.d.ts +32 -0
- package/models/search/search/ToJs.d.ts +4 -0
- package/models/search/search/expressions.d.ts +29 -0
- package/models/search/search/performance.d.ts +1 -0
- package/models/search/search/schema.d.ts +28 -0
- package/models/search/search/util.d.ts +21 -0
- package/models/search/transformations/entry-to-filteritem.mapper.d.ts +2 -0
- package/models/search/transformations/filters-to-filterexpression.d.ts +1 -0
- package/models/search/transformations/filters-to-filterexpression.mapper.d.ts +2 -0
- package/models/search/transformations/searchresult-to-state.mapper.d.ts +6 -0
- package/models/search/transformations/state-to-queryparams.mapper.d.ts +12 -0
- package/models/search/transformations/state-to-searchuri.d.ts +14 -0
- package/models/server/features/caching/cacheDuration.schema.d.ts +7 -0
- package/models/server/features/caching/cacheHashing.d.ts +1 -0
- package/models/server/features/caching/setCachingHeaders.d.ts +6 -0
- package/models/server/features/response-handler/index.d.ts +12 -0
- package/models/server/features/response-handler/types.d.ts +5 -0
- package/models/server/features/reverse-proxy/index.d.ts +4 -0
- package/models/server/features/static-assets/index.d.ts +14 -0
- package/models/server/internalServer.d.ts +10 -0
- package/models/server/middleware/bundleManipulation.d.ts +6 -0
- package/models/server/middleware/resolveStartup.d.ts +13 -0
- package/models/server/util/displayStartupConfiguration.d.ts +2 -0
- package/models/server/util/staticPaths.d.ts +1 -0
- package/models/server/util/stringifyAttributes.d.ts +2 -0
- package/models/server/webApp.d.ts +9 -0
- package/models/testImmer/redux/reducer.d.ts +8 -0
- package/models/testImmer/redux/selectors.d.ts +3 -0
- package/models/user/components/Login.d.ts +2 -0
- package/models/user/components/LoginForm.d.ts +16 -0
- package/models/user/components/LogoutForm.d.ts +12 -0
- package/models/user/components.styled/Login.styled.d.ts +2 -0
- package/models/user/components.styled/LoginForm.styled.d.ts +2 -0
- package/models/user/containers/ChangePassword.container.d.ts +2 -0
- package/models/user/containers/ForgotPassword.container.d.ts +2 -0
- package/models/user/containers/Login.container.d.ts +2 -0
- package/models/user/containers/Registration.container.d.ts +2 -0
- package/models/user/hocs/withLogin.d.ts +2 -0
- package/models/user/hocs/withRegistration.d.ts +2 -0
- package/models/user/hooks/useChangePassword.d.ts +9 -0
- package/models/user/hooks/useForgotPassword.d.ts +14 -0
- package/models/user/hooks/useLogin.d.ts +12 -0
- package/models/user/hooks/useRegistration.d.ts +8 -0
- package/models/user/index.d.ts +16 -0
- package/models/user/redux/actions.d.ts +6 -0
- package/models/user/redux/reducers.d.ts +4 -0
- package/models/user/redux/sagas/index.d.ts +1 -0
- package/models/user/redux/sagas/login.d.ts +36 -0
- package/models/user/redux/sagas/register.d.ts +1 -0
- package/models/user/redux/sagas/resetPassword.d.ts +1 -0
- package/models/user/redux/selectors.d.ts +27 -0
- package/models/user/redux/types.d.ts +21 -0
- package/models/user/transformations/mapClientCredentials.d.ts +2 -0
- package/models/user/util/ContensisManagementApi.d.ts +9 -0
- package/models/user/util/CookieHelper.class.d.ts +5 -0
- package/models/user/util/LoginHelper.class.d.ts +52 -0
- package/models/user/util/OidcUserManager.d.ts +18 -0
- package/models/user/util/matchGroups.d.ts +3 -0
- package/models/user/util/userHelper.d.ts +12 -0
- package/models/util/ContensisDeliveryApi.d.ts +40 -0
- package/models/util/ToJs.d.ts +1 -0
- package/models/util/fromJSLeaveImmer.d.ts +2 -0
- package/models/util/fromJSOrdered.d.ts +2 -0
- package/models/util/index.d.ts +5 -0
- package/models/util/json-mapper.d.ts +81 -0
- package/models/util/navHelper.d.ts +7 -0
- package/models/util/navigation.d.ts +4 -0
- package/models/util/performance.d.ts +1 -0
- package/models/util/pickProject.d.ts +2 -0
- package/models/util/schema.d.ts +25 -0
- package/models/util/stringifyStrings.d.ts +2 -0
- package/models/util/urls.d.ts +9 -0
- package/package-lock.json +7920 -7722
- package/package.json +17 -11
- package/cjs/App-2334f3e0.js.map +0 -1
- package/cjs/RouteLoader-5c44f039.js.map +0 -1
- package/cjs/ToJs-ca9bea03.js.map +0 -1
- package/cjs/actions-e22726ed.js.map +0 -1
- package/cjs/login-6eb5e46d.js.map +0 -1
- package/cjs/reducers-c42035ab.js +0 -120
- package/cjs/reducers-c42035ab.js.map +0 -1
- package/cjs/selectors-69c3d37c.js.map +0 -1
- package/cjs/version-d8f5b436.js.map +0 -1
- package/esm/App-b2b80182.js.map +0 -1
- package/esm/RouteLoader-2cfdfc5c.js.map +0 -1
- package/esm/ToJs-19a3244a.js.map +0 -1
- package/esm/actions-fda5e103.js.map +0 -1
- package/esm/login-866fe64c.js.map +0 -1
- package/esm/reducers-b426d14a.js +0 -108
- package/esm/reducers-b426d14a.js.map +0 -1
- package/esm/selectors-170581d2.js.map +0 -1
- package/esm/version-8d757fb4.js.map +0 -1
|
@@ -55,9 +55,15 @@ const selectIsNotFound = state => {
|
|
|
55
55
|
const selectCurrentAncestors = state => {
|
|
56
56
|
return state.getIn(['routing', 'currentNodeAncestors'], List());
|
|
57
57
|
};
|
|
58
|
+
const selectCurrentSiblings = state => {
|
|
59
|
+
return state.getIn(['routing', 'currentNodeSiblings'], List());
|
|
60
|
+
};
|
|
58
61
|
const selectCurrentNode = state => {
|
|
59
62
|
return state.getIn(['routing', 'currentNode']);
|
|
60
63
|
};
|
|
64
|
+
const selectCurrentChildren = state => {
|
|
65
|
+
return state.getIn(['routing', 'currentNode', 'children'], List());
|
|
66
|
+
};
|
|
61
67
|
const selectBreadcrumb = state => {
|
|
62
68
|
return (selectCurrentAncestors(state) || List()).push(selectCurrentNode(state));
|
|
63
69
|
};
|
|
@@ -97,7 +103,9 @@ var routing = /*#__PURE__*/Object.freeze({
|
|
|
97
103
|
selectCurrentProject: selectCurrentProject,
|
|
98
104
|
selectIsNotFound: selectIsNotFound,
|
|
99
105
|
selectCurrentAncestors: selectCurrentAncestors,
|
|
106
|
+
selectCurrentSiblings: selectCurrentSiblings,
|
|
100
107
|
selectCurrentNode: selectCurrentNode,
|
|
108
|
+
selectCurrentChildren: selectCurrentChildren,
|
|
101
109
|
selectBreadcrumb: selectBreadcrumb,
|
|
102
110
|
selectRouteErrorMessage: selectRouteErrorMessage,
|
|
103
111
|
selectRouteIsError: selectRouteIsError,
|
|
@@ -106,4 +114,4 @@ var routing = /*#__PURE__*/Object.freeze({
|
|
|
106
114
|
});
|
|
107
115
|
|
|
108
116
|
export { selectCurrentProject as a, selectCurrentNode as b, selectCurrentAncestors as c, selectRouteEntryEntryId as d, selectRouteEntryLanguage as e, selectMappedEntry as f, selectCurrentSearch as g, selectRouteEntryContentTypeId as h, selectRouteIsError as i, selectIsNotFound as j, selectRouteLoading as k, selectCurrentPath as l, selectRouteStatusCode as m, selectRouteErrorMessage as n, queryParams as q, routing as r, selectRouteEntry as s };
|
|
109
|
-
//# sourceMappingURL=selectors-
|
|
117
|
+
//# sourceMappingURL=selectors-68799788.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors-68799788.js","sources":["../src/util/navigation.js","../src/routing/redux/selectors.js"],"sourcesContent":["import queryString from 'query-string';\n\nexport function queryParams(search) {\n return queryString.parse(\n typeof window != 'undefined' ? window.location.search : search\n );\n}\nexport const routeParams = staticRoute =>\n staticRoute && staticRoute.match ? staticRoute.match.params : {};\n\nexport const buildUrl = (route, params) => {\n const qs = queryString.stringify(params);\n const path = qs ? `${route}?${qs}` : route;\n return path;\n};\n\nexport const clientHostname = () =>\n `${window.location.protocol}//${window.location.hostname}:${window.location.port}`;\n","import { List, Map } from 'immutable';\nimport { queryParams } from '~/util/navigation';\n\nexport const selectRouteEntry = state => {\n return state.getIn(['routing', 'entry'], Map());\n};\nexport const selectMappedEntry = state => {\n return state.getIn(['routing', 'mappedEntry'], null);\n};\nexport const selectNodeDepends = state => {\n return state.getIn(['routing', 'nodeDepends'], List());\n};\nexport const selectCurrentHostname = state => {\n return state.getIn(['routing', 'currentHostname']);\n};\nexport const selectCurrentTreeID = state => {\n return state.getIn(['routing', 'currentTreeId']);\n};\nexport const selectRouteEntryEntryId = state => {\n return state.getIn(['routing', 'entry', 'sys', 'id'], null);\n};\nexport const selectRouteEntryContentTypeId = state => {\n const entry = selectRouteEntry(state);\n return entry && entry.getIn(['sys', 'contentTypeId'], null);\n};\nexport const selectRouteEntryLanguage = state => {\n return state.getIn(['routing', 'entry', 'sys', 'language'], null);\n};\nexport const selectRouteEntrySlug = state => {\n return state.getIn(['routing', 'entry', 'sys', 'slug'], null);\n};\nexport const selectRouteEntryID = state => {\n return state.getIn(['routing', 'entryID']);\n};\nexport const selectCurrentPath = state => {\n return state.getIn(['routing', 'currentPath']);\n};\nexport const selectCurrentSearch = state => {\n return state.getIn(['routing', 'location', 'search']);\n};\nexport const selectCurrentHash = state => {\n return state.getIn(['routing', 'location', 'hash']);\n};\nexport const selectQueryStringAsObject = state =>\n queryParams(selectCurrentSearch(state));\nexport const selectCurrentProject = state => {\n return state.getIn(['routing', 'currentProject']);\n};\nexport const selectIsNotFound = state => {\n return state.getIn(['routing', 'notFound']);\n};\nexport const selectCurrentAncestors = state => {\n return state.getIn(['routing', 'currentNodeAncestors'], List());\n};\nexport const selectCurrentSiblings = state => {\n return state.getIn(['routing', 'currentNodeSiblings'], List());\n};\nexport const selectCurrentNode = state => {\n return state.getIn(['routing', 'currentNode']);\n};\nexport const selectCurrentChildren = state => {\n return state.getIn(['routing', 'currentNode', 'children'], List());\n};\nexport const selectBreadcrumb = state => {\n return (selectCurrentAncestors(state) || List()).push(\n selectCurrentNode(state)\n );\n};\nexport const selectRouteErrorMessage = state => {\n const error = state.getIn(['routing', 'error']);\n if (error && 'toJS' in error) {\n return error.getIn(['data', 'message']) || error.get('statusText');\n }\n};\nexport const selectRouteIsError = state => {\n return state.getIn(['routing', 'isError']);\n};\nexport const selectRouteLoading = state => {\n return state.getIn(['routing', 'isLoading']);\n};\nexport const selectRouteStatusCode = state => {\n return state.getIn(['routing', 'statusCode']);\n};\n"],"names":["queryParams","search","queryString","parse","window","location","selectRouteEntry","state","getIn","Map","selectMappedEntry","selectNodeDepends","List","selectCurrentHostname","selectCurrentTreeID","selectRouteEntryEntryId","selectRouteEntryContentTypeId","entry","selectRouteEntryLanguage","selectRouteEntrySlug","selectRouteEntryID","selectCurrentPath","selectCurrentSearch","selectCurrentHash","selectQueryStringAsObject","selectCurrentProject","selectIsNotFound","selectCurrentAncestors","selectCurrentSiblings","selectCurrentNode","selectCurrentChildren","selectBreadcrumb","push","selectRouteErrorMessage","error","get","selectRouteIsError","selectRouteLoading","selectRouteStatusCode"],"mappings":"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"}
|
package/esm/user.js
CHANGED
|
@@ -2,15 +2,15 @@ import 'react';
|
|
|
2
2
|
import { useDispatch, useSelector, connect } from 'react-redux';
|
|
3
3
|
import 'jsonpath-mapper';
|
|
4
4
|
import 'immutable';
|
|
5
|
-
import { j as action } from './actions-
|
|
6
|
-
import { L as LOGIN_USER,
|
|
7
|
-
export {
|
|
5
|
+
import { j as action } from './actions-ddd9c623.js';
|
|
6
|
+
import { L as LOGIN_USER, n as LOGOUT_USER, R as REGISTER_USER, c as REQUEST_USER_PASSWORD_RESET, d as RESET_USER_PASSWORD, C as CHANGE_USER_PASSWORD } from './reducers-feab84fc.js';
|
|
7
|
+
export { p as initialUserState, U as reducer, t as types } from './reducers-feab84fc.js';
|
|
8
8
|
import '@redux-saga/core/effects';
|
|
9
9
|
import 'query-string';
|
|
10
|
-
import './selectors-
|
|
11
|
-
import { c as selectUserAuthenticationError, d as selectUserError,
|
|
12
|
-
export {
|
|
13
|
-
export { L as LoginHelper, h as handleRequiresLoginSaga, r as refreshSecurityToken } from './login-
|
|
10
|
+
import { g as selectCurrentSearch } from './selectors-68799788.js';
|
|
11
|
+
import { c as selectUserAuthenticationError, d as selectUserAuthenticationErrorMessage, e as selectUserError, f as selectUserErrorMessage, a as selectUserIsAuthenticated, g as selectUserIsLoading, h as selectUser, t as toJS, i as selectUserRegistrationError, j as selectUserRegistrationIsLoading, k as selectUserRegistrationIsSuccess, l as selectUserRegistration, n as selectPasswordResetRequestSending, o as selectPasswordResetRequestSent, p as selectPasswordResetRequestError, q as selectResetPasswordSending, r as selectResetPasswordSent, u as selectResetPasswordError, v as selectChangePasswordSending, w as selectChangePasswordSent, x as selectUserGuid, y as selectChangePasswordError } from './ToJs-6e7b247c.js';
|
|
12
|
+
export { z as selectors } from './ToJs-6e7b247c.js';
|
|
13
|
+
export { L as LoginHelper, h as handleRequiresLoginSaga, r as refreshSecurityToken } from './login-1f9ad133.js';
|
|
14
14
|
import 'await-to-js';
|
|
15
15
|
import 'js-cookie';
|
|
16
16
|
|
|
@@ -25,12 +25,26 @@ const registerUser = (user, mappers) => action(REGISTER_USER, {
|
|
|
25
25
|
user,
|
|
26
26
|
mappers
|
|
27
27
|
});
|
|
28
|
+
const requestPasswordReset = userEmailObject => action(REQUEST_USER_PASSWORD_RESET, {
|
|
29
|
+
userEmailObject
|
|
30
|
+
});
|
|
31
|
+
const resetPassword = resetPasswordObject => action(RESET_USER_PASSWORD, {
|
|
32
|
+
resetPasswordObject
|
|
33
|
+
});
|
|
34
|
+
const changePassword = (userId, currentPassword, newPassword) => action(CHANGE_USER_PASSWORD, {
|
|
35
|
+
userId,
|
|
36
|
+
currentPassword,
|
|
37
|
+
newPassword
|
|
38
|
+
});
|
|
28
39
|
|
|
29
40
|
var actions = /*#__PURE__*/Object.freeze({
|
|
30
41
|
__proto__: null,
|
|
31
42
|
loginUser: loginUser,
|
|
32
43
|
logoutUser: logoutUser,
|
|
33
|
-
registerUser: registerUser
|
|
44
|
+
registerUser: registerUser,
|
|
45
|
+
requestPasswordReset: requestPasswordReset,
|
|
46
|
+
resetPassword: resetPassword,
|
|
47
|
+
changePassword: changePassword
|
|
34
48
|
});
|
|
35
49
|
|
|
36
50
|
const useLogin = () => {
|
|
@@ -40,7 +54,9 @@ const useLogin = () => {
|
|
|
40
54
|
loginUser: (username, password) => dispatch(loginUser(username, password)),
|
|
41
55
|
logoutUser: redirectPath => dispatch(logoutUser(redirectPath)),
|
|
42
56
|
authenticationError: select(selectUserAuthenticationError),
|
|
57
|
+
authenticationErrorMessage: select(selectUserAuthenticationErrorMessage),
|
|
43
58
|
error: select(selectUserError),
|
|
59
|
+
errorMessage: select(selectUserErrorMessage),
|
|
44
60
|
isAuthenticated: select(selectUserIsAuthenticated),
|
|
45
61
|
isLoading: select(selectUserIsLoading),
|
|
46
62
|
user: select(selectUser).toJS()
|
|
@@ -58,7 +74,7 @@ const LoginContainer = ({
|
|
|
58
74
|
LoginContainer.propTypes = {};
|
|
59
75
|
var Login_container = toJS(LoginContainer);
|
|
60
76
|
|
|
61
|
-
const
|
|
77
|
+
const useRegistration = () => {
|
|
62
78
|
const dispatch = useDispatch();
|
|
63
79
|
const select = useSelector;
|
|
64
80
|
return {
|
|
@@ -74,28 +90,71 @@ const RegistrationContainer = ({
|
|
|
74
90
|
children,
|
|
75
91
|
...props
|
|
76
92
|
}) => {
|
|
77
|
-
const userProps =
|
|
93
|
+
const userProps = useRegistration();
|
|
78
94
|
return children(userProps);
|
|
79
95
|
};
|
|
80
96
|
|
|
81
97
|
RegistrationContainer.propTypes = {};
|
|
82
98
|
var Registration_container = toJS(RegistrationContainer);
|
|
83
99
|
|
|
100
|
+
const useForgotPassword = () => {
|
|
101
|
+
const dispatch = useDispatch();
|
|
102
|
+
const select = useSelector;
|
|
103
|
+
return {
|
|
104
|
+
isLoading: select(selectPasswordResetRequestSending),
|
|
105
|
+
isSuccess: select(selectPasswordResetRequestSent),
|
|
106
|
+
error: select(selectPasswordResetRequestError),
|
|
107
|
+
requestPasswordReset: userEmailObject => dispatch(requestPasswordReset(userEmailObject)),
|
|
108
|
+
setNewPassword: {
|
|
109
|
+
queryString: select(selectCurrentSearch),
|
|
110
|
+
isLoading: select(selectResetPasswordSending),
|
|
111
|
+
isSuccess: select(selectResetPasswordSent),
|
|
112
|
+
error: select(selectResetPasswordError),
|
|
113
|
+
submit: resetPasswordObject => dispatch(resetPassword(resetPasswordObject))
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
const ForgotPasswordContainer = ({
|
|
119
|
+
children,
|
|
120
|
+
...props
|
|
121
|
+
}) => {
|
|
122
|
+
const userProps = useForgotPassword();
|
|
123
|
+
return children(userProps);
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
ForgotPasswordContainer.propTypes = {};
|
|
127
|
+
var ForgotPassword_container = toJS(ForgotPasswordContainer);
|
|
128
|
+
|
|
129
|
+
const useChangePassword = () => {
|
|
130
|
+
const dispatch = useDispatch();
|
|
131
|
+
const select = useSelector;
|
|
132
|
+
return {
|
|
133
|
+
isLoading: select(selectChangePasswordSending),
|
|
134
|
+
isSuccess: select(selectChangePasswordSent),
|
|
135
|
+
userId: select(selectUserGuid),
|
|
136
|
+
isLoggedIn: select(selectUserIsAuthenticated),
|
|
137
|
+
error: select(selectChangePasswordError),
|
|
138
|
+
changePassword: (userId, currentPassword, newPassword) => dispatch(changePassword(userId, currentPassword, newPassword))
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
const ChangePasswordContainer = ({
|
|
143
|
+
children,
|
|
144
|
+
...props
|
|
145
|
+
}) => {
|
|
146
|
+
const userProps = useChangePassword();
|
|
147
|
+
return children(userProps);
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
ChangePasswordContainer.propTypes = {};
|
|
151
|
+
var ChangePassword_container = toJS(ChangePasswordContainer);
|
|
152
|
+
|
|
84
153
|
const getDisplayName = WrappedComponent => {
|
|
85
154
|
return WrappedComponent.displayName || WrappedComponent.name || 'Component';
|
|
86
155
|
};
|
|
87
156
|
|
|
88
157
|
const withLogin = WrappedComponent => {
|
|
89
|
-
// Returns a redux-connected component with the following props:
|
|
90
|
-
// this.propTypes = {
|
|
91
|
-
// loading: PropTypes.bool,
|
|
92
|
-
// authenticated: PropTypes.bool,
|
|
93
|
-
// authenticationError: PropTypes.bool,
|
|
94
|
-
// error: PropTypes.bool,
|
|
95
|
-
// user: PropTypes.object,
|
|
96
|
-
// logoutUser: PropTypes.func,
|
|
97
|
-
// isHeaderLogin: PropTypes.bool,
|
|
98
|
-
// };
|
|
99
158
|
const mapStateToProps = state => {
|
|
100
159
|
return {
|
|
101
160
|
authenticationError: selectUserAuthenticationError(state),
|
|
@@ -120,14 +179,6 @@ const getDisplayName$1 = WrappedComponent => {
|
|
|
120
179
|
};
|
|
121
180
|
|
|
122
181
|
const withRegistration = WrappedComponent => {
|
|
123
|
-
// Returns a redux-connected component with the following props:
|
|
124
|
-
// this.propTypes = {
|
|
125
|
-
// registerUser: PropTypes.func,
|
|
126
|
-
// isLoading: PropTypes.bool,
|
|
127
|
-
// isSuccess: PropTypes.bool,
|
|
128
|
-
// error: PropTypes.bool | PropTypes.object,
|
|
129
|
-
// user: PropTypes.object,
|
|
130
|
-
// };
|
|
131
182
|
const mapStateToProps = state => {
|
|
132
183
|
return {
|
|
133
184
|
error: selectUserRegistrationError(state),
|
|
@@ -145,5 +196,5 @@ const withRegistration = WrappedComponent => {
|
|
|
145
196
|
return ConnectedComponent;
|
|
146
197
|
};
|
|
147
198
|
|
|
148
|
-
export { Login_container as LoginContainer, Registration_container as RegistrationContainer, actions,
|
|
199
|
+
export { ChangePassword_container as ChangePassword, ForgotPassword_container as ForgotPasswordContainer, Login_container as LoginContainer, Registration_container as RegistrationContainer, actions, useChangePassword, useForgotPassword, useLogin, useRegistration, withLogin, withRegistration };
|
|
149
200
|
//# sourceMappingURL=user.js.map
|
package/esm/user.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sources":["../src/user/redux/actions.js","../src/user/containers/useLogin.js","../src/user/containers/Login.container.js","../src/user/containers/useRegistration.js","../src/user/containers/Registration.container.js","../src/user/containers/withLogin.js","../src/user/containers/withRegistration.js"],"sourcesContent":["import { action } from '~/redux/util';\nimport { LOGIN_USER, LOGOUT_USER, REGISTER_USER } from './types';\n\nexport const loginUser = (username, password) =>\n action(LOGIN_USER, { username, password });\n\nexport const logoutUser = redirectPath => action(LOGOUT_USER, { redirectPath });\n\nexport const registerUser = (user, mappers) =>\n action(REGISTER_USER, {\n user,\n mappers,\n });\n","import { useDispatch, useSelector } from 'react-redux';\nimport { loginUser, logoutUser } from '../redux/actions';\nimport {\n selectUser,\n selectUserAuthenticationError,\n selectUserError,\n selectUserIsAuthenticated,\n selectUserIsLoading,\n} from '../redux/selectors';\n\nconst useLogin = () => {\n const dispatch = useDispatch();\n const select = useSelector;\n\n return {\n loginUser: (username, password) => dispatch(loginUser(username, password)),\n logoutUser: redirectPath => dispatch(logoutUser(redirectPath)),\n authenticationError: select(selectUserAuthenticationError),\n error: select(selectUserError),\n isAuthenticated: select(selectUserIsAuthenticated),\n isLoading: select(selectUserIsLoading),\n user: select(selectUser).toJS(),\n };\n};\n\nexport default useLogin;\n","import useLogin from './useLogin';\nimport { toJS } from '~/util/ToJs';\n\nconst LoginContainer = ({ children, ...props }) => {\n const userProps = useLogin(props);\n return children(userProps);\n};\n\nLoginContainer.propTypes = {};\n\nexport default toJS(LoginContainer);\n","import { useDispatch, useSelector } from 'react-redux';\nimport { registerUser } from '../redux/actions';\nimport {\n selectUserRegistration,\n selectUserRegistrationError,\n selectUserRegistrationIsLoading,\n selectUserRegistrationIsSuccess,\n} from '../redux/selectors';\n\nconst useLogin = () => {\n const dispatch = useDispatch();\n const select = useSelector;\n\n return {\n registerUser: (user, mappers) => dispatch(registerUser(user, mappers)),\n error: select(selectUserRegistrationError),\n isLoading: select(selectUserRegistrationIsLoading),\n isSuccess: select(selectUserRegistrationIsSuccess),\n user: select(selectUserRegistration).toJS(),\n };\n};\n\nexport default useLogin;\n","import useRegistration from './useRegistration';\nimport { toJS } from '~/util/ToJs';\n\nconst RegistrationContainer = ({ children, ...props }) => {\n const userProps = useRegistration(props);\n return children(userProps);\n};\n\nRegistrationContainer.propTypes = {};\n\nexport default toJS(RegistrationContainer);\n","import { connect } from 'react-redux';\nimport { loginUser, logoutUser } from '../redux/actions';\nimport {\n selectUser,\n selectUserAuthenticationError,\n selectUserError,\n selectUserIsAuthenticated,\n selectUserIsLoading,\n} from '../redux/selectors';\nimport { toJS } from '~/util/ToJs';\n\nconst getDisplayName = WrappedComponent => {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n};\n\nconst withLogin = WrappedComponent => {\n // Returns a redux-connected component with the following props:\n // this.propTypes = {\n // loading: PropTypes.bool,\n // authenticated: PropTypes.bool,\n // authenticationError: PropTypes.bool,\n // error: PropTypes.bool,\n // user: PropTypes.object,\n // logoutUser: PropTypes.func,\n // isHeaderLogin: PropTypes.bool,\n // };\n\n const mapStateToProps = state => {\n return {\n authenticationError: selectUserAuthenticationError(state),\n error: selectUserError(state),\n isAuthenticated: selectUserIsAuthenticated(state),\n isLoading: selectUserIsLoading(state),\n user: selectUser(state),\n };\n };\n\n const mapDispatchToProps = {\n loginUser,\n logoutUser,\n };\n\n const ConnectedComponent = connect(\n mapStateToProps,\n mapDispatchToProps\n )(toJS(WrappedComponent));\n\n ConnectedComponent.displayName = `${getDisplayName(WrappedComponent)}`;\n\n return ConnectedComponent;\n};\n\nexport default withLogin;\n","import { connect } from 'react-redux';\nimport { registerUser } from '../redux/actions';\nimport {\n selectUserRegistration,\n selectUserRegistrationError,\n selectUserRegistrationIsLoading,\n selectUserRegistrationIsSuccess,\n} from '../redux/selectors';\nimport { toJS } from '~/util/ToJs';\n\nconst getDisplayName = WrappedComponent => {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n};\n\nconst withRegistration = WrappedComponent => {\n // Returns a redux-connected component with the following props:\n // this.propTypes = {\n // registerUser: PropTypes.func,\n // isLoading: PropTypes.bool,\n // isSuccess: PropTypes.bool,\n // error: PropTypes.bool | PropTypes.object,\n // user: PropTypes.object,\n // };\n\n const mapStateToProps = state => {\n return {\n error: selectUserRegistrationError(state),\n isLoading: selectUserRegistrationIsLoading(state),\n isSuccess: selectUserRegistrationIsSuccess(state),\n user: selectUserRegistration(state),\n };\n };\n\n const mapDispatchToProps = {\n registerUser,\n };\n\n const ConnectedComponent = connect(\n mapStateToProps,\n mapDispatchToProps\n )(toJS(WrappedComponent));\n\n ConnectedComponent.displayName = `${getDisplayName(WrappedComponent)}`;\n\n return ConnectedComponent;\n};\n\nexport default withRegistration;\n"],"names":["loginUser","username","password","action","LOGIN_USER","logoutUser","redirectPath","LOGOUT_USER","registerUser","user","mappers","REGISTER_USER","useLogin","dispatch","useDispatch","select","useSelector","authenticationError","selectUserAuthenticationError","error","selectUserError","isAuthenticated","selectUserIsAuthenticated","isLoading","selectUserIsLoading","selectUser","toJS","LoginContainer","children","props","userProps","propTypes","selectUserRegistrationError","selectUserRegistrationIsLoading","isSuccess","selectUserRegistrationIsSuccess","selectUserRegistration","RegistrationContainer","useRegistration","getDisplayName","WrappedComponent","displayName","name","withLogin","mapStateToProps","state","mapDispatchToProps","ConnectedComponent","connect","withRegistration"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"user.js","sources":["../src/user/redux/actions.js","../src/user/hooks/useLogin.js","../src/user/containers/Login.container.js","../src/user/hooks/useRegistration.js","../src/user/containers/Registration.container.js","../src/user/hooks/useForgotPassword.js","../src/user/containers/ForgotPassword.container.js","../src/user/hooks/useChangePassword.js","../src/user/containers/ChangePassword.container.js","../src/user/hocs/withLogin.js","../src/user/hocs/withRegistration.js"],"sourcesContent":["import { action } from '~/redux/util';\nimport {\n CHANGE_USER_PASSWORD,\n LOGIN_USER,\n LOGOUT_USER,\n REGISTER_USER,\n REQUEST_USER_PASSWORD_RESET,\n RESET_USER_PASSWORD,\n} from './types';\n\nexport const loginUser = (username, password) =>\n action(LOGIN_USER, { username, password });\n\nexport const logoutUser = redirectPath => action(LOGOUT_USER, { redirectPath });\n\nexport const registerUser = (user, mappers) =>\n action(REGISTER_USER, {\n user,\n mappers,\n });\n\nexport const requestPasswordReset = userEmailObject =>\n action(REQUEST_USER_PASSWORD_RESET, { userEmailObject });\n\nexport const resetPassword = resetPasswordObject =>\n action(RESET_USER_PASSWORD, { resetPasswordObject });\n\nexport const changePassword = (userId, currentPassword, newPassword) =>\n action(CHANGE_USER_PASSWORD, { userId, currentPassword, newPassword });\n","import { useDispatch, useSelector } from 'react-redux';\nimport { loginUser, logoutUser } from '../redux/actions';\nimport {\n selectUser,\n selectUserAuthenticationError,\n selectUserAuthenticationErrorMessage,\n selectUserError,\n selectUserErrorMessage,\n selectUserIsAuthenticated,\n selectUserIsLoading,\n} from '../redux/selectors';\n\nconst useLogin = () => {\n const dispatch = useDispatch();\n const select = useSelector;\n\n return {\n loginUser: (username, password) => dispatch(loginUser(username, password)),\n logoutUser: redirectPath => dispatch(logoutUser(redirectPath)),\n authenticationError: select(selectUserAuthenticationError),\n authenticationErrorMessage: select(selectUserAuthenticationErrorMessage),\n error: select(selectUserError),\n errorMessage: select(selectUserErrorMessage),\n isAuthenticated: select(selectUserIsAuthenticated),\n isLoading: select(selectUserIsLoading),\n user: select(selectUser).toJS(),\n };\n};\n\nexport default useLogin;\n","import useLogin from '../hooks/useLogin';\nimport { toJS } from '~/util/ToJs';\n\nconst LoginContainer = ({ children, ...props }) => {\n const userProps = useLogin(props);\n return children(userProps);\n};\n\nLoginContainer.propTypes = {};\n\nexport default toJS(LoginContainer);\n","import { useDispatch, useSelector } from 'react-redux';\nimport { registerUser } from '../redux/actions';\nimport {\n selectUserRegistration,\n selectUserRegistrationError,\n selectUserRegistrationIsLoading,\n selectUserRegistrationIsSuccess,\n} from '../redux/selectors';\n\nconst useRegistration = () => {\n const dispatch = useDispatch();\n const select = useSelector;\n\n return {\n registerUser: (user, mappers) => dispatch(registerUser(user, mappers)),\n error: select(selectUserRegistrationError),\n isLoading: select(selectUserRegistrationIsLoading),\n isSuccess: select(selectUserRegistrationIsSuccess),\n user: select(selectUserRegistration).toJS(),\n };\n};\n\nexport default useRegistration;\n","import useRegistration from '../hooks/useRegistration';\nimport { toJS } from '~/util/ToJs';\n\nconst RegistrationContainer = ({ children, ...props }) => {\n const userProps = useRegistration(props);\n return children(userProps);\n};\n\nRegistrationContainer.propTypes = {};\n\nexport default toJS(RegistrationContainer);\n","import { useDispatch, useSelector } from 'react-redux';\nimport { requestPasswordReset, resetPassword } from '../redux/actions';\nimport {\n selectPasswordResetRequestError,\n selectPasswordResetRequestSending,\n selectPasswordResetRequestSent,\n selectResetPasswordSending,\n selectResetPasswordSent,\n selectResetPasswordError,\n} from '../redux/selectors';\nimport { selectCurrentSearch } from '~/routing/redux/selectors';\n\nconst useForgotPassword = () => {\n const dispatch = useDispatch();\n const select = useSelector;\n\n return {\n isLoading: select(selectPasswordResetRequestSending),\n isSuccess: select(selectPasswordResetRequestSent),\n error: select(selectPasswordResetRequestError),\n requestPasswordReset: userEmailObject =>\n dispatch(requestPasswordReset(userEmailObject)),\n\n setNewPassword: {\n queryString: select(selectCurrentSearch),\n isLoading: select(selectResetPasswordSending),\n isSuccess: select(selectResetPasswordSent),\n error: select(selectResetPasswordError),\n submit: resetPasswordObject =>\n dispatch(resetPassword(resetPasswordObject)),\n },\n };\n};\n\nexport default useForgotPassword;\n","import useForgotPassword from '../hooks/useForgotPassword';\nimport { toJS } from '~/util/ToJs';\n\nconst ForgotPasswordContainer = ({ children, ...props }) => {\n const userProps = useForgotPassword(props);\n return children(userProps);\n};\n\nForgotPasswordContainer.propTypes = {};\n\nexport default toJS(ForgotPasswordContainer);\n","import { useDispatch, useSelector } from 'react-redux';\nimport { changePassword } from '../redux/actions';\nimport {\n selectChangePasswordSending,\n selectChangePasswordSent,\n selectChangePasswordError,\n selectUserIsAuthenticated,\n selectUserGuid,\n} from '../redux/selectors';\n\nconst useChangePassword = () => {\n const dispatch = useDispatch();\n const select = useSelector;\n\n return {\n isLoading: select(selectChangePasswordSending),\n isSuccess: select(selectChangePasswordSent),\n userId: select(selectUserGuid),\n isLoggedIn: select(selectUserIsAuthenticated),\n error: select(selectChangePasswordError),\n changePassword: (userId, currentPassword, newPassword) =>\n dispatch(changePassword(userId, currentPassword, newPassword)),\n };\n};\n\nexport default useChangePassword;\n","import useChangePassword from '../hooks/useChangePassword';\nimport { toJS } from '~/util/ToJs';\n\nconst ChangePasswordContainer = ({ children, ...props }) => {\n const userProps = useChangePassword(props);\n return children(userProps);\n};\n\nChangePasswordContainer.propTypes = {};\n\nexport default toJS(ChangePasswordContainer);\n","import { connect } from 'react-redux';\nimport { loginUser, logoutUser } from '../redux/actions';\nimport {\n selectUser,\n selectUserAuthenticationError,\n selectUserError,\n selectUserIsAuthenticated,\n selectUserIsLoading,\n} from '../redux/selectors';\nimport { toJS } from '~/util/ToJs';\n\nconst getDisplayName = WrappedComponent => {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n};\n\nconst withLogin = WrappedComponent => {\n const mapStateToProps = state => {\n return {\n authenticationError: selectUserAuthenticationError(state),\n error: selectUserError(state),\n isAuthenticated: selectUserIsAuthenticated(state),\n isLoading: selectUserIsLoading(state),\n user: selectUser(state),\n };\n };\n\n const mapDispatchToProps = {\n loginUser,\n logoutUser,\n };\n\n const ConnectedComponent = connect(\n mapStateToProps,\n mapDispatchToProps\n )(toJS(WrappedComponent));\n\n ConnectedComponent.displayName = `${getDisplayName(WrappedComponent)}`;\n\n return ConnectedComponent;\n};\n\nexport default withLogin;\n","import { connect } from 'react-redux';\nimport { registerUser } from '../redux/actions';\nimport {\n selectUserRegistration,\n selectUserRegistrationError,\n selectUserRegistrationIsLoading,\n selectUserRegistrationIsSuccess,\n} from '../redux/selectors';\nimport { toJS } from '~/util/ToJs';\n\nconst getDisplayName = WrappedComponent => {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n};\n\nconst withRegistration = WrappedComponent => {\n const mapStateToProps = state => {\n return {\n error: selectUserRegistrationError(state),\n isLoading: selectUserRegistrationIsLoading(state),\n isSuccess: selectUserRegistrationIsSuccess(state),\n user: selectUserRegistration(state),\n };\n };\n\n const mapDispatchToProps = {\n registerUser,\n };\n\n const ConnectedComponent = connect(\n mapStateToProps,\n mapDispatchToProps\n )(toJS(WrappedComponent));\n\n ConnectedComponent.displayName = `${getDisplayName(WrappedComponent)}`;\n\n return ConnectedComponent;\n};\n\nexport default withRegistration;\n"],"names":["loginUser","username","password","action","LOGIN_USER","logoutUser","redirectPath","LOGOUT_USER","registerUser","user","mappers","REGISTER_USER","requestPasswordReset","userEmailObject","REQUEST_USER_PASSWORD_RESET","resetPassword","resetPasswordObject","RESET_USER_PASSWORD","changePassword","userId","currentPassword","newPassword","CHANGE_USER_PASSWORD","useLogin","dispatch","useDispatch","select","useSelector","authenticationError","selectUserAuthenticationError","authenticationErrorMessage","selectUserAuthenticationErrorMessage","error","selectUserError","errorMessage","selectUserErrorMessage","isAuthenticated","selectUserIsAuthenticated","isLoading","selectUserIsLoading","selectUser","toJS","LoginContainer","children","props","userProps","propTypes","useRegistration","selectUserRegistrationError","selectUserRegistrationIsLoading","isSuccess","selectUserRegistrationIsSuccess","selectUserRegistration","RegistrationContainer","useForgotPassword","selectPasswordResetRequestSending","selectPasswordResetRequestSent","selectPasswordResetRequestError","setNewPassword","queryString","selectCurrentSearch","selectResetPasswordSending","selectResetPasswordSent","selectResetPasswordError","submit","ForgotPasswordContainer","useChangePassword","selectChangePasswordSending","selectChangePasswordSent","selectUserGuid","isLoggedIn","selectChangePasswordError","ChangePasswordContainer","getDisplayName","WrappedComponent","displayName","name","withLogin","mapStateToProps","state","mapDispatchToProps","ConnectedComponent","connect","withRegistration"],"mappings":"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"}
|
package/esm/util.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Link as Link$1 } from 'react-router-dom';
|
|
3
2
|
import { connect } from 'react-redux';
|
|
4
3
|
import styled from 'styled-components';
|
|
5
4
|
import mapJson, { jpath } from 'jsonpath-mapper';
|
|
@@ -7,9 +6,7 @@ export { jpath, default as mapJson } from 'jsonpath-mapper';
|
|
|
7
6
|
import 'immutable';
|
|
8
7
|
import { a as selectCommitRef, b as selectBuildNumber, s as selectVersionStatus } from './version-7fdbd2d5.js';
|
|
9
8
|
import 'query-string';
|
|
10
|
-
import { a as selectCurrentProject } from './selectors-
|
|
11
|
-
import PropTypes from 'prop-types';
|
|
12
|
-
import { HashLink } from 'react-router-hash-link';
|
|
9
|
+
import { a as selectCurrentProject } from './selectors-68799788.js';
|
|
13
10
|
|
|
14
11
|
/**
|
|
15
12
|
*
|
|
@@ -94,6 +91,18 @@ const mapComposer = (composer, mappers) => Array.isArray(composer) ? composer.ma
|
|
|
94
91
|
*/
|
|
95
92
|
|
|
96
93
|
const useComposerMapper = (composer = [], mappers) => mapComposer(composer, mappers);
|
|
94
|
+
/**
|
|
95
|
+
* entryMapper will return a function to satisfy an entryMapper when defining app route
|
|
96
|
+
* this is essentially a shorthand function to prevent boilerplate repetition inside your routes file
|
|
97
|
+
* you do not need to use this function should you wish to map your entry via raw JS functions
|
|
98
|
+
* @param mapping the jsonpath-mapper mapping template to apply when the route is resolved
|
|
99
|
+
* @returns {mappedEntry}
|
|
100
|
+
*/
|
|
101
|
+
|
|
102
|
+
const entryMapper = mapping => (node, state) => mapJson({ ...node,
|
|
103
|
+
...node.entry,
|
|
104
|
+
state
|
|
105
|
+
}, mapping);
|
|
97
106
|
|
|
98
107
|
const setCachingHeaders = (response, {
|
|
99
108
|
cacheControl = 'private',
|
|
@@ -103,8 +112,6 @@ const setCachingHeaders = (response, {
|
|
|
103
112
|
if (surrogateControl) response[method]('Surrogate-Control', `max-age=${surrogateControl.toString()}`);
|
|
104
113
|
};
|
|
105
114
|
|
|
106
|
-
var setCachingHeaders_1 = setCachingHeaders;
|
|
107
|
-
|
|
108
115
|
const stringifyStrings = obj => {
|
|
109
116
|
const returnObj = Array.isArray(obj) ? [] : {};
|
|
110
117
|
Object.entries(obj).forEach(([key, value]) => {
|
|
@@ -128,7 +135,7 @@ const stringifyStrings = obj => {
|
|
|
128
135
|
var stringifyStrings_1 = stringifyStrings;
|
|
129
136
|
|
|
130
137
|
const url = (alias, project) => {
|
|
131
|
-
const projectAndAlias = project && project.toLowerCase()
|
|
138
|
+
const projectAndAlias = project && project.toLowerCase() !== 'website' ? `${project.toLowerCase()}-${alias}` : alias;
|
|
132
139
|
return {
|
|
133
140
|
api: `https://api-${alias}.cloud.contensis.com`,
|
|
134
141
|
cms: `https://cms-${alias}.cloud.contensis.com`,
|
|
@@ -211,70 +218,9 @@ const mapStateToVersionInfo = state => {
|
|
|
211
218
|
|
|
212
219
|
const VersionInfoStyledTable = styled.table.withConfig({
|
|
213
220
|
displayName: "VersionInfostyled__VersionInfoStyledTable",
|
|
214
|
-
componentId: "
|
|
221
|
+
componentId: "ogujr7-0"
|
|
215
222
|
})(["font-family:'Source Sans Pro',Helvetica,Arial,sans-serif;font-size:1.6rem;line-height:1.5rem;border-bottom:4px solid #8892bf;border-collapse:separate;margin:0 auto;width:80%;th{text-align:left;background-color:#c4c9df;border-bottom:#8892bf 2px solid;border-bottom-color:#8892bf;border-top:20px solid #fff;}td{border-bottom:1px solid #eee;}td,th{padding:0.5rem 0.75rem;vertical-align:top;}.left{width:25%;}tr th{border-right:hidden;border-spacing:0 15px;}.green{background-color:#9c9;border-bottom:1px solid #696;}.red{background-color:#c99;border-bottom:1px solid #966;}.small{font-size:100%;line-height:2.4rem;}"]);
|
|
216
223
|
|
|
217
|
-
const Link = ({
|
|
218
|
-
className = '',
|
|
219
|
-
children,
|
|
220
|
-
download,
|
|
221
|
-
onClick,
|
|
222
|
-
openInNewWindow,
|
|
223
|
-
title,
|
|
224
|
-
uri
|
|
225
|
-
}) => {
|
|
226
|
-
className += ' Link';
|
|
227
|
-
|
|
228
|
-
if (!uri) {
|
|
229
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
230
|
-
className: className
|
|
231
|
-
}, children);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
let newWindow = openInNewWindow ? '_blank' : '_self';
|
|
235
|
-
uri = encodeURI(uri);
|
|
236
|
-
|
|
237
|
-
if (newWindow != '_blank' && uri && uri.startsWith('/')) {
|
|
238
|
-
if (uri.indexOf('#') > -1) {
|
|
239
|
-
return /*#__PURE__*/React.createElement(HashLink, {
|
|
240
|
-
className: className,
|
|
241
|
-
download: download,
|
|
242
|
-
onClick: onClick,
|
|
243
|
-
title: title,
|
|
244
|
-
to: uri
|
|
245
|
-
}, children);
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
return /*#__PURE__*/React.createElement(Link$1, {
|
|
249
|
-
className: className,
|
|
250
|
-
download: download,
|
|
251
|
-
onClick: onClick,
|
|
252
|
-
title: title,
|
|
253
|
-
to: uri
|
|
254
|
-
}, children);
|
|
255
|
-
} else {
|
|
256
|
-
return /*#__PURE__*/React.createElement("a", {
|
|
257
|
-
className: className,
|
|
258
|
-
download: download,
|
|
259
|
-
href: uri,
|
|
260
|
-
onClick: onClick,
|
|
261
|
-
target: newWindow,
|
|
262
|
-
title: title,
|
|
263
|
-
rel: "noopener noreferrer"
|
|
264
|
-
}, children);
|
|
265
|
-
}
|
|
266
|
-
};
|
|
267
|
-
|
|
268
|
-
Link.propTypes = {
|
|
269
|
-
className: PropTypes.string,
|
|
270
|
-
children: PropTypes.oneOfType([PropTypes.element, PropTypes.node]),
|
|
271
|
-
download: PropTypes.string,
|
|
272
|
-
onClick: PropTypes.func,
|
|
273
|
-
openInNewWindow: PropTypes.bool,
|
|
274
|
-
title: PropTypes.string,
|
|
275
|
-
uri: PropTypes.string
|
|
276
|
-
};
|
|
277
|
-
|
|
278
224
|
const VersionInfo = ({
|
|
279
225
|
deliveryApi,
|
|
280
226
|
devEnv,
|
|
@@ -293,8 +239,8 @@ const VersionInfo = ({
|
|
|
293
239
|
}) => {
|
|
294
240
|
return /*#__PURE__*/React.createElement(VersionInfoStyledTable, null, /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", {
|
|
295
241
|
colSpan: 2
|
|
296
|
-
}, /*#__PURE__*/React.createElement("h1", null, /*#__PURE__*/React.createElement(
|
|
297
|
-
|
|
242
|
+
}, /*#__PURE__*/React.createElement("h1", null, /*#__PURE__*/React.createElement("a", {
|
|
243
|
+
href: "/"
|
|
298
244
|
}, "Version Information"))))), /*#__PURE__*/React.createElement("tbody", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("th", {
|
|
299
245
|
colSpan: 2
|
|
300
246
|
}, "Package detail")), /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", {
|
|
@@ -316,9 +262,9 @@ const VersionInfo = ({
|
|
|
316
262
|
target: "_blank",
|
|
317
263
|
rel: "noopener noreferrer"
|
|
318
264
|
}, version.commitRef))), /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, "Project"), /*#__PURE__*/React.createElement("td", {
|
|
319
|
-
className: project
|
|
265
|
+
className: project === 'unknown' ? 'red' : ''
|
|
320
266
|
}, project)), /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, "Contensis version status: "), /*#__PURE__*/React.createElement("td", {
|
|
321
|
-
className: version.contensisVersionStatus
|
|
267
|
+
className: version.contensisVersionStatus === 'published' ? 'green' : 'red'
|
|
322
268
|
}, version.contensisVersionStatus)), /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("th", {
|
|
323
269
|
colSpan: 2
|
|
324
270
|
}, "Build configuration")), /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, "Environment"), /*#__PURE__*/React.createElement("td", null, servers.alias)), /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, "Public uri"), /*#__PURE__*/React.createElement("td", null, publicUri)), /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, "Zengenti packages"), /*#__PURE__*/React.createElement("td", null, zenPackageVersions.map(([pkg, ver], idx) => /*#__PURE__*/React.createElement("div", {
|
|
@@ -353,23 +299,7 @@ const VersionInfo = ({
|
|
|
353
299
|
}, "[ ", k, ": ", v, " ]"))))));
|
|
354
300
|
};
|
|
355
301
|
|
|
356
|
-
VersionInfo.propTypes = {
|
|
357
|
-
deliveryApi: PropTypes.object,
|
|
358
|
-
devEnv: PropTypes.object,
|
|
359
|
-
disableSsrRedux: PropTypes.bool,
|
|
360
|
-
nodeEnv: PropTypes.string,
|
|
361
|
-
packageDetail: PropTypes.object,
|
|
362
|
-
project: PropTypes.string,
|
|
363
|
-
projects: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),
|
|
364
|
-
proxyDeliveryApi: PropTypes.bool,
|
|
365
|
-
publicUri: PropTypes.string,
|
|
366
|
-
reverseProxyPaths: PropTypes.array,
|
|
367
|
-
servers: PropTypes.object,
|
|
368
|
-
uris: PropTypes.object,
|
|
369
|
-
version: PropTypes.object,
|
|
370
|
-
zenPackageVersions: PropTypes.array
|
|
371
|
-
};
|
|
372
302
|
var VersionInfo$1 = connect(mapStateToVersionInfo)(VersionInfo);
|
|
373
303
|
|
|
374
|
-
export { VersionInfo$1 as VersionInfo, mapComposer, mapEntries,
|
|
304
|
+
export { VersionInfo$1 as VersionInfo, entryMapper, mapComposer, mapEntries, setCachingHeaders, stringifyStrings_1 as stringifyStrings, url as urls, useComposerMapper, useEntriesMapper, useEntryMapper, useMapper };
|
|
375
305
|
//# sourceMappingURL=util.js.map
|
package/esm/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sources":["../src/util/json-mapper.ts","../src/server/features/caching/setCachingHeaders.js","../src/util/stringifyStrings.js","../src/util/urls.ts","../src/app/pages/VersionInfo/transformations/state-to-versioninfoprops.mapper.js","../src/app/pages/VersionInfo/components/VersionInfo.styled.js","../src/app/features/link/components/Link.js","../src/app/pages/VersionInfo/components/VersionInfo.js"],"sourcesContent":["import mapJson, { jpath } from 'jsonpath-mapper';\nimport MappingTemplate from 'jsonpath-mapper/dist/models/Template';\n\nexport { default as mapJson, jpath } from 'jsonpath-mapper';\n\ntype Mappers<S> = { [contentTypeId: string]: MappingTemplate<S> };\n\n/**\n *\n * @param {object} json The source object we wish to transform\n * @param {object} template The mapping template we wish to apply to the source\n * object to generate the intended target object\n */\nexport const useMapper = <T, S>(json: S, template: MappingTemplate<S>) => {\n return template ? (mapJson((json || {}) as S, template) as T) : json;\n};\n\nconst chooseMapperByFieldValue = <S, T extends Mappers<S>>(\n entry: S,\n mappers: T,\n field = 'sys.contentTypeId'\n) => {\n const fieldValue = jpath(field, entry || {}) as string;\n return (mappers[fieldValue] || mappers.default || {}) as T[keyof T];\n};\n\n/**\n * useEntriesMapper hook to take a list of entries from Delivery API along\n * with mappers for each contentTypeId and return an array of mapped objects\n * @param {any} entry The source entry we wish to transform\n * @param {object} mappers Object with keys containing mapper templates,\n * the key name matching sys.contentTypeId\n * @param {string} field Only include if we need to match content based on\n * a field other than sys.contentTypeId in the source data\n * @returns {object} Object transformed using a matched content type or\n * a default mapper template, returns an empty object if no mapper template\n * couild be applied.\n */\nexport const useEntriesMapper = <S, T extends Mappers<S>>(\n entry: S,\n mappers: T,\n field = 'sys.contentTypeId'\n) => {\n const mapper = chooseMapperByFieldValue(entry, mappers, field);\n return useMapper(entry, mapper);\n};\n\n/**\n * Deprecated: due to misleading name, use the hook useEntriesMapper instead\n */\nexport const useEntryMapper = useEntriesMapper;\n\n/**\n * mapEntries mapping function to take a list of entries from Delivery API along\n * with mappers for each contentTypeId and return an array of mapped objects\n * @param {any} entry The source entry we wish to transform\n * @param {object} mappers Object with keys containing mapper templates,\n * the key name matching sys.contentTypeId\n * @param {string} field Only include if we need to match content based on\n * a field other than sys.contentTypeId in the source data\n * @returns {object} Object transformed using a matched content type or\n * a default mapper template, returns an empty object if no mapper template\n * couild be applied.\n */\nexport const mapEntries = <\n S,\n Mappers extends { [contentTypeId: string]: MappingTemplate<S> }\n>(\n entries: S[],\n mappers: Mappers,\n field = 'sys.contentTypeId'\n) =>\n entries.map(entry => {\n const mapper = chooseMapperByFieldValue(entry, mappers, field);\n return mapper ? mapJson((entry || {}) as S, mapper) : entry;\n });\n\n/**\n * mapComposer mapping function to take a composer field from Delivery API along\n * with mappers for each Composer Item \"type\" and return an array of mapped components\n * @param {array} composer Composer field array of Composer Items\n * @param {object} mappers A keyed object with each key matching the Composer Item \"type\"\n * @returns {array} Array of mapped objects transformed using a matched Composer Item \"type\" mapping\n * or null. Injects a \"_type\" property into each transformed object in the array to indicate\n * where the mapping originated and for what component the mapped object is representing\n */\nexport const mapComposer = <\n S extends { type: string; value: any },\n T extends Mappers<S>\n>(\n composer: S[],\n mappers: T\n) =>\n Array.isArray(composer)\n ? composer.map(composerItem => {\n const fieldValue = composerItem.type;\n const mapper = mappers[fieldValue] || mappers.default;\n return mapper\n ? {\n _type: fieldValue,\n ...(mapJson(composerItem.value || {}, mapper) as any),\n }\n : composerItem;\n })\n : composer || [];\n\n/**\n * useComposerMapper hook to take a composer field from Delivery API along\n * with mappers for each Composer Item \"type\" and return an array of mapped components\n * @param {array} composer Composer field array of Composer Items\n * @param {object} mappers A keyed object with each key matching the Composer Item \"type\"\n * @returns {array} Array of mapped objects transformed using a matched Composer Item \"type\" mapping\n * or null. Injects a \"_type\" property into each transformed object in the array to indicate\n * where the mapping originated and for what component the mapped object is representing\n */\nexport const useComposerMapper = <\n S extends { type: string; value: any },\n T extends Mappers<S>\n>(\n composer: S[] = [],\n mappers: T\n) => mapComposer(composer, mappers);\n\nexport default mapJson;\n","const setCachingHeaders = (\n response,\n { cacheControl = 'private', surrogateControl = '3600' },\n method = 'header'\n) => {\n if (cacheControl) response[method]('Cache-Control', cacheControl);\n if (surrogateControl)\n response[method](\n 'Surrogate-Control',\n `max-age=${surrogateControl.toString()}`\n );\n};\n\nmodule.exports = setCachingHeaders;\n","const stringifyStrings = obj => {\n const returnObj = Array.isArray(obj) ? [] : {};\n Object.entries(obj).forEach(([key, value]) => {\n switch (typeof value) {\n case 'string':\n returnObj[key] = JSON.stringify(value);\n break;\n case 'object':\n returnObj[key] = stringifyStrings(value);\n break;\n default:\n returnObj[key] = value;\n break;\n }\n });\n return returnObj;\n};\n\nmodule.exports = stringifyStrings;\n","const url = (alias: string, project: string) => {\n const projectAndAlias =\n project && project.toLowerCase() != 'website'\n ? `${project.toLowerCase()}-${alias}`\n : alias;\n return {\n api: `https://api-${alias}.cloud.contensis.com`,\n cms: `https://cms-${alias}.cloud.contensis.com`,\n liveWeb: `https://live-${projectAndAlias}.cloud.contensis.com`,\n previewWeb: `https://preview-${projectAndAlias}.cloud.contensis.com`,\n iisWeb: `https://iis-live-${projectAndAlias}.cloud.contensis.com`,\n iisPreviewWeb: `https://iis-preview-${projectAndAlias}.cloud.contensis.com`,\n };\n};\n\nexport default url;\n","import { default as mapJson } from '~/util/json-mapper';\nimport { selectCurrentProject } from '~/routing/redux/selectors';\nimport {\n selectBuildNumber,\n selectCommitRef,\n selectVersionStatus,\n} from '~/redux/selectors/version';\n\nconst context = typeof window != 'undefined' ? window : global;\n\nconst isDev = process.env.NODE_ENV === 'development';\n\nconst pj = () =>\n isDev\n ? PACKAGE_JSON /* global PACKAGE_JSON */\n : context.PACKAGE_JSON || { name: 'packagejson not found', repository: '' };\n\nconst versionInfoProps = {\n packageDetail: () => {\n const pkg = pj();\n return { name: pkg.name, version: pkg.version, repository: pkg.repository };\n },\n uris: {\n gitRepo: () => pj().repository,\n commit: state => {\n const commitRef = selectCommitRef(state);\n return `${pj().repository}/commit/${commitRef ? commitRef : ''}`;\n },\n pipeline: state => {\n const buildNumber = selectBuildNumber(state);\n return `${pj().repository}/${\n pj().repository.includes('github.com') ? 'actions/runs' : 'pipelines'\n }/${buildNumber ? buildNumber : ''}`;\n },\n },\n zenPackageVersions: () => [\n ...(Object.entries(pj().devDependencies || {}).filter(\n ([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')\n ) || []),\n ...(Object.entries(pj().dependencies || {}).filter(\n ([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')\n ) || []),\n ],\n deliveryApi: () =>\n JSON.parse(\n JSON.stringify(DELIVERY_API_CONFIG /* global DELIVERY_API_CONFIG */)\n ),\n devEnv: () =>\n typeof DEV_ENV !== 'undefined' /* global DEV_ENV */ ? DEV_ENV : null,\n disableSsrRedux: () =>\n isDev\n ? DISABLE_SSR_REDUX /* global DISABLE_SSR_REDUX*/\n : context.DISABLE_SSR_REDUX || false,\n nodeEnv: () => process.env.NODE_ENV || 'production',\n packagejson: () => pj() || {},\n projects: () => (isDev ? PROJECTS /* global PROJECTS */ : context.PROJECTS),\n proxyDeliveryApi: () =>\n isDev\n ? PROXY_DELIVERY_API /* global PROXY_DELIVERY_API */\n : context.PROXY_DELIVERY_API || false,\n publicUri: () =>\n isDev ? PUBLIC_URI /* global PUBLIC_URI */ : context.PUBLIC_URI || null,\n project: state => selectCurrentProject(state),\n reverseProxyPaths: () =>\n isDev\n ? REVERSE_PROXY_PATHS /* global REVERSE_PROXY_PATHS */\n : context.REVERSE_PROXY_PATHS || {},\n servers: () => (isDev ? SERVERS /* global SERVERS */ : context.SERVERS),\n version: {\n buildNumber: state => selectBuildNumber(state),\n commitRef: state => selectCommitRef(state),\n contensisVersionStatus: state => selectVersionStatus(state),\n },\n};\n\nconst mapStateToVersionInfo = state => {\n const mappedProps = mapJson(state, versionInfoProps);\n return mappedProps;\n};\n\nexport default mapStateToVersionInfo;\n","import styled from 'styled-components';\n\nexport const VersionInfoStyledTable = styled.table`\n font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;\n font-size: 1.6rem;\n line-height: 1.5rem;\n border-bottom: 4px solid #8892bf;\n border-collapse: separate;\n margin: 0 auto;\n width: 80%;\n th {\n text-align: left;\n background-color: #c4c9df;\n border-bottom: #8892bf 2px solid;\n border-bottom-color: #8892bf;\n border-top: 20px solid #fff;\n }\n td {\n border-bottom: 1px solid #eee;\n }\n td,\n th {\n padding: 0.5rem 0.75rem;\n vertical-align: top;\n }\n .left {\n width: 25%;\n }\n tr th {\n border-right: hidden;\n border-spacing: 0 15px;\n }\n .green {\n background-color: #9c9;\n border-bottom: 1px solid #696;\n }\n .red {\n background-color: #c99;\n border-bottom: 1px solid #966;\n }\n .small {\n font-size: 100%;\n line-height: 2.4rem;\n }\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link as PageLink } from 'react-router-dom';\nimport { HashLink } from 'react-router-hash-link';\n\nconst Link = ({\n className = '',\n children,\n download,\n onClick,\n openInNewWindow,\n title,\n uri,\n}) => {\n className += ' Link';\n if (!uri) {\n return <span className={className}>{children}</span>;\n }\n\n let newWindow = openInNewWindow ? '_blank' : '_self';\n uri = encodeURI(uri);\n\n if (newWindow != '_blank' && uri && uri.startsWith('/')) {\n if (uri.indexOf('#') > -1) {\n return (\n <HashLink\n className={className}\n download={download}\n onClick={onClick}\n title={title}\n to={uri}\n >\n {children}\n </HashLink>\n );\n }\n return (\n <PageLink\n className={className}\n download={download}\n onClick={onClick}\n title={title}\n to={uri}\n >\n {children}\n </PageLink>\n );\n } else {\n return (\n <a\n className={className}\n download={download}\n href={uri}\n onClick={onClick}\n target={newWindow}\n title={title}\n rel=\"noopener noreferrer\"\n >\n {children}\n </a>\n );\n }\n};\n\nLink.propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.node]),\n download: PropTypes.string,\n onClick: PropTypes.func,\n openInNewWindow: PropTypes.bool,\n title: PropTypes.string,\n uri: PropTypes.string,\n};\n\nexport default Link;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\n\nimport mapStateToVersionInfo from '../transformations/state-to-versioninfoprops.mapper.js';\n\nimport { VersionInfoStyledTable } from './VersionInfo.styled.js';\nimport Link from '~/app/features/link';\n\nconst VersionInfo = ({\n deliveryApi,\n devEnv,\n disableSsrRedux,\n nodeEnv,\n packageDetail,\n project,\n projects,\n proxyDeliveryApi,\n publicUri,\n reverseProxyPaths,\n servers,\n uris,\n version,\n zenPackageVersions,\n}) => {\n return (\n <VersionInfoStyledTable>\n <thead>\n <tr>\n <td colSpan={2}>\n <h1>\n <Link path=\"/\">Version Information</Link>\n </h1>\n </td>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th colSpan={2}>Package detail</th>\n </tr>\n <tr>\n <td className=\"left\">Name</td>\n <td>{packageDetail.name}</td>\n </tr>\n <tr>\n <td className=\"left\">Version</td>\n <td>{packageDetail.version}</td>\n </tr>\n <tr>\n <th colSpan={2}>Version info (state)</th>\n </tr>\n <tr>\n <td>Git repo url: </td>\n <td>\n <a\n href={packageDetail.repository}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {packageDetail.repository}\n </a>\n </td>\n </tr>\n <tr>\n <td>Pipeline: </td>\n <td>\n <a href={uris.pipeline} target=\"_blank\" rel=\"noopener noreferrer\">\n {version.buildNumber}\n </a>\n </td>\n </tr>\n <tr>\n <td>Commit: </td>\n <td>\n <a href={uris.commit} target=\"_blank\" rel=\"noopener noreferrer\">\n {version.commitRef}\n </a>\n </td>\n </tr>\n {/* <tr>\n <td>Last release ref: </td>\n <td></td>\n </tr>\n <tr>\n <td>Number of commits since last release: </td>\n <td></td>\n </tr> */}\n <tr>\n <td>Project</td>\n <td className={project == 'unknown' ? 'red' : ''}>{project}</td>\n </tr>\n <tr>\n <td>Contensis version status: </td>\n <td\n className={\n version.contensisVersionStatus == 'published' ? 'green' : 'red'\n }\n >\n {version.contensisVersionStatus}\n </td>\n </tr>\n <tr>\n <th colSpan={2}>Build configuration</th>\n </tr>\n <tr>\n <td>Environment</td>\n <td>{servers.alias}</td>\n </tr>\n <tr>\n <td>Public uri</td>\n <td>{publicUri}</td>\n </tr>\n <tr>\n <td>Zengenti packages</td>\n <td>\n {zenPackageVersions.map(([pkg, ver], idx) => (\n <div key={idx}>\n {pkg}: {ver}\n </div>\n ))}\n </td>\n </tr>\n <tr>\n <td>Servers</td>\n <td className=\"small\">\n <div>web: {servers.web}</div>\n <div>preview: {servers.previewWeb}</div>\n <div>api: {servers.api}</div>\n <div>cms: {servers.cms}</div>\n <div>iis: {servers.iis}</div>\n <div>iis preview: {servers.previewIis}</div>\n </td>\n </tr>\n <tr>\n <td>Reverse proxy paths</td>\n <td>\n {Object.entries(reverseProxyPaths).map(([, path], key) => (\n <span key={key}>[ {path} ] </span>\n ))}\n </td>\n </tr>\n <tr>\n <td>Projects</td>\n <td>\n {Object.entries(projects).map(([, project], key) => (\n <div key={key}>\n [ {project.id}: {project.publicUri} ]\n </div>\n ))}\n </td>\n </tr>\n <tr>\n <td>Delivery API</td>\n <td className=\"small\">\n <ul style={{ margin: 0, padding: 0 }}>\n {Object.entries(deliveryApi).map(([key, value], idx) => {\n if (typeof value === 'object') return null;\n return (\n <li key={idx} style={{ listStyleType: 'none' }}>\n {key}: <span>{value}</span>\n </li>\n );\n })}\n </ul>\n </td>\n </tr>\n <tr>\n <td>Proxy Delivery API requests</td>\n <td className={proxyDeliveryApi ? 'green' : 'red'}>\n {proxyDeliveryApi.toString()}\n </td>\n </tr>\n <tr>\n <td>Disable SSR inline-redux</td>\n <td>{disableSsrRedux.toString()}</td>\n </tr>\n <tr>\n <td>NODE_ENV</td>\n <td className={nodeEnv === 'production' ? 'green' : 'red'}>\n {nodeEnv.toString()}\n </td>\n </tr>\n {devEnv && (\n <tr>\n <td>process.env</td>\n <td>\n {Object.entries(devEnv).map(([k, v], key) => (\n <div key={key}>\n [ {k}: {v} ]\n </div>\n ))}\n </td>\n </tr>\n )}\n </tbody>\n </VersionInfoStyledTable>\n );\n};\n\nVersionInfo.propTypes = {\n deliveryApi: PropTypes.object,\n devEnv: PropTypes.object,\n disableSsrRedux: PropTypes.bool,\n nodeEnv: PropTypes.string,\n packageDetail: PropTypes.object,\n project: PropTypes.string,\n projects: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n proxyDeliveryApi: PropTypes.bool,\n publicUri: PropTypes.string,\n reverseProxyPaths: PropTypes.array,\n servers: PropTypes.object,\n uris: PropTypes.object,\n version: PropTypes.object,\n zenPackageVersions: PropTypes.array,\n};\n\nexport default connect(mapStateToVersionInfo)(VersionInfo);\n"],"names":["useMapper","json","template","mapJson","chooseMapperByFieldValue","entry","mappers","field","fieldValue","jpath","default","useEntriesMapper","mapper","useEntryMapper","mapEntries","entries","map","mapComposer","composer","Array","isArray","composerItem","type","_type","value","useComposerMapper","setCachingHeaders","response","cacheControl","surrogateControl","method","toString","stringifyStrings","obj","returnObj","Object","forEach","key","JSON","stringify","url","alias","project","projectAndAlias","toLowerCase","api","cms","liveWeb","previewWeb","iisWeb","iisPreviewWeb","context","window","global","isDev","process","env","NODE_ENV","pj","PACKAGE_JSON","name","repository","versionInfoProps","packageDetail","pkg","version","uris","gitRepo","commit","state","commitRef","selectCommitRef","pipeline","buildNumber","selectBuildNumber","includes","zenPackageVersions","devDependencies","filter","dependencies","deliveryApi","parse","DELIVERY_API_CONFIG","devEnv","DEV_ENV","disableSsrRedux","DISABLE_SSR_REDUX","nodeEnv","packagejson","projects","PROJECTS","proxyDeliveryApi","PROXY_DELIVERY_API","publicUri","PUBLIC_URI","selectCurrentProject","reverseProxyPaths","REVERSE_PROXY_PATHS","servers","SERVERS","contensisVersionStatus","selectVersionStatus","mapStateToVersionInfo","mappedProps","VersionInfoStyledTable","styled","table","Link","className","children","download","onClick","openInNewWindow","title","uri","newWindow","encodeURI","startsWith","indexOf","PageLink","propTypes","PropTypes","string","oneOfType","element","node","func","bool","VersionInfo","ver","idx","web","iis","previewIis","path","id","margin","padding","listStyleType","k","v","object","array","connect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"util.js","sources":["../src/util/json-mapper.ts","../src/server/features/caching/setCachingHeaders.ts","../src/util/stringifyStrings.js","../src/util/urls.ts","../src/app/pages/VersionInfo/transformations/state-to-versioninfoprops.mapper.ts","../src/app/pages/VersionInfo/components/VersionInfo.styled.tsx","../src/app/pages/VersionInfo/components/VersionInfo.tsx"],"sourcesContent":["import mapJson, { jpath } from 'jsonpath-mapper';\nimport MappingTemplate from 'jsonpath-mapper/dist/models/Template';\nimport { EntryMapper } from '~/routing/routes';\n\nexport { default as mapJson, jpath } from 'jsonpath-mapper';\n\ntype Mappers<S> = { [contentTypeId: string]: MappingTemplate<S> };\n\n/**\n *\n * @param {object} json The source object we wish to transform\n * @param {object} template The mapping template we wish to apply to the source\n * object to generate the intended target object\n */\nexport const useMapper = <T, S>(json: S, template: MappingTemplate<S>) => {\n return template ? (mapJson((json || {}) as S, template) as T) : json;\n};\n\nconst chooseMapperByFieldValue = <S, T extends Mappers<S>>(\n entry: S,\n mappers: T,\n field = 'sys.contentTypeId'\n) => {\n const fieldValue = jpath(field, entry || {}) as string;\n return (mappers[fieldValue] || mappers.default || {}) as T[keyof T];\n};\n\n/**\n * useEntriesMapper hook to take a list of entries from Delivery API along\n * with mappers for each contentTypeId and return an array of mapped objects\n * @param {any} entry The source entry we wish to transform\n * @param {object} mappers Object with keys containing mapper templates,\n * the key name matching sys.contentTypeId\n * @param {string} field Only include if we need to match content based on\n * a field other than sys.contentTypeId in the source data\n * @returns {object} Object transformed using a matched content type or\n * a default mapper template, returns an empty object if no mapper template\n * couild be applied.\n */\nexport const useEntriesMapper = <S, T extends Mappers<S>>(\n entry: S,\n mappers: T,\n field = 'sys.contentTypeId'\n) => {\n const mapper = chooseMapperByFieldValue(entry, mappers, field);\n return useMapper(entry, mapper);\n};\n\n/**\n * Deprecated: due to misleading name, use the hook useEntriesMapper instead\n */\nexport const useEntryMapper = useEntriesMapper;\n\n/**\n * mapEntries mapping function to take a list of entries from Delivery API along\n * with mappers for each contentTypeId and return an array of mapped objects\n * @param {any} entry The source entry we wish to transform\n * @param {object} mappers Object with keys containing mapper templates,\n * the key name matching sys.contentTypeId\n * @param {string} field Only include if we need to match content based on\n * a field other than sys.contentTypeId in the source data\n * @returns {object} Object transformed using a matched content type or\n * a default mapper template, returns an empty object if no mapper template\n * couild be applied.\n */\nexport const mapEntries = <\n S,\n Mappers extends { [contentTypeId: string]: MappingTemplate<S> }\n>(\n entries: S[],\n mappers: Mappers,\n field = 'sys.contentTypeId'\n) =>\n entries.map(entry => {\n const mapper = chooseMapperByFieldValue(entry, mappers, field);\n return mapper ? mapJson((entry || {}) as S, mapper) : entry;\n });\n\n/**\n * mapComposer mapping function to take a composer field from Delivery API along\n * with mappers for each Composer Item \"type\" and return an array of mapped components\n * @param {array} composer Composer field array of Composer Items\n * @param {object} mappers A keyed object with each key matching the Composer Item \"type\"\n * @returns {array} Array of mapped objects transformed using a matched Composer Item \"type\" mapping\n * or null. Injects a \"_type\" property into each transformed object in the array to indicate\n * where the mapping originated and for what component the mapped object is representing\n */\nexport const mapComposer = <\n S extends { type: string; value: any },\n T extends Mappers<S>\n>(\n composer: S[],\n mappers: T\n) =>\n Array.isArray(composer)\n ? composer.map(composerItem => {\n const fieldValue = composerItem.type;\n const mapper = mappers[fieldValue] || mappers.default;\n return mapper\n ? {\n _type: fieldValue,\n ...(mapJson(composerItem.value || {}, mapper) as any),\n }\n : composerItem;\n })\n : composer || [];\n\n/**\n * useComposerMapper hook to take a composer field from Delivery API along\n * with mappers for each Composer Item \"type\" and return an array of mapped components\n * @param {array} composer Composer field array of Composer Items\n * @param {object} mappers A keyed object with each key matching the Composer Item \"type\"\n * @returns {array} Array of mapped objects transformed using a matched Composer Item \"type\" mapping\n * or null. Injects a \"_type\" property into each transformed object in the array to indicate\n * where the mapping originated and for what component the mapped object is representing\n */\nexport const useComposerMapper = <\n S extends { type: string; value: any },\n T extends Mappers<S>\n>(\n composer: S[] = [],\n mappers: T\n) => mapComposer(composer, mappers);\n\n/**\n * entryMapper will return a function to satisfy an entryMapper when defining app route\n * this is essentially a shorthand function to prevent boilerplate repetition inside your routes file\n * you do not need to use this function should you wish to map your entry via raw JS functions\n * @param mapping the jsonpath-mapper mapping template to apply when the route is resolved\n * @returns {mappedEntry}\n */\nexport const entryMapper =\n (mapping: any): EntryMapper =>\n (node, state) =>\n mapJson({ ...node, ...node.entry, state }, mapping);\n\nexport default mapJson;\n","import { Response } from 'express';\n\nconst setCachingHeaders = (\n response: Response,\n { cacheControl = 'private', surrogateControl = '3600' },\n method = 'header'\n) => {\n if (cacheControl) response[method]('Cache-Control', cacheControl);\n if (surrogateControl)\n response[method](\n 'Surrogate-Control',\n `max-age=${surrogateControl.toString()}`\n );\n};\n\nexport default setCachingHeaders;\n","const stringifyStrings = obj => {\n const returnObj = Array.isArray(obj) ? [] : {};\n Object.entries(obj).forEach(([key, value]) => {\n switch (typeof value) {\n case 'string':\n returnObj[key] = JSON.stringify(value);\n break;\n case 'object':\n returnObj[key] = stringifyStrings(value);\n break;\n default:\n returnObj[key] = value;\n break;\n }\n });\n return returnObj;\n};\n\nmodule.exports = stringifyStrings;\n","const url = (alias: string, project: string) => {\n const projectAndAlias =\n project && project.toLowerCase() !== 'website'\n ? `${project.toLowerCase()}-${alias}`\n : alias;\n return {\n api: `https://api-${alias}.cloud.contensis.com`,\n cms: `https://cms-${alias}.cloud.contensis.com`,\n liveWeb: `https://live-${projectAndAlias}.cloud.contensis.com`,\n previewWeb: `https://preview-${projectAndAlias}.cloud.contensis.com`,\n iisWeb: `https://iis-live-${projectAndAlias}.cloud.contensis.com`,\n iisPreviewWeb: `https://iis-preview-${projectAndAlias}.cloud.contensis.com`,\n };\n};\n\nexport default url;\n","import { default as mapJson } from '~/util/json-mapper';\nimport { selectCurrentProject } from '~/routing/redux/selectors';\nimport {\n selectBuildNumber,\n selectCommitRef,\n selectVersionStatus,\n} from '~/redux/selectors/version';\nimport { IVersionInfoProps } from '../components/VersionInfo';\n\nconst context = (\n typeof window != 'undefined' ? window : global\n) as typeof globalThis & {\n DISABLE_SSR_REDUX: any;\n PACKAGE_JSON: any;\n PROJECTS: any;\n PROXY_DELIVERY_API: any;\n PUBLIC_URI: any;\n REVERSE_PROXY_PATHS: string[];\n SERVERS: any;\n};\n\nconst isDev = process.env.NODE_ENV === 'development';\n\nconst pj = () =>\n isDev\n ? PACKAGE_JSON /* global PACKAGE_JSON */\n : context.PACKAGE_JSON || { name: 'packagejson not found', repository: '' };\n\nconst versionInfoProps = {\n packageDetail: () => {\n const pkg = pj();\n return { name: pkg.name, version: pkg.version, repository: pkg.repository };\n },\n uris: {\n gitRepo: () => pj().repository,\n commit: state => {\n const commitRef = selectCommitRef(state);\n return `${pj().repository}/commit/${commitRef ? commitRef : ''}`;\n },\n pipeline: state => {\n const buildNumber = selectBuildNumber(state);\n return `${pj().repository}/${\n pj().repository.includes('github.com') ? 'actions/runs' : 'pipelines'\n }/${buildNumber ? buildNumber : ''}`;\n },\n },\n zenPackageVersions: () => [\n ...(Object.entries(pj().devDependencies || {}).filter(\n ([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')\n ) || []),\n ...(Object.entries(pj().dependencies || {}).filter(\n ([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')\n ) || []),\n ],\n deliveryApi: () =>\n JSON.parse(\n JSON.stringify(DELIVERY_API_CONFIG /* global DELIVERY_API_CONFIG */)\n ),\n devEnv: () =>\n typeof DEV_ENV !== 'undefined' /* global DEV_ENV */ ? DEV_ENV : null,\n disableSsrRedux: () =>\n isDev\n ? DISABLE_SSR_REDUX /* global DISABLE_SSR_REDUX*/\n : context.DISABLE_SSR_REDUX || false,\n nodeEnv: () => process.env.NODE_ENV || 'production',\n packagejson: () => pj() || {},\n projects: () => (isDev ? PROJECTS /* global PROJECTS */ : context.PROJECTS),\n proxyDeliveryApi: () =>\n isDev\n ? PROXY_DELIVERY_API /* global PROXY_DELIVERY_API */\n : context.PROXY_DELIVERY_API || false,\n publicUri: () =>\n isDev ? PUBLIC_URI /* global PUBLIC_URI */ : context.PUBLIC_URI || null,\n project: state => selectCurrentProject(state),\n reverseProxyPaths: () =>\n isDev\n ? REVERSE_PROXY_PATHS /* global REVERSE_PROXY_PATHS */\n : context.REVERSE_PROXY_PATHS || {},\n servers: () => (isDev ? SERVERS /* global SERVERS */ : context.SERVERS),\n version: {\n buildNumber: state => selectBuildNumber(state),\n commitRef: state => selectCommitRef(state),\n contensisVersionStatus: state => selectVersionStatus(state),\n },\n};\n\nconst mapStateToVersionInfo = state => {\n const mappedProps = mapJson(state, versionInfoProps);\n return mappedProps as IVersionInfoProps;\n};\n\nexport default mapStateToVersionInfo;\n","import styled from 'styled-components';\n\nexport const VersionInfoStyledTable = styled.table`\n font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;\n font-size: 1.6rem;\n line-height: 1.5rem;\n border-bottom: 4px solid #8892bf;\n border-collapse: separate;\n margin: 0 auto;\n width: 80%;\n th {\n text-align: left;\n background-color: #c4c9df;\n border-bottom: #8892bf 2px solid;\n border-bottom-color: #8892bf;\n border-top: 20px solid #fff;\n }\n td {\n border-bottom: 1px solid #eee;\n }\n td,\n th {\n padding: 0.5rem 0.75rem;\n vertical-align: top;\n }\n .left {\n width: 25%;\n }\n tr th {\n border-right: hidden;\n border-spacing: 0 15px;\n }\n .green {\n background-color: #9c9;\n border-bottom: 1px solid #696;\n }\n .red {\n background-color: #c99;\n border-bottom: 1px solid #966;\n }\n .small {\n font-size: 100%;\n line-height: 2.4rem;\n }\n`;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport mapStateToVersionInfo from '../transformations/state-to-versioninfoprops.mapper';\n\nimport { VersionInfoStyledTable } from './VersionInfo.styled';\n\nexport interface IVersionInfoProps {\n deliveryApi: {\n rootUrl: string;\n accessToken: string;\n projectId: string;\n livePublishingRootUrl: string;\n };\n devEnv: any;\n disableSsrRedux: boolean;\n nodeEnv: string;\n packageDetail: any;\n project: string;\n projects;\n proxyDeliveryApi;\n publicUri: string;\n reverseProxyPaths: string[];\n servers: {\n alias: string;\n api: string;\n cms: string;\n web: string;\n iis: string;\n previewIis: string;\n previewWeb: string;\n };\n uris: {\n gitRepo: string;\n commit: string;\n pipeline: string;\n };\n version: {\n buildNumber: string;\n commitRef: string;\n contensisVersionStatus: string;\n };\n zenPackageVersions: string[];\n}\n\nconst VersionInfo = ({\n deliveryApi,\n devEnv,\n disableSsrRedux,\n nodeEnv,\n packageDetail,\n project,\n projects,\n proxyDeliveryApi,\n publicUri,\n reverseProxyPaths,\n servers,\n uris,\n version,\n zenPackageVersions,\n}: IVersionInfoProps) => {\n return (\n <VersionInfoStyledTable>\n <thead>\n <tr>\n <td colSpan={2}>\n <h1>\n <a href=\"/\">Version Information</a>\n </h1>\n </td>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th colSpan={2}>Package detail</th>\n </tr>\n <tr>\n <td className=\"left\">Name</td>\n <td>{packageDetail.name}</td>\n </tr>\n <tr>\n <td className=\"left\">Version</td>\n <td>{packageDetail.version}</td>\n </tr>\n <tr>\n <th colSpan={2}>Version info (state)</th>\n </tr>\n <tr>\n <td>Git repo url: </td>\n <td>\n <a\n href={packageDetail.repository}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {packageDetail.repository}\n </a>\n </td>\n </tr>\n <tr>\n <td>Pipeline: </td>\n <td>\n <a href={uris.pipeline} target=\"_blank\" rel=\"noopener noreferrer\">\n {version.buildNumber}\n </a>\n </td>\n </tr>\n <tr>\n <td>Commit: </td>\n <td>\n <a href={uris.commit} target=\"_blank\" rel=\"noopener noreferrer\">\n {version.commitRef}\n </a>\n </td>\n </tr>\n {/* <tr>\n <td>Last release ref: </td>\n <td></td>\n </tr>\n <tr>\n <td>Number of commits since last release: </td>\n <td></td>\n </tr> */}\n <tr>\n <td>Project</td>\n <td className={project === 'unknown' ? 'red' : ''}>{project}</td>\n </tr>\n <tr>\n <td>Contensis version status: </td>\n <td\n className={\n version.contensisVersionStatus === 'published' ? 'green' : 'red'\n }\n >\n {version.contensisVersionStatus}\n </td>\n </tr>\n <tr>\n <th colSpan={2}>Build configuration</th>\n </tr>\n <tr>\n <td>Environment</td>\n <td>{servers.alias}</td>\n </tr>\n <tr>\n <td>Public uri</td>\n <td>{publicUri}</td>\n </tr>\n <tr>\n <td>Zengenti packages</td>\n <td>\n {zenPackageVersions.map(([pkg, ver], idx) => (\n <div key={idx}>\n {pkg}: {ver}\n </div>\n ))}\n </td>\n </tr>\n <tr>\n <td>Servers</td>\n <td className=\"small\">\n <div>web: {servers.web}</div>\n <div>preview: {servers.previewWeb}</div>\n <div>api: {servers.api}</div>\n <div>cms: {servers.cms}</div>\n <div>iis: {servers.iis}</div>\n <div>iis preview: {servers.previewIis}</div>\n </td>\n </tr>\n <tr>\n <td>Reverse proxy paths</td>\n <td>\n {Object.entries(reverseProxyPaths).map(([, path], key) => (\n <span key={key}>[ {path} ] </span>\n ))}\n </td>\n </tr>\n <tr>\n <td>Projects</td>\n <td>\n {Object.entries(\n projects as {\n id: string;\n publicUri: string;\n }[]\n ).map(([, project], key) => (\n <div key={key}>\n [ {project.id}: {project.publicUri} ]\n </div>\n ))}\n </td>\n </tr>\n <tr>\n <td>Delivery API</td>\n <td className=\"small\">\n <ul style={{ margin: 0, padding: 0 }}>\n {Object.entries(deliveryApi).map(\n ([key, value]: [string, any], idx) => {\n if (typeof value === 'object') return null;\n return (\n <li key={idx} style={{ listStyleType: 'none' }}>\n {key}: <span>{value}</span>\n </li>\n );\n }\n )}\n </ul>\n </td>\n </tr>\n <tr>\n <td>Proxy Delivery API requests</td>\n <td className={proxyDeliveryApi ? 'green' : 'red'}>\n {proxyDeliveryApi.toString()}\n </td>\n </tr>\n <tr>\n <td>Disable SSR inline-redux</td>\n <td>{disableSsrRedux.toString()}</td>\n </tr>\n <tr>\n <td>NODE_ENV</td>\n <td className={nodeEnv === 'production' ? 'green' : 'red'}>\n {nodeEnv.toString()}\n </td>\n </tr>\n {devEnv && (\n <tr>\n <td>process.env</td>\n <td>\n {Object.entries(devEnv).map(([k, v], key) => (\n <div key={key}>\n [ {k}: {v} ]\n </div>\n ))}\n </td>\n </tr>\n )}\n </tbody>\n </VersionInfoStyledTable>\n );\n};\n\nexport default connect(mapStateToVersionInfo)(VersionInfo);\n"],"names":["useMapper","json","template","mapJson","chooseMapperByFieldValue","entry","mappers","field","fieldValue","jpath","default","useEntriesMapper","mapper","useEntryMapper","mapEntries","entries","map","mapComposer","composer","Array","isArray","composerItem","type","_type","value","useComposerMapper","entryMapper","mapping","node","state","setCachingHeaders","response","cacheControl","surrogateControl","method","toString","stringifyStrings","obj","returnObj","Object","forEach","key","JSON","stringify","url","alias","project","projectAndAlias","toLowerCase","api","cms","liveWeb","previewWeb","iisWeb","iisPreviewWeb","context","window","global","isDev","process","env","NODE_ENV","pj","PACKAGE_JSON","name","repository","versionInfoProps","packageDetail","pkg","version","uris","gitRepo","commit","commitRef","selectCommitRef","pipeline","buildNumber","selectBuildNumber","includes","zenPackageVersions","devDependencies","filter","dependencies","deliveryApi","parse","DELIVERY_API_CONFIG","devEnv","DEV_ENV","disableSsrRedux","DISABLE_SSR_REDUX","nodeEnv","packagejson","projects","PROJECTS","proxyDeliveryApi","PROXY_DELIVERY_API","publicUri","PUBLIC_URI","selectCurrentProject","reverseProxyPaths","REVERSE_PROXY_PATHS","servers","SERVERS","contensisVersionStatus","selectVersionStatus","mapStateToVersionInfo","mappedProps","VersionInfoStyledTable","styled","table","VersionInfo","ver","idx","web","iis","previewIis","path","id","margin","padding","listStyleType","k","v","connect"],"mappings":"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"}
|