@twin.org/auditable-item-stream-service 0.0.3-next.1 → 0.0.3-next.11

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.
@@ -2,9 +2,9 @@
2
2
  // SPDX-License-Identifier: Apache-2.0.
3
3
  import { HttpParameterHelper } from "@twin.org/api-models";
4
4
  import { AuditableItemStreamContexts, AuditableItemStreamTypes } from "@twin.org/auditable-item-stream-models";
5
- import { Coerce, ComponentFactory, Guards } from "@twin.org/core";
5
+ import { Coerce, ComponentFactory, Guards, Is } from "@twin.org/core";
6
6
  import { SchemaOrgContexts, SchemaOrgTypes } from "@twin.org/standards-schema-org";
7
- import { HeaderTypes, HttpStatusCode, MimeTypes } from "@twin.org/web";
7
+ import { HeaderHelper, HeaderTypes, HttpStatusCode, MimeTypes } from "@twin.org/web";
8
8
  /**
9
9
  * The source used when communicating about these routes.
10
10
  */
@@ -69,7 +69,7 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
69
69
  response: {
70
70
  statusCode: HttpStatusCode.created,
71
71
  headers: {
72
- [HeaderTypes.Location]: "ais:1234567890"
72
+ [HeaderTypes.Location]: "ais%3A1234567890"
73
73
  }
74
74
  }
75
75
  }
@@ -109,8 +109,8 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
109
109
  response: {
110
110
  body: {
111
111
  "@context": [
112
- AuditableItemStreamContexts.ContextRoot,
113
- AuditableItemStreamContexts.ContextRootCommon
112
+ AuditableItemStreamContexts.Context,
113
+ AuditableItemStreamContexts.ContextCommon
114
114
  ],
115
115
  type: AuditableItemStreamTypes.Stream,
116
116
  id: "ais:1234567890",
@@ -124,11 +124,12 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
124
124
  organizationIdentity: "did:iota:1234567890",
125
125
  proofId: "0101010101010101010101010101010101010101010101010101010101010101",
126
126
  immutableInterval: 10,
127
+ numberOfItems: 1,
127
128
  entries: [
128
129
  {
129
130
  "@context": [
130
- AuditableItemStreamContexts.ContextRoot,
131
- AuditableItemStreamContexts.ContextRootCommon
131
+ AuditableItemStreamContexts.Context,
132
+ AuditableItemStreamContexts.ContextCommon
132
133
  ],
133
134
  type: AuditableItemStreamTypes.StreamEntry,
134
135
  id: "tst:1234567890",
@@ -160,8 +161,8 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
160
161
  },
161
162
  body: {
162
163
  "@context": [
163
- AuditableItemStreamContexts.ContextRoot,
164
- AuditableItemStreamContexts.ContextRootCommon
164
+ AuditableItemStreamContexts.Context,
165
+ AuditableItemStreamContexts.ContextCommon
165
166
  ],
166
167
  type: AuditableItemStreamTypes.Stream,
167
168
  id: "ais:1234567890",
@@ -175,11 +176,12 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
175
176
  organizationIdentity: "did:iota:1234567890",
176
177
  proofId: "0101010101010101010101010101010101010101010101010101010101010101",
177
178
  immutableInterval: 10,
179
+ numberOfItems: 1,
178
180
  entries: [
179
181
  {
180
182
  "@context": [
181
- AuditableItemStreamContexts.ContextRoot,
182
- AuditableItemStreamContexts.ContextRootCommon
183
+ AuditableItemStreamContexts.Context,
184
+ AuditableItemStreamContexts.ContextCommon
183
185
  ],
184
186
  type: AuditableItemStreamTypes.StreamEntry,
185
187
  id: "tst:1234567890",
@@ -294,16 +296,16 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
294
296
  response: {
295
297
  body: {
296
298
  "@context": [
297
- SchemaOrgContexts.ContextRoot,
298
- AuditableItemStreamContexts.ContextRoot,
299
- AuditableItemStreamContexts.ContextRootCommon
299
+ SchemaOrgContexts.Context,
300
+ AuditableItemStreamContexts.Context,
301
+ AuditableItemStreamContexts.ContextCommon
300
302
  ],
301
303
  type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamList],
302
304
  [SchemaOrgTypes.ItemListElement]: [
303
305
  {
304
306
  "@context": [
305
- AuditableItemStreamContexts.ContextRoot,
306
- AuditableItemStreamContexts.ContextRootCommon
307
+ AuditableItemStreamContexts.Context,
308
+ AuditableItemStreamContexts.ContextCommon
307
309
  ],
308
310
  type: AuditableItemStreamTypes.Stream,
309
311
  id: "ais:1234567890",
@@ -316,10 +318,10 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
316
318
  },
317
319
  organizationIdentity: "did:iota:1234567890",
318
320
  proofId: "0101010101010101010101010101010101010101010101010101010101010101",
319
- immutableInterval: 10
321
+ immutableInterval: 10,
322
+ numberOfItems: 0
320
323
  }
321
- ],
322
- [SchemaOrgTypes.NextItem]: "1"
324
+ ]
323
325
  }
324
326
  }
325
327
  }
@@ -337,16 +339,16 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
337
339
  },
338
340
  body: {
339
341
  "@context": [
340
- SchemaOrgContexts.ContextRoot,
341
- AuditableItemStreamContexts.ContextRoot,
342
- AuditableItemStreamContexts.ContextRootCommon
342
+ SchemaOrgContexts.Context,
343
+ AuditableItemStreamContexts.Context,
344
+ AuditableItemStreamContexts.ContextCommon
343
345
  ],
344
346
  type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamList],
345
347
  [SchemaOrgTypes.ItemListElement]: [
346
348
  {
347
349
  "@context": [
348
- AuditableItemStreamContexts.ContextRoot,
349
- AuditableItemStreamContexts.ContextRootCommon
350
+ AuditableItemStreamContexts.Context,
351
+ AuditableItemStreamContexts.ContextCommon
350
352
  ],
351
353
  type: AuditableItemStreamTypes.Stream,
352
354
  id: "ais:1234567890",
@@ -359,10 +361,10 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
359
361
  },
360
362
  organizationIdentity: "did:iota:1234567890",
361
363
  proofId: "0101010101010101010101010101010101010101010101010101010101010101",
362
- immutableInterval: 10
364
+ immutableInterval: 10,
365
+ numberOfItems: 0
363
366
  }
364
- ],
365
- [SchemaOrgTypes.NextItem]: "1"
367
+ ]
366
368
  }
