@remkoj/optimizely-cms-nextjs 4.3.1 → 5.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.d.ts CHANGED
@@ -1,8 +1,35 @@
1
1
  import 'server-only';
2
- import { type IOptiGraphClient } from '@remkoj/optimizely-graph-client';
3
- export declare const getServerClient: () => IOptiGraphClient;
4
- export declare const getAuthorizedServerClient: (token?: string) => IOptiGraphClient;
5
- export declare const createClient: () => IOptiGraphClient;
6
- export declare const createAuthorizedClient: (token?: string) => IOptiGraphClient;
7
- declare const _default: IOptiGraphClient;
8
- export default _default;
2
+ import { type IOptiGraphClient, type OptimizelyGraphConfig } from '@remkoj/optimizely-graph-client';
3
+ /**
4
+ * Create a new client instance. This is a direct wrapper for the `createClient` function
5
+ * exported from `@remkoj/optimizely-graph-client`.
6
+ *
7
+ * @returns The newly created GraphQL Client
8
+ */
9
+ export declare function createClient(): IOptiGraphClient;
10
+ /**
11
+ * Create a new client instance, with the needed configuration to access restricted content. This
12
+ * wraps the `createClient` function from `@remkoj/optimizely-graph-client` and applies some
13
+ * configuration defaults.
14
+ *
15
+ * @returns The newly created GraphQL Client
16
+ */
17
+ export declare function createAuthorizedClient(token?: string, config?: OptimizelyGraphConfig): IOptiGraphClient;
18
+ /**
19
+ * Create a new client instance, with the needed configuration to access restricted content. This
20
+ * wraps the `createClient` function from `@remkoj/optimizely-graph-client` and applies some
21
+ * configuration defaults.
22
+ *
23
+ * @deprecated use createAuthorizedClient
24
+ * @returns The newly created GraphQL Client
25
+ */
26
+ export declare const getAuthorizedServerClient: typeof createAuthorizedClient;
27
+ /**
28
+ * Create a new client instance. This is a direct wrapper for the `createClient` function
29
+ * exported from `@remkoj/optimizely-graph-client`.
30
+ *
31
+ * @deprecated use createClient
32
+ * @returns The newly created GraphQL Client
33
+ */
34
+ export declare const getServerClient: typeof createClient;
35
+ export default createClient;
package/dist/client.js CHANGED
@@ -1,28 +1,58 @@
1
1
  import 'server-only';
2
- import createBaseClient, { AuthMode } from '@remkoj/optimizely-graph-client';
3
- export const getServerClient = () => {
4
- const client = createBaseClient();
2
+ import { createClient as createBaseClient, AuthMode } from '@remkoj/optimizely-graph-client';
3
+ /**
4
+ * Create a new client instance. This is a direct wrapper for the `createClient` function
5
+ * exported from `@remkoj/optimizely-graph-client`.
6
+ *
7
+ * @returns The newly created GraphQL Client
8
+ */
9
+ export function createClient() {
10
+ return createAuthorizedClient();
11
+ }
12
+ /**
13
+ * Create a new client instance, with the needed configuration to access restricted content. This
14
+ * wraps the `createClient` function from `@remkoj/optimizely-graph-client` and applies some
15
+ * configuration defaults.
16
+ *
17
+ * @returns The newly created GraphQL Client
18
+ */
19
+ export function createAuthorizedClient(token, config) {
20
+ const client = createBaseClient(config);
5
21
  if (client.debug)
6
- console.log('⚪ [ContentGraph Shared Client] Created new Optimizely Graph client');
7
- return client;
8
- };
9
- export const getAuthorizedServerClient = (token) => {
10
- const client = createBaseClient();
11
- if (client.debug)
12
- console.log('⚪ [ContentGraph Shared Client] Created new Optimizely Graph client with authentication details');
22
+ console.log('⚪ [ContentGraph Client] Created new Optimizely Graph client');
23
+ // Apply token if needed
13
24
  if (typeof (token) == 'string' && token.length > 0) {
14
25
  if (token == client.siteInfo.publishToken) {
15
- console.warn(`🔐 [ContentGraph Shared Client] Allowed authenticated access by publish token`);
26
+ console.warn(`🔐 [ContentGraph Client] Allowed authenticated access by publish token, switching to HMAC`);
16
27
  client.updateAuthentication(AuthMode.HMAC);
17
28
  }
18
- else
29
+ else {
19
30
  client.updateAuthentication(token);
31
+ }
32
+ if (client.debug) {
33
+ console.warn(`🔐 [ContentGraph Client] Updated authentication, current mode: ${client.currentAuthMode}`);
34
+ console.log('⚪ [ContentGraph Client] Setting disable cache feature flags');
35
+ }
36
+ client.updateFlags({ cache: false, cache_uniq: false, queryCache: false }, false);
20
37
  }
21
- if (client.debug)
22
- console.log(`🟡 [ContentGraph Shared Client] Updated authentication, current mode: ${client.currentAuthMode}`);
23
38
  return client;
24
- };
25
- export const createClient = getServerClient;
26
- export const createAuthorizedClient = getAuthorizedServerClient;
27
- export default getServerClient();
39
+ }
40
+ /**
41
+ * Create a new client instance, with the needed configuration to access restricted content. This
42
+ * wraps the `createClient` function from `@remkoj/optimizely-graph-client` and applies some
43
+ * configuration defaults.
44
+ *
45
+ * @deprecated use createAuthorizedClient
46
+ * @returns The newly created GraphQL Client
47
+ */
48
+ export const getAuthorizedServerClient = createAuthorizedClient;
49
+ /**
50
+ * Create a new client instance. This is a direct wrapper for the `createClient` function
51
+ * exported from `@remkoj/optimizely-graph-client`.
52
+ *
53
+ * @deprecated use createClient
54
+ * @returns The newly created GraphQL Client
55
+ */
56
+ export const getServerClient = createClient;
57
+ export default createClient;
28
58
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,QAAQ,EAAqD,MAAM,iCAAiC,CAAA;AAE/I;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,sBAAsB,EAAE,CAAA;AACjC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc,EAAE,MAA8B;IACnF,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACvC,IAAI,MAAM,CAAC,KAAK;QACd,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAA;IAE5E,wBAAwB;IACxB,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAA;YACzG,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC5C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;QACpC,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,kEAAkE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAA;YACxG,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAA;QAC5E,CAAC;QACD,MAAM,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAA;IACnF,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAA;AAE/D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAA;AAE3C,eAAe,YAAY,CAAA"}
@@ -10,7 +10,11 @@ export type GetContentByPathResponse = {
10
10
  items?: MayBe<Array<{
11
11
  __typename?: MayBe<string>;
12
12
  _type?: MayBe<string>;
13
- } & Record<string, any>>>;
13
+ } & Record<string, any>> | {
14
+ __typename?: MayBe<string>;
15
+ _type?: MayBe<string>;
16
+ } & Record<string, any>>;
17
+ total?: MayBe<number>;
14
18
  }>;
