@ogcio/building-blocks-sdk 0.2.85 → 0.2.86

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.
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "0.2.85"
2
+ ".": "0.2.86"
3
3
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.2.86](https://github.com/ogcio/building-blocks-sdk/compare/@ogcio/building-blocks-sdk@v0.2.85...@ogcio/building-blocks-sdk@v0.2.86) (2026-03-20)
4
+
5
+
6
+ ### Features
7
+
8
+ * manage upload file as stream AB[#35726](https://github.com/ogcio/building-blocks-sdk/issues/35726) ([#343](https://github.com/ogcio/building-blocks-sdk/issues/343)) ([0631984](https://github.com/ogcio/building-blocks-sdk/commit/063198423a4acb756b563893fed15498d1a07283))
9
+
3
10
  ## [0.2.85](https://github.com/ogcio/building-blocks-sdk/compare/@ogcio/building-blocks-sdk@v0.2.84...@ogcio/building-blocks-sdk@v0.2.85) (2026-03-13)
4
11
 
5
12
 
@@ -504,5 +504,20 @@ export declare class Upload extends BaseClient<paths> {
504
504
  uploadId?: string;
505
505
  };
506
506
  }>;
507
+ uploadStreamFile(file: ReadableStream<Uint8Array> | Blob, filename: string, mimeType: string, expirationDate?: string, options?: {
508
+ timeoutMs?: number;
509
+ }): Promise<{
510
+ error?: {
511
+ code: string;
512
+ detail: string;
513
+ requestId: string;
514
+ name: string;
515
+ validation?: unknown;
516
+ validationContext?: string;
517
+ };
518
+ data?: {
519
+ uploadId?: string;
520
+ };
521
+ }>;
507
522
  }
508
523
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/clients/upload/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/clients/upload/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,KAAK,MAAM,EACX,KAAK,aAAa,EAEnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMlD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,qBAAa,MAAO,SAAQ,UAAU,CAAC,KAAK,CAAC;IAC3C,UAAkB,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,SAAS,CAAC,WAAW,WAAU;IAE/B,SAAgB,OAAO,EAAE,aAAa,CAAC;gBAE3B,MAAM,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,aAAa,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IASD,gBAAgB,CAAC,EACf,cAAc,EACd,MAAM,GACP,EAAE;QACD,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;;iBA8KyvI,CAAC;sBAA8B,CAAC;8BAA4C,CAAC;;kBAAmD,CAAC;gBAA6B,CAAC;kBAA+B,CAAC;;;;;;;;;;;;8BAA0c,CAAC;;;;;;;;;gDAAggB,CAAC;8CAA4D,CAAC;qCAAmD,CAAC;;;;;;;;;;;;;;;kCAAukB,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;;kCAAsiB,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;IA9JjtN,OAAO,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;kCAwFiB,CAAC;yCACvB,CAAC;;;;;;;;;;;;;;kCAoBS,CAAC;yCAI1B,CAAJ;;;;;;;;;;;;;;;;IArFA,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;;iBAkI6rI,CAAC;sBAA8B,CAAC;8BAA4C,CAAC;;kBAAmD,CAAC;gBAA6B,CAAC;kBAA+B,CAAC;;;;;;;;;;;;8BAA0c,CAAC;;;;;;;;;gDAAggB,CAAC;8CAA4D,CAAC;qCAAmD,CAAC;;;;;;;;;;;;;;;kCAAukB,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;;kCAAsiB,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;IAtHvtN,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;;iBAsHuqS,CAAC;kBAA+B,CAAC;;;;kBAA0G,CAAC;;;;;;;;;;;;8BAA0c,CAAC;;;;;;;;;gDAAggB,CAAC;8CAA4D,CAAC;qCAAmD,CAAC;;;;;;;;;;;;;;;kCAAqkB,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;;kCAAsiB,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;IA1GloX,oBAAoB,CAAC,EAAE,EAAE,MAAM;;iBA0G64N,CAAC;kBAA+B,CAAC;gBAA6B,CAAC;kBAA+B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAA6nC,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;;kCAAsiB,CAAC;yCAAwD,CAAC;;;;;;;;;;IA9FlyR,eAAe,CAAC,EAAE,EAAE,MAAM;;;;;kBA8F+oe,CAAC;gBAA6B,CAAC;kBAA+B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAAmhC,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;;kCAAsiB,CAAC;yCAAwD,CAAC;;;;;;;;;;;;IA9Er5hB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE;;iBA8EoiiB,CAAC;kBAA+B,CAAC;gBAA6B,CAAC;kBAA+B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAA48C,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;;kCAAsiB,CAAC;yCAAwD,CAAC;;;;;;;;;;;IAjEvxmB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAa1C,UAAU,CACd,IAAI,EAAE,IAAI,EACV,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/B,OAAO,CAAC;QACT,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;QACF,IAAI,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC9B,CAAC;IAUI,gBAAgB,CACpB,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,EACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/B,OAAO,CAAC;QACT,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;QACF,IAAI,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC9B,CAAC;CAWH"}
@@ -1,6 +1,7 @@
1
1
  import { UPLOAD, } from "../../../types/index.js";
