@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 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.
@@ -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 && hasAuth(req))) {
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":"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"}
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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"}
@@ -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 = 19;
165
+ _context2.next = 20;
163
166
  break;
164
167
  }
165
- _context2.next = 18;
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 = 23;
178
+ _context2.next = 24;
176
179
  break;
177
180
  }
178
181
  return _context2.abrupt("return", mainProps);
179
- case 23:
180
- _context2.prev = 23;
181
- _context2.next = 26;
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 26:
188
- _context2.next = 34;
190
+ case 27:
191
+ _context2.next = 35;
189
192
  break;
190
- case 28:
191
- _context2.prev = 28;
192
- _context2.t0 = _context2["catch"](23);
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 34:
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 37:
213
+ case 38:
211
214
  case "end":
212
215
  return _context2.stop();
213
216
  }
214
217
  }
215
- }, _callee2, null, [[23, 28]]);
218
+ }, _callee2, null, [[24, 29]]);
216
219
  }));
217
220
  function getInitialProps(_x) {
218
221
  return _getInitialProps.apply(this, arguments);
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAA6C;AAAA;AAAA;AAAA;AAAA;AAAA;AAE7C,IAAMA,aAAa,GAAG,IAAAC,mBAAO,EAAC;EAAA;IAAA,uCAAa,2BAA2B;EAAA;AAAA,CAAC,CAAC;AAExE,IAAMC,sBAAsB,GAAG,MAAM;AAErC,SAASC,aAAa,CAACC,KAAK,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,GAAG,EAAE;EAAA;EACnD,SAASC,eAAe,CAACC,GAAG,EAAEC,UAAU,EAAE;IACxC,OAAOD,GAAG,CAACE,YAAY,IAAID,UAAU,CAACE,SAAS,EAAE,IAAIF,UAAU,CAACG,YAAY,EAAE;EAChF;EAEA,SAASC,aAAa,CAACJ,UAAU,EAAE;IACjC,OAAO,CAACA,UAAU,IAAIN,KAAK,GAAG,IAAAW,kBAAU,EAAC;MAAEV,MAAM,EAANA;IAAO,CAAC,CAAC,GAAGC,QAAQ;EACjE;EACA;IAAA;IAAA;IAiFE,gBAAYU,KAAK,EAAE;MAAA;MAAA;MACjB,0BAAMA,KAAK;MACX,MAAKL,YAAY,GAAGK,KAAK,CAACL,YAAY;MACtC,MAAKM,KAAK,GAAG;QACXC,SAAS,EAAEd,KAAK,IAAIE,QAAQ,CAACa,YAAY;MAC3C,CAAC;MACD,MAAKb,QAAQ,GAAGA,QAAQ;MAAC;IAC3B;IAAC;MAAA;MAAA;QAAA,uGAED;UAAA;YAAA;cAAA;gBAAA;kBAAA,KACMA,QAAQ,CAACa,YAAY,EAAE;oBAAA;oBAAA;kBAAA;kBAAA;gBAAA;kBAAA;kBAAA,OAErBb,QAAQ,CAACc,IAAI,EAAE;gBAAA;kBAErB,IAAI,CAACC,QAAQ,CAAC;oBACZH,SAAS,EAAEZ,QAAQ,CAACa,YAAY;kBAClC,CAAC,CAAC;gBAAC;gBAAA;kBAAA;cAAA;YAAA;UAAA;QAAA,CACJ;QAAA;UAAA;QAAA;QAAA;MAAA;IAAA;MAAA;MAAA,OAED,2BAAkB;QAChB,IAAI,CAAC,IAAI,CAACR,YAAY,EAAE;UACtB,kBAAgD,IAAI,CAACK,KAAK;YAAlDM,WAAW,eAAXA,WAAW;YAAEC,sBAAsB,eAAtBA,sBAAsB;UAC3C,IAAI,CAACZ,YAAY,GAAGL,QAAQ,CAACO,YAAY,CAACS,WAAW,EAAEC,sBAAsB,CAAC;UAC9E,IAAAC,iCAAqB,EAAC,IAAI,CAACb,YAAY,CAAC;QAC1C;MACF;IAAC;MAAA;MAAA,OAED,kBAAS;QACP,IAAQO,SAAS,GAAK,IAAI,CAACD,KAAK,CAAxBC,SAAS;QAEjB,IAAI,CAACA,SAAS,IAAI,CAACd,KAAK,EAAE,OAAO,YAAY;QAE7C,IAAI,CAACqB,eAAe,EAAE;QAEtB,oBACE,gCAAC,aAAa;UAAC,GAAG,EAAE,IAAI,CAACnB;QAAS,gBAChC,gCAAC,GAAG,gCAAK,IAAI,CAACU,KAAK;UAAE,YAAY,EAAE,IAAI,CAACL;QAAa,GAAG,CAC1C;MAEpB;IAAC;MAAA;MAAA;QAAA,qGAzGD,kBAA6Be,OAAO;UAAA;UAAA;YAAA;cAAA;gBAAA;kBACfC,UAAU,GAA2BD,OAAO,CAAvDE,SAAS,EAAcC,MAAM,GAAmBH,OAAO,CAAhCG,MAAM,EAAEC,OAAO,GAAUJ,OAAO,CAAxBI,OAAO,EAAErB,GAAG,GAAKiB,OAAO,CAAfjB,GAAG;kBAC/CsB,QAAQ,GAAG,CAAC,CAAC;kBACbC,UAAU,GAAG,CAAC,CAAC;kBAEftB,UAAU,GAAGD,GAAG,CAACH,QAAQ;kBAC7BI,UAAU,GAAGI,aAAa,CAACJ,UAAU,CAAC;kBAEtCA,UAAU,CAACD,GAAG,CAACoB,MAAM,GAAGA,MAAM;kBAC9BnB,UAAU,CAACD,GAAG,CAACwB,GAAG,GAAGxB,GAAG,CAACwB,GAAG;kBAC5BvB,UAAU,CAACD,GAAG,CAACyB,GAAG,GAAGzB,GAAG,CAACyB,GAAG;kBAAC;kBAAA,OAEvB5B,QAAQ,CAACc,IAAI,EAAE;gBAAA;kBAAA;kBAAA,OACfV,UAAU,CAACU,IAAI,EAAE;gBAAA;kBAEjBT,YAAY,GAAGH,eAAe,CAACC,GAAG,EAAEC,UAAU,CAAC;kBAErDD,GAAG,CAACE,YAAY,GAAGA,YAAY;kBAC/BF,GAAG,CAACH,QAAQ,GAAGI,UAAU;kBAEzBA,UAAU,CAACyB,MAAM,CAACC,IAAI,CAAC,oCAAoC,EAAE;oBAAE3B,GAAG,EAAHA;kBAAI,CAAC,CAAC;kBAAC,KAElEF,GAAG,CAAC8B,eAAe;oBAAA;oBAAA;kBAAA;kBAAA;kBAAA,OACJ9B,GAAG,CAAC8B,eAAe,CAACX,OAAO,CAAC;gBAAA;kBAA7CK,QAAQ;gBAAA;kBAAA,YAGiBA,QAAQ,kCAA3BO,SAAS,EAATA,SAAS,oCAAG,CAAC,CAAC;kBAChBC,SAAS,mCACVR,QAAQ;oBACXO,SAAS,kCAAOA,SAAS,GAAKN,UAAU;kBAAE;kBAAA,IAGvC5B,KAAK;oBAAA;oBAAA;kBAAA;kBAAA,kCAASmC,SAAS;gBAAA;kBAAA;kBAAA;kBAAA,OAGpB,IAAAC,oBAAe,gBACnB,gCAAC,OAAO,gCACFT,QAAQ;oBACZ,SAAS,EAAEJ,UAAW;oBACtB,MAAM,EAAEE,MAAO;oBACf,YAAY,EAAElB;kBAAa,GAC3B,CACH;gBAAA;kBAAA;kBAAA;gBAAA;kBAAA;kBAAA;kBAEDqB,UAAU,GAAG,IAAAS,wBAAe,eAAO;kBACnC,IAAIT,UAAU,CAACU,SAAS,EAAEjC,GAAG,CAACyB,GAAG,CAACS,UAAU,GAAGX,UAAU,CAACU,SAAS;kBACnEjC,GAAG,CAACH,QAAQ,CAAC6B,MAAM,CAACC,IAAI,CAAC,aAAa,EAAE;oBAAEQ,KAAK;kBAAC,CAAC,CAAC;kBAClDlC,UAAU,CAACmC,GAAG,CAACD,KAAK,CAAC,uCAAuC,eAAQ;gBAAC;kBAGjEtB,WAAW,GAAGX,YAAY,CAACmC,KAAK,CAACC,OAAO,EAAE;kBAC1CC,WAAW,GAAGC,MAAM,CAACC,IAAI,CAAC5B,WAAW,CAAC,CACzC6B,IAAI,EAAE,CACNC,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAK;oBACpBD,GAAG,CAACC,GAAG,CAAC,GAAGhC,WAAW,CAACgC,GAAG,CAAC;oBAC3B,OAAOD,GAAG;kBACZ,CAAC,EAAE,CAAC,CAAC,CAAC;kBAAA,kEAGHd,SAAS;oBACZD,SAAS,kCAAOC,SAAS,CAACD,SAAS,GAAKN,UAAU,CAAE;oBACpDV,WAAW,EAAE0B,WAAW;oBACxBzB,sBAAsB,EAAEjB,QAAQ,CAACiD,oBAAoB;kBAAE;gBAAA;gBAAA;kBAAA;cAAA;YAAA;UAAA;QAAA,CAE1D;QAAA;UAAA;QAAA;QAAA;MAAA;IAAA;IAAA;EAAA,EA/EkB3B,gBAAS,2DACP,gBAAgB,yDAElB;IACjBN,WAAW,EAAEkC,qBAAS,CAACC,MAAM;IAC7B9C,YAAY,EAAE6C,qBAAS,CAACC,MAAM;IAC9BlC,sBAAsB,EAAEiC,qBAAS,CAACC;EACpC,CAAC,4DAEqB;IACpBnC,WAAW,EAAE,CAAC,CAAC;IACfX,YAAY,EAAE,IAAI;IAClBY,sBAAsB,EAAEmC;EAC1B,CAAC;AA6GL;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAAS,CAAIpD,GAAG,EAAEqD,WAAW,EAAgC;EAAA,+EAAP,CAAC,CAAC;IAAA,qBAAvBC,QAAQ;IAARA,QAAQ,8BAAG,KAAK;EACrD,IAAMzD,KAAK,GAAGyD,QAAQ,IAAI,OAAOC,MAAM,KAAK,WAAW;EACvD,IAAMzD,MAAM,GAAGuD,WAAW,GAAGA,WAAW,CAACG,iBAAW,CAAC,GAAGA,iBAAW;EACnE,IAAMzD,QAAQ,GAAG,IAAAS,kBAAU,EAAC;IAAEV,MAAM,EAANA,MAAM;IAAE2D,YAAY,EAAE9D;EAAuB,CAAC,CAAC;EAC7EI,QAAQ,CAACc,IAAI,EAAE;EAEf,OAAOjB,aAAa,CAACC,KAAK,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,GAAG,CAAC;AACpD,CAAC;AAAC,eAEaoD,SAAS;AAAA"}
@@ -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 { getAccessToken, checkAccessToken } from '@blaze-cms/core-auth-ui';
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 && hasAuth(req)) return {
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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"}
@@ -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","pageProps","mainProps","error","errorCode","statusCode","events","emit","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 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":["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":";;;;AAAA;AACA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,eAAe,QAAQ,0BAA0B;AAC1D,OAAOC,UAAU,MAAM,oBAAoB;AAC3C,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,OAAO,MAAM,cAAc,CAAC,CAAC;AACpC,OAAOC,WAAW,MAAM,iBAAiB;AACzC,SAASC,eAAe,QAAQ,YAAY;AAE5C,MAAMC,aAAa,GAAGH,OAAO,CAAC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAExE,MAAMI,sBAAsB,GAAG,MAAM;AAErC,SAASC,aAAa,CAACC,KAAK,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,GAAG,EAAE;EAAA;EACnD,SAASC,eAAe,CAACC,GAAG,EAAEC,UAAU,EAAE;IACxC,OAAOD,GAAG,CAACE,YAAY,IAAID,UAAU,CAACE,SAAS,EAAE,IAAIF,UAAU,CAACG,YAAY,EAAE;EAChF;EAEA,SAASC,aAAa,CAACJ,UAAU,EAAE;IACjC,OAAO,CAACA,UAAU,IAAIN,KAAK,GAAGT,UAAU,CAAC;MAAEU;IAAO,CAAC,CAAC,GAAGC,QAAQ;EACjE;EACA,gBAAO,cAAcb,SAAS,CAAC;IAe7B,aAAasB,eAAe,CAACC,OAAO,EAAE;MACpC,MAAM;QAAEvB,SAAS,EAAEwB,UAAU;QAAEC,MAAM;QAAEC,OAAO;QAAEV;MAAI,CAAC,GAAGO,OAAO;MAC/D,IAAII,QAAQ,GAAG,CAAC,CAAC;MACjB,IAAIC,UAAU,GAAG,CAAC,CAAC;MAEnB,IAAIX,UAAU,GAAGD,GAAG,CAACH,QAAQ;MAC7BI,UAAU,GAAGI,aAAa,CAACJ,UAAU,CAAC;MAEtCA,UAAU,CAACD,GAAG,CAACS,MAAM,GAAGA,MAAM;MAC9BR,UAAU,CAACD,GAAG,CAACa,GAAG,GAAGb,GAAG,CAACa,GAAG;MAC5BZ,UAAU,CAACD,GAAG,CAACc,GAAG,GAAGd,GAAG,CAACc,GAAG;MAE5B,MAAMjB,QAAQ,CAACkB,IAAI,EAAE;MACrB,MAAMd,UAAU,CAACc,IAAI,EAAE;MAEvB,MAAMb,YAAY,GAAGH,eAAe,CAACC,GAAG,EAAEC,UAAU,CAAC;MAErDD,GAAG,CAACE,YAAY,GAAGA,YAAY;MAC/BF,GAAG,CAACH,QAAQ,GAAGI,UAAU;MAEzBA,UAAU,CAACe,MAAM,CAACC,IAAI,CAAC,oCAAoC,EAAE;QAAEjB;MAAI,CAAC,CAAC;MAErE,IAAIF,GAAG,CAACQ,eAAe,EAAE;QACvBK,QAAQ,GAAG,MAAMb,GAAG,CAACQ,eAAe,CAACC,OAAO,CAAC;MAC/C;MAEA,MAAM;QAAEW,SAAS,GAAG,CAAC;MAAE,CAAC,GAAGP,QAAQ;MACnC,MAAMQ,SAAS,mCACVR,QAAQ;QACXO,SAAS,kCAAOA,SAAS,GAAKN,UAAU;MAAE,EAC3C;MAED,IAAI,CAACjB,KAAK,EAAE,OAAOwB,SAAS;MAE5B,IAAI;QACF,MAAMlC,eAAe,eACnB,oBAAC,OAAO,eACF0B,QAAQ;UACZ,SAAS,EAAEH,UAAW;UACtB,MAAM,EAAEC,MAAO;UACf,YAAY,EAAEP;QAAa,GAC3B,CACH;MACH,CAAC,CAAC,OAAOkB,KAAK,EAAE;QACdR,UAAU,GAAGrB,eAAe,CAAC6B,KAAK,CAAC;QACnC,IAAIR,UAAU,CAACS,SAAS,EAAErB,GAAG,CAACc,GAAG,CAACQ,UAAU,GAAGV,UAAU,CAACS,SAAS;QACnErB,GAAG,CAACH,QAAQ,CAACmB,MAAM,CAACC,IAAI,CAAC,aAAa,EAAE;UAAEG;QAAM,CAAC,CAAC;QAClDnB,UAAU,CAACsB,GAAG,CAACH,KAAK,CAAC,uCAAuC,EAAEA,KAAK,CAAC;MACtE;MAEA,MAAMI,WAAW,GAAGtB,YAAY,CAACuB,KAAK,CAACC,OAAO,EAAE;MAChD,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAI,CAACL,WAAW,CAAC,CACzCM,IAAI,EAAE,CACNC,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;QACpBD,GAAG,CAACC,GAAG,CAAC,GAAGT,WAAW,CAACS,GAAG,CAAC;QAC3B,OAAOD,GAAG;MACZ,CAAC,EAAE,CAAC,CAAC,CAAC;MAER,uCACKb,SAAS;QACZD,SAAS,kCAAOC,SAAS,CAACD,SAAS,GAAKN,UAAU,CAAE;QACpDY,WAAW,EAAEG,WAAW;QACxBO,sBAAsB,EAAErC,QAAQ,CAACsC,oBAAoB;MAAE;IAE3D;IAEAC,WAAW,CAACC,KAAK,EAAE;MACjB,KAAK,CAACA,KAAK,CAAC;MACZ,IAAI,CAACnC,YAAY,GAAGmC,KAAK,CAACnC,YAAY;MACtC,IAAI,CAACoC,KAAK,GAAG;QACXC,SAAS,EAAE5C,KAAK,IAAIE,QAAQ,CAAC2C,YAAY;MAC3C,CAAC;MACD,IAAI,CAAC3C,QAAQ,GAAGA,QAAQ;IAC1B;IAEA,MAAM4C,iBAAiB,GAAG;MACxB,IAAI5C,QAAQ,CAAC2C,YAAY,EAAE,EAAE;MAE7B,MAAM3C,QAAQ,CAACkB,IAAI,EAAE;MAErB,IAAI,CAAC2B,QAAQ,CAAC;QACZH,SAAS,EAAE1C,QAAQ,CAAC2C,YAAY;MAClC,CAAC,CAAC;IACJ;IAEAG,eAAe,GAAG;MAChB,IAAI,CAAC,IAAI,CAACzC,YAAY,EAAE;QACtB,MAAM;UAAEsB,WAAW;UAAEU;QAAuB,CAAC,GAAG,IAAI,CAACG,KAAK;QAC1D,IAAI,CAACnC,YAAY,GAAGL,QAAQ,CAACO,YAAY,CAACoB,WAAW,EAAEU,sBAAsB,CAAC;QAC9E/C,qBAAqB,CAAC,IAAI,CAACe,YAAY,CAAC;MAC1C;IACF;IAEA0C,MAAM,GAAG;MACP,MAAM;QAAEL;MAAU,CAAC,GAAG,IAAI,CAACD,KAAK;MAEhC,IAAI,CAACC,SAAS,IAAI,CAAC5C,KAAK,EAAE,OAAO,YAAY;MAE7C,IAAI,CAACgD,eAAe,EAAE;MAEtB,oBACE,oBAAC,aAAa;QAAC,GAAG,EAAE,IAAI,CAAC9C;MAAS,gBAChC,oBAAC,GAAG,eAAK,IAAI,CAACwC,KAAK;QAAE,YAAY,EAAE,IAAI,CAACnC;MAAa,GAAG,CAC1C;IAEpB;EACF,CAAC,yCAxHsB,gBAAgB,wCAElB;IACjBsB,WAAW,EAAEpC,SAAS,CAACyD,MAAM;IAC7B3C,YAAY,EAAEd,SAAS,CAACyD,MAAM;IAC9BX,sBAAsB,EAAE9C,SAAS,CAACyD;EACpC,CAAC,2CAEqB;IACpBrB,WAAW,EAAE,CAAC,CAAC;IACftB,YAAY,EAAE,IAAI;IAClBgC,sBAAsB,EAAEY;EAC1B,CAAC;AA6GL;AAEA,MAAMC,SAAS,GAAG,CAACjD,GAAG,EAAEkD,WAAW,EAAE;EAAEC,QAAQ,GAAG;AAAM,CAAC,GAAG,CAAC,CAAC,KAAK;EACjE,MAAMtD,KAAK,GAAGsD,QAAQ,IAAI,OAAOC,MAAM,KAAK,WAAW;EACvD,MAAMtD,MAAM,GAAGoD,WAAW,GAAGA,WAAW,CAAC1D,WAAW,CAAC,GAAGA,WAAW;EACnE,MAAMO,QAAQ,GAAGX,UAAU,CAAC;IAAEU,MAAM;IAAEuD,YAAY,EAAE1D;EAAuB,CAAC,CAAC;EAC7EI,QAAQ,CAACkB,IAAI,EAAE;EAEf,OAAOrB,aAAa,CAACC,KAAK,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,GAAG,CAAC;AACpD,CAAC;AAED,eAAeiD,SAAS"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/nextjs-tools",
3
- "version": "0.125.0-alpha.14",
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": "^0.119.0",
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": "^0.121.0",
35
- "@blaze-cms/nextjs-components": "^0.124.0",
36
- "@blaze-cms/plugin-auth-fe": "^0.121.0",
37
- "@blaze-cms/plugin-google-maps-fe": "0.125.0-alpha.14",
38
- "@blaze-cms/plugin-gtm-fe": "0.125.0-alpha.14",
39
- "@blaze-cms/plugin-page-builder-fe": "0.125.0-alpha.14",
40
- "@blaze-cms/plugin-preview-fe": "^0.121.0",
41
- "@blaze-cms/plugin-search-ui": "0.125.0-alpha.1",
42
- "@blaze-cms/react-page-builder": "0.125.0-alpha.14",
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": "eeeafb7469f1f13825ec3bb404d88fb4fd5f961f"
71
+ "gitHead": "d4abd2ef08b28ceb9eeae50da54fb091c628e363"
71
72
  }
@@ -1,6 +1,6 @@
1
1
  import { parseUrl } from 'query-string';
2
2
  import { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';
3
- import { getAccessToken, checkAccessToken } from '@blaze-cms/core-auth-ui';
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 && hasAuth(req)) return { disableSsr: true };
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 };
@@ -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
- getAccessToken.mockReturnValueOnce(true);
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
  });