@zengenti/contensis-react-base 3.1.1-beta.9 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +36 -0
  2. package/cjs/{App-4c9e6d1b.js → App-8a2f85d5.js} +90 -74
  3. package/cjs/App-8a2f85d5.js.map +1 -0
  4. package/cjs/{ChangePassword.container-15acbce2.js → ChangePassword.container-efcb1fcd.js} +27 -28
  5. package/cjs/ChangePassword.container-efcb1fcd.js.map +1 -0
  6. package/{esm/ToJs-48b1f586.js → cjs/CookieHelper.class-34994aa1.js} +11 -97
  7. package/cjs/CookieHelper.class-34994aa1.js.map +1 -0
  8. package/cjs/{RouteLoader-190ac009.js → RouteLoader-4fb33db9.js} +10 -6
  9. package/cjs/RouteLoader-4fb33db9.js.map +1 -0
  10. package/cjs/{ContensisDeliveryApi-d63b3d39.js → SSRContext-433c53e4.js} +103 -42
  11. package/cjs/SSRContext-433c53e4.js.map +1 -0
  12. package/cjs/ToJs-7f965106.js +128 -0
  13. package/cjs/ToJs-7f965106.js.map +1 -0
  14. package/cjs/client.js +20 -20
  15. package/cjs/client.js.map +1 -1
  16. package/cjs/contensis-react-base.js +44 -34
  17. package/cjs/contensis-react-base.js.map +1 -1
  18. package/cjs/forms.js +54 -14
  19. package/cjs/forms.js.map +1 -1
  20. package/cjs/redux.js +16 -16
  21. package/cjs/redux.js.map +1 -1
  22. package/cjs/routing.js +13 -4
  23. package/cjs/routing.js.map +1 -1
  24. package/cjs/{sagas-e04b94c1.js → sagas-4e8b68f0.js} +8 -4
  25. package/cjs/sagas-4e8b68f0.js.map +1 -0
  26. package/cjs/search.js +1 -1
  27. package/cjs/{selectors-8e56cc34.js → selectors-e3f1fd85.js} +240 -3
  28. package/cjs/selectors-e3f1fd85.js.map +1 -0
  29. package/cjs/{version-bb4a3418.js → store-665c229b.js} +7 -23
  30. package/cjs/store-665c229b.js.map +1 -0
  31. package/cjs/user.js +9 -10
  32. package/cjs/user.js.map +1 -1
  33. package/cjs/util.js +14 -10
  34. package/cjs/util.js.map +1 -1
  35. package/cjs/{version-c2a37225.js → version-3b05d6c8.js} +17 -17
  36. package/cjs/{version-c2a37225.js.map → version-3b05d6c8.js.map} +1 -1
  37. package/cjs/version-7b43af3e.js +20 -0
  38. package/cjs/version-7b43af3e.js.map +1 -0
  39. package/esm/{App-b8c75933.js → App-91d81f0c.js} +59 -43
  40. package/esm/App-91d81f0c.js.map +1 -0
  41. package/esm/{ChangePassword.container-6a1c60f3.js → ChangePassword.container-96dab474.js} +4 -5
  42. package/esm/ChangePassword.container-96dab474.js.map +1 -0
  43. package/{cjs/ToJs-374a7fbd.js → esm/CookieHelper.class-6d649751.js} +5 -129
  44. package/esm/CookieHelper.class-6d649751.js.map +1 -0
  45. package/esm/{RouteLoader-487b5a9b.js → RouteLoader-94ca1c51.js} +10 -6
  46. package/esm/RouteLoader-94ca1c51.js.map +1 -0
  47. package/esm/{ContensisDeliveryApi-7b71bb3e.js → SSRContext-88841734.js} +95 -41
  48. package/esm/SSRContext-88841734.js.map +1 -0
  49. package/esm/ToJs-67b34be1.js +98 -0
  50. package/esm/ToJs-67b34be1.js.map +1 -0
  51. package/esm/client.js +18 -18
  52. package/esm/client.js.map +1 -1
  53. package/esm/contensis-react-base.js +31 -21
  54. package/esm/contensis-react-base.js.map +1 -1
  55. package/esm/forms.js +54 -14
  56. package/esm/forms.js.map +1 -1
  57. package/esm/redux.js +7 -7
  58. package/esm/routing.js +13 -4
  59. package/esm/routing.js.map +1 -1
  60. package/esm/{sagas-933a8fc8.js → sagas-66c305a8.js} +8 -4
  61. package/esm/sagas-66c305a8.js.map +1 -0
  62. package/esm/search.js +2 -2
  63. package/esm/selectors-d2bdfe22.js +396 -0
  64. package/esm/selectors-d2bdfe22.js.map +1 -0
  65. package/esm/{version-f6660b69.js → store-f524c50d.js} +4 -16
  66. package/esm/store-f524c50d.js.map +1 -0
  67. package/esm/user.js +7 -8
  68. package/esm/user.js.map +1 -1
  69. package/esm/util.js +6 -5
  70. package/esm/util.js.map +1 -1
  71. package/esm/version-7f50b694.js +15 -0
  72. package/esm/version-7f50b694.js.map +1 -0
  73. package/esm/{version-5a0b9406.js → version-dcc28b32.js} +3 -3
  74. package/esm/{version-5a0b9406.js.map → version-dcc28b32.js.map} +1 -1
  75. package/models/app/App.d.ts +1 -1
  76. package/models/app/pages/VersionInfo/components/VersionInfo.d.ts +1 -1
  77. package/models/client/client.d.ts +1 -1
  78. package/models/index.d.ts +1 -2
  79. package/models/models/AppRouteProps.d.ts +11 -0
  80. package/models/{redux/appstate.d.ts → models/AppState.d.ts} +1 -1
  81. package/models/models/ContentTypeMapping.d.ts +29 -0
  82. package/models/models/EntryMapper.d.ts +3 -0
  83. package/models/models/GetRouteActionArgs.d.ts +15 -0
  84. package/models/models/ReduxInjector.d.ts +5 -0
  85. package/models/models/RequireLogin.d.ts +6 -0
  86. package/models/models/RouteComponent.d.ts +2 -0
  87. package/models/models/RouteComponentProps.d.ts +9 -0
  88. package/models/models/RouteLoaderProps.d.ts +6 -0
  89. package/models/models/RouteNode.d.ts +5 -0
  90. package/models/models/SSRContext.d.ts +11 -0
  91. package/models/models/StaticRoute.d.ts +28 -0
  92. package/models/models/WithEvents.d.ts +29 -0
  93. package/models/models/config/AppConfig.d.ts +12 -0
  94. package/models/{config.d.ts → models/config/ServerConfig.d.ts} +2 -12
  95. package/models/models/config/StateType.d.ts +1 -0
  96. package/models/models/config/index.d.ts +3 -0
  97. package/models/models/index.d.ts +15 -0
  98. package/models/redux/sagas/navigation.d.ts +1 -3
  99. package/models/redux/store/injectors.d.ts +4 -4
  100. package/models/redux/store/store.d.ts +1 -2
  101. package/models/routing/components/RouteLoader.d.ts +1 -1
  102. package/models/routing/redux/actions.d.ts +2 -3
  103. package/models/routing/redux/selectors.d.ts +2 -2
  104. package/models/routing/util/find-contenttype-mapping.d.ts +1 -1
  105. package/models/routing/util/queries.d.ts +2 -2
  106. package/models/search/models/Queries.d.ts +2 -1
  107. package/models/search/models/Search.d.ts +3 -0
  108. package/models/search/search/ContensisDeliveryApi.d.ts +2 -2
  109. package/models/server/features/caching/cacheDuration.schema.d.ts +1 -0
  110. package/models/server/features/linkdepth-api/search.d.ts +1 -1
  111. package/models/server/internalServer.d.ts +1 -1
  112. package/models/server/util/bundles.d.ts +1 -1
  113. package/models/server/util/headers.d.ts +1 -1
  114. package/models/server/webApp.d.ts +1 -1
  115. package/models/user/redux/selectors.d.ts +1 -2
  116. package/models/user/util/matchGroups.d.ts +1 -1
  117. package/models/util/CachedDeliveryApi.d.ts +11 -10
  118. package/models/util/ContensisDeliveryApi.d.ts +9 -6
  119. package/models/util/SSRContext.d.ts +30 -0
  120. package/models/util/index.d.ts +1 -0
  121. package/models/util/json-mapper.d.ts +1 -2
  122. package/package.json +3 -3
  123. package/cjs/App-4c9e6d1b.js.map +0 -1
  124. package/cjs/ChangePassword.container-15acbce2.js.map +0 -1
  125. package/cjs/ContensisDeliveryApi-d63b3d39.js.map +0 -1
  126. package/cjs/CookieConstants-000427db.js +0 -10
  127. package/cjs/CookieConstants-000427db.js.map +0 -1
  128. package/cjs/RouteLoader-190ac009.js.map +0 -1
  129. package/cjs/ToJs-374a7fbd.js.map +0 -1
  130. package/cjs/reducers-ea1b2dc0.js +0 -236
  131. package/cjs/reducers-ea1b2dc0.js.map +0 -1
  132. package/cjs/sagas-e04b94c1.js.map +0 -1
  133. package/cjs/selectors-8e56cc34.js.map +0 -1
  134. package/cjs/version-bb4a3418.js.map +0 -1
  135. package/esm/App-b8c75933.js.map +0 -1
  136. package/esm/ChangePassword.container-6a1c60f3.js.map +0 -1
  137. package/esm/ContensisDeliveryApi-7b71bb3e.js.map +0 -1
  138. package/esm/CookieConstants-3d3b6531.js +0 -6
  139. package/esm/CookieConstants-3d3b6531.js.map +0 -1
  140. package/esm/RouteLoader-487b5a9b.js.map +0 -1
  141. package/esm/ToJs-48b1f586.js.map +0 -1
  142. package/esm/reducers-919da5e0.js +0 -213
  143. package/esm/reducers-919da5e0.js.map +0 -1
  144. package/esm/sagas-933a8fc8.js.map +0 -1
  145. package/esm/selectors-1f0cc787.js +0 -182
  146. package/esm/selectors-1f0cc787.js.map +0 -1
  147. package/esm/version-f6660b69.js.map +0 -1
  148. package/models/routing/routes.d.ts +0 -127