367
369
  }
368
370
  }
@@ -378,7 +380,7 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
378
380
  summary: "Create a new stream entry",
379
381
  tag: tagsAuditableItemStream[0].name,
380
382
  method: "POST",
381
- path: `${baseRouteName}/:id`,
383
+ path: `${baseRouteName}/:id/entries`,
382
384
  handler: async (httpRequestContext, request) => auditableItemStreamCreateEntry(httpRequestContext, componentName, request),
383
385
  requestType: {
384
386
  type: "IAuditableItemStreamCreateEntryRequest",
@@ -411,7 +413,7 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
411
413
  response: {
412
414
  statusCode: HttpStatusCode.created,
413
415
  headers: {
414
- [HeaderTypes.Location]: "ais:1234567890:01010101010"
416
+ [HeaderTypes.Location]: "ais%3A1234567890%3A01010101010"
415
417
  }
416
418
  }
417
419
  }
@@ -424,7 +426,7 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
424
426
  summary: "Delete an entry from the stream",
425
427
  tag: tagsAuditableItemStream[0].name,
426
428
  method: "DELETE",
427
- path: `${baseRouteName}/:id/:entryId`,
429
+ path: `${baseRouteName}/:id/entries/:entryId`,
428
430
  handler: async (httpRequestContext, request) => auditableItemStreamDeleteEntry(httpRequestContext, componentName, request),
