@blaze-cms/nextjs-tools 0.146.0-node18-tooltips.25 → 0.146.0-node18-tooltips.26

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,22 @@
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.146.0-node18-tooltips.26](https://github.com/thebyte9/blaze/compare/v0.146.0-node18-tooltips.25...v0.146.0-node18-tooltips.26) (2025-10-29)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * enable parent redirects with custom 404 pages ([#4971](https://github.com/thebyte9/blaze/issues/4971)) ([bdac8d7](https://github.com/thebyte9/blaze/commit/bdac8d7ab48a003df199176c65df217089233fce))
12
+
13
+
14
+ ### Features
15
+
16
+ * handle llms.txt files ([#4972](https://github.com/thebyte9/blaze/issues/4972)) ([dc035f5](https://github.com/thebyte9/blaze/commit/dc035f5cfa1a7fa8d222fed45b3fc0f1bb6cd0c5))
17
+
18
+
19
+
20
+
21
+
6
22
  # [0.146.0-node18-tooltips.25](https://github.com/thebyte9/blaze/compare/v0.146.0-node18-tooltips.24...v0.146.0-node18-tooltips.25) (2025-10-28)
7
23
 
8
24
  **Note:** Version bump only for package @blaze-cms/nextjs-tools
package/lib/constants.js CHANGED
@@ -44,6 +44,7 @@ var ROUTE_PATTERN_SITEMAP = process.env.BLAZE_ROUTE_PATTERN_SITEMAP || '/sitemap
44
44
  var sitemapFilePrefix = process.env.BLAZE_CONTENT_SITEMAP_URL_PREFIX || 'sitemap';
45
45
  var ROUTE_PATTERN_SITEMAP_FILE_REGEX = new RegExp("/".concat(sitemapFilePrefix, "/.*.xml"));
46
46
  var ROUTE_PATTERN_ROBOTS_TXT = '/robots.txt';
47
+ var ROUTE_PATTERN_LLMS_TXT = '/llms.txt';
47
48
  var BLAZE_STATIC_ROUTE_STORE_KEY = 'default';
48
49
  var STATIC_FILE_FORWARD_HEADERS = ['content-length', 'last-modified', 'etag'];
49
50
  var APPLE_TAGS = [{
@@ -94,6 +95,7 @@ module.exports = {
94
95
  ROUTE_PATTERN_SITEMAP: ROUTE_PATTERN_SITEMAP,
95
96
  ROUTE_PATTERN_SITEMAP_FILE_REGEX: ROUTE_PATTERN_SITEMAP_FILE_REGEX,
96
97
  ROUTE_PATTERN_ROBOTS_TXT: ROUTE_PATTERN_ROBOTS_TXT,
98
+ ROUTE_PATTERN_LLMS_TXT: ROUTE_PATTERN_LLMS_TXT,
97
99
  BLAZE_STATIC_ROUTE_STORE_KEY: BLAZE_STATIC_ROUTE_STORE_KEY,
98
100
  STATIC_FILE_FORWARD_HEADERS: STATIC_FILE_FORWARD_HEADERS,
99
101
  ROOT_SELECTOR_CLASS_PREFIX: ROOT_SELECTOR_CLASS_PREFIX,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["ACTIVE_META_TAGS","BLAZE_X_FRAME_OPTIONS_DEFAULT","META_TAGS_LOOKUP","description","apiKey","htmlTagName","tagKeyName","contentDataKeyName","canonical","PB_TYPE_IMAGE","PB_TYPE_TEXTBLOCK","PB_TYPE_CAROUSEL","SEARCH_FILTER","COLON","DOUBLE_SLASH","HTTPS","DEFAULT_ROUTE_REGEX","ROUTE_REGEX","process","env","BLAZE_ROUTE_REGEX","RegExp","PREVIEW_REGEX","PREVIEW_MODE","GTM_STRING","BLAZE_DEBUG","BLAZE_PB_EDITOR_MODE","DEBUG_LOGO","SRC","ALT","PUBLISHED_","RESPONSE_404","SITEMAP_STORE_KEY","ROUTE_PATTERN_SITEMAP","BLAZE_ROUTE_PATTERN_SITEMAP","sitemapFilePrefix","BLAZE_CONTENT_SITEMAP_URL_PREFIX","ROUTE_PATTERN_SITEMAP_FILE_REGEX","concat","ROUTE_PATTERN_ROBOTS_TXT","BLAZE_STATIC_ROUTE_STORE_KEY","STATIC_FILE_FORWARD_HEADERS","APPLE_TAGS","href","rel","sizes","NOT_FOUND_STATUS_CODE","ROOT_SELECTOR_CLASS_PREFIX","ROOT_SELECTOR_SEPARATOR","RESOLVER_CONTAINER_CLASS","ERROR_URLS","custom404","module","exports"],"sources":["../src/constants.js"],"sourcesContent":["const ACTIVE_META_TAGS = ['description', 'canonical'];\nconst BLAZE_X_FRAME_OPTIONS_DEFAULT = 'SAMEORIGIN';\n\nconst META_TAGS_LOOKUP = {\n description: {\n apiKey: 'metaDescription',\n htmlTagName: 'meta',\n tagKeyName: 'name',\n contentDataKeyName: 'content'\n },\n canonical: {\n apiKey: 'canonicalUrl',\n htmlTagName: 'link',\n tagKeyName: 'rel',\n contentDataKeyName: 'href'\n }\n};\n\nconst PB_TYPE_IMAGE = 'image';\nconst PB_TYPE_TEXTBLOCK = 'textblock';\nconst PB_TYPE_CAROUSEL = 'carousel';\nconst SEARCH_FILTER = 'searchfilter';\nconst COLON = ':';\nconst DOUBLE_SLASH = '//';\nconst HTTPS = 'https://';\n\nconst DEFAULT_ROUTE_REGEX = /^\\/[a-z0-9€_\\/]+(?:[-\\/\\.]{1,2}[a-z0-9\\/€_\\/]+)*$|^\\/$/i;\nconst ROUTE_REGEX = process.env.BLAZE_ROUTE_REGEX\n ? new RegExp(process.env.BLAZE_ROUTE_REGEX)\n : DEFAULT_ROUTE_REGEX;\nconst PREVIEW_REGEX = /^(\\/_preview)/;\nconst PREVIEW_MODE = 'Preview Mode';\nconst GTM_STRING = 'gtm';\n\nconst BLAZE_DEBUG = 'blaze_debug';\nconst BLAZE_PB_EDITOR_MODE = 'blaze_pb_editor_mode';\nconst DEBUG_LOGO = {\n SRC: 'https://images.thisisblaze.com/logo-small-27-40.png',\n ALT: 'blaze-logo'\n};\n\nconst PUBLISHED_ = 'published_';\n\nconst RESPONSE_404 = '404 Not Found\\n';\n\nconst SITEMAP_STORE_KEY = 'default_sitemap';\nconst ROUTE_PATTERN_SITEMAP = process.env.BLAZE_ROUTE_PATTERN_SITEMAP || '/sitemap.xml';\nconst sitemapFilePrefix = process.env.BLAZE_CONTENT_SITEMAP_URL_PREFIX || 'sitemap';\nconst ROUTE_PATTERN_SITEMAP_FILE_REGEX = new RegExp(`/${sitemapFilePrefix}/.*\\.xml`);\nconst ROUTE_PATTERN_ROBOTS_TXT = '/robots.txt';\nconst BLAZE_STATIC_ROUTE_STORE_KEY = 'default';\n\nconst STATIC_FILE_FORWARD_HEADERS = ['content-length', 'last-modified', 'etag'];\n\nconst APPLE_TAGS = [\n { href: '/static/icons/touch-icon-iphone.png', rel: 'apple-touch-icon' },\n { href: '/static/icons/touch-icon-ipad.png', rel: 'apple-touch-icon', sizes: '152x152' },\n { href: '/static/icons/touch-icon-iphone-retina.png', rel: 'apple-touch-icon', sizes: '180x180' },\n { href: '/static/icons/touch-icon-ipad-retina.png', rel: 'apple-touch-icon', sizes: '167x167' }\n];\n\nconst NOT_FOUND_STATUS_CODE = 404;\n\nconst ROOT_SELECTOR_CLASS_PREFIX = 'root-selector';\nconst ROOT_SELECTOR_SEPARATOR = '--';\nconst RESOLVER_CONTAINER_CLASS = 'resolver-container';\nconst ERROR_URLS = {\n custom404: '/custom-error-404'\n};\n\nmodule.exports = {\n APPLE_TAGS,\n ACTIVE_META_TAGS,\n COLON,\n DOUBLE_SLASH,\n GTM_STRING,\n HTTPS,\n META_TAGS_LOOKUP,\n SEARCH_FILTER,\n PB_TYPE_IMAGE,\n PB_TYPE_TEXTBLOCK,\n PB_TYPE_CAROUSEL,\n PREVIEW_MODE,\n ROUTE_REGEX,\n PREVIEW_REGEX,\n BLAZE_DEBUG,\n BLAZE_PB_EDITOR_MODE,\n DEBUG_LOGO,\n PUBLISHED_,\n RESPONSE_404,\n NOT_FOUND_STATUS_CODE,\n SITEMAP_STORE_KEY,\n ROUTE_PATTERN_SITEMAP,\n ROUTE_PATTERN_SITEMAP_FILE_REGEX,\n ROUTE_PATTERN_ROBOTS_TXT,\n BLAZE_STATIC_ROUTE_STORE_KEY,\n STATIC_FILE_FORWARD_HEADERS,\n ROOT_SELECTOR_CLASS_PREFIX,\n ROOT_SELECTOR_SEPARATOR,\n RESOLVER_CONTAINER_CLASS,\n BLAZE_X_FRAME_OPTIONS_DEFAULT,\n ERROR_URLS\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"constants.js","names":["ACTIVE_META_TAGS","BLAZE_X_FRAME_OPTIONS_DEFAULT","META_TAGS_LOOKUP","description","apiKey","htmlTagName","tagKeyName","contentDataKeyName","canonical","PB_TYPE_IMAGE","PB_TYPE_TEXTBLOCK","PB_TYPE_CAROUSEL","SEARCH_FILTER","COLON","DOUBLE_SLASH","HTTPS","DEFAULT_ROUTE_REGEX","ROUTE_REGEX","process","env","BLAZE_ROUTE_REGEX","RegExp","PREVIEW_REGEX","PREVIEW_MODE","GTM_STRING","BLAZE_DEBUG","BLAZE_PB_EDITOR_MODE","DEBUG_LOGO","SRC","ALT","PUBLISHED_","RESPONSE_404","SITEMAP_STORE_KEY","ROUTE_PATTERN_SITEMAP","BLAZE_ROUTE_PATTERN_SITEMAP","sitemapFilePrefix","BLAZE_CONTENT_SITEMAP_URL_PREFIX","ROUTE_PATTERN_SITEMAP_FILE_REGEX","concat","ROUTE_PATTERN_ROBOTS_TXT","ROUTE_PATTERN_LLMS_TXT","BLAZE_STATIC_ROUTE_STORE_KEY","STATIC_FILE_FORWARD_HEADERS","APPLE_TAGS","href","rel","sizes","NOT_FOUND_STATUS_CODE","ROOT_SELECTOR_CLASS_PREFIX","ROOT_SELECTOR_SEPARATOR","RESOLVER_CONTAINER_CLASS","ERROR_URLS","custom404","module","exports"],"sources":["../src/constants.js"],"sourcesContent":["const ACTIVE_META_TAGS = ['description', 'canonical'];\nconst BLAZE_X_FRAME_OPTIONS_DEFAULT = 'SAMEORIGIN';\n\nconst META_TAGS_LOOKUP = {\n description: {\n apiKey: 'metaDescription',\n htmlTagName: 'meta',\n tagKeyName: 'name',\n contentDataKeyName: 'content'\n },\n canonical: {\n apiKey: 'canonicalUrl',\n htmlTagName: 'link',\n tagKeyName: 'rel',\n contentDataKeyName: 'href'\n }\n};\n\nconst PB_TYPE_IMAGE = 'image';\nconst PB_TYPE_TEXTBLOCK = 'textblock';\nconst PB_TYPE_CAROUSEL = 'carousel';\nconst SEARCH_FILTER = 'searchfilter';\nconst COLON = ':';\nconst DOUBLE_SLASH = '//';\nconst HTTPS = 'https://';\n\nconst DEFAULT_ROUTE_REGEX = /^\\/[a-z0-9€_\\/]+(?:[-\\/\\.]{1,2}[a-z0-9\\/€_\\/]+)*$|^\\/$/i;\nconst ROUTE_REGEX = process.env.BLAZE_ROUTE_REGEX\n ? new RegExp(process.env.BLAZE_ROUTE_REGEX)\n : DEFAULT_ROUTE_REGEX;\nconst PREVIEW_REGEX = /^(\\/_preview)/;\nconst PREVIEW_MODE = 'Preview Mode';\nconst GTM_STRING = 'gtm';\n\nconst BLAZE_DEBUG = 'blaze_debug';\nconst BLAZE_PB_EDITOR_MODE = 'blaze_pb_editor_mode';\nconst DEBUG_LOGO = {\n SRC: 'https://images.thisisblaze.com/logo-small-27-40.png',\n ALT: 'blaze-logo'\n};\n\nconst PUBLISHED_ = 'published_';\n\nconst RESPONSE_404 = '404 Not Found\\n';\n\nconst SITEMAP_STORE_KEY = 'default_sitemap';\nconst ROUTE_PATTERN_SITEMAP = process.env.BLAZE_ROUTE_PATTERN_SITEMAP || '/sitemap.xml';\nconst sitemapFilePrefix = process.env.BLAZE_CONTENT_SITEMAP_URL_PREFIX || 'sitemap';\nconst ROUTE_PATTERN_SITEMAP_FILE_REGEX = new RegExp(`/${sitemapFilePrefix}/.*\\.xml`);\nconst ROUTE_PATTERN_ROBOTS_TXT = '/robots.txt';\nconst ROUTE_PATTERN_LLMS_TXT = '/llms.txt';\n\nconst BLAZE_STATIC_ROUTE_STORE_KEY = 'default';\n\nconst STATIC_FILE_FORWARD_HEADERS = ['content-length', 'last-modified', 'etag'];\n\nconst APPLE_TAGS = [\n { href: '/static/icons/touch-icon-iphone.png', rel: 'apple-touch-icon' },\n { href: '/static/icons/touch-icon-ipad.png', rel: 'apple-touch-icon', sizes: '152x152' },\n { href: '/static/icons/touch-icon-iphone-retina.png', rel: 'apple-touch-icon', sizes: '180x180' },\n { href: '/static/icons/touch-icon-ipad-retina.png', rel: 'apple-touch-icon', sizes: '167x167' }\n];\n\nconst NOT_FOUND_STATUS_CODE = 404;\n\nconst ROOT_SELECTOR_CLASS_PREFIX = 'root-selector';\nconst ROOT_SELECTOR_SEPARATOR = '--';\nconst RESOLVER_CONTAINER_CLASS = 'resolver-container';\nconst ERROR_URLS = {\n custom404: '/custom-error-404'\n};\n\nmodule.exports = {\n APPLE_TAGS,\n ACTIVE_META_TAGS,\n COLON,\n DOUBLE_SLASH,\n GTM_STRING,\n HTTPS,\n META_TAGS_LOOKUP,\n SEARCH_FILTER,\n PB_TYPE_IMAGE,\n PB_TYPE_TEXTBLOCK,\n PB_TYPE_CAROUSEL,\n PREVIEW_MODE,\n ROUTE_REGEX,\n PREVIEW_REGEX,\n BLAZE_DEBUG,\n BLAZE_PB_EDITOR_MODE,\n DEBUG_LOGO,\n PUBLISHED_,\n RESPONSE_404,\n NOT_FOUND_STATUS_CODE,\n SITEMAP_STORE_KEY,\n ROUTE_PATTERN_SITEMAP,\n ROUTE_PATTERN_SITEMAP_FILE_REGEX,\n ROUTE_PATTERN_ROBOTS_TXT,\n ROUTE_PATTERN_LLMS_TXT,\n BLAZE_STATIC_ROUTE_STORE_KEY,\n STATIC_FILE_FORWARD_HEADERS,\n ROOT_SELECTOR_CLASS_PREFIX,\n ROOT_SELECTOR_SEPARATOR,\n RESOLVER_CONTAINER_CLASS,\n BLAZE_X_FRAME_OPTIONS_DEFAULT,\n ERROR_URLS\n};\n"],"mappings":"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","ignoreList":[]}
@@ -291,26 +291,61 @@ function doRedirect(res, redirectUrl) {
291
291
  redirecting: true
292
292
  };
293
293
  }
294
- function handleUrlError(err, args) {
295
- var asPath = args.asPath,
296
- res = args.res,
297
- handle404Error = args.handle404Error,
298
- blazeApp = args.blazeApp,
299
- errorCheckCode = args.errorCheckCode;
300
- if (!err.graphQLErrors || !err.graphQLErrors.length) {
301
- return handleError(err, res, handle404Error, blazeApp);
302
- }
303
- if (!errorCheckCode) {
304
- return doUrlCheck(_objectSpread(_objectSpread({}, args), {}, {
305
- url: _constants.ERROR_URLS.custom404,
306
- errorCheckCode: _constants.NOT_FOUND_STATUS_CODE
307
- }));
308
- }
309
- var parentPATH = (0, _checkParent["default"])(asPath);
310
- if (handle404Error && parentPATH) {
311
- return doRedirect(res, parentPATH);
312
- }
313
- return handleError(err, res, handle404Error, blazeApp);
294
+ function handleUrlError(_x5, _x6) {
295
+ return _handleUrlError.apply(this, arguments);
296
+ }
297
+ function _handleUrlError() {
298
+ _handleUrlError = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(err, args) {
299
+ var asPath, res, handle404Error, blazeApp, errorCheckCode, result, parentUrl, parentPATH;
300
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
301
+ while (1) switch (_context4.prev = _context4.next) {
302
+ case 0:
303
+ asPath = args.asPath, res = args.res, handle404Error = args.handle404Error, blazeApp = args.blazeApp, errorCheckCode = args.errorCheckCode;
304
+ if (!(!err.graphQLErrors || !err.graphQLErrors.length)) {
305
+ _context4.next = 3;
306
+ break;
307
+ }
308
+ return _context4.abrupt("return", handleError(err, res, handle404Error, blazeApp));
309
+ case 3:
310
+ if (errorCheckCode) {
311
+ _context4.next = 12;
312
+ break;
313
+ }
314
+ _context4.next = 6;
315
+ return doUrlCheck(_objectSpread(_objectSpread({}, args), {}, {
316
+ url: _constants.ERROR_URLS.custom404,
317
+ errorCheckCode: _constants.NOT_FOUND_STATUS_CODE
318
+ }));
319
+ case 6:
320
+ result = _context4.sent;
321
+ if (!handle404Error) {
322
+ _context4.next = 11;
323
+ break;
324
+ }
325
+ parentUrl = (0, _checkParent["default"])(asPath);
326
+ if (!parentUrl) {
327
+ _context4.next = 11;
328
+ break;
329
+ }
330
+ return _context4.abrupt("return", doRedirect(res, parentUrl));
331
+ case 11:
332
+ return _context4.abrupt("return", result);
333
+ case 12:
334
+ parentPATH = (0, _checkParent["default"])(asPath);
335
+ if (!(handle404Error && parentPATH)) {
336
+ _context4.next = 15;
337
+ break;
338
+ }
339
+ return _context4.abrupt("return", doRedirect(res, parentPATH));
340
+ case 15:
341
+ return _context4.abrupt("return", handleError(err, res, handle404Error, blazeApp));
342
+ case 16:
343
+ case "end":
344
+ return _context4.stop();
345
+ }
346
+ }, _callee4);
347
+ }));
348
+ return _handleUrlError.apply(this, arguments);
314
349
  }
315
350
  var _default = exports["default"] = checkUrl;
316
351
  //# sourceMappingURL=check-url.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-url.js","names":["_queryString","require","_reactPageBuilder","_coreAuthUi","_constants","_query","_checkParent","_interopRequireDefault","_checkPreviewUrl","_handleStaticRoutes","_getPageData","_getRootSelectorClasses","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","checkUrl","_ref","_asyncToGenerator2","_regenerator","mark","_callee","props","asPath","apolloClient","res","req","query","blazeApp","disableSsr","fullUrl","_parseUrl","url","handler","previewData","urlCheckOptions","result","wrap","_callee$","_context","prev","next","getFullUrl","parseUrl","BLAZE_STATUS_URL","abrupt","isStatusPage","handleStaticRoutes","getHandler","setHeader","BLAZE_X_FRAME_OPTIONS","BLAZE_X_FRAME_OPTIONS_DEFAULT","getHeader","BLAZE_CACHE_CONTROL_HEADER","checkPreviewUrl","checkAccessToken","cache","extract","getPreviewData","doUrlCheck","handle404Error","sent","stop","_x","_ref2","_callee2","_result$pageData","_result$pageData2","rootSelectorClasses","_callee2$","_context2","getPageData","pageData","getRootSelectorClasses","isPreview","_x2","_x3","getHost","_ref3","_ref3$headers","headers","BLAZE_FRONTEND_HOST","host","concat","HTTPS","_window","window","_window$location","location","protocol","hostname","port","urlPort","COLON","DOUBLE_SLASH","_ref4","_callee3","args","_args$errorCheckCode","errorCheckCode","_yield$apolloClient$q","_yield$apolloClient$q2","_yield$apolloClient$q3","_yield$apolloClient$q4","_yield$apolloClient$q5","itemId","itemEntity","urlTo","_yield$apolloClient$q6","_callee3$","_context3","ROUTE_REGEX","test","Error","checkUrlQuery","variables","data","setCustomCacheControlHeaders","handleRedirect","events","emit","message","statusCode","getUnpublishedEntityName","t0","handleUrlError","_x4","handleError","err","error","networkError","writeHead","write","end","graphQLErrors","NOT_FOUND_STATUS_CODE","errorCode","_ref5","errorMessage","customError","redirectUrl","BLAZE_DISABLE_REDIRECT_WITH_QUERY","queryString","split","doRedirect","_ref6","_ref6$cacheControlMax","cacheControlMaxAge","Location","href","redirecting","ERROR_URLS","custom404","parentPATH","checkParent","_default","exports"],"sources":["../../src/helpers/check-url.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport {\n HTTPS,\n DOUBLE_SLASH,\n COLON,\n NOT_FOUND_STATUS_CODE,\n BLAZE_X_FRAME_OPTIONS_DEFAULT,\n ROUTE_REGEX,\n ERROR_URLS\n} from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp, disableSsr } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n\n if (res) {\n const handler = handleStaticRoutes.getHandler(asPath);\n\n res.setHeader(\n 'X-Frame-Options',\n process.env.BLAZE_X_FRAME_OPTIONS || BLAZE_X_FRAME_OPTIONS_DEFAULT\n );\n\n if (!res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || ' ');\n }\n\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && disableSsr) return { disableSsr: true };\n\n await checkAccessToken(apolloClient, {\n ...props,\n disableSsr: !Object.keys(apolloClient.cache.extract()).length // empty cache means SSR was disabled\n });\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async args => {\n const { asPath, url, apolloClient, res, blazeApp, errorCheckCode = false } = args;\n try {\n if (!ROUTE_REGEX.test(url)) {\n throw Error('Invalid URL');\n }\n const { data: { checkUrl: { itemId, itemEntity, urlTo, pageData = {} } = {} } = {} } =\n await apolloClient.query({\n query: checkUrlQuery,\n variables: { url }\n });\n\n setCustomCacheControlHeaders(pageData, res);\n\n if (urlTo && (urlTo !== url || errorCheckCode)) {\n return handleRedirect({ errorCheckCode, url, urlTo, asPath, res });\n }\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n\n if (errorCheckCode) {\n blazeApp.events.emit('monitor:log', { message: `Serving custom ${errorCheckCode} page` });\n if (res) res.statusCode = errorCheckCode;\n }\n\n return {\n pageData,\n rootSelectorClasses,\n itemId,\n itemEntity: getUnpublishedEntityName(itemEntity)\n };\n } catch (err) {\n return handleUrlError(err, args);\n }\n};\n\nconst handleError = (err, res, handle404Error, blazeApp) => {\n blazeApp.events.emit('monitor:log', { error: err });\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};\n\nfunction handleRedirect({ errorCheckCode, url, urlTo, asPath, res }) {\n if (errorCheckCode) {\n const errorMessage = `Cannot redirect ${url}`;\n const customError = new Error(errorMessage);\n customError.graphQLErrors = [errorMessage];\n throw customError;\n }\n let redirectUrl = urlTo;\n if (process.env.BLAZE_DISABLE_REDIRECT_WITH_QUERY !== 'true') {\n const queryString = asPath.split('?')[1];\n redirectUrl = queryString ? `${urlTo}?${queryString}` : urlTo;\n }\n\n return doRedirect(res, redirectUrl);\n}\n\nfunction setCustomCacheControlHeaders(pageData, res) {\n const { cacheControlMaxAge = null } = pageData || {};\n\n if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {\n res.setHeader('Cache-Control', `max-age=${cacheControlMaxAge}`);\n }\n}\n\nfunction doRedirect(res, redirectUrl) {\n if (res) {\n res.writeHead(301, { Location: redirectUrl });\n res.end();\n } else {\n window.location.href = redirectUrl;\n }\n\n return { redirecting: true };\n}\n\nfunction handleUrlError(err, args) {\n const { asPath, res, handle404Error, blazeApp, errorCheckCode } = args;\n if (!err.graphQLErrors || !err.graphQLErrors.length) {\n return handleError(err, res, handle404Error, blazeApp);\n }\n\n if (!errorCheckCode) {\n return doUrlCheck({\n ...args,\n url: ERROR_URLS.custom404,\n errorCheckCode: NOT_FOUND_STATUS_CODE\n });\n }\n\n const parentPATH = checkParent(asPath);\n if (handle404Error && parentPATH) {\n return doRedirect(res, parentPATH);\n }\n\n return handleError(err, res, handle404Error, blazeApp);\n}\n\nexport default checkUrl;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"check-url.js","names":["_queryString","require","_reactPageBuilder","_coreAuthUi","_constants","_query","_checkParent","_interopRequireDefault","_checkPreviewUrl","_handleStaticRoutes","_getPageData","_getRootSelectorClasses","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","getRootClassesLimit","Number","process","env","BLAZE_ROOT_SELECTOR_CLASSES_LIMIT","checkUrl","_ref","_asyncToGenerator2","_regenerator","mark","_callee","props","asPath","apolloClient","res","req","query","blazeApp","disableSsr","fullUrl","_parseUrl","url","handler","previewData","urlCheckOptions","result","wrap","_callee$","_context","prev","next","getFullUrl","parseUrl","BLAZE_STATUS_URL","abrupt","isStatusPage","handleStaticRoutes","getHandler","setHeader","BLAZE_X_FRAME_OPTIONS","BLAZE_X_FRAME_OPTIONS_DEFAULT","getHeader","BLAZE_CACHE_CONTROL_HEADER","checkPreviewUrl","checkAccessToken","cache","extract","getPreviewData","doUrlCheck","handle404Error","sent","stop","_x","_ref2","_callee2","_result$pageData","_result$pageData2","rootSelectorClasses","_callee2$","_context2","getPageData","pageData","getRootSelectorClasses","isPreview","_x2","_x3","getHost","_ref3","_ref3$headers","headers","BLAZE_FRONTEND_HOST","host","concat","HTTPS","_window","window","_window$location","location","protocol","hostname","port","urlPort","COLON","DOUBLE_SLASH","_ref4","_callee3","args","_args$errorCheckCode","errorCheckCode","_yield$apolloClient$q","_yield$apolloClient$q2","_yield$apolloClient$q3","_yield$apolloClient$q4","_yield$apolloClient$q5","itemId","itemEntity","urlTo","_yield$apolloClient$q6","_callee3$","_context3","ROUTE_REGEX","test","Error","checkUrlQuery","variables","data","setCustomCacheControlHeaders","handleRedirect","events","emit","message","statusCode","getUnpublishedEntityName","t0","handleUrlError","_x4","handleError","err","error","networkError","writeHead","write","end","graphQLErrors","NOT_FOUND_STATUS_CODE","errorCode","_ref5","errorMessage","customError","redirectUrl","BLAZE_DISABLE_REDIRECT_WITH_QUERY","queryString","split","doRedirect","_ref6","_ref6$cacheControlMax","cacheControlMaxAge","Location","href","redirecting","_x5","_x6","_handleUrlError","_callee4","parentUrl","parentPATH","_callee4$","_context4","ERROR_URLS","custom404","checkParent","_default","exports"],"sources":["../../src/helpers/check-url.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { getUnpublishedEntityName } from '@blaze-cms/react-page-builder';\nimport { checkAccessToken } from '@blaze-cms/core-auth-ui';\nimport {\n HTTPS,\n DOUBLE_SLASH,\n COLON,\n NOT_FOUND_STATUS_CODE,\n BLAZE_X_FRAME_OPTIONS_DEFAULT,\n ROUTE_REGEX,\n ERROR_URLS\n} from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp, disableSsr } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n\n if (res) {\n const handler = handleStaticRoutes.getHandler(asPath);\n\n res.setHeader(\n 'X-Frame-Options',\n process.env.BLAZE_X_FRAME_OPTIONS || BLAZE_X_FRAME_OPTIONS_DEFAULT\n );\n\n if (!res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || ' ');\n }\n\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && disableSsr) return { disableSsr: true };\n\n await checkAccessToken(apolloClient, {\n ...props,\n disableSsr: !Object.keys(apolloClient.cache.extract()).length // empty cache means SSR was disabled\n });\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async args => {\n const { asPath, url, apolloClient, res, blazeApp, errorCheckCode = false } = args;\n try {\n if (!ROUTE_REGEX.test(url)) {\n throw Error('Invalid URL');\n }\n const { data: { checkUrl: { itemId, itemEntity, urlTo, pageData = {} } = {} } = {} } =\n await apolloClient.query({\n query: checkUrlQuery,\n variables: { url }\n });\n\n setCustomCacheControlHeaders(pageData, res);\n\n if (urlTo && (urlTo !== url || errorCheckCode)) {\n return handleRedirect({ errorCheckCode, url, urlTo, asPath, res });\n }\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n\n if (errorCheckCode) {\n blazeApp.events.emit('monitor:log', { message: `Serving custom ${errorCheckCode} page` });\n if (res) res.statusCode = errorCheckCode;\n }\n\n return {\n pageData,\n rootSelectorClasses,\n itemId,\n itemEntity: getUnpublishedEntityName(itemEntity)\n };\n } catch (err) {\n return handleUrlError(err, args);\n }\n};\n\nconst handleError = (err, res, handle404Error, blazeApp) => {\n blazeApp.events.emit('monitor:log', { error: err });\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};\n\nfunction handleRedirect({ errorCheckCode, url, urlTo, asPath, res }) {\n if (errorCheckCode) {\n const errorMessage = `Cannot redirect ${url}`;\n const customError = new Error(errorMessage);\n customError.graphQLErrors = [errorMessage];\n throw customError;\n }\n let redirectUrl = urlTo;\n if (process.env.BLAZE_DISABLE_REDIRECT_WITH_QUERY !== 'true') {\n const queryString = asPath.split('?')[1];\n redirectUrl = queryString ? `${urlTo}?${queryString}` : urlTo;\n }\n\n return doRedirect(res, redirectUrl);\n}\n\nfunction setCustomCacheControlHeaders(pageData, res) {\n const { cacheControlMaxAge = null } = pageData || {};\n\n if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {\n res.setHeader('Cache-Control', `max-age=${cacheControlMaxAge}`);\n }\n}\n\nfunction doRedirect(res, redirectUrl) {\n if (res) {\n res.writeHead(301, { Location: redirectUrl });\n res.end();\n } else {\n window.location.href = redirectUrl;\n }\n\n return { redirecting: true };\n}\n\nasync function handleUrlError(err, args) {\n const { asPath, res, handle404Error, blazeApp, errorCheckCode } = args;\n if (!err.graphQLErrors || !err.graphQLErrors.length) {\n return handleError(err, res, handle404Error, blazeApp);\n }\n\n if (!errorCheckCode) {\n const result = await doUrlCheck({\n ...args,\n url: ERROR_URLS.custom404,\n errorCheckCode: NOT_FOUND_STATUS_CODE\n });\n\n if (handle404Error) {\n const parentUrl = checkParent(asPath);\n if (parentUrl) {\n return doRedirect(res, parentUrl);\n }\n }\n return result;\n }\n\n const parentPATH = checkParent(asPath);\n if (handle404Error && parentPATH) {\n return doRedirect(res, parentPATH);\n }\n\n return handleError(err, res, handle404Error, blazeApp);\n}\n\nexport default checkUrl;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AASA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,gBAAA,GAAAD,sBAAA,CAAAN,OAAA;AACA,IAAAQ,mBAAA,GAAAF,sBAAA,CAAAN,OAAA;AACA,IAAAS,YAAA,GAAAH,sBAAA,CAAAN,OAAA;AACA,IAAAU,uBAAA,GAAAJ,sBAAA,CAAAN,OAAA;AAAiE,SAAAW,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAEjE,IAAMoB,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA;EAAA,OAASC,MAAM,CAACC,OAAO,CAACC,GAAG,CAACC,iCAAiC,CAAC;AAAA;AAEvF,IAAMC,QAAQ;EAAA,IAAAC,IAAA,OAAAC,kBAAA,0BAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAC,QAAMC,KAAK;IAAA,IAAAC,MAAA,EAAAC,YAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA,EAAAC,QAAA,EAAAC,UAAA,EAAAC,OAAA,EAAAC,SAAA,EAAAC,GAAA,EAAAC,OAAA,EAAAC,WAAA,EAAAC,eAAA,EAAAC,MAAA;IAAA,OAAAjB,YAAA,YAAAkB,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAClBlB,MAAM,GAA0DD,KAAK,CAArEC,MAAM,EAAEC,YAAY,GAA4CF,KAAK,CAA7DE,YAAY,EAAEC,GAAG,GAAuCH,KAAK,CAA/CG,GAAG,EAAEC,GAAG,GAAkCJ,KAAK,CAA1CI,GAAG,EAAEC,KAAK,GAA2BL,KAAK,CAArCK,KAAK,EAAEC,QAAQ,GAAiBN,KAAK,CAA9BM,QAAQ,EAAEC,UAAU,GAAKP,KAAK,CAApBO,UAAU;UAC7DC,OAAO,GAAGY,UAAU,CAAChB,GAAG,EAAEH,MAAM,CAAC;UAAAQ,SAAA,GACvB,IAAAY,qBAAQ,EAACpB,MAAM,CAAC,EAAxBS,GAAG,GAAAD,SAAA,CAAHC,GAAG;UAAA,MAEPnB,OAAO,CAACC,GAAG,CAAC8B,gBAAgB,IAAIZ,GAAG,KAAKnB,OAAO,CAACC,GAAG,CAAC8B,gBAAgB;YAAAL,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAM,MAAA,WAC/D;YAAEC,YAAY,EAAE;UAAK,CAAC;QAAA;UAAA,KAG3BrB,GAAG;YAAAc,QAAA,CAAAE,IAAA;YAAA;UAAA;UACCR,OAAO,GAAGc,8BAAkB,CAACC,UAAU,CAACzB,MAAM,CAAC;UAErDE,GAAG,CAACwB,SAAS,CACX,iBAAiB,EACjBpC,OAAO,CAACC,GAAG,CAACoC,qBAAqB,IAAIC,wCACvC,CAAC;UAED,IAAI,CAAC1B,GAAG,CAAC2B,SAAS,CAAC,eAAe,CAAC,EAAE;YACnC3B,GAAG,CAACwB,SAAS,CAAC,eAAe,EAAEpC,OAAO,CAACC,GAAG,CAACuC,0BAA0B,IAAI,GAAG,CAAC;UAC/E;UAAC,KAEGpB,OAAO;YAAAM,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAM,MAAA,WACFZ,OAAO,CAACX,KAAK,CAAC;QAAA;UAInBY,WAAW,GAAG,IAAAoB,2BAAe,EAACtB,GAAG,EAAEL,KAAK,CAAC;UAAA,MAE3C,CAACO,WAAW,IAAIL,UAAU;YAAAU,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAM,MAAA,WAAS;YAAEhB,UAAU,EAAE;UAAK,CAAC;QAAA;UAAAU,QAAA,CAAAE,IAAA;UAAA,OAErD,IAAAc,4BAAgB,EAAC/B,YAAY,EAAArB,aAAA,CAAAA,aAAA,KAC9BmB,KAAK;YACRO,UAAU,EAAE,CAACnC,MAAM,CAACC,IAAI,CAAC6B,YAAY,CAACgC,KAAK,CAACC,OAAO,CAAC,CAAC,CAAC,CAACpD,MAAM,CAAC;UAAA,EAC/D,CAAC;QAAA;UAAA,KAEE6B,WAAW;YAAAK,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAM,MAAA,WAASa,cAAc,CAACxB,WAAW,EAAEV,YAAY,CAAC;QAAA;UAC3DW,eAAe,GAAG;YAAEZ,MAAM,EAANA,MAAM;YAAES,GAAG,EAAHA,GAAG;YAAER,YAAY,EAAZA,YAAY;YAAEC,GAAG,EAAHA;UAAI,CAAC;UAAAc,QAAA,CAAAE,IAAA;UAAA,OACrCkB,UAAU,CAAAxD,aAAA,CAAAA,aAAA,KAC1BgC,eAAe;YAClByB,cAAc,EAAE,IAAI;YACpBhC,QAAQ,EAARA;UAAQ,EACT,CAAC;QAAA;UAJIQ,MAAM,GAAAG,QAAA,CAAAsB,IAAA;UAAA,OAAAtB,QAAA,CAAAM,MAAA,WAKL1C,aAAA,CAAAA,aAAA,KAAKiC,MAAM;YAAEN,OAAO,EAAPA;UAAO,MAAM,CAAC,CAAC;QAAA;QAAA;UAAA,OAAAS,QAAA,CAAAuB,IAAA;MAAA;IAAA,GAAAzC,OAAA;EAAA,CACpC;EAAA,gBA3CKL,QAAQA,CAAA+C,EAAA;IAAA,OAAA9C,IAAA,CAAAf,KAAA,OAAAE,SAAA;EAAA;AAAA,GA2Cb;AAED,IAAMsD,cAAc;EAAA,IAAAM,KAAA,OAAA9C,kBAAA,0BAAAC,YAAA,YAAAC,IAAA,CAAG,SAAA6C,SAAO/B,WAAW,EAAEV,YAAY;IAAA,IAAAY,MAAA,EAAA8B,gBAAA,EAAAC,iBAAA,EAAAnC,GAAA,EAAAoC,mBAAA;IAAA,OAAAjD,YAAA,YAAAkB,IAAA,UAAAgC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA9B,IAAA,GAAA8B,SAAA,CAAA7B,IAAA;QAAA;UAAA6B,SAAA,CAAA7B,IAAA;UAAA,OAChC,IAAA8B,uBAAW,EAAApE,aAAA,CAAAA,aAAA,KAAM+B,WAAW;YAAEV,YAAY,EAAZA;UAAY,EAAE,CAAC;QAAA;UAA5DY,MAAM,GAAAkC,SAAA,CAAAT,IAAA;UAAAK,gBAAA,GACuB9B,MAAM,CAAjCoC,QAAQ,EAAAL,iBAAA,GAAAD,gBAAA,cAAY,CAAC,CAAC,GAAAA,gBAAA,EAAVlC,GAAG,GAAAmC,iBAAA,CAAHnC,GAAG;UACjBoC,mBAAmB,GAAG,IAAAK,kCAAsB,EAACzC,GAAG,EAAErB,mBAAmB,CAAC,CAAC,CAAC;UAAA,OAAA2D,SAAA,CAAAzB,MAAA,WAAA1C,aAAA,CAAAA,aAAA,CAAAA,aAAA,KAClE+B,WAAW;YAAEkC,mBAAmB,EAAnBA;UAAmB,GAAKhC,MAAM;YAAEsC,SAAS,EAAE;UAAI;QAAA;QAAA;UAAA,OAAAJ,SAAA,CAAAR,IAAA;MAAA;IAAA,GAAAG,QAAA;EAAA,CACzE;EAAA,gBALKP,cAAcA,CAAAiB,GAAA,EAAAC,GAAA;IAAA,OAAAZ,KAAA,CAAA9D,KAAA,OAAAE,SAAA;EAAA;AAAA,GAKnB;AAED,IAAMyE,OAAO,GAAG,SAAVA,OAAOA,CAAAC,KAAA;EAAA,IAAAC,aAAA,GAAAD,KAAA,CAAME,OAAO;IAAPA,OAAO,GAAAD,aAAA,cAAG,CAAC,CAAC,GAAAA,aAAA;EAAA,OAC7BlE,OAAO,CAACC,GAAG,CAACmE,mBAAmB,IAC/BD,OAAO,CAAC,gBAAgB,CAAC,IACzBA,OAAO,CAAC,kBAAkB,CAAC,IAC3BA,OAAO,CAACE,IAAI;AAAA;AAEd,IAAMxC,UAAU,GAAG,SAAbA,UAAUA,CAAIhB,GAAG,EAAEH,MAAM,EAAK;EAClC,IAAIG,GAAG,EAAE;IACP,UAAAyD,MAAA,CAAUC,gBAAK,EAAAD,MAAA,CAAGN,OAAO,CAACnD,GAAG,CAAC,EAAAyD,MAAA,CAAG5D,MAAM;EACzC;EACA,IAAA8D,OAAA,GAEIC,MAAM;IAAAC,gBAAA,GAAAF,OAAA,CADRG,QAAQ;IAAIC,QAAQ,GAAAF,gBAAA,CAARE,QAAQ;IAAEC,QAAQ,GAAAH,gBAAA,CAARG,QAAQ;IAAEC,IAAI,GAAAJ,gBAAA,CAAJI,IAAI;EAEtC,IAAMC,OAAO,GAAGD,IAAI,MAAAR,MAAA,CAAMU,gBAAK,EAAAV,MAAA,CAAGQ,IAAI,IAAK,EAAE;EAE7C,UAAAR,MAAA,CAAUM,QAAQ,EAAAN,MAAA,CAAGW,uBAAY,EAAAX,MAAA,CAAGO,QAAQ,EAAAP,MAAA,CAAGS,OAAO,EAAAT,MAAA,CAAG5D,MAAM;AACjE,CAAC;AAED,IAAMoC,UAAU;EAAA,IAAAoC,KAAA,OAAA7E,kBAAA,0BAAAC,YAAA,YAAAC,IAAA,CAAG,SAAA4E,SAAMC,IAAI;IAAA,IAAA1E,MAAA,EAAAS,GAAA,EAAAR,YAAA,EAAAC,GAAA,EAAAG,QAAA,EAAAsE,oBAAA,EAAAC,cAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,MAAA,EAAAC,UAAA,EAAAC,KAAA,EAAAC,sBAAA,EAAApC,QAAA,EAAAJ,mBAAA;IAAA,OAAAjD,YAAA,YAAAkB,IAAA,UAAAwE,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAtE,IAAA,GAAAsE,SAAA,CAAArE,IAAA;QAAA;UACnBlB,MAAM,GAA+D0E,IAAI,CAAzE1E,MAAM,EAAES,GAAG,GAA0DiE,IAAI,CAAjEjE,GAAG,EAAER,YAAY,GAA4CyE,IAAI,CAA5DzE,YAAY,EAAEC,GAAG,GAAuCwE,IAAI,CAA9CxE,GAAG,EAAEG,QAAQ,GAA6BqE,IAAI,CAAzCrE,QAAQ,EAAAsE,oBAAA,GAA6BD,IAAI,CAA/BE,cAAc,EAAdA,cAAc,GAAAD,oBAAA,cAAG,KAAK,GAAAA,oBAAA;UAAAY,SAAA,CAAAtE,IAAA;UAAA,IAEjEuE,sBAAW,CAACC,IAAI,CAAChF,GAAG,CAAC;YAAA8E,SAAA,CAAArE,IAAA;YAAA;UAAA;UAAA,MAClBwE,KAAK,CAAC,aAAa,CAAC;QAAA;UAAAH,SAAA,CAAArE,IAAA;UAAA,OAGpBjB,YAAY,CAACG,KAAK,CAAC;YACvBA,KAAK,EAAEuF,oBAAa;YACpBC,SAAS,EAAE;cAAEnF,GAAG,EAAHA;YAAI;UACnB,CAAC,CAAC;QAAA;UAAAoE,qBAAA,GAAAU,SAAA,CAAAjD,IAAA;UAAAwC,sBAAA,GAAAD,qBAAA,CAJIgB,IAAI;UAAAd,sBAAA,GAAAD,sBAAA,cAAoE,CAAC,CAAC,GAAAA,sBAAA;UAAAE,sBAAA,GAAAD,sBAAA,CAAlEtF,QAAQ;UAAAwF,sBAAA,GAAAD,sBAAA,cAAiD,CAAC,CAAC,GAAAA,sBAAA;UAA/CE,MAAM,GAAAD,sBAAA,CAANC,MAAM;UAAEC,UAAU,GAAAF,sBAAA,CAAVE,UAAU;UAAEC,KAAK,GAAAH,sBAAA,CAALG,KAAK;UAAAC,sBAAA,GAAAJ,sBAAA,CAAEhC,QAAQ;UAARA,QAAQ,GAAAoC,sBAAA,cAAG,CAAC,CAAC,GAAAA,sBAAA;UAMpES,4BAA4B,CAAC7C,QAAQ,EAAE/C,GAAG,CAAC;UAAC,MAExCkF,KAAK,KAAKA,KAAK,KAAK3E,GAAG,IAAImE,cAAc,CAAC;YAAAW,SAAA,CAAArE,IAAA;YAAA;UAAA;UAAA,OAAAqE,SAAA,CAAAjE,MAAA,WACrCyE,cAAc,CAAC;YAAEnB,cAAc,EAAdA,cAAc;YAAEnE,GAAG,EAAHA,GAAG;YAAE2E,KAAK,EAALA,KAAK;YAAEpF,MAAM,EAANA,MAAM;YAAEE,GAAG,EAAHA;UAAI,CAAC,CAAC;QAAA;UAE9D2C,mBAAmB,GAAG,IAAAK,kCAAsB,EAACzC,GAAG,EAAErB,mBAAmB,CAAC,CAAC,CAAC;UAE9E,IAAIwF,cAAc,EAAE;YAClBvE,QAAQ,CAAC2F,MAAM,CAACC,IAAI,CAAC,aAAa,EAAE;cAAEC,OAAO,oBAAAtC,MAAA,CAAoBgB,cAAc;YAAQ,CAAC,CAAC;YACzF,IAAI1E,GAAG,EAAEA,GAAG,CAACiG,UAAU,GAAGvB,cAAc;UAC1C;UAAC,OAAAW,SAAA,CAAAjE,MAAA,WAEM;YACL2B,QAAQ,EAARA,QAAQ;YACRJ,mBAAmB,EAAnBA,mBAAmB;YACnBqC,MAAM,EAANA,MAAM;YACNC,UAAU,EAAE,IAAAiB,0CAAwB,EAACjB,UAAU;UACjD,CAAC;QAAA;UAAAI,SAAA,CAAAtE,IAAA;UAAAsE,SAAA,CAAAc,EAAA,GAAAd,SAAA;UAAA,OAAAA,SAAA,CAAAjE,MAAA,WAEMgF,cAAc,CAAAf,SAAA,CAAAc,EAAA,EAAM3B,IAAI,CAAC;QAAA;QAAA;UAAA,OAAAa,SAAA,CAAAhD,IAAA;MAAA;IAAA,GAAAkC,QAAA;EAAA,CAEnC;EAAA,gBAjCKrC,UAAUA,CAAAmE,GAAA;IAAA,OAAA/B,KAAA,CAAA7F,KAAA,OAAAE,SAAA;EAAA;AAAA,GAiCf;AAED,IAAM2H,WAAW,GAAG,SAAdA,WAAWA,CAAIC,GAAG,EAAEvG,GAAG,EAAEmC,cAAc,EAAEhC,QAAQ,EAAK;EAC1DA,QAAQ,CAAC2F,MAAM,CAACC,IAAI,CAAC,aAAa,EAAE;IAAES,KAAK,EAAED;EAAI,CAAC,CAAC;EACnD,IAAI,CAACvG,GAAG,EAAE,OAAO,CAAC,CAAC;EACnB,IAAIuG,GAAG,CAACE,YAAY,EAAE;IACpBzG,GAAG,CAAC0G,SAAS,CAAC,GAAG,EAAE;MAAE,cAAc,EAAE;IAAa,CAAC,CAAC;IACpD1G,GAAG,CAAC2G,KAAK,CAAC,6BAA6B,CAAC;IACxC3G,GAAG,CAAC4G,GAAG,CAAC,CAAC;EACX,CAAC,MAAM,IAAIzE,cAAc,IAAIoE,GAAG,CAACM,aAAa,IAAIN,GAAG,CAACM,aAAa,CAACjI,MAAM,EAAE;IAC1EoB,GAAG,CAACiG,UAAU,GAAGa,gCAAqB;IACtC,OAAO;MAAEC,SAAS,EAAED;IAAsB,CAAC;EAC7C;EAEA,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAASjB,cAAcA,CAAAmB,KAAA,EAA8C;EAAA,IAA3CtC,cAAc,GAAAsC,KAAA,CAAdtC,cAAc;IAAEnE,GAAG,GAAAyG,KAAA,CAAHzG,GAAG;IAAE2E,KAAK,GAAA8B,KAAA,CAAL9B,KAAK;IAAEpF,MAAM,GAAAkH,KAAA,CAANlH,MAAM;IAAEE,GAAG,GAAAgH,KAAA,CAAHhH,GAAG;EAC/D,IAAI0E,cAAc,EAAE;IAClB,IAAMuC,YAAY,sBAAAvD,MAAA,CAAsBnD,GAAG,CAAE;IAC7C,IAAM2G,WAAW,GAAG,IAAI1B,KAAK,CAACyB,YAAY,CAAC;IAC3CC,WAAW,CAACL,aAAa,GAAG,CAACI,YAAY,CAAC;IAC1C,MAAMC,WAAW;EACnB;EACA,IAAIC,WAAW,GAAGjC,KAAK;EACvB,IAAI9F,OAAO,CAACC,GAAG,CAAC+H,iCAAiC,KAAK,MAAM,EAAE;IAC5D,IAAMC,WAAW,GAAGvH,MAAM,CAACwH,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxCH,WAAW,GAAGE,WAAW,MAAA3D,MAAA,CAAMwB,KAAK,OAAAxB,MAAA,CAAI2D,WAAW,IAAKnC,KAAK;EAC/D;EAEA,OAAOqC,UAAU,CAACvH,GAAG,EAAEmH,WAAW,CAAC;AACrC;AAEA,SAASvB,4BAA4BA,CAAC7C,QAAQ,EAAE/C,GAAG,EAAE;EACnD,IAAAwH,KAAA,GAAsCzE,QAAQ,IAAI,CAAC,CAAC;IAAA0E,qBAAA,GAAAD,KAAA,CAA5CE,kBAAkB;IAAlBA,kBAAkB,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;EAEjC,IAAIzH,GAAG,IAAI0H,kBAAkB,KAAK,IAAI,IAAIA,kBAAkB,IAAI,CAAC,EAAE;IACjE1H,GAAG,CAACwB,SAAS,CAAC,eAAe,aAAAkC,MAAA,CAAagE,kBAAkB,CAAE,CAAC;EACjE;AACF;AAEA,SAASH,UAAUA,CAACvH,GAAG,EAAEmH,WAAW,EAAE;EACpC,IAAInH,GAAG,EAAE;IACPA,GAAG,CAAC0G,SAAS,CAAC,GAAG,EAAE;MAAEiB,QAAQ,EAAER;IAAY,CAAC,CAAC;IAC7CnH,GAAG,CAAC4G,GAAG,CAAC,CAAC;EACX,CAAC,MAAM;IACL/C,MAAM,CAACE,QAAQ,CAAC6D,IAAI,GAAGT,WAAW;EACpC;EAEA,OAAO;IAAEU,WAAW,EAAE;EAAK,CAAC;AAC9B;AAAC,SAEczB,cAAcA,CAAA0B,GAAA,EAAAC,GAAA;EAAA,OAAAC,eAAA,CAAAvJ,KAAA,OAAAE,SAAA;AAAA;AAAA,SAAAqJ,gBAAA;EAAAA,eAAA,OAAAvI,kBAAA,0BAAAC,YAAA,YAAAC,IAAA,CAA7B,SAAAsI,SAA8B1B,GAAG,EAAE/B,IAAI;IAAA,IAAA1E,MAAA,EAAAE,GAAA,EAAAmC,cAAA,EAAAhC,QAAA,EAAAuE,cAAA,EAAA/D,MAAA,EAAAuH,SAAA,EAAAC,UAAA;IAAA,OAAAzI,YAAA,YAAAkB,IAAA,UAAAwH,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAtH,IAAA,GAAAsH,SAAA,CAAArH,IAAA;QAAA;UAC7BlB,MAAM,GAAoD0E,IAAI,CAA9D1E,MAAM,EAAEE,GAAG,GAA+CwE,IAAI,CAAtDxE,GAAG,EAAEmC,cAAc,GAA+BqC,IAAI,CAAjDrC,cAAc,EAAEhC,QAAQ,GAAqBqE,IAAI,CAAjCrE,QAAQ,EAAEuE,cAAc,GAAKF,IAAI,CAAvBE,cAAc;UAAA,MACzD,CAAC6B,GAAG,CAACM,aAAa,IAAI,CAACN,GAAG,CAACM,aAAa,CAACjI,MAAM;YAAAyJ,SAAA,CAAArH,IAAA;YAAA;UAAA;UAAA,OAAAqH,SAAA,CAAAjH,MAAA,WAC1CkF,WAAW,CAACC,GAAG,EAAEvG,GAAG,EAAEmC,cAAc,EAAEhC,QAAQ,CAAC;QAAA;UAAA,IAGnDuE,cAAc;YAAA2D,SAAA,CAAArH,IAAA;YAAA;UAAA;UAAAqH,SAAA,CAAArH,IAAA;UAAA,OACIkB,UAAU,CAAAxD,aAAA,CAAAA,aAAA,KAC1B8F,IAAI;YACPjE,GAAG,EAAE+H,qBAAU,CAACC,SAAS;YACzB7D,cAAc,EAAEoC;UAAqB,EACtC,CAAC;QAAA;UAJInG,MAAM,GAAA0H,SAAA,CAAAjG,IAAA;UAAA,KAMRD,cAAc;YAAAkG,SAAA,CAAArH,IAAA;YAAA;UAAA;UACVkH,SAAS,GAAG,IAAAM,uBAAW,EAAC1I,MAAM,CAAC;UAAA,KACjCoI,SAAS;YAAAG,SAAA,CAAArH,IAAA;YAAA;UAAA;UAAA,OAAAqH,SAAA,CAAAjH,MAAA,WACJmG,UAAU,CAACvH,GAAG,EAAEkI,SAAS,CAAC;QAAA;UAAA,OAAAG,SAAA,CAAAjH,MAAA,WAG9BT,MAAM;QAAA;UAGTwH,UAAU,GAAG,IAAAK,uBAAW,EAAC1I,MAAM,CAAC;UAAA,MAClCqC,cAAc,IAAIgG,UAAU;YAAAE,SAAA,CAAArH,IAAA;YAAA;UAAA;UAAA,OAAAqH,SAAA,CAAAjH,MAAA,WACvBmG,UAAU,CAACvH,GAAG,EAAEmI,UAAU,CAAC;QAAA;UAAA,OAAAE,SAAA,CAAAjH,MAAA,WAG7BkF,WAAW,CAACC,GAAG,EAAEvG,GAAG,EAAEmC,cAAc,EAAEhC,QAAQ,CAAC;QAAA;QAAA;UAAA,OAAAkI,SAAA,CAAAhG,IAAA;MAAA;IAAA,GAAA4F,QAAA;EAAA,CACvD;EAAA,OAAAD,eAAA,CAAAvJ,KAAA,OAAAE,SAAA;AAAA;AAAA,IAAA8J,QAAA,GAAAC,OAAA,cAEcnJ,QAAQ","ignoreList":[]}
@@ -16,6 +16,7 @@ require("core-js/modules/web.dom-collections.iterator.js");
16
16
  var sitemap = _interopRequireWildcard(require("./sitemap"));
17
17
  var sitemapFile = _interopRequireWildcard(require("./sitemap-file"));
18
18
  var robots = _interopRequireWildcard(require("./robots-txt"));
19
+ var llms = _interopRequireWildcard(require("./llms"));
19
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
20
21
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
21
22
  var sitemapPattern = sitemap.pattern,
@@ -24,9 +25,12 @@ var sitemapFilePattern = sitemapFile.pattern,
24
25
  sitemapFileHandler = sitemapFile.handler;
25
26
  var robotsTxtPattern = robots.pattern,
26
27
  robotsTxtHandler = robots.handler;
28
+ var llmsPattern = llms.pattern,
29
+ llmsTxtHandler = llms.handler;
27
30
  var config = new Map();
28
31
  config.set(sitemapPattern, sitemapHandler);
29
32
  config.set(sitemapFilePattern, sitemapFileHandler);
30
33
  config.set(robotsTxtPattern, robotsTxtHandler);
34
+ config.set(llmsPattern, llmsTxtHandler);
31
35
  var _default = exports["default"] = config;
32
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["sitemap","_interopRequireWildcard","require","sitemapFile","robots","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","sitemapPattern","pattern","sitemapHandler","handler","sitemapFilePattern","sitemapFileHandler","robotsTxtPattern","robotsTxtHandler","config","Map","_default","exports"],"sources":["../../../src/helpers/static-route-handlers/index.js"],"sourcesContent":["import * as sitemap from './sitemap';\nimport * as sitemapFile from './sitemap-file';\nimport * as robots from './robots-txt';\n\nconst { pattern: sitemapPattern, handler: sitemapHandler } = sitemap;\nconst { pattern: sitemapFilePattern, handler: sitemapFileHandler } = sitemapFile;\nconst { pattern: robotsTxtPattern, handler: robotsTxtHandler } = robots;\n\nconst config = new Map();\nconfig.set(sitemapPattern, sitemapHandler);\nconfig.set(sitemapFilePattern, sitemapFileHandler);\nconfig.set(robotsTxtPattern, robotsTxtHandler);\n\nexport default config;\n"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,uBAAA,CAAAC,OAAA;AAAuC,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,gBAAAK,OAAA,CAAAL,CAAA,0BAAAA,CAAA,sBAAAA,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,cAAAR,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEvC,IAAiBW,cAAc,GAA8BzB,OAAO,CAA5D0B,OAAO;EAA2BC,cAAc,GAAK3B,OAAO,CAAnC4B,OAAO;AACxC,IAAiBC,kBAAkB,GAAkC1B,WAAW,CAAxEuB,OAAO;EAA+BI,kBAAkB,GAAK3B,WAAW,CAA3CyB,OAAO;AAC5C,IAAiBG,gBAAgB,GAAgC3B,MAAM,CAA/DsB,OAAO;EAA6BM,gBAAgB,GAAK5B,MAAM,CAApCwB,OAAO;AAE1C,IAAMK,MAAM,GAAG,IAAIC,GAAG,CAAC,CAAC;AACxBD,MAAM,CAACT,GAAG,CAACC,cAAc,EAAEE,cAAc,CAAC;AAC1CM,MAAM,CAACT,GAAG,CAACK,kBAAkB,EAAEC,kBAAkB,CAAC;AAClDG,MAAM,CAACT,GAAG,CAACO,gBAAgB,EAAEC,gBAAgB,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,cAEhCH,MAAM","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["sitemap","_interopRequireWildcard","require","sitemapFile","robots","llms","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","sitemapPattern","pattern","sitemapHandler","handler","sitemapFilePattern","sitemapFileHandler","robotsTxtPattern","robotsTxtHandler","llmsPattern","llmsTxtHandler","config","Map","_default","exports"],"sources":["../../../src/helpers/static-route-handlers/index.js"],"sourcesContent":["import * as sitemap from './sitemap';\nimport * as sitemapFile from './sitemap-file';\nimport * as robots from './robots-txt';\nimport * as llms from './llms';\n\nconst { pattern: sitemapPattern, handler: sitemapHandler } = sitemap;\nconst { pattern: sitemapFilePattern, handler: sitemapFileHandler } = sitemapFile;\nconst { pattern: robotsTxtPattern, handler: robotsTxtHandler } = robots;\nconst { pattern: llmsPattern, handler: llmsTxtHandler } = llms;\n\nconst config = new Map();\nconfig.set(sitemapPattern, sitemapHandler);\nconfig.set(sitemapFilePattern, sitemapFileHandler);\nconfig.set(robotsTxtPattern, robotsTxtHandler);\nconfig.set(llmsPattern, llmsTxtHandler);\n\nexport default config;\n"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,uBAAA,CAAAC,OAAA;AACA,IAAAG,IAAA,GAAAJ,uBAAA,CAAAC,OAAA;AAA+B,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,gBAAAK,OAAA,CAAAL,CAAA,0BAAAA,CAAA,sBAAAA,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,cAAAR,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAE/B,IAAiBW,cAAc,GAA8B1B,OAAO,CAA5D2B,OAAO;EAA2BC,cAAc,GAAK5B,OAAO,CAAnC6B,OAAO;AACxC,IAAiBC,kBAAkB,GAAkC3B,WAAW,CAAxEwB,OAAO;EAA+BI,kBAAkB,GAAK5B,WAAW,CAA3C0B,OAAO;AAC5C,IAAiBG,gBAAgB,GAAgC5B,MAAM,CAA/DuB,OAAO;EAA6BM,gBAAgB,GAAK7B,MAAM,CAApCyB,OAAO;AAC1C,IAAiBK,WAAW,GAA8B7B,IAAI,CAAtDsB,OAAO;EAAwBQ,cAAc,GAAK9B,IAAI,CAAhCwB,OAAO;AAErC,IAAMO,MAAM,GAAG,IAAIC,GAAG,CAAC,CAAC;AACxBD,MAAM,CAACX,GAAG,CAACC,cAAc,EAAEE,cAAc,CAAC;AAC1CQ,MAAM,CAACX,GAAG,CAACK,kBAAkB,EAAEC,kBAAkB,CAAC;AAClDK,MAAM,CAACX,GAAG,CAACO,gBAAgB,EAAEC,gBAAgB,CAAC;AAC9CG,MAAM,CAACX,GAAG,CAACS,WAAW,EAAEC,cAAc,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,cAEzBH,MAAM","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.pattern = exports.handler = exports.fileQuery = void 0;
9
+ require("core-js/modules/es.regexp.constructor.js");
10
+ require("core-js/modules/es.regexp.exec.js");
11
+ require("core-js/modules/es.regexp.to-string.js");
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+ var _client = require("@apollo/client");
14
+ var _constants = require("../../constants");
15
+ var _genericFileHandler = _interopRequireDefault(require("./generic-file-handler"));
16
+ var _templateObject;
17
+ var storeKey = process.env.BLAZE_STATIC_ROUTE_STORE_KEY || _constants.BLAZE_STATIC_ROUTE_STORE_KEY;
18
+ var fileQuery = exports.fileQuery = (0, _client.gql)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n query {\n files: getFiles(\n where: { storeKey: \"", "\", filename: \"llms.txt\" }\n limit: 1\n sort: [{ property: \"created\", direction: \"desc\" }]\n ) {\n mimetype\n url\n }\n }\n"])), storeKey);
19
+ var pattern = exports.pattern = new RegExp(_constants.ROUTE_PATTERN_LLMS_TXT);
20
+ var handler = exports.handler = (0, _genericFileHandler["default"])(fileQuery);
21
+ //# sourceMappingURL=llms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms.js","names":["_client","require","_constants","_genericFileHandler","_interopRequireDefault","_templateObject","storeKey","process","env","BLAZE_STATIC_ROUTE_STORE_KEY","fileQuery","exports","gql","_taggedTemplateLiteral2","pattern","RegExp","ROUTE_PATTERN_LLMS_TXT","handler","getHandler"],"sources":["../../../src/helpers/static-route-handlers/llms.js"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { ROUTE_PATTERN_LLMS_TXT, BLAZE_STATIC_ROUTE_STORE_KEY } from '../../constants';\nimport getHandler from './generic-file-handler';\n\nconst storeKey = process.env.BLAZE_STATIC_ROUTE_STORE_KEY || BLAZE_STATIC_ROUTE_STORE_KEY;\n\nexport const fileQuery = gql`\n query {\n files: getFiles(\n where: { storeKey: \"${storeKey}\", filename: \"llms.txt\" }\n limit: 1\n sort: [{ property: \"created\", direction: \"desc\" }]\n ) {\n mimetype\n url\n }\n }\n`;\n\nexport const pattern = new RegExp(ROUTE_PATTERN_LLMS_TXT);\n\nexport const handler = getHandler(fileQuery);\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAC,sBAAA,CAAAH,OAAA;AAAgD,IAAAI,eAAA;AAEhD,IAAMC,QAAQ,GAAGC,OAAO,CAACC,GAAG,CAACC,4BAA4B,IAAIA,uCAA4B;AAElF,IAAMC,SAAS,GAAAC,OAAA,CAAAD,SAAA,OAAGE,WAAG,EAAAP,eAAA,KAAAA,eAAA,OAAAQ,uBAAA,mPAGAP,QAAQ,CAQnC;AAEM,IAAMQ,OAAO,GAAAH,OAAA,CAAAG,OAAA,GAAG,IAAIC,MAAM,CAACC,iCAAsB,CAAC;AAElD,IAAMC,OAAO,GAAAN,OAAA,CAAAM,OAAA,GAAG,IAAAC,8BAAU,EAACR,SAAS,CAAC","ignoreList":[]}
@@ -39,6 +39,7 @@ const ROUTE_PATTERN_SITEMAP = process.env.BLAZE_ROUTE_PATTERN_SITEMAP || '/sitem
39
39
  const sitemapFilePrefix = process.env.BLAZE_CONTENT_SITEMAP_URL_PREFIX || 'sitemap';
40
40
  const ROUTE_PATTERN_SITEMAP_FILE_REGEX = new RegExp(`/${sitemapFilePrefix}/.*\.xml`);
41
41
  const ROUTE_PATTERN_ROBOTS_TXT = '/robots.txt';
42
+ const ROUTE_PATTERN_LLMS_TXT = '/llms.txt';
42
43
  const BLAZE_STATIC_ROUTE_STORE_KEY = 'default';
43
44
  const STATIC_FILE_FORWARD_HEADERS = ['content-length', 'last-modified', 'etag'];
44
45
  const APPLE_TAGS = [{
@@ -89,6 +90,7 @@ module.exports = {
89
90
  ROUTE_PATTERN_SITEMAP,
90
91
  ROUTE_PATTERN_SITEMAP_FILE_REGEX,
91
92
  ROUTE_PATTERN_ROBOTS_TXT,
93
+ ROUTE_PATTERN_LLMS_TXT,
92
94
  BLAZE_STATIC_ROUTE_STORE_KEY,
93
95
  STATIC_FILE_FORWARD_HEADERS,
94
96
  ROOT_SELECTOR_CLASS_PREFIX,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["ACTIVE_META_TAGS","BLAZE_X_FRAME_OPTIONS_DEFAULT","META_TAGS_LOOKUP","description","apiKey","htmlTagName","tagKeyName","contentDataKeyName","canonical","PB_TYPE_IMAGE","PB_TYPE_TEXTBLOCK","PB_TYPE_CAROUSEL","SEARCH_FILTER","COLON","DOUBLE_SLASH","HTTPS","DEFAULT_ROUTE_REGEX","ROUTE_REGEX","process","env","BLAZE_ROUTE_REGEX","RegExp","PREVIEW_REGEX","PREVIEW_MODE","GTM_STRING","BLAZE_DEBUG","BLAZE_PB_EDITOR_MODE","DEBUG_LOGO","SRC","ALT","PUBLISHED_","RESPONSE_404","SITEMAP_STORE_KEY","ROUTE_PATTERN_SITEMAP","BLAZE_ROUTE_PATTERN_SITEMAP","sitemapFilePrefix","BLAZE_CONTENT_SITEMAP_URL_PREFIX","ROUTE_PATTERN_SITEMAP_FILE_REGEX","ROUTE_PATTERN_ROBOTS_TXT","BLAZE_STATIC_ROUTE_STORE_KEY","STATIC_FILE_FORWARD_HEADERS","APPLE_TAGS","href","rel","sizes","NOT_FOUND_STATUS_CODE","ROOT_SELECTOR_CLASS_PREFIX","ROOT_SELECTOR_SEPARATOR","RESOLVER_CONTAINER_CLASS","ERROR_URLS","custom404","module","exports"],"sources":["../src/constants.js"],"sourcesContent":["const ACTIVE_META_TAGS = ['description', 'canonical'];\nconst BLAZE_X_FRAME_OPTIONS_DEFAULT = 'SAMEORIGIN';\n\nconst META_TAGS_LOOKUP = {\n description: {\n apiKey: 'metaDescription',\n htmlTagName: 'meta',\n tagKeyName: 'name',\n contentDataKeyName: 'content'\n },\n canonical: {\n apiKey: 'canonicalUrl',\n htmlTagName: 'link',\n tagKeyName: 'rel',\n contentDataKeyName: 'href'\n }\n};\n\nconst PB_TYPE_IMAGE = 'image';\nconst PB_TYPE_TEXTBLOCK = 'textblock';\nconst PB_TYPE_CAROUSEL = 'carousel';\nconst SEARCH_FILTER = 'searchfilter';\nconst COLON = ':';\nconst DOUBLE_SLASH = '//';\nconst HTTPS = 'https://';\n\nconst DEFAULT_ROUTE_REGEX = /^\\/[a-z0-9€_\\/]+(?:[-\\/\\.]{1,2}[a-z0-9\\/€_\\/]+)*$|^\\/$/i;\nconst ROUTE_REGEX = process.env.BLAZE_ROUTE_REGEX\n ? new RegExp(process.env.BLAZE_ROUTE_REGEX)\n : DEFAULT_ROUTE_REGEX;\nconst PREVIEW_REGEX = /^(\\/_preview)/;\nconst PREVIEW_MODE = 'Preview Mode';\nconst GTM_STRING = 'gtm';\n\nconst BLAZE_DEBUG = 'blaze_debug';\nconst BLAZE_PB_EDITOR_MODE = 'blaze_pb_editor_mode';\nconst DEBUG_LOGO = {\n SRC: 'https://images.thisisblaze.com/logo-small-27-40.png',\n ALT: 'blaze-logo'\n};\n\nconst PUBLISHED_ = 'published_';\n\nconst RESPONSE_404 = '404 Not Found\\n';\n\nconst SITEMAP_STORE_KEY = 'default_sitemap';\nconst ROUTE_PATTERN_SITEMAP = process.env.BLAZE_ROUTE_PATTERN_SITEMAP || '/sitemap.xml';\nconst sitemapFilePrefix = process.env.BLAZE_CONTENT_SITEMAP_URL_PREFIX || 'sitemap';\nconst ROUTE_PATTERN_SITEMAP_FILE_REGEX = new RegExp(`/${sitemapFilePrefix}/.*\\.xml`);\nconst ROUTE_PATTERN_ROBOTS_TXT = '/robots.txt';\nconst BLAZE_STATIC_ROUTE_STORE_KEY = 'default';\n\nconst STATIC_FILE_FORWARD_HEADERS = ['content-length', 'last-modified', 'etag'];\n\nconst APPLE_TAGS = [\n { href: '/static/icons/touch-icon-iphone.png', rel: 'apple-touch-icon' },\n { href: '/static/icons/touch-icon-ipad.png', rel: 'apple-touch-icon', sizes: '152x152' },\n { href: '/static/icons/touch-icon-iphone-retina.png', rel: 'apple-touch-icon', sizes: '180x180' },\n { href: '/static/icons/touch-icon-ipad-retina.png', rel: 'apple-touch-icon', sizes: '167x167' }\n];\n\nconst NOT_FOUND_STATUS_CODE = 404;\n\nconst ROOT_SELECTOR_CLASS_PREFIX = 'root-selector';\nconst ROOT_SELECTOR_SEPARATOR = '--';\nconst RESOLVER_CONTAINER_CLASS = 'resolver-container';\nconst ERROR_URLS = {\n custom404: '/custom-error-404'\n};\n\nmodule.exports = {\n APPLE_TAGS,\n ACTIVE_META_TAGS,\n COLON,\n DOUBLE_SLASH,\n GTM_STRING,\n HTTPS,\n META_TAGS_LOOKUP,\n SEARCH_FILTER,\n PB_TYPE_IMAGE,\n PB_TYPE_TEXTBLOCK,\n PB_TYPE_CAROUSEL,\n PREVIEW_MODE,\n ROUTE_REGEX,\n PREVIEW_REGEX,\n BLAZE_DEBUG,\n BLAZE_PB_EDITOR_MODE,\n DEBUG_LOGO,\n PUBLISHED_,\n RESPONSE_404,\n NOT_FOUND_STATUS_CODE,\n SITEMAP_STORE_KEY,\n ROUTE_PATTERN_SITEMAP,\n ROUTE_PATTERN_SITEMAP_FILE_REGEX,\n ROUTE_PATTERN_ROBOTS_TXT,\n BLAZE_STATIC_ROUTE_STORE_KEY,\n STATIC_FILE_FORWARD_HEADERS,\n ROOT_SELECTOR_CLASS_PREFIX,\n ROOT_SELECTOR_SEPARATOR,\n RESOLVER_CONTAINER_CLASS,\n BLAZE_X_FRAME_OPTIONS_DEFAULT,\n ERROR_URLS\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"constants.js","names":["ACTIVE_META_TAGS","BLAZE_X_FRAME_OPTIONS_DEFAULT","META_TAGS_LOOKUP","description","apiKey","htmlTagName","tagKeyName","contentDataKeyName","canonical","PB_TYPE_IMAGE","PB_TYPE_TEXTBLOCK","PB_TYPE_CAROUSEL","SEARCH_FILTER","COLON","DOUBLE_SLASH","HTTPS","DEFAULT_ROUTE_REGEX","ROUTE_REGEX","process","env","BLAZE_ROUTE_REGEX","RegExp","PREVIEW_REGEX","PREVIEW_MODE","GTM_STRING","BLAZE_DEBUG","BLAZE_PB_EDITOR_MODE","DEBUG_LOGO","SRC","ALT","PUBLISHED_","RESPONSE_404","SITEMAP_STORE_KEY","ROUTE_PATTERN_SITEMAP","BLAZE_ROUTE_PATTERN_SITEMAP","sitemapFilePrefix","BLAZE_CONTENT_SITEMAP_URL_PREFIX","ROUTE_PATTERN_SITEMAP_FILE_REGEX","ROUTE_PATTERN_ROBOTS_TXT","ROUTE_PATTERN_LLMS_TXT","BLAZE_STATIC_ROUTE_STORE_KEY","STATIC_FILE_FORWARD_HEADERS","APPLE_TAGS","href","rel","sizes","NOT_FOUND_STATUS_CODE","ROOT_SELECTOR_CLASS_PREFIX","ROOT_SELECTOR_SEPARATOR","RESOLVER_CONTAINER_CLASS","ERROR_URLS","custom404","module","exports"],"sources":["../src/constants.js"],"sourcesContent":["const ACTIVE_META_TAGS = ['description', 'canonical'];\nconst BLAZE_X_FRAME_OPTIONS_DEFAULT = 'SAMEORIGIN';\n\nconst META_TAGS_LOOKUP = {\n description: {\n apiKey: 'metaDescription',\n htmlTagName: 'meta',\n tagKeyName: 'name',\n contentDataKeyName: 'content'\n },\n canonical: {\n apiKey: 'canonicalUrl',\n htmlTagName: 'link',\n tagKeyName: 'rel',\n contentDataKeyName: 'href'\n }\n};\n\nconst PB_TYPE_IMAGE = 'image';\nconst PB_TYPE_TEXTBLOCK = 'textblock';\nconst PB_TYPE_CAROUSEL = 'carousel';\nconst SEARCH_FILTER = 'searchfilter';\nconst COLON = ':';\nconst DOUBLE_SLASH = '//';\nconst HTTPS = 'https://';\n\nconst DEFAULT_ROUTE_REGEX = /^\\/[a-z0-9€_\\/]+(?:[-\\/\\.]{1,2}[a-z0-9\\/€_\\/]+)*$|^\\/$/i;\nconst ROUTE_REGEX = process.env.BLAZE_ROUTE_REGEX\n ? new RegExp(process.env.BLAZE_ROUTE_REGEX)\n : DEFAULT_ROUTE_REGEX;\nconst PREVIEW_REGEX = /^(\\/_preview)/;\nconst PREVIEW_MODE = 'Preview Mode';\nconst GTM_STRING = 'gtm';\n\nconst BLAZE_DEBUG = 'blaze_debug';\nconst BLAZE_PB_EDITOR_MODE = 'blaze_pb_editor_mode';\nconst DEBUG_LOGO = {\n SRC: 'https://images.thisisblaze.com/logo-small-27-40.png',\n ALT: 'blaze-logo'\n};\n\nconst PUBLISHED_ = 'published_';\n\nconst RESPONSE_404 = '404 Not Found\\n';\n\nconst SITEMAP_STORE_KEY = 'default_sitemap';\nconst ROUTE_PATTERN_SITEMAP = process.env.BLAZE_ROUTE_PATTERN_SITEMAP || '/sitemap.xml';\nconst sitemapFilePrefix = process.env.BLAZE_CONTENT_SITEMAP_URL_PREFIX || 'sitemap';\nconst ROUTE_PATTERN_SITEMAP_FILE_REGEX = new RegExp(`/${sitemapFilePrefix}/.*\\.xml`);\nconst ROUTE_PATTERN_ROBOTS_TXT = '/robots.txt';\nconst ROUTE_PATTERN_LLMS_TXT = '/llms.txt';\n\nconst BLAZE_STATIC_ROUTE_STORE_KEY = 'default';\n\nconst STATIC_FILE_FORWARD_HEADERS = ['content-length', 'last-modified', 'etag'];\n\nconst APPLE_TAGS = [\n { href: '/static/icons/touch-icon-iphone.png', rel: 'apple-touch-icon' },\n { href: '/static/icons/touch-icon-ipad.png', rel: 'apple-touch-icon', sizes: '152x152' },\n { href: '/static/icons/touch-icon-iphone-retina.png', rel: 'apple-touch-icon', sizes: '180x180' },\n { href: '/static/icons/touch-icon-ipad-retina.png', rel: 'apple-touch-icon', sizes: '167x167' }\n];\n\nconst NOT_FOUND_STATUS_CODE = 404;\n\nconst ROOT_SELECTOR_CLASS_PREFIX = 'root-selector';\nconst ROOT_SELECTOR_SEPARATOR = '--';\nconst RESOLVER_CONTAINER_CLASS = 'resolver-container';\nconst ERROR_URLS = {\n custom404: '/custom-error-404'\n};\n\nmodule.exports = {\n APPLE_TAGS,\n ACTIVE_META_TAGS,\n COLON,\n DOUBLE_SLASH,\n GTM_STRING,\n HTTPS,\n META_TAGS_LOOKUP,\n SEARCH_FILTER,\n PB_TYPE_IMAGE,\n PB_TYPE_TEXTBLOCK,\n PB_TYPE_CAROUSEL,\n PREVIEW_MODE,\n ROUTE_REGEX,\n PREVIEW_REGEX,\n BLAZE_DEBUG,\n BLAZE_PB_EDITOR_MODE,\n DEBUG_LOGO,\n PUBLISHED_,\n RESPONSE_404,\n NOT_FOUND_STATUS_CODE,\n SITEMAP_STORE_KEY,\n ROUTE_PATTERN_SITEMAP,\n ROUTE_PATTERN_SITEMAP_FILE_REGEX,\n ROUTE_PATTERN_ROBOTS_TXT,\n ROUTE_PATTERN_LLMS_TXT,\n BLAZE_STATIC_ROUTE_STORE_KEY,\n STATIC_FILE_FORWARD_HEADERS,\n ROOT_SELECTOR_CLASS_PREFIX,\n ROOT_SELECTOR_SEPARATOR,\n RESOLVER_CONTAINER_CLASS,\n BLAZE_X_FRAME_OPTIONS_DEFAULT,\n ERROR_URLS\n};\n"],"mappings":"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","ignoreList":[]}
@@ -211,7 +211,7 @@ function doRedirect(res, redirectUrl) {
211
211
  redirecting: true
212
212
  };
213
213
  }
214
- function handleUrlError(err, args) {
214
+ async function handleUrlError(err, args) {
215
215
  const {
216
216
  asPath,
217
217
  res,
@@ -223,10 +223,17 @@ function handleUrlError(err, args) {
223
223
  return handleError(err, res, handle404Error, blazeApp);
224
224
  }
225
225
  if (!errorCheckCode) {
226
- return doUrlCheck(_objectSpread(_objectSpread({}, args), {}, {
226
+ const result = await doUrlCheck(_objectSpread(_objectSpread({}, args), {}, {
227
227
  url: ERROR_URLS.custom404,
228
228
  errorCheckCode: NOT_FOUND_STATUS_CODE
229
229
  }));
230
+ if (handle404Error) {
231
+ const parentUrl = checkParent(asPath);
232
+ if (parentUrl) {
233
+ return doRedirect(res, parentUrl);
234
+ }
235
+ }
236
+ return result;
230
237
  }
231
238
  const parentPATH = checkParent(asPath);
232
239
  if (handle404Error && parentPATH) {
@@ -1 +1 @@
1
- {"version":3,"file":"check-url.js","names":["parseUrl","getUnpublishedEntityName","checkAccessToken","HTTPS","DOUBLE_SLASH","COLON","NOT_FOUND_STATUS_CODE","BLAZE_X_FRAME_OPTIONS_DEFAULT","ROUTE_REGEX","ERROR_URLS","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_X_FRAME_OPTIONS","getHeader","BLAZE_CACHE_CONTROL_HEADER","previewData","_objectSpread","Object","keys","cache","extract","length","getPreviewData","urlCheckOptions","result","doUrlCheck","handle404Error","pageData","rootSelectorClasses","isPreview","getHost","headers","BLAZE_FRONTEND_HOST","host","location","protocol","hostname","port","window","urlPort","args","errorCheckCode","test","Error","data","itemId","itemEntity","urlTo","variables","setCustomCacheControlHeaders","handleRedirect","events","emit","message","statusCode","err","handleUrlError","handleError","error","networkError","writeHead","write","end","graphQLErrors","errorCode","errorMessage","customError","redirectUrl","BLAZE_DISABLE_REDIRECT_WITH_QUERY","queryString","split","doRedirect","cacheControlMaxAge","Location","href","redirecting","custom404","parentPATH"],"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 {\n HTTPS,\n DOUBLE_SLASH,\n COLON,\n NOT_FOUND_STATUS_CODE,\n BLAZE_X_FRAME_OPTIONS_DEFAULT,\n ROUTE_REGEX,\n ERROR_URLS\n} from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp, disableSsr } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n\n if (res) {\n const handler = handleStaticRoutes.getHandler(asPath);\n\n res.setHeader(\n 'X-Frame-Options',\n process.env.BLAZE_X_FRAME_OPTIONS || BLAZE_X_FRAME_OPTIONS_DEFAULT\n );\n\n if (!res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || ' ');\n }\n\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && disableSsr) return { disableSsr: true };\n\n await checkAccessToken(apolloClient, {\n ...props,\n disableSsr: !Object.keys(apolloClient.cache.extract()).length // empty cache means SSR was disabled\n });\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async args => {\n const { asPath, url, apolloClient, res, blazeApp, errorCheckCode = false } = args;\n try {\n if (!ROUTE_REGEX.test(url)) {\n throw Error('Invalid URL');\n }\n const { data: { checkUrl: { itemId, itemEntity, urlTo, pageData = {} } = {} } = {} } =\n await apolloClient.query({\n query: checkUrlQuery,\n variables: { url }\n });\n\n setCustomCacheControlHeaders(pageData, res);\n\n if (urlTo && (urlTo !== url || errorCheckCode)) {\n return handleRedirect({ errorCheckCode, url, urlTo, asPath, res });\n }\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n\n if (errorCheckCode) {\n blazeApp.events.emit('monitor:log', { message: `Serving custom ${errorCheckCode} page` });\n if (res) res.statusCode = errorCheckCode;\n }\n\n return {\n pageData,\n rootSelectorClasses,\n itemId,\n itemEntity: getUnpublishedEntityName(itemEntity)\n };\n } catch (err) {\n return handleUrlError(err, args);\n }\n};\n\nconst handleError = (err, res, handle404Error, blazeApp) => {\n blazeApp.events.emit('monitor:log', { error: err });\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};\n\nfunction handleRedirect({ errorCheckCode, url, urlTo, asPath, res }) {\n if (errorCheckCode) {\n const errorMessage = `Cannot redirect ${url}`;\n const customError = new Error(errorMessage);\n customError.graphQLErrors = [errorMessage];\n throw customError;\n }\n let redirectUrl = urlTo;\n if (process.env.BLAZE_DISABLE_REDIRECT_WITH_QUERY !== 'true') {\n const queryString = asPath.split('?')[1];\n redirectUrl = queryString ? `${urlTo}?${queryString}` : urlTo;\n }\n\n return doRedirect(res, redirectUrl);\n}\n\nfunction setCustomCacheControlHeaders(pageData, res) {\n const { cacheControlMaxAge = null } = pageData || {};\n\n if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {\n res.setHeader('Cache-Control', `max-age=${cacheControlMaxAge}`);\n }\n}\n\nfunction doRedirect(res, redirectUrl) {\n if (res) {\n res.writeHead(301, { Location: redirectUrl });\n res.end();\n } else {\n window.location.href = redirectUrl;\n }\n\n return { redirecting: true };\n}\n\nfunction handleUrlError(err, args) {\n const { asPath, res, handle404Error, blazeApp, errorCheckCode } = args;\n if (!err.graphQLErrors || !err.graphQLErrors.length) {\n return handleError(err, res, handle404Error, blazeApp);\n }\n\n if (!errorCheckCode) {\n return doUrlCheck({\n ...args,\n url: ERROR_URLS.custom404,\n errorCheckCode: NOT_FOUND_STATUS_CODE\n });\n }\n\n const parentPATH = checkParent(asPath);\n if (handle404Error && parentPATH) {\n return doRedirect(res, parentPATH);\n }\n\n return handleError(err, res, handle404Error, blazeApp);\n}\n\nexport default checkUrl;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"check-url.js","names":["parseUrl","getUnpublishedEntityName","checkAccessToken","HTTPS","DOUBLE_SLASH","COLON","NOT_FOUND_STATUS_CODE","BLAZE_X_FRAME_OPTIONS_DEFAULT","ROUTE_REGEX","ERROR_URLS","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_X_FRAME_OPTIONS","getHeader","BLAZE_CACHE_CONTROL_HEADER","previewData","_objectSpread","Object","keys","cache","extract","length","getPreviewData","urlCheckOptions","result","doUrlCheck","handle404Error","pageData","rootSelectorClasses","isPreview","getHost","headers","BLAZE_FRONTEND_HOST","host","location","protocol","hostname","port","window","urlPort","args","errorCheckCode","test","Error","data","itemId","itemEntity","urlTo","variables","setCustomCacheControlHeaders","handleRedirect","events","emit","message","statusCode","err","handleUrlError","handleError","error","networkError","writeHead","write","end","graphQLErrors","errorCode","errorMessage","customError","redirectUrl","BLAZE_DISABLE_REDIRECT_WITH_QUERY","queryString","split","doRedirect","cacheControlMaxAge","Location","href","redirecting","custom404","parentUrl","parentPATH"],"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 {\n HTTPS,\n DOUBLE_SLASH,\n COLON,\n NOT_FOUND_STATUS_CODE,\n BLAZE_X_FRAME_OPTIONS_DEFAULT,\n ROUTE_REGEX,\n ERROR_URLS\n} from '../constants';\nimport { checkUrlQuery } from '../application/query';\nimport checkParent from './check-parent';\nimport checkPreviewUrl from './check-preview-url';\nimport handleStaticRoutes from './handle-static-routes';\nimport getPageData from './get-page-data';\nimport getRootSelectorClasses from './get-root-selector-classes';\n\nconst getRootClassesLimit = () => Number(process.env.BLAZE_ROOT_SELECTOR_CLASSES_LIMIT);\n\nconst checkUrl = async props => {\n const { asPath, apolloClient, res, req, query, blazeApp, disableSsr } = props;\n const fullUrl = getFullUrl(req, asPath);\n const { url } = parseUrl(asPath);\n\n if (process.env.BLAZE_STATUS_URL && url === process.env.BLAZE_STATUS_URL) {\n return { isStatusPage: true };\n }\n\n if (res) {\n const handler = handleStaticRoutes.getHandler(asPath);\n\n res.setHeader(\n 'X-Frame-Options',\n process.env.BLAZE_X_FRAME_OPTIONS || BLAZE_X_FRAME_OPTIONS_DEFAULT\n );\n\n if (!res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', process.env.BLAZE_CACHE_CONTROL_HEADER || ' ');\n }\n\n if (handler) {\n return handler(props);\n }\n }\n\n const previewData = checkPreviewUrl(url, query);\n\n if (!previewData && disableSsr) return { disableSsr: true };\n\n await checkAccessToken(apolloClient, {\n ...props,\n disableSsr: !Object.keys(apolloClient.cache.extract()).length // empty cache means SSR was disabled\n });\n\n if (previewData) return getPreviewData(previewData, apolloClient);\n const urlCheckOptions = { asPath, url, apolloClient, res };\n const result = await doUrlCheck({\n ...urlCheckOptions,\n handle404Error: true,\n blazeApp\n });\n return { ...result, fullUrl } || {};\n};\n\nconst getPreviewData = async (previewData, apolloClient) => {\n const result = await getPageData({ ...previewData, apolloClient });\n const { pageData: { url } = {} } = result;\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n return { ...previewData, rootSelectorClasses, ...result, isPreview: true };\n};\n\nconst getHost = ({ headers = {} }) =>\n process.env.BLAZE_FRONTEND_HOST ||\n headers['x-request-host'] ||\n headers['x-forwarded-host'] ||\n headers.host;\n\nconst getFullUrl = (req, asPath) => {\n if (req) {\n return `${HTTPS}${getHost(req)}${asPath}`;\n }\n const {\n location: { protocol, hostname, port }\n } = window;\n const urlPort = port ? `${COLON}${port}` : '';\n\n return `${protocol}${DOUBLE_SLASH}${hostname}${urlPort}${asPath}`;\n};\n\nconst doUrlCheck = async args => {\n const { asPath, url, apolloClient, res, blazeApp, errorCheckCode = false } = args;\n try {\n if (!ROUTE_REGEX.test(url)) {\n throw Error('Invalid URL');\n }\n const { data: { checkUrl: { itemId, itemEntity, urlTo, pageData = {} } = {} } = {} } =\n await apolloClient.query({\n query: checkUrlQuery,\n variables: { url }\n });\n\n setCustomCacheControlHeaders(pageData, res);\n\n if (urlTo && (urlTo !== url || errorCheckCode)) {\n return handleRedirect({ errorCheckCode, url, urlTo, asPath, res });\n }\n const rootSelectorClasses = getRootSelectorClasses(url, getRootClassesLimit());\n\n if (errorCheckCode) {\n blazeApp.events.emit('monitor:log', { message: `Serving custom ${errorCheckCode} page` });\n if (res) res.statusCode = errorCheckCode;\n }\n\n return {\n pageData,\n rootSelectorClasses,\n itemId,\n itemEntity: getUnpublishedEntityName(itemEntity)\n };\n } catch (err) {\n return handleUrlError(err, args);\n }\n};\n\nconst handleError = (err, res, handle404Error, blazeApp) => {\n blazeApp.events.emit('monitor:log', { error: err });\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};\n\nfunction handleRedirect({ errorCheckCode, url, urlTo, asPath, res }) {\n if (errorCheckCode) {\n const errorMessage = `Cannot redirect ${url}`;\n const customError = new Error(errorMessage);\n customError.graphQLErrors = [errorMessage];\n throw customError;\n }\n let redirectUrl = urlTo;\n if (process.env.BLAZE_DISABLE_REDIRECT_WITH_QUERY !== 'true') {\n const queryString = asPath.split('?')[1];\n redirectUrl = queryString ? `${urlTo}?${queryString}` : urlTo;\n }\n\n return doRedirect(res, redirectUrl);\n}\n\nfunction setCustomCacheControlHeaders(pageData, res) {\n const { cacheControlMaxAge = null } = pageData || {};\n\n if (res && cacheControlMaxAge !== null && cacheControlMaxAge >= 0) {\n res.setHeader('Cache-Control', `max-age=${cacheControlMaxAge}`);\n }\n}\n\nfunction doRedirect(res, redirectUrl) {\n if (res) {\n res.writeHead(301, { Location: redirectUrl });\n res.end();\n } else {\n window.location.href = redirectUrl;\n }\n\n return { redirecting: true };\n}\n\nasync function handleUrlError(err, args) {\n const { asPath, res, handle404Error, blazeApp, errorCheckCode } = args;\n if (!err.graphQLErrors || !err.graphQLErrors.length) {\n return handleError(err, res, handle404Error, blazeApp);\n }\n\n if (!errorCheckCode) {\n const result = await doUrlCheck({\n ...args,\n url: ERROR_URLS.custom404,\n errorCheckCode: NOT_FOUND_STATUS_CODE\n });\n\n if (handle404Error) {\n const parentUrl = checkParent(asPath);\n if (parentUrl) {\n return doRedirect(res, parentUrl);\n }\n }\n return result;\n }\n\n const parentPATH = checkParent(asPath);\n if (handle404Error && parentPATH) {\n return doRedirect(res, parentPATH);\n }\n\n return handleError(err, res, handle404Error, blazeApp);\n}\n\nexport default checkUrl;\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import * as sitemap from './sitemap';
2
2
  import * as sitemapFile from './sitemap-file';
3
3
  import * as robots from './robots-txt';
4
+ import * as llms from './llms';
4
5
  const {
5
6
  pattern: sitemapPattern,
6
7
  handler: sitemapHandler
@@ -13,9 +14,14 @@ const {
13
14
  pattern: robotsTxtPattern,
14
15
  handler: robotsTxtHandler
15
16
  } = robots;
17
+ const {
18
+ pattern: llmsPattern,
19
+ handler: llmsTxtHandler
20
+ } = llms;
16
21
  const config = new Map();
17
22
  config.set(sitemapPattern, sitemapHandler);
18
23
  config.set(sitemapFilePattern, sitemapFileHandler);
19
24
  config.set(robotsTxtPattern, robotsTxtHandler);
25
+ config.set(llmsPattern, llmsTxtHandler);
20
26
  export default config;
21
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["sitemap","sitemapFile","robots","pattern","sitemapPattern","handler","sitemapHandler","sitemapFilePattern","sitemapFileHandler","robotsTxtPattern","robotsTxtHandler","config","Map","set"],"sources":["../../../src/helpers/static-route-handlers/index.js"],"sourcesContent":["import * as sitemap from './sitemap';\nimport * as sitemapFile from './sitemap-file';\nimport * as robots from './robots-txt';\n\nconst { pattern: sitemapPattern, handler: sitemapHandler } = sitemap;\nconst { pattern: sitemapFilePattern, handler: sitemapFileHandler } = sitemapFile;\nconst { pattern: robotsTxtPattern, handler: robotsTxtHandler } = robots;\n\nconst config = new Map();\nconfig.set(sitemapPattern, sitemapHandler);\nconfig.set(sitemapFilePattern, sitemapFileHandler);\nconfig.set(robotsTxtPattern, robotsTxtHandler);\n\nexport default config;\n"],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,WAAW;AACpC,OAAO,KAAKC,WAAW,MAAM,gBAAgB;AAC7C,OAAO,KAAKC,MAAM,MAAM,cAAc;AAEtC,MAAM;EAAEC,OAAO,EAAEC,cAAc;EAAEC,OAAO,EAAEC;AAAe,CAAC,GAAGN,OAAO;AACpE,MAAM;EAAEG,OAAO,EAAEI,kBAAkB;EAAEF,OAAO,EAAEG;AAAmB,CAAC,GAAGP,WAAW;AAChF,MAAM;EAAEE,OAAO,EAAEM,gBAAgB;EAAEJ,OAAO,EAAEK;AAAiB,CAAC,GAAGR,MAAM;AAEvE,MAAMS,MAAM,GAAG,IAAIC,GAAG,CAAC,CAAC;AACxBD,MAAM,CAACE,GAAG,CAACT,cAAc,EAAEE,cAAc,CAAC;AAC1CK,MAAM,CAACE,GAAG,CAACN,kBAAkB,EAAEC,kBAAkB,CAAC;AAClDG,MAAM,CAACE,GAAG,CAACJ,gBAAgB,EAAEC,gBAAgB,CAAC;AAE9C,eAAeC,MAAM","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["sitemap","sitemapFile","robots","llms","pattern","sitemapPattern","handler","sitemapHandler","sitemapFilePattern","sitemapFileHandler","robotsTxtPattern","robotsTxtHandler","llmsPattern","llmsTxtHandler","config","Map","set"],"sources":["../../../src/helpers/static-route-handlers/index.js"],"sourcesContent":["import * as sitemap from './sitemap';\nimport * as sitemapFile from './sitemap-file';\nimport * as robots from './robots-txt';\nimport * as llms from './llms';\n\nconst { pattern: sitemapPattern, handler: sitemapHandler } = sitemap;\nconst { pattern: sitemapFilePattern, handler: sitemapFileHandler } = sitemapFile;\nconst { pattern: robotsTxtPattern, handler: robotsTxtHandler } = robots;\nconst { pattern: llmsPattern, handler: llmsTxtHandler } = llms;\n\nconst config = new Map();\nconfig.set(sitemapPattern, sitemapHandler);\nconfig.set(sitemapFilePattern, sitemapFileHandler);\nconfig.set(robotsTxtPattern, robotsTxtHandler);\nconfig.set(llmsPattern, llmsTxtHandler);\n\nexport default config;\n"],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,WAAW;AACpC,OAAO,KAAKC,WAAW,MAAM,gBAAgB;AAC7C,OAAO,KAAKC,MAAM,MAAM,cAAc;AACtC,OAAO,KAAKC,IAAI,MAAM,QAAQ;AAE9B,MAAM;EAAEC,OAAO,EAAEC,cAAc;EAAEC,OAAO,EAAEC;AAAe,CAAC,GAAGP,OAAO;AACpE,MAAM;EAAEI,OAAO,EAAEI,kBAAkB;EAAEF,OAAO,EAAEG;AAAmB,CAAC,GAAGR,WAAW;AAChF,MAAM;EAAEG,OAAO,EAAEM,gBAAgB;EAAEJ,OAAO,EAAEK;AAAiB,CAAC,GAAGT,MAAM;AACvE,MAAM;EAAEE,OAAO,EAAEQ,WAAW;EAAEN,OAAO,EAAEO;AAAe,CAAC,GAAGV,IAAI;AAE9D,MAAMW,MAAM,GAAG,IAAIC,GAAG,CAAC,CAAC;AACxBD,MAAM,CAACE,GAAG,CAACX,cAAc,EAAEE,cAAc,CAAC;AAC1CO,MAAM,CAACE,GAAG,CAACR,kBAAkB,EAAEC,kBAAkB,CAAC;AAClDK,MAAM,CAACE,GAAG,CAACN,gBAAgB,EAAEC,gBAAgB,CAAC;AAC9CG,MAAM,CAACE,GAAG,CAACJ,WAAW,EAAEC,cAAc,CAAC;AAEvC,eAAeC,MAAM","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ import { gql } from '@apollo/client';
2
+ import { ROUTE_PATTERN_LLMS_TXT, BLAZE_STATIC_ROUTE_STORE_KEY } from '../../constants';
3
+ import getHandler from './generic-file-handler';
4
+ const storeKey = process.env.BLAZE_STATIC_ROUTE_STORE_KEY || BLAZE_STATIC_ROUTE_STORE_KEY;
5
+ export const fileQuery = gql`
6
+ query {
7
+ files: getFiles(
8
+ where: { storeKey: "${storeKey}", filename: "llms.txt" }
9
+ limit: 1
10
+ sort: [{ property: "created", direction: "desc" }]
11
+ ) {
12
+ mimetype
13
+ url
14
+ }
15
+ }
16
+ `;
17
+ export const pattern = new RegExp(ROUTE_PATTERN_LLMS_TXT);
18
+ export const handler = getHandler(fileQuery);
19
+ //# sourceMappingURL=llms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms.js","names":["gql","ROUTE_PATTERN_LLMS_TXT","BLAZE_STATIC_ROUTE_STORE_KEY","getHandler","storeKey","process","env","fileQuery","pattern","RegExp","handler"],"sources":["../../../src/helpers/static-route-handlers/llms.js"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { ROUTE_PATTERN_LLMS_TXT, BLAZE_STATIC_ROUTE_STORE_KEY } from '../../constants';\nimport getHandler from './generic-file-handler';\n\nconst storeKey = process.env.BLAZE_STATIC_ROUTE_STORE_KEY || BLAZE_STATIC_ROUTE_STORE_KEY;\n\nexport const fileQuery = gql`\n query {\n files: getFiles(\n where: { storeKey: \"${storeKey}\", filename: \"llms.txt\" }\n limit: 1\n sort: [{ property: \"created\", direction: \"desc\" }]\n ) {\n mimetype\n url\n }\n }\n`;\n\nexport const pattern = new RegExp(ROUTE_PATTERN_LLMS_TXT);\n\nexport const handler = getHandler(fileQuery);\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,SAASC,sBAAsB,EAAEC,4BAA4B,QAAQ,iBAAiB;AACtF,OAAOC,UAAU,MAAM,wBAAwB;AAE/C,MAAMC,QAAQ,GAAGC,OAAO,CAACC,GAAG,CAACJ,4BAA4B,IAAIA,4BAA4B;AAEzF,OAAO,MAAMK,SAAS,GAAGP,GAAG;AAC5B;AACA;AACA,4BAA4BI,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMI,OAAO,GAAG,IAAIC,MAAM,CAACR,sBAAsB,CAAC;AAEzD,OAAO,MAAMS,OAAO,GAAGP,UAAU,CAACI,SAAS,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/nextjs-tools",
3
- "version": "0.146.0-node18-tooltips.25",
3
+ "version": "0.146.0-node18-tooltips.26",
4
4
  "description": "Blaze nextjs tools",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -28,21 +28,21 @@
28
28
  "license": "GPL-3.0",
29
29
  "dependencies": {
30
30
  "@apollo/client": "^3.9.2",
31
- "@blaze-cms/core-auth-ui": "0.146.0-node18-tooltips.4",
31
+ "@blaze-cms/core-auth-ui": "0.146.0-node18-tooltips.26",
32
32
  "@blaze-cms/core-errors": "0.146.0-node18-tooltips.0",
33
33
  "@blaze-cms/core-errors-ui": "0.146.0-node18-tooltips.0",
34
- "@blaze-cms/core-ui": "0.146.0-node18-tooltips.11",
34
+ "@blaze-cms/core-ui": "0.146.0-node18-tooltips.26",
35
35
  "@blaze-cms/nextjs-components": "0.146.0-node18-tooltips.0",
36
- "@blaze-cms/plugin-auth-fe": "0.146.0-node18-tooltips.11",
37
- "@blaze-cms/plugin-auth-local-fe": "0.146.0-node18-tooltips.24",
36
+ "@blaze-cms/plugin-auth-fe": "0.146.0-node18-tooltips.26",
37
+ "@blaze-cms/plugin-auth-local-fe": "0.146.0-node18-tooltips.26",
38
38
  "@blaze-cms/plugin-chart": "0.146.0-node18-tooltips.19",
39
- "@blaze-cms/plugin-google-maps-fe": "0.146.0-node18-tooltips.24",
40
- "@blaze-cms/plugin-gtm-fe": "0.146.0-node18-tooltips.24",
41
- "@blaze-cms/plugin-page-builder-fe": "0.146.0-node18-tooltips.24",
42
- "@blaze-cms/plugin-preview-fe": "0.146.0-node18-tooltips.11",
43
- "@blaze-cms/plugin-search-ui": "0.146.0-node18-tooltips.22",
39
+ "@blaze-cms/plugin-google-maps-fe": "0.146.0-node18-tooltips.26",
40
+ "@blaze-cms/plugin-gtm-fe": "0.146.0-node18-tooltips.26",
41
+ "@blaze-cms/plugin-page-builder-fe": "0.146.0-node18-tooltips.26",
42
+ "@blaze-cms/plugin-preview-fe": "0.146.0-node18-tooltips.26",
43
+ "@blaze-cms/plugin-search-ui": "0.146.0-node18-tooltips.26",
44
44
  "@blaze-cms/plugin-structured-data-fe": "0.146.0-node18-tooltips.25",
45
- "@blaze-cms/react-page-builder": "0.146.0-node18-tooltips.24",
45
+ "@blaze-cms/react-page-builder": "0.146.0-node18-tooltips.26",
46
46
  "@blaze-cms/setup-ui": "0.146.0-node18-tooltips.0",
47
47
  "@blaze-react/switches": "0.8.0-alpha.112",
48
48
  "autoprefixer": "^10.2.3",
@@ -71,5 +71,5 @@
71
71
  "lib/*",
72
72
  "lib-es/*"
73
73
  ],
74
- "gitHead": "94cd71a495eb355b126d57376d357623ed8011fd"
74
+ "gitHead": "b6fe6c08920e49aa20ffe3a4d9ecc3298aecde8e"
75
75
  }
package/src/constants.js CHANGED
@@ -48,6 +48,8 @@ const ROUTE_PATTERN_SITEMAP = process.env.BLAZE_ROUTE_PATTERN_SITEMAP || '/sitem
48
48
  const sitemapFilePrefix = process.env.BLAZE_CONTENT_SITEMAP_URL_PREFIX || 'sitemap';
49
49
  const ROUTE_PATTERN_SITEMAP_FILE_REGEX = new RegExp(`/${sitemapFilePrefix}/.*\.xml`);
50
50
  const ROUTE_PATTERN_ROBOTS_TXT = '/robots.txt';
51
+ const ROUTE_PATTERN_LLMS_TXT = '/llms.txt';
52
+
51
53
  const BLAZE_STATIC_ROUTE_STORE_KEY = 'default';
52
54
 
53
55
  const STATIC_FILE_FORWARD_HEADERS = ['content-length', 'last-modified', 'etag'];
@@ -93,6 +95,7 @@ module.exports = {
93
95
  ROUTE_PATTERN_SITEMAP,
94
96
  ROUTE_PATTERN_SITEMAP_FILE_REGEX,
95
97
  ROUTE_PATTERN_ROBOTS_TXT,
98
+ ROUTE_PATTERN_LLMS_TXT,
96
99
  BLAZE_STATIC_ROUTE_STORE_KEY,
97
100
  STATIC_FILE_FORWARD_HEADERS,
98
101
  ROOT_SELECTOR_CLASS_PREFIX,
@@ -174,18 +174,26 @@ function doRedirect(res, redirectUrl) {
174
174
  return { redirecting: true };
175
175
  }
176
176
 
177
- function handleUrlError(err, args) {
177
+ async function handleUrlError(err, args) {
178
178
  const { asPath, res, handle404Error, blazeApp, errorCheckCode } = args;
179
179
  if (!err.graphQLErrors || !err.graphQLErrors.length) {
180
180
  return handleError(err, res, handle404Error, blazeApp);
181
181
  }
182
182
 
183
183
  if (!errorCheckCode) {
184
- return doUrlCheck({
184
+ const result = await doUrlCheck({
185
185
  ...args,
186
186
  url: ERROR_URLS.custom404,
187
187
  errorCheckCode: NOT_FOUND_STATUS_CODE
188
188
  });
189
+
190
+ if (handle404Error) {
191
+ const parentUrl = checkParent(asPath);
192
+ if (parentUrl) {
193
+ return doRedirect(res, parentUrl);
194
+ }
195
+ }
196
+ return result;
189
197
  }
190
198
 
191
199
  const parentPATH = checkParent(asPath);
@@ -1,14 +1,17 @@
1
1
  import * as sitemap from './sitemap';
2
2
  import * as sitemapFile from './sitemap-file';
3
3
  import * as robots from './robots-txt';
4
+ import * as llms from './llms';
4
5
 
5
6
  const { pattern: sitemapPattern, handler: sitemapHandler } = sitemap;
6
7
  const { pattern: sitemapFilePattern, handler: sitemapFileHandler } = sitemapFile;
7
8
  const { pattern: robotsTxtPattern, handler: robotsTxtHandler } = robots;
9
+ const { pattern: llmsPattern, handler: llmsTxtHandler } = llms;
8
10
 
9
11
  const config = new Map();
10
12
  config.set(sitemapPattern, sitemapHandler);
11
13
  config.set(sitemapFilePattern, sitemapFileHandler);
12
14
  config.set(robotsTxtPattern, robotsTxtHandler);
15
+ config.set(llmsPattern, llmsTxtHandler);
13
16
 
14
17
  export default config;
@@ -0,0 +1,22 @@
1
+ import { gql } from '@apollo/client';
2
+ import { ROUTE_PATTERN_LLMS_TXT, BLAZE_STATIC_ROUTE_STORE_KEY } from '../../constants';
3
+ import getHandler from './generic-file-handler';
4
+
5
+ const storeKey = process.env.BLAZE_STATIC_ROUTE_STORE_KEY || BLAZE_STATIC_ROUTE_STORE_KEY;
6
+
7
+ export const fileQuery = gql`
8
+ query {
9
+ files: getFiles(
10
+ where: { storeKey: "${storeKey}", filename: "llms.txt" }
11
+ limit: 1
12
+ sort: [{ property: "created", direction: "desc" }]
13
+ ) {
14
+ mimetype
15
+ url
16
+ }
17
+ }
18
+ `;
19
+
20
+ export const pattern = new RegExp(ROUTE_PATTERN_LLMS_TXT);
21
+
22
+ export const handler = getHandler(fileQuery);
@@ -68,6 +68,7 @@ Object {
68
68
  ",
69
69
  "ROOT_SELECTOR_CLASS_PREFIX": "root-selector",
70
70
  "ROOT_SELECTOR_SEPARATOR": "--",
71
+ "ROUTE_PATTERN_LLMS_TXT": "/llms.txt",
71
72
  "ROUTE_PATTERN_ROBOTS_TXT": "/robots.txt",
72
73
  "ROUTE_PATTERN_SITEMAP": "/sitemap.xml",
73
74
  "ROUTE_PATTERN_SITEMAP_FILE_REGEX": /\\\\/sitemap\\\\/\\.\\*\\.xml/,
@@ -334,6 +334,22 @@ describe('Check url', () => {
334
334
  await checkUrl(customProps);
335
335
  expect(res.writeHead).toHaveBeenCalledWith(301, { Location: rootPage });
336
336
  });
337
+
338
+ it('should redirect to parent when custom 404 page exists', async () => {
339
+ apolloClient.query
340
+ .mockImplementationOnce(notFoundQueryMock)
341
+ .mockImplementationOnce(async () => ({
342
+ data: {
343
+ checkUrl: { itemId, itemEntity, urlTo: null, pageData }
344
+ }
345
+ }));
346
+ const parentChildAsPath = '/parent/child';
347
+ const result = await checkUrl({ ...props, asPath: parentChildAsPath });
348
+ expect(res.writeHead).toHaveBeenCalledWith(301, { Location: '/parent' });
349
+ expect(res.end).toHaveBeenCalled();
350
+ redirectResultCheck(result, true);
351
+ apolloQueryCheck(apolloClient, parentChildAsPath);
352
+ });
337
353
  });
338
354
 
339
355
  function apolloQueryCheck(apolloClient, asPath) {
@@ -5,5 +5,6 @@ Map {
5
5
  /\\\\/sitemap\\.xml/ => [Function],
6
6
  /\\\\/sitemap\\\\/\\.\\*\\.xml/ => [Function],
7
7
  /\\\\/robots\\.txt/ => [Function],
8
+ /\\\\/llms\\.txt/ => [Function],
8
9
  }
9
10
  `;
@@ -0,0 +1,158 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`llms route handler should match snapshot 1`] = `
4
+ Object {
5
+ "fileQuery": Object {
6
+ "definitions": Array [
7
+ Object {
8
+ "directives": Array [],
9
+ "kind": "OperationDefinition",
10
+ "name": undefined,
11
+ "operation": "query",
12
+ "selectionSet": Object {
13
+ "kind": "SelectionSet",
14
+ "selections": Array [
15
+ Object {
16
+ "alias": Object {
17
+ "kind": "Name",
18
+ "value": "files",
19
+ },
20
+ "arguments": Array [
21
+ Object {
22
+ "kind": "Argument",
23
+ "name": Object {
24
+ "kind": "Name",
25
+ "value": "where",
26
+ },
27
+ "value": Object {
28
+ "fields": Array [
29
+ Object {
30
+ "kind": "ObjectField",
31
+ "name": Object {
32
+ "kind": "Name",
33
+ "value": "storeKey",
34
+ },
35
+ "value": Object {
36
+ "block": false,
37
+ "kind": "StringValue",
38
+ "value": "default",
39
+ },
40
+ },
41
+ Object {
42
+ "kind": "ObjectField",
43
+ "name": Object {
44
+ "kind": "Name",
45
+ "value": "filename",
46
+ },
47
+ "value": Object {
48
+ "block": false,
49
+ "kind": "StringValue",
50
+ "value": "llms.txt",
51
+ },
52
+ },
53
+ ],
54
+ "kind": "ObjectValue",
55
+ },
56
+ },
57
+ Object {
58
+ "kind": "Argument",
59
+ "name": Object {
60
+ "kind": "Name",
61
+ "value": "limit",
62
+ },
63
+ "value": Object {
64
+ "kind": "IntValue",
65
+ "value": "1",
66
+ },
67
+ },
68
+ Object {
69
+ "kind": "Argument",
70
+ "name": Object {
71
+ "kind": "Name",
72
+ "value": "sort",
73
+ },
74
+ "value": Object {
75
+ "kind": "ListValue",
76
+ "values": Array [
77
+ Object {
78
+ "fields": Array [
79
+ Object {
80
+ "kind": "ObjectField",
81
+ "name": Object {
82
+ "kind": "Name",
83
+ "value": "property",
84
+ },
85
+ "value": Object {
86
+ "block": false,
87
+ "kind": "StringValue",
88
+ "value": "created",
89
+ },
90
+ },
91
+ Object {
92
+ "kind": "ObjectField",
93
+ "name": Object {
94
+ "kind": "Name",
95
+ "value": "direction",
96
+ },
97
+ "value": Object {
98
+ "block": false,
99
+ "kind": "StringValue",
100
+ "value": "desc",
101
+ },
102
+ },
103
+ ],
104
+ "kind": "ObjectValue",
105
+ },
106
+ ],
107
+ },
108
+ },
109
+ ],
110
+ "directives": Array [],
111
+ "kind": "Field",
112
+ "name": Object {
113
+ "kind": "Name",
114
+ "value": "getFiles",
115
+ },
116
+ "selectionSet": Object {
117
+ "kind": "SelectionSet",
118
+ "selections": Array [
119
+ Object {
120
+ "alias": undefined,
121
+ "arguments": Array [],
122
+ "directives": Array [],
123
+ "kind": "Field",
124
+ "name": Object {
125
+ "kind": "Name",
126
+ "value": "mimetype",
127
+ },
128
+ "selectionSet": undefined,
129
+ },
130
+ Object {
131
+ "alias": undefined,
132
+ "arguments": Array [],
133
+ "directives": Array [],
134
+ "kind": "Field",
135
+ "name": Object {
136
+ "kind": "Name",
137
+ "value": "url",
138
+ },
139
+ "selectionSet": undefined,
140
+ },
141
+ ],
142
+ },
143
+ },
144
+ ],
145
+ },
146
+ "variableDefinitions": Array [],
147
+ },
148
+ ],
149
+ "kind": "Document",
150
+ "loc": Object {
151
+ "end": 206,
152
+ "start": 0,
153
+ },
154
+ },
155
+ "handler": [Function],
156
+ "pattern": /\\\\/llms\\.txt/,
157
+ }
158
+ `;
@@ -0,0 +1,4 @@
1
+ import * as llmsHandler from '../../../../../src/helpers/static-route-handlers/llms';
2
+ import { getStaticFileHandlerTests } from '../../../../helpers/tests/static-file-handler-tests';
3
+
4
+ describe('llms route handler', getStaticFileHandlerTests(llmsHandler));