@remkoj/optimizely-cms-nextjs 6.0.0-pre9 → 6.0.0-rc.1
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/README.md +5 -1
- package/dist/cms-page/_base.js +1 -10
- package/dist/cms-page/_base.js.map +1 -1
- package/dist/cms-page/middleware.d.ts +4 -2
- package/dist/cms-page/middleware.js +23 -7
- package/dist/cms-page/middleware.js.map +1 -1
- package/dist/cms-page/page.d.ts +2 -2
- package/dist/cms-page/page.js +23 -115
- package/dist/cms-page/page.js.map +1 -1
- package/dist/ope/load-content.d.ts +21 -0
- package/dist/ope/load-content.js +69 -0
- package/dist/ope/load-content.js.map +1 -0
- package/dist/ope/page.js +15 -50
- package/dist/ope/page.js.map +1 -1
- package/dist/ope/tools.d.ts +1 -1
- package/dist/ope/tools.js +7 -7
- package/dist/ope/tools.js.map +1 -1
- package/dist/ope/types.d.ts +7 -5
- package/dist/publish/index.js +1 -1
- package/dist/publish/index.js.map +1 -1
- package/dist/types.d.ts +3 -2
- package/package.json +17 -17
- package/dist/ope/data.d.ts +0 -2
- package/dist/ope/data.js +0 -31
- package/dist/ope/data.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
# Optimizely SaaS CMS - Next.js Integration
|
|
2
|
+
|
|
3
|
+
> [!WARNING]
|
|
4
|
+
> There'll be an update of Optimizely SaaS CMS that is incompatible with all SDK versions prior to 5.1.6. If you don't upgrade, you will see empty pages (main website) and "Component not found" messages (preview).
|
|
5
|
+
|
|
2
6
|
[](./LICENSE)
|
|
3
7
|
|
|
4
8
|
> [!TIP]
|
|
@@ -76,4 +80,4 @@ The package provides the following enhancements for Next.js middleware:
|
|
|
76
80
|
| withEditFallback | `@remkoj/optimizely-cms-nextjs/preview` | Rewrite incoming Optimizely CMS 12 preview / on-page-edit URLs to Optimizely SaaS CMS preview URLs |
|
|
77
81
|
| withLanguagePrefix | `@remkoj/optimizely-cms-nextjs/page` | Handle the redirect of the homepage `/` to the locale that best matches the incoming request, such as `/en`. The locales and their URLs are taken from the second parameter - the ChannelDefinition.
|
|
78
82
|
|
|
79
|
-
If you use both wrappers, the `withEditFallback` wrapper must wrap the `withLanguagePrefix` wrapper, to ensure that the edit mode URL is rewritten before the language prefix is applied.
|
|
83
|
+
If you use both wrappers, the `withEditFallback` wrapper must wrap the `withLanguagePrefix` wrapper, to ensure that the edit mode URL is rewritten before the language prefix is applied.
|
package/dist/cms-page/_base.js
CHANGED
|
@@ -11,16 +11,7 @@ export function getChannelId(client, channel) {
|
|
|
11
11
|
return channel;
|
|
12
12
|
return client.currentOptiCmsSchema == OptiCmsSchema.CMS12
|
|
13
13
|
? channel.id
|
|
14
|
-
:
|
|
15
|
-
}
|
|
16
|
-
function getPrimaryURL(chnl) {
|
|
17
|
-
const dd = chnl.domains.filter((x) => x.isPrimary).at(0) ?? chnl.domains.at(0);
|
|
18
|
-
if (!dd)
|
|
19
|
-
return chnl.getPrimaryDomain();
|
|
20
|
-
const s = dd.name.startsWith('localhost') || dd.name.indexOf('.local') > 0
|
|
21
|
-
? 'http:'
|
|
22
|
-
: 'https:';
|
|
23
|
-
return new URL(`${s}//${dd.name}`);
|
|
14
|
+
: channel.getPrimaryDomain().origin;
|
|
24
15
|
}
|
|
25
16
|
function isString(toTest) {
|
|
26
17
|
return typeof toTest === 'string';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_base.js","sourceRoot":"","sources":["../../src/cms-page/_base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAyB,MAAM,wCAAwC,CAAA;AAK7F,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,4BAAW,CAAA;IACX,oCAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAUD,MAAM,UAAU,YAAY,CAAC,MAAwB,EAAE,OAAoC;IACzF,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAA;IAClB,IAAI,QAAQ,CAAC,OAAO,CAAC;QACnB,OAAO,OAAO,CAAA;IAChB,OAAO,MAAM,CAAC,oBAAoB,IAAI,aAAa,CAAC,KAAK;QACvD,CAAC,CAAC,OAAO,CAAC,EAAE;QACZ,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"_base.js","sourceRoot":"","sources":["../../src/cms-page/_base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAyB,MAAM,wCAAwC,CAAA;AAK7F,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,4BAAW,CAAA;IACX,oCAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAUD,MAAM,UAAU,YAAY,CAAC,MAAwB,EAAE,OAAoC;IACzF,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAA;IAClB,IAAI,QAAQ,CAAC,OAAO,CAAC;QACnB,OAAO,OAAO,CAAA;IAChB,OAAO,MAAM,CAAC,oBAAoB,IAAI,aAAa,CAAC,KAAK;QACvD,CAAC,CAAC,OAAO,CAAC,EAAE;QACZ,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAA;AACvC,CAAC;AAED,SAAS,QAAQ,CAAC,MAAW;IAC3B,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC;AACpC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import 'server-only';
|
|
2
|
-
import { type
|
|
2
|
+
import { type NextProxy } from "next/server.js";
|
|
3
3
|
import { type ChannelDefinition } from "@remkoj/optimizely-graph-client";
|
|
4
4
|
/**
|
|
5
5
|
* Wrap the provided middleware with enforcement of the language code as the first
|
|
@@ -7,6 +7,8 @@ import { type ChannelDefinition } from "@remkoj/optimizely-graph-client";
|
|
|
7
7
|
*
|
|
8
8
|
* @param next The Next.JS Middleware to wrap, will be invoked if there's no redirect needed
|
|
9
9
|
* @param channel The Optimizely CMS Application definition
|
|
10
|
+
* @param debug When set to debug, redirects will be temporary (302) and information will be
|
|
11
|
+
* logged. If omitted, it will determine debug mode based upon the NODE_ENV value.
|
|
10
12
|
* @returns The newly constructed Next.JS Middleware
|
|
11
13
|
*/
|
|
12
|
-
export declare function withLanguagePrefix<T extends
|
|
14
|
+
export declare function withLanguagePrefix<T extends NextProxy>(next: T, channel: ChannelDefinition, enableDebug?: boolean): T;
|
|
@@ -8,9 +8,12 @@ import Negotiator from 'negotiator';
|
|
|
8
8
|
*
|
|
9
9
|
* @param next The Next.JS Middleware to wrap, will be invoked if there's no redirect needed
|
|
10
10
|
* @param channel The Optimizely CMS Application definition
|
|
11
|
+
* @param debug When set to debug, redirects will be temporary (302) and information will be
|
|
12
|
+
* logged. If omitted, it will determine debug mode based upon the NODE_ENV value.
|
|
11
13
|
* @returns The newly constructed Next.JS Middleware
|
|
12
14
|
*/
|
|
13
|
-
export function withLanguagePrefix(next, channel) {
|
|
15
|
+
export function withLanguagePrefix(next, channel, enableDebug) {
|
|
16
|
+
const debug = enableDebug === undefined ? process.env.NODE_ENV === 'development' : enableDebug;
|
|
14
17
|
if (!channel)
|
|
15
18
|
throw new Error("The language prefix handling requires a CMS Channel Definition");
|
|
16
19
|
const defaultLocale = channel.defaultLocale;
|
|
@@ -24,21 +27,34 @@ export function withLanguagePrefix(next, channel) {
|
|
|
24
27
|
}
|
|
25
28
|
const newMiddleware = (request, ...params) => {
|
|
26
29
|
const pathname = request.nextUrl.pathname;
|
|
30
|
+
// Only process non internal routes
|
|
27
31
|
if (pathname.startsWith("/_") || pathname.startsWith("/."))
|
|
28
32
|
return next(request, ...params);
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
33
|
+
// Get the locale slug from the URL
|
|
34
|
+
const pathSlugs = pathname.split('/').filter(x => x);
|
|
35
|
+
const localeSlug = pathSlugs.length >= 1 && slugs.includes(pathSlugs.at(0) ?? '-') ? pathSlugs.at(0) : undefined;
|
|
36
|
+
if (!localeSlug) {
|
|
37
|
+
// We don't have a locale, so we're going to redirect to the best matching
|
|
38
|
+
// locale.
|
|
32
39
|
const locale = getLocale(request);
|
|
33
40
|
const slug = channel.resolveSlug(locale);
|
|
34
|
-
if (
|
|
35
|
-
console.log(`💬 [Middleware] Detected locale missing in ${pathname}, redirecting to /${slug}${pathname}`);
|
|
41
|
+
if (debug)
|
|
42
|
+
console.log(`💬 [Language Prefix Middleware] Detected locale missing in ${pathname}, redirecting to /${slug}${pathname}`);
|
|
36
43
|
const newUrl = request.nextUrl.clone();
|
|
37
44
|
newUrl.pathname = `/${slug}${pathname}`;
|
|
38
45
|
return NextResponse.redirect(newUrl, {
|
|
39
|
-
status:
|
|
46
|
+
status: debug ? 302 : 301
|
|
40
47
|
});
|
|
41
48
|
}
|
|
49
|
+
else {
|
|
50
|
+
// We have a locale, so we're going to make it available to the application
|
|
51
|
+
// using request headers.
|
|
52
|
+
const locale = channel.slugToLocale(localeSlug);
|
|
53
|
+
request.headers.append("x-app-locale", locale ?? channel.defaultLocale);
|
|
54
|
+
request.headers.append("x-app-locale-slug", localeSlug);
|
|
55
|
+
if (debug)
|
|
56
|
+
console.log(`💬 [Language Prefix Middleware] Detected locale ${locale}`);
|
|
57
|
+
}
|
|
42
58
|
return next(request, ...params);
|
|
43
59
|
};
|
|
44
60
|
return newMiddleware;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/cms-page/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/cms-page/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,EAAE,YAAY,EAAoC,MAAM,gBAAgB,CAAA;AAE/E,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACpD,OAAO,UAAU,MAAM,YAAY,CAAA;AAEnC;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAsB,IAAO,EAAE,OAA0B,EAAE,WAAqB;IAChH,MAAM,KAAK,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;IAC/F,IAAI,CAAC,OAAO;QACV,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IAEnF,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;IAEhC,SAAS,SAAS,CAAC,OAAoB;QACrC,MAAM,OAAO,GAA8B,EAAE,CAAA;QAC7C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QACrD,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAA;QACzD,OAAO,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,aAAa,GAAc,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE;QACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;QAE1C,mCAAmC;QACnC,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;YACxD,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;QAElC,mCAAmC;QACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,0EAA0E;YAC1E,UAAU;YACV,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;YACjC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YACxC,IAAI,KAAK;gBACP,OAAO,CAAC,GAAG,CAAC,8DAA8D,QAAQ,qBAAqB,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAA;YAC3H,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;YACtC,MAAM,CAAC,QAAQ,GAAG,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAA;YACvC,OAAO,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACnC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;aAC1B,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,2EAA2E;YAC3E,yBAAyB;YACzB,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;YACxE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;YAExD,IAAI,KAAK;gBACP,OAAO,CAAC,GAAG,CAAC,mDAAoD,MAAO,EAAE,CAAC,CAAA;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAA;IACjC,CAAC,CAAA;IACD,OAAO,aAAkB,CAAA;AAC3B,CAAC"}
|
package/dist/cms-page/page.d.ts
CHANGED
|
@@ -84,7 +84,7 @@ export type CreatePageOptions<LocaleEnum = SystemLocales, TParams extends Record
|
|
|
84
84
|
* @return The path to be retrieved from Router or getContentByPath
|
|
85
85
|
* function
|
|
86
86
|
*/
|
|
87
|
-
propsToCmsPath: (props: DefaultCmsPageProps<TParams, TSearchParams
|
|
87
|
+
propsToCmsPath: (props: DefaultCmsPageProps<TParams, TSearchParams>, channel?: ChannelDefinition) => Promise<string | null>;
|
|
88
88
|
/**
|
|
89
89
|
* Take the props received by the CmsPage from Next.JS and tranform those
|
|
90
90
|
* into a the page variant used by the CMS.
|
|
@@ -94,7 +94,7 @@ export type CreatePageOptions<LocaleEnum = SystemLocales, TParams extends Record
|
|
|
94
94
|
* @return The path to be retrieved from Router or getContentByPath
|
|
95
95
|
* function
|
|
96
96
|
*/
|
|
97
|
-
propsToVariant: (props: DefaultCmsPageProps<TParams, TSearchParams
|
|
97
|
+
propsToVariant: (props: DefaultCmsPageProps<TParams, TSearchParams>, channel?: ChannelDefinition) => Promise<string | null | undefined>;
|
|
98
98
|
/**
|
|
99
99
|
* Take the route from the Routing Service and transform that to the route
|
|
100
100
|
* params used by Next.JS. The default implementation assumes that the CMS
|
package/dist/cms-page/page.js
CHANGED
|
@@ -6,7 +6,7 @@ import { cache } from 'react';
|
|
|
6
6
|
import { RouteResolver, } from '@remkoj/optimizely-graph-client/router';
|
|
7
7
|
import { ifChannelDefinition, } from '@remkoj/optimizely-graph-client/channels';
|
|
8
8
|
// React Support
|
|
9
|
-
import { CmsContent, ServerContext, } from '@remkoj/optimizely-cms-react/rsc';
|
|
9
|
+
import { CmsContent, ServerContext, isNonEmptyString, } from '@remkoj/optimizely-cms-react/rsc';
|
|
10
10
|
// Within package
|
|
11
11
|
import { MetaDataResolver } from '../metadata.js';
|
|
12
12
|
import { urlToPath } from './utils.js';
|
|
@@ -20,20 +20,31 @@ export { SystemLocales } from './_base.js';
|
|
|
20
20
|
const CreatePageOptionDefaults = {
|
|
21
21
|
client: createClient,
|
|
22
22
|
routerFactory: (client) => new RouteResolver(client),
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
async propsToCmsPath(props) {
|
|
24
|
+
const params = await props.params; // Read the parameters
|
|
25
|
+
const slugs = [params.lang, ...(params.path ?? [])] // Build the full set of slugs for the path
|
|
26
|
+
.filter(isNonEmptyString) // Remove empty values
|
|
27
|
+
.filter((x) => !x.startsWith(encodeURIComponent('var:'))) // Remove any variant specification
|
|
28
|
+
.map((x) => decodeURIComponent(x)); // Decode the URI components
|
|
29
|
+
if (slugs.length === 0)
|
|
30
|
+
return '/'; // We're requesting the homepage, so just return that path
|
|
31
|
+
// Build the URL
|
|
32
|
+
const fullPath = !slugs[slugs.length - 1].includes('.') ? '/' + slugs.join('/') + '/' : '/' + slugs.join('/');
|
|
33
|
+
return fullPath;
|
|
34
|
+
},
|
|
35
|
+
async propsToVariant({ params }) {
|
|
25
36
|
const pathSegments = (await params).path;
|
|
26
37
|
const variantPrefix = encodeURIComponent('var:');
|
|
27
38
|
const variantSegment = Array.isArray(pathSegments) ? pathSegments.filter(x => typeof x === 'string' && x.startsWith(variantPrefix)).at(0) : undefined;
|
|
28
39
|
return variantSegment ? variantSegment.substring(variantPrefix.length) : undefined;
|
|
29
40
|
},
|
|
30
|
-
routeToParams
|
|
41
|
+
routeToParams(route) {
|
|
31
42
|
const pathSegments = urlToPath(route.url);
|
|
32
43
|
if (route.variation)
|
|
33
44
|
pathSegments.push(`var:${route.variation}`);
|
|
34
45
|
return { path: pathSegments, lang: route.locale };
|
|
35
46
|
},
|
|
36
|
-
|
|
47
|
+
async paramsToLocale(params, channel) {
|
|
37
48
|
// If there's no channel, just return undefined
|
|
38
49
|
if (!channel)
|
|
39
50
|
return undefined;
|
|
@@ -87,9 +98,9 @@ export function createPage(factory, options) {
|
|
|
87
98
|
const context = await buildContext();
|
|
88
99
|
// Analyze the Next.JS Request props
|
|
89
100
|
const [requestPath, initialLocale, variation] = await Promise.all([
|
|
90
|
-
propsToCmsPath({ params, searchParams }),
|
|
101
|
+
propsToCmsPath({ params, searchParams }, ifChannelDefinition(channel)),
|
|
91
102
|
paramsToLocale(params, ifChannelDefinition(channel)),
|
|
92
|
-
|
|
103
|
+
propsToVariant({ params, searchParams }, ifChannelDefinition(channel)).then(variant => variant || undefined)
|
|
93
104
|
]);
|
|
94
105
|
// Valdiate path
|
|
95
106
|
if (!requestPath)
|
|
@@ -98,7 +109,10 @@ export function createPage(factory, options) {
|
|
|
98
109
|
if (initialLocale)
|
|
99
110
|
context.setLocale(initialLocale);
|
|
100
111
|
// Resolve route
|
|
101
|
-
const
|
|
112
|
+
const pathInfo = await getInfoByPath(context.client, routerFactory, requestPath, channel, variation);
|
|
113
|
+
if (!pathInfo)
|
|
114
|
+
return {};
|
|
115
|
+
const [route, contentLink, contentType, graphLocale] = pathInfo;
|
|
102
116
|
if (!contentLink || !contentType)
|
|
103
117
|
return {};
|
|
104
118
|
// Update context from route
|
|
@@ -111,93 +125,13 @@ export function createPage(factory, options) {
|
|
|
111
125
|
resolvingMetadata,
|
|
112
126
|
]);
|
|
113
127
|
return pageMetadata;
|
|
114
|
-
/*// Get context
|
|
115
|
-
const context = await buildContext()
|
|
116
|
-
const channelId = getChannelId(context.client, channel)
|
|
117
|
-
|
|
118
|
-
// Read variables from request
|
|
119
|
-
const [requestPath, initialLocale] = await Promise.all([
|
|
120
|
-
propsToCmsPath({ params, searchParams }),
|
|
121
|
-
paramsToLocale(params, ifChannelDefinition(channel)),
|
|
122
|
-
])
|
|
123
|
-
if (!requestPath) return {}
|
|
124
|
-
if (initialLocale) context.setLocale(initialLocale)
|
|
125
|
-
|
|
126
|
-
const awaitedParams = await params
|
|
127
|
-
|
|
128
|
-
// Debug output
|
|
129
|
-
if (context.isDebug)
|
|
130
|
-
console.log(
|
|
131
|
-
`⚪ [CmsPage.generateMetadata] Processed Next.JS route: ${JSON.stringify(awaitedParams)} => Optimizely CMS route: ${JSON.stringify({ path: requestPath, siteId: channelId })}`
|
|
132
|
-
)
|
|
133
|
-
|
|
134
|
-
// Resolve the route to a content link
|
|
135
|
-
const routeInfo = await getInfoByPath(
|
|
136
|
-
context.client,
|
|
137
|
-
routerFactory,
|
|
138
|
-
requestPath,
|
|
139
|
-
channel
|
|
140
|
-
)
|
|
141
|
-
if (!routeInfo || !routeInfo[0]) {
|
|
142
|
-
if (context.isDebug)
|
|
143
|
-
console.log('⚪ [CmsPage.generateMetadata] No data received')
|
|
144
|
-
return {}
|
|
145
|
-
}
|
|
146
|
-
const [route, contentLink, contentType, graphLocale] = routeInfo
|
|
147
|
-
if (context.isDebug)
|
|
148
|
-
console.log(
|
|
149
|
-
`⚪ [CmsPage.generateMetadata] Retrieved content info:`,
|
|
150
|
-
route
|
|
151
|
-
)
|
|
152
|
-
|
|
153
|
-
// Update context from route
|
|
154
|
-
context.setLocale(route.locale)
|
|
155
|
-
|
|
156
|
-
// Fetch the metadata based upon the actual content type and resolve parent
|
|
157
|
-
const metaResolver = new MetaDataResolver(context.client)
|
|
158
|
-
const [pageMetadata, baseMetadata] = await Promise.all([
|
|
159
|
-
metaResolver.resolve(factory, contentLink, contentType, graphLocale),
|
|
160
|
-
parent,
|
|
161
|
-
])
|
|
162
|
-
|
|
163
|
-
if (context.isDebug)
|
|
164
|
-
console.log(
|
|
165
|
-
`⚪ [CmsPage.generateMetadata] Component yielded metadata:`,
|
|
166
|
-
pageMetadata
|
|
167
|
-
)
|
|
168
|
-
|
|
169
|
-
// Make sure merging of objects goes correctly
|
|
170
|
-
for (const metaKey of Object.getOwnPropertyNames(
|
|
171
|
-
pageMetadata
|
|
172
|
-
) as (keyof Metadata)[]) {
|
|
173
|
-
if (
|
|
174
|
-
isObject(pageMetadata[metaKey]) &&
|
|
175
|
-
isObject(baseMetadata[metaKey])
|
|
176
|
-
) {
|
|
177
|
-
//@ts-expect-error Silence error due to failed introspection...
|
|
178
|
-
pageMetadata[metaKey] = deepmerge<object>(
|
|
179
|
-
baseMetadata[metaKey],
|
|
180
|
-
pageMetadata[metaKey],
|
|
181
|
-
{ arrayMerge: (target, source) => [...source] }
|
|
182
|
-
)
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
// Not sure, but needed somehow...
|
|
187
|
-
if (
|
|
188
|
-
typeof baseMetadata.metadataBase == 'string' &&
|
|
189
|
-
(baseMetadata.metadataBase as string).length > 1
|
|
190
|
-
) {
|
|
191
|
-
pageMetadata.metadataBase = new URL(baseMetadata.metadataBase)
|
|
192
|
-
}
|
|
193
|
-
return pageMetadata*/
|
|
194
128
|
},
|
|
195
129
|
CmsPage: async ({ params, searchParams }) => {
|
|
196
130
|
// Prepare the context
|
|
197
131
|
const context = await buildContext();
|
|
198
132
|
// Analyze the Next.JS Request props
|
|
199
133
|
const [requestPath, initialLocale, requestVariant] = await Promise.all([
|
|
200
|
-
propsToCmsPath({ params, searchParams }),
|
|
134
|
+
propsToCmsPath({ params, searchParams }, ifChannelDefinition(channel)),
|
|
201
135
|
paramsToLocale(params, ifChannelDefinition(channel)),
|
|
202
136
|
(await propsToVariant({ params, searchParams })) ?? undefined
|
|
203
137
|
]);
|
|
@@ -226,30 +160,4 @@ export function createPage(factory, options) {
|
|
|
226
160
|
};
|
|
227
161
|
return pageDefintion;
|
|
228
162
|
}
|
|
229
|
-
/**
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
* @param param0 The URL parameters
|
|
233
|
-
* @returns The request path as understood by Graph
|
|
234
|
-
*/
|
|
235
|
-
function buildRequestPath({ lang, path, }) {
|
|
236
|
-
const slugs = [];
|
|
237
|
-
if (path)
|
|
238
|
-
slugs.push(...path.filter((x) => x));
|
|
239
|
-
if (lang)
|
|
240
|
-
slugs.unshift(lang);
|
|
241
|
-
if (slugs.length == 0)
|
|
242
|
-
return '/';
|
|
243
|
-
const fullPath = '/' +
|
|
244
|
-
slugs
|
|
245
|
-
.filter((x) => x && x.length > 0 && !x.startsWith(encodeURIComponent('var:')))
|
|
246
|
-
.map((x) => decodeURIComponent(x))
|
|
247
|
-
.join('/');
|
|
248
|
-
if (!slugs[slugs.length - 1].includes('.'))
|
|
249
|
-
return fullPath + '/';
|
|
250
|
-
return fullPath;
|
|
251
|
-
}
|
|
252
|
-
function isObject(toTest) {
|
|
253
|
-
return typeof toTest == 'object' && toTest != null && toTest != undefined;
|
|
254
|
-
}
|
|
255
163
|
//# sourceMappingURL=page.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/cms-page/page.tsx"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/cms-page/page.tsx"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAA;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAY,KAAK,EAAE,MAAM,OAAO,CAAA;AAEvC,4BAA4B;AAC5B,OAAO,EACL,aAAa,GAGd,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAEL,mBAAmB,GACpB,MAAM,0CAA0C,CAAA;AAGjD,gBAAgB;AAChB,OAAO,EACL,UAAU,EACV,aAAa,EACb,gBAAgB,GAGjB,MAAM,kCAAkC,CAAA;AAEzC,iBAAiB;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAkB,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACpF,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAExE,MAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAA;AAC9C,MAAM,iBAAiB,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAA;AAItD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AA0K1C,MAAM,wBAAwB,GAA8B;IAC1D,MAAM,EAAE,YAAY;IACpB,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC;IACpD,KAAK,CAAC,cAAc,CAAC,KAAK;QACxB,MAAM,MAAM,GAAyB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,sBAAsB;QAC/E,MAAM,KAAK,GAAG,CAAE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,2CAA2C;aAC3F,MAAM,CAAC,gBAAgB,CAAC,CAAC,sBAAsB;aAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mCAAmC;aAC5F,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;QAEpE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC,CAAC,0DAA0D;QAE9F,gBAAgB;QAChB,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9G,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE;QAC7B,MAAM,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC,IAAI,CAAA;QACxC,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACrJ,OAAO,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACpF,CAAC;IAED,aAAa,CAAC,KAAK;QACjB,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,KAAK,CAAC,SAAS;YACjB,YAAY,CAAC,IAAI,CAAC,OAAQ,KAAK,CAAC,SAAU,EAAE,CAAC,CAAA;QAC/C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO;QAClC,+CAA+C;QAC/C,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAA;QAE9B,2EAA2E;QAC3E,MAAM,IAAI,GACR,CAAC,MAAM,MAAM,CACd,EAAE,IAAI,CAAA;QACP,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACtD,IAAI,MAAM;YACR,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,OAAO,CAAC,aAAa,CAAA;QAEzE,oFAAoF;QACpF,MAAM,IAAI,GACR,CAAC,MAAM,MAAM,CACd,EAAE,IAAI,CAAA;QACP,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACzD,IAAI,SAAS;YACX,OAAO,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,aAAa,CAAA;QAEjE,6DAA6D;QAC7D,OAAO,OAAO,CAAC,aAAa,CAAA;IAC9B,CAAC;CACF,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAWxB,OAAyB,EACzB,OAAwE;IAExE,oEAAoE;IACpE,MAAM,EACJ,gBAAgB,EAChB,MAAM,EAAE,aAAa,EACrB,OAAO,EACP,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,cAAc,GACf,GAAG;QACF,GAAG,wBAAwB;QAC3B,GAAG,OAAO;KAC8C,CAAA;IAE1D,KAAK,UAAU,YAAY,CACzB,gBAAwB,IAAI;QAE5B,OAAO,IAAI,aAAa,CAAC;YACvB,OAAO;YACP,MAAM,EAAE,MAAM,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;YACjD,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,aAAa;SACtB,CAAoD,CAAA;IACvD,CAAC;IAED,MAAM,aAAa,GAA8C;QAC/D,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAC/B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YACzD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;YACpC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAC/C,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CACtC,SAAS,EACT,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAC1B,IAAI,CACL,CAAA;YACD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/C,CAAC;QAED,gBAAgB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,EAAE;YACtE,sBAAsB;YACtB,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAA;YAEpC,oCAAoC;YACpC,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChE,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBACtE,cAAc,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBACpD,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,IAAI,SAAS,CAAC;aAC7G,CAAC,CAAA;YAEF,gBAAgB;YAChB,IAAI,CAAC,WAAW;gBAAE,OAAO,EAAE,CAAA;YAE3B,uBAAuB;YACvB,IAAI,aAAa;gBAAE,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;YAEnD,gBAAgB;YAChB,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YACrG,IAAI,CAAC,QAAQ;gBACX,OAAO,EAAE,CAAC;YACZ,MAAM,CAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAE,GAAG,QAAQ,CAAA;YACjE,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW;gBAC9B,OAAO,EAAE,CAAA;YAEX,4BAA4B;YAC5B,IAAI,KAAK;gBACP,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAEjC,2EAA2E;YAC3E,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACzD,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACrD,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC;gBACpE,iBAAiB;aAClB,CAAC,CAAA;YAEF,OAAO,YAAY,CAAA;QACrB,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;YAC1C,sBAAsB;YACtB,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAA;YAEpC,oCAAoC;YACpC,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACrE,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBACtE,cAAc,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBACpD,CAAC,MAAM,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,SAAS;aAC9D,CAAC,CAAA;YAEF,IAAI,OAAO,CAAC,OAAO;gBACjB,OAAO,CAAC,GAAG,CACT,wCAAwC,IAAI,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,CAClK,CAAA;YAEH,iFAAiF;YACjF,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,OAAO,QAAQ,EAAE,CAAA;YAExE,+BAA+B;YAC/B,IAAI,aAAa;gBAAE,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;YAEnD,0CAA0C;YAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB;gBACxC,CAAC,CAAC,iBAAiB,CACf,OAAO,CAAC,MAAM,EACd,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,aAAuC,EACvC,cAAc,CACf;gBACH,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAA;YACvF,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CACX,kDAAkD,IAAI,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,GAAG,CAClF,CAAA;gBACD,OAAO,QAAQ,EAAE,CAAA;YACnB,CAAC;YACD,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,GAC/D,UAAU,CAAA;YAEZ,IAAI,WAAW,EAAE,MAAM;gBAAE,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,MAAgB,CAAC,CAAA;YAExE,0BAA0B;YAC1B,OAAO,CACL,KAAC,UAAU,IACT,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,WAAW,IAAI,SAAS,EACtC,GAAG,EAAE,OAAO,GACZ,CACH,CAAA;QACH,CAAC;KACF,CAAA;IAED,OAAO,aAAa,CAAA;AACtB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ContentLinkWithLocale, IOptiGraphClient } from "@remkoj/optimizely-graph-client";
|
|
2
|
+
import type { GetContentByIdMethod, ContentRequest } from "./types.js";
|
|
3
|
+
import { ContentType } from '@remkoj/optimizely-cms-react/rsc';
|
|
4
|
+
export type LoadedContentDetails = {
|
|
5
|
+
/**
|
|
6
|
+
* The reference to the content item
|
|
7
|
+
*/
|
|
8
|
+
contentLink: ContentLinkWithLocale;
|
|
9
|
+
/**
|
|
10
|
+
* The type of the content item
|
|
11
|
+
*/
|
|
12
|
+
contentType?: ContentType;
|
|
13
|
+
/**
|
|
14
|
+
* The data of the content item, which
|
|
15
|
+
* will only be available when a content
|
|
16
|
+
* loading function has been provided.
|
|
17
|
+
*/
|
|
18
|
+
contentItem?: any;
|
|
19
|
+
};
|
|
20
|
+
export declare function loadContent(contentRequest: Omit<ContentRequest, 'token' | 'ctx'>, client: IOptiGraphClient, getContentById?: GetContentByIdMethod): Promise<LoadedContentDetails>;
|
|
21
|
+
export default loadContent;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { localeToGraphLocale } from '@remkoj/optimizely-graph-client/utils';
|
|
2
|
+
import { Utils } from '@remkoj/optimizely-cms-react/rsc';
|
|
3
|
+
import { RouteResolver } from "@remkoj/optimizely-graph-client/router";
|
|
4
|
+
export async function loadContent(contentRequest, client, getContentById) {
|
|
5
|
+
return getContentById ?
|
|
6
|
+
loadContentByLoader(contentRequest, client, getContentById) :
|
|
7
|
+
loadContentWithoutData(contentRequest, client);
|
|
8
|
+
}
|
|
9
|
+
async function loadContentWithoutData(contentRequest, client) {
|
|
10
|
+
const contentLink = {
|
|
11
|
+
key: contentRequest.key,
|
|
12
|
+
changeset: contentRequest.changeset,
|
|
13
|
+
isInline: false,
|
|
14
|
+
variation: contentRequest.variation ? contentRequest.variation.include == "SOME" ? contentRequest.variation.value.join(',') : null : undefined,
|
|
15
|
+
version: contentRequest.version,
|
|
16
|
+
locale: (contentRequest.version ? undefined : Array.isArray(contentRequest.locale) ? contentRequest.locale[0] : contentRequest.locale) ?? undefined
|
|
17
|
+
};
|
|
18
|
+
const router = new RouteResolver(client);
|
|
19
|
+
const info = await router.getContentInfoById(contentLink.key, contentLink.locale, contentLink.version ?? undefined);
|
|
20
|
+
const contentType = info?.contentType;
|
|
21
|
+
if (info) {
|
|
22
|
+
contentLink.version = info.version;
|
|
23
|
+
contentLink.variation = info.variation;
|
|
24
|
+
contentLink.locale = info.locale;
|
|
25
|
+
contentLink.changeset = info.changeset;
|
|
26
|
+
}
|
|
27
|
+
return { contentLink, contentType };
|
|
28
|
+
}
|
|
29
|
+
async function loadContentByLoader(contentRequest, client, getContentById) {
|
|
30
|
+
const contentInfo = await getContentById(client, {
|
|
31
|
+
...contentRequest,
|
|
32
|
+
locale: contentRequest.locale && contentRequest.locale.length > 0
|
|
33
|
+
? localeToGraphLocale(Array.isArray(contentRequest.locale)
|
|
34
|
+
? contentRequest.locale.at(0)
|
|
35
|
+
: contentRequest.locale)
|
|
36
|
+
: undefined,
|
|
37
|
+
changeset: client.getChangeset(),
|
|
38
|
+
}).catch((e) => {
|
|
39
|
+
console.warn('🟠 [OnPageEdit][loadContent] getContentById for ' +
|
|
40
|
+
JSON.stringify(contentRequest) +
|
|
41
|
+
' returned an error', e);
|
|
42
|
+
return undefined;
|
|
43
|
+
});
|
|
44
|
+
const contentLink = {
|
|
45
|
+
key: contentRequest.key,
|
|
46
|
+
changeset: contentRequest.changeset,
|
|
47
|
+
isInline: false,
|
|
48
|
+
variation: contentRequest.variation ? contentRequest.variation.include == "SOME" ? contentRequest.variation.value.join(',') : null : undefined,
|
|
49
|
+
version: contentRequest.version,
|
|
50
|
+
locale: (contentRequest.version ? undefined : Array.isArray(contentRequest.locale) ? contentRequest.locale[0] : contentRequest.locale) ?? undefined
|
|
51
|
+
};
|
|
52
|
+
if (contentInfo && (contentInfo?.content?.total ?? 0) > 1) {
|
|
53
|
+
console.warn('🟠 [OnPageEdit][loadContent] getContentById for ' +
|
|
54
|
+
JSON.stringify(contentRequest) +
|
|
55
|
+
' yielded more then one item, picking first matching');
|
|
56
|
+
}
|
|
57
|
+
const contentItem = (Array.isArray(contentInfo?.content?.items)
|
|
58
|
+
? contentInfo?.content?.items[0]
|
|
59
|
+
: contentInfo?.content?.items) ?? undefined;
|
|
60
|
+
const contentType = contentItem?._metadata?.types ? Utils.normalizeContentType(contentItem?._metadata.types) : undefined;
|
|
61
|
+
if (contentItem) {
|
|
62
|
+
contentLink.key = contentItem._metadata.key;
|
|
63
|
+
contentLink.locale = contentItem._metadata.locale;
|
|
64
|
+
contentLink.version = contentItem._metadata.version;
|
|
65
|
+
}
|
|
66
|
+
return { contentItem, contentLink, contentType };
|
|
67
|
+
}
|
|
68
|
+
export default loadContent;
|
|
69
|
+
//# sourceMappingURL=load-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-content.js","sourceRoot":"","sources":["../../src/ope/load-content.ts"],"names":[],"mappings":"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"}
|
package/dist/ope/page.js
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import 'server-only';
|
|
3
|
-
import { contentLinkToString,
|
|
4
|
-
import { ServerContext,
|
|
3
|
+
import { contentLinkToString, } from '@remkoj/optimizely-graph-client/utils';
|
|
4
|
+
import { ServerContext, CmsContent, OptimizelyComposition, isNode, } from '@remkoj/optimizely-cms-react/rsc';
|
|
5
5
|
import { notFound } from 'next/navigation.js';
|
|
6
6
|
import OnPageEdit from '../components/on-page-edit.js';
|
|
7
7
|
import { createAuthorizedClient } from '../client.js';
|
|
8
|
-
import React from 'react';
|
|
9
8
|
import Script from 'next/script.js';
|
|
10
|
-
import { getContentById } from './data.js';
|
|
11
9
|
import { getContentRequest, isValidRequest } from './tools.js';
|
|
10
|
+
import loadContent from './load-content.js';
|
|
11
|
+
const EmptyPageLayout = ({ children }) => _jsx(_Fragment, { children: children });
|
|
12
12
|
const defaultOptions = {
|
|
13
13
|
refreshNotice: () => _jsx(_Fragment, {}),
|
|
14
|
-
layout:
|
|
15
|
-
loader: getContentById,
|
|
14
|
+
layout: EmptyPageLayout,
|
|
16
15
|
clientFactory: (token) => createAuthorizedClient(token),
|
|
17
16
|
communicationInjectorPath: '/util/javascript/communicationinjector.js',
|
|
18
17
|
contentResolver: getContentRequest,
|
|
@@ -58,67 +57,33 @@ export function createEditPageComponent(factory, options) {
|
|
|
58
57
|
});
|
|
59
58
|
// Get information from the Request URI
|
|
60
59
|
if (context.isDebug) {
|
|
61
|
-
console.log('⚪ [OnPageEdit] Request context:', ctx);
|
|
62
|
-
console.log('⚪ [OnPageEdit] Request token:', token);
|
|
63
60
|
console.log('⚪ [OnPageEdit] Requested content:', JSON.stringify(contentRequest));
|
|
64
61
|
}
|
|
65
62
|
try {
|
|
66
|
-
const
|
|
67
|
-
...contentRequest,
|
|
68
|
-
locale: contentRequest.locale && contentRequest.locale.length > 0
|
|
69
|
-
? localeToGraphLocale(Array.isArray(contentRequest.locale)
|
|
70
|
-
? contentRequest.locale.at(0)
|
|
71
|
-
: contentRequest.locale)
|
|
72
|
-
: undefined,
|
|
73
|
-
changeset: client.getChangeset(),
|
|
74
|
-
});
|
|
75
|
-
if ((contentInfo?.content?.total ?? 0) > 1) {
|
|
76
|
-
console.warn('🟠 [OnPageEdit] Content request ' +
|
|
77
|
-
JSON.stringify(contentRequest) +
|
|
78
|
-
' yielded more then one item, picking first matching');
|
|
79
|
-
}
|
|
80
|
-
const contentItem = (Array.isArray(contentInfo?.content?.items)
|
|
81
|
-
? contentInfo?.content?.items[0]
|
|
82
|
-
: contentInfo?.content?.items) ?? undefined;
|
|
83
|
-
const contentType = Utils.normalizeContentType(contentItem?._metadata.types);
|
|
84
|
-
// Return a 404 if the content item or type could not be resolved
|
|
85
|
-
if (!contentItem) {
|
|
86
|
-
console.warn(`🟠 [OnPageEdit] The content item for ${JSON.stringify(contentRequest)} could not be loaded from Optimizely Graph`);
|
|
87
|
-
return notFound();
|
|
88
|
-
}
|
|
89
|
-
if (!contentType) {
|
|
90
|
-
console.warn(`🟠 [OnPageEdit] The content item for ${JSON.stringify(contentRequest)} did not contain content type information`);
|
|
91
|
-
return notFound();
|
|
92
|
-
}
|
|
93
|
-
const contentLink = {
|
|
94
|
-
key: contentItem._metadata.key,
|
|
95
|
-
locale: contentItem._metadata.locale,
|
|
96
|
-
version: contentItem._metadata.version,
|
|
97
|
-
};
|
|
63
|
+
const { contentLink, contentItem, contentType } = await loadContent(contentRequest, client, getContentById);
|
|
98
64
|
if (context.isDebug) {
|
|
99
|
-
console.log('⚪ [OnPageEdit]
|
|
100
|
-
|
|
101
|
-
type: (contentItem.contentType ?? []).join('/'),
|
|
102
|
-
}));
|
|
65
|
+
console.log('⚪ [OnPageEdit] Identified content:', JSON.stringify(contentLink));
|
|
66
|
+
console.log('⚪ [OnPageEdit] Content type:', contentType);
|
|
103
67
|
}
|
|
104
68
|
// Store the editable content so it can be tested
|
|
105
69
|
context.setEditableContentId(contentLink);
|
|
106
70
|
if (contentLink.locale)
|
|
107
71
|
context.setLocale(contentLink.locale);
|
|
108
72
|
// Determine rendering flow controls
|
|
109
|
-
const isPage = contentType
|
|
110
|
-
const isSection = contentType
|
|
111
|
-
const sectionData = isSection &&
|
|
73
|
+
const isPage = contentType?.some(x => x?.toLowerCase().replace(/^_/, '') === 'page') ?? false;
|
|
74
|
+
const isSection = contentType?.some(x => x?.toLowerCase().replace(/^_/, '') === 'section') ?? false;
|
|
75
|
+
const sectionData = isSection && isNode(contentItem?.composition) ? contentItem.composition : undefined;
|
|
112
76
|
if (sectionData) {
|
|
113
|
-
|
|
77
|
+
if (contentItem?.composition)
|
|
78
|
+
delete contentItem.composition;
|
|
114
79
|
sectionData.component = contentItem;
|
|
115
80
|
context.setEditableContentIsExperience(true);
|
|
116
81
|
}
|
|
117
82
|
// Prepare communication injector
|
|
118
83
|
const injectorUrl = new URL(communicationInjectorPath, client.siteInfo.cmsURL).href;
|
|
119
84
|
// Render edit page
|
|
120
|
-
const Layout = isPage ? PageLayout :
|
|
121
|
-
const output = (_jsxs(_Fragment, { children: [_jsx(Script, { src: injectorUrl, strategy: "afterInteractive" }), _jsxs(Layout, { locale:
|
|
85
|
+
const Layout = isPage ? PageLayout : EmptyPageLayout;
|
|
86
|
+
const output = (_jsxs(_Fragment, { children: [_jsx(Script, { src: injectorUrl, strategy: "afterInteractive" }), _jsxs(Layout, { locale: contentLink?.locale ?? '', ctx: context, children: [_jsx(OnPageEdit, { refreshTimeout: refreshTimeout, children: _jsx(RefreshNotice, {}) }), sectionData ?
|
|
122
87
|
_jsx(OptimizelyComposition, { node: sectionData, ctx: context }) :
|
|
123
88
|
_jsx(CmsContent, { contentType: contentType, contentLink: contentLink, fragmentData: contentItem, ctx: context })] }), context.isDebug && (_jsxs("div", { className: "optly-contentLink", children: ["ContentItem:", ' ', contentLink
|
|
124
89
|
? contentLinkToString(contentLink)
|
package/dist/ope/page.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/ope/page.tsx"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/ope/page.tsx"],"names":[],"mappings":"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"}
|
package/dist/ope/tools.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AwaitedEditPageProps, ValidatedEditPageProps, ContentRequest } from './types.js';
|
|
2
2
|
export declare function isValidRequest(toTest: AwaitedEditPageProps, throwOnInvalid?: boolean, isDevelopment?: boolean): toTest is ValidatedEditPageProps;
|
|
3
|
-
export declare function getContentRequest({ params: { path, lang }, searchParams
|
|
3
|
+
export declare function getContentRequest({ params: { path, lang }, searchParams }: ValidatedEditPageProps): ContentRequest | undefined;
|
|
4
4
|
export declare function readValue<T extends string | undefined>(variableName: string, defaultValue?: T): T extends string ? string : string | undefined;
|
|
5
5
|
export declare function readValueAsInt<T extends number | undefined>(variableName: string, defaultValue?: T): T extends number ? number : number | undefined;
|
package/dist/ope/tools.js
CHANGED
|
@@ -49,21 +49,21 @@ export function isValidRequest(toTest, throwOnInvalid = false, isDevelopment = f
|
|
|
49
49
|
return true;
|
|
50
50
|
}
|
|
51
51
|
// Helper function to read the ContentID & WorkID
|
|
52
|
-
export function getContentRequest({ params: { path, lang }, searchParams
|
|
52
|
+
export function getContentRequest({ params: { path, lang }, searchParams }) {
|
|
53
53
|
try {
|
|
54
54
|
// First try to use the new style parameters
|
|
55
55
|
if (searchParams.key) {
|
|
56
56
|
return {
|
|
57
|
-
token,
|
|
57
|
+
token: searchParams.preview_token,
|
|
58
58
|
ctx: searchParams.ctx,
|
|
59
59
|
key: searchParams.key,
|
|
60
|
-
locale: searchParams.loc,
|
|
60
|
+
locale: searchParams.ver ? undefined : searchParams.loc,
|
|
61
61
|
version: searchParams.ver,
|
|
62
62
|
path: searchParams.path ?? null
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
65
|
// Then fall back to old-mode URL parsing for developer URLs
|
|
66
|
-
if (
|
|
66
|
+
if (searchParams.preview_token == AuthMode.HMAC || searchParams.preview_token == AuthMode.Basic) {
|
|
67
67
|
console.error("🦺 [OnPageEdit] Edit mode requested with developer tokens, falling back to URL parsing to determine content");
|
|
68
68
|
// Determine the contentPath
|
|
69
69
|
const fullPath = Array.isArray(path) ? path.map(p => decodeURIComponent(p)).join('/') : decodeURIComponent(path ?? '');
|
|
@@ -73,7 +73,7 @@ export function getContentRequest({ params: { path, lang }, searchParams: { prev
|
|
|
73
73
|
const firstSlug = contentPath.split('/')[0];
|
|
74
74
|
const contentLocale = firstSlug?.length == 2 || firstSlug?.length == 5 ? firstSlug : lang;
|
|
75
75
|
return {
|
|
76
|
-
token,
|
|
76
|
+
token: searchParams.preview_token,
|
|
77
77
|
ctx: searchParams.epieditmode?.toLowerCase() == 'true' ? 'edit' : 'preview',
|
|
78
78
|
key: contentKey,
|
|
79
79
|
version: contentVersion,
|
|
@@ -82,9 +82,9 @@ export function getContentRequest({ params: { path, lang }, searchParams: { prev
|
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
84
|
// Finally parse the token, this is a last-restort, as it might change at any given time
|
|
85
|
-
const tokenInfo = JSON.parse(atob(
|
|
85
|
+
const tokenInfo = JSON.parse(atob(searchParams.preview_token.split('.')[1]));
|
|
86
86
|
return {
|
|
87
|
-
token,
|
|
87
|
+
token: searchParams.preview_token,
|
|
88
88
|
ctx: searchParams.epieditmode?.toLowerCase() == 'true' ? 'edit' : 'preview',
|
|
89
89
|
key: tokenInfo.key,
|
|
90
90
|
version: tokenInfo.ver,
|
package/dist/ope/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/ope/tools.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/ope/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/ope/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type ComponentType, type PropsWithChildren, type JSX } from 'react';
|
|
2
2
|
import { type IOptiGraphClient } from '@remkoj/optimizely-graph-client';
|
|
3
3
|
import { type GraphQLClient } from 'graphql-request';
|
|
4
|
-
import { type ContentQueryProps } from '@remkoj/optimizely-cms-react/rsc';
|
|
4
|
+
import { GenericContext, type ContentQueryProps } from '@remkoj/optimizely-cms-react/rsc';
|
|
5
5
|
export type ContentRequest = (Omit<ContentQueryProps<string>, 'path'> & {
|
|
6
6
|
path: string | null;
|
|
7
7
|
token: string;
|
|
@@ -53,6 +53,10 @@ export type ValidatedEditPageProps = {
|
|
|
53
53
|
readonly epieditmode: 'true' | 'false';
|
|
54
54
|
});
|
|
55
55
|
};
|
|
56
|
+
export type EditViewPageLayout = ComponentType<PropsWithChildren<{
|
|
57
|
+
locale: string;
|
|
58
|
+
ctx: GenericContext;
|
|
59
|
+
}>>;
|
|
56
60
|
export type EditViewOptions<LocaleType = string> = {
|
|
57
61
|
/**
|
|
58
62
|
* The message to show to the editor when awaiting the data to be updated
|
|
@@ -62,15 +66,13 @@ export type EditViewOptions<LocaleType = string> = {
|
|
|
62
66
|
/**
|
|
63
67
|
* The layout to use when rendering a page component
|
|
64
68
|
*/
|
|
65
|
-
layout:
|
|
66
|
-
locale: string;
|
|
67
|
-
}>>;
|
|
69
|
+
layout: EditViewPageLayout;
|
|
68
70
|
/**
|
|
69
71
|
* The fourth step of the handling of a Preview/On-Page-Edit view,
|
|
70
72
|
* which actually loads the data of content to be shown to the
|
|
71
73
|
* editor.
|
|
72
74
|
*/
|
|
73
|
-
loader
|
|
75
|
+
loader?: GetContentByIdMethod<LocaleType>;
|
|
74
76
|
/**
|
|
75
77
|
* The third step of the handling of a Preview/On-Page-Edit view,
|
|
76
78
|
* which gets the Optimizely Graph client for the token/auth method
|
package/dist/publish/index.js
CHANGED
|
@@ -69,7 +69,7 @@ export function createPublishApi(options) {
|
|
|
69
69
|
});
|
|
70
70
|
});
|
|
71
71
|
// Publish the tags te published
|
|
72
|
-
targetTags.forEach(tag => revalidateTag(tag));
|
|
72
|
+
targetTags.forEach(tag => revalidateTag(tag, 'max'));
|
|
73
73
|
// Build the outcome
|
|
74
74
|
return { revalidated: { paths: publishedPathAndScopes, tags: targetTags }, optimized };
|
|
75
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/publish/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/publish/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EAA4D,aAAa,EAAc,MAAM,iCAAiC,CAAA;AACrI,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAErD,OAAO,EAAoB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAyH/D,MAAM,kBAAkB,GAAsB;IAC5C,KAAK,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,qBAAqB,CAAC;IAC9D,eAAe,EAAE,EAAE;IACnB,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACjC,IAAI,EAAE,EAAE;IACR,eAAe,EAAE,KAAK;IACtB,MAAM,EAAE,sBAAsB;IAC9B,MAAM,EAAE,EAAE;IACV,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,WAAW;IAC1F,oBAAoB,EAAE,CAAC,cAAsB,EAAE,EAAE,CAAC,cAAc,IAAI,SAAS,IAAI,cAAc,IAAI,SAAS;IAC5G,oBAAoB,EAAE,CAAC,EAAE,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9B,kEAAkE;QAClE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,CAAC;YACT,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAElD,qDAAqD;QACrD,IAAI,GAAG,IAAI,MAAM;YACf,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;QAClE,OAAO,SAAS,CAAA;IAClB,CAAC;CACF,CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAoC;IACnE,MAAM,EACJ,KAAK,EACL,eAAe,EACf,eAAe,EACf,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrB,cAAc,EACd,IAAI,EACJ,MAAM,EACN,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACrB,GAAsB;QACrB,GAAG,kBAAkB;QACrB,GAAG,OAAO;KACX,CAAA;IAED,SAAS,gBAAgB,CAAC,MAAwB;QAChD,OAAO,OAAO,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC7K,CAAC;IAED,SAAS,WAAW,CAAC,IAAwC;QAC3D,IAAI,OAAO,IAAI,IAAI,UAAU;YAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAA;QACnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACrB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,SAAS,SAAS,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED,SAAS,UAAU,CAAC,WAAqB,EAAE,UAAsD,EAAE,YAAqB,KAAK,EAAE,gBAAiC,MAAM,EAAE,UAA2B,aAAa;QAC9M,MAAM,sBAAsB,GAA6C,EAAE,CAAA;QAE3E,wCAAwC;QACxC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAA;YACxD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAC3B,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;YAC9C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAA;YACxD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAC3B,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;YAC9C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAC;QAEH,gCAAgC;QAChC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QAEpD,oBAAoB;QACpB,OAAO,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,CAAA;IACxF,CAAC;IAED,SAAS,UAAU,CAAC,QAAyB;QAC3C,IAAI,KAAK,GAA2C,EAAE,CAAA;QACtD,QAAQ,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,KAAK,KAAK;gBACR,KAAK,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;qBAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;qBACvC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAA2C,CAAA;gBAC3D,MAAK;YACP,KAAK,MAAM;gBACT,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;oBACtC,IAAI,oBAAoB,CAAC,MAAM,CAAC;wBAC9B,OAAO,oBAAoB,CAAC,EAAE,CAAC,CAAA;oBACjC,OAAO,SAAS,CAAA;gBAClB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAA2C,CAAA;gBAC3D,MAAM;YACR;gBACE,yFAAyF;gBACzF,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACpE,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IACjG,CAAC;IAED,MAAM,cAAc,GAAsB,KAAK,EAAE,GAAG,EAAE,EAAE;QACtD,uBAAuB;QACvB,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACpF,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAA;QACjD,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAA;YACzF,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACxE,CAAC;QACD,IAAI,CAAC,YAAY,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;YAClD,OAAO,CAAC,KAAK,CAAC,wDAAwD,EAAE,YAAY,CAAC,CAAA;YACrF,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACxE,CAAC;QAED,IAAI,CAAC;YACH,uBAAuB;YACvB,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAuC,CAAA;YACjG,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAA;YAExD,2CAA2C;YAC3C,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAA;YAClD,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,WAAW,CAAC,CAAA;YAE3D,yDAAyD;YACzD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAA;gBAC3E,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACpD,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAA;gBAC5E,OAAO,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACxC,CAAC;YAED,8CAA8C;YAC9C,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,qDAAqD,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;gBACpF,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;YACtF,CAAC;YAED,mDAAmD;YACnD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACpD,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAA;gBAC5E,OAAO,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACxC,CAAC;YAED,gDAAgD;YAChD,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;YAC1C,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAA;YAEpF,kCAAkC;YAClC,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;YACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACjI,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBACxC,IAAI,MAAM,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;oBAChC,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAG,MAAM,CAAC,MAAgB,EAAE,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;oBACzH,OAAO,SAAS,CAAA;gBAClB,CAAC;gBACD,OAAO,MAAM,CAAC,KAAK,EAAE,IAAI,CAAA;YAC3B,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAkB,CAAA;YAClC,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAA;YAEtF,oBAAoB;YACpB,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAA;YAC5E,OAAO,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACxC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAG,CAAW,EAAE,OAAO,IAAI,CAAC,CAAC,CAAA;YAC5F,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,CAAW,EAAE,OAAO,IAAI,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACjG,CAAC;IACH,CAAC,CAAA;IAED,OAAO,cAAc,CAAA;AACvB,CAAC;AAED,SAAS,eAAe,CAAC,GAAgB;IACvC,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACvC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;QACrC,SAAS,CAAA;AACb,CAAC;AAED,eAAe,gBAAgB,CAAA"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { IOptiGraphClient } from "@remkoj/optimizely-graph-client";
|
|
2
|
-
import type { CmsComponent
|
|
2
|
+
import type { CmsComponent } from "@remkoj/optimizely-cms-react";
|
|
3
|
+
import type { ContentLink } from "@remkoj/optimizely-graph-client";
|
|
3
4
|
import type { Metadata } from 'next';
|
|
4
|
-
export type OptimizelyNextPage<T = {}> = CmsComponent<T> & {
|
|
5
|
+
export type OptimizelyNextPage<T = {}, L extends Record<string, unknown> = Record<string, unknown>> = CmsComponent<T, L> & {
|
|
5
6
|
getMetaData?: (contentLink: ContentLink, locale: string | null | undefined, client: IOptiGraphClient) => Promise<Metadata>;
|
|
6
7
|
};
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@remkoj/optimizely-cms-nextjs",
|
|
3
3
|
"description": "Next.JS integration for Optimizely SaaS CMS",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
|
-
"version": "6.0.0-
|
|
5
|
+
"version": "6.0.0-rc.1",
|
|
6
6
|
"repository": "https://github.com/remkoj/optimizely-dxp-clients.git",
|
|
7
7
|
"author": "Remko Jantzen <693172+remkoj@users.noreply.github.com>",
|
|
8
8
|
"homepage": "https://github.com/remkoj/optimizely-dxp-clients",
|
|
@@ -44,31 +44,31 @@
|
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@remkoj/optimizely-cms-react": "6.0.0-
|
|
48
|
-
"@remkoj/optimizely-graph-client": "6.0.0-
|
|
47
|
+
"@remkoj/optimizely-cms-react": "6.0.0-rc.1",
|
|
48
|
+
"@remkoj/optimizely-graph-client": "6.0.0-rc.1",
|
|
49
49
|
"@types/negotiator": "^0.6.4",
|
|
50
|
-
"@types/node": "^22.
|
|
51
|
-
"@types/react": "^19.2.
|
|
52
|
-
"@types/react-dom": "19.2.
|
|
53
|
-
"next": "^
|
|
50
|
+
"@types/node": "^22.19.15",
|
|
51
|
+
"@types/react": "^19.2.14",
|
|
52
|
+
"@types/react-dom": "19.2.3",
|
|
53
|
+
"next": "^16.2.1",
|
|
54
54
|
"prop-types": "^15.8.1",
|
|
55
|
-
"react": "^19.2.
|
|
56
|
-
"react-dom": "^19.2.
|
|
55
|
+
"react": "^19.2.4",
|
|
56
|
+
"react-dom": "^19.2.4",
|
|
57
57
|
"scheduler": "^0.27.0",
|
|
58
58
|
"typescript": "^5.9.3"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@formatjs/intl-localematcher": "^0.
|
|
62
|
-
"@remkoj/optimizely-cms-react": "
|
|
63
|
-
"@remkoj/optimizely-graph-client": "
|
|
61
|
+
"@formatjs/intl-localematcher": "^0.8.2",
|
|
62
|
+
"@remkoj/optimizely-cms-react": "6.0.0-rc.1",
|
|
63
|
+
"@remkoj/optimizely-graph-client": "6.0.0-rc.1",
|
|
64
64
|
"deepmerge": "^4.3.1",
|
|
65
|
-
"entities": "^
|
|
66
|
-
"graphql": "^16.
|
|
67
|
-
"graphql-request": "^7.
|
|
65
|
+
"entities": "^8.0.0",
|
|
66
|
+
"graphql": "^16.13.1",
|
|
67
|
+
"graphql-request": "^7.4.0",
|
|
68
68
|
"negotiator": "^1.0.0"
|
|
69
69
|
},
|
|
70
70
|
"peerDependencies": {
|
|
71
|
-
"next": "^
|
|
71
|
+
"next": "^16",
|
|
72
72
|
"react": "^19",
|
|
73
73
|
"react-dom": "^19"
|
|
74
74
|
},
|
|
@@ -78,5 +78,5 @@
|
|
|
78
78
|
"watch": "yarn tsc --watch",
|
|
79
79
|
"recompile": "yarn tsc --build --clean && yarn tsc --build --force"
|
|
80
80
|
},
|
|
81
|
-
"stableVersion": "5.
|
|
81
|
+
"stableVersion": "5.2.0"
|
|
82
82
|
}
|
package/dist/ope/data.d.ts
DELETED
package/dist/ope/data.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { gql } from 'graphql-request';
|
|
2
|
-
export const getContentById = async (client, variables) => {
|
|
3
|
-
return await client.request(gqlQuery, variables);
|
|
4
|
-
};
|
|
5
|
-
const gqlQuery = gql `query getContentByIdBase($key: String!, $version: String, $locale: [Locales!], $path: String, $domain: String) {
|
|
6
|
-
content: _Content(
|
|
7
|
-
where: {
|
|
8
|
-
_or: [
|
|
9
|
-
{ _metadata: { key: { eq: $key }, version: { eq: $version } } }
|
|
10
|
-
{ _metadata: { url: { hierarchical: { eq: $path }, base: { eq: $domain } }, version: { eq: $version } } }
|
|
11
|
-
]
|
|
12
|
-
}
|
|
13
|
-
locale: $locale
|
|
14
|
-
variation: {include: ALL}
|
|
15
|
-
) {
|
|
16
|
-
total
|
|
17
|
-
items {
|
|
18
|
-
_metadata {
|
|
19
|
-
key
|
|
20
|
-
locale
|
|
21
|
-
types
|
|
22
|
-
displayName
|
|
23
|
-
version
|
|
24
|
-
changeset
|
|
25
|
-
variation
|
|
26
|
-
}
|
|
27
|
-
_type: __typename
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}`;
|
|
31
|
-
//# sourceMappingURL=data.js.map
|
package/dist/ope/data.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/ope/data.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAEzD,MAAM,CAAC,MAAM,cAAc,GAAyB,KAAK,EAAuB,MAAqB,EAAE,SAAwC,EAAE,EAAE;IACjJ,OAAO,MAAM,MAAM,CAAC,OAAO,CAAoD,QAAQ,EAAE,SAAS,CAAC,CAAA;AACrG,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;EAyBlB,CAAA"}
|