@remkoj/optimizely-graph-client 2.0.4 → 2.1.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.
Files changed (91) hide show
  1. package/README.md +136 -135
  2. package/dist/admin-api/client/OptimizelyGraphAdminApi.js +1 -1
  3. package/dist/admin-api/client/core/OpenAPI.js +1 -1
  4. package/dist/admin-api/client/index.d.ts +4 -3
  5. package/dist/admin-api/client/index.js.map +1 -1
  6. package/dist/admin-api/client/models/{ContentTypeDefinition_V2.d.ts → ContentSource_V2.d.ts} +1 -1
  7. package/dist/admin-api/client/models/ContentSource_V2.js +2 -0
  8. package/dist/admin-api/client/models/ContentSource_V2.js.map +1 -0
  9. package/dist/admin-api/client/models/{ContentTypeDefinition_V3.d.ts → ContentSource_V3.d.ts} +2 -1
  10. package/dist/admin-api/client/models/ContentSource_V3.js +2 -0
  11. package/dist/admin-api/client/models/ContentSource_V3.js.map +1 -0
  12. package/dist/admin-api/client/models/FilterMap.d.ts +2 -2
  13. package/dist/admin-api/client/models/OperationMap.d.ts +1 -1
  14. package/dist/admin-api/client/models/Partial_Record_string_OperationMap__.d.ts +5 -0
  15. package/dist/admin-api/client/models/Partial_Record_string_OperationMap__.js +2 -0
  16. package/dist/admin-api/client/models/Partial_Record_string_OperationMap__.js.map +1 -0
  17. package/dist/admin-api/client/models/SourceInfo.d.ts +1 -0
  18. package/dist/admin-api/client/models/SourceMetadata.d.ts +4 -0
  19. package/dist/admin-api/client/models/SourceMetadata.js +2 -0
  20. package/dist/admin-api/client/models/SourceMetadata.js.map +1 -0
  21. package/dist/admin-api/client/models/Webhook.d.ts +2 -0
  22. package/dist/admin-api/client/models/WebhookPayload.d.ts +2 -2
  23. package/dist/admin-api/client/services/DefinitionV2Service.d.ts +2 -2
  24. package/dist/admin-api/client/services/DefinitionV2Service.js.map +1 -1
  25. package/dist/admin-api/client/services/DefinitionV3Service.d.ts +16 -6
  26. package/dist/admin-api/client/services/DefinitionV3Service.js +21 -2
  27. package/dist/admin-api/client/services/DefinitionV3Service.js.map +1 -1
  28. package/dist/client/client.d.ts +2 -1
  29. package/dist/client/client.js +3 -0
  30. package/dist/client/client.js.map +1 -1
  31. package/dist/client/index.d.ts +2 -2
  32. package/dist/client/index.js +2 -2
  33. package/dist/client/index.js.map +1 -1
  34. package/dist/client/types.d.ts +10 -0
  35. package/dist/client/types.js +5 -0
  36. package/dist/client/types.js.map +1 -1
  37. package/dist/client/utils.d.ts +16 -0
  38. package/dist/client/utils.js +20 -0
  39. package/dist/client/utils.js.map +1 -1
  40. package/dist/config.d.ts +1 -0
  41. package/dist/config.js +13 -1
  42. package/dist/config.js.map +1 -1
  43. package/dist/services/channel-repository/repository.d.ts +1 -1
  44. package/dist/services/channel-repository/repository.js +4 -2
  45. package/dist/services/channel-repository/repository.js.map +1 -1
  46. package/dist/services/routing/queries/cms12/getAllRoutes.d.ts +32 -0
  47. package/dist/services/routing/queries/cms12/getAllRoutes.js +34 -0
  48. package/dist/services/routing/queries/cms12/getAllRoutes.js.map +1 -0
  49. package/dist/services/routing/queries/cms12/getRouteById.d.ts +13 -0
  50. package/dist/services/routing/queries/cms12/getRouteById.js +39 -0
  51. package/dist/services/routing/queries/cms12/getRouteById.js.map +1 -0
  52. package/dist/services/routing/queries/cms12/getRouteByPath.d.ts +12 -0
  53. package/dist/services/routing/queries/cms12/getRouteByPath.js +31 -0
  54. package/dist/services/routing/queries/cms12/getRouteByPath.js.map +1 -0
  55. package/dist/services/routing/queries/cms12/index.d.ts +14 -0
  56. package/dist/services/routing/queries/cms12/index.js +118 -0
  57. package/dist/services/routing/queries/cms12/index.js.map +1 -0
  58. package/dist/services/routing/queries/cms13/getAllRoutes.js.map +1 -0
  59. package/dist/services/routing/queries/cms13/getRouteById.js.map +1 -0
  60. package/dist/services/routing/queries/{getRouteByPath.js → cms13/getRouteByPath.js} +1 -1
  61. package/dist/services/routing/queries/cms13/getRouteByPath.js.map +1 -0
  62. package/dist/services/routing/queries/cms13/index.d.ts +12 -0
  63. package/dist/services/routing/queries/cms13/index.js +91 -0
  64. package/dist/services/routing/queries/cms13/index.js.map +1 -0
  65. package/dist/services/routing/queries/index.d.ts +1 -0
  66. package/dist/services/routing/queries/index.js +2 -0
  67. package/dist/services/routing/queries/index.js.map +1 -0
  68. package/dist/services/routing/queries/types.d.ts +7 -0
  69. package/dist/services/routing/queries/types.js +2 -0
  70. package/dist/services/routing/queries/types.js.map +1 -0
  71. package/dist/services/routing/resolver.d.ts +11 -9
  72. package/dist/services/routing/resolver.js +24 -85
  73. package/dist/services/routing/resolver.js.map +1 -1
  74. package/dist/services/routing/types.d.ts +32 -0
  75. package/dist/types.d.ts +5 -0
  76. package/package.json +3 -3
  77. package/dist/admin-api/client/models/ContentTypeDefinition_V2.js +0 -2
  78. package/dist/admin-api/client/models/ContentTypeDefinition_V2.js.map +0 -1
  79. package/dist/admin-api/client/models/ContentTypeDefinition_V3.js +0 -2
  80. package/dist/admin-api/client/models/ContentTypeDefinition_V3.js.map +0 -1
  81. package/dist/admin-api/client/models/Partial_Record_FieldKeys_OperationMap__.d.ts +0 -8
  82. package/dist/admin-api/client/models/Partial_Record_FieldKeys_OperationMap__.js +0 -2
  83. package/dist/admin-api/client/models/Partial_Record_FieldKeys_OperationMap__.js.map +0 -1
  84. package/dist/services/routing/queries/getAllRoutes.js.map +0 -1
  85. package/dist/services/routing/queries/getRouteById.js.map +0 -1
  86. package/dist/services/routing/queries/getRouteByPath.js.map +0 -1
  87. /package/dist/services/routing/queries/{getAllRoutes.d.ts → cms13/getAllRoutes.d.ts} +0 -0
  88. /package/dist/services/routing/queries/{getAllRoutes.js → cms13/getAllRoutes.js} +0 -0
  89. /package/dist/services/routing/queries/{getRouteById.d.ts → cms13/getRouteById.d.ts} +0 -0
  90. /package/dist/services/routing/queries/{getRouteById.js → cms13/getRouteById.js} +0 -0
  91. /package/dist/services/routing/queries/{getRouteByPath.d.ts → cms13/getRouteByPath.d.ts} +0 -0
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -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 { OptimizelyGraphConfig } from '../../types.js';
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;
@@ -1,14 +1,19 @@
1
1
  // Import GraphQL Client
