@distilled.cloud/core 0.19.0 → 0.19.1

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 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/lib/client.js CHANGED
@@ -177,6 +177,56 @@ function buildFormData(body) {
177
177
  }
178
178
  return formData;
179
179
  }
180
+ /**
181
+ * Set a raw binary HTTP request body.
182
+ *
183
+ * Used for `T.Http({ contentType: "binary" })` operations (e.g. R2 PutObject)
184
+ * where `parts.body` is the value of the lone `T.HttpBody()` field — wide
185
+ * input types are accepted: `Blob`, `Uint8Array`, `ArrayBuffer`, `string`,
186
+ * web `ReadableStream<Uint8Array>`, or Effect `Stream.Stream<Uint8Array>`.
187
+ * Stream-shaped inputs are sent as true streaming `HttpBody.stream(...)`
188
+ * uploads.
189
+ *
190
+ * The `Content-Type` header is left untouched (the operation's
191
+ * `content-type` header field already populated `parts.headers`).
192
+ */
193
+ function setBinaryBody(request, body) {
194
+ if (body instanceof Uint8Array) {
195
+ return Effect.succeed(HttpClientRequest.setBody(HttpBody.uint8Array(body))(request));
196
+ }
197
+ if (typeof ArrayBuffer !== "undefined" && body instanceof ArrayBuffer) {
198
+ return Effect.succeed(HttpClientRequest.setBody(HttpBody.uint8Array(new Uint8Array(body)))(request));
199
+ }
200
+ if (typeof Blob !== "undefined" && body instanceof Blob) {
201
+ // Stream the Blob through `HttpBody.stream` rather than buffering — keeps
202
+ // memory bounded for large uploads.
203
+ const blob = body;
204
+ const blobStream = Stream.fromReadableStream({
205
+ evaluate: () => blob.stream(),
206
+ onError: (cause) => new HttpBody.HttpBodyError({ reason: { _tag: "JsonError" }, cause }),
207
+ });
208
+ return Effect.succeed(HttpClientRequest.setBody(HttpBody.stream(blobStream))(request));
209
+ }
210
+ if (typeof ReadableStream !== "undefined" && body instanceof ReadableStream) {
211
+ const rs = body;
212
+ const rsStream = Stream.fromReadableStream({
213
+ evaluate: () => rs,
214
+ onError: (cause) => new HttpBody.HttpBodyError({ reason: { _tag: "JsonError" }, cause }),
215
+ });
216
+ return Effect.succeed(HttpClientRequest.setBody(HttpBody.stream(rsStream))(request));
217
+ }
218
+ if (Stream.isStream(body)) {
219
+ // Effect Stream — pass straight through to `HttpBody.stream`.
220
+ return Effect.succeed(HttpClientRequest.setBody(HttpBody.stream(body))(request));
221
+ }
222
+ if (typeof body === "string") {
223
+ return Effect.succeed(HttpClientRequest.setBody(HttpBody.text(body))(request));
224
+ }
225
+ return Effect.fail(new HttpBody.HttpBodyError({
226
+ reason: { _tag: "JsonError" },
227
+ cause: new TypeError(`Binary HTTP body must be a Blob, Uint8Array, ArrayBuffer, ReadableStream, Stream<Uint8Array>, or string; got ${body === null ? "null" : typeof body}`),
228
+ }));
229
+ }
180
230
  // ============================================================================
181
231
  // API Client Factory
182
232
  // ============================================================================
