@remkoj/optimizely-graph-client 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/admin-api/client/OptimizelyGraphAdminApi.d.ts +4 -0
- package/dist/admin-api/client/OptimizelyGraphAdminApi.js +5 -1
- package/dist/admin-api/client/OptimizelyGraphAdminApi.js.map +1 -1
- package/dist/admin-api/client/core/OpenAPI.js +1 -1
- package/dist/admin-api/client/index.d.ts +7 -0
- package/dist/admin-api/client/index.js +2 -0
- package/dist/admin-api/client/index.js.map +1 -1
- package/dist/admin-api/client/models/MatchingPinnedSelector.d.ts +6 -0
- package/dist/admin-api/client/models/MatchingPinnedSelector.js +2 -0
- package/dist/admin-api/client/models/MatchingPinnedSelector.js.map +1 -0
- package/dist/admin-api/client/models/PinnedCollectionPayload.d.ts +4 -0
- package/dist/admin-api/client/models/PinnedCollectionPayload.js +2 -0
- package/dist/admin-api/client/models/PinnedCollectionPayload.js.map +1 -0
- package/dist/admin-api/client/models/PinnedCollectionResult.d.ts +7 -0
- package/dist/admin-api/client/models/PinnedCollectionResult.js +2 -0
- package/dist/admin-api/client/models/PinnedCollectionResult.js.map +1 -0
- package/dist/admin-api/client/models/PinnedItemPayload.d.ts +7 -0
- package/dist/admin-api/client/models/PinnedItemPayload.js +2 -0
- package/dist/admin-api/client/models/PinnedItemPayload.js.map +1 -0
- package/dist/admin-api/client/models/PinnedItemResult.d.ts +11 -0
- package/dist/admin-api/client/models/PinnedItemResult.js +2 -0
- package/dist/admin-api/client/models/PinnedItemResult.js.map +1 -0
- package/dist/admin-api/client/services/BestBetsService.d.ts +4 -0
- package/dist/admin-api/client/services/BestBetsService.js +4 -0
- package/dist/admin-api/client/services/BestBetsService.js.map +1 -1
- package/dist/admin-api/client/services/PinnedCollectionsService.d.ts +49 -0
- package/dist/admin-api/client/services/PinnedCollectionsService.js +88 -0
- package/dist/admin-api/client/services/PinnedCollectionsService.js.map +1 -0
- package/dist/admin-api/client/services/PinnedItemsService.d.ts +74 -0
- package/dist/admin-api/client/services/PinnedItemsService.js +139 -0
- package/dist/admin-api/client/services/PinnedItemsService.js.map +1 -0
- package/dist/admin-api/index.d.ts +9 -0
- package/dist/admin-api/index.js +14 -0
- package/dist/admin-api/index.js.map +1 -1
- package/dist/client/client.d.ts +3 -0
- package/dist/client/client.js +18 -6
- package/dist/client/client.js.map +1 -1
- package/dist/client/types.d.ts +15 -0
- package/dist/services/channel-repository/definition.d.ts +19 -2
- package/dist/services/channel-repository/definition.js +42 -9
- package/dist/services/channel-repository/definition.js.map +1 -1
- package/dist/services/channel-repository/index.d.ts +3 -1
- package/dist/services/channel-repository/index.js +1 -1
- package/dist/services/channel-repository/index.js.map +1 -1
- package/dist/services/channel-repository/queries.js +88 -88
- package/dist/services/channel-repository/repository.d.ts +1 -1
- package/dist/services/channel-repository/repository.js +7 -1
- package/dist/services/channel-repository/repository.js.map +1 -1
- package/dist/services/channel-repository/types.d.ts +23 -1
- package/dist/services/routing/queries/cms12/index.d.ts +2 -0
- package/dist/services/routing/queries/cms12/index.js +3 -0
- package/dist/services/routing/queries/cms12/index.js.map +1 -1
- package/dist/services/routing/queries/cms13/getAllRoutes.d.ts +2 -15
- package/dist/services/routing/queries/cms13/getAllRoutes.js +4 -1
- package/dist/services/routing/queries/cms13/getAllRoutes.js.map +1 -1
- package/dist/services/routing/queries/cms13/getRouteById.d.ts +2 -1
- package/dist/services/routing/queries/cms13/getRouteById.js +8 -4
- package/dist/services/routing/queries/cms13/getRouteById.js.map +1 -1
- package/dist/services/routing/queries/cms13/getRouteByPath.d.ts +5 -3
- package/dist/services/routing/queries/cms13/getRouteByPath.js +6 -3
- package/dist/services/routing/queries/cms13/getRouteByPath.js.map +1 -1
- package/dist/services/routing/queries/cms13/index.d.ts +4 -2
- package/dist/services/routing/queries/cms13/index.js +122 -26
- package/dist/services/routing/queries/cms13/index.js.map +1 -1
- package/dist/services/routing/queries/cms13/types.d.ts +18 -0
- package/dist/services/routing/queries/cms13/types.js +2 -0
- package/dist/services/routing/queries/cms13/types.js.map +1 -0
- package/dist/services/routing/queries/types.d.ts +4 -2
- package/dist/services/routing/resolver.d.ts +11 -7
- package/dist/services/routing/resolver.js +17 -9
- package/dist/services/routing/resolver.js.map +1 -1
- package/dist/services/routing/types.d.ts +23 -4
- package/dist/services/types.d.ts +7 -0
- package/dist/services/utils.d.ts +8 -4
- package/dist/services/utils.js +26 -11
- package/dist/services/utils.js.map +1 -1
- package/package.json +6 -6
|
@@ -2,12 +2,14 @@ import * as GetAllRoutes from './getAllRoutes.js';
|
|
|
2
2
|
import type { Route } from '../../types.js';
|
|
3
3
|
import { type IOptiGraphClient as GraphQLClient } from '../../../../client/types.js';
|
|
4
4
|
import { type OptimizelyCmsRoutingApi } from '../types.js';
|
|
5
|
+
import { AnyContentLink } from '../../../types.js';
|
|
5
6
|
export declare class OptimizelyCms12Client implements OptimizelyCmsRoutingApi {
|
|
6
7
|
enablePreview(): void;
|
|
7
8
|
disablePreview(): void;
|
|
8
9
|
getRoutes(client: GraphQLClient, siteId?: string): Promise<Route[]>;
|
|
9
10
|
getRouteByPath(client: GraphQLClient, path: string, siteId?: string): Promise<undefined | Route>;
|
|
10
11
|
getRouteById(client: GraphQLClient, contentId: string, locale: string, version: string | number): Promise<undefined | Route>;
|
|
12
|
+
getRouteByLink(client: GraphQLClient, contentLink: AnyContentLink): Promise<undefined | Route>;
|
|
11
13
|
protected parseIdString(id: string): [number, number | null];
|
|
12
14
|
protected convertResponse(item: GetAllRoutes.Route): Route;
|
|
13
15
|
protected tryConvertResponse(item: GetAllRoutes.Route): Route | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms12/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms12/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
_metadata: {
|
|
3
|
-
key: string;
|
|
4
|
-
version: string;
|
|
5
|
-
locale: string;
|
|
6
|
-
displayName: string;
|
|
7
|
-
types: Array<string>;
|
|
8
|
-
url: {
|
|
9
|
-
path: string;
|
|
10
|
-
domain: string;
|
|
11
|
-
};
|
|
12
|
-
slug?: string | null;
|
|
13
|
-
};
|
|
14
|
-
changed: string;
|
|
15
|
-
};
|
|
1
|
+
import type { Route, VariationInput } from "./types.js";
|
|
16
2
|
export type Result = {
|
|
17
3
|
Content: {
|
|
18
4
|
items: Route[];
|
|
@@ -26,5 +12,6 @@ export type Variables = {
|
|
|
26
12
|
domain?: string;
|
|
27
13
|
mustHaveDomain?: boolean | null;
|
|
28
14
|
changeset?: string | null;
|
|
15
|
+
variation?: VariationInput | null;
|
|
29
16
|
};
|
|
30
17
|
export declare const query: string;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { gql } from "graphql-request";
|
|
2
|
-
export const query = gql `query GetAllRoutes($skip: Int = 0, $pageSize: Int = 100, $typeFilter: [String] = "_Page", $domain: String, $mustHaveDomain: Boolean, $changeset: String) {
|
|
2
|
+
export const query = gql `query GetAllRoutes($skip: Int = 0, $pageSize: Int = 100, $typeFilter: [String] = "_Page", $domain: String, $mustHaveDomain: Boolean, $changeset: String, $variation:VariationInput) {
|
|
3
3
|
Content: _Page(
|
|
4
4
|
where: {
|
|
5
5
|
_metadata: {
|
|
6
6
|
url: { default: { exist: true }, base: { eq: $domain, exist: $mustHaveDomain } }
|
|
7
7
|
types: { in: $typeFilter }
|
|
8
8
|
changeset: { eq: $changeset }
|
|
9
|
+
status: { eq: "Published" }
|
|
9
10
|
}
|
|
10
11
|
}
|
|
12
|
+
variation: $variation
|
|
11
13
|
limit: $pageSize
|
|
12
14
|
skip: $skip
|
|
13
15
|
) {
|
|
@@ -19,6 +21,7 @@ export const query = gql `query GetAllRoutes($skip: Int = 0, $pageSize: Int = 10
|
|
|
19
21
|
locale
|
|
20
22
|
displayName
|
|
21
23
|
types
|
|
24
|
+
variation
|
|
22
25
|
url {
|
|
23
26
|
path: default
|
|
24
27
|
domain: base
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAllRoutes.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms13/getAllRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"getAllRoutes.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms13/getAllRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAoBrC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCtB,CAAA"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { type Route } from "./
|
|
1
|
+
import { VariationInput, type Route } from "./types.js";
|
|
2
2
|
export type Variables = {
|
|
3
3
|
key: string;
|
|
4
4
|
version?: string | null;
|
|
5
5
|
locale?: Array<string | null> | string | null;
|
|
6
6
|
changeset?: string | null;
|
|
7
|
+
variation?: VariationInput | null;
|
|
7
8
|
};
|
|
8
9
|
export type Result = {
|
|
9
10
|
Content: {
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { gql } from "graphql-request";
|
|
2
|
-
export const query = gql `query GetRouteById($key: String!, $version: String, $locale: [Locales], $changeset: String) {
|
|
2
|
+
export const query = gql `query GetRouteById($key: [String!]!, $version: String, $locale: [Locales], $changeset: String, $variation:VariationInput) {
|
|
3
3
|
Content: _Content(
|
|
4
|
+
ids: $key
|
|
5
|
+
locale: $locale
|
|
6
|
+
variation: $variation
|
|
4
7
|
where: {
|
|
5
|
-
_metadata: {
|
|
8
|
+
_metadata: { changeset: { eq: $changeset }, version: { eq: $version } }
|
|
6
9
|
}
|
|
7
|
-
locale: $locale
|
|
8
10
|
) {
|
|
9
11
|
total
|
|
10
12
|
items {
|
|
@@ -13,9 +15,11 @@ export const query = gql `query GetRouteById($key: String!, $version: String, $l
|
|
|
13
15
|
version
|
|
14
16
|
locale
|
|
15
17
|
displayName
|
|
18
|
+
variation
|
|
19
|
+
changeset
|
|
16
20
|
types
|
|
17
21
|
url {
|
|
18
|
-
path:
|
|
22
|
+
path: default
|
|
19
23
|
domain: base
|
|
20
24
|
}
|
|
21
25
|
... on IInstanceMetadata {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRouteById.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms13/getRouteById.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"getRouteById.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms13/getRouteById.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAkBrC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCtB,CAAA"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Route, VariationInput } from './types.js';
|
|
2
2
|
export type Variables = {
|
|
3
|
-
path: string
|
|
3
|
+
path: Array<string>;
|
|
4
4
|
domain?: string | null;
|
|
5
5
|
changeset?: string | null;
|
|
6
|
+
status?: string | null;
|
|
7
|
+
variation?: VariationInput | null;
|
|
6
8
|
};
|
|
7
9
|
export type Result = {
|
|
8
10
|
getRouteByPath: {
|
|
9
11
|
total: number;
|
|
10
|
-
|
|
12
|
+
item: Route;
|
|
11
13
|
};
|
|
12
14
|
};
|
|
13
15
|
export declare const query: string;
|
|
@@ -1,21 +1,24 @@
|
|
|
1
|
-
import { gql } from
|
|
2
|
-
export const query = gql `query getRouteByPath($path: [String!]!, $domain: String, $changeset: String) {
|
|
1
|
+
import { gql } from 'graphql-request';
|
|
2
|
+
export const query = gql `query getRouteByPath($path: [String!]!, $domain: String, $changeset: String, $status: String, $variation: VariationInput) {
|
|
3
3
|
getRouteByPath: _Page(
|
|
4
4
|
where: {
|
|
5
5
|
_metadata: {
|
|
6
6
|
url: { default: { in: $path }, base: { endsWith: $domain } }
|
|
7
7
|
changeset: { eq: $changeset }
|
|
8
|
+
status: { eq: $status }
|
|
8
9
|
}
|
|
9
10
|
}
|
|
11
|
+
variation: $variation
|
|
10
12
|
orderBy: { _metadata: { url: { default: ASC } } }
|
|
11
13
|
) {
|
|
12
14
|
total
|
|
13
|
-
|
|
15
|
+
item {
|
|
14
16
|
_metadata {
|
|
15
17
|
key
|
|
16
18
|
version
|
|
17
19
|
locale
|
|
18
20
|
displayName
|
|
21
|
+
variation
|
|
19
22
|
types
|
|
20
23
|
url {
|
|
21
24
|
path: default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRouteByPath.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms13/getRouteByPath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"getRouteByPath.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms13/getRouteByPath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAkBrC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCtB,CAAA"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { Route } from '../../types.js';
|
|
2
2
|
import { type IOptiGraphClient as GraphQLClient } from '../../../../client/types.js';
|
|
3
3
|
import { type OptimizelyCmsRoutingApi } from '../types.js';
|
|
4
|
+
import { AnyContentLink } from '../../../types.js';
|
|
4
5
|
export declare class OptimizelyCms13Client implements OptimizelyCmsRoutingApi {
|
|
5
6
|
private _changeset;
|
|
6
7
|
enablePreview(changeset?: string): void;
|
|
7
8
|
disablePreview(): void;
|
|
8
|
-
getRoutes(client: GraphQLClient, siteId?: string, onlyWithDomain?: boolean): Promise<Route[]>;
|
|
9
|
-
getRouteByPath(client: GraphQLClient, path: string, siteId?: string): Promise<undefined | Route>;
|
|
9
|
+
getRoutes(client: GraphQLClient, siteId?: string, onlyWithDomain?: boolean, includeVariants?: boolean): Promise<Route[]>;
|
|
10
|
+
getRouteByPath(client: GraphQLClient, path: string, siteId?: string, variant?: string): Promise<undefined | Route>;
|
|
10
11
|
getRouteById(client: GraphQLClient, contentId: string, locale: string, version: string | number): Promise<undefined | Route>;
|
|
12
|
+
getRouteByLink(client: GraphQLClient, contentLink: AnyContentLink): Promise<undefined | Route>;
|
|
11
13
|
private convertResponse;
|
|
12
14
|
private tryConvertResponse;
|
|
13
15
|
private isNotNullOrUndefined;
|
|
@@ -1,36 +1,40 @@
|
|
|
1
1
|
import * as GetAllRoutes from './getAllRoutes.js';
|
|
2
2
|
import * as GetRouteById from './getRouteById.js';
|
|
3
3
|
import * as GetRouteByPath from './getRouteByPath.js';
|
|
4
|
+
import { isContentLinkWithLocale, localeToGraphLocale, } from '../../../utils.js';
|
|
4
5
|
export class OptimizelyCms13Client {
|
|
5
6
|
constructor() {
|
|
6
7
|
this._changeset = null;
|
|
7
8
|
}
|
|
8
|
-
enablePreview(changeset =
|
|
9
|
+
enablePreview(changeset = 'default') {
|
|
9
10
|
this._changeset = changeset;
|
|
10
11
|
}
|
|
11
12
|
disablePreview() {
|
|
12
13
|
this._changeset = null;
|
|
13
14
|
}
|
|
14
|
-
async getRoutes(client, siteId, onlyWithDomain) {
|
|
15
|
+
async getRoutes(client, siteId, onlyWithDomain, includeVariants) {
|
|
15
16
|
if (client.debug)
|
|
16
17
|
console.log(`⚪ [RouteResolver] Loading routes for ${siteId ?? 'all applications'}${!siteId && onlyWithDomain ? ' that have a domain defined.' : ''}`);
|
|
17
18
|
let totalRoutes = 0;
|
|
18
19
|
let retrievedRoutes = 0;
|
|
19
20
|
let currentPage = 0;
|
|
20
|
-
let pageSize =
|
|
21
|
+
let pageSize = 100;
|
|
21
22
|
const graphRoutes = [];
|
|
22
23
|
do {
|
|
23
24
|
if (client.debug)
|
|
24
25
|
console.log(`⚪ [RouteResolver] Fetching page ${currentPage + 1} with ${pageSize} routes, of ${totalRoutes > 0 ? Math.ceil(totalRoutes / pageSize) : 'unknown'}`);
|
|
25
|
-
const page = await client
|
|
26
|
+
const page = await client
|
|
27
|
+
.request(GetAllRoutes.query, {
|
|
26
28
|
domain: siteId,
|
|
27
29
|
mustHaveDomain: onlyWithDomain ? true : null,
|
|
28
30
|
pageSize: pageSize,
|
|
29
31
|
skip: currentPage * pageSize,
|
|
30
|
-
changeset: this._changeset || client.getChangeset()
|
|
31
|
-
|
|
32
|
+
changeset: this._changeset || client.getChangeset(),
|
|
33
|
+
variation: includeVariants ? { include: 'ALL' } : undefined,
|
|
34
|
+
})
|
|
35
|
+
.catch((e) => {
|
|
32
36
|
if (client.debug)
|
|
33
|
-
console.error(
|
|
37
|
+
console.error('🔴 [RouteResolver] Error while fetching routes', e);
|
|
34
38
|
return undefined;
|
|
35
39
|
});
|
|
36
40
|
if (page) {
|
|
@@ -43,58 +47,150 @@ export class OptimizelyCms13Client {
|
|
|
43
47
|
totalRoutes = 0;
|
|
44
48
|
retrievedRoutes = 0;
|
|
45
49
|
}
|
|
46
|
-
} while (totalRoutes > 0 &&
|
|
47
|
-
|
|
50
|
+
} while (totalRoutes > 0 &&
|
|
51
|
+
retrievedRoutes > 0 &&
|
|
52
|
+
graphRoutes.length < totalRoutes &&
|
|
53
|
+
retrievedRoutes == pageSize);
|
|
54
|
+
return graphRoutes
|
|
55
|
+
.map(this.tryConvertResponse.bind(this))
|
|
56
|
+
.filter(this.isNotNullOrUndefined);
|
|
48
57
|
}
|
|
49
|
-
async getRouteByPath(client, path, siteId) {
|
|
58
|
+
async getRouteByPath(client, path, siteId, variant) {
|
|
50
59
|
if (client.debug)
|
|
51
|
-
console.log(`⚪ [RouteResolver] Resolving content info for ${path} on ${siteId ? siteId :
|
|
52
|
-
|
|
60
|
+
console.log(`⚪ [RouteResolver] Resolving content info for ${path} on ${siteId ? siteId : 'all domains'}`);
|
|
61
|
+
// Calculate the paths
|
|
62
|
+
const paths = [
|
|
63
|
+
path,
|
|
64
|
+
path.endsWith('/') ? path.substring(0, path.length - 1) : path + '/',
|
|
65
|
+
].filter((p) => p);
|
|
66
|
+
// Determine the changeset & status filters
|
|
67
|
+
const changeset = this._changeset || client.getChangeset();
|
|
68
|
+
const status = changeset ? null : "Published";
|
|
69
|
+
// Create the request variables
|
|
70
|
+
const variables = {
|
|
71
|
+
path: paths,
|
|
72
|
+
domain: siteId,
|
|
73
|
+
changeset,
|
|
74
|
+
status,
|
|
75
|
+
variation: variant && variant.length > 0
|
|
76
|
+
? { include: 'SOME', value: [variant] }
|
|
77
|
+
: undefined,
|
|
78
|
+
};
|
|
53
79
|
const resultSet = await client.request({
|
|
54
80
|
document: GetRouteByPath.query,
|
|
55
|
-
variables
|
|
81
|
+
variables,
|
|
82
|
+
}).catch(e => {
|
|
83
|
+
console.error(e);
|
|
84
|
+
return {
|
|
85
|
+
getRouteByPath: {
|
|
86
|
+
total: 0,
|
|
87
|
+
item: {}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
56
90
|
});
|
|
57
91
|
if ((resultSet.getRouteByPath?.total ?? 0) === 0) {
|
|
58
92
|
if (client.debug)
|
|
59
|
-
console.warn(
|
|
93
|
+
console.warn('🟠 [RouteResolver] No items in the resultset, request parameters', JSON.stringify(variables));
|
|
60
94
|
return undefined;
|
|
61
95
|
}
|
|
62
96
|
if ((resultSet.getRouteByPath?.total ?? 0) > 1) {
|
|
63
97
|
if (client.debug)
|
|
64
|
-
console.warn(
|
|
98
|
+
console.warn('🟠 [RouteResolver] Ambiguous URL provided - picking first match, did you omit the domain in a multi-site setup?');
|
|
65
99
|
}
|
|
66
100
|
if (client.debug)
|
|
67
|
-
console.log(`⚪ [RouteResolver] Resolved content info for ${path} to: ${JSON.stringify(resultSet.getRouteByPath.
|
|
68
|
-
return this.convertResponse(resultSet.getRouteByPath.
|
|
101
|
+
console.log(`⚪ [RouteResolver] Resolved content info for ${path} to: ${JSON.stringify(resultSet.getRouteByPath.item)}`);
|
|
102
|
+
return this.convertResponse(resultSet.getRouteByPath.item);
|
|
69
103
|
}
|
|
70
104
|
async getRouteById(client, contentId, locale, version) {
|
|
71
|
-
const variables = {
|
|
105
|
+
const variables = {
|
|
106
|
+
key: contentId,
|
|
107
|
+
version: version?.toString(),
|
|
108
|
+
locale: localeToGraphLocale(locale),
|
|
109
|
+
changeset: this._changeset || client.getChangeset(),
|
|
110
|
+
variation: version ? { include: 'ALL' } : undefined,
|
|
111
|
+
};
|
|
72
112
|
if (client.debug)
|
|
73
|
-
console.log(
|
|
113
|
+
console.log('⚪ [RouteResolver] Resolving content by id:', JSON.stringify(variables));
|
|
74
114
|
const resultSet = await client.request({
|
|
75
115
|
document: GetRouteById.query,
|
|
76
|
-
variables
|
|
116
|
+
variables,
|
|
77
117
|
});
|
|
78
118
|
if (resultSet.Content?.total >= 1) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
119
|
+
let selectedItem = resultSet.Content.items[0];
|
|
120
|
+
if (client.debug && resultSet.Content?.total > 1) {
|
|
121
|
+
let firstEmptyVariantItem = resultSet.Content?.items
|
|
122
|
+
?.filter((x) => x._metadata?.variation === null ||
|
|
123
|
+
x._metadata?.variation === undefined)
|
|
124
|
+
?.at(0);
|
|
125
|
+
selectedItem = firstEmptyVariantItem ?? selectedItem;
|
|
126
|
+
console.warn(`🟠 [RouteResolver] Received multiple entries with this ID, returning the first default variant from: ${(resultSet.Content?.items || [])
|
|
127
|
+
.map((x) => {
|
|
128
|
+
return `${x._metadata.key} (version: ${x._metadata.version}, locale: ${x._metadata.locale}, changeset: ${x._metadata.changeset}, variant: ${x._metadata.variation})`;
|
|
129
|
+
})
|
|
130
|
+
.join('; ')}`);
|
|
131
|
+
}
|
|
132
|
+
return this.convertResponse(selectedItem);
|
|
133
|
+
}
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
async getRouteByLink(client, contentLink) {
|
|
137
|
+
if (!isContentLinkWithLocale(contentLink))
|
|
138
|
+
return undefined;
|
|
139
|
+
const variables = {
|
|
140
|
+
key: contentLink.key,
|
|
141
|
+
version: contentLink.version?.toString(),
|
|
142
|
+
locale: contentLink.locale
|
|
143
|
+
? localeToGraphLocale(contentLink.locale)
|
|
144
|
+
: undefined,
|
|
145
|
+
changeset: contentLink.changeset || this._changeset || client.getChangeset(),
|
|
146
|
+
variation: contentLink.variation
|
|
147
|
+
? { include: 'SOME', value: [contentLink.variation] }
|
|
148
|
+
: contentLink.version
|
|
149
|
+
? { include: 'ALL' }
|
|
150
|
+
: undefined,
|
|
151
|
+
};
|
|
152
|
+
if (client.debug)
|
|
153
|
+
console.log('⚪ [RouteResolver] Resolving content by link:', JSON.stringify(variables));
|
|
154
|
+
const resultSet = await client.request({
|
|
155
|
+
document: GetRouteById.query,
|
|
156
|
+
variables,
|
|
157
|
+
});
|
|
158
|
+
if (resultSet.Content?.total >= 1) {
|
|
159
|
+
let selectedItem = resultSet.Content.items[0];
|
|
160
|
+
if (client.debug && resultSet.Content?.total > 1) {
|
|
161
|
+
let firstEmptyVariantItem = resultSet.Content?.items
|
|
162
|
+
?.filter((x) => x._metadata?.variation === null ||
|
|
163
|
+
x._metadata?.variation === undefined)
|
|
164
|
+
?.at(0);
|
|
165
|
+
selectedItem = firstEmptyVariantItem ?? selectedItem;
|
|
166
|
+
console.warn(`🟠 [RouteResolver] Received multiple entries with this ID, returning the first default variant from: ${(resultSet.Content?.items || [])
|
|
167
|
+
.map((x) => {
|
|
168
|
+
return `${x._metadata.key} (version: ${x._metadata.version}, locale: ${x._metadata.locale}, changeset: ${x._metadata.changeset}, variant: ${x._metadata.variation})`;
|
|
169
|
+
})
|
|
170
|
+
.join('; ')}`);
|
|
171
|
+
}
|
|
172
|
+
return this.convertResponse(selectedItem);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
console.warn(`🟠 [RouteResolver] Unable to locate the requested item (${JSON.stringify(variables)}) in Optimizely Graph`);
|
|
82
176
|
}
|
|
83
177
|
return undefined;
|
|
84
178
|
}
|
|
85
179
|
convertResponse(item) {
|
|
86
180
|
if (!item)
|
|
87
|
-
throw new Error(
|
|
181
|
+
throw new Error('RouteResolver.convertResponse(): mandatory parameter "item" not provided!');
|
|
88
182
|
const itemUrl = new URL(item._metadata?.url?.path ?? '/', item._metadata?.url?.domain ?? 'https://example.com');
|
|
89
183
|
return {
|
|
90
184
|
locale: item._metadata.locale,
|
|
91
185
|
path: item._metadata.url.path,
|
|
92
186
|
url: itemUrl,
|
|
93
|
-
slug: item._metadata?.slug ??
|
|
187
|
+
slug: item._metadata?.slug ?? '',
|
|
94
188
|
changed: item.changed ? new Date(item.changed) : null,
|
|
95
189
|
contentType: item._metadata.types,
|
|
96
190
|
version: item._metadata.version,
|
|
97
|
-
key: item._metadata.key
|
|
191
|
+
key: item._metadata.key,
|
|
192
|
+
changeset: item._metadata.changeset,
|
|
193
|
+
variation: item._metadata.variation,
|
|
98
194
|
};
|
|
99
195
|
}
|
|
100
196
|
tryConvertResponse(item) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms13/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms13/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type { VariationInput } from "../../types.js";
|
|
2
|
+
export type Route = {
|
|
3
|
+
_metadata: {
|
|
4
|
+
key: string;
|
|
5
|
+
version: string;
|
|
6
|
+
locale: string;
|
|
7
|
+
displayName: string;
|
|
8
|
+
types: Array<string>;
|
|
9
|
+
variation?: string | null;
|
|
10
|
+
changeset?: string | null;
|
|
11
|
+
url: {
|
|
12
|
+
path: string;
|
|
13
|
+
domain: string;
|
|
14
|
+
};
|
|
15
|
+
slug?: string | null;
|
|
16
|
+
};
|
|
17
|
+
changed: string;
|
|
18
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms13/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { Route } from '../types.js';
|
|
2
2
|
import { type IOptiGraphClient as GraphQLClient } from '../../../client/types.js';
|
|
3
|
+
import type { AnyContentLink } from '../../types.js';
|
|
3
4
|
export interface OptimizelyCmsRoutingApi {
|
|
4
5
|
enablePreview(changeset?: string): void;
|
|
5
6
|
disablePreview(): void;
|
|
6
|
-
getRoutes(client: GraphQLClient, siteId?: string, onlyWithDomain?: boolean): Promise<Route[]>;
|
|
7
|
-
getRouteByPath(client: GraphQLClient, path: string, siteId?: string): Promise<undefined | Route>;
|
|
7
|
+
getRoutes(client: GraphQLClient, siteId?: string, onlyWithDomain?: boolean, includeVariants?: boolean): Promise<Route[]>;
|
|
8
|
+
getRouteByPath(client: GraphQLClient, path: string, siteId?: string, variant?: string): Promise<undefined | Route>;
|
|
8
9
|
getRouteById(client: GraphQLClient, contentId: string, locale?: string, version?: string | number): Promise<undefined | Route>;
|
|
10
|
+
getRouteByLink(client: GraphQLClient, contentLink: AnyContentLink): Promise<undefined | Route>;
|
|
9
11
|
}
|
|
10
12
|
export type OptimizelyCmsRoutingApiClass = {
|
|
11
13
|
new (): OptimizelyCmsRoutingApi;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type IOptiGraphClient, OptiCmsSchema } from '../../client/index.js';
|
|
2
2
|
import { type OptimizelyGraphConfig } from '../../types.js';
|
|
3
3
|
import type { Route, IRouteResolver } from "./types.js";
|
|
4
|
-
import type { ContentLinkWithLocale } from '../types.js';
|
|
4
|
+
import type { AnyContentLink, ContentLinkWithLocale } from '../types.js';
|
|
5
5
|
/**
|
|
6
6
|
* Default router implementation for Optimizely CMS
|
|
7
7
|
*/
|
|
@@ -30,24 +30,28 @@ export declare class RouteResolver implements IRouteResolver {
|
|
|
30
30
|
/**
|
|
31
31
|
* Retrieve all registered routes for the provided domain - all domains if none specified
|
|
32
32
|
*
|
|
33
|
-
* @param
|
|
34
|
-
* @param onlyWithDomain
|
|
35
|
-
*
|
|
36
|
-
*
|
|
33
|
+
* @param domainOrChannelId The domain to filter on
|
|
34
|
+
* @param onlyWithDomain If set/kept to `undefined` will only filter by domain. When
|
|
35
|
+
* set to `true`, requires the domain (CMS SaaS/13 only) to be
|
|
36
|
+
* set. This allows to get all routes bound to a domain.
|
|
37
|
+
* @param includeVariants If set to `true` the output will include all variants for
|
|
38
|
+
* each item in the CMS.
|
|
37
39
|
* @returns The list of routes
|
|
38
40
|
*/
|
|
39
|
-
getRoutes(domain?: string, onlyWithDomain?: boolean): Promise<Route[]>;
|
|
41
|
+
getRoutes(domain?: string, onlyWithDomain?: boolean, includeVariants?: boolean): Promise<Route[]>;
|
|
40
42
|
/**
|
|
41
43
|
* Resolve a path to route information, either from string or from URL
|
|
42
44
|
* object.
|
|
43
45
|
*
|
|
44
46
|
* @param path The path to resolve for
|
|
45
47
|
* @param domain The domain to filter the results by
|
|
48
|
+
* @param variation The name of the variation to filter the routes by
|
|
46
49
|
* @returns The route information for the path
|
|
47
50
|
*/
|
|
48
51
|
getContentInfoByPath(path: URL): Promise<undefined | Route>;
|
|
49
|
-
getContentInfoByPath(path: string, domain?: string): Promise<undefined | Route>;
|
|
52
|
+
getContentInfoByPath(path: string, domain?: string, variation?: string): Promise<undefined | Route>;
|
|
50
53
|
getContentInfoById(key: string, locale?: string, version?: string | number): Promise<undefined | Route>;
|
|
54
|
+
getRouteByLink(contentLink: AnyContentLink): Promise<undefined | Route>;
|
|
51
55
|
/**
|
|
52
56
|
* Extract a content link from a route definition
|
|
53
57
|
*
|
|
@@ -58,23 +58,28 @@ export class RouteResolver {
|
|
|
58
58
|
/**
|
|
59
59
|
* Retrieve all registered routes for the provided domain - all domains if none specified
|
|
60
60
|
*
|
|
61
|
-
* @param
|
|
62
|
-
* @param onlyWithDomain
|
|
63
|
-
*
|
|
64
|
-
*
|
|
61
|
+
* @param domainOrChannelId The domain to filter on
|
|
62
|
+
* @param onlyWithDomain If set/kept to `undefined` will only filter by domain. When
|
|
63
|
+
* set to `true`, requires the domain (CMS SaaS/13 only) to be
|
|
64
|
+
* set. This allows to get all routes bound to a domain.
|
|
65
|
+
* @param includeVariants If set to `true` the output will include all variants for
|
|
66
|
+
* each item in the CMS.
|
|
65
67
|
* @returns The list of routes
|
|
66
68
|
*/
|
|
67
|
-
async getRoutes(domain, onlyWithDomain) {
|
|
68
|
-
return (await this.getResolver()).getRoutes(this._cgClient, domain, onlyWithDomain);
|
|
69
|
+
async getRoutes(domain, onlyWithDomain, includeVariants) {
|
|
70
|
+
return (await this.getResolver()).getRoutes(this._cgClient, domain, onlyWithDomain, includeVariants);
|
|
69
71
|
}
|
|
70
|
-
async getContentInfoByPath(path, domain) {
|
|
72
|
+
async getContentInfoByPath(path, domain, variation) {
|
|
71
73
|
const queryPath = typeof path == 'object' && path != null ? path.pathname : path;
|
|
72
74
|
const queryDomain = typeof path == 'object' && path != null ? path.protocol + '//' + path.host : domain;
|
|
73
|
-
return (await this.getResolver()).getRouteByPath(this._cgClient, queryPath, queryDomain);
|
|
75
|
+
return (await this.getResolver()).getRouteByPath(this._cgClient, queryPath, queryDomain, variation);
|
|
74
76
|
}
|
|
75
77
|
async getContentInfoById(key, locale, version) {
|
|
76
78
|
return (await this.getResolver()).getRouteById(this._cgClient, key, locale, version);
|
|
77
79
|
}
|
|
80
|
+
async getRouteByLink(contentLink) {
|
|
81
|
+
return (await this.getResolver()).getRouteByLink(this._cgClient, contentLink);
|
|
82
|
+
}
|
|
78
83
|
/**
|
|
79
84
|
* Extract a content link from a route definition
|
|
80
85
|
*
|
|
@@ -85,7 +90,10 @@ export class RouteResolver {
|
|
|
85
90
|
return {
|
|
86
91
|
key: route.key,
|
|
87
92
|
version: route.version,
|
|
88
|
-
locale: route.locale
|
|
93
|
+
locale: route.locale,
|
|
94
|
+
isInline: false,
|
|
95
|
+
variation: route.variation,
|
|
96
|
+
changeset: route.changeset
|
|
89
97
|
};
|
|
90
98
|
}
|
|
91
99
|
}
|