@blaze-cms/nextjs-tools 0.142.0 → 0.142.1-core-styles.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.142.1-core-styles.0](https://github.com/thebyte9/blaze/compare/v0.142.0...v0.142.1-core-styles.0) (2024-06-10)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * handle client side parent redirect. Hide not found message when client side redirect ([#4386](https://github.com/thebyte9/blaze/issues/4386)) ([c61c70f](https://github.com/thebyte9/blaze/commit/c61c70f8328ff604b8dafd0b1f1e4d83d4810106))
12
+
13
+
14
+
15
+
16
+
6
17
  # [0.142.0](https://github.com/thebyte9/blaze/compare/v0.142.0-alpha.2...v0.142.0) (2024-06-03)
7
18
 
8
19
  **Note:** Version bump only for package @blaze-cms/nextjs-tools
@@ -195,15 +195,10 @@ var doUrlCheck = /*#__PURE__*/function () {
195
195
  queryString = asPath.split('?')[1];
196
196
  redirectUrl = queryString ? "".concat(urlTo, "?").concat(queryString) : urlTo;
197
197
  }
198
- if (res) {
199
- res.writeHead(301, {
200
- Location: redirectUrl
201
- });
202
- res.end();
203
- } else {
204
- window.location.href = redirectUrl;
205
- }
206
- return _context3.abrupt("return", {});
198
+ doRedirect(res, redirectUrl);
199
+ return _context3.abrupt("return", {
200
+ redirecting: true
201
+ });
207
202
  case 18:
208
203
  rootSelectorClasses = (0, _getRootSelectorClasses["default"])(url, getRootClassesLimit());
209
204
  return _context3.abrupt("return", {
@@ -216,21 +211,18 @@ var doUrlCheck = /*#__PURE__*/function () {
216
211
  _context3.prev = 22;
217
212
  _context3.t0 = _context3["catch"](1);
218
213
  parentPATH = (0, _checkParent["default"])(url);
219
- if (!(handle404Error && parentPATH && res)) {
220
- _context3.next = 30;
214
+ if (!(handle404Error && parentPATH)) {
215
+ _context3.next = 29;
221
216
  break;
222
217
  }
223
- res.writeHead(301, {
224
- Location: parentPATH
225
- });
226
- res.end();
227
- _context3.next = 31;
218
+ doRedirect(res, parentPATH);
219
+ _context3.next = 30;
228
220
  break;
229
- case 30:
221
+ case 29:
230
222
  return _context3.abrupt("return", handleError(_context3.t0, res, handle404Error, blazeApp));
231
- case 31:
223
+ case 30:
232
224
  return _context3.abrupt("return", handle404Error ? {} : null);
233
- case 32:
225
+ case 31:
234
226
  case "end":
235
227
  return _context3.stop();
236
228
  }
@@ -259,5 +251,15 @@ var handleError = function handleError(err, res, handle404Error, blazeApp) {
259
251
  }
260
252
  return {};
261
253
  };
254
+ function doRedirect(res, redirectUrl) {
255
+ if (res) {
256
+ res.writeHead(301, {
257
+ Location: redirectUrl
258
+ });
259
+ res.end();
260
+ } else {
261
+ window.location.href = redirectUrl;
262
+ }
263
+ }
262
264
  var _default = exports["default"] = checkUrl;
263
265
  //# sourceMappingURL=check-url.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-url.js","names":["_queryString","require","_reactPageBuilder","_coreAuthUi","_constants","_query","_checkParent","_interopRequireDefault","_checkPreviewUrl","_handleStaticRoutes","_getPageData","_getRootSelectorClasses","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","checkUrl","_ref","_asyncToGenerator2","_regenerator","mark","_callee","props","asPath","apolloClient","res","req","query","blazeApp","disableSsr","fullUrl","_parseUrl","url","handler","previewData","urlCheckOptions","result","wrap","_callee$","_context","prev","next","getFullUrl","parseUrl","BLAZE_STATUS_URL","abrupt","isStatusPage","handleStaticRoutes","getHandler","setHeader","BLAZE_X_FRAME_OPTIONS","BLAZE_X_FRAME_OPTIONS_DEFAULT","getHeader","BLAZE_CACHE_CONTROL_HEADER","checkPreviewUrl","checkAccessToken","cache","extract","getPreviewData","doUrlCheck","handle404Error","sent","stop","_x","_ref2","_callee2","_result$pageData","_result$pageData2","rootSelectorClasses","_callee2$","_context2","getPageData","pageData","getRootSelectorClasses","isPreview","_x2","_x3","getHost","_ref3","_ref3$headers","headers","BLAZE_FRONTEND_HOST","host","concat","HTTPS","_window","window","_window$location","location","protocol","hostname","port","urlPort","COLON","DOUBLE_SLASH","_ref5","_callee3","_ref4","_yield$apolloClient$q","_yield$apolloClient$q2","itemId","itemEntity","urlTo","_yield$apolloClient$q3","_ref6","_ref6$cacheControlMax","cacheControlMaxAge","redirectUrl","queryString","parentPATH","_callee3$","_context3","checkUrlQuery","variables","data","BLAZE_DISABLE_REDIRECT_WITH_QUERY","split","writeHead","Location","end","href","getUnpublishedEntityName","t0","checkParent","handleError","_x4","err","events","emit","error","networkError","write","graphQLErrors","statusCode","NOT_FOUND_STATUS_CODE","errorCode","_default","exports"],"sources":["../../src/helpers/check-url.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport {\n HTTPS,\n DOUBLE_SLASH,\n COLON,\n NOT_FOUND_STATUS_CODE,\n BLAZE_X_FRAME_OPTIONS_DEFAULT\n} from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp, disableSsr } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n\n if (res) {\n const handler = handleStaticRoutes.getHandler(asPath);\n\n res.setHeader(\n 'X-Frame-Options',\n process.env.BLAZE_X_FRAME_OPTIONS || BLAZE_X_FRAME_OPTIONS_DEFAULT\n );\n\n if (!res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');\n }\n\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && disableSsr) return { disableSsr: true };\n\n await checkAccessToken(apolloClient, {\n ...props,\n disableSsr: !Object.keys(apolloClient.cache.extract()).length // empty cache means SSR was disabled\n });\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async ({ asPath, url, apolloClient, res, handle404Error, blazeApp }) => {\n try {\n const {\n data: {\n checkUrl: { itemId, itemEntity, urlTo, pageData = {} }\n }\n } = await apolloClient.query({\n query: checkUrlQuery,\n variables: {\n url\n }\n });\n\n const { cacheControlMaxAge = null } = pageData || {}; // pageData can be null when there is no page\n if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {\n res.setHeader('Cache-Control', `max-age=${cacheControlMaxAge}`);\n }\n\n if (urlTo && urlTo !== url) {\n let redirectUrl = urlTo;\n if (process.env.BLAZE_DISABLE_REDIRECT_WITH_QUERY !== 'true') {\n const queryString = asPath.split('?')[1];\n redirectUrl = queryString ? `${urlTo}?${queryString}` : urlTo;\n }\n\n if (res) {\n res.writeHead(301, { Location: redirectUrl });\n res.end();\n } else {\n window.location.href = redirectUrl;\n }\n return {};\n }\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return {\n pageData,\n rootSelectorClasses,\n itemId,\n itemEntity: getUnpublishedEntityName(itemEntity)\n };\n } catch (err) {\n const parentPATH = checkParent(url);\n if (handle404Error && parentPATH && res) {\n res.writeHead(301, { Location: parentPATH });\n res.end();\n } else {\n return handleError(err, res, handle404Error, blazeApp);\n }\n\n return handle404Error ? {} : null;\n }\n};\n\nconst handleError = (err, res, handle404Error, blazeApp) => {\n blazeApp.events.emit('monitor:log', { error: err });\n\n if (!res) return {};\n if (err.networkError) {\n res.writeHead(500, { 'Content-Type': 'text/plain' });\n res.write('500 Internal Server Error\\n');\n res.end();\n } else if (handle404Error && err.graphQLErrors && err.graphQLErrors.length) {\n res.statusCode = NOT_FOUND_STATUS_CODE;\n return { errorCode: NOT_FOUND_STATUS_CODE };\n }\n\n return {};\n};\nexport default checkUrl;\n"],"mappings":"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"}
1
+ {"version":3,"file":"check-url.js","names":["_queryString","require","_reactPageBuilder","_coreAuthUi","_constants","_query","_checkParent","_interopRequireDefault","_checkPreviewUrl","_handleStaticRoutes","_getPageData","_getRootSelectorClasses","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","checkUrl","_ref","_asyncToGenerator2","_regenerator","mark","_callee","props","asPath","apolloClient","res","req","query","blazeApp","disableSsr","fullUrl","_parseUrl","url","handler","previewData","urlCheckOptions","result","wrap","_callee$","_context","prev","next","getFullUrl","parseUrl","BLAZE_STATUS_URL","abrupt","isStatusPage","handleStaticRoutes","getHandler","setHeader","BLAZE_X_FRAME_OPTIONS","BLAZE_X_FRAME_OPTIONS_DEFAULT","getHeader","BLAZE_CACHE_CONTROL_HEADER","checkPreviewUrl","checkAccessToken","cache","extract","getPreviewData","doUrlCheck","handle404Error","sent","stop","_x","_ref2","_callee2","_result$pageData","_result$pageData2","rootSelectorClasses","_callee2$","_context2","getPageData","pageData","getRootSelectorClasses","isPreview","_x2","_x3","getHost","_ref3","_ref3$headers","headers","BLAZE_FRONTEND_HOST","host","concat","HTTPS","_window","window","_window$location","location","protocol","hostname","port","urlPort","COLON","DOUBLE_SLASH","_ref5","_callee3","_ref4","_yield$apolloClient$q","_yield$apolloClient$q2","itemId","itemEntity","urlTo","_yield$apolloClient$q3","_ref6","_ref6$cacheControlMax","cacheControlMaxAge","redirectUrl","queryString","parentPATH","_callee3$","_context3","checkUrlQuery","variables","data","BLAZE_DISABLE_REDIRECT_WITH_QUERY","split","doRedirect","redirecting","getUnpublishedEntityName","t0","checkParent","handleError","_x4","err","events","emit","error","networkError","writeHead","write","end","graphQLErrors","statusCode","NOT_FOUND_STATUS_CODE","errorCode","Location","href","_default","exports"],"sources":["../../src/helpers/check-url.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport {\n HTTPS,\n DOUBLE_SLASH,\n COLON,\n NOT_FOUND_STATUS_CODE,\n BLAZE_X_FRAME_OPTIONS_DEFAULT\n} from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp, disableSsr } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n\n if (res) {\n const handler = handleStaticRoutes.getHandler(asPath);\n\n res.setHeader(\n 'X-Frame-Options',\n process.env.BLAZE_X_FRAME_OPTIONS || BLAZE_X_FRAME_OPTIONS_DEFAULT\n );\n\n if (!res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');\n }\n\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && disableSsr) return { disableSsr: true };\n\n await checkAccessToken(apolloClient, {\n ...props,\n disableSsr: !Object.keys(apolloClient.cache.extract()).length // empty cache means SSR was disabled\n });\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async ({ asPath, url, apolloClient, res, handle404Error, blazeApp }) => {\n try {\n const {\n data: {\n checkUrl: { itemId, itemEntity, urlTo, pageData = {} }\n }\n } = await apolloClient.query({\n query: checkUrlQuery,\n variables: {\n url\n }\n });\n\n const { cacheControlMaxAge = null } = pageData || {}; // pageData can be null when there is no page\n if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {\n res.setHeader('Cache-Control', `max-age=${cacheControlMaxAge}`);\n }\n\n if (urlTo && urlTo !== url) {\n let redirectUrl = urlTo;\n if (process.env.BLAZE_DISABLE_REDIRECT_WITH_QUERY !== 'true') {\n const queryString = asPath.split('?')[1];\n redirectUrl = queryString ? `${urlTo}?${queryString}` : urlTo;\n }\n\n doRedirect(res, redirectUrl);\n return { redirecting: true };\n }\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return {\n pageData,\n rootSelectorClasses,\n itemId,\n itemEntity: getUnpublishedEntityName(itemEntity)\n };\n } catch (err) {\n const parentPATH = checkParent(url);\n if (handle404Error && parentPATH) {\n doRedirect(res, parentPATH);\n } else {\n return handleError(err, res, handle404Error, blazeApp);\n }\n\n return handle404Error ? {} : null;\n }\n};\n\nconst handleError = (err, res, handle404Error, blazeApp) => {\n blazeApp.events.emit('monitor:log', { error: err });\n\n if (!res) return {};\n if (err.networkError) {\n res.writeHead(500, { 'Content-Type': 'text/plain' });\n res.write('500 Internal Server Error\\n');\n res.end();\n } else if (handle404Error && err.graphQLErrors && err.graphQLErrors.length) {\n res.statusCode = NOT_FOUND_STATUS_CODE;\n return { errorCode: NOT_FOUND_STATUS_CODE };\n }\n\n return {};\n};\n\nfunction doRedirect(res, redirectUrl) {\n if (res) {\n res.writeHead(301, { Location: redirectUrl });\n res.end();\n } else {\n window.location.href = redirectUrl;\n }\n}\n\nexport default checkUrl;\n"],"mappings":"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"}
@@ -38,7 +38,9 @@ var Resolver = function Resolver(props) {
38
38
  _props$errorCode = props.errorCode,
39
39
  errorCode = _props$errorCode === void 0 ? _constants.NOT_FOUND_STATUS_CODE : _props$errorCode,
40
40
  _props$errorMessage = props.errorMessage,
41
- errorMessage = _props$errorMessage === void 0 ? null : _props$errorMessage;
41
+ errorMessage = _props$errorMessage === void 0 ? null : _props$errorMessage,
42
+ _props$redirecting = props.redirecting,
43
+ redirecting = _props$redirecting === void 0 ? false : _props$redirecting;
42
44
  var router = (0, _router.useRouter)();
43
45
  if (disableSsr) {
44
46
  if (typeof window !== 'undefined') {
@@ -55,6 +57,7 @@ var Resolver = function Resolver(props) {
55
57
  }
56
58
  return '';
57
59
  }
60
+ if (redirecting) return null;
58
61
  if (isStatusPage) return 'OK';
59
62
  if (!pageData || !itemId || !itemEntity) return /*#__PURE__*/_react["default"].createElement(_error["default"], {
60
63
  statusCode: errorCode,
@@ -99,7 +102,8 @@ Resolver.propTypes = {
99
102
  errorCode: _propTypes["default"].number,
100
103
  disableSsr: _propTypes["default"].bool,
101
104
  errorMessage: _propTypes["default"].string,
102
- rootSelectorClasses: _propTypes["default"].string
105
+ rootSelectorClasses: _propTypes["default"].string,
106
+ redirecting: _propTypes["default"].bool
103
107
  };
104
108
  Resolver.defaultProps = {
105
109
  itemId: null,
@@ -111,7 +115,8 @@ Resolver.defaultProps = {
111
115
  errorCode: _constants.NOT_FOUND_STATUS_CODE,
112
116
  disableSsr: false,
113
117
  errorMessage: null,
114
- rootSelectorClasses: _constants.RESOLVER_CONTAINER_CLASS
118
+ rootSelectorClasses: _constants.RESOLVER_CONTAINER_CLASS,
119
+ redirecting: false
115
120
  };
116
121
  var _default = exports["default"] = Resolver;
117
122
  //# sourceMappingURL=Resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Resolver.js","names":["_react","_interopRequireDefault","require","_error","_router","_propTypes","_components","_helpers","_containers","_constants","Resolver","props","pageData","itemId","itemEntity","isStatusPage","fullUrl","disableSsr","_props$rootSelectorCl","rootSelectorClasses","RESOLVER_CONTAINER_CLASS","_props$isPreview","isPreview","_props$errorCode","errorCode","NOT_FOUND_STATUS_CODE","_props$errorMessage","errorMessage","router","useRouter","window","asPath","location","hash","url","URL","href","searchParams","set","Date","now","push","createElement","statusCode","title","className","ContentContainer","DebugSidebar","getInitialProps","_ref","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","abrupt","checkUrl","stop","_x","apply","arguments","propTypes","PropTypes","string","object","bool","number","defaultProps","_default","exports"],"sources":["../../src/pages/Resolver.js"],"sourcesContent":["import React from 'react';\nimport NextError from 'next/error';\nimport { useRouter } from 'next/router';\nimport PropTypes from 'prop-types';\nimport { DebugSidebar } from '../components';\nimport { checkUrl } from '../helpers';\nimport { ContentContainer } from '../containers';\nimport { NOT_FOUND_STATUS_CODE, RESOLVER_CONTAINER_CLASS } from '../constants';\n\nconst Resolver = props => {\n const {\n pageData,\n itemId,\n itemEntity,\n isStatusPage,\n fullUrl,\n disableSsr,\n rootSelectorClasses = RESOLVER_CONTAINER_CLASS,\n isPreview = false,\n errorCode = NOT_FOUND_STATUS_CODE,\n errorMessage = null\n } = props;\n\n const router = useRouter();\n\n if (disableSsr) {\n if (typeof window !== 'undefined') {\n let { asPath } = router;\n if (window.location.hash) {\n // handle nextjs issue not calling getInitialProps if pushing a url with a hash in it\n // we add a new query string param to force calling getInitialProps\n // this should only happen if disableSsr and window.location.hash\n const url = new URL(router.asPath, window.location.href);\n if (url.hash) url.searchParams.set('_h', Date.now());\n asPath = url;\n }\n router.push('/Resolver', asPath);\n }\n return '';\n }\n\n if (isStatusPage) return 'OK';\n\n if (!pageData || !itemId || !itemEntity)\n return <NextError statusCode={errorCode} title={errorMessage} />;\n\n return (\n <div className={rootSelectorClasses}>\n <ContentContainer\n pageData={pageData}\n itemId={itemId}\n itemEntity={itemEntity}\n isPreview={isPreview}\n fullUrl={fullUrl}\n />\n\n <DebugSidebar itemId={itemId} itemEntity={itemEntity} />\n </div>\n );\n};\n\nResolver.getInitialProps = async props => checkUrl(props);\n\nResolver.propTypes = {\n itemId: PropTypes.string,\n itemEntity: PropTypes.string,\n pageData: PropTypes.object,\n isStatusPage: PropTypes.bool,\n fullUrl: PropTypes.string,\n isPreview: PropTypes.bool,\n errorCode: PropTypes.number,\n disableSsr: PropTypes.bool,\n errorMessage: PropTypes.string,\n rootSelectorClasses: PropTypes.string\n};\n\nResolver.defaultProps = {\n itemId: null,\n itemEntity: null,\n pageData: null,\n isStatusPage: false,\n fullUrl: '',\n isPreview: false,\n errorCode: NOT_FOUND_STATUS_CODE,\n disableSsr: false,\n errorMessage: null,\n rootSelectorClasses: RESOLVER_CONTAINER_CLASS\n};\n\nexport default Resolver;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AAEA,IAAMQ,QAAQ,GAAG,SAAXA,QAAQA,CAAGC,KAAK,EAAI;EACxB,IACEC,QAAQ,GAUND,KAAK,CAVPC,QAAQ;IACRC,MAAM,GASJF,KAAK,CATPE,MAAM;IACNC,UAAU,GAQRH,KAAK,CARPG,UAAU;IACVC,YAAY,GAOVJ,KAAK,CAPPI,YAAY;IACZC,OAAO,GAMLL,KAAK,CANPK,OAAO;IACPC,UAAU,GAKRN,KAAK,CALPM,UAAU;IAAAC,qBAAA,GAKRP,KAAK,CAJPQ,mBAAmB;IAAnBA,mBAAmB,GAAAD,qBAAA,cAAGE,mCAAwB,GAAAF,qBAAA;IAAAG,gBAAA,GAI5CV,KAAK,CAHPW,SAAS;IAATA,SAAS,GAAAD,gBAAA,cAAG,KAAK,GAAAA,gBAAA;IAAAE,gBAAA,GAGfZ,KAAK,CAFPa,SAAS;IAATA,SAAS,GAAAD,gBAAA,cAAGE,gCAAqB,GAAAF,gBAAA;IAAAG,mBAAA,GAE/Bf,KAAK,CADPgB,YAAY;IAAZA,YAAY,GAAAD,mBAAA,cAAG,IAAI,GAAAA,mBAAA;EAGrB,IAAME,MAAM,GAAG,IAAAC,iBAAS,EAAC,CAAC;EAE1B,IAAIZ,UAAU,EAAE;IACd,IAAI,OAAOa,MAAM,KAAK,WAAW,EAAE;MACjC,IAAMC,MAAM,GAAKH,MAAM,CAAjBG,MAAM;MACZ,IAAID,MAAM,CAACE,QAAQ,CAACC,IAAI,EAAE;QACxB;QACA;QACA;QACA,IAAMC,GAAG,GAAG,IAAIC,GAAG,CAACP,MAAM,CAACG,MAAM,EAAED,MAAM,CAACE,QAAQ,CAACI,IAAI,CAAC;QACxD,IAAIF,GAAG,CAACD,IAAI,EAAEC,GAAG,CAACG,YAAY,CAACC,GAAG,CAAC,IAAI,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC;QACpDT,MAAM,GAAGG,GAAG;MACd;MACAN,MAAM,CAACa,IAAI,CAAC,WAAW,EAAEV,MAAM,CAAC;IAClC;IACA,OAAO,EAAE;EACX;EAEA,IAAIhB,YAAY,EAAE,OAAO,IAAI;EAE7B,IAAI,CAACH,QAAQ,IAAI,CAACC,MAAM,IAAI,CAACC,UAAU,EACrC,oBAAOd,MAAA,YAAA0C,aAAA,CAACvC,MAAA,WAAS;IAACwC,UAAU,EAAEnB,SAAU;IAACoB,KAAK,EAAEjB;EAAa,CAAE,CAAC;EAElE,oBACE3B,MAAA,YAAA0C,aAAA;IAAKG,SAAS,EAAE1B;EAAoB,gBAClCnB,MAAA,YAAA0C,aAAA,CAAClC,WAAA,CAAAsC,gBAAgB;IACflC,QAAQ,EAAEA,QAAS;IACnBC,MAAM,EAAEA,MAAO;IACfC,UAAU,EAAEA,UAAW;IACvBQ,SAAS,EAAEA,SAAU;IACrBN,OAAO,EAAEA;EAAQ,CAClB,CAAC,eAEFhB,MAAA,YAAA0C,aAAA,CAACpC,WAAA,CAAAyC,YAAY;IAAClC,MAAM,EAAEA,MAAO;IAACC,UAAU,EAAEA;EAAW,CAAE,CACpD,CAAC;AAEV,CAAC;AAEDJ,QAAQ,CAACsC,eAAe;EAAA,IAAAC,IAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAC,QAAM1C,KAAK;IAAA,OAAAwC,YAAA,YAAAG,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAA,OAAAF,QAAA,CAAAG,MAAA,WAAI,IAAAC,iBAAQ,EAACjD,KAAK,CAAC;QAAA;QAAA;UAAA,OAAA6C,QAAA,CAAAK,IAAA;MAAA;IAAA,GAAAR,OAAA;EAAA;EAAA,iBAAAS,EAAA;IAAA,OAAAb,IAAA,CAAAc,KAAA,OAAAC,SAAA;EAAA;AAAA;AAEzDtD,QAAQ,CAACuD,SAAS,GAAG;EACnBpD,MAAM,EAAEqD,qBAAS,CAACC,MAAM;EACxBrD,UAAU,EAAEoD,qBAAS,CAACC,MAAM;EAC5BvD,QAAQ,EAAEsD,qBAAS,CAACE,MAAM;EAC1BrD,YAAY,EAAEmD,qBAAS,CAACG,IAAI;EAC5BrD,OAAO,EAAEkD,qBAAS,CAACC,MAAM;EACzB7C,SAAS,EAAE4C,qBAAS,CAACG,IAAI;EACzB7C,SAAS,EAAE0C,qBAAS,CAACI,MAAM;EAC3BrD,UAAU,EAAEiD,qBAAS,CAACG,IAAI;EAC1B1C,YAAY,EAAEuC,qBAAS,CAACC,MAAM;EAC9BhD,mBAAmB,EAAE+C,qBAAS,CAACC;AACjC,CAAC;AAEDzD,QAAQ,CAAC6D,YAAY,GAAG;EACtB1D,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,IAAI;EAChBF,QAAQ,EAAE,IAAI;EACdG,YAAY,EAAE,KAAK;EACnBC,OAAO,EAAE,EAAE;EACXM,SAAS,EAAE,KAAK;EAChBE,SAAS,EAAEC,gCAAqB;EAChCR,UAAU,EAAE,KAAK;EACjBU,YAAY,EAAE,IAAI;EAClBR,mBAAmB,EAAEC;AACvB,CAAC;AAAC,IAAAoD,QAAA,GAAAC,OAAA,cAEa/D,QAAQ"}
1
+ {"version":3,"file":"Resolver.js","names":["_react","_interopRequireDefault","require","_error","_router","_propTypes","_components","_helpers","_containers","_constants","Resolver","props","pageData","itemId","itemEntity","isStatusPage","fullUrl","disableSsr","_props$rootSelectorCl","rootSelectorClasses","RESOLVER_CONTAINER_CLASS","_props$isPreview","isPreview","_props$errorCode","errorCode","NOT_FOUND_STATUS_CODE","_props$errorMessage","errorMessage","_props$redirecting","redirecting","router","useRouter","window","asPath","location","hash","url","URL","href","searchParams","set","Date","now","push","createElement","statusCode","title","className","ContentContainer","DebugSidebar","getInitialProps","_ref","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","abrupt","checkUrl","stop","_x","apply","arguments","propTypes","PropTypes","string","object","bool","number","defaultProps","_default","exports"],"sources":["../../src/pages/Resolver.js"],"sourcesContent":["import React from 'react';\nimport NextError from 'next/error';\nimport { useRouter } from 'next/router';\nimport PropTypes from 'prop-types';\nimport { DebugSidebar } from '../components';\nimport { checkUrl } from '../helpers';\nimport { ContentContainer } from '../containers';\nimport { NOT_FOUND_STATUS_CODE, RESOLVER_CONTAINER_CLASS } from '../constants';\n\nconst Resolver = props => {\n const {\n pageData,\n itemId,\n itemEntity,\n isStatusPage,\n fullUrl,\n disableSsr,\n rootSelectorClasses = RESOLVER_CONTAINER_CLASS,\n isPreview = false,\n errorCode = NOT_FOUND_STATUS_CODE,\n errorMessage = null,\n redirecting = false\n } = props;\n\n const router = useRouter();\n\n if (disableSsr) {\n if (typeof window !== 'undefined') {\n let { asPath } = router;\n if (window.location.hash) {\n // handle nextjs issue not calling getInitialProps if pushing a url with a hash in it\n // we add a new query string param to force calling getInitialProps\n // this should only happen if disableSsr and window.location.hash\n const url = new URL(router.asPath, window.location.href);\n if (url.hash) url.searchParams.set('_h', Date.now());\n asPath = url;\n }\n router.push('/Resolver', asPath);\n }\n return '';\n }\n\n if (redirecting) return null;\n\n if (isStatusPage) return 'OK';\n\n if (!pageData || !itemId || !itemEntity)\n return <NextError statusCode={errorCode} title={errorMessage} />;\n\n return (\n <div className={rootSelectorClasses}>\n <ContentContainer\n pageData={pageData}\n itemId={itemId}\n itemEntity={itemEntity}\n isPreview={isPreview}\n fullUrl={fullUrl}\n />\n\n <DebugSidebar itemId={itemId} itemEntity={itemEntity} />\n </div>\n );\n};\n\nResolver.getInitialProps = async props => checkUrl(props);\n\nResolver.propTypes = {\n itemId: PropTypes.string,\n itemEntity: PropTypes.string,\n pageData: PropTypes.object,\n isStatusPage: PropTypes.bool,\n fullUrl: PropTypes.string,\n isPreview: PropTypes.bool,\n errorCode: PropTypes.number,\n disableSsr: PropTypes.bool,\n errorMessage: PropTypes.string,\n rootSelectorClasses: PropTypes.string,\n redirecting: PropTypes.bool\n};\n\nResolver.defaultProps = {\n itemId: null,\n itemEntity: null,\n pageData: null,\n isStatusPage: false,\n fullUrl: '',\n isPreview: false,\n errorCode: NOT_FOUND_STATUS_CODE,\n disableSsr: false,\n errorMessage: null,\n rootSelectorClasses: RESOLVER_CONTAINER_CLASS,\n redirecting: false\n};\n\nexport default Resolver;\n"],"mappings":"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"}
@@ -132,15 +132,10 @@ const doUrlCheck = async ({
132
132
  const queryString = asPath.split('?')[1];
133
133
  redirectUrl = queryString ? `${urlTo}?${queryString}` : urlTo;
134
134
  }
135
- if (res) {
136
- res.writeHead(301, {
137
- Location: redirectUrl
138
- });
139
- res.end();
140
- } else {
141
- window.location.href = redirectUrl;
142
- }
143
- return {};
135
+ doRedirect(res, redirectUrl);
136
+ return {
137
+ redirecting: true
138
+ };
144
139
  }
145
140
  const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());
146
141
  return {
@@ -151,11 +146,8 @@ const doUrlCheck = async ({
151
146
  };
152
147
  } catch (err) {
153
148
  const parentPATH = checkParent(url);
154
- if (handle404Error && parentPATH && res) {
155
- res.writeHead(301, {
156
- Location: parentPATH
157
- });
158
- res.end();
149
+ if (handle404Error && parentPATH) {
150
+ doRedirect(res, parentPATH);
159
151
  } else {
160
152
  return handleError(err, res, handle404Error, blazeApp);
161
153
  }
@@ -181,5 +173,15 @@ const handleError = (err, res, handle404Error, blazeApp) => {
181
173
  }
182
174
  return {};
183
175
  };
176
+ function doRedirect(res, redirectUrl) {
177
+ if (res) {
178
+ res.writeHead(301, {
179
+ Location: redirectUrl
180
+ });
181
+ res.end();
182
+ } else {
183
+ window.location.href = redirectUrl;
184
+ }
185
+ }
184
186
  export default checkUrl;
185
187
  //# sourceMappingURL=check-url.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-url.js","names":["parseUrl","getUnpublishedEntityName","checkAccessToken","HTTPS","DOUBLE_SLASH","COLON","NOT_FOUND_STATUS_CODE","BLAZE_X_FRAME_OPTIONS_DEFAULT","checkUrlQuery","checkParent","checkPreviewUrl","handleStaticRoutes","getPageData","getRootSelectorClasses","getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","checkUrl","props","asPath","apolloClient","res","req","query","blazeApp","disableSsr","fullUrl","getFullUrl","url","BLAZE_STATUS_URL","isStatusPage","handler","getHandler","setHeader","BLAZE_X_FRAME_OPTIONS","getHeader","BLAZE_CACHE_CONTROL_HEADER","previewData","_objectSpread","Object","keys","cache","extract","length","getPreviewData","urlCheckOptions","result","doUrlCheck","handle404Error","pageData","rootSelectorClasses","isPreview","getHost","headers","BLAZE_FRONTEND_HOST","host","location","protocol","hostname","port","window","urlPort","data","itemId","itemEntity","urlTo","variables","cacheControlMaxAge","redirectUrl","BLAZE_DISABLE_REDIRECT_WITH_QUERY","queryString","split","writeHead","Location","end","href","err","parentPATH","handleError","events","emit","error","networkError","write","graphQLErrors","statusCode","errorCode"],"sources":["../../src/helpers/check-url.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport {\n HTTPS,\n DOUBLE_SLASH,\n COLON,\n NOT_FOUND_STATUS_CODE,\n BLAZE_X_FRAME_OPTIONS_DEFAULT\n} from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp, disableSsr } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n\n if (res) {\n const handler = handleStaticRoutes.getHandler(asPath);\n\n res.setHeader(\n 'X-Frame-Options',\n process.env.BLAZE_X_FRAME_OPTIONS || BLAZE_X_FRAME_OPTIONS_DEFAULT\n );\n\n if (!res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');\n }\n\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && disableSsr) return { disableSsr: true };\n\n await checkAccessToken(apolloClient, {\n ...props,\n disableSsr: !Object.keys(apolloClient.cache.extract()).length // empty cache means SSR was disabled\n });\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async ({ asPath, url, apolloClient, res, handle404Error, blazeApp }) => {\n try {\n const {\n data: {\n checkUrl: { itemId, itemEntity, urlTo, pageData = {} }\n }\n } = await apolloClient.query({\n query: checkUrlQuery,\n variables: {\n url\n }\n });\n\n const { cacheControlMaxAge = null } = pageData || {}; // pageData can be null when there is no page\n if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {\n res.setHeader('Cache-Control', `max-age=${cacheControlMaxAge}`);\n }\n\n if (urlTo && urlTo !== url) {\n let redirectUrl = urlTo;\n if (process.env.BLAZE_DISABLE_REDIRECT_WITH_QUERY !== 'true') {\n const queryString = asPath.split('?')[1];\n redirectUrl = queryString ? `${urlTo}?${queryString}` : urlTo;\n }\n\n if (res) {\n res.writeHead(301, { Location: redirectUrl });\n res.end();\n } else {\n window.location.href = redirectUrl;\n }\n return {};\n }\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return {\n pageData,\n rootSelectorClasses,\n itemId,\n itemEntity: getUnpublishedEntityName(itemEntity)\n };\n } catch (err) {\n const parentPATH = checkParent(url);\n if (handle404Error && parentPATH && res) {\n res.writeHead(301, { Location: parentPATH });\n res.end();\n } else {\n return handleError(err, res, handle404Error, blazeApp);\n }\n\n return handle404Error ? {} : null;\n }\n};\n\nconst handleError = (err, res, handle404Error, blazeApp) => {\n blazeApp.events.emit('monitor:log', { error: err });\n\n if (!res) return {};\n if (err.networkError) {\n res.writeHead(500, { 'Content-Type': 'text/plain' });\n res.write('500 Internal Server Error\\n');\n res.end();\n } else if (handle404Error && err.graphQLErrors && err.graphQLErrors.length) {\n res.statusCode = NOT_FOUND_STATUS_CODE;\n return { errorCode: NOT_FOUND_STATUS_CODE };\n }\n\n return {};\n};\nexport default checkUrl;\n"],"mappings":"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"}
1
+ {"version":3,"file":"check-url.js","names":["parseUrl","getUnpublishedEntityName","checkAccessToken","HTTPS","DOUBLE_SLASH","COLON","NOT_FOUND_STATUS_CODE","BLAZE_X_FRAME_OPTIONS_DEFAULT","checkUrlQuery","checkParent","checkPreviewUrl","handleStaticRoutes","getPageData","getRootSelectorClasses","getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","checkUrl","props","asPath","apolloClient","res","req","query","blazeApp","disableSsr","fullUrl","getFullUrl","url","BLAZE_STATUS_URL","isStatusPage","handler","getHandler","setHeader","BLAZE_X_FRAME_OPTIONS","getHeader","BLAZE_CACHE_CONTROL_HEADER","previewData","_objectSpread","Object","keys","cache","extract","length","getPreviewData","urlCheckOptions","result","doUrlCheck","handle404Error","pageData","rootSelectorClasses","isPreview","getHost","headers","BLAZE_FRONTEND_HOST","host","location","protocol","hostname","port","window","urlPort","data","itemId","itemEntity","urlTo","variables","cacheControlMaxAge","redirectUrl","BLAZE_DISABLE_REDIRECT_WITH_QUERY","queryString","split","doRedirect","redirecting","err","parentPATH","handleError","events","emit","error","networkError","writeHead","write","end","graphQLErrors","statusCode","errorCode","Location","href"],"sources":["../../src/helpers/check-url.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport {\n HTTPS,\n DOUBLE_SLASH,\n COLON,\n NOT_FOUND_STATUS_CODE,\n BLAZE_X_FRAME_OPTIONS_DEFAULT\n} from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp, disableSsr } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n\n if (res) {\n const handler = handleStaticRoutes.getHandler(asPath);\n\n res.setHeader(\n 'X-Frame-Options',\n process.env.BLAZE_X_FRAME_OPTIONS || BLAZE_X_FRAME_OPTIONS_DEFAULT\n );\n\n if (!res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');\n }\n\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && disableSsr) return { disableSsr: true };\n\n await checkAccessToken(apolloClient, {\n ...props,\n disableSsr: !Object.keys(apolloClient.cache.extract()).length // empty cache means SSR was disabled\n });\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async ({ asPath, url, apolloClient, res, handle404Error, blazeApp }) => {\n try {\n const {\n data: {\n checkUrl: { itemId, itemEntity, urlTo, pageData = {} }\n }\n } = await apolloClient.query({\n query: checkUrlQuery,\n variables: {\n url\n }\n });\n\n const { cacheControlMaxAge = null } = pageData || {}; // pageData can be null when there is no page\n if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {\n res.setHeader('Cache-Control', `max-age=${cacheControlMaxAge}`);\n }\n\n if (urlTo && urlTo !== url) {\n let redirectUrl = urlTo;\n if (process.env.BLAZE_DISABLE_REDIRECT_WITH_QUERY !== 'true') {\n const queryString = asPath.split('?')[1];\n redirectUrl = queryString ? `${urlTo}?${queryString}` : urlTo;\n }\n\n doRedirect(res, redirectUrl);\n return { redirecting: true };\n }\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return {\n pageData,\n rootSelectorClasses,\n itemId,\n itemEntity: getUnpublishedEntityName(itemEntity)\n };\n } catch (err) {\n const parentPATH = checkParent(url);\n if (handle404Error && parentPATH) {\n doRedirect(res, parentPATH);\n } else {\n return handleError(err, res, handle404Error, blazeApp);\n }\n\n return handle404Error ? {} : null;\n }\n};\n\nconst handleError = (err, res, handle404Error, blazeApp) => {\n blazeApp.events.emit('monitor:log', { error: err });\n\n if (!res) return {};\n if (err.networkError) {\n res.writeHead(500, { 'Content-Type': 'text/plain' });\n res.write('500 Internal Server Error\\n');\n res.end();\n } else if (handle404Error && err.graphQLErrors && err.graphQLErrors.length) {\n res.statusCode = NOT_FOUND_STATUS_CODE;\n return { errorCode: NOT_FOUND_STATUS_CODE };\n }\n\n return {};\n};\n\nfunction doRedirect(res, redirectUrl) {\n if (res) {\n res.writeHead(301, { Location: redirectUrl });\n res.end();\n } else {\n window.location.href = redirectUrl;\n }\n}\n\nexport default checkUrl;\n"],"mappings":"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"}
@@ -17,7 +17,8 @@ const Resolver = props => {
17
17
  rootSelectorClasses = RESOLVER_CONTAINER_CLASS,
18
18
  isPreview = false,
19
19
  errorCode = NOT_FOUND_STATUS_CODE,
20
- errorMessage = null
20
+ errorMessage = null,
21
+ redirecting = false
21
22
  } = props;
22
23
  const router = useRouter();
23
24
  if (disableSsr) {
@@ -37,6 +38,7 @@ const Resolver = props => {
37
38
  }
38
39
  return '';
39
40
  }
41
+ if (redirecting) return null;
40
42
  if (isStatusPage) return 'OK';
41
43
  if (!pageData || !itemId || !itemEntity) return /*#__PURE__*/React.createElement(NextError, {
42
44
  statusCode: errorCode,
@@ -66,7 +68,8 @@ Resolver.propTypes = {
66
68
  errorCode: PropTypes.number,
67
69
  disableSsr: PropTypes.bool,
68
70
  errorMessage: PropTypes.string,
69
- rootSelectorClasses: PropTypes.string
71
+ rootSelectorClasses: PropTypes.string,
72
+ redirecting: PropTypes.bool
70
73
  };
71
74
  Resolver.defaultProps = {
72
75
  itemId: null,
@@ -78,7 +81,8 @@ Resolver.defaultProps = {
78
81
  errorCode: NOT_FOUND_STATUS_CODE,
79
82
  disableSsr: false,
80
83
  errorMessage: null,
81
- rootSelectorClasses: RESOLVER_CONTAINER_CLASS
84
+ rootSelectorClasses: RESOLVER_CONTAINER_CLASS,
85
+ redirecting: false
82
86
  };
83
87
  export default Resolver;
84
88
  //# sourceMappingURL=Resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Resolver.js","names":["React","NextError","useRouter","PropTypes","DebugSidebar","checkUrl","ContentContainer","NOT_FOUND_STATUS_CODE","RESOLVER_CONTAINER_CLASS","Resolver","props","pageData","itemId","itemEntity","isStatusPage","fullUrl","disableSsr","rootSelectorClasses","isPreview","errorCode","errorMessage","router","window","asPath","location","hash","url","URL","href","searchParams","set","Date","now","push","createElement","statusCode","title","className","getInitialProps","propTypes","string","object","bool","number","defaultProps"],"sources":["../../src/pages/Resolver.js"],"sourcesContent":["import React from 'react';\nimport NextError from 'next/error';\nimport { useRouter } from 'next/router';\nimport PropTypes from 'prop-types';\nimport { DebugSidebar } from '../components';\nimport { checkUrl } from '../helpers';\nimport { ContentContainer } from '../containers';\nimport { NOT_FOUND_STATUS_CODE, RESOLVER_CONTAINER_CLASS } from '../constants';\n\nconst Resolver = props => {\n const {\n pageData,\n itemId,\n itemEntity,\n isStatusPage,\n fullUrl,\n disableSsr,\n rootSelectorClasses = RESOLVER_CONTAINER_CLASS,\n isPreview = false,\n errorCode = NOT_FOUND_STATUS_CODE,\n errorMessage = null\n } = props;\n\n const router = useRouter();\n\n if (disableSsr) {\n if (typeof window !== 'undefined') {\n let { asPath } = router;\n if (window.location.hash) {\n // handle nextjs issue not calling getInitialProps if pushing a url with a hash in it\n // we add a new query string param to force calling getInitialProps\n // this should only happen if disableSsr and window.location.hash\n const url = new URL(router.asPath, window.location.href);\n if (url.hash) url.searchParams.set('_h', Date.now());\n asPath = url;\n }\n router.push('/Resolver', asPath);\n }\n return '';\n }\n\n if (isStatusPage) return 'OK';\n\n if (!pageData || !itemId || !itemEntity)\n return <NextError statusCode={errorCode} title={errorMessage} />;\n\n return (\n <div className={rootSelectorClasses}>\n <ContentContainer\n pageData={pageData}\n itemId={itemId}\n itemEntity={itemEntity}\n isPreview={isPreview}\n fullUrl={fullUrl}\n />\n\n <DebugSidebar itemId={itemId} itemEntity={itemEntity} />\n </div>\n );\n};\n\nResolver.getInitialProps = async props => checkUrl(props);\n\nResolver.propTypes = {\n itemId: PropTypes.string,\n itemEntity: PropTypes.string,\n pageData: PropTypes.object,\n isStatusPage: PropTypes.bool,\n fullUrl: PropTypes.string,\n isPreview: PropTypes.bool,\n errorCode: PropTypes.number,\n disableSsr: PropTypes.bool,\n errorMessage: PropTypes.string,\n rootSelectorClasses: PropTypes.string\n};\n\nResolver.defaultProps = {\n itemId: null,\n itemEntity: null,\n pageData: null,\n isStatusPage: false,\n fullUrl: '',\n isPreview: false,\n errorCode: NOT_FOUND_STATUS_CODE,\n disableSsr: false,\n errorMessage: null,\n rootSelectorClasses: RESOLVER_CONTAINER_CLASS\n};\n\nexport default Resolver;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Resolver.js","names":["React","NextError","useRouter","PropTypes","DebugSidebar","checkUrl","ContentContainer","NOT_FOUND_STATUS_CODE","RESOLVER_CONTAINER_CLASS","Resolver","props","pageData","itemId","itemEntity","isStatusPage","fullUrl","disableSsr","rootSelectorClasses","isPreview","errorCode","errorMessage","redirecting","router","window","asPath","location","hash","url","URL","href","searchParams","set","Date","now","push","createElement","statusCode","title","className","getInitialProps","propTypes","string","object","bool","number","defaultProps"],"sources":["../../src/pages/Resolver.js"],"sourcesContent":["import React from 'react';\nimport NextError from 'next/error';\nimport { useRouter } from 'next/router';\nimport PropTypes from 'prop-types';\nimport { DebugSidebar } from '../components';\nimport { checkUrl } from '../helpers';\nimport { ContentContainer } from '../containers';\nimport { NOT_FOUND_STATUS_CODE, RESOLVER_CONTAINER_CLASS } from '../constants';\n\nconst Resolver = props => {\n const {\n pageData,\n itemId,\n itemEntity,\n isStatusPage,\n fullUrl,\n disableSsr,\n rootSelectorClasses = RESOLVER_CONTAINER_CLASS,\n isPreview = false,\n errorCode = NOT_FOUND_STATUS_CODE,\n errorMessage = null,\n redirecting = false\n } = props;\n\n const router = useRouter();\n\n if (disableSsr) {\n if (typeof window !== 'undefined') {\n let { asPath } = router;\n if (window.location.hash) {\n // handle nextjs issue not calling getInitialProps if pushing a url with a hash in it\n // we add a new query string param to force calling getInitialProps\n // this should only happen if disableSsr and window.location.hash\n const url = new URL(router.asPath, window.location.href);\n if (url.hash) url.searchParams.set('_h', Date.now());\n asPath = url;\n }\n router.push('/Resolver', asPath);\n }\n return '';\n }\n\n if (redirecting) return null;\n\n if (isStatusPage) return 'OK';\n\n if (!pageData || !itemId || !itemEntity)\n return <NextError statusCode={errorCode} title={errorMessage} />;\n\n return (\n <div className={rootSelectorClasses}>\n <ContentContainer\n pageData={pageData}\n itemId={itemId}\n itemEntity={itemEntity}\n isPreview={isPreview}\n fullUrl={fullUrl}\n />\n\n <DebugSidebar itemId={itemId} itemEntity={itemEntity} />\n </div>\n );\n};\n\nResolver.getInitialProps = async props => checkUrl(props);\n\nResolver.propTypes = {\n itemId: PropTypes.string,\n itemEntity: PropTypes.string,\n pageData: PropTypes.object,\n isStatusPage: PropTypes.bool,\n fullUrl: PropTypes.string,\n isPreview: PropTypes.bool,\n errorCode: PropTypes.number,\n disableSsr: PropTypes.bool,\n errorMessage: PropTypes.string,\n rootSelectorClasses: PropTypes.string,\n redirecting: PropTypes.bool\n};\n\nResolver.defaultProps = {\n itemId: null,\n itemEntity: null,\n pageData: null,\n isStatusPage: false,\n fullUrl: '',\n isPreview: false,\n errorCode: NOT_FOUND_STATUS_CODE,\n disableSsr: false,\n errorMessage: null,\n rootSelectorClasses: RESOLVER_CONTAINER_CLASS,\n redirecting: false\n};\n\nexport default Resolver;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/nextjs-tools",
3
- "version": "0.142.0",
3
+ "version": "0.142.1-core-styles.0",
4
4
  "description": "Blaze nextjs tools",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -28,21 +28,21 @@
28
28
  "license": "GPL-3.0",
29
29
  "dependencies": {
30
30
  "@apollo/client": "3.5.x",
31
- "@blaze-cms/core-auth-ui": "^0.141.0",
32
- "@blaze-cms/core-errors": "^0.140.3",
33
- "@blaze-cms/core-errors-ui": "^0.140.3",
34
- "@blaze-cms/core-ui": "^0.140.3",
35
- "@blaze-cms/nextjs-components": "^0.141.0",
36
- "@blaze-cms/plugin-auth-fe": "^0.141.0",
37
- "@blaze-cms/plugin-auth-local-fe": "^0.141.0",
38
- "@blaze-cms/plugin-google-maps-fe": "^0.142.0",
39
- "@blaze-cms/plugin-gtm-fe": "^0.142.0",
40
- "@blaze-cms/plugin-page-builder-fe": "^0.142.0",
41
- "@blaze-cms/plugin-preview-fe": "^0.140.3",
42
- "@blaze-cms/plugin-search-ui": "^0.141.0",
43
- "@blaze-cms/plugin-structured-data-fe": "^0.140.3",
44
- "@blaze-cms/react-page-builder": "^0.142.0",
45
- "@blaze-cms/setup-ui": "^0.140.3",
31
+ "@blaze-cms/core-auth-ui": "0.142.1-core-styles.0",
32
+ "@blaze-cms/core-errors": "0.142.1-core-styles.0",
33
+ "@blaze-cms/core-errors-ui": "0.142.1-core-styles.0",
34
+ "@blaze-cms/core-ui": "0.142.1-core-styles.0",
35
+ "@blaze-cms/nextjs-components": "0.142.1-core-styles.0",
36
+ "@blaze-cms/plugin-auth-fe": "0.142.1-core-styles.0",
37
+ "@blaze-cms/plugin-auth-local-fe": "0.142.1-core-styles.0",
38
+ "@blaze-cms/plugin-google-maps-fe": "0.142.1-core-styles.0",
39
+ "@blaze-cms/plugin-gtm-fe": "0.142.1-core-styles.0",
40
+ "@blaze-cms/plugin-page-builder-fe": "0.142.1-core-styles.0",
41
+ "@blaze-cms/plugin-preview-fe": "0.142.1-core-styles.0",
42
+ "@blaze-cms/plugin-search-ui": "0.142.1-core-styles.0",
43
+ "@blaze-cms/plugin-structured-data-fe": "0.142.1-core-styles.0",
44
+ "@blaze-cms/react-page-builder": "0.142.1-core-styles.0",
45
+ "@blaze-cms/setup-ui": "0.142.1-core-styles.0",
46
46
  "autoprefixer": "^10.2.3",
47
47
  "core-js": "^3.2.1",
48
48
  "cross-fetch": "^3.0.2",
@@ -69,5 +69,5 @@
69
69
  "lib/*",
70
70
  "lib-es/*"
71
71
  ],
72
- "gitHead": "89a937a8f1c83e8a9ed387ab0f4b95f4bfe88241"
72
+ "gitHead": "61dd5422e37521c4368192e80ac7a3742abc1d34"
73
73
  }
@@ -112,13 +112,8 @@ const doUrlCheck = async ({ asPath, url, apolloClient, res, handle404Error, blaz
112
112
  redirectUrl = queryString ? `${urlTo}?${queryString}` : urlTo;
113
113
  }
114
114
 
115
- if (res) {
116
- res.writeHead(301, { Location: redirectUrl });
117
- res.end();
118
- } else {
119
- window.location.href = redirectUrl;
120
- }
121
- return {};
115
+ doRedirect(res, redirectUrl);
116
+ return { redirecting: true };
122
117
  }
123
118
  const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());
124
119
  return {
@@ -129,9 +124,8 @@ const doUrlCheck = async ({ asPath, url, apolloClient, res, handle404Error, blaz
129
124
  };
130
125
  } catch (err) {
131
126
  const parentPATH = checkParent(url);
132
- if (handle404Error && parentPATH && res) {
133
- res.writeHead(301, { Location: parentPATH });
134
- res.end();
127
+ if (handle404Error && parentPATH) {
128
+ doRedirect(res, parentPATH);
135
129
  } else {
136
130
  return handleError(err, res, handle404Error, blazeApp);
137
131
  }
@@ -155,4 +149,14 @@ const handleError = (err, res, handle404Error, blazeApp) => {
155
149
 
156
150
  return {};
157
151
  };
152
+
153
+ function doRedirect(res, redirectUrl) {
154
+ if (res) {
155
+ res.writeHead(301, { Location: redirectUrl });
156
+ res.end();
157
+ } else {
158
+ window.location.href = redirectUrl;
159
+ }
160
+ }
161
+
158
162
  export default checkUrl;
@@ -18,7 +18,8 @@ const Resolver = props => {
18
18
  rootSelectorClasses = RESOLVER_CONTAINER_CLASS,
19
19
  isPreview = false,
20
20
  errorCode = NOT_FOUND_STATUS_CODE,
21
- errorMessage = null
21
+ errorMessage = null,
22
+ redirecting = false
22
23
  } = props;
23
24
 
24
25
  const router = useRouter();
@@ -39,6 +40,8 @@ const Resolver = props => {
39
40
  return '';
40
41
  }
41
42
 
43
+ if (redirecting) return null;
44
+
42
45
  if (isStatusPage) return 'OK';
43
46
 
44
47
  if (!pageData || !itemId || !itemEntity)
@@ -71,7 +74,8 @@ Resolver.propTypes = {
71
74
  errorCode: PropTypes.number,
72
75
  disableSsr: PropTypes.bool,
73
76
  errorMessage: PropTypes.string,
74
- rootSelectorClasses: PropTypes.string
77
+ rootSelectorClasses: PropTypes.string,
78
+ redirecting: PropTypes.bool
75
79
  };
76
80
 
77
81
  Resolver.defaultProps = {
@@ -84,7 +88,8 @@ Resolver.defaultProps = {
84
88
  errorCode: NOT_FOUND_STATUS_CODE,
85
89
  disableSsr: false,
86
90
  errorMessage: null,
87
- rootSelectorClasses: RESOLVER_CONTAINER_CLASS
91
+ rootSelectorClasses: RESOLVER_CONTAINER_CLASS,
92
+ redirecting: false
88
93
  };
89
94
 
90
95
  export default Resolver;
@@ -195,9 +195,10 @@ describe('Check url', () => {
195
195
  checkUrl: { urlTo }
196
196
  }
197
197
  }));
198
- await checkUrl(props);
198
+ const result = await checkUrl(props);
199
199
  expect(res.writeHead).toHaveBeenCalledWith(301, { Location: urlTo });
200
200
  expect(res.end).toHaveBeenCalled();
201
+ redirectResultCheck(result);
201
202
  apolloQueryCheck(apolloClient, asPath);
202
203
  });
203
204
 
@@ -207,8 +208,9 @@ describe('Check url', () => {
207
208
  checkUrl: { urlTo }
208
209
  }
209
210
  }));
210
- await checkUrl({ ...props, asPath: asPathWithQuery });
211
+ const result = await checkUrl({ ...props, asPath: asPathWithQuery });
211
212
  expect(res.writeHead).toHaveBeenCalledWith(301, { Location: `${urlTo}${queryString}` });
213
+ redirectResultCheck(result);
212
214
  });
213
215
 
214
216
  it('should not redirect with query string', async () => {
@@ -219,8 +221,9 @@ describe('Check url', () => {
219
221
  }));
220
222
  const customEnvs = { BLAZE_DISABLE_REDIRECT_WITH_QUERY: 'true' };
221
223
  setEnvs(customEnvs);
222
- await checkUrl({ ...props, asPath: asPathWithQuery });
224
+ const result = await checkUrl({ ...props, asPath: asPathWithQuery });
223
225
  expect(res.writeHead).toHaveBeenCalledWith(301, { Location: urlTo });
226
+ redirectResultCheck(result);
224
227
  deleteEnvs(customEnvs);
225
228
  });
226
229
 
@@ -229,9 +232,10 @@ describe('Check url', () => {
229
232
  throw new Error('Not found');
230
233
  });
231
234
  const parentChildAsPath = '/parent/child';
232
- await checkUrl({ ...props, asPath: parentChildAsPath });
235
+ const result = await checkUrl({ ...props, asPath: parentChildAsPath });
233
236
  expect(res.writeHead).toHaveBeenCalledWith(301, { Location: '/parent' });
234
237
  expect(res.end).toHaveBeenCalled();
238
+ redirectResultCheck(result, false);
235
239
  apolloQueryCheck(apolloClient, parentChildAsPath);
236
240
  });
237
241
 
@@ -247,6 +251,7 @@ describe('Check url', () => {
247
251
  expect(res.write).not.toHaveBeenCalled();
248
252
  expect(res.end).not.toHaveBeenCalled();
249
253
  expect(blazeApp.events.emit).toHaveBeenCalled();
254
+ redirectResultCheck(result, false);
250
255
  apolloQueryCheck(apolloClient, asPath);
251
256
  });
252
257
 
@@ -312,3 +317,11 @@ function apolloQueryCheck(apolloClient, asPath) {
312
317
  }
313
318
  });
314
319
  }
