@twin.org/auditable-item-graph-service 0.9.1-next.1 → 0.9.1-next.3

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.
@@ -1,11 +1,11 @@
1
1
  // Copyright 2024 IOTA Stiftung.
2
2
  // SPDX-License-Identifier: Apache-2.0.
3
- import { HttpContextIdKeys, HttpParameterHelper, HttpUrlHelper } from "@twin.org/api-models";
3
+ import { HttpContextIdKeys, HttpHeaderHelper, HttpParameterHelper, HttpUrlHelper } from "@twin.org/api-models";
4
4
  import { AuditableItemGraphContexts, AuditableItemGraphTypes } from "@twin.org/auditable-item-graph-models";
5
5
  import { ContextIdStore } from "@twin.org/context";
6
- import { Coerce, ComponentFactory, Guards, Is } from "@twin.org/core";
6
+ import { Coerce, ComponentFactory, Guards } from "@twin.org/core";
7
7
  import { SchemaOrgContexts, SchemaOrgTypes } from "@twin.org/standards-schema-org";
8
- import { HeaderHelper, HeaderTypes, HttpStatusCode, MimeTypes } from "@twin.org/web";
8
+ import { HeaderTypes, HttpStatusCode, MimeTypes } from "@twin.org/web";
9
9
  /**
10
10
  * The source used when communicating about these routes.
11
11
  */
@@ -32,7 +32,7 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
32
32
  tag: tagsAuditableItemGraph[0].name,
33
33
  method: "POST",
34
34
  path: `${baseRouteName}/`,
