@sitecore-content-sdk/nextjs 0.1.0 → 0.2.0-beta.10
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/components/Link.js +0 -2
- package/dist/cjs/components/NextImage.js +6 -25
- package/dist/cjs/components/RichText.js +0 -5
- package/dist/cjs/config/define-config.js +25 -0
- package/dist/cjs/config/index.js +3 -3
- package/dist/cjs/editing/editing-render-middleware.js +1 -1
- package/dist/cjs/index.js +9 -4
- package/dist/cjs/middleware/index.js +10 -1
- package/dist/cjs/middleware/middleware.js +4 -0
- package/dist/cjs/middleware/personalize-middleware.js +32 -25
- package/dist/cjs/middleware/redirects-middleware.js +14 -3
- package/dist/cjs/middleware/robots-middleware.js +42 -0
- package/dist/cjs/tools/codegen/extract-components.js +64 -0
- package/dist/cjs/tools/codegen/utils.js +255 -0
- package/dist/cjs/tools/index.js +3 -1
- package/dist/esm/components/Link.js +1 -3
- package/dist/esm/components/NextImage.js +6 -25
- package/dist/esm/components/RichText.js +1 -3
- package/dist/esm/config/define-config.js +20 -0
- package/dist/esm/config/index.js +1 -1
- package/dist/esm/editing/editing-render-middleware.js +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/middleware/index.js +3 -0
- package/dist/esm/middleware/middleware.js +4 -0
- package/dist/esm/middleware/personalize-middleware.js +32 -25
- package/dist/esm/middleware/redirects-middleware.js +14 -3
- package/dist/esm/middleware/robots-middleware.js +38 -0
- package/dist/esm/tools/codegen/extract-components.js +57 -0
- package/dist/esm/tools/codegen/utils.js +212 -0
- package/dist/esm/tools/index.js +1 -0
- package/package.json +40 -38
- package/types/components/ComponentPropsContext.d.ts +1 -1
- package/types/components/RichText.d.ts +1 -14
- package/types/config/define-config.d.ts +33 -0
- package/types/config/index.d.ts +1 -1
- package/types/index.d.ts +4 -4
- package/types/middleware/index.d.ts +3 -0
- package/types/middleware/middleware.d.ts +3 -0
- package/types/middleware/personalize-middleware.d.ts +6 -29
- package/types/middleware/redirects-middleware.d.ts +13 -6
- package/types/middleware/robots-middleware.d.ts +11 -0
- package/types/tools/codegen/extract-components.d.ts +10 -0
- package/types/tools/codegen/utils.d.ts +40 -0
- package/types/tools/index.d.ts +1 -0
|
@@ -49,7 +49,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
49
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
50
|
exports.Link = void 0;
|
|
51
51
|
const react_1 = __importStar(require("react"));
|
|
52
|
-
const prop_types_1 = __importDefault(require("prop-types"));
|
|
53
52
|
const link_1 = __importDefault(require("next/link"));
|
|
54
53
|
const react_2 = require("@sitecore-content-sdk/react");
|
|
55
54
|
/**
|
|
@@ -90,4 +89,3 @@ exports.Link = (0, react_1.forwardRef)((props, ref) => {
|
|
|
90
89
|
return (react_1.default.createElement(react_2.Link, Object.assign({}, reactLinkProps, { ref: ref }, (process.env.TEST ? { 'data-react-link': true } : {}))));
|
|
91
90
|
});
|
|
92
91
|
exports.Link.displayName = 'NextLink';
|
|
93
|
-
exports.Link.propTypes = Object.assign({ internalLinkMatcher: prop_types_1.default.instanceOf(RegExp) }, react_2.LinkPropTypes);
|
|
@@ -16,15 +16,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.NextImage = void 0;
|
|
18
18
|
const media_1 = require("@sitecore-content-sdk/core/media");
|
|
19
|
-
const prop_types_1 = __importDefault(require("prop-types"));
|
|
20
19
|
const react_1 = __importDefault(require("react"));
|
|
21
20
|
const react_2 = require("@sitecore-content-sdk/react");
|
|
22
21
|
const image_1 = __importDefault(require("next/image"));
|
|
23
|
-
const react_3 = require("@sitecore-content-sdk/react");
|
|
24
|
-
const react_4 = require("@sitecore-content-sdk/react");
|
|
25
22
|
const layout_1 = require("@sitecore-content-sdk/core/layout");
|
|
26
|
-
exports.NextImage = (0, react_2.withFieldMetadata)((0,
|
|
27
|
-
var _b;
|
|
23
|
+
exports.NextImage = (0, react_2.withFieldMetadata)((0, react_2.withEmptyFieldEditingComponent)((_a) => {
|
|
24
|
+
var _b, _c;
|
|
28
25
|
var { editable = true, imageParams, field, mediaUrlPrefix, fill, priority } = _a, otherProps = __rest(_a, ["editable", "imageParams", "field", "mediaUrlPrefix", "fill", "priority"]);
|
|
29
26
|
const sitecoreContext = react_1.default.useContext(react_2.SitecoreContextReactContext);
|
|
30
27
|
// next handles src and we use a custom loader,
|
|
@@ -43,9 +40,10 @@ exports.NextImage = (0, react_2.withFieldMetadata)((0, react_3.withEmptyFieldEdi
|
|
|
43
40
|
if (!img) {
|
|
44
41
|
return null;
|
|
45
42
|
}
|
|
46
|
-
// disable image optimization for Edit
|
|
43
|
+
// disable image optimization for Edit / Preview / Component rendering, but preserve original value if true
|
|
47
44
|
const unoptimized = otherProps.unoptimized ||
|
|
48
|
-
((_b = sitecoreContext.context) === null || _b === void 0 ? void 0 : _b.
|
|
45
|
+
((_b = sitecoreContext.context) === null || _b === void 0 ? void 0 : _b.renderingType) === layout_1.RenderingType.Component ||
|
|
46
|
+
((_c = sitecoreContext.context) === null || _c === void 0 ? void 0 : _c.pageState) !== layout_1.LayoutServicePageState.Normal;
|
|
49
47
|
const attrs = Object.assign(Object.assign(Object.assign({}, img), otherProps), { fill,
|
|
50
48
|
priority, src: media_1.mediaApi.updateImageUrl(img.src, imageParams, mediaUrlPrefix), unoptimized });
|
|
51
49
|
const imageProps = Object.assign(Object.assign({}, attrs), {
|
|
@@ -61,22 +59,5 @@ exports.NextImage = (0, react_2.withFieldMetadata)((0, react_3.withEmptyFieldEdi
|
|
|
61
59
|
return (react_1.default.createElement(image_1.default, Object.assign({ alt: "" }, imageProps, (process.env.TEST ? { 'data-unoptimized': unoptimized } : {}))));
|
|
62
60
|
}
|
|
63
61
|
return null; // we can't handle the truth
|
|
64
|
-
}, { defaultEmptyFieldEditingComponent:
|
|
65
|
-
exports.NextImage.propTypes = {
|
|
66
|
-
field: prop_types_1.default.oneOfType([
|
|
67
|
-
prop_types_1.default.shape({
|
|
68
|
-
src: prop_types_1.default.string.isRequired,
|
|
69
|
-
}),
|
|
70
|
-
prop_types_1.default.shape({
|
|
71
|
-
value: prop_types_1.default.object,
|
|
72
|
-
}),
|
|
73
|
-
]),
|
|
74
|
-
editable: prop_types_1.default.bool,
|
|
75
|
-
mediaUrlPrefix: prop_types_1.default.instanceOf(RegExp),
|
|
76
|
-
imageParams: prop_types_1.default.objectOf(prop_types_1.default.oneOfType([prop_types_1.default.number.isRequired, prop_types_1.default.string.isRequired]).isRequired),
|
|
77
|
-
emptyFieldEditingComponent: prop_types_1.default.oneOfType([
|
|
78
|
-
prop_types_1.default.object,
|
|
79
|
-
prop_types_1.default.func,
|
|
80
|
-
]),
|
|
81
|
-
};
|
|
62
|
+
}, { defaultEmptyFieldEditingComponent: react_2.DefaultEmptyFieldEditingComponentImage }));
|
|
82
63
|
exports.NextImage.displayName = 'NextImage';
|
|
@@ -43,13 +43,9 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
43
43
|
}
|
|
44
44
|
return t;
|
|
45
45
|
};
|
|
46
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
47
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
48
|
-
};
|
|
49
46
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
47
|
exports.RichText = exports.prefetched = void 0;
|
|
51
48
|
const react_1 = __importStar(require("react"));
|
|
52
|
-
const prop_types_1 = __importDefault(require("prop-types"));
|
|
53
49
|
const router_1 = require("next/router");
|
|
54
50
|
const react_2 = require("@sitecore-content-sdk/react");
|
|
55
51
|
exports.prefetched = {};
|
|
@@ -103,5 +99,4 @@ const RichText = (props) => {
|
|
|
103
99
|
return react_1.default.createElement(react_2.RichText, Object.assign({ ref: richTextRef, editable: editable }, rest));
|
|
104
100
|
};
|
|
105
101
|
exports.RichText = RichText;
|
|
106
|
-
exports.RichText.propTypes = Object.assign({ internalLinksSelector: prop_types_1.default.string }, react_2.RichTextPropTypes);
|
|
107
102
|
exports.RichText.displayName = 'NextRichText';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineConfig = exports.getNextFallbackConfig = void 0;
|
|
4
|
+
const config_1 = require("@sitecore-content-sdk/core/config");
|
|
5
|
+
/**
|
|
6
|
+
* Provides default NextJs initial values from env variables for SitecoreConfig
|
|
7
|
+
* @param {SitecoreConfigInput} config optional override values to be written over default config settings
|
|
8
|
+
* @returns default nextjs input config
|
|
9
|
+
*/
|
|
10
|
+
const getNextFallbackConfig = (config) => {
|
|
11
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
12
|
+
return Object.assign(Object.assign({}, config), { api: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.api), { edge: Object.assign(Object.assign({}, (_a = config === null || config === void 0 ? void 0 : config.api) === null || _a === void 0 ? void 0 : _a.edge), { contextId: ((_c = (_b = config === null || config === void 0 ? void 0 : config.api) === null || _b === void 0 ? void 0 : _b.edge) === null || _c === void 0 ? void 0 : _c.contextId) || process.env.NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID || '', clientContextId: ((_e = (_d = config === null || config === void 0 ? void 0 : config.api) === null || _d === void 0 ? void 0 : _d.edge) === null || _e === void 0 ? void 0 : _e.clientContextId) || process.env.NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID, edgeUrl: ((_g = (_f = config === null || config === void 0 ? void 0 : config.api) === null || _f === void 0 ? void 0 : _f.edge) === null || _g === void 0 ? void 0 : _g.edgeUrl) || process.env.NEXT_PUBLIC_SITECORE_EDGE_URL }), local: Object.assign(Object.assign({}, (_h = config === null || config === void 0 ? void 0 : config.api) === null || _h === void 0 ? void 0 : _h.local), { apiKey: ((_k = (_j = config === null || config === void 0 ? void 0 : config.api) === null || _j === void 0 ? void 0 : _j.local) === null || _k === void 0 ? void 0 : _k.apiKey) || process.env.NEXT_PUBLIC_SITECORE_API_KEY || '', apiHost: ((_m = (_l = config === null || config === void 0 ? void 0 : config.api) === null || _l === void 0 ? void 0 : _l.local) === null || _m === void 0 ? void 0 : _m.apiHost) || process.env.NEXT_PUBLIC_SITECORE_API_HOST || '' }) }), defaultSite: (config === null || config === void 0 ? void 0 : config.defaultSite) || process.env.NEXT_PUBLIC_SITECORE_SITE_NAME || '', defaultLanguage: (config === null || config === void 0 ? void 0 : config.defaultLanguage) || process.env.NEXT_PUBLIC_DEFAULT_LANGUAGE || 'en', multisite: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.multisite), { useCookieResolution: (_p = (_o = config === null || config === void 0 ? void 0 : config.multisite) === null || _o === void 0 ? void 0 : _o.useCookieResolution) !== null && _p !== void 0 ? _p : (() => process.env.VERCEL_ENV === 'preview') }), personalize: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.personalize), { scope: ((_q = config === null || config === void 0 ? void 0 : config.personalize) === null || _q === void 0 ? void 0 : _q.scope) || process.env.NEXT_PUBLIC_PERSONALIZE_SCOPE }), disableStaticPaths: process.env.DISABLE_SSG_FETCH !== undefined
|
|
13
|
+
? process.env.DISABLE_SSG_FETCH.toLowerCase() === 'true'
|
|
14
|
+
: (_r = config === null || config === void 0 ? void 0 : config.disableStaticPaths) !== null && _r !== void 0 ? _r : false });
|
|
15
|
+
};
|
|
16
|
+
exports.getNextFallbackConfig = getNextFallbackConfig;
|
|
17
|
+
/**
|
|
18
|
+
* Accepts a SitecoreConfigInput object and returns full sitecore configuration
|
|
19
|
+
* @param {SitecoreConfigInput} config override values to be written over default config settings
|
|
20
|
+
* @returns {SitecoreConfig} full sitecore configuration to use in application
|
|
21
|
+
*/
|
|
22
|
+
const defineConfig = (config) => {
|
|
23
|
+
return (0, config_1.defineConfig)((0, exports.getNextFallbackConfig)(config));
|
|
24
|
+
};
|
|
25
|
+
exports.defineConfig = defineConfig;
|
package/dist/cjs/config/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var config_1 = require("@sitecore-content-sdk/core/config");
|
|
5
|
-
Object.defineProperty(exports, "defineConfig", { enumerable: true, get: function () { return config_1.defineConfig; } });
|
|
3
|
+
exports.defineConfig = exports.defineCliConfig = void 0;
|
|
6
4
|
var define_cli_config_1 = require("./define-cli-config");
|
|
7
5
|
Object.defineProperty(exports, "defineCliConfig", { enumerable: true, get: function () { return define_cli_config_1.defineCliConfig; } });
|
|
6
|
+
var define_config_1 = require("./define-config");
|
|
7
|
+
Object.defineProperty(exports, "defineConfig", { enumerable: true, get: function () { return define_config_1.defineConfig; } });
|
|
@@ -105,7 +105,7 @@ class EditingRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
|
|
|
105
105
|
language: query.sc_lang,
|
|
106
106
|
site: query.sc_site,
|
|
107
107
|
mode: 'library',
|
|
108
|
-
dataSourceId: query.
|
|
108
|
+
dataSourceId: query.dataSourceId,
|
|
109
109
|
version: query.sc_version,
|
|
110
110
|
}, {
|
|
111
111
|
maxAge: 3,
|
package/dist/cjs/index.js
CHANGED
|
@@ -33,8 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
37
|
-
exports.Form = exports.EditingScripts = exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.DefaultEmptyFieldEditingComponentText = void 0;
|
|
36
|
+
exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.DateField = exports.Text = exports.Image = exports.BYOCWrapper = exports.FEaaSWrapper = exports.NextImage = exports.Placeholder = exports.RichText = exports.Link = exports.useComponentProps = exports.ComponentPropsContext = exports.ComponentPropsReactContext = exports.ComponentPropsService = exports.normalizeSiteRewrite = exports.getSiteRewriteData = exports.getSiteRewrite = exports.GraphQLSiteInfoService = exports.SiteResolver = exports.GraphQLRobotsService = exports.GraphQLErrorPagesService = exports.GraphQLSitemapXmlService = exports.REDIRECT_TYPE_SERVER_TRANSFER = exports.REDIRECT_TYPE_302 = exports.REDIRECT_TYPE_301 = exports.GraphQLRedirectsService = exports.GraphQLSitePathService = exports.GraphQLPersonalizeService = exports.CdpHelper = exports.normalizePersonalizedRewrite = exports.getGroomedVariantIds = exports.getPersonalizedRewriteData = exports.getPersonalizedRewrite = exports.personalizeLayout = exports.GraphQLDictionaryService = exports.mediaApi = exports.RestComponentLayoutService = exports.RenderingType = exports.EditMode = exports.getContentStylesheetLink = exports.getFieldValue = exports.getChildPlaceholder = exports.GraphQLLayoutService = exports.LayoutServicePageState = exports.MemoryCacheClient = exports.debug = exports.enableDebug = exports.NativeDataFetcher = exports.constants = void 0;
|
|
37
|
+
exports.Form = exports.EditingScripts = exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.DefaultEmptyFieldEditingComponentText = exports.DefaultEmptyFieldEditingComponentImage = exports.DesignLibrary = exports.File = exports.getDesignLibraryStylesheetLinks = exports.BYOCComponent = void 0;
|
|
38
38
|
var core_1 = require("@sitecore-content-sdk/core");
|
|
39
39
|
Object.defineProperty(exports, "constants", { enumerable: true, get: function () { return core_1.constants; } });
|
|
40
40
|
// generic data access
|
|
@@ -63,10 +63,13 @@ Object.defineProperty(exports, "getPersonalizedRewriteData", { enumerable: true,
|
|
|
63
63
|
Object.defineProperty(exports, "getGroomedVariantIds", { enumerable: true, get: function () { return personalize_1.getGroomedVariantIds; } });
|
|
64
64
|
Object.defineProperty(exports, "normalizePersonalizedRewrite", { enumerable: true, get: function () { return personalize_1.normalizePersonalizedRewrite; } });
|
|
65
65
|
Object.defineProperty(exports, "CdpHelper", { enumerable: true, get: function () { return personalize_1.CdpHelper; } });
|
|
66
|
-
|
|
67
|
-
Object.defineProperty(exports, "ComponentPropsService", { enumerable: true, get: function () { return component_props_service_1.ComponentPropsService; } });
|
|
66
|
+
Object.defineProperty(exports, "GraphQLPersonalizeService", { enumerable: true, get: function () { return personalize_1.GraphQLPersonalizeService; } });
|
|
68
67
|
var site_1 = require("@sitecore-content-sdk/core/site");
|
|
69
68
|
Object.defineProperty(exports, "GraphQLSitePathService", { enumerable: true, get: function () { return site_1.GraphQLSitePathService; } });
|
|
69
|
+
Object.defineProperty(exports, "GraphQLRedirectsService", { enumerable: true, get: function () { return site_1.GraphQLRedirectsService; } });
|
|
70
|
+
Object.defineProperty(exports, "REDIRECT_TYPE_301", { enumerable: true, get: function () { return site_1.REDIRECT_TYPE_301; } });
|
|
71
|
+
Object.defineProperty(exports, "REDIRECT_TYPE_302", { enumerable: true, get: function () { return site_1.REDIRECT_TYPE_302; } });
|
|
72
|
+
Object.defineProperty(exports, "REDIRECT_TYPE_SERVER_TRANSFER", { enumerable: true, get: function () { return site_1.REDIRECT_TYPE_SERVER_TRANSFER; } });
|
|
70
73
|
var site_2 = require("@sitecore-content-sdk/core/site");
|
|
71
74
|
Object.defineProperty(exports, "GraphQLSitemapXmlService", { enumerable: true, get: function () { return site_2.GraphQLSitemapXmlService; } });
|
|
72
75
|
Object.defineProperty(exports, "GraphQLErrorPagesService", { enumerable: true, get: function () { return site_2.GraphQLErrorPagesService; } });
|
|
@@ -76,6 +79,8 @@ Object.defineProperty(exports, "GraphQLSiteInfoService", { enumerable: true, get
|
|
|
76
79
|
Object.defineProperty(exports, "getSiteRewrite", { enumerable: true, get: function () { return site_2.getSiteRewrite; } });
|
|
77
80
|
Object.defineProperty(exports, "getSiteRewriteData", { enumerable: true, get: function () { return site_2.getSiteRewriteData; } });
|
|
78
81
|
Object.defineProperty(exports, "normalizeSiteRewrite", { enumerable: true, get: function () { return site_2.normalizeSiteRewrite; } });
|
|
82
|
+
var component_props_service_1 = require("./services/component-props-service");
|
|
83
|
+
Object.defineProperty(exports, "ComponentPropsService", { enumerable: true, get: function () { return component_props_service_1.ComponentPropsService; } });
|
|
79
84
|
var ComponentPropsContext_1 = require("./components/ComponentPropsContext");
|
|
80
85
|
Object.defineProperty(exports, "ComponentPropsReactContext", { enumerable: true, get: function () { return ComponentPropsContext_1.ComponentPropsReactContext; } });
|
|
81
86
|
Object.defineProperty(exports, "ComponentPropsContext", { enumerable: true, get: function () { return ComponentPropsContext_1.ComponentPropsContext; } });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SitemapMiddleware = exports.MultisiteMiddleware = exports.PersonalizeMiddleware = exports.RedirectsMiddleware = exports.defineMiddleware = exports.Middleware = exports.MiddlewareBase = exports.debug = void 0;
|
|
3
|
+
exports.REDIRECT_TYPE_SERVER_TRANSFER = exports.REDIRECT_TYPE_302 = exports.REDIRECT_TYPE_301 = exports.GraphQLRedirectsService = exports.GraphQLPersonalizeService = exports.RobotsMiddleware = 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");
|
|
@@ -15,3 +15,12 @@ var multisite_middleware_1 = require("./multisite-middleware");
|
|
|
15
15
|
Object.defineProperty(exports, "MultisiteMiddleware", { enumerable: true, get: function () { return multisite_middleware_1.MultisiteMiddleware; } });
|
|
16
16
|
var sitemap_middleware_1 = require("./sitemap-middleware");
|
|
17
17
|
Object.defineProperty(exports, "SitemapMiddleware", { enumerable: true, get: function () { return sitemap_middleware_1.SitemapMiddleware; } });
|
|
18
|
+
var robots_middleware_1 = require("./robots-middleware");
|
|
19
|
+
Object.defineProperty(exports, "RobotsMiddleware", { enumerable: true, get: function () { return robots_middleware_1.RobotsMiddleware; } });
|
|
20
|
+
var personalize_1 = require("@sitecore-content-sdk/core/personalize");
|
|
21
|
+
Object.defineProperty(exports, "GraphQLPersonalizeService", { enumerable: true, get: function () { return personalize_1.GraphQLPersonalizeService; } });
|
|
22
|
+
var site_1 = require("@sitecore-content-sdk/core/site");
|
|
23
|
+
Object.defineProperty(exports, "GraphQLRedirectsService", { enumerable: true, get: function () { return site_1.GraphQLRedirectsService; } });
|
|
24
|
+
Object.defineProperty(exports, "REDIRECT_TYPE_301", { enumerable: true, get: function () { return site_1.REDIRECT_TYPE_301; } });
|
|
25
|
+
Object.defineProperty(exports, "REDIRECT_TYPE_302", { enumerable: true, get: function () { return site_1.REDIRECT_TYPE_302; } });
|
|
26
|
+
Object.defineProperty(exports, "REDIRECT_TYPE_SERVER_TRANSFER", { enumerable: true, get: function () { return site_1.REDIRECT_TYPE_SERVER_TRANSFER; } });
|
|
@@ -13,6 +13,7 @@ exports.defineMiddleware = exports.MiddlewareBase = exports.Middleware = exports
|
|
|
13
13
|
const site_1 = require("@sitecore-content-sdk/core/site");
|
|
14
14
|
const core_1 = require("@sitecore-content-sdk/core");
|
|
15
15
|
const server_1 = require("next/server");
|
|
16
|
+
const client_1 = require("@sitecore-content-sdk/core/client");
|
|
16
17
|
exports.REWRITE_HEADER_NAME = 'x-sc-rewrite';
|
|
17
18
|
/**
|
|
18
19
|
* Middleware class to be extended by all middleware implementations
|
|
@@ -108,6 +109,9 @@ class MiddlewareBase extends Middleware {
|
|
|
108
109
|
}
|
|
109
110
|
return this.siteResolver.getByHost(hostname);
|
|
110
111
|
}
|
|
112
|
+
getClientFactory(graphQLOptions) {
|
|
113
|
+
return (0, client_1.createGraphQLClientFactory)(graphQLOptions);
|
|
114
|
+
}
|
|
111
115
|
/**
|
|
112
116
|
* Create a rewrite response
|
|
113
117
|
* @param {string} rewritePath the destionation path
|
|
@@ -23,6 +23,7 @@ class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
|
|
|
23
23
|
* @param {PersonalizeMiddlewareConfig} [config] Personalize middleware config
|
|
24
24
|
*/
|
|
25
25
|
constructor(config) {
|
|
26
|
+
var _a;
|
|
26
27
|
super(config);
|
|
27
28
|
this.config = config;
|
|
28
29
|
this.handle = (req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -123,14 +124,39 @@ class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
|
|
|
123
124
|
return res;
|
|
124
125
|
}
|
|
125
126
|
});
|
|
127
|
+
const graphQLOptions = {
|
|
128
|
+
api: {
|
|
129
|
+
edge: {
|
|
130
|
+
contextId: this.config.contextId,
|
|
131
|
+
clientContextId: this.config.clientContextId,
|
|
132
|
+
edgeUrl: this.config.edgeUrl,
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
};
|
|
126
136
|
// NOTE: we provide native fetch for compatibility on Next.js Edge Runtime
|
|
127
137
|
// (underlying default 'cross-fetch' is not currently compatible: https://github.com/lquixada/cross-fetch/issues/78)
|
|
128
|
-
this.personalizeService =
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
138
|
+
this.personalizeService =
|
|
139
|
+
(_a = this.config.personalizeService) !== null && _a !== void 0 ? _a : new personalize_1.GraphQLPersonalizeService({
|
|
140
|
+
clientFactory: this.getClientFactory(graphQLOptions),
|
|
141
|
+
timeout: this.config.edgeTimeout,
|
|
142
|
+
scope: this.config.scope,
|
|
143
|
+
fetch: fetch,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
getExperienceParams(req) {
|
|
147
|
+
const extraParams = this.config.getExtraUtmParams ? this.config.getExtraUtmParams(req) : {};
|
|
148
|
+
const utm = Object.assign({ campaign: req.nextUrl.searchParams.get('utm_campaign') || undefined, content: req.nextUrl.searchParams.get('utm_content') || undefined, medium: req.nextUrl.searchParams.get('utm_medium') || undefined, source: req.nextUrl.searchParams.get('utm_source') || undefined }, extraParams);
|
|
149
|
+
return {
|
|
150
|
+
// It's expected that the header name "referer" is actually a misspelling of the word "referrer"
|
|
151
|
+
// req.referrer is used during fetching to determine the value of the Referer header of the request being made,
|
|
152
|
+
// used as a fallback
|
|
153
|
+
referrer: req.headers.get('referer') || req.referrer,
|
|
154
|
+
utm,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
disabled(req, res) {
|
|
158
|
+
// ignore files
|
|
159
|
+
return req.nextUrl.pathname.includes('.') || super.disabled(req, res);
|
|
134
160
|
}
|
|
135
161
|
initPersonalizeServer(_a) {
|
|
136
162
|
return __awaiter(this, arguments, void 0, function* ({ hostname, siteName, request, response, }) {
|
|
@@ -159,25 +185,6 @@ class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
|
|
|
159
185
|
}, { timeout }));
|
|
160
186
|
});
|
|
161
187
|
}
|
|
162
|
-
getExperienceParams(req) {
|
|
163
|
-
const utm = {
|
|
164
|
-
campaign: req.nextUrl.searchParams.get('utm_campaign') || undefined,
|
|
165
|
-
content: req.nextUrl.searchParams.get('utm_content') || undefined,
|
|
166
|
-
medium: req.nextUrl.searchParams.get('utm_medium') || undefined,
|
|
167
|
-
source: req.nextUrl.searchParams.get('utm_source') || undefined,
|
|
168
|
-
};
|
|
169
|
-
return {
|
|
170
|
-
// It's expected that the header name "referer" is actually a misspelling of the word "referrer"
|
|
171
|
-
// req.referrer is used during fetching to determine the value of the Referer header of the request being made,
|
|
172
|
-
// used as a fallback
|
|
173
|
-
referrer: req.headers.get('referer') || req.referrer,
|
|
174
|
-
utm: utm,
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
disabled(req, res) {
|
|
178
|
-
// ignore files
|
|
179
|
-
return req.nextUrl.pathname.includes('.') || super.disabled(req, res);
|
|
180
|
-
}
|
|
181
188
|
/**
|
|
182
189
|
* Aggregates personalize executions based on the provided route personalize information and language
|
|
183
190
|
* @param {PersonalizeInfo} personalizeInfo the route personalize information
|
|
@@ -30,6 +30,7 @@ class RedirectsMiddleware extends middleware_1.MiddlewareBase {
|
|
|
30
30
|
* @param {RedirectsMiddlewareConfig} [config] redirects middleware config
|
|
31
31
|
*/
|
|
32
32
|
constructor(config) {
|
|
33
|
+
var _a;
|
|
33
34
|
super(config);
|
|
34
35
|
this.config = config;
|
|
35
36
|
this.handle = (req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -140,9 +141,19 @@ class RedirectsMiddleware extends middleware_1.MiddlewareBase {
|
|
|
140
141
|
return res;
|
|
141
142
|
}
|
|
142
143
|
});
|
|
144
|
+
const graphQLOptions = {
|
|
145
|
+
api: {
|
|
146
|
+
edge: {
|
|
147
|
+
contextId: this.config.contextId,
|
|
148
|
+
clientContextId: this.config.clientContextId,
|
|
149
|
+
edgeUrl: this.config.edgeUrl,
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
};
|
|
143
153
|
// NOTE: we provide native fetch for compatibility on Next.js Edge Runtime
|
|
144
154
|
// (underlying default 'cross-fetch' is not currently compatible: https://github.com/lquixada/cross-fetch/issues/78)
|
|
145
|
-
this.redirectsService =
|
|
155
|
+
this.redirectsService =
|
|
156
|
+
(_a = this.config.redirectsService) !== null && _a !== void 0 ? _a : new site_1.GraphQLRedirectsService(Object.assign(Object.assign({}, config), { clientFactory: this.getClientFactory(graphQLOptions), fetch: fetch }));
|
|
146
157
|
this.locales = config.locales;
|
|
147
158
|
}
|
|
148
159
|
/**
|
|
@@ -242,9 +253,9 @@ class RedirectsMiddleware extends middleware_1.MiddlewareBase {
|
|
|
242
253
|
return false;
|
|
243
254
|
})
|
|
244
255
|
.join('&');
|
|
245
|
-
const newUrl = new URL(`${url.pathname}?${newQueryString}`, url.origin);
|
|
256
|
+
const newUrl = new URL(`${url.pathname.toLowerCase()}?${newQueryString}`, url.origin);
|
|
246
257
|
url.search = newUrl.search;
|
|
247
|
-
url.pathname = newUrl.pathname;
|
|
258
|
+
url.pathname = newUrl.pathname.toLocaleLowerCase();
|
|
248
259
|
url.href = newUrl.href;
|
|
249
260
|
return url;
|
|
250
261
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
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.RobotsMiddleware = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* Middleware for handling robots.txt requests in a Next.js application.
|
|
15
|
+
*/
|
|
16
|
+
class RobotsMiddleware {
|
|
17
|
+
constructor(client) {
|
|
18
|
+
this.client = client;
|
|
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.client.resolveSite(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
|
+
}
|
|
42
|
+
exports.RobotsMiddleware = RobotsMiddleware;
|
|
@@ -0,0 +1,64 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.extractComponents = void 0;
|
|
16
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
17
|
+
const utils_1 = require("./utils");
|
|
18
|
+
const core_1 = require("@sitecore-content-sdk/core");
|
|
19
|
+
const tools_1 = require("@sitecore-content-sdk/core/tools");
|
|
20
|
+
/**
|
|
21
|
+
* Extracts components from the app folder and sends them to XMCloud.
|
|
22
|
+
* @param {ExtractComponentsConfig} args - Config for components extraction
|
|
23
|
+
*/
|
|
24
|
+
const extractComponents = (args) => {
|
|
25
|
+
const authParams = {
|
|
26
|
+
clientId: process.env.SITECORE_AUTH_CLIENT_ID || '',
|
|
27
|
+
clientSecret: process.env.SITECORE_AUTH_CLIENT_SECRET || '',
|
|
28
|
+
endpoint: process.env.SITECORE_AUTH_ENDPOINT || core_1.constants.DEFAULT_SITECORE_AUTH_ENDPOINT,
|
|
29
|
+
audience: process.env.SITECORE_AUTH_AUDIENCE || core_1.constants.DEFAULT_SITECORE_AUTH_AUDIENCE,
|
|
30
|
+
};
|
|
31
|
+
return () => __awaiter(void 0, void 0, void 0, function* () {
|
|
32
|
+
if (!(0, utils_1.validateDeployContext)()) {
|
|
33
|
+
console.log(chalk_1.default.yellow('Skipping code extraction, not in deploy context'));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (!(0, utils_1.validateConsent)()) {
|
|
37
|
+
console.log(chalk_1.default.yellow('Skipping code extraction, consent not given'));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const basePath = process.cwd();
|
|
41
|
+
try {
|
|
42
|
+
const bearer = yield (0, tools_1.fetchBearerToken)(authParams);
|
|
43
|
+
if (!bearer) {
|
|
44
|
+
console.error(chalk_1.default.red('Failed to get bearer token, aborting code extraction'));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const componentPaths = yield (0, utils_1.resolveComponentImportFiles)(basePath, args.componentMapPath);
|
|
48
|
+
const codeDispatches = Array.from(componentPaths, (mapEntry) => (0, utils_1.sendCode)({
|
|
49
|
+
file: {
|
|
50
|
+
name: mapEntry[0],
|
|
51
|
+
path: mapEntry[1],
|
|
52
|
+
type: utils_1.ExtractedFileType.Component,
|
|
53
|
+
},
|
|
54
|
+
token: bearer,
|
|
55
|
+
edgeUrl: args.scConfig.api.edge.edgeUrl,
|
|
56
|
+
}));
|
|
57
|
+
yield Promise.all(codeDispatches);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error(chalk_1.default.red('Error during component extraction:', error));
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
exports.extractComponents = extractComponents;
|