@@ -0,0 +1,128 @@
1
+ 'use strict';
2
+
3
+ var selectors$1 = require('./selectors-e3f1fd85.js');
4
+ var React = require('react');
5
+
6
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
7
+
8
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
9
+
10
+ const selectUserIsLoading = state => selectors$1.getImmutableOrJS(state, ['user', 'authenticationState', 'isLoading']);
11
+ const selectUserIsAuthenticated = state => selectors$1.getImmutableOrJS(state, ['user', 'authenticationState', 'isAuthenticated']);
12
+ const selectUserIsAuthenticationError = state => selectors$1.getImmutableOrJS(state, ['user', 'authenticationState', 'isAuthenticationError']);
13
+ const selectUserIsError = state => selectors$1.getImmutableOrJS(state, ['user', 'authenticationState', 'isError']);
14
+
15
+ /**
16
+ * DEPRECATED 12/2021 - use selectUserErrorMessage instead
17
+ * @param state AppState
18
+ * @returns string
19
+ */
20
+ const selectUserAuthenticationErrorMessage = state => selectors$1.getImmutableOrJS(state, ['user', 'authenticationState', 'errorMessage']);
21
+ const selectUserErrorMessage = state => selectors$1.getImmutableOrJS(state, ['user', 'authenticationState', 'errorMessage']);
22
+ const selectClientCredentials = (state, returnType) => selectors$1.getImmutableOrJS(state, ['user', 'authenticationState', 'clientCredentials'], {}, returnType);
23
+ const selectUser = (state, returnType) => selectors$1.getImmutableOrJS(state, 'user', {}, returnType);
24
+ const selectUserIsZengentiStaff = state => selectors$1.getImmutableOrJS(state, ['user', 'isZengentiStaff']);
25
+ const selectUserGuid = state => selectors$1.getImmutableOrJS(state, ['user', 'id']);
26
+ const selectUsername = state => selectors$1.getImmutableOrJS(state, ['user', 'username']);
27
+ const selectUserEmail = state => selectors$1.getImmutableOrJS(state, ['user', 'email']);
28
+ const selectUserGroups = (state, returnType) => selectors$1.getImmutableOrJS(state, ['user', 'groups'], [], returnType);
29
+ const selectUserSecurityToken = state => selectors$1.getImmutableOrJS(state, ['user', 'authenticationState', 'clientCredentials', 'contensisClassicToken']);
30
+ const selectUserRegistration = (state, returnType) => selectors$1.getImmutableOrJS(state, ['user', 'registration'], {}, returnType);
31
+ const selectUserRegistrationError = state => selectors$1.getImmutableOrJS(state, ['user', 'registration', 'error'], false);
32
+ const selectUserRegistrationIsLoading = state => selectors$1.getImmutableOrJS(state, ['user', 'registration', 'isLoading'], false);
33
+ const selectUserRegistrationIsSuccess = state => selectors$1.getImmutableOrJS(state, ['user', 'registration', 'success'], false);
34
+ const selectPasswordResetRequestSending = state => selectors$1.getImmutableOrJS(state, ['user', 'passwordResetRequest', 'isSending']);
35
+ const selectPasswordResetRequestSent = state => selectors$1.getImmutableOrJS(state, ['user', 'passwordResetRequest', 'sent']);
36
+ const selectPasswordResetRequestError = state => selectors$1.getImmutableOrJS(state, ['user', 'passwordResetRequest', 'error']);
37
+ const selectResetPasswordSending = state => selectors$1.getImmutableOrJS(state, ['user', 'resetPassword', 'isSending']);
38
+ const selectResetPasswordSent = state => selectors$1.getImmutableOrJS(state, ['user', 'resetPassword', 'sent']);
39
+ const selectResetPasswordError = state => selectors$1.getImmutableOrJS(state, ['user', 'resetPassword', 'error']);
40
+ const selectChangePasswordSending = state => selectors$1.getImmutableOrJS(state, ['user', 'changePassword', 'isSending']);
41
+ const selectChangePasswordSent = state => selectors$1.getImmutableOrJS(state, ['user', 'changePassword', 'sent']);
42
+ const selectChangePasswordError = state => selectors$1.getImmutableOrJS(state, ['user', 'changePassword', 'error']);
43
+
44
+ var selectors = /*#__PURE__*/Object.freeze({
45
+ __proto__: null,
46
+ selectUserIsLoading: selectUserIsLoading,
47
+ selectUserIsAuthenticated: selectUserIsAuthenticated,
48
+ selectUserIsAuthenticationError: selectUserIsAuthenticationError,
49
+ selectUserIsError: selectUserIsError,
50
+ selectUserAuthenticationErrorMessage: selectUserAuthenticationErrorMessage,
51
+ selectUserErrorMessage: selectUserErrorMessage,
52
+ selectClientCredentials: selectClientCredentials,
53
+ selectUser: selectUser,
54
+ selectUserIsZengentiStaff: selectUserIsZengentiStaff,
55
+ selectUserGuid: selectUserGuid,
56
+ selectUsername: selectUsername,
57
+ selectUserEmail: selectUserEmail,
58
+ selectUserGroups: selectUserGroups,
59
+ selectUserSecurityToken: selectUserSecurityToken,
60
+ selectUserRegistration: selectUserRegistration,
61
+ selectUserRegistrationError: selectUserRegistrationError,
62
+ selectUserRegistrationIsLoading: selectUserRegistrationIsLoading,
63
+ selectUserRegistrationIsSuccess: selectUserRegistrationIsSuccess,
64
+ selectPasswordResetRequestSending: selectPasswordResetRequestSending,
65
+ selectPasswordResetRequestSent: selectPasswordResetRequestSent,
66
+ selectPasswordResetRequestError: selectPasswordResetRequestError,
67
+ selectResetPasswordSending: selectResetPasswordSending,
68
+ selectResetPasswordSent: selectResetPasswordSent,
69
+ selectResetPasswordError: selectResetPasswordError,
70
+ selectChangePasswordSending: selectChangePasswordSending,
71
+ selectChangePasswordSent: selectChangePasswordSent,
72
+ selectChangePasswordError: selectChangePasswordError
73
+ });
74
+
75
+ const matchUserGroup = (userGroups = [], requiredGroups = []) => {
76
+ if (!Array.isArray(requiredGroups) || Array.isArray(requiredGroups) && requiredGroups.length === 0) return true;
77
+ const groupMatch = requiredGroups.some(requiredGroup => {
78
+ return userGroups.some(userGroup => {
79
+ if (requiredGroup.id === userGroup.id) {
80
+ return true;
81
+ }
82
+ if (requiredGroup.name === userGroup.name) {
83
+ return true;
84
+ }
85
+ });
86
+ });
87
+ return groupMatch;
88
+ };
89
+
90
+ /* eslint-disable react/display-name */
91
+ const toJS = WrappedComponent => wrappedComponentProps => {
92
+ const KEY = 0;
93
+ const VALUE = 1;
94
+ const propsJS = Object.entries(wrappedComponentProps).reduce((newProps, wrappedComponentProp) => {
95
+ const propKey = wrappedComponentProp[KEY];
96
+ const propValue = wrappedComponentProp[VALUE];
97
+ newProps[propKey] = propValue && typeof propValue === 'object' && 'toJS' in propValue ? propValue.toJS() : propValue;
98
+ return newProps;
99
+ }, {});
100
+ return /*#__PURE__*/React__default["default"].createElement(WrappedComponent, propsJS);
101
+ };
102
+
103
+ exports.matchUserGroup = matchUserGroup;
104
+ exports.selectChangePasswordError = selectChangePasswordError;
105
+ exports.selectChangePasswordSending = selectChangePasswordSending;
106
+ exports.selectChangePasswordSent = selectChangePasswordSent;
107
+ exports.selectClientCredentials = selectClientCredentials;
108
+ exports.selectPasswordResetRequestError = selectPasswordResetRequestError;
109
+ exports.selectPasswordResetRequestSending = selectPasswordResetRequestSending;
110
+ exports.selectPasswordResetRequestSent = selectPasswordResetRequestSent;
111
+ exports.selectResetPasswordError = selectResetPasswordError;
112
+ exports.selectResetPasswordSending = selectResetPasswordSending;
113
+ exports.selectResetPasswordSent = selectResetPasswordSent;
114
+ exports.selectUser = selectUser;
115
+ exports.selectUserErrorMessage = selectUserErrorMessage;
116
+ exports.selectUserGroups = selectUserGroups;
117
+ exports.selectUserGuid = selectUserGuid;
118
+ exports.selectUserIsAuthenticated = selectUserIsAuthenticated;
119
+ exports.selectUserIsAuthenticationError = selectUserIsAuthenticationError;
120
+ exports.selectUserIsError = selectUserIsError;
121
+ exports.selectUserIsLoading = selectUserIsLoading;
122
+ exports.selectUserRegistration = selectUserRegistration;
123
+ exports.selectUserRegistrationError = selectUserRegistrationError;
124
+ exports.selectUserRegistrationIsLoading = selectUserRegistrationIsLoading;
125
+ exports.selectUserRegistrationIsSuccess = selectUserRegistrationIsSuccess;
126
+ exports.selectors = selectors;
127
+ exports.toJS = toJS;
128
+ //# sourceMappingURL=ToJs-7f965106.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToJs-7f965106.js","sources":["../src/user/redux/selectors.ts","../src/user/util/matchGroups.ts","../src/util/ToJs.tsx"],"sourcesContent":["import { AppState, StateType } from '~/models';\nimport { getImmutableOrJS as getIn } from '~/redux/util';\n\nexport const selectUserIsLoading = (state: AppState) =>\n getIn(state, ['user', 'authenticationState', 'isLoading']);\n\nexport const selectUserIsAuthenticated = (state: AppState) =>\n getIn(state, ['user', 'authenticationState', 'isAuthenticated']);\n\nexport const selectUserIsAuthenticationError = (state: AppState) =>\n getIn(state, ['user', 'authenticationState', 'isAuthenticationError']);\n\nexport const selectUserIsError = (state: AppState) =>\n getIn(state, ['user', 'authenticationState', 'isError']);\n\n/**\n * DEPRECATED 12/2021 - use selectUserErrorMessage instead\n * @param state AppState\n * @returns string\n */\nexport const selectUserAuthenticationErrorMessage = (state: AppState) =>\n getIn(state, ['user', 'authenticationState', 'errorMessage']);\n\nexport const selectUserErrorMessage = (state: AppState) =>\n getIn(state, ['user', 'authenticationState', 'errorMessage']);\n\nexport const selectClientCredentials = (\n state: AppState,\n returnType?: StateType\n) =>\n getIn(\n state,\n ['user', 'authenticationState', 'clientCredentials'],\n {},\n returnType\n );\n\nexport const selectUser = (state: AppState, returnType?: StateType) =>\n getIn(state, 'user', {}, returnType);\n\nexport const selectUserIsZengentiStaff = (state: AppState) =>\n getIn(state, ['user', 'isZengentiStaff']);\n\nexport const selectUserGuid = (state: AppState) => getIn(state, ['user', 'id']);\n\nexport const selectUsername = (state: AppState) =>\n getIn(state, ['user', 'username']);\n\nexport const selectUserEmail = (state: AppState) =>\n getIn(state, ['user', 'email']);\n\nexport const selectUserGroups = (state: AppState, returnType?: StateType) =>\n getIn(state, ['user', 'groups'], [], returnType);\n\nexport const selectUserSecurityToken = (state: AppState) =>\n getIn(state, [\n 'user',\n 'authenticationState',\n 'clientCredentials',\n 'contensisClassicToken',\n ]);\n\nexport const selectUserRegistration = (\n state: AppState,\n returnType?: StateType\n) => getIn(state, ['user', 'registration'], {}, returnType);\n\nexport const selectUserRegistrationError = (state: AppState) =>\n getIn(state, ['user', 'registration', 'error'], false);\n\nexport const selectUserRegistrationIsLoading = (state: AppState) =>\n getIn(state, ['user', 'registration', 'isLoading'], false);\n\nexport const selectUserRegistrationIsSuccess = (state: AppState) =>\n getIn(state, ['user', 'registration', 'success'], false);\n\nexport const selectPasswordResetRequestSending = (state: AppState) =>\n getIn(state, ['user', 'passwordResetRequest', 'isSending']);\n\nexport const selectPasswordResetRequestSent = (state: AppState) =>\n getIn(state, ['user', 'passwordResetRequest', 'sent']);\n\nexport const selectPasswordResetRequestError = (state: AppState) =>\n getIn(state, ['user', 'passwordResetRequest', 'error']);\n\nexport const selectResetPasswordSending = (state: AppState) =>\n getIn(state, ['user', 'resetPassword', 'isSending']);\n\nexport const selectResetPasswordSent = (state: AppState) =>\n getIn(state, ['user', 'resetPassword', 'sent']);\n\nexport const selectResetPasswordError = (state: AppState) =>\n getIn(state, ['user', 'resetPassword', 'error']);\n\nexport const selectChangePasswordSending = (state: AppState) =>\n getIn(state, ['user', 'changePassword', 'isSending']);\n\nexport const selectChangePasswordSent = (state: AppState) =>\n getIn(state, ['user', 'changePassword', 'sent']);\n\nexport const selectChangePasswordError = (state: AppState) =>\n getIn(state, ['user', 'changePassword', 'error']);\n","import { Group } from 'contensis-management-api/lib/models';\nimport { RequireLogin } from '~/models';\n\nexport const matchUserGroup = (\n userGroups: Group[] = [],\n requiredGroups: RequireLogin = []\n) => {\n if (\n !Array.isArray(requiredGroups) ||\n (Array.isArray(requiredGroups) && requiredGroups.length === 0)\n )\n return true;\n\n const groupMatch = requiredGroups.some(requiredGroup => {\n return userGroups.some(userGroup => {\n if (requiredGroup.id === userGroup.id) {\n return true;\n }\n if (requiredGroup.name === userGroup.name) {\n return true;\n }\n });\n });\n return groupMatch;\n};\n","/* eslint-disable react/display-name */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport React from 'react';\n\nexport const toJS =\n <Props extends { [key: string]: any }>(\n WrappedComponent: React.ComponentType<Props>\n ) =>\n (wrappedComponentProps: Props) => {\n const KEY = 0;\n const VALUE = 1;\n\n const propsJS = Object.entries(wrappedComponentProps).reduce<Props>(\n (newProps: any, wrappedComponentProp) => {\n const propKey = wrappedComponentProp[KEY];\n const propValue = wrappedComponentProp[VALUE];\n newProps[propKey] =\n propValue && typeof propValue === 'object' && 'toJS' in propValue\n ? propValue.toJS()\n : propValue;\n return newProps as Props;\n },\n {} as Props\n );\n\n return <WrappedComponent {...propsJS} />;\n };\n"],"names":["selectUserIsLoading","state","getIn","selectUserIsAuthenticated","selectUserIsAuthenticationError","selectUserIsError","selectUserAuthenticationErrorMessage","selectUserErrorMessage","selectClientCredentials","returnType","selectUser","selectUserIsZengentiStaff","selectUserGuid","selectUsername","selectUserEmail","selectUserGroups","selectUserSecurityToken","selectUserRegistration","selectUserRegistrationError","selectUserRegistrationIsLoading","selectUserRegistrationIsSuccess","selectPasswordResetRequestSending","selectPasswordResetRequestSent","selectPasswordResetRequestError","selectResetPasswordSending","selectResetPasswordSent","selectResetPasswordError","selectChangePasswordSending","selectChangePasswordSent","selectChangePasswordError","matchUserGroup","userGroups","requiredGroups","Array","isArray","length","groupMatch","some","requiredGroup","userGroup","id","name","toJS","WrappedComponent","wrappedComponentProps","KEY","VALUE","propsJS","Object","entries","reduce","newProps","wrappedComponentProp","propKey","propValue","React","createElement"],"mappings":"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"}
package/cjs/client.js CHANGED
@@ -11,29 +11,29 @@ var reactRouterDom = require('react-router-dom');
11
11
  var component = require('@loadable/component');
