@sitecore-content-sdk/nextjs 1.3.0-canary.9 → 1.4.0-canary.2

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.
Files changed (234) hide show
  1. package/README.md +11 -11
  2. package/dist/cjs/client/index.js +10 -10
  3. package/dist/cjs/client/models.js +2 -2
  4. package/dist/cjs/client/sitecore-nextjs-client.js +160 -156
  5. package/dist/cjs/components/BYOCWrapper.js +31 -30
  6. package/dist/cjs/components/ComponentPropsContext.js +66 -59
  7. package/dist/cjs/components/FEaaSWrapper.js +33 -32
  8. package/dist/cjs/components/Link.js +117 -90
  9. package/dist/cjs/components/NextImage.js +66 -62
  10. package/dist/cjs/components/Placeholder.js +55 -50
  11. package/dist/cjs/components/RichText.js +133 -128
  12. package/dist/cjs/config/define-config.js +26 -25
  13. package/dist/cjs/config/index.js +5 -5
  14. package/dist/cjs/config-cli/define-cli-config.js +40 -39
  15. package/dist/cjs/config-cli/index.js +5 -5
  16. package/dist/cjs/editing/codegen/import-map.js +129 -118
  17. package/dist/cjs/editing/codegen/index.js +6 -6
  18. package/dist/cjs/editing/constants.js +10 -10
  19. package/dist/cjs/editing/editing-config-middleware.js +70 -69
  20. package/dist/cjs/editing/editing-render-middleware.js +145 -144
  21. package/dist/cjs/editing/feaas-render-middleware.js +102 -101
  22. package/dist/cjs/editing/index.js +19 -19
  23. package/dist/cjs/editing/render-middleware.js +46 -46
  24. package/dist/cjs/editing/utils.js +260 -257
  25. package/dist/cjs/index.js +132 -131
  26. package/dist/cjs/middleware/app-router-multisite-middleware.js +41 -20
  27. package/dist/cjs/middleware/index.js +30 -30
  28. package/dist/cjs/middleware/locale-middleware.js +85 -84
  29. package/dist/cjs/middleware/middleware.js +195 -192
  30. package/dist/cjs/middleware/multisite-middleware.js +141 -118
  31. package/dist/cjs/middleware/personalize-middleware.js +240 -236
  32. package/dist/cjs/middleware/redirects-middleware.js +323 -297
  33. package/dist/cjs/middleware/robots-middleware.js +45 -44
  34. package/dist/cjs/middleware/sitemap-middleware.js +50 -49
  35. package/dist/cjs/monitoring/healthcheck-middleware.js +31 -30
  36. package/dist/cjs/monitoring/index.js +5 -5
  37. package/dist/cjs/route-handler/editing-config-route-handler.js +110 -106
  38. package/dist/cjs/route-handler/editing-render-route-handler.js +270 -165
  39. package/dist/cjs/route-handler/index.js +11 -11
  40. package/dist/cjs/route-handler/robots-route-handler.js +69 -68
  41. package/dist/cjs/route-handler/sitemap-route-handler.js +66 -65
  42. package/dist/cjs/search/index.js +17 -0
  43. package/dist/cjs/services/component-props-service.js +142 -138
  44. package/dist/cjs/sharedTypes/component-props.js +2 -2
  45. package/dist/cjs/sharedTypes/sitecore-page-props.js +2 -2
  46. package/dist/cjs/site/index.js +5 -5
  47. package/dist/cjs/tools/codegen/import-map.js +15 -0
  48. package/dist/cjs/tools/component-props.loader.js +95 -95
  49. package/dist/cjs/tools/generate-map.js +317 -317
  50. package/dist/cjs/tools/index.js +14 -13
  51. package/dist/cjs/tools/templating/byoc-component.js +36 -36
  52. package/dist/cjs/tools/templating/constants.js +7 -7
  53. package/dist/cjs/tools/templating/default-component.js +35 -35
  54. package/dist/cjs/tools/templating/utils.js +200 -0
  55. package/dist/cjs/utils/index.js +14 -14
  56. package/dist/cjs/utils/utils.js +82 -73
  57. package/dist/esm/client/index.js +2 -2
  58. package/dist/esm/client/models.js +1 -1
  59. package/dist/esm/client/sitecore-nextjs-client.js +156 -152
  60. package/dist/esm/components/BYOCWrapper.js +27 -26
  61. package/dist/esm/components/ComponentPropsContext.js +28 -21
  62. package/dist/esm/components/FEaaSWrapper.js +29 -28
  63. package/dist/esm/components/Link.js +78 -51
  64. package/dist/esm/components/NextImage.js +60 -56
  65. package/dist/esm/components/Placeholder.js +18 -13
  66. package/dist/esm/components/RichText.js +96 -91
  67. package/dist/esm/config/define-config.js +21 -20
  68. package/dist/esm/config/index.js +1 -1
  69. package/dist/esm/config-cli/define-cli-config.js +36 -35
  70. package/dist/esm/config-cli/index.js +1 -1
  71. package/dist/esm/editing/codegen/import-map.js +92 -81
  72. package/dist/esm/editing/codegen/index.js +1 -1
  73. package/dist/esm/editing/constants.js +7 -7
  74. package/dist/esm/editing/editing-config-middleware.js +66 -65
  75. package/dist/esm/editing/editing-render-middleware.js +141 -140
  76. package/dist/esm/editing/feaas-render-middleware.js +98 -97
  77. package/dist/esm/editing/index.js +6 -6
  78. package/dist/esm/editing/render-middleware.js +42 -42
  79. package/dist/esm/editing/utils.js +246 -243
  80. package/dist/esm/index.js +25 -25
  81. package/dist/esm/middleware/app-router-multisite-middleware.js +37 -16
  82. package/dist/esm/middleware/index.js +11 -11
  83. package/dist/esm/middleware/locale-middleware.js +81 -80
  84. package/dist/esm/middleware/middleware.js +189 -186
  85. package/dist/esm/middleware/multisite-middleware.js +137 -114
  86. package/dist/esm/middleware/personalize-middleware.js +236 -232
  87. package/dist/esm/middleware/redirects-middleware.js +316 -290
  88. package/dist/esm/middleware/robots-middleware.js +41 -40
  89. package/dist/esm/middleware/sitemap-middleware.js +46 -45
  90. package/dist/esm/monitoring/healthcheck-middleware.js +27 -26
  91. package/dist/esm/monitoring/index.js +1 -1
  92. package/dist/esm/route-handler/editing-config-route-handler.js +106 -102
  93. package/dist/esm/route-handler/editing-render-route-handler.js +265 -160
  94. package/dist/esm/route-handler/index.js +4 -4
  95. package/dist/esm/route-handler/robots-route-handler.js +65 -64
  96. package/dist/esm/route-handler/sitemap-route-handler.js +63 -62
  97. package/dist/esm/search/index.js +1 -0
  98. package/dist/esm/services/component-props-service.js +135 -131
  99. package/dist/esm/sharedTypes/component-props.js +1 -1
  100. package/dist/esm/sharedTypes/sitecore-page-props.js +1 -1
  101. package/dist/esm/site/index.js +1 -1
  102. package/dist/esm/tools/codegen/import-map.js +11 -0
  103. package/dist/esm/tools/component-props.loader.js +59 -59
  104. package/dist/esm/tools/generate-map.js +279 -279
  105. package/dist/esm/tools/index.js +3 -2
  106. package/dist/esm/tools/templating/byoc-component.js +30 -30
  107. package/dist/esm/tools/templating/constants.js +4 -4
  108. package/dist/esm/tools/templating/default-component.js +29 -29
  109. package/dist/esm/tools/templating/utils.js +190 -0
  110. package/dist/esm/utils/index.js +3 -3
  111. package/dist/esm/utils/utils.js +74 -65
  112. package/package.json +87 -13
  113. package/search.d.ts +1 -0
  114. package/types/client/index.d.ts +3 -2
  115. package/types/client/index.d.ts.map +1 -0
  116. package/types/client/models.d.ts +9 -8
  117. package/types/client/models.d.ts.map +1 -0
  118. package/types/client/sitecore-nextjs-client.d.ts +68 -63
  119. package/types/client/sitecore-nextjs-client.d.ts.map +1 -0
  120. package/types/components/BYOCWrapper.d.ts +16 -14
  121. package/types/components/BYOCWrapper.d.ts.map +1 -0
  122. package/types/components/ComponentPropsContext.d.ts +30 -18
  123. package/types/components/ComponentPropsContext.d.ts.map +1 -0
  124. package/types/components/FEaaSWrapper.d.ts +17 -15
  125. package/types/components/FEaaSWrapper.d.ts.map +1 -0
  126. package/types/components/Link.d.ts +25 -15
  127. package/types/components/Link.d.ts.map +1 -0
  128. package/types/components/NextImage.d.ts +11 -6
  129. package/types/components/NextImage.d.ts.map +1 -0
  130. package/types/components/Placeholder.d.ts +14 -8
  131. package/types/components/Placeholder.d.ts.map +1 -0
  132. package/types/components/RichText.d.ts +35 -25
  133. package/types/components/RichText.d.ts.map +1 -0
  134. package/types/config/define-config.d.ts +42 -38
  135. package/types/config/define-config.d.ts.map +1 -0
  136. package/types/config/index.d.ts +2 -1
  137. package/types/config/index.d.ts.map +1 -0
  138. package/types/config-cli/define-cli-config.d.ts +10 -8
  139. package/types/config-cli/define-cli-config.d.ts.map +1 -0
  140. package/types/config-cli/index.d.ts +2 -1
  141. package/types/config-cli/index.d.ts.map +1 -0
  142. package/types/editing/codegen/import-map.d.ts +15 -3
  143. package/types/editing/codegen/import-map.d.ts.map +1 -0
  144. package/types/editing/codegen/index.d.ts +3 -2
  145. package/types/editing/codegen/index.d.ts.map +1 -0
  146. package/types/editing/constants.d.ts +8 -7
  147. package/types/editing/constants.d.ts.map +1 -0
  148. package/types/editing/editing-config-middleware.d.ts +37 -31
  149. package/types/editing/editing-config-middleware.d.ts.map +1 -0
  150. package/types/editing/editing-render-middleware.d.ts +47 -44
  151. package/types/editing/editing-render-middleware.d.ts.map +1 -0
  152. package/types/editing/feaas-render-middleware.d.ts +35 -32
  153. package/types/editing/feaas-render-middleware.d.ts.map +1 -0
  154. package/types/editing/index.d.ts +7 -6
  155. package/types/editing/index.d.ts.map +1 -0
  156. package/types/editing/render-middleware.d.ts +26 -25
  157. package/types/editing/render-middleware.d.ts.map +1 -0
  158. package/types/editing/utils.d.ts +110 -106
  159. package/types/editing/utils.d.ts.map +1 -0
  160. package/types/index.d.ts +25 -24
  161. package/types/index.d.ts.map +1 -0
  162. package/types/middleware/app-router-multisite-middleware.d.ts +28 -13
  163. package/types/middleware/app-router-multisite-middleware.d.ts.map +1 -0
  164. package/types/middleware/index.d.ts +12 -11
  165. package/types/middleware/index.d.ts.map +1 -0
  166. package/types/middleware/locale-middleware.d.ts +35 -32
  167. package/types/middleware/locale-middleware.d.ts.map +1 -0
  168. package/types/middleware/middleware.d.ts +135 -127
  169. package/types/middleware/middleware.d.ts.map +1 -0
  170. package/types/middleware/multisite-middleware.d.ts +54 -37
  171. package/types/middleware/multisite-middleware.d.ts.map +1 -0
  172. package/types/middleware/personalize-middleware.d.ts +81 -65
  173. package/types/middleware/personalize-middleware.d.ts.map +1 -0
  174. package/types/middleware/redirects-middleware.d.ts +68 -65
  175. package/types/middleware/redirects-middleware.d.ts.map +1 -0
  176. package/types/middleware/robots-middleware.d.ts +15 -13
  177. package/types/middleware/robots-middleware.d.ts.map +1 -0
  178. package/types/middleware/sitemap-middleware.d.ts +16 -14
  179. package/types/middleware/sitemap-middleware.d.ts.map +1 -0
  180. package/types/monitoring/healthcheck-middleware.d.ts +14 -12
  181. package/types/monitoring/healthcheck-middleware.d.ts.map +1 -0
  182. package/types/monitoring/index.d.ts +2 -1
  183. package/types/monitoring/index.d.ts.map +1 -0
  184. package/types/route-handler/editing-config-route-handler.d.ts +30 -24
  185. package/types/route-handler/editing-config-route-handler.d.ts.map +1 -0
  186. package/types/route-handler/editing-render-route-handler.d.ts +33 -25
  187. package/types/route-handler/editing-render-route-handler.d.ts.map +1 -0
  188. package/types/route-handler/index.d.ts +5 -4
  189. package/types/route-handler/index.d.ts.map +1 -0
  190. package/types/route-handler/robots-route-handler.d.ts +30 -28
  191. package/types/route-handler/robots-route-handler.d.ts.map +1 -0
  192. package/types/route-handler/sitemap-route-handler.d.ts +30 -28
  193. package/types/route-handler/sitemap-route-handler.d.ts.map +1 -0
  194. package/types/search/index.d.ts +2 -0
  195. package/types/search/index.d.ts.map +1 -0
  196. package/types/services/component-props-service.d.ts +62 -57
  197. package/types/services/component-props-service.d.ts.map +1 -0
  198. package/types/sharedTypes/component-props.d.ts +62 -47
  199. package/types/sharedTypes/component-props.d.ts.map +1 -0
  200. package/types/sharedTypes/sitecore-page-props.d.ts +14 -9
  201. package/types/sharedTypes/sitecore-page-props.d.ts.map +1 -0
  202. package/types/site/index.d.ts +2 -1
  203. package/types/site/index.d.ts.map +1 -0
  204. package/types/tools/codegen/import-map.d.ts +10 -0
  205. package/types/tools/codegen/import-map.d.ts.map +1 -0
  206. package/types/tools/component-props.loader.d.ts +8 -7
  207. package/types/tools/component-props.loader.d.ts.map +1 -0
  208. package/types/tools/generate-map.d.ts +26 -24
  209. package/types/tools/generate-map.d.ts.map +1 -0
  210. package/types/tools/index.d.ts +4 -2
  211. package/types/tools/index.d.ts.map +1 -0
  212. package/types/tools/templating/byoc-component.d.ts +3 -2
  213. package/types/tools/templating/byoc-component.d.ts.map +1 -0
  214. package/types/tools/templating/constants.d.ts +5 -4
  215. package/types/tools/templating/constants.d.ts.map +1 -0
  216. package/types/tools/templating/default-component.d.ts +3 -2
  217. package/types/tools/templating/default-component.d.ts.map +1 -0
  218. package/types/tools/templating/utils.d.ts +44 -0
  219. package/types/tools/templating/utils.d.ts.map +1 -0
  220. package/types/utils/index.d.ts +4 -3
  221. package/types/utils/index.d.ts.map +1 -0
  222. package/types/utils/utils.d.ts +34 -24
  223. package/types/utils/utils.d.ts.map +1 -0
  224. package/client.js +0 -1
  225. package/codegen.js +0 -1
  226. package/config-cli.js +0 -1
  227. package/config.js +0 -1
  228. package/editing.js +0 -1
  229. package/middleware.js +0 -1
  230. package/monitoring.js +0 -1
  231. package/route-handler.js +0 -1
  232. package/site.js +0 -1
  233. package/tools.js +0 -1
  234. package/utils.js +0 -1
