@blaze-cms/nextjs-tools 0.124.0-alpha.9 → 0.124.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 +270 -0
- package/lib/application/query/index.js +2 -2
- package/lib/application/query/index.js.map +1 -1
- package/lib/components/DebugSidebar/index.js +3 -3
- package/lib/components/DebugSidebar/index.js.map +1 -1
- package/lib/helpers/check-url.js +20 -14
- package/lib/helpers/check-url.js.map +1 -1
- package/lib-es/application/query/index.js +3 -2
- package/lib-es/application/query/index.js.map +1 -1
- package/lib-es/components/DebugSidebar/index.js +2 -3
- package/lib-es/components/DebugSidebar/index.js.map +1 -1
- package/lib-es/helpers/check-url.js +10 -3
- package/lib-es/helpers/check-url.js.map +1 -1
- package/package.json +8 -8
- package/src/application/query/index.js +3 -2
- package/src/components/DebugSidebar/index.js +4 -1
- package/src/helpers/check-url.js +9 -5
- package/tests/unit/src/application/query/__snapshots__/index.test.js.snap +800 -0
- package/tests/unit/src/application/query/index.test.js +19 -0
- package/tests/unit/src/components/DebugSidebar/__snapshots__/DebugSidebar.test.js.snap +18 -4
- package/tests/unit/src/helpers/check-url.test.js +47 -4
|
@@ -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","setHeader","BLAZE_CACHE_CONTROL_HEADER","handler","getHandler","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","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 if (res) {\n res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');\n const handler = handleStaticRoutes.getHandler(asPath);\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\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\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 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.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
|
|
3
|
+
"version": "0.124.0",
|
|
4
4
|
"description": "Blaze nextjs tools",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -32,14 +32,14 @@
|
|
|
32
32
|
"@blaze-cms/core-errors": "^0.118.0",
|
|
33
33
|
"@blaze-cms/core-errors-ui": "^0.119.0",
|
|
34
34
|
"@blaze-cms/core-ui": "^0.121.0",
|
|
35
|
-
"@blaze-cms/nextjs-components": "^0.124.0
|
|
35
|
+
"@blaze-cms/nextjs-components": "^0.124.0",
|
|
36
36
|
"@blaze-cms/plugin-auth-fe": "^0.121.0",
|
|
37
|
-
"@blaze-cms/plugin-google-maps-fe": "^0.124.0
|
|
38
|
-
"@blaze-cms/plugin-gtm-fe": "^0.124.0
|
|
39
|
-
"@blaze-cms/plugin-page-builder-fe": "^0.124.0
|
|
37
|
+
"@blaze-cms/plugin-google-maps-fe": "^0.124.0",
|
|
38
|
+
"@blaze-cms/plugin-gtm-fe": "^0.124.0",
|
|
39
|
+
"@blaze-cms/plugin-page-builder-fe": "^0.124.0",
|
|
40
40
|
"@blaze-cms/plugin-preview-fe": "^0.121.0",
|
|
41
|
-
"@blaze-cms/plugin-search-ui": "^0.124.0
|
|
42
|
-
"@blaze-cms/react-page-builder": "^0.124.0
|
|
41
|
+
"@blaze-cms/plugin-search-ui": "^0.124.0",
|
|
42
|
+
"@blaze-cms/react-page-builder": "^0.124.0",
|
|
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": "db99e69def55f8ea7fa5e670bee910103b291ca9"
|
|
71
71
|
}
|
|
@@ -21,14 +21,15 @@ image{
|
|
|
21
21
|
}
|
|
22
22
|
formattedMetaTitle
|
|
23
23
|
formattedMetaDescription
|
|
24
|
-
__typename
|
|
24
|
+
__typename
|
|
25
|
+
cacheControlMaxAge`;
|
|
25
26
|
|
|
26
27
|
const checkUrlQuery = gql`
|
|
27
28
|
query checkUrl($url: String!) {
|
|
28
29
|
checkUrl(url: $url) {
|
|
29
30
|
itemId
|
|
30
31
|
itemEntity
|
|
31
|
-
urlTo
|
|
32
|
+
urlTo,
|
|
32
33
|
pageData: record {
|
|
33
34
|
...on ContentContentInterface {
|
|
34
35
|
${pageDataFields}
|
|
@@ -2,6 +2,7 @@ import React, { useState, useEffect } from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import classnames from 'classnames';
|
|
4
4
|
import { Link } from '@blaze-cms/nextjs-components';
|
|
5
|
+
import { MdKeyboardArrowLeft } from 'react-icons/md';
|
|
5
6
|
import { buildAdminHref, setBlazeDebug } from '../../helpers';
|
|
6
7
|
import { DEBUG_LOGO } from '../../constants';
|
|
7
8
|
|
|
@@ -39,7 +40,9 @@ const DebugSidebar = ({ itemEntity, itemId, debugMode }) => {
|
|
|
39
40
|
data-testid="debug-sidebar-button"
|
|
40
41
|
id="debug-sidebar-button"
|
|
41
42
|
onClick={() => setIsOpen(!isOpen)}>
|
|
42
|
-
<i
|
|
43
|
+
<i>
|
|
44
|
+
<MdKeyboardArrowLeft />
|
|
45
|
+
</i>
|
|
43
46
|
</div>
|
|
44
47
|
</div>
|
|
45
48
|
) : null}
|
package/src/helpers/check-url.js
CHANGED
|
@@ -24,9 +24,10 @@ const checkUrl = async props => {
|
|
|
24
24
|
if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {
|
|
25
25
|
return { isStatusPage: true };
|
|
26
26
|
}
|
|
27
|
+
|
|
27
28
|
if (res) {
|
|
28
|
-
res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');
|
|
29
29
|
const handler = handleStaticRoutes.getHandler(asPath);
|
|
30
|
+
res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');
|
|
30
31
|
if (handler) {
|
|
31
32
|
return handler(props);
|
|
32
33
|
}
|
|
@@ -40,13 +41,11 @@ const checkUrl = async props => {
|
|
|
40
41
|
|
|
41
42
|
if (previewData) return getPreviewData(previewData, apolloClient);
|
|
42
43
|
const urlCheckOptions = { asPath, url, apolloClient, res };
|
|
43
|
-
|
|
44
44
|
const result = await doUrlCheck({
|
|
45
45
|
...urlCheckOptions,
|
|
46
46
|
handle404Error: true,
|
|
47
47
|
blazeApp
|
|
48
48
|
});
|
|
49
|
-
|
|
50
49
|
return { ...result, fullUrl } || {};
|
|
51
50
|
};
|
|
52
51
|
|
|
@@ -79,7 +78,7 @@ const doUrlCheck = async ({ url, apolloClient, res, handle404Error, blazeApp })
|
|
|
79
78
|
try {
|
|
80
79
|
const {
|
|
81
80
|
data: {
|
|
82
|
-
checkUrl: { itemId, itemEntity, urlTo, pageData }
|
|
81
|
+
checkUrl: { itemId, itemEntity, urlTo, pageData = {} }
|
|
83
82
|
}
|
|
84
83
|
} = await apolloClient.query({
|
|
85
84
|
query: checkUrlQuery,
|
|
@@ -88,6 +87,11 @@ const doUrlCheck = async ({ url, apolloClient, res, handle404Error, blazeApp })
|
|
|
88
87
|
}
|
|
89
88
|
});
|
|
90
89
|
|
|
90
|
+
const { cacheControlMaxAge = null } = pageData || {}; // pageData can be null when there is no page
|
|
91
|
+
if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {
|
|
92
|
+
res.setHeader('Cache-Control', `max-age=${cacheControlMaxAge}`);
|
|
93
|
+
}
|
|
94
|
+
|
|
91
95
|
if (urlTo && urlTo !== url) {
|
|
92
96
|
if (res) {
|
|
93
97
|
res.writeHead(301, { Location: urlTo });
|
|
@@ -125,7 +129,7 @@ const handleError = (err, res, handle404Error, blazeApp) => {
|
|
|
125
129
|
res.writeHead(500, { 'Content-Type': 'text/plain' });
|
|
126
130
|
res.write('500 Internal Server Error\n');
|
|
127
131
|
res.end();
|
|
128
|
-
} else if (handle404Error && err.graphQLErrors.length) {
|
|
132
|
+
} else if (handle404Error && err.graphQLErrors && err.graphQLErrors.length) {
|
|
129
133
|
res.statusCode = NOT_FOUND_STATUS_CODE;
|
|
130
134
|
return { errorCode: NOT_FOUND_STATUS_CODE };
|
|
131
135
|
}
|