@zengenti/contensis-react-base 4.0.0-beta.2 → 4.0.0-beta.4

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 (212) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +18 -478
  3. package/cjs/{App-b56aca04.js → App-DXro6av4.js} +215 -234
  4. package/cjs/App-DXro6av4.js.map +1 -0
  5. package/cjs/{ChangePassword.container-ae35785e.js → ChangePassword.container-ECjEXixF.js} +209 -286
  6. package/cjs/ChangePassword.container-ECjEXixF.js.map +1 -0
  7. package/cjs/CookieHelper.class-C3Eqoze9.js +471 -0
  8. package/cjs/CookieHelper.class-C3Eqoze9.js.map +1 -0
  9. package/cjs/{RouteLoader-c06dccd5.js → RouteLoader-BFc-Wl6M.js} +55 -68
  10. package/cjs/RouteLoader-BFc-Wl6M.js.map +1 -0
  11. package/cjs/{ContensisDeliveryApi-4fcf049d.js → SSRContext-CFeZxG9H.js} +165 -119
  12. package/cjs/SSRContext-CFeZxG9H.js.map +1 -0
  13. package/cjs/{ToJs-a8d8f3f0.js → ToJs-C9jwV7YB.js} +26 -80
  14. package/cjs/ToJs-C9jwV7YB.js.map +1 -0
  15. package/cjs/{_commonjsHelpers-b3309d7b.js → _commonjsHelpers-BJu3ubxk.js} +1 -1
  16. package/cjs/_commonjsHelpers-BJu3ubxk.js.map +1 -0
  17. package/cjs/client.js +67 -65
  18. package/cjs/client.js.map +1 -1
  19. package/cjs/contensis-react-base.js +387 -3294
  20. package/cjs/contensis-react-base.js.map +1 -1
  21. package/cjs/{fromJSLeaveImmer-e74c673c.js → fromJSLeaveImmer-Blvlk4t2.js} +3 -7
  22. package/{esm/fromJSLeaveImmer-0114ffcf.js.map → cjs/fromJSLeaveImmer-Blvlk4t2.js.map} +1 -1
  23. package/cjs/redux.js +19 -20
  24. package/cjs/redux.js.map +1 -1
  25. package/cjs/routing.js +13 -6
  26. package/cjs/routing.js.map +1 -1
  27. package/cjs/sagas-CbZhaRNd.js +6010 -0
  28. package/cjs/sagas-CbZhaRNd.js.map +1 -0
  29. package/cjs/search.js +105 -305
  30. package/cjs/search.js.map +1 -1
  31. package/cjs/selectors-wCs5fHD4.js +460 -0
  32. package/cjs/selectors-wCs5fHD4.js.map +1 -0
  33. package/cjs/{version-34d91f68.js → store-D07FOXvM.js} +44 -114
  34. package/cjs/store-D07FOXvM.js.map +1 -0
  35. package/cjs/{urls-6fcaf4c6.js → urls-DVIwGZmd.js} +1 -1
  36. package/{esm/urls-eac9a747.js.map → cjs/urls-DVIwGZmd.js.map} +1 -1
  37. package/cjs/user.js +12 -20
  38. package/cjs/user.js.map +1 -1
  39. package/cjs/util.js +109 -116
  40. package/cjs/util.js.map +1 -1
  41. package/cjs/{version-a410c88e.js → version-B7XFkBhY.js} +19 -22
  42. package/{esm/version-9f29becb.js.map → cjs/version-B7XFkBhY.js.map} +1 -1
  43. package/cjs/version-CM-bJ62L.js +20 -0
  44. package/cjs/version-CM-bJ62L.js.map +1 -0
  45. package/esm/{App-83107d7e.js → App-CIlf4cl4.js} +176 -195
  46. package/esm/App-CIlf4cl4.js.map +1 -0
  47. package/esm/{ChangePassword.container-76fd5e9b.js → ChangePassword.container-C0tFq0Tf.js} +191 -250
  48. package/esm/ChangePassword.container-C0tFq0Tf.js.map +1 -0
  49. package/esm/CookieHelper.class-FTURFpz3.js +464 -0
  50. package/esm/CookieHelper.class-FTURFpz3.js.map +1 -0
  51. package/esm/{RouteLoader-29fd689a.js → RouteLoader-D7HmVx5l.js} +40 -53
  52. package/esm/RouteLoader-D7HmVx5l.js.map +1 -0
  53. package/esm/{ContensisDeliveryApi-fe57a037.js → SSRContext-CkiWIvde.js} +159 -120
  54. package/esm/SSRContext-CkiWIvde.js.map +1 -0
  55. package/esm/{ToJs-df57f31d.js → ToJs-CpPNdcXS.js} +24 -77
  56. package/esm/ToJs-CpPNdcXS.js.map +1 -0
  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 +55 -53
  60. package/esm/client.js.map +1 -1
  61. package/esm/contensis-react-base.js +318 -3223
  62. package/esm/contensis-react-base.js.map +1 -1
  63. package/esm/{fromJSLeaveImmer-0114ffcf.js → fromJSLeaveImmer-C_YACmOf.js} +2 -6
  64. package/{cjs/fromJSLeaveImmer-e74c673c.js.map → esm/fromJSLeaveImmer-C_YACmOf.js.map} +1 -1
  65. package/esm/redux.js +10 -9
  66. package/esm/redux.js.map +1 -1
  67. package/esm/routing.js +13 -4
  68. package/esm/routing.js.map +1 -1
  69. package/esm/sagas-xJU-zOpn.js +5916 -0
  70. package/esm/sagas-xJU-zOpn.js.map +1 -0
  71. package/esm/search.js +113 -311
  72. package/esm/search.js.map +1 -1
  73. package/esm/selectors-CBdCY0u3.js +396 -0
  74. package/esm/selectors-CBdCY0u3.js.map +1 -0
  75. package/esm/{version-3d9911e2.js → store-v2gyr6u2.js} +38 -85
  76. package/esm/store-v2gyr6u2.js.map +1 -0
  77. package/esm/{urls-eac9a747.js → urls-DfCisos-.js} +1 -1
  78. package/{cjs/urls-6fcaf4c6.js.map → esm/urls-DfCisos-.js.map} +1 -1
  79. package/esm/user.js +7 -13
  80. package/esm/user.js.map +1 -1
  81. package/esm/util.js +67 -75
  82. package/esm/util.js.map +1 -1
  83. package/esm/version-D773TD9j.js +15 -0
  84. package/esm/version-D773TD9j.js.map +1 -0
  85. package/esm/{version-9f29becb.js → version-DvjTUbcA.js} +6 -9
  86. package/{cjs/version-a410c88e.js.map → esm/version-DvjTUbcA.js.map} +1 -1
  87. package/models/app/App.d.ts +1 -1
  88. package/models/app/pages/VersionInfo/components/VersionInfo.d.ts +4 -1
  89. package/models/app/pages/VersionInfo/components/VersionInfo.styled.d.ts +2 -1
  90. package/models/client/client.d.ts +1 -1
  91. package/models/index.d.ts +1 -2
  92. package/models/models/AppRouteProps.d.ts +11 -0
  93. package/models/{redux/appstate.d.ts → models/AppState.d.ts} +3 -3
  94. package/models/models/ContentTypeMapping.d.ts +89 -0
  95. package/models/models/EntryMapper.d.ts +3 -0
  96. package/models/models/GetRouteActionArgs.d.ts +15 -0
  97. package/models/models/MatchedRoute.d.ts +4 -0
  98. package/models/models/ReduxInjector.d.ts +5 -0
  99. package/models/models/RequireLogin.d.ts +6 -0
  100. package/models/models/RouteComponent.d.ts +4 -0
  101. package/models/models/RouteComponentProps.d.ts +9 -0
  102. package/models/models/RouteLoaderProps.d.ts +9 -0
  103. package/models/models/RouteNode.d.ts +5 -0
  104. package/models/models/SSRContext.d.ts +11 -0
  105. package/models/models/StaticRoute.d.ts +61 -0
  106. package/models/models/WithEvents.d.ts +58 -0
  107. package/models/models/config/AppConfig.d.ts +12 -0
  108. package/models/{config.d.ts → models/config/ServerConfig.d.ts} +3 -12
  109. package/models/models/config/StateType.d.ts +1 -0
  110. package/models/models/config/index.d.ts +3 -0
  111. package/models/models/index.d.ts +16 -0
  112. package/models/redux/actions/index.d.ts +2 -2
  113. package/models/redux/sagas/navigation.d.ts +1 -3
  114. package/models/redux/selectors/index.d.ts +2 -2
  115. package/models/redux/store/injectors.d.ts +16 -4
  116. package/models/redux/store/store.d.ts +10 -4
  117. package/models/redux/types/index.d.ts +2 -2
  118. package/models/redux/types/navigation.d.ts +3 -3
  119. package/models/redux/types/version.d.ts +2 -2
  120. package/models/routing/components/Redirect.d.ts +1 -1
  121. package/models/routing/components/RouteLoader.d.ts +1 -1
  122. package/models/routing/components/StaticRouteLoader.d.ts +1 -1
  123. package/models/routing/components/Status.d.ts +1 -1
  124. package/models/routing/redux/actions.d.ts +3 -4
  125. package/models/routing/redux/selectors.d.ts +2 -2
  126. package/models/routing/redux/types.d.ts +11 -11
  127. package/models/routing/util/find-contenttype-mapping.d.ts +1 -1
  128. package/models/routing/util/queries.d.ts +2 -2
  129. package/models/search/containers/withListing.d.ts +4 -1
  130. package/models/search/containers/withSearch.d.ts +4 -1
  131. package/models/search/models/Queries.d.ts +4 -2
  132. package/models/search/models/Search.d.ts +8 -1
  133. package/models/search/models/SearchActions.d.ts +3 -2
  134. package/models/search/models/SearchState.d.ts +5 -1
  135. package/models/search/redux/reducers.d.ts +2 -257
  136. package/models/search/redux/schema.d.ts +1 -1
  137. package/models/search/redux/selectors.d.ts +5 -5
  138. package/models/search/search/ContensisDeliveryApi.d.ts +2 -2
  139. package/models/search/search/ToJs.d.ts +1 -1
  140. package/models/search/search/expressions.d.ts +3 -3
  141. package/models/search/search/util.d.ts +17 -2
  142. package/models/search/transformations/searchresult-to-state.mapper.d.ts +1 -2
  143. package/models/server/features/caching/cacheDuration.schema.d.ts +1 -0
  144. package/models/server/features/linkdepth-api/search.d.ts +1 -1
  145. package/models/server/features/static-assets/index.d.ts +1 -1
  146. package/models/server/internalServer.d.ts +1 -1
  147. package/models/server/util/bundles.d.ts +1 -1
  148. package/models/server/util/headers.d.ts +1 -1
  149. package/models/server/webApp.d.ts +1 -1
  150. package/models/user/components/Login.d.ts +1 -1
  151. package/models/user/components/LoginForm.d.ts +6 -6
  152. package/models/user/components/LogoutForm.d.ts +4 -4
  153. package/models/user/components.styled/Login.styled.d.ts +1 -1
  154. package/models/user/components.styled/LoginForm.styled.d.ts +1 -1
  155. package/models/user/hocs/withLogin.d.ts +4 -4
  156. package/models/user/hocs/withRegistration.d.ts +6 -3
  157. package/models/user/hooks/useLogin.d.ts +4 -4
  158. package/models/user/redux/actions.d.ts +7 -6
  159. package/models/user/redux/sagas/index.d.ts +1 -1
  160. package/models/user/redux/sagas/login.d.ts +5 -17
  161. package/models/user/redux/selectors.d.ts +1 -2
  162. package/models/user/redux/types.d.ts +21 -21
  163. package/models/user/state.d.ts +12 -0
  164. package/models/user/transformations/mapClientCredentials.d.ts +3 -1
  165. package/models/user/util/ContensisManagementApi.d.ts +10 -9
  166. package/models/user/util/CookieConstants.d.ts +1 -0
  167. package/models/user/util/CookieHelper.class.d.ts +8 -4
  168. package/models/user/util/LoginHelper.class.d.ts +25 -37
  169. package/models/user/util/OidcUserManager.d.ts +1 -1
  170. package/models/user/util/matchGroups.d.ts +1 -1
  171. package/models/util/CachedDeliveryApi.d.ts +11 -10
  172. package/models/util/ContensisDeliveryApi.d.ts +11 -7
  173. package/models/util/SSRContext.d.ts +29 -0
  174. package/models/util/index.d.ts +1 -0
  175. package/models/util/json-mapper.d.ts +4 -5
  176. package/package.json +71 -92
  177. package/cjs/App-b56aca04.js.map +0 -1
  178. package/cjs/ChangePassword.container-ae35785e.js.map +0 -1
  179. package/cjs/ContensisDeliveryApi-4fcf049d.js.map +0 -1
  180. package/cjs/CookieConstants-000427db.js +0 -10
  181. package/cjs/CookieConstants-000427db.js.map +0 -1
  182. package/cjs/RouteLoader-c06dccd5.js.map +0 -1
  183. package/cjs/ToJs-a8d8f3f0.js.map +0 -1
  184. package/cjs/_commonjsHelpers-b3309d7b.js.map +0 -1
  185. package/cjs/forms.js +0 -5998
  186. package/cjs/forms.js.map +0 -1
  187. package/cjs/reducers-73a03ef4.js +0 -257
  188. package/cjs/reducers-73a03ef4.js.map +0 -1
  189. package/cjs/sagas-570f23ba.js +0 -2175
  190. package/cjs/sagas-570f23ba.js.map +0 -1
  191. package/cjs/selectors-14caa813.js +0 -228
  192. package/cjs/selectors-14caa813.js.map +0 -1
  193. package/cjs/version-34d91f68.js.map +0 -1
  194. package/esm/App-83107d7e.js.map +0 -1
  195. package/esm/ChangePassword.container-76fd5e9b.js.map +0 -1
  196. package/esm/ContensisDeliveryApi-fe57a037.js.map +0 -1
  197. package/esm/CookieConstants-3d3b6531.js +0 -6
  198. package/esm/CookieConstants-3d3b6531.js.map +0 -1
  199. package/esm/RouteLoader-29fd689a.js.map +0 -1
  200. package/esm/ToJs-df57f31d.js.map +0 -1
  201. package/esm/_commonjsHelpers-1789f0cf.js.map +0 -1
  202. package/esm/forms.js +0 -5984
  203. package/esm/forms.js.map +0 -1
  204. package/esm/reducers-aa8cef1e.js +0 -234
  205. package/esm/reducers-aa8cef1e.js.map +0 -1
  206. package/esm/sagas-07e82e18.js +0 -2083
  207. package/esm/sagas-07e82e18.js.map +0 -1
  208. package/esm/selectors-691caf02.js +0 -186
  209. package/esm/selectors-691caf02.js.map +0 -1
  210. package/esm/version-3d9911e2.js.map +0 -1
  211. package/models/forms/index.d.ts +0 -1
  212. package/models/routing/routes.d.ts +0 -133
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieHelper.class-C3Eqoze9.js","sources":["../src/user/util/CookieConstants.ts","../node_modules/universal-cookie/esm/index.mjs","../src/user/util/CookieHelper.class.ts"],"sourcesContent":["export const BEARER_TOKEN_COOKIE = 'ContensisSecurityBearerToken';\nexport const LOGIN_COOKIE = 'ContensisCMSUserName';\nexport const REFRESH_TOKEN_COOKIE = 'RefreshToken';\n\nexport type CookieObject = { [name: string]: any };\n\nexport const findLoginCookies = (cookies: CookieObject | string) =>\n typeof cookies === 'object'\n ? Object.fromEntries(\n Object.entries(cookies).filter(([name]) =>\n [LOGIN_COOKIE, REFRESH_TOKEN_COOKIE].includes(name)\n )\n )\n : cookies;\n","var dist = {};\n\nvar hasRequiredDist;\n\nfunction requireDist () {\n\tif (hasRequiredDist) return dist;\n\thasRequiredDist = 1;\n\tObject.defineProperty(dist, \"__esModule\", { value: true });\n\tdist.parse = parse;\n\tdist.serialize = serialize;\n\t/**\n\t * RegExp to match cookie-name in RFC 6265 sec 4.1.1\n\t * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2\n\t * which has been replaced by the token definition in RFC 7230 appendix B.\n\t *\n\t * cookie-name = token\n\t * token = 1*tchar\n\t * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" /\n\t * \"*\" / \"+\" / \"-\" / \".\" / \"^\" / \"_\" /\n\t * \"`\" / \"|\" / \"~\" / DIGIT / ALPHA\n\t *\n\t * Note: Allowing more characters - https://github.com/jshttp/cookie/issues/191\n\t * Allow same range as cookie value, except `=`, which delimits end of name.\n\t */\n\tconst cookieNameRegExp = /^[\\u0021-\\u003A\\u003C\\u003E-\\u007E]+$/;\n\t/**\n\t * RegExp to match cookie-value in RFC 6265 sec 4.1.1\n\t *\n\t * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n\t * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n\t * ; US-ASCII characters excluding CTLs,\n\t * ; whitespace DQUOTE, comma, semicolon,\n\t * ; and backslash\n\t *\n\t * Allowing more characters: https://github.com/jshttp/cookie/issues/191\n\t * Comma, backslash, and DQUOTE are not part of the parsing algorithm.\n\t */\n\tconst cookieValueRegExp = /^[\\u0021-\\u003A\\u003C-\\u007E]*$/;\n\t/**\n\t * RegExp to match domain-value in RFC 6265 sec 4.1.1\n\t *\n\t * domain-value = <subdomain>\n\t * ; defined in [RFC1034], Section 3.5, as\n\t * ; enhanced by [RFC1123], Section 2.1\n\t * <subdomain> = <label> | <subdomain> \".\" <label>\n\t * <label> = <let-dig> [ [ <ldh-str> ] <let-dig> ]\n\t * Labels must be 63 characters or less.\n\t * 'let-dig' not 'letter' in the first char, per RFC1123\n\t * <ldh-str> = <let-dig-hyp> | <let-dig-hyp> <ldh-str>\n\t * <let-dig-hyp> = <let-dig> | \"-\"\n\t * <let-dig> = <letter> | <digit>\n\t * <letter> = any one of the 52 alphabetic characters A through Z in\n\t * upper case and a through z in lower case\n\t * <digit> = any one of the ten digits 0 through 9\n\t *\n\t * Keep support for leading dot: https://github.com/jshttp/cookie/issues/173\n\t *\n\t * > (Note that a leading %x2E (\".\"), if present, is ignored even though that\n\t * character is not permitted, but a trailing %x2E (\".\"), if present, will\n\t * cause the user agent to ignore the attribute.)\n\t */\n\tconst domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;\n\t/**\n\t * RegExp to match path-value in RFC 6265 sec 4.1.1\n\t *\n\t * path-value = <any CHAR except CTLs or \";\">\n\t * CHAR = %x01-7F\n\t * ; defined in RFC 5234 appendix B.1\n\t */\n\tconst pathValueRegExp = /^[\\u0020-\\u003A\\u003D-\\u007E]*$/;\n\tconst __toString = Object.prototype.toString;\n\tconst NullObject = /* @__PURE__ */ (() => {\n\t const C = function () { };\n\t C.prototype = Object.create(null);\n\t return C;\n\t})();\n\t/**\n\t * Parse a cookie header.\n\t *\n\t * Parse the given cookie header string into an object\n\t * The object has the various cookies as keys(names) => values\n\t */\n\tfunction parse(str, options) {\n\t const obj = new NullObject();\n\t const len = str.length;\n\t // RFC 6265 sec 4.1.1, RFC 2616 2.2 defines a cookie name consists of one char minimum, plus '='.\n\t if (len < 2)\n\t return obj;\n\t const dec = options?.decode || decode;\n\t let index = 0;\n\t do {\n\t const eqIdx = str.indexOf(\"=\", index);\n\t if (eqIdx === -1)\n\t break; // No more cookie pairs.\n\t const colonIdx = str.indexOf(\";\", index);\n\t const endIdx = colonIdx === -1 ? len : colonIdx;\n\t if (eqIdx > endIdx) {\n\t // backtrack on prior semicolon\n\t index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n\t continue;\n\t }\n\t const keyStartIdx = startIndex(str, index, eqIdx);\n\t const keyEndIdx = endIndex(str, eqIdx, keyStartIdx);\n\t const key = str.slice(keyStartIdx, keyEndIdx);\n\t // only assign once\n\t if (obj[key] === undefined) {\n\t let valStartIdx = startIndex(str, eqIdx + 1, endIdx);\n\t let valEndIdx = endIndex(str, endIdx, valStartIdx);\n\t const value = dec(str.slice(valStartIdx, valEndIdx));\n\t obj[key] = value;\n\t }\n\t index = endIdx + 1;\n\t } while (index < len);\n\t return obj;\n\t}\n\tfunction startIndex(str, index, max) {\n\t do {\n\t const code = str.charCodeAt(index);\n\t if (code !== 0x20 /* */ && code !== 0x09 /* \\t */)\n\t return index;\n\t } while (++index < max);\n\t return max;\n\t}\n\tfunction endIndex(str, index, min) {\n\t while (index > min) {\n\t const code = str.charCodeAt(--index);\n\t if (code !== 0x20 /* */ && code !== 0x09 /* \\t */)\n\t return index + 1;\n\t }\n\t return min;\n\t}\n\t/**\n\t * Serialize data into a cookie header.\n\t *\n\t * Serialize a name value pair into a cookie string suitable for\n\t * http headers. An optional options object specifies cookie parameters.\n\t *\n\t * serialize('foo', 'bar', { httpOnly: true })\n\t * => \"foo=bar; httpOnly\"\n\t */\n\tfunction serialize(name, val, options) {\n\t const enc = options?.encode || encodeURIComponent;\n\t if (!cookieNameRegExp.test(name)) {\n\t throw new TypeError(`argument name is invalid: ${name}`);\n\t }\n\t const value = enc(val);\n\t if (!cookieValueRegExp.test(value)) {\n\t throw new TypeError(`argument val is invalid: ${val}`);\n\t }\n\t let str = name + \"=\" + value;\n\t if (!options)\n\t return str;\n\t if (options.maxAge !== undefined) {\n\t if (!Number.isInteger(options.maxAge)) {\n\t throw new TypeError(`option maxAge is invalid: ${options.maxAge}`);\n\t }\n\t str += \"; Max-Age=\" + options.maxAge;\n\t }\n\t if (options.domain) {\n\t if (!domainValueRegExp.test(options.domain)) {\n\t throw new TypeError(`option domain is invalid: ${options.domain}`);\n\t }\n\t str += \"; Domain=\" + options.domain;\n\t }\n\t if (options.path) {\n\t if (!pathValueRegExp.test(options.path)) {\n\t throw new TypeError(`option path is invalid: ${options.path}`);\n\t }\n\t str += \"; Path=\" + options.path;\n\t }\n\t if (options.expires) {\n\t if (!isDate(options.expires) ||\n\t !Number.isFinite(options.expires.valueOf())) {\n\t throw new TypeError(`option expires is invalid: ${options.expires}`);\n\t }\n\t str += \"; Expires=\" + options.expires.toUTCString();\n\t }\n\t if (options.httpOnly) {\n\t str += \"; HttpOnly\";\n\t }\n\t if (options.secure) {\n\t str += \"; Secure\";\n\t }\n\t if (options.partitioned) {\n\t str += \"; Partitioned\";\n\t }\n\t if (options.priority) {\n\t const priority = typeof options.priority === \"string\"\n\t ? options.priority.toLowerCase()\n\t : undefined;\n\t switch (priority) {\n\t case \"low\":\n\t str += \"; Priority=Low\";\n\t break;\n\t case \"medium\":\n\t str += \"; Priority=Medium\";\n\t break;\n\t case \"high\":\n\t str += \"; Priority=High\";\n\t break;\n\t default:\n\t throw new TypeError(`option priority is invalid: ${options.priority}`);\n\t }\n\t }\n\t if (options.sameSite) {\n\t const sameSite = typeof options.sameSite === \"string\"\n\t ? options.sameSite.toLowerCase()\n\t : options.sameSite;\n\t switch (sameSite) {\n\t case true:\n\t case \"strict\":\n\t str += \"; SameSite=Strict\";\n\t break;\n\t case \"lax\":\n\t str += \"; SameSite=Lax\";\n\t break;\n\t case \"none\":\n\t str += \"; SameSite=None\";\n\t break;\n\t default:\n\t throw new TypeError(`option sameSite is invalid: ${options.sameSite}`);\n\t }\n\t }\n\t return str;\n\t}\n\t/**\n\t * URL-decode string value. Optimized to skip native call when no %.\n\t */\n\tfunction decode(str) {\n\t if (str.indexOf(\"%\") === -1)\n\t return str;\n\t try {\n\t return decodeURIComponent(str);\n\t }\n\t catch (e) {\n\t return str;\n\t }\n\t}\n\t/**\n\t * Determine if value is a Date.\n\t */\n\tfunction isDate(val) {\n\t return __toString.call(val) === \"[object Date]\";\n\t}\n\t\n\treturn dist;\n}\n\nvar distExports = requireDist();\n\nfunction hasDocumentCookie() {\n const testingValue = typeof global === 'undefined'\n ? undefined\n : global.TEST_HAS_DOCUMENT_COOKIE;\n if (typeof testingValue === 'boolean') {\n return testingValue;\n }\n // Can we get/set cookies on document.cookie?\n return typeof document === 'object' && typeof document.cookie === 'string';\n}\nfunction parseCookies(cookies) {\n if (typeof cookies === 'string') {\n return distExports.parse(cookies);\n }\n else if (typeof cookies === 'object' && cookies !== null) {\n return cookies;\n }\n else {\n return {};\n }\n}\nfunction readCookie(value, options = {}) {\n const cleanValue = cleanupCookieValue(value);\n if (!options.doNotParse) {\n try {\n return JSON.parse(cleanValue);\n }\n catch (e) {\n // At least we tried\n }\n }\n // Ignore clean value if we failed the deserialization\n // It is not relevant anymore to trim those values\n return value;\n}\nfunction cleanupCookieValue(value) {\n // express prepend j: before serializing a cookie\n if (value && value[0] === 'j' && value[1] === ':') {\n return value.substr(2);\n }\n return value;\n}\n\nclass Cookies {\n constructor(cookies, defaultSetOptions = {}) {\n this.changeListeners = [];\n this.HAS_DOCUMENT_COOKIE = false;\n this.update = () => {\n if (!this.HAS_DOCUMENT_COOKIE) {\n return;\n }\n const previousCookies = this.cookies;\n this.cookies = distExports.parse(document.cookie);\n this._checkChanges(previousCookies);\n };\n const domCookies = typeof document === 'undefined' ? '' : document.cookie;\n this.cookies = parseCookies(cookies || domCookies);\n this.defaultSetOptions = defaultSetOptions;\n this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\n }\n _emitChange(params) {\n for (let i = 0; i < this.changeListeners.length; ++i) {\n this.changeListeners[i](params);\n }\n }\n _checkChanges(previousCookies) {\n const names = new Set(Object.keys(previousCookies).concat(Object.keys(this.cookies)));\n names.forEach((name) => {\n if (previousCookies[name] !== this.cookies[name]) {\n this._emitChange({\n name,\n value: readCookie(this.cookies[name]),\n });\n }\n });\n }\n _startPolling() {\n this.pollingInterval = setInterval(this.update, 300);\n }\n _stopPolling() {\n if (this.pollingInterval) {\n clearInterval(this.pollingInterval);\n }\n }\n get(name, options = {}) {\n if (!options.doNotUpdate) {\n this.update();\n }\n return readCookie(this.cookies[name], options);\n }\n getAll(options = {}) {\n if (!options.doNotUpdate) {\n this.update();\n }\n const result = {};\n for (let name in this.cookies) {\n result[name] = readCookie(this.cookies[name], options);\n }\n return result;\n }\n set(name, value, options) {\n if (options) {\n options = Object.assign(Object.assign({}, this.defaultSetOptions), options);\n }\n else {\n options = this.defaultSetOptions;\n }\n const stringValue = typeof value === 'string' ? value : JSON.stringify(value);\n this.cookies = Object.assign(Object.assign({}, this.cookies), { [name]: stringValue });\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = distExports.serialize(name, stringValue, options);\n }\n this._emitChange({ name, value, options });\n }\n remove(name, options) {\n const finalOptions = (options = Object.assign(Object.assign(Object.assign({}, this.defaultSetOptions), options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\n this.cookies = Object.assign({}, this.cookies);\n delete this.cookies[name];\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = distExports.serialize(name, '', finalOptions);\n }\n this._emitChange({ name, value: undefined, options });\n }\n addChangeListener(callback) {\n this.changeListeners.push(callback);\n if (this.HAS_DOCUMENT_COOKIE && this.changeListeners.length === 1) {\n if (typeof window === 'object' && 'cookieStore' in window) {\n window.cookieStore.addEventListener('change', this.update);\n }\n else {\n this._startPolling();\n }\n }\n }\n removeChangeListener(callback) {\n const idx = this.changeListeners.indexOf(callback);\n if (idx >= 0) {\n this.changeListeners.splice(idx, 1);\n }\n if (this.HAS_DOCUMENT_COOKIE && this.changeListeners.length === 0) {\n if (typeof window === 'object' && 'cookieStore' in window) {\n window.cookieStore.removeEventListener('change', this.update);\n }\n else {\n this._stopPolling();\n }\n }\n }\n removeAllChangeListeners() {\n while (this.changeListeners.length > 0) {\n this.removeChangeListener(this.changeListeners[0]);\n }\n }\n}\n\nexport { Cookies as default };\n","import { useCookies } from 'react-cookie';\nimport FallbackCookies from 'universal-cookie';\n\nconst COOKIE_VALID_DAYS = 1; // 0 = Session cookie\n\ntype CookieHook = ReturnType<typeof useCookies>;\ntype Cookies = { [k: string]: string };\ntype SetCookie = CookieHook[1];\ntype RemoveCookie = CookieHook[2];\ntype UpdateCookie = CookieHook[3];\n\n// CookieHelper is a class that takes in and lets us pass around the methods provided\n// by `useCookie` react hook in backend code that is connected to the universal-cookies\n// instance created in SSR middleware (and provides browser cookies)\nexport class CookieHelper {\n private cookies: Cookies;\n private set?: SetCookie;\n private remove?: RemoveCookie;\n private update?: UpdateCookie;\n private fallback!: FallbackCookies;\n\n get raw() {\n return this.cookies;\n }\n\n get cookie(): FallbackCookies {\n return (this.set ? this : this.fallback) as FallbackCookies;\n }\n\n constructor(\n cookies?: { [k: string]: string },\n setCookie?: CookieHelper['set'],\n removeCookie?: CookieHelper['remove'],\n updateCookies?: CookieHelper['update']\n ) {\n // Add fallback methods if global cookies not supplied\n if (!cookies || !setCookie || !removeCookie)\n this.fallback = new FallbackCookies();\n\n this.cookies = cookies || this.fallback.getAll();\n if (setCookie) this.set = setCookie;\n if (removeCookie) this.remove = removeCookie;\n if (updateCookies) this.update = updateCookies;\n }\n\n GetCookie(name: string) {\n const cookie = this.cookies[name];\n if (typeof cookie === 'undefined') {\n return null;\n }\n return cookie;\n }\n\n SetCookie(name: string, value: string, maxAgeDays = COOKIE_VALID_DAYS) {\n // update local cookies object as this is provided as a clone of `req.universalCookies`\n this.cookies[name] = value;\n\n // call the passed setCookie method so we can update the `universal-cookie` instance\n // with the change listener attached so the cookies can be set in SSR response\n if (maxAgeDays === 0) this.cookie.set(name, value);\n else\n this.cookie.set(name, value, {\n expires: addDays(new Date(), maxAgeDays),\n path: '/',\n });\n }\n\n DeleteCookie(name: string) {\n // update local cookies object as this is provided as a clone of `req.universalCookies`\n delete this.cookies[name];\n\n this.cookie.remove(name, {\n path: '/',\n });\n }\n}\nconst addDays = (date = new Date(), days: number) => {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n};\n\nexport const mapCookieHeader = cookies =>\n typeof cookies === 'object'\n ? Object.entries(cookies)\n .map(([name, value]) => `${name}=${value}`)\n .join('; ')\n : cookies;\n"],"names":["BEARER_TOKEN_COOKIE","LOGIN_COOKIE","REFRESH_TOKEN_COOKIE","findLoginCookies","cookies","Object","fromEntries","entries","filter","name","includes","COOKIE_VALID_DAYS","CookieHelper","raw","cookie","set","fallback","constructor","setCookie","removeCookie","updateCookies","FallbackCookies","getAll","remove","update","GetCookie","SetCookie","value","maxAgeDays","expires","addDays","Date","path","DeleteCookie","date","days","result","setDate","getDate"],"mappings":"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","x_google_ignoreList":[1]}
@@ -1,16 +1,16 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var reactCookie = require('react-cookie');
5
4
  var reactRedux = require('react-redux');