12
12
  var queryString = require('query-string');
13
13
  var reactCookie = require('react-cookie');
14
- var version = require('./version-bb4a3418.js');
15
- var version$1 = require('./version-c2a37225.js');
16
- var App = require('./App-4c9e6d1b.js');
17
- var selectors = require('./selectors-8e56cc34.js');
18
- var ContensisDeliveryApi = require('./ContensisDeliveryApi-d63b3d39.js');
19
- require('redux');
20
- require('redux-thunk');
21
- require('redux-saga');
22
- require('redux-injectors');
23
- require('immer');
24
- require('./reducers-ea1b2dc0.js');
14
+ var version = require('./version-7b43af3e.js');
15
+ var version$1 = require('./version-3b05d6c8.js');
16
+ var App = require('./App-8a2f85d5.js');
17
+ var store = require('./store-665c229b.js');
18
+ var selectors = require('./selectors-e3f1fd85.js');
19
+ var SSRContext = require('./SSRContext-433c53e4.js');
25
20
  require('@redux-saga/core/effects');
26
21
  require('history');
27
22
  require('loglevel');
28
23
  require('await-to-js');
29
- require('./ChangePassword.container-15acbce2.js');
30
- require('./ToJs-374a7fbd.js');
24
+ require('./ChangePassword.container-efcb1fcd.js');
25
+ require('./ToJs-7f965106.js');
31
26
  require('jsonpath-mapper');
