@ogcio/building-blocks-sdk 0.2.83 → 0.2.85

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 (42) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +14 -0
  3. package/dist/client/clients/messaging/index.d.ts +8 -0
  4. package/dist/client/clients/messaging/index.d.ts.map +1 -1
  5. package/dist/client/clients/messaging/index.js +7 -1
  6. package/dist/client/clients/messaging/index.js.map +1 -1
  7. package/dist/client/clients/messaging/schema.d.ts +154 -0
  8. package/dist/client/clients/messaging/schema.d.ts.map +1 -1
  9. package/dist/client/clients/messaging/support.d.ts +125 -0
  10. package/dist/client/clients/messaging/support.d.ts.map +1 -0
  11. package/dist/client/clients/messaging/support.js +20 -0
  12. package/dist/client/clients/messaging/support.js.map +1 -0
  13. package/dist/client/clients/profile/citizen.d.ts.map +1 -1
  14. package/dist/client/clients/profile/index.d.ts +13 -79
  15. package/dist/client/clients/profile/index.d.ts.map +1 -1
  16. package/dist/client/clients/profile/index.js +13 -20
  17. package/dist/client/clients/profile/index.js.map +1 -1
  18. package/dist/client/clients/profile/organisation.d.ts.map +1 -1
  19. package/dist/client/clients/profile/schema.d.ts +3 -89
  20. package/dist/client/clients/profile/schema.d.ts.map +1 -1
  21. package/dist/client/clients/upload/index.d.ts +8 -0
  22. package/dist/client/clients/upload/index.d.ts.map +1 -1
  23. package/dist/client/clients/upload/index.js +7 -1
  24. package/dist/client/clients/upload/index.js.map +1 -1
  25. package/dist/client/clients/upload/schema.d.ts +321 -0
  26. package/dist/client/clients/upload/schema.d.ts.map +1 -1
  27. package/dist/client/clients/upload/support.d.ts +224 -0
  28. package/dist/client/clients/upload/support.d.ts.map +1 -0
  29. package/dist/client/clients/upload/support.js +89 -0
  30. package/dist/client/clients/upload/support.js.map +1 -0
  31. package/package.json +1 -1
  32. package/src/client/clients/messaging/index.ts +20 -1
  33. package/src/client/clients/messaging/open-api-definition.json +355 -0
  34. package/src/client/clients/messaging/schema.ts +154 -0
  35. package/src/client/clients/messaging/support.ts +27 -0
  36. package/src/client/clients/profile/index.ts +33 -35
  37. package/src/client/clients/profile/open-api-definition.json +23 -160
  38. package/src/client/clients/profile/schema.ts +3 -89
  39. package/src/client/clients/upload/index.ts +21 -1
  40. package/src/client/clients/upload/open-api-definition.json +621 -41
  41. package/src/client/clients/upload/schema.ts +321 -0
  42. package/src/client/clients/upload/support.ts +128 -0
@@ -143,6 +143,155 @@ export interface paths {
143
143
  patch?: never;
144
144
  trace?: never;
145
145
  };
