@sitecore-content-sdk/nextjs 0.1.0-beta.35 → 0.1.0-beta.37
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/dist/cjs/middleware/index.js +3 -1
- package/dist/cjs/middleware/sitemap-middleware.js +47 -0
- package/dist/esm/middleware/index.js +1 -0
- package/dist/esm/middleware/sitemap-middleware.js +43 -0
- package/package.json +4 -4
- package/types/index.d.ts +0 -1
- package/types/middleware/index.d.ts +1 -0
- package/types/middleware/sitemap-middleware.d.ts +12 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MultisiteMiddleware = exports.PersonalizeMiddleware = exports.RedirectsMiddleware = exports.defineMiddleware = exports.Middleware = exports.MiddlewareBase = exports.debug = void 0;
|
|
3
|
+
exports.SitemapMiddleware = exports.MultisiteMiddleware = exports.PersonalizeMiddleware = exports.RedirectsMiddleware = exports.defineMiddleware = exports.Middleware = exports.MiddlewareBase = exports.debug = void 0;
|
|
4
4
|
var core_1 = require("@sitecore-content-sdk/core");
|
|
5
5
|
Object.defineProperty(exports, "debug", { enumerable: true, get: function () { return core_1.debug; } });
|
|
6
6
|
var middleware_1 = require("./middleware");
|
|
@@ -13,3 +13,5 @@ var personalize_middleware_1 = require("./personalize-middleware");
|
|
|
13
13
|
Object.defineProperty(exports, "PersonalizeMiddleware", { enumerable: true, get: function () { return personalize_middleware_1.PersonalizeMiddleware; } });
|
|
14
14
|
var multisite_middleware_1 = require("./multisite-middleware");
|
|
15
15
|
Object.defineProperty(exports, "MultisiteMiddleware", { enumerable: true, get: function () { return multisite_middleware_1.MultisiteMiddleware; } });
|
|
16
|
+
var sitemap_middleware_1 = require("./sitemap-middleware");
|
|
17
|
+
Object.defineProperty(exports, "SitemapMiddleware", { enumerable: true, get: function () { return sitemap_middleware_1.SitemapMiddleware; } });
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SitemapMiddleware = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* Middleware for handling sitemap requests in a Next.js application.
|
|
15
|
+
* Encapsulates all HTTP-related logic for sitemap generation and delivery.
|
|
16
|
+
*/
|
|
17
|
+
class SitemapMiddleware {
|
|
18
|
+
constructor(client) {
|
|
19
|
+
this.client = client;
|
|
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.client.resolveSite(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
|
+
}
|
|
47
|
+
exports.SitemapMiddleware = SitemapMiddleware;
|
|
@@ -3,3 +3,4 @@ export { MiddlewareBase, Middleware, defineMiddleware } from './middleware';
|
|
|
3
3
|
export { RedirectsMiddleware } from './redirects-middleware';
|
|
4
4
|
export { PersonalizeMiddleware } from './personalize-middleware';
|
|
5
5
|
export { MultisiteMiddleware } from './multisite-middleware';
|
|
6
|
+
export { SitemapMiddleware } from './sitemap-middleware';
|
|
@@ -0,0 +1,43 @@
|
|
|
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 for handling sitemap requests in a Next.js application.
|
|
12
|
+
* Encapsulates all HTTP-related logic for sitemap generation and delivery.
|
|
13
|
+
*/
|
|
14
|
+
export class SitemapMiddleware {
|
|
15
|
+
constructor(client) {
|
|
16
|
+
this.client = client;
|
|
17
|
+
}
|
|
18
|
+
getHandler() {
|
|
19
|
+
return this.handler.bind(this);
|
|
20
|
+
}
|
|
21
|
+
handler(req, res) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const id = Array.isArray(req.query.id) ? req.query.id[0] : req.query.id;
|
|
24
|
+
const reqHost = req.headers.host || '';
|
|
25
|
+
const reqProtocol = req.headers['x-forwarded-proto'] || 'https';
|
|
26
|
+
const site = this.client.resolveSite(reqHost);
|
|
27
|
+
const options = { reqHost, reqProtocol, id, siteName: site.name };
|
|
28
|
+
try {
|
|
29
|
+
const xmlContent = yield this.client.getSiteMap(options);
|
|
30
|
+
res.setHeader('Content-Type', 'text/xml;charset=utf-8');
|
|
31
|
+
res.send(xmlContent);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
if (error instanceof Error && error.message === 'REDIRECT_404') {
|
|
35
|
+
res.redirect('/404');
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
res.status(500).send('Internal Server Error');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sitecore-content-sdk/nextjs",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.37",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -75,8 +75,8 @@
|
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
77
|
"@babel/parser": "^7.26.10",
|
|
78
|
-
"@sitecore-content-sdk/core": "0.1.0-beta.
|
|
79
|
-
"@sitecore-content-sdk/react": "0.1.0-beta.
|
|
78
|
+
"@sitecore-content-sdk/core": "0.1.0-beta.37",
|
|
79
|
+
"@sitecore-content-sdk/react": "0.1.0-beta.37",
|
|
80
80
|
"@vercel/kv": "^3.0.0",
|
|
81
81
|
"prop-types": "^15.8.1",
|
|
82
82
|
"recast": "^0.23.11",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
},
|
|
86
86
|
"description": "",
|
|
87
87
|
"types": "types/index.d.ts",
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "a2ec7a7854734141e897689e5aa12156cd15a87c",
|
|
89
89
|
"files": [
|
|
90
90
|
"dist",
|
|
91
91
|
"types",
|
package/types/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export { constants, NativeDataFetcher, NativeDataFetcherConfig, NativeDataFetcherResponse, NativeDataFetcherError, HTMLLink, enableDebug, debug, CacheClient, CacheOptions, MemoryCacheClient, } from '@sitecore-content-sdk/core';
|
|
2
|
-
export { SitemapXmlOptions } from '@sitecore-content-sdk/core/client';
|
|
3
2
|
export { LayoutServiceData, LayoutServicePageState, LayoutServiceContext, LayoutServiceContextData, GraphQLLayoutService, GraphQLLayoutServiceConfig, PlaceholderData, PlaceholdersData, RouteData, Field, Item, getChildPlaceholder, getFieldValue, ComponentRendering, ComponentFields, ComponentParams, getContentStylesheetLink, EditMode, RenderingType, } from '@sitecore-content-sdk/core/layout';
|
|
4
3
|
export { RestComponentLayoutService } from '@sitecore-content-sdk/core/editing';
|
|
5
4
|
export { mediaApi } from '@sitecore-content-sdk/core/media';
|
|
@@ -3,3 +3,4 @@ export { MiddlewareBase, MiddlewareBaseConfig, Middleware, defineMiddleware } fr
|
|
|
3
3
|
export { RedirectsMiddleware, RedirectsMiddlewareConfig } from './redirects-middleware';
|
|
4
4
|
export { PersonalizeMiddleware, PersonalizeMiddlewareConfig } from './personalize-middleware';
|
|
5
5
|
export { MultisiteMiddleware, MultisiteMiddlewareConfig } from './multisite-middleware';
|
|
6
|
+
export { SitemapMiddleware } from './sitemap-middleware';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NextApiRequest, NextApiResponse } from 'next';
|
|
2
|
+
import { SitecoreClient } from '@sitecore-content-sdk/core/client';
|
|
3
|
+
/**
|
|
4
|
+
* Middleware for handling sitemap requests in a Next.js application.
|
|
5
|
+
* Encapsulates all HTTP-related logic for sitemap generation and delivery.
|
|
6
|
+
*/
|
|
7
|
+
export declare class SitemapMiddleware {
|
|
8
|
+
private client;
|
|
9
|
+
constructor(client: SitecoreClient);
|
|
10
|
+
getHandler(): (req: NextApiRequest, res: NextApiResponse) => Promise<void>;
|
|
11
|
+
private handler;
|
|
12
|
+
}
|