2
2
  import { BaseClient } from "../../base-client.js";
3
3
  import { formatError, formatResponse, throwIfEmpty, } from "../../utils/client-utils.js";
4
+ import { uploadFile, uploadStreamFile } from "./shared.js";
4
5
  import { UploadSupport } from "./support.js";
5
6
  export class Upload extends BaseClient {
6
7
  serviceName = UPLOAD;
@@ -99,41 +100,24 @@ export class Upload extends BaseClient {
99
100
  .then((response) => formatResponse(response, this.serviceName, this.logger), (reason) => formatError(reason, this.serviceName, this.logger));
100
101
  }
101
102
  async uploadFile(file, expirationDate, options) {
102
- const timeoutMs = options?.timeoutMs ?? 120000; // default 120s
103
- try {
104
- const { error, data } = await this.client.POST("/api/v1/files/", {
105
- body: {
106
- file,
107
- expirationDate,
108
- },
109
- signal: AbortSignal.timeout(timeoutMs),
110
- bodySerializer: (body) => {
111
- const parsed = body;
112
- const formData = new FormData();
113
- if (parsed.expirationDate) {
114
- formData.set("expirationDate", parsed.expirationDate);
115
- }
116
- formData.set("file", parsed.file);
117
- return formData;
118
- },
119
- });
120
- return { error, data: { uploadId: data?.data.id } };
121
- }
122
- catch (e) {
123
- const err = e;
124
- if (err?.name === "AbortError" ||
125
- err?.constructor?.name === "DOMException") {
126
- return {
127
- error: {
128
- name: "TimeoutError",
129
- detail: "Upload aborted after reaching timeout",
130
- requestId: "",
131
- code: "TIMEOUT_ERROR",
132
- },
133
- };
134
- }
135
- throw err;
136
- }
103
+ return uploadFile({
104
+ file,
105
+ expirationDate,
106
+ options,
107
+ client: this.client,
108
+ path: "/api/v1/files/",
109
+ });
110
+ }
111
+ async uploadStreamFile(file, filename, mimeType, expirationDate, options) {
112
+ return uploadStreamFile({
113
+ file,
114
+ filename,
115
+ mimeType,
116
+ expirationDate,
117
+ options,
118
+ client: this.client,
119
+ path: "/api/v1/files/",
120
+ });
137
121
  }
138
122
  }