320
+
321
+ function redirectResultCheck(result, isSet = true) {
322
+ if (isSet) {
323
+ expect(result).toHaveProperty('redirecting', true);
324
+ } else {
325
+ expect(result).not.toHaveProperty('redirecting');
326
+ }
327
+ }
@@ -60,6 +60,15 @@ describe('Resolver page', () => {
60
60
  expect(asFragment()).toMatchSnapshot();
61
61
  });
62
62
 
63
+ it('should render empty when redirecting', async () => {
64
+ const props = {
65
+ redirecting: true
66
+ };
67
+ const { asFragment, container } = render(<Resolver {...props} />);
68
+ expect(container.firstChild).toBeNull();
69
+ expect(asFragment()).toMatchSnapshot();
70
+ });
71
+
63
72
  it('should disable SSR', async () => {
64
73
  const props = {
65
74
  disableSsr: true
@@ -18,6 +18,8 @@ exports[`Resolver page should render 404 error if pageData, itemId or itemEntity
18
18
  </DocumentFragment>
19
19
  `;
20
20
 
21
+ exports[`Resolver page should render empty when redirecting 1`] = `<DocumentFragment />`;
22
+
21
23
  exports[`Resolver page should render status page 1`] = `
22
24
  <DocumentFragment>
23
25
  OK