@twin.org/auditable-item-graph-service 0.0.3-next.2 → 0.0.3-next.21
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 +3 -1
- package/dist/es/auditableItemGraphRoutes.js +609 -44
- package/dist/es/auditableItemGraphRoutes.js.map +1 -1
- package/dist/es/auditableItemGraphService.js +714 -159
- package/dist/es/auditableItemGraphService.js.map +1 -1
- package/dist/es/entities/auditableItemGraphAlias.js +8 -0
- package/dist/es/entities/auditableItemGraphAlias.js.map +1 -1
- package/dist/es/entities/auditableItemGraphChangeset.js +8 -0
- package/dist/es/entities/auditableItemGraphChangeset.js.map +1 -1
- package/dist/es/entities/auditableItemGraphVertex.js +8 -0
- package/dist/es/entities/auditableItemGraphVertex.js.map +1 -1
- package/dist/es/models/IAuditableItemGraphServiceConstructorOptions.js.map +1 -1
- package/dist/types/auditableItemGraphRoutes.d.ts +42 -2
- package/dist/types/auditableItemGraphService.d.ts +81 -55
- package/dist/types/entities/auditableItemGraphAlias.d.ts +4 -0
- package/dist/types/entities/auditableItemGraphChangeset.d.ts +4 -0
- package/dist/types/entities/auditableItemGraphVertex.d.ts +4 -0
- package/dist/types/models/IAuditableItemGraphServiceConstructorOptions.d.ts +4 -0
- package/docs/changelog.md +370 -71
- package/docs/examples.md +241 -1
- package/docs/open-api/spec.json +1218 -220
- package/docs/reference/classes/AuditableItemGraphAlias.md +18 -10
- package/docs/reference/classes/AuditableItemGraphChangeset.md +16 -8
- package/docs/reference/classes/AuditableItemGraphEdge.md +10 -10
- package/docs/reference/classes/AuditableItemGraphPatch.md +6 -6
- package/docs/reference/classes/AuditableItemGraphResource.md +9 -9
- package/docs/reference/classes/AuditableItemGraphService.md +221 -59
- package/docs/reference/classes/AuditableItemGraphVertex.md +26 -18
- package/docs/reference/functions/auditableItemGraphChangesetGet.md +31 -0
- package/docs/reference/functions/auditableItemGraphChangesetList.md +31 -0
- package/docs/reference/functions/auditableItemGraphUpdate.md +1 -1
- package/docs/reference/functions/auditableItemGraphUpdatePartial.md +31 -0
- package/docs/reference/functions/auditableItemGraphVersionGet.md +31 -0
- package/docs/reference/functions/auditableItemGraphVersionList.md +31 -0
- package/docs/reference/index.md +5 -0
- package/docs/reference/interfaces/IAuditableItemGraphServiceConstructorOptions.md +18 -10
- package/locales/en.json +7 -2
- package/package.json +6 -6
package/docs/examples.md
CHANGED
|
@@ -1 +1,241 @@
|
|
|
1
|
-
#
|
|
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
|
+
```
|