15
19
  };
16
20
  export type GetMetaDataByPathResponse = {
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/cms-page/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAiB,MAAM,iBAAiB,CAAA;AAmCpD,MAAM,CAAC,MAAM,iBAAiB,GAA4B,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;IAE5E,OAAO,MAAM,CAAC,OAAO,CAAsD,aAAa,EAAE,SAAS,CAAC,CAAA;AACxG,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;IAE1E,OAAO,MAAM,CAAC,OAAO,CAAqD,YAAY,EAAE,SAAS,CAAC,CAAA;AACtG,CAAC,CAAA;AAED,eAAe,gBAAgB,CAAA;AAE/B,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;IAiBpB,CAAA;AAEJ,MAAM,aAAa,GAAG,GAAG,CAAA;;;;;;;;;;;;;;EAcvB,CAAA"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/cms-page/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAiB,MAAM,iBAAiB,CAAA;AAuCpD,MAAM,CAAC,MAAM,iBAAiB,GAA4B,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;IAC9E,OAAO,MAAM,CAAC,OAAO,CAAuD,aAAa,EAAE,SAAS,CAAC,CAAA;AACvG,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;IAC5E,OAAO,MAAM,CAAC,OAAO,CAAsD,YAAY,EAAE,SAAS,CAAC,CAAA;AACrG,CAAC,CAAA;AAED,eAAe,gBAAgB,CAAA;AAE/B,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;IAiBpB,CAAA;AAEJ,MAAM,aAAa,GAAG,GAAG,CAAA;;;;;;;;;;;;;;EAcvB,CAAA"}
@@ -2,7 +2,7 @@ import 'server-only';
2
2
  import type { Metadata, ResolvingMetadata } from 'next';
3
3
  import { type IRouteResolver, type Route } from '@remkoj/optimizely-graph-client/router';
4
4
  import { type ChannelDefinition } from '@remkoj/optimizely-graph-client/channels';
5
- import { type ClientFactory, type IOptiGraphClient } from '@remkoj/optimizely-graph-client/client';
5
+ import { type IOptiGraphClient } from '@remkoj/optimizely-graph-client/client';
6
6
  import { type ComponentFactory } from '@remkoj/optimizely-cms-react/rsc';
7
7
  import { type GetContentByPathMethod } from './data.js';