139
123
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/clients/upload/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/clients/upload/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type createClient from "openapi-fetch";
2
+ import type { paths } from "./schema.js";
3
+ export declare function uploadFile(params: {
4
+ file: File;
5
+ expirationDate?: string;
6
+ options?: {
7
+ timeoutMs?: number;
8
+ };
9
+ client: ReturnType<typeof createClient<paths>>;
10
+ path: "/api/v1/support/files/" | "/api/v1/files/";
11
+ }): Promise<{
12
+ error?: {
13
+ code: string;
14
+ detail: string;
15
+ requestId: string;
16
+ name: string;
17
+ validation?: unknown;
18
+ validationContext?: string;
19
+ };
20
+ data?: {
21
+ uploadId?: string;
22
+ };
23
+ }>;
24
+ export declare function uploadStreamFile(params: {
25
+ file: ReadableStream<Uint8Array> | Blob;
26
+ filename: string;
27
+ mimeType: string;
28
+ expirationDate?: string;
29
+ options?: {
30
+ timeoutMs?: number;
31
+ };
32
+ client: ReturnType<typeof createClient<paths>>;
33
+ path: "/api/v1/support/files/" | "/api/v1/files/";
34
+ }): Promise<{
35
+ error?: {
36
+ code: string;
37
+ detail: string;
38
+ requestId: string;
39
+ name: string;
40
+ validation?: unknown;
41
+ validationContext?: string;
42
+ };
43
+ data?: {
44
+ uploadId?: string;
45
+ };
46
+ }>;
47
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/client/clients/upload/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIzC,wBAAsB,UAAU,CAAC,MAAM,EAAE;IACvC,IAAI,EAAE,IAAI,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,IAAI,EAAE,wBAAwB,GAAG,gBAAgB,CAAC;CACnD,GAAG,OAAO,CAAC;IACV,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9B,CAAC,CAuCD;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,IAAI,EAAE,wBAAwB,GAAG,gBAAgB,CAAC;CACnD,GAAG,OAAO,CAAC;IACV,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9B,CAAC,CAwCD"}
@@ -0,0 +1,72 @@
1
+ import { buildStreamingMultipart } from "../../utils/client-utils.js";
2
+ const DEFAULT_TIMEOUT_MS = 120000; // 120 seconds
3
+ export async function uploadFile(params) {
4
+ const { file, expirationDate, options, client, path } = params;
5
+ const timeoutMs = options?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
6
+ try {
7
+ const { error, data } = await client.POST(path, {
8
+ body: {
9
+ file,
10
+ expirationDate,
11
+ },
12
+ signal: AbortSignal.timeout(timeoutMs),
13
+ bodySerializer: (body) => {
14
+ const parsed = body;
15
+ const formData = new FormData();
16
+ if (parsed.expirationDate) {
17
+ formData.set("expirationDate", parsed.expirationDate);
18
+ }
19
+ formData.set("file", parsed.file);
20
+ return formData;
21
+ },
22
+ });
23
+ return { error, data: { uploadId: data?.data.id } };
24
+ }
25
+ catch (e) {
26
+ const err = e;
27
+ if (err?.name === "AbortError" ||
28
+ err?.constructor?.name === "DOMException") {
29
+ return {
30
+ error: {
31
+ name: "TimeoutError",
32
+ detail: "Upload aborted after reaching timeout",
33
+ requestId: "",
34
+ code: "TIMEOUT_ERROR",
35
+ },
36
+ };
37
+ }
38
+ throw err;
39
+ }
40
+ }
41
+ export async function uploadStreamFile(params) {
42
+ const { file, filename, mimeType, expirationDate, options, client, path } = params;
43
+ const timeoutMs = options?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
44
+ try {
45
+ const stream = file instanceof Blob ? file.stream() : file;
46
+ const { body, contentType } = buildStreamingMultipart(stream, filename, mimeType, expirationDate);
47
+ const { error, data } = await client.POST(path, {
48
+ body: {},
49
+ signal: AbortSignal.timeout(timeoutMs),
50
+ headers: { "content-type": contentType },
51
+ bodySerializer: () => body,
52
+ duplex: "half",
53
+ });
54
+ return { error, data: { uploadId: data?.data.id } };
55
+ }
56
+ catch (e) {
57
+ const err = e;
58
+ if (err?.name === "AbortError" ||
59
+ err?.constructor?.name === "DOMException") {
60
+ return {
61
+ error: {
62
+ name: "TimeoutError",
63
+ detail: "Upload aborted after reaching timeout",
64
+ requestId: "",
65
+ code: "TIMEOUT_ERROR",
66
+ },
67
+ };
68
+ }
69
+ throw err;
70
+ }
71
+ }
72
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/client/clients/upload/shared.ts"],"names":[],"mappings":"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"}
@@ -148,6 +148,21 @@ export declare class UploadSupport {
148
148
  uploadId?: string;
149
149
  };
150
150
  }>;
