@blaze-cms/nextjs-tools 0.124.0-alpha.31 → 0.124.0-alpha.34
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 +24 -0
- package/lib/helpers/check-url.js +2 -2
- package/lib/helpers/check-url.js.map +1 -1
- package/lib-es/helpers/check-url.js +1 -1
- package/lib-es/helpers/check-url.js.map +1 -1
- package/package.json +6 -6
- package/src/helpers/check-url.js +1 -1
- package/tests/unit/src/helpers/check-url.test.js +15 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
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.124.0-alpha.34](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.33...v0.124.0-alpha.34) (2022-06-24)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [0.124.0-alpha.33](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.32...v0.124.0-alpha.33) (2022-06-21)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# [0.124.0-alpha.32](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.31...v0.124.0-alpha.32) (2022-06-17)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
6
30
|
# [0.124.0-alpha.31](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.30...v0.124.0-alpha.31) (2022-06-13)
|
|
7
31
|
|
|
8
32
|
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
package/lib/helpers/check-url.js
CHANGED
|
@@ -223,7 +223,7 @@ var getFullUrl = function getFullUrl(req, asPath) {
|
|
|
223
223
|
|
|
224
224
|
var doUrlCheck = /*#__PURE__*/function () {
|
|
225
225
|
var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(_ref4) {
|
|
226
|
-
var url, apolloClient, res, handle404Error, blazeApp, _yield$apolloClient$q, _yield$apolloClient$q2, itemId, itemEntity, urlTo, _yield$apolloClient$q3, pageData,
|
|
226
|
+
var url, apolloClient, res, handle404Error, blazeApp, _yield$apolloClient$q, _yield$apolloClient$q2, itemId, itemEntity, urlTo, _yield$apolloClient$q3, pageData, _ref6, _ref6$cacheControlMax, cacheControlMaxAge, rootSelectorClasses, parentPATH;
|
|
227
227
|
|
|
228
228
|
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
229
229
|
while (1) {
|
|
@@ -247,7 +247,7 @@ var doUrlCheck = /*#__PURE__*/function () {
|
|
|
247
247
|
urlTo = _yield$apolloClient$q2.urlTo;
|
|
248
248
|
_yield$apolloClient$q3 = _yield$apolloClient$q2.pageData;
|
|
249
249
|
pageData = _yield$apolloClient$q3 === void 0 ? {} : _yield$apolloClient$q3;
|
|
250
|
-
|
|
250
|
+
_ref6 = pageData || {}, _ref6$cacheControlMax = _ref6.cacheControlMaxAge, cacheControlMaxAge = _ref6$cacheControlMax === void 0 ? null : _ref6$cacheControlMax; // pageData can be null when there is no page
|
|
251
251
|
|
|
252
252
|
if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {
|
|
253
253
|
res.setHeader('Cache-Control', "max-age=".concat(cacheControlMaxAge));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-url.js","names":["getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","hasAuth","req","getAccessToken","headers","cookie","checkUrl","props","asPath","apolloClient","res","query","blazeApp","fullUrl","getFullUrl","parseUrl","url","BLAZE_STATUS_URL","isStatusPage","handler","handleStaticRoutes","getHandler","setHeader","BLAZE_CACHE_CONTROL_HEADER","previewData","checkPreviewUrl","disableSsr","checkAccessToken","getPreviewData","urlCheckOptions","doUrlCheck","handle404Error","result","getPageData","pageData","rootSelectorClasses","getRootSelectorClasses","isPreview","getHost","BLAZE_FRONTEND_HOST","host","HTTPS","window","location","protocol","hostname","port","urlPort","COLON","DOUBLE_SLASH","checkUrlQuery","variables","data","itemId","itemEntity","urlTo","cacheControlMaxAge","writeHead","Location","end","href","getUnpublishedEntityName","parentPATH","checkParent","handleError","err","events","emit","error","networkError","write","graphQLErrors","length","statusCode","NOT_FOUND_STATUS_CODE","errorCode"],"sources":["../../src/helpers/check-url.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { getAccessToken, checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport { HTTPS, DOUBLE_SLASH, COLON, NOT_FOUND_STATUS_CODE } 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 hasAuth = req => {\n if (!req) return false;\n return !!getAccessToken(req.headers.cookie);\n};\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp } = 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 res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && hasAuth(req)) return { disableSsr: true };\n\n await checkAccessToken(apolloClient);\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 ({ 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;\n if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {\n res.setHeader('Cache-Control', `max-age=${cacheControlMaxAge}`);\n }\n\n if (urlTo && urlTo !== url) {\n if (res) {\n res.writeHead(301, { Location: urlTo });\n res.end();\n } else {\n window.location.href = urlTo;\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":["getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","hasAuth","req","getAccessToken","headers","cookie","checkUrl","props","asPath","apolloClient","res","query","blazeApp","fullUrl","getFullUrl","parseUrl","url","BLAZE_STATUS_URL","isStatusPage","handler","handleStaticRoutes","getHandler","setHeader","BLAZE_CACHE_CONTROL_HEADER","previewData","checkPreviewUrl","disableSsr","checkAccessToken","getPreviewData","urlCheckOptions","doUrlCheck","handle404Error","result","getPageData","pageData","rootSelectorClasses","getRootSelectorClasses","isPreview","getHost","BLAZE_FRONTEND_HOST","host","HTTPS","window","location","protocol","hostname","port","urlPort","COLON","DOUBLE_SLASH","checkUrlQuery","variables","data","itemId","itemEntity","urlTo","cacheControlMaxAge","writeHead","Location","end","href","getUnpublishedEntityName","parentPATH","checkParent","handleError","err","events","emit","error","networkError","write","graphQLErrors","length","statusCode","NOT_FOUND_STATUS_CODE","errorCode"],"sources":["../../src/helpers/check-url.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { getAccessToken, checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport { HTTPS, DOUBLE_SLASH, COLON, NOT_FOUND_STATUS_CODE } 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 hasAuth = req => {\n if (!req) return false;\n return !!getAccessToken(req.headers.cookie);\n};\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp } = 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 res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && hasAuth(req)) return { disableSsr: true };\n\n await checkAccessToken(apolloClient);\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 ({ 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 if (res) {\n res.writeHead(301, { Location: urlTo });\n res.end();\n } else {\n window.location.href = urlTo;\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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"}
|
|
@@ -134,7 +134,7 @@ const doUrlCheck = async ({
|
|
|
134
134
|
});
|
|
135
135
|
const {
|
|
136
136
|
cacheControlMaxAge = null
|
|
137
|
-
} = pageData;
|
|
137
|
+
} = pageData || {}; // pageData can be null when there is no page
|
|
138
138
|
|
|
139
139
|
if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {
|
|
140
140
|
res.setHeader('Cache-Control', `max-age=${cacheControlMaxAge}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-url.js","names":["parseUrl","getUnpublishedEntityName","getAccessToken","checkAccessToken","HTTPS","DOUBLE_SLASH","COLON","NOT_FOUND_STATUS_CODE","checkUrlQuery","checkParent","checkPreviewUrl","handleStaticRoutes","getPageData","getRootSelectorClasses","getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","hasAuth","req","headers","cookie","checkUrl","props","asPath","apolloClient","res","query","blazeApp","fullUrl","getFullUrl","url","BLAZE_STATUS_URL","isStatusPage","handler","getHandler","setHeader","BLAZE_CACHE_CONTROL_HEADER","previewData","disableSsr","getPreviewData","urlCheckOptions","result","doUrlCheck","handle404Error","pageData","rootSelectorClasses","isPreview","getHost","BLAZE_FRONTEND_HOST","host","location","protocol","hostname","port","window","urlPort","data","itemId","itemEntity","urlTo","variables","cacheControlMaxAge","writeHead","Location","end","href","err","parentPATH","handleError","events","emit","error","networkError","write","graphQLErrors","length","statusCode","errorCode"],"sources":["../../src/helpers/check-url.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { getAccessToken, checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport { HTTPS, DOUBLE_SLASH, COLON, NOT_FOUND_STATUS_CODE } 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 hasAuth = req => {\n if (!req) return false;\n return !!getAccessToken(req.headers.cookie);\n};\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp } = 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 res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && hasAuth(req)) return { disableSsr: true };\n\n await checkAccessToken(apolloClient);\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 ({ 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;\n if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {\n res.setHeader('Cache-Control', `max-age=${cacheControlMaxAge}`);\n }\n\n if (urlTo && urlTo !== url) {\n if (res) {\n res.writeHead(301, { Location: urlTo });\n res.end();\n } else {\n window.location.href = urlTo;\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","getAccessToken","checkAccessToken","HTTPS","DOUBLE_SLASH","COLON","NOT_FOUND_STATUS_CODE","checkUrlQuery","checkParent","checkPreviewUrl","handleStaticRoutes","getPageData","getRootSelectorClasses","getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","hasAuth","req","headers","cookie","checkUrl","props","asPath","apolloClient","res","query","blazeApp","fullUrl","getFullUrl","url","BLAZE_STATUS_URL","isStatusPage","handler","getHandler","setHeader","BLAZE_CACHE_CONTROL_HEADER","previewData","disableSsr","getPreviewData","urlCheckOptions","result","doUrlCheck","handle404Error","pageData","rootSelectorClasses","isPreview","getHost","BLAZE_FRONTEND_HOST","host","location","protocol","hostname","port","window","urlPort","data","itemId","itemEntity","urlTo","variables","cacheControlMaxAge","writeHead","Location","end","href","err","parentPATH","handleError","events","emit","error","networkError","write","graphQLErrors","length","statusCode","errorCode"],"sources":["../../src/helpers/check-url.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { getAccessToken, checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport { HTTPS, DOUBLE_SLASH, COLON, NOT_FOUND_STATUS_CODE } 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 hasAuth = req => {\n if (!req) return false;\n return !!getAccessToken(req.headers.cookie);\n};\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp } = 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 res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && hasAuth(req)) return { disableSsr: true };\n\n await checkAccessToken(apolloClient);\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 ({ 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 if (res) {\n res.writeHead(301, { Location: urlTo });\n res.end();\n } else {\n window.location.href = urlTo;\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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/nextjs-tools",
|
|
3
|
-
"version": "0.124.0-alpha.
|
|
3
|
+
"version": "0.124.0-alpha.34",
|
|
4
4
|
"description": "Blaze nextjs tools",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
"@blaze-cms/core-ui": "^0.121.0",
|
|
35
35
|
"@blaze-cms/nextjs-components": "^0.124.0-alpha.30",
|
|
36
36
|
"@blaze-cms/plugin-auth-fe": "^0.121.0",
|
|
37
|
-
"@blaze-cms/plugin-google-maps-fe": "^0.124.0-alpha.
|
|
38
|
-
"@blaze-cms/plugin-gtm-fe": "^0.124.0-alpha.
|
|
39
|
-
"@blaze-cms/plugin-page-builder-fe": "^0.124.0-alpha.
|
|
37
|
+
"@blaze-cms/plugin-google-maps-fe": "^0.124.0-alpha.34",
|
|
38
|
+
"@blaze-cms/plugin-gtm-fe": "^0.124.0-alpha.34",
|
|
39
|
+
"@blaze-cms/plugin-page-builder-fe": "^0.124.0-alpha.34",
|
|
40
40
|
"@blaze-cms/plugin-preview-fe": "^0.121.0",
|
|
41
41
|
"@blaze-cms/plugin-search-ui": "^0.124.0-alpha.21",
|
|
42
|
-
"@blaze-cms/react-page-builder": "^0.124.0-alpha.
|
|
42
|
+
"@blaze-cms/react-page-builder": "^0.124.0-alpha.34",
|
|
43
43
|
"@blaze-cms/setup-ui": "^0.92.0",
|
|
44
44
|
"autoprefixer": "^10.2.3",
|
|
45
45
|
"core-js": "^3.2.1",
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"lib/*",
|
|
68
68
|
"lib-es/*"
|
|
69
69
|
],
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "a4f72388709e1c0f77565e5cbce6d8ed8b553d17"
|
|
71
71
|
}
|
package/src/helpers/check-url.js
CHANGED
|
@@ -87,7 +87,7 @@ const doUrlCheck = async ({ url, apolloClient, res, handle404Error, blazeApp })
|
|
|
87
87
|
}
|
|
88
88
|
});
|
|
89
89
|
|
|
90
|
-
const { cacheControlMaxAge = null } = pageData;
|
|
90
|
+
const { cacheControlMaxAge = null } = pageData || {}; // pageData can be null when there is no page
|
|
91
91
|
if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {
|
|
92
92
|
res.setHeader('Cache-Control', `max-age=${cacheControlMaxAge}`);
|
|
93
93
|
}
|
|
@@ -35,6 +35,7 @@ describe('Check url', () => {
|
|
|
35
35
|
const itemId = 'RECORD_ID';
|
|
36
36
|
const unpublishedItemEntity = 'page';
|
|
37
37
|
const itemEntity = `published_${unpublishedItemEntity}`;
|
|
38
|
+
const rootPage = '/';
|
|
38
39
|
const pageData = { pageData: true };
|
|
39
40
|
const apolloClient = {
|
|
40
41
|
query: jest.fn(async () => ({
|
|
@@ -201,7 +202,6 @@ describe('Check url', () => {
|
|
|
201
202
|
err.networkError = {};
|
|
202
203
|
throw err;
|
|
203
204
|
});
|
|
204
|
-
const rootPage = '/';
|
|
205
205
|
await checkUrl({ ...props, asPath: rootPage });
|
|
206
206
|
expect(res.writeHead).toHaveBeenCalledWith(500, { 'Content-Type': 'text/plain' });
|
|
207
207
|
expect(res.write).toHaveBeenCalledWith('500 Internal Server Error\n');
|
|
@@ -234,6 +234,20 @@ describe('Check url', () => {
|
|
|
234
234
|
`max-age=${cacheControlMaxAge}`
|
|
235
235
|
);
|
|
236
236
|
});
|
|
237
|
+
|
|
238
|
+
it('should not redirect to parent if urlTo is set and pageData is null', async () => {
|
|
239
|
+
apolloClient.query.mockImplementationOnce(async () => ({
|
|
240
|
+
data: {
|
|
241
|
+
checkUrl: { urlTo: rootPage, pageData: null }
|
|
242
|
+
}
|
|
243
|
+
}));
|
|
244
|
+
const customProps = {
|
|
245
|
+
...props,
|
|
246
|
+
asPath: '/page1/page2'
|
|
247
|
+
};
|
|
248
|
+
await checkUrl(customProps);
|
|
249
|
+
expect(res.writeHead).toHaveBeenCalledWith(301, { Location: rootPage });
|
|
250
|
+
});
|
|
237
251
|
});
|
|
238
252
|
|
|
239
253
|
function apolloQueryCheck(apolloClient, asPath) {
|