8
8
  export type DefaultCmsPageParams = {
@@ -46,12 +46,12 @@ export type CreatePageOptions<LocaleEnum = SystemLocales, TParams extends Record
46
46
  /**
47
47
  * Main function used to retrieve the content by path
48
48
  */
49
- getContentByPath: GetContentByPathMethod<LocaleEnum>;
49
+ getContentByPath?: GetContentByPathMethod<LocaleEnum>;
50
50
  /**
51
51
  * The factory that should yield the GraphQL Client to be used within this
52
52
  * page.
53
53
  */
54
- client: ClientFactory;
54
+ client: () => IOptiGraphClient;
55
55
  /**
56
56
  * The channel information used to resolve locales, domains and more
57
57
  */
@@ -2,27 +2,27 @@ 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/router';
6
- import { OptiCmsSchema } from '@remkoj/optimizely-graph-client/client';
5
+ import { RouteResolver, } from '@remkoj/optimizely-graph-client/router';
6
+ import { OptiCmsSchema, } from '@remkoj/optimizely-graph-client/client';
7
7
  import { normalizeContentLinkWithLocale } from '@remkoj/optimizely-graph-client/utils';
8
8
  // React Support
9
- import { CmsContent, Utils, getServerContext } from '@remkoj/optimizely-cms-react/rsc';
9
+ import { CmsContent, Utils, ServerContext, updateSharedServerContext, } from '@remkoj/optimizely-cms-react/rsc';
10
10
  // Within package
11
11
  import { MetaDataResolver } from '../metadata.js';
12
12
  import { urlToPath, localeToGraphLocale } from './utils.js';
13
- import getContentByPathBase from './data.js';
14
- import { getServerClient } from '../client.js';
13
+ import { createClient } from '../client.js';
15
14
  export var SystemLocales;
16
15
  (function (SystemLocales) {
17
16
  SystemLocales["All"] = "ALL";
18
17
  SystemLocales["Neutral"] = "NEUTRAL";
19
18
  })(SystemLocales || (SystemLocales = {}));
20
19
  const CreatePageOptionDefaults = {
21
- getContentByPath: getContentByPathBase,
22
- client: getServerClient,
20
+ client: createClient,
23
21
  routerFactory: (client) => new RouteResolver(client),
24
22
  propsToCmsPath: ({ params }) => buildRequestPath(params),
25
- routeToParams: (route) => { return { path: urlToPath(route.url), lang: route.locale }; },
23
+ routeToParams: (route) => {
24
+ return { path: urlToPath(route.url), lang: route.locale };
25
+ },
26
26
  paramsToLocale: (params, channel) => {
27
27
  if (!channel)
28
28
  return undefined;
@@ -31,7 +31,7 @@ const CreatePageOptionDefaults = {
31
31
  if (!toTest)
32
32
  return channel.defaultLocale;
33
33
  return channel.slugToLocale(toTest.toString());
34
- }
34
+ },
35
35
  };
36
36
  /**
37
37
  * Generate the React Server Side component and Next.JS functions needed to render an
@@ -44,36 +44,31 @@ const CreatePageOptionDefaults = {
44
44
  */
45
45
  export function createPage(factory, options) {
46
46
  // Build the global/shared configuration for the Optimizely CMS Page
47
- const { getContentByPath, client: clientFactory, channel, propsToCmsPath, routeToParams, routerFactory, paramsToLocale } = {
47
+ const { getContentByPath, client: clientFactory, channel, propsToCmsPath, routeToParams, routerFactory, paramsToLocale, } = {
48
48
  ...CreatePageOptionDefaults,
49
- ...options
50
- };
51
- // Create the global Graph Client
52
- const globalClient = clientFactory();
53
- // Create the global Router instance
54
- const router = routerFactory(globalClient);
55
- const getInfoByPath = async (requestPath, siteId) => {
56
- const route = await router.getContentInfoByPath(requestPath, siteId);
57
- if (!route)
58
- return undefined;
59
- const contentLink = router.routeToContentLink(route);
60
- const contentType = route.contentType;
61
- const graphLocale = localeToGraphLocale(route.locale, channel);
62
- return [route, contentLink, contentType, graphLocale];
49
+ ...options,
63
50
  };
64
- // Create channelId
65
- /**
66
- * The Channel Identifier to be used for this page
67
- */
68
- const channelId = channel ? globalClient.currentOptiCmsSchema == OptiCmsSchema.CMS12 ? channel.id : getPrimaryURL(channel).origin : undefined;
51
+ function buildContext(initialLocale = 'en') {
52
+ return new ServerContext({
53
+ factory,
54
+ client: clientFactory(),
55
+ mode: 'public',
56
+ locale: initialLocale,
57
+ });
58
+ }
69
59
  const pageDefintion = {
70
- generateStaticParams: async () => (await router.getRoutes(channelId)).map(r => routeToParams(r)),
60
+ generateStaticParams: async () => {
61
+ const client = clientFactory();
62
+ const router = routerFactory(client);
63
+ const channelId = getChannelId(client, channel);
64
+ const allRoutes = await router.getRoutes(channelId, channel ? undefined : true);
65
+ return allRoutes.map((r) => routeToParams(r));
66
+ },
71
67
  generateMetadata: async ({ params, searchParams }, parent) => {
72
68
  // Get context
73
- const context = getServerContext();
74
- context.setOptimizelyGraphClient(globalClient);
75
- context.setComponentFactory(factory);
76
- // Read variables from request
69
+ const context = buildContext();
70
+ const channelId = getChannelId(context.client, channel);
71
+ // Read variables from request
77
72
  const requestPath = propsToCmsPath({ params, searchParams });
78
73
  if (!requestPath)
79
74
  return Promise.resolve({});
@@ -84,8 +79,8 @@ export function createPage(factory, options) {
84
79
  if (context.isDebug)
85
80
  console.log(`⚪ [CmsPage.generateMetadata] Processed Next.JS route: ${JSON.stringify(params)} => Optimizely CMS route: ${JSON.stringify({ path: requestPath, siteId: channelId })}`);
86
81
  // Resolve the route to a content link
87
- const routeInfo = await getInfoByPath(requestPath, channelId);
88
- if (!routeInfo) {
82
+ const routeInfo = await getInfoByPath(context.client, routerFactory, requestPath, channel);
83
+ if (!routeInfo || !routeInfo[0]) {
89
84
  if (context.isDebug)
90
85
  console.log('⚪ [CmsPage.generateMetadata] No data received');
91
86
  return Promise.resolve({});
@@ -95,32 +90,34 @@ export function createPage(factory, options) {
95
90
  console.log(`⚪ [CmsPage.generateMetadata] Retrieved content info:`, route);
96
91
  // Update context from route
97
92
  context.setLocale(route.locale);
93
+ // Make the shared server context available
94
+ updateSharedServerContext(context);
98
95
  // Fetch the metadata based upon the actual content type and resolve parent
99
- const metaResolver = new MetaDataResolver(globalClient);
96
+ const metaResolver = new MetaDataResolver(context.client);
100
97
  const [pageMetadata, baseMetadata] = await Promise.all([
101
98
  metaResolver.resolve(factory, contentLink, contentType, graphLocale),
102
- parent
99
+ parent,
103
100
  ]);
104
101
  if (context.isDebug)
105
102
  console.log(`⚪ [CmsPage.generateMetadata] Component yielded metadata:`, pageMetadata);
106
103
  // Make sure merging of objects goes correctly
107
104
  for (const metaKey of Object.getOwnPropertyNames(pageMetadata)) {
108
- if (typeof (pageMetadata[metaKey]) == "object" && pageMetadata[metaKey] != null && baseMetadata[metaKey] != undefined && baseMetadata[metaKey] != null) {
105
+ if (isObject(pageMetadata[metaKey]) &&
106
+ isObject(baseMetadata[metaKey])) {
109
107
  //@ts-expect-error Silence error due to failed introspection...
110
108
  pageMetadata[metaKey] = deepmerge(baseMetadata[metaKey], pageMetadata[metaKey], { arrayMerge: (target, source) => [...source] });
111
109
  }
112
110
  }
113
111
  // Not sure, but needed somehow...
114
- if (typeof (baseMetadata.metadataBase) == "string" && baseMetadata.metadataBase.length > 1) {
112
+ if (typeof baseMetadata.metadataBase == 'string' &&
113
+ baseMetadata.metadataBase.length > 1) {
115
114
  pageMetadata.metadataBase = new URL(baseMetadata.metadataBase);
116
115
  }
117
116
  return pageMetadata;
118
117
  },
119
118
  CmsPage: async ({ params, searchParams }) => {
120
119
  // Prepare the context
121
- const context = getServerContext();
122
- context.setOptimizelyGraphClient(globalClient);
123
- context.setComponentFactory(factory);
120
+ const context = buildContext();
124
121
  // Analyze the Next.JS Request props
125
122
  const requestPath = propsToCmsPath({ params, searchParams });
126
123
  if (context.isDebug)
@@ -133,63 +130,113 @@ export function createPage(factory, options) {
133
130
  if (initialLocale)
134
131
  context.setLocale(initialLocale);
135
132
  // Resolve the content based upon the path
136
- const pathForRequest = (requestPath.endsWith("/") ? [requestPath.substring(0, requestPath.length - 1), requestPath] : [requestPath, requestPath + '/']).filter(x => x.length >= 1);
137
- const requestVars = {
138
- path: pathForRequest,
139
- siteId: channelId
140
- };
141
- if (context.isDebug)
142
- console.log(`⚪ [CmsPage] Processed Next.JS route: ${JSON.stringify(params)} => getContentByPath Variables: ${JSON.stringify(requestVars)}`);
143
- const response = await getContentByPath(globalClient, requestVars);
144
- const info = (response?.content?.items ?? [])[0];
145
- if (!info) {
146
- if (context.isDebugOrDevelopment) {
147
- console.error(`🔴 [CmsPage] Unable to load content for ${requestPath}, data received: `, response);
148
- }
149
- return notFound();
150
- }
151
- else if (context.isDebugOrDevelopment && (response?.content?.items ?? []).length > 1) {
152
- console.warn(`🟠 [CmsPage] Resolving content for ${requestPath}, yielded ${(response?.content?.items ?? []).length} items, picked:`, info);
153
- }
154
- // Extract the type & link
155
- const contentType = Utils.normalizeContentType(info._metadata?.types);
156
- const contentLink = normalizeContentLinkWithLocale(info._metadata);
157
- if (!contentLink) {
158
- console.error("🔴 [CmsPage] Unable to infer the contentLink from the retrieved content, this should not have happened!");
133
+ const lookupData = getContentByPath
134
+ ? await loadContentByPath(context.client, getContentByPath, requestPath, channel)
135
+ : await getInfoByPath(context.client, routerFactory, requestPath, channel);
136
+ if (!lookupData) {
137
+ console.error(`🔴 [CmsPage] Unable to resolve the content for ${JSON.stringify(params)}!`);
159
138
  return notFound();
160
139
  }
140
+ const [route, contentLink, contentType, graphLocale, contentData] = lookupData;
161
141
  if (contentLink?.locale)
162
142
  context.setLocale(contentLink?.locale);
143
+ // Make the shared server context available
144
+ updateSharedServerContext(context);
163
145
  // Render the content link
164
- return _jsx(CmsContent, { contentType: contentType, contentLink: contentLink, fragmentData: info });
165
- }
146
+ return (_jsx(CmsContent, { contentType: contentType, contentLink: contentLink, fragmentData: contentData ?? undefined, ctx: context }));
147
+ },
166
148
  };
167
149
  return pageDefintion;
168
150
  }
151
+ // Helper function to obtain the info by path
152
+ async function getInfoByPath(client, routerFactory, requestPath, channel) {
153
+ const channelId = getChannelId(client, channel);
154
+ const router = routerFactory(client);
155
+ const route = await router.getContentInfoByPath(requestPath, channelId);
156
+ if (!route)
157
+ return undefined;
158
+ const contentLink = router.routeToContentLink(route);
159
+ const contentType = route.contentType;
160
+ const graphLocale = localeToGraphLocale(route.locale, channel);
161
+ return [route, contentLink, contentType, graphLocale, null];
162
+ }
163
+ async function loadContentByPath(client, getContentByPath, requestPath, channel, isDebug = false) {
164
+ const channelId = getChannelId(client, channel);
165
+ const pathForRequest = [
166
+ requestPath,
167
+ requestPath.endsWith('/')
168
+ ? requestPath.substring(0, requestPath.length - 1)
169
+ : requestPath + '/',
170
+ ].filter((x) => x);
171
+ const requestVars = {
172
+ path: pathForRequest,
173
+ siteId: channelId,
174
+ };
175
+ if (isDebug)
176
+ console.log(`⚪ [CmsPage] Processed Next.JS route => getContentByPath Variables: ${JSON.stringify(requestVars)}`);
177
+ const response = await getContentByPath(client, requestVars);
178
+ const info = Array.isArray(response?.content?.items)
179
+ ? response?.content?.items[0]
180
+ : response?.content?.items;
181
+ if (!info) {
182
+ if (isDebug) {
183
+ console.error(`🔴 [CmsPage] Unable to load content for ${requestPath}, data received: `, response);
184
+ }
185
+ return notFound();
186
+ }
187
+ else if (isDebug && (response?.content?.total ?? 0) > 1) {
188
+ console.warn(`🟠 [CmsPage] Resolving content for ${requestPath}, yielded ${response?.content?.total ?? 0} items, picked:`, info);
189
+ }
190
+ // Extract the type & link
191
+ const contentType = Utils.normalizeContentType(info._metadata?.types);
192
+ const contentLink = normalizeContentLinkWithLocale(info._metadata);
193
+ if (!contentLink) {
194
+ console.error('🔴 [CmsPage] Unable to infer the contentLink from the retrieved content, this should not have happened!');
195
+ return notFound();
196
+ }
197
+ const graphLocale = localeToGraphLocale(info._metadata?.locale, channel);
198
+ return [null, contentLink, contentType, graphLocale, info];
199
+ }
200
+ function getChannelId(client, channel) {
201
+ return channel
202
+ ? client.currentOptiCmsSchema == OptiCmsSchema.CMS12
203
+ ? channel.id
204
+ : getPrimaryURL(channel).origin
205
+ : undefined;
206
+ }
169
207
  /**
170
208
  *
171
209
  *
172
210
  * @param param0 The URL parameters
173
211
  * @returns The request path as understood by Graph
174
212
  */
175
- function buildRequestPath({ lang, path }) {
213
+ function buildRequestPath({ lang, path, }) {
176
214
  const slugs = [];
177
215
  if (path)
178
- slugs.push(...path.filter(x => x));
216
+ slugs.push(...path.filter((x) => x));
179
217
  if (lang)
180
218
  slugs.unshift(lang);
181
219
  if (slugs.length == 0)
182
220
  return '/';
183
- const fullPath = '/' + slugs.filter(x => x && x.length > 0).map(x => decodeURIComponent(x)).join('/');
221
+ const fullPath = '/' +
222
+ slugs
223
+ .filter((x) => x && x.length > 0)
224
+ .map((x) => decodeURIComponent(x))
225
+ .join('/');
184
226
  if (!slugs[slugs.length - 1].includes('.'))
185
227
  return fullPath + '/';
186
228
  return fullPath;
187
229
  }
188
230
  function getPrimaryURL(chnl) {
189
- const dd = chnl.domains.filter(x => x.isPrimary).at(0) ?? chnl.domains.at(0);
231
+ const dd = chnl.domains.filter((x) => x.isPrimary).at(0) ?? chnl.domains.at(0);
190
232
  if (!dd)
191
233
  return chnl.getPrimaryDomain();
192
- const s = dd.name.startsWith('localhost') || dd.name.indexOf('.local') > 0 ? 'http:' : 'https:';
234
+ const s = dd.name.startsWith('localhost') || dd.name.indexOf('.local') > 0
235
+ ? 'http:'
236
+ : 'https:';
193
237
  return new URL(`${s}//${dd.name}`);
194
238
  }
239
+ function isObject(toTest) {
240
+ return typeof toTest == 'object' && toTest != null && toTest != undefined;
241
+ }
195
242
  //# 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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"}
package/dist/ope/page.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import 'server-only';
3
3
  import { contentLinkToString, localeToGraphLocale, } from '@remkoj/optimizely-graph-client/utils';
4
- import { getServerContext, Utils, CmsContent, } from '@remkoj/optimizely-cms-react/rsc';
4
+ import { ServerContext, Utils, CmsContent, updateSharedServerContext, } 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
- import { getAuthorizedServerClient } from '../client.js';
7
+ import { createAuthorizedClient } from '../client.js';
8
8
  import React from 'react';
9
9
  import Script from 'next/script.js';
10
10
  import { getContentById } from './data.js';
@@ -13,7 +13,7 @@ const defaultOptions = {
13
13
  refreshNotice: () => _jsx(_Fragment, {}),
14
14
  layout: (props) => _jsx(_Fragment, { children: props.children }),
15
15
  loader: getContentById,
16
- clientFactory: (token) => getAuthorizedServerClient(token),
16
+ clientFactory: (token) => createAuthorizedClient(token),
17
17
  communicationInjectorPath: '/util/javascript/communicationinjector.js',
18
18
  contentResolver: getContentRequest,
19
19
  requestValidator: isValidRequest,
@@ -29,11 +29,12 @@ const defaultOptions = {
29
29
  */
30
30
  export function createEditPageComponent(factory, options) {
31
31
  const { layout: PageLayout, refreshNotice: RefreshNotice, loader: getContentById, clientFactory, communicationInjectorPath, contentResolver: resolveContent, requestValidator: validateRequest, refreshTimeout, } = { ...defaultOptions, ...options };
32
+ function isDevelopment() {
33
+ return process.env.NODE_ENV == 'development';
34
+ }
32
35
  async function EditPage(props) {
33
- // Create context
34
- const context = getServerContext();
35
36
  // Validate the search parameters
36
- if (!validateRequest(props, false, context.isDevelopment)) {
37
+ if (!validateRequest(props, false, isDevelopment())) {
37
38
  console.error('🔴 [OnPageEdit] Invalid edit mode request');
38
39
  return notFound();
39
40
  }
@@ -46,10 +47,11 @@ export function createEditPageComponent(factory, options) {
46
47
  const { token, ctx, ...contentRequest } = contentRequestInfo;
47
48
  // Build context
48
49
  const client = clientFactory(token);
49
- //client.updateFlags({ cache: false, queryCache: false })
50
- context.setOptimizelyGraphClient(client);
51
- context.setComponentFactory(factory);
52
- context.setMode(ctx);
50
+ const context = new ServerContext({
51
+ client,
52
+ factory,
53
+ mode: ctx,
54
+ });
53
55
  // Get information from the Request URI
54
56
  if (context.isDebug) {
55
57
  console.log('⚪ [OnPageEdit] Request context:', ctx);
@@ -66,7 +68,9 @@ export function createEditPageComponent(factory, options) {
66
68
  JSON.stringify(contentRequest) +
67
69
  ' yielded more then one item, picking first matching');
68
70
  }
69
- const contentItem = (contentInfo?.content?.items ?? [])[0];
71
+ const contentItem = (Array.isArray(contentInfo?.content?.items)
72
+ ? contentInfo?.content?.items[0]
73
+ : contentInfo?.content?.items) ?? undefined;
70
74
  const contentType = Utils.normalizeContentType(contentItem?._metadata.types);
71
75
  // Return a 404 if the content item or type could not be resolved
72
76
  if (!contentItem) {
@@ -92,10 +96,12 @@ export function createEditPageComponent(factory, options) {
92
96
  context.setEditableContentId(contentLink);
93
97
  if (contentLink.locale)
94
98
  context.setLocale(contentLink.locale);
99
+ // Make the shared server context available
100
+ updateSharedServerContext(context);
95
101
  // Render the content, with edit mode context
96
102
  const isPage = contentType.some((x) => x?.toLowerCase() == 'page') ?? false;
97
103
  const Layout = isPage ? PageLayout : React.Fragment;
98
- const output = (_jsxs(_Fragment, { children: [_jsx(Script, { src: new URL(communicationInjectorPath, client.siteInfo.cmsURL).href, strategy: "afterInteractive" }), _jsxs(Layout, { locale: contentItem.locale?.name ?? '', children: [_jsx(OnPageEdit, { refreshTimeout: refreshTimeout, children: _jsx(RefreshNotice, {}) }), _jsx(CmsContent, { contentType: contentType, contentLink: contentLink, fragmentData: contentItem })] }), context.isDebug && (_jsxs("div", { className: "optly-contentLink", children: ["ContentItem:", ' ', contentLink
104
+ const output = (_jsxs(_Fragment, { children: [_jsx(Script, { src: new URL(communicationInjectorPath, client.siteInfo.cmsURL).href, strategy: "afterInteractive" }), _jsxs(Layout, { locale: contentItem.locale?.name ?? '', children: [_jsx(OnPageEdit, { refreshTimeout: refreshTimeout, children: _jsx(RefreshNotice, {}) }), _jsx(CmsContent, { contentType: contentType, contentLink: contentLink, fragmentData: contentItem, ctx: context })] }), context.isDebug && (_jsxs("div", { className: "optly-contentLink", children: ["ContentItem:", ' ', contentLink
99
105
  ? contentLinkToString(contentLink)
100
106
  : 'Invalid content link returned from Optimizely Graph'] }))] }));
101
107
  return output;
@@ -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":";AAAA,OAAO,aAAa,CAAA;AAOpB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,uCAAuC,CAAA;AAE9C,OAAO,EACL,aAAa,EACb,KAAK,EACL,UAAU,EACV,yBAAyB,GAE1B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,UAAU,MAAM,+BAA+B,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE9D,MAAM,cAAc,GAA4B;IAC9C,aAAa,EAAE,GAAG,EAAE,CAAC,mBAAK;IAC1B,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,4BAAG,KAAK,CAAC,QAAQ,GAAI;IACxC,MAAM,EAAE,cAAc;IACtB,aAAa,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC;IAChE,yBAAyB,EAAE,2CAA2C;IACtE,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,cAAc;IAChC,cAAc,EAAE,KAAK;CACtB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAyB,EACzB,OAA8C;IAE9C,MAAM,EACJ,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,cAAc,EACtB,aAAa,EACb,yBAAyB,EACzB,eAAe,EAAE,cAAc,EAC/B,gBAAgB,EAAE,eAAe,EACjC,cAAc,GACf,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAA6B,CAAA;IAEhE,SAAS,aAAa;QACpB,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAA;IAC9C,CAAC;IAED,KAAK,UAAU,QAAQ,CAAC,KAAoB;QAC1C,iCAAiC;QACjC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;YAC1D,OAAO,QAAQ,EAAE,CAAA;QACnB,CAAC;QAED,iCAAiC;QACjC,MAAM,kBAAkB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;QAChD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAA;YACpE,OAAO,QAAQ,EAAE,CAAA;QACnB,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,kBAAkB,CAAA;QAE5D,gBAAgB;QAChB,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QACnC,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;YAChC,MAAM;YACN,OAAO;YACP,IAAI,EAAE,GAAG;SACV,CAAC,CAAA;QAEF,uCAAuC;QACvC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAA;YACnD,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAA;YACnD,OAAO,CAAC,GAAG,CACT,mCAAmC,EACnC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAC/B,CAAA;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE;gBAC/C,GAAG,cAAc;gBACjB,MAAM,EAAE,mBAAmB,CAAC,cAAc,CAAC,MAAM,CAAC;aACnD,CAAC,CAAA;YACF,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3C,OAAO,CAAC,IAAI,CACV,kCAAkC;oBAChC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;oBAC9B,qDAAqD,CACxD,CAAA;YACH,CAAC;YACD,MAAM,WAAW,GACf,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC;gBACzC,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBAChC,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,SAAS,CAAA;YAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,oBAAoB,CAC5C,WAAW,EAAE,SAAS,CAAC,KAAK,CAC7B,CAAA;YAED,iEAAiE;YACjE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CACV,wCAAwC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,4CAA4C,CACnH,CAAA;gBACD,OAAO,QAAQ,EAAE,CAAA;YACnB,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CACV,wCAAwC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,2CAA2C,CAClH,CAAA;gBACD,OAAO,QAAQ,EAAE,CAAA;YACnB,CAAC;YAED,MAAM,WAAW,GAA0B;gBACzC,GAAG,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG;gBAC9B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,MAAM;gBACpC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO;aACvC,CAAA;YAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CACT,kCAAkC,EAClC,IAAI,CAAC,SAAS,CAAC;oBACb,GAAG,WAAW;oBACd,IAAI,EAAE,CAAC,WAAW,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;iBAChD,CAAC,CACH,CAAA;YACH,CAAC;YAED,iDAAiD;YACjD,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAA;YACzC,IAAI,WAAW,CAAC,MAAM;gBAAE,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YAE7D,2CAA2C;YAC3C,yBAAyB,CAAC,OAAO,CAAC,CAAA;YAElC,6CAA6C;YAC7C,MAAM,MAAM,GACV,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,CAAA;YAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAA;YACnD,MAAM,MAAM,GAAG,CACb,8BAEE,KAAC,MAAM,IACL,GAAG,EACD,IAAI,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAEjE,QAAQ,EAAC,kBAAkB,GAC3B,EACF,MAAC,MAAM,IAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,aAC5C,KAAC,UAAU,IAAC,cAAc,EAAE,cAAc,YACxC,KAAC,aAAa,KAAG,GACN,EACb,KAAC,UAAU,IACT,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,WAAW,EACzB,GAAG,EAAE,OAAO,GACZ,IACK,EACR,OAAO,CAAC,OAAO,IAAI,CAClB,eAAK,SAAS,EAAC,mBAAmB,6BACnB,GAAG,EACf,WAAW;gCACV,CAAC,CAAC,mBAAmB,CAAC,WAAW,CAAC;gCAClC,CAAC,CAAC,qDAAqD,IACrD,CACP,IACA,CACJ,CAAA;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAA;YAChD,OAAO,QAAQ,EAAE,CAAA;QACnB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,eAAe,uBAAuB,CAAA"}
@@ -115,7 +115,10 @@ export type GetContentByIdData = {
115
115
  items?: MayBe<Array<{
116
116
  __typename?: MayBe<string>;
117
117
  _type?: MayBe<string>;
118
- } & Record<string, any>>>;
118
+ } & Record<string, any>> | ({
119
+ __typename?: MayBe<string>;
120
+ _type?: MayBe<string>;
121
+ } & Record<string, any>)>;
119
122
  total?: MayBe<number>;
120
123
  }>;
121
124
  };
@@ -1,9 +1,10 @@
1
1
  import { type NextRequest, NextResponse } from 'next/server.js';
2
2
  import { revalidatePath, revalidateTag } from "next/cache.js";
3
- import { type ClientFactory, OptiCmsSchema, RouteResolver, type Route } from '@remkoj/optimizely-graph-client';
3
+ import { type ClientFactory, type IOptiGraphClient, OptiCmsSchema, RouteResolver, type Route } from '@remkoj/optimizely-graph-client';
4
4
  export { type NextRequest, NextResponse } from 'next/server.js';
5
5
  export type PublishApiHandler = (req: NextRequest) => Promise<NextResponse<PublishApiResponse>> | NextResponse<PublishApiResponse>;
6
- export type PublishScopes = NonNullable<Parameters<typeof revalidatePath>[1]>;
6
+ export type PublishScopes = Parameters<typeof revalidatePath>[1];
7
+ export type DynamicScopes = NonNullable<Parameters<typeof revalidatePath>[1]>;
7
8
  export type PublishHookData = {
8
9
  timestamp: string;
9
10
  tenantId: string;
@@ -49,6 +50,10 @@ export type PublishApiOptions = {
49
50
  * The scopes for which to revalidate the cache
50
51
  */
51
52
  scopes: Array<PublishScopes>;
53
+ /**
54
+ * The scopes for which to revalidate the cache for dynamic routes
55
+ */
56
+ dynamicScopes: Array<DynamicScopes>;
52
57
  /**
53
58
  * The tags to revalidate the cache for
54
59
  */
@@ -63,7 +68,7 @@ export type PublishApiOptions = {
63
68
  * The Optimizely Graph client to use for Graph Operations needed to publish
64
69
  * content
65
70
  */
66
- client: ClientFactory;
71
+ client: ClientFactory | IOptiGraphClient;
67
72
  /**
68
73
  * The router to use when the publishing optimization is enabled
69
74
  */
@@ -90,6 +95,8 @@ export type PublishApiOptions = {
90
95
  itemIdToKeyAndLocale: (itemId: string, subject?: PublishHookData['type']['subject']) => {
91
96
  key: string;
92
97
  locale: string;
98
+ version?: string;
99
+ status?: string;
93
100
  } | undefined;
94
101
  /**
95
102
  * Basic filter for bulk operations, to only select those items in a bulk operation
@@ -102,8 +109,11 @@ export type PublishApiOptions = {
102
109
  };
103
110
  export type PublishApiResponse = {
104
111
  revalidated: {
105
- paths: Array<Parameters<typeof revalidatePath>[0]>;
106
- scopes: Array<PublishScopes>;
112
+ paths: Array<string | {
113
+ path: string;
114
+ scope: PublishScopes;
115
+ }>;
116
+ scopes?: Array<PublishScopes>;
107
117
  tags: Array<Parameters<typeof revalidateTag>[0]>;
108
118
  };
109
119
  optimized: boolean;
@@ -113,5 +123,11 @@ export type PublishApiResponse = {
113
123
  optimized?: boolean;
114
124
  error: string;
115
125
  };
126
+ /**
127
+ * Create the default handler for webhooks received from Optimizely Graph.
128
+ *
129
+ * @param options The configuration fo the API
130
+ * @returns The created API Handler
131
+ */
116
132
  export declare function createPublishApi(options?: Partial<PublishApiOptions>): PublishApiHandler;
117
133
  export default createPublishApi;
@@ -1,32 +1,43 @@
1
1
  import { NextResponse } from 'next/server.js';
2
2
  import { revalidatePath, revalidateTag } from "next/cache.js";
3
3
  import { RouteResolver } from '@remkoj/optimizely-graph-client';
4
- import { createClient } from '@remkoj/optimizely-cms-nextjs';
4
+ import { createAuthorizedClient } from '../client.js';
5
5
  export { NextResponse } from 'next/server.js';
6
6
  const publishApiDefaults = {
7
7
  paths: ['/', '/[[...path]]', '/[lang]', '/[lang]/[[...path]]'],
8
8
  additionalPaths: [],
9
- scopes: ['page', 'layout'],
9
+ scopes: [undefined, 'layout'],
10
+ dynamicScopes: ['page', 'layout'],
10
11
  tags: [],
11
12
  optimizePublish: false,
12
- client: createClient,
13
+ client: createAuthorizedClient,
13
14
  router: {},
14
15
  hookDataFilter: (hookType) => hookType.subject == 'bulk' && hookType.action == 'completed',
15
16
  bulkItemStatusFilter: (bulkItemStatus) => bulkItemStatus == "indexed" || bulkItemStatus == "deleted",
16
17
  itemIdToKeyAndLocale: (id) => {
17
- const [key, versionId, locale] = id.split('_');
18
+ const idParts = id.split('_');
19
+ // The version may or may not be in the ID, so parsing accordingly
20
+ const [key, version, locale, status] = idParts.length >= 4 ?
21
+ idParts :
22
+ [idParts[0], undefined, idParts[1], idParts[2]];
23
+ // Only return a value if we have both a key & locale
18
24
  if (key && locale)
19
- return { key: key.replaceAll('-', ''), locale, versionId };
25
+ return { key: key.replaceAll('-', ''), locale, version, status };
20
26
  return undefined;
21
27
  }
22
28
  };
29
+ /**
30
+ * Create the default handler for webhooks received from Optimizely Graph.
31
+ *
32
+ * @param options The configuration fo the API
33
+ * @returns The created API Handler
34
+ */
23
35
  export function createPublishApi(options) {
24
- const { paths, additionalPaths, optimizePublish, client: clientFactory, router: routerFactory, hookDataFilter, tags, scopes, itemIdToKeyAndLocale, bulkItemStatusFilter } = {
36
+ const { paths, additionalPaths, optimizePublish, client: clientFactory, router: routerFactory, hookDataFilter, tags, scopes, dynamicScopes, itemIdToKeyAndLocale, bulkItemStatusFilter } = {
25
37
  ...publishApiDefaults,
26
38
  ...options
27
39
  };
28
- const client = clientFactory();
29
- function getRouteResolver() {
40
+ function getRouteResolver(client) {
30
41
  return typeof routerFactory == 'function' ? routerFactory() : new RouteResolver(client, routerFactory?.urlBase, routerFactory?.resolverMode ?? client.currentOptiCmsSchema);
31
42
  }
32
43
  function resolveTags(data) {
@@ -36,13 +47,31 @@ export function createPublishApi(options) {
36
47
  return Promise.resolve(tags);
37
48
  return Promise.resolve([tags]);
38
49
  }
39
- function publishAll(targetPaths, targetTags, optimized = false) {
40
- scopes.forEach(scope => {
41
- targetPaths.forEach(path => revalidatePath(path, scope));
42
- additionalPaths.forEach(path => revalidatePath(path, scope));
50
+ function isDynamic(path) {
51
+ return path.indexOf("[") >= 0;
52
+ }
53
+ function publishAll(targetPaths, targetTags, optimized = false, publishScopes = scopes, dscopes = dynamicScopes) {
54
+ const publishedPathAndScopes = [];
55
+ // Publish the paths targeted explicitly
56
+ targetPaths.forEach(path => {
57
+ const scopes = isDynamic(path) ? dscopes : publishScopes;
58
+ scopes.forEach(scope => {
59
+ revalidatePath(path, scope);
60
+ publishedPathAndScopes.push({ path, scope });
61
+ });
62
+ });
63
+ // Publish the enforced paths
64
+ additionalPaths.forEach(path => {
65
+ const scopes = isDynamic(path) ? dscopes : publishScopes;
66
+ scopes.forEach(scope => {
67
+ revalidatePath(path, scope);
68
+ publishedPathAndScopes.push({ path, scope });
69
+ });
43
70
  });
71
+ // Publish the tags te published
44
72
  targetTags.forEach(tag => revalidateTag(tag));
45
- return { revalidated: { scopes, paths: [...targetPaths, ...additionalPaths], tags: targetTags }, optimized };
73
+ // Build the outcome
74
+ return { revalidated: { paths: publishedPathAndScopes, tags: targetTags }, optimized };
46
75
  }
47
76
  function getItemIds(hookData) {
48
77
  let items = [];
@@ -68,6 +97,7 @@ export function createPublishApi(options) {
68
97
  }
69
98
  const requestHandler = async (req) => {
70
99
  // Validate the request
100
+ const client = typeof (clientFactory) == 'object' ? clientFactory : clientFactory();
71
101
  const publishToken = client.siteInfo.publishToken;
72
102
  const requestToken = getRequestToken(req);
73
103
  if (!publishToken) {
@@ -88,21 +118,26 @@ export function createPublishApi(options) {
88
118
  // Purge everything if not known (e.g. for a GET request)
89
119
  if (!webhookData) {
90
120
  console.error("[Publish-API] No hook data received, optimization disabled");
91
- return NextResponse.json(publishAll(paths, publishTags));
121
+ const responseData = publishAll(paths, publishTags);
122
+ console.debug("[Publish-API] Publish result:", JSON.stringify(responseData));
123
+ return NextResponse.json(responseData);
92
124
  }
93
125
  // Make sure we're allowed to process the hook
94
126
  if (!hookDataFilter(webhookData.type)) {
95
127
  console.log("[Publish-API] Webhook ignored due to hookDataFilter", webhookData.type);
96
- return NextResponse.json({ optimized: false, revalidated: { paths: [], scopes: [], tags: [] } });
128
+ return NextResponse.json({ optimized: false, revalidated: { paths: [], tags: [] } });
97
129
  }
98
130
  // If we're not optimizing, just publish everything
99
- if (!optimizePublish)
100
- return NextResponse.json(publishAll(paths, publishTags));
131
+ if (!optimizePublish) {
132
+ const responseData = publishAll(paths, publishTags);
133
+ console.debug("[Publish-API] Publish result:", JSON.stringify(responseData));
134
+ return NextResponse.json(responseData);
135
+ }
101
136
  // Get the actual content ids from the hook data
102
137
  const contentIds = getItemIds(webhookData);
103
138
  console.debug("[Publish-API] Content items to publish:", JSON.stringify(contentIds));
104
139
  // Resolve the contentids to paths
105
- const router = getRouteResolver();
140
+ const router = getRouteResolver(client);
106
141
  const results = await Promise.allSettled(contentIds.map(contentId => router.getContentInfoById(contentId.key, contentId.locale)));
107
142
  const pathsToFlush = results.map(result => {
108
143
  if (result.status == "rejected") {
@@ -113,7 +148,9 @@ export function createPublishApi(options) {
113
148
  }).filter(x => x);
114
149
  console.debug("[Publish-API] Content paths to publish:", JSON.stringify(pathsToFlush));
115
150
  // Flush these paths
116
- return NextResponse.json(publishAll(pathsToFlush, publishTags, true));
151
+ const responseData = publishAll(pathsToFlush, publishTags, true);
152
+ console.debug("[Publish-API] Publish result:", JSON.stringify(responseData));
153
+ return NextResponse.json(responseData);
117
154
  }
118
155
  catch (e) {
119
156
  console.error("[Publish-API] Error handling publishing request", e?.message ?? e);
@@ -1 +1 @@
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,EAAqC,aAAa,EAAc,MAAM,iCAAiC,CAAA;AAC9G,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAE5D,OAAO,EAAoB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAmH/D,MAAM,kBAAkB,GAAsB;IAC5C,KAAK,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,qBAAqB,CAAC;IAC9D,eAAe,EAAE,EAAE;IACnB,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,IAAI,EAAE,EAAE;IACR,eAAe,EAAE,KAAK;IACtB,MAAM,EAAE,YAAY;IACpB,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,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC9C,IAAI,GAAG,IAAI,MAAM;YACf,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;QAC5D,OAAO,SAAS,CAAA;IAClB,CAAC;CACF,CAAA;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAoC;IACnE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,GAAsB;QAC7L,GAAG,kBAAkB;QACrB,GAAG,OAAO;KACX,CAAA;IAED,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,SAAS,gBAAgB;QACvB,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,UAAU,CAAC,WAAqB,EAAE,UAAsD,EAAE,YAAqB,KAAK;QAC3H,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;YACxD,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7C,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,eAAe,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,CAAA;IAC9G,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,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,OAAO,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAA;YAC1D,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,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;YAClG,CAAC;YAED,mDAAmD;YACnD,IAAI,CAAC,eAAe;gBAClB,OAAO,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAA;YAE1D,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,EAAE,CAAA;YACjC,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,OAAO,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAA;QACvE,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"}
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,CAAC,CAAC,CAAA;QAE7C,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/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": "4.3.1",
5
+ "version": "5.0.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",
@@ -44,29 +44,29 @@
44
44
  }
45
45
  },
46
46
  "devDependencies": {
47
- "@remkoj/optimizely-cms-react": "4.3.1",
48
- "@remkoj/optimizely-graph-client": "4.3.1",
47
+ "@remkoj/optimizely-cms-react": "5.0.0",
48
+ "@remkoj/optimizely-graph-client": "5.0.0",
49
49
  "@types/negotiator": "^0.6.3",
50
- "@types/node": "^22.13.5",
51
- "@types/react": "^18.3.18",
52
- "@types/react-dom": "18.3.5",
50
+ "@types/node": "^22.14.1",
51
+ "@types/react": "^18.3.20",
52
+ "@types/react-dom": "18.3.6",
53
53
  "graphql": "^16.10.0",
54
54
  "graphql-request": "^6.1.0",
55
- "next": "^14.2.24",
55
+ "next": "^14.2.28",
56
56
  "prop-types": "^15.8.1",
57
57
  "react": "^18.3.1",
58
58
  "react-dom": "^18.3.1",
59
59
  "scheduler": "^0.25.0",
60
- "typescript": "^5.7.3"
60
+ "typescript": "^5.8.3"
61
61
  },
62
62
  "dependencies": {
63
- "@formatjs/intl-localematcher": "^0.6.0",
63
+ "@formatjs/intl-localematcher": "^0.6.1",
64
64
  "deepmerge": "^4.3.1",
65
65
  "negotiator": "^1.0.0"
66
66
  },
67
67
  "peerDependencies": {
68
- "@remkoj/optimizely-cms-react": "^4",
69
- "@remkoj/optimizely-graph-client": "^4",
68
+ "@remkoj/optimizely-cms-react": "^5.0.0",
69
+ "@remkoj/optimizely-graph-client": "^5.0.0",
70
70
  "graphql": "^16",
71
71
  "graphql-request": "^6",
72
72
  "next": "^14",