151
+ uploadStreamFile(file: ReadableStream<Uint8Array> | Blob, filename: string, mimeType: string, expirationDate?: string, options?: {
152
+ timeoutMs?: number;
153
+ }): Promise<{
154
+ error?: {
155
+ code: string;
156
+ detail: string;
157
+ requestId: string;
158
+ name: string;
159
+ validation?: unknown;
160
+ validationContext?: string;
161
+ };
162
+ data?: {
163
+ uploadId?: string;
164
+ };
165
+ }>;
151
166
  shareFile(fileId: string, ...userIds: string[]): Promise<import("../../utils/client-utils.js").DataResponseValue<{
152
167
  parameters: {
153
168
  query?: never;
@@ -1 +1 @@
1
- {"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../../../src/client/clients/upload/support.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAMtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAC9C,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GAAG,SAAS;IAGvC,qBAAqB,CACzB,KAAK,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;;iBA+Gkwb,CAAC;sBAA8B,CAAC;8BAA4C,CAAC;;kBAAmD,CAAC;gBAA6B,CAAC;kBAA+B,CAAC;;;;;;;;;;;;8BAA0c,CAAC;;;;;;;;;gDAAggB,CAAC;8CAA4D,CAAC;qCAAmD,CAAC;;;;;;;;;;;;;;;kCAAukB,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;;kCAAsiB,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;IAjGlygB,QAAQ,CACZ,MAAM,EAAE,KAAK,CAAC,sCAAsC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;kCAgGivJ,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;;kCAAsiB,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;;;;IAnEl/K,UAAU,CACd,IAAI,EAAE,IAAI,EACV,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/B,OAAO,CAAC;QACT,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;QACF,IAAI,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC9B,CAAC;IAwCF,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE;;iBAaijuB,CAAC;kBAA+B,CAAC;gBAA6B,CAAC;kBAA+B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAA48C,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;;kCAAsiB,CAAC;yCAAwD,CAAC;;;;;;;;;;;CADryyB"}
1
+ {"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../../../src/client/clients/upload/support.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAMtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAC9C,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GAAG,SAAS;IAGvC,qBAAqB,CACzB,KAAK,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;;iBA6Gslc,CAAC;sBAA8B,CAAC;8BAA4C,CAAC;;kBAAmD,CAAC;gBAA6B,CAAC;kBAA+B,CAAC;;;;;;;;;;;;8BAA0c,CAAC;;;;;;;;;gDAAggB,CAAC;8CAA4D,CAAC;qCAAmD,CAAC;;;;;;;;;;;;;;;kCAAukB,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;;kCAAsiB,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;IA/FtnhB,QAAQ,CACZ,MAAM,EAAE,KAAK,CAAC,sCAAsC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;kCA8FqkK,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;;kCAAsiB,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;;;;IAjEt0L,UAAU,CACd,IAAI,EAAE,IAAI,EACV,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/B,OAAO,CAAC;QACT,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;QACF,IAAI,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC9B,CAAC;IAUI,gBAAgB,CACpB,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,EACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/B,OAAO,CAAC;QACT,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;QACF,IAAI,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC9B,CAAC;IAYF,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE;;iBAaq4uB,CAAC;kBAA+B,CAAC;gBAA6B,CAAC;kBAA+B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAA48C,CAAC;yCAAwD,CAAC;;;;;;;;;;;;;;kCAAsiB,CAAC;yCAAwD,CAAC;;;;;;;;;;;CADznzB"}
@@ -1,4 +1,5 @@
1
1
  import { formatError, formatResponse, throwIfEmpty, } from "../../utils/client-utils.js";
2
+ import { uploadFile, uploadStreamFile } from "./shared.js";
2
3
  export class UploadSupport {
3
4
  client;
4
5
  serviceName;
@@ -40,41 +41,24 @@ export class UploadSupport {
40
41
  }
41
42
  }
42
43
  async uploadFile(file, expirationDate, options) {
43
- const timeoutMs = options?.timeoutMs ?? 120000; // default 120s
44
- try {
45
- const { error, data } = await this.client.POST("/api/v1/support/files/", {
46
- body: {
47
- file,
48
- expirationDate,
49
- },
50
- signal: AbortSignal.timeout(timeoutMs),
51
- bodySerializer: (body) => {
52
- const parsed = body;
53
- const formData = new FormData();
54
- if (parsed.expirationDate) {
55
- formData.set("expirationDate", parsed.expirationDate);
56
- }
57
- formData.set("file", parsed.file);
58
- return formData;
59
- },
60
- });
61
- return { error, data: { uploadId: data?.data.id } };
62
- }
63
- catch (e) {
64
- const err = e;
65
- if (err?.name === "AbortError" ||
66
- err?.constructor?.name === "DOMException") {
67
- return {
68
- error: {
69
- name: "TimeoutError",
70
- detail: "Upload aborted after reaching timeout",
71
- requestId: "",
72
- code: "TIMEOUT_ERROR",
73
- },
74
- };
75
- }
76
- throw err;
77
- }
44
+ return uploadFile({
45
+ file,
46
+ expirationDate,
47
+ options,
48
+ client: this.client,
49
+ path: "/api/v1/support/files/",
50
+ });
51
+ }
52
+ async uploadStreamFile(file, filename, mimeType, expirationDate, options) {
53
+ return uploadStreamFile({
54
+ file,
55
+ filename,
56
+ mimeType,
57
+ expirationDate,
58
+ options,
59
+ client: this.client,
60
+ path: "/api/v1/support/files/",
61
+ });
78
62
  }
79
63
  shareFile(fileId, ...userIds) {
80
64
  throwIfEmpty(fileId);
@@ -1 +1 @@
1
- {"version":3,"file":"support.js","sourceRoot":"","sources":["../../../../src/client/clients/upload/support.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"support.js","sourceRoot":"","sources":["../../../../src/client/clients/upload/support.ts"],"names":[],"mappings":"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"}
@@ -21,4 +21,13 @@ export declare function parseJwtToken(token: string): {
21
21
  };
22
22
  export declare function getNumberValueFromObject(object: Record<string, unknown>, key: string): number;
23
23
  export declare function throwIfEmpty(input: string | string[]): void;
24
+ /**
25
+ * Builds a streaming multipart/form-data body from a ReadableStream without
26
+ * buffering the file content in memory. The returned ReadableStream pipes the
27
+ * file chunks directly into the multipart envelope as they are read.
28
+ */
29
+ export declare function buildStreamingMultipart(stream: ReadableStream<Uint8Array>, filename: string, mimeType: string, expirationDate?: string): {
30
+ body: ReadableStream<Uint8Array>;
31
+ contentType: string;
32
+ };
24
33
  //# sourceMappingURL=client-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-utils.d.ts","sourceRoot":"","sources":["../../../src/client/utils/client-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,eAAe,EACf,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,eAAe,CACnD,UAAU,CACR,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAC3D,kBAAkB,CACnB,EACD,CAAC,CACF,GAAG;IACF,KAAK,EAAE,eAAe,CACpB,UAAU,CACR,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAC9D,kBAAkB,CACnB,EACD,CAAC,CACF,CAAC;CACH,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,sBAEzE;AAED,wBAAgB,uBAAuB,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAYA;AAGD,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EACtE,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC,EACjD,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAmDzB;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAC9B,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAKzB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG;IAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAeA;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,GAAG,EAAE,MAAM,GACV,MAAM,CAcR;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAI3D"}
1
+ {"version":3,"file":"client-utils.d.ts","sourceRoot":"","sources":["../../../src/client/utils/client-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,eAAe,EACf,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,eAAe,CACnD,UAAU,CACR,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAC3D,kBAAkB,CACnB,EACD,CAAC,CACF,GAAG;IACF,KAAK,EAAE,eAAe,CACpB,UAAU,CACR,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAC9D,kBAAkB,CACnB,EACD,CAAC,CACF,CAAC;CACH,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,sBAEzE;AAED,wBAAgB,uBAAuB,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAYA;AAGD,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EACtE,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC,EACjD,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAmDzB;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAC9B,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAKzB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG;IAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAeA;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,GAAG,EAAE,MAAM,GACV,MAAM,CAcR;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAI3D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,MAAM,GACtB;IAAE,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CA+C3D"}
@@ -93,4 +93,47 @@ export function throwIfEmpty(input) {
93
93
  throw Error("Parameter cannot be an empty string or array!");
94
94
  }
95
95
  }
96
+ /**
97
+ * Builds a streaming multipart/form-data body from a ReadableStream without
98
+ * buffering the file content in memory. The returned ReadableStream pipes the
99
+ * file chunks directly into the multipart envelope as they are read.
100
+ */
101
+ export function buildStreamingMultipart(stream, filename, mimeType, expirationDate) {
102
+ const boundary = `----FormBoundary${crypto.randomUUID().replace(/-/g, "")}`;
103
+ const encoder = new TextEncoder();
104
+ // Sanitize filename to prevent Content-Disposition header injection
105
+ const safeFilename = filename.replace(/["\\\r\n]/g, "_");
106
+ const parts = [];
107
+ if (expirationDate) {
108
+ parts.push(encoder.encode(`--${boundary}\r\nContent-Disposition: form-data; name="expirationDate"\r\n\r\n${expirationDate}\r\n`));
109
+ }
110
+ parts.push(encoder.encode(`--${boundary}\r\nContent-Disposition: form-data; name="file"; filename="${safeFilename}"\r\nContent-Type: ${mimeType}\r\n\r\n`));
111
+ parts.push(stream);
112
+ parts.push(encoder.encode(`\r\n--${boundary}--\r\n`));
113
+ const body = new ReadableStream({
114
+ async start(controller) {
115
+ for (const part of parts) {
116
+ if (part instanceof Uint8Array) {
117
+ controller.enqueue(part);
118
+ }
119
+ else {
120
+ const reader = part.getReader();
121
+ try {
122
+ while (true) {
123
+ const { done, value } = await reader.read();
124
+ if (done)
125
+ break;
126
+ controller.enqueue(value);
127
+ }
128
+ }
129
+ finally {
130
+ reader.releaseLock();
131
+ }
132
+ }
133
+ }
134
+ controller.close();
135
+ },
136
+ });
137
+ return { body, contentType: `multipart/form-data; boundary=${boundary}` };
138
+ }
96
139
  //# sourceMappingURL=client-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-utils.js","sourceRoot":"","sources":["../../../src/client/utils/client-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-utils.js","sourceRoot":"","sources":["../../../src/client/utils/client-utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ogcio/building-blocks-sdk",
3
- "version": "0.2.85",
3
+ "version": "0.2.86",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -11,6 +11,7 @@ import {
11
11
  throwIfEmpty,
12
12
  } from "../../utils/client-utils.js";
13
13
  import type { paths } from "./schema.js";
14
+ import { uploadFile, uploadStreamFile } from "./shared.js";
14
15
  import { UploadSupport } from "./support.js";
15
16
 
16
17
  export class Upload extends BaseClient<paths> {
@@ -175,42 +176,40 @@ export class Upload extends BaseClient<paths> {
175
176
  };
176
177
  data?: { uploadId?: string };
177
178
  }> {
178
- const timeoutMs = options?.timeoutMs ?? 120000; // default 120s
179
- try {
180
- const { error, data } = await this.client.POST("/api/v1/files/", {
181
- body: {
182
- file,
183
- expirationDate,
184
- },
185
- signal: AbortSignal.timeout(timeoutMs),
186
- bodySerializer: (body: unknown) => {
187
- const parsed = body as { file: File; expirationDate?: string };
188
- const formData = new FormData();
189
- if (parsed.expirationDate) {
190
- formData.set("expirationDate", parsed.expirationDate);
191
- }
192
- formData.set("file", parsed.file);
193
- return formData;
194
- },
195
- });
179
+ return uploadFile({
180
+ file,
181
+ expirationDate,
182
+ options,
183
+ client: this.client,
184
+ path: "/api/v1/files/",
185
+ });
186
+ }
196
187
 
197
- return { error, data: { uploadId: data?.data.id } };
198
- } catch (e: unknown) {
199
- const err = e as Error & { name?: string };
200
- if (
201
- err?.name === "AbortError" ||
202
- err?.constructor?.name === "DOMException"
203
- ) {
204
- return {
205
- error: {
206
- name: "TimeoutError",
207
- detail: "Upload aborted after reaching timeout",
208
- requestId: "",
209
- code: "TIMEOUT_ERROR",
210
- },
211
- };
212
- }
213
- throw err;
214
- }
188
+ async uploadStreamFile(
189
+ file: ReadableStream<Uint8Array> | Blob,
190
+ filename: string,
191
+ mimeType: string,
192
+ expirationDate?: string,
193
+ options?: { timeoutMs?: number },
194
+ ): Promise<{
195
+ error?: {
196
+ code: string;
197
+ detail: string;
198
+ requestId: string;
199
+ name: string;
200
+ validation?: unknown;
201
+ validationContext?: string;
202
+ };
203
+ data?: { uploadId?: string };
204
+ }> {
205
+ return uploadStreamFile({
206
+ file,
207
+ filename,
208
+ mimeType,
209
+ expirationDate,
210
+ options,
211
+ client: this.client,
212
+ path: "/api/v1/files/",
213
+ });
215
214
  }
216
215
  }
@@ -0,0 +1,122 @@
1
+ import type createClient from "openapi-fetch";
2
+ import { buildStreamingMultipart } from "../../utils/client-utils.js";
3
+ import type { paths } from "./schema.js";
4
+
5
+ const DEFAULT_TIMEOUT_MS = 120000; // 120 seconds
6
+
7
+ export async function uploadFile(params: {
8
+ file: File;
9
+ expirationDate?: string;
10
+ options?: { timeoutMs?: number };
11
+ client: ReturnType<typeof createClient<paths>>;
12
+ path: "/api/v1/support/files/" | "/api/v1/files/";
13
+ }): Promise<{
14
+ error?: {
15
+ code: string;
16
+ detail: string;
17
+ requestId: string;
18
+ name: string;
19
+ validation?: unknown;
20
+ validationContext?: string;
21
+ };
22
+ data?: { uploadId?: string };
23
+ }> {
24
+ const { file, expirationDate, options, client, path } = params;
25
+ const timeoutMs = options?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
26
+ try {
27
+ const { error, data } = await client.POST(path, {
28
+ body: {
29
+ file,
30
+ expirationDate,
31
+ },
32
+ signal: AbortSignal.timeout(timeoutMs),
33
+ bodySerializer: (body: unknown) => {
34
+ const parsed = body as { file: File; expirationDate?: string };
35
+ const formData = new FormData();
36
+ if (parsed.expirationDate) {
37
+ formData.set("expirationDate", parsed.expirationDate);
38
+ }
39
+ formData.set("file", parsed.file);
40
+ return formData;
41
+ },
42
+ });
43
+
44
+ return { error, data: { uploadId: data?.data.id } };
45
+ } catch (e: unknown) {
46
+ const err = e as Error & { name?: string };
47
+ if (
48
+ err?.name === "AbortError" ||
49
+ err?.constructor?.name === "DOMException"
50
+ ) {
51
+ return {
52
+ error: {
53
+ name: "TimeoutError",
54
+ detail: "Upload aborted after reaching timeout",
55
+ requestId: "",
56
+ code: "TIMEOUT_ERROR",
57
+ },
58
+ };
59
+ }
60
+ throw err;
61
+ }
62
+ }
63
+
64
+ export async function uploadStreamFile(params: {
65
+ file: ReadableStream<Uint8Array> | Blob;
66
+ filename: string;
67
+ mimeType: string;
68
+ expirationDate?: string;
69
+ options?: { timeoutMs?: number };
70
+ client: ReturnType<typeof createClient<paths>>;
71
+ path: "/api/v1/support/files/" | "/api/v1/files/";
72
+ }): Promise<{
73
+ error?: {
74
+ code: string;
75
+ detail: string;
76
+ requestId: string;
77
+ name: string;
78
+ validation?: unknown;
79
+ validationContext?: string;
80
+ };
81
+ data?: { uploadId?: string };
82
+ }> {
83
+ const { file, filename, mimeType, expirationDate, options, client, path } =
84
+ params;
85
+
86
+ const timeoutMs = options?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
87
+ try {
88
+ const stream = file instanceof Blob ? file.stream() : file;
89
+ const { body, contentType } = buildStreamingMultipart(
90
+ stream,
91
+ filename,
92
+ mimeType,
93
+ expirationDate,
94
+ );
95
+
96
+ const { error, data } = await client.POST(path, {
97
+ body: {} as never,
98
+ signal: AbortSignal.timeout(timeoutMs),
99
+ headers: { "content-type": contentType },
100
+ bodySerializer: () => body,
101
+ duplex: "half",
102
+ } as unknown as Parameters<typeof client.POST>[1]);
103
+
104
+ return { error, data: { uploadId: data?.data.id } };
105
+ } catch (e: unknown) {
106
+ const err = e as Error & { name?: string };
107
+ if (
108
+ err?.name === "AbortError" ||
109
+ err?.constructor?.name === "DOMException"
110
+ ) {
111
+ return {
112
+ error: {
113
+ name: "TimeoutError",
114
+ detail: "Upload aborted after reaching timeout",
115
+ requestId: "",
116
+ code: "TIMEOUT_ERROR",
117
+ },
118
+ };
119
+ }
120
+ throw err;
121
+ }
122
+ }
@@ -6,6 +6,7 @@ import {
6
6
  throwIfEmpty,
7
7
  } from "../../utils/client-utils.js";
8
8
  import type { paths } from "./schema.js";
9
+ import { uploadFile, uploadStreamFile } from "./shared.js";
9
10
 
10
11
  export class UploadSupport {
11
12
  constructor(
@@ -74,43 +75,41 @@ export class UploadSupport {
74
75
  };
75
76
  data?: { uploadId?: string };
76
77
  }> {
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
- });
78
+ return uploadFile({
79
+ file,
80
+ expirationDate,
81
+ options,
82
+ client: this.client,
83
+ path: "/api/v1/support/files/",
84
+ });
85
+ }
95
86
 
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
- }
87
+ async uploadStreamFile(
88
+ file: ReadableStream<Uint8Array> | Blob,
89
+ filename: string,
90
+ mimeType: string,
91
+ expirationDate?: string,
92
+ options?: { timeoutMs?: number },
93
+ ): Promise<{
94
+ error?: {
95
+ code: string;
96
+ detail: string;
97
+ requestId: string;
98
+ name: string;
99
+ validation?: unknown;
100
+ validationContext?: string;
101
+ };
102
+ data?: { uploadId?: string };
103
+ }> {
104
+ return uploadStreamFile({
105
+ file,
106
+ filename,
107
+ mimeType,
108
+ expirationDate,
109
+ options,
110
+ client: this.client,
111
+ path: "/api/v1/support/files/",
112
+ });
114
113
  }
115
114
 
116
115
  shareFile(fileId: string, ...userIds: string[]) {
@@ -163,3 +163,62 @@ export function throwIfEmpty(input: string | string[]): void {
163
163
  throw Error("Parameter cannot be an empty string or array!");
164
164
  }
165
165
  }
166
+
167
+ /**
168
+ * Builds a streaming multipart/form-data body from a ReadableStream without
169
+ * buffering the file content in memory. The returned ReadableStream pipes the
170
+ * file chunks directly into the multipart envelope as they are read.
171
+ */
172
+ export function buildStreamingMultipart(
173
+ stream: ReadableStream<Uint8Array>,
174
+ filename: string,
175
+ mimeType: string,
176
+ expirationDate?: string,
177
+ ): { body: ReadableStream<Uint8Array>; contentType: string } {
178
+ const boundary = `----FormBoundary${crypto.randomUUID().replace(/-/g, "")}`;
179
+ const encoder = new TextEncoder();
180
+ // Sanitize filename to prevent Content-Disposition header injection
181
+ const safeFilename = filename.replace(/["\\\r\n]/g, "_");
182
+
183
+ const parts: (Uint8Array | ReadableStream<Uint8Array>)[] = [];
184
+
185
+ if (expirationDate) {
186
+ parts.push(
187
+ encoder.encode(
188
+ `--${boundary}\r\nContent-Disposition: form-data; name="expirationDate"\r\n\r\n${expirationDate}\r\n`,
189
+ ),
190
+ );
191
+ }
192
+
193
+ parts.push(
194
+ encoder.encode(
195
+ `--${boundary}\r\nContent-Disposition: form-data; name="file"; filename="${safeFilename}"\r\nContent-Type: ${mimeType}\r\n\r\n`,
196
+ ),
197
+ );
198
+ parts.push(stream);
199
+ parts.push(encoder.encode(`\r\n--${boundary}--\r\n`));
200
+
201
+ const body = new ReadableStream<Uint8Array>({
202
+ async start(controller) {
203
+ for (const part of parts) {
204
+ if (part instanceof Uint8Array) {
205
+ controller.enqueue(part);
206
+ } else {
207
+ const reader = part.getReader();
208
+ try {
209
+ while (true) {
210
+ const { done, value } = await reader.read();
211
+ if (done) break;
212
+ controller.enqueue(value);
213
+ }
214
+ } finally {
215
+ reader.releaseLock();
216
+ }
217
+ }
218
+ }
219
+ controller.close();
220
+ },
221
+ });
222
+
223
+ return { body, contentType: `multipart/form-data; boundary=${boundary}` };
224
+ }