@@ -1,40 +1,41 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { SiteResolver } from '../site';
11
- /**
12
- * Middleware for handling robots.txt requests in a Next.js application.
13
- */
14
- export class RobotsMiddleware {
15
- constructor(client, sites) {
16
- this.client = client;
17
- this.siteResolver = new SiteResolver(sites);
18
- }
19
- getHandler() {
20
- return this.handler.bind(this);
21
- }
22
- handler(req, res) {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- var _a;
25
- res.setHeader('Content-Type', 'text/plain');
26
- const hostName = ((_a = req.headers.host) === null || _a === void 0 ? void 0 : _a.split(':')[0]) || 'localhost';
27
- const site = this.siteResolver.getByHost(hostName);
28
- try {
29
- const robotsContent = yield this.client.getRobots(site.name);
30
- if (!robotsContent) {
31
- return res.status(404).send('User-agent: *\nDisallow: /');
32
- }
33
- res.status(200).send(robotsContent);
34
- }
35
- catch (_b) {
36
- res.status(500).send('Internal Server Error');
37
- }
38
- });
39
- }
40
- }
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { SiteResolver } from '../site';
11
+ /**
12
+ * Middleware for handling robots.txt requests in a Next.js application.
13
+ * @public
14
+ */
15
+ export class RobotsMiddleware {
16
+ constructor(client, sites) {
17
+ this.client = client;
18
+ this.siteResolver = new SiteResolver(sites);
19
+ }
20
+ getHandler() {
21
+ return this.handler.bind(this);
22
+ }
23
+ handler(req, res) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ var _a;
26
+ res.setHeader('Content-Type', 'text/plain');
27
+ const hostName = ((_a = req.headers.host) === null || _a === void 0 ? void 0 : _a.split(':')[0]) || 'localhost';
28
+ const site = this.siteResolver.getByHost(hostName);
29
+ try {
30
+ const robotsContent = yield this.client.getRobots(site.name);
31
+ if (!robotsContent) {
32
+ return res.status(404).send('User-agent: *\nDisallow: /');
33
+ }
34
+ res.status(200).send(robotsContent);
35
+ }
36
+ catch (_b) {
37
+ res.status(500).send('Internal Server Error');
38
+ }
39
+ });
40
+ }
41
+ }
@@ -1,45 +1,46 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { SiteResolver } from '../site';
11
- /**
12
- * Middleware for handling sitemap requests in a Next.js application.
13
- * Encapsulates all HTTP-related logic for sitemap generation and delivery.
14
- */
15
- export class SitemapMiddleware {
16
- constructor(client, sites) {
17
- this.client = client;
18
- this.siteResolver = new SiteResolver(sites);
19
- }
20
- getHandler() {
21
- return this.handler.bind(this);
22
- }
23
- handler(req, res) {
24
- return __awaiter(this, void 0, void 0, function* () {
25
- const id = Array.isArray(req.query.id) ? req.query.id[0] : req.query.id;
26
- const reqHost = req.headers.host || '';
27
- const reqProtocol = req.headers['x-forwarded-proto'] || 'https';
28
- const site = this.siteResolver.getByHost(reqHost);
29
- const options = { reqHost, reqProtocol, id, siteName: site.name };
30
- try {
31
- const xmlContent = yield this.client.getSiteMap(options);
32
- res.setHeader('Content-Type', 'text/xml;charset=utf-8');
33
- res.send(xmlContent);
34
- }
35
- catch (error) {
36
- if (error instanceof Error && error.message === 'REDIRECT_404') {
37
- res.redirect('/404');
38
- }
39
- else {
40
- res.status(500).send('Internal Server Error');
41
- }
42
- }
43
- });
44
- }
45
- }
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { SiteResolver } from '../site';
11
+ /**
12
+ * Middleware for handling sitemap requests in a Next.js application.
13
+ * Encapsulates all HTTP-related logic for sitemap generation and delivery.
14
+ * @public
15
+ */
16
+ export class SitemapMiddleware {
17
+ constructor(client, sites) {
18
+ this.client = client;
19
+ this.siteResolver = new SiteResolver(sites);
20
+ }
21
+ getHandler() {
22
+ return this.handler.bind(this);
23
+ }
24
+ handler(req, res) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ const id = Array.isArray(req.query.id) ? req.query.id[0] : req.query.id;
27
+ const reqHost = req.headers.host || '';
28
+ const reqProtocol = req.headers['x-forwarded-proto'] || 'https';
29
+ const site = this.siteResolver.getByHost(reqHost);
30
+ const options = { reqHost, reqProtocol, id, siteName: site.name };
31
+ try {
32
+ const xmlContent = yield this.client.getSiteMap(options);
33
+ res.setHeader('Content-Type', 'text/xml;charset=utf-8');
34
+ res.send(xmlContent);
35
+ }
36
+ catch (error) {
37
+ if (error instanceof Error && error.message === 'REDIRECT_404') {
38
+ res.redirect('/404');
39
+ }
40
+ else {
41
+ res.status(500).send('Internal Server Error');
42
+ }
43
+ }
44
+ });
45
+ }
46
+ }
@@ -1,26 +1,27 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- /**
11
- * Middleware / handler for use in healthcheck Next.js API route (e.g. '/api/healthz').
12
- */
13
- export class HealthcheckMiddleware {
14
- constructor() {
15
- this.handler = (_req, res) => __awaiter(this, void 0, void 0, function* () {
16
- res.status(200).send('Healthy');
17
- });
18
- }
19
- /**
20
- * Gets the Next.js API route handler
21
- * @returns route handler
22
- */
23
- getHandler() {
24
- return this.handler;
25
- }
26
- }
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ /**
11
+ * Middleware / handler for use in healthcheck Next.js API route (e.g. '/api/healthz').
12
+ * @public
13
+ */
14
+ export class HealthcheckMiddleware {
15
+ constructor() {
16
+ this.handler = (_req, res) => __awaiter(this, void 0, void 0, function* () {
17
+ res.status(200).send('Healthy');
18
+ });
19
+ }
20
+ /**
21
+ * Gets the Next.js API route handler
22
+ * @returns route handler
23
+ */
24
+ getHandler() {
25
+ return this.handler;
26
+ }
27
+ }
@@ -1 +1 @@
1
- export { HealthcheckMiddleware } from './healthcheck-middleware';
1
+ export { HealthcheckMiddleware } from './healthcheck-middleware';
@@ -1,102 +1,106 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET, } from '@sitecore-content-sdk/core/editing';
11
- import { debug } from '@sitecore-content-sdk/core';
12
- import { getEnforcedCorsHeaders } from '@sitecore-content-sdk/core/utils';
13
- import { EditMode } from '@sitecore-content-sdk/core/layout';
14
- import { getEditingSecret } from '../utils/utils';
15
- /**
16
- * Creates a route handler for the editing config API route (e.g. '/api/editing/config')
17
- * Provides configuration information to determine feature compatibility on Pages side.
18
- * @param {EditingConfigRouteHandlerOptions} options - The options for the route handler.
19
- * @returns The route handler with GET and OPTIONS methods.
20
- */
21
- export const createEditingConfigRouteHandler = (options) => {
22
- const { components, metadata } = options;
23
- const validateRequest = (req) => {
24
- const secret = req.nextUrl.searchParams.get(QUERY_PARAM_EDITING_SECRET);
25
- const corsHeaders = getEnforcedCorsHeaders({
26
- requestMethod: req.method,
27
- headers: req.headers,
28
- presetCorsHeader: undefined,
29
- allowedOrigins: EDITING_ALLOWED_ORIGINS,
30
- });
31
- return { secret, corsHeaders };
32
- };
33
- const GET = (req) => __awaiter(void 0, void 0, void 0, function* () {
34
- try {
35
- const startTimestamp = Date.now();
36
- debug.editing('editing config route handler start');
37
- const { secret, corsHeaders } = validateRequest(req);
38
- if (!corsHeaders) {
39
- debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
40
- return new Response(JSON.stringify({ message: 'Invalid origin' }), {
41
- status: 401,
42
- headers: {
43
- 'Content-Type': 'application/json',
44
- },
45
- });
46
- }
47
- if (secret !== getEditingSecret()) {
48
- debug.editing('invalid editing secret - sent "%s" expected "%s"', secret, getEditingSecret());
49
- return new Response(JSON.stringify({ message: 'Missing or invalid editing secret' }), {
50
- status: 401,
51
- headers: Object.assign({ 'Content-Type': 'application/json' }, corsHeaders),
52
- });
53
- }
54
- const componentNames = Array.from(components.keys());
55
- const responseData = {
56
- components: componentNames,
57
- packages: metadata.packages,
58
- editMode: EditMode.Metadata,
59
- };
60
- debug.editing('editing config route handler end in %dms', Date.now() - startTimestamp);
61
- return new Response(JSON.stringify(responseData), {
62
- status: 200,
63
- headers: Object.assign({ 'Content-Type': 'application/json' }, corsHeaders),
64
- });
65
- }
66
- catch (error) {
67
- console.log('Editing config route handler failed:');
68
- console.log(error);
69
- return new Response('Internal Server Error', {
70
- status: 500,
71
- });
72
- }
73
- });
74
- const OPTIONS = (req) => __awaiter(void 0, void 0, void 0, function* () {
75
- try {
76
- debug.editing('preflight request');
77
- const { corsHeaders } = validateRequest(req);
78
- if (!corsHeaders) {
79
- debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
80
- return new Response(JSON.stringify({ message: 'Invalid origin' }), {
81
- status: 401,
82
- headers: {
83
- 'Content-Type': 'application/json',
84
- },
85
- });
86
- }
87
- // CORS headers are set by corsHeaders
88
- return new Response(null, {
89
- status: 204,
90
- headers: corsHeaders,
91
- });
92
- }
93
- catch (error) {
94
- console.log('Editing config OPTIONS route handler failed:');
95
- console.log(error);
96
- return new Response('Internal Server Error', {
97
- status: 500,
98
- });
99
- }
100
- });
101
- return { GET, OPTIONS };
102
- };
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET, } from '@sitecore-content-sdk/core/editing';
11
+ import { debug } from '@sitecore-content-sdk/core';
12
+ import { getEnforcedCorsHeaders } from '@sitecore-content-sdk/core/utils';
13
+ import { EditMode } from '@sitecore-content-sdk/core/layout';
14
+ import { getEditingSecret } from '../utils/utils';
15
+ /**
16
+ * Creates a route handler for the editing config API route (e.g. '/api/editing/config')
17
+ * Provides configuration information to determine feature compatibility on Pages side.
18
+ * @param {EditingConfigRouteHandlerOptions} options - The options for the route handler.
19
+ * @returns The route handler with GET and OPTIONS methods.
20
+ * @public
21
+ */
22
+ export const createEditingConfigRouteHandler = (options) => {
23
+ const { components, metadata, clientComponents } = options;
24
+ const validateRequest = (req) => {
25
+ const secret = req.nextUrl.searchParams.get(QUERY_PARAM_EDITING_SECRET);
26
+ const corsHeaders = getEnforcedCorsHeaders({
27
+ requestMethod: req.method,
28
+ headers: req.headers,
29
+ presetCorsHeader: undefined,
30
+ allowedOrigins: EDITING_ALLOWED_ORIGINS,
31
+ });
32
+ return { secret, corsHeaders };
33
+ };
34
+ const GET = (req) => __awaiter(void 0, void 0, void 0, function* () {
35
+ try {
36
+ const startTimestamp = Date.now();
37
+ debug.editing('editing config route handler start');
38
+ const { secret, corsHeaders } = validateRequest(req);
39
+ if (!corsHeaders) {
40
+ debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
41
+ return new Response(JSON.stringify({ message: 'Invalid origin' }), {
42
+ status: 401,
43
+ headers: {
44
+ 'Content-Type': 'application/json',
45
+ },
46
+ });
47
+ }
48
+ if (secret !== getEditingSecret()) {
49
+ debug.editing('invalid editing secret - sent "%s" expected "%s"', secret, getEditingSecret());
50
+ return new Response(JSON.stringify({ message: 'Missing or invalid editing secret' }), {
51
+ status: 401,
52
+ headers: Object.assign({ 'Content-Type': 'application/json' }, corsHeaders),
53
+ });
54
+ }
55
+ const componentNames = Array.from(components.keys());
56
+ const clientComponentNames = clientComponents ? Array.from(clientComponents.keys()) : [];
57
+ const responseData = {
58
+ framework: 'nextjs-approuter',
59
+ components: componentNames,
60
+ clientComponents: clientComponentNames,
61
+ packages: metadata.packages,
62
+ editMode: EditMode.Metadata,
63
+ };
64
+ debug.editing('editing config route handler end in %dms', Date.now() - startTimestamp);
65
+ return new Response(JSON.stringify(responseData), {
66
+ status: 200,
67
+ headers: Object.assign({ 'Content-Type': 'application/json' }, corsHeaders),
68
+ });
69
+ }
70
+ catch (error) {
71
+ console.log('Editing config route handler failed:');
72
+ console.log(error);
73
+ return new Response('Internal Server Error', {
74
+ status: 500,
75
+ });
76
+ }
77
+ });
78
+ const OPTIONS = (req) => __awaiter(void 0, void 0, void 0, function* () {
79
+ try {
80
+ debug.editing('preflight request');
81
+ const { corsHeaders } = validateRequest(req);
82
+ if (!corsHeaders) {
83
+ debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
84
+ return new Response(JSON.stringify({ message: 'Invalid origin' }), {
85
+ status: 401,
86
+ headers: {
87
+ 'Content-Type': 'application/json',
88
+ },
89
+ });
90
+ }
91
+ // CORS headers are set by corsHeaders
92
+ return new Response(null, {
93
+ status: 204,
94
+ headers: corsHeaders,
95
+ });
96
+ }
97
+ catch (error) {
98
+ console.log('Editing config OPTIONS route handler failed:');
99
+ console.log(error);
100
+ return new Response('Internal Server Error', {
101
+ status: 500,
102
+ });
103
+ }
104
+ });
105
+ return { GET, OPTIONS };
106
+ };