@zengenti/contensis-react-base 3.2.2-beta.0 → 3.2.2-beta.10

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 (100) hide show
  1. package/cjs/{App-99dbd33c.js → App-D2_FqsUD.js} +34 -34
  2. package/cjs/App-D2_FqsUD.js.map +1 -0
  3. package/cjs/{ChangePassword.container-98448cf3.js → ChangePassword.container-DrO8p-7S.js} +17 -34
  4. package/cjs/{ChangePassword.container-98448cf3.js.map → ChangePassword.container-DrO8p-7S.js.map} +1 -1
  5. package/cjs/{CookieHelper.class-34994aa1.js → CookieHelper.class-CNL3lC5D.js} +239 -145
  6. package/cjs/CookieHelper.class-CNL3lC5D.js.map +1 -0
  7. package/cjs/{RouteLoader-bf91b09e.js → RouteLoader-BrUuhdcK.js} +14 -14
  8. package/cjs/{RouteLoader-bf91b09e.js.map → RouteLoader-BrUuhdcK.js.map} +1 -1
  9. package/cjs/{SSRContext-5360635c.js → SSRContext-CmXDzwPL.js} +46 -20
  10. package/cjs/SSRContext-CmXDzwPL.js.map +1 -0
  11. package/cjs/{ToJs-7f965106.js → ToJs-C9jwV7YB.js} +25 -24
  12. package/cjs/{ToJs-7f965106.js.map → ToJs-C9jwV7YB.js.map} +1 -1
  13. package/cjs/{_commonjsHelpers-b3309d7b.js → _commonjsHelpers-BJu3ubxk.js} +1 -1
  14. package/cjs/_commonjsHelpers-BJu3ubxk.js.map +1 -0
  15. package/cjs/client.js +16 -16
  16. package/cjs/client.js.map +1 -1
  17. package/cjs/contensis-react-base.js +178 -185
  18. package/cjs/contensis-react-base.js.map +1 -1
  19. package/cjs/forms.js +2478 -2482
  20. package/cjs/forms.js.map +1 -1
  21. package/cjs/{fromJSLeaveImmer-7c363211.js → fromJSLeaveImmer-Drk6JyYs.js} +2 -2
  22. package/{esm/fromJSLeaveImmer-e2dacd63.js.map → cjs/fromJSLeaveImmer-Drk6JyYs.js.map} +1 -1
  23. package/cjs/redux.js +5 -7
  24. package/cjs/redux.js.map +1 -1
  25. package/cjs/routing.js +6 -8
  26. package/cjs/routing.js.map +1 -1
  27. package/cjs/{sagas-497c6e94.js → sagas-DFdRjqSX.js} +54 -56
  28. package/cjs/{sagas-497c6e94.js.map → sagas-DFdRjqSX.js.map} +1 -1
  29. package/cjs/search.js +24 -23
  30. package/cjs/search.js.map +1 -1
  31. package/cjs/{selectors-e3f1fd85.js → selectors-wCs5fHD4.js} +43 -44
  32. package/{esm/selectors-d2bdfe22.js.map → cjs/selectors-wCs5fHD4.js.map} +1 -1
  33. package/cjs/{store-665c229b.js → store-D8dJBaFw.js} +16 -34
  34. package/cjs/{store-665c229b.js.map → store-D8dJBaFw.js.map} +1 -1
  35. package/cjs/{urls-6fcaf4c6.js → urls-DVIwGZmd.js} +1 -1
  36. package/cjs/{urls-6fcaf4c6.js.map → urls-DVIwGZmd.js.map} +1 -1
  37. package/cjs/user.js +7 -9
  38. package/cjs/user.js.map +1 -1
  39. package/cjs/util.js +46 -46
  40. package/cjs/util.js.map +1 -1
  41. package/cjs/{version-7b43af3e.js → version-CM-bJ62L.js} +3 -3
  42. package/cjs/{version-7b43af3e.js.map → version-CM-bJ62L.js.map} +1 -1
  43. package/cjs/{version-3b05d6c8.js → version-DSW6Roy9.js} +5 -5
  44. package/cjs/{version-3b05d6c8.js.map → version-DSW6Roy9.js.map} +1 -1
  45. package/esm/{App-d7d8f594.js → App-BE7fh-wb.js} +28 -28
  46. package/esm/App-BE7fh-wb.js.map +1 -0
  47. package/esm/{ChangePassword.container-ab6cc22d.js → ChangePassword.container-6fQXhkzW.js} +14 -13
  48. package/esm/{ChangePassword.container-ab6cc22d.js.map → ChangePassword.container-6fQXhkzW.js.map} +1 -1
  49. package/esm/{CookieHelper.class-6d649751.js → CookieHelper.class-DqJ_o1jL.js} +239 -145
  50. package/esm/CookieHelper.class-DqJ_o1jL.js.map +1 -0
  51. package/esm/{RouteLoader-be1b907d.js → RouteLoader-BNKfOnU8.js} +5 -5
  52. package/esm/{RouteLoader-be1b907d.js.map → RouteLoader-BNKfOnU8.js.map} +1 -1
  53. package/esm/{SSRContext-42cc028d.js → SSRContext-BoisoiyV.js} +43 -17
  54. package/esm/SSRContext-BoisoiyV.js.map +1 -0
  55. package/esm/{ToJs-67b34be1.js → ToJs-B4MH53fx.js} +23 -22
  56. package/esm/{ToJs-67b34be1.js.map → ToJs-B4MH53fx.js.map} +1 -1
  57. package/esm/{_commonjsHelpers-1789f0cf.js → _commonjsHelpers-BFTU3MAI.js} +1 -1
  58. package/esm/_commonjsHelpers-BFTU3MAI.js.map +1 -0
  59. package/esm/client.js +11 -11
  60. package/esm/client.js.map +1 -1
  61. package/esm/contensis-react-base.js +136 -143
  62. package/esm/contensis-react-base.js.map +1 -1
  63. package/esm/forms.js +2224 -2226
  64. package/esm/forms.js.map +1 -1
  65. package/esm/{fromJSLeaveImmer-e2dacd63.js → fromJSLeaveImmer-DfnbPBKC.js} +1 -1
  66. package/{cjs/fromJSLeaveImmer-7c363211.js.map → esm/fromJSLeaveImmer-DfnbPBKC.js.map} +1 -1
  67. package/esm/redux.js +8 -8
  68. package/esm/routing.js +6 -6
  69. package/esm/{sagas-b654d1a6.js → sagas-waBQR0Ek.js} +43 -45
  70. package/esm/{sagas-b654d1a6.js.map → sagas-waBQR0Ek.js.map} +1 -1
  71. package/esm/search.js +14 -11
  72. package/esm/search.js.map +1 -1
  73. package/esm/{selectors-d2bdfe22.js → selectors-BRzliwbK.js} +41 -41
  74. package/{cjs/selectors-e3f1fd85.js.map → esm/selectors-BRzliwbK.js.map} +1 -1
  75. package/esm/{store-f524c50d.js → store-Cr0lmZNr.js} +12 -12
  76. package/esm/{store-f524c50d.js.map → store-Cr0lmZNr.js.map} +1 -1
  77. package/esm/{urls-eac9a747.js → urls-DfCisos-.js} +1 -1
  78. package/esm/{urls-eac9a747.js.map → urls-DfCisos-.js.map} +1 -1
  79. package/esm/user.js +6 -6
  80. package/esm/user.js.map +1 -1
  81. package/esm/util.js +10 -8
  82. package/esm/util.js.map +1 -1
  83. package/esm/{version-7f50b694.js → version-78jjDnHU.js} +3 -3
  84. package/esm/{version-7f50b694.js.map → version-78jjDnHU.js.map} +1 -1
  85. package/esm/{version-dcc28b32.js → version-CB7rIyoF.js} +6 -6
  86. package/esm/{version-dcc28b32.js.map → version-CB7rIyoF.js.map} +1 -1
  87. package/models/models/ContentTypeMapping.d.ts +60 -0
  88. package/models/models/StaticRoute.d.ts +29 -0
  89. package/models/models/WithEvents.d.ts +29 -0
  90. package/models/routing/util/queries.d.ts +1 -1
  91. package/models/user/util/CookieHelper.class.d.ts +2 -1
  92. package/package.json +23 -34
  93. package/cjs/App-99dbd33c.js.map +0 -1
  94. package/cjs/CookieHelper.class-34994aa1.js.map +0 -1
  95. package/cjs/SSRContext-5360635c.js.map +0 -1
  96. package/cjs/_commonjsHelpers-b3309d7b.js.map +0 -1
  97. package/esm/App-d7d8f594.js.map +0 -1
  98. package/esm/CookieHelper.class-6d649751.js.map +0 -1
  99. package/esm/SSRContext-42cc028d.js.map +0 -1
  100. package/esm/_commonjsHelpers-1789f0cf.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RouteLoader-bf91b09e.js","sources":["../src/routing/components/NotFound.tsx","../src/routing/components/Status.tsx","../src/routing/components/RouteLoader.tsx"],"sourcesContent":["import React from 'react';\n\nconst NotFound = ({\n statusCode,\n statusText,\n}: {\n statusCode: number;\n statusText: string;\n}) => (\n <>\n <header>\n <h1>{statusCode || '404'} Page Not Found</h1>\n {statusText && (\n <h2\n style={{\n background: '#eee',\n color: '#666',\n fontSize: '100%',\n padding: '10px',\n }}\n >\n {statusText}\n </h2>\n )}\n </header>\n </>\n);\n\nexport default NotFound;\n","import React, { PropsWithChildren } from 'react';\nimport { Route } from 'react-router-dom';\n\nexport const Status = ({\n code,\n children,\n}: PropsWithChildren<{ code: number }>) => {\n return (\n <Route\n render={({ staticContext }) => {\n if (staticContext) staticContext.statusCode = code;\n return children;\n }}\n />\n );\n};\n","import React, { useEffect, useCallback } from 'react';\nimport { connect } from 'react-redux';\nimport { hot } from 'react-hot-loader';\nimport { Redirect, useLocation } from 'react-router-dom';\nimport { renderRoutes, matchRoutes, RouteConfig } from 'react-router-config';\nimport { createSelector } from 'reselect';\n\nimport NotFound from './NotFound';\nimport { Status } from './Status';\n\nimport {\n selectCurrentPath,\n selectCurrentProject,\n selectIsNotFound,\n selectMappedEntry,\n selectRouteEntry,\n selectRouteEntryContentTypeId,\n selectRouteErrorMessage,\n selectRouteIsError,\n selectRouteLoading,\n selectRouteStatusCode,\n} from '../redux/selectors';\nimport { setNavigationPath } from '../redux/actions';\n\nimport {\n selectUserGroups,\n selectUserIsAuthenticated,\n} from '~/user/redux/selectors';\nimport { matchUserGroup } from '~/user/util/matchGroups';\nimport { toJS } from '~/util/ToJs';\nimport { useSSRContext } from '~/util/SSRContext';\n\nimport { Entry } from 'contensis-delivery-api/lib/models';\nimport { AppRootProps, RouteComponentProps, RouteLoaderProps } from '~/models';\n\nconst replaceDoubleSlashRecursive = (path: string) => {\n const nextPath = path.replace(/\\/\\//, '/');\n\n if (nextPath.match(/\\/\\//)) {\n return replaceDoubleSlashRecursive(nextPath);\n }\n\n return nextPath;\n};\n\nconst getTrimmedPath = path => {\n if (path !== '/') {\n const nextPath = replaceDoubleSlashRecursive(path);\n const lastChar = nextPath[nextPath.length - 1];\n if (lastChar === '/') {\n return nextPath.substring(0, nextPath.length - 1);\n }\n }\n return path;\n};\n\ninterface IReduxProps {\n contentTypeId: string | null;\n entry: Entry | null;\n isError: boolean;\n isNotFound: boolean;\n isLoading: boolean;\n isLoggedIn: boolean;\n mappedEntry: any;\n projectId: string;\n setNavigationPath: typeof setNavigationPath;\n statePath: string;\n statusCode: any;\n statusText: string;\n userGroups: any;\n}\n\nconst RouteLoader = ({\n contentTypeId,\n entry,\n isError,\n isLoading,\n isLoggedIn,\n isNotFound,\n loadingComponent,\n mappedEntry,\n notFoundComponent,\n projectId,\n routes,\n setNavigationPath,\n statePath,\n statusCode,\n statusText,\n userGroups,\n withEvents,\n trailingSlashRedirectCode = 302,\n}: AppRootProps & RouteLoaderProps & IReduxProps) => {\n const location = useLocation();\n\n // In SSR pass references to things in backing sagas\n // we cannot access in a global scope\n const ssrContext = useSSRContext();\n\n // Always ensure paths are trimmed of trailing slashes so urls are always unique\n const trimmedPath = getTrimmedPath(location.pathname);\n\n // Match any Static Routes a developer has defined\n const matchedStaticRoute = () =>\n matchRoutes(routes.StaticRoutes as RouteConfig[], location.pathname);\n const isStaticRoute = () => matchedStaticRoute().length > 0;\n\n const staticRoute = isStaticRoute() ? matchedStaticRoute()[0] : undefined;\n const routeRequiresLogin = staticRoute && staticRoute.route.requireLogin;\n\n const setPath = useCallback(() => {\n // Use serverPath to control the path we send to siteview node api to resolve a route\n let serverPath = '';\n if (staticRoute && staticRoute.match && staticRoute.match.isExact) {\n const { match, route } = staticRoute;\n\n if (route.path?.includes('*')) {\n // Send the whole url to api if we have matched route containing wildcard\n serverPath = match.url;\n } else if (typeof route.fetchNodeLevel === 'number') {\n // Send all url parts to a specified level to api\n serverPath = match.url\n .split('/')\n .splice(0, route.fetchNodeLevel + 1)\n .join('/');\n } else if (route.fetchNode?.params) {\n const fetchNodeParams: string[] = route.fetchNode.params;\n const routeParams: { [key: string]: string } = match.params;\n\n const regexExp = new RegExp(\n Object.keys(routeParams)\n .map(p => `:${p}`)\n .join('|'),\n 'g'\n );\n\n serverPath = match.path\n .replace(/\\?/g, '')\n .replace(regexExp, matched => {\n const param = matched.replace(':', '');\n if (fetchNodeParams.includes(param)) return routeParams[param];\n else return '';\n })\n .replace(/\\/$/, '');\n } else {\n // Send all non-parameterised url parts to api\n serverPath = (route.path as string)\n ?.split('/')\n .filter(p => !p.startsWith(':'))\n .join('/');\n }\n }\n\n setNavigationPath(\n serverPath || trimmedPath,\n location,\n staticRoute,\n withEvents,\n statePath,\n routes,\n ssrContext\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n setNavigationPath,\n // staticRoute,\n withEvents,\n location,\n routes,\n // statePath,\n trimmedPath,\n ]);\n\n if (typeof window == 'undefined') setPath();\n\n useEffect(() => {\n setPath();\n }, [location, setPath]);\n\n // Need to redirect when url endswith a /\n if (location.pathname.length > trimmedPath.length) {\n return (\n <Status code={trailingSlashRedirectCode}>\n <Redirect to={`${trimmedPath}${location.search}${location.hash}`} />\n </Status>\n );\n }\n\n // Render any Static Routes a developer has defined\n if (isStaticRoute() && !(!isLoggedIn && routeRequiresLogin)) {\n if (matchUserGroup(userGroups, routeRequiresLogin))\n return renderRoutes(\n routes.StaticRoutes as RouteConfig[],\n {\n projectId,\n contentTypeId,\n entry,\n mappedEntry,\n isLoggedIn,\n } as RouteComponentProps\n );\n }\n\n // Render a supplied Loading component if the route\n // is not a static route and is in a loading state\n if (isLoading && !isNotFound && loadingComponent) {\n const LoadingComponent = loadingComponent;\n return <LoadingComponent />;\n }\n\n // Match any defined Content Type Mappings\n if (contentTypeId && !(!isLoggedIn && routeRequiresLogin)) {\n const MatchedComponent = routes.ContentTypeMappings.find(\n item => item.contentTypeID === contentTypeId\n );\n\n if (MatchedComponent && !(MatchedComponent.requireLogin && !isLoggedIn)) {\n if (matchUserGroup(userGroups, MatchedComponent.requireLogin))\n return (\n <MatchedComponent.component\n projectId={projectId}\n contentTypeId={contentTypeId}\n entry={entry}\n mappedEntry={mappedEntry}\n isLoggedIn={isLoggedIn}\n />\n );\n }\n }\n\n const NotFoundComponent = notFoundComponent ? notFoundComponent : NotFound;\n if (isNotFound || isError) {\n console.info(\n `RouteLoader rendering NotFound component: statusCode ${statusCode}, isNotFound ${isNotFound}, isError ${isError}`\n );\n\n return (\n <Status code={statusCode}>\n <NotFoundComponent statusCode={statusCode} statusText={statusText} />\n </Status>\n );\n }\n\n return null;\n};\nconst mapStateToPropsMemoized = createSelector(\n selectRouteEntryContentTypeId,\n selectRouteEntry,\n selectRouteIsError,\n selectIsNotFound,\n selectRouteLoading,\n selectUserIsAuthenticated,\n selectMappedEntry,\n selectCurrentProject,\n selectCurrentPath,\n selectRouteStatusCode,\n selectRouteErrorMessage,\n selectUserGroups,\n (\n contentTypeId,\n entry,\n isError,\n isNotFound,\n isLoading,\n isLoggedIn,\n mappedEntry,\n projectId,\n statePath,\n statusCode,\n statusText,\n userGroups\n ) => ({\n contentTypeId,\n entry,\n isError,\n isNotFound,\n isLoading,\n isLoggedIn,\n mappedEntry,\n projectId,\n statePath,\n statusCode,\n statusText,\n userGroups,\n })\n);\n\nconst mapDispatchToProps = {\n setNavigationPath,\n};\n\nexport default hot(module)(\n connect(mapStateToPropsMemoized, mapDispatchToProps)(toJS(RouteLoader as any))\n) as unknown as (props: AppRootProps & RouteLoaderProps) => JSX.Element;\n"],"names":["NotFound","statusCode","statusText","React","createElement","Fragment","style","background","color","fontSize","padding","Status","code","children","Route","render","staticContext","replaceDoubleSlashRecursive","path","nextPath","replace","match","getTrimmedPath","lastChar","length","substring","RouteLoader","contentTypeId","entry","isError","isLoading","isLoggedIn","isNotFound","loadingComponent","mappedEntry","notFoundComponent","projectId","routes","setNavigationPath","statePath","userGroups","withEvents","trailingSlashRedirectCode","location","useLocation","ssrContext","useSSRContext","trimmedPath","pathname","matchedStaticRoute","matchRoutes","StaticRoutes","isStaticRoute","staticRoute","undefined","routeRequiresLogin","route","requireLogin","setPath","useCallback","serverPath","isExact","_route$path","_route$fetchNode","includes","url","fetchNodeLevel","split","splice","join","fetchNode","params","fetchNodeParams","routeParams","regexExp","RegExp","Object","keys","map","p","matched","param","_route$path2","filter","startsWith","window","useEffect","Redirect","to","search","hash","matchUserGroup","renderRoutes","LoadingComponent","MatchedComponent","ContentTypeMappings","find","item","contentTypeID","component","NotFoundComponent","console","info","mapStateToPropsMemoized","createSelector","selectRouteEntryContentTypeId","selectRouteEntry","selectRouteIsError","selectIsNotFound","selectRouteLoading","selectUserIsAuthenticated","selectMappedEntry","selectCurrentProject","selectCurrentPath","selectRouteStatusCode","selectRouteErrorMessage","selectUserGroups","mapDispatchToProps","hot","module","connect","toJS"],"mappings":"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"}
1
+ {"version":3,"file":"RouteLoader-BrUuhdcK.js","sources":["../src/routing/components/NotFound.tsx","../src/routing/components/Status.tsx","../src/routing/components/RouteLoader.tsx"],"sourcesContent":["import React from 'react';\n\nconst NotFound = ({\n statusCode,\n statusText,\n}: {\n statusCode: number;\n statusText: string;\n}) => (\n <>\n <header>\n <h1>{statusCode || '404'} Page Not Found</h1>\n {statusText && (\n <h2\n style={{\n background: '#eee',\n color: '#666',\n fontSize: '100%',\n padding: '10px',\n }}\n >\n {statusText}\n </h2>\n )}\n </header>\n </>\n);\n\nexport default NotFound;\n","import React, { PropsWithChildren } from 'react';\nimport { Route } from 'react-router-dom';\n\nexport const Status = ({\n code,\n children,\n}: PropsWithChildren<{ code: number }>) => {\n return (\n <Route\n render={({ staticContext }) => {\n if (staticContext) staticContext.statusCode = code;\n return children;\n }}\n />\n );\n};\n","import React, { useEffect, useCallback } from 'react';\nimport { connect } from 'react-redux';\nimport { hot } from 'react-hot-loader';\nimport { Redirect, useLocation } from 'react-router-dom';\nimport { renderRoutes, matchRoutes, RouteConfig } from 'react-router-config';\nimport { createSelector } from 'reselect';\n\nimport NotFound from './NotFound';\nimport { Status } from './Status';\n\nimport {\n selectCurrentPath,\n selectCurrentProject,\n selectIsNotFound,\n selectMappedEntry,\n selectRouteEntry,\n selectRouteEntryContentTypeId,\n selectRouteErrorMessage,\n selectRouteIsError,\n selectRouteLoading,\n selectRouteStatusCode,\n} from '../redux/selectors';\nimport { setNavigationPath } from '../redux/actions';\n\nimport {\n selectUserGroups,\n selectUserIsAuthenticated,\n} from '~/user/redux/selectors';\nimport { matchUserGroup } from '~/user/util/matchGroups';\nimport { toJS } from '~/util/ToJs';\nimport { useSSRContext } from '~/util/SSRContext';\n\nimport { Entry } from 'contensis-delivery-api/lib/models';\nimport { AppRootProps, RouteComponentProps, RouteLoaderProps } from '~/models';\n\nconst replaceDoubleSlashRecursive = (path: string) => {\n const nextPath = path.replace(/\\/\\//, '/');\n\n if (nextPath.match(/\\/\\//)) {\n return replaceDoubleSlashRecursive(nextPath);\n }\n\n return nextPath;\n};\n\nconst getTrimmedPath = path => {\n if (path !== '/') {\n const nextPath = replaceDoubleSlashRecursive(path);\n const lastChar = nextPath[nextPath.length - 1];\n if (lastChar === '/') {\n return nextPath.substring(0, nextPath.length - 1);\n }\n }\n return path;\n};\n\ninterface IReduxProps {\n contentTypeId: string | null;\n entry: Entry | null;\n isError: boolean;\n isNotFound: boolean;\n isLoading: boolean;\n isLoggedIn: boolean;\n mappedEntry: any;\n projectId: string;\n setNavigationPath: typeof setNavigationPath;\n statePath: string;\n statusCode: any;\n statusText: string;\n userGroups: any;\n}\n\nconst RouteLoader = ({\n contentTypeId,\n entry,\n isError,\n isLoading,\n isLoggedIn,\n isNotFound,\n loadingComponent,\n mappedEntry,\n notFoundComponent,\n projectId,\n routes,\n setNavigationPath,\n statePath,\n statusCode,\n statusText,\n userGroups,\n withEvents,\n trailingSlashRedirectCode = 302,\n}: AppRootProps & RouteLoaderProps & IReduxProps) => {\n const location = useLocation();\n\n // In SSR pass references to things in backing sagas\n // we cannot access in a global scope\n const ssrContext = useSSRContext();\n\n // Always ensure paths are trimmed of trailing slashes so urls are always unique\n const trimmedPath = getTrimmedPath(location.pathname);\n\n // Match any Static Routes a developer has defined\n const matchedStaticRoute = () =>\n matchRoutes(routes.StaticRoutes as RouteConfig[], location.pathname);\n const isStaticRoute = () => matchedStaticRoute().length > 0;\n\n const staticRoute = isStaticRoute() ? matchedStaticRoute()[0] : undefined;\n const routeRequiresLogin = staticRoute && staticRoute.route.requireLogin;\n\n const setPath = useCallback(() => {\n // Use serverPath to control the path we send to siteview node api to resolve a route\n let serverPath = '';\n if (staticRoute && staticRoute.match && staticRoute.match.isExact) {\n const { match, route } = staticRoute;\n\n if (route.path?.includes('*')) {\n // Send the whole url to api if we have matched route containing wildcard\n serverPath = match.url;\n } else if (typeof route.fetchNodeLevel === 'number') {\n // Send all url parts to a specified level to api\n serverPath = match.url\n .split('/')\n .splice(0, route.fetchNodeLevel + 1)\n .join('/');\n } else if (route.fetchNode?.params) {\n const fetchNodeParams: string[] = route.fetchNode.params;\n const routeParams: { [key: string]: string } = match.params;\n\n const regexExp = new RegExp(\n Object.keys(routeParams)\n .map(p => `:${p}`)\n .join('|'),\n 'g'\n );\n\n serverPath = match.path\n .replace(/\\?/g, '')\n .replace(regexExp, matched => {\n const param = matched.replace(':', '');\n if (fetchNodeParams.includes(param)) return routeParams[param];\n else return '';\n })\n .replace(/\\/$/, '');\n } else {\n // Send all non-parameterised url parts to api\n serverPath = (route.path as string)\n ?.split('/')\n .filter(p => !p.startsWith(':'))\n .join('/');\n }\n }\n\n setNavigationPath(\n serverPath || trimmedPath,\n location,\n staticRoute,\n withEvents,\n statePath,\n routes,\n ssrContext\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n setNavigationPath,\n // staticRoute,\n withEvents,\n location,\n routes,\n // statePath,\n trimmedPath,\n ]);\n\n if (typeof window == 'undefined') setPath();\n\n useEffect(() => {\n setPath();\n }, [location, setPath]);\n\n // Need to redirect when url endswith a /\n if (location.pathname.length > trimmedPath.length) {\n return (\n <Status code={trailingSlashRedirectCode}>\n <Redirect to={`${trimmedPath}${location.search}${location.hash}`} />\n </Status>\n );\n }\n\n // Render any Static Routes a developer has defined\n if (isStaticRoute() && !(!isLoggedIn && routeRequiresLogin)) {\n if (matchUserGroup(userGroups, routeRequiresLogin))\n return renderRoutes(\n routes.StaticRoutes as RouteConfig[],\n {\n projectId,\n contentTypeId,\n entry,\n mappedEntry,\n isLoggedIn,\n } as RouteComponentProps\n );\n }\n\n // Render a supplied Loading component if the route\n // is not a static route and is in a loading state\n if (isLoading && !isNotFound && loadingComponent) {\n const LoadingComponent = loadingComponent;\n return <LoadingComponent />;\n }\n\n // Match any defined Content Type Mappings\n if (contentTypeId && !(!isLoggedIn && routeRequiresLogin)) {\n const MatchedComponent = routes.ContentTypeMappings.find(\n item => item.contentTypeID === contentTypeId\n );\n\n if (MatchedComponent && !(MatchedComponent.requireLogin && !isLoggedIn)) {\n if (matchUserGroup(userGroups, MatchedComponent.requireLogin))\n return (\n <MatchedComponent.component\n projectId={projectId}\n contentTypeId={contentTypeId}\n entry={entry}\n mappedEntry={mappedEntry}\n isLoggedIn={isLoggedIn}\n />\n );\n }\n }\n\n const NotFoundComponent = notFoundComponent ? notFoundComponent : NotFound;\n if (isNotFound || isError) {\n console.info(\n `RouteLoader rendering NotFound component: statusCode ${statusCode}, isNotFound ${isNotFound}, isError ${isError}`\n );\n\n return (\n <Status code={statusCode}>\n <NotFoundComponent statusCode={statusCode} statusText={statusText} />\n </Status>\n );\n }\n\n return null;\n};\nconst mapStateToPropsMemoized = createSelector(\n selectRouteEntryContentTypeId,\n selectRouteEntry,\n selectRouteIsError,\n selectIsNotFound,\n selectRouteLoading,\n selectUserIsAuthenticated,\n selectMappedEntry,\n selectCurrentProject,\n selectCurrentPath,\n selectRouteStatusCode,\n selectRouteErrorMessage,\n selectUserGroups,\n (\n contentTypeId,\n entry,\n isError,\n isNotFound,\n isLoading,\n isLoggedIn,\n mappedEntry,\n projectId,\n statePath,\n statusCode,\n statusText,\n userGroups\n ) => ({\n contentTypeId,\n entry,\n isError,\n isNotFound,\n isLoading,\n isLoggedIn,\n mappedEntry,\n projectId,\n statePath,\n statusCode,\n statusText,\n userGroups,\n })\n);\n\nconst mapDispatchToProps = {\n setNavigationPath,\n};\n\nexport default hot(module)(\n connect(mapStateToPropsMemoized, mapDispatchToProps)(toJS(RouteLoader as any))\n) as unknown as (props: AppRootProps & RouteLoaderProps) => JSX.Element;\n"],"names":["NotFound","statusCode","statusText","React","createElement","Fragment","style","background","color","fontSize","padding","Status","code","children","Route","render","staticContext","replaceDoubleSlashRecursive","path","nextPath","replace","match","getTrimmedPath","lastChar","length","substring","RouteLoader","contentTypeId","entry","isError","isLoading","isLoggedIn","isNotFound","loadingComponent","mappedEntry","notFoundComponent","projectId","routes","setNavigationPath","statePath","userGroups","withEvents","trailingSlashRedirectCode","location","useLocation","ssrContext","useSSRContext","trimmedPath","pathname","matchedStaticRoute","matchRoutes","StaticRoutes","isStaticRoute","staticRoute","undefined","routeRequiresLogin","route","requireLogin","setPath","useCallback","serverPath","isExact","_route$path","_route$fetchNode","includes","url","fetchNodeLevel","split","splice","join","fetchNode","params","fetchNodeParams","routeParams","regexExp","RegExp","Object","keys","map","p","matched","param","_route$path2","filter","startsWith","window","useEffect","Redirect","to","search","hash","matchUserGroup","renderRoutes","LoadingComponent","MatchedComponent","ContentTypeMappings","find","item","contentTypeID","component","NotFoundComponent","console","info","mapStateToPropsMemoized","createSelector","selectRouteEntryContentTypeId","selectRouteEntry","selectRouteIsError","selectIsNotFound","selectRouteLoading","selectUserIsAuthenticated","selectMappedEntry","selectCurrentProject","selectCurrentPath","selectRouteStatusCode","selectRouteErrorMessage","selectUserGroups","mapDispatchToProps","hot","module","connect","toJS"],"mappings":"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"}
@@ -5,13 +5,13 @@ var reactCookie = require('react-cookie');
5
5
  var reactRedux = require('react-redux');
6
6
  var contensisDeliveryApi = require('contensis-delivery-api');
7
7
  var queryString = require('query-string');
8
- var selectors = require('./selectors-e3f1fd85.js');
9
- var store = require('./store-665c229b.js');
10
- var CookieHelper_class = require('./CookieHelper.class-34994aa1.js');
8
+ var selectors = require('./selectors-wCs5fHD4.js');
9
+ var store = require('./store-D8dJBaFw.js');
10
+ var CookieHelper_class = require('./CookieHelper.class-CNL3lC5D.js');
11
11
 
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
13
 
14
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
+ var React__default = /*#__PURE__*/_interopDefault(React);
15
15
 
16
16
  class CacheNode {
17
17
  constructor(key, value) {
@@ -89,8 +89,6 @@ class CachedSearch {
89
89
  constructor(ssr) {
90
90
  var _this$ssr;
91
91
  this.cache = new LruCache();
92
- this.cookies = void 0;
93
- this.ssr = void 0;
94
92
  this.ssr = ssr;
95
93
  this.cookies = (_this$ssr = this.ssr) === null || _this$ssr === void 0 ? void 0 : _this$ssr.cookies.raw;
96
94
  }
@@ -159,38 +157,66 @@ const cachedSearch = new CachedSearch();
159
157
  const cachedSearchWithCookies = ssr => new CachedSearch(ssr);
160
158
 
161
159
  const mapCookieHeader = cookies => typeof cookies === 'object' ? Object.entries(cookies).map(([name, value]) => `${name}=${value}`).join('; ') : cookies;
162
- const getSsrReferer = () => {
163
- if (typeof window === 'undefined') {
164
- const state = store.reduxStore.getState();
165
- const referer = `${selectors.selectCurrentHostname(state)}${selectors.selectCurrentPath(state)}${selectors.selectCurrentSearch(state)}`;
166
- return referer;
160
+ const getSsrReferer = ({
161
+ request
162
+ }) => {
163
+ if (request) {
164
+ try {
165
+ const url = new URL(request.url, `${request.protocol || `http`}://${request.headers.host}`);
166
+ return url.href;
167
+ } catch (ex) {
168
+ console.error(`getSsrReferer cannot parse url ${request.url} and host ${request.headers.host}`);
169
+ return request.url;
170
+ }
167
171
  }
172
+
173
+ // if (typeof window === 'undefined') {
174
+ // const state = reduxStore.getState();
175
+ // const referer = `${selectCurrentHostname(state)}${selectCurrentPath(
176
+ // state
177
+ // )}${selectCurrentSearch(state)}`;
178
+
179
+ // return referer;
180
+ // }
168
181
  return '';
169
182
  };
183
+
184
+ /**
185
+ * Store the surrogate-key header contents in redux state to output in SSR response
186
+ */
170
187
  const storeSurrogateKeys = ssr => response => {
171
188
  let keys = '';
172
189
  if (response.status === 200) {
173
190
  keys = response.headers.get ? response.headers.get('surrogate-key') : response.headers.map['surrogate-key'];
174
191
  if (!keys) console.info(`[storeSurrogateKeys] No keys in ${response.url}`);
175
192
  }
193
+ // Using imported reduxStore in SSR is unreliable during high
194
+ // concurrent loads and exists here as a best effort fallback
195
+ // in case the SSRContext is not provided
176
196
  const put = (ssr === null || ssr === void 0 ? void 0 : ssr.dispatch) || (store.reduxStore === null || store.reduxStore === void 0 ? void 0 : store.reduxStore.dispatch);
177
- put === null || put === void 0 ? void 0 : put(selectors.setSurrogateKeys(keys, response.url, response.status));
197
+ put === null || put === void 0 || put(selectors.setSurrogateKeys(keys, response.url, response.status));
178
198
  };
199
+
200
+ /**
201
+ * Create a new Config object to create a DeliveryAPI Client
202
+ */
179
203
  const deliveryApiConfig = ssr => {
180
204
  const config = {
181
205
  ...DELIVERY_API_CONFIG /* global DELIVERY_API_CONFIG */
182
206
  };
183
207
 
208
+ // Add SSR headers and handlers
184
209
  if (typeof window === 'undefined') {
185
210
  config.defaultHeaders = {
186
211
  'x-require-surrogate-key': 'true',
212
+ // request surrogate-key response header
187
213
  'x-crb-ssr': 'true' // add this for support tracing
188
214
  };
215
+ if (ssr) config.defaultHeaders.referer = getSsrReferer(ssr); // add this for support tracing
189
216
 
190
- if (store.reduxStore) config.defaultHeaders.referer = getSsrReferer();
191
217
  config.responseHandler = {
192
218
  [200]: storeSurrogateKeys(ssr)
193
- };
219
+ }; // for handling page cache invalidation
194
220
  }
195
221
  if (typeof window !== 'undefined' && PROXY_DELIVERY_API /* global PROXY_DELIVERY_API */) {
196
222
  // ensure a relative url is used to bypass the need for CORS (separate OPTIONS calls)
@@ -221,8 +247,6 @@ const getClientConfig = (project, ssr) => {
221
247
 
222
248
  class DeliveryApi {
223
249
  constructor(ssr) {
224
- this.cookies = void 0;
225
- this.ssr = void 0;
226
250
  this.getClientSideVersionStatus = () => {
227
251
  if (typeof window !== 'undefined') {
228
252
  // Allow overriding versionStatus with the querystring
@@ -305,7 +329,9 @@ const SSRContextProvider = ({
305
329
  const cookies = new CookieHelper_class.CookieHelper(...reactCookie.useCookies());
306
330
  const api = cachedSearchWithCookies({
307
331
  cookies,
308
- dispatch
332
+ dispatch,
333
+ request,
334
+ response
309
335
  });
310
336
  const [context] = React.useState({
311
337
  api,
@@ -314,7 +340,7 @@ const SSRContextProvider = ({
314
340
  request,
315
341
  response
316
342
  });
317
- return /*#__PURE__*/React__default["default"].createElement(SSRContext.Provider, {
343
+ return /*#__PURE__*/React__default.default.createElement(SSRContext.Provider, {
318
344
  value: {
319
345
  ...context
320
346
  }
@@ -336,4 +362,4 @@ exports.deliveryApiWithCookies = deliveryApiWithCookies;
336
362
  exports.getClientConfig = getClientConfig;
337
363
  exports.useDeliveryApi = useDeliveryApi;
338
364
  exports.useSSRContext = useSSRContext;
339
- //# sourceMappingURL=SSRContext-5360635c.js.map
365
+ //# sourceMappingURL=SSRContext-CmXDzwPL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SSRContext-CmXDzwPL.js","sources":["../src/util/LruCache.js","../src/util/CachedDeliveryApi.ts","../src/util/ContensisDeliveryApi.ts","../src/util/SSRContext.tsx"],"sourcesContent":["class CacheNode {\n constructor(key, value) {\n this.key = key;\n this.value = value;\n this.next = null;\n this.prev = null;\n }\n}\n\nexport class LruCache {\n constructor(limit = 100) {\n this.map = {};\n this.head = null;\n this.tail = null;\n this.limit = limit || 100;\n this.size = 0;\n }\n\n get(key) {\n if (this.map[key]) {\n let value = this.map[key].value;\n let node = new CacheNode(key, value);\n this.remove(key);\n this.setHead(node);\n return value;\n }\n }\n\n set(key, value) {\n let node = new CacheNode(key, value);\n if (this.map[key]) {\n this.remove(key);\n } else {\n if (this.size >= this.limit) {\n delete this.map[this.tail.key];\n this.size--;\n this.tail = this.tail.prev;\n this.tail.next = null;\n }\n }\n this.setHead(node);\n }\n\n setHead(node) {\n node.next = this.head;\n node.prev = null;\n if (this.head) {\n this.head.prev = node;\n }\n this.head = node;\n if (!this.tail) {\n this.tail = node;\n }\n this.size++;\n this.map[node.key] = node;\n }\n\n remove(key) {\n let node = this.map[key];\n if (!node) return; // This is sometimes null and crashes the container without this check\n\n if (node.prev) {\n node.prev.next = node.next;\n } else {\n this.head = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n } else {\n this.tail = node.prev;\n }\n delete this.map[key];\n this.size--;\n }\n}\n","import { VersionStatus } from 'contensis-core-api';\nimport { Client, Query } from 'contensis-delivery-api';\nimport {\n INodeOperations,\n NodeGetRootOptions,\n} from 'contensis-delivery-api/lib/models';\n\nimport {\n DeliveryApi,\n SSRContext,\n getClientConfig,\n} from './ContensisDeliveryApi';\nimport { LruCache } from './LruCache';\nimport { CookieObject } from '~/user/util/CookieConstants';\n\n// CachedSearch does not cache results in SSR by design\nclass CachedSearch {\n cache = new LruCache();\n cookies?: CookieObject;\n ssr?: SSRContext;\n\n constructor(ssr?: SSRContext) {\n this.ssr = ssr;\n this.cookies = this.ssr?.cookies.raw;\n }\n\n getClient(...args: Parameters<DeliveryApi['getClient']>) {\n return new DeliveryApi(this.ssr).getClient(...args);\n }\n\n search(query: Query, linkDepth = 0, project?: string) {\n const client = Client.create(getClientConfig(project, this.ssr));\n return this.request(\n `${project}+${JSON.stringify(query)}+${linkDepth}`,\n () => client.entries.search(query, linkDepth)\n );\n }\n\n searchUsingPost(query: Query, linkDepth = 0, project = '') {\n const client = Client.create(getClientConfig(project, this.ssr));\n return this.request(\n `${project}+${JSON.stringify(query)}+${linkDepth}`,\n () => (client.entries as any).searchUsingPost(query, linkDepth)\n );\n }\n\n get(\n id: string,\n linkDepth = 0,\n versionStatus: VersionStatus = 'published',\n project?: string,\n fields?: string[]\n ) {\n const client = Client.create({\n ...getClientConfig(project, this.ssr),\n versionStatus,\n });\n return this.request(id, () =>\n client.entries.get({ id, linkDepth, fields })\n );\n }\n\n getContentType(id: string, project?: string) {\n const client = Client.create(getClientConfig(project, this.ssr));\n return this.request(`[CONTENT TYPE] ${id} ${project}`, () =>\n client.contentTypes.get(id)\n );\n }\n\n getRootNode(\n options: NodeGetRootOptions,\n versionStatus: VersionStatus = 'published',\n project?: string\n ) {\n const client = Client.create({\n ...getClientConfig(project, this.ssr),\n versionStatus,\n });\n return this.request(`${project} / ${JSON.stringify(options)}`, () =>\n client.nodes.getRoot(options)\n );\n }\n\n getNode(options: Parameters<INodeOperations['get']>[0], project?: string) {\n const client = Client.create(getClientConfig(project, this.ssr));\n return this.request(\n `${project} ${\n options && typeof options !== 'string'\n ? 'path' in options\n ? options.path\n : options.id\n : options\n } ${JSON.stringify(options)}`,\n () => client.nodes.get(options)\n );\n }\n\n getAncestors(\n options: Parameters<INodeOperations['getAncestors']>[0],\n project?: string\n ) {\n const client = Client.create(getClientConfig(project, this.ssr));\n return this.request(\n `${project} [A] ${\n (options && typeof options !== 'string' && options.id) || options\n } ${JSON.stringify(options)}`,\n () => client.nodes.getAncestors(options)\n );\n }\n\n getChildren(\n options: Parameters<INodeOperations['getChildren']>[0],\n project?: string\n ) {\n const client = Client.create(getClientConfig(project, this.ssr));\n return this.request(\n `${project} [C] ${\n (options && typeof options !== 'string' && options.id) || options\n } ${JSON.stringify(options)}`,\n () => client.nodes.getChildren(options)\n );\n }\n\n getSiblings(\n options: Parameters<INodeOperations['getSiblings']>[0],\n project?: string\n ) {\n const client = Client.create(getClientConfig(project, this.ssr));\n return this.request(\n `${project} [S] ${\n (options && typeof options !== 'string' && options.id) || options\n } ${JSON.stringify(options)}`,\n () => client.nodes.getSiblings(options)\n );\n }\n\n request<T extends () => Promise<any>>(key: string, execute: T) {\n // do not cache results in SSR\n if (!this.cache.get(key) || typeof window == 'undefined') {\n const promise = execute();\n this.cache.set(key, promise);\n promise.catch(() => {\n this.cache.remove(key);\n });\n }\n return this.cache.get(key) as ReturnType<T>;\n }\n}\n\nexport const cachedSearch = new CachedSearch();\nexport const cachedSearchWithCookies = (ssr?: SSRContext) =>\n new CachedSearch(ssr);\n","import { VersionStatus } from 'contensis-core-api';\nimport { Client, Query } from 'contensis-delivery-api';\nimport { Config } from 'contensis-delivery-api/lib/models';\nimport { parse } from 'query-string';\nimport { setSurrogateKeys } from '~/routing/redux/actions';\nimport { reduxStore } from '~/redux/store/store';\n\nimport { CookieObject, findLoginCookies } from '~/user/util/CookieConstants';\nimport { Request } from 'express';\nimport { IncomingHttpHeaders } from 'http';\nimport { SSRContext as SSRContextType } from '~/models';\n\nexport type SSRContext = Omit<SSRContextType, 'api'>;\n\nconst mapCookieHeader = (cookies: CookieObject | string) =>\n typeof cookies === 'object'\n ? Object.entries(cookies)\n .map(([name, value]) => `${name}=${value}`)\n .join('; ')\n : cookies;\n\nconst getSsrReferer = ({ request }: SSRContext) => {\n if (request) {\n try {\n const url = new URL(\n request.url,\n `${request.protocol || `http`}://${request.headers.host}`\n );\n return url.href;\n } catch (ex) {\n console.error(\n `getSsrReferer cannot parse url ${request.url} and host ${request.headers.host}`\n );\n\n return request.url;\n }\n }\n\n // if (typeof window === 'undefined') {\n // const state = reduxStore.getState();\n // const referer = `${selectCurrentHostname(state)}${selectCurrentPath(\n // state\n // )}${selectCurrentSearch(state)}`;\n\n // return referer;\n // }\n return '';\n};\n\n/**\n * Store the surrogate-key header contents in redux state to output in SSR response\n */\nconst storeSurrogateKeys = (ssr?: SSRContext) => (response: any) => {\n let keys = '';\n if (response.status === 200) {\n keys = response.headers.get\n ? response.headers.get('surrogate-key')\n : response.headers.map['surrogate-key'];\n if (!keys) console.info(`[storeSurrogateKeys] No keys in ${response.url}`);\n }\n // Using imported reduxStore in SSR is unreliable during high\n // concurrent loads and exists here as a best effort fallback\n // in case the SSRContext is not provided\n const put = ssr?.dispatch || reduxStore?.dispatch;\n put?.(setSurrogateKeys(keys, response.url, response.status));\n};\n\n/**\n * Create a new Config object to create a DeliveryAPI Client\n */\nconst deliveryApiConfig = (ssr?: SSRContext) => {\n const config: Config = {\n ...DELIVERY_API_CONFIG /* global DELIVERY_API_CONFIG */,\n };\n\n // Add SSR headers and handlers\n if (typeof window === 'undefined') {\n config.defaultHeaders = {\n 'x-require-surrogate-key': 'true', // request surrogate-key response header\n 'x-crb-ssr': 'true', // add this for support tracing\n };\n if (ssr) config.defaultHeaders.referer = getSsrReferer(ssr); // add this for support tracing\n\n config.responseHandler = { [200]: storeSurrogateKeys(ssr) }; // for handling page cache invalidation\n }\n\n if (\n typeof window !== 'undefined' &&\n PROXY_DELIVERY_API /* global PROXY_DELIVERY_API */\n ) {\n // ensure a relative url is used to bypass the need for CORS (separate OPTIONS calls)\n config.rootUrl = '';\n config.responseHandler = { [404]: () => null };\n }\n return config;\n};\n\nexport const getClientConfig = (project?: string, ssr?: SSRContext) => {\n const config = deliveryApiConfig(ssr);\n\n if (project) {\n config.projectId = project;\n }\n\n if (ssr?.cookies) {\n const cookieHeader = mapCookieHeader(findLoginCookies(ssr.cookies));\n if (cookieHeader) {\n config.defaultHeaders = Object.assign(config.defaultHeaders || {}, {\n Cookie: cookieHeader,\n });\n }\n }\n\n return config;\n};\n\n// export * from 'contensis-delivery-api';\n\ndeclare let window: Window &\n typeof globalThis & {\n versionStatus?: VersionStatus;\n };\n\nexport class DeliveryApi {\n cookies?: CookieObject;\n ssr?: SSRContext;\n\n constructor(ssr?: SSRContext) {\n this.ssr = ssr;\n this.cookies = ssr?.cookies.raw;\n }\n\n getClientSideVersionStatus = () => {\n if (typeof window !== 'undefined') {\n // Allow overriding versionStatus with the querystring\n const { versionStatus } = parse(window.location.search);\n if (versionStatus) return versionStatus;\n // Client-side we will have a global variable set if rendered by SSR in production\n if (typeof window.versionStatus !== 'undefined')\n return window.versionStatus;\n // For localhost development we can only work out versionStatus from the current hostname\n const currentHostname = window.location.hostname;\n return this.getVersionStatusFromHostname(currentHostname);\n }\n return null;\n };\n\n getServerSideVersionStatus = (request: Request) =>\n request.query.versionStatus ||\n deliveryApi.getVersionStatusFromHeaders(request.headers) ||\n deliveryApi.getVersionStatusFromHostname(request.hostname);\n\n getVersionStatusFromHeaders = (headers: IncomingHttpHeaders) => {\n const versionStatusHeader = headers['x-entry-versionstatus'];\n if (typeof versionStatusHeader !== 'undefined') return versionStatusHeader;\n return null;\n };\n\n getVersionStatusFromHostname = (currentHostname: string) => {\n if (currentHostname.indexOf('localhost') > -1) return 'latest';\n\n if (currentHostname.endsWith('contensis.cloud')) {\n if (currentHostname.indexOf('preview.') > -1) {\n return 'latest';\n } else {\n return 'published';\n }\n }\n\n if (currentHostname.endsWith('cloud.contensis.com')) {\n if (currentHostname.indexOf('preview-') > -1) {\n return 'latest';\n } else {\n return 'published';\n }\n }\n\n return 'published';\n };\n\n search = (query: Query, linkDepth = 0, project?: string) => {\n const client = Client.create(getClientConfig(project, this.ssr));\n return client.entries.search(\n query,\n typeof linkDepth !== 'undefined' ? linkDepth : 1\n );\n };\n\n getClient = (versionStatus: VersionStatus = 'published', project?: string) =>\n Client.create({\n ...getClientConfig(project, this.ssr),\n versionStatus,\n });\n\n getEntry = (\n id: string,\n linkDepth = 0,\n versionStatus: VersionStatus = 'published',\n project?: string\n ) => {\n const client = Client.create({\n ...getClientConfig(project, this.ssr),\n versionStatus,\n });\n return client.entries.get({ id, linkDepth });\n };\n}\n\nexport const deliveryApi = new DeliveryApi();\n\nexport const deliveryApiWithCookies = (ssr?: SSRContext) =>\n new DeliveryApi(ssr);\n\nexport * from './CachedDeliveryApi';\n","import { Request, Response } from 'express';\nimport React, {\n PropsWithChildren,\n createContext,\n useContext,\n useState,\n} from 'react';\nimport { useCookies } from 'react-cookie';\nimport { useDispatch } from 'react-redux';\nimport { SSRContext as SSRContextType } from '~/models';\nimport { cachedSearchWithCookies } from '~/util/CachedDeliveryApi';\nimport { CookieHelper } from '~/user/util/CookieHelper.class';\n\nconst SSRContext = createContext<SSRContextType | null>(null);\n\n/** SSRContextProvider allows us to hold and access request-scoped references\n * throughout the component tree\n *\n * adding this in client side allows consumers to write universal code and use\n * the same helpers and refs as in SSR */\nexport const SSRContextProvider = ({\n children,\n request,\n response,\n}: PropsWithChildren<{ request?: Request; response?: Response }>) => {\n // In SSR pass references to things in backing sagas\n // we cannot access in a global scope\n const dispatch = useDispatch();\n const cookies = new CookieHelper(...useCookies());\n const api = cachedSearchWithCookies({ cookies, dispatch, request, response });\n\n const [context] = useState<SSRContextType>({\n api,\n cookies,\n dispatch,\n request,\n response,\n });\n\n return (\n <SSRContext.Provider value={{ ...context }}>{children}</SSRContext.Provider>\n );\n};\n\nexport const useSSRContext = () => useContext(SSRContext) as SSRContextType;\n\nexport const useDeliveryApi = () => {\n const { api } = useSSRContext();\n return api;\n};\n"],"names":["CacheNode","constructor","key","value","next","prev","LruCache","limit","map","head","tail","size","get","node","remove","setHead","set","CachedSearch","ssr","_this$ssr","cache","cookies","raw","getClient","args","DeliveryApi","search","query","linkDepth","project","client","Client","create","getClientConfig","request","JSON","stringify","entries","searchUsingPost","id","versionStatus","fields","getContentType","contentTypes","getRootNode","options","nodes","getRoot","getNode","path","getAncestors","getChildren","getSiblings","execute","window","promise","catch","cachedSearch","cachedSearchWithCookies","mapCookieHeader","Object","name","join","getSsrReferer","url","URL","protocol","headers","host","href","ex","console","error","storeSurrogateKeys","response","keys","status","info","put","dispatch","reduxStore","setSurrogateKeys","deliveryApiConfig","config","DELIVERY_API_CONFIG","defaultHeaders","referer","responseHandler","PROXY_DELIVERY_API","rootUrl","projectId","cookieHeader","findLoginCookies","assign","Cookie","getClientSideVersionStatus","parse","location","currentHostname","hostname","getVersionStatusFromHostname","getServerSideVersionStatus","deliveryApi","getVersionStatusFromHeaders","versionStatusHeader","indexOf","endsWith","getEntry","deliveryApiWithCookies","SSRContext","createContext","SSRContextProvider","children","useDispatch","CookieHelper","useCookies","api","context","useState","React","createElement","Provider","useSSRContext","useContext","useDeliveryApi"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var selectors$1 = require('./selectors-e3f1fd85.js');
3
+ var selectors$1 = require('./selectors-wCs5fHD4.js');
4
4
  var React = require('react');
5
5
 
6
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
7
 
8
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
8
+ var React__default = /*#__PURE__*/_interopDefault(React);
9
9
 
10
10
  const selectUserIsLoading = state => selectors$1.getImmutableOrJS(state, ['user', 'authenticationState', 'isLoading']);
11
11
  const selectUserIsAuthenticated = state => selectors$1.getImmutableOrJS(state, ['user', 'authenticationState', 'isAuthenticated']);
@@ -43,33 +43,33 @@ const selectChangePasswordError = state => selectors$1.getImmutableOrJS(state, [
43
43
 
44
44
  var selectors = /*#__PURE__*/Object.freeze({
45
45
  __proto__: null,
46
- selectUserIsLoading: selectUserIsLoading,
47
- selectUserIsAuthenticated: selectUserIsAuthenticated,
48
- selectUserIsAuthenticationError: selectUserIsAuthenticationError,
49
- selectUserIsError: selectUserIsError,
50
- selectUserAuthenticationErrorMessage: selectUserAuthenticationErrorMessage,
51
- selectUserErrorMessage: selectUserErrorMessage,
46
+ selectChangePasswordError: selectChangePasswordError,
47
+ selectChangePasswordSending: selectChangePasswordSending,
48
+ selectChangePasswordSent: selectChangePasswordSent,
52
49
  selectClientCredentials: selectClientCredentials,
50
+ selectPasswordResetRequestError: selectPasswordResetRequestError,
51
+ selectPasswordResetRequestSending: selectPasswordResetRequestSending,
52
+ selectPasswordResetRequestSent: selectPasswordResetRequestSent,
53
+ selectResetPasswordError: selectResetPasswordError,
54
+ selectResetPasswordSending: selectResetPasswordSending,
55
+ selectResetPasswordSent: selectResetPasswordSent,
53
56
  selectUser: selectUser,
54
- selectUserIsZengentiStaff: selectUserIsZengentiStaff,
55
- selectUserGuid: selectUserGuid,
56
- selectUsername: selectUsername,
57
+ selectUserAuthenticationErrorMessage: selectUserAuthenticationErrorMessage,
57
58
  selectUserEmail: selectUserEmail,
59
+ selectUserErrorMessage: selectUserErrorMessage,
58
60
  selectUserGroups: selectUserGroups,
59
- selectUserSecurityToken: selectUserSecurityToken,
61
+ selectUserGuid: selectUserGuid,
62
+ selectUserIsAuthenticated: selectUserIsAuthenticated,
63
+ selectUserIsAuthenticationError: selectUserIsAuthenticationError,
64
+ selectUserIsError: selectUserIsError,
65
+ selectUserIsLoading: selectUserIsLoading,
66
+ selectUserIsZengentiStaff: selectUserIsZengentiStaff,
60
67
  selectUserRegistration: selectUserRegistration,
61
68
  selectUserRegistrationError: selectUserRegistrationError,
62
69
  selectUserRegistrationIsLoading: selectUserRegistrationIsLoading,
63
70
  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
71
+ selectUserSecurityToken: selectUserSecurityToken,
72
+ selectUsername: selectUsername
73
73
  });
74
74
 
75
75
  const matchUserGroup = (userGroups = [], requiredGroups = []) => {
@@ -88,6 +88,7 @@ const matchUserGroup = (userGroups = [], requiredGroups = []) => {
88
88
  };
89
89
 
90
90
  /* eslint-disable react/display-name */
91
+ /* eslint-disable @typescript-eslint/naming-convention */
91
92
  const toJS = WrappedComponent => wrappedComponentProps => {
92
93
  const KEY = 0;
93
94
  const VALUE = 1;
@@ -97,7 +98,7 @@ const toJS = WrappedComponent => wrappedComponentProps => {
97
98
  newProps[propKey] = propValue && typeof propValue === 'object' && 'toJS' in propValue ? propValue.toJS() : propValue;
98
99
  return newProps;
99
100
  }, {});
100
- return /*#__PURE__*/React__default["default"].createElement(WrappedComponent, propsJS);
101
+ return /*#__PURE__*/React__default.default.createElement(WrappedComponent, propsJS);
101
102
  };
102
103
 
103
104
  exports.matchUserGroup = matchUserGroup;
@@ -125,4 +126,4 @@ exports.selectUserRegistrationIsLoading = selectUserRegistrationIsLoading;
125
126
  exports.selectUserRegistrationIsSuccess = selectUserRegistrationIsSuccess;
126
127
  exports.selectors = selectors;
127
128
  exports.toJS = toJS;
128
- //# sourceMappingURL=ToJs-7f965106.js.map
129
+ //# sourceMappingURL=ToJs-C9jwV7YB.js.map
@@ -1 +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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"}
1
+ {"version":3,"file":"ToJs-C9jwV7YB.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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"}
@@ -8,4 +8,4 @@ function getDefaultExportFromCjs (x) {
8
8
 
9
9
  exports.commonjsGlobal = commonjsGlobal;
10
10
  exports.getDefaultExportFromCjs = getDefaultExportFromCjs;
11
- //# sourceMappingURL=_commonjsHelpers-b3309d7b.js.map
11
+ //# sourceMappingURL=_commonjsHelpers-BJu3ubxk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_commonjsHelpers-BJu3ubxk.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
package/cjs/client.js CHANGED
@@ -11,22 +11,22 @@ 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-7b43af3e.js');
15
- var version$1 = require('./version-3b05d6c8.js');
16
- var App = require('./App-99dbd33c.js');
17
- var store = require('./store-665c229b.js');
18
- var selectors = require('./selectors-e3f1fd85.js');
19
- var SSRContext = require('./SSRContext-5360635c.js');
14
+ var version = require('./version-CM-bJ62L.js');
15
+ var version$1 = require('./version-DSW6Roy9.js');
16
+ var App = require('./App-D2_FqsUD.js');
17
+ var store = require('./store-D8dJBaFw.js');
18
+ var selectors = require('./selectors-wCs5fHD4.js');
19
+ var SSRContext = require('./SSRContext-CmXDzwPL.js');
20
20
  require('@redux-saga/core/effects');
21
21
  require('history');
22
22
  require('loglevel');
23
23
  require('await-to-js');
24
- require('./ChangePassword.container-98448cf3.js');
25
- require('./ToJs-7f965106.js');
24
+ require('./ChangePassword.container-DrO8p-7S.js');
25
+ require('./ToJs-C9jwV7YB.js');
26
26
  require('jsonpath-mapper');
27
- require('./CookieHelper.class-34994aa1.js');
27
+ require('./CookieHelper.class-CNL3lC5D.js');
28
28
  require('contensis-delivery-api');
29
- require('./RouteLoader-bf91b09e.js');
29
+ require('./RouteLoader-BrUuhdcK.js');
30
30
  require('react-router-config');
31
31
  require('reselect');
32
32
  require('redux');
@@ -35,9 +35,9 @@ require('redux-saga');
35
35
  require('redux-injectors');
36
36
  require('immer');
37
37
 
38
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
38
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
39
39
 
40
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
40
+ var React__default = /*#__PURE__*/_interopDefault(React);
41
41
 
42
42
  // Fix TS2769 error No overload matches this call
43
43
  const Container = reactHotLoader.AppContainer; // as typeof AppContainer;
@@ -53,11 +53,11 @@ class ClientApp {
53
53
  withEvents
54
54
  } = config;
55
55
  const GetClientJSX = store => {
56
- const ClientJsx = /*#__PURE__*/React__default["default"].createElement(Container, null, /*#__PURE__*/React__default["default"].createElement(reactCookie.CookiesProvider, null, /*#__PURE__*/React__default["default"].createElement(reactRedux.Provider, {
56
+ const ClientJsx = /*#__PURE__*/React__default.default.createElement(Container, null, /*#__PURE__*/React__default.default.createElement(reactCookie.CookiesProvider, null, /*#__PURE__*/React__default.default.createElement(reactRedux.Provider, {
57
57
  store: store
58
- }, /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Router, {
58
+ }, /*#__PURE__*/React__default.default.createElement(reactRouterDom.Router, {
59
59
  history: App.browserHistory
60
- }, /*#__PURE__*/React__default["default"].createElement(SSRContext.SSRContextProvider, null, /*#__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
  }))))));
@@ -117,5 +117,5 @@ class ClientApp {
117
117
  }
118
118
 
119
119
  exports.ReactApp = App.AppRoot;
120
- exports["default"] = ClientApp;
120
+ exports.default = ClientApp;
121
121
  //# sourceMappingURL=client.js.map
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';\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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"}
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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"}