@twin.org/auditable-item-stream-service 0.0.3-next.21 → 0.0.3-next.23
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/dist/es/auditableItemStreamRoutes.js +21 -20
- package/dist/es/auditableItemStreamRoutes.js.map +1 -1
- package/dist/es/auditableItemStreamService.js +21 -14
- package/dist/es/auditableItemStreamService.js.map +1 -1
- package/dist/es/models/IAuditableItemStreamServiceConfig.js.map +1 -1
- package/dist/es/restEntryPoints.js +3 -0
- package/dist/es/restEntryPoints.js.map +1 -1
- package/dist/types/auditableItemStreamRoutes.d.ts +6 -6
- package/dist/types/auditableItemStreamService.d.ts +7 -6
- package/dist/types/models/IAuditableItemStreamServiceConfig.d.ts +4 -0
- package/dist/types/restEntryPoints.d.ts +3 -0
- package/docs/changelog.md +36 -0
- package/docs/open-api/spec.json +2 -2
- package/docs/reference/classes/AuditableItemStreamService.md +8 -6
- package/docs/reference/functions/auditableItemStreamDeleteEntry.md +1 -1
- package/docs/reference/functions/auditableItemStreamList.md +1 -1
- package/docs/reference/functions/auditableItemStreamListEntries.md +1 -1
- package/docs/reference/functions/auditableItemStreamListEntriesNoStream.md +1 -1
- package/docs/reference/functions/auditableItemStreamListEntryObjects.md +1 -1
- package/docs/reference/functions/auditableItemStreamListEntryObjectsNoStream.md +1 -1
- package/docs/reference/interfaces/IAuditableItemStreamServiceConfig.md +8 -0
- package/docs/reference/variables/restEntryPoints.md +2 -0
- package/package.json +2 -2
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
// Copyright 2024 IOTA Stiftung.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0.
|
|
3
|
-
import { HttpParameterHelper } from "@twin.org/api-models";
|
|
3
|
+
import { HttpContextIdKeys, HttpParameterHelper, HttpUrlHelper } from "@twin.org/api-models";
|
|
4
4
|
import { AuditableItemStreamContexts, AuditableItemStreamTypes } from "@twin.org/auditable-item-stream-models";
|
|
5
|
+
import { ContextIdStore } from "@twin.org/context";
|
|
5
6
|
import { Coerce, ComponentFactory, Guards, Is } from "@twin.org/core";
|
|
6
7
|
import { SchemaOrgContexts, SchemaOrgTypes } from "@twin.org/standards-schema-org";
|
|
7
8
|
import { HeaderHelper, HeaderTypes, HttpStatusCode, MimeTypes } from "@twin.org/web";
|
|
8
9
|
/**
|
|
9
|
-
* The source used when communicating
|
|
10
|
+
* The source identifier used when communicating errors from these routes.
|
|
10
11
|
*/
|
|
11
12
|
const ROUTES_SOURCE = "auditableItemStreamRoutes";
|
|
12
13
|
/**
|
|
@@ -1053,7 +1054,6 @@ export async function auditableItemStreamGet(httpRequestContext, componentName,
|
|
|
1053
1054
|
Guards.object(ROUTES_SOURCE, "request", request);
|
|
1054
1055
|
Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
|
|
1055
1056
|
Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
|
|
1056
|
-
const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
|
|
1057
1057
|
const component = ComponentFactory.get(componentName);
|
|
1058
1058
|
const result = await component.get(request.pathParams.id, request.query?.cursor, Coerce.integer(request.query?.limit), {
|
|
1059
1059
|
includeEntries: Coerce.boolean(request.query?.includeEntries),
|
|
@@ -1065,7 +1065,8 @@ export async function auditableItemStreamGet(httpRequestContext, componentName,
|
|
|
1065
1065
|
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
|
|
1066
1066
|
};
|
|
1067
1067
|
if (Is.stringValue(result.cursor)) {
|
|
1068
|
-
|
|
1068
|
+
const contextIds = await ContextIdStore.getContextIds();
|
|
1069
|
+
headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
|
|
1069
1070
|
}
|
|
1070
1071
|
return {
|
|
1071
1072
|
headers,
|
|
@@ -1128,7 +1129,7 @@ export async function auditableItemStreamClose(httpRequestContext, componentName
|
|
|
1128
1129
|
};
|
|
1129
1130
|
}
|
|
1130
1131
|
/**
|
|
1131
|
-
*
|
|
1132
|
+
* List all streams.
|
|
1132
1133
|
* @param httpRequestContext The request context for the API.
|
|
1133
1134
|
* @param componentName The name of the component to use in the routes.
|
|
1134
1135
|
* @param request The request.
|
|
@@ -1137,14 +1138,14 @@ export async function auditableItemStreamClose(httpRequestContext, componentName
|
|
|
1137
1138
|
export async function auditableItemStreamList(httpRequestContext, componentName, request) {
|
|
1138
1139
|
Guards.object(ROUTES_SOURCE, "request", request);
|
|
1139
1140
|
Guards.object(ROUTES_SOURCE, "request.query", request.query);
|
|
1140
|
-
const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
|
|
1141
1141
|
const component = ComponentFactory.get(componentName);
|
|
1142
1142
|
const result = await component.query(HttpParameterHelper.objectFromString(request.query?.conditions), request.query?.orderBy, request.query?.orderByDirection, HttpParameterHelper.arrayFromString(request.query?.properties), request.query?.cursor, Coerce.integer(request.query?.limit));
|
|
1143
1143
|
const headers = {
|
|
1144
1144
|
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
|
|
1145
1145
|
};
|
|
1146
1146
|
if (Is.stringValue(result.cursor)) {
|
|
1147
|
-
|
|
1147
|
+
const contextIds = await ContextIdStore.getContextIds();
|
|
1148
|
+
headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
|
|
1148
1149
|
}
|
|
1149
1150
|
return {
|
|
1150
1151
|
headers,
|
|
@@ -1174,7 +1175,7 @@ export async function auditableItemStreamCreateEntry(httpRequestContext, compone
|
|
|
1174
1175
|
};
|
|
1175
1176
|
}
|
|
1176
1177
|
/**
|
|
1177
|
-
*
|
|
1178
|
+
* Delete an entry from the stream.
|
|
1178
1179
|
* @param httpRequestContext The request context for the API.
|
|
1179
1180
|
* @param componentName The name of the component to use in the routes.
|
|
1180
1181
|
* @param request The request.
|
|
@@ -1260,7 +1261,7 @@ export async function auditableItemStreamGetEntryObject(httpRequestContext, comp
|
|
|
1260
1261
|
};
|
|
1261
1262
|
}
|
|
1262
1263
|
/**
|
|
1263
|
-
*
|
|
1264
|
+
* List the entries for a stream.
|
|
1264
1265
|
* @param httpRequestContext The request context for the API.
|
|
1265
1266
|
* @param componentName The name of the component to use in the routes.
|
|
1266
1267
|
* @param request The request.
|
|
@@ -1270,7 +1271,6 @@ export async function auditableItemStreamListEntries(httpRequestContext, compone
|
|
|
1270
1271
|
Guards.object(ROUTES_SOURCE, "request", request);
|
|
1271
1272
|
Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
|
|
1272
1273
|
Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
|
|
1273
|
-
const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
|
|
1274
1274
|
const component = ComponentFactory.get(componentName);
|
|
1275
1275
|
const result = await component.getEntries(request.pathParams.id, {
|
|
1276
1276
|
conditions: HttpParameterHelper.objectFromString(request.query?.conditions),
|
|
@@ -1284,7 +1284,8 @@ export async function auditableItemStreamListEntries(httpRequestContext, compone
|
|
|
1284
1284
|
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
|
|
1285
1285
|
};
|
|
1286
1286
|
if (Is.stringValue(result.cursor)) {
|
|
1287
|
-
|
|
1287
|
+
const contextIds = await ContextIdStore.getContextIds();
|
|
1288
|
+
headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
|
|
1288
1289
|
}
|
|
1289
1290
|
return {
|
|
1290
1291
|
headers,
|
|
@@ -1292,7 +1293,7 @@ export async function auditableItemStreamListEntries(httpRequestContext, compone
|
|
|
1292
1293
|
};
|
|
1293
1294
|
}
|
|
1294
1295
|
/**
|
|
1295
|
-
*
|
|
1296
|
+
* List entries across all streams.
|
|
1296
1297
|
* @param httpRequestContext The request context for the API.
|
|
1297
1298
|
* @param componentName The name of the component to use in the routes.
|
|
1298
1299
|
* @param request The request.
|
|
@@ -1300,7 +1301,6 @@ export async function auditableItemStreamListEntries(httpRequestContext, compone
|
|
|
1300
1301
|
*/
|
|
1301
1302
|
export async function auditableItemStreamListEntriesNoStream(httpRequestContext, componentName, request) {
|
|
1302
1303
|
Guards.object(ROUTES_SOURCE, "request", request);
|
|
1303
|
-
const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
|
|
1304
1304
|
const component = ComponentFactory.get(componentName);
|
|
1305
1305
|
const result = await component.getEntries(undefined, {
|
|
1306
1306
|
conditions: HttpParameterHelper.objectFromString(request.query?.conditions),
|
|
@@ -1314,7 +1314,8 @@ export async function auditableItemStreamListEntriesNoStream(httpRequestContext,
|
|
|
1314
1314
|
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
|
|
1315
1315
|
};
|
|
1316
1316
|
if (Is.stringValue(result.cursor)) {
|
|
1317
|
-
|
|
1317
|
+
const contextIds = await ContextIdStore.getContextIds();
|
|
1318
|
+
headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
|
|
1318
1319
|
}
|
|
1319
1320
|
return {
|
|
1320
1321
|
headers,
|
|
@@ -1322,7 +1323,7 @@ export async function auditableItemStreamListEntriesNoStream(httpRequestContext,
|
|
|
1322
1323
|
};
|
|
1323
1324
|
}
|
|
1324
1325
|
/**
|
|
1325
|
-
*
|
|
1326
|
+
* List the entry objects for a stream.
|
|
1326
1327
|
* @param httpRequestContext The request context for the API.
|
|
1327
1328
|
* @param componentName The name of the component to use in the routes.
|
|
1328
1329
|
* @param request The request.
|
|
@@ -1332,7 +1333,6 @@ export async function auditableItemStreamListEntryObjects(httpRequestContext, co
|
|
|
1332
1333
|
Guards.object(ROUTES_SOURCE, "request", request);
|
|
1333
1334
|
Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
|
|
1334
1335
|
Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
|
|
1335
|
-
const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
|
|
1336
1336
|
const component = ComponentFactory.get(componentName);
|
|
1337
1337
|
const result = await component.getEntryObjects(request.pathParams.id, {
|
|
1338
1338
|
conditions: HttpParameterHelper.objectFromString(request.query?.conditions),
|
|
@@ -1345,7 +1345,8 @@ export async function auditableItemStreamListEntryObjects(httpRequestContext, co
|
|
|
1345
1345
|
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
|
|
1346
1346
|
};
|
|
1347
1347
|
if (Is.stringValue(result.cursor)) {
|
|
1348
|
-
|
|
1348
|
+
const contextIds = await ContextIdStore.getContextIds();
|
|
1349
|
+
headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
|
|
1349
1350
|
}
|
|
1350
1351
|
return {
|
|
1351
1352
|
headers,
|
|
@@ -1353,7 +1354,7 @@ export async function auditableItemStreamListEntryObjects(httpRequestContext, co
|
|
|
1353
1354
|
};
|
|
1354
1355
|
}
|
|
1355
1356
|
/**
|
|
1356
|
-
*
|
|
1357
|
+
* List entry objects across all streams.
|
|
1357
1358
|
* @param httpRequestContext The request context for the API.
|
|
1358
1359
|
* @param componentName The name of the component to use in the routes.
|
|
1359
1360
|
* @param request The request.
|
|
@@ -1361,7 +1362,6 @@ export async function auditableItemStreamListEntryObjects(httpRequestContext, co
|
|
|
1361
1362
|
*/
|
|
1362
1363
|
export async function auditableItemStreamListEntryObjectsNoStream(httpRequestContext, componentName, request) {
|
|
1363
1364
|
Guards.object(ROUTES_SOURCE, "request", request);
|
|
1364
|
-
const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
|
|
1365
1365
|
const component = ComponentFactory.get(componentName);
|
|
1366
1366
|
const result = await component.getEntryObjects(undefined, {
|
|
1367
1367
|
conditions: HttpParameterHelper.objectFromString(request.query?.conditions),
|
|
@@ -1374,7 +1374,8 @@ export async function auditableItemStreamListEntryObjectsNoStream(httpRequestCon
|
|
|
1374
1374
|
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
|
|
1375
1375
|
};
|
|
1376
1376
|
if (Is.stringValue(result.cursor)) {
|
|
1377
|
-
|
|
1377
|
+
const contextIds = await ContextIdStore.getContextIds();
|
|
1378
|
+
headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
|
|
1378
1379
|
}
|
|
1379
1380
|
return {
|
|
1380
1381
|
headers,
|