@twin.org/auditable-item-stream-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 +2 -2
- package/dist/es/auditableItemStreamRoutes.js +471 -130
- package/dist/es/auditableItemStreamRoutes.js.map +1 -1
- package/dist/es/auditableItemStreamService.js +330 -138
- package/dist/es/auditableItemStreamService.js.map +1 -1
- package/dist/es/entities/auditableItemStream.js +20 -6
- package/dist/es/entities/auditableItemStream.js.map +1 -1
- package/dist/es/models/IAuditableItemStreamServiceConstructorOptions.js.map +1 -1
- package/dist/es/models/IAuditableItemStreamServiceContext.js.map +1 -1
- package/dist/types/auditableItemStreamRoutes.d.ts +33 -1
- package/dist/types/auditableItemStreamService.d.ts +44 -37
- package/dist/types/entities/auditableItemStream.d.ts +12 -3
- package/dist/types/models/IAuditableItemStreamServiceConstructorOptions.d.ts +4 -0
- package/dist/types/models/IAuditableItemStreamServiceContext.d.ts +4 -0
- package/docs/changelog.md +355 -77
- package/docs/examples.md +211 -1
- package/docs/open-api/spec.json +839 -177
- package/docs/reference/classes/AuditableItemStream.md +32 -16
- package/docs/reference/classes/AuditableItemStreamEntry.md +13 -13
- package/docs/reference/classes/AuditableItemStreamService.md +107 -84
- package/docs/reference/functions/auditableItemStreamClose.md +31 -0
- package/docs/reference/functions/auditableItemStreamListEntriesNoStream.md +31 -0
- package/docs/reference/functions/auditableItemStreamListEntryObjectsNoStream.md +31 -0
- package/docs/reference/functions/auditableItemStreamRemoveProof.md +31 -0
- package/docs/reference/index.md +4 -0
- package/docs/reference/interfaces/IAuditableItemStreamServiceConfig.md +2 -2
- package/docs/reference/interfaces/IAuditableItemStreamServiceConstructorOptions.md +18 -10
- package/locales/en.json +6 -1
- package/package.json +6 -5
package/docs/examples.md
CHANGED
|
@@ -1 +1,211 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Auditable Item Stream Service Examples
|
|
2
|
+
|
|
3
|
+
Use these examples to wire the service with your storage components and run full stream and entry lifecycles.
|
|
4
|
+
|
|
5
|
+
## AuditableItemStreamService
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { AuditableItemStreamService, initSchema } from '@twin.org/auditable-item-stream-service';
|
|
9
|
+
|
|
10
|
+
initSchema();
|
|
11
|
+
|
|
12
|
+
const service = new AuditableItemStreamService({
|
|
13
|
+
immutableProofComponentType: 'immutable-proof',
|
|
14
|
+
streamEntityStorageType: 'auditable-item-stream',
|
|
15
|
+
streamEntryEntityStorageType: 'auditable-item-stream-entry'
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
console.log(service.className()); // AuditableItemStreamService
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { AuditableItemStreamService } from '@twin.org/auditable-item-stream-service';
|
|
23
|
+
|
|
24
|
+
const service = new AuditableItemStreamService({
|
|
25
|
+
immutableProofComponentType: 'immutable-proof',
|
|
26
|
+
streamEntityStorageType: 'auditable-item-stream',
|
|
27
|
+
streamEntryEntityStorageType: 'auditable-item-stream-entry'
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const streamId = await service.create(
|
|
31
|
+
{
|
|
32
|
+
annotationObject: {
|
|
33
|
+
'@context': 'https://schema.org',
|
|
34
|
+
'@type': 'Project',
|
|
35
|
+
name: 'Quarterly Assurance'
|
|
36
|
+
},
|
|
37
|
+
entries: [
|
|
38
|
+
{
|
|
39
|
+
entryObject: {
|
|
40
|
+
'@context': 'https://schema.org',
|
|
41
|
+
'@type': 'Event',
|
|
42
|
+
name: 'Project opened'
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
immutableInterval: 3
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
const stream = await service.get(streamId, {
|
|
53
|
+
includeEntries: true,
|
|
54
|
+
verifyStream: true,
|
|
55
|
+
verifyEntries: true
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
await service.update({
|
|
59
|
+
id: streamId,
|
|
60
|
+
annotationObject: {
|
|
61
|
+
'@context': 'https://schema.org',
|
|
62
|
+
'@type': 'Project',
|
|
63
|
+
name: 'Quarterly Assurance Updated'
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
console.log(stream.id); // ais:...
|
|
68
|
+
console.log(stream.numberOfItems); // 1
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
import { AuditableItemStreamService } from '@twin.org/auditable-item-stream-service';
|
|
73
|
+
import { ComparisonOperator, SortDirection } from '@twin.org/entity';
|
|
74
|
+
|
|
75
|
+
const service = new AuditableItemStreamService({
|
|
76
|
+
immutableProofComponentType: 'immutable-proof',
|
|
77
|
+
streamEntityStorageType: 'auditable-item-stream',
|
|
78
|
+
streamEntryEntityStorageType: 'auditable-item-stream-entry'
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
const streams = await service.query(
|
|
82
|
+
[
|
|
83
|
+
{
|
|
84
|
+
property: 'organizationIdentity',
|
|
85
|
+
comparison: ComparisonOperator.Equals,
|
|
86
|
+
value: 'did:iota:org:123'
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
'dateCreated',
|
|
90
|
+
SortDirection.Descending,
|
|
91
|
+
['id', 'dateCreated', 'dateModified', 'numberOfItems'],
|
|
92
|
+
'cursor:page-1',
|
|
93
|
+
10
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
const entries = await service.getEntries('ais:0f4f9de65dc44f31b4a474a0cc93ce69', {
|
|
97
|
+
includeDeleted: false,
|
|
98
|
+
verifyEntries: true,
|
|
99
|
+
limit: 10,
|
|
100
|
+
order: SortDirection.Ascending
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
const entryObjects = await service.getEntryObjects('ais:0f4f9de65dc44f31b4a474a0cc93ce69', {
|
|
104
|
+
includeDeleted: true,
|
|
105
|
+
limit: 10,
|
|
106
|
+
order: SortDirection.Descending
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
console.log(streams.entries.itemListElement.length); // 10
|
|
110
|
+
console.log(entries.entries.itemListElement.length); // 10
|
|
111
|
+
console.log(entryObjects.entries.itemListElement.length); // 10
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
```typescript
|
|
115
|
+
import { AuditableItemStreamService } from '@twin.org/auditable-item-stream-service';
|
|
116
|
+
|
|
117
|
+
const service = new AuditableItemStreamService({
|
|
118
|
+
immutableProofComponentType: 'immutable-proof',
|
|
119
|
+
streamEntityStorageType: 'auditable-item-stream',
|
|
120
|
+
streamEntryEntityStorageType: 'auditable-item-stream-entry'
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
const streamId = 'ais:0f4f9de65dc44f31b4a474a0cc93ce69';
|
|
124
|
+
|
|
125
|
+
const entryId = await service.createEntry(streamId, {
|
|
126
|
+
'@context': 'https://schema.org',
|
|
127
|
+
'@type': 'Message',
|
|
128
|
+
text: 'The item passed validation'
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
const entry = await service.getEntry(streamId, entryId, {
|
|
132
|
+
verifyEntry: true
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
const entryObject = await service.getEntryObject(streamId, entryId);
|
|
136
|
+
|
|
137
|
+
await service.updateEntry(streamId, entryId, {
|
|
138
|
+
'@context': 'https://schema.org',
|
|
139
|
+
'@type': 'Message',
|
|
140
|
+
text: 'The item passed validation and was approved'
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
await service.removeEntry(streamId, entryId);
|
|
144
|
+
|
|
145
|
+
console.log(entry.id); // ais:0f4f9de65dc44f31b4a474a0cc93ce69:...
|
|
146
|
+
console.log(entryObject['@type']); // Message
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
```typescript
|
|
150
|
+
import { AuditableItemStreamService } from '@twin.org/auditable-item-stream-service';
|
|
151
|
+
|
|
152
|
+
const service = new AuditableItemStreamService({
|
|
153
|
+
immutableProofComponentType: 'immutable-proof',
|
|
154
|
+
streamEntityStorageType: 'auditable-item-stream',
|
|
155
|
+
streamEntryEntityStorageType: 'auditable-item-stream-entry'
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
const streamId = 'ais:0f4f9de65dc44f31b4a474a0cc93ce69';
|
|
159
|
+
|
|
160
|
+
await service.removeVerifiable(streamId);
|
|
161
|
+
await service.remove(streamId);
|
|
162
|
+
|
|
163
|
+
console.log(streamId); // ais:0f4f9de65dc44f31b4a474a0cc93ce69
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## AuditableItemStream
|
|
167
|
+
|
|
168
|
+
```typescript
|
|
169
|
+
import { AuditableItemStream } from '@twin.org/auditable-item-stream-service';
|
|
170
|
+
|
|
171
|
+
const streamEntity = new AuditableItemStream();
|
|
172
|
+
streamEntity.id = '0f4f9de65dc44f31b4a474a0cc93ce69';
|
|
173
|
+
streamEntity.dateCreated = '2026-03-10T09:00:00.000Z';
|
|
174
|
+
streamEntity.dateModified = '2026-03-10T09:05:00.000Z';
|
|
175
|
+
streamEntity.organizationIdentity = 'did:iota:org:123';
|
|
176
|
+
streamEntity.userIdentity = 'did:iota:user:456';
|
|
177
|
+
streamEntity.numberOfItems = 2;
|
|
178
|
+
streamEntity.immutableInterval = 5;
|
|
179
|
+
|
|
180
|
+
console.log(streamEntity.id); // 0f4f9de65dc44f31b4a474a0cc93ce69
|
|
181
|
+
console.log(streamEntity.numberOfItems); // 2
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## AuditableItemStreamEntry
|
|
185
|
+
|
|
186
|
+
```typescript
|
|
187
|
+
import { AuditableItemStreamEntry } from '@twin.org/auditable-item-stream-service';
|
|
188
|
+
|
|
189
|
+
const streamEntryEntity = new AuditableItemStreamEntry();
|
|
190
|
+
streamEntryEntity.id = '1c7dd4e0e2a6428fa2d9b8f02fd5ce39';
|
|
191
|
+
streamEntryEntity.streamId = '0f4f9de65dc44f31b4a474a0cc93ce69';
|
|
192
|
+
streamEntryEntity.dateCreated = '2026-03-10T09:02:00.000Z';
|
|
193
|
+
streamEntryEntity.index = 1;
|
|
194
|
+
streamEntryEntity.entryObject = {
|
|
195
|
+
'@context': 'https://schema.org',
|
|
196
|
+
'@type': 'Message',
|
|
197
|
+
text: 'Second event in the stream'
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
console.log(streamEntryEntity.id); // 1c7dd4e0e2a6428fa2d9b8f02fd5ce39
|
|
201
|
+
console.log(streamEntryEntity.index); // 1
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## Schema Initialisation
|
|
205
|
+
|
|
206
|
+
```typescript
|
|
207
|
+
import { initSchema } from '@twin.org/auditable-item-stream-service';
|
|
208
|
+
|
|
209
|
+
initSchema();
|
|
210
|
+
console.log('Entity schemas registered'); // Entity schemas registered
|
|
211
|
+
```
|