@blaze-cms/nextjs-tools 0.125.0-alpha.14 → 0.125.0-alpha.18
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 +21 -0
- package/README.md +10 -0
- package/lib/helpers/check-url.js +7 -9
- package/lib/helpers/check-url.js.map +1 -1
- package/lib/hoc/withBlaze.js +19 -16
- package/lib/hoc/withBlaze.js.map +1 -1
- package/lib-es/helpers/check-url.js +8 -8
- package/lib-es/helpers/check-url.js.map +1 -1
- package/lib-es/hoc/withBlaze.js +3 -0
- package/lib-es/hoc/withBlaze.js.map +1 -1
- package/package.json +13 -12
- package/src/helpers/check-url.js +7 -9
- package/src/hoc/withBlaze.js +3 -0
- package/tests/unit/src/helpers/check-url.test.js +5 -5
- package/tests/unit/src/hoc/withBlaze.test.js +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,27 @@
|
|
|
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.125.0-alpha.18](https://github.com/thebyte9/blaze/compare/v0.125.0-alpha.17...v0.125.0-alpha.18) (2022-11-28)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* add abacus auth frontend and api plugins ([5e4427f](https://github.com/thebyte9/blaze/commit/5e4427f03400e4d8ebcc0ddc553ff88070653d7b))
|
|
12
|
+
* add auth login plugins wip ([fca3d2a](https://github.com/thebyte9/blaze/commit/fca3d2aeff68dc2440c6a7abc0103350a30403b8))
|
|
13
|
+
* add autoLogin function to auth provider requirements ([3f5e7ed](https://github.com/thebyte9/blaze/commit/3f5e7ed949052dcc6296ac7defe87ddce6869a65))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# [0.125.0-alpha.15](https://github.com/thebyte9/blaze/compare/v0.125.0-alpha.14...v0.125.0-alpha.15) (2022-11-16)
|
|
20
|
+
|
|
21
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
6
27
|
# [0.125.0-alpha.14](https://github.com/thebyte9/blaze/compare/v0.125.0-alpha.13...v0.125.0-alpha.14) (2022-10-25)
|
|
7
28
|
|
|
8
29
|
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
package/README.md
CHANGED
|
@@ -95,6 +95,16 @@ This example will also allow the path to contain **.** characters
|
|
|
95
95
|
| 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 |
|
|
96
96
|
| 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 | |
|
|
97
97
|
|
|
98
|
+
|
|
99
|
+
## Events emitted
|
|
100
|
+
|
|
101
|
+
For more information about specific package events go to package README.
|
|
102
|
+
|
|
103
|
+
| Key | Description |
|
|
104
|
+
|---|---|
|
|
105
|
+
| page-load:get-initial-props:before | Called in `getInitialProps` and passes in the nextjs `ctx` before running through AppTree |
|
|
106
|
+
|
|
107
|
+
|
|
98
108
|
## Tailwind
|
|
99
109
|
|
|
100
110
|
[Tailwind CSS](https://tailwindcss.com/) is a utility-first CSS framework packed with classes like flex , pt-4 , text-center and rotate-90 that can be composed to build any design, directly in your markup.
|
package/lib/helpers/check-url.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.object.keys.js");
|
|
4
3
|
require("core-js/modules/es.symbol.js");
|
|
5
4
|
require("core-js/modules/es.array.filter.js");
|
|
6
5
|
require("core-js/modules/es.object.to-string.js");
|
|
@@ -19,6 +18,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
19
18
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
20
19
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
21
20
|
require("core-js/modules/es.number.constructor.js");
|
|
21
|
+
require("core-js/modules/es.object.keys.js");
|
|
22
22
|
require("core-js/modules/es.array.concat.js");
|
|
23
23
|
var _queryString = require("query-string");
|
|
24
24
|
var _reactPageBuilder = require("@blaze-cms/react-page-builder");
|
|
@@ -35,18 +35,14 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
35
35
|
var getRootClassesLimit = function getRootClassesLimit() {
|
|
36
36
|
return Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);
|
|
37
37
|
};
|
|
38
|
-
var hasAuth = function hasAuth(req) {
|
|
39
|
-
if (!req) return false;
|
|
40
|
-
return !!(0, _coreAuthUi.getAccessToken)(req.headers.cookie);
|
|
41
|
-
};
|
|
42
38
|
var checkUrl = /*#__PURE__*/function () {
|
|
43
39
|
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(props) {
|
|
44
|
-
var asPath, apolloClient, res, req, query, blazeApp, fullUrl, _parseUrl, url, handler, previewData, urlCheckOptions, result;
|
|
40
|
+
var asPath, apolloClient, res, req, query, blazeApp, disableSsr, fullUrl, _parseUrl, url, handler, previewData, urlCheckOptions, result;
|
|
45
41
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
46
42
|
while (1) {
|
|
47
43
|
switch (_context.prev = _context.next) {
|
|
48
44
|
case 0:
|
|
49
|
-
asPath = props.asPath, apolloClient = props.apolloClient, res = props.res, req = props.req, query = props.query, blazeApp = props.blazeApp;
|
|
45
|
+
asPath = props.asPath, apolloClient = props.apolloClient, res = props.res, req = props.req, query = props.query, blazeApp = props.blazeApp, disableSsr = props.disableSsr;
|
|
50
46
|
fullUrl = getFullUrl(req, asPath);
|
|
51
47
|
_parseUrl = (0, _queryString.parseUrl)(asPath), url = _parseUrl.url;
|
|
52
48
|
if (!(process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL)) {
|
|
@@ -70,7 +66,7 @@ var checkUrl = /*#__PURE__*/function () {
|
|
|
70
66
|
return _context.abrupt("return", handler(props));
|
|
71
67
|
case 10:
|
|
72
68
|
previewData = (0, _checkPreviewUrl["default"])(url, query);
|
|
73
|
-
if (!(!previewData &&
|
|
69
|
+
if (!(!previewData && disableSsr)) {
|
|
74
70
|
_context.next = 13;
|
|
75
71
|
break;
|
|
76
72
|
}
|
|
@@ -79,7 +75,9 @@ var checkUrl = /*#__PURE__*/function () {
|
|
|
79
75
|
});
|
|
80
76
|
case 13:
|
|
81
77
|
_context.next = 15;
|
|
82
|
-
return (0, _coreAuthUi.checkAccessToken)(apolloClient)
|
|
78
|
+
return (0, _coreAuthUi.checkAccessToken)(apolloClient, _objectSpread(_objectSpread({}, props), {}, {
|
|
79
|
+
disableSsr: !Object.keys(apolloClient.cache.extract()).length // empty cache means SSR was disabled
|
|
80
|
+
}));
|
|
83
81
|
case 15:
|
|
84
82
|
if (!previewData) {
|
|
85
83
|
_context.next = 17;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-url.js","names":["getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","hasAuth","req","getAccessToken","headers","cookie","checkUrl","props","asPath","apolloClient","res","query","blazeApp","fullUrl","getFullUrl","parseUrl","url","BLAZE_STATUS_URL","isStatusPage","handler","handleStaticRoutes","getHandler","setHeader","BLAZE_CACHE_CONTROL_HEADER","previewData","checkPreviewUrl","disableSsr","checkAccessToken","getPreviewData","urlCheckOptions","doUrlCheck","handle404Error","result","getPageData","pageData","rootSelectorClasses","getRootSelectorClasses","isPreview","getHost","BLAZE_FRONTEND_HOST","host","HTTPS","window","location","protocol","hostname","port","urlPort","COLON","DOUBLE_SLASH","checkUrlQuery","variables","data","itemId","itemEntity","urlTo","cacheControlMaxAge","writeHead","Location","end","href","getUnpublishedEntityName","parentPATH","checkParent","handleError","err","events","emit","error","networkError","write","graphQLErrors","length","statusCode","NOT_FOUND_STATUS_CODE","errorCode"],"sources":["../../src/helpers/check-url.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { getAccessToken, checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport { HTTPS, DOUBLE_SLASH, COLON, NOT_FOUND_STATUS_CODE } from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst hasAuth = req => {\n if (!req) return false;\n return !!getAccessToken(req.headers.cookie);\n};\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n\n if (res) {\n const handler = handleStaticRoutes.getHandler(asPath);\n res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && hasAuth(req)) return { disableSsr: true };\n\n await checkAccessToken(apolloClient);\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async ({ url, apolloClient, res, handle404Error, blazeApp }) => {\n try {\n const {\n data: {\n checkUrl: { itemId, itemEntity, urlTo, pageData = {} }\n }\n } = await apolloClient.query({\n query: checkUrlQuery,\n variables: {\n url\n }\n });\n\n const { cacheControlMaxAge = null } = pageData || {}; // 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":";;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAiE;AAAA;AAEjE,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAmB;EAAA,OAASC,MAAM,CAACC,OAAO,CAACC,GAAG,CAACC,iCAAiC,CAAC;AAAA;AAEvF,IAAMC,OAAO,GAAG,SAAVA,OAAO,CAAGC,GAAG,EAAI;EACrB,IAAI,CAACA,GAAG,EAAE,OAAO,KAAK;EACtB,OAAO,CAAC,CAAC,IAAAC,0BAAc,EAACD,GAAG,CAACE,OAAO,CAACC,MAAM,CAAC;AAC7C,CAAC;AAED,IAAMC,QAAQ;EAAA,yFAAG,iBAAMC,KAAK;IAAA;IAAA;MAAA;QAAA;UAAA;YAClBC,MAAM,GAA8CD,KAAK,CAAzDC,MAAM,EAAEC,YAAY,GAAgCF,KAAK,CAAjDE,YAAY,EAAEC,GAAG,GAA2BH,KAAK,CAAnCG,GAAG,EAAER,GAAG,GAAsBK,KAAK,CAA9BL,GAAG,EAAES,KAAK,GAAeJ,KAAK,CAAzBI,KAAK,EAAEC,QAAQ,GAAKL,KAAK,CAAlBK,QAAQ;YACjDC,OAAO,GAAGC,UAAU,CAACZ,GAAG,EAAEM,MAAM,CAAC;YAAA,YACvB,IAAAO,qBAAQ,EAACP,MAAM,CAAC,EAAxBQ,GAAG,aAAHA,GAAG;YAAA,MAEPlB,OAAO,CAACC,GAAG,CAACkB,gBAAgB,IAAID,GAAG,KAAKlB,OAAO,CAACC,GAAG,CAACkB,gBAAgB;cAAA;cAAA;YAAA;YAAA,iCAC/D;cAAEC,YAAY,EAAE;YAAK,CAAC;UAAA;YAAA,KAG3BR,GAAG;cAAA;cAAA;YAAA;YACCS,OAAO,GAAGC,8BAAkB,CAACC,UAAU,CAACb,MAAM,CAAC;YACrDE,GAAG,CAACY,SAAS,CAAC,eAAe,EAAExB,OAAO,CAACC,GAAG,CAACwB,0BAA0B,IAAI,EAAE,CAAC;YAAC,KACzEJ,OAAO;cAAA;cAAA;YAAA;YAAA,iCACFA,OAAO,CAACZ,KAAK,CAAC;UAAA;YAInBiB,WAAW,GAAG,IAAAC,2BAAe,EAACT,GAAG,EAAEL,KAAK,CAAC;YAAA,MAE3C,CAACa,WAAW,IAAIvB,OAAO,CAACC,GAAG,CAAC;cAAA;cAAA;YAAA;YAAA,iCAAS;cAAEwB,UAAU,EAAE;YAAK,CAAC;UAAA;YAAA;YAAA,OAEvD,IAAAC,4BAAgB,EAAClB,YAAY,CAAC;UAAA;YAAA,KAEhCe,WAAW;cAAA;cAAA;YAAA;YAAA,iCAASI,cAAc,CAACJ,WAAW,EAAEf,YAAY,CAAC;UAAA;YAC3DoB,eAAe,GAAG;cAAErB,MAAM,EAANA,MAAM;cAAEQ,GAAG,EAAHA,GAAG;cAAEP,YAAY,EAAZA,YAAY;cAAEC,GAAG,EAAHA;YAAI,CAAC;YAAA;YAAA,OACrCoB,UAAU,iCAC1BD,eAAe;cAClBE,cAAc,EAAE,IAAI;cACpBnB,QAAQ,EAARA;YAAQ,GACR;UAAA;YAJIoB,MAAM;YAAA,iCAKL,gCAAKA,MAAM;cAAEnB,OAAO,EAAPA;YAAO,MAAM,CAAC,CAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACpC;EAAA,gBA/BKP,QAAQ;IAAA;EAAA;AAAA,GA+Bb;AAED,IAAMsB,cAAc;EAAA,0FAAG,kBAAOJ,WAAW,EAAEf,YAAY;IAAA;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OAChC,IAAAwB,uBAAW,kCAAMT,WAAW;cAAEf,YAAY,EAAZA;YAAY,GAAG;UAAA;YAA5DuB,MAAM;YAAA,mBACuBA,MAAM,CAAjCE,QAAQ;YAAhB,iDAA4B,CAAC,CAAC;YAAVlB,GAAG,oBAAHA,GAAG;YACjBmB,mBAAmB,GAAG,IAAAC,kCAAsB,EAACpB,GAAG,EAAEpB,mBAAmB,EAAE,CAAC;YAAA,gFAClE4B,WAAW;cAAEW,mBAAmB,EAAnBA;YAAmB,GAAKH,MAAM;cAAEK,SAAS,EAAE;YAAI;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACzE;EAAA,gBALKT,cAAc;IAAA;EAAA;AAAA,GAKnB;AAED,IAAMU,OAAO,GAAG,SAAVA,OAAO;EAAA,0BAAMlC,OAAO;IAAPA,OAAO,8BAAG,CAAC,CAAC;EAAA,OAC7BN,OAAO,CAACC,GAAG,CAACwC,mBAAmB,IAC/BnC,OAAO,CAAC,gBAAgB,CAAC,IACzBA,OAAO,CAAC,kBAAkB,CAAC,IAC3BA,OAAO,CAACoC,IAAI;AAAA;AAEd,IAAM1B,UAAU,GAAG,SAAbA,UAAU,CAAIZ,GAAG,EAAEM,MAAM,EAAK;EAClC,IAAIN,GAAG,EAAE;IACP,iBAAUuC,gBAAK,SAAGH,OAAO,CAACpC,GAAG,CAAC,SAAGM,MAAM;EACzC;EACA,cAEIkC,MAAM;IAAA,2BADRC,QAAQ;IAAIC,QAAQ,oBAARA,QAAQ;IAAEC,QAAQ,oBAARA,QAAQ;IAAEC,IAAI,oBAAJA,IAAI;EAEtC,IAAMC,OAAO,GAAGD,IAAI,aAAME,gBAAK,SAAGF,IAAI,IAAK,EAAE;EAE7C,iBAAUF,QAAQ,SAAGK,uBAAY,SAAGJ,QAAQ,SAAGE,OAAO,SAAGvC,MAAM;AACjE,CAAC;AAED,IAAMsB,UAAU;EAAA,0FAAG;IAAA;IAAA;MAAA;QAAA;UAAA;YAASd,GAAG,SAAHA,GAAG,EAAEP,YAAY,SAAZA,YAAY,EAAEC,GAAG,SAAHA,GAAG,EAAEqB,cAAc,SAAdA,cAAc,EAAEnB,QAAQ,SAARA,QAAQ;YAAA;YAAA;YAAA,OAM9DH,YAAY,CAACE,KAAK,CAAC;cAC3BA,KAAK,EAAEuC,oBAAa;cACpBC,SAAS,EAAE;gBACTnC,GAAG,EAAHA;cACF;YACF,CAAC,CAAC;UAAA;YAAA;YAAA,+CARAoC,IAAI,CACF9C,QAAQ;YAAI+C,MAAM,0BAANA,MAAM;YAAEC,UAAU,0BAAVA,UAAU;YAAEC,KAAK,0BAALA,KAAK;YAAA,gDAAErB,QAAQ;YAARA,QAAQ,uCAAG,CAAC,CAAC;YAAA,QASlBA,QAAQ,IAAI,CAAC,CAAC,gCAA5CsB,kBAAkB,EAAlBA,kBAAkB,sCAAG,IAAI,0BAAqB;YACtD,IAAI9C,GAAG,IAAI8C,kBAAkB,KAAK,IAAI,IAAIA,kBAAkB,IAAI,CAAC,EAAE;cACjE9C,GAAG,CAACY,SAAS,CAAC,eAAe,oBAAakC,kBAAkB,EAAG;YACjE;YAAC,MAEGD,KAAK,IAAIA,KAAK,KAAKvC,GAAG;cAAA;cAAA;YAAA;YACxB,IAAIN,GAAG,EAAE;cACPA,GAAG,CAAC+C,SAAS,CAAC,GAAG,EAAE;gBAAEC,QAAQ,EAAEH;cAAM,CAAC,CAAC;cACvC7C,GAAG,CAACiD,GAAG,EAAE;YACX,CAAC,MAAM;cACLjB,MAAM,CAACC,QAAQ,CAACiB,IAAI,GAAGL,KAAK;YAC9B;YAAC,kCACM,CAAC,CAAC;UAAA;YAELpB,mBAAmB,GAAG,IAAAC,kCAAsB,EAACpB,GAAG,EAAEpB,mBAAmB,EAAE,CAAC;YAAA,kCACvE;cACLsC,QAAQ,EAARA,QAAQ;cACRC,mBAAmB,EAAnBA,mBAAmB;cACnBkB,MAAM,EAANA,MAAM;cACNC,UAAU,EAAE,IAAAO,0CAAwB,EAACP,UAAU;YACjD,CAAC;UAAA;YAAA;YAAA;YAEKQ,UAAU,GAAG,IAAAC,uBAAW,EAAC/C,GAAG,CAAC;YAAA,MAC/Be,cAAc,IAAI+B,UAAU,IAAIpD,GAAG;cAAA;cAAA;YAAA;YACrCA,GAAG,CAAC+C,SAAS,CAAC,GAAG,EAAE;cAAEC,QAAQ,EAAEI;YAAW,CAAC,CAAC;YAC5CpD,GAAG,CAACiD,GAAG,EAAE;YAAC;YAAA;UAAA;YAAA,kCAEHK,WAAW,eAAMtD,GAAG,EAAEqB,cAAc,EAAEnB,QAAQ,CAAC;UAAA;YAAA,kCAGjDmB,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAEpC;EAAA,gBA7CKD,UAAU;IAAA;EAAA;AAAA,GA6Cf;AAED,IAAMkC,WAAW,GAAG,SAAdA,WAAW,CAAIC,GAAG,EAAEvD,GAAG,EAAEqB,cAAc,EAAEnB,QAAQ,EAAK;EAC1DA,QAAQ,CAACsD,MAAM,CAACC,IAAI,CAAC,aAAa,EAAE;IAAEC,KAAK,EAAEH;EAAI,CAAC,CAAC;EAEnD,IAAI,CAACvD,GAAG,EAAE,OAAO,CAAC,CAAC;EACnB,IAAIuD,GAAG,CAACI,YAAY,EAAE;IACpB3D,GAAG,CAAC+C,SAAS,CAAC,GAAG,EAAE;MAAE,cAAc,EAAE;IAAa,CAAC,CAAC;IACpD/C,GAAG,CAAC4D,KAAK,CAAC,6BAA6B,CAAC;IACxC5D,GAAG,CAACiD,GAAG,EAAE;EACX,CAAC,MAAM,IAAI5B,cAAc,IAAIkC,GAAG,CAACM,aAAa,IAAIN,GAAG,CAACM,aAAa,CAACC,MAAM,EAAE;IAC1E9D,GAAG,CAAC+D,UAAU,GAAGC,gCAAqB;IACtC,OAAO;MAAEC,SAAS,EAAED;IAAsB,CAAC;EAC7C;EAEA,OAAO,CAAC,CAAC;AACX,CAAC;AAAC,eACapE,QAAQ;AAAA"}
|
|
1
|
+
{"version":3,"file":"check-url.js","names":["getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","checkUrl","props","asPath","apolloClient","res","req","query","blazeApp","disableSsr","fullUrl","getFullUrl","parseUrl","url","BLAZE_STATUS_URL","isStatusPage","handler","handleStaticRoutes","getHandler","setHeader","BLAZE_CACHE_CONTROL_HEADER","previewData","checkPreviewUrl","checkAccessToken","Object","keys","cache","extract","length","getPreviewData","urlCheckOptions","doUrlCheck","handle404Error","result","getPageData","pageData","rootSelectorClasses","getRootSelectorClasses","isPreview","getHost","headers","BLAZE_FRONTEND_HOST","host","HTTPS","window","location","protocol","hostname","port","urlPort","COLON","DOUBLE_SLASH","checkUrlQuery","variables","data","itemId","itemEntity","urlTo","cacheControlMaxAge","writeHead","Location","end","href","getUnpublishedEntityName","parentPATH","checkParent","handleError","err","events","emit","error","networkError","write","graphQLErrors","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 { 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 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 && 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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"}
|
package/lib/hoc/withBlaze.js
CHANGED
|
@@ -158,45 +158,48 @@ function getWrappedApp(isSsr, config, blazeApp, App) {
|
|
|
158
158
|
apolloClient = getApolloClient(ctx, requestApp);
|
|
159
159
|
ctx.apolloClient = apolloClient;
|
|
160
160
|
ctx.blazeApp = requestApp;
|
|
161
|
+
requestApp.events.emit('page-load:get-initial-props:before', {
|
|
162
|
+
ctx: ctx
|
|
163
|
+
});
|
|
161
164
|
if (!App.getInitialProps) {
|
|
162
|
-
_context2.next =
|
|
165
|
+
_context2.next = 20;
|
|
163
166
|
break;
|
|
164
167
|
}
|
|
165
|
-
_context2.next =
|
|
168
|
+
_context2.next = 19;
|
|
166
169
|
return App.getInitialProps(context);
|
|
167
|
-
case 18:
|
|
168
|
-
appProps = _context2.sent;
|
|
169
170
|
case 19:
|
|
171
|
+
appProps = _context2.sent;
|
|
172
|
+
case 20:
|
|
170
173
|
_appProps = appProps, _appProps$pageProps = _appProps.pageProps, pageProps = _appProps$pageProps === void 0 ? {} : _appProps$pageProps;
|
|
171
174
|
mainProps = _objectSpread(_objectSpread({}, appProps), {}, {
|
|
172
175
|
pageProps: _objectSpread(_objectSpread({}, pageProps), errorProps)
|
|
173
176
|
});
|
|
174
177
|
if (isSsr) {
|
|
175
|
-
_context2.next =
|
|
178
|
+
_context2.next = 24;
|
|
176
179
|
break;
|
|
177
180
|
}
|
|
178
181
|
return _context2.abrupt("return", mainProps);
|
|
179
|
-
case
|
|
180
|
-
_context2.prev =
|
|
181
|
-
_context2.next =
|
|
182
|
+
case 24:
|
|
183
|
+
_context2.prev = 24;
|
|
184
|
+
_context2.next = 27;
|
|
182
185
|
return (0, _ssr.getDataFromTree)( /*#__PURE__*/_react["default"].createElement(AppTree, (0, _extends2["default"])({}, appProps, {
|
|
183
186
|
Component: _Component,
|
|
184
187
|
router: router,
|
|
185
188
|
apolloClient: apolloClient
|
|
186
189
|
})));
|
|
187
|
-
case
|
|
188
|
-
_context2.next =
|
|
190
|
+
case 27:
|
|
191
|
+
_context2.next = 35;
|
|
189
192
|
break;
|
|
190
|
-
case
|
|
191
|
-
_context2.prev =
|
|
192
|
-
_context2.t0 = _context2["catch"](
|
|
193
|
+
case 29:
|
|
194
|
+
_context2.prev = 29;
|
|
195
|
+
_context2.t0 = _context2["catch"](24);
|
|
193
196
|
errorProps = (0, _helpers.getErrorMessage)(_context2.t0);
|
|
194
197
|
if (errorProps.errorCode) ctx.res.statusCode = errorProps.errorCode;
|
|
195
198
|
ctx.blazeApp.events.emit('monitor:log', {
|
|
196
199
|
error: _context2.t0
|
|
197
200
|
});
|
|
198
201
|
requestApp.log.error('Error while running `getDataFromTree`', _context2.t0);
|
|
199
|
-
case
|
|
202
|
+
case 35:
|
|
200
203
|
apolloState = apolloClient.cache.extract();
|
|
201
204
|
sortedState = Object.keys(apolloState).sort().reduce(function (acc, key) {
|
|
202
205
|
acc[key] = apolloState[key];
|
|
@@ -207,12 +210,12 @@ function getWrappedApp(isSsr, config, blazeApp, App) {
|
|
|
207
210
|
apolloState: sortedState,
|
|
208
211
|
processedBlazeEntities: blazeApp.getProcessedEntities()
|
|
209
212
|
}));
|
|
210
|
-
case
|
|
213
|
+
case 38:
|
|
211
214
|
case "end":
|
|
212
215
|
return _context2.stop();
|
|
213
216
|
}
|
|
214
217
|
}
|
|
215
|
-
}, _callee2, null, [[
|
|
218
|
+
}, _callee2, null, [[24, 29]]);
|
|
216
219
|
}));
|
|
217
220
|
function getInitialProps(_x) {
|
|
218
221
|
return _getInitialProps.apply(this, arguments);
|
package/lib/hoc/withBlaze.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withBlaze.js","names":["ErrorBoundary","dynamic","APP_LOG_NAMESPACE_MAIN","getWrappedApp","isSsr","config","blazeApp","App","getApolloClient","ctx","requestApp","apolloClient","getClient","createClient","getRequestApp","getBlazeUi","props","state","appLoaded","initComplete","init","setState","apolloState","processedBlazeEntities","setupCheckAccessToken","setApolloClient","context","_Component","Component","router","AppTree","appProps","errorProps","req","res","getInitialProps","pageProps","mainProps","getDataFromTree","getErrorMessage","errorCode","statusCode","events","emit","error","log","cache","extract","sortedState","Object","keys","sort","reduce","acc","key","getProcessedEntities","PropTypes","object","undefined","withBlaze","buildConfig","forceSsr","window","blazeConfig","logNameSpace"],"sources":["../../src/hoc/withBlaze.js"],"sourcesContent":["// see: https://github.com/zeit/next.js/blob/canary/examples/with-apollo-auth/lib/withApollo.js\nimport React, { Component } from 'react';\nimport { getDataFromTree } from '@apollo/client/react/ssr';\nimport getBlazeUi from '@blaze-cms/core-ui';\nimport { setupCheckAccessToken } from '@blaze-cms/core-auth-ui';\nimport PropTypes from 'prop-types';\nimport dynamic from 'next/dynamic'; // Next.js dynamic\nimport blazeConfig from '../blaze.config';\nimport { getErrorMessage } from '../helpers';\n\nconst ErrorBoundary = dynamic(() => import('@blaze-cms/core-errors-ui'));\n\nconst APP_LOG_NAMESPACE_MAIN = 'main';\n\nfunction getWrappedApp(isSsr, config, blazeApp, App) {\n function getApolloClient(ctx, requestApp) {\n return ctx.apolloClient || requestApp.getClient() || requestApp.createClient();\n }\n\n function getRequestApp(requestApp) {\n return !requestApp && isSsr ? getBlazeUi({ config }) : blazeApp;\n }\n return class extends Component {\n static displayName = 'withBlaze(App)';\n\n static propTypes = {\n apolloState: PropTypes.object,\n apolloClient: PropTypes.object,\n processedBlazeEntities: PropTypes.object\n };\n\n static defaultProps = {\n apolloState: {},\n apolloClient: null,\n processedBlazeEntities: undefined\n };\n\n static async getInitialProps(context) {\n const { Component: _Component, router, AppTree, ctx } = context;\n let appProps = {};\n let errorProps = {};\n\n let requestApp = ctx.blazeApp;\n requestApp = getRequestApp(requestApp);\n\n requestApp.ctx.router = router;\n requestApp.ctx.req = ctx.req;\n requestApp.ctx.res = ctx.res;\n\n await blazeApp.init();\n await requestApp.init();\n\n const apolloClient = getApolloClient(ctx, requestApp);\n\n ctx.apolloClient = apolloClient;\n ctx.blazeApp = requestApp;\n if (App.getInitialProps) {\n appProps = await App.getInitialProps(context);\n }\n\n const { pageProps = {} } = appProps;\n const mainProps = {\n ...appProps,\n pageProps: { ...pageProps, ...errorProps }\n };\n\n if (!isSsr) return mainProps;\n\n try {\n await getDataFromTree(\n <AppTree\n {...appProps}\n Component={_Component}\n router={router}\n apolloClient={apolloClient}\n />\n );\n } catch (error) {\n errorProps = getErrorMessage(error);\n if (errorProps.errorCode) ctx.res.statusCode = errorProps.errorCode;\n ctx.blazeApp.events.emit('monitor:log', { error });\n requestApp.log.error('Error while running `getDataFromTree`', error);\n }\n\n const apolloState = apolloClient.cache.extract();\n const sortedState = Object.keys(apolloState)\n .sort()\n .reduce((acc, key) => {\n acc[key] = apolloState[key];\n return acc;\n }, {});\n\n return {\n ...mainProps,\n pageProps: { ...mainProps.pageProps, ...errorProps },\n apolloState: sortedState,\n processedBlazeEntities: blazeApp.getProcessedEntities()\n };\n }\n\n constructor(props) {\n super(props);\n this.apolloClient = props.apolloClient;\n this.state = {\n appLoaded: isSsr || blazeApp.initComplete()\n };\n this.blazeApp = blazeApp;\n }\n\n async componentDidMount() {\n if (blazeApp.initComplete()) return;\n\n await blazeApp.init();\n\n this.setState({\n appLoaded: blazeApp.initComplete()\n });\n }\n\n setApolloClient() {\n if (!this.apolloClient) {\n const { apolloState, processedBlazeEntities } = this.props;\n this.apolloClient = blazeApp.createClient(apolloState, processedBlazeEntities);\n setupCheckAccessToken(this.apolloClient);\n }\n }\n\n render() {\n const { appLoaded } = this.state;\n\n if (!appLoaded && !isSsr) return '...loading';\n\n this.setApolloClient();\n\n return (\n <ErrorBoundary app={this.blazeApp}>\n <App {...this.props} apolloClient={this.apolloClient} />\n </ErrorBoundary>\n );\n }\n };\n}\n\nconst withBlaze = (App, buildConfig, { forceSsr = false } = {}) => {\n const isSsr = forceSsr || typeof window === 'undefined';\n const config = buildConfig ? buildConfig(blazeConfig) : blazeConfig;\n const blazeApp = getBlazeUi({ config, logNameSpace: APP_LOG_NAMESPACE_MAIN });\n blazeApp.init();\n\n return getWrappedApp(isSsr, config, blazeApp, App);\n};\n\nexport default withBlaze;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"withBlaze.js","names":["ErrorBoundary","dynamic","APP_LOG_NAMESPACE_MAIN","getWrappedApp","isSsr","config","blazeApp","App","getApolloClient","ctx","requestApp","apolloClient","getClient","createClient","getRequestApp","getBlazeUi","props","state","appLoaded","initComplete","init","setState","apolloState","processedBlazeEntities","setupCheckAccessToken","setApolloClient","context","_Component","Component","router","AppTree","appProps","errorProps","req","res","events","emit","getInitialProps","pageProps","mainProps","getDataFromTree","getErrorMessage","errorCode","statusCode","error","log","cache","extract","sortedState","Object","keys","sort","reduce","acc","key","getProcessedEntities","PropTypes","object","undefined","withBlaze","buildConfig","forceSsr","window","blazeConfig","logNameSpace"],"sources":["../../src/hoc/withBlaze.js"],"sourcesContent":["// see: https://github.com/zeit/next.js/blob/canary/examples/with-apollo-auth/lib/withApollo.js\nimport React, { Component } from 'react';\nimport { getDataFromTree } from '@apollo/client/react/ssr';\nimport getBlazeUi from '@blaze-cms/core-ui';\nimport { setupCheckAccessToken } from '@blaze-cms/core-auth-ui';\nimport PropTypes from 'prop-types';\nimport dynamic from 'next/dynamic'; // Next.js dynamic\nimport blazeConfig from '../blaze.config';\nimport { getErrorMessage } from '../helpers';\n\nconst ErrorBoundary = dynamic(() => import('@blaze-cms/core-errors-ui'));\n\nconst APP_LOG_NAMESPACE_MAIN = 'main';\n\nfunction getWrappedApp(isSsr, config, blazeApp, App) {\n function getApolloClient(ctx, requestApp) {\n return ctx.apolloClient || requestApp.getClient() || requestApp.createClient();\n }\n\n function getRequestApp(requestApp) {\n return !requestApp && isSsr ? getBlazeUi({ config }) : blazeApp;\n }\n return class extends Component {\n static displayName = 'withBlaze(App)';\n\n static propTypes = {\n apolloState: PropTypes.object,\n apolloClient: PropTypes.object,\n processedBlazeEntities: PropTypes.object\n };\n\n static defaultProps = {\n apolloState: {},\n apolloClient: null,\n processedBlazeEntities: undefined\n };\n\n static async getInitialProps(context) {\n const { Component: _Component, router, AppTree, ctx } = context;\n let appProps = {};\n let errorProps = {};\n\n let requestApp = ctx.blazeApp;\n requestApp = getRequestApp(requestApp);\n\n requestApp.ctx.router = router;\n requestApp.ctx.req = ctx.req;\n requestApp.ctx.res = ctx.res;\n\n await blazeApp.init();\n await requestApp.init();\n\n const apolloClient = getApolloClient(ctx, requestApp);\n\n ctx.apolloClient = apolloClient;\n ctx.blazeApp = requestApp;\n\n requestApp.events.emit('page-load:get-initial-props:before', { ctx });\n\n if (App.getInitialProps) {\n appProps = await App.getInitialProps(context);\n }\n\n const { pageProps = {} } = appProps;\n const mainProps = {\n ...appProps,\n pageProps: { ...pageProps, ...errorProps }\n };\n\n if (!isSsr) return mainProps;\n\n try {\n await getDataFromTree(\n <AppTree\n {...appProps}\n Component={_Component}\n router={router}\n apolloClient={apolloClient}\n />\n );\n } catch (error) {\n errorProps = getErrorMessage(error);\n if (errorProps.errorCode) ctx.res.statusCode = errorProps.errorCode;\n ctx.blazeApp.events.emit('monitor:log', { error });\n requestApp.log.error('Error while running `getDataFromTree`', error);\n }\n\n const apolloState = apolloClient.cache.extract();\n const sortedState = Object.keys(apolloState)\n .sort()\n .reduce((acc, key) => {\n acc[key] = apolloState[key];\n return acc;\n }, {});\n\n return {\n ...mainProps,\n pageProps: { ...mainProps.pageProps, ...errorProps },\n apolloState: sortedState,\n processedBlazeEntities: blazeApp.getProcessedEntities()\n };\n }\n\n constructor(props) {\n super(props);\n this.apolloClient = props.apolloClient;\n this.state = {\n appLoaded: isSsr || blazeApp.initComplete()\n };\n this.blazeApp = blazeApp;\n }\n\n async componentDidMount() {\n if (blazeApp.initComplete()) return;\n\n await blazeApp.init();\n\n this.setState({\n appLoaded: blazeApp.initComplete()\n });\n }\n\n setApolloClient() {\n if (!this.apolloClient) {\n const { apolloState, processedBlazeEntities } = this.props;\n this.apolloClient = blazeApp.createClient(apolloState, processedBlazeEntities);\n setupCheckAccessToken(this.apolloClient);\n }\n }\n\n render() {\n const { appLoaded } = this.state;\n\n if (!appLoaded && !isSsr) return '...loading';\n\n this.setApolloClient();\n\n return (\n <ErrorBoundary app={this.blazeApp}>\n <App {...this.props} apolloClient={this.apolloClient} />\n </ErrorBoundary>\n );\n }\n };\n}\n\nconst withBlaze = (App, buildConfig, { forceSsr = false } = {}) => {\n const isSsr = forceSsr || typeof window === 'undefined';\n const config = buildConfig ? buildConfig(blazeConfig) : blazeConfig;\n const blazeApp = getBlazeUi({ config, logNameSpace: APP_LOG_NAMESPACE_MAIN });\n blazeApp.init();\n\n return getWrappedApp(isSsr, config, blazeApp, App);\n};\n\nexport default withBlaze;\n"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
4
|
import { parseUrl } from 'query-string';
|
|
5
5
|
import { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';
|
|
6
|
-
import {
|
|
6
|
+
import { checkAccessToken } from '@blaze-cms/core-auth-ui';
|
|
7
7
|
import { HTTPS, DOUBLE_SLASH, COLON, NOT_FOUND_STATUS_CODE } from '../constants';
|
|
8
8
|
import { checkUrlQuery } from '../application/query';
|
|
9
9
|
import checkParent from './check-parent';
|
|
@@ -12,10 +12,6 @@ import handleStaticRoutes from './handle-static-routes';
|
|
|
12
12
|
import getPageData from './get-page-data';
|
|
13
13
|
import getRootSelectorClasses from './get-root-selector-classes';
|
|
14
14
|
const getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);
|
|
15
|
-
const hasAuth = req => {
|
|
16
|
-
if (!req) return false;
|
|
17
|
-
return !!getAccessToken(req.headers.cookie);
|
|
18
|
-
};
|
|
19
15
|
const checkUrl = async props => {
|
|
20
16
|
const {
|
|
21
17
|
asPath,
|
|
@@ -23,7 +19,8 @@ const checkUrl = async props => {
|
|
|
23
19
|
res,
|
|
24
20
|
req,
|
|
25
21
|
query,
|
|
26
|
-
blazeApp
|
|
22
|
+
blazeApp,
|
|
23
|
+
disableSsr
|
|
27
24
|
} = props;
|
|
28
25
|
const fullUrl = getFullUrl(req, asPath);
|
|
29
26
|
const {
|
|
@@ -42,10 +39,13 @@ const checkUrl = async props => {
|
|
|
42
39
|
}
|
|
43
40
|
}
|
|
44
41
|
const previewData = checkPreviewUrl(url, query);
|
|
45
|
-
if (!previewData &&
|
|
42
|
+
if (!previewData && disableSsr) return {
|
|
46
43
|
disableSsr: true
|
|
47
44
|
};
|
|
48
|
-
await checkAccessToken(apolloClient)
|
|
45
|
+
await checkAccessToken(apolloClient, _objectSpread(_objectSpread({}, props), {}, {
|
|
46
|
+
disableSsr: !Object.keys(apolloClient.cache.extract()).length // empty cache means SSR was disabled
|
|
47
|
+
}));
|
|
48
|
+
|
|
49
49
|
if (previewData) return getPreviewData(previewData, apolloClient);
|
|
50
50
|
const urlCheckOptions = {
|
|
51
51
|
asPath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-url.js","names":["parseUrl","getUnpublishedEntityName","getAccessToken","checkAccessToken","HTTPS","DOUBLE_SLASH","COLON","NOT_FOUND_STATUS_CODE","checkUrlQuery","checkParent","checkPreviewUrl","handleStaticRoutes","getPageData","getRootSelectorClasses","getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","hasAuth","req","headers","cookie","checkUrl","props","asPath","apolloClient","res","query","blazeApp","fullUrl","getFullUrl","url","BLAZE_STATUS_URL","isStatusPage","handler","getHandler","setHeader","BLAZE_CACHE_CONTROL_HEADER","previewData","disableSsr","getPreviewData","urlCheckOptions","result","doUrlCheck","handle404Error","pageData","rootSelectorClasses","isPreview","getHost","BLAZE_FRONTEND_HOST","host","location","protocol","hostname","port","window","urlPort","data","itemId","itemEntity","urlTo","variables","cacheControlMaxAge","writeHead","Location","end","href","err","parentPATH","handleError","events","emit","error","networkError","write","graphQLErrors","length","statusCode","errorCode"],"sources":["../../src/helpers/check-url.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { getAccessToken, checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport { HTTPS, DOUBLE_SLASH, COLON, NOT_FOUND_STATUS_CODE } from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst hasAuth = req => {\n if (!req) return false;\n return !!getAccessToken(req.headers.cookie);\n};\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n\n if (res) {\n const handler = handleStaticRoutes.getHandler(asPath);\n res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && hasAuth(req)) return { disableSsr: true };\n\n await checkAccessToken(apolloClient);\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async ({ url, apolloClient, res, handle404Error, blazeApp }) => {\n try {\n const {\n data: {\n checkUrl: { itemId, itemEntity, urlTo, pageData = {} }\n }\n } = await apolloClient.query({\n query: checkUrlQuery,\n variables: {\n url\n }\n });\n\n const { cacheControlMaxAge = null } = pageData || {}; // 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","setHeader","BLAZE_CACHE_CONTROL_HEADER","previewData","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 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 && 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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"}
|
package/lib-es/hoc/withBlaze.js
CHANGED
|
@@ -43,6 +43,9 @@ function getWrappedApp(isSsr, config, blazeApp, App) {
|
|
|
43
43
|
const apolloClient = getApolloClient(ctx, requestApp);
|
|
44
44
|
ctx.apolloClient = apolloClient;
|
|
45
45
|
ctx.blazeApp = requestApp;
|
|
46
|
+
requestApp.events.emit('page-load:get-initial-props:before', {
|
|
47
|
+
ctx
|
|
48
|
+
});
|
|
46
49
|
if (App.getInitialProps) {
|
|
47
50
|
appProps = await App.getInitialProps(context);
|
|
48
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withBlaze.js","names":["React","Component","getDataFromTree","getBlazeUi","setupCheckAccessToken","PropTypes","dynamic","blazeConfig","getErrorMessage","ErrorBoundary","APP_LOG_NAMESPACE_MAIN","getWrappedApp","isSsr","config","blazeApp","App","getApolloClient","ctx","requestApp","apolloClient","getClient","createClient","getRequestApp","getInitialProps","context","_Component","router","AppTree","appProps","errorProps","req","res","init","
|
|
1
|
+
{"version":3,"file":"withBlaze.js","names":["React","Component","getDataFromTree","getBlazeUi","setupCheckAccessToken","PropTypes","dynamic","blazeConfig","getErrorMessage","ErrorBoundary","APP_LOG_NAMESPACE_MAIN","getWrappedApp","isSsr","config","blazeApp","App","getApolloClient","ctx","requestApp","apolloClient","getClient","createClient","getRequestApp","getInitialProps","context","_Component","router","AppTree","appProps","errorProps","req","res","init","events","emit","pageProps","mainProps","error","errorCode","statusCode","log","apolloState","cache","extract","sortedState","Object","keys","sort","reduce","acc","key","processedBlazeEntities","getProcessedEntities","constructor","props","state","appLoaded","initComplete","componentDidMount","setState","setApolloClient","render","object","undefined","withBlaze","buildConfig","forceSsr","window","logNameSpace"],"sources":["../../src/hoc/withBlaze.js"],"sourcesContent":["// see: https://github.com/zeit/next.js/blob/canary/examples/with-apollo-auth/lib/withApollo.js\nimport React, { Component } from 'react';\nimport { getDataFromTree } from '@apollo/client/react/ssr';\nimport getBlazeUi from '@blaze-cms/core-ui';\nimport { setupCheckAccessToken } from '@blaze-cms/core-auth-ui';\nimport PropTypes from 'prop-types';\nimport dynamic from 'next/dynamic'; // Next.js dynamic\nimport blazeConfig from '../blaze.config';\nimport { getErrorMessage } from '../helpers';\n\nconst ErrorBoundary = dynamic(() => import('@blaze-cms/core-errors-ui'));\n\nconst APP_LOG_NAMESPACE_MAIN = 'main';\n\nfunction getWrappedApp(isSsr, config, blazeApp, App) {\n function getApolloClient(ctx, requestApp) {\n return ctx.apolloClient || requestApp.getClient() || requestApp.createClient();\n }\n\n function getRequestApp(requestApp) {\n return !requestApp && isSsr ? getBlazeUi({ config }) : blazeApp;\n }\n return class extends Component {\n static displayName = 'withBlaze(App)';\n\n static propTypes = {\n apolloState: PropTypes.object,\n apolloClient: PropTypes.object,\n processedBlazeEntities: PropTypes.object\n };\n\n static defaultProps = {\n apolloState: {},\n apolloClient: null,\n processedBlazeEntities: undefined\n };\n\n static async getInitialProps(context) {\n const { Component: _Component, router, AppTree, ctx } = context;\n let appProps = {};\n let errorProps = {};\n\n let requestApp = ctx.blazeApp;\n requestApp = getRequestApp(requestApp);\n\n requestApp.ctx.router = router;\n requestApp.ctx.req = ctx.req;\n requestApp.ctx.res = ctx.res;\n\n await blazeApp.init();\n await requestApp.init();\n\n const apolloClient = getApolloClient(ctx, requestApp);\n\n ctx.apolloClient = apolloClient;\n ctx.blazeApp = requestApp;\n\n requestApp.events.emit('page-load:get-initial-props:before', { ctx });\n\n if (App.getInitialProps) {\n appProps = await App.getInitialProps(context);\n }\n\n const { pageProps = {} } = appProps;\n const mainProps = {\n ...appProps,\n pageProps: { ...pageProps, ...errorProps }\n };\n\n if (!isSsr) return mainProps;\n\n try {\n await getDataFromTree(\n <AppTree\n {...appProps}\n Component={_Component}\n router={router}\n apolloClient={apolloClient}\n />\n );\n } catch (error) {\n errorProps = getErrorMessage(error);\n if (errorProps.errorCode) ctx.res.statusCode = errorProps.errorCode;\n ctx.blazeApp.events.emit('monitor:log', { error });\n requestApp.log.error('Error while running `getDataFromTree`', error);\n }\n\n const apolloState = apolloClient.cache.extract();\n const sortedState = Object.keys(apolloState)\n .sort()\n .reduce((acc, key) => {\n acc[key] = apolloState[key];\n return acc;\n }, {});\n\n return {\n ...mainProps,\n pageProps: { ...mainProps.pageProps, ...errorProps },\n apolloState: sortedState,\n processedBlazeEntities: blazeApp.getProcessedEntities()\n };\n }\n\n constructor(props) {\n super(props);\n this.apolloClient = props.apolloClient;\n this.state = {\n appLoaded: isSsr || blazeApp.initComplete()\n };\n this.blazeApp = blazeApp;\n }\n\n async componentDidMount() {\n if (blazeApp.initComplete()) return;\n\n await blazeApp.init();\n\n this.setState({\n appLoaded: blazeApp.initComplete()\n });\n }\n\n setApolloClient() {\n if (!this.apolloClient) {\n const { apolloState, processedBlazeEntities } = this.props;\n this.apolloClient = blazeApp.createClient(apolloState, processedBlazeEntities);\n setupCheckAccessToken(this.apolloClient);\n }\n }\n\n render() {\n const { appLoaded } = this.state;\n\n if (!appLoaded && !isSsr) return '...loading';\n\n this.setApolloClient();\n\n return (\n <ErrorBoundary app={this.blazeApp}>\n <App {...this.props} apolloClient={this.apolloClient} />\n </ErrorBoundary>\n );\n }\n };\n}\n\nconst withBlaze = (App, buildConfig, { forceSsr = false } = {}) => {\n const isSsr = forceSsr || typeof window === 'undefined';\n const config = buildConfig ? buildConfig(blazeConfig) : blazeConfig;\n const blazeApp = getBlazeUi({ config, logNameSpace: APP_LOG_NAMESPACE_MAIN });\n blazeApp.init();\n\n return getWrappedApp(isSsr, config, blazeApp, App);\n};\n\nexport default withBlaze;\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.125.0-alpha.
|
|
3
|
+
"version": "0.125.0-alpha.18",
|
|
4
4
|
"description": "Blaze nextjs tools",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -28,18 +28,19 @@
|
|
|
28
28
|
"license": "GPL-3.0",
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@apollo/client": "3.5.x",
|
|
31
|
-
"@blaze-cms/core-auth-ui": "
|
|
31
|
+
"@blaze-cms/core-auth-ui": "0.125.0-alpha.18",
|
|
32
32
|
"@blaze-cms/core-errors": "^0.118.0",
|
|
33
33
|
"@blaze-cms/core-errors-ui": "^0.119.0",
|
|
34
|
-
"@blaze-cms/core-ui": "
|
|
35
|
-
"@blaze-cms/nextjs-components": "
|
|
36
|
-
"@blaze-cms/plugin-auth-fe": "
|
|
37
|
-
"@blaze-cms/plugin-
|
|
38
|
-
"@blaze-cms/plugin-
|
|
39
|
-
"@blaze-cms/plugin-
|
|
40
|
-
"@blaze-cms/plugin-
|
|
41
|
-
"@blaze-cms/plugin-
|
|
42
|
-
"@blaze-cms/
|
|
34
|
+
"@blaze-cms/core-ui": "0.125.0-alpha.18",
|
|
35
|
+
"@blaze-cms/nextjs-components": "0.125.0-alpha.18",
|
|
36
|
+
"@blaze-cms/plugin-auth-fe": "0.125.0-alpha.18",
|
|
37
|
+
"@blaze-cms/plugin-auth-local-fe": "0.125.0-alpha.18",
|
|
38
|
+
"@blaze-cms/plugin-google-maps-fe": "0.125.0-alpha.18",
|
|
39
|
+
"@blaze-cms/plugin-gtm-fe": "0.125.0-alpha.18",
|
|
40
|
+
"@blaze-cms/plugin-page-builder-fe": "0.125.0-alpha.18",
|
|
41
|
+
"@blaze-cms/plugin-preview-fe": "0.125.0-alpha.18",
|
|
42
|
+
"@blaze-cms/plugin-search-ui": "0.125.0-alpha.18",
|
|
43
|
+
"@blaze-cms/react-page-builder": "0.125.0-alpha.18",
|
|
43
44
|
"@blaze-cms/setup-ui": "^0.92.0",
|
|
44
45
|
"autoprefixer": "^10.2.3",
|
|
45
46
|
"core-js": "^3.2.1",
|
|
@@ -67,5 +68,5 @@
|
|
|
67
68
|
"lib/*",
|
|
68
69
|
"lib-es/*"
|
|
69
70
|
],
|
|
70
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "d4abd2ef08b28ceb9eeae50da54fb091c628e363"
|
|
71
72
|
}
|
package/src/helpers/check-url.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { parseUrl } from 'query-string';
|
|
2
2
|
import { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';
|
|
3
|
-
import {
|
|
3
|
+
import { checkAccessToken } from '@blaze-cms/core-auth-ui';
|
|
4
4
|
import { HTTPS, DOUBLE_SLASH, COLON, NOT_FOUND_STATUS_CODE } from '../constants';
|
|
5
5
|
import { checkUrlQuery } from '../application/query';
|
|
6
6
|
import checkParent from './check-parent';
|
|
@@ -11,13 +11,8 @@ import getRootSelectorClasses from './get-root-selector-classes';
|
|
|
11
11
|
|
|
12
12
|
const getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);
|
|
13
13
|
|
|
14
|
-
const hasAuth = req => {
|
|
15
|
-
if (!req) return false;
|
|
16
|
-
return !!getAccessToken(req.headers.cookie);
|
|
17
|
-
};
|
|
18
|
-
|
|
19
14
|
const checkUrl = async props => {
|
|
20
|
-
const { asPath, apolloClient, res, req, query, blazeApp } = props;
|
|
15
|
+
const { asPath, apolloClient, res, req, query, blazeApp, disableSsr } = props;
|
|
21
16
|
const fullUrl = getFullUrl(req, asPath);
|
|
22
17
|
const { url } = parseUrl(asPath);
|
|
23
18
|
|
|
@@ -35,9 +30,12 @@ const checkUrl = async props => {
|
|
|
35
30
|
|
|
36
31
|
const previewData = checkPreviewUrl(url, query);
|
|
37
32
|
|
|
38
|
-
if (!previewData &&
|
|
33
|
+
if (!previewData && disableSsr) return { disableSsr: true };
|
|
39
34
|
|
|
40
|
-
await checkAccessToken(apolloClient
|
|
35
|
+
await checkAccessToken(apolloClient, {
|
|
36
|
+
...props,
|
|
37
|
+
disableSsr: !Object.keys(apolloClient.cache.extract()).length // empty cache means SSR was disabled
|
|
38
|
+
});
|
|
41
39
|
|
|
42
40
|
if (previewData) return getPreviewData(previewData, apolloClient);
|
|
43
41
|
const urlCheckOptions = { asPath, url, apolloClient, res };
|
package/src/hoc/withBlaze.js
CHANGED
|
@@ -54,6 +54,9 @@ function getWrappedApp(isSsr, config, blazeApp, App) {
|
|
|
54
54
|
|
|
55
55
|
ctx.apolloClient = apolloClient;
|
|
56
56
|
ctx.blazeApp = requestApp;
|
|
57
|
+
|
|
58
|
+
requestApp.events.emit('page-load:get-initial-props:before', { ctx });
|
|
59
|
+
|
|
57
60
|
if (App.getInitialProps) {
|
|
58
61
|
appProps = await App.getInitialProps(context);
|
|
59
62
|
}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import '@testing-library/jest-dom/extend-expect';
|
|
6
|
-
import { getAccessToken } from '@blaze-cms/core-auth-ui';
|
|
7
6
|
|
|
8
7
|
import { checkUrl } from '../../../../src/helpers';
|
|
9
8
|
import { ROUTE_PATTERN_SITEMAP, NOT_FOUND_STATUS_CODE } from '../../../../src/constants';
|
|
@@ -15,8 +14,7 @@ import getRootSelectorClasses from '../../../../src/helpers/get-root-selector-cl
|
|
|
15
14
|
const { setEnvs, deleteEnvs } = require('@blaze-cms/tools/test-helpers/test-files/test-env');
|
|
16
15
|
|
|
17
16
|
jest.mock('@blaze-cms/core-auth-ui', () => ({
|
|
18
|
-
checkAccessToken: jest.fn()
|
|
19
|
-
getAccessToken: jest.fn(() => false)
|
|
17
|
+
checkAccessToken: jest.fn()
|
|
20
18
|
}));
|
|
21
19
|
|
|
22
20
|
jest.mock('../../../../src/helpers/handle-static-routes', () => ({
|
|
@@ -38,6 +36,9 @@ describe('Check url', () => {
|
|
|
38
36
|
const rootPage = '/';
|
|
39
37
|
const pageData = { pageData: true };
|
|
40
38
|
const apolloClient = {
|
|
39
|
+
cache: {
|
|
40
|
+
extract: jest.fn(() => ({}))
|
|
41
|
+
},
|
|
41
42
|
query: jest.fn(async () => ({
|
|
42
43
|
data: {
|
|
43
44
|
checkUrl: { itemId, itemEntity, urlTo: null, pageData }
|
|
@@ -140,8 +141,7 @@ describe('Check url', () => {
|
|
|
140
141
|
});
|
|
141
142
|
|
|
142
143
|
it('should return disableSsr prop', async () => {
|
|
143
|
-
|
|
144
|
-
const result = await checkUrl({ ...props });
|
|
144
|
+
const result = await checkUrl({ ...props, disableSsr: true });
|
|
145
145
|
expect(result).toHaveProperty('disableSsr', true);
|
|
146
146
|
});
|
|
147
147
|
|
|
@@ -125,6 +125,9 @@ describe('withBlaze HOC', () => {
|
|
|
125
125
|
router,
|
|
126
126
|
apolloClient: blazeMock.createClient()
|
|
127
127
|
});
|
|
128
|
+
expect(blazeMock.events.emit).toHaveBeenCalledWith('page-load:get-initial-props:before', {
|
|
129
|
+
ctx: context.ctx
|
|
130
|
+
});
|
|
128
131
|
expect(blazeMock.init).toHaveBeenCalledTimes(3);
|
|
129
132
|
expect(blazeMock.getProcessedEntities).toHaveBeenCalledTimes(2);
|
|
130
133
|
});
|