@remkoj/optimizely-cms-nextjs 2.0.4 → 3.0.0

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/client.js CHANGED
@@ -1,17 +1,23 @@
1
1
  import 'server-only';
2
- import React from 'react';
3
- import createBaseClient from '@remkoj/optimizely-graph-client';
4
- export const getServerClient = React.cache(() => {
2
+ import createBaseClient, { AuthMode } from '@remkoj/optimizely-graph-client';
3
+ export const getServerClient = () => {
5
4
  const client = createBaseClient();
6
5
  if (client.debug)
7
6
  console.log('⚪ [ContentGraph Shared Client] Created new Optimizely Graph client');
8
7
  return client;
9
- });
8
+ };
10
9
  export const getAuthorizedServerClient = (token) => {
11
10
  const client = createBaseClient();
12
11
  if (client.debug)
13
12
  console.log('⚪ [ContentGraph Shared Client] Created new Optimizely Graph client with authentication details');
14
- client.updateAuthentication(token);
13
+ if (typeof (token) == 'string' && token.length > 0) {
14
+ if (token == client.siteInfo.publishToken) {
15
+ console.warn(`🔐 [ContentGraph Shared Client] Allowed authenticated access by publish token`);
16
+ client.updateAuthentication(AuthMode.HMAC);
17
+ }
18
+ else
19
+ client.updateAuthentication(token);
20
+ }
15
21
  if (client.debug)
16
22
  console.log(`🟡 [ContentGraph Shared Client] Updated authentication, current mode: ${client.currentAuthMode}`);
17
23
  return client;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,gBAA2C,MAAM,iCAAiC,CAAA;AAEzF,MAAM,CAAC,MAAM,eAAe,GAA4B,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;IACrE,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;IACjC,IAAI,MAAM,CAAC,KAAK;QACZ,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAA;IACrF,OAAO,MAAM,CAAA;AACjB,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAyC,CAAC,KAAK,EAAE,EAAE;IACrF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;IACjC,IAAI,MAAM,CAAC,KAAK;QACZ,OAAO,CAAC,GAAG,CAAC,gGAAgG,CAAC,CAAA;IACjH,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,MAAM,CAAC,KAAK;QACZ,OAAO,CAAC,GAAG,CAAC,yEAA0E,MAAM,CAAC,eAAgB,EAAE,CAAC,CAAA;IACpH,OAAO,MAAM,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAA;AAC3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,yBAAyB,CAAA;AAC/D,eAAe,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,gBAAgB,EAAE,EAAyB,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAEnG,MAAM,CAAC,MAAM,eAAe,GAA4B,GAAG,EAAE;IACzD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;IACjC,IAAI,MAAM,CAAC,KAAK;QACZ,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAA;IACrF,OAAO,MAAM,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAyC,CAAC,KAAK,EAAE,EAAE;IACrF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;IACjC,IAAI,MAAM,CAAC,KAAK;QACZ,OAAO,CAAC,GAAG,CAAC,gGAAgG,CAAC,CAAA;IACjH,IAAI,OAAM,CAAC,KAAK,CAAC,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,IAAI,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAA;YAC7F,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC9C,CAAC;;YACG,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IACD,IAAI,MAAM,CAAC,KAAK;QACZ,OAAO,CAAC,GAAG,CAAC,yEAA0E,MAAM,CAAC,eAAgB,EAAE,CAAC,CAAA;IACpH,OAAO,MAAM,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAA;AAC3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,yBAAyB,CAAA;AAC/D,eAAe,eAAe,EAAE,CAAA"}
@@ -1,7 +1,6 @@
1
- import { Utils } from "@remkoj/optimizely-cms-react";
2
1
  import { getMetaDataByPath as getMetaDataByPathBase } from './data.js';
3
2
  import { getServerClient } from "../client.js";
4
- import { isDebug } from '@remkoj/optimizely-cms-react/rsc';
3
+ import { Utils, isDebug } from '@remkoj/optimizely-cms-react/rsc';
5
4
  const defaultCreateLayoutOptions = {
6
5
  defaultLocale: null,
7
6
  getMetaDataByPath: getMetaDataByPathBase,
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/cms-page/layout.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/cms-page/layout.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import 'server-only';
2
2
  import type { Metadata, ResolvingMetadata } from 'next';
3
- import { type Route, type ClientFactory, type ChannelDefinition } from '@remkoj/optimizely-graph-client';
3
+ import { type IRouteResolver, type Route } from '@remkoj/optimizely-graph-client/router';
4
+ import { type ChannelDefinition } from '@remkoj/optimizely-graph-client/channels';
5
+ import { type ClientFactory, type IOptiGraphClient } from '@remkoj/optimizely-graph-client/client';
4
6
  import { type ComponentFactory } from '@remkoj/optimizely-cms-react/rsc';
5
7
  import { type GetContentByPathMethod } from './data.js';
6
8
  export type DefaultCmsPageParams = {
7
9
  path?: string[];
8
- lang?: string;
9
10
  };
10
11
  export type DefaultCmsPageSearchParams = {};
11
12
  export type DefaultCmsPageProps<TParams extends Record<string, string | Array<string> | undefined> = DefaultCmsPageParams, TSearchParams extends Record<string, string | Array<string> | undefined> = DefaultCmsPageSearchParams> = {
@@ -13,8 +14,28 @@ export type DefaultCmsPageProps<TParams extends Record<string, string | Array<st
13
14
  searchParams: TSearchParams;
14
15
  };
15
16
  export type OptiCmsNextJsPage<TParams extends Record<string, string | Array<string> | undefined> = DefaultCmsPageParams, TSearchParams extends Record<string, string | Array<string> | undefined> = DefaultCmsPageSearchParams> = {
17
+ /**
18
+ * Default implementation for the `generateStaticParams` export of a
19
+ * Next.JS Page.
20
+ *
21
+ * @returns The list of routes that should be pre-rendered by Next.JS
22
+ */
16
23
  generateStaticParams: () => Promise<TParams[]>;
24
+ /**
25
+ * Default implementation for the `generateMetadata` export, which builds
26
+ * the metadata for the given route within the Next.JS app.
27
+ *
28
+ * @param props The properties of the page
29
+ * @param resolving The metadata that is currently resolving
30
+ * @returns Updated metadat
31
+ */
17
32
  generateMetadata: (props: DefaultCmsPageProps<TParams, TSearchParams>, resolving: ResolvingMetadata) => Promise<Metadata>;
33
+ /**
34
+ * The actual component that performs the page rendering
35
+ *
36
+ * @param props The properties of the page
37
+ * @returns The component to render the page
38
+ */
18
39
  CmsPage: (props: DefaultCmsPageProps<TParams, TSearchParams>) => Promise<JSX.Element>;
19
40
  };
20
41
  export declare enum SystemLocales {
@@ -22,12 +43,48 @@ export declare enum SystemLocales {
22
43
  Neutral = "NEUTRAL"
23
44
  }
24
45
  export type CreatePageOptions<LocaleEnum = SystemLocales, TParams extends Record<string, string | Array<string> | undefined> = DefaultCmsPageParams, TSearchParams extends Record<string, string | Array<string> | undefined> = DefaultCmsPageSearchParams> = {
25
- defaultLocale: LocaleEnum | null;
46
+ /**
47
+ * Main function used to retrieve the content by path
48
+ */
26
49
  getContentByPath: GetContentByPathMethod<LocaleEnum>;
50
+ /**
51
+ * The factory that should yield the GraphQL Client to be used within this
52
+ * page.
53
+ */
27
54
  client: ClientFactory;
55
+ /**
56
+ * The channel information used to resolve locales, domains and more
57
+ */
28
58
  channel?: ChannelDefinition;
59
+ /**
60
+ * Override the default RouteResolver that is used to discover the routes
61
+ * provided by the Optimizely CMS and to retrieve the content reference for
62
+ * each route.
63
+ *
64
+ * @param client The Optimizely GraphQL Client to use
65
+ * @returns The RouteResolver to use
66
+ */
67
+ routerFactory: (client?: IOptiGraphClient) => IRouteResolver;
68
+ /**
69
+ * Take the props received by the CmsPage from Next.JS and tranform those
70
+ * into a path that will be understood by Optimizely CMS. The default
71
+ * implementation works with both `/[lang]/[[...path]]` as well as
72
+ * `/[[...path]]`
73
+ *
74
+ * @param props The Properties (slugs & search params) received
75
+ * by Next.JS
76
+ * @return The path to be retrieved from Router or getContentByPath
77
+ * function
78
+ */
29
79
  propsToCmsPath: (props: DefaultCmsPageProps<TParams, TSearchParams>) => string | null;
30
- propsToCmsLocale: (props: DefaultCmsPageProps<TParams, TSearchParams>, locale: LocaleEnum | null) => LocaleEnum | null;
80
+ /**
81
+ * Take the route from the Routing Service and transform that to the route
82
+ * params used by Next.JS. The default implementation assumes that the CMS
83
+ * routes will be handled by `/[[...path]]`
84
+ *
85
+ * @param route The Route retrieved from Optimizely Graph
86
+ * @returns The processed route
87
+ */
31
88
  routeToParams: (route: Route) => TParams;
32
89
  };
33
90
  /**
@@ -39,4 +96,4 @@ export type CreatePageOptions<LocaleEnum = SystemLocales, TParams extends Record
39
96
  * @param options The page component generation options
40
97
  * @returns The Optimizely CMS Page
41
98
  */
42
- export declare function createPage<LocaleEnum = SystemLocales, TParams extends Record<string, string | Array<string> | undefined> = DefaultCmsPageParams, TSearchParams extends Record<string, string | Array<string> | undefined> = DefaultCmsPageSearchParams>(factory: ComponentFactory, options?: Partial<CreatePageOptions<LocaleEnum, TParams, TSearchParams>>): OptiCmsNextJsPage;
99
+ export declare function createPage<LocaleEnum = SystemLocales, TParams extends Record<string, string | Array<string> | undefined> = DefaultCmsPageParams, TSearchParams extends Record<string, string | Array<string> | undefined> = DefaultCmsPageSearchParams>(factory: ComponentFactory, options?: Partial<CreatePageOptions<LocaleEnum, TParams, TSearchParams>>): OptiCmsNextJsPage<TParams, TSearchParams>;
@@ -2,10 +2,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import 'server-only';
3
3
  import deepmerge from 'deepmerge';
4
4
  import { notFound } from 'next/navigation.js';
5
- import { RouteResolver } from '@remkoj/optimizely-graph-client';
5
+ import { RouteResolver } from '@remkoj/optimizely-graph-client/router';
6
+ import { OptiCmsSchema } from '@remkoj/optimizely-graph-client/client';
6
7
  import { normalizeContentLinkWithLocale } from '@remkoj/optimizely-graph-client/utils';
7
- import { CmsContent, isDebug, getServerContext } from '@remkoj/optimizely-cms-react/rsc';
8
- import { Utils } from '@remkoj/optimizely-cms-react';
8
+ // React Support
9
+ import { CmsContent, Utils, isDebug, getServerContext } from '@remkoj/optimizely-cms-react/rsc';
10
+ // Within package
9
11
  import { MetaDataResolver } from '../metadata.js';
10
12
  import { urlToPath, localeToGraphLocale } from './utils.js';
11
13
  import getContentByPathBase from './data.js';
@@ -16,12 +18,11 @@ export var SystemLocales;
16
18
  SystemLocales["Neutral"] = "NEUTRAL";
17
19
  })(SystemLocales || (SystemLocales = {}));
18
20
  const CreatePageOptionDefaults = {
19
- defaultLocale: null,
20
21
  getContentByPath: getContentByPathBase,
21
22
  client: getServerClient,
23
+ routerFactory: (client) => new RouteResolver(client),
22
24
  propsToCmsPath: ({ params }) => buildRequestPath(params),
23
- propsToCmsLocale: ({ params }, defaultLocale) => params?.lang ?? defaultLocale ?? null,
24
- routeToParams: (route) => { return { path: urlToPath(route.url, route.locale), lang: route.locale }; }
25
+ routeToParams: (route) => { return { path: urlToPath(route.url), lang: route.locale }; }
25
26
  };
26
27
  /**
27
28
  * Generate the React Server Side component and Next.JS functions needed to render an
@@ -33,42 +34,57 @@ const CreatePageOptionDefaults = {
33
34
  * @returns The Optimizely CMS Page
34
35
  */
35
36
  export function createPage(factory, options) {
36
- const { defaultLocale, getContentByPath, client: clientFactory, channel, propsToCmsLocale, propsToCmsPath, routeToParams } = {
37
+ // Build the global/shared configuration for the Optimizely CMS Page
38
+ const { getContentByPath, client: clientFactory, channel, propsToCmsPath, routeToParams, routerFactory } = {
37
39
  ...CreatePageOptionDefaults,
38
40
  ...options
39
41
  };
42
+ // Create the global Graph Client
40
43
  const globalClient = clientFactory();
44
+ // Create the global Router instance
45
+ const router = routerFactory(globalClient);
46
+ const getInfoByPath = async (requestPath, siteId) => {
47
+ const route = await router.getContentInfoByPath(requestPath, siteId);
48
+ if (!route)
49
+ return undefined;
50
+ const contentLink = router.routeToContentLink(route);
51
+ const contentType = route.contentType;
52
+ const graphLocale = localeToGraphLocale(route.locale, channel);
53
+ return [route, contentLink, contentType, graphLocale];
54
+ };
41
55
  const pageDefintion = {
42
- generateStaticParams: async () => {
43
- //const client = clientFactory()
44
- const resolver = new RouteResolver(globalClient);
45
- return (await resolver.getRoutes()).map(r => routeToParams(r));
46
- },
47
- generateMetadata: async (props, resolving) => {
48
- // Read variables from request
49
- //const client = clientFactory()
56
+ generateStaticParams: async () => (await router.getRoutes()).map(r => routeToParams(r)),
57
+ generateMetadata: async (props, parent) => {
58
+ // Read variables from request
59
+ const siteId = channel ? (globalClient.currentOptiCmsSchema == OptiCmsSchema.CMS12 ? channel.id : channel.defaultDomain) : undefined;
50
60
  const requestPath = propsToCmsPath(props);
51
61
  if (!requestPath)
52
62
  return Promise.resolve({});
53
- const routeResolver = new RouteResolver(globalClient);
54
- const metaResolver = new MetaDataResolver(globalClient);
63
+ if (isDebug())
64
+ console.log(`⚪ [CmsPage.generateMetadata] Processed Next.JS route: ${JSON.stringify(props)} => Optimizely CMS route: ${JSON.stringify({ path: requestPath, siteId })}`);
55
65
  // Resolve the route to a content link
56
- const route = await routeResolver.getContentInfoByPath(requestPath);
57
- if (!route)
66
+ const routeInfo = await getInfoByPath(requestPath, siteId);
67
+ if (!routeInfo) {
68
+ if (isDebug())
69
+ console.log('⚪ [CmsPage.generateMetadata] No data received');
58
70
  return Promise.resolve({});
59
- // Set context
60
- getServerContext().setLocale(route.locale);
61
- getServerContext().setOptimizelyGraphClient(globalClient);
62
- getServerContext().setComponentFactory(factory);
63
- // Prepare metadata fetching
64
- const contentLink = routeResolver.routeToContentLink(route);
65
- const contentType = route.contentType;
66
- const graphLocale = channel ? localeToGraphLocale(route.locale, channel) : null;
71
+ }
72
+ const [route, contentLink, contentType, graphLocale] = routeInfo;
73
+ if (isDebug())
74
+ console.log(`⚪ [CmsPage.generateMetadata] Retrieved content info:`, route);
75
+ // Update context
76
+ const context = getServerContext();
77
+ context.setOptimizelyGraphClient(globalClient);
78
+ context.setComponentFactory(factory);
79
+ context.setLocale(route.locale);
67
80
  // Fetch the metadata based upon the actual content type and resolve parent
81
+ const metaResolver = new MetaDataResolver(globalClient);
68
82
  const [pageMetadata, baseMetadata] = await Promise.all([
69
83
  metaResolver.resolve(factory, contentLink, contentType, graphLocale),
70
- resolving
84
+ parent
71
85
  ]);
86
+ if (isDebug())
87
+ console.log(`⚪ [CmsPage.generateMetadata] Component yielded metadata:`, pageMetadata);
72
88
  // Make sure merging of objects goes correctly
73
89
  for (const metaKey of Object.getOwnPropertyNames(pageMetadata)) {
74
90
  if (typeof (pageMetadata[metaKey]) == "object" && pageMetadata[metaKey] != null && baseMetadata[metaKey] != undefined && baseMetadata[metaKey] != null) {
@@ -85,23 +101,23 @@ export function createPage(factory, options) {
85
101
  CmsPage: async (props) => {
86
102
  // Prepare the context
87
103
  const context = getServerContext();
88
- const client = context.client ?? globalClient;
89
- if (!context.client)
90
- context.setOptimizelyGraphClient(client);
104
+ context.setOptimizelyGraphClient(globalClient);
91
105
  context.setComponentFactory(factory);
92
106
  // Analyze the Next.JS Request props
93
- const requestLocale = propsToCmsLocale(props, defaultLocale);
94
107
  const requestPath = propsToCmsPath(props);
95
108
  if (isDebug())
96
- console.log(`⚪ [CmsPage] Processed Next.JS route: ${JSON.stringify(props)} => Optimizely CMS route: ${JSON.stringify({ path: requestPath, locale: requestLocale })}`);
97
- // Process the locale
98
- const graphLocale = (requestLocale ? localeToGraphLocale(requestLocale, channel) : undefined);
99
- if (requestLocale)
100
- context.setLocale(requestLocale);
101
- // Resolve the content based upon the path
102
- if (!requestPath)
109
+ console.log(`⚪ [CmsPage] Processed Next.JS route: ${JSON.stringify(props)} => Optimizely CMS route: ${JSON.stringify({ path: requestPath })}`);
110
+ // If we don't have the path, or the path is an internal Next.JS route reject it.
111
+ if (!requestPath || requestPath.startsWith('/_next/'))
103
112
  return notFound();
104
- const response = await getContentByPath(client, { path: requestPath, locale: graphLocale });
113
+ // Resolve the content based upon the path
114
+ const requestVars = {
115
+ path: requestPath,
116
+ siteId: channel ? (globalClient.currentOptiCmsSchema == OptiCmsSchema.CMS12 ? channel.id : getPrimaryURL(channel).href) : null
117
+ };
118
+ if (isDebug())
119
+ console.log(`⚪ [CmsPage] Processed Next.JS route: ${JSON.stringify(props)} => getContentByPath Variables: ${JSON.stringify(requestVars)}`);
120
+ const response = await getContentByPath(globalClient, requestVars);
105
121
  const info = (response?.content?.items ?? [])[0];
106
122
  if (!info) {
107
123
  if (isDebug()) {
@@ -109,15 +125,18 @@ export function createPage(factory, options) {
109
125
  }
110
126
  return notFound();
111
127
  }
128
+ else if (isDebug() && (response?.content?.items ?? []).length > 1) {
129
+ console.warn(`🟠 [CmsPage] Resolving content for ${requestPath}, yielded ${(response?.content?.items ?? []).length} items, picked:`, info);
130
+ }
112
131
  // Extract the type & link
113
132
  const contentType = Utils.normalizeContentType(info._metadata?.types);
114
133
  const contentLink = normalizeContentLinkWithLocale(info._metadata);
115
- if (contentLink?.locale)
116
- context.setLocale(contentLink?.locale);
117
134
  if (!contentLink) {
118
135
  console.error("🔴 [CmsPage] Unable to infer the contentLink from the retrieved content, this should not have happened!");
119
136
  return notFound();
120
137
  }
138
+ if (contentLink?.locale)
139
+ context.setLocale(contentLink?.locale);
121
140
  // Render the content link
122
141
  return _jsx(CmsContent, { contentType: contentType, contentLink: contentLink, fragmentData: info });
123
142
  }
@@ -138,9 +157,16 @@ function buildRequestPath({ lang, path }) {
138
157
  slugs.unshift(lang);
139
158
  if (slugs.length == 0)
140
159
  return '/';
141
- const fullPath = '/' + slugs.filter(x => x && x.length > 0).join('/');
160
+ const fullPath = '/' + slugs.filter(x => x && x.length > 0).map(x => decodeURIComponent(x)).join('/');
142
161
  if (!slugs[slugs.length - 1].includes('.'))
143
162
  return fullPath + '/';
144
163
  return fullPath;
145
164
  }
165
+ function getPrimaryURL(chnl) {
166
+ const dd = chnl.domains.filter(x => x.isPrimary).at(0) ?? chnl.domains.at(0);
167
+ if (!dd)
168
+ return chnl.getPrimaryDomain();
169
+ const s = dd.name.startsWith('localhost') || dd.name.indexOf('.local') > 0 ? 'http:' : 'https:';
170
+ return new URL(`${s}//${dd.name}`);
171
+ }
146
172
  //# sourceMappingURL=page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/cms-page/page.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/cms-page/page.tsx"],"names":[],"mappings":"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"}
@@ -10,5 +10,6 @@ export declare function urlToPath(baseUrl: URL, language?: string): string[];
10
10
  * @returns
11
11
  */
12
12
  export declare function localeToGraphLocale(locale: string, channel?: ChannelDefinition): string;
13
- export declare function slugToLocale<T extends string | undefined | null>(channel: ChannelDefinition, slug: string, defaultValue: T): string | T;
14
- export declare function slugToGraphLocale<T extends string | undefined | null>(channel: ChannelDefinition, slug: string, defaultValue: T): string | T;
13
+ export declare function slugToLocale<T extends string | undefined | null>(channel: ChannelDefinition | undefined, slug: string | null, defaultValue: T): string | T;
14
+ export declare function slugToGraphLocale<T extends string | undefined | null>(channel: ChannelDefinition | undefined, slug: string | null, defaultValue: T): string | T;
15
+ export declare function localeToSlug<T>(channel: ChannelDefinition | undefined, locale: T): string;
@@ -19,11 +19,29 @@ export function localeToGraphLocale(locale, channel) {
19
19
  return channel?.localeToGraphLocale(locale) ?? coreLocaleToGraphLocale(locale);
20
20
  }
21
21
  export function slugToLocale(channel, slug, defaultValue) {
22
- const route = channel.locales.filter(x => x.slug == slug)[0];
23
- return route?.code || defaultValue;
22
+ if (!slug)
23
+ return defaultValue;
24
+ if (!channel) {
25
+ let parsedSlug = slug.replaceAll('_', '-').split('-').map((x, i) => i == 1 ? x.toUpperCase() : x.toLowerCase()).join('-');
26
+ return parsedSlug;
27
+ }
28
+ const locale = channel.slugToLocale(slug);
29
+ return locale || defaultValue?.replaceAll("_", "-");
24
30
  }
25
31
  export function slugToGraphLocale(channel, slug, defaultValue) {
26
- const route = channel.locales.filter(x => x.slug == slug)[0];
27
- return route?.graphLocale || defaultValue?.replaceAll("-", "_");
32
+ if (!slug)
33
+ return defaultValue;
34
+ if (!channel) {
35
+ let parsedSlug = slug.replaceAll('_', '-').split('-').map((x, i) => i == 1 ? x.toUpperCase() : x.toLowerCase()).join('_');
36
+ return parsedSlug;
37
+ }
38
+ const graphLocale = channel.slugToGraphLocale(slug);
39
+ return graphLocale || defaultValue?.replaceAll("-", "_");
40
+ }
41
+ export function localeToSlug(channel, locale) {
42
+ const baseSlug = locale.toLowerCase().replaceAll('_', '-');
43
+ if (!channel)
44
+ return baseSlug;
45
+ return channel.localeToSlug(locale) ?? baseSlug;
28
46
  }
29
47
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cms-page/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAEtG,oDAAoD;AACpD,MAAM,UAAU,SAAS,CAAC,OAAY,EAAE,QAAiB;IACrD,IAAI,KAAK,GAAc,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACjE,IAAI,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ;QAChC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACzB,OAAO,KAAK,CAAA;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,OAA2B;IAE3E,OAAO,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAA;AAClF,CAAC;AAED,MAAM,UAAU,YAAY,CAAsC,OAA0B,EAAE,IAAY,EAAE,YAAe;IAEvH,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5D,OAAO,KAAK,EAAE,IAAI,IAAI,YAAY,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAsC,OAA0B,EAAE,IAAY,EAAE,YAAe;IAE5H,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5D,OAAO,KAAK,EAAE,WAAW,IAAI,YAAY,EAAE,UAAU,CAAC,GAAG,EAAC,GAAG,CAAM,CAAA;AACvE,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cms-page/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAEtG,oDAAoD;AACpD,MAAM,UAAU,SAAS,CAAC,OAAY,EAAE,QAAiB;IACrD,IAAI,KAAK,GAAc,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACjE,IAAI,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ;QAChC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACzB,OAAO,KAAK,CAAA;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,OAA2B;IAE3E,OAAO,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAA;AAClF,CAAC;AAED,MAAM,UAAU,YAAY,CAAsC,OAAsC,EAAE,IAAmB,EAAE,YAAe;IAE1I,IAAI,CAAC,IAAI;QAAE,OAAO,YAAY,CAAA;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACvH,OAAO,UAAU,CAAA;IACrB,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IACzC,OAAO,MAAM,IAAI,YAAY,EAAE,UAAU,CAAC,GAAG,EAAC,GAAG,CAAM,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAsC,OAAsC,EAAE,IAAmB,EAAE,YAAe;IAE/I,IAAI,CAAC,IAAI;QAAE,OAAO,YAAY,CAAA;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACvH,OAAO,UAAU,CAAA;IACrB,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACnD,OAAO,WAAW,IAAI,YAAY,EAAE,UAAU,CAAC,GAAG,EAAC,GAAG,CAAM,CAAA;AAChE,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,OAAsC,EAAE,MAAS;IAE7E,MAAM,QAAQ,GAAI,MAAiB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAC,GAAG,CAAC,CAAA;IACrE,IAAI,CAAC,OAAO;QACR,OAAO,QAAQ,CAAA;IACnB,OAAO,OAAO,CAAC,YAAY,CAAC,MAAgB,CAAC,IAAI,QAAQ,CAAA;AAC7D,CAAC"}
package/dist/index.js CHANGED
@@ -2,7 +2,6 @@ export * from './client.js';
2
2
  export * from './metadata.js';
3
3
  export * from './types.js';
4
4
  export * from './page.js';
5
- //export * as Auth from './auth'
6
5
  export * as OnPageEdit from './ope/index.js';
7
6
  export * as CmsPage from './cms-page/index.js';
8
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,gCAAgC;AAChC,OAAO,KAAK,UAAU,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,OAAO,KAAK,UAAU,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA"}
@@ -1,5 +1,5 @@
1
- import { type ComponentFactory, type ContentLink } from '@remkoj/optimizely-cms-react';
2
- import { type OptimizelyGraphConfig, type IOptiGraphClient } from '@remkoj/optimizely-graph-client';
1
+ import { type ComponentFactory } from '@remkoj/optimizely-cms-react';
2
+ import { type OptimizelyGraphConfig, type IOptiGraphClient, type ContentLink } from '@remkoj/optimizely-graph-client';
3
3
  import { Metadata } from 'next';
4
4
  export declare class MetaDataResolver {
5
5
  private _cgClient;
package/dist/metadata.js CHANGED
@@ -1,8 +1,8 @@
1
- import createClient, { isContentGraphClient } from '@remkoj/optimizely-graph-client';
1
+ import createClient, { isOptiGraphClient } from '@remkoj/optimizely-graph-client';
2
2
  import { isOptimizelyNextPageWithMetaData } from './page.js';
3
3
  export class MetaDataResolver {
4
4
  constructor(clientOrConfig) {
5
- this._cgClient = isContentGraphClient(clientOrConfig) ? clientOrConfig : createClient(clientOrConfig);
5
+ this._cgClient = isOptiGraphClient(clientOrConfig) ? clientOrConfig : createClient(clientOrConfig);
6
6
  }
7
7
  /**
8
8
  * Resolve the meta data for a component, if it has a meta-data method exposed.
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,EAAE,EAAE,oBAAoB,EAAqD,MAAM,iCAAiC,CAAA;AAEvI,OAAO,EAAE,gCAAgC,EAAE,MAAM,WAAW,CAAA;AAG5D,MAAM,OAAO,gBAAgB;IAIzB,YAAmB,cAAyD;QAExE,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;IACzG,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,OAAO,CAAC,OAAyB,EAAE,WAAwB,EAAE,WAAqB,EAAE,MAAsB;QAEnH,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;YACpB,OAAO,CAAC,GAAG,CAAC,gDAAiD,IAAI,CAAC,SAAS,CAAC,EAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAC,CAAC,EAAE,CAAC,CAAA;QAEtH,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;QAEzF,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAA2B,CAAA;QACxE,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;gBACpB,OAAO,CAAC,GAAG,CAAC,gDAAiD,WAAW,CAAC,IAAI,CAAC,GAAG,CAAE,EAAE,CAAC,CAAA;YAC1F,OAAO,EAAE,CAAA;QACb,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;YACpB,OAAO,CAAC,GAAG,CAAC,wCAAyC,SAAS,CAAC,WAAW,IAAI,mBAAoB,EAAE,CAAC,CAAA;QAEzG,IAAI,gCAAgC,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YACvE,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;gBACpB,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAA;YAChG,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;YAC7E,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;gBACpB,OAAO,CAAC,GAAG,CAAC,8CAA+C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAE,EAAE,CAAC,CAAA;YACvF,OAAO,IAAI,CAAA;QACf,CAAC;aAAM,CAAC;YACJ,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;gBACpB,OAAO,CAAC,IAAI,CAAC,gDAAiD,WAAW,CAAC,IAAI,CAAC,GAAG,CAAE,uCAAuC,CAAC,CAAA;QACpI,CAAC;QACD,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,EAAE,EAAE,iBAAiB,EAAuE,MAAM,iCAAiC,CAAA;AAEtJ,OAAO,EAAE,gCAAgC,EAAE,MAAM,WAAW,CAAA;AAG5D,MAAM,OAAO,gBAAgB;IAIzB,YAAmB,cAAyD;QAExE,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;IACtG,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,OAAO,CAAC,OAAyB,EAAE,WAAwB,EAAE,WAAqB,EAAE,MAAsB;QAEnH,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;YACpB,OAAO,CAAC,GAAG,CAAC,gDAAiD,IAAI,CAAC,SAAS,CAAC,EAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAC,CAAC,EAAE,CAAC,CAAA;QAEtH,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;QAEzF,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAA2B,CAAA;QACxE,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;gBACpB,OAAO,CAAC,GAAG,CAAC,gDAAiD,WAAW,CAAC,IAAI,CAAC,GAAG,CAAE,EAAE,CAAC,CAAA;YAC1F,OAAO,EAAE,CAAA;QACb,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;YACpB,OAAO,CAAC,GAAG,CAAC,wCAAyC,SAAS,CAAC,WAAW,IAAI,mBAAoB,EAAE,CAAC,CAAA;QAEzG,IAAI,gCAAgC,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YACvE,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;gBACpB,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAA;YAChG,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;YAC7E,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;gBACpB,OAAO,CAAC,GAAG,CAAC,8CAA+C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAE,EAAE,CAAC,CAAA;YACvF,OAAO,IAAI,CAAA;QACf,CAAC;aAAM,CAAC;YACJ,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;gBACpB,OAAO,CAAC,IAAI,CAAC,gDAAiD,WAAW,CAAC,IAAI,CAAC,GAAG,CAAE,uCAAuC,CAAC,CAAA;QACpI,CAAC;QACD,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AAED,eAAe,gBAAgB,CAAA"}
package/dist/ope/data.js CHANGED
@@ -2,27 +2,27 @@ import { gql } from 'graphql-request';
2
2
  export const getContentById = async (client, variables) => {
3
3
  return await client.request(gqlQuery, variables);
4
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
- ) {
15
- total
16
- items {
17
- _metadata {
18
- key
19
- locale
20
- types
21
- displayName
22
- version
23
- }
24
- _type: __typename
25
- }
26
- }
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
+ ) {
15
+ total
16
+ items {
17
+ _metadata {
18
+ key
19
+ locale
20
+ types
21
+ displayName
22
+ version
23
+ }
24
+ _type: __typename
25
+ }
26
+ }
27
27
  }`;
28
28
  //# sourceMappingURL=data.js.map
@@ -1,4 +1,5 @@
1
1
  import 'server-only';
2
2
  export * as Types from './types.js';
3
3
  export * from './page.js';
4
+ export * from './middleware.js';
4
5
  export { createEditPageComponent as default } from './page.js';
package/dist/ope/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import 'server-only';
2
2
  export * as Types from './types.js';
3
3
  export * from './page.js';
4
+ export * from './middleware.js';
4
5
  export { createEditPageComponent as default } from './page.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ope/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAEpB,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,uBAAuB,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ope/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAEpB,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,uBAAuB,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { type NextRequest, NextResponse } from "next/server.js";
2
+ type Middleware<T = any> = (request: NextRequest) => Promise<NextResponse<T>> | NextResponse<T>;
3
+ /**
4
+ * Create a Next.JS middleware, which enhances the current middleware with an
5
+ * automatic rewrite from the "old" CMS Preview URLs to the "new" CMS Preview
6
+ * URLs. This will make "side-by-side" previews work, as well as can help with
7
+ * supporting CMS 12
8
+ *
9
+ * @param middleware Your middleware, which should be wrapped by
10
+ * this middleware
11
+ * @param adminSlug The slug used by Optimizely CMS for the admin
12
+ * routes (defaults to "ui", a common alternative
13
+ * is "episerver")
14
+ * @param previewRoute The preview route within the frontend (defaults
15
+ * to "/preview")
16
+ * @returns The new middleware
17
+ */
18
+ export declare function withEditFallback<T = unknown>(middleware?: Middleware<T>, adminSlug?: string, previewRoute?: string): Middleware<T>;
19
+ export {};
@@ -0,0 +1,43 @@
1
+ import { NextResponse } from "next/server.js";
2
+ /**
3
+ * Create a Next.JS middleware, which enhances the current middleware with an
4
+ * automatic rewrite from the "old" CMS Preview URLs to the "new" CMS Preview
5
+ * URLs. This will make "side-by-side" previews work, as well as can help with
6
+ * supporting CMS 12
7
+ *
8
+ * @param middleware Your middleware, which should be wrapped by
9
+ * this middleware
10
+ * @param adminSlug The slug used by Optimizely CMS for the admin
11
+ * routes (defaults to "ui", a common alternative
12
+ * is "episerver")
13
+ * @param previewRoute The preview route within the frontend (defaults
14
+ * to "/preview")
15
+ * @returns The new middleware
16
+ */
17
+ export function withEditFallback(middleware, adminSlug = "ui", previewRoute = "/preview") {
18
+ const previewPath = `/${adminSlug}/CMS/Content/`;
19
+ const wrappedMiddleware = request => {
20
+ if (request.nextUrl.pathname.startsWith(previewPath) &&
21
+ request.nextUrl.pathname.includes(",,") &&
22
+ request.nextUrl.searchParams.has('epieditmode')) {
23
+ const [path, versionInfo] = request.nextUrl.pathname.split(",,", 2);
24
+ const [contentId, versionId] = versionInfo.split("_", 2);
25
+ const ctx = request.nextUrl.searchParams.get('epieditmode') == "true" ? "edit" : "preview";
26
+ const token = request.nextUrl.searchParams.get('preview_token') || request.nextUrl.searchParams.get('token') || process.env.OPTIMIZELY_PUBLISH_TOKEN || "use-hmac";
27
+ let requestPath = path.replace(previewPath, "/");
28
+ if (!requestPath.endsWith('/'))
29
+ requestPath = requestPath + '/';
30
+ const rewrittenUrl = new URL("/preview", request.url);
31
+ rewrittenUrl.searchParams.set("key", contentId);
32
+ rewrittenUrl.searchParams.set("ver", versionId);
33
+ rewrittenUrl.searchParams.set("loc", "ALL"); // Locale cannot be inferred from URL, however a contentId/versionId should always be unique
34
+ rewrittenUrl.searchParams.set("ctx", ctx);
35
+ rewrittenUrl.searchParams.set("preview_token", token);
36
+ rewrittenUrl.searchParams.set("path", requestPath);
37
+ return NextResponse.rewrite(rewrittenUrl);
38
+ }
39
+ return middleware ? middleware(request) : NextResponse.next();
40
+ };
41
+ return wrappedMiddleware;
42
+ }
43
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/ope/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAIhE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAAc,UAA0B,EAAE,YAAoB,IAAI,EAAE,eAAuB,UAAU;IAEjI,MAAM,WAAW,GAAG,IAAI,SAAS,eAAe,CAAA;IAChD,MAAM,iBAAiB,GAAmB,OAAO,CAAC,EAAE;QAEhD,IACI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,EACjD,CAAC;YACC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAC,CAAC,CAAC,CAAA;YAClE,MAAM,CAAE,SAAS,EAAE,SAAS,CAAE,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAC,CAAC,CAAC,CAAA;YACzD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;YAC1F,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,UAAU,CAAA;YAClK,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;YAChD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC1B,WAAW,GAAG,WAAW,GAAG,GAAG,CAAA;YAEnC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;YACrD,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;YAC/C,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;YAC/C,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA,CAAC,4FAA4F;YACxI,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YACzC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;YACrD,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;YAClD,OAAO,YAAY,CAAC,OAAO,CAAC,YAAY,CAAoB,CAAA;QAChE,CAAC;QAED,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,YAAY,CAAC,IAAI,EAAsB,CAAA;IACtF,CAAC,CAAA;IACD,OAAO,iBAAiB,CAAA;AAC5B,CAAC"}
@@ -5,8 +5,6 @@ import { type ComponentFactory } from '@remkoj/optimizely-cms-react/rsc';
5
5
  * Create the EditPage component needed by Next.JS to render the "On Page
6
6
  * Editing" variant of the content item selected by the editor.
7
7
  *
8
- * @param dxpUrl The domain of the CMS instance
9
- * @param client The Apollo GraphQL client to use
10
8
  * @param factory The component factory to be used
11
9
  * @param options The optional options to use to control the edit page
12
10
  * @returns The React Component that can be used by Next.JS to render the page
package/dist/ope/page.js CHANGED
@@ -1,8 +1,7 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import 'server-only';
3
- import { contentLinkToString } from '@remkoj/optimizely-graph-client/utils';
4
- import { Utils } from '@remkoj/optimizely-cms-react';
5
- import { CmsContent, getServerContext } from '@remkoj/optimizely-cms-react/rsc';
3
+ import { contentLinkToString, localeToGraphLocale } from '@remkoj/optimizely-graph-client/utils';
4
+ import { getServerContext, Utils, CmsContent } from '@remkoj/optimizely-cms-react/rsc';
6
5
  import { notFound } from 'next/navigation.js';
7
6
  import OnPageEdit from '../components/on-page-edit.js';
8
7
  import { getAuthorizedServerClient } from '../client.js';
@@ -15,30 +14,30 @@ const defaultOptions = {
15
14
  layout: props => _jsx(_Fragment, { children: props.children }),
16
15
  loader: getContentById,
17
16
  clientFactory: (token) => getAuthorizedServerClient(token),
18
- communicationInjectorPath: '/util/javascript/communicationinjector.js'
17
+ communicationInjectorPath: '/util/javascript/communicationinjector.js',
18
+ contentResolver: getContentRequest,
19
+ requestValidator: isValidRequest
19
20
  };
20
21
  /**
21
22
  * Create the EditPage component needed by Next.JS to render the "On Page
22
23
  * Editing" variant of the content item selected by the editor.
23
24
  *
24
- * @param dxpUrl The domain of the CMS instance
25
- * @param client The Apollo GraphQL client to use
26
25
  * @param factory The component factory to be used
27
26
  * @param options The optional options to use to control the edit page
28
27
  * @returns The React Component that can be used by Next.JS to render the page
29
28
  */
30
29
  export function createEditPageComponent(factory, options) {
31
- const { layout: PageLayout, refreshNotice: RefreshNotice, loader: getContentById, clientFactory, communicationInjectorPath } = { ...defaultOptions, ...options };
30
+ const { layout: PageLayout, refreshNotice: RefreshNotice, loader: getContentById, clientFactory, communicationInjectorPath, contentResolver: resolveContent, requestValidator: validateRequest } = { ...defaultOptions, ...options };
32
31
  async function EditPage(props) {
33
32
  // Create context
34
33
  const context = getServerContext();
35
34
  // Validate the search parameters
36
- if (!isValidRequest(props, false, context.isDevelopment)) {
35
+ if (!validateRequest(props, false, context.isDevelopment)) {
37
36
  console.error("🔴 [OnPageEdit] Invalid edit mode request");
38
37
  return notFound();
39
38
  }
40
39
  // Get the requested content item
41
- const contentRequestInfo = getContentRequest(props);
40
+ const contentRequestInfo = resolveContent(props);
42
41
  if (!contentRequestInfo) {
43
42
  console.error("🔴 [OnPageEdit] Unable to resolve requested content");
44
43
  return notFound();
@@ -48,7 +47,7 @@ export function createEditPageComponent(factory, options) {
48
47
  const client = clientFactory(token);
49
48
  context.setOptimizelyGraphClient(client);
50
49
  context.setComponentFactory(factory);
51
- context.setInEditMode(true);
50
+ context.setMode(ctx);
52
51
  // Get information from the Request URI
53
52
  if (context.isDebug) {
54
53
  console.log("⚪ [OnPageEdit] Request context:", ctx);
@@ -56,7 +55,10 @@ export function createEditPageComponent(factory, options) {
56
55
  console.log("⚪ [OnPageEdit] Requested content:", JSON.stringify(contentRequest));
57
56
  }
58
57
  try {
59
- const contentInfo = await getContentById(client, contentRequest);
58
+ const contentInfo = await getContentById(client, {
59
+ ...contentRequest,
60
+ locale: localeToGraphLocale(contentRequest.locale)
61
+ });
60
62
  if ((contentInfo?.content?.total ?? 0) > 1) {
61
63
  console.warn("🟠 [OnPageEdit] Content request " + JSON.stringify(contentRequest) + " yielded more then one item, picking first matching");
62
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/ope/page.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/ope/page.tsx"],"names":[],"mappings":"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"}
package/dist/ope/tools.js CHANGED
@@ -59,7 +59,7 @@ export function getContentRequest({ params: { path, lang }, searchParams: { prev
59
59
  key: searchParams.key,
60
60
  locale: searchParams.loc,
61
61
  version: searchParams.ver,
62
- path: null
62
+ path: searchParams.path ?? null
63
63
  };
64
64
  }
65
65
  // Then fall back to old-mode URL parsing for developer URLs
@@ -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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"}
@@ -1,7 +1,7 @@
1
1
  import { type ComponentType, type PropsWithChildren } from 'react';
2
2
  import { type ClientFactory } from '@remkoj/optimizely-graph-client';
3
3
  import { type GraphQLClient } from 'graphql-request';
4
- import { type ContentQueryProps } from '@remkoj/optimizely-cms-react';
4
+ import { 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;
@@ -23,6 +23,7 @@ export type EditPageProps = {
23
23
  ver?: string;
24
24
  loc?: string;
25
25
  ctx?: 'edit' | 'preview';
26
+ path?: string;
26
27
  epieditmode?: string;
27
28
  };
28
29
  };
@@ -38,12 +39,14 @@ export type ValidatedEditPageProps = {
38
39
  ver: string;
39
40
  loc: string;
40
41
  ctx: 'edit' | 'preview';
41
- epieditmode: undefined;
42
+ path?: string;
43
+ epieditmode: never;
42
44
  } | {
43
- key: undefined;
44
- ver: undefined;
45
- loc: undefined;
46
- ctx: undefined;
45
+ key: never;
46
+ ver: never;
47
+ loc: never;
48
+ ctx: never;
49
+ path: never;
47
50
  epieditmode: 'true' | 'false';
48
51
  });
49
52
  };
@@ -60,11 +63,18 @@ export type EditViewOptions = {
60
63
  locale: string;
61
64
  }>>;
62
65
  /**
63
- * The base content loader to be used for the edit view
66
+ * The fourth step of the handling of a Preview/On-Page-Edit view,
67
+ * which actually loads the data of content to be shown to the
68
+ * editor.
64
69
  */
65
70
  loader: GetContentByIdMethod;
66
71
  /**
67
- * The factory used to create a new Optimizely Graph Client
72
+ * The third step of the handling of a Preview/On-Page-Edit view,
73
+ * which gets the Optimizely Graph client for the token/auth method
74
+ * inferred by the contentResolver.
75
+ *
76
+ * @param token The token to be used
77
+ * @returns The Optimizely Graph Client
68
78
  */
69
79
  clientFactory: ClientFactory;
70
80
  /**
@@ -72,6 +82,26 @@ export type EditViewOptions = {
72
82
  * path.
73
83
  */
74
84
  communicationInjectorPath: string;
85
+ /**
86
+ * The second step of the handling of a Preview/On-Page-Edit view,
87
+ * this actually extracts the requested content identification info
88
+ * from the path and search params
89
+ *
90
+ * @param props The page path props and search params
91
+ * @returns The requested content information
92
+ */
93
+ contentResolver: (props: ValidatedEditPageProps) => ContentRequest | undefined;
94
+ /**
95
+ * This is the first step of the handling of a Preview/On-Page-Edit view,
96
+ * where the parameters should be validated to ensure this is a correct
97
+ * preview/on-page-edit request.
98
+ *
99
+ * @param props The page path props and search params
100
+ * @param throwOnInvalid Whether an error must thrown on invalid data
101
+ * @param isDevelopment Whether this request runs in development mode
102
+ * @returns If the request is valid
103
+ */
104
+ requestValidator: (props: EditPageProps, throwOnInvalid?: boolean, isDevelopment?: boolean) => props is ValidatedEditPageProps;
75
105
  };
76
106
  export type GetContentByIdData<LocaleType = string> = {
77
107
  content: {
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@remkoj/optimizely-cms-nextjs",
3
3
  "license": "Apache-2.0",
4
- "version": "2.0.4",
5
- "packageManager": "yarn@4.1.1",
4
+ "version": "3.0.0",
5
+ "packageManager": "yarn@4.5.0",
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",
@@ -17,7 +17,8 @@
17
17
  "./rsc": "./dist/client.js",
18
18
  "./publish": "./dist/publish/index.js",
19
19
  "./types": "./dist/types.js",
20
- "./components": "./dist/components/shared/index.js"
20
+ "./components": "./dist/components/shared/index.js",
21
+ "./preview": "./dist/ope/index.js"
21
22
  },
22
23
  "typesVersions": {
23
24
  "*": {
@@ -31,31 +32,34 @@
31
32
  "dist/types.d.ts"
32
33
  ],
33
34
  "components": [
34
- "dist/components/shared/index.js"
35
+ "dist/components/shared/index.d.ts"
36
+ ],
37
+ "preview": [
38
+ "dist/ope/index.d.ts"
35
39
  ]
36
40
  }
37
41
  },
38
42
  "devDependencies": {
39
- "@remkoj/optimizely-cms-react": "2.0.4",
40
- "@remkoj/optimizely-graph-client": "2.0.4",
41
- "@types/node": "^22.2.0",
42
- "@types/react": "^18.3.3",
43
- "@types/react-dom": "18.3.0",
43
+ "@remkoj/optimizely-cms-react": "3.0.0",
44
+ "@remkoj/optimizely-graph-client": "3.0.0",
45
+ "@types/node": "^22.8.4",
46
+ "@types/react": "^18.3.12",
47
+ "@types/react-dom": "18.3.1",
44
48
  "graphql": "^16.9.0",
45
49
  "graphql-request": "^6.1.0",
46
- "next": "^14.2.5",
50
+ "next": "^14.2.16",
47
51
  "prop-types": "^15.8.1",
48
52
  "react": "^18.3.1",
49
53
  "react-dom": "^18.3.1",
50
54
  "scheduler": "^0.23.2",
51
- "typescript": "^5.5.4"
55
+ "typescript": "^5.6.3"
52
56
  },
53
57
  "dependencies": {
54
58
  "deepmerge": "^4.3.1"
55
59
  },
56
60
  "peerDependencies": {
57
- "@remkoj/optimizely-cms-react": "2.0.4",
58
- "@remkoj/optimizely-graph-client": "2.0.4",
61
+ "@remkoj/optimizely-cms-react": "*",
62
+ "@remkoj/optimizely-graph-client": "*",
59
63
  "graphql": "^16",
60
64
  "graphql-request": "^6",
61
65
  "next": "^14",
@@ -63,7 +67,7 @@
63
67
  },
64
68
  "scripts": {
65
69
  "clean": "yarn tsc --build --clean",
66
- "prepare": "yarn tsc --build",
70
+ "prepare": "yarn tsc --build --force",
67
71
  "watch": "yarn tsc --watch",
68
72
  "recompile": "yarn tsc --build --clean && yarn tsc --build --force"
69
73
  }