@remkoj/optimizely-cms-nextjs 6.0.0-pre1 → 6.0.0-pre11
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/LICENSE +12 -12
- package/dist/client.d.ts +6 -1
- package/dist/client.js +29 -3
- package/dist/client.js.map +1 -1
- package/dist/cms-page/_base.d.ts +16 -0
- package/dist/cms-page/_base.js +28 -0
- package/dist/cms-page/_base.js.map +1 -0
- package/dist/cms-page/_getInfoByPath.d.ts +5 -0
- package/dist/cms-page/_getInfoByPath.js +22 -0
- package/dist/cms-page/_getInfoByPath.js.map +1 -0
- package/dist/cms-page/_globals.d.ts +1 -0
- package/dist/cms-page/_globals.js +2 -0
- package/dist/cms-page/_globals.js.map +1 -0
- package/dist/cms-page/_loadContentByPath.d.ts +5 -0
- package/dist/cms-page/_loadContentByPath.js +52 -0
- package/dist/cms-page/_loadContentByPath.js.map +1 -0
- package/dist/cms-page/data.d.ts +3 -2
- package/dist/cms-page/middleware.js +2 -0
- package/dist/cms-page/middleware.js.map +1 -1
- package/dist/cms-page/page.d.ts +22 -9
- package/dist/cms-page/page.js +131 -134
- package/dist/cms-page/page.js.map +1 -1
- package/dist/components/shared/types.d.ts +13 -1
- package/dist/metadata.js +8 -1
- package/dist/metadata.js.map +1 -1
- package/dist/ope/data.js +3 -0
- package/dist/ope/data.js.map +1 -1
- package/dist/ope/middleware.js +1 -1
- package/dist/ope/middleware.js.map +1 -1
- package/dist/ope/page.js +20 -6
- package/dist/ope/page.js.map +1 -1
- package/dist/publish/index.js +1 -1
- package/dist/publish/index.js.map +1 -1
- package/package.json +17 -17
package/LICENSE
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
Copyright 2024 Remko Jantzen
|
|
2
|
-
|
|
3
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
you may not use this file except in compliance with the License.
|
|
5
|
-
You may obtain a copy of the License at
|
|
6
|
-
|
|
7
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
|
|
9
|
-
Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
See the License for the specific language governing permissions and
|
|
1
|
+
Copyright 2024 Remko Jantzen
|
|
2
|
+
|
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
you may not use this file except in compliance with the License.
|
|
5
|
+
You may obtain a copy of the License at
|
|
6
|
+
|
|
7
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
|
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
See the License for the specific language governing permissions and
|
|
13
13
|
limitations under the License.
|
package/dist/client.d.ts
CHANGED
|
@@ -2,7 +2,8 @@ import 'server-only';
|
|
|
2
2
|
import { type IOptiGraphClient, type OptimizelyGraphConfig } from '@remkoj/optimizely-graph-client';
|
|
3
3
|
/**
|
|
4
4
|
* Create a new client instance. This is a direct wrapper for the `createClient` function
|
|
5
|
-
* exported from `@remkoj/optimizely-graph-client`.
|
|
5
|
+
* exported from `@remkoj/optimizely-graph-client`. It creates the instance with the
|
|
6
|
+
* recommended configuration for published content in a Next.JS frontend.
|
|
6
7
|
*
|
|
7
8
|
* @returns The newly created GraphQL Client
|
|
8
9
|
*/
|
|
@@ -12,6 +13,10 @@ export declare function createClient(): IOptiGraphClient;
|
|
|
12
13
|
* wraps the `createClient` function from `@remkoj/optimizely-graph-client` and applies some
|
|
13
14
|
* configuration defaults.
|
|
14
15
|
*
|
|
16
|
+
* It creates the instance with the recommended configuration for published content in a Next.JS
|
|
17
|
+
* frontend. When the token is a non-empty string, the configuration applied is intended to access
|
|
18
|
+
* non-published content in a Next.JS frontend, for example in the preview endpoint of Optimizely CMS.
|
|
19
|
+
*
|
|
15
20
|
* @returns The newly created GraphQL Client
|
|
16
21
|
*/
|
|
17
22
|
export declare function createAuthorizedClient(token?: string, config?: OptimizelyGraphConfig): IOptiGraphClient;
|
package/dist/client.js
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import 'server-only';
|
|
2
2
|
import { createClient as createBaseClient, AuthMode } from '@remkoj/optimizely-graph-client';
|
|
3
|
+
import { isNonEmptyString } from '@remkoj/optimizely-cms-react/utils';
|
|
4
|
+
const AuthModeValues = Object.getOwnPropertyNames(AuthMode).reduce((a, b) => {
|
|
5
|
+
//@ts-ignore
|
|
6
|
+
a.push(AuthMode[b]);
|
|
7
|
+
return a;
|
|
8
|
+
}, []);
|
|
3
9
|
/**
|
|
4
10
|
* Create a new client instance. This is a direct wrapper for the `createClient` function
|
|
5
|
-
* exported from `@remkoj/optimizely-graph-client`.
|
|
11
|
+
* exported from `@remkoj/optimizely-graph-client`. It creates the instance with the
|
|
12
|
+
* recommended configuration for published content in a Next.JS frontend.
|
|
6
13
|
*
|
|
7
14
|
* @returns The newly created GraphQL Client
|
|
8
15
|
*/
|
|
@@ -14,18 +21,37 @@ export function createClient() {
|
|
|
14
21
|
* wraps the `createClient` function from `@remkoj/optimizely-graph-client` and applies some
|
|
15
22
|
* configuration defaults.
|
|
16
23
|
*
|
|
24
|
+
* It creates the instance with the recommended configuration for published content in a Next.JS
|
|
25
|
+
* frontend. When the token is a non-empty string, the configuration applied is intended to access
|
|
26
|
+
* non-published content in a Next.JS frontend, for example in the preview endpoint of Optimizely CMS.
|
|
27
|
+
*
|
|
17
28
|
* @returns The newly created GraphQL Client
|
|
18
29
|
*/
|
|
19
30
|
export function createAuthorizedClient(token, config) {
|
|
20
|
-
|
|
31
|
+
// Check the token
|
|
32
|
+
const isPotentialValidToken = isNonEmptyString(token);
|
|
33
|
+
// Create the client, but keep the cache disabled if we've got a non-empty string as token
|
|
34
|
+
const client = createBaseClient(config, undefined, {
|
|
35
|
+
nextJsFetchDirectives: true,
|
|
36
|
+
cache: !isPotentialValidToken,
|
|
37
|
+
queryCache: !isPotentialValidToken,
|
|
38
|
+
});
|
|
21
39
|
if (client.debug)
|
|
22
40
|
console.log('⚪ [ContentGraph Client] Created new Optimizely Graph client');
|
|
23
41
|
// Apply token if needed
|
|
24
|
-
if (
|
|
42
|
+
if (isPotentialValidToken) {
|
|
25
43
|
if (token == client.siteInfo.publishToken) {
|
|
26
44
|
console.warn(`🔐 [ContentGraph Client] Allowed authenticated access by publish token, switching to HMAC`);
|
|
27
45
|
client.updateAuthentication(AuthMode.HMAC);
|
|
28
46
|
}
|
|
47
|
+
else if (AuthModeValues.includes(token)) {
|
|
48
|
+
if (client.isDebugOrDevelopment() && (token === AuthMode.HMAC || token === AuthMode.Basic)) {
|
|
49
|
+
console.warn(`🔐 [ContentGraph Client] Allowing authenticated access by using a mode as token in development or debug`);
|
|
50
|
+
client.updateAuthentication(token);
|
|
51
|
+
}
|
|
52
|
+
else
|
|
53
|
+
console.warn(`🔐 [ContentGraph Client] Blocked authenticated access by using a mode as token`);
|
|
54
|
+
}
|
|
29
55
|
else {
|
|
30
56
|
client.updateAuthentication(token);
|
|
31
57
|
}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAC/I,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAErE,MAAM,cAAc,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAW,CAAC,CAAW,EAAE,CAAS,EAAE,EAAE;IACtG,YAAY;IACZ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,CAAC,CAAA;AACV,CAAC,EAAE,EAAc,CAAC,CAAA;AAElB;;;;;;GAMG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,sBAAsB,EAAE,CAAA;AACjC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc,EAAE,MAA8B;IACnF,kBAAkB;IAClB,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAErD,0FAA0F;IAC1F,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE;QACjD,qBAAqB,EAAE,IAAI;QAC3B,KAAK,EAAE,CAAC,qBAAqB;QAC7B,UAAU,EAAE,CAAC,qBAAqB;KACnC,CAAC,CAAA;IACF,IAAI,MAAM,CAAC,KAAK;QACd,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAA;IAE5E,wBAAwB;IACxB,IAAI,qBAAqB,EAAE,CAAC;QAC1B,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,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAI,IAAI,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3F,OAAO,CAAC,IAAI,CAAC,yGAAyG,CAAC,CAAA;gBACvH,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;YACpC,CAAC;;gBACC,OAAO,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAA;QAClG,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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type IOptiGraphClient } from '@remkoj/optimizely-graph-client/client';
|
|
2
|
+
import { type ChannelDefinition } from "@remkoj/optimizely-graph-client/channels";
|
|
3
|
+
import { type Route } from "@remkoj/optimizely-graph-client/router";
|
|
4
|
+
import { type ContentLinkWithLocale } from "@remkoj/optimizely-graph-client";
|
|
5
|
+
export declare enum SystemLocales {
|
|
6
|
+
All = "ALL",
|
|
7
|
+
Neutral = "NEUTRAL"
|
|
8
|
+
}
|
|
9
|
+
export type LookupResponse = [
|
|
10
|
+
Route | null,
|
|
11
|
+
ContentLinkWithLocale,
|
|
12
|
+
string[],
|
|
13
|
+
string,
|
|
14
|
+
Record<string, any> | null
|
|
15
|
+
];
|
|
16
|
+
export declare function getChannelId(client: IOptiGraphClient, channel?: ChannelDefinition | string): string | undefined;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { OptiCmsSchema } from '@remkoj/optimizely-graph-client/client';
|
|
2
|
+
export var SystemLocales;
|
|
3
|
+
(function (SystemLocales) {
|
|
4
|
+
SystemLocales["All"] = "ALL";
|
|
5
|
+
SystemLocales["Neutral"] = "NEUTRAL";
|
|
6
|
+
})(SystemLocales || (SystemLocales = {}));
|
|
7
|
+
export function getChannelId(client, channel) {
|
|
8
|
+
if (!channel)
|
|
9
|
+
return undefined;
|
|
10
|
+
if (isString(channel))
|
|
11
|
+
return channel;
|
|
12
|
+
return client.currentOptiCmsSchema == OptiCmsSchema.CMS12
|
|
13
|
+
? channel.id
|
|
14
|
+
: getPrimaryURL(channel).origin;
|
|
15
|
+
}
|
|
16
|
+
function getPrimaryURL(chnl) {
|
|
17
|
+
const dd = chnl.domains.filter((x) => x.isPrimary).at(0) ?? chnl.domains.at(0);
|
|
18
|
+
if (!dd)
|
|
19
|
+
return chnl.getPrimaryDomain();
|
|
20
|
+
const s = dd.name.startsWith('localhost') || dd.name.indexOf('.local') > 0
|
|
21
|
+
? 'http:'
|
|
22
|
+
: 'https:';
|
|
23
|
+
return new URL(`${s}//${dd.name}`);
|
|
24
|
+
}
|
|
25
|
+
function isString(toTest) {
|
|
26
|
+
return typeof toTest === 'string';
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=_base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_base.js","sourceRoot":"","sources":["../../src/cms-page/_base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAyB,MAAM,wCAAwC,CAAA;AAK7F,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,4BAAW,CAAA;IACX,oCAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAUD,MAAM,UAAU,YAAY,CAAC,MAAwB,EAAE,OAAoC;IACzF,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAA;IAClB,IAAI,QAAQ,CAAC,OAAO,CAAC;QACnB,OAAO,OAAO,CAAA;IAChB,OAAO,MAAM,CAAC,oBAAoB,IAAI,aAAa,CAAC,KAAK;QACvD,CAAC,CAAC,OAAO,CAAC,EAAE;QACZ,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;AACnC,CAAC;AAED,SAAS,aAAa,CAAC,IAAuB;IAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9E,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAA;IACvC,MAAM,CAAC,GACL,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9D,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,QAAQ,CAAA;IACd,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,QAAQ,CAAC,MAAW;IAC3B,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type IOptiGraphClient } from "@remkoj/optimizely-graph-client/client";
|
|
2
|
+
import { type IRouteResolver } from "@remkoj/optimizely-graph-client/router";
|
|
3
|
+
import { type ChannelDefinition } from "@remkoj/optimizely-graph-client/channels";
|
|
4
|
+
import { type LookupResponse } from "./_base.js";
|
|
5
|
+
export declare function getInfoByPath(client: IOptiGraphClient, routerFactory: (client?: IOptiGraphClient) => IRouteResolver, requestPath: string, channel?: ChannelDefinition | string, variation?: string): Promise<LookupResponse | undefined>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use server';
|
|
2
|
+
import { ifChannelDefinition } from "@remkoj/optimizely-graph-client/channels";
|
|
3
|
+
import { getChannelId } from "./_base.js";
|
|
4
|
+
import { localeToGraphLocale } from "./utils.js";
|
|
5
|
+
// Helper function to obtain the info by path
|
|
6
|
+
export async function getInfoByPath(client, routerFactory, requestPath, channel, variation) {
|
|
7
|
+
const channelId = getChannelId(client, channel);
|
|
8
|
+
const router = routerFactory(client);
|
|
9
|
+
const route = await router.getContentInfoByPath(requestPath, channelId, variation);
|
|
10
|
+
if (!route) {
|
|
11
|
+
if (client.debug)
|
|
12
|
+
console.warn(`🟠 [CmsPage.getInfoByPath] The RouteResolver was unable to resolve the route information for "${requestPath}"`);
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
const contentLink = router.routeToContentLink(route);
|
|
16
|
+
const contentType = route.contentType;
|
|
17
|
+
const graphLocale = localeToGraphLocale(route.locale, ifChannelDefinition(channel));
|
|
18
|
+
if (client.debug)
|
|
19
|
+
console.log(`⚪ [CmsPage.getInfoByPath] Resolved path "${requestPath}"${variation ? ` in variation ${variation}` : ""} to content ${JSON.stringify(contentLink)} of type ${contentType.join('/')} using RouteResolver`);
|
|
20
|
+
return [route, contentLink, contentType, graphLocale, null];
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=_getInfoByPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_getInfoByPath.js","sourceRoot":"","sources":["../../src/cms-page/_getInfoByPath.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAIZ,OAAO,EAA0B,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAEvG,OAAO,EAAE,YAAY,EAAuB,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,6CAA6C;AAC7C,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAwB,EACxB,aAA4D,EAC5D,WAAmB,EACnB,OAAoC,EACpC,SAAkB;IAElB,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;IAClF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,MAAM,CAAC,KAAK;YACd,OAAO,CAAC,IAAI,CACV,iGAAiG,WAAW,GAAG,CAChH,CAAA;QACH,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACpD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;IACrC,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAA;IACnF,IAAI,MAAM,CAAC,KAAK;QACd,OAAO,CAAC,GAAG,CACT,4CAA4C,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAC1M,CAAA;IACH,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,CAAmB,CAAA;AAC/E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_globals.js","sourceRoot":"","sources":["../../src/cms-page/_globals.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type IOptiGraphClient } from "@remkoj/optimizely-graph-client";
|
|
2
|
+
import { type ChannelDefinition } from "@remkoj/optimizely-graph-client/channels";
|
|
3
|
+
import { type GetContentByPathMethod } from './data.js';
|
|
4
|
+
import { SystemLocales, type LookupResponse } from "./_base.js";
|
|
5
|
+
export declare function loadContentByPath<LocaleEnum = SystemLocales>(client: IOptiGraphClient, getContentByPath: GetContentByPathMethod<LocaleEnum>, requestPath: string, channel?: ChannelDefinition | string, locale?: LocaleEnum | LocaleEnum[], variation?: string): Promise<LookupResponse | undefined | null>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use server';
|
|
2
|
+
import { ifChannelDefinition } from "@remkoj/optimizely-graph-client/channels";
|
|
3
|
+
import { normalizeContentLinkWithLocale, isContentLinkWithSetLocale } from '@remkoj/optimizely-graph-client/utils';
|
|
4
|
+
import { Utils } from '@remkoj/optimizely-cms-react/rsc';
|
|
5
|
+
import { getChannelId } from "./_base.js";
|
|
6
|
+
import { localeToGraphLocale } from './utils.js';
|
|
7
|
+
export async function loadContentByPath(client, getContentByPath, requestPath, channel, locale, variation) {
|
|
8
|
+
if (client.debug)
|
|
9
|
+
console.log(`⚪ [CmsPage.loadContentByPath] Loading content for path "${requestPath}" using getContentByPath method`);
|
|
10
|
+
const channelId = getChannelId(client, channel);
|
|
11
|
+
const pathForRequest = [
|
|
12
|
+
requestPath,
|
|
13
|
+
requestPath.endsWith('/')
|
|
14
|
+
? requestPath.substring(0, requestPath.length - 1)
|
|
15
|
+
: requestPath + '/',
|
|
16
|
+
].filter((x) => x);
|
|
17
|
+
const requestVars = {
|
|
18
|
+
path: pathForRequest,
|
|
19
|
+
siteId: channelId,
|
|
20
|
+
locale,
|
|
21
|
+
variation: variation ? { include: "SOME", value: [variation] } : undefined
|
|
22
|
+
};
|
|
23
|
+
if (client.isPreviewEnabled())
|
|
24
|
+
requestVars.changeset = client?.getChangeset();
|
|
25
|
+
if (client.debug)
|
|
26
|
+
console.log(`⚪ [CmsPage.loadContentByPath] Processed Next.JS route => getContentByPath Variables: ${JSON.stringify(requestVars)}`);
|
|
27
|
+
const response = await getContentByPath(client, requestVars);
|
|
28
|
+
if ((response?.content?.total ?? 0) === 0) {
|
|
29
|
+
console.error(`🔴 [CmsPage.loadContentByPath] Unable to load content for ${requestPath}, empty resultset received`);
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
const info = Array.isArray(response?.content?.items)
|
|
33
|
+
? response?.content?.items[0]
|
|
34
|
+
: response?.content?.items;
|
|
35
|
+
if (!info) {
|
|
36
|
+
console.error(`🔴 [CmsPage.loadContentByPath] Unable to load content for ${requestPath}, data received: `, response);
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
else if ((response?.content?.total ?? 0) > 1) {
|
|
40
|
+
console.warn(`🟠 [CmsPage.loadContentByPath] Resolving content for ${requestPath}, yielded ${response?.content?.total ?? 0} items, picked:`, info);
|
|
41
|
+
}
|
|
42
|
+
// Extract the type & link
|
|
43
|
+
const contentType = Utils.normalizeContentType(info._metadata?.types);
|
|
44
|
+
const contentLink = normalizeContentLinkWithLocale(info._metadata);
|
|
45
|
+
if (!isContentLinkWithSetLocale(contentLink)) {
|
|
46
|
+
console.error('🔴 [CmsPage.loadContentByPath] Unable to infer the contentLink from the retrieved content, this should not have happened!');
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
const graphLocale = localeToGraphLocale(contentLink.locale, ifChannelDefinition(channel));
|
|
50
|
+
return [null, contentLink, contentType, graphLocale, info];
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=_loadContentByPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_loadContentByPath.js","sourceRoot":"","sources":["../../src/cms-page/_loadContentByPath.ts"],"names":[],"mappings":"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"}
|
package/dist/cms-page/data.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { IOptiGraphClient, VariationInput } from "@remkoj/optimizely-graph-client";
|
|
2
|
+
export type { VariationInput } from "@remkoj/optimizely-graph-client";
|
|
2
3
|
export type GetContentByPathVariables<LocaleType = string> = {
|
|
3
4
|
path: string | string[];
|
|
4
5
|
locale?: Array<LocaleType> | LocaleType;
|
|
5
6
|
siteId?: string;
|
|
6
7
|
changeset?: string | null;
|
|
8
|
+
variation?: VariationInput | null;
|
|
7
9
|
};
|
|
8
10
|
type MayBe<T> = T extends Array<infer R> ? Array<R | null> | null : T | null;
|
|
9
11
|
export type GetContentByPathResponse = {
|
|
@@ -32,4 +34,3 @@ export type GetMetaDataByPathResponse = {
|
|
|
32
34
|
};
|
|
33
35
|
export type GetContentByPathMethod<LocaleType = string> = (client: IOptiGraphClient, variables: GetContentByPathVariables<LocaleType>) => Promise<GetContentByPathResponse>;
|
|
34
36
|
export type GetMetaDataByPathMethod<LocaleType = string> = (client: IOptiGraphClient, variables: GetContentByPathVariables<LocaleType>) => Promise<GetMetaDataByPathResponse>;
|
|
35
|
-
export {};
|
|
@@ -24,6 +24,8 @@ export function withLanguagePrefix(next, channel) {
|
|
|
24
24
|
}
|
|
25
25
|
const newMiddleware = (request, ...params) => {
|
|
26
26
|
const pathname = request.nextUrl.pathname;
|
|
27
|
+
if (pathname.startsWith("/_") || pathname.startsWith("/."))
|
|
28
|
+
return next(request, ...params);
|
|
27
29
|
const DEBUG = process.env.NODE_ENV == 'development';
|
|
28
30
|
const pathnameIsMissingLocale = !slugs.some(slug => pathname.toLowerCase().startsWith(`/${slug.toLowerCase()}/`) || pathname.toLowerCase() === `/${slug.toLowerCase()}`);
|
|
29
31
|
if (pathnameIsMissingLocale) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/cms-page/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,EAAE,YAAY,EAAyC,MAAM,gBAAgB,CAAA;AAEpF,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACpD,OAAO,UAAU,MAAM,YAAY,CAAA;AAEnC;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAA2B,IAAO,EAAE,OAA0B;
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/cms-page/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,EAAE,YAAY,EAAyC,MAAM,gBAAgB,CAAA;AAEpF,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACpD,OAAO,UAAU,MAAM,YAAY,CAAA;AAEnC;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAA2B,IAAO,EAAE,OAA0B;IAC9F,IAAI,CAAC,OAAO;QACV,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IAEnF,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;IAEhC,SAAS,SAAS,CAAC,OAAoB;QACrC,MAAM,OAAO,GAA8B,EAAE,CAAA;QAC7C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QACrD,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAA;QACzD,OAAO,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,aAAa,GAAmB,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE;QAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAA;QACzC,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;YACxD,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAA;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAA;QACnD,MAAM,uBAAuB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QACxK,IAAI,uBAAuB,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;YACjC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YACxC,IAAI,KAAK;gBACP,OAAO,CAAC,GAAG,CAAC,8CAA8C,QAAQ,qBAAqB,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAA;YAC3G,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;YACtC,MAAM,CAAC,QAAQ,GAAG,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAA;YACvC,OAAO,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACnC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;aAC1B,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAA;IACjC,CAAC,CAAA;IACD,OAAO,aAAkB,CAAA;AAC3B,CAAC"}
|
package/dist/cms-page/page.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ import { type ChannelDefinition } from '@remkoj/optimizely-graph-client/channels
|
|
|
6
6
|
import { type IOptiGraphClient } from '@remkoj/optimizely-graph-client/client';
|
|
7
7
|
import { type ComponentFactory } from '@remkoj/optimizely-cms-react/rsc';
|
|
8
8
|
import { type GetContentByPathMethod } from './data.js';
|
|
9
|
+
import { SystemLocales } from './_base.js';
|
|
10
|
+
export { SystemLocales } from './_base.js';
|
|
9
11
|
export type DefaultCmsPageParams = {
|
|
10
12
|
path?: string[];
|
|
11
13
|
};
|
|
@@ -30,7 +32,7 @@ export type OptiCmsNextJsPage<TParams extends Record<string, string | Array<stri
|
|
|
30
32
|
* @param resolving The metadata that is currently resolving
|
|
31
33
|
* @returns Updated metadat
|
|
32
34
|
*/
|
|
33
|
-
generateMetadata: (props: DefaultCmsPageProps<TParams, TSearchParams>, resolving: ResolvingMetadata) => Promise<Metadata
|
|
35
|
+
generateMetadata: (props: DefaultCmsPageProps<TParams, TSearchParams>, resolving: ResolvingMetadata) => Promise<Metadata> | Metadata;
|
|
34
36
|
/**
|
|
35
37
|
* The actual component that performs the page rendering
|
|
36
38
|
*
|
|
@@ -39,10 +41,6 @@ export type OptiCmsNextJsPage<TParams extends Record<string, string | Array<stri
|
|
|
39
41
|
*/
|
|
40
42
|
CmsPage: (props: DefaultCmsPageProps<TParams, TSearchParams>) => Promise<JSX.Element>;
|
|
41
43
|
};
|
|
42
|
-
export declare enum SystemLocales {
|
|
43
|
-
All = "ALL",
|
|
44
|
-
Neutral = "NEUTRAL"
|
|
45
|
-
}
|
|
46
44
|
export type CreatePageOptions<LocaleEnum = SystemLocales, TParams extends Record<string, string | Array<string> | undefined> = DefaultCmsPageParams, TSearchParams extends Record<string, string | Array<string> | undefined> = DefaultCmsPageSearchParams> = {
|
|
47
45
|
/**
|
|
48
46
|
* Main function used to retrieve the content by path
|
|
@@ -53,14 +51,19 @@ export type CreatePageOptions<LocaleEnum = SystemLocales, TParams extends Record
|
|
|
53
51
|
* page.
|
|
54
52
|
*
|
|
55
53
|
* @param token The token retrieved by the CMS Page from the context, always undefined
|
|
56
|
-
* @param scope The scope in which the client is being created, this allows for checking
|
|
54
|
+
* @param scope The scope in which the client is being created, this allows for checking
|
|
55
|
+
* draftMode in configuring the client
|
|
57
56
|
* @returns The client instance
|
|
58
57
|
*/
|
|
59
|
-
client: (token?: string, scope?: 'request' | 'metadata') => IOptiGraphClient | Promise<IOptiGraphClient
|
|
58
|
+
client: ((token?: string, scope?: 'request' | 'metadata') => IOptiGraphClient) | ((token?: string, scope?: 'request' | 'metadata') => Promise<IOptiGraphClient>);
|
|
60
59
|
/**
|
|
61
|
-
* The channel information used to resolve locales, domains and more
|
|
60
|
+
* The channel information used to resolve locales, domains and more.
|
|
61
|
+
*
|
|
62
|
+
* If provided with a string value, this is assumed to be the Application/Website identifier
|
|
63
|
+
* for the deployment (Base URL ***without trailing slash*** for SaaS CMS; Website GUID for
|
|
64
|
+
* CMS 12).
|
|
62
65
|
*/
|
|
63
|
-
channel?: ChannelDefinition;
|
|
66
|
+
channel?: ChannelDefinition | string;
|
|
64
67
|
/**
|
|
65
68
|
* Override the default RouteResolver that is used to discover the routes
|
|
66
69
|
* provided by the Optimizely CMS and to retrieve the content reference for
|
|
@@ -82,6 +85,16 @@ export type CreatePageOptions<LocaleEnum = SystemLocales, TParams extends Record
|
|
|
82
85
|
* function
|
|
83
86
|
*/
|
|
84
87
|
propsToCmsPath: (props: DefaultCmsPageProps<TParams, TSearchParams>) => Promise<string | null>;
|
|
88
|
+
/**
|
|
89
|
+
* Take the props received by the CmsPage from Next.JS and tranform those
|
|
90
|
+
* into a the page variant used by the CMS.
|
|
91
|
+
*
|
|
92
|
+
* @param props The Properties (slugs & search params) received
|
|
93
|
+
* by Next.JS
|
|
94
|
+
* @return The path to be retrieved from Router or getContentByPath
|
|
95
|
+
* function
|
|
96
|
+
*/
|
|
97
|
+
propsToVariant: (props: DefaultCmsPageProps<TParams, TSearchParams>) => Promise<string | null | undefined>;
|
|
85
98
|
/**
|
|
86
99
|
* Take the route from the Routing Service and transform that to the route
|
|
87
100
|
* params used by Next.JS. The default implementation assumes that the CMS
|
package/dist/cms-page/page.js
CHANGED
|
@@ -1,36 +1,54 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import 'server-only';
|
|
3
|
-
import deepmerge from 'deepmerge';
|
|
4
3
|
import { notFound } from 'next/navigation.js';
|
|
4
|
+
import { cache } from 'react';
|
|
5
|
+
// GraphQL Client & Services
|
|
5
6
|
import { RouteResolver, } from '@remkoj/optimizely-graph-client/router';
|
|
6
|
-
import {
|
|
7
|
-
import { normalizeContentLinkWithLocale } from '@remkoj/optimizely-graph-client/utils';
|
|
7
|
+
import { ifChannelDefinition, } from '@remkoj/optimizely-graph-client/channels';
|
|
8
8
|
// React Support
|
|
9
|
-
import { CmsContent,
|
|
9
|
+
import { CmsContent, ServerContext, } from '@remkoj/optimizely-cms-react/rsc';
|
|
10
10
|
// Within package
|
|
11
11
|
import { MetaDataResolver } from '../metadata.js';
|
|
12
|
-
import { urlToPath
|
|
12
|
+
import { urlToPath } from './utils.js';
|
|
13
13
|
import { createClient } from '../client.js';
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
import { getChannelId } from './_base.js';
|
|
15
|
+
import { loadContentByPath as loadContentByPathBase } from './_loadContentByPath.js';
|
|
16
|
+
import { getInfoByPath as getInfoByPathBase } from './_getInfoByPath.js';
|
|
17
|
+
const getInfoByPath = cache(getInfoByPathBase);
|
|
18
|
+
const loadContentByPath = cache(loadContentByPathBase);
|
|
19
|
+
export { SystemLocales } from './_base.js';
|
|
19
20
|
const CreatePageOptionDefaults = {
|
|
20
21
|
client: createClient,
|
|
21
22
|
routerFactory: (client) => new RouteResolver(client),
|
|
22
23
|
propsToCmsPath: async ({ params }) => buildRequestPath(await params),
|
|
24
|
+
propsToVariant: async ({ params }) => {
|
|
25
|
+
const pathSegments = (await params).path;
|
|
26
|
+
const variantPrefix = encodeURIComponent('var:');
|
|
27
|
+
const variantSegment = Array.isArray(pathSegments) ? pathSegments.filter(x => typeof x === 'string' && x.startsWith(variantPrefix)).at(0) : undefined;
|
|
28
|
+
return variantSegment ? variantSegment.substring(variantPrefix.length) : undefined;
|
|
29
|
+
},
|
|
23
30
|
routeToParams: (route) => {
|
|
24
|
-
|
|
31
|
+
const pathSegments = urlToPath(route.url);
|
|
32
|
+
if (route.variation)
|
|
33
|
+
pathSegments.push(`var:${route.variation}`);
|
|
34
|
+
return { path: pathSegments, lang: route.locale };
|
|
25
35
|
},
|
|
26
36
|
paramsToLocale: async (params, channel) => {
|
|
37
|
+
// If there's no channel, just return undefined
|
|
27
38
|
if (!channel)
|
|
28
39
|
return undefined;
|
|
40
|
+
// Check if we have a language, and if so, resolve based upon that language
|
|
29
41
|
const lang = (await params)?.lang;
|
|
30
42
|
const toTest = Array.isArray(lang) ? lang.at(0) : lang;
|
|
31
|
-
if (
|
|
32
|
-
return channel.defaultLocale;
|
|
33
|
-
|
|
43
|
+
if (toTest)
|
|
44
|
+
return channel.slugToLocale(toTest.toString()) ?? channel.defaultLocale;
|
|
45
|
+
// Check if we have a path, and if so, resolve based upon the first slug in the path
|
|
46
|
+
const path = (await params)?.path;
|
|
47
|
+
const firstSlug = Array.isArray(path) ? path.at(0) : path;
|
|
48
|
+
if (firstSlug)
|
|
49
|
+
return channel.slugToLocale(firstSlug) ?? channel.defaultLocale;
|
|
50
|
+
// We have neither a language, nor a slug, return the default
|
|
51
|
+
return channel.defaultLocale;
|
|
34
52
|
},
|
|
35
53
|
};
|
|
36
54
|
/**
|
|
@@ -44,7 +62,7 @@ const CreatePageOptionDefaults = {
|
|
|
44
62
|
*/
|
|
45
63
|
export function createPage(factory, options) {
|
|
46
64
|
// Build the global/shared configuration for the Optimizely CMS Page
|
|
47
|
-
const { getContentByPath, client: clientFactory, channel, propsToCmsPath, routeToParams, routerFactory, paramsToLocale, } = {
|
|
65
|
+
const { getContentByPath, client: clientFactory, channel, propsToCmsPath, propsToVariant, routeToParams, routerFactory, paramsToLocale, } = {
|
|
48
66
|
...CreatePageOptionDefaults,
|
|
49
67
|
...options,
|
|
50
68
|
};
|
|
@@ -61,75 +79,130 @@ export function createPage(factory, options) {
|
|
|
61
79
|
const client = await clientFactory(undefined, 'metadata');
|
|
62
80
|
const router = routerFactory(client);
|
|
63
81
|
const channelId = getChannelId(client, channel);
|
|
64
|
-
const allRoutes = await router.getRoutes(channelId, channel ? undefined : true);
|
|
82
|
+
const allRoutes = await router.getRoutes(channelId, channel ? undefined : true, true);
|
|
65
83
|
return allRoutes.map((r) => routeToParams(r));
|
|
66
84
|
},
|
|
67
|
-
generateMetadata: async ({ params, searchParams },
|
|
68
|
-
//
|
|
85
|
+
generateMetadata: async ({ params, searchParams }, resolvingMetadata) => {
|
|
86
|
+
// Prepare the context
|
|
69
87
|
const context = await buildContext();
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const [requestPath, initialLocale] = await Promise.all([
|
|
88
|
+
// Analyze the Next.JS Request props
|
|
89
|
+
const [requestPath, initialLocale, variation] = await Promise.all([
|
|
73
90
|
propsToCmsPath({ params, searchParams }),
|
|
74
|
-
paramsToLocale(params, channel),
|
|
91
|
+
paramsToLocale(params, ifChannelDefinition(channel)),
|
|
92
|
+
(await propsToVariant({ params, searchParams })) ?? undefined
|
|
75
93
|
]);
|
|
94
|
+
// Valdiate path
|
|
76
95
|
if (!requestPath)
|
|
77
|
-
return
|
|
96
|
+
return {};
|
|
97
|
+
// Track initial locale
|
|
78
98
|
if (initialLocale)
|
|
79
99
|
context.setLocale(initialLocale);
|
|
80
|
-
|
|
100
|
+
// Resolve route
|
|
101
|
+
const [route, contentLink, contentType, graphLocale] = (await getInfoByPath(context.client, routerFactory, requestPath, channel, variation)) || {};
|
|
102
|
+
if (!contentLink || !contentType)
|
|
103
|
+
return {};
|
|
104
|
+
// Update context from route
|
|
105
|
+
if (route)
|
|
106
|
+
context.setLocale(route.locale);
|
|
107
|
+
// Fetch the metadata based upon the actual content type and resolve parent
|
|
108
|
+
const metaResolver = new MetaDataResolver(context.client);
|
|
109
|
+
const [pageMetadata, baseMetadata] = await Promise.all([
|
|
110
|
+
metaResolver.resolve(factory, contentLink, contentType, graphLocale),
|
|
111
|
+
resolvingMetadata,
|
|
112
|
+
]);
|
|
113
|
+
return pageMetadata;
|
|
114
|
+
/*// Get context
|
|
115
|
+
const context = await buildContext()
|
|
116
|
+
const channelId = getChannelId(context.client, channel)
|
|
117
|
+
|
|
118
|
+
// Read variables from request
|
|
119
|
+
const [requestPath, initialLocale] = await Promise.all([
|
|
120
|
+
propsToCmsPath({ params, searchParams }),
|
|
121
|
+
paramsToLocale(params, ifChannelDefinition(channel)),
|
|
122
|
+
])
|
|
123
|
+
if (!requestPath) return {}
|
|
124
|
+
if (initialLocale) context.setLocale(initialLocale)
|
|
125
|
+
|
|
126
|
+
const awaitedParams = await params
|
|
127
|
+
|
|
81
128
|
// Debug output
|
|
82
129
|
if (context.isDebug)
|
|
83
|
-
|
|
130
|
+
console.log(
|
|
131
|
+
`⚪ [CmsPage.generateMetadata] Processed Next.JS route: ${JSON.stringify(awaitedParams)} => Optimizely CMS route: ${JSON.stringify({ path: requestPath, siteId: channelId })}`
|
|
132
|
+
)
|
|
133
|
+
|
|
84
134
|
// Resolve the route to a content link
|
|
85
|
-
const routeInfo = await getInfoByPath(
|
|
135
|
+
const routeInfo = await getInfoByPath(
|
|
136
|
+
context.client,
|
|
137
|
+
routerFactory,
|
|
138
|
+
requestPath,
|
|
139
|
+
channel
|
|
140
|
+
)
|
|
86
141
|
if (!routeInfo || !routeInfo[0]) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
142
|
+
if (context.isDebug)
|
|
143
|
+
console.log('⚪ [CmsPage.generateMetadata] No data received')
|
|
144
|
+
return {}
|
|
90
145
|
}
|
|
91
|
-
const [route, contentLink, contentType, graphLocale] = routeInfo
|
|
146
|
+
const [route, contentLink, contentType, graphLocale] = routeInfo
|
|
92
147
|
if (context.isDebug)
|
|
93
|
-
|
|
148
|
+
console.log(
|
|
149
|
+
`⚪ [CmsPage.generateMetadata] Retrieved content info:`,
|
|
150
|
+
route
|
|
151
|
+
)
|
|
152
|
+
|
|
94
153
|
// Update context from route
|
|
95
|
-
context.setLocale(route.locale)
|
|
96
|
-
|
|
97
|
-
updateSharedServerContext(context);
|
|
154
|
+
context.setLocale(route.locale)
|
|
155
|
+
|
|
98
156
|
// Fetch the metadata based upon the actual content type and resolve parent
|
|
99
|
-
const metaResolver = new MetaDataResolver(context.client)
|
|
157
|
+
const metaResolver = new MetaDataResolver(context.client)
|
|
100
158
|
const [pageMetadata, baseMetadata] = await Promise.all([
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
])
|
|
159
|
+
metaResolver.resolve(factory, contentLink, contentType, graphLocale),
|
|
160
|
+
parent,
|
|
161
|
+
])
|
|
162
|
+
|
|
104
163
|
if (context.isDebug)
|
|
105
|
-
|
|
164
|
+
console.log(
|
|
165
|
+
`⚪ [CmsPage.generateMetadata] Component yielded metadata:`,
|
|
166
|
+
pageMetadata
|
|
167
|
+
)
|
|
168
|
+
|
|
106
169
|
// Make sure merging of objects goes correctly
|
|
107
|
-
for (const metaKey of Object.getOwnPropertyNames(
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
170
|
+
for (const metaKey of Object.getOwnPropertyNames(
|
|
171
|
+
pageMetadata
|
|
172
|
+
) as (keyof Metadata)[]) {
|
|
173
|
+
if (
|
|
174
|
+
isObject(pageMetadata[metaKey]) &&
|
|
175
|
+
isObject(baseMetadata[metaKey])
|
|
176
|
+
) {
|
|
177
|
+
//@ts-expect-error Silence error due to failed introspection...
|
|
178
|
+
pageMetadata[metaKey] = deepmerge<object>(
|
|
179
|
+
baseMetadata[metaKey],
|
|
180
|
+
pageMetadata[metaKey],
|
|
181
|
+
{ arrayMerge: (target, source) => [...source] }
|
|
182
|
+
)
|
|
183
|
+
}
|
|
113
184
|
}
|
|
185
|
+
|
|
114
186
|
// Not sure, but needed somehow...
|
|
115
|
-
if (
|
|
116
|
-
|
|
117
|
-
|
|
187
|
+
if (
|
|
188
|
+
typeof baseMetadata.metadataBase == 'string' &&
|
|
189
|
+
(baseMetadata.metadataBase as string).length > 1
|
|
190
|
+
) {
|
|
191
|
+
pageMetadata.metadataBase = new URL(baseMetadata.metadataBase)
|
|
118
192
|
}
|
|
119
|
-
return pageMetadata
|
|
193
|
+
return pageMetadata*/
|
|
120
194
|
},
|
|
121
195
|
CmsPage: async ({ params, searchParams }) => {
|
|
122
196
|
// Prepare the context
|
|
123
197
|
const context = await buildContext();
|
|
124
|
-
//const params = await asyncParams;
|
|
125
198
|
// Analyze the Next.JS Request props
|
|
126
|
-
const [requestPath, initialLocale] = await Promise.all([
|
|
199
|
+
const [requestPath, initialLocale, requestVariant] = await Promise.all([
|
|
127
200
|
propsToCmsPath({ params, searchParams }),
|
|
128
|
-
paramsToLocale(params, channel),
|
|
201
|
+
paramsToLocale(params, ifChannelDefinition(channel)),
|
|
202
|
+
(await propsToVariant({ params, searchParams })) ?? undefined
|
|
129
203
|
]);
|
|
130
|
-
const awaitedParams = await params;
|
|
131
204
|
if (context.isDebug)
|
|
132
|
-
console.log(`⚪ [CmsPage] Processed Next.JS route: ${JSON.stringify(
|
|
205
|
+
console.log(`⚪ [CmsPage] Processed Next.JS route: ${JSON.stringify(await params)} => Optimizely CMS route: ${JSON.stringify({ path: requestPath, variant: requestVariant })}`);
|
|
133
206
|
// If we don't have the path, or the path is an internal Next.js route reject it.
|
|
134
207
|
if (!requestPath || requestPath.startsWith('/_next/'))
|
|
135
208
|
return notFound();
|
|
@@ -138,88 +211,21 @@ export function createPage(factory, options) {
|
|
|
138
211
|
context.setLocale(initialLocale);
|
|
139
212
|
// Resolve the content based upon the path
|
|
140
213
|
const lookupData = await (getContentByPath
|
|
141
|
-
? loadContentByPath(context.client, getContentByPath, requestPath, channel)
|
|
142
|
-
: getInfoByPath(context.client, routerFactory, requestPath, channel));
|
|
214
|
+
? loadContentByPath(context.client, getContentByPath, requestPath, channel, initialLocale, requestVariant)
|
|
215
|
+
: getInfoByPath(context.client, routerFactory, requestPath, channel, requestVariant));
|
|
143
216
|
if (!lookupData) {
|
|
144
|
-
console.error(`🔴 [CmsPage] Unable to resolve the content for ${JSON.stringify(params)}!`);
|
|
217
|
+
console.error(`🔴 [CmsPage] Unable to resolve the content for ${JSON.stringify(await params)}!`);
|
|
145
218
|
return notFound();
|
|
146
219
|
}
|
|
147
220
|
const [route, contentLink, contentType, graphLocale, contentData] = lookupData;
|
|
148
221
|
if (contentLink?.locale)
|
|
149
222
|
context.setLocale(contentLink.locale);
|
|
150
|
-
// Make the shared server context available
|
|
151
|
-
updateSharedServerContext(context);
|
|
152
223
|
// Render the content link
|
|
153
224
|
return (_jsx(CmsContent, { contentType: contentType, contentLink: contentLink, fragmentData: contentData ?? undefined, ctx: context }));
|
|
154
225
|
},
|
|
155
226
|
};
|
|
156
227
|
return pageDefintion;
|
|
157
228
|
}
|
|
158
|
-
// Helper function to obtain the info by path
|
|
159
|
-
async function getInfoByPath(client, routerFactory, requestPath, channel) {
|
|
160
|
-
if (client.debug)
|
|
161
|
-
console.log(`⚪ [CmsPage.getInfoByPath] Loading content for path "${requestPath}" using RouteResolver`);
|
|
162
|
-
const channelId = getChannelId(client, channel);
|
|
163
|
-
const router = routerFactory(client);
|
|
164
|
-
const route = await router.getContentInfoByPath(requestPath, channelId);
|
|
165
|
-
if (!route) {
|
|
166
|
-
if (client.debug)
|
|
167
|
-
console.warn(`🟠 [CmsPage.getInfoByPath] The RouteResolver was unable to resolve the route information for "${requestPath}"`);
|
|
168
|
-
return undefined;
|
|
169
|
-
}
|
|
170
|
-
const contentLink = router.routeToContentLink(route);
|
|
171
|
-
const contentType = route.contentType;
|
|
172
|
-
const graphLocale = localeToGraphLocale(route.locale, channel);
|
|
173
|
-
return [route, contentLink, contentType, graphLocale, null];
|
|
174
|
-
}
|
|
175
|
-
async function loadContentByPath(client, getContentByPath, requestPath, channel, isDebug = false) {
|
|
176
|
-
if (client.debug)
|
|
177
|
-
console.log(`⚪ [CmsPage.loadContentByPath] Loading content for path "${requestPath}" using getContentByPath method`);
|
|
178
|
-
const channelId = getChannelId(client, channel);
|
|
179
|
-
const pathForRequest = [
|
|
180
|
-
requestPath,
|
|
181
|
-
requestPath.endsWith('/')
|
|
182
|
-
? requestPath.substring(0, requestPath.length - 1)
|
|
183
|
-
: requestPath + '/',
|
|
184
|
-
].filter((x) => x);
|
|
185
|
-
const requestVars = {
|
|
186
|
-
path: pathForRequest,
|
|
187
|
-
siteId: channelId,
|
|
188
|
-
};
|
|
189
|
-
if (client?.isPreviewEnabled())
|
|
190
|
-
requestVars.changeset = client?.getChangeset();
|
|
191
|
-
if (isDebug)
|
|
192
|
-
console.log(`⚪ [CmsPage.loadContentByPath] Processed Next.JS route => getContentByPath Variables: ${JSON.stringify(requestVars)}`);
|
|
193
|
-
const response = await getContentByPath(client, requestVars);
|
|
194
|
-
const info = Array.isArray(response?.content?.items)
|
|
195
|
-
? response?.content?.items[0]
|
|
196
|
-
: response?.content?.items;
|
|
197
|
-
if (!info) {
|
|
198
|
-
if (isDebug) {
|
|
199
|
-
console.error(`🔴 [CmsPage.loadContentByPath] Unable to load content for ${requestPath}, data received: `, response);
|
|
200
|
-
}
|
|
201
|
-
return notFound();
|
|
202
|
-
}
|
|
203
|
-
else if (isDebug && (response?.content?.total ?? 0) > 1) {
|
|
204
|
-
console.warn(`🟠 [CmsPage.loadContentByPath] Resolving content for ${requestPath}, yielded ${response?.content?.total ?? 0} items, picked:`, info);
|
|
205
|
-
}
|
|
206
|
-
// Extract the type & link
|
|
207
|
-
const contentType = Utils.normalizeContentType(info._metadata?.types);
|
|
208
|
-
const contentLink = normalizeContentLinkWithLocale(info._metadata);
|
|
209
|
-
if (!contentLink) {
|
|
210
|
-
console.error('🔴 [CmsPage.loadContentByPath] Unable to infer the contentLink from the retrieved content, this should not have happened!');
|
|
211
|
-
return notFound();
|
|
212
|
-
}
|
|
213
|
-
const graphLocale = localeToGraphLocale(info._metadata?.locale, channel);
|
|
214
|
-
return [null, contentLink, contentType, graphLocale, info];
|
|
215
|
-
}
|
|
216
|
-
function getChannelId(client, channel) {
|
|
217
|
-
return channel
|
|
218
|
-
? client.currentOptiCmsSchema == OptiCmsSchema.CMS12
|
|
219
|
-
? channel.id
|
|
220
|
-
: getPrimaryURL(channel).origin
|
|
221
|
-
: undefined;
|
|
222
|
-
}
|
|
223
229
|
/**
|
|
224
230
|
*
|
|
225
231
|
*
|
|
@@ -236,22 +242,13 @@ function buildRequestPath({ lang, path, }) {
|
|
|
236
242
|
return '/';
|
|
237
243
|
const fullPath = '/' +
|
|
238
244
|
slugs
|
|
239
|
-
.filter((x) => x && x.length > 0)
|
|
245
|
+
.filter((x) => x && x.length > 0 && !x.startsWith(encodeURIComponent('var:')))
|
|
240
246
|
.map((x) => decodeURIComponent(x))
|
|
241
247
|
.join('/');
|
|
242
248
|
if (!slugs[slugs.length - 1].includes('.'))
|
|
243
249
|
return fullPath + '/';
|
|
244
250
|
return fullPath;
|
|
245
251
|
}
|
|
246
|
-
function getPrimaryURL(chnl) {
|
|
247
|
-
const dd = chnl.domains.filter((x) => x.isPrimary).at(0) ?? chnl.domains.at(0);
|
|
248
|
-
if (!dd)
|
|
249
|
-
return chnl.getPrimaryDomain();
|
|
250
|
-
const s = dd.name.startsWith('localhost') || dd.name.indexOf('.local') > 0
|
|
251
|
-
? 'http:'
|
|
252
|
-
: 'https:';
|
|
253
|
-
return new URL(`${s}//${dd.name}`);
|
|
254
|
-
}
|
|
255
252
|
function isObject(toTest) {
|
|
256
253
|
return typeof toTest == 'object' && toTest != null && toTest != undefined;
|
|
257
254
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/cms-page/page.tsx"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/cms-page/page.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,20 @@ export type IContentInfo<LT = string> = {
|
|
|
15
15
|
};
|
|
16
16
|
export type LinkData = {
|
|
17
17
|
__typename?: "ContentUrl";
|
|
18
|
+
/**
|
|
19
|
+
* The type of router within the CMS instance that has generated the link data
|
|
20
|
+
* typical values are: "EXTERNAL", "SIMPLE" or "HIERARCHICAL".
|
|
21
|
+
*/
|
|
22
|
+
type?: string | null;
|
|
23
|
+
/**
|
|
24
|
+
* The base for the link, typically this is either null or the domain, use this
|
|
25
|
+
* to ensure that there's always a full URL.
|
|
26
|
+
*/
|
|
18
27
|
base?: string | null;
|
|
19
|
-
|
|
28
|
+
/**
|
|
29
|
+
* The default path for the Link, this is either the relative path for an internal
|
|
30
|
+
* link or the full path for an external link or media asset.
|
|
31
|
+
*/
|
|
20
32
|
default?: string | null;
|
|
21
33
|
};
|
|
22
34
|
export type LinkItemData = {
|
package/dist/metadata.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Utils } from '@remkoj/optimizely-cms-react';
|
|
1
2
|
import createClient, { isOptiGraphClient } from '@remkoj/optimizely-graph-client';
|
|
2
3
|
import { isOptimizelyNextPageWithMetaData } from './page.js';
|
|
3
4
|
export class MetaDataResolver {
|
|
@@ -18,7 +19,13 @@ export class MetaDataResolver {
|
|
|
18
19
|
console.log(`⚪ [MetaDataResolver] Resolving metadata for: ${JSON.stringify({ contentLink, contentType, locale })}`);
|
|
19
20
|
if (locale && locale.includes("-"))
|
|
20
21
|
throw new Error("🟠 [MetaDataResolver] Invalid character detected within the locale");
|
|
21
|
-
const
|
|
22
|
+
const normalizedContentType = Utils.normalizeContentType(Array.isArray(contentType) ? [...contentType].reverse() : contentType, true);
|
|
23
|
+
if (!normalizedContentType) {
|
|
24
|
+
if (this._cgClient.debug)
|
|
25
|
+
console.log(`🟠 [MetaDataResolver] Could not normalize content type for ${contentType.join('/')}`);
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
28
|
+
const Component = factory.resolve(normalizedContentType);
|
|
22
29
|
if (!Component) {
|
|
23
30
|
if (this._cgClient.debug)
|
|
24
31
|
console.log(`🟠 [MetaDataResolver] No component found for ${contentType.join('/')}`);
|
package/dist/metadata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACpD,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,qBAAqB,GAAG,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;QACrI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;gBACpB,OAAO,CAAC,GAAG,CAAC,8DAA+D,WAAW,CAAC,IAAI,CAAC,GAAG,CAAE,EAAE,CAAC,CAAA;YACxG,OAAO,EAAE,CAAA;QACb,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAA2B,CAAA;QAClF,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
|
@@ -11,6 +11,7 @@ const gqlQuery = gql `query getContentByIdBase($key: String!, $version: String,
|
|
|
11
11
|
]
|
|
12
12
|
}
|
|
13
13
|
locale: $locale
|
|
14
|
+
variation: {include: ALL}
|
|
14
15
|
) {
|
|
15
16
|
total
|
|
16
17
|
items {
|
|
@@ -20,6 +21,8 @@ const gqlQuery = gql `query getContentByIdBase($key: String!, $version: String,
|
|
|
20
21
|
types
|
|
21
22
|
displayName
|
|
22
23
|
version
|
|
24
|
+
changeset
|
|
25
|
+
variation
|
|
23
26
|
}
|
|
24
27
|
_type: __typename
|
|
25
28
|
}
|
package/dist/ope/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/ope/data.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/ope/data.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAEzD,MAAM,CAAC,MAAM,cAAc,GAAyB,KAAK,EAAuB,MAAqB,EAAE,SAAwC,EAAE,EAAE;IACjJ,OAAO,MAAM,MAAM,CAAC,OAAO,CAAoD,QAAQ,EAAE,SAAS,CAAC,CAAA;AACrG,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;EAyBlB,CAAA"}
|
package/dist/ope/middleware.js
CHANGED
|
@@ -27,7 +27,7 @@ export function withEditFallback(middleware, adminSlug = "ui", previewRoute = "/
|
|
|
27
27
|
let requestPath = path.replace(previewPath, "/");
|
|
28
28
|
if (!requestPath.endsWith('/'))
|
|
29
29
|
requestPath = requestPath + '/';
|
|
30
|
-
const rewrittenUrl = new URL(
|
|
30
|
+
const rewrittenUrl = new URL(previewRoute, request.url);
|
|
31
31
|
rewrittenUrl.searchParams.set("key", contentId);
|
|
32
32
|
rewrittenUrl.searchParams.set("ver", versionId);
|
|
33
33
|
rewrittenUrl.searchParams.set("loc", "ALL"); // Locale cannot be inferred from URL, however a contentId/versionId should always be unique
|
|
@@ -1 +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;
|
|
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;IACnI,MAAM,WAAW,GAAG,IAAI,SAAS,eAAe,CAAA;IAChD,MAAM,iBAAiB,GAAkB,OAAO,CAAC,EAAE;QACjD,IACE,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,EAC/C,CAAC;YACD,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YACnE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YACxD,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;gBAC5B,WAAW,GAAG,WAAW,GAAG,GAAG,CAAA;YAEjC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;YACvD,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;QAC9D,CAAC;QAED,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,YAAY,CAAC,IAAI,EAAsB,CAAA;IACpF,CAAC,CAAA;IACD,OAAO,iBAAiB,CAAA;AAC1B,CAAC"}
|
package/dist/ope/page.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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 { ServerContext, Utils, CmsContent,
|
|
4
|
+
import { ServerContext, Utils, CmsContent, OptimizelyComposition, isNode, } from '@remkoj/optimizely-cms-react/rsc';
|
|
5
5
|
import { notFound } from 'next/navigation.js';
|
|
6
6
|
import OnPageEdit from '../components/on-page-edit.js';
|
|
7
7
|
import { createAuthorizedClient } from '../client.js';
|
|
@@ -65,7 +65,11 @@ export function createEditPageComponent(factory, options) {
|
|
|
65
65
|
try {
|
|
66
66
|
const contentInfo = await getContentById(client, {
|
|
67
67
|
...contentRequest,
|
|
68
|
-
locale:
|
|
68
|
+
locale: contentRequest.locale && contentRequest.locale.length > 0
|
|
69
|
+
? localeToGraphLocale(Array.isArray(contentRequest.locale)
|
|
70
|
+
? contentRequest.locale.at(0)
|
|
71
|
+
: contentRequest.locale)
|
|
72
|
+
: undefined,
|
|
69
73
|
changeset: client.getChangeset(),
|
|
70
74
|
});
|
|
71
75
|
if ((contentInfo?.content?.total ?? 0) > 1) {
|
|
@@ -101,12 +105,22 @@ export function createEditPageComponent(factory, options) {
|
|
|
101
105
|
context.setEditableContentId(contentLink);
|
|
102
106
|
if (contentLink.locale)
|
|
103
107
|
context.setLocale(contentLink.locale);
|
|
104
|
-
//
|
|
105
|
-
updateSharedServerContext(context);
|
|
106
|
-
// Render the content, with edit mode context
|
|
108
|
+
// Determine rendering flow controls
|
|
107
109
|
const isPage = contentType.some((x) => x?.toLowerCase() == 'page') ?? false;
|
|
110
|
+
const isSection = contentType.some(x => x?.toLowerCase() == 'section') ?? false;
|
|
111
|
+
const sectionData = isSection && contentItem['composition'] && isNode(contentItem['composition']) ? contentItem['composition'] : undefined;
|
|
112
|
+
if (sectionData) {
|
|
113
|
+
delete contentItem['composition'];
|
|
114
|
+
sectionData.component = contentItem;
|
|
115
|
+
context.setEditableContentIsExperience(true);
|
|
116
|
+
}
|
|
117
|
+
// Prepare communication injector
|
|
118
|
+
const injectorUrl = new URL(communicationInjectorPath, client.siteInfo.cmsURL).href;
|
|
119
|
+
// Render edit page
|
|
108
120
|
const Layout = isPage ? PageLayout : React.Fragment;
|
|
109
|
-
const output = (_jsxs(_Fragment, { children: [_jsx(Script, { src:
|
|
121
|
+
const output = (_jsxs(_Fragment, { children: [_jsx(Script, { src: injectorUrl, strategy: "afterInteractive" }), _jsxs(Layout, { locale: contentItem.locale?.name ?? '', children: [_jsx(OnPageEdit, { refreshTimeout: refreshTimeout, children: _jsx(RefreshNotice, {}) }), sectionData ?
|
|
122
|
+
_jsx(OptimizelyComposition, { node: sectionData, ctx: context }) :
|
|
123
|
+
_jsx(CmsContent, { contentType: contentType, contentLink: contentLink, fragmentData: contentItem, ctx: context })] }), context.isDebug && (_jsxs("div", { className: "optly-contentLink", children: ["ContentItem:", ' ', contentLink
|
|
110
124
|
? contentLinkToString(contentLink)
|
|
111
125
|
: 'Invalid content link returned from Optimizely Graph'] }))] }));
|
|
112
126
|
return output;
|
package/dist/ope/page.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/ope/page.tsx"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAA;AAOpB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,uCAAuC,CAAA;AAE9C,OAAO,EACL,aAAa,EACb,KAAK,EACL,UAAU,EACV,
|
|
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,qBAAqB,EACrB,MAAM,GAGP,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,KAAmB,MAAM,OAAO,CAAA;AACvC,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,EACtB,MAAM,EACN,YAAY,GACE;QACd,MAAM,KAAK,GAAG;YACZ,MAAM,EAAE,MAAM,MAAM;YACpB,YAAY,EAAE,MAAM,YAAY;SACjC,CAAA;QAED,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,MAAM,aAAa,CAAC,KAAK,CAAC,CAAA;QACzC,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,EACJ,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;oBACvD,CAAC,CAAC,mBAAmB,CACjB,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC;wBAClC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC7B,CAAC,CAAC,cAAc,CAAC,MAAM,CAC1B;oBACH,CAAC,CAAC,SAAS;gBACf,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE;aACjC,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;YAGD,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,oCAAoC;YACpC,MAAM,MAAM,GACV,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,CAAA;YAC9D,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,SAAS,CAAC,IAAI,KAAK,CAAA;YAC/E,MAAM,WAAW,GAAG,SAAS,IAAI,WAAW,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAoB,CAAC,CAAC,CAAC,SAAS,CAAA;YAC7J,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,WAAW,CAAC,aAAa,CAAC,CAAA;gBACjC,WAAW,CAAC,SAAS,GAAG,WAAW,CAAA;gBACnC,OAAO,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAA;YAC9C,CAAC;YAED,iCAAiC;YACjC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAA;YAEnF,mBAAmB;YACnB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAA;YACnD,MAAM,MAAM,GAAG,CACb,8BAEE,KAAC,MAAM,IAAC,GAAG,EAAG,WAAW,EAAG,QAAQ,EAAC,kBAAkB,GAAE,EACzD,MAAC,MAAM,IAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,aAC5C,KAAC,UAAU,IAAC,cAAc,EAAE,cAAc,YACxC,KAAC,aAAa,KAAG,GACN,EACX,WAAW,CAAC,CAAC;gCACb,KAAC,qBAAqB,IAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,GAAI,CAAC,CAAC;gCAC5D,KAAC,UAAU,IAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,GAAI,IAEtG,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"}
|
package/dist/publish/index.js
CHANGED
|
@@ -69,7 +69,7 @@ export function createPublishApi(options) {
|
|
|
69
69
|
});
|
|
70
70
|
});
|
|
71
71
|
// Publish the tags te published
|
|
72
|
-
targetTags.forEach(tag => revalidateTag(tag));
|
|
72
|
+
targetTags.forEach(tag => revalidateTag(tag, 'max'));
|
|
73
73
|
// Build the outcome
|
|
74
74
|
return { revalidated: { paths: publishedPathAndScopes, tags: targetTags }, optimized };
|
|
75
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/publish/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/publish/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@remkoj/optimizely-cms-nextjs",
|
|
3
3
|
"description": "Next.JS integration for Optimizely SaaS CMS",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
|
-
"version": "6.0.0-
|
|
5
|
+
"version": "6.0.0-pre11",
|
|
6
6
|
"repository": "https://github.com/remkoj/optimizely-dxp-clients.git",
|
|
7
7
|
"author": "Remko Jantzen <693172+remkoj@users.noreply.github.com>",
|
|
8
8
|
"homepage": "https://github.com/remkoj/optimizely-dxp-clients",
|
|
@@ -44,31 +44,31 @@
|
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@remkoj/optimizely-cms-react": "6.0.0-
|
|
48
|
-
"@remkoj/optimizely-graph-client": "6.0.0-
|
|
47
|
+
"@remkoj/optimizely-cms-react": "6.0.0-pre11",
|
|
48
|
+
"@remkoj/optimizely-graph-client": "6.0.0-pre11",
|
|
49
49
|
"@types/negotiator": "^0.6.4",
|
|
50
|
-
"@types/node": "^22.
|
|
51
|
-
"@types/react": "^19.
|
|
52
|
-
"@types/react-dom": "19.
|
|
53
|
-
"next": "^
|
|
50
|
+
"@types/node": "^22.18.13",
|
|
51
|
+
"@types/react": "^19.2.2",
|
|
52
|
+
"@types/react-dom": "19.2.2",
|
|
53
|
+
"next": "^16.0.1",
|
|
54
54
|
"prop-types": "^15.8.1",
|
|
55
|
-
"react": "^19.
|
|
56
|
-
"react-dom": "^19.
|
|
57
|
-
"scheduler": "^0.
|
|
58
|
-
"typescript": "^5.
|
|
55
|
+
"react": "^19.2.0",
|
|
56
|
+
"react-dom": "^19.2.0",
|
|
57
|
+
"scheduler": "^0.27.0",
|
|
58
|
+
"typescript": "^5.9.3"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@formatjs/intl-localematcher": "^0.6.
|
|
62
|
-
"@remkoj/optimizely-cms-react": "
|
|
63
|
-
"@remkoj/optimizely-graph-client": "
|
|
61
|
+
"@formatjs/intl-localematcher": "^0.6.2",
|
|
62
|
+
"@remkoj/optimizely-cms-react": "6.0.0-pre11",
|
|
63
|
+
"@remkoj/optimizely-graph-client": "6.0.0-pre11",
|
|
64
64
|
"deepmerge": "^4.3.1",
|
|
65
|
-
"entities": "^
|
|
65
|
+
"entities": "^7.0.0",
|
|
66
66
|
"graphql": "^16.11.0",
|
|
67
|
-
"graphql-request": "^7.
|
|
67
|
+
"graphql-request": "^7.3.1",
|
|
68
68
|
"negotiator": "^1.0.0"
|
|
69
69
|
},
|
|
70
70
|
"peerDependencies": {
|
|
71
|
-
"next": "^15",
|
|
71
|
+
"next": "^15 || ^16",
|
|
72
72
|
"react": "^19",
|
|
73
73
|
"react-dom": "^19"
|
|
74
74
|
},
|