2
- import createClient, { isContentGraphClient } from '../../client/index.js';
3
- // Import GraphQL Queries
4
- import * as GetRouteById from './queries/getRouteById.js';
5
- import * as GetAllRoutes from './queries/getAllRoutes.js';
6
- import * as GetRouteByPath from './queries/getRouteByPath.js';
2
+ import createClient, { isOptiGraphClient, OptiCmsSchema } from '../../client/index.js';
7
3
  // Main router class
8
4
  /**
9
5
  *
10
6
  */
11
7
  export class RouteResolver {
8
+ get client() {
9
+ return this._cgClient;
10
+ }
11
+ get urlBase() {
12
+ return this._defaultUrlBase;
13
+ }
14
+ get schema() {
15
+ return this._resolverMode;
16
+ }
12
17
  /**
13
18
  * Create a new Route Resolver
14
19
  *
@@ -19,9 +24,18 @@ export class RouteResolver {
19
24
  * constructor when reading routes from Optimizely
20
25
  * Graph
21
26
  */
22
- constructor(clientOrConfig, urlBase = "https://example.com") {
23
- this._cgClient = isContentGraphClient(clientOrConfig) ? clientOrConfig : createClient(clientOrConfig);
27
+ constructor(clientOrConfig, urlBase = "https://example.com", resolverMode) {
28
+ this._cgClient = isOptiGraphClient(clientOrConfig) ? clientOrConfig : createClient(clientOrConfig);
24
29
  this._defaultUrlBase = urlBase;
30
+ this._resolverMode = resolverMode ?? this._cgClient.currentOptiCmsSchema;
31
+ }
32
+ async getResolver() {
33
+ if (!this._resolver) {
34
+ if (this._resolverMode == OptiCmsSchema.CMS12)
35
+ return new (await import('./queries/cms12/index.js')).default;
36
+ this._resolver = new (await import('./queries/cms13/index.js')).default;
37
+ }
38
+ return this._resolver;
25
39
  }
26
40
  /**
27
41
  * Retrieve all registered routes for the provided domain - all domains if none specified
@@ -30,63 +44,15 @@ export class RouteResolver {
30
44
  * @returns The list of routes
31
45
  */
32
46
  async getRoutes(domain) {
33
- this._cgClient.updateFlags({ queryCache: false }, true);
34
- let page = await this._cgClient.request(GetAllRoutes.query, { domain }).catch(e => {
35
- if (this._cgClient.debug)
36
- console.error("[RouteResolver] Error while fetching routes", e);
37
- return undefined;
38
- });
39
- let results = page?.Content?.items ?? [];
40
- const totalCount = page?.Content?.total ?? 0;
41
- const cursor = page?.Content?.cursor ?? '';
42
- if (totalCount > 0 && cursor !== '' && totalCount > results.length)
43
- while ((page?.Content?.items?.length ?? 0) > 0 && results.length < totalCount) {
44
- page = await this._cgClient.request({
45
- document: GetAllRoutes.query,
46
- variables: {
47
- cursor,
48
- domain
49
- }
50
- });
51
- results = results.concat(page.Content?.items ?? []);
52
- }
53
- this._cgClient.restoreFlags();
54
- return results.map(this.tryConvertResponse.bind(this)).filter(this.isNotNullOrUndefined);
47
+ return (await this.getResolver()).getRoutes(this._cgClient, domain);
55
48
  }
56
49
  async getContentInfoByPath(path, domain) {
57
50
  const queryPath = typeof path == 'object' && path != null ? path.pathname : path;
58
51
  const queryDomain = typeof path == 'object' && path != null ? path.protocol + '//' + path.host : domain;
59
- if (this._cgClient.debug)
60
- console.log(`⚪ [RouteResolver] Resolving content info for ${path} on ${domain ? domain : "all domains"}`);
61
- const resultSet = await this._cgClient.request({
62
- document: GetRouteByPath.query,
63
- variables: { path: queryPath, domain: queryDomain }
64
- });
65
- if ((resultSet.getRouteByPath?.items?.length ?? 0) === 0) {
66
- if (this._cgClient.debug)
67
- console.warn("🟠 [RouteResolver] No items in the resultset");
68
- return undefined;
69
- }
70
- if ((resultSet.getRouteByPath?.items?.length ?? 0) > 1)
71
- throw new Error("🔴 [RouteResolver] Ambiguous URL provided, did you omit the domain in a multi-site setup?");
72
- if (this._cgClient.debug)
73
- console.log(`⚪ [RouteResolver] Resolved content info for ${path} to: ${JSON.stringify(resultSet.getRouteByPath.items[0])}`);
74
- return this.convertResponse(resultSet.getRouteByPath.items[0]);
52
+ return (await this.getResolver()).getRouteByPath(this._cgClient, queryPath, queryDomain);
75
53
  }
76
54
  async getContentInfoById(key, locale, version) {
77
- const variables = { key, version: version?.toString(), locale: locale?.replaceAll('-', '_') };
78
- if (this._cgClient.debug)
79
- console.log("Resolving content by id:", JSON.stringify(variables));
80
- const resultSet = await this._cgClient.request({
81
- document: GetRouteById.query,
82
- variables
83
- });
84
- if (resultSet.Content?.total >= 1) {
85
- if (this._cgClient.debug && resultSet.Content?.total > 1)
86
- 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('; ')}`);
87
- return this.convertResponse(resultSet.Content.items[0]);
88
- }
89
- return undefined;
55
+ return (await this.getResolver()).getRouteById(this._cgClient, key, locale, version);
90
56
  }
91
57
  /**
92
58
  * Extract a content link from a route definition
@@ -101,33 +67,6 @@ export class RouteResolver {
101
67
  locale: route.locale
102
68
  };
103
69
  }
104
- convertResponse(item) {
105
- if (!item)
106
- throw new Error("RouteResolver.convertResponse(): mandatory parameter \"item\" not provided!");
107
- const itemUrl = new URL(item._metadata?.url?.path ?? '/', item._metadata?.url?.domain ?? this._defaultUrlBase);
108
- return {
109
- locale: item._metadata.locale,
110
- path: item._metadata.url.path,
111
- url: itemUrl,
112
- slug: item._metadata?.slug ?? "",
113
- changed: item.changed ? new Date(item.changed) : null,
114
- contentType: item._metadata.types.reverse(),
115
- version: item._metadata.version,
116
- key: item._metadata.key
117
- };
118
- }
119
- tryConvertResponse(item) {
120
- try {
121
- return this.convertResponse(item);
122
- }
123
- catch (e) {
124
- console.error(`Unable to convert ${JSON.stringify(item)} to Route`, e);
125
- return undefined;
126
- }
127
- }
128
- isNotNullOrUndefined(input) {
129
- return input != null && input != undefined;
130
- }
131
70
  }
132
71
  export default RouteResolver;
133
72
  //# sourceMappingURL=resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/services/routing/resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/services/routing/resolver.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,YAAY,EAAE,EAAyB,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAU7G,oBAAoB;AACpB;;GAEG;AACH,MAAM,OAAO,aAAa;IAMtB,IAAc,MAAM;QAEhB,OAAO,IAAI,CAAC,SAAS,CAAA;IACzB,CAAC;IAED,IAAc,OAAO;QAEjB,OAAO,IAAI,CAAC,eAAe,CAAA;IAC/B,CAAC;IAED,IAAc,MAAM;QAEhB,OAAO,IAAI,CAAC,aAAa,CAAA;IAC7B,CAAC;IAED;;;;;;;;;OASG;IACH,YACI,cAAyD,EACzD,UAAwB,qBAAqB,EAC7C,YAA4B;QAE5B,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;QAClG,IAAI,CAAC,eAAe,GAAG,OAAO,CAAA;QAC9B,IAAI,CAAC,aAAa,GAAG,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAA;IAC5E,CAAC;IAEO,KAAK,CAAC,WAAW;QAErB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,KAAK;gBACzC,OAAO,IAAI,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAAA;YACjE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAAA;QAC3E,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAA;IACzB,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,SAAS,CAAC,MAAe;QAElC,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IACvE,CAAC;IAYM,KAAK,CAAC,oBAAoB,CAAC,IAAkB,EAAE,MAAe;QAEjE,MAAM,SAAS,GAAK,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;QAClF,MAAM,WAAW,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;QAEvG,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;IAC5F,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,GAAW,EAAE,MAAe,EAAE,OAAyB;QAEnF,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAC,MAAM,EAAC,OAAO,CAAC,CAAA;IACtF,CAAC;IAED;;;;;OAKG;IACI,kBAAkB,CAAC,KAAY;QAElC,OAAO;YACH,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;SACvB,CAAA;IACL,CAAC;CACJ;AAED,eAAe,aAAa,CAAA"}
@@ -1,3 +1,4 @@
1
+ import type { ContentLinkWithLocale } from '../types.js';
1
2
  export type Route = {
2
3
  locale: string;
3
4
  path: string;
@@ -8,3 +9,34 @@ export type Route = {
8
9
  version?: string | null;
9
10
  key: string;
10
11
  };
12
+ /**
13
+ * Main Router pattern, allow for implementation specific overrides
14
+ */
15
+ export interface IRouteResolver {
16
+ /**
17
+ * Retrieve all registered routes for the provided domain - all domains if none specified
18
+ *
19
+ * @param domain The domain to filter on
20
+ * @returns The list of routes
21
+ */
22
+ getRoutes(domainOrChannelId?: string): Promise<Route[]>;
23
+ /**
24
+ * Resolve a path to route information, either from string or from URL
25
+ * object.
26
+ *
27
+ * @param path The path to resolve for
28
+ * @param domain The domain to filter the results by
29
+ * @returns The route information for the path
30
+ */
31
+ getContentInfoByPath(path: URL): Promise<undefined | Route>;
32
+ getContentInfoByPath(path: string, domain?: string): Promise<undefined | Route>;
33
+ getContentInfoByPath(path: URL | string, domain?: string): Promise<undefined | Route>;
34
+ /**
35
+ * Extract a content link from a route definition
36
+ *
37
+ * @param route The route to parse
38
+ * @returns The ContentLink, with locale information
39
+ */
40
+ routeToContentLink(route: Route): ContentLinkWithLocale;
41
+ getContentInfoById(key: string, locale?: string, version?: string | number): Promise<undefined | Route>;
42
+ }
package/dist/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { OptiCmsSchema } from "./client/types.js";
1
2
  export type OptimizelyGraphConfigInternal = {
2
3
  /**
3
4
  * Optimizely Graph AppKey, it is recommended to not let this key leave the server side
@@ -35,6 +36,10 @@ export type OptimizelyGraphConfigInternal = {
35
36
  * Publishing token to validate webhooks - if implemented
36
37
  */
37
38
  publish?: string;
39
+ /**
40
+ * The CMS Schema version that is used
41
+ */
42
+ opti_cms_schema: OptiCmsSchema;
38
43
  };
39
44
  export type OptimizelyGraphConfig = Partial<Omit<OptimizelyGraphConfigInternal, 'single_key'>> & Pick<OptimizelyGraphConfigInternal, 'single_key'>;
40
45
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@remkoj/optimizely-graph-client",
3
3
  "license": "Apache-2.0",
4
- "version": "2.0.4",
4
+ "version": "2.1.0",
5
5
  "packageManager": "yarn@4.1.1",
6
6
  "repository": "https://github.com/remkoj/optimizely-dxp-clients.git",
7
7
  "author": "Remko Jantzen <693172+remkoj@users.noreply.github.com>",
@@ -52,13 +52,13 @@
52
52
  },
53
53
  "devDependencies": {
54
54
  "@types/crypto-js": "^4.2.2",
55
- "@types/node": "^22.2.0",
55
+ "@types/node": "^22.7.4",
56
56
  "graphql": "^16.9.0",
57
57
  "graphql-request": "^6.1.0",
58
58
  "openapi-typescript-codegen": "^0.29.0",
59
59
  "prop-types": "^15.8.1",
60
60
  "scheduler": "^0.23.2",
61
- "typescript": "^5.5.4"
61
+ "typescript": "^5.6.2"
62
62
  },
63
63
  "dependencies": {
64
64
  "crypto-js": "^4.2.0"
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ContentTypeDefinition_V2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContentTypeDefinition_V2.js","sourceRoot":"","sources":["../../../../src/admin-api/client/models/ContentTypeDefinition_V2.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ContentTypeDefinition_V3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContentTypeDefinition_V3.js","sourceRoot":"","sources":["../../../../src/admin-api/client/models/ContentTypeDefinition_V3.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
1
- import type { OperationMap } from './OperationMap.js';
2
- /**
3
- * Make all properties in T optional
4
- */
5
- export type Partial_Record_FieldKeys_OperationMap__ = {
6
- status?: OperationMap;
7
- id?: OperationMap;
8
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Partial_Record_FieldKeys_OperationMap__.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Partial_Record_FieldKeys_OperationMap__.js","sourceRoot":"","sources":["../../../../src/admin-api/client/models/Partial_Record_FieldKeys_OperationMap__.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getAllRoutes.js","sourceRoot":"","sources":["../../../../src/services/routing/queries/getAllRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAiCrC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCtB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRouteById.js","sourceRoot":"","sources":["../../../../src/services/routing/queries/getRouteById.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAgBrC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BtB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRouteByPath.js","sourceRoot":"","sources":["../../../../src/services/routing/queries/getRouteByPath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAerC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BtB,CAAA"}