35
- handler: async (httpRequestContext, request) => auditableItemGraphCreate(httpRequestContext, componentName, request),
35
+ handler: async (httpRequestContext, request) => auditableItemGraphCreate(httpRequestContext, componentName, request, baseRouteName),
36
36
  requestType: {
37
37
  type: "IAuditableItemGraphCreateRequest",
38
38
  examples: [
@@ -922,18 +922,21 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
922
922
  * @param httpRequestContext The request context for the API.
923
923
  * @param componentName The name of the component to use in the routes.
924
924
  * @param request The request.
925
+ * @param baseRouteName The base route name for the API.
925
926
  * @returns The response object with additional http response properties.
926
927
  */
927
- export async function auditableItemGraphCreate(httpRequestContext, componentName, request) {
928
+ export async function auditableItemGraphCreate(httpRequestContext, componentName, request, baseRouteName) {
928
929
  Guards.object(ROUTES_SOURCE, "request", request);
929
930
  Guards.object(ROUTES_SOURCE, "request.body", request.body);
930
931
  const component = ComponentFactory.get(componentName);
931
932
  const id = await component.create(request.body);
933
+ const contextIds = await ContextIdStore.getContextIds();
934
+ const publicOrigin = contextIds?.[HttpContextIdKeys.PublicOrigin];
935
+ const headers = {};
936
+ HttpHeaderHelper.buildId(headers, id, HttpUrlHelper.combineOriginPath(publicOrigin, `${baseRouteName}/:id`));
932
937
  return {
933
938
  statusCode: HttpStatusCode.created,
934
- headers: {
935
- [HeaderTypes.Location]: id
936
- }
939
+ headers
937
940
  };
938
941
  }
939
942
  /**
@@ -952,12 +955,10 @@ export async function auditableItemGraphGet(httpRequestContext, componentName, r
952
955
  includeDeleted: Coerce.boolean(request.query?.includeDeleted),
953
956
  verifySignatureDepth: request.query?.verifySignatureDepth
954
957
  });
958
+ const headers = {};
959
+ HttpHeaderHelper.buildJsonContentType(headers, request.headers);
955
960
  return {
956
- headers: {
957
- [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd
958
- ? MimeTypes.JsonLd
959
- : MimeTypes.Json
960
- },
961
+ headers,
961
962
  body: result
962
963
  };
963
964
  }
@@ -976,13 +977,10 @@ export async function auditableItemGraphChangesetList(httpRequestContext, compon
976
977
  const result = await component.getChangesets(request.pathParams.id, request.query?.cursor, Coerce.integer(request.query?.limit), {
977
978
  verifySignatureDepth: request.query?.verifySignatureDepth
978
979
  });
979
- const headers = {
980
- [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
981
- };
982
- if (Is.stringValue(result.cursor)) {
983
- const contextIds = await ContextIdStore.getContextIds();
984
- headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
985
- }
980
+ const headers = {};
981
+ HttpHeaderHelper.buildJsonContentType(headers, request.headers);
982
+ const contextIds = await ContextIdStore.getContextIds();
983
+ HttpHeaderHelper.buildCursor(headers, httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin], result.cursor);
986
984
  return {
987
985
  headers,
988
986
  body: result.changesets
@@ -1004,12 +1002,10 @@ export async function auditableItemGraphChangesetGet(httpRequestContext, compone
1004
1002
  const result = await component.getChangeset(changesetUrn, {
1005
1003
  verifySignatureDepth: request.query?.verifySignatureDepth
1006
1004
  });
1005
+ const headers = {};
1006
+ HttpHeaderHelper.buildJsonContentType(headers, request.headers);
1007
1007
  return {
1008
- headers: {
1009
- [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd
1010
- ? MimeTypes.JsonLd
1011
- : MimeTypes.Json
1012
- },
1008
+ headers,
1013
1009
  body: result
1014
1010
  };
1015
1011
  }
@@ -1066,13 +1062,10 @@ export async function auditableItemGraphList(httpRequestContext, componentName,
1066
1062
  idExact: Coerce.boolean(request.query?.idExact),
1067
1063
  resourceTypes: HttpParameterHelper.arrayFromString(request.query?.resourceTypes)
1068
1064
  }, HttpParameterHelper.objectFromString(request.query?.conditions), request.query?.orderBy, request.query?.orderByDirection, HttpParameterHelper.arrayFromString(request.query?.properties), request.query?.cursor, Coerce.integer(request.query?.limit));
1069
- const headers = {
1070
- [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
1071
- };
1072
- if (Is.stringValue(result.cursor)) {
1073
- const contextIds = await ContextIdStore.getContextIds();
1074
- headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
1075
- }
1065
+ const headers = {};
1066
+ HttpHeaderHelper.buildJsonContentType(headers, request.headers);
1067
+ const contextIds = await ContextIdStore.getContextIds();
1068
+ HttpHeaderHelper.buildCursor(headers, httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin], result.cursor);
1076
1069
  return {
1077
1070
  headers,
1078
1071
  body: result.entries
@@ -1093,12 +1086,10 @@ export async function auditableItemGraphVersionGet(httpRequestContext, component
1093
1086
  Guards.integer(ROUTES_SOURCE, "request.pathParams.version", version);
1094
1087
  const component = ComponentFactory.get(componentName);
1095
1088
  const result = await component.getVersion(request.pathParams.id, version);
1089
+ const headers = {};
1090
+ HttpHeaderHelper.buildJsonContentType(headers, request.headers);
1096
1091
  return {
1097
- headers: {
1098
- [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd
1099
- ? MimeTypes.JsonLd
1100
- : MimeTypes.Json
1101
- },
1092
+ headers,
1102
1093
  body: result
1103
1094
  };
1104
1095
  }
@@ -1135,12 +1126,10 @@ export async function auditableItemGraphVersionList(httpRequestContext, componen
1135
1126
  after: request.query?.after,
1136
1127
  before: request.query?.before
1137
1128
  });
1129
+ const headers = {};
1130
+ HttpHeaderHelper.buildJsonContentType(headers, request.headers);
1138
1131
  return {
1139
- headers: {
1140
- [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd
1141
- ? MimeTypes.JsonLd
1142
- : MimeTypes.Json
1143
- },
1132
+ headers,
1144
1133
  body: result
1145
1134
  };
1146
1135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auditableItemGraphRoutes.js","sourceRoot":"","sources":["../../src/auditableItemGraphRoutes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport {\n\tHttpContextIdKeys,\n\tHttpParameterHelper,\n\tHttpUrlHelper,\n\ttype ICreatedResponse,\n\ttype IHttpRequestContext,\n\ttype INoContentResponse,\n\ttype IRestRoute,\n\ttype ITag\n} from \"@twin.org/api-models\";\nimport {\n\tAuditableItemGraphContexts,\n\tAuditableItemGraphTypes,\n\ttype IAuditableItemGraphChangesetGetRequest,\n\ttype IAuditableItemGraphChangesetGetResponse,\n\ttype IAuditableItemGraphChangesetListRequest,\n\ttype IAuditableItemGraphChangesetListResponse,\n\ttype IAuditableItemGraphComponent,\n\ttype IAuditableItemGraphCreateRequest,\n\ttype IAuditableItemGraphGetRequest,\n\ttype IAuditableItemGraphGetResponse,\n\ttype IAuditableItemGraphListRequest,\n\ttype IAuditableItemGraphListResponse,\n\ttype IAuditableItemGraphRemoveProofRequest,\n\ttype IAuditableItemGraphUpdatePartialRequest,\n\ttype IAuditableItemGraphUpdateRequest,\n\ttype IAuditableItemGraphVersionGetRequest,\n\ttype IAuditableItemGraphVersionGetResponse,\n\ttype IAuditableItemGraphVersionListRequest,\n\ttype IAuditableItemGraphVersionListResponse\n} from \"@twin.org/auditable-item-graph-models\";\nimport { ContextIdStore } from \"@twin.org/context\";\nimport { Coerce, ComponentFactory, Guards, Is } from \"@twin.org/core\";\nimport { nameof } from \"@twin.org/nameof\";\nimport { SchemaOrgContexts, SchemaOrgTypes } from \"@twin.org/standards-schema-org\";\nimport { HeaderHelper, HeaderTypes, HttpStatusCode, MimeTypes } from \"@twin.org/web\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"auditableItemGraphRoutes\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const tagsAuditableItemGraph: ITag[] = [\n\t{\n\t\tname: \"Auditable Item Graph\",\n\t\tdescription: \"Endpoints which are modelled to access an auditable item graph contract.\"\n\t}\n];\n\n/**\n * The REST routes for auditable item graph.\n * @param baseRouteName Prefix to prepend to the paths.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @returns The generated routes.\n */\nexport function generateRestRoutesAuditableItemGraph(\n\tbaseRouteName: string,\n\tcomponentName: string\n): IRestRoute[] {\n\tconst createRoute: IRestRoute<IAuditableItemGraphCreateRequest, ICreatedResponse> = {\n\t\toperationId: \"auditableItemGraphCreate\",\n\t\tsummary: \"Create a new graph vertex\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\taliases: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\tid: \"bar456\",\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\tid: \"foo321\",\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tresources: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Resource,\n\t\t\t\t\t\t\t\t\tid: \"resource1\",\n\t\t\t\t\t\t\t\t\tresourceObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Resource,\n\t\t\t\t\t\t\t\t\tid: \"resource2\",\n\t\t\t\t\t\t\t\t\tresourceObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tedges: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Edge,\n\t\t\t\t\t\t\t\t\ttargetId: \"aig:1234567890\",\n\t\t\t\t\t\t\t\t\tedgeRelationships: [\"frenemy\"],\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Edge,\n\t\t\t\t\t\t\t\t\ttargetId: \"aig:45678901234\",\n\t\t\t\t\t\t\t\t\tedgeRelationships: [\"end\"],\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<ICreatedResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphCreateResponseExample\",\n\t\t\t\t\t\tdescription: \"The response when a new graph vertex is created.\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tstatusCode: HttpStatusCode.created,\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.Location]: \"aig%3A1234567890\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst getRoute: IRestRoute<IAuditableItemGraphGetRequest, IAuditableItemGraphGetResponse> = {\n\t\toperationId: \"auditableItemGraphGet\",\n\t\tsummary: \"Get a graph vertex\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:id`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphGet(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphGetRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.Json\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphGetResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\tdateModified: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\taliases: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\t\tid: \"tst:1234567890\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphGetResponse>(),\n\t\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphJsonLdGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.ContentType]: MimeTypes.JsonLd\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\tdateModified: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\taliases: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\t\t\tid: \"tst:1234567890\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst getChangesetRoute: IRestRoute<\n\t\tIAuditableItemGraphChangesetGetRequest,\n\t\tIAuditableItemGraphChangesetGetResponse\n\t> = {\n\t\toperationId: \"auditableItemGraphChangesetGet\",\n\t\tsummary: \"Get a graph vertex changeset\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:id/changesets/:changesetId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphChangesetGet(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphChangesetGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphChangesetGetRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.Json\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\tchangesetId: \"changeset:1234567890\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphChangesetGetResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphChangesetGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Changeset,\n\t\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\tpatches: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\tpatchPath: \"/annotationObject\",\n\t\t\t\t\t\t\t\t\t\tpatchValue: {\n\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://www.w3.org/ns/activitystreams\",\n\t\t\t\t\t\t\t\t\t\t\ttype: \"Create\",\n\t\t\t\t\t\t\t\t\t\t\tactor: { type: \"Person\", id: \"acct:person@example.org\", name: \"Person\" },\n\t\t\t\t\t\t\t\t\t\t\tobject: { type: \"Note\", content: \"This is a simple note\" },\n\t\t\t\t\t\t\t\t\t\t\tpublished: \"2015-01-25T12:34:56Z\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\tpatchPath: \"/aliases\",\n\t\t\t\t\t\t\t\t\t\tpatchValue: [\n\t\t\t\t\t\t\t\t\t\t\t{ id: \"foo123\", dateCreated: \"2015-01-25T12:34:56Z\" },\n\t\t\t\t\t\t\t\t\t\t\t{ id: \"bar456\", dateCreated: \"2015-01-25T12:34:56Z\" }\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tverification: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.twindev.org/immutable-proof/\",\n\t\t\t\t\t\t\t\t\ttype: \"ImmutableProofVerification\",\n\t\t\t\t\t\t\t\t\tverified: true\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphChangesetGetResponse>(),\n\t\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphChangesetJsonLdGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.ContentType]: MimeTypes.JsonLd\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Changeset,\n\t\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\tpatches: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\tpatchPath: \"/annotationObject\",\n\t\t\t\t\t\t\t\t\t\tpatchValue: {\n\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://www.w3.org/ns/activitystreams\",\n\t\t\t\t\t\t\t\t\t\t\ttype: \"Create\",\n\t\t\t\t\t\t\t\t\t\t\tactor: { type: \"Person\", id: \"acct:person@example.org\", name: \"Person\" },\n\t\t\t\t\t\t\t\t\t\t\tobject: { type: \"Note\", content: \"This is a simple note\" },\n\t\t\t\t\t\t\t\t\t\t\tpublished: \"2015-01-25T12:34:56Z\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\tpatchPath: \"/aliases\",\n\t\t\t\t\t\t\t\t\t\tpatchValue: [\n\t\t\t\t\t\t\t\t\t\t\t{ id: \"foo123\", dateCreated: \"2015-01-25T12:34:56Z\" },\n\t\t\t\t\t\t\t\t\t\t\t{ id: \"bar456\", dateCreated: \"2015-01-25T12:34:56Z\" }\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tverification: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.twindev.org/immutable-proof/\",\n\t\t\t\t\t\t\t\t\ttype: \"ImmutableProofVerification\",\n\t\t\t\t\t\t\t\t\tverified: true\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst getChangesetListRoute: IRestRoute<\n\t\tIAuditableItemGraphChangesetListRequest,\n\t\tIAuditableItemGraphChangesetListResponse\n\t> = {\n\t\toperationId: \"auditableItemGraphChangesetList\",\n\t\tsummary: \"Get a list of graph vertex changesets\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:id/changesets`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphChangesetList(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphChangesetListRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphChangesetListRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.Json\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphChangesetListResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphChangesetListResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: [SchemaOrgTypes.ItemList, AuditableItemGraphTypes.ChangesetList],\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Changeset,\n\t\t\t\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\t\t\tpatches: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchPath: \"/annotationObject\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchValue: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://www.w3.org/ns/activitystreams\",\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"Create\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tactor: { type: \"Person\", id: \"acct:person@example.org\", name: \"Person\" },\n\t\t\t\t\t\t\t\t\t\t\t\t\tobject: { type: \"Note\", content: \"This is a simple note\" },\n\t\t\t\t\t\t\t\t\t\t\t\t\tpublished: \"2015-01-25T12:34:56Z\"\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchPath: \"/aliases\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchValue: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ id: \"foo123\", dateCreated: \"2015-01-25T12:34:56Z\" },\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ id: \"bar456\", dateCreated: \"2015-01-25T12:34:56Z\" }\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tverification: {\n\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.twindev.org/immutable-proof/\",\n\t\t\t\t\t\t\t\t\t\t\ttype: \"ImmutableProofVerification\",\n\t\t\t\t\t\t\t\t\t\t\tverified: true\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphChangesetGetResponse>(),\n\t\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphChangesetJsonLdGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.ContentType]: MimeTypes.JsonLd\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: [SchemaOrgTypes.ItemList, AuditableItemGraphTypes.ChangesetList],\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Changeset,\n\t\t\t\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\t\t\tpatches: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchPath: \"/annotationObject\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchValue: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://www.w3.org/ns/activitystreams\",\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"Create\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tactor: { type: \"Person\", id: \"acct:person@example.org\", name: \"Person\" },\n\t\t\t\t\t\t\t\t\t\t\t\t\tobject: { type: \"Note\", content: \"This is a simple note\" },\n\t\t\t\t\t\t\t\t\t\t\t\t\tpublished: \"2015-01-25T12:34:56Z\"\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchPath: \"/aliases\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchValue: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ id: \"foo123\", dateCreated: \"2015-01-25T12:34:56Z\" },\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ id: \"bar456\", dateCreated: \"2015-01-25T12:34:56Z\" }\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tverification: {\n\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.twindev.org/immutable-proof/\",\n\t\t\t\t\t\t\t\t\t\t\ttype: \"ImmutableProofVerification\",\n\t\t\t\t\t\t\t\t\t\t\tverified: true\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst getVersionRoute: IRestRoute<\n\t\tIAuditableItemGraphVersionGetRequest,\n\t\tIAuditableItemGraphVersionGetResponse\n\t> = {\n\t\toperationId: \"auditableItemGraphVersionGet\",\n\t\tsummary: \"Get a graph vertex at a specific version\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:id/versions/:version`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphVersionGet(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphVersionGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphVersionGetRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.Json\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\tversion: \"1\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphVersionGetResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphVersionGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\tversion: 1\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst getVersionListRoute: IRestRoute<\n\t\tIAuditableItemGraphVersionListRequest,\n\t\tIAuditableItemGraphVersionListResponse\n\t> = {\n\t\toperationId: \"auditableItemGraphVersionList\",\n\t\tsummary: \"Get all versions of a graph vertex\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:id/versions`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphVersionList(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphVersionListRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphVersionListRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.Json\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphVersionListAfterRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tafter: \"2026-04-03T12:00:00Z\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphVersionListResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphVersionListResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: [SchemaOrgTypes.ItemList, AuditableItemGraphTypes.VertexVersionList],\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{ version: 0, dateCreated: \"2024-08-22T11:55:16.271Z\" },\n\t\t\t\t\t\t\t\t\t{ version: 1, dateCreated: \"2024-08-22T11:56:00.000Z\" },\n\t\t\t\t\t\t\t\t\t{ version: 2, dateCreated: \"2024-08-22T11:57:00.000Z\" }\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst updateRoute: IRestRoute<IAuditableItemGraphUpdateRequest, INoContentResponse> = {\n\t\toperationId: \"auditableItemGraphUpdate\",\n\t\tsummary: \"Update a graph vertex\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"PUT\",\n\t\tpath: `${baseRouteName}/:id`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphUpdate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphUpdateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphUpdateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\taliases: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\tid: \"bar456\",\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\tid: \"foo321\",\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tresources: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Resource,\n\t\t\t\t\t\t\t\t\tid: \"resource1\",\n\t\t\t\t\t\t\t\t\tresourceObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Resource,\n\t\t\t\t\t\t\t\t\tid: \"resource2\",\n\t\t\t\t\t\t\t\t\tresourceObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tedges: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Edge,\n\t\t\t\t\t\t\t\t\tid: \"edge1\",\n\t\t\t\t\t\t\t\t\ttargetId: \"aig:1234567890\",\n\t\t\t\t\t\t\t\t\tedgeRelationships: [\"frenemy\"],\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Edge,\n\t\t\t\t\t\t\t\t\tid: \"edge2\",\n\t\t\t\t\t\t\t\t\ttargetId: \"aig:45678901234\",\n\t\t\t\t\t\t\t\t\tedgeRelationships: [\"end\"],\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<INoContentResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst updatePartialRoute: IRestRoute<\n\t\tIAuditableItemGraphUpdatePartialRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"auditableItemGraphUpdatePartial\",\n\t\tsummary: \"Partially update a graph vertex\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"PATCH\",\n\t\tpath: `${baseRouteName}/:id`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphUpdatePartial(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphUpdatePartialRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphUpdatePartialRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tedgePatches: {\n\t\t\t\t\t\t\t\tadd: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Edge,\n\t\t\t\t\t\t\t\t\t\ttargetId: \"aig:45678901234\",\n\t\t\t\t\t\t\t\t\t\tedgeRelationships: [\"document\"]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<INoContentResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst listRoute: IRestRoute<IAuditableItemGraphListRequest, IAuditableItemGraphListResponse> = {\n\t\toperationId: \"auditableItemGraphList\",\n\t\tsummary: \"Query graph vertices by id or alias\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphList(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphListRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"IAuditableItemGraphListAllRequest\",\n\t\t\t\t\trequest: {}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"IAuditableItemGraphListIdRequest\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tid: \"1234567890\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphListResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphListResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: [SchemaOrgTypes.ItemList, AuditableItemGraphTypes.VertexList],\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\t\t\t\tid: \"0101010101010101010101010101010101010101010101010101010101010101\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\t\t\taliases: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"foo4\",\n\t\t\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphListResponse>(),\n\t\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphJsonLdListResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.ContentType]: MimeTypes.JsonLd\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: [SchemaOrgTypes.ItemList, AuditableItemGraphTypes.VertexList],\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\t\t\t\tid: \"0101010101010101010101010101010101010101010101010101010101010101\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\t\t\taliases: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"foo4\",\n\t\t\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst removeProofRoute: IRestRoute<IAuditableItemGraphRemoveProofRequest, INoContentResponse> = {\n\t\toperationId: \"auditableItemGraphRemoveProof\",\n\t\tsummary: \"Remove the notarization proof from all changesets of a graph vertex\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"DELETE\",\n\t\tpath: `${baseRouteName}/:id/proof`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphRemoveProof(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphRemoveProofRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphRemoveProofRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"0101010101010101010101010101010101010101010101010101010101010101\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<INoContentResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphRemoveProofResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tstatusCode: HttpStatusCode.noContent\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\treturn [\n\t\tcreateRoute,\n\t\tgetRoute,\n\t\tgetVersionRoute,\n\t\tgetVersionListRoute,\n\t\tgetChangesetRoute,\n\t\tgetChangesetListRoute,\n\t\tupdateRoute,\n\t\tupdatePartialRoute,\n\t\tlistRoute,\n\t\tremoveProofRoute\n\t];\n}\n\n/**\n * Create the graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphCreateRequest\n): Promise<ICreatedResponse> {\n\tGuards.object<IAuditableItemGraphCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphCreateRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tconst id = await component.create(request.body);\n\treturn {\n\t\tstatusCode: HttpStatusCode.created,\n\t\theaders: {\n\t\t\t[HeaderTypes.Location]: id\n\t\t}\n\t};\n}\n\n/**\n * Get the graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphGet(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphGetRequest\n): Promise<IAuditableItemGraphGetResponse> {\n\tGuards.object<IAuditableItemGraphGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphGetRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tconst result = await component.get(request.pathParams.id, {\n\t\tincludeDeleted: Coerce.boolean(request.query?.includeDeleted),\n\t\tverifySignatureDepth: request.query?.verifySignatureDepth\n\t});\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]:\n\t\t\t\trequest.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd\n\t\t\t\t\t? MimeTypes.JsonLd\n\t\t\t\t\t: MimeTypes.Json\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * Get the graph vertex changeset list.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphChangesetList(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphChangesetListRequest\n): Promise<IAuditableItemGraphChangesetListResponse> {\n\tGuards.object<IAuditableItemGraphChangesetListRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphChangesetListRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tconst result = await component.getChangesets(\n\t\trequest.pathParams.id,\n\t\trequest.query?.cursor,\n\t\tCoerce.integer(request.query?.limit),\n\t\t{\n\t\t\tverifySignatureDepth: request.query?.verifySignatureDepth\n\t\t}\n\t);\n\n\tconst headers: IAuditableItemGraphListResponse[\"headers\"] = {\n\t\t[HeaderTypes.ContentType]:\n\t\t\trequest.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json\n\t};\n\n\tif (Is.stringValue(result.cursor)) {\n\t\tconst contextIds = await ContextIdStore.getContextIds();\n\t\theaders[HeaderTypes.Link] = HeaderHelper.createLinkHeader(\n\t\t\tHttpUrlHelper.replaceOrigin(\n\t\t\t\thttpRequestContext.serverRequest.url,\n\t\t\t\tcontextIds?.[HttpContextIdKeys.PublicOrigin]\n\t\t\t),\n\t\t\t{ cursor: result.cursor },\n\t\t\t\"next\"\n\t\t);\n\t}\n\n\treturn {\n\t\theaders,\n\t\tbody: result.changesets\n\t};\n}\n\n/**\n * Get the graph vertex changeset.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphChangesetGet(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphChangesetGetRequest\n): Promise<IAuditableItemGraphChangesetGetResponse> {\n\tGuards.object<IAuditableItemGraphChangesetGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphChangesetGetRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tconst changesetUrn = `${request.pathParams.id}:changeset:${request.pathParams.changesetId}`;\n\tconst result = await component.getChangeset(changesetUrn, {\n\t\tverifySignatureDepth: request.query?.verifySignatureDepth\n\t});\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]:\n\t\t\t\trequest.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd\n\t\t\t\t\t? MimeTypes.JsonLd\n\t\t\t\t\t: MimeTypes.Json\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * Update the graph vertex (PUT — full replacement of vertex state).\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphUpdate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphUpdateRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IAuditableItemGraphUpdateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphUpdateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\tGuards.object<IAuditableItemGraphUpdateRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tawait component.update({ ...request.body, id: request.pathParams.id });\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Partially update the graph vertex (PATCH — optional scalars; list fields use `{ add, remove }`).\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphUpdatePartial(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphUpdatePartialRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IAuditableItemGraphUpdatePartialRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphUpdatePartialRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\tGuards.object<IAuditableItemGraphUpdatePartialRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tawait component.updatePartial({ ...request.body, id: request.pathParams.id });\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Query the graph vertices.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphList(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphListRequest\n): Promise<IAuditableItemGraphListResponse> {\n\tGuards.object<IAuditableItemGraphListRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphListRequest[\"query\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.query),\n\t\trequest.query\n\t);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\n\tconst result = await component.query(\n\t\t{\n\t\t\tid: request.query?.id,\n\t\t\tidMode: request.query?.idMode,\n\t\t\tidExact: Coerce.boolean(request.query?.idExact),\n\t\t\tresourceTypes: HttpParameterHelper.arrayFromString(request.query?.resourceTypes)\n\t\t},\n\t\tHttpParameterHelper.objectFromString(request.query?.conditions),\n\t\trequest.query?.orderBy,\n\t\trequest.query?.orderByDirection,\n\t\tHttpParameterHelper.arrayFromString(request.query?.properties),\n\t\trequest.query?.cursor,\n\t\tCoerce.integer(request.query?.limit)\n\t);\n\n\tconst headers: IAuditableItemGraphListResponse[\"headers\"] = {\n\t\t[HeaderTypes.ContentType]:\n\t\t\trequest.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json\n\t};\n\n\tif (Is.stringValue(result.cursor)) {\n\t\tconst contextIds = await ContextIdStore.getContextIds();\n\t\theaders[HeaderTypes.Link] = HeaderHelper.createLinkHeader(\n\t\t\tHttpUrlHelper.replaceOrigin(\n\t\t\t\thttpRequestContext.serverRequest.url,\n\t\t\t\tcontextIds?.[HttpContextIdKeys.PublicOrigin]\n\t\t\t),\n\t\t\t{ cursor: result.cursor },\n\t\t\t\"next\"\n\t\t);\n\t}\n\n\treturn {\n\t\theaders,\n\t\tbody: result.entries\n\t};\n}\n\n/**\n * Get the graph vertex at a specific version.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphVersionGet(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphVersionGetRequest\n): Promise<IAuditableItemGraphVersionGetResponse> {\n\tGuards.object<IAuditableItemGraphVersionGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphVersionGetRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\n\tconst version = Coerce.integer(request.pathParams.version);\n\tGuards.integer(ROUTES_SOURCE, nameof(request.pathParams.version), version);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tconst result = await component.getVersion(request.pathParams.id, version);\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]:\n\t\t\t\trequest.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd\n\t\t\t\t\t? MimeTypes.JsonLd\n\t\t\t\t\t: MimeTypes.Json\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * Remove the notarization proof from all changesets of a graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphRemoveProof(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphRemoveProofRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IAuditableItemGraphRemoveProofRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphRemoveProofRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tawait component.removeProof(request.pathParams.id);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Get all versions of a graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphVersionList(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphVersionListRequest\n): Promise<IAuditableItemGraphVersionListResponse> {\n\tGuards.object<IAuditableItemGraphVersionListRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphVersionListRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tconst result = await component.getVersions(request.pathParams.id, {\n\t\tafter: request.query?.after,\n\t\tbefore: request.query?.before\n\t});\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]:\n\t\t\t\trequest.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd\n\t\t\t\t\t? MimeTypes.JsonLd\n\t\t\t\t\t: MimeTypes.Json\n\t\t},\n\t\tbody: result\n\t};\n}\n"]}
1
+ {"version":3,"file":"auditableItemGraphRoutes.js","sourceRoot":"","sources":["../../src/auditableItemGraphRoutes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport {\n\tHttpContextIdKeys,\n\tHttpHeaderHelper,\n\tHttpParameterHelper,\n\tHttpUrlHelper,\n\ttype ICreatedResponse,\n\ttype IHttpRequestContext,\n\ttype INoContentResponse,\n\ttype IRestRoute,\n\ttype ITag\n} from \"@twin.org/api-models\";\nimport {\n\tAuditableItemGraphContexts,\n\tAuditableItemGraphTypes,\n\ttype IAuditableItemGraphChangesetGetRequest,\n\ttype IAuditableItemGraphChangesetGetResponse,\n\ttype IAuditableItemGraphChangesetListRequest,\n\ttype IAuditableItemGraphChangesetListResponse,\n\ttype IAuditableItemGraphComponent,\n\ttype IAuditableItemGraphCreateRequest,\n\ttype IAuditableItemGraphGetRequest,\n\ttype IAuditableItemGraphGetResponse,\n\ttype IAuditableItemGraphListRequest,\n\ttype IAuditableItemGraphListResponse,\n\ttype IAuditableItemGraphRemoveProofRequest,\n\ttype IAuditableItemGraphUpdatePartialRequest,\n\ttype IAuditableItemGraphUpdateRequest,\n\ttype IAuditableItemGraphVersionGetRequest,\n\ttype IAuditableItemGraphVersionGetResponse,\n\ttype IAuditableItemGraphVersionListRequest,\n\ttype IAuditableItemGraphVersionListResponse\n} from \"@twin.org/auditable-item-graph-models\";\nimport { ContextIdStore } from \"@twin.org/context\";\nimport { Coerce, ComponentFactory, Guards } from \"@twin.org/core\";\nimport { nameof } from \"@twin.org/nameof\";\nimport { SchemaOrgContexts, SchemaOrgTypes } from \"@twin.org/standards-schema-org\";\nimport { HeaderTypes, HttpStatusCode, type IHttpHeaders, MimeTypes } from \"@twin.org/web\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"auditableItemGraphRoutes\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const tagsAuditableItemGraph: ITag[] = [\n\t{\n\t\tname: \"Auditable Item Graph\",\n\t\tdescription: \"Endpoints which are modelled to access an auditable item graph contract.\"\n\t}\n];\n\n/**\n * The REST routes for auditable item graph.\n * @param baseRouteName Prefix to prepend to the paths.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @returns The generated routes.\n */\nexport function generateRestRoutesAuditableItemGraph(\n\tbaseRouteName: string,\n\tcomponentName: string\n): IRestRoute[] {\n\tconst createRoute: IRestRoute<IAuditableItemGraphCreateRequest, ICreatedResponse> = {\n\t\toperationId: \"auditableItemGraphCreate\",\n\t\tsummary: \"Create a new graph vertex\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphCreate(httpRequestContext, componentName, request, baseRouteName),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\taliases: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\tid: \"bar456\",\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\tid: \"foo321\",\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tresources: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Resource,\n\t\t\t\t\t\t\t\t\tid: \"resource1\",\n\t\t\t\t\t\t\t\t\tresourceObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Resource,\n\t\t\t\t\t\t\t\t\tid: \"resource2\",\n\t\t\t\t\t\t\t\t\tresourceObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tedges: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Edge,\n\t\t\t\t\t\t\t\t\ttargetId: \"aig:1234567890\",\n\t\t\t\t\t\t\t\t\tedgeRelationships: [\"frenemy\"],\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Edge,\n\t\t\t\t\t\t\t\t\ttargetId: \"aig:45678901234\",\n\t\t\t\t\t\t\t\t\tedgeRelationships: [\"end\"],\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<ICreatedResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphCreateResponseExample\",\n\t\t\t\t\t\tdescription: \"The response when a new graph vertex is created.\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tstatusCode: HttpStatusCode.created,\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.Location]: \"aig%3A1234567890\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst getRoute: IRestRoute<IAuditableItemGraphGetRequest, IAuditableItemGraphGetResponse> = {\n\t\toperationId: \"auditableItemGraphGet\",\n\t\tsummary: \"Get a graph vertex\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:id`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphGet(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphGetRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.Json\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphGetResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\tdateModified: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\taliases: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\t\tid: \"tst:1234567890\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphGetResponse>(),\n\t\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphJsonLdGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.ContentType]: MimeTypes.JsonLd\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\tdateModified: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\taliases: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\t\t\tid: \"tst:1234567890\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst getChangesetRoute: IRestRoute<\n\t\tIAuditableItemGraphChangesetGetRequest,\n\t\tIAuditableItemGraphChangesetGetResponse\n\t> = {\n\t\toperationId: \"auditableItemGraphChangesetGet\",\n\t\tsummary: \"Get a graph vertex changeset\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:id/changesets/:changesetId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphChangesetGet(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphChangesetGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphChangesetGetRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.Json\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\tchangesetId: \"changeset:1234567890\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphChangesetGetResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphChangesetGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Changeset,\n\t\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\tpatches: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\tpatchPath: \"/annotationObject\",\n\t\t\t\t\t\t\t\t\t\tpatchValue: {\n\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://www.w3.org/ns/activitystreams\",\n\t\t\t\t\t\t\t\t\t\t\ttype: \"Create\",\n\t\t\t\t\t\t\t\t\t\t\tactor: { type: \"Person\", id: \"acct:person@example.org\", name: \"Person\" },\n\t\t\t\t\t\t\t\t\t\t\tobject: { type: \"Note\", content: \"This is a simple note\" },\n\t\t\t\t\t\t\t\t\t\t\tpublished: \"2015-01-25T12:34:56Z\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\tpatchPath: \"/aliases\",\n\t\t\t\t\t\t\t\t\t\tpatchValue: [\n\t\t\t\t\t\t\t\t\t\t\t{ id: \"foo123\", dateCreated: \"2015-01-25T12:34:56Z\" },\n\t\t\t\t\t\t\t\t\t\t\t{ id: \"bar456\", dateCreated: \"2015-01-25T12:34:56Z\" }\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tverification: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.twindev.org/immutable-proof/\",\n\t\t\t\t\t\t\t\t\ttype: \"ImmutableProofVerification\",\n\t\t\t\t\t\t\t\t\tverified: true\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphChangesetGetResponse>(),\n\t\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphChangesetJsonLdGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.ContentType]: MimeTypes.JsonLd\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Changeset,\n\t\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\tpatches: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\tpatchPath: \"/annotationObject\",\n\t\t\t\t\t\t\t\t\t\tpatchValue: {\n\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://www.w3.org/ns/activitystreams\",\n\t\t\t\t\t\t\t\t\t\t\ttype: \"Create\",\n\t\t\t\t\t\t\t\t\t\t\tactor: { type: \"Person\", id: \"acct:person@example.org\", name: \"Person\" },\n\t\t\t\t\t\t\t\t\t\t\tobject: { type: \"Note\", content: \"This is a simple note\" },\n\t\t\t\t\t\t\t\t\t\t\tpublished: \"2015-01-25T12:34:56Z\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\tpatchPath: \"/aliases\",\n\t\t\t\t\t\t\t\t\t\tpatchValue: [\n\t\t\t\t\t\t\t\t\t\t\t{ id: \"foo123\", dateCreated: \"2015-01-25T12:34:56Z\" },\n\t\t\t\t\t\t\t\t\t\t\t{ id: \"bar456\", dateCreated: \"2015-01-25T12:34:56Z\" }\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tverification: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.twindev.org/immutable-proof/\",\n\t\t\t\t\t\t\t\t\ttype: \"ImmutableProofVerification\",\n\t\t\t\t\t\t\t\t\tverified: true\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst getChangesetListRoute: IRestRoute<\n\t\tIAuditableItemGraphChangesetListRequest,\n\t\tIAuditableItemGraphChangesetListResponse\n\t> = {\n\t\toperationId: \"auditableItemGraphChangesetList\",\n\t\tsummary: \"Get a list of graph vertex changesets\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:id/changesets`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphChangesetList(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphChangesetListRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphChangesetListRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.Json\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphChangesetListResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphChangesetListResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: [SchemaOrgTypes.ItemList, AuditableItemGraphTypes.ChangesetList],\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Changeset,\n\t\t\t\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\t\t\tpatches: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchPath: \"/annotationObject\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchValue: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://www.w3.org/ns/activitystreams\",\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"Create\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tactor: { type: \"Person\", id: \"acct:person@example.org\", name: \"Person\" },\n\t\t\t\t\t\t\t\t\t\t\t\t\tobject: { type: \"Note\", content: \"This is a simple note\" },\n\t\t\t\t\t\t\t\t\t\t\t\t\tpublished: \"2015-01-25T12:34:56Z\"\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchPath: \"/aliases\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchValue: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ id: \"foo123\", dateCreated: \"2015-01-25T12:34:56Z\" },\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ id: \"bar456\", dateCreated: \"2015-01-25T12:34:56Z\" }\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tverification: {\n\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.twindev.org/immutable-proof/\",\n\t\t\t\t\t\t\t\t\t\t\ttype: \"ImmutableProofVerification\",\n\t\t\t\t\t\t\t\t\t\t\tverified: true\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphChangesetGetResponse>(),\n\t\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphChangesetJsonLdGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.ContentType]: MimeTypes.JsonLd\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: [SchemaOrgTypes.ItemList, AuditableItemGraphTypes.ChangesetList],\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Changeset,\n\t\t\t\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\t\t\tpatches: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchPath: \"/annotationObject\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchValue: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://www.w3.org/ns/activitystreams\",\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"Create\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tactor: { type: \"Person\", id: \"acct:person@example.org\", name: \"Person\" },\n\t\t\t\t\t\t\t\t\t\t\t\t\tobject: { type: \"Note\", content: \"This is a simple note\" },\n\t\t\t\t\t\t\t\t\t\t\t\t\tpublished: \"2015-01-25T12:34:56Z\"\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"AuditableItemGraphPatchOperation\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchOperation: \"add\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchPath: \"/aliases\",\n\t\t\t\t\t\t\t\t\t\t\t\tpatchValue: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ id: \"foo123\", dateCreated: \"2015-01-25T12:34:56Z\" },\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ id: \"bar456\", dateCreated: \"2015-01-25T12:34:56Z\" }\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tverification: {\n\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.twindev.org/immutable-proof/\",\n\t\t\t\t\t\t\t\t\t\t\ttype: \"ImmutableProofVerification\",\n\t\t\t\t\t\t\t\t\t\t\tverified: true\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst getVersionRoute: IRestRoute<\n\t\tIAuditableItemGraphVersionGetRequest,\n\t\tIAuditableItemGraphVersionGetResponse\n\t> = {\n\t\toperationId: \"auditableItemGraphVersionGet\",\n\t\tsummary: \"Get a graph vertex at a specific version\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:id/versions/:version`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphVersionGet(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphVersionGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphVersionGetRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.Json\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\tversion: \"1\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphVersionGetResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphVersionGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\t\tid: \"aig:1234567890\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\tversion: 1\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst getVersionListRoute: IRestRoute<\n\t\tIAuditableItemGraphVersionListRequest,\n\t\tIAuditableItemGraphVersionListResponse\n\t> = {\n\t\toperationId: \"auditableItemGraphVersionList\",\n\t\tsummary: \"Get all versions of a graph vertex\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:id/versions`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphVersionList(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphVersionListRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphVersionListRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.Json\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphVersionListAfterRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tafter: \"2026-04-03T12:00:00Z\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphVersionListResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphVersionListResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: [SchemaOrgTypes.ItemList, AuditableItemGraphTypes.VertexVersionList],\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{ version: 0, dateCreated: \"2024-08-22T11:55:16.271Z\" },\n\t\t\t\t\t\t\t\t\t{ version: 1, dateCreated: \"2024-08-22T11:56:00.000Z\" },\n\t\t\t\t\t\t\t\t\t{ version: 2, dateCreated: \"2024-08-22T11:57:00.000Z\" }\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst updateRoute: IRestRoute<IAuditableItemGraphUpdateRequest, INoContentResponse> = {\n\t\toperationId: \"auditableItemGraphUpdate\",\n\t\tsummary: \"Update a graph vertex\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"PUT\",\n\t\tpath: `${baseRouteName}/:id`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphUpdate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphUpdateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphUpdateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\taliases: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\tid: \"bar456\",\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\tid: \"foo321\",\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tresources: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Resource,\n\t\t\t\t\t\t\t\t\tid: \"resource1\",\n\t\t\t\t\t\t\t\t\tresourceObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Resource,\n\t\t\t\t\t\t\t\t\tid: \"resource2\",\n\t\t\t\t\t\t\t\t\tresourceObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tedges: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Edge,\n\t\t\t\t\t\t\t\t\tid: \"edge1\",\n\t\t\t\t\t\t\t\t\ttargetId: \"aig:1234567890\",\n\t\t\t\t\t\t\t\t\tedgeRelationships: [\"frenemy\"],\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Edge,\n\t\t\t\t\t\t\t\t\tid: \"edge2\",\n\t\t\t\t\t\t\t\t\ttargetId: \"aig:45678901234\",\n\t\t\t\t\t\t\t\t\tedgeRelationships: [\"end\"],\n\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\"@type\": \"Note\",\n\t\t\t\t\t\t\t\t\t\tcontent: \"This is a simple note\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<INoContentResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst updatePartialRoute: IRestRoute<\n\t\tIAuditableItemGraphUpdatePartialRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"auditableItemGraphUpdatePartial\",\n\t\tsummary: \"Partially update a graph vertex\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"PATCH\",\n\t\tpath: `${baseRouteName}/:id`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphUpdatePartial(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphUpdatePartialRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphUpdatePartialRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"aig:1234567890\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tedgePatches: {\n\t\t\t\t\t\t\t\tadd: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Edge,\n\t\t\t\t\t\t\t\t\t\ttargetId: \"aig:45678901234\",\n\t\t\t\t\t\t\t\t\t\tedgeRelationships: [\"document\"]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<INoContentResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst listRoute: IRestRoute<IAuditableItemGraphListRequest, IAuditableItemGraphListResponse> = {\n\t\toperationId: \"auditableItemGraphList\",\n\t\tsummary: \"Query graph vertices by id or alias\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphList(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphListRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"IAuditableItemGraphListAllRequest\",\n\t\t\t\t\trequest: {}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"IAuditableItemGraphListIdRequest\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tid: \"1234567890\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphListResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphListResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: [SchemaOrgTypes.ItemList, AuditableItemGraphTypes.VertexList],\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\t\t\t\tid: \"0101010101010101010101010101010101010101010101010101010101010101\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\t\t\taliases: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"foo4\",\n\t\t\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<IAuditableItemGraphListResponse>(),\n\t\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphJsonLdListResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.ContentType]: MimeTypes.JsonLd\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: [SchemaOrgTypes.ItemList, AuditableItemGraphTypes.VertexList],\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\t\t\t\tid: \"0101010101010101010101010101010101010101010101010101010101010101\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\",\n\t\t\t\t\t\t\t\t\t\taliases: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon,\n\t\t\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Context\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"foo4\",\n\t\t\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T11:55:16.271Z\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst removeProofRoute: IRestRoute<IAuditableItemGraphRemoveProofRequest, INoContentResponse> = {\n\t\toperationId: \"auditableItemGraphRemoveProof\",\n\t\tsummary: \"Remove the notarization proof from all changesets of a graph vertex\",\n\t\ttag: tagsAuditableItemGraph[0].name,\n\t\tmethod: \"DELETE\",\n\t\tpath: `${baseRouteName}/:id/proof`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tauditableItemGraphRemoveProof(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IAuditableItemGraphRemoveProofRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"auditableItemGraphRemoveProofRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"0101010101010101010101010101010101010101010101010101010101010101\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<INoContentResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"auditableItemGraphRemoveProofResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tstatusCode: HttpStatusCode.noContent\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\treturn [\n\t\tcreateRoute,\n\t\tgetRoute,\n\t\tgetVersionRoute,\n\t\tgetVersionListRoute,\n\t\tgetChangesetRoute,\n\t\tgetChangesetListRoute,\n\t\tupdateRoute,\n\t\tupdatePartialRoute,\n\t\tlistRoute,\n\t\tremoveProofRoute\n\t];\n}\n\n/**\n * Create the graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @param baseRouteName The base route name for the API.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphCreateRequest,\n\tbaseRouteName: string\n): Promise<ICreatedResponse> {\n\tGuards.object<IAuditableItemGraphCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphCreateRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tconst id = await component.create(request.body);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tconst publicOrigin = contextIds?.[HttpContextIdKeys.PublicOrigin];\n\n\tconst headers: IHttpHeaders = {};\n\tHttpHeaderHelper.buildId(\n\t\theaders,\n\t\tid,\n\t\tHttpUrlHelper.combineOriginPath(publicOrigin, `${baseRouteName}/:id`)\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.created,\n\t\theaders\n\t};\n}\n\n/**\n * Get the graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphGet(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphGetRequest\n): Promise<IAuditableItemGraphGetResponse> {\n\tGuards.object<IAuditableItemGraphGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphGetRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tconst result = await component.get(request.pathParams.id, {\n\t\tincludeDeleted: Coerce.boolean(request.query?.includeDeleted),\n\t\tverifySignatureDepth: request.query?.verifySignatureDepth\n\t});\n\n\tconst headers: IHttpHeaders = {};\n\tHttpHeaderHelper.buildJsonContentType(headers, request.headers);\n\n\treturn {\n\t\theaders,\n\t\tbody: result\n\t};\n}\n\n/**\n * Get the graph vertex changeset list.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphChangesetList(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphChangesetListRequest\n): Promise<IAuditableItemGraphChangesetListResponse> {\n\tGuards.object<IAuditableItemGraphChangesetListRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphChangesetListRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tconst result = await component.getChangesets(\n\t\trequest.pathParams.id,\n\t\trequest.query?.cursor,\n\t\tCoerce.integer(request.query?.limit),\n\t\t{\n\t\t\tverifySignatureDepth: request.query?.verifySignatureDepth\n\t\t}\n\t);\n\n\tconst headers: IHttpHeaders = {};\n\tHttpHeaderHelper.buildJsonContentType(headers, request.headers);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tHttpHeaderHelper.buildCursor(\n\t\theaders,\n\t\thttpRequestContext.serverRequest.url,\n\t\tcontextIds?.[HttpContextIdKeys.PublicOrigin],\n\t\tresult.cursor\n\t);\n\n\treturn {\n\t\theaders,\n\t\tbody: result.changesets\n\t};\n}\n\n/**\n * Get the graph vertex changeset.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphChangesetGet(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphChangesetGetRequest\n): Promise<IAuditableItemGraphChangesetGetResponse> {\n\tGuards.object<IAuditableItemGraphChangesetGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphChangesetGetRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tconst changesetUrn = `${request.pathParams.id}:changeset:${request.pathParams.changesetId}`;\n\tconst result = await component.getChangeset(changesetUrn, {\n\t\tverifySignatureDepth: request.query?.verifySignatureDepth\n\t});\n\n\tconst headers: IHttpHeaders = {};\n\tHttpHeaderHelper.buildJsonContentType(headers, request.headers);\n\n\treturn {\n\t\theaders,\n\t\tbody: result\n\t};\n}\n\n/**\n * Update the graph vertex (PUT — full replacement of vertex state).\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphUpdate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphUpdateRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IAuditableItemGraphUpdateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphUpdateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\tGuards.object<IAuditableItemGraphUpdateRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tawait component.update({ ...request.body, id: request.pathParams.id });\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Partially update the graph vertex (PATCH — optional scalars; list fields use `{ add, remove }`).\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphUpdatePartial(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphUpdatePartialRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IAuditableItemGraphUpdatePartialRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphUpdatePartialRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\tGuards.object<IAuditableItemGraphUpdatePartialRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tawait component.updatePartial({ ...request.body, id: request.pathParams.id });\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Query the graph vertices.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphList(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphListRequest\n): Promise<IAuditableItemGraphListResponse> {\n\tGuards.object<IAuditableItemGraphListRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphListRequest[\"query\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.query),\n\t\trequest.query\n\t);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\n\tconst result = await component.query(\n\t\t{\n\t\t\tid: request.query?.id,\n\t\t\tidMode: request.query?.idMode,\n\t\t\tidExact: Coerce.boolean(request.query?.idExact),\n\t\t\tresourceTypes: HttpParameterHelper.arrayFromString(request.query?.resourceTypes)\n\t\t},\n\t\tHttpParameterHelper.objectFromString(request.query?.conditions),\n\t\trequest.query?.orderBy,\n\t\trequest.query?.orderByDirection,\n\t\tHttpParameterHelper.arrayFromString(request.query?.properties),\n\t\trequest.query?.cursor,\n\t\tCoerce.integer(request.query?.limit)\n\t);\n\n\tconst headers: IHttpHeaders = {};\n\tHttpHeaderHelper.buildJsonContentType(headers, request.headers);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tHttpHeaderHelper.buildCursor(\n\t\theaders,\n\t\thttpRequestContext.serverRequest.url,\n\t\tcontextIds?.[HttpContextIdKeys.PublicOrigin],\n\t\tresult.cursor\n\t);\n\n\treturn {\n\t\theaders,\n\t\tbody: result.entries\n\t};\n}\n\n/**\n * Get the graph vertex at a specific version.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphVersionGet(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphVersionGetRequest\n): Promise<IAuditableItemGraphVersionGetResponse> {\n\tGuards.object<IAuditableItemGraphVersionGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphVersionGetRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\n\tconst version = Coerce.integer(request.pathParams.version);\n\tGuards.integer(ROUTES_SOURCE, nameof(request.pathParams.version), version);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tconst result = await component.getVersion(request.pathParams.id, version);\n\n\tconst headers: IHttpHeaders = {};\n\tHttpHeaderHelper.buildJsonContentType(headers, request.headers);\n\n\treturn {\n\t\theaders,\n\t\tbody: result\n\t};\n}\n\n/**\n * Remove the notarization proof from all changesets of a graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphRemoveProof(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphRemoveProofRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IAuditableItemGraphRemoveProofRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphRemoveProofRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tawait component.removeProof(request.pathParams.id);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Get all versions of a graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function auditableItemGraphVersionList(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IAuditableItemGraphVersionListRequest\n): Promise<IAuditableItemGraphVersionListResponse> {\n\tGuards.object<IAuditableItemGraphVersionListRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IAuditableItemGraphVersionListRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.pathParams.id), request.pathParams.id);\n\n\tconst component = ComponentFactory.get<IAuditableItemGraphComponent>(componentName);\n\tconst result = await component.getVersions(request.pathParams.id, {\n\t\tafter: request.query?.after,\n\t\tbefore: request.query?.before\n\t});\n\n\tconst headers: IHttpHeaders = {};\n\tHttpHeaderHelper.buildJsonContentType(headers, request.headers);\n\n\treturn {\n\t\theaders,\n\t\tbody: result\n\t};\n}\n"]}
@@ -16,9 +16,10 @@ export declare function generateRestRoutesAuditableItemGraph(baseRouteName: stri
16
16
  * @param httpRequestContext The request context for the API.
17
17
  * @param componentName The name of the component to use in the routes.
18
18
  * @param request The request.
19
+ * @param baseRouteName The base route name for the API.
19
20
  * @returns The response object with additional http response properties.
20
21
  */
21
- export declare function auditableItemGraphCreate(httpRequestContext: IHttpRequestContext, componentName: string, request: IAuditableItemGraphCreateRequest): Promise<ICreatedResponse>;
22
+ export declare function auditableItemGraphCreate(httpRequestContext: IHttpRequestContext, componentName: string, request: IAuditableItemGraphCreateRequest, baseRouteName: string): Promise<ICreatedResponse>;
22
23
  /**
23
24
  * Get the graph vertex.
24
25
  * @param httpRequestContext The request context for the API.
package/docs/changelog.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.1-next.3](https://github.com/iotaledger/twin-auditable-item-graph/compare/auditable-item-graph-service-v0.9.1-next.2...auditable-item-graph-service-v0.9.1-next.3) (2026-06-30)
4
+
5
+
6
+ ### Features
7
+
8
+ * rest enhancements ([1e51050](https://github.com/iotaledger/twin-auditable-item-graph/commit/1e51050af4c1a92f1f127054fe4c9da5e8cb591e))
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * The following workspace dependencies were updated
14
+ * dependencies
15
+ * @twin.org/auditable-item-graph-models bumped from 0.9.1-next.2 to 0.9.1-next.3
16
+
17
+ ## [0.9.1-next.2](https://github.com/iotaledger/twin-auditable-item-graph/compare/auditable-item-graph-service-v0.9.1-next.1...auditable-item-graph-service-v0.9.1-next.2) (2026-06-29)
18
+
19
+
20
+ ### Features
21
+
22
+ * enhanced rest testing ([#119](https://github.com/iotaledger/twin-auditable-item-graph/issues/119)) ([11f5653](https://github.com/iotaledger/twin-auditable-item-graph/commit/11f5653d297066983b5787429a262eca6a6f3fa7))
23
+
24
+
25
+ ### Dependencies
26
+
27
+ * The following workspace dependencies were updated
28
+ * dependencies
29
+ * @twin.org/auditable-item-graph-models bumped from 0.9.1-next.1 to 0.9.1-next.2
30
+
3
31
  ## [0.9.1-next.1](https://github.com/iotaledger/twin-auditable-item-graph/compare/auditable-item-graph-service-v0.9.1-next.0...auditable-item-graph-service-v0.9.1-next.1) (2026-06-26)
4
32
 
5
33
 
@@ -1,6 +1,6 @@
1
1
  # Function: auditableItemGraphCreate()
2
2
 
3
- > **auditableItemGraphCreate**(`httpRequestContext`, `componentName`, `request`): `Promise`\<`ICreatedResponse`\>
3
+ > **auditableItemGraphCreate**(`httpRequestContext`, `componentName`, `request`, `baseRouteName`): `Promise`\<`ICreatedResponse`\>
4
4
 
5
5
  Create the graph vertex.
6
6
 
@@ -24,6 +24,12 @@ The name of the component to use in the routes.
24
24
 
25
25
  The request.
26
26
 
27
+ ### baseRouteName
28
+
29
+ `string`
30
+
31
+ The base route name for the API.
32
+
27
33
  ## Returns
28
34
 
29
35
  `Promise`\<`ICreatedResponse`\>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twin.org/auditable-item-graph-service",
3
- "version": "0.9.1-next.1",
3
+ "version": "0.9.1-next.3",
4
4
  "description": "Implements graph lifecycle operations and audited change tracking with API route definitions.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "dependencies": {
17
17
  "@twin.org/api-models": "next",
18
- "@twin.org/auditable-item-graph-models": "0.9.1-next.1",
18
+ "@twin.org/auditable-item-graph-models": "0.9.1-next.3",
19
19
  "@twin.org/context": "next",
20
20
  "@twin.org/core": "next",
21
21
  "@twin.org/crypto": "next",