@blaze-cms/nextjs-tools 0.146.0-alpha.2 → 0.146.0-alpha.23
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 +99 -0
- package/README.md +3 -12
- package/lib/constants.js +1 -1
- package/lib/constants.js.map +1 -1
- package/lib-es/constants.js +1 -1
- package/lib-es/constants.js.map +1 -1
- package/package.json +13 -13
- package/src/constants.js +1 -1
- package/tests/unit/src/__snapshots__/constants.test.js.snap +1 -1
- package/tests/unit/src/constants.test.js +14 -3
- package/tests/unit/src/server/__snapshots__/routes.test.js.snap +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,105 @@
|
|
|
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-alpha.23](https://github.com/thebyte9/blaze/compare/v0.146.0-alpha.22...v0.146.0-alpha.23) (2024-12-03)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [0.146.0-alpha.21](https://github.com/thebyte9/blaze/compare/v0.146.0-alpha.20...v0.146.0-alpha.21) (2024-11-27)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# [0.146.0-alpha.18](https://github.com/thebyte9/blaze/compare/v0.146.0-alpha.17...v0.146.0-alpha.18) (2024-11-15)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# [0.146.0-alpha.17](https://github.com/thebyte9/blaze/compare/v0.146.0-alpha.16...v0.146.0-alpha.17) (2024-11-12)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Features
|
|
34
|
+
|
|
35
|
+
* allow . (dot) character in route regex ([#4552](https://github.com/thebyte9/blaze/issues/4552)) ([9be0fe0](https://github.com/thebyte9/blaze/commit/9be0fe0dd0dac2e0891c2d965a20c6b2e02165cc))
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
# [0.146.0-alpha.16](https://github.com/thebyte9/blaze/compare/v0.146.0-alpha.15...v0.146.0-alpha.16) (2024-10-27)
|
|
42
|
+
|
|
43
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
# [0.146.0-alpha.15](https://github.com/thebyte9/blaze/compare/v0.146.0-alpha.14...v0.146.0-alpha.15) (2024-10-27)
|
|
50
|
+
|
|
51
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
# [0.146.0-alpha.13](https://github.com/thebyte9/blaze/compare/v0.146.0-alpha.12...v0.146.0-alpha.13) (2024-10-23)
|
|
58
|
+
|
|
59
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
# [0.146.0-alpha.10](https://github.com/thebyte9/blaze/compare/v0.146.0-alpha.9...v0.146.0-alpha.10) (2024-10-09)
|
|
66
|
+
|
|
67
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
# [0.146.0-alpha.9](https://github.com/thebyte9/blaze/compare/v0.146.0-alpha.8...v0.146.0-alpha.9) (2024-09-27)
|
|
74
|
+
|
|
75
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
# [0.146.0-alpha.8](https://github.com/thebyte9/blaze/compare/v0.146.0-alpha.7...v0.146.0-alpha.8) (2024-09-24)
|
|
82
|
+
|
|
83
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
# [0.146.0-alpha.7](https://github.com/thebyte9/blaze/compare/v0.146.0-alpha.6...v0.146.0-alpha.7) (2024-09-19)
|
|
90
|
+
|
|
91
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
# [0.146.0-alpha.4](https://github.com/thebyte9/blaze/compare/v0.146.0-alpha.3...v0.146.0-alpha.4) (2024-09-13)
|
|
98
|
+
|
|
99
|
+
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
6
105
|
# [0.146.0-alpha.2](https://github.com/thebyte9/blaze/compare/v0.146.0-alpha.1...v0.146.0-alpha.2) (2024-09-09)
|
|
7
106
|
|
|
8
107
|
**Note:** Version bump only for package @blaze-cms/nextjs-tools
|
package/README.md
CHANGED
|
@@ -24,7 +24,7 @@ module.exports = withPlugins(plugins, config);
|
|
|
24
24
|
|
|
25
25
|
The [withBlaze](./src/hoc/withBlaze.js) higher order component that is used to wrap Nextjs applications using the Blaze frontend. An example of usage can be seen in the [example frontend app.js file](examples/blaze-example-frontend/src/pages/_app.js).
|
|
26
26
|
|
|
27
|
-
This implements the [server side rendering recommendations of the Apollo client](https://www.apollographql.com/docs/react/api/react/ssr/).
|
|
27
|
+
This implements the [server side rendering recommendations of the Apollo client](https://www.apollographql.com/docs/react/api/react/ssr/).
|
|
28
28
|
|
|
29
29
|
Note: It also has an extra check while server side rendering that will force the page to complete rendering if the apollo client gets stuck. After 500ms if all the apollo queries are finished but apollo hasn't then the app will carry on with rendering.
|
|
30
30
|
|
|
@@ -41,7 +41,6 @@ The packages adds og metadata to the head of pages automatically. It uses the fo
|
|
|
41
41
|
- req.headers['x-forwarded-host'] // not always passed by all cdn
|
|
42
42
|
- req.headers.host
|
|
43
43
|
|
|
44
|
-
|
|
45
44
|
## Static routes
|
|
46
45
|
|
|
47
46
|
This package adds routes for some frontend files that will return responses not rendered by react. Currently these requests still initially route through the Resolver. They may be split out in the future.
|
|
@@ -78,17 +77,10 @@ The route regex defines what paths will be checked with the api. Any url paths t
|
|
|
78
77
|
|
|
79
78
|
The default regex can be seen in [constants](./src/constants.js)
|
|
80
79
|
|
|
81
|
-
If you want to make it stricter or more open you can override the default with the environmental variable BLAZE_ROUTE_REGEX
|
|
80
|
+
If you want to make it stricter or more open you can override the default with the environmental variable `BLAZE_ROUTE_REGEX`.
|
|
82
81
|
|
|
83
82
|
**Note** If you make it more open this could increase load on the frontend/api services as more paths will be checked with the api so if bot is targetting the server the load on both services will be higher.
|
|
84
83
|
|
|
85
|
-
### Example
|
|
86
|
-
|
|
87
|
-
This example will also allow the path to contain **.** characters
|
|
88
|
-
```
|
|
89
|
-
^\/[a-z0-9€_\/]+(?:[-\/\.]{1,2}[a-z0-9\/€_\/]+)*$|^\/$
|
|
90
|
-
```
|
|
91
|
-
|
|
92
84
|
## Environment variables
|
|
93
85
|
|
|
94
86
|
| Name | Description | Type | Default |
|
|
@@ -104,7 +96,6 @@ This example will also allow the path to contain **.** characters
|
|
|
104
96
|
| BLAZE_CONTENT_SITEMAP_URL_PREFIX | Prefix for sitemap URL, used in frontend static route e.g. /sitemap/sitemap-0.xml. This needs to match value set in API app. | String | |
|
|
105
97
|
| BLAZE_DISABLE_REDIRECT_WITH_QUERY | Do not add query string to redirects | String | |
|
|
106
98
|
|
|
107
|
-
|
|
108
99
|
## Events emitted
|
|
109
100
|
|
|
110
101
|
For more information about specific package events go to package README.
|
|
@@ -113,7 +104,6 @@ For more information about specific package events go to package README.
|
|
|
113
104
|
|---|---|
|
|
114
105
|
| page-load:get-initial-props:before | Called in `getInitialProps` and passes in the nextjs `ctx` before running through AppTree |
|
|
115
106
|
|
|
116
|
-
|
|
117
107
|
## Tailwind
|
|
118
108
|
|
|
119
109
|
[Tailwind CSS](https://tailwindcss.com/) is a utility-first CSS framework packed with classes like flex , pt-4 , text-center and rotate-90 that can be composed to build any design, directly in your markup.
|
|
@@ -213,6 +203,7 @@ When checking new code or build configs make sure to check the [following things
|
|
|
213
203
|
To make styling of sections of a site simpler, it is possible to enable setting root selector classes at the top of the Resolver page structure that are generated based on the url hierarchy.
|
|
214
204
|
|
|
215
205
|
For example the following url, `/parent/child/article-123` might be broken into the following classes
|
|
206
|
+
|
|
216
207
|
```
|
|
217
208
|
root-selector--parent
|
|
218
209
|
root-selector--parent--child
|
package/lib/constants.js
CHANGED
|
@@ -26,7 +26,7 @@ var SEARCH_FILTER = 'searchfilter';
|
|
|
26
26
|
var COLON = ':';
|
|
27
27
|
var DOUBLE_SLASH = '//';
|
|
28
28
|
var HTTPS = 'https://';
|
|
29
|
-
var DEFAULT_ROUTE_REGEX = /^\/[a-z0-9€_\/]+(?:[
|
|
29
|
+
var DEFAULT_ROUTE_REGEX = /^\/[a-z0-9€_\/]+(?:[-\/\.]{1,2}[a-z0-9\/€_\/]+)*$|^\/$/i;
|
|
30
30
|
var ROUTE_REGEX = process.env.BLAZE_ROUTE_REGEX ? new RegExp(process.env.BLAZE_ROUTE_REGEX) : DEFAULT_ROUTE_REGEX;
|
|
31
31
|
var PREVIEW_REGEX = /^(\/_preview)/;
|
|
32
32
|
var PREVIEW_MODE = 'Preview Mode';
|
package/lib/constants.js.map
CHANGED
|
@@ -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","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","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
|
+
{"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","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","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 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';\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 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};\n"],"mappings":";;;;;AAAA,IAAMA,gBAAgB,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC;AACrD,IAAMC,6BAA6B,GAAG,YAAY;AAElD,IAAMC,gBAAgB,GAAG;EACvBC,WAAW,EAAE;IACXC,MAAM,EAAE,iBAAiB;IACzBC,WAAW,EAAE,MAAM;IACnBC,UAAU,EAAE,MAAM;IAClBC,kBAAkB,EAAE;EACtB,CAAC;EACDC,SAAS,EAAE;IACTJ,MAAM,EAAE,cAAc;IACtBC,WAAW,EAAE,MAAM;IACnBC,UAAU,EAAE,KAAK;IACjBC,kBAAkB,EAAE;EACtB;AACF,CAAC;AAED,IAAME,aAAa,GAAG,OAAO;AAC7B,IAAMC,iBAAiB,GAAG,WAAW;AACrC,IAAMC,gBAAgB,GAAG,UAAU;AACnC,IAAMC,aAAa,GAAG,cAAc;AACpC,IAAMC,KAAK,GAAG,GAAG;AACjB,IAAMC,YAAY,GAAG,IAAI;AACzB,IAAMC,KAAK,GAAG,UAAU;AAExB,IAAMC,mBAAmB,GAAG,yDAAyD;AACrF,IAAMC,WAAW,GAAGC,OAAO,CAACC,GAAG,CAACC,iBAAiB,GAC7C,IAAIC,MAAM,CAACH,OAAO,CAACC,GAAG,CAACC,iBAAiB,CAAC,GACzCJ,mBAAmB;AACvB,IAAMM,aAAa,GAAG,eAAe;AACrC,IAAMC,YAAY,GAAG,cAAc;AACnC,IAAMC,UAAU,GAAG,KAAK;AAExB,IAAMC,UAAU,GAAG;EACjBC,GAAG,EAAE,qDAAqD;EAC1DC,GAAG,EAAE;AACP,CAAC;AAED,IAAMC,UAAU,GAAG,YAAY;AAE/B,IAAMC,YAAY,GAAG,iBAAiB;AAEtC,IAAMC,iBAAiB,GAAG,iBAAiB;AAC3C,IAAMC,qBAAqB,GAAGb,OAAO,CAACC,GAAG,CAACa,2BAA2B,IAAI,cAAc;AACvF,IAAMC,iBAAiB,GAAGf,OAAO,CAACC,GAAG,CAACe,gCAAgC,IAAI,SAAS;AACnF,IAAMC,gCAAgC,GAAG,IAAId,MAAM,KAAAe,MAAA,CAAKH,iBAAiB,YAAU,CAAC;AACpF,IAAMI,wBAAwB,GAAG,aAAa;AAC9C,IAAMC,4BAA4B,GAAG,SAAS;AAE9C,IAAMC,2BAA2B,GAAG,CAAC,gBAAgB,EAAE,eAAe,EAAE,MAAM,CAAC;AAE/E,IAAMC,UAAU,GAAG,CACjB;EAAEC,IAAI,EAAE,qCAAqC;EAAEC,GAAG,EAAE;AAAmB,CAAC,EACxE;EAAED,IAAI,EAAE,mCAAmC;EAAEC,GAAG,EAAE,kBAAkB;EAAEC,KAAK,EAAE;AAAU,CAAC,EACxF;EAAEF,IAAI,EAAE,4CAA4C;EAAEC,GAAG,EAAE,kBAAkB;EAAEC,KAAK,EAAE;AAAU,CAAC,EACjG;EAAEF,IAAI,EAAE,0CAA0C;EAAEC,GAAG,EAAE,kBAAkB;EAAEC,KAAK,EAAE;AAAU,CAAC,CAChG;AAED,IAAMC,qBAAqB,GAAG,GAAG;AAEjC,IAAMC,0BAA0B,GAAG,eAAe;AAClD,IAAMC,uBAAuB,GAAG,IAAI;AACpC,IAAMC,wBAAwB,GAAG,oBAAoB;AAErDC,MAAM,CAACC,OAAO,GAAG;EACfT,UAAU,EAAVA,UAAU;EACVxC,gBAAgB,EAAhBA,gBAAgB;EAChBa,KAAK,EAALA,KAAK;EACLC,YAAY,EAAZA,YAAY;EACZU,UAAU,EAAVA,UAAU;EACVT,KAAK,EAALA,KAAK;EACLb,gBAAgB,EAAhBA,gBAAgB;EAChBU,aAAa,EAAbA,aAAa;EACbH,aAAa,EAAbA,aAAa;EACbC,iBAAiB,EAAjBA,iBAAiB;EACjBC,gBAAgB,EAAhBA,gBAAgB;EAChBY,YAAY,EAAZA,YAAY;EACZN,WAAW,EAAXA,WAAW;EACXK,aAAa,EAAbA,aAAa;EACbG,UAAU,EAAVA,UAAU;EACVG,UAAU,EAAVA,UAAU;EACVC,YAAY,EAAZA,YAAY;EACZe,qBAAqB,EAArBA,qBAAqB;EACrBd,iBAAiB,EAAjBA,iBAAiB;EACjBC,qBAAqB,EAArBA,qBAAqB;EACrBI,gCAAgC,EAAhCA,gCAAgC;EAChCE,wBAAwB,EAAxBA,wBAAwB;EACxBC,4BAA4B,EAA5BA,4BAA4B;EAC5BC,2BAA2B,EAA3BA,2BAA2B;EAC3BM,0BAA0B,EAA1BA,0BAA0B;EAC1BC,uBAAuB,EAAvBA,uBAAuB;EACvBC,wBAAwB,EAAxBA,wBAAwB;EACxB9C,6BAA6B,EAA7BA;AACF,CAAC","ignoreList":[]}
|
package/lib-es/constants.js
CHANGED
|
@@ -21,7 +21,7 @@ const SEARCH_FILTER = 'searchfilter';
|
|
|
21
21
|
const COLON = ':';
|
|
22
22
|
const DOUBLE_SLASH = '//';
|
|
23
23
|
const HTTPS = 'https://';
|
|
24
|
-
const DEFAULT_ROUTE_REGEX = /^\/[a-z0-9€_\/]+(?:[
|
|
24
|
+
const DEFAULT_ROUTE_REGEX = /^\/[a-z0-9€_\/]+(?:[-\/\.]{1,2}[a-z0-9\/€_\/]+)*$|^\/$/i;
|
|
25
25
|
const ROUTE_REGEX = process.env.BLAZE_ROUTE_REGEX ? new RegExp(process.env.BLAZE_ROUTE_REGEX) : DEFAULT_ROUTE_REGEX;
|
|
26
26
|
const PREVIEW_REGEX = /^(\/_preview)/;
|
|
27
27
|
const PREVIEW_MODE = 'Preview Mode';
|
package/lib-es/constants.js.map
CHANGED
|
@@ -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","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","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
|
+
{"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","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","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 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';\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 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};\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/nextjs-tools",
|
|
3
|
-
"version": "0.146.0-alpha.
|
|
3
|
+
"version": "0.146.0-alpha.23",
|
|
4
4
|
"description": "Blaze nextjs tools",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -28,20 +28,20 @@
|
|
|
28
28
|
"license": "GPL-3.0",
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@apollo/client": "3.5.x",
|
|
31
|
-
"@blaze-cms/core-auth-ui": "
|
|
31
|
+
"@blaze-cms/core-auth-ui": "0.146.0-alpha.21",
|
|
32
32
|
"@blaze-cms/core-errors": "^0.140.3",
|
|
33
33
|
"@blaze-cms/core-errors-ui": "^0.140.3",
|
|
34
|
-
"@blaze-cms/core-ui": "
|
|
35
|
-
"@blaze-cms/nextjs-components": "
|
|
36
|
-
"@blaze-cms/plugin-auth-fe": "
|
|
37
|
-
"@blaze-cms/plugin-auth-local-fe": "
|
|
38
|
-
"@blaze-cms/plugin-google-maps-fe": "0.146.0-alpha.
|
|
39
|
-
"@blaze-cms/plugin-gtm-fe": "0.146.0-alpha.
|
|
40
|
-
"@blaze-cms/plugin-page-builder-fe": "0.146.0-alpha.
|
|
41
|
-
"@blaze-cms/plugin-preview-fe": "
|
|
42
|
-
"@blaze-cms/plugin-search-ui": "
|
|
34
|
+
"@blaze-cms/core-ui": "0.146.0-alpha.17",
|
|
35
|
+
"@blaze-cms/nextjs-components": "0.146.0-alpha.17",
|
|
36
|
+
"@blaze-cms/plugin-auth-fe": "0.146.0-alpha.21",
|
|
37
|
+
"@blaze-cms/plugin-auth-local-fe": "0.146.0-alpha.21",
|
|
38
|
+
"@blaze-cms/plugin-google-maps-fe": "0.146.0-alpha.23",
|
|
39
|
+
"@blaze-cms/plugin-gtm-fe": "0.146.0-alpha.23",
|
|
40
|
+
"@blaze-cms/plugin-page-builder-fe": "0.146.0-alpha.23",
|
|
41
|
+
"@blaze-cms/plugin-preview-fe": "0.146.0-alpha.17",
|
|
42
|
+
"@blaze-cms/plugin-search-ui": "0.146.0-alpha.17",
|
|
43
43
|
"@blaze-cms/plugin-structured-data-fe": "^0.140.3",
|
|
44
|
-
"@blaze-cms/react-page-builder": "0.146.0-alpha.
|
|
44
|
+
"@blaze-cms/react-page-builder": "0.146.0-alpha.23",
|
|
45
45
|
"@blaze-cms/setup-ui": "^0.140.3",
|
|
46
46
|
"autoprefixer": "^10.2.3",
|
|
47
47
|
"core-js": "^3.2.1",
|
|
@@ -69,5 +69,5 @@
|
|
|
69
69
|
"lib/*",
|
|
70
70
|
"lib-es/*"
|
|
71
71
|
],
|
|
72
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "ebcb642e3075df16f0acb832236e05cd3e0c7cd5"
|
|
73
73
|
}
|
package/src/constants.js
CHANGED
|
@@ -24,7 +24,7 @@ const COLON = ':';
|
|
|
24
24
|
const DOUBLE_SLASH = '//';
|
|
25
25
|
const HTTPS = 'https://';
|
|
26
26
|
|
|
27
|
-
const DEFAULT_ROUTE_REGEX = /^\/[a-z0-9€_\/]+(?:[
|
|
27
|
+
const DEFAULT_ROUTE_REGEX = /^\/[a-z0-9€_\/]+(?:[-\/\.]{1,2}[a-z0-9\/€_\/]+)*$|^\/$/i;
|
|
28
28
|
const ROUTE_REGEX = process.env.BLAZE_ROUTE_REGEX
|
|
29
29
|
? new RegExp(process.env.BLAZE_ROUTE_REGEX)
|
|
30
30
|
: DEFAULT_ROUTE_REGEX;
|
|
@@ -66,7 +66,7 @@ Object {
|
|
|
66
66
|
"ROUTE_PATTERN_ROBOTS_TXT": "/robots.txt",
|
|
67
67
|
"ROUTE_PATTERN_SITEMAP": "/sitemap.xml",
|
|
68
68
|
"ROUTE_PATTERN_SITEMAP_FILE_REGEX": /\\\\/sitemap\\\\/\\.\\*\\.xml/,
|
|
69
|
-
"ROUTE_REGEX": /\\^\\\\/\\[a-z0-9€_\\\\/\\]\\+\\(\\?:\\[
|
|
69
|
+
"ROUTE_REGEX": /\\^\\\\/\\[a-z0-9€_\\\\/\\]\\+\\(\\?:\\[-\\\\/\\\\\\.\\]\\{1,2\\}\\[a-z0-9\\\\/€_\\\\/\\]\\+\\)\\*\\$\\|\\^\\\\/\\$/i,
|
|
70
70
|
"SEARCH_FILTER": "searchfilter",
|
|
71
71
|
"SITEMAP_STORE_KEY": "default_sitemap",
|
|
72
72
|
"STATIC_FILE_FORWARD_HEADERS": Array [
|
|
@@ -7,10 +7,21 @@ describe('Constants', () => {
|
|
|
7
7
|
expect(constants).toMatchSnapshot();
|
|
8
8
|
});
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
describe('Default route regex', () => {
|
|
11
11
|
const { ROUTE_REGEX } = constants;
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
|
|
13
|
+
it('should handle trailing and no trailing route slashes', () => {
|
|
14
|
+
expect(ROUTE_REGEX.test('/page')).toEqual(true);
|
|
15
|
+
expect(ROUTE_REGEX.test('/page/')).toEqual(true);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('should allow specific characters in route regex', () => {
|
|
19
|
+
const validCharacters = 'abc0123€_';
|
|
20
|
+
expect(ROUTE_REGEX.test(`/${validCharacters}`)).toEqual(true);
|
|
21
|
+
expect(ROUTE_REGEX.test(`/${validCharacters}/${validCharacters}.pdf`)).toEqual(true);
|
|
22
|
+
expect(ROUTE_REGEX.test(`/${validCharacters}=`)).toEqual(false);
|
|
23
|
+
expect(ROUTE_REGEX.test(`/${validCharacters}/${validCharacters}=`)).toEqual(false);
|
|
24
|
+
});
|
|
14
25
|
});
|
|
15
26
|
|
|
16
27
|
it('should be able to override default ROUTE_REGEX', () => {
|
|
@@ -5,7 +5,7 @@ Array [
|
|
|
5
5
|
Object {
|
|
6
6
|
"name": "resolver",
|
|
7
7
|
"page": "/Resolver",
|
|
8
|
-
"pattern": /\\^\\\\/\\[a-z0-9€_\\\\/\\]\\+\\(\\?:\\[
|
|
8
|
+
"pattern": /\\^\\\\/\\[a-z0-9€_\\\\/\\]\\+\\(\\?:\\[-\\\\/\\\\\\.\\]\\{1,2\\}\\[a-z0-9\\\\/€_\\\\/\\]\\+\\)\\*\\$\\|\\^\\\\/\\$/i,
|
|
9
9
|
},
|
|
10
10
|
Object {
|
|
11
11
|
"name": "preview",
|