@remkoj/optimizely-graph-client 2.0.4 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +195 -135
- package/dist/admin-api/client/OptimizelyGraphAdminApi.js +1 -1
- package/dist/admin-api/client/core/OpenAPI.js +1 -1
- package/dist/admin-api/client/index.d.ts +4 -3
- package/dist/admin-api/client/index.js.map +1 -1
- package/dist/admin-api/client/models/{ContentTypeDefinition_V2.d.ts → ContentSource_V2.d.ts} +1 -1
- package/dist/admin-api/client/models/ContentSource_V2.js +2 -0
- package/dist/admin-api/client/models/ContentSource_V2.js.map +1 -0
- package/dist/admin-api/client/models/{ContentTypeDefinition_V3.d.ts → ContentSource_V3.d.ts} +2 -1
- package/dist/admin-api/client/models/ContentSource_V3.js +2 -0
- package/dist/admin-api/client/models/ContentSource_V3.js.map +1 -0
- package/dist/admin-api/client/models/FilterMap.d.ts +2 -2
- package/dist/admin-api/client/models/OperationMap.d.ts +1 -1
- package/dist/admin-api/client/models/Partial_Record_string_OperationMap__.d.ts +5 -0
- package/dist/admin-api/client/models/Partial_Record_string_OperationMap__.js +2 -0
- package/dist/admin-api/client/models/Partial_Record_string_OperationMap__.js.map +1 -0
- package/dist/admin-api/client/models/SourceInfo.d.ts +1 -0
- package/dist/admin-api/client/models/SourceMetadata.d.ts +4 -0
- package/dist/admin-api/client/models/SourceMetadata.js +2 -0
- package/dist/admin-api/client/models/SourceMetadata.js.map +1 -0
- package/dist/admin-api/client/models/Webhook.d.ts +2 -0
- package/dist/admin-api/client/models/WebhookPayload.d.ts +2 -2
- package/dist/admin-api/client/services/DefinitionV2Service.d.ts +2 -2
- package/dist/admin-api/client/services/DefinitionV2Service.js.map +1 -1
- package/dist/admin-api/client/services/DefinitionV3Service.d.ts +16 -6
- package/dist/admin-api/client/services/DefinitionV3Service.js +21 -2
- package/dist/admin-api/client/services/DefinitionV3Service.js.map +1 -1
- package/dist/client/client.d.ts +5 -2
- package/dist/client/client.js +40 -6
- package/dist/client/client.js.map +1 -1
- package/dist/client/index.d.ts +14 -3
- package/dist/client/index.js +15 -3
- package/dist/client/index.js.map +1 -1
- package/dist/client/types.d.ts +53 -6
- package/dist/client/types.js +6 -0
- package/dist/client/types.js.map +1 -1
- package/dist/client/utils.d.ts +33 -1
- package/dist/client/utils.js +46 -0
- package/dist/client/utils.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.js +14 -1
- package/dist/config.js.map +1 -1
- package/dist/services/channel-repository/repository.d.ts +1 -1
- package/dist/services/channel-repository/repository.js +4 -2
- package/dist/services/channel-repository/repository.js.map +1 -1
- package/dist/services/routing/queries/cms12/getAllRoutes.d.ts +32 -0
- package/dist/services/routing/queries/cms12/getAllRoutes.js +34 -0
- package/dist/services/routing/queries/cms12/getAllRoutes.js.map +1 -0
- package/dist/services/routing/queries/cms12/getRouteById.d.ts +13 -0
- package/dist/services/routing/queries/cms12/getRouteById.js +39 -0
- package/dist/services/routing/queries/cms12/getRouteById.js.map +1 -0
- package/dist/services/routing/queries/cms12/getRouteByPath.d.ts +12 -0
- package/dist/services/routing/queries/cms12/getRouteByPath.js +31 -0
- package/dist/services/routing/queries/cms12/getRouteByPath.js.map +1 -0
- package/dist/services/routing/queries/cms12/index.d.ts +14 -0
- package/dist/services/routing/queries/cms12/index.js +118 -0
- package/dist/services/routing/queries/cms12/index.js.map +1 -0
- package/dist/services/routing/queries/cms13/getAllRoutes.js.map +1 -0
- package/dist/services/routing/queries/cms13/getRouteById.js.map +1 -0
- package/dist/services/routing/queries/{getRouteByPath.js → cms13/getRouteByPath.js} +1 -1
- package/dist/services/routing/queries/cms13/getRouteByPath.js.map +1 -0
- package/dist/services/routing/queries/cms13/index.d.ts +12 -0
- package/dist/services/routing/queries/cms13/index.js +91 -0
- package/dist/services/routing/queries/cms13/index.js.map +1 -0
- package/dist/services/routing/queries/index.d.ts +1 -0
- package/dist/services/routing/queries/index.js +2 -0
- package/dist/services/routing/queries/index.js.map +1 -0
- package/dist/services/routing/queries/types.d.ts +7 -0
- package/dist/services/routing/queries/types.js +2 -0
- package/dist/services/routing/queries/types.js.map +1 -0
- package/dist/services/routing/resolver.d.ts +11 -9
- package/dist/services/routing/resolver.js +24 -85
- package/dist/services/routing/resolver.js.map +1 -1
- package/dist/services/routing/types.d.ts +32 -0
- package/dist/services/utils.js +2 -2
- package/dist/services/utils.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/package.json +3 -3
- package/dist/admin-api/client/models/ContentTypeDefinition_V2.js +0 -2
- package/dist/admin-api/client/models/ContentTypeDefinition_V2.js.map +0 -1
- package/dist/admin-api/client/models/ContentTypeDefinition_V3.js +0 -2
- package/dist/admin-api/client/models/ContentTypeDefinition_V3.js.map +0 -1
- package/dist/admin-api/client/models/Partial_Record_FieldKeys_OperationMap__.d.ts +0 -8
- package/dist/admin-api/client/models/Partial_Record_FieldKeys_OperationMap__.js +0 -2
- package/dist/admin-api/client/models/Partial_Record_FieldKeys_OperationMap__.js.map +0 -1
- package/dist/services/routing/queries/getAllRoutes.js.map +0 -1
- package/dist/services/routing/queries/getRouteById.js.map +0 -1
- package/dist/services/routing/queries/getRouteByPath.js.map +0 -1
- /package/dist/services/routing/queries/{getAllRoutes.d.ts → cms13/getAllRoutes.d.ts} +0 -0
- /package/dist/services/routing/queries/{getAllRoutes.js → cms13/getAllRoutes.js} +0 -0
- /package/dist/services/routing/queries/{getRouteById.d.ts → cms13/getRouteById.d.ts} +0 -0
- /package/dist/services/routing/queries/{getRouteById.js → cms13/getRouteById.js} +0 -0
- /package/dist/services/routing/queries/{getRouteByPath.d.ts → cms13/getRouteByPath.d.ts} +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type Route = {
|
|
2
|
+
path: string;
|
|
3
|
+
siteId: string;
|
|
4
|
+
locale: {
|
|
5
|
+
name: string;
|
|
6
|
+
};
|
|
7
|
+
contentLink: {
|
|
8
|
+
id?: number | null;
|
|
9
|
+
workId?: number | null;
|
|
10
|
+
guidValue?: string | null;
|
|
11
|
+
};
|
|
12
|
+
name: string;
|
|
13
|
+
contentType: string[];
|
|
14
|
+
slug: string;
|
|
15
|
+
changed: string;
|
|
16
|
+
published: string;
|
|
17
|
+
url: string;
|
|
18
|
+
};
|
|
19
|
+
export type Result = {
|
|
20
|
+
Content: {
|
|
21
|
+
items: Route[];
|
|
22
|
+
cursor: string;
|
|
23
|
+
total: number;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export type Variables = {
|
|
27
|
+
cursor?: string;
|
|
28
|
+
pageSize?: number;
|
|
29
|
+
typeFilter?: string | string[];
|
|
30
|
+
siteId?: string;
|
|
31
|
+
};
|
|
32
|
+
export declare const query: string;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { gql } from "graphql-request";
|
|
2
|
+
export const query = gql `query GetAllRoutes($cursor: String, $pageSize: Int = 100, $typeFilter: [String] = "Page", $siteId: String = null)
|
|
3
|
+
{
|
|
4
|
+
Content(
|
|
5
|
+
where: {
|
|
6
|
+
_and: {
|
|
7
|
+
_and: {
|
|
8
|
+
RelativePath: { exist: true }
|
|
9
|
+
ContentType: { in: $typeFilter }
|
|
10
|
+
SiteId: { eq: $siteId }
|
|
11
|
+
}
|
|
12
|
+
RelativePath: { notIn: [""] }
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
limit: $pageSize,
|
|
16
|
+
cursor: $cursor
|
|
17
|
+
) {
|
|
18
|
+
items {
|
|
19
|
+
path: RelativePath
|
|
20
|
+
locale:Language { name: Name }
|
|
21
|
+
contentLink: ContentLink { id: Id, workId: WorkId, guidValue: GuidValue }
|
|
22
|
+
name: Name
|
|
23
|
+
contentType: ContentType
|
|
24
|
+
slug: RouteSegment
|
|
25
|
+
changed: Changed
|
|
26
|
+
published: StartPublish
|
|
27
|
+
siteId: SiteId
|
|
28
|
+
url: Url
|
|
29
|
+
},
|
|
30
|
+
cursor,
|
|
31
|
+
total
|
|
32
|
+
}
|
|
33
|
+
}`;
|
|
34
|
+
//# sourceMappingURL=getAllRoutes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAllRoutes.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms12/getAllRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AA8BrC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BtB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type * as GetAllRoutes from './getAllRoutes.js';
|
|
2
|
+
export type Variables = {
|
|
3
|
+
id: number;
|
|
4
|
+
workId?: number | null;
|
|
5
|
+
locale?: string | string[];
|
|
6
|
+
};
|
|
7
|
+
export type Result = {
|
|
8
|
+
Content: {
|
|
9
|
+
total: number;
|
|
10
|
+
items: GetAllRoutes.Route[];
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export declare const query: string;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { gql } from "graphql-request";
|
|
2
|
+
export const query = gql `query GetRouteById($id: Int!, $workId: Int, $locale: [Locales]!) {
|
|
3
|
+
Content(
|
|
4
|
+
where: {
|
|
5
|
+
ContentLink: {
|
|
6
|
+
Id: {
|
|
7
|
+
eq: $id
|
|
8
|
+
}
|
|
9
|
+
WorkId: {
|
|
10
|
+
eq: $workId
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
locale: $locale
|
|
15
|
+
limit: 1,
|
|
16
|
+
orderBy: {
|
|
17
|
+
ContentLink: {
|
|
18
|
+
WorkId: DESC
|
|
19
|
+
}
|
|
20
|
+
Status: ASC
|
|
21
|
+
}
|
|
22
|
+
)
|
|
23
|
+
{
|
|
24
|
+
total,
|
|
25
|
+
items {
|
|
26
|
+
route: RelativePath
|
|
27
|
+
url: Url
|
|
28
|
+
locale:Language { name: Name }
|
|
29
|
+
contentLink: ContentLink { id: Id, workId: WorkId, guidValue: GuidValue }
|
|
30
|
+
name: Name,
|
|
31
|
+
contentType: ContentType,
|
|
32
|
+
slug: RouteSegment,
|
|
33
|
+
changed: Changed,
|
|
34
|
+
published: StartPublish
|
|
35
|
+
siteId: SiteId
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}`;
|
|
39
|
+
//# sourceMappingURL=getRouteById.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRouteById.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms12/getRouteById.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAerC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCtB,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type * as GetAllRoutes from './getAllRoutes.js';
|
|
2
|
+
export type Variables = {
|
|
3
|
+
path: string;
|
|
4
|
+
siteId?: string | null;
|
|
5
|
+
};
|
|
6
|
+
export type Result = {
|
|
7
|
+
Content: {
|
|
8
|
+
total: number;
|
|
9
|
+
items: GetAllRoutes.Route[];
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export declare const query: string;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { gql } from "graphql-request";
|
|
2
|
+
export const query = gql `query GetRouteByPath($path: String!, $siteId: String) {
|
|
3
|
+
Content(
|
|
4
|
+
where: {
|
|
5
|
+
_and: {
|
|
6
|
+
RelativePath: {
|
|
7
|
+
eq: $path
|
|
8
|
+
},
|
|
9
|
+
SiteId: {
|
|
10
|
+
eq:$siteId
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
)
|
|
15
|
+
{
|
|
16
|
+
total,
|
|
17
|
+
items {
|
|
18
|
+
route: RelativePath
|
|
19
|
+
url: Url
|
|
20
|
+
locale:Language { name: Name }
|
|
21
|
+
contentLink: ContentLink { id: Id, workId: WorkId, guidValue: GuidValue }
|
|
22
|
+
name: Name,
|
|
23
|
+
contentType: ContentType,
|
|
24
|
+
slug: RouteSegment,
|
|
25
|
+
changed: Changed,
|
|
26
|
+
published: StartPublish
|
|
27
|
+
siteId: SiteId
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}`;
|
|
31
|
+
//# sourceMappingURL=getRouteByPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRouteByPath.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms12/getRouteByPath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAarC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BtB,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as GetAllRoutes from './getAllRoutes.js';
|
|
2
|
+
import type { Route } from '../../types.js';
|
|
3
|
+
import { type IOptiGraphClient as GraphQLClient } from '../../../../client/types.js';
|
|
4
|
+
import { type OptimizelyCmsRoutingApi } from '../types.js';
|
|
5
|
+
export declare class OptimizelyCms12Client implements OptimizelyCmsRoutingApi {
|
|
6
|
+
getRoutes(client: GraphQLClient, siteId?: string): Promise<Route[]>;
|
|
7
|
+
getRouteByPath(client: GraphQLClient, path: string, siteId?: string): Promise<undefined | Route>;
|
|
8
|
+
getRouteById(client: GraphQLClient, contentId: string, locale: string, version: string | number): Promise<undefined | Route>;
|
|
9
|
+
protected parseIdString(id: string): [number, number | null];
|
|
10
|
+
protected convertResponse(item: GetAllRoutes.Route): Route;
|
|
11
|
+
protected tryConvertResponse(item: GetAllRoutes.Route): Route | undefined;
|
|
12
|
+
protected isNotNullOrUndefined<T>(input: T | null | undefined): input is T;
|
|
13
|
+
}
|
|
14
|
+
export default OptimizelyCms12Client;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import * as GetAllRoutes from './getAllRoutes.js';
|
|
2
|
+
import * as GetRouteById from './getRouteById.js';
|
|
3
|
+
import * as GetRouteByPath from './getRouteByPath.js';
|
|
4
|
+
export class OptimizelyCms12Client {
|
|
5
|
+
async getRoutes(client, siteId) {
|
|
6
|
+
client.updateFlags({ queryCache: false /*, cache: false*/ }, true);
|
|
7
|
+
let page = await client.request(GetAllRoutes.query, { siteId, typeFilter: "Page" });
|
|
8
|
+
let results = page?.Content?.items ?? [];
|
|
9
|
+
const totalCount = page?.Content?.total ?? 0;
|
|
10
|
+
const cursor = page?.Content?.cursor ?? '';
|
|
11
|
+
if (totalCount > 0 && cursor !== '' && totalCount > results.length)
|
|
12
|
+
while ((page?.Content?.items?.length ?? 0) > 0 && results.length < totalCount) {
|
|
13
|
+
page = await client.request({
|
|
14
|
+
document: GetAllRoutes.query,
|
|
15
|
+
variables: {
|
|
16
|
+
cursor,
|
|
17
|
+
siteId,
|
|
18
|
+
typeFilter: "Page"
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
results = results.concat(page.Content?.items ?? []);
|
|
22
|
+
}
|
|
23
|
+
client.restoreFlags();
|
|
24
|
+
return results.map(this.tryConvertResponse.bind(this)).filter(this.isNotNullOrUndefined);
|
|
25
|
+
}
|
|
26
|
+
async getRouteByPath(client, path, siteId) {
|
|
27
|
+
if (client.debug)
|
|
28
|
+
console.log(`Resolving content info for ${path} on ${siteId ? "site " + siteId : "all sites"}`);
|
|
29
|
+
const resultSet = await client.request({
|
|
30
|
+
document: GetRouteByPath.query,
|
|
31
|
+
variables: {
|
|
32
|
+
path,
|
|
33
|
+
siteId
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
if ((resultSet.Content?.items?.length ?? 0) === 0) {
|
|
37
|
+
if (client.debug)
|
|
38
|
+
console.warn("No items in the resultset");
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
if ((resultSet.Content?.items?.length ?? 0) > 1)
|
|
42
|
+
throw new Error("Ambiguous URL provided, did you omit the siteId in a multi-channel setup?");
|
|
43
|
+
if (client.debug)
|
|
44
|
+
console.log(`Resolved content info for ${path} to:`, resultSet.Content.items[0]);
|
|
45
|
+
return this.convertResponse(resultSet.Content.items[0]);
|
|
46
|
+
}
|
|
47
|
+
async getRouteById(client, contentId, locale, version) {
|
|
48
|
+
const [id, workId] = this.parseIdString(contentId);
|
|
49
|
+
const variables = {
|
|
50
|
+
id,
|
|
51
|
+
workId,
|
|
52
|
+
locale: locale.replaceAll('-', '_')
|
|
53
|
+
};
|
|
54
|
+
if (client.debug)
|
|
55
|
+
console.log("Resolving content by id:", JSON.stringify(variables));
|
|
56
|
+
const resultSet = await client.request({
|
|
57
|
+
document: GetRouteById.query,
|
|
58
|
+
variables
|
|
59
|
+
});
|
|
60
|
+
if (resultSet.Content?.total >= 1) {
|
|
61
|
+
if (client.debug && resultSet.Content?.total > 1)
|
|
62
|
+
console.warn(`Received multiple entries with this ID, returning the first one from: ${(resultSet.Content?.items || []).map(x => { return `${x.contentLink.id}_${x.contentLink.workId}_${x.locale.name}`; }).join('; ')}`);
|
|
63
|
+
return this.convertResponse(resultSet.Content.items[0]);
|
|
64
|
+
}
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
parseIdString(id) {
|
|
68
|
+
let cId = -1;
|
|
69
|
+
let workId = null;
|
|
70
|
+
if (id.indexOf("_") > 0) {
|
|
71
|
+
[cId, workId] = id.split("_").map(x => {
|
|
72
|
+
try {
|
|
73
|
+
return Number.parseInt(x, 10);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return -1;
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
if (workId < 0)
|
|
80
|
+
workId = null;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
try {
|
|
84
|
+
cId = Number.parseInt(id, 10);
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
cId = -1;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return [cId, workId];
|
|
91
|
+
}
|
|
92
|
+
convertResponse(item) {
|
|
93
|
+
return {
|
|
94
|
+
// Take the GQL response
|
|
95
|
+
...item,
|
|
96
|
+
// Then add/override the needed fields
|
|
97
|
+
url: new URL(item.url),
|
|
98
|
+
key: item.contentLink?.guidValue || "",
|
|
99
|
+
version: item.contentLink?.workId?.toString(),
|
|
100
|
+
locale: item.locale.name,
|
|
101
|
+
changed: item.changed ? new Date(item.changed) : null
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
tryConvertResponse(item) {
|
|
105
|
+
try {
|
|
106
|
+
return this.convertResponse(item);
|
|
107
|
+
}
|
|
108
|
+
catch (e) {
|
|
109
|
+
console.error(`Unable to convert ${JSON.stringify(item)} to Route`, e);
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
isNotNullOrUndefined(input) {
|
|
114
|
+
return input != null && input != undefined;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
export default OptimizelyCms12Client;
|
|
118
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms12/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +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;AAiCrC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCtB,CAAA"}
|
|
@@ -0,0 +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;AAgBrC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BtB,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { gql } from "graphql-request";
|
|
2
2
|
export const query = gql `query getRouteByPath($path: String!, $domain: String) {
|
|
3
3
|
getRouteByPath: _Content(
|
|
4
|
-
where: { _metadata: { url: { default: { eq: $path }, base: {
|
|
4
|
+
where: { _metadata: { url: { default: { eq: $path }, base: { endsWith: $domain } } } }
|
|
5
5
|
) {
|
|
6
6
|
total
|
|
7
7
|
items {
|
|
@@ -0,0 +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;AAerC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BtB,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Route } from '../../types.js';
|
|
2
|
+
import { type IOptiGraphClient as GraphQLClient } from '../../../../client/types.js';
|
|
3
|
+
import { type OptimizelyCmsRoutingApi } from '../types.js';
|
|
4
|
+
export declare class OptimizelyCms13Client implements OptimizelyCmsRoutingApi {
|
|
5
|
+
getRoutes(client: GraphQLClient, siteId?: string): Promise<Route[]>;
|
|
6
|
+
getRouteByPath(client: GraphQLClient, path: string, siteId?: string): Promise<undefined | Route>;
|
|
7
|
+
getRouteById(client: GraphQLClient, contentId: string, locale: string, version: string | number): Promise<undefined | Route>;
|
|
8
|
+
private convertResponse;
|
|
9
|
+
private tryConvertResponse;
|
|
10
|
+
private isNotNullOrUndefined;
|
|
11
|
+
}
|
|
12
|
+
export default OptimizelyCms13Client;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import * as GetAllRoutes from './getAllRoutes.js';
|
|
2
|
+
import * as GetRouteById from './getRouteById.js';
|
|
3
|
+
import * as GetRouteByPath from './getRouteByPath.js';
|
|
4
|
+
export class OptimizelyCms13Client {
|
|
5
|
+
async getRoutes(client, siteId) {
|
|
6
|
+
client.updateFlags({ queryCache: false /*, cache: false*/ }, true);
|
|
7
|
+
let page = await client.request(GetAllRoutes.query, { domain: siteId }).catch(e => {
|
|
8
|
+
if (client.debug)
|
|
9
|
+
console.error("[RouteResolver] Error while fetching routes", e);
|
|
10
|
+
return undefined;
|
|
11
|
+
});
|
|
12
|
+
let results = page?.Content?.items ?? [];
|
|
13
|
+
const totalCount = page?.Content?.total ?? 0;
|
|
14
|
+
const cursor = page?.Content?.cursor ?? '';
|
|
15
|
+
if (totalCount > 0 && cursor !== '' && totalCount > results.length)
|
|
16
|
+
while ((page?.Content?.items?.length ?? 0) > 0 && results.length < totalCount) {
|
|
17
|
+
page = await client.request({
|
|
18
|
+
document: GetAllRoutes.query,
|
|
19
|
+
variables: {
|
|
20
|
+
cursor,
|
|
21
|
+
domain: siteId
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
results = results.concat(page.Content?.items ?? []);
|
|
25
|
+
}
|
|
26
|
+
client.restoreFlags();
|
|
27
|
+
return results.map(this.tryConvertResponse.bind(this)).filter(this.isNotNullOrUndefined);
|
|
28
|
+
}
|
|
29
|
+
async getRouteByPath(client, path, siteId) {
|
|
30
|
+
if (client.debug)
|
|
31
|
+
console.log(`⚪ [RouteResolver] Resolving content info for ${path} on ${siteId ? siteId : "all domains"}`);
|
|
32
|
+
const resultSet = await client.request({
|
|
33
|
+
document: GetRouteByPath.query,
|
|
34
|
+
variables: { path: path, domain: siteId }
|
|
35
|
+
});
|
|
36
|
+
if ((resultSet.getRouteByPath?.items?.length ?? 0) === 0) {
|
|
37
|
+
if (client.debug)
|
|
38
|
+
console.warn("🟠 [RouteResolver] No items in the resultset");
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
if ((resultSet.getRouteByPath?.items?.length ?? 0) > 1)
|
|
42
|
+
throw new Error("🔴 [RouteResolver] Ambiguous URL provided, did you omit the domain in a multi-site setup?");
|
|
43
|
+
if (client.debug)
|
|
44
|
+
console.log(`⚪ [RouteResolver] Resolved content info for ${path} to: ${JSON.stringify(resultSet.getRouteByPath.items[0])}`);
|
|
45
|
+
return this.convertResponse(resultSet.getRouteByPath.items[0]);
|
|
46
|
+
}
|
|
47
|
+
async getRouteById(client, contentId, locale, version) {
|
|
48
|
+
const variables = { key: contentId, version: version?.toString(), locale: locale?.replaceAll('-', '_') };
|
|
49
|
+
if (client.debug)
|
|
50
|
+
console.log("Resolving content by id:", JSON.stringify(variables));
|
|
51
|
+
const resultSet = await client.request({
|
|
52
|
+
document: GetRouteById.query,
|
|
53
|
+
variables
|
|
54
|
+
});
|
|
55
|
+
if (resultSet.Content?.total >= 1) {
|
|
56
|
+
if (client.debug && resultSet.Content?.total > 1)
|
|
57
|
+
console.warn(`Received multiple entries with this ID, returning the first one from: ${(resultSet.Content?.items || []).map(x => { return `${x._metadata.key} (version: ${x._metadata.version}, locale: ${x._metadata.locale})`; }).join('; ')}`);
|
|
58
|
+
return this.convertResponse(resultSet.Content.items[0]);
|
|
59
|
+
}
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
convertResponse(item) {
|
|
63
|
+
if (!item)
|
|
64
|
+
throw new Error("RouteResolver.convertResponse(): mandatory parameter \"item\" not provided!");
|
|
65
|
+
const itemUrl = new URL(item._metadata?.url?.path ?? '/', item._metadata?.url?.domain ?? 'https://example.com');
|
|
66
|
+
return {
|
|
67
|
+
locale: item._metadata.locale,
|
|
68
|
+
path: item._metadata.url.path,
|
|
69
|
+
url: itemUrl,
|
|
70
|
+
slug: item._metadata?.slug ?? "",
|
|
71
|
+
changed: item.changed ? new Date(item.changed) : null,
|
|
72
|
+
contentType: item._metadata.types.reverse(),
|
|
73
|
+
version: item._metadata.version,
|
|
74
|
+
key: item._metadata.key
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
tryConvertResponse(item) {
|
|
78
|
+
try {
|
|
79
|
+
return this.convertResponse(item);
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
console.error(`Unable to convert ${JSON.stringify(item)} to Route`, e);
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
isNotNullOrUndefined(input) {
|
|
87
|
+
return input != null && input != undefined;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export default OptimizelyCms13Client;
|
|
91
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/routing/queries/cms13/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/routing/queries/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Route } from '../types.js';
|
|
2
|
+
import { type IOptiGraphClient as GraphQLClient } from '../../../client/types.js';
|
|
3
|
+
export interface OptimizelyCmsRoutingApi {
|
|
4
|
+
getRoutes(client: GraphQLClient, siteId?: string): Promise<Route[]>;
|
|
5
|
+
getRouteByPath(client: GraphQLClient, path: string, siteId?: string): Promise<undefined | Route>;
|
|
6
|
+
getRouteById(client: GraphQLClient, contentId: string, locale?: string, version?: string | number): Promise<undefined | Route>;
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/services/routing/queries/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { type IOptiGraphClient } from '../../client/index.js';
|
|
2
|
-
import type
|
|
3
|
-
import type { Route } from "./types.js";
|
|
1
|
+
import { type IOptiGraphClient, OptiCmsSchema } from '../../client/index.js';
|
|
2
|
+
import { type OptimizelyGraphConfig } from '../../types.js';
|
|
3
|
+
import type { Route, IRouteResolver } from "./types.js";
|
|
4
4
|
import type { ContentLinkWithLocale } from '../types.js';
|
|
5
|
-
import * as GetAllRoutes from './queries/getAllRoutes.js';
|
|
6
5
|
/**
|
|
7
6
|
*
|
|
8
7
|
*/
|
|
9
|
-
export declare class RouteResolver {
|
|
8
|
+
export declare class RouteResolver implements IRouteResolver {
|
|
10
9
|
private _cgClient;
|
|
11
10
|
private _defaultUrlBase;
|
|
11
|
+
private _resolverMode;
|
|
12
|
+
private _resolver;
|
|
13
|
+
protected get client(): IOptiGraphClient;
|
|
14
|
+
protected get urlBase(): string | URL;
|
|
15
|
+
protected get schema(): OptiCmsSchema;
|
|
12
16
|
/**
|
|
13
17
|
* Create a new Route Resolver
|
|
14
18
|
*
|
|
@@ -19,7 +23,8 @@ export declare class RouteResolver {
|
|
|
19
23
|
* constructor when reading routes from Optimizely
|
|
20
24
|
* Graph
|
|
21
25
|
*/
|
|
22
|
-
constructor(clientOrConfig?: IOptiGraphClient | OptimizelyGraphConfig, urlBase?: string | URL);
|
|
26
|
+
constructor(clientOrConfig?: IOptiGraphClient | OptimizelyGraphConfig, urlBase?: string | URL, resolverMode?: OptiCmsSchema);
|
|
27
|
+
private getResolver;
|
|
23
28
|
/**
|
|
24
29
|
* Retrieve all registered routes for the provided domain - all domains if none specified
|
|
25
30
|
*
|
|
@@ -45,8 +50,5 @@ export declare class RouteResolver {
|
|
|
45
50
|
* @returns The ContentLink, with locale information
|
|
46
51
|
*/
|
|
47
52
|
routeToContentLink(route: Route): ContentLinkWithLocale;
|
|
48
|
-
protected convertResponse(item: GetAllRoutes.Route): Route;
|
|
49
|
-
protected tryConvertResponse(item: GetAllRoutes.Route): Route | undefined;
|
|
50
|
-
protected isNotNullOrUndefined<T>(input: T | null | undefined): input is T;
|
|
51
53
|
}
|
|
52
54
|
export default RouteResolver;
|