@twin.org/auditable-item-graph-service 0.0.3-next.11 → 0.0.3-next.13

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/docs/examples.md CHANGED
@@ -1 +1,241 @@
1
- # @twin.org/auditable-item-graph-service - Examples
1
+ # Auditable Item Graph Service Examples
2
+
3
+ Use these examples when you want to run graph operations in process, keep an audit trail, and work with strongly typed entities.
4
+
5
+ ## AuditableItemGraphService
6
+
7
+ ```typescript
8
+ import { AuditableItemGraphService } from '@twin.org/auditable-item-graph-service';
9
+
10
+ const service = new AuditableItemGraphService();
11
+
12
+ console.log(service.className()); // AuditableItemGraphService
13
+ ```
14
+
15
+ ```typescript
16
+ import { AuditableItemGraphService } from '@twin.org/auditable-item-graph-service';
17
+
18
+ const service = new AuditableItemGraphService();
19
+
20
+ const vertexId = await service.create({
21
+ annotationObject: {
22
+ '@context': 'https://www.w3.org/ns/activitystreams',
23
+ type: 'Create',
24
+ actor: {
25
+ type: 'Person',
26
+ id: 'did:example:alice',
27
+ name: 'Alice'
28
+ },
29
+ object: {
30
+ type: 'Note',
31
+ content: 'Initial version'
32
+ }
33
+ },
34
+ aliases: [{ id: 'order-2026-0195', aliasFormat: 'orderRef' }],
35
+ resources: [
36
+ { resourceObject: { '@context': 'https://schema.org', type: 'Thing', name: 'Order 2026-0195' } }
37
+ ]
38
+ });
39
+
40
+ await service.update({
41
+ id: vertexId,
42
+ aliases: [{ id: 'order-2026-0195', aliasFormat: 'orderRef' }],
43
+ resources: [
44
+ {
45
+ id: 'resource-order',
46
+ resourceObject: {
47
+ '@context': 'https://schema.org',
48
+ type: 'Thing',
49
+ name: 'Order 2026-0195 (amended)'
50
+ }
51
+ }
52
+ ],
53
+ edges: [{ targetId: 'aig:018f5a6cfd9444d58c7c2d4df1fd0fff', edgeRelationships: ['derivedFrom'] }]
54
+ });
55
+
56
+ console.log(vertexId); // aig:018f5a6cfd9444d58c7c2d4df1fd0a23
57
+ ```
58
+
59
+ ```typescript
60
+ import { VerifyDepth } from '@twin.org/auditable-item-graph-models';
61
+ import { AuditableItemGraphService } from '@twin.org/auditable-item-graph-service';
62
+
63
+ const service = new AuditableItemGraphService();
64
+ const vertexId = 'aig:018f5a6cfd9444d58c7c2d4df1fd0a23';
65
+
66
+ const vertex = await service.get(vertexId, {
67
+ includeDeleted: false,
68
+ verifySignatureDepth: VerifyDepth.Current
69
+ });
70
+
71
+ const changesetChunk = await service.getChangesets(vertexId, undefined, 10, {
72
+ verifySignatureDepth: VerifyDepth.Current
73
+ });
74
+
75
+ const firstChangeset = changesetChunk.changesets.itemListElement?.[0];
76
+
77
+ if (firstChangeset?.id) {
78
+ const changeset = await service.getChangeset(firstChangeset.id, {
79
+ verifySignatureDepth: VerifyDepth.Current
80
+ });
81
+
82
+ console.log(vertex.id); // aig:018f5a6cfd9444d58c7c2d4df1fd0a23
83
+ console.log(changeset.id); // aig:018f5a6cfd9444d58c7c2d4df1fd0a23:changeset:018f5a6cfd9444d58c7c2d4df1fd0b10
84
+ }
85
+ ```
86
+
87
+ ```typescript
88
+ import { ComparisonOperator, SortDirection } from '@twin.org/entity';
89
+ import { AuditableItemGraphService } from '@twin.org/auditable-item-graph-service';
90
+
91
+ const service = new AuditableItemGraphService();
92
+
93
+ const queryResult = await service.query(
94
+ {
95
+ id: 'order-2026',
96
+ idMode: 'alias',
97
+ idExact: false,
98
+ resourceTypes: ['Thing']
99
+ },
100
+ [
101
+ {
102
+ field: 'dateCreated',
103
+ comparison: ComparisonOperator.GreaterThan,
104
+ value: '2026-01-01T00:00:00.000Z'
105
+ }
106
+ ],
107
+ 'dateCreated',
108
+ SortDirection.Descending,
109
+ ['id', 'dateCreated', 'aliases'],
110
+ undefined,
111
+ 25
112
+ );
113
+
114
+ console.log(queryResult.entries.itemListElement?.length ?? 0); // 3
115
+
116
+ await service.removeVerifiable('aig:018f5a6cfd9444d58c7c2d4df1fd0a23');
117
+ ```
118
+
119
+ ## AuditableItemGraphVertex
120
+
121
+ ```typescript
122
+ import {
123
+ AuditableItemGraphAlias,
124
+ AuditableItemGraphEdge,
125
+ AuditableItemGraphResource,
126
+ AuditableItemGraphVertex
127
+ } from '@twin.org/auditable-item-graph-service';
128
+
129
+ const alias = new AuditableItemGraphAlias();
130
+ alias.id = 'order-2026-0195';
131
+ alias.aliasFormat = 'orderRef';
132
+ alias.dateCreated = '2026-03-10T09:30:00.000Z';
133
+
134
+ const resource = new AuditableItemGraphResource();
135
+ resource.id = 'resource-order';
136
+ resource.dateCreated = '2026-03-10T09:30:00.000Z';
137
+ resource.resourceObject = {
138
+ '@context': 'https://schema.org',
139
+ type: 'Thing',
140
+ name: 'Order 2026-0195'
141
+ };
142
+
143
+ const edge = new AuditableItemGraphEdge();
144
+ edge.id = 'edge-1';
145
+ edge.dateCreated = '2026-03-10T09:30:00.000Z';
146
+ edge.targetId = 'aig:018f5a6cfd9444d58c7c2d4df1fd0fff';
147
+ edge.edgeRelationships = ['derivedFrom'];
148
+
149
+ const vertex = new AuditableItemGraphVertex();
150
+ vertex.id = '018f5a6cfd9444d58c7c2d4df1fd0a23';
151
+ vertex.organizationIdentity = 'did:web:example.org';
152
+ vertex.dateCreated = '2026-03-10T09:30:00.000Z';
153
+ vertex.aliases = [alias];
154
+ vertex.resources = [resource];
155
+ vertex.edges = [edge];
156
+
157
+ console.log(vertex.aliases?.length ?? 0); // 1
158
+ ```
159
+
160
+ ## AuditableItemGraphChangeset
161
+
162
+ ```typescript
163
+ import {
164
+ AuditableItemGraphChangeset,
165
+ AuditableItemGraphPatch
166
+ } from '@twin.org/auditable-item-graph-service';
167
+
168
+ const patch = new AuditableItemGraphPatch();
169
+ patch.op = 'replace';
170
+ patch.path = '/resources/0/resourceObject/name';
171
+ patch.value = 'Order 2026-0195 (amended)';
172
+
173
+ const changeset = new AuditableItemGraphChangeset();
174
+ changeset.id = '018f5a6cfd9444d58c7c2d4df1fd0b10';
175
+ changeset.vertexId = '018f5a6cfd9444d58c7c2d4df1fd0a23';
176
+ changeset.dateCreated = '2026-03-10T09:40:00.000Z';
177
+ changeset.userIdentity = 'did:web:example.org:users:alice';
178
+ changeset.patches = [patch];
179
+
180
+ console.log(changeset.patches.length); // 1
181
+ ```
182
+
183
+ ## AuditableItemGraphAlias
184
+
185
+ ```typescript
186
+ import { AuditableItemGraphAlias } from '@twin.org/auditable-item-graph-service';
187
+
188
+ const alias = new AuditableItemGraphAlias();
189
+ alias.id = 'order-2026-0195';
190
+ alias.aliasFormat = 'orderRef';
191
+ alias.dateCreated = '2026-03-10T09:30:00.000Z';
192
+
193
+ console.log(alias.id); // order-2026-0195
194
+ ```
195
+
196
+ ## AuditableItemGraphResource
197
+
198
+ ```typescript
199
+ import { AuditableItemGraphResource } from '@twin.org/auditable-item-graph-service';
200
+
201
+ const resource = new AuditableItemGraphResource();
202
+ resource.id = 'resource-order';
203
+ resource.dateCreated = '2026-03-10T09:30:00.000Z';
204
+ resource.resourceObject = {
205
+ '@context': 'https://schema.org',
206
+ type: 'Thing',
207
+ name: 'Order 2026-0195'
208
+ };
209
+
210
+ console.log(resource.id); // resource-order
211
+ ```
212
+
213
+ ## AuditableItemGraphEdge
214
+
215
+ ```typescript
216
+ import { AuditableItemGraphEdge } from '@twin.org/auditable-item-graph-service';
217
+
218
+ const edge = new AuditableItemGraphEdge();
219
+ edge.id = 'edge-1';
220
+ edge.dateCreated = '2026-03-10T09:30:00.000Z';
221
+ edge.targetId = 'aig:018f5a6cfd9444d58c7c2d4df1fd0fff';
222
+ edge.edgeRelationships = ['derivedFrom'];
223
+
224
+ console.log(edge.edgeRelationships[0]); // derivedFrom
225
+ ```
226
+
227
+ ## AuditableItemGraphPatch
228
+
229
+ ```typescript
230
+ import { AuditableItemGraphPatch } from '@twin.org/auditable-item-graph-service';
231
+
232
+ const patch = new AuditableItemGraphPatch();
233
+ patch.op = 'add';
234
+ patch.path = '/aliases/-';
235
+ patch.value = {
236
+ id: 'order-2026-0195',
237
+ aliasFormat: 'orderRef'
238
+ };
239
+
240
+ console.log(patch.op); // add
241
+ ```
@@ -44,6 +44,11 @@
44
44
  "examples": {
45
45
  "auditableItemGraphCreateRequestExample": {
46
46
  "value": {
47
+ "@context": [
48
+ "https://schema.twindev.org/aig/",
49
+ "https://schema.twindev.org/common/"
50
+ ],
51
+ "type": "AuditableItemGraphVertex",
47
52
  "annotationObject": {
48
53
  "@context": "https://schema.org",
49
54
  "@type": "Note",
@@ -51,6 +56,7 @@
51
56
  },
52
57
  "aliases": [
53
58
  {
59
+ "type": "AuditableItemGraphAlias",
54
60
  "id": "bar456",
55
61
  "annotationObject": {
56
62
  "@context": "https://schema.org",
@@ -59,6 +65,7 @@
59
65
  }
60
66
  },
61
67
  {
68
+ "type": "AuditableItemGraphAlias",
62
69
  "id": "foo321",
63
70
  "annotationObject": {
64
71
  "@context": "https://schema.org",
@@ -69,6 +76,7 @@
69
76
  ],
70
77
  "resources": [
71
78
  {
79
+ "type": "AuditableItemGraphResource",
72
80
  "id": "resource1",
73
81
  "resourceObject": {
74
82
  "@context": "https://schema.org",
@@ -77,6 +85,7 @@
77
85
  }
78
86
  },
79
87
  {
88
+ "type": "AuditableItemGraphResource",
80
89
  "id": "resource2",
81
90
  "resourceObject": {
82
91
  "@context": "https://schema.org",
@@ -87,6 +96,7 @@
87
96
  ],
88
97
  "edges": [
89
98
  {
99
+ "type": "AuditableItemGraphEdge",
90
100
  "targetId": "aig:1234567890",
91
101
  "edgeRelationships": [
92
102
  "frenemy"
@@ -98,6 +108,7 @@
98
108
  }
99
109
  },
100
110
  {
111
+ "type": "AuditableItemGraphEdge",
101
112
  "targetId": "aig:45678901234",
102
113
  "edgeRelationships": [
103
114
  "end"
@@ -208,11 +219,16 @@
208
219
  "in": "query",
209
220
  "required": false,
210
221
  "schema": {
211
- "type": "string",
212
- "enum": [
213
- "id",
214
- "alias",
215
- "both"
222
+ "anyOf": [
223
+ {
224
+ "const": "id"
225
+ },
226
+ {
227
+ "const": "alias"
228
+ },
229
+ {
230
+ "const": "both"
231
+ }
216
232
  ]
217
233
  }
218
234
  },
@@ -249,7 +265,6 @@
249
265
  "in": "query",
250
266
  "required": false,
251
267
  "schema": {
252
- "type": "string",
253
268
  "enum": [
254
269
  "dateCreated",
255
270
  "dateModified"
@@ -704,6 +719,11 @@
704
719
  "examples": {
705
720
  "auditableItemGraphUpdateRequestExample": {
706
721
  "value": {
722
+ "@context": [
723
+ "https://schema.twindev.org/aig/",
724
+ "https://schema.twindev.org/common/"
725
+ ],
726
+ "type": "AuditableItemGraphVertex",
707
727
  "annotationObject": {
708
728
  "@context": "https://schema.org",
709
729
  "@type": "Note",
@@ -711,6 +731,7 @@
711
731
  },
712
732
  "aliases": [
713
733
  {
734
+ "type": "AuditableItemGraphAlias",
714
735
  "id": "bar456",
715
736
  "annotationObject": {
716
737
  "@context": "https://schema.org",
@@ -719,6 +740,7 @@
719
740
  }
720
741
  },
721
742
  {
743
+ "type": "AuditableItemGraphAlias",
722
744
  "id": "foo321",
723
745
  "annotationObject": {
724
746
  "@context": "https://schema.org",
@@ -729,6 +751,7 @@
729
751
  ],
730
752
  "resources": [
731
753
  {
754
+ "type": "AuditableItemGraphResource",
732
755
  "id": "resource1",
733
756
  "resourceObject": {
734
757
  "@context": "https://schema.org",
@@ -737,6 +760,7 @@
737
760
  }
738
761
  },
739
762
  {
763
+ "type": "AuditableItemGraphResource",
740
764
  "id": "resource2",
741
765
  "resourceObject": {
742
766
  "@context": "https://schema.org",
@@ -747,6 +771,7 @@
747
771
  ],
748
772
  "edges": [
749
773
  {
774
+ "type": "AuditableItemGraphEdge",
750
775
  "id": "edge1",
751
776
  "targetId": "aig:1234567890",
752
777
  "edgeRelationships": [
@@ -759,6 +784,7 @@
759
784
  }
760
785
  },
761
786
  {
787
+ "type": "AuditableItemGraphEdge",
762
788
  "id": "edge2",
763
789
  "targetId": "aig:45678901234",
764
790
  "edgeRelationships": [
@@ -1366,161 +1392,155 @@
1366
1392
  "components": {
1367
1393
  "schemas": {
1368
1394
  "AuditableItemGraphCreateRequest": {
1395
+ "description": "The data to be used in the vertex.",
1369
1396
  "type": "object",
1370
1397
  "properties": {
1398
+ "dateCreated": {
1399
+ "type": "string",
1400
+ "description": "The date/time of when the element was created."
1401
+ },
1402
+ "dateModified": {
1403
+ "type": "string",
1404
+ "description": "The date/time of when the element was modified."
1405
+ },
1406
+ "dateDeleted": {
1407
+ "type": "string",
1408
+ "description": "The date/time of when the element was deleted, as we never actually remove items."
1409
+ },
1410
+ "@context": {
1411
+ "type": "array",
1412
+ "prefixItems": [
1413
+ {
1414
+ "const": "https://schema.twindev.org/aig/"
1415
+ },
1416
+ {
1417
+ "const": "https://schema.twindev.org/common/"
1418
+ }
1419
+ ],
1420
+ "items": {
1421
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdContextDefinitionElement"
1422
+ },
1423
+ "minItems": 2,
1424
+ "description": "JSON-LD Context."
1425
+ },
1426
+ "type": {
1427
+ "const": "AuditableItemGraphVertex",
1428
+ "description": "JSON-LD Type."
1429
+ },
1430
+ "organizationIdentity": {
1431
+ "type": "string",
1432
+ "description": "The identity of the organization which controls the vertex."
1433
+ },
1371
1434
  "annotationObject": {
1372
1435
  "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
1373
1436
  },
1374
1437
  "aliases": {
1375
1438
  "type": "array",
1376
1439
  "items": {
1377
- "type": "object",
1378
- "properties": {
1379
- "id": {
1380
- "type": "string"
1381
- },
1382
- "aliasFormat": {
1383
- "type": "string"
1384
- },
1385
- "unique": {
1386
- "type": "boolean"
1387
- },
1388
- "annotationObject": {
1389
- "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
1390
- }
1391
- },
1392
- "required": [
1393
- "id"
1394
- ],
1395
- "additionalProperties": false
1440
+ "$ref": "https://schema.twindev.org/aig/AuditableItemGraphAlias"
1396
1441
  },
1397
1442
  "description": "Alternative aliases that can be used to identify the vertex."
1398
1443
  },
1399
1444
  "resources": {
1400
1445
  "type": "array",
1401
1446
  "items": {
1402
- "type": "object",
1403
- "properties": {
1404
- "id": {
1405
- "type": "string"
1406
- },
1407
- "resourceObject": {
1408
- "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
1409
- }
1410
- },
1411
- "additionalProperties": false
1447
+ "$ref": "https://schema.twindev.org/aig/AuditableItemGraphResource"
1412
1448
  },
1413
1449
  "description": "The resources attached to the vertex."
1414
1450
  },
1415
1451
  "edges": {
1416
1452
  "type": "array",
1417
1453
  "items": {
1418
- "type": "object",
1419
- "properties": {
1420
- "targetId": {
1421
- "type": "string"
1422
- },
1423
- "edgeRelationships": {
1424
- "type": "array",
1425
- "items": {
1426
- "type": "string"
1427
- }
1428
- },
1429
- "annotationObject": {
1430
- "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
1431
- }
1432
- },
1433
- "required": [
1434
- "targetId",
1435
- "edgeRelationships"
1436
- ],
1437
- "additionalProperties": false
1454
+ "$ref": "https://schema.twindev.org/aig/AuditableItemGraphEdge"
1438
1455
  },
1439
- "description": "The edges connected to the vertex."
1456
+ "description": "Edges connected to the vertex."
1457
+ },
1458
+ "verified": {
1459
+ "type": "boolean",
1460
+ "description": "Is the vertex verified, will only be populated when verification is requested."
1440
1461
  }
1441
1462
  },
1442
- "description": "The data to be used in the vertex."
1463
+ "required": [
1464
+ "@context",
1465
+ "type"
1466
+ ]
1443
1467
  },
1444
1468
  "AuditableItemGraphUpdateRequest": {
1469
+ "description": "The data to be used in the vertex.",
1445
1470
  "type": "object",
1446
1471
  "properties": {
1472
+ "dateCreated": {
1473
+ "type": "string",
1474
+ "description": "The date/time of when the element was created."
1475
+ },
1476
+ "dateModified": {
1477
+ "type": "string",
1478
+ "description": "The date/time of when the element was modified."
1479
+ },
1480
+ "dateDeleted": {
1481
+ "type": "string",
1482
+ "description": "The date/time of when the element was deleted, as we never actually remove items."
1483
+ },
1484
+ "@context": {
1485
+ "type": "array",
1486
+ "prefixItems": [
1487
+ {
1488
+ "const": "https://schema.twindev.org/aig/"
1489
+ },
1490
+ {
1491
+ "const": "https://schema.twindev.org/common/"
1492
+ }
1493
+ ],
1494
+ "items": {
1495
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdContextDefinitionElement"
1496
+ },
1497
+ "minItems": 2,
1498
+ "description": "JSON-LD Context."
1499
+ },
1500
+ "type": {
1501
+ "const": "AuditableItemGraphVertex",
1502
+ "description": "JSON-LD Type."
1503
+ },
1504
+ "organizationIdentity": {
1505
+ "type": "string",
1506
+ "description": "The identity of the organization which controls the vertex."
1507
+ },
1447
1508
  "annotationObject": {
1448
1509
  "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
1449
1510
  },
1450
1511
  "aliases": {
1451
1512
  "type": "array",
1452
1513
  "items": {
1453
- "type": "object",
1454
- "properties": {
1455
- "id": {
1456
- "type": "string"
1457
- },
1458
- "aliasFormat": {
1459
- "type": "string"
1460
- },
1461
- "unique": {
1462
- "type": "boolean"
1463
- },
1464
- "annotationObject": {
1465
- "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
1466
- }
1467
- },
1468
- "required": [
1469
- "id"
1470
- ],
1471
- "additionalProperties": false
1514
+ "$ref": "https://schema.twindev.org/aig/AuditableItemGraphAlias"
1472
1515
  },
1473
1516
  "description": "Alternative aliases that can be used to identify the vertex."
1474
1517
  },
1475
1518
  "resources": {
1476
1519
  "type": "array",
1477
1520
  "items": {
1478
- "type": "object",
1479
- "properties": {
1480
- "id": {
1481
- "type": "string"
1482
- },
1483
- "resourceObject": {
1484
- "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
1485
- }
1486
- },
1487
- "additionalProperties": false
1521
+ "$ref": "https://schema.twindev.org/aig/AuditableItemGraphResource"
1488
1522
  },
1489
1523
  "description": "The resources attached to the vertex."
1490
1524
  },
1491
1525
  "edges": {
1492
1526
  "type": "array",
1493
1527
  "items": {
1494
- "type": "object",
1495
- "properties": {
1496
- "id": {
1497
- "type": "string"
1498
- },
1499
- "targetId": {
1500
- "type": "string"
1501
- },
1502
- "edgeRelationships": {
1503
- "type": "array",
1504
- "items": {
1505
- "type": "string"
1506
- }
1507
- },
1508
- "annotationObject": {
1509
- "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
1510
- }
1511
- },
1512
- "required": [
1513
- "targetId",
1514
- "edgeRelationships"
1515
- ],
1516
- "additionalProperties": false
1528
+ "$ref": "https://schema.twindev.org/aig/AuditableItemGraphEdge"
1517
1529
  },
1518
- "description": "The edges connected to the vertex."
1530
+ "description": "Edges connected to the vertex."
1531
+ },
1532
+ "verified": {
1533
+ "type": "boolean",
1534
+ "description": "Is the vertex verified, will only be populated when verification is requested."
1519
1535
  }
1520
1536
  },
1521
- "description": "The data to be used in the vertex."
1537
+ "required": [
1538
+ "@context",
1539
+ "type"
1540
+ ]
1522
1541
  },
1523
1542
  "Error": {
1543
+ "description": "Model to describe serialized error.",
1524
1544
  "type": "object",
1525
1545
  "properties": {
1526
1546
  "name": {
@@ -1529,7 +1549,7 @@
1529
1549
  },
1530
1550
  "message": {
1531
1551
  "type": "string",
1532
- "description": "The message for the error."
1552
+ "description": "The message for the error as an i18n key."
1533
1553
  },
1534
1554
  "source": {
1535
1555
  "type": "string",
@@ -1551,43 +1571,37 @@
1551
1571
  "required": [
1552
1572
  "name",
1553
1573
  "message"
1554
- ],
1555
- "description": "Model to describe serialized error."
1574
+ ]
1556
1575
  },
1557
1576
  "SortDirection": {
1577
+ "description": "The sort directions.",
1558
1578
  "anyOf": [
1559
1579
  {
1560
- "type": "string",
1561
1580
  "const": "asc",
1562
1581
  "description": "Ascending."
1563
1582
  },
1564
1583
  {
1565
- "type": "string",
1566
1584
  "const": "desc",
1567
1585
  "description": "Descending."
1568
1586
  }
1569
- ],
1570
- "description": "The sort directions."
1587
+ ]
1571
1588
  },
1572
1589
  "VerifyDepth": {
1590
+ "description": "How deep to verify the signatures.",
1573
1591
  "anyOf": [
1574
1592
  {
1575
- "type": "string",
1576
1593
  "const": "none",
1577
1594
  "description": "Do not verify any signatures."
1578
1595
  },
1579
1596
  {
1580
- "type": "string",
1581
1597
  "const": "current",
1582
1598
  "description": "Verify only the most recent signature."
1583
1599
  },
1584
1600
  {
1585
- "type": "string",
1586
1601
  "const": "all",
1587
1602
  "description": "Verify all the signatures."
1588
1603
  }
1589
- ],
1590
- "description": "How deep to verify the signatures."
1604
+ ]
1591
1605
  }
1592
1606
  },
1593
1607
  "securitySchemes": {