@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
|
|
6
|
+
import { Coerce, ComponentFactory, Guards } from "@twin.org/core";
|
|
7
7
|
import { SchemaOrgContexts, SchemaOrgTypes } from "@twin.org/standards-schema-org";
|
|
8
|
-
import {
|
|
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
|
-
|
|
981
|
-
|
|
982
|
-
|
|
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
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
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.
|
|
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.
|
|
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",
|