@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.
Files changed (38) hide show
  1. package/README.md +3 -1
  2. package/dist/es/auditableItemGraphRoutes.js +609 -44
  3. package/dist/es/auditableItemGraphRoutes.js.map +1 -1
  4. package/dist/es/auditableItemGraphService.js +714 -159
  5. package/dist/es/auditableItemGraphService.js.map +1 -1
  6. package/dist/es/entities/auditableItemGraphAlias.js +8 -0
  7. package/dist/es/entities/auditableItemGraphAlias.js.map +1 -1
  8. package/dist/es/entities/auditableItemGraphChangeset.js +8 -0
  9. package/dist/es/entities/auditableItemGraphChangeset.js.map +1 -1
  10. package/dist/es/entities/auditableItemGraphVertex.js +8 -0
  11. package/dist/es/entities/auditableItemGraphVertex.js.map +1 -1
  12. package/dist/es/models/IAuditableItemGraphServiceConstructorOptions.js.map +1 -1
  13. package/dist/types/auditableItemGraphRoutes.d.ts +42 -2
  14. package/dist/types/auditableItemGraphService.d.ts +81 -55
  15. package/dist/types/entities/auditableItemGraphAlias.d.ts +4 -0
  16. package/dist/types/entities/auditableItemGraphChangeset.d.ts +4 -0
  17. package/dist/types/entities/auditableItemGraphVertex.d.ts +4 -0
  18. package/dist/types/models/IAuditableItemGraphServiceConstructorOptions.d.ts +4 -0
  19. package/docs/changelog.md +370 -71
  20. package/docs/examples.md +241 -1
  21. package/docs/open-api/spec.json +1218 -220
  22. package/docs/reference/classes/AuditableItemGraphAlias.md +18 -10
  23. package/docs/reference/classes/AuditableItemGraphChangeset.md +16 -8
  24. package/docs/reference/classes/AuditableItemGraphEdge.md +10 -10
  25. package/docs/reference/classes/AuditableItemGraphPatch.md +6 -6
  26. package/docs/reference/classes/AuditableItemGraphResource.md +9 -9
  27. package/docs/reference/classes/AuditableItemGraphService.md +221 -59
  28. package/docs/reference/classes/AuditableItemGraphVertex.md +26 -18
  29. package/docs/reference/functions/auditableItemGraphChangesetGet.md +31 -0
  30. package/docs/reference/functions/auditableItemGraphChangesetList.md +31 -0
  31. package/docs/reference/functions/auditableItemGraphUpdate.md +1 -1
  32. package/docs/reference/functions/auditableItemGraphUpdatePartial.md +31 -0
  33. package/docs/reference/functions/auditableItemGraphVersionGet.md +31 -0
  34. package/docs/reference/functions/auditableItemGraphVersionList.md +31 -0
  35. package/docs/reference/index.md +5 -0
  36. package/docs/reference/interfaces/IAuditableItemGraphServiceConstructorOptions.md +18 -10
  37. package/locales/en.json +7 -2
  38. package/package.json +6 -6
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
+ ```