6
- var require$$2 = require('react-router-dom');
5
+ var reactRouterDom = require('react-router-dom');
7
6
  var reselect = require('reselect');
8
- var selectors = require('./selectors-14caa813.js');
9
- var ToJs = require('./ToJs-a8d8f3f0.js');
7
+ var selectors = require('./selectors-wCs5fHD4.js');
8
+ var ToJs = require('./ToJs-C9jwV7YB.js');
9
+ var SSRContext = require('./SSRContext-CFeZxG9H.js');
10
10
 
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
12
 
13
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
+ var React__default = /*#__PURE__*/_interopDefault(React);
14
14
 
15
15
  const HttpContext = /*#__PURE__*/React.createContext({});
16
16
  const useHttpContext = () => {
@@ -19,13 +19,13 @@ const useHttpContext = () => {
19
19
 
20
20
  const mergeStaticRoutes = matchedStaticRoute => {
21
21
  let finalRoute = {};
22
-
23
22
  for (const [i, route] of matchedStaticRoute.entries()) {
24
- const staticRouteCopy = { ...route.route
23
+ const staticRouteCopy = {
24
+ ...route.route
25
25
  };
26
-
27
26
  if (i === matchedStaticRoute.length - 1) {
28
- finalRoute = { ...finalRoute,
27
+ finalRoute = {
28
+ ...finalRoute,
29
29
  ...staticRouteCopy,
30
30
  fullPath: `${finalRoute.fullPath || ''}${route.route.path ? route.route.path : ''}`
31
31
  };
@@ -36,7 +36,8 @@ const mergeStaticRoutes = matchedStaticRoute => {
36
36
  delete staticRouteCopy.path;
37
37
  delete staticRouteCopy.component;
38
38
  delete staticRouteCopy.element;
39
- finalRoute = { ...finalRoute,
39
+ finalRoute = {
40
+ ...finalRoute,
40
41
  ...staticRouteCopy,
41
42
  fullPath: `${finalRoute.fullPath || ''}${route.route.path ? route.route.path.endsWith('/') ? route.route.path : route.route.path + '/' : ''}`
42
43
  };
@@ -49,13 +50,11 @@ const Redirect = ({
49
50
  to
50
51
  }) => {
51
52
  const httpContext = useHttpContext();
52
-
53
53
  if (httpContext) {
54
54
  httpContext.statusCode = code;
55
55
  httpContext.url = to;
56
56
  }
57
-
58
- return /*#__PURE__*/React__default["default"].createElement(require$$2.Navigate, {
57
+ return /*#__PURE__*/React__default.default.createElement(reactRouterDom.Navigate, {
59
58
  to: to
60
59
  });
61
60
  };
@@ -65,18 +64,16 @@ const Status = ({
65
64
  children
66
65
  }) => {
67
66
  const httpContext = useHttpContext();
68
-
69
67
  if (httpContext) {
70
68
  httpContext.statusCode = code;
71
69
  }
72
-
73
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, children);
70
+ return /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, children);
74
71
  };
75
72
 
76
73
  const NotFound = ({
77
74
  statusCode,
78
75
  statusText
79
- }) => /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement("h1", null, statusCode || '404', " Page Not Found"), statusText && /*#__PURE__*/React__default["default"].createElement("h2", {
76
+ }) => /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, /*#__PURE__*/React__default.default.createElement("header", null, /*#__PURE__*/React__default.default.createElement("h1", null, statusCode || '404', " Page Not Found"), statusText && /*#__PURE__*/React__default.default.createElement("h2", {
80
77
  style: {
81
78
  background: '#eee',
82
79
  color: '#666',
@@ -88,33 +85,27 @@ const NotFound = ({
88
85
  const StaticRouteLoader = ({
89
86
  staticRoutes
90
87
  }) => {
91
- const staticRouteElement = require$$2.useRoutes(staticRoutes);
92
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, staticRouteElement);
88
+ const staticRouteElement = reactRouterDom.useRoutes(staticRoutes);
89
+ return /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, staticRouteElement);
93
90
  };
94
91
 
95
92
  const replaceDoubleSlashRecursive = path => {
96
93
  const nextPath = path.replace(/\/\//, '/');
97
-
98
94
  if (nextPath.match(/\/\//)) {
99
95
  return replaceDoubleSlashRecursive(nextPath);
100
96
  }
101
-
102
97
  return nextPath;
103
98
  };
104
-
105
99
  const getTrimmedPath = path => {
106
100
  if (path !== '/') {
107
101
  const nextPath = replaceDoubleSlashRecursive(path);
108
102
  const lastChar = nextPath[nextPath.length - 1];
109
-
110
103
  if (lastChar === '/') {
111
104
  return nextPath.substring(0, nextPath.length - 1);
112
105
  }
113
106
  }
114
-
115
107
  return path;
116
108
  };
117
-
118
109
  const processStaticRoutes = (staticRoutes, componentProps) => {
119
110
  const {
120
111
  projectId,
@@ -124,11 +115,11 @@ const processStaticRoutes = (staticRoutes, componentProps) => {
124
115
  isLoggedIn
125
116
  } = componentProps;
126
117
  return staticRoutes.map(x => {
127
- const route = { ...x
118
+ const route = {
119
+ ...x
128
120
  };
129
-
130
121
  if (route.component) {
131
- route.element = /*#__PURE__*/React__default["default"].createElement(route.component, {
122
+ route.element = /*#__PURE__*/React__default.default.createElement(route.component, {
132
123
  projectId: projectId,
133
124
  contentTypeId: contentTypeId ? contentTypeId : undefined,
134
125
  entry: entry,
@@ -137,7 +128,6 @@ const processStaticRoutes = (staticRoutes, componentProps) => {
137
128
  });
138
129
  delete route.component;
139
130
  }
140
-
141
131
  if (route.element) {
142
132
  route.element = /*#__PURE__*/React.cloneElement(route.element, {
143
133
  projectId,
@@ -147,15 +137,12 @@ const processStaticRoutes = (staticRoutes, componentProps) => {
147
137
  isLoggedIn
148
138
  });
149
139
  }
150
-
151
140
  if (route.children) {
152
141
  route.children = processStaticRoutes(route.children, componentProps);
153
142
  }
154
-
155
143
  return route;
156
144
  });
157
145
  };
158
-
159
146
  const RouteLoader = ({
160
147
  contentTypeId,
161
148
  entry,
@@ -176,41 +163,44 @@ const RouteLoader = ({
176
163
  withEvents,
177
164
  trailingSlashRedirectCode = 302
178
165
  }) => {
179
- const location = require$$2.useLocation();
180
- const cookies = new ToJs.CookieHelper(...reactCookie.useCookies()); // Always ensure paths are trimmed of trailing slashes so urls are always unique
166
+ const location = reactRouterDom.useLocation();
181
167
 
182
- const trimmedPath = getTrimmedPath(location.pathname); // Convert any react-router-v5 style routes to react-router-v6 style routes.
168
+ // In SSR pass references to things in backing sagas
169
+ // we cannot access in a global scope
170
+ const ssrContext = SSRContext.useSSRContext();
183
171
 
172
+ // Always ensure paths are trimmed of trailing slashes so urls are always unique
173
+ const trimmedPath = getTrimmedPath(location.pathname);
174
+
175
+ // Convert any react-router-v5 style routes to react-router-v6 style routes.
184
176
  const staticRoutes = processStaticRoutes(routes.StaticRoutes, {
185
177
  projectId,
186
178
  contentTypeId,
187
179
  entry,
188
180
  mappedEntry,
189
181
  isLoggedIn
190
- }); // Match any Static Routes a developer has defined
182
+ });
191
183
 
192
- const matchedStaticRoute = require$$2.matchRoutes(staticRoutes, location);
193
- const isStaticRoute = matchedStaticRoute && matchedStaticRoute.length > 0; // Combine custom params for all static routes, with the furthest config taking precedence.
184
+ // Match any Static Routes a developer has defined
185
+ const matchedStaticRoute = reactRouterDom.matchRoutes(staticRoutes, location);
186
+ const isStaticRoute = matchedStaticRoute && matchedStaticRoute.length > 0;
194
187
 
188
+ // Combine custom params for all static routes, with the furthest config taking precedence.
195
189
  if (isStaticRoute) {
196
190
  mergeStaticRoutes(matchedStaticRoute);
197
191
  }
198
-
199
192
  const staticRoute = isStaticRoute ? matchedStaticRoute.pop() || undefined : undefined;
200
193
  const routeRequiresLogin = staticRoute ? staticRoute.route.requireLogin : undefined;
201
194
  const setPath = React.useCallback(() => {
202
195
  // Use serverPath to control the path we send to siteview node api to resolve a route
203
196
  let serverPath = '';
204
-
205
197
  if (staticRoute && staticRoute.pathname === staticRoute.pathnameBase) {
206
198
  var _route$path, _route$fetchNode;
207
-
208
199
  const {
209
200
  route,
210
201
  pathname,
211
202
  params
212
203
  } = staticRoute;
213
-
214
204
  if ((_route$path = route.path) !== null && _route$path !== void 0 && _route$path.includes('*')) {
215
205
  // Send the whole url to api if we have matched route containing wildcard
216
206
  serverPath = pathname;
@@ -227,48 +217,49 @@ const RouteLoader = ({
227
217
  }).replace(/\/$/, '');
228
218
  } else {
229
219
  var _route$fullPath;
230
-
231
220
  // Send all non-parameterised url parts to api
232
221
  serverPath = (_route$fullPath = route.fullPath) === null || _route$fullPath === void 0 ? void 0 : _route$fullPath.split('/').filter(p => !p.startsWith(':')).join('/');
233
222
  }
234
223
  }
235
-
236
- setNavigationPath(serverPath || trimmedPath, location, staticRoute, withEvents, statePath, routes, cookies); // eslint-disable-next-line react-hooks/exhaustive-deps
237
- }, [setNavigationPath, // staticRoute,
238
- withEvents, location, routes, // statePath,
224
+ setNavigationPath(serverPath || trimmedPath, location, staticRoute, withEvents, statePath, routes, ssrContext);
225
+ // eslint-disable-next-line react-hooks/exhaustive-deps
226
+ }, [setNavigationPath,
227
+ // staticRoute,
228
+ withEvents, location, routes,
229
+ // statePath,
239
230
  trimmedPath]);
240
231
  if (typeof window == 'undefined') setPath();
241
232
  React.useEffect(() => {
242
233
  setPath();
243
- }, [location, setPath]); // Need to redirect when url endswith a /
234
+ }, [location, setPath]);
244
235
 
236
+ // Need to redirect when url endswith a /
245
237
  if (location.pathname.length > trimmedPath.length) {
246
- return /*#__PURE__*/React__default["default"].createElement(Redirect, {
238
+ return /*#__PURE__*/React__default.default.createElement(Redirect, {
247
239
  code: trailingSlashRedirectCode || 302,
248
240
  to: `${trimmedPath}${location.search}${location.hash}`
249
241
  });
250
- } // Render any Static Routes a developer has defined
251
-
242
+ }
252
243
 
244
+ // Render any Static Routes a developer has defined
253
245
  if (isStaticRoute && !(!isLoggedIn && routeRequiresLogin)) {
254
- if (ToJs.matchUserGroup(userGroups, routeRequiresLogin)) return /*#__PURE__*/React__default["default"].createElement(StaticRouteLoader, {
246
+ if (ToJs.matchUserGroup(userGroups, routeRequiresLogin)) return /*#__PURE__*/React__default.default.createElement(StaticRouteLoader, {
255
247
  staticRoutes: staticRoutes
256
248
  });
257
- } // Render a supplied Loading component if the route
258
- // is not a static route and is in a loading state
259
-
249
+ }
260
250
 
251
+ // Render a supplied Loading component if the route
252
+ // is not a static route and is in a loading state
261
253
  if (isLoading && !isNotFound && loadingComponent) {
262
254
  const LoadingComponent = loadingComponent;
263
- return /*#__PURE__*/React__default["default"].createElement(LoadingComponent, null);
264
- } // Match any defined Content Type Mappings
265
-
255
+ return /*#__PURE__*/React__default.default.createElement(LoadingComponent, null);
256
+ }
266
257
 
258
+ // Match any defined Content Type Mappings
267
259
  if (contentTypeId && !(!isLoggedIn && routeRequiresLogin)) {
268
260
  const MatchedComponent = routes.ContentTypeMappings.find(item => item.contentTypeID === contentTypeId);
269
-
270
261
  if (MatchedComponent && !(MatchedComponent.requireLogin && !isLoggedIn)) {
271
- if (ToJs.matchUserGroup(userGroups, MatchedComponent.requireLogin)) return /*#__PURE__*/React__default["default"].createElement(MatchedComponent.component, {
262
+ if (ToJs.matchUserGroup(userGroups, MatchedComponent.requireLogin)) return /*#__PURE__*/React__default.default.createElement(MatchedComponent.component, {
272
263
  projectId: projectId,
273
264
  contentTypeId: contentTypeId,
274
265
  entry: entry,
@@ -277,22 +268,18 @@ const RouteLoader = ({
277
268
  });
278
269
  }
279
270
  }
280
-
281
271
  const NotFoundComponent = notFoundComponent ? notFoundComponent : NotFound;
282
-
283
272
  if (isNotFound || isError) {
284
273
  console.info(`RouteLoader rendering NotFound component: statusCode ${statusCode}, isNotFound ${isNotFound}, isError ${isError}`);
285
- return /*#__PURE__*/React__default["default"].createElement(Status, {
274
+ return /*#__PURE__*/React__default.default.createElement(Status, {
286
275
  code: statusCode
287
- }, /*#__PURE__*/React__default["default"].createElement(NotFoundComponent, {
276
+ }, /*#__PURE__*/React__default.default.createElement(NotFoundComponent, {
288
277
  statusCode: statusCode,
289
278
  statusText: statusText
290
279
  }));
291
280
  }
292
-
293
281
  return null;
294
282
  };
295
-
296
283
  const mapStateToPropsMemoized = reselect.createSelector(selectors.selectRouteEntryContentTypeId, selectors.selectRouteEntry, selectors.selectRouteIsError, selectors.selectIsNotFound, selectors.selectRouteLoading, ToJs.selectUserIsAuthenticated, selectors.selectMappedEntry, selectors.selectCurrentProject, selectors.selectCurrentPath, selectors.selectRouteStatusCode, selectors.selectRouteErrorMessage, ToJs.selectUserGroups, (contentTypeId, entry, isError, isNotFound, isLoading, isLoggedIn, mappedEntry, projectId, statePath, statusCode, statusText, userGroups) => ({
297
284
  contentTypeId,
298
285
  entry,
@@ -318,4 +305,4 @@ exports.RouteLoader = RouteLoader$1;
318
305
  exports.Status = Status;
319
306
  exports.mergeStaticRoutes = mergeStaticRoutes;
320
307
  exports.useHttpContext = useHttpContext;
321
- //# sourceMappingURL=RouteLoader-c06dccd5.js.map
308
+ //# sourceMappingURL=RouteLoader-BFc-Wl6M.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteLoader-BFc-Wl6M.js","sources":["../src/routing/httpContext.ts","../src/util/mergeStaticRoutes.ts","../src/routing/components/Redirect.tsx","../src/routing/components/Status.tsx","../src/routing/components/NotFound.tsx","../src/routing/components/StaticRouteLoader.tsx","../src/routing/components/RouteLoader.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport type HttpContextValues = {\n statusCode?: number;\n url?: string;\n};\n\nexport const HttpContext = createContext<HttpContextValues>({});\nexport const useHttpContext = () => {\n return useContext(HttpContext);\n};\n","import { StaticRoute } from '../';\n\nexport const mergeStaticRoutes = matchedStaticRoute => {\n let finalRoute: StaticRoute = {};\n for (const [i, route] of matchedStaticRoute.entries()) {\n const staticRouteCopy = { ...route.route };\n if (i === matchedStaticRoute.length - 1) {\n finalRoute = {\n ...finalRoute,\n ...staticRouteCopy,\n fullPath: `${finalRoute.fullPath || ''}${\n route.route.path ? route.route.path : ''\n }`,\n };\n matchedStaticRoute[i].route = finalRoute;\n } else {\n delete staticRouteCopy.children;\n delete staticRouteCopy.index;\n delete staticRouteCopy.path;\n delete staticRouteCopy.component;\n delete staticRouteCopy.element;\n finalRoute = {\n ...finalRoute,\n ...staticRouteCopy,\n fullPath: `${finalRoute.fullPath || ''}${\n route.route.path\n ? route.route.path.endsWith('/')\n ? route.route.path\n : route.route.path + '/'\n : ''\n }`,\n };\n }\n }\n};\n","import React, { PropsWithChildren } from 'react';\nimport { Navigate } from 'react-router-dom';\nimport { useHttpContext } from '../httpContext';\n\nexport const Redirect = ({\n code,\n to,\n}: PropsWithChildren<{ code: 301 | 302; to: string }>) => {\n const httpContext = useHttpContext();\n if (httpContext) {\n httpContext.statusCode = code;\n httpContext.url = to;\n }\n return <Navigate to={to} />;\n};\n","import React, { PropsWithChildren } from 'react';\nimport { useHttpContext } from '../httpContext';\n\nexport const Status = ({\n code,\n children,\n}: PropsWithChildren<{ code: number }>) => {\n const httpContext = useHttpContext();\n if (httpContext) {\n httpContext.statusCode = code;\n }\n return <>{children}</>;\n};\n","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 from 'react';\nimport { RouteObject, useRoutes } from 'react-router-dom';\nimport type { StaticRoute } from '~/models';\n\nexport interface StaticRouteLoaderProps {\n staticRoutes: StaticRoute[];\n}\n\nexport const StaticRouteLoader = ({ staticRoutes }: StaticRouteLoaderProps) => {\n const staticRouteElement = useRoutes(staticRoutes as RouteObject[]);\n return <>{staticRouteElement}</>;\n};\n","import React, { useEffect, useCallback, cloneElement } from 'react';\nimport { connect } from 'react-redux';\nimport { useLocation, matchRoutes, RouteObject } from 'react-router-dom';\n\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 { mergeStaticRoutes } from '~/util/mergeStaticRoutes';\nimport { Entry } from 'contensis-delivery-api/lib/models';\nimport { AppRootProps, MatchedRoute, RouteComponentProps, RouteLoaderProps, StaticRoute } from '~/models';\nimport { StaticRouteLoader } from './StaticRouteLoader';\nimport { Redirect } from './Redirect';\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\nconst processStaticRoutes = (\n staticRoutes: StaticRoute[],\n componentProps: Partial<IReduxProps>\n) => {\n const { projectId, contentTypeId, entry, mappedEntry, isLoggedIn } =\n componentProps;\n return staticRoutes.map(x => {\n const route = { ...x };\n if (route.component) {\n route.element = (\n <route.component\n projectId={projectId}\n contentTypeId={contentTypeId ? contentTypeId : undefined}\n entry={entry}\n mappedEntry={mappedEntry}\n isLoggedIn={isLoggedIn}\n />\n );\n delete route.component;\n }\n if (route.element) {\n route.element = cloneElement(route.element as React.ReactElement<any>, {\n projectId,\n contentTypeId,\n entry,\n mappedEntry,\n isLoggedIn,\n });\n }\n if (route.children) {\n route.children = processStaticRoutes(route.children, componentProps);\n }\n return route;\n });\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 // Convert any react-router-v5 style routes to react-router-v6 style routes.\n const staticRoutes = processStaticRoutes(routes.StaticRoutes, {\n projectId,\n contentTypeId,\n entry,\n mappedEntry,\n isLoggedIn,\n });\n\n // Match any Static Routes a developer has defined\n const matchedStaticRoute = matchRoutes(\n staticRoutes as RouteObject[],\n location\n );\n const isStaticRoute = matchedStaticRoute && matchedStaticRoute.length > 0;\n\n // Combine custom params for all static routes, with the furthest config taking precedence.\n if (isStaticRoute) {\n mergeStaticRoutes(matchedStaticRoute);\n }\n\n const staticRoute: MatchedRoute<string, StaticRoute> | undefined =\n isStaticRoute ? matchedStaticRoute.pop() || undefined : undefined;\n\n const routeRequiresLogin = staticRoute\n ? staticRoute.route.requireLogin\n : undefined;\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.pathname === staticRoute.pathnameBase) {\n const { route, pathname, params } = staticRoute;\n\n if (route.path?.includes('*')) {\n // Send the whole url to api if we have matched route containing wildcard\n serverPath = pathname;\n } else if (typeof route.fetchNodeLevel === 'number') {\n // Send all url parts to a specified level to api\n serverPath = pathname\n .split('/')\n .splice(0, route.fetchNodeLevel + 1)\n .join('/');\n } else if (\n typeof route.fetchNode === 'object' &&\n route.fetchNode?.params\n ) {\n const fetchNodeParams: string[] = route.fetchNode.params;\n const routeParams = params;\n\n const regexExp = new RegExp(\n Object.keys(routeParams)\n .map(p => `:${p}`)\n .join('|'),\n 'g'\n );\n\n serverPath = pathname\n .replace(/\\?/g, '')\n .replace(regexExp, matched => {\n const param = matched.replace(':', '');\n if (fetchNodeParams.includes(param))\n return routeParams[param] || '';\n else return '';\n })\n .replace(/\\/$/, '');\n } else {\n // Send all non-parameterised url parts to api\n serverPath = (route.fullPath 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 <Redirect\n code={trailingSlashRedirectCode || 302}\n to={`${trimmedPath}${location.search}${location.hash}`}\n />\n );\n }\n\n // Render any Static Routes a developer has defined\n if (isStaticRoute && !(!isLoggedIn && routeRequiresLogin)) {\n if (matchUserGroup(userGroups, routeRequiresLogin))\n return <StaticRouteLoader staticRoutes={staticRoutes} />;\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 connect(\n mapStateToPropsMemoized,\n mapDispatchToProps\n)(toJS(RouteLoader as any)) as unknown as (\n props: AppRootProps & RouteLoaderProps\n) => JSX.Element;\n"],"names":["HttpContext","createContext","useHttpContext","useContext","mergeStaticRoutes","matchedStaticRoute","finalRoute","i","route","entries","staticRouteCopy","length","fullPath","path","children","index","component","element","endsWith","Redirect","code","to","httpContext","statusCode","url","React","createElement","Navigate","Status","Fragment","NotFound","statusText","style","background","color","fontSize","padding","StaticRouteLoader","staticRoutes","staticRouteElement","useRoutes","replaceDoubleSlashRecursive","nextPath","replace","match","getTrimmedPath","lastChar","substring","processStaticRoutes","componentProps","projectId","contentTypeId","entry","mappedEntry","isLoggedIn","map","x","undefined","cloneElement","RouteLoader","isError","isLoading","isNotFound","loadingComponent","notFoundComponent","routes","setNavigationPath","statePath","userGroups","withEvents","trailingSlashRedirectCode","location","useLocation","ssrContext","useSSRContext","trimmedPath","pathname","StaticRoutes","matchRoutes","isStaticRoute","staticRoute","pop","routeRequiresLogin","requireLogin","setPath","useCallback","serverPath","pathnameBase","_route$path","_route$fetchNode","params","includes","fetchNodeLevel","split","splice","join","fetchNode","fetchNodeParams","routeParams","regexExp","RegExp","Object","keys","p","matched","param","_route$fullPath","filter","startsWith","window","useEffect","search","hash","matchUserGroup","LoadingComponent","MatchedComponent","ContentTypeMappings","find","item","contentTypeID","NotFoundComponent","console","info","mapStateToPropsMemoized","createSelector","selectRouteEntryContentTypeId","selectRouteEntry","selectRouteIsError","selectIsNotFound","selectRouteLoading","selectUserIsAuthenticated","selectMappedEntry","selectCurrentProject","selectCurrentPath","selectRouteStatusCode","selectRouteErrorMessage","selectUserGroups","mapDispatchToProps","connect","toJS"],"mappings":"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"}