429
431
  requestType: {
430
432
  type: "IAuditableItemStreamDeleteRequest",
@@ -454,7 +456,7 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
454
456
  summary: "Update a stream entry",
455
457
  tag: tagsAuditableItemStream[0].name,
456
458
  method: "PUT",
457
- path: `${baseRouteName}/:id/:entryId`,
459
+ path: `${baseRouteName}/:id/entries/:entryId`,
458
460
  handler: async (httpRequestContext, request) => auditableItemStreamUpdateEntry(httpRequestContext, componentName, request),
459
461
  requestType: {
460
462
  type: "IAuditableItemStreamUpdateEntryRequest",
@@ -491,7 +493,7 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
491
493
  summary: "Get a stream entry",
492
494
  tag: tagsAuditableItemStream[0].name,
493
495
  method: "GET",
494
- path: `${baseRouteName}/:id/:entryId`,
496
+ path: `${baseRouteName}/:id/entries/:entryId`,
495
497
  handler: async (httpRequestContext, request) => auditableItemStreamGetEntry(httpRequestContext, componentName, request),
496
498
  requestType: {
497
499
  type: "IAuditableItemStreamGetEntryRequest",
@@ -516,8 +518,8 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
516
518
  response: {
517
519
  body: {
518
520
  "@context": [
519
- AuditableItemStreamContexts.ContextRoot,
520
- AuditableItemStreamContexts.ContextRootCommon
521
+ AuditableItemStreamContexts.Context,
522
+ AuditableItemStreamContexts.ContextCommon
521
523
  ],
522
524
  type: AuditableItemStreamTypes.StreamEntry,
523
525
  id: "tst:1234567890",
@@ -547,8 +549,8 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
547
549
  },
548
550
  body: {
549
551
  "@context": [
550
- AuditableItemStreamContexts.ContextRoot,
551
- AuditableItemStreamContexts.ContextRootCommon
552
+ AuditableItemStreamContexts.Context,
553
+ AuditableItemStreamContexts.ContextCommon
552
554
  ],
553
555
  type: AuditableItemStreamTypes.StreamEntry,
554
556
  id: "tst:1234567890",
@@ -573,10 +575,10 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
573
575
  };
574
576
  const getEntryObjectRoute = {
575
577
  operationId: "auditableItemStreamGetEntryObject",
576
- summary: "Get a stream entry",
578
+ summary: "Get a stream entry object",
577
579
  tag: tagsAuditableItemStream[0].name,
578
580
  method: "GET",
579
- path: `${baseRouteName}/:id/:entryId/object`,
581
+ path: `${baseRouteName}/:id/entries/:entryId/object`,
580
582
  handler: async (httpRequestContext, request) => auditableItemStreamGetEntryObject(httpRequestContext, componentName, request),
581
583
  requestType: {
582
584
  type: "IAuditableItemStreamGetEntryRequest",
@@ -643,16 +645,16 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
643
645
  response: {
644
646
  body: {
645
647
  "@context": [
646
- SchemaOrgContexts.ContextRoot,
647
- AuditableItemStreamContexts.ContextRoot,
648
- AuditableItemStreamContexts.ContextRootCommon
648
+ SchemaOrgContexts.Context,
649
+ AuditableItemStreamContexts.Context,
650
+ AuditableItemStreamContexts.ContextCommon
649
651
  ],
650
652
  type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamEntryList],
651
653
  [SchemaOrgTypes.ItemListElement]: [
652
654
  {
653
655
  "@context": [
654
- AuditableItemStreamContexts.ContextRoot,
655
- AuditableItemStreamContexts.ContextRootCommon
656
+ AuditableItemStreamContexts.Context,
657
+ AuditableItemStreamContexts.ContextCommon
656
658
  ],
657
659
  type: AuditableItemStreamTypes.StreamEntry,
658
660
  id: "tst:1234567890",
@@ -666,8 +668,7 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
666
668
  description: "A description of the event"
667
669
  }
668
670
  }
669
- ],
670
- [SchemaOrgTypes.NextItem]: "1"
671
+ ]
671
672
  }
672
673
  }
673
674
  }
@@ -685,16 +686,75 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
685
686
  },
686
687
  body: {
687
688
  "@context": [
688
- SchemaOrgContexts.ContextRoot,
689
- AuditableItemStreamContexts.ContextRoot,
690
- AuditableItemStreamContexts.ContextRootCommon
689
+ SchemaOrgContexts.Context,
690
+ AuditableItemStreamContexts.Context,
691
+ AuditableItemStreamContexts.ContextCommon
692
+ ],
693
+ type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamEntryList],
694
+ [SchemaOrgTypes.ItemListElement]: [
695
+ {
696
+ "@context": [
697
+ AuditableItemStreamContexts.Context,
698
+ AuditableItemStreamContexts.ContextCommon
699
+ ],
700
+ type: AuditableItemStreamTypes.StreamEntry,
701
+ id: "tst:1234567890",
702
+ dateCreated: "2024-08-22T11:55:16.271Z",
703
+ proofId: "0101010101010101010101010101010101010101010101010101010101010101",
704
+ index: 0,
705
+ entryObject: {
706
+ "@context": "https://schema.org",
707
+ "@type": "Event",
708
+ startDate: "2011-04-09T20:00:00Z",
709
+ description: "A description of the event"
710
+ }
711
+ }
712
+ ]
713
+ }
714
+ }
715
+ }
716
+ ]
717
+ },
718
+ {
719
+ type: "INotFoundResponse"
720
+ }
721
+ ]
722
+ };
723
+ const listEntriesNoStreamRoute = {
724
+ operationId: "auditableItemStreamListEntriesNoStream",
725
+ summary: "Get the entry objects for all streams",
726
+ tag: tagsAuditableItemStream[0].name,
727
+ method: "GET",
728
+ path: `${baseRouteName}/entries`,
729
+ handler: async (httpRequestContext, request) => auditableItemStreamListEntriesNoStream(httpRequestContext, componentName, request),
730
+ requestType: {
731
+ type: "IAuditableItemStreamListEntriesNoStreamRequest",
732
+ examples: [
733
+ {
734
+ id: "auditableItemStreamListEntriesNoStreamRequestExample",
735
+ request: {}
736
+ }
737
+ ]
738
+ },
739
+ responseType: [
740
+ {
741
+ type: "IAuditableItemStreamListEntriesResponse",
742
+ examples: [
743
+ {
744
+ id: "auditableItemStreamListEntriesNoStreamResponseExample",
745
+ response: {
746
+ body: {
747
+ "@context": [
748
+ SchemaOrgContexts.Context,
749
+ AuditableItemStreamContexts.Context,
750
+ AuditableItemStreamContexts.ContextCommon
691
751
  ],
692
752
  type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamEntryList],
693
753
  [SchemaOrgTypes.ItemListElement]: [
694
754
  {
695
755
  "@context": [
696
- AuditableItemStreamContexts.ContextRoot,
697
- AuditableItemStreamContexts.ContextRootCommon
756
+ AuditableItemStreamContexts.Context,
757
+ AuditableItemStreamContexts.ContextCommon
698
758
  ],
699
759
  type: AuditableItemStreamTypes.StreamEntry,
700
760
  id: "tst:1234567890",
@@ -708,8 +768,48 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
708
768
  description: "A description of the event"
709
769
  }
710
770
  }
771
+ ]
772
+ }
773
+ }
774
+ }
775
+ ]
776
+ },
777
+ {
778
+ type: "IAuditableItemStreamListEntriesResponse",
779
+ mimeType: MimeTypes.JsonLd,
780
+ examples: [
781
+ {
782
+ id: "auditableItemStreamJsonLdListEntriesNoStreamResponseExample",
783
+ response: {
784
+ headers: {
785
+ [HeaderTypes.ContentType]: MimeTypes.JsonLd
786
+ },
787
+ body: {
788
+ "@context": [
789
+ SchemaOrgContexts.Context,
790
+ AuditableItemStreamContexts.Context,
791
+ AuditableItemStreamContexts.ContextCommon
711
792
  ],
712
- [SchemaOrgTypes.NextItem]: "1"
793
+ type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamEntryList],
794
+ [SchemaOrgTypes.ItemListElement]: [
795
+ {
796
+ "@context": [
797
+ AuditableItemStreamContexts.Context,
798
+ AuditableItemStreamContexts.ContextCommon
799
+ ],
800
+ type: AuditableItemStreamTypes.StreamEntry,
801
+ id: "tst:1234567890",
802
+ dateCreated: "2024-08-22T11:55:16.271Z",
803
+ proofId: "0101010101010101010101010101010101010101010101010101010101010101",
804
+ index: 0,
805
+ entryObject: {
806
+ "@context": "https://schema.org",
807
+ "@type": "Event",
808
+ startDate: "2011-04-09T20:00:00Z",
809
+ description: "A description of the event"
810
+ }
811
+ }
812
+ ]
713
813
  }
714
814
  }
715
815
  }
@@ -749,9 +849,9 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
749
849
  response: {
750
850
  body: {
751
851
  "@context": [
752
- SchemaOrgContexts.ContextRoot,
753
- AuditableItemStreamContexts.ContextRoot,
754
- AuditableItemStreamContexts.ContextRootCommon
852
+ SchemaOrgContexts.Context,
853
+ AuditableItemStreamContexts.Context,
854
+ AuditableItemStreamContexts.ContextCommon
755
855
  ],
756
856
  type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamEntryObjectList],
757
857
  [SchemaOrgTypes.ItemListElement]: [
@@ -761,8 +861,55 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
761
861
  startDate: "2011-04-09T20:00:00Z",
762
862
  description: "A description of the event"
763
863
  }
864
+ ]
865
+ }
866
+ }
867
+ }
868
+ ]
869
+ },
870
+ {
871
+ type: "INotFoundResponse"
872
+ }
873
+ ]
874
+ };
875
+ const listEntryObjectsNoStreamRoute = {
876
+ operationId: "auditableItemStreamListEntryObjectsNoStream",
877
+ summary: "Get the entry objects for all streams",
878
+ tag: tagsAuditableItemStream[0].name,
879
+ method: "GET",
880
+ path: `${baseRouteName}/entries/objects`,
881
+ handler: async (httpRequestContext, request) => auditableItemStreamListEntryObjectsNoStream(httpRequestContext, componentName, request),
882
+ requestType: {
883
+ type: "IAuditableItemStreamListEntryObjectsNoStreamRequest",
884
+ examples: [
885
+ {
886
+ id: "auditableItemStreamListEntryObjectsNoStreamRequestExample",
887
+ request: {}
888
+ }
889
+ ]
890
+ },
891
+ responseType: [
892
+ {
893
+ type: "IAuditableItemStreamListEntryObjectsResponse",
894
+ examples: [
895
+ {
896
+ id: "auditableItemStreamListEntryObjectsNoStreamResponseExample",
897
+ response: {
898
+ body: {
899
+ "@context": [
900
+ SchemaOrgContexts.Context,
901
+ AuditableItemStreamContexts.Context,
902
+ AuditableItemStreamContexts.ContextCommon
764
903
  ],
765
- [SchemaOrgTypes.NextItem]: "1"
904
+ type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamEntryObjectList],
905
+ [SchemaOrgTypes.ItemListElement]: [
906
+ {
907
+ "@context": "https://schema.org",
908
+ "@type": "Event",
909
+ startDate: "2011-04-09T20:00:00Z",
910
+ description: "A description of the event"
911
+ }
912
+ ]
766
913
  }
767
914
  }
768
915
  }
@@ -785,7 +932,9 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
785
932
  deleteEntryRoute,
786
933
  updateEntryRoute,
787
934
  listEntriesRoute,
788
- listEntryObjectsRoute
935
+ listEntriesNoStreamRoute,
936
+ listEntryObjectsRoute,
937
+ listEntryObjectsNoStreamRoute
789
938
  ];
790
939
  }
791
940
  /**
@@ -823,7 +972,6 @@ export async function auditableItemStreamGet(httpRequestContext, componentName,
823
972
  Guards.object(ROUTES_SOURCE, "request", request);
824
973
  Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
825
974
  Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
826
- const mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? "jsonld" : "json";
827
975
  const component = ComponentFactory.get(componentName);
828
976
  const result = await component.get(request.pathParams.id, {
829
977
  includeEntries: Coerce.boolean(request.query?.includeEntries),
@@ -833,7 +981,9 @@ export async function auditableItemStreamGet(httpRequestContext, componentName,
833
981
  });
834
982
  return {
835
983
  headers: {
836
- [HeaderTypes.ContentType]: mimeType === "json" ? MimeTypes.Json : MimeTypes.JsonLd
984
+ [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd
985
+ ? MimeTypes.JsonLd
986
+ : MimeTypes.Json
837
987
  },
838
988
  body: result
839
989
  };
@@ -886,14 +1036,18 @@ export async function auditableItemStreamDelete(httpRequestContext, componentNam
886
1036
  export async function auditableItemStreamList(httpRequestContext, componentName, request) {
887
1037
  Guards.object(ROUTES_SOURCE, "request", request);
888
1038
  Guards.object(ROUTES_SOURCE, "request.query", request.query);
1039
+ const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
889
1040
  const component = ComponentFactory.get(componentName);
890
- const mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? "jsonld" : "json";
891
1041
  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));
1042
+ const headers = {
1043
+ [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
1044
+ };
1045
+ if (Is.stringValue(result.cursor)) {
1046
+ headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(await hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url), { cursor: result.cursor }, "next");
1047
+ }
892
1048
  return {
893
- headers: {
894
- [HeaderTypes.ContentType]: mimeType === "json" ? MimeTypes.Json : MimeTypes.JsonLd
895
- },
896
- body: result
1049
+ headers,
1050
+ body: result.entries
897
1051
  };
898
1052
  }
899
1053
  /**
@@ -968,14 +1122,15 @@ export async function auditableItemStreamGetEntry(httpRequestContext, componentN
968
1122
  Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
969
1123
  Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
970
1124
  Guards.stringValue(ROUTES_SOURCE, "request.pathParams.entryId", request.pathParams.entryId);
971
- const mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? "jsonld" : "json";
972
1125
  const component = ComponentFactory.get(componentName);
973
1126
  const result = await component.getEntry(request.pathParams.id, request.pathParams.entryId, {
974
1127
  verifyEntry: Coerce.boolean(request.query?.verifyEntry)
975
1128
  });
976
1129
  return {
977
1130
  headers: {
978
- [HeaderTypes.ContentType]: mimeType === "json" ? MimeTypes.Json : MimeTypes.JsonLd
1131
+ [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd
1132
+ ? MimeTypes.JsonLd
1133
+ : MimeTypes.Json
979
1134
  },
980
1135
  body: result
981
1136
  };
@@ -992,12 +1147,13 @@ export async function auditableItemStreamGetEntryObject(httpRequestContext, comp
992
1147
  Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
993
1148
  Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
994
1149
  Guards.stringValue(ROUTES_SOURCE, "request.pathParams.entryId", request.pathParams.entryId);
995
- const mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? "jsonld" : "json";
996
1150
  const component = ComponentFactory.get(componentName);
997
1151
  const result = await component.getEntryObject(request.pathParams.id, request.pathParams.entryId);
998
1152
  return {
999
1153
  headers: {
1000
- [HeaderTypes.ContentType]: mimeType === "json" ? MimeTypes.Json : MimeTypes.JsonLd
1154
+ [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd
1155
+ ? MimeTypes.JsonLd
1156
+ : MimeTypes.Json
1001
1157
  },
1002
1158
  body: result
1003
1159
  };
@@ -1013,8 +1169,8 @@ export async function auditableItemStreamListEntries(httpRequestContext, compone
1013
1169
  Guards.object(ROUTES_SOURCE, "request", request);
1014
1170
  Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
1015
1171
  Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
1172
+ const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
1016
1173
  const component = ComponentFactory.get(componentName);
1017
- const mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? "jsonld" : "json";
1018
1174
  const result = await component.getEntries(request.pathParams.id, {
1019
1175
  conditions: HttpParameterHelper.objectFromString(request.query?.conditions),
1020
1176
  includeDeleted: Coerce.boolean(request.query?.includeDeleted),
@@ -1023,11 +1179,45 @@ export async function auditableItemStreamListEntries(httpRequestContext, compone
1023
1179
  limit: Coerce.integer(request.query?.limit),
1024
1180
  cursor: request.query?.cursor
1025
1181
  });
1182
+ const headers = {
1183
+ [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
1184
+ };
1185
+ if (Is.stringValue(result.cursor)) {
1186
+ headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(await hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url), { cursor: result.cursor }, "next");
1187
+ }
1026
1188
  return {
1027
- headers: {
1028
- [HeaderTypes.ContentType]: mimeType === "json" ? MimeTypes.Json : MimeTypes.JsonLd
1029
- },
1030
- body: result
1189
+ headers,
1190
+ body: result.entries
1191
+ };
1192
+ }
1193
+ /**
1194
+ * Query the stream.
1195
+ * @param httpRequestContext The request context for the API.
1196
+ * @param componentName The name of the component to use in the routes.
1197
+ * @param request The request.
1198
+ * @returns The response object with additional http response properties.
1199
+ */
1200
+ export async function auditableItemStreamListEntriesNoStream(httpRequestContext, componentName, request) {
1201
+ Guards.object(ROUTES_SOURCE, "request", request);
1202
+ const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
1203
+ const component = ComponentFactory.get(componentName);
1204
+ const result = await component.getEntries(undefined, {
1205
+ conditions: HttpParameterHelper.objectFromString(request.query?.conditions),
1206
+ includeDeleted: Coerce.boolean(request.query?.includeDeleted),
1207
+ verifyEntries: Coerce.boolean(request.query?.verifyEntries),
1208
+ order: request.query?.order,
1209
+ limit: Coerce.integer(request.query?.limit),
1210
+ cursor: request.query?.cursor
1211
+ });
1212
+ const headers = {
1213
+ [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
1214
+ };
1215
+ if (Is.stringValue(result.cursor)) {
1216
+ headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(await hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url), { cursor: result.cursor }, "next");
1217
+ }
1218
+ return {
1219
+ headers,
1220
+ body: result.entries
1031
1221
  };
1032
1222
  }
1033
1223
  /**
@@ -1041,8 +1231,8 @@ export async function auditableItemStreamListEntryObjects(httpRequestContext, co
1041
1231
  Guards.object(ROUTES_SOURCE, "request", request);
1042
1232
  Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
1043
1233
  Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
1234
+ const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
1044
1235
  const component = ComponentFactory.get(componentName);
1045
- const mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? "jsonld" : "json";
1046
1236
  const result = await component.getEntryObjects(request.pathParams.id, {
1047
1237
  conditions: HttpParameterHelper.objectFromString(request.query?.conditions),
1048
1238
  includeDeleted: Coerce.boolean(request.query?.includeDeleted),
@@ -1050,11 +1240,44 @@ export async function auditableItemStreamListEntryObjects(httpRequestContext, co
1050
1240
  limit: Coerce.integer(request.query?.limit),
1051
1241
  cursor: request.query?.cursor
1052
1242
  });
1243
+ const headers = {
1244
+ [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
1245
+ };
1246
+ if (Is.stringValue(result.cursor)) {
1247
+ headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(await hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url), { cursor: result.cursor }, "next");
1248
+ }
1053
1249
  return {
1054
- headers: {
1055
- [HeaderTypes.ContentType]: mimeType === "json" ? MimeTypes.Json : MimeTypes.JsonLd
1056
- },
1057
- body: result
1250
+ headers,
1251
+ body: result.entries
1252
+ };
1253
+ }
1254
+ /**
1255
+ * Query the stream objects.
1256
+ * @param httpRequestContext The request context for the API.
1257
+ * @param componentName The name of the component to use in the routes.
1258
+ * @param request The request.
1259
+ * @returns The response object with additional http response properties.
1260
+ */
1261
+ export async function auditableItemStreamListEntryObjectsNoStream(httpRequestContext, componentName, request) {
1262
+ Guards.object(ROUTES_SOURCE, "request", request);
1263
+ const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
1264
+ const component = ComponentFactory.get(componentName);
1265
+ const result = await component.getEntryObjects(undefined, {
1266
+ conditions: HttpParameterHelper.objectFromString(request.query?.conditions),
1267
+ includeDeleted: Coerce.boolean(request.query?.includeDeleted),
1268
+ order: request.query?.order,
1269
+ limit: Coerce.integer(request.query?.limit),
1270
+ cursor: request.query?.cursor
1271
+ });
1272
+ const headers = {
1273
+ [HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
1274
+ };
1275
+ if (Is.stringValue(result.cursor)) {
1276
+ headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(await hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url), { cursor: result.cursor }, "next");
1277
+ }
1278
+ return {
1279
+ headers,
1280
+ body: result.entries
1058
1281
  };
1059
1282
  }
1060
1283
  //# sourceMappingURL=auditableItemStreamRoutes.js.map