@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.
Files changed (207) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +135 -0
  3. package/dist/admin-api/client/OptimizelyGraphAdminApi.d.ts +22 -0
  4. package/dist/admin-api/client/OptimizelyGraphAdminApi.js +31 -0
  5. package/dist/admin-api/client/OptimizelyGraphAdminApi.js.map +1 -0
  6. package/dist/admin-api/client/core/ApiError.d.ts +10 -0
  7. package/dist/admin-api/client/core/ApiError.js +12 -0
  8. package/dist/admin-api/client/core/ApiError.js.map +1 -0
  9. package/dist/admin-api/client/core/ApiRequestOptions.d.ts +13 -0
  10. package/dist/admin-api/client/core/ApiRequestOptions.js +2 -0
  11. package/dist/admin-api/client/core/ApiRequestOptions.js.map +1 -0
  12. package/dist/admin-api/client/core/ApiResult.d.ts +7 -0
  13. package/dist/admin-api/client/core/ApiResult.js +2 -0
  14. package/dist/admin-api/client/core/ApiResult.js.map +1 -0
  15. package/dist/admin-api/client/core/BaseHttpRequest.d.ts +8 -0
  16. package/dist/admin-api/client/core/BaseHttpRequest.js +6 -0
  17. package/dist/admin-api/client/core/BaseHttpRequest.js.map +1 -0
  18. package/dist/admin-api/client/core/CancelablePromise.d.ts +20 -0
  19. package/dist/admin-api/client/core/CancelablePromise.js +112 -0
  20. package/dist/admin-api/client/core/CancelablePromise.js.map +1 -0
  21. package/dist/admin-api/client/core/FetchHttpRequest.d.ts +14 -0
  22. package/dist/admin-api/client/core/FetchHttpRequest.js +17 -0
  23. package/dist/admin-api/client/core/FetchHttpRequest.js.map +1 -0
  24. package/dist/admin-api/client/core/OpenAPI.d.ts +16 -0
  25. package/dist/admin-api/client/core/OpenAPI.js +12 -0
  26. package/dist/admin-api/client/core/OpenAPI.js.map +1 -0
  27. package/dist/admin-api/client/core/request.d.ts +30 -0
  28. package/dist/admin-api/client/core/request.js +276 -0
  29. package/dist/admin-api/client/core/request.js.map +1 -0
  30. package/dist/admin-api/client/index.d.ts +45 -0
  31. package/dist/admin-api/client/index.js +17 -0
  32. package/dist/admin-api/client/index.js.map +1 -0
  33. package/dist/admin-api/client/models/CacheInvalidationConfig.d.ts +3 -0
  34. package/dist/admin-api/client/models/CacheInvalidationConfig.js +2 -0
  35. package/dist/admin-api/client/models/CacheInvalidationConfig.js.map +1 -0
  36. package/dist/admin-api/client/models/ContentTypeDefinition_V2.d.ts +10 -0
  37. package/dist/admin-api/client/models/ContentTypeDefinition_V2.js +2 -0
  38. package/dist/admin-api/client/models/ContentTypeDefinition_V2.js.map +1 -0
  39. package/dist/admin-api/client/models/ContentTypeDefinition_V3.d.ts +11 -0
  40. package/dist/admin-api/client/models/ContentTypeDefinition_V3.js +2 -0
  41. package/dist/admin-api/client/models/ContentTypeDefinition_V3.js.map +1 -0
  42. package/dist/admin-api/client/models/ContentTypeMap_V3.d.ts +2 -0
  43. package/dist/admin-api/client/models/ContentTypeMap_V3.js +2 -0
  44. package/dist/admin-api/client/models/ContentTypeMap_V3.js.map +1 -0
  45. package/dist/admin-api/client/models/ContentTypeProperty_V2.d.ts +5 -0
  46. package/dist/admin-api/client/models/ContentTypeProperty_V2.js +2 -0
  47. package/dist/admin-api/client/models/ContentTypeProperty_V2.js.map +1 -0
  48. package/dist/admin-api/client/models/ContentTypeProperty_V3.d.ts +7 -0
  49. package/dist/admin-api/client/models/ContentTypeProperty_V3.js +2 -0
  50. package/dist/admin-api/client/models/ContentTypeProperty_V3.js.map +1 -0
  51. package/dist/admin-api/client/models/ContentType_V2.d.ts +12 -0
  52. package/dist/admin-api/client/models/ContentType_V2.js +2 -0
  53. package/dist/admin-api/client/models/ContentType_V2.js.map +1 -0
  54. package/dist/admin-api/client/models/ContentType_V3.d.ts +11 -0
  55. package/dist/admin-api/client/models/ContentType_V3.js +2 -0
  56. package/dist/admin-api/client/models/ContentType_V3.js.map +1 -0
  57. package/dist/admin-api/client/models/FilterMap.d.ts +2 -0
  58. package/dist/admin-api/client/models/FilterMap.js +2 -0
  59. package/dist/admin-api/client/models/FilterMap.js.map +1 -0
  60. package/dist/admin-api/client/models/GraphQLRequest.d.ts +6 -0
  61. package/dist/admin-api/client/models/GraphQLRequest.js +2 -0
  62. package/dist/admin-api/client/models/GraphQLRequest.js.map +1 -0
  63. package/dist/admin-api/client/models/GraphQLResponse.d.ts +5 -0
  64. package/dist/admin-api/client/models/GraphQLResponse.js +2 -0
  65. package/dist/admin-api/client/models/GraphQLResponse.js.map +1 -0
  66. package/dist/admin-api/client/models/LinkMap.d.ts +2 -0
  67. package/dist/admin-api/client/models/LinkMap.js +2 -0
  68. package/dist/admin-api/client/models/LinkMap.js.map +1 -0
  69. package/dist/admin-api/client/models/LinkProperty.d.ts +4 -0
  70. package/dist/admin-api/client/models/LinkProperty.js +2 -0
  71. package/dist/admin-api/client/models/LinkProperty.js.map +1 -0
  72. package/dist/admin-api/client/models/OperationMap.d.ts +4 -0
  73. package/dist/admin-api/client/models/OperationMap.js +2 -0
  74. package/dist/admin-api/client/models/OperationMap.js.map +1 -0
  75. package/dist/admin-api/client/models/Optional_string_.d.ts +1 -0
  76. package/dist/admin-api/client/models/Optional_string_.js +2 -0
  77. package/dist/admin-api/client/models/Optional_string_.js.map +1 -0
  78. package/dist/admin-api/client/models/Partial_Record_FieldKeys_OperationMap__.d.ts +8 -0
  79. package/dist/admin-api/client/models/Partial_Record_FieldKeys_OperationMap__.js +2 -0
  80. package/dist/admin-api/client/models/Partial_Record_FieldKeys_OperationMap__.js.map +1 -0
  81. package/dist/admin-api/client/models/PropertyTypeMap_V3.d.ts +2 -0
  82. package/dist/admin-api/client/models/PropertyTypeMap_V3.js +2 -0
  83. package/dist/admin-api/client/models/PropertyTypeMap_V3.js.map +1 -0
  84. package/dist/admin-api/client/models/PropertyType_V2.d.ts +5 -0
  85. package/dist/admin-api/client/models/PropertyType_V2.js +2 -0
  86. package/dist/admin-api/client/models/PropertyType_V2.js.map +1 -0
  87. package/dist/admin-api/client/models/PropertyType_V3.d.ts +4 -0
  88. package/dist/admin-api/client/models/PropertyType_V3.js +2 -0
  89. package/dist/admin-api/client/models/PropertyType_V3.js.map +1 -0
  90. package/dist/admin-api/client/models/Property_V2.d.ts +6 -0
  91. package/dist/admin-api/client/models/Property_V2.js +2 -0
  92. package/dist/admin-api/client/models/Property_V2.js.map +1 -0
  93. package/dist/admin-api/client/models/Property_V3.d.ts +5 -0
  94. package/dist/admin-api/client/models/Property_V3.js +2 -0
  95. package/dist/admin-api/client/models/Property_V3.js.map +1 -0
  96. package/dist/admin-api/client/models/Record_string_any_.d.ts +4 -0
  97. package/dist/admin-api/client/models/Record_string_any_.js +2 -0
  98. package/dist/admin-api/client/models/Record_string_any_.js.map +1 -0
  99. package/dist/admin-api/client/models/Record_string_string_.d.ts +4 -0
  100. package/dist/admin-api/client/models/Record_string_string_.js +2 -0
  101. package/dist/admin-api/client/models/Record_string_string_.js.map +1 -0
  102. package/dist/admin-api/client/models/Request.d.ts +6 -0
  103. package/dist/admin-api/client/models/Request.js +2 -0
  104. package/dist/admin-api/client/models/Request.js.map +1 -0
  105. package/dist/admin-api/client/models/RequestLog.d.ts +15 -0
  106. package/dist/admin-api/client/models/RequestLog.js +2 -0
  107. package/dist/admin-api/client/models/RequestLog.js.map +1 -0
  108. package/dist/admin-api/client/models/SourceInfo.d.ts +5 -0
  109. package/dist/admin-api/client/models/SourceInfo.js +2 -0
  110. package/dist/admin-api/client/models/SourceInfo.js.map +1 -0
  111. package/dist/admin-api/client/models/SourceInfoMap.d.ts +2 -0
  112. package/dist/admin-api/client/models/SourceInfoMap.js +2 -0
  113. package/dist/admin-api/client/models/SourceInfoMap.js.map +1 -0
  114. package/dist/admin-api/client/models/StopwordsBody.d.ts +1 -0
  115. package/dist/admin-api/client/models/StopwordsBody.js +2 -0
  116. package/dist/admin-api/client/models/StopwordsBody.js.map +1 -0
  117. package/dist/admin-api/client/models/SynonymsBody.d.ts +1 -0
  118. package/dist/admin-api/client/models/SynonymsBody.js +2 -0
  119. package/dist/admin-api/client/models/SynonymsBody.js.map +1 -0
  120. package/dist/admin-api/client/models/TokenClaims.d.ts +4 -0
  121. package/dist/admin-api/client/models/TokenClaims.js +2 -0
  122. package/dist/admin-api/client/models/TokenClaims.js.map +1 -0
  123. package/dist/admin-api/client/models/Webhook.d.ts +4 -0
  124. package/dist/admin-api/client/models/Webhook.js +2 -0
  125. package/dist/admin-api/client/models/Webhook.js.map +1 -0
  126. package/dist/admin-api/client/models/WebhookPayload.d.ts +12 -0
  127. package/dist/admin-api/client/models/WebhookPayload.js +2 -0
  128. package/dist/admin-api/client/models/WebhookPayload.js.map +1 -0
  129. package/dist/admin-api/client/services/DefinitionV2Service.d.ts +34 -0
  130. package/dist/admin-api/client/services/DefinitionV2Service.js +62 -0
  131. package/dist/admin-api/client/services/DefinitionV2Service.js.map +1 -0
  132. package/dist/admin-api/client/services/DefinitionV3Service.d.ts +51 -0
  133. package/dist/admin-api/client/services/DefinitionV3Service.js +97 -0
  134. package/dist/admin-api/client/services/DefinitionV3Service.js.map +1 -0
  135. package/dist/admin-api/client/services/LogsService.d.ts +19 -0
  136. package/dist/admin-api/client/services/LogsService.js +30 -0
  137. package/dist/admin-api/client/services/LogsService.js.map +1 -0
  138. package/dist/admin-api/client/services/OidcService.d.ts +22 -0
  139. package/dist/admin-api/client/services/OidcService.js +33 -0
  140. package/dist/admin-api/client/services/OidcService.js.map +1 -0
  141. package/dist/admin-api/client/services/QueryGraphQlService.d.ts +27 -0
  142. package/dist/admin-api/client/services/QueryGraphQlService.js +43 -0
  143. package/dist/admin-api/client/services/QueryGraphQlService.js.map +1 -0
  144. package/dist/admin-api/client/services/ResourcesService.d.ts +30 -0
  145. package/dist/admin-api/client/services/ResourcesService.js +49 -0
  146. package/dist/admin-api/client/services/ResourcesService.js.map +1 -0
  147. package/dist/admin-api/client/services/WebhooksService.d.ts +42 -0
  148. package/dist/admin-api/client/services/WebhooksService.js +70 -0
  149. package/dist/admin-api/client/services/WebhooksService.js.map +1 -0
  150. package/dist/admin-api/index.d.ts +6 -0
  151. package/dist/admin-api/index.js +25 -0
  152. package/dist/admin-api/index.js.map +1 -0
  153. package/dist/admin-api/request.d.ts +5 -0
  154. package/dist/admin-api/request.js +32 -0
  155. package/dist/admin-api/request.js.map +1 -0
  156. package/dist/client/client.d.ts +36 -0
  157. package/dist/client/client.js +200 -0
  158. package/dist/client/client.js.map +1 -0
  159. package/dist/client/hmac-fetch.d.ts +3 -0
  160. package/dist/client/hmac-fetch.js +52 -0
  161. package/dist/client/hmac-fetch.js.map +1 -0
  162. package/dist/client/index.d.ts +4 -0
  163. package/dist/client/index.js +5 -0
  164. package/dist/client/index.js.map +1 -0
  165. package/dist/client/types.d.ts +67 -0
  166. package/dist/client/types.js +8 -0
  167. package/dist/client/types.js.map +1 -0
  168. package/dist/client/utils.d.ts +6 -0
  169. package/dist/client/utils.js +32 -0
  170. package/dist/client/utils.js.map +1 -0
  171. package/dist/codegen.d.ts +10 -0
  172. package/dist/codegen.js +18 -0
  173. package/dist/codegen.js.map +1 -0
  174. package/dist/config.d.ts +12 -0
  175. package/dist/config.js +97 -0
  176. package/dist/config.js.map +1 -0
  177. package/dist/index.d.ts +5 -0
  178. package/dist/index.js +9 -0
  179. package/dist/index.js.map +1 -0
  180. package/dist/services/channel-repository/definition.d.ts +86 -0
  181. package/dist/services/channel-repository/definition.js +125 -0
  182. package/dist/services/channel-repository/definition.js.map +1 -0
  183. package/dist/services/channel-repository/index.d.ts +2 -0
  184. package/dist/services/channel-repository/index.js +3 -0
  185. package/dist/services/channel-repository/index.js.map +1 -0
  186. package/dist/services/channel-repository/queries.d.ts +3 -0
  187. package/dist/services/channel-repository/queries.js +93 -0
  188. package/dist/services/channel-repository/queries.js.map +1 -0
  189. package/dist/services/channel-repository/repository.d.ts +15 -0
  190. package/dist/services/channel-repository/repository.js +75 -0
  191. package/dist/services/channel-repository/repository.js.map +1 -0
  192. package/dist/services/channel-repository/types.d.ts +26 -0
  193. package/dist/services/channel-repository/types.js +2 -0
  194. package/dist/services/channel-repository/types.js.map +1 -0
  195. package/dist/services/index.d.ts +4 -0
  196. package/dist/services/index.js +3 -0
  197. package/dist/services/index.js.map +1 -0
  198. package/dist/services/routing/index.d.ts +83 -0
  199. package/dist/services/routing/index.js +243 -0
  200. package/dist/services/routing/index.js.map +1 -0
  201. package/dist/services/routing/types.d.ts +25 -0
  202. package/dist/services/routing/types.js +2 -0
  203. package/dist/services/routing/types.js.map +1 -0
  204. package/dist/types.d.ts +39 -0
  205. package/dist/types.js +2 -0
  206. package/dist/types.js.map +1 -0
  207. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/channel-repository/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export type { ChannelDefinitionData } from './channel-repository/types.js';
2
+ export type { Route } from './routing/types.js';
3
+ export { ChannelRepository, ChannelDefinition } from './channel-repository/index.js';
4
+ export { RouteResolver } from './routing/index.js';
@@ -0,0 +1,3 @@
1
+ export { ChannelRepository, ChannelDefinition } from './channel-repository/index.js';
2
+ export { RouteResolver } from './routing/index.js';
3
+ //# sourceMappingURL=index.js.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/routing/types.ts"],"names":[],"mappings":""}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -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
+ }