@zengenti/contensis-react-base 3.0.0-beta.1 → 3.0.0-beta.2

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 (133) hide show
  1. package/README.md +8 -2
  2. package/cjs/{App-fbd91490.js → App-581b6653.js} +20 -19
  3. package/cjs/App-581b6653.js.map +1 -0
  4. package/cjs/{RouteLoader-f99cd734.js → RouteLoader-282c03ab.js} +5 -5
  5. package/cjs/RouteLoader-282c03ab.js.map +1 -0
  6. package/cjs/ToJs-87edc45d.js +230 -0
  7. package/cjs/ToJs-87edc45d.js.map +1 -0
  8. package/cjs/{actions-e9f69947.js → actions-12871aca.js} +9 -13
  9. package/cjs/actions-12871aca.js.map +1 -0
  10. package/cjs/client.js +42 -61
  11. package/cjs/client.js.map +1 -1
  12. package/cjs/contensis-react-base.js +54 -55
  13. package/cjs/contensis-react-base.js.map +1 -1
  14. package/cjs/forms.js +1 -1
  15. package/cjs/fromJSLeaveImmer-9b550c8e.js +40 -0
  16. package/cjs/fromJSLeaveImmer-9b550c8e.js.map +1 -0
  17. package/cjs/{login-4f274c6a.js → login-81d7f9ef.js} +11 -10
  18. package/cjs/login-81d7f9ef.js.map +1 -0
  19. package/cjs/{reducers-cb531715.js → reducers-fde41d6b.js} +76 -31
  20. package/cjs/reducers-fde41d6b.js.map +1 -0
  21. package/cjs/redux.js +11 -8
  22. package/cjs/redux.js.map +1 -1
  23. package/cjs/routing.js +5 -5
  24. package/cjs/search.js +409 -233
  25. package/cjs/search.js.map +1 -1
  26. package/cjs/selectors-ed26ed97.js +141 -0
  27. package/cjs/selectors-ed26ed97.js.map +1 -0
  28. package/cjs/user.js +14 -14
  29. package/cjs/user.js.map +1 -1
  30. package/cjs/util.js +24 -10
  31. package/cjs/util.js.map +1 -1
  32. package/cjs/version-0c190929.js +20 -0
  33. package/cjs/version-0c190929.js.map +1 -0
  34. package/cjs/{version-3a808c12.js → version-f061e409.js} +154 -76
  35. package/cjs/version-f061e409.js.map +1 -0
  36. package/esm/{App-fbef99b3.js → App-122f28a3.js} +20 -19
  37. package/esm/App-122f28a3.js.map +1 -0
  38. package/esm/{RouteLoader-281d47e1.js → RouteLoader-c2faac87.js} +5 -5
  39. package/esm/RouteLoader-c2faac87.js.map +1 -0
  40. package/esm/ToJs-52fee252.js +199 -0
  41. package/esm/ToJs-52fee252.js.map +1 -0
  42. package/esm/{actions-ddd9c623.js → actions-3cc39599.js} +4 -7
  43. package/esm/actions-3cc39599.js.map +1 -0
  44. package/esm/client.js +43 -62
  45. package/esm/client.js.map +1 -1
  46. package/esm/contensis-react-base.js +53 -53
  47. package/esm/contensis-react-base.js.map +1 -1
  48. package/esm/forms.js +1 -1
  49. package/esm/fromJSLeaveImmer-e44d1a91.js +38 -0
  50. package/esm/fromJSLeaveImmer-e44d1a91.js.map +1 -0
  51. package/esm/{login-1f9ad133.js → login-92db44d1.js} +11 -10
  52. package/esm/login-92db44d1.js.map +1 -0
  53. package/esm/{reducers-feab84fc.js → reducers-d6c0edb1.js} +77 -31
  54. package/esm/reducers-d6c0edb1.js.map +1 -0
  55. package/esm/redux.js +9 -8
  56. package/esm/redux.js.map +1 -1
  57. package/esm/routing.js +5 -5
  58. package/esm/search.js +409 -235
  59. package/esm/search.js.map +1 -1
  60. package/esm/selectors-82e71d8e.js +116 -0
  61. package/esm/selectors-82e71d8e.js.map +1 -0
  62. package/esm/user.js +10 -10
  63. package/esm/user.js.map +1 -1
  64. package/esm/util.js +24 -10
  65. package/esm/util.js.map +1 -1
  66. package/esm/version-59c8f9be.js +15 -0
  67. package/esm/version-59c8f9be.js.map +1 -0
  68. package/esm/{version-64906b26.js → version-cb9cd09d.js} +133 -76
  69. package/esm/version-cb9cd09d.js.map +1 -0
  70. package/models/app/pages/VersionInfo/components/VersionInfo.d.ts +1 -1
  71. package/models/config.d.ts +2 -0
  72. package/models/redux/appstate.d.ts +85 -0
  73. package/models/redux/index.d.ts +1 -0
  74. package/models/redux/reducers/navigation.d.ts +6 -2
  75. package/models/redux/reducers/version.d.ts +5 -2
  76. package/models/redux/store/store.d.ts +4 -1
  77. package/models/redux/util.d.ts +2 -0
  78. package/models/routing/components/RouteLoader.d.ts +20 -2
  79. package/models/routing/redux/reducers.d.ts +21 -3
  80. package/models/routing/redux/selectors.d.ts +29 -25
  81. package/models/routing/routes.d.ts +10 -2
  82. package/models/search/hooks/useMinilist.hook.d.ts +5 -5
  83. package/models/search/models/Search.d.ts +8 -1
  84. package/models/search/models/SearchActions.d.ts +3 -4
  85. package/models/search/models/SearchState.d.ts +25 -9
  86. package/models/search/models/WithSearch.d.ts +61 -0
  87. package/models/search/redux/getIn.d.ts +3 -0
  88. package/models/search/redux/reducers.d.ts +346 -2
  89. package/models/search/redux/sagas.d.ts +2 -2
  90. package/models/search/redux/schema.d.ts +56 -8
  91. package/models/search/redux/selectors.d.ts +75 -66
  92. package/models/search/redux/util.d.ts +1 -1
  93. package/models/search/search/util.d.ts +2 -3
  94. package/models/user/components/Login.d.ts +10 -1
  95. package/models/user/containers/ChangePassword.container.d.ts +4 -1
  96. package/models/user/containers/ForgotPassword.container.d.ts +4 -1
  97. package/models/user/containers/Login.container.d.ts +4 -1
  98. package/models/user/containers/Registration.container.d.ts +4 -1
  99. package/models/user/hocs/withLogin.d.ts +9 -1
  100. package/models/user/hocs/withRegistration.d.ts +9 -1
  101. package/models/user/hooks/useChangePassword.d.ts +5 -5
  102. package/models/user/hooks/useForgotPassword.d.ts +6 -6
  103. package/models/user/hooks/useLogin.d.ts +45 -7
  104. package/models/user/hooks/useRegistration.d.ts +4 -4
  105. package/models/user/redux/reducers.d.ts +54 -3
  106. package/models/user/redux/selectors.d.ts +72 -27
  107. package/models/util/ToJs.d.ts +4 -1
  108. package/package-lock.json +1091 -21399
  109. package/package.json +9 -8
  110. package/cjs/App-fbd91490.js.map +0 -1
  111. package/cjs/RouteLoader-f99cd734.js.map +0 -1
  112. package/cjs/ToJs-d72e5b10.js +0 -167
  113. package/cjs/ToJs-d72e5b10.js.map +0 -1
  114. package/cjs/actions-e9f69947.js.map +0 -1
  115. package/cjs/login-4f274c6a.js.map +0 -1
  116. package/cjs/reducers-cb531715.js.map +0 -1
  117. package/cjs/selectors-1295124a.js +0 -139
  118. package/cjs/selectors-1295124a.js.map +0 -1
  119. package/cjs/version-2193b4a2.js +0 -24
  120. package/cjs/version-2193b4a2.js.map +0 -1
  121. package/cjs/version-3a808c12.js.map +0 -1
  122. package/esm/App-fbef99b3.js.map +0 -1
  123. package/esm/RouteLoader-281d47e1.js.map +0 -1
  124. package/esm/ToJs-6e7b247c.js +0 -136
  125. package/esm/ToJs-6e7b247c.js.map +0 -1
  126. package/esm/actions-ddd9c623.js.map +0 -1
  127. package/esm/login-1f9ad133.js.map +0 -1
  128. package/esm/reducers-feab84fc.js.map +0 -1
  129. package/esm/selectors-68799788.js +0 -117
  130. package/esm/selectors-68799788.js.map +0 -1
  131. package/esm/version-64906b26.js.map +0 -1
  132. package/esm/version-7fdbd2d5.js +0 -19
  133. package/esm/version-7fdbd2d5.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToJs-87edc45d.js","sources":["../src/user/redux/selectors.ts","../src/user/util/matchGroups.ts","../src/util/ToJs.tsx"],"sourcesContent":["import { AppState } from '~/redux/appstate';\nimport { getJS } from '~/redux/util';\n\nconst select = (state: AppState) => getJS(state, 'user');\n\nexport const selectUserIsLoading = (state: AppState) =>\n select(state)?.authenticationState?.loading;\n\nexport const selectUserIsAuthenticated = (state: AppState) =>\n select(state)?.authenticationState?.authenticated;\n\nexport const selectUserAuthenticationError = (state: AppState) =>\n select(state)?.authenticationState?.authenticationError;\n\nexport const selectUserAuthenticationErrorMessage = (state: AppState) =>\n select(state)?.authenticationState?.authenticationErrorMessage;\n\nexport const selectUserError = (state: AppState) =>\n select(state)?.authenticationState?.error;\n\nexport const selectUserErrorMessage = (state: AppState) =>\n select(state)?.authenticationState?.errorMessage;\n\nexport const selectClientCredentials = (state: AppState) =>\n select(state)?.authenticationState?.clientCredentials;\n\nexport const selectUser = (state: AppState) => state?.user;\n\nexport const selectUserIsZengentiStaff = (state: AppState) =>\n select(state)?.isZengentiStaff;\n\nexport const selectUserGuid = (state: AppState) => select(state)?.id;\n\nexport const selectUsername = (state: AppState) => select(state)?.username;\n\nexport const selectUserEmail = (state: AppState) => select(state)?.email;\n\nexport const selectUserGroups = (state: AppState) => select(state)?.groups;\n\nexport const selectUserSecurityToken = (state: AppState) =>\n select(state)?.authenticationState?.clientCredentials?.contensisClassicToken;\n\nexport const selectUserRegistration = (state: AppState) =>\n select(state)?.registration || {};\n\nexport const selectUserRegistrationError = (state: AppState) =>\n select(state)?.registration?.error || false;\n\nexport const selectUserRegistrationIsLoading = (state: AppState) =>\n select(state)?.registration?.loading || false;\n\nexport const selectUserRegistrationIsSuccess = (state: AppState) =>\n select(state)?.registration?.success || false;\n\nexport const selectPasswordResetRequestSending = (state: AppState) =>\n select(state)?.passwordResetRequest?.isSending;\n\nexport const selectPasswordResetRequestSent = (state: AppState) =>\n select(state)?.passwordResetRequest?.sent;\n\nexport const selectPasswordResetRequestError = (state: AppState) =>\n select(state)?.passwordResetRequest?.error;\n\nexport const selectResetPasswordSending = (state: AppState) =>\n select(state)?.resetPassword?.isSending;\n\nexport const selectResetPasswordSent = (state: AppState) =>\n select(state)?.resetPassword?.sent;\n\nexport const selectResetPasswordError = (state: AppState) =>\n select(state)?.resetPassword?.error;\n\nexport const selectChangePasswordSending = (state: AppState) =>\n select(state)?.changePassword?.isSending;\n\nexport const selectChangePasswordSent = (state: AppState) =>\n select(state)?.changePassword?.sent;\n\nexport const selectChangePasswordError = (state: AppState) =>\n select(state)?.changePassword?.error;\n","import { Group } from 'contensis-management-api/lib/models';\nimport { RequireLogin } from '~/routing/routes';\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 ): React.ComponentType<Props> =>\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":["select","state","getJS","selectUserIsLoading","authenticationState","loading","selectUserIsAuthenticated","authenticated","selectUserAuthenticationError","authenticationError","selectUserAuthenticationErrorMessage","authenticationErrorMessage","selectUserError","error","selectUserErrorMessage","errorMessage","selectClientCredentials","clientCredentials","selectUser","user","selectUserIsZengentiStaff","isZengentiStaff","selectUserGuid","id","selectUsername","username","selectUserEmail","email","selectUserGroups","groups","selectUserSecurityToken","contensisClassicToken","selectUserRegistration","registration","selectUserRegistrationError","selectUserRegistrationIsLoading","selectUserRegistrationIsSuccess","success","selectPasswordResetRequestSending","passwordResetRequest","isSending","selectPasswordResetRequestSent","sent","selectPasswordResetRequestError","selectResetPasswordSending","resetPassword","selectResetPasswordSent","selectResetPasswordError","selectChangePasswordSending","changePassword","selectChangePasswordSent","selectChangePasswordError","matchUserGroup","userGroups","requiredGroups","Array","isArray","length","groupMatch","some","requiredGroup","userGroup","name","toJS","WrappedComponent","wrappedComponentProps","KEY","VALUE","propsJS","Object","entries","reduce","newProps","wrappedComponentProp","propKey","propValue","React"],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ var selectors = require('./selectors-ed26ed97.js');