146
+ "/api/v1/support/files/": {
147
+ parameters: {
148
+ query?: never;
149
+ header?: never;
150
+ path?: never;
151
+ cookie?: never;
152
+ };
153
+ get?: never;
154
+ put?: never;
155
+ post: {
156
+ parameters: {
157
+ query?: never;
158
+ header?: never;
159
+ path?: never;
160
+ cookie?: never;
161
+ };
162
+ requestBody?: {
163
+ content: {
164
+ "multipart/form-data": unknown | unknown;
165
+ };
166
+ };
167
+ responses: {
168
+ /** @description Default Response */
169
+ 201: {
170
+ headers: {
171
+ [name: string]: unknown;
172
+ };
173
+ content: {
174
+ "application/json": {
175
+ data: {
176
+ id: string;
177
+ };
178
+ };
179
+ };
180
+ };
181
+ /** @description Default Response */
182
+ "4XX": {
183
+ headers: {
184
+ [name: string]: unknown;
185
+ };
186
+ content: {
187
+ "application/json": {
188
+ code: string;
189
+ detail: string;
190
+ requestId: string;
191
+ name: string;
192
+ validation?: unknown;
193
+ validationContext?: string;
194
+ };
195
+ };
196
+ };
197
+ /** @description Default Response */
198
+ "5XX": {
199
+ headers: {
200
+ [name: string]: unknown;
201
+ };
202
+ content: {
203
+ "application/json": {
204
+ code: string;
205
+ detail: string;
206
+ requestId: string;
207
+ name: string;
208
+ validation?: unknown;
209
+ validationContext?: string;
210
+ };
211
+ };
212
+ };
213
+ };
214
+ };
215
+ delete?: never;
216
+ options?: never;
217
+ head?: never;
218
+ patch?: never;
219
+ trace?: never;
220
+ };
221
+ "/api/v1/support/files/download-batch": {
222
+ parameters: {
223
+ query?: never;
224
+ header?: never;
225
+ path?: never;
226
+ cookie?: never;
227
+ };
228
+ get?: never;
229
+ put?: never;
230
+ post: {
231
+ parameters: {
232
+ query?: never;
233
+ header?: never;
234
+ path?: never;
235
+ cookie?: never;
236
+ };
237
+ requestBody: {
238
+ content: {
239
+ "application/json": {
240
+ fileIds: string[];
241
+ userId: string;
242
+ };
243
+ };
244
+ };
245
+ responses: {
246
+ /** @description Multipart mixed response containing requested files */
247
+ 200: {
248
+ headers: {
249
+ [name: string]: unknown;
250
+ };
251
+ content: {
252
+ "multipart/mixed": string;
253
+ };
254
+ };
255
+ /** @description Default Response */
256
+ "4XX": {
257
+ headers: {
258
+ [name: string]: unknown;
259
+ };
260
+ content: {
261
+ "application/json": {
262
+ code: string;
263
+ detail: string;
264
+ requestId: string;
265
+ name: string;
266
+ validation?: unknown;
267
+ validationContext?: string;
268
+ };
269
+ };
270
+ };
271
+ /** @description Default Response */
272
+ "5XX": {
273
+ headers: {
274
+ [name: string]: unknown;
275
+ };
276
+ content: {
277
+ "application/json": {
278
+ code: string;
279
+ detail: string;
280
+ requestId: string;
281
+ name: string;
282
+ validation?: unknown;
283
+ validationContext?: string;
284
+ };
285
+ };
286
+ };
287
+ };
288
+ };
289
+ delete?: never;
290
+ options?: never;
291
+ head?: never;
292
+ patch?: never;
293
+ trace?: never;
294
+ };
146
295
  "/api/v1/metadata/": {
147
296
  parameters: {
148
297
  query?: never;
@@ -377,6 +526,93 @@ export interface paths {
377
526
  patch?: never;
378
527
  trace?: never;
379
528
  };
529
+ "/api/v1/support/metadata/": {
530
+ parameters: {
531
+ query?: never;
532
+ header?: never;
533
+ path?: never;
534
+ cookie?: never;
535
+ };
536
+ get: {
537
+ parameters: {
538
+ query?: {
539
+ userId?: string;
540
+ organizationId?: string;
541
+ };
542
+ header?: never;
543
+ path?: never;
544
+ cookie?: never;
545
+ };
546
+ requestBody?: never;
547
+ responses: {
548
+ /** @description Default Response */
549
+ 200: {
550
+ headers: {
551
+ [name: string]: unknown;
552
+ };
553
+ content: {
554
+ "application/json": {
555
+ data: {
556
+ fileName: string;
557
+ id?: string;
558
+ key: string;
559
+ ownerId: string;
560
+ fileSize: number;
561
+ mimeType: string;
562
+ createdAt: string;
563
+ lastScan: string;
564
+ /** @default false */
565
+ deleted: boolean;
566
+ infected: boolean;
567
+ infectionDescription?: string;
568
+ antivirusDbVersion?: string;
569
+ expiresAt?: string;
570
+ }[];
571
+ };
572
+ };
573
+ };
574
+ /** @description Default Response */
575
+ "4XX": {
576
+ headers: {
577
+ [name: string]: unknown;
578
+ };
579
+ content: {
580
+ "application/json": {
581
+ code: string;
582
+ detail: string;
583
+ requestId: string;
584
+ name: string;
585
+ validation?: unknown;
586
+ validationContext?: string;
587
+ };
588
+ };
589
+ };
590
+ /** @description Default Response */
591
+ "5XX": {
592
+ headers: {
593
+ [name: string]: unknown;
594
+ };
595
+ content: {
596
+ "application/json": {
597
+ code: string;
598
+ detail: string;
599
+ requestId: string;
600
+ name: string;
601
+ validation?: unknown;
602
+ validationContext?: string;
603
+ };
604
+ };
605
+ };
606
+ };
607
+ };
608
+ put?: never;
609
+ post?: never;
610
+ delete?: never;
611
+ options?: never;
612
+ head?: never;
613
+ patch?: never;
614
+ trace?: never;
615
+ };
380
616
  "/api/v1/permissions/": {
381
617
  parameters: {
382
618
  query?: never;
@@ -569,6 +805,91 @@ export interface paths {
569
805
  patch?: never;
570
806
  trace?: never;
571
807
  };
808
+ "/api/v1/support/permissions/": {
809
+ parameters: {
810
+ query?: never;
811
+ header?: never;
812
+ path?: never;
813
+ cookie?: never;
814
+ };
815
+ get?: never;
816
+ put?: never;
817
+ post: {
818
+ parameters: {
819
+ query?: never;
820
+ header?: never;
821
+ path?: never;
822
+ cookie?: never;
823
+ };
824
+ requestBody?: {
825
+ content: {
826
+ "application/json": {
827
+ fileId: string;
828
+ userId: string;
829
+ } | {
830
+ fileId: string;
831
+ userIds: string[];
832
+ };
833
+ };
834
+ };
835
+ responses: {
836
+ /** @description Default Response */
837
+ 201: {
838
+ headers: {
839
+ [name: string]: unknown;
840
+ };
841
+ content: {
842
+ "application/json": {
843
+ data: {
844
+ fileId: string;
845
+ userId: string;
846
+ } | {
847
+ fileId: string;
848
+ userIds: string[];
849
+ };
850
+ };
851
+ };
852
+ };
853
+ /** @description Default Response */
854
+ "4XX": {
855
+ headers: {
856
+ [name: string]: unknown;
857
+ };
858
+ content: {
859
+ "application/json": {
860
+ code: string;
861
+ detail: string;
862
+ requestId: string;
863
+ name: string;
864
+ validation?: unknown;
865
+ validationContext?: string;
866
+ };
867
+ };
868
+ };
869
+ /** @description Default Response */
870
+ "5XX": {
871
+ headers: {
872
+ [name: string]: unknown;
873
+ };
874
+ content: {
875
+ "application/json": {
876
+ code: string;
877
+ detail: string;
878
+ requestId: string;
879
+ name: string;
880
+ validation?: unknown;
881
+ validationContext?: string;
882
+ };
883
+ };
884
+ };
885
+ };
886
+ };
887
+ delete?: never;
888
+ options?: never;
889
+ head?: never;
890
+ patch?: never;
891
+ trace?: never;
892
+ };
572
893
  }
573
894
  export type webhooks = Record<string, never>;
574
895
  export interface components {
@@ -0,0 +1,128 @@
1
+ import type createClient from "openapi-fetch";
2
+ import type { Logger } from "../../../types/index.js";
3
+ import {
4
+ formatError,
5
+ formatResponse,
6
+ throwIfEmpty,
7
+ } from "../../utils/client-utils.js";
8
+ import type { paths } from "./schema.js";
9
+
10
+ export class UploadSupport {
11
+ constructor(
12
+ private readonly client: ReturnType<typeof createClient<paths>>,
13
+ private readonly serviceName: string,
14
+ private readonly logger: Logger | undefined,
15
+ ) {}
16
+
17
+ async getSharedFilesForUser(
18
+ query: paths["/api/v1/support/metadata/"]["get"]["parameters"]["query"],
19
+ ) {
20
+ const { userId, organizationId } = query || {};
21
+
22
+ return this.client
23
+ .GET("/api/v1/support/metadata/", {
24
+ params: { query: { userId, organizationId } },
25
+ })
26
+ .then(
27
+ (response) => formatResponse(response, this.serviceName, this.logger),
28
+ (reason) => formatError(reason, this.serviceName, this.logger),
29
+ );
30
+ }
31
+
32
+ async getFiles(
33
+ params: paths["/api/v1/support/files/download-batch"]["post"]["requestBody"]["content"]["application/json"],
34
+ ) {
35
+ throwIfEmpty(params.userId);
36
+ try {
37
+ const {
38
+ error,
39
+ data,
40
+ response: { headers, status },
41
+ } = await this.client.POST("/api/v1/support/files/download-batch", {
42
+ body: params,
43
+ parseAs: "stream",
44
+ });
45
+
46
+ return {
47
+ error,
48
+ data,
49
+ headers: Object.fromEntries(headers.entries()),
50
+ status,
51
+ };
52
+ } catch (e) {
53
+ return {
54
+ error: e,
55
+ data: null,
56
+ headers: null,
57
+ status: 500,
58
+ };
59
+ }
60
+ }
61
+
62
+ async uploadFile(
63
+ file: File,
64
+ expirationDate?: string,
65
+ options?: { timeoutMs?: number },
66
+ ): Promise<{
67
+ error?: {
68
+ code: string;
69
+ detail: string;
70
+ requestId: string;
71
+ name: string;
72
+ validation?: unknown;
73
+ validationContext?: string;
74
+ };
75
+ data?: { uploadId?: string };
76
+ }> {
77
+ const timeoutMs = options?.timeoutMs ?? 120000; // default 120s
78
+ try {
79
+ const { error, data } = await this.client.POST("/api/v1/support/files/", {
80
+ body: {
81
+ file,
82
+ expirationDate,
83
+ },
84
+ signal: AbortSignal.timeout(timeoutMs),
85
+ bodySerializer: (body: unknown) => {
86
+ const parsed = body as { file: File; expirationDate?: string };
87
+ const formData = new FormData();
88
+ if (parsed.expirationDate) {
89
+ formData.set("expirationDate", parsed.expirationDate);
90
+ }
91
+ formData.set("file", parsed.file);
92
+ return formData;
93
+ },
94
+ });
95
+
96
+ return { error, data: { uploadId: data?.data.id } };
97
+ } catch (e: unknown) {
98
+ const err = e as Error & { name?: string };
99
+ if (
100
+ err?.name === "AbortError" ||
101
+ err?.constructor?.name === "DOMException"
102
+ ) {
103
+ return {
104
+ error: {
105
+ name: "TimeoutError",
106
+ detail: "Upload aborted after reaching timeout",
107
+ requestId: "",
108
+ code: "TIMEOUT_ERROR",
109
+ },
110
+ };
111
+ }
112
+ throw err;
113
+ }
114
+ }
115
+
116
+ shareFile(fileId: string, ...userIds: string[]) {
117
+ throwIfEmpty(fileId);
118
+ throwIfEmpty(userIds);
119
+ return this.client
120
+ .POST("/api/v1/support/permissions/", {
121
+ body: { fileId, userIds },
122
+ })
123
+ .then(
124
+ (response) => formatResponse(response, this.serviceName, this.logger),
125
+ (reason) => formatError(reason, this.serviceName, this.logger),
126
+ );
127
+ }
128
+ }