@blaze-cms/nextjs-tools 0.131.0-admin-updates.2 → 0.131.0-admin-updates.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +2 -1
- package/example.env +1 -0
- package/lib/helpers/check-url.js +19 -14
- package/lib/helpers/check-url.js.map +1 -1
- package/lib-es/helpers/check-url.js +8 -2
- package/lib-es/helpers/check-url.js.map +1 -1
- package/package.json +6 -6
- package/src/helpers/check-url.js +9 -3
- package/tests/unit/src/helpers/check-url.test.js +26 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,25 @@
|
|
|
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.131.0-admin-updates.4](https://github.com/thebyte9/blaze/compare/v0.131.0-admin-updates.3...v0.131.0-admin-updates.4) (2023-07-17)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [0.131.0-admin-updates.3](https://github.com/thebyte9/blaze/compare/v0.131.0-admin-updates.2...v0.131.0-admin-updates.3) (2023-07-12)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* redirect with query string in the frontend ([#3985](https://github.com/thebyte9/blaze/issues/3985)) ([aff6272](https://github.com/thebyte9/blaze/commit/aff6272bec9d7fb67d75edd044488826c52c15b2))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
6
25
|
# [0.131.0-admin-updates.2](https://github.com/thebyte9/blaze/compare/v0.131.0-admin-updates.1...v0.131.0-admin-updates.2) (2023-07-11)
|
|
7
26
|
|
|
8
27
|
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
package/README.md
CHANGED
|
@@ -91,7 +91,7 @@ This example will also allow the path to contain **.** characters
|
|
|
91
91
|
|
|
92
92
|
## Environment variables
|
|
93
93
|
|
|
94
|
-
| Name | Description | Default |
|
|
94
|
+
| Name | Description | Type | Default |
|
|
95
95
|
|---|---|---|
|
|
96
96
|
| BLAZE_FRONTEND_HOST | Frontend host (used to identify host) | String | |
|
|
97
97
|
| BLAZE_ROUTE_REGEX | Override default route regex | /^\/[a-z0-9€_\/]+(?:[-\/\.]{1,2}[a-z0-9\/€_\/]+)*$|^\/$/ |
|
|
@@ -102,6 +102,7 @@ This example will also allow the path to contain **.** characters
|
|
|
102
102
|
| BLAZE_ROOT_SELECTOR_CLASSES_LIMIT | The number of root-selector classes to display. 0 or unset will show noe | String | |
|
|
103
103
|
| BLAZE_BUILD_ENV_PREFIX_REGEX | '\|' separated list of allowed environment variable prefixes. Any environment variable that matches this prefix pattern will be dynamically added to the next environment config and will be available in code for use. If the environment variable has a "BUILD_" prefix, then this prefix will be removed from the next environment variable name before assigning it. i.e. BUILD_THIRD_PARTY_ENV will become THIRD_PARTY_ENV in the build. Prefixes BLAZE\|GOOGLE\|JWPLAYER\|DFP are added for backward compatibility and will be deprecated. We recommend to use new and change existing environment variables with "BUILD_" prefix. | BLAZE\|GOOGLE\|JWPLAYER\|DFP\|BUILD |
|
|
104
104
|
| BLAZE_CONTENT_SITEMAP_URL_PREFIX | Prefix for sitemap URL, used in frontend static route e.g. /sitemap/sitemap-0.xml. This needs to match value set in API app. | String | |
|
|
105
|
+
| BLAZE_DISABLE_REDIRECT_WITH_QUERY | Do not add query string to redirects | String | |
|
|
105
106
|
|
|
106
107
|
|
|
107
108
|
## Events emitted
|
package/example.env
CHANGED
package/lib/helpers/check-url.js
CHANGED
|
@@ -160,11 +160,11 @@ var getFullUrl = function getFullUrl(req, asPath) {
|
|
|
160
160
|
};
|
|
161
161
|
var doUrlCheck = /*#__PURE__*/function () {
|
|
162
162
|
var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(_ref4) {
|
|
163
|
-
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;
|
|
163
|
+
var asPath, url, apolloClient, res, handle404Error, blazeApp, _yield$apolloClient$q, _yield$apolloClient$q2, itemId, itemEntity, urlTo, _yield$apolloClient$q3, pageData, _ref6, _ref6$cacheControlMax, cacheControlMaxAge, redirectUrl, queryString, rootSelectorClasses, parentPATH;
|
|
164
164
|
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
165
165
|
while (1) switch (_context3.prev = _context3.next) {
|
|
166
166
|
case 0:
|
|
167
|
-
url = _ref4.url, apolloClient = _ref4.apolloClient, res = _ref4.res, handle404Error = _ref4.handle404Error, blazeApp = _ref4.blazeApp;
|
|
167
|
+
asPath = _ref4.asPath, url = _ref4.url, apolloClient = _ref4.apolloClient, res = _ref4.res, handle404Error = _ref4.handle404Error, blazeApp = _ref4.blazeApp;
|
|
168
168
|
_context3.prev = 1;
|
|
169
169
|
_context3.next = 4;
|
|
170
170
|
return apolloClient.query({
|
|
@@ -186,19 +186,24 @@ var doUrlCheck = /*#__PURE__*/function () {
|
|
|
186
186
|
res.setHeader('Cache-Control', "max-age=".concat(cacheControlMaxAge));
|
|
187
187
|
}
|
|
188
188
|
if (!(urlTo && urlTo !== url)) {
|
|
189
|
-
_context3.next =
|
|
189
|
+
_context3.next = 18;
|
|
190
190
|
break;
|
|
191
191
|
}
|
|
192
|
+
redirectUrl = urlTo;
|
|
193
|
+
if (process.env.BLAZE_DISABLE_REDIRECT_WITH_QUERY !== 'true') {
|
|
194
|
+
queryString = asPath.split('?')[1];
|
|
195
|
+
redirectUrl = queryString ? "".concat(urlTo, "?").concat(queryString) : urlTo;
|
|
196
|
+
}
|
|
192
197
|
if (res) {
|
|
193
198
|
res.writeHead(301, {
|
|
194
|
-
Location:
|
|
199
|
+
Location: redirectUrl
|
|
195
200
|
});
|
|
196
201
|
res.end();
|
|
197
202
|
} else {
|
|
198
|
-
window.location.href =
|
|
203
|
+
window.location.href = redirectUrl;
|
|
199
204
|
}
|
|
200
205
|
return _context3.abrupt("return", {});
|
|
201
|
-
case
|
|
206
|
+
case 18:
|
|
202
207
|
rootSelectorClasses = (0, _getRootSelectorClasses["default"])(url, getRootClassesLimit());
|
|
203
208
|
return _context3.abrupt("return", {
|
|
204
209
|
pageData: pageData,
|
|
@@ -206,29 +211,29 @@ var doUrlCheck = /*#__PURE__*/function () {
|
|
|
206
211
|
itemId: itemId,
|
|
207
212
|
itemEntity: (0, _reactPageBuilder.getUnpublishedEntityName)(itemEntity)
|
|
208
213
|
});
|
|
209
|
-
case
|
|
210
|
-
_context3.prev =
|
|
214
|
+
case 22:
|
|
215
|
+
_context3.prev = 22;
|
|
211
216
|
_context3.t0 = _context3["catch"](1);
|
|
212
217
|
parentPATH = (0, _checkParent["default"])(url);
|
|
213
218
|
if (!(handle404Error && parentPATH && res)) {
|
|
214
|
-
_context3.next =
|
|
219
|
+
_context3.next = 30;
|
|
215
220
|
break;
|
|
216
221
|
}
|
|
217
222
|
res.writeHead(301, {
|
|
218
223
|
Location: parentPATH
|
|
219
224
|
});
|
|
220
225
|
res.end();
|
|
221
|
-
_context3.next =
|
|
226
|
+
_context3.next = 31;
|
|
222
227
|
break;
|
|
223
|
-
case
|
|
228
|
+
case 30:
|
|
224
229
|
return _context3.abrupt("return", handleError(_context3.t0, res, handle404Error, blazeApp));
|
|
225
|
-
case
|
|
230
|
+
case 31:
|
|
226
231
|
return _context3.abrupt("return", handle404Error ? {} : null);
|
|
227
|
-
case
|
|
232
|
+
case 32:
|
|
228
233
|
case "end":
|
|
229
234
|
return _context3.stop();
|
|
230
235
|
}
|
|
231
|
-
}, _callee3, null, [[1,
|
|
236
|
+
}, _callee3, null, [[1, 22]]);
|
|
232
237
|
}));
|
|
233
238
|
return function doUrlCheck(_x4) {
|
|
234
239
|
return _ref5.apply(this, arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-url.js","names":["_queryString","require","_reactPageBuilder","_coreAuthUi","_constants","_query","_checkParent","_interopRequireDefault","_checkPreviewUrl","_handleStaticRoutes","_getPageData","_getRootSelectorClasses","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_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","getHeader","setHeader","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","parentPATH","_callee3$","_context3","checkUrlQuery","variables","data","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 { 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 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 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 ({ 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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"}
|
|
1
|
+
{"version":3,"file":"check-url.js","names":["_queryString","require","_reactPageBuilder","_coreAuthUi","_constants","_query","_checkParent","_interopRequireDefault","_checkPreviewUrl","_handleStaticRoutes","_getPageData","_getRootSelectorClasses","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_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","getHeader","setHeader","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 { 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 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 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":";;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,gBAAA,GAAAD,sBAAA,CAAAN,OAAA;AACA,IAAAQ,mBAAA,GAAAF,sBAAA,CAAAN,OAAA;AACA,IAAAS,YAAA,GAAAH,sBAAA,CAAAN,OAAA;AACA,IAAAU,uBAAA,GAAAJ,sBAAA,CAAAN,OAAA;AAAiE,SAAAW,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,aAAAP,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAkB,yBAAA,GAAAlB,MAAA,CAAAmB,gBAAA,CAAAT,MAAA,EAAAV,MAAA,CAAAkB,yBAAA,CAAAJ,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAoB,cAAA,CAAAV,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAEjE,IAAMW,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA;EAAA,OAASC,MAAM,CAACC,OAAO,CAACC,GAAG,CAACC,iCAAiC,CAAC;AAAA;AAEvF,IAAMC,QAAQ;EAAA,IAAAC,IAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAC,QAAMC,KAAK;IAAA,IAAAC,MAAA,EAAAC,YAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA,EAAAC,QAAA,EAAAC,UAAA,EAAAC,OAAA,EAAAC,SAAA,EAAAC,GAAA,EAAAC,OAAA,EAAAC,WAAA,EAAAC,eAAA,EAAAC,MAAA;IAAA,OAAAjB,YAAA,YAAAkB,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAClBlB,MAAM,GAA0DD,KAAK,CAArEC,MAAM,EAAEC,YAAY,GAA4CF,KAAK,CAA7DE,YAAY,EAAEC,GAAG,GAAuCH,KAAK,CAA/CG,GAAG,EAAEC,GAAG,GAAkCJ,KAAK,CAA1CI,GAAG,EAAEC,KAAK,GAA2BL,KAAK,CAArCK,KAAK,EAAEC,QAAQ,GAAiBN,KAAK,CAA9BM,QAAQ,EAAEC,UAAU,GAAKP,KAAK,CAApBO,UAAU;UAC7DC,OAAO,GAAGY,UAAU,CAAChB,GAAG,EAAEH,MAAM,CAAC;UAAAQ,SAAA,GACvB,IAAAY,qBAAQ,EAACpB,MAAM,CAAC,EAAxBS,GAAG,GAAAD,SAAA,CAAHC,GAAG;UAAA,MAEPnB,OAAO,CAACC,GAAG,CAAC8B,gBAAgB,IAAIZ,GAAG,KAAKnB,OAAO,CAACC,GAAG,CAAC8B,gBAAgB;YAAAL,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAM,MAAA,WAC/D;YAAEC,YAAY,EAAE;UAAK,CAAC;QAAA;UAAA,KAG3BrB,GAAG;YAAAc,QAAA,CAAAE,IAAA;YAAA;UAAA;UACCR,OAAO,GAAGc,8BAAkB,CAACC,UAAU,CAACzB,MAAM,CAAC;UAErD,IAAI,CAACE,GAAG,CAACwB,SAAS,CAAC,eAAe,CAAC,EAAE;YACnCxB,GAAG,CAACyB,SAAS,CAAC,eAAe,EAAErC,OAAO,CAACC,GAAG,CAACqC,0BAA0B,IAAI,EAAE,CAAC;UAC9E;UAAC,KAEGlB,OAAO;YAAAM,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAM,MAAA,WACFZ,OAAO,CAACX,KAAK,CAAC;QAAA;UAInBY,WAAW,GAAG,IAAAkB,2BAAe,EAACpB,GAAG,EAAEL,KAAK,CAAC;UAAA,MAE3C,CAACO,WAAW,IAAIL,UAAU;YAAAU,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAM,MAAA,WAAS;YAAEhB,UAAU,EAAE;UAAK,CAAC;QAAA;UAAAU,QAAA,CAAAE,IAAA;UAAA,OAErD,IAAAY,4BAAgB,EAAC7B,YAAY,EAAAzB,aAAA,CAAAA,aAAA,KAC9BuB,KAAK;YACRO,UAAU,EAAE,CAACvC,MAAM,CAACD,IAAI,CAACmC,YAAY,CAAC8B,KAAK,CAACC,OAAO,CAAC,CAAC,CAAC,CAACpD,MAAM,CAAC;UAAA,EAC/D,CAAC;QAAA;UAAA,KAEE+B,WAAW;YAAAK,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAM,MAAA,WAASW,cAAc,CAACtB,WAAW,EAAEV,YAAY,CAAC;QAAA;UAC3DW,eAAe,GAAG;YAAEZ,MAAM,EAANA,MAAM;YAAES,GAAG,EAAHA,GAAG;YAAER,YAAY,EAAZA,YAAY;YAAEC,GAAG,EAAHA;UAAI,CAAC;UAAAc,QAAA,CAAAE,IAAA;UAAA,OACrCgB,UAAU,CAAA1D,aAAA,CAAAA,aAAA,KAC1BoC,eAAe;YAClBuB,cAAc,EAAE,IAAI;YACpB9B,QAAQ,EAARA;UAAQ,EACT,CAAC;QAAA;UAJIQ,MAAM,GAAAG,QAAA,CAAAoB,IAAA;UAAA,OAAApB,QAAA,CAAAM,MAAA,WAKL9C,aAAA,CAAAA,aAAA,KAAKqC,MAAM;YAAEN,OAAO,EAAPA;UAAO,MAAM,CAAC,CAAC;QAAA;QAAA;UAAA,OAAAS,QAAA,CAAAqB,IAAA;MAAA;IAAA,GAAAvC,OAAA;EAAA,CACpC;EAAA,gBAtCKL,QAAQA,CAAA6C,EAAA;IAAA,OAAA5C,IAAA,CAAAnB,KAAA,OAAAI,SAAA;EAAA;AAAA,GAsCb;AAED,IAAMsD,cAAc;EAAA,IAAAM,KAAA,OAAA5C,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAG,SAAA2C,SAAO7B,WAAW,EAAEV,YAAY;IAAA,IAAAY,MAAA,EAAA4B,gBAAA,EAAAC,iBAAA,EAAAjC,GAAA,EAAAkC,mBAAA;IAAA,OAAA/C,YAAA,YAAAkB,IAAA,UAAA8B,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA5B,IAAA,GAAA4B,SAAA,CAAA3B,IAAA;QAAA;UAAA2B,SAAA,CAAA3B,IAAA;UAAA,OAChC,IAAA4B,uBAAW,EAAAtE,aAAA,CAAAA,aAAA,KAAMmC,WAAW;YAAEV,YAAY,EAAZA;UAAY,EAAE,CAAC;QAAA;UAA5DY,MAAM,GAAAgC,SAAA,CAAAT,IAAA;UAAAK,gBAAA,GACuB5B,MAAM,CAAjCkC,QAAQ,EAAAL,iBAAA,GAAAD,gBAAA,cAAY,CAAC,CAAC,GAAAA,gBAAA,EAAVhC,GAAG,GAAAiC,iBAAA,CAAHjC,GAAG;UACjBkC,mBAAmB,GAAG,IAAAK,kCAAsB,EAACvC,GAAG,EAAErB,mBAAmB,CAAC,CAAC,CAAC;UAAA,OAAAyD,SAAA,CAAAvB,MAAA,WAAA9C,aAAA,CAAAA,aAAA,CAAAA,aAAA,KAClEmC,WAAW;YAAEgC,mBAAmB,EAAnBA;UAAmB,GAAK9B,MAAM;YAAEoC,SAAS,EAAE;UAAI;QAAA;QAAA;UAAA,OAAAJ,SAAA,CAAAR,IAAA;MAAA;IAAA,GAAAG,QAAA;EAAA,CACzE;EAAA,gBALKP,cAAcA,CAAAiB,GAAA,EAAAC,GAAA;IAAA,OAAAZ,KAAA,CAAAhE,KAAA,OAAAI,SAAA;EAAA;AAAA,GAKnB;AAED,IAAMyE,OAAO,GAAG,SAAVA,OAAOA,CAAAC,KAAA;EAAA,IAAAC,aAAA,GAAAD,KAAA,CAAME,OAAO;IAAPA,OAAO,GAAAD,aAAA,cAAG,CAAC,CAAC,GAAAA,aAAA;EAAA,OAC7BhE,OAAO,CAACC,GAAG,CAACiE,mBAAmB,IAC/BD,OAAO,CAAC,gBAAgB,CAAC,IACzBA,OAAO,CAAC,kBAAkB,CAAC,IAC3BA,OAAO,CAACE,IAAI;AAAA;AAEd,IAAMtC,UAAU,GAAG,SAAbA,UAAUA,CAAIhB,GAAG,EAAEH,MAAM,EAAK;EAClC,IAAIG,GAAG,EAAE;IACP,UAAAuD,MAAA,CAAUC,gBAAK,EAAAD,MAAA,CAAGN,OAAO,CAACjD,GAAG,CAAC,EAAAuD,MAAA,CAAG1D,MAAM;EACzC;EACA,IAAA4D,OAAA,GAEIC,MAAM;IAAAC,gBAAA,GAAAF,OAAA,CADRG,QAAQ;IAAIC,QAAQ,GAAAF,gBAAA,CAARE,QAAQ;IAAEC,QAAQ,GAAAH,gBAAA,CAARG,QAAQ;IAAEC,IAAI,GAAAJ,gBAAA,CAAJI,IAAI;EAEtC,IAAMC,OAAO,GAAGD,IAAI,MAAAR,MAAA,CAAMU,gBAAK,EAAAV,MAAA,CAAGQ,IAAI,IAAK,EAAE;EAE7C,UAAAR,MAAA,CAAUM,QAAQ,EAAAN,MAAA,CAAGW,uBAAY,EAAAX,MAAA,CAAGO,QAAQ,EAAAP,MAAA,CAAGS,OAAO,EAAAT,MAAA,CAAG1D,MAAM;AACjE,CAAC;AAED,IAAMkC,UAAU;EAAA,IAAAoC,KAAA,OAAA3E,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAG,SAAA0E,SAAAC,KAAA;IAAA,IAAAxE,MAAA,EAAAS,GAAA,EAAAR,YAAA,EAAAC,GAAA,EAAAiC,cAAA,EAAA9B,QAAA,EAAAoE,qBAAA,EAAAC,sBAAA,EAAAC,MAAA,EAAAC,UAAA,EAAAC,KAAA,EAAAC,sBAAA,EAAA/B,QAAA,EAAAgC,KAAA,EAAAC,qBAAA,EAAAC,kBAAA,EAAAC,WAAA,EAAAC,WAAA,EAAAxC,mBAAA,EAAAyC,UAAA;IAAA,OAAAxF,YAAA,YAAAkB,IAAA,UAAAuE,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAArE,IAAA,GAAAqE,SAAA,CAAApE,IAAA;QAAA;UAASlB,MAAM,GAAAwE,KAAA,CAANxE,MAAM,EAAES,GAAG,GAAA+D,KAAA,CAAH/D,GAAG,EAAER,YAAY,GAAAuE,KAAA,CAAZvE,YAAY,EAAEC,GAAG,GAAAsE,KAAA,CAAHtE,GAAG,EAAEiC,cAAc,GAAAqC,KAAA,CAAdrC,cAAc,EAAE9B,QAAQ,GAAAmE,KAAA,CAARnE,QAAQ;UAAAiF,SAAA,CAAArE,IAAA;UAAAqE,SAAA,CAAApE,IAAA;UAAA,OAMtEjB,YAAY,CAACG,KAAK,CAAC;YAC3BA,KAAK,EAAEmF,oBAAa;YACpBC,SAAS,EAAE;cACT/E,GAAG,EAAHA;YACF;UACF,CAAC,CAAC;QAAA;UAAAgE,qBAAA,GAAAa,SAAA,CAAAlD,IAAA;UAAAsC,sBAAA,GAAAD,qBAAA,CARAgB,IAAI,CACFhG,QAAQ;UAAIkF,MAAM,GAAAD,sBAAA,CAANC,MAAM;UAAEC,UAAU,GAAAF,sBAAA,CAAVE,UAAU;UAAEC,KAAK,GAAAH,sBAAA,CAALG,KAAK;UAAAC,sBAAA,GAAAJ,sBAAA,CAAE3B,QAAQ;UAARA,QAAQ,GAAA+B,sBAAA,cAAG,CAAC,CAAC,GAAAA,sBAAA;UAAAC,KAAA,GASlBhC,QAAQ,IAAI,CAAC,CAAC,EAAAiC,qBAAA,GAAAD,KAAA,CAA5CE,kBAAkB,EAAlBA,kBAAkB,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA,EAAqB;UACtD,IAAI9E,GAAG,IAAI+E,kBAAkB,KAAK,IAAI,IAAIA,kBAAkB,IAAI,CAAC,EAAE;YACjE/E,GAAG,CAACyB,SAAS,CAAC,eAAe,aAAA+B,MAAA,CAAauB,kBAAkB,CAAE,CAAC;UACjE;UAAC,MAEGJ,KAAK,IAAIA,KAAK,KAAKpE,GAAG;YAAA6E,SAAA,CAAApE,IAAA;YAAA;UAAA;UACpBgE,WAAW,GAAGL,KAAK;UACvB,IAAIvF,OAAO,CAACC,GAAG,CAACmG,iCAAiC,KAAK,MAAM,EAAE;YACtDP,WAAW,GAAGnF,MAAM,CAAC2F,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxCT,WAAW,GAAGC,WAAW,MAAAzB,MAAA,CAAMmB,KAAK,OAAAnB,MAAA,CAAIyB,WAAW,IAAKN,KAAK;UAC/D;UAEA,IAAI3E,GAAG,EAAE;YACPA,GAAG,CAAC0F,SAAS,CAAC,GAAG,EAAE;cAAEC,QAAQ,EAAEX;YAAY,CAAC,CAAC;YAC7ChF,GAAG,CAAC4F,GAAG,CAAC,CAAC;UACX,CAAC,MAAM;YACLjC,MAAM,CAACE,QAAQ,CAACgC,IAAI,GAAGb,WAAW;UACpC;UAAC,OAAAI,SAAA,CAAAhE,MAAA,WACM,CAAC,CAAC;QAAA;UAELqB,mBAAmB,GAAG,IAAAK,kCAAsB,EAACvC,GAAG,EAAErB,mBAAmB,CAAC,CAAC,CAAC;UAAA,OAAAkG,SAAA,CAAAhE,MAAA,WACvE;YACLyB,QAAQ,EAARA,QAAQ;YACRJ,mBAAmB,EAAnBA,mBAAmB;YACnBgC,MAAM,EAANA,MAAM;YACNC,UAAU,EAAE,IAAAoB,0CAAwB,EAACpB,UAAU;UACjD,CAAC;QAAA;UAAAU,SAAA,CAAArE,IAAA;UAAAqE,SAAA,CAAAW,EAAA,GAAAX,SAAA;UAEKF,UAAU,GAAG,IAAAc,uBAAW,EAACzF,GAAG,CAAC;UAAA,MAC/B0B,cAAc,IAAIiD,UAAU,IAAIlF,GAAG;YAAAoF,SAAA,CAAApE,IAAA;YAAA;UAAA;UACrChB,GAAG,CAAC0F,SAAS,CAAC,GAAG,EAAE;YAAEC,QAAQ,EAAET;UAAW,CAAC,CAAC;UAC5ClF,GAAG,CAAC4F,GAAG,CAAC,CAAC;UAACR,SAAA,CAAApE,IAAA;UAAA;QAAA;UAAA,OAAAoE,SAAA,CAAAhE,MAAA,WAEH6E,WAAW,CAAAb,SAAA,CAAAW,EAAA,EAAM/F,GAAG,EAAEiC,cAAc,EAAE9B,QAAQ,CAAC;QAAA;UAAA,OAAAiF,SAAA,CAAAhE,MAAA,WAGjDa,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI;QAAA;QAAA;UAAA,OAAAmD,SAAA,CAAAjD,IAAA;MAAA;IAAA,GAAAkC,QAAA;EAAA,CAEpC;EAAA,gBAnDKrC,UAAUA,CAAAkE,GAAA;IAAA,OAAA9B,KAAA,CAAA/F,KAAA,OAAAI,SAAA;EAAA;AAAA,GAmDf;AAED,IAAMwH,WAAW,GAAG,SAAdA,WAAWA,CAAIE,GAAG,EAAEnG,GAAG,EAAEiC,cAAc,EAAE9B,QAAQ,EAAK;EAC1DA,QAAQ,CAACiG,MAAM,CAACC,IAAI,CAAC,aAAa,EAAE;IAAEC,KAAK,EAAEH;EAAI,CAAC,CAAC;EAEnD,IAAI,CAACnG,GAAG,EAAE,OAAO,CAAC,CAAC;EACnB,IAAImG,GAAG,CAACI,YAAY,EAAE;IACpBvG,GAAG,CAAC0F,SAAS,CAAC,GAAG,EAAE;MAAE,cAAc,EAAE;IAAa,CAAC,CAAC;IACpD1F,GAAG,CAACwG,KAAK,CAAC,6BAA6B,CAAC;IACxCxG,GAAG,CAAC4F,GAAG,CAAC,CAAC;EACX,CAAC,MAAM,IAAI3D,cAAc,IAAIkE,GAAG,CAACM,aAAa,IAAIN,GAAG,CAACM,aAAa,CAAC/H,MAAM,EAAE;IAC1EsB,GAAG,CAAC0G,UAAU,GAAGC,gCAAqB;IACtC,OAAO;MAAEC,SAAS,EAAED;IAAsB,CAAC;EAC7C;EAEA,OAAO,CAAC,CAAC;AACX,CAAC;AAAC,IAAAE,QAAA,GACatH,QAAQ;AAAAuH,OAAA,cAAAD,QAAA"}
|
|
@@ -97,6 +97,7 @@ const getFullUrl = (req, asPath) => {
|
|
|
97
97
|
return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;
|
|
98
98
|
};
|
|
99
99
|
const doUrlCheck = async ({
|
|
100
|
+
asPath,
|
|
100
101
|
url,
|
|
101
102
|
apolloClient,
|
|
102
103
|
res,
|
|
@@ -126,13 +127,18 @@ const doUrlCheck = async ({
|
|
|
126
127
|
res.setHeader('Cache-Control', `max-age=${cacheControlMaxAge}`);
|
|
127
128
|
}
|
|
128
129
|
if (urlTo && urlTo !== url) {
|
|
130
|
+
let redirectUrl = urlTo;
|
|
131
|
+
if (process.env.BLAZE_DISABLE_REDIRECT_WITH_QUERY !== 'true') {
|
|
132
|
+
const queryString = asPath.split('?')[1];
|
|
133
|
+
redirectUrl = queryString ? `${urlTo}?${queryString}` : urlTo;
|
|
134
|
+
}
|
|
129
135
|
if (res) {
|
|
130
136
|
res.writeHead(301, {
|
|
131
|
-
Location:
|
|
137
|
+
Location: redirectUrl
|
|
132
138
|
});
|
|
133
139
|
res.end();
|
|
134
140
|
} else {
|
|
135
|
-
window.location.href =
|
|
141
|
+
window.location.href = redirectUrl;
|
|
136
142
|
}
|
|
137
143
|
return {};
|
|
138
144
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-url.js","names":["parseUrl","getUnpublishedEntityName","checkAccessToken","HTTPS","DOUBLE_SLASH","COLON","NOT_FOUND_STATUS_CODE","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","getHeader","setHeader","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","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 { 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 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 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 ({ 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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"}
|
|
1
|
+
{"version":3,"file":"check-url.js","names":["parseUrl","getUnpublishedEntityName","checkAccessToken","HTTPS","DOUBLE_SLASH","COLON","NOT_FOUND_STATUS_CODE","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","getHeader","setHeader","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 { 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 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 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":";;;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,wBAAwB,QAAQ,+BAA+B;AACxE,SAASC,gBAAgB,QAAQ,yBAAyB;AAC1D,SAASC,KAAK,EAAEC,YAAY,EAAEC,KAAK,EAAEC,qBAAqB,QAAQ,cAAc;AAChF,SAASC,aAAa,QAAQ,sBAAsB;AACpD,OAAOC,WAAW,MAAM,gBAAgB;AACxC,OAAOC,eAAe,MAAM,qBAAqB;AACjD,OAAOC,kBAAkB,MAAM,wBAAwB;AACvD,OAAOC,WAAW,MAAM,iBAAiB;AACzC,OAAOC,sBAAsB,MAAM,6BAA6B;AAEhE,MAAMC,mBAAmB,GAAGA,CAAA,KAAMC,MAAM,CAACC,OAAO,CAACC,GAAG,CAACC,iCAAiC,CAAC;AAEvF,MAAMC,QAAQ,GAAG,MAAMC,KAAK,IAAI;EAC9B,MAAM;IAAEC,MAAM;IAAEC,YAAY;IAAEC,GAAG;IAAEC,GAAG;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAW,CAAC,GAAGP,KAAK;EAC7E,MAAMQ,OAAO,GAAGC,UAAU,CAACL,GAAG,EAAEH,MAAM,CAAC;EACvC,MAAM;IAAES;EAAI,CAAC,GAAG7B,QAAQ,CAACoB,MAAM,CAAC;EAEhC,IAAIL,OAAO,CAACC,GAAG,CAACc,gBAAgB,IAAID,GAAG,KAAKd,OAAO,CAACC,GAAG,CAACc,gBAAgB,EAAE;IACxE,OAAO;MAAEC,YAAY,EAAE;IAAK,CAAC;EAC/B;EAEA,IAAIT,GAAG,EAAE;IACP,MAAMU,OAAO,GAAGtB,kBAAkB,CAACuB,UAAU,CAACb,MAAM,CAAC;IAErD,IAAI,CAACE,GAAG,CAACY,SAAS,CAAC,eAAe,CAAC,EAAE;MACnCZ,GAAG,CAACa,SAAS,CAAC,eAAe,EAAEpB,OAAO,CAACC,GAAG,CAACoB,0BAA0B,IAAI,EAAE,CAAC;IAC9E;IAEA,IAAIJ,OAAO,EAAE;MACX,OAAOA,OAAO,CAACb,KAAK,CAAC;IACvB;EACF;EAEA,MAAMkB,WAAW,GAAG5B,eAAe,CAACoB,GAAG,EAAEL,KAAK,CAAC;EAE/C,IAAI,CAACa,WAAW,IAAIX,UAAU,EAAE,OAAO;IAAEA,UAAU,EAAE;EAAK,CAAC;EAE3D,MAAMxB,gBAAgB,CAACmB,YAAY,EAAAiB,aAAA,CAAAA,aAAA,KAC9BnB,KAAK;IACRO,UAAU,EAAE,CAACa,MAAM,CAACC,IAAI,CAACnB,YAAY,CAACoB,KAAK,CAACC,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAAC;EAAA,EAC/D,CAAC;;EAEF,IAAIN,WAAW,EAAE,OAAOO,cAAc,CAACP,WAAW,EAAEhB,YAAY,CAAC;EACjE,MAAMwB,eAAe,GAAG;IAAEzB,MAAM;IAAES,GAAG;IAAER,YAAY;IAAEC;EAAI,CAAC;EAC1D,MAAMwB,MAAM,GAAG,MAAMC,UAAU,CAAAT,aAAA,CAAAA,aAAA,KAC1BO,eAAe;IAClBG,cAAc,EAAE,IAAI;IACpBvB;EAAQ,EACT,CAAC;EACF,OAAOa,aAAA,CAAAA,aAAA,KAAKQ,MAAM;IAAEnB;EAAO,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,MAAMiB,cAAc,GAAG,MAAAA,CAAOP,WAAW,EAAEhB,YAAY,KAAK;EAC1D,MAAMyB,MAAM,GAAG,MAAMnC,WAAW,CAAA2B,aAAA,CAAAA,aAAA,KAAMD,WAAW;IAAEhB;EAAY,EAAE,CAAC;EAClE,MAAM;IAAE4B,QAAQ,EAAE;MAAEpB;IAAI,CAAC,GAAG,CAAC;EAAE,CAAC,GAAGiB,MAAM;EACzC,MAAMI,mBAAmB,GAAGtC,sBAAsB,CAACiB,GAAG,EAAEhB,mBAAmB,CAAC,CAAC,CAAC;EAC9E,OAAAyB,aAAA,CAAAA,aAAA,CAAAA,aAAA,KAAYD,WAAW;IAAEa;EAAmB,GAAKJ,MAAM;IAAEK,SAAS,EAAE;EAAI;AAC1E,CAAC;AAED,MAAMC,OAAO,GAAGA,CAAC;EAAEC,OAAO,GAAG,CAAC;AAAE,CAAC,KAC/BtC,OAAO,CAACC,GAAG,CAACsC,mBAAmB,IAC/BD,OAAO,CAAC,gBAAgB,CAAC,IACzBA,OAAO,CAAC,kBAAkB,CAAC,IAC3BA,OAAO,CAACE,IAAI;AAEd,MAAM3B,UAAU,GAAGA,CAACL,GAAG,EAAEH,MAAM,KAAK;EAClC,IAAIG,GAAG,EAAE;IACP,OAAQ,GAAEpB,KAAM,GAAEiD,OAAO,CAAC7B,GAAG,CAAE,GAAEH,MAAO,EAAC;EAC3C;EACA,MAAM;IACJoC,QAAQ,EAAE;MAAEC,QAAQ;MAAEC,QAAQ;MAAEC;IAAK;EACvC,CAAC,GAAGC,MAAM;EACV,MAAMC,OAAO,GAAGF,IAAI,GAAI,GAAEtD,KAAM,GAAEsD,IAAK,EAAC,GAAG,EAAE;EAE7C,OAAQ,GAAEF,QAAS,GAAErD,YAAa,GAAEsD,QAAS,GAAEG,OAAQ,GAAEzC,MAAO,EAAC;AACnE,CAAC;AAED,MAAM2B,UAAU,GAAG,MAAAA,CAAO;EAAE3B,MAAM;EAAES,GAAG;EAAER,YAAY;EAAEC,GAAG;EAAE0B,cAAc;EAAEvB;AAAS,CAAC,KAAK;EACzF,IAAI;IACF,MAAM;MACJqC,IAAI,EAAE;QACJ5C,QAAQ,EAAE;UAAE6C,MAAM;UAAEC,UAAU;UAAEC,KAAK;UAAEhB,QAAQ,GAAG,CAAC;QAAE;MACvD;IACF,CAAC,GAAG,MAAM5B,YAAY,CAACG,KAAK,CAAC;MAC3BA,KAAK,EAAEjB,aAAa;MACpB2D,SAAS,EAAE;QACTrC;MACF;IACF,CAAC,CAAC;IAEF,MAAM;MAAEsC,kBAAkB,GAAG;IAAK,CAAC,GAAGlB,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI3B,GAAG,IAAI6C,kBAAkB,KAAK,IAAI,IAAIA,kBAAkB,IAAI,CAAC,EAAE;MACjE7C,GAAG,CAACa,SAAS,CAAC,eAAe,EAAG,WAAUgC,kBAAmB,EAAC,CAAC;IACjE;IAEA,IAAIF,KAAK,IAAIA,KAAK,KAAKpC,GAAG,EAAE;MAC1B,IAAIuC,WAAW,GAAGH,KAAK;MACvB,IAAIlD,OAAO,CAACC,GAAG,CAACqD,iCAAiC,KAAK,MAAM,EAAE;QAC5D,MAAMC,WAAW,GAAGlD,MAAM,CAACmD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxCH,WAAW,GAAGE,WAAW,GAAI,GAAEL,KAAM,IAAGK,WAAY,EAAC,GAAGL,KAAK;MAC/D;MAEA,IAAI3C,GAAG,EAAE;QACPA,GAAG,CAACkD,SAAS,CAAC,GAAG,EAAE;UAAEC,QAAQ,EAAEL;QAAY,CAAC,CAAC;QAC7C9C,GAAG,CAACoD,GAAG,CAAC,CAAC;MACX,CAAC,MAAM;QACLd,MAAM,CAACJ,QAAQ,CAACmB,IAAI,GAAGP,WAAW;MACpC;MACA,OAAO,CAAC,CAAC;IACX;IACA,MAAMlB,mBAAmB,GAAGtC,sBAAsB,CAACiB,GAAG,EAAEhB,mBAAmB,CAAC,CAAC,CAAC;IAC9E,OAAO;MACLoC,QAAQ;MACRC,mBAAmB;MACnBa,MAAM;MACNC,UAAU,EAAE/D,wBAAwB,CAAC+D,UAAU;IACjD,CAAC;EACH,CAAC,CAAC,OAAOY,GAAG,EAAE;IACZ,MAAMC,UAAU,GAAGrE,WAAW,CAACqB,GAAG,CAAC;IACnC,IAAImB,cAAc,IAAI6B,UAAU,IAAIvD,GAAG,EAAE;MACvCA,GAAG,CAACkD,SAAS,CAAC,GAAG,EAAE;QAAEC,QAAQ,EAAEI;MAAW,CAAC,CAAC;MAC5CvD,GAAG,CAACoD,GAAG,CAAC,CAAC;IACX,CAAC,MAAM;MACL,OAAOI,WAAW,CAACF,GAAG,EAAEtD,GAAG,EAAE0B,cAAc,EAAEvB,QAAQ,CAAC;IACxD;IAEA,OAAOuB,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI;EACnC;AACF,CAAC;AAED,MAAM8B,WAAW,GAAGA,CAACF,GAAG,EAAEtD,GAAG,EAAE0B,cAAc,EAAEvB,QAAQ,KAAK;EAC1DA,QAAQ,CAACsD,MAAM,CAACC,IAAI,CAAC,aAAa,EAAE;IAAEC,KAAK,EAAEL;EAAI,CAAC,CAAC;EAEnD,IAAI,CAACtD,GAAG,EAAE,OAAO,CAAC,CAAC;EACnB,IAAIsD,GAAG,CAACM,YAAY,EAAE;IACpB5D,GAAG,CAACkD,SAAS,CAAC,GAAG,EAAE;MAAE,cAAc,EAAE;IAAa,CAAC,CAAC;IACpDlD,GAAG,CAAC6D,KAAK,CAAC,6BAA6B,CAAC;IACxC7D,GAAG,CAACoD,GAAG,CAAC,CAAC;EACX,CAAC,MAAM,IAAI1B,cAAc,IAAI4B,GAAG,CAACQ,aAAa,IAAIR,GAAG,CAACQ,aAAa,CAACzC,MAAM,EAAE;IAC1ErB,GAAG,CAAC+D,UAAU,GAAG/E,qBAAqB;IACtC,OAAO;MAAEgF,SAAS,EAAEhF;IAAsB,CAAC;EAC7C;EAEA,OAAO,CAAC,CAAC;AACX,CAAC;AACD,eAAeY,QAAQ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/nextjs-tools",
|
|
3
|
-
"version": "0.131.0-admin-updates.
|
|
3
|
+
"version": "0.131.0-admin-updates.4",
|
|
4
4
|
"description": "Blaze nextjs tools",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
"@blaze-cms/nextjs-components": "0.131.0-admin-updates.0",
|
|
36
36
|
"@blaze-cms/plugin-auth-fe": "0.131.0-admin-updates.0",
|
|
37
37
|
"@blaze-cms/plugin-auth-local-fe": "0.131.0-admin-updates.0",
|
|
38
|
-
"@blaze-cms/plugin-google-maps-fe": "0.131.0-admin-updates.
|
|
39
|
-
"@blaze-cms/plugin-gtm-fe": "0.131.0-admin-updates.
|
|
40
|
-
"@blaze-cms/plugin-page-builder-fe": "0.131.0-admin-updates.
|
|
38
|
+
"@blaze-cms/plugin-google-maps-fe": "0.131.0-admin-updates.4",
|
|
39
|
+
"@blaze-cms/plugin-gtm-fe": "0.131.0-admin-updates.4",
|
|
40
|
+
"@blaze-cms/plugin-page-builder-fe": "0.131.0-admin-updates.4",
|
|
41
41
|
"@blaze-cms/plugin-preview-fe": "0.131.0-admin-updates.0",
|
|
42
42
|
"@blaze-cms/plugin-search-ui": "0.131.0-admin-updates.0",
|
|
43
43
|
"@blaze-cms/plugin-structured-data-fe": "0.131.0-admin-updates.0",
|
|
44
|
-
"@blaze-cms/react-page-builder": "0.131.0-admin-updates.
|
|
44
|
+
"@blaze-cms/react-page-builder": "0.131.0-admin-updates.4",
|
|
45
45
|
"@blaze-cms/setup-ui": "0.131.0-admin-updates.0",
|
|
46
46
|
"autoprefixer": "^10.2.3",
|
|
47
47
|
"core-js": "^3.2.1",
|
|
@@ -69,5 +69,5 @@
|
|
|
69
69
|
"lib/*",
|
|
70
70
|
"lib-es/*"
|
|
71
71
|
],
|
|
72
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "00da113adaf0fa650214428f0ff9d168c0c1f01b"
|
|
73
73
|
}
|
package/src/helpers/check-url.js
CHANGED
|
@@ -76,7 +76,7 @@ const getFullUrl = (req, asPath) => {
|
|
|
76
76
|
return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;
|
|
77
77
|
};
|
|
78
78
|
|
|
79
|
-
const doUrlCheck = async ({ url, apolloClient, res, handle404Error, blazeApp }) => {
|
|
79
|
+
const doUrlCheck = async ({ asPath, url, apolloClient, res, handle404Error, blazeApp }) => {
|
|
80
80
|
try {
|
|
81
81
|
const {
|
|
82
82
|
data: {
|
|
@@ -95,11 +95,17 @@ const doUrlCheck = async ({ url, apolloClient, res, handle404Error, blazeApp })
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
if (urlTo && urlTo !== url) {
|
|
98
|
+
let redirectUrl = urlTo;
|
|
99
|
+
if (process.env.BLAZE_DISABLE_REDIRECT_WITH_QUERY !== 'true') {
|
|
100
|
+
const queryString = asPath.split('?')[1];
|
|
101
|
+
redirectUrl = queryString ? `${urlTo}?${queryString}` : urlTo;
|
|
102
|
+
}
|
|
103
|
+
|
|
98
104
|
if (res) {
|
|
99
|
-
res.writeHead(301, { Location:
|
|
105
|
+
res.writeHead(301, { Location: redirectUrl });
|
|
100
106
|
res.end();
|
|
101
107
|
} else {
|
|
102
|
-
window.location.href =
|
|
108
|
+
window.location.href = redirectUrl;
|
|
103
109
|
}
|
|
104
110
|
return {};
|
|
105
111
|
}
|
|
@@ -80,6 +80,9 @@ describe('Check url', () => {
|
|
|
80
80
|
const mockHandlerResponse = () => jest.fn(() => true);
|
|
81
81
|
const cacheControlHeader = 'Cache-Control';
|
|
82
82
|
|
|
83
|
+
const queryString = '?query=string';
|
|
84
|
+
const asPathWithQuery = `${asPath}${queryString}`;
|
|
85
|
+
|
|
83
86
|
beforeAll(() => {
|
|
84
87
|
setEnvs(envs);
|
|
85
88
|
});
|
|
@@ -178,6 +181,29 @@ describe('Check url', () => {
|
|
|
178
181
|
apolloQueryCheck(apolloClient, asPath);
|
|
179
182
|
});
|
|
180
183
|
|
|
184
|
+
it('should redirect with query string', async () => {
|
|
185
|
+
apolloClient.query.mockImplementationOnce(async () => ({
|
|
186
|
+
data: {
|
|
187
|
+
checkUrl: { urlTo }
|
|
188
|
+
}
|
|
189
|
+
}));
|
|
190
|
+
await checkUrl({ ...props, asPath: asPathWithQuery });
|
|
191
|
+
expect(res.writeHead).toHaveBeenCalledWith(301, { Location: `${urlTo}${queryString}` });
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
it('should not redirect with query string', async () => {
|
|
195
|
+
apolloClient.query.mockImplementationOnce(async () => ({
|
|
196
|
+
data: {
|
|
197
|
+
checkUrl: { urlTo }
|
|
198
|
+
}
|
|
199
|
+
}));
|
|
200
|
+
const customEnvs = { BLAZE_DISABLE_REDIRECT_WITH_QUERY: 'true' };
|
|
201
|
+
setEnvs(customEnvs);
|
|
202
|
+
await checkUrl({ ...props, asPath: asPathWithQuery });
|
|
203
|
+
expect(res.writeHead).toHaveBeenCalledWith(301, { Location: urlTo });
|
|
204
|
+
deleteEnvs(customEnvs);
|
|
205
|
+
});
|
|
206
|
+
|
|
181
207
|
it('should handle redirect to parent on not found', async () => {
|
|
182
208
|
apolloClient.query.mockImplementationOnce(async () => {
|
|
183
209
|
throw new Error('Not found');
|