@zengenti/contensis-react-base 3.0.2-beta.2 → 3.0.2-beta.21
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/cjs/{App-ee485b92.js → App-21a7d836.js} +120 -432
- package/cjs/App-21a7d836.js.map +1 -0
- package/cjs/ContensisDeliveryApi-c079b03a.js +231 -0
- package/cjs/ContensisDeliveryApi-c079b03a.js.map +1 -0
- package/cjs/{RouteLoader-3aa6456e.js → RouteLoader-7f0d107a.js} +23 -37
- package/{esm/RouteLoader-5171c63f.js.map → cjs/RouteLoader-7f0d107a.js.map} +1 -1
- package/cjs/{ToJs-a9a8522b.js → ToJs-6e9cfa69.js} +3 -4
- package/cjs/{ToJs-a9a8522b.js.map → ToJs-6e9cfa69.js.map} +1 -1
- package/cjs/client.js +20 -27
- package/cjs/client.js.map +1 -1
- package/cjs/contensis-react-base.js +124 -188
- package/cjs/contensis-react-base.js.map +1 -1
- package/cjs/forms.js +1488 -272
- package/cjs/forms.js.map +1 -1
- package/cjs/{fromJSLeaveImmer-e74c673c.js → fromJSLeaveImmer-7c363211.js} +1 -4
- package/cjs/{fromJSLeaveImmer-e74c673c.js.map → fromJSLeaveImmer-7c363211.js.map} +1 -1
- package/cjs/{login-840860bc.js → login-2a6b5be0.js} +64 -113
- package/cjs/login-2a6b5be0.js.map +1 -0
- package/cjs/{reducers-3a4f8971.js → reducers-9afb5f89.js} +14 -31
- package/cjs/reducers-9afb5f89.js.map +1 -0
- package/cjs/redux.js +17 -17
- package/cjs/redux.js.map +1 -1
- package/cjs/routing.js +6 -7
- package/cjs/routing.js.map +1 -1
- package/cjs/{sagas-8a20e424.js → sagas-e04b94c1.js} +225 -301
- package/cjs/sagas-e04b94c1.js.map +1 -0
- package/cjs/search.js +68 -94
- package/cjs/search.js.map +1 -1
- package/cjs/{selectors-656da4b7.js → selectors-bcca60f4.js} +89 -8
- package/cjs/selectors-bcca60f4.js.map +1 -0
- package/cjs/urls-6fcaf4c6.js.map +1 -1
- package/cjs/user.js +4 -13
- package/cjs/user.js.map +1 -1
- package/cjs/util.js +45 -53
- package/cjs/util.js.map +1 -1
- package/cjs/{version-78dfc3bd.js → version-4077e706.js} +50 -159
- package/cjs/version-4077e706.js.map +1 -0
- package/cjs/version-fe28099e.js +98 -0
- package/cjs/version-fe28099e.js.map +1 -0
- package/esm/{App-640239d2.js → App-2af18a99.js} +102 -412
- package/esm/App-2af18a99.js.map +1 -0
- package/esm/ContensisDeliveryApi-5660ee0e.js +227 -0
- package/esm/ContensisDeliveryApi-5660ee0e.js.map +1 -0
- package/esm/{RouteLoader-5171c63f.js → RouteLoader-6eac364e.js} +22 -36
- package/{cjs/RouteLoader-3aa6456e.js.map → esm/RouteLoader-6eac364e.js.map} +1 -1
- package/esm/{ToJs-4e02a04d.js → ToJs-9b30636a.js} +3 -4
- package/esm/{ToJs-4e02a04d.js.map → ToJs-9b30636a.js.map} +1 -1
- package/esm/client.js +15 -22
- package/esm/client.js.map +1 -1
- package/esm/contensis-react-base.js +119 -183
- package/esm/contensis-react-base.js.map +1 -1
- package/esm/forms.js +1490 -274
- package/esm/forms.js.map +1 -1
- package/esm/{fromJSLeaveImmer-0114ffcf.js → fromJSLeaveImmer-e2dacd63.js} +1 -4
- package/esm/{fromJSLeaveImmer-0114ffcf.js.map → fromJSLeaveImmer-e2dacd63.js.map} +1 -1
- package/esm/{login-57395c9c.js → login-71ff3fcb.js} +63 -112
- package/esm/login-71ff3fcb.js.map +1 -0
- package/esm/{reducers-8e5d6232.js → reducers-3d5c37d1.js} +14 -31
- package/esm/reducers-3d5c37d1.js.map +1 -0
- package/esm/redux.js +9 -8
- package/esm/redux.js.map +1 -1
- package/esm/routing.js +3 -4
- package/esm/routing.js.map +1 -1
- package/esm/{sagas-e576b6f6.js → sagas-933a8fc8.js} +177 -254
- package/esm/sagas-933a8fc8.js.map +1 -0
- package/esm/search.js +69 -95
- package/esm/search.js.map +1 -1
- package/esm/{selectors-a5e5835b.js → selectors-74de49a3.js} +75 -8
- package/esm/selectors-74de49a3.js.map +1 -0
- package/esm/urls-eac9a747.js.map +1 -1
- package/esm/user.js +6 -15
- package/esm/user.js.map +1 -1
- package/esm/util.js +42 -53
- package/esm/util.js.map +1 -1
- package/esm/version-b15807c5.js +87 -0
- package/esm/version-b15807c5.js.map +1 -0
- package/esm/{version-e3a5ec66.js → version-ef107106.js} +37 -142
- package/esm/version-ef107106.js.map +1 -0
- package/models/redux/appstate.d.ts +1 -0
- package/models/routing/redux/selectors.d.ts +2 -1
- package/models/search/models/Queries.d.ts +2 -1
- package/models/search/models/Search.d.ts +2 -0
- package/models/search/models/SearchActions.d.ts +3 -3
- package/models/search/redux/actions.d.ts +6 -6
- package/models/search/redux/util.d.ts +1 -1
- package/models/search/search/expressions.d.ts +1 -1
- package/models/server/features/linkdepth-api/search.d.ts +1 -1
- package/models/util/ContensisDeliveryApi.d.ts +6 -0
- package/models/util/index.d.ts +1 -0
- package/package.json +1 -1
- package/cjs/App-ee485b92.js.map +0 -1
- package/cjs/actions-8dc9e8de.js +0 -87
- package/cjs/actions-8dc9e8de.js.map +0 -1
- package/cjs/login-840860bc.js.map +0 -1
- package/cjs/reducers-3a4f8971.js.map +0 -1
- package/cjs/sagas-8a20e424.js.map +0 -1
- package/cjs/selectors-656da4b7.js.map +0 -1
- package/cjs/version-78dfc3bd.js.map +0 -1
- package/cjs/version-eba6d09b.js +0 -20
- package/cjs/version-eba6d09b.js.map +0 -1
- package/esm/App-640239d2.js.map +0 -1
- package/esm/actions-180948dd.js +0 -72
- package/esm/actions-180948dd.js.map +0 -1
- package/esm/login-57395c9c.js.map +0 -1
- package/esm/reducers-8e5d6232.js.map +0 -1
- package/esm/sagas-e576b6f6.js.map +0 -1
- package/esm/selectors-a5e5835b.js.map +0 -1
- package/esm/version-2485e2fb.js +0 -15
- package/esm/version-2485e2fb.js.map +0 -1
- package/esm/version-e3a5ec66.js.map +0 -1
package/esm/user.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
export { L as LoginHelper, h as handleRequiresLoginSaga, r as refreshSecurityToken } from './login-
|
|
1
|
+
export { L as LoginHelper, h as handleRequiresLoginSaga, r as refreshSecurityToken } from './login-71ff3fcb.js';
|
|
2
2
|
import { useDispatch, useSelector, connect } from 'react-redux';
|
|
3
|
-
import {
|
|
4
|
-
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-
|
|
5
|
-
export { o as initialUserState, U as reducer, t as types } from './reducers-
|
|
6
|
-
import { c as selectUserErrorMessage, a as selectUserIsAuthenticated, d as selectUserIsAuthenticationError, e as selectUserIsError, f as selectUserIsLoading, g as selectUser, t as toJS, h as selectUserRegistrationError, i as selectUserRegistrationIsLoading, j as selectUserRegistrationIsSuccess, k as selectUserRegistration, l as selectPasswordResetRequestSending, n as selectPasswordResetRequestSent, o as selectPasswordResetRequestError, p as selectResetPasswordSending, q as selectResetPasswordSent, r as selectResetPasswordError, u as selectChangePasswordSending, v as selectChangePasswordSent, w as selectUserGuid, x as selectChangePasswordError } from './ToJs-
|
|
7
|
-
export { y as selectors } from './ToJs-
|
|
3
|
+
import { D as action, o as selectCurrentSearch } from './selectors-74de49a3.js';
|
|
4
|
+
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-3d5c37d1.js';
|
|
5
|
+
export { o as initialUserState, U as reducer, t as types } from './reducers-3d5c37d1.js';
|
|
6
|
+
import { c as selectUserErrorMessage, a as selectUserIsAuthenticated, d as selectUserIsAuthenticationError, e as selectUserIsError, f as selectUserIsLoading, g as selectUser, t as toJS, h as selectUserRegistrationError, i as selectUserRegistrationIsLoading, j as selectUserRegistrationIsSuccess, k as selectUserRegistration, l as selectPasswordResetRequestSending, n as selectPasswordResetRequestSent, o as selectPasswordResetRequestError, p as selectResetPasswordSending, q as selectResetPasswordSent, r as selectResetPasswordError, u as selectChangePasswordSending, v as selectChangePasswordSent, w as selectUserGuid, x as selectChangePasswordError } from './ToJs-9b30636a.js';
|
|
7
|
+
export { y as selectors } from './ToJs-9b30636a.js';
|
|
8
8
|
import '@redux-saga/core/effects';
|
|
9
|
-
import './actions-180948dd.js';
|
|
10
9
|
import 'jsonpath-mapper';
|
|
11
10
|
import 'await-to-js';
|
|
12
11
|
import 'js-cookie';
|
|
@@ -75,7 +74,6 @@ const LoginContainer = ({
|
|
|
75
74
|
const userProps = useLogin();
|
|
76
75
|
return children(userProps);
|
|
77
76
|
};
|
|
78
|
-
|
|
79
77
|
LoginContainer.propTypes = {};
|
|
80
78
|
var Login_container = toJS(LoginContainer);
|
|
81
79
|
|
|
@@ -98,7 +96,6 @@ const RegistrationContainer = ({
|
|
|
98
96
|
const userProps = useRegistration();
|
|
99
97
|
return children(userProps);
|
|
100
98
|
};
|
|
101
|
-
|
|
102
99
|
RegistrationContainer.propTypes = {};
|
|
103
100
|
var Registration_container = toJS(RegistrationContainer);
|
|
104
101
|
|
|
@@ -127,7 +124,6 @@ const ForgotPasswordContainer = ({
|
|
|
127
124
|
const userProps = useForgotPassword();
|
|
128
125
|
return children(userProps);
|
|
129
126
|
};
|
|
130
|
-
|
|
131
127
|
ForgotPasswordContainer.propTypes = {};
|
|
132
128
|
var ForgotPassword_container = toJS(ForgotPasswordContainer);
|
|
133
129
|
|
|
@@ -151,14 +147,12 @@ const ChangePasswordContainer = ({
|
|
|
151
147
|
const userProps = useChangePassword();
|
|
152
148
|
return children(userProps);
|
|
153
149
|
};
|
|
154
|
-
|
|
155
150
|
ChangePasswordContainer.propTypes = {};
|
|
156
151
|
var ChangePassword_container = toJS(ChangePasswordContainer);
|
|
157
152
|
|
|
158
153
|
const getDisplayName$1 = WrappedComponent => {
|
|
159
154
|
return WrappedComponent.displayName || WrappedComponent.name || 'Component';
|
|
160
155
|
};
|
|
161
|
-
|
|
162
156
|
const withLogin = WrappedComponent => {
|
|
163
157
|
const mapStateToProps = state => {
|
|
164
158
|
return {
|
|
@@ -173,7 +167,6 @@ const withLogin = WrappedComponent => {
|
|
|
173
167
|
error: selectUserIsError(state)
|
|
174
168
|
};
|
|
175
169
|
};
|
|
176
|
-
|
|
177
170
|
const mapDispatchToProps = {
|
|
178
171
|
loginUser,
|
|
179
172
|
logoutUser
|
|
@@ -186,7 +179,6 @@ const withLogin = WrappedComponent => {
|
|
|
186
179
|
const getDisplayName = WrappedComponent => {
|
|
187
180
|
return WrappedComponent.displayName || WrappedComponent.name || 'Component';
|
|
188
181
|
};
|
|
189
|
-
|
|
190
182
|
const withRegistration = WrappedComponent => {
|
|
191
183
|
const mapStateToProps = state => {
|
|
192
184
|
return {
|
|
@@ -196,7 +188,6 @@ const withRegistration = WrappedComponent => {
|
|
|
196
188
|
user: selectUserRegistration(state)
|
|
197
189
|
};
|
|
198
190
|
};
|
|
199
|
-
|
|
200
191
|
const mapDispatchToProps = {
|
|
201
192
|
registerUser
|
|
202
193
|
};
|
package/esm/user.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 selectUserIsAuthenticationError,\n selectUserIsError,\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 errorMessage: select(selectUserErrorMessage),\n isAuthenticated: select(selectUserIsAuthenticated),\n isAuthenticationError: select(selectUserIsAuthenticationError),\n isError: select(selectUserIsError),\n isLoading: select(selectUserIsLoading),\n user: select(selectUser),\n // DEPRECATED: authenticationError is deprecated use isAuthenticationError instead\n authenticationError: select(selectUserIsAuthenticationError),\n // DEPRECATED: authenticationErrorMessage is deprecated use errorMessage instead\n authenticationErrorMessage: select(selectUserErrorMessage),\n // DEPRECATED: error is deprecated use isError instead\n error: select(selectUserIsError),\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),\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 selectUserIsAuthenticationError,\n selectUserIsError,\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 isAuthenticated: selectUserIsAuthenticated(state),\n isAuthenticationError: selectUserIsAuthenticationError(state),\n isError: selectUserIsError(state),\n isLoading: selectUserIsLoading(state),\n user: selectUser(state),\n // DEPRECATED: authenticationError is deprecated use isAuthenticationError instead\n authenticationError: selectUserIsAuthenticationError(state),\n // DEPRECATED: error is deprecated use isError instead\n error: selectUserIsError(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","errorMessage","selectUserErrorMessage","isAuthenticated","selectUserIsAuthenticated","isAuthenticationError","selectUserIsAuthenticationError","isError","selectUserIsError","isLoading","selectUserIsLoading","selectUser","authenticationError","authenticationErrorMessage","error","LoginContainer","children","props","userProps","propTypes","toJS","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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"}
|
|
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 selectUserIsAuthenticationError,\n selectUserIsError,\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 errorMessage: select(selectUserErrorMessage),\n isAuthenticated: select(selectUserIsAuthenticated),\n isAuthenticationError: select(selectUserIsAuthenticationError),\n isError: select(selectUserIsError),\n isLoading: select(selectUserIsLoading),\n user: select(selectUser),\n // DEPRECATED: authenticationError is deprecated use isAuthenticationError instead\n authenticationError: select(selectUserIsAuthenticationError),\n // DEPRECATED: authenticationErrorMessage is deprecated use errorMessage instead\n authenticationErrorMessage: select(selectUserErrorMessage),\n // DEPRECATED: error is deprecated use isError instead\n error: select(selectUserIsError),\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),\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 selectUserIsAuthenticationError,\n selectUserIsError,\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 isAuthenticated: selectUserIsAuthenticated(state),\n isAuthenticationError: selectUserIsAuthenticationError(state),\n isError: selectUserIsError(state),\n isLoading: selectUserIsLoading(state),\n user: selectUser(state),\n // DEPRECATED: authenticationError is deprecated use isAuthenticationError instead\n authenticationError: selectUserIsAuthenticationError(state),\n // DEPRECATED: error is deprecated use isError instead\n error: selectUserIsError(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","errorMessage","selectUserErrorMessage","isAuthenticated","selectUserIsAuthenticated","isAuthenticationError","selectUserIsAuthenticationError","isError","selectUserIsError","isLoading","selectUserIsLoading","selectUser","authenticationError","authenticationErrorMessage","error","LoginContainer","children","props","userProps","propTypes","toJS","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,12 +1,21 @@
|
|
|
1
1
|
export { s as setCachingHeaders, u as urls } from './urls-eac9a747.js';
|
|
2
|
+
export { c as cachedSearch, d as deliveryApi, g as getClientConfig } from './ContensisDeliveryApi-5660ee0e.js';
|
|
2
3
|
import mapJson, { jpath } from 'jsonpath-mapper';
|
|
3
4
|
export { jpath, default as mapJson } from 'jsonpath-mapper';
|
|
4
5
|
import React from 'react';
|
|
5
6
|
import { connect } from 'react-redux';
|
|
6
|
-
import { b as selectCurrentProject } from './selectors-
|
|
7
|
-
import {
|
|
7
|
+
import { b as selectCurrentProject } from './selectors-74de49a3.js';
|
|
8
|
+
import { f as selectCommitRef, g as selectBuildNumber, s as selectVersionStatus } from './version-ef107106.js';
|
|
8
9
|
import styled from 'styled-components';
|
|
10
|
+
import 'contensis-delivery-api';
|
|
9
11
|
import 'query-string';
|
|
12
|
+
import 'redux';
|
|
13
|
+
import 'redux-thunk';
|
|
14
|
+
import 'redux-saga';
|
|
15
|
+
import 'redux-injectors';
|
|
16
|
+
import 'immer';
|
|
17
|
+
import 'deepmerge';
|
|
18
|
+
import './reducers-3d5c37d1.js';
|
|
10
19
|
|
|
11
20
|
/**
|
|
12
21
|
*
|
|
@@ -17,11 +26,11 @@ import 'query-string';
|
|
|
17
26
|
const useMapper = (json, template) => {
|
|
18
27
|
return template ? mapJson(json || {}, template) : json;
|
|
19
28
|
};
|
|
20
|
-
|
|
21
29
|
const chooseMapperByFieldValue = (entry, mappers, field = 'sys.contentTypeId') => {
|
|
22
30
|
const fieldValue = jpath(field, entry || {});
|
|
23
31
|
return mappers[fieldValue] || mappers.default || {};
|
|
24
32
|
};
|
|
33
|
+
|
|
25
34
|
/**
|
|
26
35
|
* useEntriesMapper hook to take a list of entries from Delivery API along
|
|
27
36
|
* with mappers for each contentTypeId and return an array of mapped objects
|
|
@@ -34,17 +43,16 @@ const chooseMapperByFieldValue = (entry, mappers, field = 'sys.contentTypeId') =
|
|
|
34
43
|
* a default mapper template, returns an empty object if no mapper template
|
|
35
44
|
* couild be applied.
|
|
36
45
|
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
46
|
const useEntriesMapper = (entry, mappers, field = 'sys.contentTypeId') => {
|
|
40
47
|
const mapper = chooseMapperByFieldValue(entry, mappers, field);
|
|
41
48
|
return useMapper(entry, mapper);
|
|
42
49
|
};
|
|
50
|
+
|
|
43
51
|
/**
|
|
44
52
|
* Deprecated: due to misleading name, use the hook useEntriesMapper instead
|
|
45
53
|
*/
|
|
46
|
-
|
|
47
54
|
const useEntryMapper = useEntriesMapper;
|
|
55
|
+
|
|
48
56
|
/**
|
|
49
57
|
* mapEntries mapping function to take a list of entries from Delivery API along
|
|
50
58
|
* with mappers for each contentTypeId and return an array of mapped objects
|
|
@@ -57,11 +65,11 @@ const useEntryMapper = useEntriesMapper;
|
|
|
57
65
|
* a default mapper template, returns an empty object if no mapper template
|
|
58
66
|
* couild be applied.
|
|
59
67
|
*/
|
|
60
|
-
|
|
61
68
|
const mapEntries = (entries, mappers, field = 'sys.contentTypeId') => entries.map(entry => {
|
|
62
69
|
const mapper = chooseMapperByFieldValue(entry, mappers, field);
|
|
63
70
|
return mapper ? mapJson(entry || {}, mapper) : entry;
|
|
64
71
|
});
|
|
72
|
+
|
|
65
73
|
/**
|
|
66
74
|
* mapComposer mapping function to take a composer field from Delivery API along
|
|
67
75
|
* with mappers for each Composer Item "type" and return an array of mapped components
|
|
@@ -71,37 +79,42 @@ const mapEntries = (entries, mappers, field = 'sys.contentTypeId') => entries.ma
|
|
|
71
79
|
* or null. Injects a "_type" property into each transformed object in the array to indicate
|
|
72
80
|
* where the mapping originated and for what component the mapped object is representing
|
|
73
81
|
*/
|
|
74
|
-
|
|
75
82
|
const mapComposer = (composer, mappers) => Array.isArray(composer) ? composer.map((composerItem, index) => {
|
|
76
83
|
const itemValue = composerItem.value;
|
|
77
84
|
const mapper = mappers[composerItem.type] || mappers.default;
|
|
78
|
-
|
|
79
85
|
if (mapper) {
|
|
80
86
|
// Add some fields into the composer item mapper and return object
|
|
81
87
|
const addedFields = {
|
|
82
88
|
_type: composerItem.type,
|
|
83
89
|
_index: index
|
|
84
|
-
};
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
// Add fields and $root item into the composer item source object
|
|
85
93
|
// for use inside each item mapping, for arrays we inject the added fields
|
|
86
94
|
// into the first array item. This is useful if we require any of
|
|
87
95
|
// composerItem.type, composerItem index/position and composer $root
|
|
88
96
|
// in scope to influence any composer item's mapping logic
|
|
89
|
-
|
|
90
|
-
|
|
97
|
+
const sourceObject = itemValue && Array.isArray(itemValue) ? itemValue.map((iv, idx) => idx !== 0 ? iv : typeof iv === 'object' ? {
|
|
98
|
+
...addedFields,
|
|
91
99
|
...iv,
|
|
92
100
|
$root: composer
|
|
93
|
-
} : iv) : typeof itemValue === 'object' ? {
|
|
101
|
+
} : iv) : typeof itemValue === 'object' ? {
|
|
102
|
+
...addedFields,
|
|
94
103
|
...itemValue,
|
|
95
104
|
$root: composer
|
|
96
|
-
} : itemValue || {};
|
|
105
|
+
} : itemValue || {};
|
|
97
106
|
|
|
98
|
-
|
|
107
|
+
// Apply the composer item mapping
|
|
108
|
+
const mappedFields = mapJson(sourceObject, mapper);
|
|
99
109
|
|
|
100
|
-
|
|
110
|
+
// Add the extra fields in with the return object
|
|
111
|
+
return mappedFields && typeof mappedFields === 'object' ? {
|
|
112
|
+
...mappedFields,
|
|
101
113
|
...addedFields
|
|
102
114
|
} : mappedFields;
|
|
103
115
|
} else return {};
|
|
104
116
|
}) : composer || [];
|
|
117
|
+
|
|
105
118
|
/**
|
|
106
119
|
* useComposerMapper hook to take a composer field from Delivery API along
|
|
107
120
|
* with mappers for each Composer Item "type" and return an array of mapped components
|
|
@@ -111,8 +124,8 @@ const mapComposer = (composer, mappers) => Array.isArray(composer) ? composer.ma
|
|
|
111
124
|
* or null. Injects a "_type" property into each transformed object in the array to indicate
|
|
112
125
|
* where the mapping originated and for what component the mapped object is representing
|
|
113
126
|
*/
|
|
114
|
-
|
|
115
127
|
const useComposerMapper = (composer = [], mappers) => mapComposer(composer, mappers);
|
|
128
|
+
|
|
116
129
|
/**
|
|
117
130
|
* entryMapper will return a function to satisfy an entryMapper when defining app route
|
|
118
131
|
* this is essentially a shorthand function to prevent boilerplate repetition inside your routes file
|
|
@@ -120,8 +133,8 @@ const useComposerMapper = (composer = [], mappers) => mapComposer(composer, mapp
|
|
|
120
133
|
* @param mapping the jsonpath-mapper mapping template to apply when the route is resolved
|
|
121
134
|
* @returns {mappedEntry}
|
|
122
135
|
*/
|
|
123
|
-
|
|
124
|
-
|
|
136
|
+
const entryMapper = mapping => (node, state) => mapJson({
|
|
137
|
+
...node,
|
|
125
138
|
...(node.entry || {}),
|
|
126
139
|
state
|
|
127
140
|
}, mapping);
|
|
@@ -133,11 +146,9 @@ const stringifyStrings = obj => {
|
|
|
133
146
|
case 'string':
|
|
134
147
|
returnObj[key] = JSON.stringify(value);
|
|
135
148
|
break;
|
|
136
|
-
|
|
137
149
|
case 'object':
|
|
138
150
|
returnObj[key] = stringifyStrings(value);
|
|
139
151
|
break;
|
|
140
|
-
|
|
141
152
|
default:
|
|
142
153
|
returnObj[key] = value;
|
|
143
154
|
break;
|
|
@@ -145,19 +156,14 @@ const stringifyStrings = obj => {
|
|
|
145
156
|
});
|
|
146
157
|
return returnObj;
|
|
147
158
|
};
|
|
148
|
-
|
|
149
159
|
var stringifyStrings_1 = stringifyStrings;
|
|
150
160
|
|
|
151
161
|
const context = typeof window != 'undefined' ? window : global;
|
|
152
162
|
const isDev = process.env.NODE_ENV === 'development';
|
|
153
|
-
|
|
154
|
-
const pj = () => isDev ? PACKAGE_JSON
|
|
155
|
-
/* global PACKAGE_JSON */
|
|
156
|
-
: context.PACKAGE_JSON || {
|
|
163
|
+
const pj = () => isDev ? PACKAGE_JSON /* global PACKAGE_JSON */ : context.PACKAGE_JSON || {
|
|
157
164
|
name: 'packagejson not found',
|
|
158
165
|
repository: ''
|
|
159
166
|
};
|
|
160
|
-
|
|
161
167
|
const versionInfoProps = {
|
|
162
168
|
packageDetail: () => {
|
|
163
169
|
const pkg = pj();
|
|
@@ -179,40 +185,24 @@ const versionInfoProps = {
|
|
|
179
185
|
}
|
|
180
186
|
},
|
|
181
187
|
zenPackageVersions: () => [...(Object.entries(pj().devDependencies || {}).filter(([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')) || []), ...(Object.entries(pj().dependencies || {}).filter(([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')) || [])],
|
|
182
|
-
deliveryApi: () => JSON.parse(JSON.stringify(DELIVERY_API_CONFIG
|
|
183
|
-
|
|
184
|
-
)
|
|
185
|
-
|
|
186
|
-
/* global DEV_ENV */
|
|
187
|
-
? DEV_ENV : null,
|
|
188
|
-
disableSsrRedux: () => isDev ? DISABLE_SSR_REDUX
|
|
189
|
-
/* global DISABLE_SSR_REDUX*/
|
|
190
|
-
: context.DISABLE_SSR_REDUX || false,
|
|
188
|
+
deliveryApi: () => JSON.parse(JSON.stringify(DELIVERY_API_CONFIG /* global DELIVERY_API_CONFIG */)),
|
|
189
|
+
|
|
190
|
+
devEnv: () => typeof DEV_ENV !== 'undefined' /* global DEV_ENV */ ? DEV_ENV : null,
|
|
191
|
+
disableSsrRedux: () => isDev ? DISABLE_SSR_REDUX /* global DISABLE_SSR_REDUX*/ : context.DISABLE_SSR_REDUX || false,
|
|
191
192
|
nodeEnv: () => process.env.NODE_ENV || 'production',
|
|
192
193
|
packagejson: () => pj() || {},
|
|
193
|
-
projects: () => isDev ? PROJECTS
|
|
194
|
-
/* global
|
|
195
|
-
: context.
|
|
196
|
-
proxyDeliveryApi: () => isDev ? PROXY_DELIVERY_API
|
|
197
|
-
/* global PROXY_DELIVERY_API */
|
|
198
|
-
: context.PROXY_DELIVERY_API || false,
|
|
199
|
-
publicUri: () => isDev ? PUBLIC_URI
|
|
200
|
-
/* global PUBLIC_URI */
|
|
201
|
-
: context.PUBLIC_URI || null,
|
|
194
|
+
projects: () => isDev ? PROJECTS /* global PROJECTS */ : context.PROJECTS,
|
|
195
|
+
proxyDeliveryApi: () => isDev ? PROXY_DELIVERY_API /* global PROXY_DELIVERY_API */ : context.PROXY_DELIVERY_API || false,
|
|
196
|
+
publicUri: () => isDev ? PUBLIC_URI /* global PUBLIC_URI */ : context.PUBLIC_URI || null,
|
|
202
197
|
project: state => selectCurrentProject(state),
|
|
203
|
-
reverseProxyPaths: () => isDev ? REVERSE_PROXY_PATHS
|
|
204
|
-
/* global
|
|
205
|
-
: context.REVERSE_PROXY_PATHS || {},
|
|
206
|
-
servers: () => isDev ? SERVERS
|
|
207
|
-
/* global SERVERS */
|
|
208
|
-
: context.SERVERS,
|
|
198
|
+
reverseProxyPaths: () => isDev ? REVERSE_PROXY_PATHS /* global REVERSE_PROXY_PATHS */ : context.REVERSE_PROXY_PATHS || {},
|
|
199
|
+
servers: () => isDev ? SERVERS /* global SERVERS */ : context.SERVERS,
|
|
209
200
|
version: {
|
|
210
201
|
buildNumber: state => selectBuildNumber(state),
|
|
211
202
|
commitRef: state => selectCommitRef(state),
|
|
212
203
|
contensisVersionStatus: state => selectVersionStatus(state)
|
|
213
204
|
}
|
|
214
205
|
};
|
|
215
|
-
|
|
216
206
|
const mapStateToVersionInfo = state => {
|
|
217
207
|
const mappedProps = mapJson(state, versionInfoProps);
|
|
218
208
|
return mappedProps;
|
|
@@ -300,7 +290,6 @@ const VersionInfo = ({
|
|
|
300
290
|
key: key
|
|
301
291
|
}, "[ ", k, ": ", v, " ]"))))));
|
|
302
292
|
};
|
|
303
|
-
|
|
304
293
|
var VersionInfo$1 = connect(mapStateToVersionInfo)(VersionInfo);
|
|
305
294
|
|
|
306
295
|
export { VersionInfo$1 as VersionInfo, entryMapper, mapComposer, mapEntries, stringifyStrings_1 as stringifyStrings, useComposerMapper, useEntriesMapper, useEntryMapper, useMapper };
|
package/esm/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sources":["../src/util/json-mapper.ts","../src/util/stringifyStrings.js","../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 { Entry } from 'contensis-delivery-api/lib/models';\nimport mapJson, { jpath } from 'jsonpath-mapper';\nimport MappingTemplate, {\n PureJsFunction,\n} from 'jsonpath-mapper/dist/models/Template';\nimport { AppState } from '~/redux/appstate';\nimport { EntryMapper, RouteNode } 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, index) => {\n const itemValue = composerItem.value;\n const mapper = mappers[composerItem.type] || mappers.default;\n if (mapper) {\n // Add some fields into the composer item mapper and return object\n const addedFields = {\n _type: composerItem.type,\n _index: index,\n };\n\n // Add fields and $root item into the composer item source object\n // for use inside each item mapping, for arrays we inject the added fields\n // into the first array item. This is useful if we require any of\n // composerItem.type, composerItem index/position and composer $root\n // in scope to influence any composer item's mapping logic\n const sourceObject =\n itemValue && Array.isArray(itemValue)\n ? itemValue.map((iv, idx) =>\n idx !== 0\n ? iv\n : typeof iv === 'object'\n ? { ...addedFields, ...iv, $root: composer }\n : iv\n )\n : typeof itemValue === 'object'\n ? { ...addedFields, ...itemValue, $root: composer }\n : itemValue || {};\n\n // Apply the composer item mapping\n const mappedFields = mapJson(sourceObject, mapper) as any;\n\n // Add the extra fields in with the return object\n return mappedFields && typeof mappedFields === 'object'\n ? { ...mappedFields, ...addedFields }\n : mappedFields;\n } else return {};\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 (\n mapping:\n | MappingTemplate<RouteNode & Entry & { state?: AppState }>\n | PureJsFunction<RouteNode & Entry & { state?: AppState }>\n ): EntryMapper =>\n (node, state) =>\n mapJson({ ...node, ...(node.entry || ({} as Entry)), state }, mapping);\n\nexport default mapJson;\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","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","index","itemValue","value","type","addedFields","_type","_index","sourceObject","iv","idx","$root","mappedFields","useComposerMapper","entryMapper","mapping","node","state","stringifyStrings","obj","returnObj","Object","forEach","key","JSON","stringify","module","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","project","selectCurrentProject","reverseProxyPaths","REVERSE_PROXY_PATHS","servers","SERVERS","contensisVersionStatus","selectVersionStatus","mapStateToVersionInfo","mappedProps","VersionInfoStyledTable","styled","table","VersionInfo","alias","ver","web","previewWeb","api","cms","iis","previewIis","path","id","margin","padding","listStyleType","toString","k","v","connect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"util.js","sources":["../src/util/json-mapper.ts","../src/util/stringifyStrings.js","../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 { Entry } from 'contensis-delivery-api/lib/models';\nimport mapJson, { jpath } from 'jsonpath-mapper';\nimport MappingTemplate, {\n PureJsFunction,\n} from 'jsonpath-mapper/dist/models/Template';\nimport { AppState } from '~/redux/appstate';\nimport { EntryMapper, RouteNode } 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, index) => {\n const itemValue = composerItem.value;\n const mapper = mappers[composerItem.type] || mappers.default;\n if (mapper) {\n // Add some fields into the composer item mapper and return object\n const addedFields = {\n _type: composerItem.type,\n _index: index,\n };\n\n // Add fields and $root item into the composer item source object\n // for use inside each item mapping, for arrays we inject the added fields\n // into the first array item. This is useful if we require any of\n // composerItem.type, composerItem index/position and composer $root\n // in scope to influence any composer item's mapping logic\n const sourceObject =\n itemValue && Array.isArray(itemValue)\n ? itemValue.map((iv, idx) =>\n idx !== 0\n ? iv\n : typeof iv === 'object'\n ? { ...addedFields, ...iv, $root: composer }\n : iv\n )\n : typeof itemValue === 'object'\n ? { ...addedFields, ...itemValue, $root: composer }\n : itemValue || {};\n\n // Apply the composer item mapping\n const mappedFields = mapJson(sourceObject, mapper) as any;\n\n // Add the extra fields in with the return object\n return mappedFields && typeof mappedFields === 'object'\n ? { ...mappedFields, ...addedFields }\n : mappedFields;\n } else return {};\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 (\n mapping:\n | MappingTemplate<RouteNode & Entry & { state?: AppState }>\n | PureJsFunction<RouteNode & Entry & { state?: AppState }>\n ): EntryMapper =>\n (node, state) =>\n mapJson({ ...node, ...(node.entry || ({} as Entry)), state }, mapping);\n\nexport default mapJson;\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","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","index","itemValue","value","type","addedFields","_type","_index","sourceObject","iv","idx","$root","mappedFields","useComposerMapper","entryMapper","mapping","node","state","stringifyStrings","obj","returnObj","Object","forEach","key","JSON","stringify","module","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","project","selectCurrentProject","reverseProxyPaths","REVERSE_PROXY_PATHS","servers","SERVERS","contensisVersionStatus","selectVersionStatus","mapStateToVersionInfo","mappedProps","VersionInfoStyledTable","styled","table","withConfig","displayName","componentId","VersionInfo","React","createElement","colSpan","href","className","target","rel","alias","ver","web","previewWeb","api","cms","iis","previewIis","path","id","style","margin","padding","listStyleType","toString","k","v","connect"],"mappings":"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"}
|