@@ -254,12 +304,24 @@ export const makeAPI = (config) => {
254
304
  let request = HttpClientRequest.make(method)(baseUrl + parts.path).pipe(HttpClientRequest.setHeaders(authHeaders), HttpClientRequest.setHeaders(parts.headers), HttpClientRequest.setHeader("Accept", "application/json"));
255
305
  // Set Content-Type based on body type
256
306
  // - Skip for FormData (multipart) — browser sets boundary
307
+ // - Skip for binary — `parts.headers` already carries a caller-supplied
308
+ // `content-type` header (e.g. R2 PutObject's `content-type` field)
257
309
  // - Use form-urlencoded for Stripe-style APIs
258
310
  // - Default to JSON
259
311
  const isFormUrlEncoded = httpTrait.contentType === "form-urlencoded";
312
+ const isBinaryBody = httpTrait.contentType === "binary";
260
313
  if (parts.isMultipart) {
261
314
  // browser/runtime sets Content-Type with boundary
262
315
  }
316
+ else if (isBinaryBody) {
317
+ // Caller's `content-type` header (already applied via
318
+ // `setHeaders(parts.headers)`) wins. If they didn't set one, fall
319
+ // back to a generic octet-stream so the request is still well-formed.
320
+ if (!("content-type" in parts.headers) &&
321
+ !("Content-Type" in parts.headers)) {
322
+ request = HttpClientRequest.setHeader("Content-Type", "application/octet-stream")(request);
323
+ }
324
+ }
263
325
  else if (isFormUrlEncoded) {
264
326
  request = HttpClientRequest.setHeader("Content-Type", "application/x-www-form-urlencoded")(request);
265
327
  }
@@ -275,6 +337,12 @@ export const makeAPI = (config) => {
275
337
  const formData = buildFormData(parts.body);
276
338
  request = HttpClientRequest.setBody(HttpBody.formData(formData))(request);
277
339
  }
340
+ else if (isBinaryBody) {
341
+ // Raw binary HTTP body — `parts.body` is the value of the lone
342
+ // `T.HttpBody()` field (e.g. a `Blob`, `Uint8Array`, or string),
343
+ // not a record of body fields.
344
+ request = yield* setBinaryBody(request, parts.body);
345
+ }
278
346
  else if (isFormUrlEncoded) {
279
347
  // Encode body as form-urlencoded with deepObject bracket notation
280
348
  const encoded = buildFormUrlEncoded(parts.body);
@@ -335,6 +403,22 @@ export const makeAPI = (config) => {
335
403
  if (AST.isVoid(outputSchema.ast)) {
336
404
  return undefined;
337
405
  }
406
+ // Raw octet-stream download (`responseContentType: "binary"`):
407
+ // bypass the JSON/text decode path entirely. The output schema is
408
+ // a Struct shaped like `{ body: Stream<Uint8Array>, ...headers }`
409
+ // (see `T.BinaryResponseBody()` / `T.HttpResponseHeader()`); we
410
+ // populate it by reading response headers and wrapping the body
411
+ // bytes in `Stream.succeed`. We buffer through
412
+ // `response.arrayBuffer` first so the resulting stream is
413
+ // scope-free — callers can consume it after the underlying scope
414
+ // has closed. (True chunked streaming would require threading a
415
+ // Scope through every operation's return type, which would break
416
+ // the uniform `OperationMethod<I, A, E, never>` shape.)
417
+ if (httpTrait.responseContentType === "binary") {
418
+ const bytes = yield* response.arrayBuffer;
419
+ const stream = Stream.succeed(new Uint8Array(bytes));
420
+ return Traits.buildBinaryResponse(outputSchema.ast, stream, response.headers);
421
+ }
338
422
  // For 204 No Content: if schema is not Unknown, return undefined.
339
423
  // If schema IS Unknown, return empty string (so callers get a defined value).
340
424
  if (response.status === 204) {
package/lib/client.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Cloud-agnostic binary HTTP body schemas.
3
+ *
4
+ * These schemas describe the wire-shape of raw byte bodies — request bodies
5
+ * for `application/octet-stream` uploads (e.g. R2 PutObject, S3 PutObject,
6
+ * GCS object insert) and response bodies for the corresponding downloads.
7
+ * They are intentionally cloud-agnostic so every distilled SDK can share a
8
+ * single binary-body contract.
9
+ */
10
+ import * as Schema from "effect/Schema";
11
+ import * as Stream from "effect/Stream";
12
+ import type * as HttpClientError from "effect/unstable/http/HttpClientError";
13
+ /**
14
+ * Schema for `Blob` request bodies (browser/web standard binary blob).
15
+ */
16
+ export declare const BlobSchema: Schema.declare<Blob, Blob>;
17
+ /**
18
+ * Schema for `Uint8Array` request bodies.
19
+ */
20
+ export declare const Uint8ArraySchema: Schema.declare<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>;
21
+ /**
22
+ * Schema for `ArrayBuffer` request bodies.
23
+ */
24
+ export declare const ArrayBufferSchema: Schema.declare<ArrayBuffer, ArrayBuffer>;
25
+ /**
26
+ * Schema for `ReadableStream<Uint8Array>` request bodies (web-platform
27
+ * streaming API).
28
+ */
29
+ export declare const ReadableStreamSchema: Schema.declare<ReadableStream<Uint8Array<ArrayBufferLike>>, ReadableStream<Uint8Array<ArrayBufferLike>>>;
30
+ /**
31
+ * Schema for Effect `Stream.Stream<Uint8Array>` request bodies. Accepts any
32
+ * Stream regardless of error/requirements channels — the runtime treats it
33
+ * as an opaque source of bytes.
34
+ */
35
+ export declare const StreamSchema: Schema.declare<Stream.Stream<Uint8Array<ArrayBufferLike>, unknown, unknown>, Stream.Stream<Uint8Array<ArrayBufferLike>, unknown, unknown>>;
36
+ /**
37
+ * Schema for raw `application/octet-stream` request bodies (e.g. R2
38
+ * `PutObject`, S3 `PutObject`). Inputs are intentionally wide — any
39
+ * standard JS binary source plus Effect `Stream.Stream<Uint8Array>` is
40
+ * accepted. The on-the-wire `Content-Type` is supplied by the caller
41
+ * through the operation's `content-type` header field; the runtime falls
42
+ * back to `application/octet-stream` when none is provided.
43
+ */
44
+ export declare const BinaryBodySchema: Schema.Union<readonly [Schema.declare<Blob, Blob>, Schema.declare<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>, Schema.declare<ArrayBuffer, ArrayBuffer>, Schema.declare<ReadableStream<Uint8Array<ArrayBufferLike>>, ReadableStream<Uint8Array<ArrayBufferLike>>>, Schema.declare<Stream.Stream<Uint8Array<ArrayBufferLike>, unknown, unknown>, Stream.Stream<Uint8Array<ArrayBufferLike>, unknown, unknown>>, Schema.String]>;
45
+ /**
46
+ * TypeScript type for raw HTTP request body content. Inputs are wide;
47
+ * outputs (downloads) are always Effect `Stream.Stream<Uint8Array>`.
48
+ */
49
+ export type BinaryBody = Blob | Uint8Array | ArrayBuffer | ReadableStream<Uint8Array> | Stream.Stream<Uint8Array, unknown, unknown> | string;
50
+ /**
51
+ * Marker schema for raw `application/octet-stream` download responses (e.g.
52
+ * R2 `GetObject`). The runtime never decodes through this schema — it
53
+ * detects `responseContentType: "binary"` on the operation's HTTP trait and
54
+ * surfaces the response body directly as an Effect
55
+ * `Stream.Stream<Uint8Array, HttpClientError.HttpClientError>`. This schema
56
+ * is exported solely so generated service files have something to assign
57
+ * to the operation's output schema slot.
58
+ */
59
+ export declare const BinaryStreamResponseSchema: Schema.declare<Stream.Stream<Uint8Array<ArrayBufferLike>, HttpClientError.HttpClientError, never>, Stream.Stream<Uint8Array<ArrayBufferLike>, HttpClientError.HttpClientError, never>>;
60
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,eAAe,MAAM,sCAAsC,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,UAAU,4BAOtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,0EAO5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,0CAO7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,0GAQhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,4IAQxB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,8aAO3B,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,UAAU,GAClB,IAAI,GACJ,UAAU,GACV,WAAW,GACX,cAAc,CAAC,UAAU,CAAC,GAC1B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,GAC3C,MAAM,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,wLAUtC,CAAC"}
package/lib/schemas.js ADDED
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Cloud-agnostic binary HTTP body schemas.
3
+ *
4
+ * These schemas describe the wire-shape of raw byte bodies — request bodies
5
+ * for `application/octet-stream` uploads (e.g. R2 PutObject, S3 PutObject,
6
+ * GCS object insert) and response bodies for the corresponding downloads.
7
+ * They are intentionally cloud-agnostic so every distilled SDK can share a
8
+ * single binary-body contract.
9
+ */
10
+ import * as Schema from "effect/Schema";
11
+ import * as Stream from "effect/Stream";
12
+ /**
13
+ * Schema for `Blob` request bodies (browser/web standard binary blob).
14
+ */
15
+ export const BlobSchema = Schema.declare((input) => typeof Blob !== "undefined" && input instanceof Blob, {
16
+ identifier: "Blob",
17
+ description: "A Blob to send as the raw HTTP request body",
18
+ });
19
+ /**
20
+ * Schema for `Uint8Array` request bodies.
21
+ */
22
+ export const Uint8ArraySchema = Schema.declare((input) => typeof Uint8Array !== "undefined" && input instanceof Uint8Array, {
23
+ identifier: "Uint8Array",
24
+ description: "A Uint8Array to send as the raw HTTP request body",
25
+ });
26
+ /**
27
+ * Schema for `ArrayBuffer` request bodies.
28
+ */
29
+ export const ArrayBufferSchema = Schema.declare((input) => typeof ArrayBuffer !== "undefined" && input instanceof ArrayBuffer, {
30
+ identifier: "ArrayBuffer",
31
+ description: "An ArrayBuffer to send as the raw HTTP request body",
32
+ });
33
+ /**
34
+ * Schema for `ReadableStream<Uint8Array>` request bodies (web-platform
35
+ * streaming API).
36
+ */
37
+ export const ReadableStreamSchema = Schema.declare((input) => typeof ReadableStream !== "undefined" && input instanceof ReadableStream, {
38
+ identifier: "ReadableStream",
39
+ description: "A ReadableStream<Uint8Array> to send as the raw HTTP request body",
40
+ });
41
+ /**
42
+ * Schema for Effect `Stream.Stream<Uint8Array>` request bodies. Accepts any
43
+ * Stream regardless of error/requirements channels — the runtime treats it
44
+ * as an opaque source of bytes.
45
+ */
46
+ export const StreamSchema = Schema.declare((input) => Stream.isStream(input), {
47
+ identifier: "Stream",
48
+ description: "An Effect Stream.Stream<Uint8Array> to send as the raw HTTP request body",
49
+ });
50
+ /**
51
+ * Schema for raw `application/octet-stream` request bodies (e.g. R2
52
+ * `PutObject`, S3 `PutObject`). Inputs are intentionally wide — any
53
+ * standard JS binary source plus Effect `Stream.Stream<Uint8Array>` is
54
+ * accepted. The on-the-wire `Content-Type` is supplied by the caller
55
+ * through the operation's `content-type` header field; the runtime falls
56
+ * back to `application/octet-stream` when none is provided.
57
+ */
58
+ export const BinaryBodySchema = Schema.Union([
59
+ BlobSchema,
60
+ Uint8ArraySchema,
61
+ ArrayBufferSchema,
62
+ ReadableStreamSchema,
63
+ StreamSchema,
64
+ Schema.String,
65
+ ]);
66
+ /**
67
+ * Marker schema for raw `application/octet-stream` download responses (e.g.
68
+ * R2 `GetObject`). The runtime never decodes through this schema — it
69
+ * detects `responseContentType: "binary"` on the operation's HTTP trait and
70
+ * surfaces the response body directly as an Effect
71
+ * `Stream.Stream<Uint8Array, HttpClientError.HttpClientError>`. This schema
72
+ * is exported solely so generated service files have something to assign
73
+ * to the operation's output schema slot.
74
+ */
75
+ export const BinaryStreamResponseSchema = Schema.declare((input) => Stream.isStream(input), {
76
+ identifier: "BinaryStreamResponse",
77
+ description: "An Effect Stream.Stream<Uint8Array> surfacing a raw octet-stream download response",
78
+ });
79
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CACtC,CAAC,KAAK,EAAiB,EAAE,CACvB,OAAO,IAAI,KAAK,WAAW,IAAI,KAAK,YAAY,IAAI,EACtD;IACE,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,6CAA6C;CAC3D,CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAC5C,CAAC,KAAK,EAAuB,EAAE,CAC7B,OAAO,UAAU,KAAK,WAAW,IAAI,KAAK,YAAY,UAAU,EAClE;IACE,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,mDAAmD;CACjE,CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAC7C,CAAC,KAAK,EAAwB,EAAE,CAC9B,OAAO,WAAW,KAAK,WAAW,IAAI,KAAK,YAAY,WAAW,EACpE;IACE,UAAU,EAAE,aAAa;IACzB,WAAW,EAAE,qDAAqD;CACnE,CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAChD,CAAC,KAAK,EAAuC,EAAE,CAC7C,OAAO,cAAc,KAAK,WAAW,IAAI,KAAK,YAAY,cAAc,EAC1E;IACE,UAAU,EAAE,gBAAgB;IAC5B,WAAW,EACT,mEAAmE;CACtE,CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CACxC,CAAC,KAAK,EAAwD,EAAE,CAC9D,MAAM,CAAC,QAAQ,CAAC,KAAiD,CAAC,EACpE;IACE,UAAU,EAAE,QAAQ;IACpB,WAAW,EACT,0EAA0E;CAC7E,CACF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3C,UAAU;IACV,gBAAgB;IAChB,iBAAiB;IACjB,oBAAoB;IACpB,YAAY;IACZ,MAAM,CAAC,MAAM;CACd,CAAC,CAAC;AAcH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,OAAO,CACtD,CACE,KAAK,EACgE,EAAE,CACvE,MAAM,CAAC,QAAQ,CAAC,KAAiD,CAAC,EACpE;IACE,UAAU,EAAE,sBAAsB;IAClC,WAAW,EACT,oFAAoF;CACvF,CACF,CAAC"}
package/lib/traits.d.ts CHANGED
@@ -52,8 +52,25 @@ export interface HttpTrait {
52
52
  method: HttpMethod;
53
53
  /** Path template with {param} placeholders */
54
54
  path: string;
55
- /** Content type override (e.g., "multipart") */
55
+ /**
56
+ * Request body content type. Recognized values:
57
+ * - `"multipart"` — `multipart/form-data` (file uploads)
58
+ * - `"form-urlencoded"` — `application/x-www-form-urlencoded`
59
+ * - `"binary"` — `application/octet-stream` (raw byte body
60
+ * accepting `Blob | Uint8Array | ArrayBuffer |
61
+ * string | Stream<Uint8Array> | ReadableStream`)
62
+ * - `undefined` — JSON
63
+ */
56
64
  contentType?: string;
65
+ /**
66
+ * Response body content type. Recognized values:
67
+ * - `"binary"` — `application/octet-stream` download. The runtime
68
+ * bypasses JSON decoding and returns the body as an
69
+ * Effect `Stream.Stream<Uint8Array>`.
70
+ * - `undefined` — JSON / text decoded through the operation's output
71
+ * schema.
72
+ */
73
+ responseContentType?: string;
57
74
  /** Whether the request has a body (used by GCP generator) */
58
75
  hasBody?: boolean;
59
76
  }
@@ -139,6 +156,30 @@ export declare const httpBodySymbol: unique symbol;
139
156
  * (not a named field within a JSON body).
140
157
  */
141
158
  export declare const HttpBody: () => Annotation;
159
+ /** Symbol for binary response body annotation */
160
+ export declare const binaryResponseBodySymbol: unique symbol;
161
+ /**
162
+ * BinaryResponseBody - marks a response struct field as the raw binary body
163
+ * of an `application/octet-stream` download. The runtime fills the field
164
+ * with an Effect `Stream.Stream<Uint8Array>` of the response body. Sibling
165
+ * fields annotated with `T.HttpResponseHeader` are populated from the
166
+ * matching response headers.
167
+ */
168
+ export declare const BinaryResponseBody: () => Annotation;
169
+ /** Symbol for response header annotation */
170
+ export declare const responseHeaderSymbol: unique symbol;
171
+ /**
172
+ * HttpResponseHeader - marks a response struct field as a value pulled from
173
+ * a named HTTP response header (e.g. `etag`, `content-type`). The runtime
174
+ * populates the field with the (lowercased) header value if present, and
175
+ * leaves it `undefined` otherwise. Mirror of `T.HttpHeader` for response-
176
+ * side header extraction.
177
+ *
178
+ * Currently consumed by binary-download operations (operations whose
179
+ * `T.Http({ responseContentType: "binary" })` trait is set), where the
180
+ * response struct's shape is `{ body: Stream.Stream<Uint8Array>, ...headers }`.
181
+ */
182
+ export declare const HttpResponseHeader: (name: string) => Annotation;
142
183
  /** Symbol for GraphQL operation metadata (query string + operation name) */
143
184
  export declare const graphqlOpSymbol: unique symbol;
144
185
  /** GraphQL operation type */
@@ -339,6 +380,22 @@ export interface RequestParts {
339
380
  isMultipart: boolean;
340
381
  }
341
382
  export declare const buildRequestParts: (ast: AST.AST, httpTrait: HttpTrait, rawInput: Record<string, unknown>, inputSchema?: any) => RequestParts;
383
+ /**
384
+ * Build the response object for a binary-download operation
385
+ * (`T.Http({ responseContentType: "binary" })`).
386
+ *
387
+ * The output schema is expected to be a Struct with one field annotated
388
+ * `T.BinaryResponseBody()` (the `body` field — populated with the supplied
389
+ * `Stream`) and zero-or-more sibling fields annotated
390
+ * `T.HttpResponseHeader(name)` (populated by reading the named response
391
+ * header). Header lookups are case-insensitive.
392
+ *
393
+ * Header values are coerced to the field's declared primitive type so that
394
+ * `content-length` lands as a `number`, `last-modified` as a `Date` (when
395
+ * the schema declares `Schema.Date`), etc. Anything more exotic stays a
396
+ * raw string.
397
+ */
398
+ export declare const buildBinaryResponse: (ast: AST.AST, body: unknown, responseHeaders: Record<string, string>) => Record<string, unknown>;
342
399
  /**
343
400
  * Helper to get a value from an object using a dot-separated path.
344
401
  * Used for pagination traits and nested property access.
@@ -1 +1 @@
1
- {"version":3,"file":"traits.d.ts","sourceRoot":"","sources":["../src/traits.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traits.d.ts","sourceRoot":"","sources":["../src/traits.ts"],"names":[],"mappings":"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"}
package/lib/traits.js CHANGED
@@ -165,6 +165,30 @@ export const httpBodySymbol = Symbol.for("@distilled.cloud/http-body");
165
165
  * (not a named field within a JSON body).
166
166
  */
167
167
  export const HttpBody = () => makeAnnotation(httpBodySymbol, true);
168
+ /** Symbol for binary response body annotation */
169
+ export const binaryResponseBodySymbol = Symbol.for("@distilled.cloud/binary-response-body");
170
+ /**
171
+ * BinaryResponseBody - marks a response struct field as the raw binary body
172
+ * of an `application/octet-stream` download. The runtime fills the field
173
+ * with an Effect `Stream.Stream<Uint8Array>` of the response body. Sibling
174
+ * fields annotated with `T.HttpResponseHeader` are populated from the
175
+ * matching response headers.
176
+ */
177
+ export const BinaryResponseBody = () => makeAnnotation(binaryResponseBodySymbol, true);
178
+ /** Symbol for response header annotation */
179
+ export const responseHeaderSymbol = Symbol.for("@distilled.cloud/response-header");
180
+ /**
181
+ * HttpResponseHeader - marks a response struct field as a value pulled from
182
+ * a named HTTP response header (e.g. `etag`, `content-type`). The runtime
183
+ * populates the field with the (lowercased) header value if present, and
184
+ * leaves it `undefined` otherwise. Mirror of `T.HttpHeader` for response-
185
+ * side header extraction.
186
+ *
187
+ * Currently consumed by binary-download operations (operations whose
188
+ * `T.Http({ responseContentType: "binary" })` trait is set), where the
189
+ * response struct's shape is `{ body: Stream.Stream<Uint8Array>, ...headers }`.
190
+ */
191
+ export const HttpResponseHeader = (name) => makeAnnotation(responseHeaderSymbol, name);
168
192
  /** Symbol for GraphQL operation metadata (query string + operation name) */
169
193
  export const graphqlOpSymbol = Symbol.for("@distilled.cloud/graphql-op");
170
194
  /**
@@ -582,6 +606,78 @@ inputSchema) => {
582
606
  isMultipart,
583
607
  };
584
608
  };
609
+ /**
610
+ * Build the response object for a binary-download operation
611
+ * (`T.Http({ responseContentType: "binary" })`).
612
+ *
613
+ * The output schema is expected to be a Struct with one field annotated
614
+ * `T.BinaryResponseBody()` (the `body` field — populated with the supplied
615
+ * `Stream`) and zero-or-more sibling fields annotated
616
+ * `T.HttpResponseHeader(name)` (populated by reading the named response
617
+ * header). Header lookups are case-insensitive.
618
+ *
619
+ * Header values are coerced to the field's declared primitive type so that
620
+ * `content-length` lands as a `number`, `last-modified` as a `Date` (when
621
+ * the schema declares `Schema.Date`), etc. Anything more exotic stays a
622
+ * raw string.
623
+ */
624
+ export const buildBinaryResponse = (ast, body, responseHeaders) => {
625
+ const lowercased = {};
626
+ for (const [k, v] of Object.entries(responseHeaders)) {
627
+ lowercased[k.toLowerCase()] = v;
628
+ }
629
+ const props = getStructProps(ast);
630
+ const result = {};
631
+ for (const prop of props) {
632
+ const tsName = String(prop.name);
633
+ const isBody = getAnnotation(prop.type, binaryResponseBodySymbol);
634
+ if (isBody) {
635
+ result[tsName] = body;
636
+ continue;
637
+ }
638
+ const headerName = getAnnotation(prop.type, responseHeaderSymbol);
639
+ if (headerName !== undefined) {
640
+ const raw = lowercased[headerName.toLowerCase()];
641
+ if (raw === undefined)
642
+ continue;
643
+ result[tsName] = coerceHeaderValue(raw, prop.type);
644
+ }
645
+ }
646
+ return result;
647
+ };
648
+ /**
649
+ * Best-effort coercion of a raw HTTP header string to whichever primitive
650
+ * the response schema declares. Falls back to the original string for
651
+ * anything we don't recognize — the schema's decode step (which the binary
652
+ * runtime path skips) would have done the same coercion for JSON bodies.
653
+ */
654
+ const coerceHeaderValue = (raw, propType) => {
655
+ // Walk through Suspends / Optionals / Encoded chains to the underlying type.
656
+ let inner = propType;
657
+ while (inner.encoding && inner.encoding.length > 0) {
658
+ inner = inner.encoding[0].to;
659
+ }
660
+ if (inner._tag === "Suspend")
661
+ inner = inner.thunk();
662
+ // `Schema.optional(Schema.X)` shows up as a Union with `undefined`/void.
663
+ if (inner._tag === "Union") {
664
+ const nonOptional = inner.types.find((t) => t._tag !== "Void" && t._tag !== "Never");
665
+ if (nonOptional)
666
+ inner = nonOptional;
667
+ }
668
+ if (inner._tag === "Number") {
669
+ const n = Number(raw);
670
+ return Number.isFinite(n) ? n : raw;
671
+ }
672
+ if (inner._tag === "Boolean") {
673
+ if (raw === "true")
674
+ return true;
675
+ if (raw === "false")
676
+ return false;
677
+ return raw;
678
+ }
679
+ return raw;
680
+ };
585
681
  /**
586
682
  * Helper to get a value from an object using a dot-separated path.
587
683
  * Used for pagination traits and nested property access.
package/lib/traits.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"traits.js","sourceRoot":"","sources":["../src/traits.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traits.js","sourceRoot":"","sources":["../src/traits.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@distilled.cloud/core",
3
- "version": "0.19.0",
3
+ "version": "0.19.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/alchemy-run/distilled",
@@ -48,6 +48,11 @@
48
48
  "bun": "./src/retry-after.ts",
49
49
  "default": "./lib/retry-after.js"
50
50
  },
51
+ "./schemas": {
52
+ "types": "./lib/schemas.d.ts",
53
+ "bun": "./src/schemas.ts",
54
+ "default": "./lib/schemas.js"
55
+ },
51
56
  "./sensitive": {
52
57
  "types": "./lib/sensitive.d.ts",
53
58
  "bun": "./src/sensitive.ts",
package/src/client.ts CHANGED
@@ -378,6 +378,84 @@ function buildFormData(body: Record<string, unknown>): FormData {
378
378
  return formData;
379
379
  }
380
380
 
381
+ /**
382
+ * Set a raw binary HTTP request body.
383
+ *
384
+ * Used for `T.Http({ contentType: "binary" })` operations (e.g. R2 PutObject)
385
+ * where `parts.body` is the value of the lone `T.HttpBody()` field — wide
386
+ * input types are accepted: `Blob`, `Uint8Array`, `ArrayBuffer`, `string`,
387
+ * web `ReadableStream<Uint8Array>`, or Effect `Stream.Stream<Uint8Array>`.
388
+ * Stream-shaped inputs are sent as true streaming `HttpBody.stream(...)`
389
+ * uploads.
390
+ *
391
+ * The `Content-Type` header is left untouched (the operation's
392
+ * `content-type` header field already populated `parts.headers`).
393
+ */
394
+ function setBinaryBody(
395
+ request: HttpClientRequest.HttpClientRequest,
396
+ body: unknown,
397
+ ): Effect.Effect<HttpClientRequest.HttpClientRequest, HttpBody.HttpBodyError> {
398
+ if (body instanceof Uint8Array) {
399
+ return Effect.succeed(
400
+ HttpClientRequest.setBody(HttpBody.uint8Array(body))(request),
401
+ );
402
+ }
403
+ if (typeof ArrayBuffer !== "undefined" && body instanceof ArrayBuffer) {
404
+ return Effect.succeed(
405
+ HttpClientRequest.setBody(HttpBody.uint8Array(new Uint8Array(body)))(
406
+ request,
407
+ ),
408
+ );
409
+ }
410
+ if (typeof Blob !== "undefined" && body instanceof Blob) {
411
+ // Stream the Blob through `HttpBody.stream` rather than buffering — keeps
412
+ // memory bounded for large uploads.
413
+ const blob = body;
414
+ const blobStream = Stream.fromReadableStream({
415
+ evaluate: () => blob.stream(),
416
+ onError: (cause) =>
417
+ new HttpBody.HttpBodyError({ reason: { _tag: "JsonError" }, cause }),
418
+ });
419
+ return Effect.succeed(
420
+ HttpClientRequest.setBody(HttpBody.stream(blobStream))(request),
421
+ );
422
+ }
423
+ if (typeof ReadableStream !== "undefined" && body instanceof ReadableStream) {
424
+ const rs = body as ReadableStream<Uint8Array>;
425
+ const rsStream = Stream.fromReadableStream({
426
+ evaluate: () => rs,
427
+ onError: (cause) =>
428
+ new HttpBody.HttpBodyError({ reason: { _tag: "JsonError" }, cause }),
429
+ });
430
+ return Effect.succeed(
431
+ HttpClientRequest.setBody(HttpBody.stream(rsStream))(request),
432
+ );
433
+ }
434
+ if (Stream.isStream(body as Stream.Stream<unknown, unknown, unknown>)) {
435
+ // Effect Stream — pass straight through to `HttpBody.stream`.
436
+ return Effect.succeed(
437
+ HttpClientRequest.setBody(
438
+ HttpBody.stream(body as Stream.Stream<Uint8Array, unknown>),
439
+ )(request),
440
+ );
441
+ }
442
+ if (typeof body === "string") {
443
+ return Effect.succeed(
444
+ HttpClientRequest.setBody(HttpBody.text(body))(request),
445
+ );
446
+ }
447
+ return Effect.fail(
448
+ new HttpBody.HttpBodyError({
449
+ reason: { _tag: "JsonError" },
450
+ cause: new TypeError(
451
+ `Binary HTTP body must be a Blob, Uint8Array, ArrayBuffer, ReadableStream, Stream<Uint8Array>, or string; got ${
452
+ body === null ? "null" : typeof body
453
+ }`,
454
+ ),
455
+ }),
456
+ );
457
+ }
458
+
381
459
  // ============================================================================
382
460
  // API Client Factory
383
461
  // ============================================================================
@@ -494,11 +572,27 @@ export const makeAPI = <Creds>(config: ClientConfig<Creds>) => {
494
572
 
495
573
  // Set Content-Type based on body type
496
574
  // - Skip for FormData (multipart) — browser sets boundary
575
+ // - Skip for binary — `parts.headers` already carries a caller-supplied
576
+ // `content-type` header (e.g. R2 PutObject's `content-type` field)
497
577
  // - Use form-urlencoded for Stripe-style APIs
498
578
  // - Default to JSON
499
579
  const isFormUrlEncoded = httpTrait.contentType === "form-urlencoded";
580
+ const isBinaryBody = httpTrait.contentType === "binary";
500
581
  if (parts.isMultipart) {
501
582
  // browser/runtime sets Content-Type with boundary
583
+ } else if (isBinaryBody) {
584
+ // Caller's `content-type` header (already applied via
585
+ // `setHeaders(parts.headers)`) wins. If they didn't set one, fall
586
+ // back to a generic octet-stream so the request is still well-formed.
587
+ if (
588
+ !("content-type" in parts.headers) &&
589
+ !("Content-Type" in parts.headers)
590
+ ) {
591
+ request = HttpClientRequest.setHeader(
592
+ "Content-Type",
593
+ "application/octet-stream",
594
+ )(request);
595
+ }
502
596
  } else if (isFormUrlEncoded) {
503
597
  request = HttpClientRequest.setHeader(
504
598
  "Content-Type",
@@ -523,6 +617,11 @@ export const makeAPI = <Creds>(config: ClientConfig<Creds>) => {
523
617
  request = HttpClientRequest.setBody(HttpBody.formData(formData))(
524
618
  request,
525
619
  );
620
+ } else if (isBinaryBody) {
621
+ // Raw binary HTTP body — `parts.body` is the value of the lone
622
+ // `T.HttpBody()` field (e.g. a `Blob`, `Uint8Array`, or string),
623
+ // not a record of body fields.
624
+ request = yield* setBinaryBody(request, parts.body);
526
625
  } else if (isFormUrlEncoded) {
527
626
  // Encode body as form-urlencoded with deepObject bracket notation
528
627
  const encoded = buildFormUrlEncoded(
@@ -631,6 +730,27 @@ export const makeAPI = <Creds>(config: ClientConfig<Creds>) => {
631
730
  return undefined;
632
731
  }
633
732
 
733
+ // Raw octet-stream download (`responseContentType: "binary"`):
734
+ // bypass the JSON/text decode path entirely. The output schema is
735
+ // a Struct shaped like `{ body: Stream<Uint8Array>, ...headers }`
736
+ // (see `T.BinaryResponseBody()` / `T.HttpResponseHeader()`); we
737
+ // populate it by reading response headers and wrapping the body
738
+ // bytes in `Stream.succeed`. We buffer through
739
+ // `response.arrayBuffer` first so the resulting stream is
740
+ // scope-free — callers can consume it after the underlying scope
741
+ // has closed. (True chunked streaming would require threading a
742
+ // Scope through every operation's return type, which would break
743
+ // the uniform `OperationMethod<I, A, E, never>` shape.)
744
+ if (httpTrait.responseContentType === "binary") {
745
+ const bytes = yield* response.arrayBuffer;
746
+ const stream = Stream.succeed(new Uint8Array(bytes));
747
+ return Traits.buildBinaryResponse(
748
+ outputSchema.ast,
749
+ stream,
750
+ response.headers as Record<string, string>,
751
+ ) as unknown;
752
+ }
753
+
634
754
  // For 204 No Content: if schema is not Unknown, return undefined.
635
755
  // If schema IS Unknown, return empty string (so callers get a defined value).
636
756
  if (response.status === 204) {
package/src/schemas.ts ADDED
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Cloud-agnostic binary HTTP body schemas.
3
+ *
4
+ * These schemas describe the wire-shape of raw byte bodies — request bodies
5
+ * for `application/octet-stream` uploads (e.g. R2 PutObject, S3 PutObject,
6
+ * GCS object insert) and response bodies for the corresponding downloads.
7
+ * They are intentionally cloud-agnostic so every distilled SDK can share a
8
+ * single binary-body contract.
9
+ */
10
+
11
+ import * as Schema from "effect/Schema";
12
+ import * as Stream from "effect/Stream";
13
+ import type * as HttpClientError from "effect/unstable/http/HttpClientError";
14
+
15
+ /**
16
+ * Schema for `Blob` request bodies (browser/web standard binary blob).
17
+ */
18
+ export const BlobSchema = Schema.declare(
19
+ (input): input is Blob =>
20
+ typeof Blob !== "undefined" && input instanceof Blob,
21
+ {
22
+ identifier: "Blob",
23
+ description: "A Blob to send as the raw HTTP request body",
24
+ },
25
+ );
26
+
27
+ /**
28
+ * Schema for `Uint8Array` request bodies.
29
+ */
30
+ export const Uint8ArraySchema = Schema.declare(
31
+ (input): input is Uint8Array =>
32
+ typeof Uint8Array !== "undefined" && input instanceof Uint8Array,
33
+ {
34
+ identifier: "Uint8Array",
35
+ description: "A Uint8Array to send as the raw HTTP request body",
36
+ },
37
+ );
38
+
39
+ /**
40
+ * Schema for `ArrayBuffer` request bodies.
41
+ */
42
+ export const ArrayBufferSchema = Schema.declare(
43
+ (input): input is ArrayBuffer =>
44
+ typeof ArrayBuffer !== "undefined" && input instanceof ArrayBuffer,
45
+ {
46
+ identifier: "ArrayBuffer",
47
+ description: "An ArrayBuffer to send as the raw HTTP request body",
48
+ },
49
+ );
50
+
51
+ /**
52
+ * Schema for `ReadableStream<Uint8Array>` request bodies (web-platform
53
+ * streaming API).
54
+ */
55
+ export const ReadableStreamSchema = Schema.declare(
56
+ (input): input is ReadableStream<Uint8Array> =>
57
+ typeof ReadableStream !== "undefined" && input instanceof ReadableStream,
58
+ {
59
+ identifier: "ReadableStream",
60
+ description:
61
+ "A ReadableStream<Uint8Array> to send as the raw HTTP request body",
62
+ },
63
+ );
64
+
65
+ /**
66
+ * Schema for Effect `Stream.Stream<Uint8Array>` request bodies. Accepts any
67
+ * Stream regardless of error/requirements channels — the runtime treats it
68
+ * as an opaque source of bytes.
69
+ */
70
+ export const StreamSchema = Schema.declare(
71
+ (input): input is Stream.Stream<Uint8Array, unknown, unknown> =>
72
+ Stream.isStream(input as Stream.Stream<unknown, unknown, unknown>),
73
+ {
74
+ identifier: "Stream",
75
+ description:
76
+ "An Effect Stream.Stream<Uint8Array> to send as the raw HTTP request body",
77
+ },
78
+ );
79
+
80
+ /**
81
+ * Schema for raw `application/octet-stream` request bodies (e.g. R2
82
+ * `PutObject`, S3 `PutObject`). Inputs are intentionally wide — any
83
+ * standard JS binary source plus Effect `Stream.Stream<Uint8Array>` is
84
+ * accepted. The on-the-wire `Content-Type` is supplied by the caller
85
+ * through the operation's `content-type` header field; the runtime falls
86
+ * back to `application/octet-stream` when none is provided.
87
+ */
88
+ export const BinaryBodySchema = Schema.Union([
89
+ BlobSchema,
90
+ Uint8ArraySchema,
91
+ ArrayBufferSchema,
92
+ ReadableStreamSchema,
93
+ StreamSchema,
94
+ Schema.String,
95
+ ]);
96
+
97
+ /**
98
+ * TypeScript type for raw HTTP request body content. Inputs are wide;
99
+ * outputs (downloads) are always Effect `Stream.Stream<Uint8Array>`.
100
+ */
101
+ export type BinaryBody =
102
+ | Blob
103
+ | Uint8Array
104
+ | ArrayBuffer
105
+ | ReadableStream<Uint8Array>
106
+ | Stream.Stream<Uint8Array, unknown, unknown>
107
+ | string;
108
+
109
+ /**
110
+ * Marker schema for raw `application/octet-stream` download responses (e.g.
111
+ * R2 `GetObject`). The runtime never decodes through this schema — it
112
+ * detects `responseContentType: "binary"` on the operation's HTTP trait and
113
+ * surfaces the response body directly as an Effect
114
+ * `Stream.Stream<Uint8Array, HttpClientError.HttpClientError>`. This schema
115
+ * is exported solely so generated service files have something to assign
116
+ * to the operation's output schema slot.
117
+ */
118
+ export const BinaryStreamResponseSchema = Schema.declare(
119
+ (
120
+ input,
121
+ ): input is Stream.Stream<Uint8Array, HttpClientError.HttpClientError> =>
122
+ Stream.isStream(input as Stream.Stream<unknown, unknown, unknown>),
123
+ {
124
+ identifier: "BinaryStreamResponse",
125
+ description:
126
+ "An Effect Stream.Stream<Uint8Array> surfacing a raw octet-stream download response",
127
+ },
128
+ );
package/src/traits.ts CHANGED
@@ -117,8 +117,25 @@ export interface HttpTrait {
117
117
  method: HttpMethod;
118
118
  /** Path template with {param} placeholders */
119
119
  path: string;
120
- /** Content type override (e.g., "multipart") */
120
+ /**
121
+ * Request body content type. Recognized values:
122
+ * - `"multipart"` — `multipart/form-data` (file uploads)
123
+ * - `"form-urlencoded"` — `application/x-www-form-urlencoded`
124
+ * - `"binary"` — `application/octet-stream` (raw byte body
125
+ * accepting `Blob | Uint8Array | ArrayBuffer |
126
+ * string | Stream<Uint8Array> | ReadableStream`)
127
+ * - `undefined` — JSON
128
+ */
121
129
  contentType?: string;
130
+ /**
131
+ * Response body content type. Recognized values:
132
+ * - `"binary"` — `application/octet-stream` download. The runtime
133
+ * bypasses JSON decoding and returns the body as an
134
+ * Effect `Stream.Stream<Uint8Array>`.
135
+ * - `undefined` — JSON / text decoded through the operation's output
136
+ * schema.
137
+ */
138
+ responseContentType?: string;
122
139
  /** Whether the request has a body (used by GCP generator) */
123
140
  hasBody?: boolean;
124
141
  }
@@ -237,6 +254,40 @@ export const httpBodySymbol = Symbol.for("@distilled.cloud/http-body");
237
254
  */
238
255
  export const HttpBody = () => makeAnnotation(httpBodySymbol, true);
239
256
 
257
+ /** Symbol for binary response body annotation */
258
+ export const binaryResponseBodySymbol = Symbol.for(
259
+ "@distilled.cloud/binary-response-body",
260
+ );
261
+
262
+ /**
263
+ * BinaryResponseBody - marks a response struct field as the raw binary body
264
+ * of an `application/octet-stream` download. The runtime fills the field
265
+ * with an Effect `Stream.Stream<Uint8Array>` of the response body. Sibling
266
+ * fields annotated with `T.HttpResponseHeader` are populated from the
267
+ * matching response headers.
268
+ */
269
+ export const BinaryResponseBody = () =>
270
+ makeAnnotation(binaryResponseBodySymbol, true);
271
+
272
+ /** Symbol for response header annotation */
273
+ export const responseHeaderSymbol = Symbol.for(
274
+ "@distilled.cloud/response-header",
275
+ );
276
+
277
+ /**
278
+ * HttpResponseHeader - marks a response struct field as a value pulled from
279
+ * a named HTTP response header (e.g. `etag`, `content-type`). The runtime
280
+ * populates the field with the (lowercased) header value if present, and
281
+ * leaves it `undefined` otherwise. Mirror of `T.HttpHeader` for response-
282
+ * side header extraction.
283
+ *
284
+ * Currently consumed by binary-download operations (operations whose
285
+ * `T.Http({ responseContentType: "binary" })` trait is set), where the
286
+ * response struct's shape is `{ body: Stream.Stream<Uint8Array>, ...headers }`.
287
+ */
288
+ export const HttpResponseHeader = (name: string) =>
289
+ makeAnnotation(responseHeaderSymbol, name);
290
+
240
291
  /** Symbol for GraphQL operation metadata (query string + operation name) */
241
292
  export const graphqlOpSymbol = Symbol.for("@distilled.cloud/graphql-op");
242
293
 
@@ -789,6 +840,84 @@ export const buildRequestParts = (
789
840
  };
790
841
  };
791
842
 
843
+ /**
844
+ * Build the response object for a binary-download operation
845
+ * (`T.Http({ responseContentType: "binary" })`).
846
+ *
847
+ * The output schema is expected to be a Struct with one field annotated
848
+ * `T.BinaryResponseBody()` (the `body` field — populated with the supplied
849
+ * `Stream`) and zero-or-more sibling fields annotated
850
+ * `T.HttpResponseHeader(name)` (populated by reading the named response
851
+ * header). Header lookups are case-insensitive.
852
+ *
853
+ * Header values are coerced to the field's declared primitive type so that
854
+ * `content-length` lands as a `number`, `last-modified` as a `Date` (when
855
+ * the schema declares `Schema.Date`), etc. Anything more exotic stays a
856
+ * raw string.
857
+ */
858
+ export const buildBinaryResponse = (
859
+ ast: AST.AST,
860
+ body: unknown,
861
+ responseHeaders: Record<string, string>,
862
+ ): Record<string, unknown> => {
863
+ const lowercased: Record<string, string> = {};
864
+ for (const [k, v] of Object.entries(responseHeaders)) {
865
+ lowercased[k.toLowerCase()] = v;
866
+ }
867
+
868
+ const props = getStructProps(ast);
869
+ const result: Record<string, unknown> = {};
870
+
871
+ for (const prop of props) {
872
+ const tsName = String(prop.name);
873
+ const isBody = getAnnotation<boolean>(prop.type, binaryResponseBodySymbol);
874
+ if (isBody) {
875
+ result[tsName] = body;
876
+ continue;
877
+ }
878
+ const headerName = getAnnotation<string>(prop.type, responseHeaderSymbol);
879
+ if (headerName !== undefined) {
880
+ const raw = lowercased[headerName.toLowerCase()];
881
+ if (raw === undefined) continue;
882
+ result[tsName] = coerceHeaderValue(raw, prop.type);
883
+ }
884
+ }
885
+
886
+ return result;
887
+ };
888
+
889
+ /**
890
+ * Best-effort coercion of a raw HTTP header string to whichever primitive
891
+ * the response schema declares. Falls back to the original string for
892
+ * anything we don't recognize — the schema's decode step (which the binary
893
+ * runtime path skips) would have done the same coercion for JSON bodies.
894
+ */
895
+ const coerceHeaderValue = (raw: string, propType: AST.AST): unknown => {
896
+ // Walk through Suspends / Optionals / Encoded chains to the underlying type.
897
+ let inner: AST.AST = propType;
898
+ while (inner.encoding && inner.encoding.length > 0) {
899
+ inner = inner.encoding[0].to;
900
+ }
901
+ if (inner._tag === "Suspend") inner = inner.thunk();
902
+ // `Schema.optional(Schema.X)` shows up as a Union with `undefined`/void.
903
+ if (inner._tag === "Union") {
904
+ const nonOptional = (inner as unknown as { types: AST.AST[] }).types.find(
905
+ (t) => t._tag !== "Void" && t._tag !== "Never",
906
+ );
907
+ if (nonOptional) inner = nonOptional;
908
+ }
909
+ if (inner._tag === "Number") {
910
+ const n = Number(raw);
911
+ return Number.isFinite(n) ? n : raw;
912
+ }
913
+ if (inner._tag === "Boolean") {
914
+ if (raw === "true") return true;
915
+ if (raw === "false") return false;
916
+ return raw;
917
+ }
918
+ return raw;
919
+ };
920
+
792
921
  /**
793
922
  * Helper to get a value from an object using a dot-separated path.
794
923
  * Used for pagination traits and nested property access.