@twin.org/auditable-item-graph-service 0.0.3-next.10 → 0.0.3-next.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # TWIN Auditable Item Graph Service
2
2
 
3
- Auditable Item Graph contract implementation and REST endpoint definitions.
3
+ This package delivers the core graph operations, including create, update, query, and historical change retrieval with verifiable audit data.
4
+
5
+ It also exposes route definitions so applications can host the service over HTTP while keeping behaviour aligned with shared contracts.
4
6
 
5
7
  ## Installation
6
8
 
@@ -39,6 +39,11 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
39
39
  id: "auditableItemGraphCreateRequestExample",
40
40
  request: {
41
41
  body: {
42
+ "@context": [
43
+ AuditableItemGraphContexts.Context,
44
+ AuditableItemGraphContexts.ContextCommon
45
+ ],
46
+ type: AuditableItemGraphTypes.Vertex,
42
47
  annotationObject: {
43
48
  "@context": "https://schema.org",
44
49
  "@type": "Note",
@@ -46,6 +51,7 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
46
51
  },
47
52
  aliases: [
48
53
  {
54
+ type: AuditableItemGraphTypes.Alias,
49
55
  id: "bar456",
50
56
  annotationObject: {
51
57
  "@context": "https://schema.org",
@@ -54,6 +60,7 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
54
60
  }
55
61
  },
56
62
  {
63
+ type: AuditableItemGraphTypes.Alias,
57
64
  id: "foo321",
58
65
  annotationObject: {
59
66
  "@context": "https://schema.org",
@@ -64,6 +71,7 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
64
71
  ],
65
72
  resources: [
66
73
  {
74
+ type: AuditableItemGraphTypes.Resource,
67
75
  id: "resource1",
68
76
  resourceObject: {
69
77
  "@context": "https://schema.org",
@@ -72,6 +80,7 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
72
80
  }
73
81
  },
74
82
  {
83
+ type: AuditableItemGraphTypes.Resource,
75
84
  id: "resource2",
76
85
  resourceObject: {
77
86
  "@context": "https://schema.org",
@@ -82,6 +91,7 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
82
91
  ],
83
92
  edges: [
84
93
  {
94
+ type: AuditableItemGraphTypes.Edge,
85
95
  targetId: "aig:1234567890",
86
96
  edgeRelationships: ["frenemy"],
87
97
  annotationObject: {
@@ -91,6 +101,7 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
91
101
  }
92
102
  },
93
103
  {
104
+ type: AuditableItemGraphTypes.Edge,
94
105
  targetId: "aig:45678901234",
95
106
  edgeRelationships: ["end"],
96
107
  annotationObject: {
@@ -509,6 +520,11 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
509
520
  id: "aig:1234567890"
510
521
  },
511
522
  body: {
523
+ "@context": [
524
+ AuditableItemGraphContexts.Context,
525
+ AuditableItemGraphContexts.ContextCommon
526
+ ],
527
+ type: AuditableItemGraphTypes.Vertex,
512
528
  annotationObject: {
513
529
  "@context": "https://schema.org",
514
530
  "@type": "Note",
@@ -516,6 +532,7 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
516
532
  },
517
533
  aliases: [
518
534
  {
535
+ type: AuditableItemGraphTypes.Alias,
519
536
  id: "bar456",
520
537
  annotationObject: {
521
538
  "@context": "https://schema.org",
@@ -524,6 +541,7 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
524
541
  }
525
542
  },
526
543
  {
544
+ type: AuditableItemGraphTypes.Alias,
527
545
  id: "foo321",
528
546
  annotationObject: {
529
547
  "@context": "https://schema.org",
@@ -534,6 +552,7 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
534
552
  ],
535
553
  resources: [
536
554
  {
555
+ type: AuditableItemGraphTypes.Resource,
537
556
  id: "resource1",
538
557
  resourceObject: {
539
558
  "@context": "https://schema.org",
@@ -542,6 +561,7 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
542
561
  }
543
562
  },
544
563
  {
564
+ type: AuditableItemGraphTypes.Resource,
545
565
  id: "resource2",
546
566
  resourceObject: {
547
567
  "@context": "https://schema.org",
@@ -552,6 +572,7 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
552
572
  ],
553
573
  edges: [
554
574
  {
575
+ type: AuditableItemGraphTypes.Edge,
555
576
  id: "edge1",
556
577
  targetId: "aig:1234567890",
557
578
  edgeRelationships: ["frenemy"],
@@ -562,6 +583,7 @@ export function generateRestRoutesAuditableItemGraph(baseRouteName, componentNam
562
583
  }
563
584
  },
564
585
  {
586
+ type: AuditableItemGraphTypes.Edge,
565
587
  id: "edge2",
566
588
  targetId: "aig:45678901234",
567
589
  edgeRelationships: ["end"],
@@ -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\tHttpParameterHelper,\n\ttype ICreatedResponse,\n\ttype IHostingComponent,\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 IAuditableItemGraphUpdateRequest\n} from \"@twin.org/auditable-item-graph-models\";\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\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\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\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\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\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\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\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 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\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\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\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\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\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\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\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 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\treturn [createRoute, getRoute, getChangesetRoute, getChangesetListRoute, updateRoute, listRoute];\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\tconst hostingComponent = ComponentFactory.get<IHostingComponent>(\n\t\thttpRequestContext.hostingComponentType ?? \"hosting\"\n\t);\n\n\tif (Is.stringValue(result.cursor)) {\n\t\theaders[HeaderTypes.Link] = HeaderHelper.createLinkHeader(\n\t\t\tawait hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url),\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 = `aig:${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.\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 * 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 hostingComponent = ComponentFactory.get<IHostingComponent>(\n\t\thttpRequestContext.hostingComponentType ?? \"hosting\"\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\theaders[HeaderTypes.Link] = HeaderHelper.createLinkHeader(\n\t\t\tawait hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url),\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"]}
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\tHttpParameterHelper,\n\ttype ICreatedResponse,\n\ttype IHostingComponent,\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 IAuditableItemGraphUpdateRequest\n} from \"@twin.org/auditable-item-graph-models\";\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 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 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\treturn [createRoute, getRoute, getChangesetRoute, getChangesetListRoute, updateRoute, listRoute];\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\tconst hostingComponent = ComponentFactory.get<IHostingComponent>(\n\t\thttpRequestContext.hostingComponentType ?? \"hosting\"\n\t);\n\n\tif (Is.stringValue(result.cursor)) {\n\t\theaders[HeaderTypes.Link] = HeaderHelper.createLinkHeader(\n\t\t\tawait hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url),\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 = `aig:${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.\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 * 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 hostingComponent = ComponentFactory.get<IHostingComponent>(\n\t\thttpRequestContext.hostingComponentType ?? \"hosting\"\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\theaders[HeaderTypes.Link] = HeaderHelper.createLinkHeader(\n\t\t\tawait hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url),\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"]}
@@ -1,9 +1,10 @@
1
1
  // Copyright 2024 IOTA Stiftung.
2
2
  // SPDX-License-Identifier: Apache-2.0.
3
- import { AuditableItemGraphContexts, AuditableItemGraphTopics, AuditableItemGraphTypes, VerifyDepth } from "@twin.org/auditable-item-graph-models";
3
+ import { AuditableItemGraphContexts, AuditableItemGraphDataTypes, AuditableItemGraphTopics, AuditableItemGraphTypes, VerifyDepth } from "@twin.org/auditable-item-graph-models";
4
4
  import { ContextIdKeys, ContextIdStore } from "@twin.org/context";
5
5
  import { ArrayHelper, ComponentFactory, GeneralError, Guards, Is, JsonHelper, NotFoundError, ObjectHelper, RandomHelper, StringHelper, Urn, Validation } from "@twin.org/core";
6
- import { JsonLdHelper, JsonLdProcessor } from "@twin.org/data-json-ld";
6
+ import { DataTypeHelper } from "@twin.org/data-core";
7
+ import { JsonLdDataTypes, JsonLdHelper, JsonLdProcessor } from "@twin.org/data-json-ld";
7
8
  import { ComparisonOperator, LogicalOperator, SortDirection } from "@twin.org/entity";
8
9
  import { EntityStorageConnectorFactory } from "@twin.org/entity-storage-models";
9
10
  import { ImmutableProofContexts, ImmutableProofFailure, ImmutableProofTypes } from "@twin.org/immutable-proof-models";
@@ -72,6 +73,8 @@ export class AuditableItemGraphService {
72
73
  this._eventBusComponent = ComponentFactory.get(options.eventBusComponentType);
73
74
  }
74
75
  SchemaOrgDataTypes.registerRedirects();
76
+ AuditableItemGraphDataTypes.registerTypes();
77
+ JsonLdDataTypes.registerTypes();
75
78
  }
76
79
  /**
77
80
  * Returns the class name of the component.
@@ -93,12 +96,18 @@ export class AuditableItemGraphService {
93
96
  Guards.object(AuditableItemGraphService.CLASS_NAME, "vertex", vertex);
94
97
  const contextIds = await ContextIdStore.getContextIds();
95
98
  try {
99
+ const id = RandomHelper.generateUuidV7("compact");
100
+ const schemaValidationFailures = [];
101
+ await DataTypeHelper.validate("vertex", `${AuditableItemGraphContexts.Namespace}${AuditableItemGraphTypes.Vertex}`, {
102
+ ...vertex,
103
+ id
104
+ }, schemaValidationFailures);
105
+ Validation.asValidationError(AuditableItemGraphService.CLASS_NAME, "vertex", schemaValidationFailures);
96
106
  if (Is.object(vertex.annotationObject)) {
97
107
  const validationFailures = [];
98
108
  await JsonLdHelper.validate(vertex.annotationObject, validationFailures);
99
109
  Validation.asValidationError(AuditableItemGraphService.CLASS_NAME, "vertex.annotationObject", validationFailures);
100
110
  }
101
- const id = RandomHelper.generateUuidV7("compact");
102
111
  const context = {
103
112
  now: new Date(Date.now()).toISOString(),
104
113
  contextIds
@@ -128,6 +137,67 @@ export class AuditableItemGraphService {
128
137
  throw new GeneralError(AuditableItemGraphService.CLASS_NAME, "createFailed", undefined, error);
129
138
  }
130
139
  }
140
+ /**
141
+ * Update a graph vertex.
142
+ * @param vertex The vertex to update.
143
+ * @param vertex.id The id of the vertex to update.
144
+ * @param vertex.annotationObject The annotation object for the vertex as JSON-LD.
145
+ * @param vertex.aliases Alternative aliases that can be used to identify the vertex.
146
+ * @param vertex.resources The resources attached to the vertex.
147
+ * @param vertex.edges The edges connected to the vertex.
148
+ * @returns Nothing.
149
+ */
150
+ async update(vertex) {
151
+ Guards.object(AuditableItemGraphService.CLASS_NAME, "vertex", vertex);
152
+ Guards.stringValue(AuditableItemGraphService.CLASS_NAME, "vertex.id", vertex.id);
153
+ const contextIds = await ContextIdStore.getContextIds();
154
+ const urnParsed = Urn.fromValidString(vertex.id);
155
+ if (urnParsed.namespaceIdentifier() !== AuditableItemGraphService.NAMESPACE) {
156
+ throw new GeneralError(AuditableItemGraphService.CLASS_NAME, "namespaceMismatch", {
157
+ namespace: AuditableItemGraphService.NAMESPACE,
158
+ id: vertex.id
159
+ });
160
+ }
161
+ try {
162
+ const schemaValidationFailures = [];
163
+ await DataTypeHelper.validate("vertex", `${AuditableItemGraphContexts.Namespace}${AuditableItemGraphTypes.Vertex}`, vertex, schemaValidationFailures);
164
+ Validation.asValidationError(AuditableItemGraphService.CLASS_NAME, "vertex", schemaValidationFailures);
165
+ const vertexId = urnParsed.namespaceSpecific(0);
166
+ const vertexEntity = await this._vertexStorage.get(vertexId);
167
+ if (Is.empty(vertexEntity)) {
168
+ throw new NotFoundError(AuditableItemGraphService.CLASS_NAME, "vertexNotFound", vertex.id);
169
+ }
170
+ if (Is.object(vertex.annotationObject)) {
171
+ const validationFailures = [];
172
+ await JsonLdHelper.validate(vertex.annotationObject, validationFailures);
173
+ Validation.asValidationError(AuditableItemGraphService.CLASS_NAME, "vertex.annotationObject", validationFailures);
174
+ }
175
+ const context = {
176
+ now: new Date(Date.now()).toISOString(),
177
+ contextIds
178
+ };
179
+ delete vertexEntity.aliasIndex;
180
+ const originalEntity = ObjectHelper.clone(vertexEntity);
181
+ const newEntity = ObjectHelper.clone(vertexEntity);
182
+ newEntity.annotationObject = vertex.annotationObject;
183
+ await this.updateAliasList(context, newEntity, vertex.aliases);
184
+ await this.updateResourceList(context, newEntity, vertex.resources);
185
+ await this.updateEdgeList(context, newEntity, vertex.edges);
186
+ const patches = await this.addChangeset(context, originalEntity, newEntity, false);
187
+ if (patches.length > 0) {
188
+ newEntity.dateModified = context.now;
189
+ const indexes = this.buildIndexes(newEntity);
190
+ await this._vertexStorage.set({
191
+ ...newEntity,
192
+ ...indexes
193
+ });
194
+ await this._eventBusComponent?.publish(AuditableItemGraphTopics.VertexUpdated, { id: vertex.id, patches });
195
+ }
196
+ }
197
+ catch (error) {
198
+ throw new GeneralError(AuditableItemGraphService.CLASS_NAME, "updatingFailed", undefined, error);
199
+ }
200
+ }
131
201
  /**
132
202
  * Get a graph vertex.
133
203
  * @param id The id of the vertex to get.
@@ -278,64 +348,6 @@ export class AuditableItemGraphService {
278
348
  throw new GeneralError(AuditableItemGraphService.CLASS_NAME, "getFailed", undefined, error);
279
349
  }
280
350
  }
281
- /**
282
- * Update a graph vertex.
283
- * @param vertex The vertex to update.
284
- * @param vertex.id The id of the vertex to update.
285
- * @param vertex.annotationObject The annotation object for the vertex as JSON-LD.
286
- * @param vertex.aliases Alternative aliases that can be used to identify the vertex.
287
- * @param vertex.resources The resources attached to the vertex.
288
- * @param vertex.edges The edges connected to the vertex.
289
- * @returns Nothing.
290
- */
291
- async update(vertex) {
292
- Guards.object(AuditableItemGraphService.CLASS_NAME, "vertex", vertex);
293
- Guards.stringValue(AuditableItemGraphService.CLASS_NAME, "vertex.id", vertex.id);
294
- const contextIds = await ContextIdStore.getContextIds();
295
- const urnParsed = Urn.fromValidString(vertex.id);
296
- if (urnParsed.namespaceIdentifier() !== AuditableItemGraphService.NAMESPACE) {
297
- throw new GeneralError(AuditableItemGraphService.CLASS_NAME, "namespaceMismatch", {
298
- namespace: AuditableItemGraphService.NAMESPACE,
299
- id: vertex.id
300
- });
301
- }
302
- try {
303
- const vertexId = urnParsed.namespaceSpecific(0);
304
- const vertexEntity = await this._vertexStorage.get(vertexId);
305
- if (Is.empty(vertexEntity)) {
306
- throw new NotFoundError(AuditableItemGraphService.CLASS_NAME, "vertexNotFound", vertex.id);
307
- }
308
- if (Is.object(vertex.annotationObject)) {
309
- const validationFailures = [];
310
- await JsonLdHelper.validate(vertex.annotationObject, validationFailures);
311
- Validation.asValidationError(AuditableItemGraphService.CLASS_NAME, "vertex.annotationObject", validationFailures);
312
- }
313
- const context = {
314
- now: new Date(Date.now()).toISOString(),
315
- contextIds
316
- };
317
- delete vertexEntity.aliasIndex;
318
- const originalEntity = ObjectHelper.clone(vertexEntity);
319
- const newEntity = ObjectHelper.clone(vertexEntity);
320
- newEntity.annotationObject = vertex.annotationObject;
321
- await this.updateAliasList(context, newEntity, vertex.aliases);
322
- await this.updateResourceList(context, newEntity, vertex.resources);
323
- await this.updateEdgeList(context, newEntity, vertex.edges);
324
- const patches = await this.addChangeset(context, originalEntity, newEntity, false);
325
- if (patches.length > 0) {
326
- newEntity.dateModified = context.now;
327
- const indexes = this.buildIndexes(newEntity);
328
- await this._vertexStorage.set({
329
- ...newEntity,
330
- ...indexes
331
- });
332
- await this._eventBusComponent?.publish(AuditableItemGraphTopics.VertexUpdated, { id: vertex.id, patches });
333
- }
334
- }
335
- catch (error) {
336
- throw new GeneralError(AuditableItemGraphService.CLASS_NAME, "updatingFailed", undefined, error);
337
- }
338
- }
339
351
  /**
340
352
  * Remove the verifiable storage for an item.
341
353
  * @param id The id of the vertex to get.
@@ -625,7 +637,7 @@ export class AuditableItemGraphService {
625
637
  Guards.object(AuditableItemGraphService.CLASS_NAME, "alias", alias);
626
638
  Guards.stringValue(AuditableItemGraphService.CLASS_NAME, "alias.id", alias.id);
627
639
  if (alias.unique ?? false) {
628
- const existingVertices = await this.findMatchingVertices(context, vertex.id, alias.id);
640
+ const existingVertices = await this.findMatchingVertices(vertex.id, alias.id);
629
641
  if (existingVertices) {
630
642
  throw new GeneralError(AuditableItemGraphService.CLASS_NAME, "aliasNotUnique", {
631
643
  aliasId: alias.id
@@ -646,16 +658,19 @@ export class AuditableItemGraphService {
646
658
  id: alias.id,
647
659
  aliasFormat: alias.aliasFormat,
648
660
  dateCreated: context.now,
649
- annotationObject: alias.annotationObject
661
+ annotationObject: alias.annotationObject,
662
+ unique: alias.unique
650
663
  };
651
664
  vertex.aliases.push(model);
652
665
  }
653
666
  else if (existing.aliasFormat !== alias.aliasFormat ||
654
- !ObjectHelper.equal(existing.annotationObject, alias.annotationObject, false)) {
667
+ !ObjectHelper.equal(existing.annotationObject, alias.annotationObject, false) ||
668
+ existing.unique !== alias.unique) {
655
669
  // Existing alias found, update the annotationObject.
656
670
  existing.dateModified = context.now;
657
671
  existing.aliasFormat = alias.aliasFormat;
658
672
  existing.annotationObject = alias.annotationObject;
673
+ existing.unique = alias.unique;
659
674
  }
660
675
  }
661
676
  /**
@@ -967,7 +982,7 @@ export class AuditableItemGraphService {
967
982
  * @returns True if any other vertices have matching aliases.
968
983
  * @internal
969
984
  */
970
- async findMatchingVertices(context, vertexId, aliasId) {
985
+ async findMatchingVertices(vertexId, aliasId) {
971
986
  const results = await this._vertexStorage.query({
972
987
  conditions: [
973
988
  {