@remkoj/optimizely-graph-client 1.0.1
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 +13 -0
- package/README.md +135 -0
- package/dist/admin-api/client/OptimizelyGraphAdminApi.d.ts +22 -0
- package/dist/admin-api/client/OptimizelyGraphAdminApi.js +31 -0
- package/dist/admin-api/client/OptimizelyGraphAdminApi.js.map +1 -0
- package/dist/admin-api/client/core/ApiError.d.ts +10 -0
- package/dist/admin-api/client/core/ApiError.js +12 -0
- package/dist/admin-api/client/core/ApiError.js.map +1 -0
- package/dist/admin-api/client/core/ApiRequestOptions.d.ts +13 -0
- package/dist/admin-api/client/core/ApiRequestOptions.js +2 -0
- package/dist/admin-api/client/core/ApiRequestOptions.js.map +1 -0
- package/dist/admin-api/client/core/ApiResult.d.ts +7 -0
- package/dist/admin-api/client/core/ApiResult.js +2 -0
- package/dist/admin-api/client/core/ApiResult.js.map +1 -0
- package/dist/admin-api/client/core/BaseHttpRequest.d.ts +8 -0
- package/dist/admin-api/client/core/BaseHttpRequest.js +6 -0
- package/dist/admin-api/client/core/BaseHttpRequest.js.map +1 -0
- package/dist/admin-api/client/core/CancelablePromise.d.ts +20 -0
- package/dist/admin-api/client/core/CancelablePromise.js +112 -0
- package/dist/admin-api/client/core/CancelablePromise.js.map +1 -0
- package/dist/admin-api/client/core/FetchHttpRequest.d.ts +14 -0
- package/dist/admin-api/client/core/FetchHttpRequest.js +17 -0
- package/dist/admin-api/client/core/FetchHttpRequest.js.map +1 -0
- package/dist/admin-api/client/core/OpenAPI.d.ts +16 -0
- package/dist/admin-api/client/core/OpenAPI.js +12 -0
- package/dist/admin-api/client/core/OpenAPI.js.map +1 -0
- package/dist/admin-api/client/core/request.d.ts +30 -0
- package/dist/admin-api/client/core/request.js +276 -0
- package/dist/admin-api/client/core/request.js.map +1 -0
- package/dist/admin-api/client/index.d.ts +45 -0
- package/dist/admin-api/client/index.js +17 -0
- package/dist/admin-api/client/index.js.map +1 -0
- package/dist/admin-api/client/models/CacheInvalidationConfig.d.ts +3 -0
- package/dist/admin-api/client/models/CacheInvalidationConfig.js +2 -0
- package/dist/admin-api/client/models/CacheInvalidationConfig.js.map +1 -0
- package/dist/admin-api/client/models/ContentTypeDefinition_V2.d.ts +10 -0
- package/dist/admin-api/client/models/ContentTypeDefinition_V2.js +2 -0
- package/dist/admin-api/client/models/ContentTypeDefinition_V2.js.map +1 -0
- package/dist/admin-api/client/models/ContentTypeDefinition_V3.d.ts +11 -0
- package/dist/admin-api/client/models/ContentTypeDefinition_V3.js +2 -0
- package/dist/admin-api/client/models/ContentTypeDefinition_V3.js.map +1 -0
- package/dist/admin-api/client/models/ContentTypeMap_V3.d.ts +2 -0
- package/dist/admin-api/client/models/ContentTypeMap_V3.js +2 -0
- package/dist/admin-api/client/models/ContentTypeMap_V3.js.map +1 -0
- package/dist/admin-api/client/models/ContentTypeProperty_V2.d.ts +5 -0
- package/dist/admin-api/client/models/ContentTypeProperty_V2.js +2 -0
- package/dist/admin-api/client/models/ContentTypeProperty_V2.js.map +1 -0
- package/dist/admin-api/client/models/ContentTypeProperty_V3.d.ts +7 -0
- package/dist/admin-api/client/models/ContentTypeProperty_V3.js +2 -0
- package/dist/admin-api/client/models/ContentTypeProperty_V3.js.map +1 -0
- package/dist/admin-api/client/models/ContentType_V2.d.ts +12 -0
- package/dist/admin-api/client/models/ContentType_V2.js +2 -0
- package/dist/admin-api/client/models/ContentType_V2.js.map +1 -0
- package/dist/admin-api/client/models/ContentType_V3.d.ts +11 -0
- package/dist/admin-api/client/models/ContentType_V3.js +2 -0
- package/dist/admin-api/client/models/ContentType_V3.js.map +1 -0
- package/dist/admin-api/client/models/FilterMap.d.ts +2 -0
- package/dist/admin-api/client/models/FilterMap.js +2 -0
- package/dist/admin-api/client/models/FilterMap.js.map +1 -0
- package/dist/admin-api/client/models/GraphQLRequest.d.ts +6 -0
- package/dist/admin-api/client/models/GraphQLRequest.js +2 -0
- package/dist/admin-api/client/models/GraphQLRequest.js.map +1 -0
- package/dist/admin-api/client/models/GraphQLResponse.d.ts +5 -0
- package/dist/admin-api/client/models/GraphQLResponse.js +2 -0
- package/dist/admin-api/client/models/GraphQLResponse.js.map +1 -0
- package/dist/admin-api/client/models/LinkMap.d.ts +2 -0
- package/dist/admin-api/client/models/LinkMap.js +2 -0
- package/dist/admin-api/client/models/LinkMap.js.map +1 -0
- package/dist/admin-api/client/models/LinkProperty.d.ts +4 -0
- package/dist/admin-api/client/models/LinkProperty.js +2 -0
- package/dist/admin-api/client/models/LinkProperty.js.map +1 -0
- package/dist/admin-api/client/models/OperationMap.d.ts +4 -0
- package/dist/admin-api/client/models/OperationMap.js +2 -0
- package/dist/admin-api/client/models/OperationMap.js.map +1 -0
- package/dist/admin-api/client/models/Optional_string_.d.ts +1 -0
- package/dist/admin-api/client/models/Optional_string_.js +2 -0
- package/dist/admin-api/client/models/Optional_string_.js.map +1 -0
- package/dist/admin-api/client/models/Partial_Record_FieldKeys_OperationMap__.d.ts +8 -0
- package/dist/admin-api/client/models/Partial_Record_FieldKeys_OperationMap__.js +2 -0
- package/dist/admin-api/client/models/Partial_Record_FieldKeys_OperationMap__.js.map +1 -0
- package/dist/admin-api/client/models/PropertyTypeMap_V3.d.ts +2 -0
- package/dist/admin-api/client/models/PropertyTypeMap_V3.js +2 -0
- package/dist/admin-api/client/models/PropertyTypeMap_V3.js.map +1 -0
- package/dist/admin-api/client/models/PropertyType_V2.d.ts +5 -0
- package/dist/admin-api/client/models/PropertyType_V2.js +2 -0
- package/dist/admin-api/client/models/PropertyType_V2.js.map +1 -0
- package/dist/admin-api/client/models/PropertyType_V3.d.ts +4 -0
- package/dist/admin-api/client/models/PropertyType_V3.js +2 -0
- package/dist/admin-api/client/models/PropertyType_V3.js.map +1 -0
- package/dist/admin-api/client/models/Property_V2.d.ts +6 -0
- package/dist/admin-api/client/models/Property_V2.js +2 -0
- package/dist/admin-api/client/models/Property_V2.js.map +1 -0
- package/dist/admin-api/client/models/Property_V3.d.ts +5 -0
- package/dist/admin-api/client/models/Property_V3.js +2 -0
- package/dist/admin-api/client/models/Property_V3.js.map +1 -0
- package/dist/admin-api/client/models/Record_string_any_.d.ts +4 -0
- package/dist/admin-api/client/models/Record_string_any_.js +2 -0
- package/dist/admin-api/client/models/Record_string_any_.js.map +1 -0
- package/dist/admin-api/client/models/Record_string_string_.d.ts +4 -0
- package/dist/admin-api/client/models/Record_string_string_.js +2 -0
- package/dist/admin-api/client/models/Record_string_string_.js.map +1 -0
- package/dist/admin-api/client/models/Request.d.ts +6 -0
- package/dist/admin-api/client/models/Request.js +2 -0
- package/dist/admin-api/client/models/Request.js.map +1 -0
- package/dist/admin-api/client/models/RequestLog.d.ts +15 -0
- package/dist/admin-api/client/models/RequestLog.js +2 -0
- package/dist/admin-api/client/models/RequestLog.js.map +1 -0
- package/dist/admin-api/client/models/SourceInfo.d.ts +5 -0
- package/dist/admin-api/client/models/SourceInfo.js +2 -0
- package/dist/admin-api/client/models/SourceInfo.js.map +1 -0
- package/dist/admin-api/client/models/SourceInfoMap.d.ts +2 -0
- package/dist/admin-api/client/models/SourceInfoMap.js +2 -0
- package/dist/admin-api/client/models/SourceInfoMap.js.map +1 -0
- package/dist/admin-api/client/models/StopwordsBody.d.ts +1 -0
- package/dist/admin-api/client/models/StopwordsBody.js +2 -0
- package/dist/admin-api/client/models/StopwordsBody.js.map +1 -0
- package/dist/admin-api/client/models/SynonymsBody.d.ts +1 -0
- package/dist/admin-api/client/models/SynonymsBody.js +2 -0
- package/dist/admin-api/client/models/SynonymsBody.js.map +1 -0
- package/dist/admin-api/client/models/TokenClaims.d.ts +4 -0
- package/dist/admin-api/client/models/TokenClaims.js +2 -0
- package/dist/admin-api/client/models/TokenClaims.js.map +1 -0
- package/dist/admin-api/client/models/Webhook.d.ts +4 -0
- package/dist/admin-api/client/models/Webhook.js +2 -0
- package/dist/admin-api/client/models/Webhook.js.map +1 -0
- package/dist/admin-api/client/models/WebhookPayload.d.ts +12 -0
- package/dist/admin-api/client/models/WebhookPayload.js +2 -0
- package/dist/admin-api/client/models/WebhookPayload.js.map +1 -0
- package/dist/admin-api/client/services/DefinitionV2Service.d.ts +34 -0
- package/dist/admin-api/client/services/DefinitionV2Service.js +62 -0
- package/dist/admin-api/client/services/DefinitionV2Service.js.map +1 -0
- package/dist/admin-api/client/services/DefinitionV3Service.d.ts +51 -0
- package/dist/admin-api/client/services/DefinitionV3Service.js +97 -0
- package/dist/admin-api/client/services/DefinitionV3Service.js.map +1 -0
- package/dist/admin-api/client/services/LogsService.d.ts +19 -0
- package/dist/admin-api/client/services/LogsService.js +30 -0
- package/dist/admin-api/client/services/LogsService.js.map +1 -0
- package/dist/admin-api/client/services/OidcService.d.ts +22 -0
- package/dist/admin-api/client/services/OidcService.js +33 -0
- package/dist/admin-api/client/services/OidcService.js.map +1 -0
- package/dist/admin-api/client/services/QueryGraphQlService.d.ts +27 -0
- package/dist/admin-api/client/services/QueryGraphQlService.js +43 -0
- package/dist/admin-api/client/services/QueryGraphQlService.js.map +1 -0
- package/dist/admin-api/client/services/ResourcesService.d.ts +30 -0
- package/dist/admin-api/client/services/ResourcesService.js +49 -0
- package/dist/admin-api/client/services/ResourcesService.js.map +1 -0
- package/dist/admin-api/client/services/WebhooksService.d.ts +42 -0
- package/dist/admin-api/client/services/WebhooksService.js +70 -0
- package/dist/admin-api/client/services/WebhooksService.js.map +1 -0
- package/dist/admin-api/index.d.ts +6 -0
- package/dist/admin-api/index.js +25 -0
- package/dist/admin-api/index.js.map +1 -0
- package/dist/admin-api/request.d.ts +5 -0
- package/dist/admin-api/request.js +32 -0
- package/dist/admin-api/request.js.map +1 -0
- package/dist/client/client.d.ts +36 -0
- package/dist/client/client.js +200 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/hmac-fetch.d.ts +3 -0
- package/dist/client/hmac-fetch.js +52 -0
- package/dist/client/hmac-fetch.js.map +1 -0
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.js +5 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/types.d.ts +67 -0
- package/dist/client/types.js +8 -0
- package/dist/client/types.js.map +1 -0
- package/dist/client/utils.d.ts +6 -0
- package/dist/client/utils.js +32 -0
- package/dist/client/utils.js.map +1 -0
- package/dist/codegen.d.ts +10 -0
- package/dist/codegen.js +18 -0
- package/dist/codegen.js.map +1 -0
- package/dist/config.d.ts +12 -0
- package/dist/config.js +97 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/services/channel-repository/definition.d.ts +86 -0
- package/dist/services/channel-repository/definition.js +125 -0
- package/dist/services/channel-repository/definition.js.map +1 -0
- package/dist/services/channel-repository/index.d.ts +2 -0
- package/dist/services/channel-repository/index.js +3 -0
- package/dist/services/channel-repository/index.js.map +1 -0
- package/dist/services/channel-repository/queries.d.ts +3 -0
- package/dist/services/channel-repository/queries.js +93 -0
- package/dist/services/channel-repository/queries.js.map +1 -0
- package/dist/services/channel-repository/repository.d.ts +15 -0
- package/dist/services/channel-repository/repository.js +75 -0
- package/dist/services/channel-repository/repository.js.map +1 -0
- package/dist/services/channel-repository/types.d.ts +26 -0
- package/dist/services/channel-repository/types.js +2 -0
- package/dist/services/channel-repository/types.js.map +1 -0
- package/dist/services/index.d.ts +4 -0
- package/dist/services/index.js +3 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/routing/index.d.ts +83 -0
- package/dist/services/routing/index.js +243 -0
- package/dist/services/routing/index.js.map +1 -0
- package/dist/services/routing/types.d.ts +25 -0
- package/dist/services/routing/types.js +2 -0
- package/dist/services/routing/types.js.map +1 -0
- package/dist/types.d.ts +39 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { OptimizelyGraphConfig } from '../../types.js';
|
|
2
|
+
import { type IOptiGraphClient } from '../../client/index.js';
|
|
3
|
+
import ChannelDefinition from './definition.js';
|
|
4
|
+
export declare class ChannelRepository {
|
|
5
|
+
protected client: IOptiGraphClient;
|
|
6
|
+
constructor(clientOrConfig?: IOptiGraphClient | OptimizelyGraphConfig);
|
|
7
|
+
getAll(): Promise<ReadonlyArray<Readonly<ChannelDefinition>>>;
|
|
8
|
+
getById(id: string): Promise<Readonly<ChannelDefinition> | null>;
|
|
9
|
+
getByDomain(domain: string, fallback?: boolean): Promise<Readonly<ChannelDefinition> | null>;
|
|
10
|
+
getDefaultDomain(): string;
|
|
11
|
+
getCmsDomain(): string;
|
|
12
|
+
getDefault(): Promise<Readonly<ChannelDefinition> | null>;
|
|
13
|
+
protected transformGraphResponse(ch: any): ChannelDefinition;
|
|
14
|
+
}
|
|
15
|
+
export default ChannelRepository;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import createClient, { isContentGraphClient } from '../../client/index.js';
|
|
2
|
+
import ChannelDefinition from './definition.js';
|
|
3
|
+
import * as Queries from './queries.js';
|
|
4
|
+
export class ChannelRepository {
|
|
5
|
+
constructor(clientOrConfig) {
|
|
6
|
+
this.client = isContentGraphClient(clientOrConfig) ? clientOrConfig : createClient(clientOrConfig);
|
|
7
|
+
}
|
|
8
|
+
async getAll() {
|
|
9
|
+
const data = await this.client.request(Queries.getAll);
|
|
10
|
+
const channels = data.GetAllChannels?.channels;
|
|
11
|
+
if (!channels || !Array.isArray(channels))
|
|
12
|
+
throw new Error("No channels returned by Optimizely Graph");
|
|
13
|
+
return channels.map(this.transformGraphResponse);
|
|
14
|
+
}
|
|
15
|
+
async getById(id) {
|
|
16
|
+
const data = await this.client.request(Queries.getById, { id });
|
|
17
|
+
const channels = data.GetChannelById?.channels;
|
|
18
|
+
if (!channels || !Array.isArray(channels))
|
|
19
|
+
throw new Error("No channels returned by Optimizely Graph");
|
|
20
|
+
if (channels.length == 0)
|
|
21
|
+
return null;
|
|
22
|
+
return this.transformGraphResponse(channels[0]);
|
|
23
|
+
}
|
|
24
|
+
async getByDomain(domain, fallback = true) {
|
|
25
|
+
const data = await this.client.request(Queries.getByDomain, { domain, fallback: fallback ? "*" : "__NO_FALLBACK__" });
|
|
26
|
+
const channels = data.GetChannelByDomain?.channels;
|
|
27
|
+
if (!channels || !Array.isArray(channels))
|
|
28
|
+
throw new Error("No channels returned by Optimizely Graph");
|
|
29
|
+
if (channels.length == 0)
|
|
30
|
+
return null;
|
|
31
|
+
return this.transformGraphResponse(channels[0]);
|
|
32
|
+
}
|
|
33
|
+
getDefaultDomain() {
|
|
34
|
+
return this.client.siteInfo.frontendDomain ?? 'http://localhost:3000';
|
|
35
|
+
}
|
|
36
|
+
getCmsDomain() {
|
|
37
|
+
return this.client.siteInfo.cmsURL ?? 'http://localhost:8000';
|
|
38
|
+
}
|
|
39
|
+
async getDefault() {
|
|
40
|
+
return this.getByDomain(this.getDefaultDomain(), true);
|
|
41
|
+
}
|
|
42
|
+
transformGraphResponse(ch) {
|
|
43
|
+
return new ChannelDefinition({
|
|
44
|
+
id: ch.id,
|
|
45
|
+
name: ch.name,
|
|
46
|
+
domains: (ch.domains ?? []).map((d) => {
|
|
47
|
+
const def = {
|
|
48
|
+
name: d.name,
|
|
49
|
+
isPrimary: d.type == "Primary",
|
|
50
|
+
isEdit: d.type == "Edit"
|
|
51
|
+
};
|
|
52
|
+
if (d.forLocale?.code)
|
|
53
|
+
def.forLocale = d.forLocale?.code;
|
|
54
|
+
return def;
|
|
55
|
+
}),
|
|
56
|
+
locales: (ch.locales ?? []).map((c) => {
|
|
57
|
+
const loc = {
|
|
58
|
+
code: c.code,
|
|
59
|
+
slug: c.slug,
|
|
60
|
+
graphLocale: c.code.replaceAll("-", "_"),
|
|
61
|
+
isDefault: c.isDefault == true
|
|
62
|
+
};
|
|
63
|
+
return loc;
|
|
64
|
+
}),
|
|
65
|
+
content: {
|
|
66
|
+
startPage: {
|
|
67
|
+
id: ch.content?.startPage?.id,
|
|
68
|
+
guidValue: ch.content?.startPage?.guidValue
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}, this.getCmsDomain());
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export default ChannelRepository;
|
|
75
|
+
//# sourceMappingURL=repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/services/channel-repository/repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type ChannelDomain = {
|
|
2
|
+
name: string;
|
|
3
|
+
isPrimary: boolean;
|
|
4
|
+
isEdit: boolean;
|
|
5
|
+
forLocale?: string;
|
|
6
|
+
};
|
|
7
|
+
export type ChannelLocale = {
|
|
8
|
+
code: string;
|
|
9
|
+
slug: string;
|
|
10
|
+
graphLocale: string;
|
|
11
|
+
isDefault: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type ChannelContentId = {
|
|
14
|
+
id: number;
|
|
15
|
+
guidValue: string;
|
|
16
|
+
};
|
|
17
|
+
export type ChannelContent = {
|
|
18
|
+
startPage: ChannelContentId;
|
|
19
|
+
};
|
|
20
|
+
export type ChannelDefinitionData = {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
domains: ChannelDomain[];
|
|
24
|
+
locales: ChannelLocale[];
|
|
25
|
+
content: ChannelContent;
|
|
26
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/channel-repository/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { ContentLinkWithLocale, Route } from "./types.js";
|
|
2
|
+
import { type IOptiGraphClient } from '../../client/index.js';
|
|
3
|
+
import type { OptimizelyGraphConfig } from '../../types.js';
|
|
4
|
+
export declare class RouteResolver {
|
|
5
|
+
private _cgClient;
|
|
6
|
+
/**
|
|
7
|
+
* Create a new Route Resolver
|
|
8
|
+
*
|
|
9
|
+
* @param client ContentGraph configuration override
|
|
10
|
+
* @param apolloConfig Apollo Client configuration override
|
|
11
|
+
*/
|
|
12
|
+
constructor(clientOrConfig?: IOptiGraphClient | OptimizelyGraphConfig);
|
|
13
|
+
getRoutes(siteId?: string): Promise<Route[]>;
|
|
14
|
+
getContentInfoByPath(path: string, siteId?: null): Promise<undefined | Route>;
|
|
15
|
+
getContentInfoById(contentId: string, locale: string): Promise<undefined | Route>;
|
|
16
|
+
routeToContentLink(route: Route): ContentLinkWithLocale;
|
|
17
|
+
protected parseIdString(id: string): [number, number | null];
|
|
18
|
+
protected convertResponse(item: GetAllRoutes.Route): Route;
|
|
19
|
+
protected tryConvertResponse(item: GetAllRoutes.Route): Route | undefined;
|
|
20
|
+
protected isNotNullOrUndefined<T>(input: T | null | undefined): input is T;
|
|
21
|
+
}
|
|
22
|
+
export default RouteResolver;
|
|
23
|
+
export declare namespace GetAllRoutes {
|
|
24
|
+
type Route = {
|
|
25
|
+
path: string;
|
|
26
|
+
siteId: string;
|
|
27
|
+
locale: {
|
|
28
|
+
name: string;
|
|
29
|
+
};
|
|
30
|
+
contentLink: {
|
|
31
|
+
id?: number | null;
|
|
32
|
+
workId?: number | null;
|
|
33
|
+
guidValue?: string | null;
|
|
34
|
+
};
|
|
35
|
+
name: string;
|
|
36
|
+
contentType: string[];
|
|
37
|
+
slug: string;
|
|
38
|
+
changed: string;
|
|
39
|
+
published: string;
|
|
40
|
+
url: string;
|
|
41
|
+
};
|
|
42
|
+
type Result = {
|
|
43
|
+
Content: {
|
|
44
|
+
items: Route[];
|
|
45
|
+
cursor: string;
|
|
46
|
+
total: number;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
type Variables = {
|
|
50
|
+
cursor?: string;
|
|
51
|
+
pageSize?: number;
|
|
52
|
+
typeFilter?: string | string[];
|
|
53
|
+
siteId?: string;
|
|
54
|
+
};
|
|
55
|
+
const query: string;
|
|
56
|
+
}
|
|
57
|
+
export declare namespace GetRouteByPath {
|
|
58
|
+
type Variables = {
|
|
59
|
+
path: string;
|
|
60
|
+
siteId?: string | null;
|
|
61
|
+
};
|
|
62
|
+
type Result = {
|
|
63
|
+
Content: {
|
|
64
|
+
total: number;
|
|
65
|
+
items: GetAllRoutes.Route[];
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
const query: string;
|
|
69
|
+
}
|
|
70
|
+
export declare namespace GetRouteById {
|
|
71
|
+
type Variables = {
|
|
72
|
+
id: number;
|
|
73
|
+
workId?: number | null;
|
|
74
|
+
locale?: string | string[];
|
|
75
|
+
};
|
|
76
|
+
type Result = {
|
|
77
|
+
Content: {
|
|
78
|
+
total: number;
|
|
79
|
+
items: GetAllRoutes.Route[];
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
const query: string;
|
|
83
|
+
}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { gql } from "graphql-request";
|
|
2
|
+
import createClient, { isContentGraphClient } from '../../client/index.js';
|
|
3
|
+
export class RouteResolver {
|
|
4
|
+
/**
|
|
5
|
+
* Create a new Route Resolver
|
|
6
|
+
*
|
|
7
|
+
* @param client ContentGraph configuration override
|
|
8
|
+
* @param apolloConfig Apollo Client configuration override
|
|
9
|
+
*/
|
|
10
|
+
constructor(clientOrConfig) {
|
|
11
|
+
this._cgClient = isContentGraphClient(clientOrConfig) ? clientOrConfig : createClient(clientOrConfig);
|
|
12
|
+
}
|
|
13
|
+
async getRoutes(siteId) {
|
|
14
|
+
this._cgClient.updateFlags({ queryCache: false }, true);
|
|
15
|
+
let page = await this._cgClient.request(GetAllRoutes.query, { siteId, typeFilter: "Page" });
|
|
16
|
+
let results = page?.Content?.items ?? [];
|
|
17
|
+
const totalCount = page?.Content?.total ?? 0;
|
|
18
|
+
const cursor = page?.Content?.cursor ?? '';
|
|
19
|
+
if (totalCount > 0 && cursor !== '' && totalCount > results.length)
|
|
20
|
+
while ((page?.Content?.items?.length ?? 0) > 0 && results.length < totalCount) {
|
|
21
|
+
page = await this._cgClient.request({
|
|
22
|
+
document: GetAllRoutes.query,
|
|
23
|
+
variables: {
|
|
24
|
+
cursor,
|
|
25
|
+
siteId,
|
|
26
|
+
typeFilter: "Page"
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
results = results.concat(page.Content?.items ?? []);
|
|
30
|
+
}
|
|
31
|
+
this._cgClient.restoreFlags();
|
|
32
|
+
return results.map(this.tryConvertResponse.bind(this)).filter(this.isNotNullOrUndefined);
|
|
33
|
+
}
|
|
34
|
+
async getContentInfoByPath(path, siteId) {
|
|
35
|
+
if (this._cgClient.debug)
|
|
36
|
+
console.log(`Resolving content info for ${path} on ${siteId ? "site " + siteId : "all sites"}`);
|
|
37
|
+
const resultSet = await this._cgClient.request({
|
|
38
|
+
document: GetRouteByPath.query,
|
|
39
|
+
variables: {
|
|
40
|
+
path,
|
|
41
|
+
siteId
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
if ((resultSet.Content?.items?.length ?? 0) === 0) {
|
|
45
|
+
if (this._cgClient.debug)
|
|
46
|
+
console.warn("No items in the resultset");
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
if ((resultSet.Content?.items?.length ?? 0) > 1)
|
|
50
|
+
throw new Error("Ambiguous URL provided, did you omit the siteId in a multi-channel setup?");
|
|
51
|
+
if (this._cgClient.debug)
|
|
52
|
+
console.log(`Resolved content info for ${path} to:`, resultSet.Content.items[0]);
|
|
53
|
+
return this.convertResponse(resultSet.Content.items[0]);
|
|
54
|
+
}
|
|
55
|
+
async getContentInfoById(contentId, locale) {
|
|
56
|
+
const [id, workId] = this.parseIdString(contentId);
|
|
57
|
+
const variables = {
|
|
58
|
+
id,
|
|
59
|
+
workId,
|
|
60
|
+
locale: locale.replaceAll('-', '_')
|
|
61
|
+
};
|
|
62
|
+
if (this._cgClient.debug)
|
|
63
|
+
console.log("Resolving content by id:", JSON.stringify(variables));
|
|
64
|
+
const resultSet = await this._cgClient.request({
|
|
65
|
+
document: GetRouteById.query,
|
|
66
|
+
variables
|
|
67
|
+
});
|
|
68
|
+
if (resultSet.Content?.total >= 1) {
|
|
69
|
+
if (this._cgClient.debug && resultSet.Content?.total > 1)
|
|
70
|
+
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('; ')}`);
|
|
71
|
+
return this.convertResponse(resultSet.Content.items[0]);
|
|
72
|
+
}
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
routeToContentLink(route) {
|
|
76
|
+
return {
|
|
77
|
+
id: route.id,
|
|
78
|
+
workId: route.workId,
|
|
79
|
+
guidValue: route.guid,
|
|
80
|
+
locale: route.language
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
parseIdString(id) {
|
|
84
|
+
let cId = -1;
|
|
85
|
+
let workId = null;
|
|
86
|
+
if (id.indexOf("_") > 0) {
|
|
87
|
+
[cId, workId] = id.split("_").map(x => {
|
|
88
|
+
try {
|
|
89
|
+
return Number.parseInt(x, 10);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return -1;
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
if (workId < 0)
|
|
96
|
+
workId = null;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
try {
|
|
100
|
+
cId = Number.parseInt(id, 10);
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
cId = -1;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return [cId, workId];
|
|
107
|
+
}
|
|
108
|
+
convertResponse(item) {
|
|
109
|
+
return {
|
|
110
|
+
// Take the GQL response
|
|
111
|
+
...item,
|
|
112
|
+
// Then add/override the needed fields
|
|
113
|
+
url: new URL(item.url),
|
|
114
|
+
id: item.contentLink?.id || 0,
|
|
115
|
+
workId: item.contentLink?.workId,
|
|
116
|
+
guid: item.contentLink?.guidValue || "",
|
|
117
|
+
language: item.locale.name,
|
|
118
|
+
published: item.published ? new Date(item.published) : null,
|
|
119
|
+
changed: item.changed ? new Date(item.changed) : null
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
tryConvertResponse(item) {
|
|
123
|
+
try {
|
|
124
|
+
return this.convertResponse(item);
|
|
125
|
+
}
|
|
126
|
+
catch (e) {
|
|
127
|
+
console.error(`Unable to convert ${JSON.stringify(item)} to Route`, e);
|
|
128
|
+
return undefined;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
isNotNullOrUndefined(input) {
|
|
132
|
+
return input != null && input != undefined;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
export default RouteResolver;
|
|
136
|
+
export var GetAllRoutes;
|
|
137
|
+
(function (GetAllRoutes) {
|
|
138
|
+
GetAllRoutes.query = gql `query GetAllRoutes($cursor: String, $pageSize: Int = 100, $typeFilter: [String] = "Page", $siteId: String = null)
|
|
139
|
+
{
|
|
140
|
+
Content(
|
|
141
|
+
where: {
|
|
142
|
+
_and: {
|
|
143
|
+
_and: {
|
|
144
|
+
RelativePath: { exist: true }
|
|
145
|
+
ContentType: { in: $typeFilter }
|
|
146
|
+
SiteId: { eq: $siteId }
|
|
147
|
+
}
|
|
148
|
+
RelativePath: { notIn: [""] }
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
limit: $pageSize,
|
|
152
|
+
cursor: $cursor
|
|
153
|
+
) {
|
|
154
|
+
items {
|
|
155
|
+
path: RelativePath
|
|
156
|
+
locale:Language { name: Name }
|
|
157
|
+
contentLink: ContentLink { id: Id, workId: WorkId, guidValue: GuidValue }
|
|
158
|
+
name: Name
|
|
159
|
+
contentType: ContentType
|
|
160
|
+
slug: RouteSegment
|
|
161
|
+
changed: Changed
|
|
162
|
+
published: StartPublish
|
|
163
|
+
siteId: SiteId
|
|
164
|
+
url: Url
|
|
165
|
+
},
|
|
166
|
+
cursor,
|
|
167
|
+
total
|
|
168
|
+
}
|
|
169
|
+
}`;
|
|
170
|
+
})(GetAllRoutes || (GetAllRoutes = {}));
|
|
171
|
+
export var GetRouteByPath;
|
|
172
|
+
(function (GetRouteByPath) {
|
|
173
|
+
GetRouteByPath.query = gql `query GetRouteByPath($path: String!, $siteId: String) {
|
|
174
|
+
Content(
|
|
175
|
+
where: {
|
|
176
|
+
_and: {
|
|
177
|
+
RelativePath: {
|
|
178
|
+
eq: $path
|
|
179
|
+
},
|
|
180
|
+
SiteId: {
|
|
181
|
+
eq:$siteId
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
)
|
|
186
|
+
{
|
|
187
|
+
total,
|
|
188
|
+
items {
|
|
189
|
+
route: RelativePath
|
|
190
|
+
url: Url
|
|
191
|
+
locale:Language { name: Name }
|
|
192
|
+
contentLink: ContentLink { id: Id, workId: WorkId, guidValue: GuidValue }
|
|
193
|
+
name: Name,
|
|
194
|
+
contentType: ContentType,
|
|
195
|
+
slug: RouteSegment,
|
|
196
|
+
changed: Changed,
|
|
197
|
+
published: StartPublish
|
|
198
|
+
siteId: SiteId
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}`;
|
|
202
|
+
})(GetRouteByPath || (GetRouteByPath = {}));
|
|
203
|
+
export var GetRouteById;
|
|
204
|
+
(function (GetRouteById) {
|
|
205
|
+
GetRouteById.query = gql `query GetRouteById($id: Int!, $workId: Int, $locale: [Locales]!) {
|
|
206
|
+
Content(
|
|
207
|
+
where: {
|
|
208
|
+
ContentLink: {
|
|
209
|
+
Id: {
|
|
210
|
+
eq: $id
|
|
211
|
+
}
|
|
212
|
+
WorkId: {
|
|
213
|
+
eq: $workId
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
locale: $locale
|
|
218
|
+
limit: 1,
|
|
219
|
+
orderBy: {
|
|
220
|
+
ContentLink: {
|
|
221
|
+
WorkId: DESC
|
|
222
|
+
}
|
|
223
|
+
Status: ASC
|
|
224
|
+
}
|
|
225
|
+
)
|
|
226
|
+
{
|
|
227
|
+
total,
|
|
228
|
+
items {
|
|
229
|
+
route: RelativePath
|
|
230
|
+
url: Url
|
|
231
|
+
locale:Language { name: Name }
|
|
232
|
+
contentLink: ContentLink { id: Id, workId: WorkId, guidValue: GuidValue }
|
|
233
|
+
name: Name,
|
|
234
|
+
contentType: ContentType,
|
|
235
|
+
slug: RouteSegment,
|
|
236
|
+
changed: Changed,
|
|
237
|
+
published: StartPublish
|
|
238
|
+
siteId: SiteId
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}`;
|
|
242
|
+
})(GetRouteById || (GetRouteById = {}));
|
|
243
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/routing/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type ContentLink = {
|
|
2
|
+
id: number;
|
|
3
|
+
workId?: number | null;
|
|
4
|
+
guidValue?: string | null;
|
|
5
|
+
} | {
|
|
6
|
+
id?: number | null;
|
|
7
|
+
workId?: number | null;
|
|
8
|
+
guidValue: string;
|
|
9
|
+
};
|
|
10
|
+
export type ContentLinkWithLocale = ContentLink & {
|
|
11
|
+
locale?: string;
|
|
12
|
+
};
|
|
13
|
+
export type Route = {
|
|
14
|
+
language: string;
|
|
15
|
+
path: string;
|
|
16
|
+
url: URL;
|
|
17
|
+
slug: string;
|
|
18
|
+
changed: Date | null;
|
|
19
|
+
published: Date | null;
|
|
20
|
+
contentType: string[];
|
|
21
|
+
id: number;
|
|
22
|
+
workId?: number | null;
|
|
23
|
+
guid: string;
|
|
24
|
+
siteId: string;
|
|
25
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/routing/types.ts"],"names":[],"mappings":""}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export type OptimizelyGraphConfigInternal = {
|
|
2
|
+
/**
|
|
3
|
+
* Optimizely Graph AppKey, it is recommended to not let this key leave the server side
|
|
4
|
+
*/
|
|
5
|
+
single_key: string;
|
|
6
|
+
/**
|
|
7
|
+
* Optimizely Graph Service domain, it is recommended to not let this key leave the server side
|
|
8
|
+
*/
|
|
9
|
+
gateway: string;
|
|
10
|
+
/**
|
|
11
|
+
* Optimizely CMS Domain, it is recommended to not let this key leave the server side
|
|
12
|
+
*/
|
|
13
|
+
dxp_url?: string;
|
|
14
|
+
/**
|
|
15
|
+
* The auto-generated domain for the deployment
|
|
16
|
+
*/
|
|
17
|
+
deploy_domain?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Set to true to enable debug output to the console
|
|
20
|
+
*/
|
|
21
|
+
debug: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Set to true to log all GraphQL queries to the console
|
|
24
|
+
*/
|
|
25
|
+
query_log: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Optimizely Graph Secret, this value must never leave the server side
|
|
28
|
+
*/
|
|
29
|
+
secret?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Optimizely Graph AppKey, this value must never leave the server side
|
|
32
|
+
*/
|
|
33
|
+
app_key?: string;
|
|
34
|
+
};
|
|
35
|
+
export type OptimizelyGraphConfig = Partial<Omit<OptimizelyGraphConfigInternal, 'single_key'>> & Pick<OptimizelyGraphConfigInternal, 'single_key'>;
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated Reference OptimizelyGraphConfig
|
|
38
|
+
*/
|
|
39
|
+
export type ContentGraphConfig = OptimizelyGraphConfig;
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@remkoj/optimizely-graph-client",
|
|
3
|
+
"license": "Apache-2.0",
|
|
4
|
+
"version": "1.0.1",
|
|
5
|
+
"packageManager": "yarn@4.1.1",
|
|
6
|
+
"private": false,
|
|
7
|
+
"repository": "https://github.com/remkoj/optimizely-dxp-clients.git",
|
|
8
|
+
"author": "Remko Jantzen <693172+remkoj@users.noreply.github.com>",
|
|
9
|
+
"homepage": "https://github.com/remkoj/optimizely-dxp-clients",
|
|
10
|
+
"type": "module",
|
|
11
|
+
"main": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"files": [
|
|
14
|
+
"./dist"
|
|
15
|
+
],
|
|
16
|
+
"exports": {
|
|
17
|
+
".": "./dist/index.js",
|
|
18
|
+
"./client": "./dist/client/index.js",
|
|
19
|
+
"./config": "./dist/config.js",
|
|
20
|
+
"./router": "./dist/services/routing/index.js",
|
|
21
|
+
"./channels": "./dist/services/channel-repository/index.js",
|
|
22
|
+
"./admin": "./dist/admin-api/index.js",
|
|
23
|
+
"./codegen": "./dist/codegen.js"
|
|
24
|
+
},
|
|
25
|
+
"typesVersions": {
|
|
26
|
+
"*": {
|
|
27
|
+
"client": [
|
|
28
|
+
"dist/client/index.d.ts"
|
|
29
|
+
],
|
|
30
|
+
"config": [
|
|
31
|
+
"dist/config.d.ts",
|
|
32
|
+
"dist/types.d.ts"
|
|
33
|
+
],
|
|
34
|
+
"router": [
|
|
35
|
+
"./dist/services/routing/index.d.ts",
|
|
36
|
+
"./dist/services/routing/types.d.ts"
|
|
37
|
+
],
|
|
38
|
+
"channels": [
|
|
39
|
+
"./dist/services/channel-repository/index.d.ts",
|
|
40
|
+
"./dist/services/channel-repository/types.d.ts"
|
|
41
|
+
],
|
|
42
|
+
"admin": [
|
|
43
|
+
"./dist/admin-api/index.d.ts"
|
|
44
|
+
],
|
|
45
|
+
"codegen": [
|
|
46
|
+
"dist/codegen.d.ts"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@types/crypto-js": "^4.2.2",
|
|
52
|
+
"@types/node": "^20.11.30",
|
|
53
|
+
"crypto-js": "^4.2.0",
|
|
54
|
+
"graphql": "^16.8.1",
|
|
55
|
+
"graphql-request": "^6.1.0",
|
|
56
|
+
"openapi-typescript-codegen": "^0.28.0",
|
|
57
|
+
"prop-types": "^15.8.1",
|
|
58
|
+
"scheduler": "^0.23.0",
|
|
59
|
+
"typescript": "^5.4.3"
|
|
60
|
+
},
|
|
61
|
+
"peerDependencies": {
|
|
62
|
+
"crypto-js": "*",
|
|
63
|
+
"graphql-request": "*"
|
|
64
|
+
},
|
|
65
|
+
"scripts": {
|
|
66
|
+
"clean": "tsc --build --clean",
|
|
67
|
+
"compile-ts": "tsc --build",
|
|
68
|
+
"prepare": "openapi --input https://cg.optimizely.com/app/swagger/swagger.json --output ./src/admin-api/client --name OptimizelyGraphAdminApi && node ./build/update-imports.cjs && tsc --build",
|
|
69
|
+
"watch": "tsc --watch",
|
|
70
|
+
"recompile": "tsc --build --clean && tsc --build --force",
|
|
71
|
+
"generate-admin": "openapi --input https://cg.optimizely.com/app/swagger/swagger.json --output ./src/admin-api/client --name OptimizelyGraphAdminApi && node ./build/update-imports.cjs"
|
|
72
|
+
}
|
|
73
|
+
}
|