@blaze-cms/nextjs-tools 0.124.0-alpha.16 → 0.124.0-alpha.19
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 +27 -0
- package/lib/application/query/index.js +2 -2
- package/lib/application/query/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/helpers/check-url.js +10 -3
- package/lib-es/helpers/check-url.js.map +1 -1
- package/package.json +7 -7
- package/src/application/query/index.js +3 -2
- 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/helpers/check-url.test.js +32 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,33 @@
|
|
|
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.19](https://byte9/thebyte9/blaze/compare/v0.124.0-alpha.18...v0.124.0-alpha.19) (2022-05-18)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [0.124.0-alpha.18](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.17...v0.124.0-alpha.18) (2022-05-17)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# [0.124.0-alpha.17](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.16...v0.124.0-alpha.17) (2022-05-13)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* adding cache control max age property ([#3385](https://github.com/thebyte9/blaze/issues/3385)) ([ace668e](https://github.com/thebyte9/blaze/commit/ace668e708ea867d0b86543aca149ae57d5e51a5))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
6
33
|
# [0.124.0-alpha.16](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.15...v0.124.0-alpha.16) (2022-05-12)
|
|
7
34
|
|
|
8
35
|
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
@@ -15,8 +15,8 @@ var _client = require("@apollo/client");
|
|
|
15
15
|
|
|
16
16
|
var _templateObject, _templateObject2, _templateObject3;
|
|
17
17
|
|
|
18
|
-
var pageDataFields = "\nid\nname\npreparedPageBuilderComponents\ncanonicalUrl\ncategory {\n id\n name\n}\ntags {\n id\n name\n}\nslug\nimage{\n id\n data\n url\n}\nformattedMetaTitle\nformattedMetaDescription\n__typename";
|
|
19
|
-
var checkUrlQuery = (0, _client.gql)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n query checkUrl($url: String!) {\n checkUrl(url: $url) {\n itemId\n itemEntity\n urlTo
|
|
18
|
+
var pageDataFields = "\nid\nname\npreparedPageBuilderComponents\ncanonicalUrl\ncategory {\n id\n name\n}\ntags {\n id\n name\n}\nslug\nimage{\n id\n data\n url\n}\nformattedMetaTitle\nformattedMetaDescription\n__typename\ncacheControlMaxAge";
|
|
19
|
+
var checkUrlQuery = (0, _client.gql)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n query checkUrl($url: String!) {\n checkUrl(url: $url) {\n itemId\n itemEntity\n urlTo,\n pageData: record {\n ...on ContentContentInterface {\n ", "\n }\n }\n }\n }\n"])), pageDataFields);
|
|
20
20
|
exports.checkUrlQuery = checkUrlQuery;
|
|
21
21
|
|
|
22
22
|
var getPageQuery = function getPageQuery(_ref) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["pageDataFields","checkUrlQuery","gql","getPageQuery","actions","get","getPublished","isPreview","getMethod","GET_ENTITY_SCHEMA"],"sources":["../../../src/application/query/index.js"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst pageDataFields = `\nid\nname\npreparedPageBuilderComponents\ncanonicalUrl\ncategory {\n id\n name\n}\ntags {\n id\n name\n}\nslug\nimage{\n id\n data\n url\n}\nformattedMetaTitle\nformattedMetaDescription\n__typename`;\n\nconst checkUrlQuery = gql`\n query checkUrl($url: String!) {\n checkUrl(url: $url) {\n itemId\n itemEntity\n urlTo
|
|
1
|
+
{"version":3,"file":"index.js","names":["pageDataFields","checkUrlQuery","gql","getPageQuery","actions","get","getPublished","isPreview","getMethod","GET_ENTITY_SCHEMA"],"sources":["../../../src/application/query/index.js"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst pageDataFields = `\nid\nname\npreparedPageBuilderComponents\ncanonicalUrl\ncategory {\n id\n name\n}\ntags {\n id\n name\n}\nslug\nimage{\n id\n data\n url\n}\nformattedMetaTitle\nformattedMetaDescription\n__typename\ncacheControlMaxAge`;\n\nconst checkUrlQuery = gql`\n query checkUrl($url: String!) {\n checkUrl(url: $url) {\n itemId\n itemEntity\n urlTo,\n pageData: record {\n ...on ContentContentInterface {\n ${pageDataFields}\n }\n }\n }\n }\n`;\n\nconst getPageQuery = ({ actions: { get, getPublished } = {}, isPreview }) => {\n const getMethod = !isPreview && getPublished ? getPublished : get;\n\n return gql`\n query pageData($id: String!) {\n pageData: ${getMethod}(id: $id) {\n ${pageDataFields}\n url\n }\n }\n `;\n};\n\nconst GET_ENTITY_SCHEMA = gql`\n query getEntitySchema($id: String!) {\n entitySchema: getEntitySchema(id: $id) {\n id\n identifier\n actions\n }\n }\n`;\n\nexport { checkUrlQuery, getPageQuery, GET_ENTITY_SCHEMA };\n"],"mappings":";;;;;;;;;;;;;AAAA;;;;AAEA,IAAMA,cAAc,sOAApB;AAwBA,IAAMC,aAAa,OAAGC,WAAH,yTAQPF,cARO,CAAnB;;;AAeA,IAAMG,YAAY,GAAG,SAAfA,YAAe,OAAwD;EAAA,wBAArDC,OAAqD;EAAA,yCAApB,EAAoB;EAAA,IAA1CC,GAA0C,gBAA1CA,GAA0C;EAAA,IAArCC,YAAqC,gBAArCA,YAAqC;EAAA,IAAhBC,SAAgB,QAAhBA,SAAgB;EAC3E,IAAMC,SAAS,GAAG,CAACD,SAAD,IAAcD,YAAd,GAA6BA,YAA7B,GAA4CD,GAA9D;EAEA,WAAOH,WAAP,8MAEgBM,SAFhB,EAGQR,cAHR;AAQD,CAXD;;;AAaA,IAAMS,iBAAiB,OAAGP,WAAH,yOAAvB"}
|
package/lib/helpers/check-url.js
CHANGED
|
@@ -97,8 +97,8 @@ var checkUrl = /*#__PURE__*/function () {
|
|
|
97
97
|
break;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');
|
|
101
100
|
handler = _handleStaticRoutes["default"].getHandler(asPath);
|
|
101
|
+
res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');
|
|
102
102
|
|
|
103
103
|
if (!handler) {
|
|
104
104
|
_context.next = 10;
|
|
@@ -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, pageData, rootSelectorClasses, parentPATH;
|
|
226
|
+
var url, apolloClient, res, handle404Error, blazeApp, _yield$apolloClient$q, _yield$apolloClient$q2, itemId, itemEntity, urlTo, _yield$apolloClient$q3, pageData, _pageData$cacheContro, cacheControlMaxAge, rootSelectorClasses, parentPATH;
|
|
227
227
|
|
|
228
228
|
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
229
229
|
while (1) {
|
|
@@ -245,10 +245,16 @@ var doUrlCheck = /*#__PURE__*/function () {
|
|
|
245
245
|
itemId = _yield$apolloClient$q2.itemId;
|
|
246
246
|
itemEntity = _yield$apolloClient$q2.itemEntity;
|
|
247
247
|
urlTo = _yield$apolloClient$q2.urlTo;
|
|
248
|
-
|
|
248
|
+
_yield$apolloClient$q3 = _yield$apolloClient$q2.pageData;
|
|
249
|
+
pageData = _yield$apolloClient$q3 === void 0 ? {} : _yield$apolloClient$q3;
|
|
250
|
+
_pageData$cacheContro = pageData.cacheControlMaxAge, cacheControlMaxAge = _pageData$cacheContro === void 0 ? null : _pageData$cacheContro;
|
|
251
|
+
|
|
252
|
+
if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {
|
|
253
|
+
res.setHeader('Cache-Control', "max-age=".concat(cacheControlMaxAge));
|
|
254
|
+
}
|
|
249
255
|
|
|
250
256
|
if (!(urlTo && urlTo !== url)) {
|
|
251
|
-
_context3.next =
|
|
257
|
+
_context3.next = 16;
|
|
252
258
|
break;
|
|
253
259
|
}
|
|
254
260
|
|
|
@@ -263,7 +269,7 @@ var doUrlCheck = /*#__PURE__*/function () {
|
|
|
263
269
|
|
|
264
270
|
return _context3.abrupt("return", {});
|
|
265
271
|
|
|
266
|
-
case
|
|
272
|
+
case 16:
|
|
267
273
|
rootSelectorClasses = (0, _getRootSelectorClasses["default"])(url, getRootClassesLimit());
|
|
268
274
|
return _context3.abrupt("return", {
|
|
269
275
|
pageData: pageData,
|
|
@@ -272,13 +278,13 @@ var doUrlCheck = /*#__PURE__*/function () {
|
|
|
272
278
|
itemEntity: (0, _reactPageBuilder.getUnpublishedEntityName)(itemEntity)
|
|
273
279
|
});
|
|
274
280
|
|
|
275
|
-
case
|
|
276
|
-
_context3.prev =
|
|
281
|
+
case 20:
|
|
282
|
+
_context3.prev = 20;
|
|
277
283
|
_context3.t0 = _context3["catch"](1);
|
|
278
284
|
parentPATH = (0, _checkParent["default"])(url);
|
|
279
285
|
|
|
280
286
|
if (!(handle404Error && parentPATH && res)) {
|
|
281
|
-
_context3.next =
|
|
287
|
+
_context3.next = 28;
|
|
282
288
|
break;
|
|
283
289
|
}
|
|
284
290
|
|
|
@@ -286,21 +292,21 @@ var doUrlCheck = /*#__PURE__*/function () {
|
|
|
286
292
|
Location: parentPATH
|
|
287
293
|
});
|
|
288
294
|
res.end();
|
|
289
|
-
_context3.next =
|
|
295
|
+
_context3.next = 29;
|
|
290
296
|
break;
|
|
291
297
|
|
|
292
|
-
case
|
|
298
|
+
case 28:
|
|
293
299
|
return _context3.abrupt("return", handleError(_context3.t0, res, handle404Error, blazeApp));
|
|
294
300
|
|
|
295
|
-
case
|
|
301
|
+
case 29:
|
|
296
302
|
return _context3.abrupt("return", handle404Error ? {} : null);
|
|
297
303
|
|
|
298
|
-
case
|
|
304
|
+
case 30:
|
|
299
305
|
case "end":
|
|
300
306
|
return _context3.stop();
|
|
301
307
|
}
|
|
302
308
|
}
|
|
303
|
-
}, _callee3, null, [[1,
|
|
309
|
+
}, _callee3, null, [[1, 20]]);
|
|
304
310
|
}));
|
|
305
311
|
|
|
306
312
|
return function doUrlCheck(_x4) {
|
|
@@ -320,7 +326,7 @@ var handleError = function handleError(err, res, handle404Error, blazeApp) {
|
|
|
320
326
|
});
|
|
321
327
|
res.write('500 Internal Server Error\n');
|
|
322
328
|
res.end();
|
|
323
|
-
} else if (handle404Error && err.graphQLErrors.length) {
|
|
329
|
+
} else if (handle404Error && err.graphQLErrors && err.graphQLErrors.length) {
|
|
324
330
|
res.statusCode = _constants.NOT_FOUND_STATUS_CODE;
|
|
325
331
|
return {
|
|
326
332
|
errorCode: _constants.NOT_FOUND_STATUS_CODE
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-url.js","names":["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","handleStaticRoutes","getHandler","previewData","disableSsr","getPreviewData","urlCheckOptions","doUrlCheck","handle404Error","result","pageData","rootSelectorClasses","isPreview","getHost","BLAZE_FRONTEND_HOST","host","HTTPS","window","location","protocol","hostname","port","urlPort","COLON","DOUBLE_SLASH","checkUrlQuery","variables","data","itemId","itemEntity","urlTo","writeHead","Location","end","href","parentPATH","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 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":["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","handleStaticRoutes","getHandler","setHeader","BLAZE_CACHE_CONTROL_HEADER","previewData","disableSsr","getPreviewData","urlCheckOptions","doUrlCheck","handle404Error","result","pageData","rootSelectorClasses","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","parentPATH","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB;EAAA,OAAMC,MAAM,CAACC,OAAO,CAACC,GAAR,CAAYC,iCAAb,CAAZ;AAAA,CAA5B;;AAEA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAAAC,GAAG,EAAI;EACrB,IAAI,CAACA,GAAL,EAAU,OAAO,KAAP;EACV,OAAO,CAAC,CAAC,gCAAeA,GAAG,CAACC,OAAJ,CAAYC,MAA3B,CAAT;AACD,CAHD;;AAKA,IAAMC,QAAQ;EAAA,yFAAG,iBAAMC,KAAN;IAAA;;IAAA;MAAA;QAAA;UAAA;YACPC,MADO,GAC6CD,KAD7C,CACPC,MADO,EACCC,YADD,GAC6CF,KAD7C,CACCE,YADD,EACeC,GADf,GAC6CH,KAD7C,CACeG,GADf,EACoBP,GADpB,GAC6CI,KAD7C,CACoBJ,GADpB,EACyBQ,KADzB,GAC6CJ,KAD7C,CACyBI,KADzB,EACgCC,QADhC,GAC6CL,KAD7C,CACgCK,QADhC;YAETC,OAFS,GAECC,UAAU,CAACX,GAAD,EAAMK,MAAN,CAFX;YAAA,YAGC,2BAASA,MAAT,CAHD,EAGPO,GAHO,aAGPA,GAHO;;YAAA,MAKXhB,OAAO,CAACC,GAAR,CAAYgB,gBAAZ,IAAgCD,GAAG,KAAKhB,OAAO,CAACC,GAAR,CAAYgB,gBALzC;cAAA;cAAA;YAAA;;YAAA,iCAMN;cAAEC,YAAY,EAAE;YAAhB,CANM;;UAAA;YAAA,KASXP,GATW;cAAA;cAAA;YAAA;;YAUPQ,OAVO,GAUGC,+BAAmBC,UAAnB,CAA8BZ,MAA9B,CAVH;YAWbE,GAAG,CAACW,SAAJ,CAAc,eAAd,EAA+BtB,OAAO,CAACC,GAAR,CAAYsB,0BAAZ,IAA0C,EAAzE;;YAXa,KAYTJ,OAZS;cAAA;cAAA;YAAA;;YAAA,iCAaJA,OAAO,CAACX,KAAD,CAbH;;UAAA;YAiBTgB,WAjBS,GAiBK,iCAAgBR,GAAhB,EAAqBJ,KAArB,CAjBL;;YAAA,MAmBX,CAACY,WAAD,IAAgBrB,OAAO,CAACC,GAAD,CAnBZ;cAAA;cAAA;YAAA;;YAAA,iCAmB0B;cAAEqB,UAAU,EAAE;YAAd,CAnB1B;;UAAA;YAAA;YAAA,OAqBT,kCAAiBf,YAAjB,CArBS;;UAAA;YAAA,KAuBXc,WAvBW;cAAA;cAAA;YAAA;;YAAA,iCAuBSE,cAAc,CAACF,WAAD,EAAcd,YAAd,CAvBvB;;UAAA;YAwBTiB,eAxBS,GAwBS;cAAElB,MAAM,EAANA,MAAF;cAAUO,GAAG,EAAHA,GAAV;cAAeN,YAAY,EAAZA,YAAf;cAA6BC,GAAG,EAAHA;YAA7B,CAxBT;YAAA;YAAA,OAyBMiB,UAAU,iCAC1BD,eAD0B;cAE7BE,cAAc,EAAE,IAFa;cAG7BhB,QAAQ,EAARA;YAH6B,GAzBhB;;UAAA;YAyBTiB,MAzBS;YAAA,iCA8BR,gCAAKA,MAAL;cAAahB,OAAO,EAAPA;YAAb,MAA0B,EA9BlB;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAAH;;EAAA,gBAARP,QAAQ;IAAA;EAAA;AAAA,GAAd;;AAiCA,IAAMmB,cAAc;EAAA,0FAAG,kBAAOF,WAAP,EAAoBd,YAApB;IAAA;;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACA,6DAAiBc,WAAjB;cAA8Bd,YAAY,EAAZA;YAA9B,GADA;;UAAA;YACfoB,MADe;YAAA,mBAEcA,MAFd,CAEbC,QAFa;YAErB,iDAA4B,EAA5B;YAAoBf,GAFC,oBAEDA,GAFC;YAGfgB,mBAHe,GAGO,wCAAuBhB,GAAvB,EAA4BlB,mBAAmB,EAA/C,CAHP;YAAA,gFAIT0B,WAJS;cAIIQ,mBAAmB,EAAnBA;YAJJ,GAI4BF,MAJ5B;cAIoCG,SAAS,EAAE;YAJ/C;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAAH;;EAAA,gBAAdP,cAAc;IAAA;EAAA;AAAA,GAApB;;AAOA,IAAMQ,OAAO,GAAG,SAAVA,OAAU;EAAA,0BAAG7B,OAAH;EAAA,IAAGA,OAAH,8BAAa,EAAb;EAAA,OACdL,OAAO,CAACC,GAAR,CAAYkC,mBAAZ,IACA9B,OAAO,CAAC,gBAAD,CADP,IAEAA,OAAO,CAAC,kBAAD,CAFP,IAGAA,OAAO,CAAC+B,IAJM;AAAA,CAAhB;;AAMA,IAAMrB,UAAU,GAAG,SAAbA,UAAa,CAACX,GAAD,EAAMK,MAAN,EAAiB;EAClC,IAAIL,GAAJ,EAAS;IACP,iBAAUiC,gBAAV,SAAkBH,OAAO,CAAC9B,GAAD,CAAzB,SAAiCK,MAAjC;EACD;;EACD,cAEI6B,MAFJ;EAAA,+BACEC,QADF;EAAA,IACcC,QADd,oBACcA,QADd;EAAA,IACwBC,QADxB,oBACwBA,QADxB;EAAA,IACkCC,IADlC,oBACkCA,IADlC;EAGA,IAAMC,OAAO,GAAGD,IAAI,aAAME,gBAAN,SAAcF,IAAd,IAAuB,EAA3C;EAEA,iBAAUF,QAAV,SAAqBK,uBAArB,SAAoCJ,QAApC,SAA+CE,OAA/C,SAAyDlC,MAAzD;AACD,CAVD;;AAYA,IAAMmB,UAAU;EAAA,0FAAG;IAAA;;IAAA;MAAA;QAAA;UAAA;YAASZ,GAAT,SAASA,GAAT,EAAcN,YAAd,SAAcA,YAAd,EAA4BC,GAA5B,SAA4BA,GAA5B,EAAiCkB,cAAjC,SAAiCA,cAAjC,EAAiDhB,QAAjD,SAAiDA,QAAjD;YAAA;YAAA;YAAA,OAMLH,YAAY,CAACE,KAAb,CAAmB;cAC3BA,KAAK,EAAEkC,oBADoB;cAE3BC,SAAS,EAAE;gBACT/B,GAAG,EAAHA;cADS;YAFgB,CAAnB,CANK;;UAAA;YAAA;YAAA,+CAGbgC,IAHa,CAIXzC,QAJW;YAIC0C,MAJD,0BAICA,MAJD;YAISC,UAJT,0BAISA,UAJT;YAIqBC,KAJrB,0BAIqBA,KAJrB;YAAA,gDAI4BpB,QAJ5B;YAI4BA,QAJ5B,uCAIuC,EAJvC;YAAA,wBAauBA,QAbvB,CAaPqB,kBAbO,EAaPA,kBAbO,sCAac,IAbd;;YAcf,IAAIzC,GAAG,IAAIyC,kBAAkB,KAAK,IAA9B,IAAsCA,kBAAkB,IAAI,CAAhE,EAAmE;cACjEzC,GAAG,CAACW,SAAJ,CAAc,eAAd,oBAA0C8B,kBAA1C;YACD;;YAhBc,MAkBXD,KAAK,IAAIA,KAAK,KAAKnC,GAlBR;cAAA;cAAA;YAAA;;YAmBb,IAAIL,GAAJ,EAAS;cACPA,GAAG,CAAC0C,SAAJ,CAAc,GAAd,EAAmB;gBAAEC,QAAQ,EAAEH;cAAZ,CAAnB;cACAxC,GAAG,CAAC4C,GAAJ;YACD,CAHD,MAGO;cACLjB,MAAM,CAACC,QAAP,CAAgBiB,IAAhB,GAAuBL,KAAvB;YACD;;YAxBY,kCAyBN,EAzBM;;UAAA;YA2BTnB,mBA3BS,GA2Ba,wCAAuBhB,GAAvB,EAA4BlB,mBAAmB,EAA/C,CA3Bb;YAAA,kCA4BR;cACLiC,QAAQ,EAARA,QADK;cAELC,mBAAmB,EAAnBA,mBAFK;cAGLiB,MAAM,EAANA,MAHK;cAILC,UAAU,EAAE,gDAAyBA,UAAzB;YAJP,CA5BQ;;UAAA;YAAA;YAAA;YAmCTO,UAnCS,GAmCI,6BAAYzC,GAAZ,CAnCJ;;YAAA,MAoCXa,cAAc,IAAI4B,UAAlB,IAAgC9C,GApCrB;cAAA;cAAA;YAAA;;YAqCbA,GAAG,CAAC0C,SAAJ,CAAc,GAAd,EAAmB;cAAEC,QAAQ,EAAEG;YAAZ,CAAnB;YACA9C,GAAG,CAAC4C,GAAJ;YAtCa;YAAA;;UAAA;YAAA,kCAwCNG,WAAW,eAAM/C,GAAN,EAAWkB,cAAX,EAA2BhB,QAA3B,CAxCL;;UAAA;YAAA,kCA2CRgB,cAAc,GAAG,EAAH,GAAQ,IA3Cd;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAAH;;EAAA,gBAAVD,UAAU;IAAA;EAAA;AAAA,GAAhB;;AA+CA,IAAM8B,WAAW,GAAG,SAAdA,WAAc,CAACC,GAAD,EAAMhD,GAAN,EAAWkB,cAAX,EAA2BhB,QAA3B,EAAwC;EAC1DA,QAAQ,CAAC+C,MAAT,CAAgBC,IAAhB,CAAqB,aAArB,EAAoC;IAAEC,KAAK,EAAEH;EAAT,CAApC;EAEA,IAAI,CAAChD,GAAL,EAAU,OAAO,EAAP;;EACV,IAAIgD,GAAG,CAACI,YAAR,EAAsB;IACpBpD,GAAG,CAAC0C,SAAJ,CAAc,GAAd,EAAmB;MAAE,gBAAgB;IAAlB,CAAnB;IACA1C,GAAG,CAACqD,KAAJ,CAAU,6BAAV;IACArD,GAAG,CAAC4C,GAAJ;EACD,CAJD,MAIO,IAAI1B,cAAc,IAAI8B,GAAG,CAACM,aAAtB,IAAuCN,GAAG,CAACM,aAAJ,CAAkBC,MAA7D,EAAqE;IAC1EvD,GAAG,CAACwD,UAAJ,GAAiBC,gCAAjB;IACA,OAAO;MAAEC,SAAS,EAAED;IAAb,CAAP;EACD;;EAED,OAAO,EAAP;AACD,CAdD;;eAee7D,Q"}
|
|
@@ -20,13 +20,14 @@ image{
|
|
|
20
20
|
}
|
|
21
21
|
formattedMetaTitle
|
|
22
22
|
formattedMetaDescription
|
|
23
|
-
__typename
|
|
23
|
+
__typename
|
|
24
|
+
cacheControlMaxAge`;
|
|
24
25
|
const checkUrlQuery = gql`
|
|
25
26
|
query checkUrl($url: String!) {
|
|
26
27
|
checkUrl(url: $url) {
|
|
27
28
|
itemId
|
|
28
29
|
itemEntity
|
|
29
|
-
urlTo
|
|
30
|
+
urlTo,
|
|
30
31
|
pageData: record {
|
|
31
32
|
...on ContentContentInterface {
|
|
32
33
|
${pageDataFields}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["gql","pageDataFields","checkUrlQuery","getPageQuery","actions","get","getPublished","isPreview","getMethod","GET_ENTITY_SCHEMA"],"sources":["../../../src/application/query/index.js"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst pageDataFields = `\nid\nname\npreparedPageBuilderComponents\ncanonicalUrl\ncategory {\n id\n name\n}\ntags {\n id\n name\n}\nslug\nimage{\n id\n data\n url\n}\nformattedMetaTitle\nformattedMetaDescription\n__typename`;\n\nconst checkUrlQuery = gql`\n query checkUrl($url: String!) {\n checkUrl(url: $url) {\n itemId\n itemEntity\n urlTo
|
|
1
|
+
{"version":3,"file":"index.js","names":["gql","pageDataFields","checkUrlQuery","getPageQuery","actions","get","getPublished","isPreview","getMethod","GET_ENTITY_SCHEMA"],"sources":["../../../src/application/query/index.js"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst pageDataFields = `\nid\nname\npreparedPageBuilderComponents\ncanonicalUrl\ncategory {\n id\n name\n}\ntags {\n id\n name\n}\nslug\nimage{\n id\n data\n url\n}\nformattedMetaTitle\nformattedMetaDescription\n__typename\ncacheControlMaxAge`;\n\nconst checkUrlQuery = gql`\n query checkUrl($url: String!) {\n checkUrl(url: $url) {\n itemId\n itemEntity\n urlTo,\n pageData: record {\n ...on ContentContentInterface {\n ${pageDataFields}\n }\n }\n }\n }\n`;\n\nconst getPageQuery = ({ actions: { get, getPublished } = {}, isPreview }) => {\n const getMethod = !isPreview && getPublished ? getPublished : get;\n\n return gql`\n query pageData($id: String!) {\n pageData: ${getMethod}(id: $id) {\n ${pageDataFields}\n url\n }\n }\n `;\n};\n\nconst GET_ENTITY_SCHEMA = gql`\n query getEntitySchema($id: String!) {\n entitySchema: getEntitySchema(id: $id) {\n id\n identifier\n actions\n }\n }\n`;\n\nexport { checkUrlQuery, getPageQuery, GET_ENTITY_SCHEMA };\n"],"mappings":"AAAA,SAASA,GAAT,QAAoB,gBAApB;AAEA,MAAMC,cAAc,GAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAtBA;AAwBA,MAAMC,aAAa,GAAGF,GAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAYC,cAAe;AAC3B;AACA;AACA;AACA;AACA,CAbA;;AAeA,MAAME,YAAY,GAAG,CAAC;EAAEC,OAAO,EAAE;IAAEC,GAAF;IAAOC;EAAP,IAAwB,EAAnC;EAAuCC;AAAvC,CAAD,KAAwD;EAC3E,MAAMC,SAAS,GAAG,CAACD,SAAD,IAAcD,YAAd,GAA6BA,YAA7B,GAA4CD,GAA9D;EAEA,OAAOL,GAAI;AACb;AACA,kBAAkBQ,SAAU;AAC5B,UAAUP,cAAe;AACzB;AACA;AACA;AACA,GAPE;AAQD,CAXD;;AAaA,MAAMQ,iBAAiB,GAAGT,GAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;AAUA,SAASE,aAAT,EAAwBC,YAAxB,EAAsCM,iBAAtC"}
|
|
@@ -43,8 +43,8 @@ const checkUrl = async props => {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
if (res) {
|
|
46
|
-
res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');
|
|
47
46
|
const handler = handleStaticRoutes.getHandler(asPath);
|
|
47
|
+
res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');
|
|
48
48
|
|
|
49
49
|
if (handler) {
|
|
50
50
|
return handler(props);
|
|
@@ -123,7 +123,7 @@ const doUrlCheck = async ({
|
|
|
123
123
|
itemId,
|
|
124
124
|
itemEntity,
|
|
125
125
|
urlTo,
|
|
126
|
-
pageData
|
|
126
|
+
pageData = {}
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
} = await apolloClient.query({
|
|
@@ -132,6 +132,13 @@ const doUrlCheck = async ({
|
|
|
132
132
|
url
|
|
133
133
|
}
|
|
134
134
|
});
|
|
135
|
+
const {
|
|
136
|
+
cacheControlMaxAge = null
|
|
137
|
+
} = pageData;
|
|
138
|
+
|
|
139
|
+
if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {
|
|
140
|
+
res.setHeader('Cache-Control', `max-age=${cacheControlMaxAge}`);
|
|
141
|
+
}
|
|
135
142
|
|
|
136
143
|
if (urlTo && urlTo !== url) {
|
|
137
144
|
if (res) {
|
|
@@ -181,7 +188,7 @@ const handleError = (err, res, handle404Error, blazeApp) => {
|
|
|
181
188
|
});
|
|
182
189
|
res.write('500 Internal Server Error\n');
|
|
183
190
|
res.end();
|
|
184
|
-
} else if (handle404Error && err.graphQLErrors.length) {
|
|
191
|
+
} else if (handle404Error && err.graphQLErrors && err.graphQLErrors.length) {
|
|
185
192
|
res.statusCode = NOT_FOUND_STATUS_CODE;
|
|
186
193
|
return {
|
|
187
194
|
errorCode: NOT_FOUND_STATUS_CODE
|
|
@@ -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","
|
|
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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"}
|
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.19",
|
|
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.2",
|
|
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.19",
|
|
38
|
+
"@blaze-cms/plugin-gtm-fe": "^0.124.0-alpha.19",
|
|
39
|
+
"@blaze-cms/plugin-page-builder-fe": "^0.124.0-alpha.19",
|
|
40
40
|
"@blaze-cms/plugin-preview-fe": "^0.121.0",
|
|
41
|
-
"@blaze-cms/plugin-search-ui": "^0.124.0-alpha.
|
|
42
|
-
"@blaze-cms/react-page-builder": "^0.124.0-alpha.
|
|
41
|
+
"@blaze-cms/plugin-search-ui": "^0.124.0-alpha.19",
|
|
42
|
+
"@blaze-cms/react-page-builder": "^0.124.0-alpha.19",
|
|
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": "251b709daea87edb3b0c05a861808342ef9dc13f"
|
|
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}
|
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;
|
|
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
|
}
|