32
- require('./CookieConstants-000427db.js');
27
+ require('./CookieHelper.class-34994aa1.js');
33
28
  require('contensis-delivery-api');
34
- require('./RouteLoader-190ac009.js');
29
+ require('./RouteLoader-4fb33db9.js');
35
30
  require('react-router-config');
36
31
  require('reselect');
32
+ require('redux');
33
+ require('redux-thunk');
34
+ require('redux-saga');
35
+ require('redux-injectors');
36
+ require('immer');
37
37
 
38
38
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
39
39
 
@@ -57,10 +57,10 @@ class ClientApp {
57
57
  store: store
58
58
  }, /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Router, {
59
59
  history: App.browserHistory
60
- }, /*#__PURE__*/React__default["default"].createElement(ReactApp, {
60
+ }, /*#__PURE__*/React__default["default"].createElement(SSRContext.SSRContextProvider, null, /*#__PURE__*/React__default["default"].createElement(ReactApp, {
61
61
  routes: routes,
62
62
  withEvents: withEvents
63
- })))));
63
+ }))))));
64
64
  return ClientJsx;
65
65
  };
66
66
  const isProduction = !(process.env.NODE_ENV !== 'production');
@@ -85,9 +85,9 @@ class ClientApp {
85
85
  }
86
86
  };