4
+
3
5
  const ROUTING_PREFIX = '@ROUTING/';
4
6
  const GET_ENTRY = `${ROUTING_PREFIX}_GET_ENTRY`;
5
7
  const SET_ENTRY = `${ROUTING_PREFIX}_SET_ENTRY`;
@@ -30,15 +32,10 @@ var routing = /*#__PURE__*/Object.freeze({
30
32
  UPDATE_LOADING_STATE: UPDATE_LOADING_STATE
31
33
  });
32
34
 
33
- const action = (type, payload = {}) => ({
34
- type,
35
- ...payload
36
- });
37
-
38
- const setNotFound = notFound => action(SET_NAVIGATION_NOT_FOUND, {
35
+ const setNotFound = notFound => selectors.action(SET_NAVIGATION_NOT_FOUND, {
39
36
  notFound
40
37
  });
41
- const setNavigationPath = (path, location, staticRoute, withEvents, statePath, routes) => action(SET_NAVIGATION_PATH, {
38
+ const setNavigationPath = (path, location, staticRoute, withEvents, statePath, routes) => selectors.action(SET_NAVIGATION_PATH, {
42
39
  path,
43
40
  location,
44
41
  staticRoute,
@@ -46,19 +43,19 @@ const setNavigationPath = (path, location, staticRoute, withEvents, statePath, r
46
43
  statePath,
47
44
  routes
48
45
  });
49
- const setCurrentProject = (project, allowedGroups, hostname) => action(SET_TARGET_PROJECT, {
46
+ const setCurrentProject = (project, allowedGroups, hostname) => selectors.action(SET_TARGET_PROJECT, {
50
47
  project,
51
48
  allowedGroups,
52
49
  hostname
53
50
  });
54
- const setRoute = (path, state) => action(SET_ROUTE, {
51
+ const setRoute = (path, state) => selectors.action(SET_ROUTE, {
55
52
  path,
56
53
  state
57
54
  });
58
- const setRouteEntry = entry => action(SET_ENTRY, {
55
+ const setRouteEntry = entry => selectors.action(SET_ENTRY, {
59
56
  entry
60
57
  });
61
- const setSurrogateKeys = keys => action(SET_SURROGATE_KEYS, {
58
+ const setSurrogateKeys = keys => selectors.action(SET_SURROGATE_KEYS, {
62
59
  keys
63
60
  });
64
61
 
@@ -80,11 +77,10 @@ exports.SET_SIBLINGS = SET_SIBLINGS;
80
77
  exports.SET_SURROGATE_KEYS = SET_SURROGATE_KEYS;
81
78
  exports.SET_TARGET_PROJECT = SET_TARGET_PROJECT;
82
79
  exports.UPDATE_LOADING_STATE = UPDATE_LOADING_STATE;
83
- exports.action = action;
84
80
  exports.routing = routing;
85
81
  exports.routing$1 = routing$1;
86
82
  exports.setCurrentProject = setCurrentProject;
87
83
  exports.setNavigationPath = setNavigationPath;
88
84
  exports.setRoute = setRoute;
89
85
  exports.setSurrogateKeys = setSurrogateKeys;
90
- //# sourceMappingURL=actions-e9f69947.js.map
86
+ //# sourceMappingURL=actions-12871aca.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions-12871aca.js","sources":["../src/routing/redux/types.ts","../src/routing/redux/actions.ts"],"sourcesContent":["const ROUTING_PREFIX = '@ROUTING/';\nexport const GET_ENTRY = `${ROUTING_PREFIX}_GET_ENTRY`;\nexport const SET_ENTRY = `${ROUTING_PREFIX}_SET_ENTRY`;\nexport const SET_NODE = `${ROUTING_PREFIX}_SET_NODE`;\nexport const SET_ANCESTORS = `${ROUTING_PREFIX}_SET_ANCESTORS`;\nexport const SET_SIBLINGS = `${ROUTING_PREFIX}_SET_SIBLINGS`;\nexport const SET_ENTRY_ID = `${ROUTING_PREFIX}_SET_ENTRY_ID`;\nexport const SET_SURROGATE_KEYS = `${ROUTING_PREFIX}_SET_SURROGATE_KEYS`;\n\nexport const SET_NAVIGATION_NOT_FOUND = `${ROUTING_PREFIX}_SET_NOT_FOUND`;\nexport const SET_NAVIGATION_PATH = `${ROUTING_PREFIX}_SET_NAVIGATION_PATH`;\n\nexport const SET_TARGET_PROJECT = `${ROUTING_PREFIX}_SET_TARGET_PROJECT`;\n\nexport const SET_ROUTE = `${ROUTING_PREFIX}_SET_ROUTE`;\n\nexport const UPDATE_LOADING_STATE = `${ROUTING_PREFIX}_UPDATE_LOADING_STATE`;\n","import { action } from '~/redux/util';\nimport {\n SET_ENTRY,\n SET_NAVIGATION_NOT_FOUND,\n SET_NAVIGATION_PATH,\n SET_TARGET_PROJECT,\n SET_ROUTE,\n SET_SURROGATE_KEYS,\n} from './types';\n\nexport const setNotFound = notFound =>\n action(SET_NAVIGATION_NOT_FOUND, { notFound });\nexport const setNavigationPath = (\n path,\n location,\n staticRoute,\n withEvents,\n statePath,\n routes\n) =>\n action(SET_NAVIGATION_PATH, {\n path,\n location,\n staticRoute,\n withEvents,\n statePath,\n routes,\n });\nexport const setCurrentProject = (project, allowedGroups, hostname) =>\n action(SET_TARGET_PROJECT, { project, allowedGroups, hostname });\nexport const setRoute = (path, state) => action(SET_ROUTE, { path, state });\nexport const setRouteEntry = entry => action(SET_ENTRY, { entry });\nexport const setSurrogateKeys = keys => action(SET_SURROGATE_KEYS, { keys });\n"],"names":["ROUTING_PREFIX","GET_ENTRY","SET_ENTRY","SET_NODE","SET_ANCESTORS","SET_SIBLINGS","SET_ENTRY_ID","SET_SURROGATE_KEYS","SET_NAVIGATION_NOT_FOUND","SET_NAVIGATION_PATH","SET_TARGET_PROJECT","SET_ROUTE","UPDATE_LOADING_STATE","setNotFound","notFound","action","setNavigationPath","path","location","staticRoute","withEvents","statePath","routes","setCurrentProject","project","allowedGroups","hostname","setRoute","state","setRouteEntry","entry","setSurrogateKeys","keys"],"mappings":";;;;AAAA,MAAMA,cAAc,GAAG,WAAvB;AACO,MAAMC,SAAS,GAAI,GAAED,cAAe,YAApC;MACME,SAAS,GAAI,GAAEF,cAAe;AACpC,MAAMG,QAAQ,GAAI,GAAEH,cAAe,WAAnC;MACMI,aAAa,GAAI,GAAEJ,cAAe;MAClCK,YAAY,GAAI,GAAEL,cAAe;AACvC,MAAMM,YAAY,GAAI,GAAEN,cAAe,eAAvC;MACMO,kBAAkB,GAAI,GAAEP,cAAe;AAE7C,MAAMQ,wBAAwB,GAAI,GAAER,cAAe,gBAAnD;MACMS,mBAAmB,GAAI,GAAET,cAAe;MAExCU,kBAAkB,GAAI,GAAEV,cAAe;MAEvCW,SAAS,GAAI,GAAEX,cAAe;MAE9BY,oBAAoB,GAAI,GAAEZ,cAAe;;;;;;;;;;;;;;;;;;ACN/C,MAAMa,WAAW,GAAGC,QAAQ,IACjCC,gBAAM,CAACP,wBAAD,EAA2B;AAAEM,EAAAA;AAAF,CAA3B,CADD;MAEME,iBAAiB,GAAG,CAC/BC,IAD+B,EAE/BC,QAF+B,EAG/BC,WAH+B,EAI/BC,UAJ+B,EAK/BC,SAL+B,EAM/BC,MAN+B,KAQ/BP,gBAAM,CAACN,mBAAD,EAAsB;AAC1BQ,EAAAA,IAD0B;AAE1BC,EAAAA,QAF0B;AAG1BC,EAAAA,WAH0B;AAI1BC,EAAAA,UAJ0B;AAK1BC,EAAAA,SAL0B;AAM1BC,EAAAA;AAN0B,CAAtB;MAQKC,iBAAiB,GAAG,CAACC,OAAD,EAAUC,aAAV,EAAyBC,QAAzB,KAC/BX,gBAAM,CAACL,kBAAD,EAAqB;AAAEc,EAAAA,OAAF;AAAWC,EAAAA,aAAX;AAA0BC,EAAAA;AAA1B,CAArB;MACKC,QAAQ,GAAG,CAACV,IAAD,EAAOW,KAAP,KAAiBb,gBAAM,CAACJ,SAAD,EAAY;AAAEM,EAAAA,IAAF;AAAQW,EAAAA;AAAR,CAAZ;AACxC,MAAMC,aAAa,GAAGC,KAAK,IAAIf,gBAAM,CAACb,SAAD,EAAY;AAAE4B,EAAAA;AAAF,CAAZ,CAArC;MACMC,gBAAgB,GAAGC,IAAI,IAAIjB,gBAAM,CAACR,kBAAD,EAAqB;AAAEyB,EAAAA;AAAF,CAArB;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/cjs/client.js CHANGED
@@ -8,29 +8,28 @@ var reactRouterDom = require('react-router-dom');
8
8
  var reactRedux = require('react-redux');
9
9
  require('react-router-config');
10
10
  require('jsonpath-mapper');
11
- require('immutable');
12
11
  require('redux');
13
- require('redux-immutable');
14
12
  require('redux-thunk');
15
13
  require('redux-saga');
16
14
  require('redux-injectors');
17
- var version = require('./version-3a808c12.js');
18
- var actions = require('./actions-e9f69947.js');
19
- var reducers = require('./reducers-cb531715.js');
15
+ require('immer');
16
+ var version = require('./version-f061e409.js');
17
+ var actions = require('./actions-12871aca.js');
18
+ require('./reducers-fde41d6b.js');
20
19
  require('history');
21
- var App = require('./App-fbd91490.js');
20
+ var App = require('./App-581b6653.js');
22
21
  require('@redux-saga/core/effects');
23
22
  require('contensis-delivery-api');
24
- require('./version-2193b4a2.js');
23
+ require('./selectors-ed26ed97.js');
24
+ require('./version-0c190929.js');
25
25
  var queryString = require('query-string');
26
- require('./selectors-1295124a.js');
27
26
  require('loglevel');
28
- require('./ToJs-d72e5b10.js');
29
- require('./login-4f274c6a.js');
27
+ require('./ToJs-87edc45d.js');
28
+ require('./login-81d7f9ef.js');
30
29
  require('await-to-js');
31
30
  require('js-cookie');
32
31
  var reactHotLoader = require('react-hot-loader');
33
- require('./RouteLoader-f99cd734.js');
32
+ require('./RouteLoader-282c03ab.js');
34
33
  var reactDom = require('react-dom');
35
34
  var component = require('@loadable/component');
36
35
 
@@ -38,34 +37,11 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
38
37
 
39
38
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
40
39
 
41
- const fromJSLeaveImmer = js => {
42
- // console.info(js);
43
- // if (typeof js !== 'object' || js === null) return js;
44
- // // console.info(`from js - here is js ${JSON.stringify(js)}`);
45
- // const convertedObject = isOrdered ? OrderedMap() : fromJS({});
46
- // const keys = Object.keys(js);
47
- // keys.forEach(key => {
48
- // if (key === 'immer') {
49
- // convertedObject.set(key, js[key]);
50
- // // console.info(`LOOK! - immer untouched bar root key "${key}"`);
51
- // } else {
52
- // // console.info(`LOOK! - normal immutable feature "${key}"`);
53
- // convertedObject.set(key, isOrdered ? fromJSOrdered(js) : fromJS(js));
54
- // }
55
- // });
56
- const immutableObj = reducers.fromJSOrdered(js);
57
-
58
- if (immutableObj && !!immutableObj.get('immer')) {
59
- immutableObj.set('immer', immutableObj.get('immer').toJS());
60
- }
61
-
62
- return immutableObj;
63
- };
64
-
65
40
  class ClientApp {
66
41
  constructor(ReactApp, config) {
67
42
  const documentRoot = document.getElementById('root');
68
43
  const {
44
+ stateType = 'immutable',
69
45
  routes,
70
46
  withReducers,
71
47
  withSagas,
@@ -97,22 +73,33 @@ class ClientApp {
97
73
  });else reactDom.render(Component, documentRoot);
98
74
  };
99
75
 
100
- let store = null;
76
+ const hmr = store => {
77
+ // webpack Hot Module Replacement API
78
+ if (module.hot) {
79
+ module.hot.accept(ReactApp, () => {
80
+ // if you are using harmony modules ({modules:false})
81
+ HMRRenderer(GetClientJSX(store));
82
+ });
83
+ }
84
+ };
85
+
101
86
  const qs = queryString.parse(window.location.search);
102
87
  const versionStatusFromHostname = App.deliveryApi.getClientSideVersionStatus();
103
88
 
104
89
  if (window.isDynamic || window.REDUX_DATA || process.env.NODE_ENV !== 'production') {
105
- store = version.createStore(withReducers, fromJSLeaveImmer(window.REDUX_DATA), App.browserHistory);
106
- store.dispatch(version.setVersionStatus(qs.versionStatus || versionStatusFromHostname));
107
- /* eslint-disable no-console */
90
+ version.createStore(withReducers, window.REDUX_DATA, App.browserHistory, stateType).then(store => {
91
+ store.dispatch(version.setVersionStatus(qs.versionStatus || versionStatusFromHostname));
92
+ /* eslint-disable no-console */
108
93
 
109
- console.log('Hydrating from inline Redux');
110
- /* eslint-enable no-console */
94
+ console.log('Hydrating from inline Redux');
95
+ /* eslint-enable no-console */
111
96
 
112
- store.runSaga(App.rootSaga(withSagas));
113
- store.dispatch(actions.setCurrentProject(App.pickProject(window.location.hostname, qs), [], window.location.hostname));
114
- delete window.REDUX_DATA;
115
- HMRRenderer(GetClientJSX(store));
97
+ store.runSaga(App.rootSaga(withSagas));
98
+ store.dispatch(actions.setCurrentProject(App.pickProject(window.location.hostname, qs), [], window.location.hostname));
99
+ delete window.REDUX_DATA;
100
+ HMRRenderer(GetClientJSX(store));
101
+ hmr(store);
102
+ });
116
103
  } else {
117
104
  fetch(`${window.location.pathname}?redux=true`).then(response => response.json()).then(data => {
118
105
  /* eslint-disable no-console */
@@ -121,22 +108,16 @@ class ClientApp {
121
108
 
122
109
  /* eslint-enable no-console */
123
110
  const ssRedux = JSON.parse(data);
124
- store = version.createStore(withReducers, fromJSLeaveImmer(ssRedux), App.browserHistory); // store.dispatch(setVersionStatus(versionStatusFromHostname));
125
-
126
- store.runSaga(App.rootSaga(withSagas));
127
- store.dispatch(actions.setCurrentProject(App.pickProject(window.location.hostname, queryString.parse(window.location.search)), [], window.location.hostname)); // if (typeof window != 'undefined') {
128
- // store.dispatch(checkUserLoggedIn());
129
- // }
130
-
131
- HMRRenderer(GetClientJSX(store));
132
- });
133
- } // webpack Hot Module Replacement API
134
-
135
-
136
- if (module.hot) {
137
- module.hot.accept(ReactApp, () => {
138
- // if you are using harmony modules ({modules:false})
139
- HMRRenderer(GetClientJSX(store));
111
+ version.createStore(withReducers, ssRedux, App.browserHistory, stateType).then(store => {
112
+ // store.dispatch(setVersionStatus(versionStatusFromHostname));
113
+ store.runSaga(App.rootSaga(withSagas));
114
+ store.dispatch(actions.setCurrentProject(App.pickProject(window.location.hostname, queryString.parse(window.location.search)), [], window.location.hostname)); // if (typeof window != 'undefined') {
115
+ // store.dispatch(checkUserLoggedIn());
116
+ // }
117
+
118
+ HMRRenderer(GetClientJSX(store));
119
+ hmr(store);
120
+ });
140
121
  });
141
122
  }
142
123
  }
package/cjs/client.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sources":["../src/util/fromJSLeaveImmer.js","../src/client/client.tsx"],"sourcesContent":["import fromJSOrdered from './fromJSOrdered';\n\nconst fromJSLeaveImmer = js => {\n // console.info(js);\n // if (typeof js !== 'object' || js === null) return js;\n // // console.info(`from js - here is js ${JSON.stringify(js)}`);\n // const convertedObject = isOrdered ? OrderedMap() : fromJS({});\n // const keys = Object.keys(js);\n // keys.forEach(key => {\n // if (key === 'immer') {\n // convertedObject.set(key, js[key]);\n // // console.info(`LOOK! - immer untouched bar root key \"${key}\"`);\n // } else {\n // // console.info(`LOOK! - normal immutable feature \"${key}\"`);\n // convertedObject.set(key, isOrdered ? fromJSOrdered(js) : fromJS(js));\n // }\n // });\n const immutableObj = fromJSOrdered(js);\n if (immutableObj && !!immutableObj.get('immer')) {\n immutableObj.set('immer', immutableObj.get('immer').toJS());\n }\n return immutableObj;\n};\nexport default fromJSLeaveImmer;\n","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 * as queryString from 'query-string';\n\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 fromJSLeaveImmer from '~/util/fromJSLeaveImmer';\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\nclass ClientApp {\n constructor(ReactApp: React.ComponentType<ReactAppProps>, config: AppConfig) {\n const documentRoot = document.getElementById('root');\n\n const { routes, withReducers, withSagas, withEvents } = config;\n\n const GetClientJSX = store => {\n const ClientJsx = (\n <AppContainer>\n <ReduxProvider store={store}>\n <Router history={history}>\n <ReactApp routes={routes} withEvents={withEvents} />\n </Router>\n </ReduxProvider>\n </AppContainer>\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 let store: any = null;\n const qs = queryString.parse(window.location.search);\n\n const versionStatusFromHostname = deliveryApi.getClientSideVersionStatus();\n if (\n window.isDynamic ||\n window.REDUX_DATA ||\n process.env.NODE_ENV !== 'production'\n ) {\n store = createStore(\n withReducers,\n fromJSLeaveImmer(window.REDUX_DATA),\n history\n );\n store.dispatch(\n setVersionStatus(qs.versionStatus || versionStatusFromHostname)\n );\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 } else {\n fetch(`${window.location.pathname}?redux=true`)\n .then(response => response.json())\n .then(data => {\n /* eslint-disable no-console */\n // console.log('Got Data Back');\n // console.log(data);\n /* eslint-enable no-console */\n const ssRedux = JSON.parse(data);\n store = createStore(withReducers, fromJSLeaveImmer(ssRedux), history);\n // store.dispatch(setVersionStatus(versionStatusFromHostname));\n\n store.runSaga(rootSaga(withSagas));\n store.dispatch(\n setCurrentProject(\n pickProject(\n window.location.hostname,\n queryString.parse(window.location.search)\n ),\n [],\n window.location.hostname\n )\n );\n // if (typeof window != 'undefined') {\n // store.dispatch(checkUserLoggedIn());\n // }\n HMRRenderer(GetClientJSX(store));\n });\n }\n\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\nexport default ClientApp;\n"],"names":["fromJSLeaveImmer","js","immutableObj","fromJSOrdered","get","set","toJS","ClientApp","constructor","ReactApp","config","documentRoot","document","getElementById","routes","withReducers","withSagas","withEvents","GetClientJSX","store","ClientJsx","React","AppContainer","ReduxProvider","Router","history","isProduction","process","env","NODE_ENV","HMRRenderer","Component","loadableReady","hydrate","namespace","render","qs","queryString","window","location","search","versionStatusFromHostname","deliveryApi","getClientSideVersionStatus","isDynamic","REDUX_DATA","createStore","dispatch","setVersionStatus","versionStatus","console","log","runSaga","rootSaga","setCurrentProject","pickProject","hostname","fetch","pathname","then","response","json","data","ssRedux","JSON","parse","module","hot","accept"],"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 * as queryString from 'query-string';\n\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\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 <AppContainer>\n <ReduxProvider store={store}>\n <Router history={history}>\n <ReactApp routes={routes} withEvents={withEvents} />\n </Router>\n </ReduxProvider>\n </AppContainer>\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 = queryString.parse(window.location.search);\n const versionStatusFromHostname = 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 store.dispatch(\n setVersionStatus(qs.versionStatus || versionStatusFromHostname)\n );\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 /* eslint-disable no-console */\n // console.log('Got Data Back');\n // console.log(data);\n /* eslint-enable no-console */\n const ssRedux = JSON.parse(data);\n createStore(withReducers, ssRedux, history, stateType).then(store => {\n // store.dispatch(setVersionStatus(versionStatusFromHostname));\n\n store.runSaga(rootSaga(withSagas));\n store.dispatch(\n setCurrentProject(\n pickProject(\n window.location.hostname,\n queryString.parse(window.location.search)\n ),\n [],\n window.location.hostname\n )\n );\n // if (typeof window != 'undefined') {\n // store.dispatch(checkUserLoggedIn());\n // }\n HMRRenderer(GetClientJSX(store));\n\n hmr(store);\n });\n });\n }\n }\n}\n\nexport default ClientApp;\n"],"names":["ClientApp","constructor","ReactApp","config","documentRoot","document","getElementById","stateType","routes","withReducers","withSagas","withEvents","GetClientJSX","store","ClientJsx","React","AppContainer","ReduxProvider","Router","history","isProduction","process","env","NODE_ENV","HMRRenderer","Component","loadableReady","hydrate","namespace","render","hmr","module","hot","accept","qs","queryString","window","location","search","versionStatusFromHostname","deliveryApi","getClientSideVersionStatus","isDynamic","REDUX_DATA","createStore","then","dispatch","setVersionStatus","versionStatus","console","log","runSaga","rootSaga","setCurrentProject","pickProject","hostname","fetch","pathname","response","json","data","ssRedux","JSON","parse"],"mappings":"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"}
@@ -13,35 +13,34 @@ var server$1 = require('react-dom/server');
13
13
  var reactRouterDom = require('react-router-dom');
14
14
  var reactRedux = require('react-redux');
15
15
  var reactRouterConfig = require('react-router-config');
16
- var Helmet = require('react-helmet');
16
+ var reactHelmet = require('react-helmet');
17
17
  var styled = require('styled-components');
18
18
  var serialize = require('serialize-javascript');
19
19
  var minifyCssString = require('minify-css-string');
20
20
  var mapJson = require('jsonpath-mapper');
21
21
  var server = require('@loadable/server');
22
- var immutable = require('immutable');
23
22
  require('redux');
24
- require('redux-immutable');
25
23
  require('redux-thunk');
26
24
  require('redux-saga');
27
25
  require('redux-injectors');
28
- var version = require('./version-3a808c12.js');
29
- var actions = require('./actions-e9f69947.js');
30
- require('./reducers-cb531715.js');
26
+ require('immer');
27
+ var version = require('./version-f061e409.js');
28
+ var actions = require('./actions-12871aca.js');
29
+ require('./reducers-fde41d6b.js');
31
30
  require('history');
32
- var App = require('./App-fbd91490.js');
31
+ var App = require('./App-581b6653.js');
33
32
  require('@redux-saga/core/effects');
34
33
  require('contensis-delivery-api');
35
- require('./version-2193b4a2.js');
34
+ var selectors = require('./selectors-ed26ed97.js');
35
+ require('./version-0c190929.js');
36
36
  require('query-string');
37
- var selectors = require('./selectors-1295124a.js');
38
37
  require('loglevel');
39
- require('./ToJs-d72e5b10.js');
40
- require('./login-4f274c6a.js');
38
+ require('./ToJs-87edc45d.js');
39
+ require('./login-81d7f9ef.js');
41
40
  require('await-to-js');
42
41
  require('js-cookie');
43
42
  require('react-hot-loader');
44
- require('./RouteLoader-f99cd734.js');
43
+ require('./RouteLoader-282c03ab.js');
45
44
 
46
45
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
47
46
 
@@ -50,7 +49,6 @@ var httpProxy__default = /*#__PURE__*/_interopDefaultLegacy(httpProxy);
50
49
  var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
51
50
  var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
52
51
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
53
- var Helmet__default = /*#__PURE__*/_interopDefaultLegacy(Helmet);
54
52
  var serialize__default = /*#__PURE__*/_interopDefaultLegacy(serialize);
55
53
  var minifyCssString__default = /*#__PURE__*/_interopDefaultLegacy(minifyCssString);
56
54
  var mapJson__default = /*#__PURE__*/_interopDefaultLegacy(mapJson);
@@ -232,43 +230,6 @@ const handleResponse = (request, response, content, send = 'send') => {
232
230
  response[send](content);
233
231
  };
234
232
 
235
- const addStandardHeaders = (state, response, packagejson, groups) => {
236
- if (state) {
237
- try {
238
- console.info('About to add headers');
239
- const routingSurrogateKeys = state.getIn(['routing', 'surrogateKeys'], '');
240
- const surrogateKeyHeader = ` ${packagejson.name}-app ${routingSurrogateKeys}`;
241
- response.header('surrogate-key', surrogateKeyHeader);
242
- addVarnishAuthenticationHeaders(state, response, groups);
243
- response.setHeader('Surrogate-Control', `max-age=${getCacheDuration(response.statusCode)}`);
244
- } catch (e) {
245
- console.info('Error Adding headers', e.message);
246
- }
247
- }
248
- };
249
- const addVarnishAuthenticationHeaders = (state, response, groups = {}) => {
250
- if (state) {
251
- try {
252
- const stateEntry = selectors.selectRouteEntry(state);
253
- const project = selectors.selectCurrentProject(state);
254
- const {
255
- globalGroups,
256
- allowedGroups
257
- } = groups; // console.info(globalGroups, allowedGroups);
258
-
259
- let allGroups = Array.from(globalGroups && globalGroups[project] || {});
260
-
261
- if (stateEntry && stateEntry.getIn(['authentication', 'isLoginRequired']) && allowedGroups && allowedGroups[project]) {
262
- allGroups = [...allGroups, ...allowedGroups[project]];
263
- }
264
-
265
- response.header('x-contensis-viewer-groups', allGroups.join('|'));
266
- } catch (e) {
267
- console.info('Error adding authentication header', e);
268
- }
269
- }
270
- };
271
-
272
233
  const readFileSync = path => fs__default['default'].readFileSync(path, 'utf8');
273
234
 
274
235
  const loadableBundleData = ({
@@ -352,8 +313,46 @@ const getBundleTags = (loadableExtractor, scripts, staticRoutePath = 'static') =
352
313
  return startupTag;
353
314
  };
354
315
 
316
+ const addStandardHeaders = (state, response, packagejson, groups) => {
317
+ if (state) {
318
+ try {
319
+ console.info('About to add headers');
320
+ const routingSurrogateKeys = selectors.getImmutableOrJS(state, ['routing', 'surrogateKeys'], '');
321
+ const surrogateKeyHeader = ` ${packagejson.name}-app ${routingSurrogateKeys}`;
322
+ response.header('surrogate-key', surrogateKeyHeader);
323
+ addVarnishAuthenticationHeaders(state, response, groups);
324
+ response.setHeader('Surrogate-Control', `max-age=${getCacheDuration(response.statusCode)}`);
325
+ } catch (e) {
326
+ console.info('Error Adding headers', e.message);
327
+ }
328
+ }
329
+ };
330
+ const addVarnishAuthenticationHeaders = (state, response, groups = {}) => {
331
+ if (state) {
332
+ try {
333
+ const stateEntry = selectors.selectRouteEntry(state);
334
+ const project = selectors.selectCurrentProject(state);
335
+ const {
336
+ globalGroups,
337
+ allowedGroups
338
+ } = groups; // console.info(globalGroups, allowedGroups);
339
+
340
+ let allGroups = Array.from(globalGroups && globalGroups[project] || {});
341
+
342
+ if (stateEntry && selectors.getImmutableOrJS(stateEntry, ['authentication', 'isLoginRequired']) && allowedGroups && allowedGroups[project]) {
343
+ allGroups = [...allGroups, ...allowedGroups[project]];
344
+ }
345
+
346
+ response.header('x-contensis-viewer-groups', allGroups.join('|'));
347
+ } catch (e) {
348
+ console.info('Error adding authentication header', e);
349
+ }
350
+ }
351
+ };
352
+
355
353
  const webApp = (app, ReactApp, config) => {
356
354
  const {
355
+ stateType = 'immutable',
357
356
  routes,
358
357
  withReducers,
359
358
  withSagas,
@@ -373,7 +372,7 @@ const webApp = (app, ReactApp, config) => {
373
372
  scripts.startup = scripts.startup || startupScriptFilename;
374
373
  const responseHandler = typeof handleResponses === 'function' ? handleResponses : handleResponse;
375
374
  const versionInfo = JSON.parse(fs__default['default'].readFileSync(`dist/${staticFolderPath}/version.json`, 'utf8'));
376
- app.get('/*', (request, response) => {
375
+ app.get('/*', async (request, response) => {
377
376
  const {
378
377
  url
379
378
  } = request;
@@ -408,9 +407,9 @@ const webApp = (app, ReactApp, config) => {
408
407
 
409
408
  response.status(200); // Create a store (with a memory history) from our current url
410
409
 
411
- const store = version.createStore(withReducers, immutable.fromJS({}), App.history({
410
+ const store = await version.createStore(withReducers, {}, App.history({
412
411
  initialEntries: [url]
413
- })); // dispatch any global and non-saga related actions before calling our JSX
412
+ }), stateType); // dispatch any global and non-saga related actions before calling our JSX
414
413
 
415
414
  const versionStatusFromHostname = App.deliveryApi.getVersionStatusFromHostname(request.hostname);
416
415
  console.info(`Request for ${request.path} hostname: ${request.hostname} versionStatus: ${versionStatusFromHostname}`);
@@ -456,8 +455,8 @@ const webApp = (app, ReactApp, config) => {
456
455
  store.runSaga(App.rootSaga(withSagas)).toPromise().then(() => {
457
456
  const sheet = new styled.ServerStyleSheet();
458
457
  const html = server$1.renderToString(sheet.collectStyles(jsx));
459
- const helmet = Helmet__default['default'].renderStatic();
460
- Helmet__default['default'].rewind();
458
+ const helmet = reactHelmet.Helmet.renderStatic();
459
+ reactHelmet.Helmet.rewind();
461
460
  const htmlAttributes = helmet.htmlAttributes.toString();
462
461
  let title = helmet.title.toString();
463
462
  const metadata = helmet.meta.toString();