@blaze-cms/nextjs-tools 0.119.0-alpha.0 → 0.119.0-alpha.1

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,17 @@
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.119.0-alpha.1](https://github.com/thebyte9/blaze/compare/v0.119.0-alpha.0...v0.119.0-alpha.1) (2022-01-27)
7
+
8
+
9
+ ### Features
10
+
11
+ * add Cache-Control header env ([#3318](https://github.com/thebyte9/blaze/issues/3318)) ([f0d3d0c](https://github.com/thebyte9/blaze/commit/f0d3d0c37140f2d5f08e2f027a6e3cf997c2f2e9))
12
+
13
+
14
+
15
+
16
+
6
17
  # [0.119.0-alpha.0](https://github.com/thebyte9/blaze/compare/v0.118.1-alpha.0...v0.119.0-alpha.0) (2022-01-26)
7
18
 
8
19
 
package/README.md CHANGED
@@ -87,6 +87,7 @@ This example will also allow the path to contain **.** characters
87
87
  |---|---|---|
88
88
  | BLAZE_FRONTEND_HOST | Frontend host (used to identify host) | String | |
89
89
  | BLAZE_ROUTE_REGEX | Override default route regex | /^\/[a-z0-9€_\/]+(?:[-\/\.]{1,2}[a-z0-9\/€_\/]+)*$|^\/$/ |
90
+ | BLAZE_CACHE_CONTROL_HEADER | Cache-Control header to set on page requests | String | "" |
90
91
  | BLAZE_STATIC_ROUTE_STORE_KEY | Override store for static file routes | default |
91
92
  | BLAZE_ROUTE_PATTERN_SITEMAP | Override sitemap route | /sitemap.xml |
92
93
  | BLAZE_CONTENT_SITEMAP_URL_PREFIX | Prefix for sitemap URL, used in frontend static route e.g. /sitemap/sitemap-0.xml. This needs to match the value set in the API app. | String | |
package/example.env CHANGED
@@ -4,4 +4,4 @@ BLAZE_ROUTE_PATTERN_SITEMAP="/sitemap.xml"
4
4
  BLAZE_CONTENT_SITEMAP_URL_PREFIX="sitemap"
5
5
  #BLAZE_ROUTE_REGEX="^\/[a-z0-9€_\/]+(?:[-\/]{1,2}[a-z0-9\/€_\/]+)*$|^\/$"
6
6
  BLAZE_ROOT_SELECTOR_CLASSES_LIMIT="2"
7
-
7
+ BLAZE_CACHE_CONTROL_HEADER="max-age=0"
@@ -93,24 +93,25 @@ var checkUrl = /*#__PURE__*/function () {
93
93
 
94
94
  case 5:
95
95
  if (!res) {
96
- _context.next = 9;
96
+ _context.next = 10;
97
97
  break;
98
98
  }
99
99
 
100
+ res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');
100
101
  handler = _handleStaticRoutes["default"].getHandler(asPath);
101
102
 
102
103
  if (!handler) {
103
- _context.next = 9;
104
+ _context.next = 10;
104
105
  break;
105
106
  }
106
107
 
107
108
  return _context.abrupt("return", handler(props));
108
109
 
109
- case 9:
110
+ case 10:
110
111
  previewData = (0, _checkPreviewUrl["default"])(url, query);
111
112
 
112
113
  if (!(!previewData && hasAuth(req))) {
113
- _context.next = 12;
114
+ _context.next = 13;
114
115
  break;
115
116
  }
116
117
 
@@ -118,38 +119,38 @@ var checkUrl = /*#__PURE__*/function () {
118
119
  disableSsr: true
119
120
  });
120
121
 
121
- case 12:
122
- _context.next = 14;
122
+ case 13:
123
+ _context.next = 15;
123
124
  return (0, _coreAuthUi.checkAccessToken)(apolloClient);
124
125
 
125
- case 14:
126
+ case 15:
126
127
  if (!previewData) {
127
- _context.next = 16;
128
+ _context.next = 17;
128
129
  break;
129
130
  }
130
131
 
131
132
  return _context.abrupt("return", getPreviewData(previewData, apolloClient));
132
133
 
133
- case 16:
134
+ case 17:
134
135
  urlCheckOptions = {
135
136
  asPath: asPath,
136
137
  url: url,
137
138
  apolloClient: apolloClient,
138
139
  res: res
139
140
  };
140
- _context.next = 19;
141
+ _context.next = 20;
141
142
  return doUrlCheck(_objectSpread(_objectSpread({}, urlCheckOptions), {}, {
142
143
  handle404Error: true,
143
144
  blazeApp: blazeApp
144
145
  }));
145
146
 
146
- case 19:
147
+ case 20:
147
148
  result = _context.sent;
148
149
  return _context.abrupt("return", _objectSpread(_objectSpread({}, result), {}, {
149
150
  fullUrl: fullUrl
150
151
  }) || {});
151
152
 
152
- case 21:
153
+ case 22:
153
154
  case "end":
154
155
  return _context.stop();
155
156
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/helpers/check-url.js"],"names":["getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","hasAuth","req","headers","cookie","checkUrl","props","asPath","apolloClient","res","query","blazeApp","fullUrl","getFullUrl","url","BLAZE_STATUS_URL","isStatusPage","handler","handleStaticRoutes","getHandler","previewData","disableSsr","getPreviewData","urlCheckOptions","doUrlCheck","handle404Error","result","pageData","rootSelectorClasses","isPreview","getHost","BLAZE_FRONTEND_HOST","host","HTTPS","window","location","protocol","hostname","port","urlPort","COLON","DOUBLE_SLASH","checkUrlQuery","variables","data","itemId","itemEntity","urlTo","writeHead","Location","end","href","parentPATH","handleError","err","events","emit","error","networkError","write","graphQLErrors","length","statusCode","NOT_FOUND_STATUS_CODE","errorCode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB;AAAA,SAAMC,MAAM,CAACC,OAAO,CAACC,GAAR,CAAYC,iCAAb,CAAZ;AAAA,CAA5B;;AAEA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAAAC,GAAG,EAAI;AACrB,MAAI,CAACA,GAAL,EAAU,OAAO,KAAP;AACV,SAAO,CAAC,CAAC,gCAAeA,GAAG,CAACC,OAAJ,CAAYC,MAA3B,CAAT;AACD,CAHD;;AAKA,IAAMC,QAAQ;AAAA,2FAAG,iBAAMC,KAAN;AAAA;;AAAA;AAAA;AAAA;AAAA;AACPC,YAAAA,MADO,GAC6CD,KAD7C,CACPC,MADO,EACCC,YADD,GAC6CF,KAD7C,CACCE,YADD,EACeC,GADf,GAC6CH,KAD7C,CACeG,GADf,EACoBP,GADpB,GAC6CI,KAD7C,CACoBJ,GADpB,EACyBQ,KADzB,GAC6CJ,KAD7C,CACyBI,KADzB,EACgCC,QADhC,GAC6CL,KAD7C,CACgCK,QADhC;AAETC,YAAAA,OAFS,GAECC,UAAU,CAACX,GAAD,EAAMK,MAAN,CAFX;AAAA,wBAGC,2BAASA,MAAT,CAHD,EAGPO,GAHO,aAGPA,GAHO;;AAAA,kBAKXhB,OAAO,CAACC,GAAR,CAAYgB,gBAAZ,IAAgCD,GAAG,KAAKhB,OAAO,CAACC,GAAR,CAAYgB,gBALzC;AAAA;AAAA;AAAA;;AAAA,6CAMN;AAAEC,cAAAA,YAAY,EAAE;AAAhB,aANM;;AAAA;AAAA,iBAQXP,GARW;AAAA;AAAA;AAAA;;AASPQ,YAAAA,OATO,GASGC,+BAAmBC,UAAnB,CAA8BZ,MAA9B,CATH;;AAAA,iBAUTU,OAVS;AAAA;AAAA;AAAA;;AAAA,6CAWJA,OAAO,CAACX,KAAD,CAXH;;AAAA;AAeTc,YAAAA,WAfS,GAeK,iCAAgBN,GAAhB,EAAqBJ,KAArB,CAfL;;AAAA,kBAiBX,CAACU,WAAD,IAAgBnB,OAAO,CAACC,GAAD,CAjBZ;AAAA;AAAA;AAAA;;AAAA,6CAiB0B;AAAEmB,cAAAA,UAAU,EAAE;AAAd,aAjB1B;;AAAA;AAAA;AAAA,mBAmBT,kCAAiBb,YAAjB,CAnBS;;AAAA;AAAA,iBAqBXY,WArBW;AAAA;AAAA;AAAA;;AAAA,6CAqBSE,cAAc,CAACF,WAAD,EAAcZ,YAAd,CArBvB;;AAAA;AAsBTe,YAAAA,eAtBS,GAsBS;AAAEhB,cAAAA,MAAM,EAANA,MAAF;AAAUO,cAAAA,GAAG,EAAHA,GAAV;AAAeN,cAAAA,YAAY,EAAZA,YAAf;AAA6BC,cAAAA,GAAG,EAAHA;AAA7B,aAtBT;AAAA;AAAA,mBAwBMe,UAAU,iCAC1BD,eAD0B;AAE7BE,cAAAA,cAAc,EAAE,IAFa;AAG7Bd,cAAAA,QAAQ,EAARA;AAH6B,eAxBhB;;AAAA;AAwBTe,YAAAA,MAxBS;AAAA,6CA8BR,gCAAKA,MAAL;AAAad,cAAAA,OAAO,EAAPA;AAAb,kBAA0B,EA9BlB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAH;;AAAA,kBAARP,QAAQ;AAAA;AAAA;AAAA,GAAd;;AAiCA,IAAMiB,cAAc;AAAA,4FAAG,kBAAOF,WAAP,EAAoBZ,YAApB;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBACA,6DAAiBY,WAAjB;AAA8BZ,cAAAA,YAAY,EAAZA;AAA9B,eADA;;AAAA;AACfkB,YAAAA,MADe;AAAA,+BAEcA,MAFd,CAEbC,QAFa;AAErB,6DAA4B,EAA5B;AAAoBb,YAAAA,GAFC,oBAEDA,GAFC;AAGfc,YAAAA,mBAHe,GAGO,wCAAuBd,GAAvB,EAA4BlB,mBAAmB,EAA/C,CAHP;AAAA,4FAITwB,WAJS;AAIIQ,cAAAA,mBAAmB,EAAnBA;AAJJ,eAI4BF,MAJ5B;AAIoCG,cAAAA,SAAS,EAAE;AAJ/C;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAH;;AAAA,kBAAdP,cAAc;AAAA;AAAA;AAAA,GAApB;;AAOA,IAAMQ,OAAO,GAAG,SAAVA,OAAU;AAAA,4BAAG3B,OAAH;AAAA,MAAGA,OAAH,8BAAa,EAAb;AAAA,SACdL,OAAO,CAACC,GAAR,CAAYgC,mBAAZ,IACA5B,OAAO,CAAC,gBAAD,CADP,IAEAA,OAAO,CAAC,kBAAD,CAFP,IAGAA,OAAO,CAAC6B,IAJM;AAAA,CAAhB;;AAMA,IAAMnB,UAAU,GAAG,SAAbA,UAAa,CAACX,GAAD,EAAMK,MAAN,EAAiB;AAClC,MAAIL,GAAJ,EAAS;AACP,qBAAU+B,gBAAV,SAAkBH,OAAO,CAAC5B,GAAD,CAAzB,SAAiCK,MAAjC;AACD;;AACD,gBAEI2B,MAFJ;AAAA,iCACEC,QADF;AAAA,MACcC,QADd,oBACcA,QADd;AAAA,MACwBC,QADxB,oBACwBA,QADxB;AAAA,MACkCC,IADlC,oBACkCA,IADlC;AAGA,MAAMC,OAAO,GAAGD,IAAI,aAAME,gBAAN,SAAcF,IAAd,IAAuB,EAA3C;AAEA,mBAAUF,QAAV,SAAqBK,uBAArB,SAAoCJ,QAApC,SAA+CE,OAA/C,SAAyDhC,MAAzD;AACD,CAVD;;AAYA,IAAMiB,UAAU;AAAA,4FAAG;AAAA;;AAAA;AAAA;AAAA;AAAA;AAASV,YAAAA,GAAT,SAASA,GAAT,EAAcN,YAAd,SAAcA,YAAd,EAA4BC,GAA5B,SAA4BA,GAA5B,EAAiCgB,cAAjC,SAAiCA,cAAjC,EAAiDd,QAAjD,SAAiDA,QAAjD;AAAA;AAAA;AAAA,mBAMLH,YAAY,CAACE,KAAb,CAAmB;AAC3BA,cAAAA,KAAK,EAAEgC,oBADoB;AAE3BC,cAAAA,SAAS,EAAE;AACT7B,gBAAAA,GAAG,EAAHA;AADS;AAFgB,aAAnB,CANK;;AAAA;AAAA;AAAA,2DAGb8B,IAHa,CAIXvC,QAJW;AAICwC,YAAAA,MAJD,0BAICA,MAJD;AAISC,YAAAA,UAJT,0BAISA,UAJT;AAIqBC,YAAAA,KAJrB,0BAIqBA,KAJrB;AAI4BpB,YAAAA,QAJ5B,0BAI4BA,QAJ5B;;AAAA,kBAaXoB,KAAK,IAAIA,KAAK,KAAKjC,GAbR;AAAA;AAAA;AAAA;;AAcb,gBAAIL,GAAJ,EAAS;AACPA,cAAAA,GAAG,CAACuC,SAAJ,CAAc,GAAd,EAAmB;AAAEC,gBAAAA,QAAQ,EAAEF;AAAZ,eAAnB;AACAtC,cAAAA,GAAG,CAACyC,GAAJ;AACD,aAHD,MAGO;AACLhB,cAAAA,MAAM,CAACC,QAAP,CAAgBgB,IAAhB,GAAuBJ,KAAvB;AACD;;AAnBY,8CAoBN,EApBM;;AAAA;AAsBTnB,YAAAA,mBAtBS,GAsBa,wCAAuBd,GAAvB,EAA4BlB,mBAAmB,EAA/C,CAtBb;AAAA,8CAuBR;AACL+B,cAAAA,QAAQ,EAARA,QADK;AAELC,cAAAA,mBAAmB,EAAnBA,mBAFK;AAGLiB,cAAAA,MAAM,EAANA,MAHK;AAILC,cAAAA,UAAU,EAAE,gDAAyBA,UAAzB;AAJP,aAvBQ;;AAAA;AAAA;AAAA;AA8BTM,YAAAA,UA9BS,GA8BI,6BAAYtC,GAAZ,CA9BJ;;AAAA,kBA+BXW,cAAc,IAAI2B,UAAlB,IAAgC3C,GA/BrB;AAAA;AAAA;AAAA;;AAgCbA,YAAAA,GAAG,CAACuC,SAAJ,CAAc,GAAd,EAAmB;AAAEC,cAAAA,QAAQ,EAAEG;AAAZ,aAAnB;AACA3C,YAAAA,GAAG,CAACyC,GAAJ;AAjCa;AAAA;;AAAA;AAAA,8CAmCNG,WAAW,eAAM5C,GAAN,EAAWgB,cAAX,EAA2Bd,QAA3B,CAnCL;;AAAA;AAAA,8CAsCRc,cAAc,GAAG,EAAH,GAAQ,IAtCd;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAH;;AAAA,kBAAVD,UAAU;AAAA;AAAA;AAAA,GAAhB;;AA0CA,IAAM6B,WAAW,GAAG,SAAdA,WAAc,CAACC,GAAD,EAAM7C,GAAN,EAAWgB,cAAX,EAA2Bd,QAA3B,EAAwC;AAC1DA,EAAAA,QAAQ,CAAC4C,MAAT,CAAgBC,IAAhB,CAAqB,aAArB,EAAoC;AAAEC,IAAAA,KAAK,EAAEH;AAAT,GAApC;AAEA,MAAI,CAAC7C,GAAL,EAAU,OAAO,EAAP;;AACV,MAAI6C,GAAG,CAACI,YAAR,EAAsB;AACpBjD,IAAAA,GAAG,CAACuC,SAAJ,CAAc,GAAd,EAAmB;AAAE,sBAAgB;AAAlB,KAAnB;AACAvC,IAAAA,GAAG,CAACkD,KAAJ,CAAU,6BAAV;AACAlD,IAAAA,GAAG,CAACyC,GAAJ;AACD,GAJD,MAIO,IAAIzB,cAAc,IAAI6B,GAAG,CAACM,aAAJ,CAAkBC,MAAxC,EAAgD;AACrDpD,IAAAA,GAAG,CAACqD,UAAJ,GAAiBC,gCAAjB;AACA,WAAO;AAAEC,MAAAA,SAAS,EAAED;AAAb,KAAP;AACD;;AAED,SAAO,EAAP;AACD,CAdD;;eAee1D,Q","sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { getAccessToken, checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport { HTTPS, DOUBLE_SLASH, COLON, NOT_FOUND_STATUS_CODE } from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst hasAuth = req => {\n if (!req) return false;\n return !!getAccessToken(req.headers.cookie);\n};\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n if (res) {\n const handler = handleStaticRoutes.getHandler(asPath);\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && hasAuth(req)) return { disableSsr: true };\n\n await checkAccessToken(apolloClient);\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async ({ url, apolloClient, res, handle404Error, blazeApp }) => {\n try {\n const {\n data: {\n checkUrl: { itemId, itemEntity, urlTo, pageData }\n }\n } = await apolloClient.query({\n query: checkUrlQuery,\n variables: {\n url\n }\n });\n\n if (urlTo && urlTo !== url) {\n if (res) {\n res.writeHead(301, { Location: urlTo });\n res.end();\n } else {\n window.location.href = urlTo;\n }\n return {};\n }\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return {\n pageData,\n rootSelectorClasses,\n itemId,\n itemEntity: getUnpublishedEntityName(itemEntity)\n };\n } catch (err) {\n const parentPATH = checkParent(url);\n if (handle404Error && parentPATH && res) {\n res.writeHead(301, { Location: parentPATH });\n res.end();\n } else {\n return handleError(err, res, handle404Error, blazeApp);\n }\n\n return handle404Error ? {} : null;\n }\n};\n\nconst handleError = (err, res, handle404Error, blazeApp) => {\n blazeApp.events.emit('monitor:log', { error: err });\n\n if (!res) return {};\n if (err.networkError) {\n res.writeHead(500, { 'Content-Type': 'text/plain' });\n res.write('500 Internal Server Error\\n');\n res.end();\n } else if (handle404Error && err.graphQLErrors.length) {\n res.statusCode = NOT_FOUND_STATUS_CODE;\n return { errorCode: NOT_FOUND_STATUS_CODE };\n }\n\n return {};\n};\nexport default checkUrl;\n"],"file":"check-url.js"}
1
+ {"version":3,"sources":["../../src/helpers/check-url.js"],"names":["getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","hasAuth","req","headers","cookie","checkUrl","props","asPath","apolloClient","res","query","blazeApp","fullUrl","getFullUrl","url","BLAZE_STATUS_URL","isStatusPage","setHeader","BLAZE_CACHE_CONTROL_HEADER","handler","handleStaticRoutes","getHandler","previewData","disableSsr","getPreviewData","urlCheckOptions","doUrlCheck","handle404Error","result","pageData","rootSelectorClasses","isPreview","getHost","BLAZE_FRONTEND_HOST","host","HTTPS","window","location","protocol","hostname","port","urlPort","COLON","DOUBLE_SLASH","checkUrlQuery","variables","data","itemId","itemEntity","urlTo","writeHead","Location","end","href","parentPATH","handleError","err","events","emit","error","networkError","write","graphQLErrors","length","statusCode","NOT_FOUND_STATUS_CODE","errorCode"],"mappings":"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","sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { getAccessToken, checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport { HTTPS, DOUBLE_SLASH, COLON, NOT_FOUND_STATUS_CODE } from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst hasAuth = req => {\n if (!req) return false;\n return !!getAccessToken(req.headers.cookie);\n};\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n if (res) {\n res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');\n const handler = handleStaticRoutes.getHandler(asPath);\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && hasAuth(req)) return { disableSsr: true };\n\n await checkAccessToken(apolloClient);\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async ({ url, apolloClient, res, handle404Error, blazeApp }) => {\n try {\n const {\n data: {\n checkUrl: { itemId, itemEntity, urlTo, pageData }\n }\n } = await apolloClient.query({\n query: checkUrlQuery,\n variables: {\n url\n }\n });\n\n if (urlTo && urlTo !== url) {\n if (res) {\n res.writeHead(301, { Location: urlTo });\n res.end();\n } else {\n window.location.href = urlTo;\n }\n return {};\n }\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return {\n pageData,\n rootSelectorClasses,\n itemId,\n itemEntity: getUnpublishedEntityName(itemEntity)\n };\n } catch (err) {\n const parentPATH = checkParent(url);\n if (handle404Error && parentPATH && res) {\n res.writeHead(301, { Location: parentPATH });\n res.end();\n } else {\n return handleError(err, res, handle404Error, blazeApp);\n }\n\n return handle404Error ? {} : null;\n }\n};\n\nconst handleError = (err, res, handle404Error, blazeApp) => {\n blazeApp.events.emit('monitor:log', { error: err });\n\n if (!res) return {};\n if (err.networkError) {\n res.writeHead(500, { 'Content-Type': 'text/plain' });\n res.write('500 Internal Server Error\\n');\n res.end();\n } else if (handle404Error && err.graphQLErrors.length) {\n res.statusCode = NOT_FOUND_STATUS_CODE;\n return { errorCode: NOT_FOUND_STATUS_CODE };\n }\n\n return {};\n};\nexport default checkUrl;\n"],"file":"check-url.js"}
@@ -43,6 +43,7 @@ const checkUrl = async props => {
43
43
  }
44
44
 
45
45
  if (res) {
46
+ res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');
46
47
  const handler = handleStaticRoutes.getHandler(asPath);
47
48
 
48
49
  if (handler) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/helpers/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","previewData","disableSsr","getPreviewData","urlCheckOptions","result","doUrlCheck","handle404Error","pageData","rootSelectorClasses","isPreview","getHost","BLAZE_FRONTEND_HOST","host","location","protocol","hostname","port","window","urlPort","data","itemId","itemEntity","urlTo","variables","writeHead","Location","end","href","err","parentPATH","handleError","events","emit","error","networkError","write","graphQLErrors","length","statusCode","errorCode"],"mappings":"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","sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { getAccessToken, checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport { HTTPS, DOUBLE_SLASH, COLON, NOT_FOUND_STATUS_CODE } from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst hasAuth = req => {\n if (!req) return false;\n return !!getAccessToken(req.headers.cookie);\n};\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n if (res) {\n const handler = handleStaticRoutes.getHandler(asPath);\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && hasAuth(req)) return { disableSsr: true };\n\n await checkAccessToken(apolloClient);\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async ({ url, apolloClient, res, handle404Error, blazeApp }) => {\n try {\n const {\n data: {\n checkUrl: { itemId, itemEntity, urlTo, pageData }\n }\n } = await apolloClient.query({\n query: checkUrlQuery,\n variables: {\n url\n }\n });\n\n if (urlTo && urlTo !== url) {\n if (res) {\n res.writeHead(301, { Location: urlTo });\n res.end();\n } else {\n window.location.href = urlTo;\n }\n return {};\n }\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return {\n pageData,\n rootSelectorClasses,\n itemId,\n itemEntity: getUnpublishedEntityName(itemEntity)\n };\n } catch (err) {\n const parentPATH = checkParent(url);\n if (handle404Error && parentPATH && res) {\n res.writeHead(301, { Location: parentPATH });\n res.end();\n } else {\n return handleError(err, res, handle404Error, blazeApp);\n }\n\n return handle404Error ? {} : null;\n }\n};\n\nconst handleError = (err, res, handle404Error, blazeApp) => {\n blazeApp.events.emit('monitor:log', { error: err });\n\n if (!res) return {};\n if (err.networkError) {\n res.writeHead(500, { 'Content-Type': 'text/plain' });\n res.write('500 Internal Server Error\\n');\n res.end();\n } else if (handle404Error && err.graphQLErrors.length) {\n res.statusCode = NOT_FOUND_STATUS_CODE;\n return { errorCode: NOT_FOUND_STATUS_CODE };\n }\n\n return {};\n};\nexport default checkUrl;\n"],"file":"check-url.js"}
1
+ {"version":3,"sources":["../../src/helpers/check-url.js"],"names":["parseUrl","getUnpublishedEntityName","getAccessToken","checkAccessToken","HTTPS","DOUBLE_SLASH","COLON","NOT_FOUND_STATUS_CODE","checkUrlQuery","checkParent","checkPreviewUrl","handleStaticRoutes","getPageData","getRootSelectorClasses","getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","hasAuth","req","headers","cookie","checkUrl","props","asPath","apolloClient","res","query","blazeApp","fullUrl","getFullUrl","url","BLAZE_STATUS_URL","isStatusPage","setHeader","BLAZE_CACHE_CONTROL_HEADER","handler","getHandler","previewData","disableSsr","getPreviewData","urlCheckOptions","result","doUrlCheck","handle404Error","pageData","rootSelectorClasses","isPreview","getHost","BLAZE_FRONTEND_HOST","host","location","protocol","hostname","port","window","urlPort","data","itemId","itemEntity","urlTo","variables","writeHead","Location","end","href","err","parentPATH","handleError","events","emit","error","networkError","write","graphQLErrors","length","statusCode","errorCode"],"mappings":"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","sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { getAccessToken, checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport { HTTPS, DOUBLE_SLASH, COLON, NOT_FOUND_STATUS_CODE } from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst hasAuth = req => {\n if (!req) return false;\n return !!getAccessToken(req.headers.cookie);\n};\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n if (res) {\n res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');\n const handler = handleStaticRoutes.getHandler(asPath);\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && hasAuth(req)) return { disableSsr: true };\n\n await checkAccessToken(apolloClient);\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async ({ url, apolloClient, res, handle404Error, blazeApp }) => {\n try {\n const {\n data: {\n checkUrl: { itemId, itemEntity, urlTo, pageData }\n }\n } = await apolloClient.query({\n query: checkUrlQuery,\n variables: {\n url\n }\n });\n\n if (urlTo && urlTo !== url) {\n if (res) {\n res.writeHead(301, { Location: urlTo });\n res.end();\n } else {\n window.location.href = urlTo;\n }\n return {};\n }\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return {\n pageData,\n rootSelectorClasses,\n itemId,\n itemEntity: getUnpublishedEntityName(itemEntity)\n };\n } catch (err) {\n const parentPATH = checkParent(url);\n if (handle404Error && parentPATH && res) {\n res.writeHead(301, { Location: parentPATH });\n res.end();\n } else {\n return handleError(err, res, handle404Error, blazeApp);\n }\n\n return handle404Error ? {} : null;\n }\n};\n\nconst handleError = (err, res, handle404Error, blazeApp) => {\n blazeApp.events.emit('monitor:log', { error: err });\n\n if (!res) return {};\n if (err.networkError) {\n res.writeHead(500, { 'Content-Type': 'text/plain' });\n res.write('500 Internal Server Error\\n');\n res.end();\n } else if (handle404Error && err.graphQLErrors.length) {\n res.statusCode = NOT_FOUND_STATUS_CODE;\n return { errorCode: NOT_FOUND_STATUS_CODE };\n }\n\n return {};\n};\nexport default checkUrl;\n"],"file":"check-url.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/nextjs-tools",
3
- "version": "0.119.0-alpha.0",
3
+ "version": "0.119.0-alpha.1",
4
4
  "description": "Blaze nextjs tools",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -31,19 +31,20 @@
31
31
  "@blaze-cms/core-auth-ui": "^0.119.0-alpha.0",
32
32
  "@blaze-cms/core-errors": "^0.118.0",
33
33
  "@blaze-cms/core-errors-ui": "^0.119.0-alpha.0",
34
- "@blaze-cms/core-ui": "^0.119.0-alpha.0",
34
+ "@blaze-cms/core-ui": "^0.119.0-alpha.1",
35
35
  "@blaze-cms/nextjs-components": "^0.119.0-alpha.0",
36
- "@blaze-cms/plugin-auth-fe": "^0.119.0-alpha.0",
37
- "@blaze-cms/plugin-google-maps-fe": "^0.119.0-alpha.0",
38
- "@blaze-cms/plugin-gtm-fe": "^0.119.0-alpha.0",
39
- "@blaze-cms/plugin-page-builder-fe": "^0.119.0-alpha.0",
40
- "@blaze-cms/plugin-preview-fe": "^0.119.0-alpha.0",
41
- "@blaze-cms/plugin-search-ui": "^0.119.0-alpha.0",
36
+ "@blaze-cms/plugin-auth-fe": "^0.119.0-alpha.1",
37
+ "@blaze-cms/plugin-google-maps-fe": "^0.119.0-alpha.1",
38
+ "@blaze-cms/plugin-gtm-fe": "^0.119.0-alpha.1",
39
+ "@blaze-cms/plugin-page-builder-fe": "^0.119.0-alpha.1",
40
+ "@blaze-cms/plugin-preview-fe": "^0.119.0-alpha.1",
41
+ "@blaze-cms/plugin-search-ui": "^0.119.0-alpha.1",
42
42
  "@blaze-cms/react-page-builder": "^0.119.0-alpha.0",
43
43
  "@blaze-cms/setup-ui": "^0.92.0",
44
44
  "autoprefixer": "^10.2.3",
45
45
  "core-js": "^3.2.1",
46
46
  "cross-fetch": "^3.0.2",
47
+ "graphql": "^16.2.0",
47
48
  "jsonwebtoken": "^8.5.1",
48
49
  "nextjs-dynamic-routes": "^2.5.1",
49
50
  "postcss": "8.2.8",
@@ -66,5 +67,5 @@
66
67
  "lib/*",
67
68
  "lib-es/*"
68
69
  ],
69
- "gitHead": "2ea69a86608ec124c0da9fc26ae11471821fbd01"
70
+ "gitHead": "c45a79ff6a34ca453ec008b0ae4849496800881b"
70
71
  }
@@ -25,6 +25,7 @@ const checkUrl = async props => {
25
25
  return { isStatusPage: true };
26
26
  }
27
27
  if (res) {
28
+ res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || '');
28
29
  const handler = handleStaticRoutes.getHandler(asPath);
29
30
  if (handler) {
30
31
  return handler(props);
@@ -49,7 +49,8 @@ describe('Check url', () => {
49
49
  statusCode,
50
50
  writeHead: jest.fn(),
51
51
  write: jest.fn(),
52
- end: jest.fn()
52
+ end: jest.fn(),
53
+ setHeader: jest.fn()
53
54
  };
54
55
  const asPath = '/page-slug';
55
56
  const urlTo = '/redirect-url';
@@ -115,6 +116,24 @@ describe('Check url', () => {
115
116
  expect(handleStaticRoutes.getHandler).not.toHaveBeenCalled();
116
117
  });
117
118
 
119
+ it('should set empty Cache-Control header', async () => {
120
+ await checkUrl(props);
121
+ expect(res.setHeader).toHaveBeenCalledWith('Cache-Control', '');
122
+ });
123
+
124
+ it('should set Cache-Control header from env', async () => {
125
+ const cacheEnvs = {
126
+ BLAZE_CACHE_CONTROL_HEADER: 'max-age=0'
127
+ };
128
+ setEnvs(cacheEnvs);
129
+ await checkUrl(props);
130
+ expect(res.setHeader).toHaveBeenCalledWith(
131
+ 'Cache-Control',
132
+ cacheEnvs.BLAZE_CACHE_CONTROL_HEADER
133
+ );
134
+ deleteEnvs(cacheEnvs);
135
+ });
136
+
118
137
  it('should return disableSsr prop', async () => {
119
138
  getAccessToken.mockReturnValueOnce(true);
120
139
  const result = await checkUrl({ ...props });