87
87
  const qs = queryString.parse(window.location.search);
88
- const versionStatus = ContensisDeliveryApi.deliveryApi.getClientSideVersionStatus();
88
+ const versionStatus = SSRContext.deliveryApi.getClientSideVersionStatus();
89
89
  if (window.isDynamic || window.REDUX_DATA || process.env.NODE_ENV !== 'production') {
90
- version.createStore(withReducers, window.REDUX_DATA, App.browserHistory, stateType).then(store => {
90
+ store.createStore(withReducers, window.REDUX_DATA, App.browserHistory, stateType).then(store => {
91
91
  const state = store.getState();
92
92
  const ssrVersionStatus = version.selectVersionStatus(state);
93
93
  if (!ssrVersionStatus) store.dispatch(version$1.setVersionStatus(versionStatus));
@@ -104,7 +104,7 @@ class ClientApp {
104
104
  } else {
105
105
  fetch(`${window.location.pathname}?redux=true`).then(response => response.json()).then(data => {
106
106
  const ssRedux = JSON.parse(data);
107
- version.createStore(withReducers, ssRedux, App.browserHistory, stateType).then(store => {
107
+ store.createStore(withReducers, ssRedux, App.browserHistory, stateType).then(store => {
108
108
  store.dispatch(version$1.setVersionStatus(versionStatus));
109
109
  store.runSaga(App.rootSaga(withSagas));
110
110
  store.dispatch(selectors.setCurrentProject(App.pickProject(window.location.hostname, qs), [], window.location.hostname));
package/cjs/client.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sources":["../src/client/client.tsx"],"sourcesContent":["import 'isomorphic-fetch';\nimport React from 'react';\nimport { render, hydrate } from 'react-dom';\nimport { AppContainer } from 'react-hot-loader';\nimport { Provider as ReduxProvider } from 'react-redux';\nimport { Router } from 'react-router-dom';\nimport { loadableReady } from '@loadable/component';\nimport { parse } from 'query-string';\nimport { CookiesProvider } from 'react-cookie';\n\nimport { selectVersionStatus } from '~/redux/selectors/version';\nimport { setVersionStatus } from '~/redux/actions/version';\nimport rootSaga from '~/redux/sagas';\nimport { browserHistory as history } from '~/redux/store/history';\nimport createStore from '~/redux/store/store';\n\nimport { setCurrentProject } from '~/routing/redux/actions';\n\nimport { deliveryApi } from '~/util/ContensisDeliveryApi';\nimport pickProject from '~/util/pickProject';\n\nimport { AppConfig } from '~/config';\n\ndeclare let window: typeof globalThis & {\n isDynamic;\n REDUX_DATA;\n};\n\ntype ReactAppProps = { routes: any; withEvents: any };\n\n// Fix TS2769 error No overload matches this call\nconst Container = AppContainer as any; // as typeof AppContainer;\n\nclass ClientApp {\n constructor(ReactApp: React.ComponentType<ReactAppProps>, config: AppConfig) {\n const documentRoot = document.getElementById('root');\n\n const {\n stateType = 'immutable',\n routes,\n withReducers,\n withSagas,\n withEvents,\n } = config;\n\n const GetClientJSX = store => {\n const ClientJsx = (\n <Container>\n <CookiesProvider>\n <ReduxProvider store={store}>\n <Router history={history}>\n <ReactApp routes={routes} withEvents={withEvents} />\n </Router>\n </ReduxProvider>\n </CookiesProvider>\n </Container>\n );\n return ClientJsx;\n };\n\n const isProduction = !(process.env.NODE_ENV !== 'production');\n\n /**\n * Webpack HMR Setup.\n */\n const HMRRenderer = Component => {\n if (isProduction)\n loadableReady(\n () => {\n hydrate(Component, documentRoot);\n },\n { namespace: 'modern' }\n );\n else render(Component, documentRoot);\n };\n\n const hmr = store => {\n // webpack Hot Module Replacement API\n if (module.hot) {\n module.hot.accept(ReactApp as unknown as string, () => {\n // if you are using harmony modules ({modules:false})\n HMRRenderer(GetClientJSX(store));\n });\n }\n };\n\n const qs = parse(window.location.search);\n const versionStatus = deliveryApi.getClientSideVersionStatus();\n\n if (\n window.isDynamic ||\n window.REDUX_DATA ||\n process.env.NODE_ENV !== 'production'\n ) {\n createStore(withReducers, window.REDUX_DATA, history, stateType).then(\n store => {\n const state = store.getState();\n const ssrVersionStatus = selectVersionStatus(state);\n if (!ssrVersionStatus)\n store.dispatch(setVersionStatus(versionStatus));\n\n /* eslint-disable no-console */\n console.log('Hydrating from inline Redux');\n /* eslint-enable no-console */\n store.runSaga(rootSaga(withSagas));\n store.dispatch(\n setCurrentProject(\n pickProject(window.location.hostname, qs),\n [],\n window.location.hostname\n )\n );\n\n delete window.REDUX_DATA;\n HMRRenderer(GetClientJSX(store));\n\n hmr(store);\n }\n );\n } else {\n fetch(`${window.location.pathname}?redux=true`)\n .then(response => response.json())\n .then(data => {\n const ssRedux = JSON.parse(data);\n createStore(withReducers, ssRedux, history, stateType).then(store => {\n store.dispatch(setVersionStatus(versionStatus));\n\n store.runSaga(rootSaga(withSagas));\n store.dispatch(\n setCurrentProject(\n pickProject(window.location.hostname, qs),\n [],\n window.location.hostname\n )\n );\n\n HMRRenderer(GetClientJSX(store));\n\n hmr(store);\n });\n });\n }\n }\n}\n\nexport default ClientApp;\n"],"names":["Container","AppContainer","ClientApp","constructor","ReactApp","config","documentRoot","document","getElementById","stateType","routes","withReducers","withSagas","withEvents","GetClientJSX","store","ClientJsx","React","createElement","CookiesProvider","ReduxProvider","Router","history","isProduction","process","env","NODE_ENV","HMRRenderer","Component","loadableReady","hydrate","namespace","render","hmr","module","hot","accept","qs","parse","window","location","search","versionStatus","deliveryApi","getClientSideVersionStatus","isDynamic","REDUX_DATA","createStore","then","state","getState","ssrVersionStatus","selectVersionStatus","dispatch","setVersionStatus","console","log","runSaga","rootSaga","setCurrentProject","pickProject","hostname","fetch","pathname","response","json","data","ssRedux","JSON"],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sources":["../src/client/client.tsx"],"sourcesContent":["import 'isomorphic-fetch';\nimport React from 'react';\nimport { render, hydrate } from 'react-dom';\nimport { AppContainer } from 'react-hot-loader';\nimport { Provider as ReduxProvider } from 'react-redux';\nimport { Router } from 'react-router-dom';\nimport { loadableReady } from '@loadable/component';\nimport { parse } from 'query-string';\nimport { CookiesProvider } from 'react-cookie';\n\nimport { selectVersionStatus } from '~/redux/selectors/version';\nimport { setVersionStatus } from '~/redux/actions/version';\nimport rootSaga from '~/redux/sagas';\nimport { browserHistory as history } from '~/redux/store/history';\nimport createStore from '~/redux/store/store';\n\nimport { setCurrentProject } from '~/routing/redux/actions';\n\nimport { deliveryApi } from '~/util/ContensisDeliveryApi';\nimport pickProject from '~/util/pickProject';\nimport { SSRContextProvider } from '~/util/SSRContext';\n\nimport { AppConfig, AppState } from '~/models';\n\ndeclare let window: typeof globalThis & {\n isDynamic: boolean;\n REDUX_DATA: AppState;\n};\n\ntype ReactAppProps = { routes: any; withEvents: any };\n\n// Fix TS2769 error No overload matches this call\nconst Container = AppContainer as any; // as typeof AppContainer;\n\nclass ClientApp {\n constructor(ReactApp: React.ComponentType<ReactAppProps>, config: AppConfig) {\n const documentRoot = document.getElementById('root');\n\n const {\n stateType = 'immutable',\n routes,\n withReducers,\n withSagas,\n withEvents,\n } = config;\n\n const GetClientJSX = store => {\n const ClientJsx = (\n <Container>\n <CookiesProvider>\n <ReduxProvider store={store}>\n <Router history={history}>\n <SSRContextProvider>\n <ReactApp routes={routes} withEvents={withEvents} />\n </SSRContextProvider>\n </Router>\n </ReduxProvider>\n </CookiesProvider>\n </Container>\n );\n return ClientJsx;\n };\n\n const isProduction = !(process.env.NODE_ENV !== 'production');\n\n /**\n * Webpack HMR Setup.\n */\n const HMRRenderer = Component => {\n if (isProduction)\n loadableReady(\n () => {\n hydrate(Component, documentRoot);\n },\n { namespace: 'modern' }\n );\n else render(Component, documentRoot);\n };\n\n const hmr = store => {\n // webpack Hot Module Replacement API\n if (module.hot) {\n module.hot.accept(ReactApp as unknown as string, () => {\n // if you are using harmony modules ({modules:false})\n HMRRenderer(GetClientJSX(store));\n });\n }\n };\n\n const qs = parse(window.location.search);\n const versionStatus = deliveryApi.getClientSideVersionStatus();\n\n if (\n window.isDynamic ||\n window.REDUX_DATA ||\n process.env.NODE_ENV !== 'production'\n ) {\n createStore(withReducers, window.REDUX_DATA, history, stateType).then(\n store => {\n const state = store.getState();\n const ssrVersionStatus = selectVersionStatus(state);\n if (!ssrVersionStatus)\n store.dispatch(setVersionStatus(versionStatus));\n\n /* eslint-disable no-console */\n console.log('Hydrating from inline Redux');\n /* eslint-enable no-console */\n store.runSaga(rootSaga(withSagas));\n store.dispatch(\n setCurrentProject(\n pickProject(window.location.hostname, qs),\n [],\n window.location.hostname\n )\n );\n\n delete (window as any).REDUX_DATA;\n HMRRenderer(GetClientJSX(store));\n\n hmr(store);\n }\n );\n } else {\n fetch(`${window.location.pathname}?redux=true`)\n .then(response => response.json())\n .then(data => {\n const ssRedux = JSON.parse(data);\n createStore(withReducers, ssRedux, history, stateType).then(store => {\n store.dispatch(setVersionStatus(versionStatus));\n\n store.runSaga(rootSaga(withSagas));\n store.dispatch(\n setCurrentProject(\n pickProject(window.location.hostname, qs),\n [],\n window.location.hostname\n )\n );\n\n HMRRenderer(GetClientJSX(store));\n\n hmr(store);\n });\n });\n }\n }\n}\n\nexport default ClientApp;\n"],"names":["Container","AppContainer","ClientApp","constructor","ReactApp","config","documentRoot","document","getElementById","stateType","routes","withReducers","withSagas","withEvents","GetClientJSX","store","ClientJsx","React","createElement","CookiesProvider","ReduxProvider","Router","history","SSRContextProvider","isProduction","process","env","NODE_ENV","HMRRenderer","Component","loadableReady","hydrate","namespace","render","hmr","module","hot","accept","qs","parse","window","location","search","versionStatus","deliveryApi","getClientSideVersionStatus","isDynamic","REDUX_DATA","createStore","then","state","getState","ssrVersionStatus","selectVersionStatus","dispatch","setVersionStatus","console","log","runSaga","rootSaga","setCurrentProject","pickProject","hostname","fetch","pathname","response","json","data","ssRedux","JSON"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var ContensisDeliveryApi = require('./ContensisDeliveryApi-d63b3d39.js');
5
+ var SSRContext = require('./SSRContext-433c53e4.js');
6
6
  var contensisDeliveryApi = require('contensis-delivery-api');
7
7
  var React = require('react');
8
8
  var reactRedux = require('react-redux');
@@ -10,7 +10,7 @@ var mapJson = require('jsonpath-mapper');
10
10
  require('reselect');
11
11
  require('deepmerge');
12
12
  require('query-string');
13
- var sagas = require('./sagas-e04b94c1.js');
13
+ var sagas = require('./sagas-4e8b68f0.js');
14
14
  require('immer');
15
15
  require('deep-equal');
16
16
  var contensisCoreApi = require('contensis-core-api');
@@ -34,26 +34,26 @@ var lodash = require('lodash');
34
34
  var _commonjsHelpers = require('./_commonjsHelpers-b3309d7b.js');
35
35
  var lodashClean = require('lodash-clean');
36
36
  var reactCookie = require('react-cookie');
37
- var ToJs = require('./ToJs-374a7fbd.js');
37
+ var CookieHelper_class = require('./CookieHelper.class-34994aa1.js');
38
38
  var cookiesMiddleware = require('universal-cookie-express');
39
- var version = require('./version-bb4a3418.js');
40
- var App = require('./App-4c9e6d1b.js');
41
- var version$1 = require('./version-c2a37225.js');
42
- var selectors = require('./selectors-8e56cc34.js');
39
+ var store = require('./store-665c229b.js');
40
+ var App = require('./App-8a2f85d5.js');
41
+ var version = require('./version-3b05d6c8.js');
42
+ var selectors = require('./selectors-e3f1fd85.js');
43
43
  var chalk = require('chalk');
44
- require('./CookieConstants-000427db.js');
45
44
  require('loglevel');
46
45
  require('@redux-saga/core/effects');
47
46
  require('redux');
48
47
  require('redux-thunk');
49
48
  require('redux-saga');
50
49
  require('redux-injectors');
51
- require('./reducers-ea1b2dc0.js');
52
50
  require('history');
53
51
  require('await-to-js');
54
- require('./ChangePassword.container-15acbce2.js');
52
+ require('./version-7b43af3e.js');
53
+ require('./ChangePassword.container-efcb1fcd.js');
54
+ require('./ToJs-7f965106.js');
55
55
  require('react-hot-loader');
56
- require('./RouteLoader-190ac009.js');
56
+ require('./RouteLoader-4fb33db9.js');
57
57
 
58
58
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
59
59
 
@@ -241,7 +241,7 @@ const resolveParentEntries = async (parentContentTypeIds, replaceContentTypeIds,
241
241
  });
242
242
  query.fields = params.fields ? [...JSON.parse(params.fields), parentFieldId] : [];
243
243
  if (debug) console.log(`\nResolve parent entries query: \n${JSON.stringify(query.toJSON()).substring(0, 1000)}`);
244
- const parentResults = await ContensisDeliveryApi.cachedSearch.searchUsingPost(query, Number(params.linkDepth || 0), params.projectId);
244
+ const parentResults = await SSRContext.cachedSearch.searchUsingPost(query, Number(params.linkDepth || 0), params.projectId);
245
245
  return mergeResults(results, Util.GetItems(parentResults), replaceContentTypeIds, parentFieldId);
246
246
  };
247
247
 
@@ -298,7 +298,7 @@ class QueryLevelResults {
298
298
  }
299
299
  if (runFirstQuery) {
300
300
  if (this.debug) console.log(`\nLevel ${this.level} - First query: \n${JSON.stringify(query.toJSON()).substring(0, 1000)}`);
301
- this.firstResults = await ContensisDeliveryApi.cachedSearch.searchUsingPost(query, 0, params.projectId);
301
+ this.firstResults = await SSRContext.cachedSearch.searchUsingPost(query, 0, params.projectId);
302
302
 
303
303
  // mapResultsToValidatedLinks
304
304
  for (const linkFieldId of this.linkFieldIds) {
@@ -336,7 +336,7 @@ class QueryLevelResults {
336
336
 
337
337
  if (runFinalQuery) {
338
338
  if (this.debug) console.log(`\nLevel ${this.level} - Final query: \n${JSON.stringify(query.toJSON()).substring(0, 1000)}`);
339
- this.finalResults = await ContensisDeliveryApi.cachedSearch.searchUsingPost(query, Number(params.linkDepth) || 0, params.projectId);
339
+ this.finalResults = await SSRContext.cachedSearch.searchUsingPost(query, Number(params.linkDepth) || 0, params.projectId);
340
340
  if (this.parent) this.parent.runFinalQuery = true;
341
341
 
342
342
  // mapResultsToValidatedLinks
@@ -484,7 +484,7 @@ class LinkDepthSearchService {
484
484
  };
485
485
  })) || []);
486
486
  if (this.debug) console.log(`\nFinal query: ${derivedIds.reduce((accumulator, object) => accumulator + object.entryIds.length, 0)} derived ids \n${JSON.stringify(query.toJSON()).substring(0, 1000)}`);
487
- const finalQueryResult = await ContensisDeliveryApi.cachedSearch.searchUsingPost(query, Number(params.linkDepth) || 0, params.projectId);
487
+ const finalQueryResult = await SSRContext.cachedSearch.searchUsingPost(query, Number(params.linkDepth) || 0, params.projectId);
488
488
 
489
489
  // Resolve any parent entries
490
490
 
@@ -695,9 +695,12 @@ const CacheDuration = {
695
695
  };
696
696
 
697
697
  const getCacheDuration = (status = 200) => {
698
- if (status > 400) return CacheDuration[404];
698
+ if (status >= 400) return CacheDuration[404];
699
699
  return CacheDuration[200];
700
700
  };
701
+ const alias = ALIAS; /* global ALIAS */
702
+
703
+ const anyUpdateHeader = `${alias}_any-update`;
701
704
 
702
705
  const replaceStaticPath = (str, staticFolderPath = 'static') => str.replace(/static\//g, `${staticFolderPath}/`);
703
706
 
@@ -3738,17 +3741,21 @@ const getBundleTags = (loadableExtractor, scripts, staticRoutePath = 'static') =
3738
3741
  return startupTag;
3739
3742
  };
3740
3743
 
3741
- const alias = ALIAS; /* global ALIAS */
3742
-
3743
3744
  const addStandardHeaders = (state, response, packagejson, groups) => {
3744
3745
  if (state) {
3745
3746
  try {
3746
3747
  const routingSurrogateKeys = selectors.selectSurrogateKeys(state);
3747
- console.info(`[addStandardHeaders] ${routingSurrogateKeys.length} surrogate keys for ${response.req.url}`);
3748
- // Check length of surrogate keys and prevent potential header overflow
3749
- // errors in prod by replacing with `any-update` header that will indiscriminately
3750
- // invalidate the SSR page cache when any content is updated
3751
- const surrogateKeys = routingSurrogateKeys.length >= 2000 ? `${alias}_any-update` : routingSurrogateKeys.join(' ');
3748
+ const apiCalls = selectors.selectSsrApiCalls(state);
3749
+ const anyApiError = !!apiCalls.find(([status]) => status >= 400);
3750
+
3751
+ // Check length of surrogate keys and prevent potential header overflow errors in prod
3752
+ // Check for any error set in the page response
3753
+ // And check if we have seen any error in any of the Delivery API calls
3754
+ // - add `any-update` header that will indiscriminately
3755
+ // invalidate the SSR page cache when any content is updated
3756
+ const addAnyUpdateHeader = routingSurrogateKeys.length >= 2000 || response.statusCode >= 400 || anyApiError;
3757
+ console.info(`[addStandardHeaders] ${addAnyUpdateHeader ? anyUpdateHeader : routingSurrogateKeys.length} surrogate keys for ${response.req.url}`);
3758
+ const surrogateKeys = addAnyUpdateHeader ? anyUpdateHeader : routingSurrogateKeys.join(' ');
3752
3759
  const surrogateKeyHeader = `${packagejson.name}-app ${surrogateKeys}`;
3753
3760
  response.setHeader('surrogate-key', surrogateKeyHeader);
3754
3761
  addVarnishAuthenticationHeaders(state, response, groups);
@@ -3868,42 +3875,45 @@ const webApp = (app, ReactApp, config) => {
3868
3875
  response.status(200);
3869
3876
 
3870
3877
  // Create a store (with a memory history) from our current url
3871
- const store = await version.createStore(withReducers, {}, App.history({
3878
+ const store$1 = await store.createStore(withReducers, {}, App.history({
3872
3879
  initialEntries: [url]
3873
3880
  }), stateType);
3874
3881
 
3875
3882
  // dispatch any global and non-saga related actions before calling our JSX
3876
- const versionStatus = ContensisDeliveryApi.deliveryApi.getServerSideVersionStatus(request);
3883
+ const versionStatus = SSRContext.deliveryApi.getServerSideVersionStatus(request);
3877
3884
 
3878
3885
  // In server-side blocks world, the hostname requested by the client resides in the x-orig-host header
3879
3886
  // Because of this, we prioritize x-orig-host when setting our hostname
3880
3887
  const hostname = request.headers['x-orig-host'] || request.hostname;
3881
3888
  console.info(`Request for ${request.path} hostname: ${hostname} versionStatus: ${versionStatus}`);
3882
- store.dispatch(version$1.setVersionStatus(versionStatus));
3883
- store.dispatch(version$1.setVersion(versionInfo.commitRef, versionInfo.buildNo));
3889
+ store$1.dispatch(version.setVersionStatus(versionStatus));
3890
+ store$1.dispatch(version.setVersion(versionInfo.commitRef, versionInfo.buildNo));
3884
3891
  const project = App.pickProject(hostname, request.query);
3885
3892
  const groups = allowedGroups && allowedGroups[project];
3886
- store.dispatch(selectors.setCurrentProject(project, groups, hostname));
3893
+ store$1.dispatch(selectors.setCurrentProject(project, groups, hostname));
3887
3894
  const loadableExtractor = loadableChunkExtractors();
3888
3895
  const ssrCookies = enableSsrCookies ?
3889
3896
  // these cookies are managed by the cookiesMiddleware and contain listeners
3890
3897
  // when cookies are read or written in ssr can be added to the `set-cookie` response header
3891
3898
  request.universalCookies :
3892
3899
  // this is a stub cookie collection so cookie methods can be used in code
3893
- new ToJs.Cookies();
3900
+ new CookieHelper_class.Cookies();
3894
3901
  const jsx = /*#__PURE__*/React__default["default"].createElement(server$1.ChunkExtractorManager, {
3895
3902
  extractor: loadableExtractor.commonLoadableExtractor
3896
3903
  }, /*#__PURE__*/React__default["default"].createElement(reactCookie.CookiesProvider, {
3897
3904
  cookies: ssrCookies
3898
3905
  }, /*#__PURE__*/React__default["default"].createElement(reactRedux.Provider, {
3899
- store: store
3906
+ store: store$1
3900
3907
  }, /*#__PURE__*/React__default["default"].createElement(reactRouterDom.StaticRouter, {
3901
3908
  context: context,
3902
3909
  location: url
3910
+ }, /*#__PURE__*/React__default["default"].createElement(SSRContext.SSRContextProvider, {
3911
+ request: request,
3912
+ response: response
3903
3913
  }, /*#__PURE__*/React__default["default"].createElement(ReactApp, {
3904
3914
  routes: routes,
3905
3915
  withEvents: withEvents
3906
- })))));
3916
+ }))))));
3907
3917
  const {
3908
3918
  templateHTML = '',
3909
3919
  templateHTMLFragment = '',
@@ -3928,7 +3938,7 @@ const webApp = (app, ReactApp, config) => {
3928
3938
 
3929
3939
  // Render the JSX server side and send response as per access method options
3930
3940
  if (!accessMethod.DYNAMIC) {
3931
- store.runSaga(App.rootSaga(withSagas)).toPromise().then(() => {
3941
+ store$1.runSaga(App.rootSaga(withSagas)).toPromise().then(() => {
3932
3942
  var _selectCurrentSearch;
3933
3943
  const sheet = new styled.ServerStyleSheet();
3934
3944
  const html = server$2.renderToString(sheet.collectStyles(jsx));
@@ -3940,7 +3950,7 @@ const webApp = (app, ReactApp, config) => {
3940
3950
  if (context.url) {
3941
3951
  return response.redirect(context.statusCode || 302, context.url);
3942
3952
  }
3943
- const reduxState = store.getState();
3953
+ const reduxState = store$1.getState();
3944
3954
  const styleTags = sheet.getStyleTags();
3945
3955
 
3946
3956
  // After running rootSaga there should be an additional react-loadable
@@ -4039,7 +4049,7 @@ const webApp = (app, ReactApp, config) => {
4039
4049
  responseHandler(request, response, `Error occurred: <br />${err.stack} <br />${JSON.stringify(err)}`);
4040
4050
  });
4041
4051
  server$2.renderToString(jsx);
4042
- store.close();
4052
+ store$1.close();
4043
4053
  }
4044
4054
  });
4045
4055
  };