@twin.org/document-management-service 0.0.3-next.3 → 0.0.3-next.5

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.
@@ -2,7 +2,7 @@ import { AuditableItemGraphContexts, AuditableItemGraphTypes } from "@twin.org/a
2
2
  import { Coerce, ComponentFactory, Converter, Guards, Is } from "@twin.org/core";
3
3
  import { DocumentContexts, DocumentTypes } from "@twin.org/document-management-models";
4
4
  import { SchemaOrgContexts, SchemaOrgTypes } from "@twin.org/standards-schema-org";
5
- import { DocumentCodeList } from "@twin.org/standards-unece";
5
+ import { UneceDocumentCodeList } from "@twin.org/standards-unece";
6
6
  import { HeaderTypes, HttpStatusCode, MimeTypes } from "@twin.org/web";
7
7
  /**
8
8
  * The source used when communicating about these routes.
@@ -40,7 +40,7 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
40
40
  body: {
41
41
  documentId: "2721000",
42
42
  documentIdFormat: "bol",
43
- documentCode: DocumentCodeList.BillOfLading,
43
+ documentCode: UneceDocumentCodeList.BillOfLading,
44
44
  blob: "SGVsbG8gV29ybGQ=",
45
45
  annotationObject: {
46
46
  "@context": "https://schema.org",
@@ -141,23 +141,23 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
141
141
  response: {
142
142
  body: {
143
143
  "@context": [
144
- SchemaOrgContexts.ContextRoot,
145
- DocumentContexts.ContextRoot,
146
- DocumentContexts.ContextRootCommon
144
+ SchemaOrgContexts.Namespace,
145
+ DocumentContexts.Namespace,
146
+ DocumentContexts.NamespaceCommon
147
147
  ],
148
148
  type: SchemaOrgTypes.ItemList,
149
149
  [SchemaOrgTypes.ItemListElement]: [
150
150
  {
151
151
  "@context": [
152
- DocumentContexts.ContextRoot,
153
- DocumentContexts.ContextRootCommon,
154
- SchemaOrgContexts.ContextRoot
152
+ DocumentContexts.Namespace,
153
+ DocumentContexts.NamespaceCommon,
154
+ SchemaOrgContexts.Namespace
155
155
  ],
156
156
  type: DocumentTypes.Document,
157
157
  id: "2721000:0",
158
158
  documentId: "2721000",
159
159
  documentIdFormat: "bol",
160
- documentCode: DocumentCodeList.BillOfLading,
160
+ documentCode: UneceDocumentCodeList.BillOfLading,
161
161
  documentRevision: 0,
162
162
  blobStorageId: "blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70",
163
163
  blobHash: "sha256:123456",
@@ -185,23 +185,23 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
185
185
  response: {
186
186
  body: {
187
187
  "@context": [
188
- SchemaOrgContexts.ContextRoot,
189
- DocumentContexts.ContextRoot,
190
- DocumentContexts.ContextRootCommon
188
+ SchemaOrgContexts.Namespace,
189
+ DocumentContexts.Namespace,
190
+ DocumentContexts.NamespaceCommon
191
191
  ],
192
192
  type: SchemaOrgTypes.ItemList,
193
193
  [SchemaOrgTypes.ItemListElement]: [
194
194
  {
195
195
  "@context": [
196
- DocumentContexts.ContextRoot,
197
- DocumentContexts.ContextRootCommon,
198
- SchemaOrgContexts.ContextRoot
196
+ DocumentContexts.Namespace,
197
+ DocumentContexts.NamespaceCommon,
198
+ SchemaOrgContexts.Namespace
199
199
  ],
200
200
  type: DocumentTypes.Document,
201
201
  id: "2721000:0",
202
202
  documentId: "2721000",
203
203
  documentIdFormat: "bol",
204
- documentCode: DocumentCodeList.BillOfLading,
204
+ documentCode: UneceDocumentCodeList.BillOfLading,
205
205
  documentRevision: 0,
206
206
  blobStorageId: "blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70",
207
207
  blobHash: "sha256:123456",
@@ -255,15 +255,15 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
255
255
  response: {
256
256
  body: {
257
257
  "@context": [
258
- DocumentContexts.ContextRoot,
259
- DocumentContexts.ContextRootCommon,
260
- SchemaOrgContexts.ContextRoot
258
+ DocumentContexts.Namespace,
259
+ DocumentContexts.NamespaceCommon,
260
+ SchemaOrgContexts.Namespace
261
261
  ],
262
262
  type: DocumentTypes.Document,
263
263
  id: "2721000:0",
264
264
  documentId: "2721000",
265
265
  documentIdFormat: "bol",
266
- documentCode: DocumentCodeList.BillOfLading,
266
+ documentCode: UneceDocumentCodeList.BillOfLading,
267
267
  documentRevision: 1,
268
268
  blobStorageId: "blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70",
269
269
  blobHash: "sha256:123456",
@@ -289,15 +289,15 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
289
289
  response: {
290
290
  body: {
291
291
  "@context": [
292
- DocumentContexts.ContextRoot,
293
- DocumentContexts.ContextRootCommon,
294
- SchemaOrgContexts.ContextRoot
292
+ DocumentContexts.Namespace,
293
+ DocumentContexts.NamespaceCommon,
294
+ SchemaOrgContexts.Namespace
295
295
  ],
296
296
  type: DocumentTypes.Document,
297
297
  id: "2721000:0",
298
298
  documentId: "2721000",
299
299
  documentIdFormat: "bol",
300
- documentCode: DocumentCodeList.BillOfLading,
300
+ documentCode: UneceDocumentCodeList.BillOfLading,
301
301
  documentRevision: 1,
302
302
  blobStorageId: "blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70",
303
303
  blobHash: "sha256:123456",
@@ -377,20 +377,20 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
377
377
  id: "DocumentManagementQueryResponseExample",
378
378
  response: {
379
379
  body: {
380
- "@context": [SchemaOrgContexts.ContextRoot, AuditableItemGraphContexts.ContextRoot],
380
+ "@context": [SchemaOrgContexts.Namespace, AuditableItemGraphContexts.Namespace],
381
381
  type: [SchemaOrgTypes.ItemList, AuditableItemGraphTypes.VertexList],
382
382
  [SchemaOrgTypes.ItemListElement]: [
383
383
  {
384
384
  "@context": [
385
- AuditableItemGraphContexts.ContextRoot,
386
- AuditableItemGraphContexts.ContextRootCommon
385
+ AuditableItemGraphContexts.Namespace,
386
+ AuditableItemGraphContexts.NamespaceCommon
387
387
  ],
388
388
  id: "aig:c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7",
389
389
  type: AuditableItemGraphTypes.Vertex,
390
390
  dateCreated: "2024-08-22T04:13:20.000Z",
391
391
  aliases: [
392
392
  {
393
- "@context": [AuditableItemGraphContexts.ContextRoot],
393
+ "@context": [AuditableItemGraphContexts.Namespace],
394
394
  id: "test-id-0",
395
395
  type: AuditableItemGraphTypes.Alias,
396
396
  dateCreated: "2024-08-22T04:13:20.000Z"
@@ -398,7 +398,7 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
398
398
  ],
399
399
  resources: [
400
400
  {
401
- "@context": AuditableItemGraphContexts.ContextRoot,
401
+ "@context": AuditableItemGraphContexts.Namespace,
402
402
  type: AuditableItemGraphTypes.Resource,
403
403
  dateCreated: "2024-08-22T04:13:20.000Z",
404
404
  resourceObject: {
@@ -1 +1 @@
1
- {"version":3,"file":"documentManagementRoutes.js","sourceRoot":"","sources":["../../src/documentManagementRoutes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type {\n\tICreatedResponse,\n\tIHttpRequestContext,\n\tINoContentResponse,\n\tINotFoundResponse,\n\tIRestRoute,\n\tITag\n} from \"@twin.org/api-models\";\nimport {\n\tAuditableItemGraphContexts,\n\tAuditableItemGraphTypes\n} from \"@twin.org/auditable-item-graph-models\";\nimport { Coerce, ComponentFactory, Converter, Guards, Is } from \"@twin.org/core\";\nimport {\n\tDocumentContexts,\n\tDocumentTypes,\n\ttype IDocumentManagementGetRevisionRequest,\n\ttype IDocumentManagementGetRevisionResponse,\n\ttype IDocumentManagementComponent,\n\ttype IDocumentManagementCreateRequest,\n\ttype IDocumentManagementGetRequest,\n\ttype IDocumentManagementGetResponse,\n\ttype IDocumentManagementQueryRequest,\n\ttype IDocumentManagementQueryResponse,\n\ttype IDocumentManagementRemoveRequest,\n\ttype IDocumentManagementUpdateRequest\n} from \"@twin.org/document-management-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport { SchemaOrgContexts, SchemaOrgTypes } from \"@twin.org/standards-schema-org\";\nimport { DocumentCodeList } from \"@twin.org/standards-unece\";\nimport { HeaderTypes, HttpStatusCode, MimeTypes } from \"@twin.org/web\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"documentManagementStorageRoutes\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const tagsDocumentManagement: ITag[] = [\n\t{\n\t\tname: \"Document Management\",\n\t\tdescription: \"Endpoints which are modelled to access a document management contract.\"\n\t}\n];\n\n/**\n * The REST routes for document management.\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 generateRestRoutesDocumentManagement(\n\tbaseRouteName: string,\n\tcomponentName: string\n): IRestRoute[] {\n\tconst documentManagementCreateRoute: IRestRoute<\n\t\tIDocumentManagementCreateRequest,\n\t\tICreatedResponse\n\t> = {\n\t\toperationId: \"DocumentManagementSet\",\n\t\tsummary:\n\t\t\t\"Store a document in an auditable item graph vertex and add its content to blob storage.\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\tdocumentCode: DocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\tblob: \"SGVsbG8gV29ybGQ=\",\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\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tcreateAttestation: true\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: \"DocumentManagementCreateResponseExample\",\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:123456\"\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 documentManagementUpdateRoute: IRestRoute<\n\t\tIDocumentManagementUpdateRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"DocumentManagementUpdate\",\n\t\tsummary:\n\t\t\t\"Update a document in an auditable item graph vertex and add its content to blob storage.\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"PUT\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementUpdate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementUpdateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementUpdateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:123456\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tblob: \"SGVsbG8gV29ybGQ=\",\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\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\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\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementCreateResponseExample\",\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\tconst documentManagementGetRoute: IRestRoute<\n\t\tIDocumentManagementGetRequest,\n\t\tIDocumentManagementGetResponse\n\t> = {\n\t\toperationId: \"DocumentManagementGet\",\n\t\tsummary: \"Get the data for a document from document management\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementGet(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementGetRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:123456\"\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<IDocumentManagementGetResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementGetResponseExample\",\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.ContextRoot,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRootCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: SchemaOrgTypes.ItemList,\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\tDocumentContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRootCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.ContextRoot\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\t\t\tdocumentCode: DocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\t\t\tdocumentRevision: 0,\n\t\t\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\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\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\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<IDocumentManagementGetResponse>(),\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: \"DocumentManagementGetResponseExample\",\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.ContextRoot,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRootCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: SchemaOrgTypes.ItemList,\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\tDocumentContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRootCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.ContextRoot\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\t\t\tdocumentCode: DocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\t\t\tdocumentRevision: 0,\n\t\t\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\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\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\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<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementGetRevisionRoute: IRestRoute<\n\t\tIDocumentManagementGetRevisionRequest,\n\t\tIDocumentManagementGetRevisionResponse\n\t> = {\n\t\toperationId: \"DocumentManagementGetRevision\",\n\t\tsummary: \"Get the data for a document revision from document management\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId/:revision`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementGetRevision(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementGetRevisionRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:123456\",\n\t\t\t\t\t\t\trevision: \"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<IDocumentManagementGetRevisionResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementGetRevisionResponseExample\",\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\tDocumentContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRootCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.ContextRoot\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\tdocumentCode: DocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\tdocumentRevision: 1,\n\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\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\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\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<IDocumentManagementGetRevisionResponse>(),\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: \"DocumentManagementGetRevisionResponseExample\",\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\tDocumentContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRootCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.ContextRoot\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\tdocumentCode: DocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\tdocumentRevision: 1,\n\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\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\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\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<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementRemoveRevisionRoute: IRestRoute<\n\t\tIDocumentManagementRemoveRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"DocumentManagementRemove\",\n\t\tsummary: \"Remove an document from an auditable item graph vertex\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"DELETE\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId/:revision`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementRemove(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementRemoveRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementRemoveRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:1234\",\n\t\t\t\t\t\t\trevision: \"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<INoContentResponse>()\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementQueryRoute: IRestRoute<\n\t\tIDocumentManagementQueryRequest,\n\t\tIDocumentManagementQueryResponse\n\t> = {\n\t\toperationId: \"DocumentManagementQuery\",\n\t\tsummary: \"Query the items from an auditable item graph vertex\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementQuery(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementQueryRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementQueryRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tdocumentId: \"2721000\"\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<IDocumentManagementQueryResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementQueryResponseExample\",\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\": [SchemaOrgContexts.ContextRoot, AuditableItemGraphContexts.ContextRoot],\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.ContextRoot,\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextRootCommon\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tid: \"aig:c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7\",\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T04:13:20.000Z\",\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\": [AuditableItemGraphContexts.ContextRoot],\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"test-id-0\",\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\tdateCreated: \"2024-08-22T04:13:20.000Z\"\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\tresources: [\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\": AuditableItemGraphContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Resource,\n\t\t\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T04:13:20.000Z\",\n\t\t\t\t\t\t\t\t\t\t\t\tresourceObject: {\n\t\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\t\t\"https://schema.twindev.org/documents/\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"https://schema.twindev.org/common/\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"https://schema.org\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"Document\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tid: \"test-id-0:0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdocumentId: \"test-id-0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdocumentCode: \"unece:DocumentCodeList#705\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdocumentRevision: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\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\t\t\t\ttype: \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"bill-of-lading\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\tblobHash: \"sha256:E3Duqrp6bHojSx+CzDttAToAiP1eFkCDAPBbKLABVGM=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"blob:memory:1370eeaaba7a6c7a234b1f82cc3b6d013a0088fd5e16408300f05b28b0015463\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T04:13:20.000Z\",\n\t\t\t\t\t\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x0101010101010101010101010101010101010101010101010101010101010101\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x0404040404040404040404040404040404040404040404040404040404040404\"\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}\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 [\n\t\tdocumentManagementCreateRoute,\n\t\tdocumentManagementUpdateRoute,\n\t\tdocumentManagementGetRoute,\n\t\tdocumentManagementGetRevisionRoute,\n\t\tdocumentManagementRemoveRevisionRoute,\n\t\tdocumentManagementQueryRoute\n\t];\n}\n\n/**\n * Create a document as an auditable item 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 documentManagementCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementCreateRequest\n): Promise<ICreatedResponse> {\n\tGuards.object<IDocumentManagementCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementCreateRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\tGuards.stringBase64(ROUTES_SOURCE, nameof(request.body.blob), request.body.blob);\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\tconst id = await component.create(\n\t\trequest.body.documentId,\n\t\trequest.body.documentIdFormat,\n\t\trequest.body.documentCode,\n\t\tConverter.base64ToBytes(request.body.blob),\n\t\trequest.body.annotationObject,\n\t\trequest.body.auditableItemGraphEdges,\n\t\t{\n\t\t\tcreateAttestation: request.body.createAttestation,\n\t\t\taddAlias: request.body.addAlias,\n\t\t\taliasAnnotationObject: request.body.aliasAnnotationObject\n\t\t}\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.created,\n\t\theaders: {\n\t\t\tlocation: id\n\t\t}\n\t};\n}\n\n/**\n * Get the document from the auditable item 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 documentManagementGet(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementGetRequest\n): Promise<IDocumentManagementGetResponse> {\n\tGuards.object<IDocumentManagementGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementGetRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\n\tconst mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tconst result = await component.get(\n\t\trequest.pathParams.auditableItemGraphDocumentId,\n\t\t{\n\t\t\tincludeBlobStorageMetadata: Coerce.boolean(request.query?.includeBlobStorageMetadata),\n\t\t\tincludeBlobStorageData: Coerce.boolean(request.query?.includeBlobStorageData),\n\t\t\tincludeAttestation: Coerce.boolean(request.query?.includeAttestation),\n\t\t\tincludeRemoved: Coerce.boolean(request.query?.includeRemoved),\n\t\t\textractRuleGroupId: request.query?.extractRuleGroupId,\n\t\t\textractMimeType: request.query?.extractMimeType\n\t\t},\n\t\trequest.query?.cursor,\n\t\tCoerce.integer(request.query?.limit)\n\t);\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * Get the document revision from the auditable item 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 documentManagementGetRevision(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementGetRevisionRequest\n): Promise<IDocumentManagementGetRevisionResponse> {\n\tGuards.object<IDocumentManagementGetRevisionRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementGetRevisionRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\n\tconst revision = Coerce.integer(request.pathParams.revision);\n\tGuards.integer(ROUTES_SOURCE, nameof(revision), revision);\n\n\tconst mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tconst result = await component.getRevision(\n\t\trequest.pathParams.auditableItemGraphDocumentId,\n\t\trevision,\n\t\t{\n\t\t\tincludeBlobStorageMetadata: Coerce.boolean(request.query?.includeBlobStorageMetadata),\n\t\t\tincludeBlobStorageData: Coerce.boolean(request.query?.includeBlobStorageData),\n\t\t\tincludeAttestation: Coerce.boolean(request.query?.includeAttestation),\n\t\t\textractRuleGroupId: request.query?.extractRuleGroupId,\n\t\t\textractMimeType: request.query?.extractMimeType\n\t\t}\n\t);\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * Update the document from the auditable item 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 documentManagementUpdate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementUpdateRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IDocumentManagementUpdateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementUpdateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tawait component.update(\n\t\trequest.pathParams.auditableItemGraphDocumentId,\n\t\tIs.stringValue(request.body.blob) ? Converter.base64ToBytes(request.body.blob) : undefined,\n\t\trequest.body.annotationObject,\n\t\trequest.body.auditableItemGraphEdges\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Remove the document from the auditable item 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 documentManagementRemove(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementRemoveRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IDocumentManagementRemoveRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementRemoveRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\tconst revision = Coerce.number(request.pathParams.revision);\n\tGuards.integer(ROUTES_SOURCE, nameof(request.pathParams.revision), revision);\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tawait component.removeRevision(request.pathParams.auditableItemGraphDocumentId, revision);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Query the documents from an auditable item 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 documentManagementQuery(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementQueryRequest\n): Promise<IDocumentManagementQueryResponse> {\n\tGuards.object<IDocumentManagementQueryRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementQueryRequest[\"query\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.query),\n\t\trequest.query\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.query.documentId), request.query.documentId);\n\n\tconst mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tconst result = await component.query(\n\t\trequest.query.documentId,\n\t\trequest.query?.cursor,\n\t\tCoerce.integer(request.query?.limit)\n\t);\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n"]}
1
+ {"version":3,"file":"documentManagementRoutes.js","sourceRoot":"","sources":["../../src/documentManagementRoutes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type {\n\tICreatedResponse,\n\tIHttpRequestContext,\n\tINoContentResponse,\n\tINotFoundResponse,\n\tIRestRoute,\n\tITag\n} from \"@twin.org/api-models\";\nimport {\n\tAuditableItemGraphContexts,\n\tAuditableItemGraphTypes\n} from \"@twin.org/auditable-item-graph-models\";\nimport { Coerce, ComponentFactory, Converter, Guards, Is } from \"@twin.org/core\";\nimport {\n\tDocumentContexts,\n\tDocumentTypes,\n\ttype IDocumentManagementGetRevisionRequest,\n\ttype IDocumentManagementGetRevisionResponse,\n\ttype IDocumentManagementComponent,\n\ttype IDocumentManagementCreateRequest,\n\ttype IDocumentManagementGetRequest,\n\ttype IDocumentManagementGetResponse,\n\ttype IDocumentManagementQueryRequest,\n\ttype IDocumentManagementQueryResponse,\n\ttype IDocumentManagementRemoveRequest,\n\ttype IDocumentManagementUpdateRequest\n} from \"@twin.org/document-management-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport { SchemaOrgContexts, SchemaOrgTypes } from \"@twin.org/standards-schema-org\";\nimport { UneceDocumentCodeList } from \"@twin.org/standards-unece\";\nimport { HeaderTypes, HttpStatusCode, MimeTypes } from \"@twin.org/web\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"documentManagementStorageRoutes\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const tagsDocumentManagement: ITag[] = [\n\t{\n\t\tname: \"Document Management\",\n\t\tdescription: \"Endpoints which are modelled to access a document management contract.\"\n\t}\n];\n\n/**\n * The REST routes for document management.\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 generateRestRoutesDocumentManagement(\n\tbaseRouteName: string,\n\tcomponentName: string\n): IRestRoute[] {\n\tconst documentManagementCreateRoute: IRestRoute<\n\t\tIDocumentManagementCreateRequest,\n\t\tICreatedResponse\n\t> = {\n\t\toperationId: \"DocumentManagementSet\",\n\t\tsummary:\n\t\t\t\"Store a document in an auditable item graph vertex and add its content to blob storage.\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\tdocumentCode: UneceDocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\tblob: \"SGVsbG8gV29ybGQ=\",\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\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tcreateAttestation: true\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: \"DocumentManagementCreateResponseExample\",\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:123456\"\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 documentManagementUpdateRoute: IRestRoute<\n\t\tIDocumentManagementUpdateRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"DocumentManagementUpdate\",\n\t\tsummary:\n\t\t\t\"Update a document in an auditable item graph vertex and add its content to blob storage.\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"PUT\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementUpdate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementUpdateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementUpdateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:123456\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tblob: \"SGVsbG8gV29ybGQ=\",\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\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\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\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementCreateResponseExample\",\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\tconst documentManagementGetRoute: IRestRoute<\n\t\tIDocumentManagementGetRequest,\n\t\tIDocumentManagementGetResponse\n\t> = {\n\t\toperationId: \"DocumentManagementGet\",\n\t\tsummary: \"Get the data for a document from document management\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementGet(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementGetRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:123456\"\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<IDocumentManagementGetResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementGetResponseExample\",\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.Namespace,\n\t\t\t\t\t\t\t\t\tDocumentContexts.Namespace,\n\t\t\t\t\t\t\t\t\tDocumentContexts.NamespaceCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: SchemaOrgTypes.ItemList,\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\tDocumentContexts.Namespace,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.NamespaceCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Namespace\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\t\t\tdocumentCode: UneceDocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\t\t\tdocumentRevision: 0,\n\t\t\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\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\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\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<IDocumentManagementGetResponse>(),\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: \"DocumentManagementGetResponseExample\",\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.Namespace,\n\t\t\t\t\t\t\t\t\tDocumentContexts.Namespace,\n\t\t\t\t\t\t\t\t\tDocumentContexts.NamespaceCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: SchemaOrgTypes.ItemList,\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\tDocumentContexts.Namespace,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.NamespaceCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Namespace\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\t\t\tdocumentCode: UneceDocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\t\t\tdocumentRevision: 0,\n\t\t\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\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\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\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<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementGetRevisionRoute: IRestRoute<\n\t\tIDocumentManagementGetRevisionRequest,\n\t\tIDocumentManagementGetRevisionResponse\n\t> = {\n\t\toperationId: \"DocumentManagementGetRevision\",\n\t\tsummary: \"Get the data for a document revision from document management\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId/:revision`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementGetRevision(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementGetRevisionRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:123456\",\n\t\t\t\t\t\t\trevision: \"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<IDocumentManagementGetRevisionResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementGetRevisionResponseExample\",\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\tDocumentContexts.Namespace,\n\t\t\t\t\t\t\t\t\tDocumentContexts.NamespaceCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Namespace\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\tdocumentCode: UneceDocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\tdocumentRevision: 1,\n\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\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\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\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<IDocumentManagementGetRevisionResponse>(),\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: \"DocumentManagementGetRevisionResponseExample\",\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\tDocumentContexts.Namespace,\n\t\t\t\t\t\t\t\t\tDocumentContexts.NamespaceCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Namespace\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\tdocumentCode: UneceDocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\tdocumentRevision: 1,\n\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\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\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\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<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementRemoveRevisionRoute: IRestRoute<\n\t\tIDocumentManagementRemoveRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"DocumentManagementRemove\",\n\t\tsummary: \"Remove an document from an auditable item graph vertex\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"DELETE\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId/:revision`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementRemove(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementRemoveRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementRemoveRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:1234\",\n\t\t\t\t\t\t\trevision: \"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<INoContentResponse>()\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementQueryRoute: IRestRoute<\n\t\tIDocumentManagementQueryRequest,\n\t\tIDocumentManagementQueryResponse\n\t> = {\n\t\toperationId: \"DocumentManagementQuery\",\n\t\tsummary: \"Query the items from an auditable item graph vertex\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementQuery(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementQueryRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementQueryRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tdocumentId: \"2721000\"\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<IDocumentManagementQueryResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementQueryResponseExample\",\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\": [SchemaOrgContexts.Namespace, AuditableItemGraphContexts.Namespace],\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.Namespace,\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.NamespaceCommon\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tid: \"aig:c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7\",\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T04:13:20.000Z\",\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\": [AuditableItemGraphContexts.Namespace],\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"test-id-0\",\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\tdateCreated: \"2024-08-22T04:13:20.000Z\"\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\tresources: [\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\": AuditableItemGraphContexts.Namespace,\n\t\t\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Resource,\n\t\t\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T04:13:20.000Z\",\n\t\t\t\t\t\t\t\t\t\t\t\tresourceObject: {\n\t\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\t\t\"https://schema.twindev.org/documents/\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"https://schema.twindev.org/common/\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"https://schema.org\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"Document\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tid: \"test-id-0:0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdocumentId: \"test-id-0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdocumentCode: \"unece:DocumentCodeList#705\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdocumentRevision: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\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\t\t\t\ttype: \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"bill-of-lading\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\tblobHash: \"sha256:E3Duqrp6bHojSx+CzDttAToAiP1eFkCDAPBbKLABVGM=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"blob:memory:1370eeaaba7a6c7a234b1f82cc3b6d013a0088fd5e16408300f05b28b0015463\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T04:13:20.000Z\",\n\t\t\t\t\t\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x0101010101010101010101010101010101010101010101010101010101010101\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x0404040404040404040404040404040404040404040404040404040404040404\"\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}\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 [\n\t\tdocumentManagementCreateRoute,\n\t\tdocumentManagementUpdateRoute,\n\t\tdocumentManagementGetRoute,\n\t\tdocumentManagementGetRevisionRoute,\n\t\tdocumentManagementRemoveRevisionRoute,\n\t\tdocumentManagementQueryRoute\n\t];\n}\n\n/**\n * Create a document as an auditable item 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 documentManagementCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementCreateRequest\n): Promise<ICreatedResponse> {\n\tGuards.object<IDocumentManagementCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementCreateRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\tGuards.stringBase64(ROUTES_SOURCE, nameof(request.body.blob), request.body.blob);\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\tconst id = await component.create(\n\t\trequest.body.documentId,\n\t\trequest.body.documentIdFormat,\n\t\trequest.body.documentCode,\n\t\tConverter.base64ToBytes(request.body.blob),\n\t\trequest.body.annotationObject,\n\t\trequest.body.auditableItemGraphEdges,\n\t\t{\n\t\t\tcreateAttestation: request.body.createAttestation,\n\t\t\taddAlias: request.body.addAlias,\n\t\t\taliasAnnotationObject: request.body.aliasAnnotationObject\n\t\t}\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.created,\n\t\theaders: {\n\t\t\tlocation: id\n\t\t}\n\t};\n}\n\n/**\n * Get the document from the auditable item 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 documentManagementGet(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementGetRequest\n): Promise<IDocumentManagementGetResponse> {\n\tGuards.object<IDocumentManagementGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementGetRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\n\tconst mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tconst result = await component.get(\n\t\trequest.pathParams.auditableItemGraphDocumentId,\n\t\t{\n\t\t\tincludeBlobStorageMetadata: Coerce.boolean(request.query?.includeBlobStorageMetadata),\n\t\t\tincludeBlobStorageData: Coerce.boolean(request.query?.includeBlobStorageData),\n\t\t\tincludeAttestation: Coerce.boolean(request.query?.includeAttestation),\n\t\t\tincludeRemoved: Coerce.boolean(request.query?.includeRemoved),\n\t\t\textractRuleGroupId: request.query?.extractRuleGroupId,\n\t\t\textractMimeType: request.query?.extractMimeType\n\t\t},\n\t\trequest.query?.cursor,\n\t\tCoerce.integer(request.query?.limit)\n\t);\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * Get the document revision from the auditable item 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 documentManagementGetRevision(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementGetRevisionRequest\n): Promise<IDocumentManagementGetRevisionResponse> {\n\tGuards.object<IDocumentManagementGetRevisionRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementGetRevisionRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\n\tconst revision = Coerce.integer(request.pathParams.revision);\n\tGuards.integer(ROUTES_SOURCE, nameof(revision), revision);\n\n\tconst mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tconst result = await component.getRevision(\n\t\trequest.pathParams.auditableItemGraphDocumentId,\n\t\trevision,\n\t\t{\n\t\t\tincludeBlobStorageMetadata: Coerce.boolean(request.query?.includeBlobStorageMetadata),\n\t\t\tincludeBlobStorageData: Coerce.boolean(request.query?.includeBlobStorageData),\n\t\t\tincludeAttestation: Coerce.boolean(request.query?.includeAttestation),\n\t\t\textractRuleGroupId: request.query?.extractRuleGroupId,\n\t\t\textractMimeType: request.query?.extractMimeType\n\t\t}\n\t);\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * Update the document from the auditable item 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 documentManagementUpdate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementUpdateRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IDocumentManagementUpdateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementUpdateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tawait component.update(\n\t\trequest.pathParams.auditableItemGraphDocumentId,\n\t\tIs.stringValue(request.body.blob) ? Converter.base64ToBytes(request.body.blob) : undefined,\n\t\trequest.body.annotationObject,\n\t\trequest.body.auditableItemGraphEdges\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Remove the document from the auditable item 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 documentManagementRemove(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementRemoveRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IDocumentManagementRemoveRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementRemoveRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\tconst revision = Coerce.number(request.pathParams.revision);\n\tGuards.integer(ROUTES_SOURCE, nameof(request.pathParams.revision), revision);\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tawait component.removeRevision(request.pathParams.auditableItemGraphDocumentId, revision);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Query the documents from an auditable item 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 documentManagementQuery(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementQueryRequest\n): Promise<IDocumentManagementQueryResponse> {\n\tGuards.object<IDocumentManagementQueryRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementQueryRequest[\"query\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.query),\n\t\trequest.query\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.query.documentId), request.query.documentId);\n\n\tconst mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tconst result = await component.query(\n\t\trequest.query.documentId,\n\t\trequest.query?.cursor,\n\t\tCoerce.integer(request.query?.limit)\n\t);\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n"]}
@@ -7,7 +7,7 @@ import { Sha256 } from "@twin.org/crypto";
7
7
  import { JsonLdProcessor } from "@twin.org/data-json-ld";
8
8
  import { DocumentContexts, DocumentTypes } from "@twin.org/document-management-models";
9
9
  import { SchemaOrgContexts, SchemaOrgDataTypes, SchemaOrgTypes } from "@twin.org/standards-schema-org";
10
- import { DocumentCodeList } from "@twin.org/standards-unece";
10
+ import { UneceDocumentCodeList } from "@twin.org/standards-unece";
11
11
  /**
12
12
  * Service for performing document management operations.
13
13
  */
@@ -72,7 +72,7 @@ export class DocumentManagementService {
72
72
  */
73
73
  async create(documentId, documentIdFormat, documentCode, blob, annotationObject, auditableItemGraphEdges, options) {
74
74
  Guards.stringValue(DocumentManagementService.CLASS_NAME, "documentId", documentId);
75
- Guards.arrayOneOf(DocumentManagementService.CLASS_NAME, "documentCode", documentCode, Object.values(DocumentCodeList));
75
+ Guards.arrayOneOf(DocumentManagementService.CLASS_NAME, "documentCode", documentCode, Object.values(UneceDocumentCodeList));
76
76
  Guards.uint8Array(DocumentManagementService.CLASS_NAME, "blob", blob);
77
77
  const contextIds = await ContextIdStore.getContextIds();
78
78
  try {
@@ -87,7 +87,7 @@ export class DocumentManagementService {
87
87
  if (options?.addAlias ?? true) {
88
88
  documentVertex.aliases ??= [];
89
89
  documentVertex.aliases.push({
90
- "@context": AuditableItemGraphContexts.ContextRoot,
90
+ "@context": AuditableItemGraphContexts.Namespace,
91
91
  type: AuditableItemGraphTypes.Alias,
92
92
  id: documentId,
93
93
  aliasFormat: documentIdFormat,
@@ -98,9 +98,9 @@ export class DocumentManagementService {
98
98
  const blobStorageId = await this._blobStorageComponent.create(Converter.bytesToBase64(blob));
99
99
  const currentRevision = {
100
100
  "@context": [
101
- DocumentContexts.ContextRoot,
102
- DocumentContexts.ContextRootCommon,
103
- SchemaOrgContexts.ContextRoot
101
+ DocumentContexts.Namespace,
102
+ DocumentContexts.NamespaceCommon,
103
+ SchemaOrgContexts.Namespace
104
104
  ],
105
105
  type: DocumentTypes.Document,
106
106
  id: this.createDocumentId(documentId, 0),
@@ -121,7 +121,7 @@ export class DocumentManagementService {
121
121
  // Add the new revision in to the vertex
122
122
  documentVertex.resources ??= [];
123
123
  documentVertex.resources.push({
124
- "@context": AuditableItemGraphContexts.ContextRoot,
124
+ "@context": AuditableItemGraphContexts.Namespace,
125
125
  type: AuditableItemGraphTypes.Resource,
126
126
  resourceObject: currentRevision
127
127
  });
@@ -198,7 +198,7 @@ export class DocumentManagementService {
198
198
  newRevision.attestationId = await this.createAttestation(newRevision);
199
199
  }
200
200
  documentVertex.resources.push({
201
- "@context": AuditableItemGraphContexts.ContextRoot,
201
+ "@context": AuditableItemGraphContexts.Namespace,
202
202
  type: AuditableItemGraphTypes.Resource,
203
203
  resourceObject: newRevision
204
204
  });
@@ -373,7 +373,7 @@ export class DocumentManagementService {
373
373
  }
374
374
  else {
375
375
  const vertexEdge = {
376
- "@context": AuditableItemGraphContexts.ContextRoot,
376
+ "@context": AuditableItemGraphContexts.Namespace,
377
377
  type: AuditableItemGraphTypes.Edge,
378
378
  targetId: aigEdge.targetId,
379
379
  edgeRelationships: ["document"]
@@ -422,7 +422,7 @@ export class DocumentManagementService {
422
422
  const hasEdge = connected.edges?.some(e => e.targetId === auditableItemGraphDocumentId);
423
423
  if (!hasEdge) {
424
424
  const vertexEdge = {
425
- "@context": AuditableItemGraphContexts.ContextRoot,
425
+ "@context": AuditableItemGraphContexts.Namespace,
426
426
  type: AuditableItemGraphTypes.Edge,
427
427
  targetId: auditableItemGraphDocumentId,
428
428
  edgeRelationships: ["document"]
@@ -437,7 +437,7 @@ export class DocumentManagementService {
437
437
  if (Is.empty(alias)) {
438
438
  // No existing alias, so create one
439
439
  const vertexAlias = {
440
- "@context": AuditableItemGraphContexts.ContextRoot,
440
+ "@context": AuditableItemGraphContexts.Namespace,
441
441
  type: AuditableItemGraphTypes.Alias,
442
442
  id: documentId,
443
443
  aliasFormat: documentIdFormat,
@@ -516,9 +516,9 @@ export class DocumentManagementService {
516
516
  async getDocumentsFromVertex(documentVertex, options, cursor, limit) {
517
517
  const docList = {
518
518
  "@context": [
519
- SchemaOrgContexts.ContextRoot,
520
- DocumentContexts.ContextRoot,
521
- DocumentContexts.ContextRootCommon
519
+ SchemaOrgContexts.Namespace,
520
+ DocumentContexts.Namespace,
521
+ DocumentContexts.NamespaceCommon
522
522
  ],
523
523
  type: SchemaOrgTypes.ItemList,
524
524
  [SchemaOrgTypes.ItemListElement]: []
@@ -548,8 +548,8 @@ export class DocumentManagementService {
548
548
  });
549
549
  if (blobRequired) {
550
550
  document.blobStorageEntry = blobEntry;
551
- if (!docList["@context"].includes(BlobStorageContexts.ContextRoot)) {
552
- docList["@context"].push(BlobStorageContexts.ContextRoot);
551
+ if (!docList["@context"].includes(BlobStorageContexts.Namespace)) {
552
+ docList["@context"].push(BlobStorageContexts.Namespace);
553
553
  }
554
554
  }
555
555
  if (Is.stringValue(options?.extractRuleGroupId) && Is.stringValue(blobEntry.blob)) {
@@ -568,8 +568,8 @@ export class DocumentManagementService {
568
568
  if (includeAttestation && Is.stringValue(document.attestationId)) {
569
569
  const attestationInformation = await this._attestationComponent.get(document.attestationId);
570
570
  document.attestationInformation = attestationInformation;
571
- if (!docList["@context"].includes(AttestationContexts.ContextRoot)) {
572
- docList["@context"].push(AttestationContexts.ContextRoot);
571
+ if (!docList["@context"].includes(AttestationContexts.Namespace)) {
572
+ docList["@context"].push(AttestationContexts.Namespace);
573
573
  }
574
574
  }
575
575
  }
@@ -593,9 +593,9 @@ export class DocumentManagementService {
593
593
  async createAttestation(document) {
594
594
  const documentAttestation = {
595
595
  "@context": [
596
- DocumentContexts.ContextRoot,
597
- DocumentContexts.ContextRootCommon,
598
- SchemaOrgContexts.ContextRoot
596
+ DocumentContexts.Namespace,
597
+ DocumentContexts.NamespaceCommon,
598
+ SchemaOrgContexts.Namespace
599
599
  ],
600
600
  type: DocumentTypes.DocumentAttestation,
601
601
  id: document.id,