@superblocksteam/sdk-api 0.0.10 → 0.0.12-body-types

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 (69) hide show
  1. package/dist/errors.d.ts.map +1 -1
  2. package/dist/errors.js +44 -1
  3. package/dist/errors.js.map +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/integrations/base/index.d.ts +2 -1
  8. package/dist/integrations/base/index.d.ts.map +1 -1
  9. package/dist/integrations/base/index.js +1 -0
  10. package/dist/integrations/base/index.js.map +1 -1
  11. package/dist/integrations/base/request-body.d.ts +21 -0
  12. package/dist/integrations/base/request-body.d.ts.map +1 -0
  13. package/dist/integrations/base/request-body.js +322 -0
  14. package/dist/integrations/base/request-body.js.map +1 -0
  15. package/dist/integrations/base/request-body.test.d.ts +2 -0
  16. package/dist/integrations/base/request-body.test.d.ts.map +1 -0
  17. package/dist/integrations/base/request-body.test.js +324 -0
  18. package/dist/integrations/base/request-body.test.js.map +1 -0
  19. package/dist/integrations/base/rest-api-client-base.d.ts.map +1 -1
  20. package/dist/integrations/base/rest-api-client-base.js +18 -4
  21. package/dist/integrations/base/rest-api-client-base.js.map +1 -1
  22. package/dist/integrations/base/types.d.ts +40 -5
  23. package/dist/integrations/base/types.d.ts.map +1 -1
  24. package/dist/integrations/base/types.js +7 -0
  25. package/dist/integrations/base/types.js.map +1 -1
  26. package/dist/integrations/documentation-resolver.test.js +20 -1
  27. package/dist/integrations/documentation-resolver.test.js.map +1 -1
  28. package/dist/integrations/dynamodb/client.d.ts +2 -6
  29. package/dist/integrations/dynamodb/client.d.ts.map +1 -1
  30. package/dist/integrations/dynamodb/client.js +10 -83
  31. package/dist/integrations/dynamodb/client.js.map +1 -1
  32. package/dist/integrations/dynamodb/index.d.ts +1 -1
  33. package/dist/integrations/dynamodb/index.d.ts.map +1 -1
  34. package/dist/integrations/dynamodb/index.js.map +1 -1
  35. package/dist/integrations/dynamodb/types.d.ts +1 -27
  36. package/dist/integrations/dynamodb/types.d.ts.map +1 -1
  37. package/dist/integrations/index.d.ts +1 -1
  38. package/dist/integrations/index.d.ts.map +1 -1
  39. package/dist/integrations/index.js.map +1 -1
  40. package/dist/integrations/restapiintegration/client.body-types.test.d.ts +2 -0
  41. package/dist/integrations/restapiintegration/client.body-types.test.d.ts.map +1 -0
  42. package/dist/integrations/restapiintegration/client.body-types.test.js +145 -0
  43. package/dist/integrations/restapiintegration/client.body-types.test.js.map +1 -0
  44. package/dist/integrations/slack/client.test.js +23 -0
  45. package/dist/integrations/slack/client.test.js.map +1 -1
  46. package/package.json +1 -1
  47. package/src/errors.ts +52 -1
  48. package/src/index.ts +0 -1
  49. package/src/integrations/base/index.ts +7 -0
  50. package/src/integrations/base/request-body.test.ts +402 -0
  51. package/src/integrations/base/request-body.ts +548 -0
  52. package/src/integrations/base/rest-api-client-base.ts +18 -4
  53. package/src/integrations/base/types.ts +59 -5
  54. package/src/integrations/documentation-resolver.test.ts +24 -1
  55. package/src/integrations/dynamodb/README.md +12 -33
  56. package/src/integrations/dynamodb/client.ts +16 -121
  57. package/src/integrations/dynamodb/index.ts +1 -5
  58. package/src/integrations/dynamodb/types.ts +1 -33
  59. package/src/integrations/index.ts +0 -1
  60. package/src/integrations/restapiintegration/client.body-types.test.ts +214 -0
  61. package/src/integrations/restapiintegration/docs.manifest.json +8 -0
  62. package/src/integrations/restapiintegration/overlays/request-body-types-unsupported.md +7 -0
  63. package/src/integrations/restapiintegration/overlays/request-body-types.md +106 -0
  64. package/src/integrations/slack/client.test.ts +33 -0
  65. package/dist/integrations/dynamodb/client.test.d.ts +0 -8
  66. package/dist/integrations/dynamodb/client.test.d.ts.map +0 -1
  67. package/dist/integrations/dynamodb/client.test.js +0 -198
  68. package/dist/integrations/dynamodb/client.test.js.map +0 -1
  69. package/src/integrations/dynamodb/client.test.ts +0 -254
@@ -0,0 +1,324 @@
1
+ import { describe, expect, expectTypeOf, it } from "vitest";
2
+ import { RestApiBodyDataType } from "@superblocksteam/shared";
3
+ import { REDACTED_BINARY_RESPONSE_DATA, RestApiValidationError, } from "../../errors.js";
4
+ import { encodeRequestBody, MAX_BINARY_BODY_BYTES } from "./request-body.js";
5
+ import { REST_API_BODY_TYPES } from "./types.js";
6
+ const PNG_BYTES = [137, 80, 78, 71];
7
+ const PNG_BASE64 = Buffer.from(PNG_BYTES).toString("base64");
8
+ const AGENT_REQUEST_CAP_BYTES = 28 * 1024 * 1024;
9
+ function arrayBufferFrom(bytes) {
10
+ const buffer = new ArrayBuffer(bytes.length);
11
+ new Uint8Array(buffer).set(bytes);
12
+ return buffer;
13
+ }
14
+ function getRestApiValidationError(fn) {
15
+ try {
16
+ fn();
17
+ }
18
+ catch (error) {
19
+ if (error instanceof RestApiValidationError)
20
+ return error;
21
+ throw error;
22
+ }
23
+ throw new Error("Expected RestApiValidationError");
24
+ }
25
+ function expectBinaryDataRedacted(data) {
26
+ if (data !== REDACTED_BINARY_RESPONSE_DATA) {
27
+ throw new Error("Expected binary validation data to be redacted");
28
+ }
29
+ }
30
+ describe("encodeRequestBody", () => {
31
+ it("keeps the public body type contract SDK-owned", () => {
32
+ expect(REST_API_BODY_TYPES).toEqual([
33
+ "json",
34
+ "raw",
35
+ "formUrlencoded",
36
+ "multipartForm",
37
+ "binary",
38
+ ]);
39
+ expectTypeOf().toEqualTypeOf();
40
+ expect(Object.values(RestApiBodyDataType).sort()).toEqual([
41
+ "fileForm",
42
+ "formData",
43
+ "jsonBody",
44
+ "rawBody",
45
+ ]);
46
+ expect(Object.values(RestApiBodyDataType)).not.toContain("binaryBody");
47
+ expect(Object.values(RestApiBodyDataType)).not.toContain("formDataBase64");
48
+ });
49
+ it("preserves default and explicit JSON wire behavior", () => {
50
+ expect(encodeRequestBody({ body: undefined })).toEqual({
51
+ injectedHeaders: [],
52
+ });
53
+ expect(encodeRequestBody({ body: undefined, bodyType: "json" })).toEqual({
54
+ injectedHeaders: [],
55
+ });
56
+ expect(encodeRequestBody({ body: { amount: 42 } })).toEqual({
57
+ body: JSON.stringify({ amount: 42 }),
58
+ bodyType: "jsonBody",
59
+ injectedHeaders: [],
60
+ });
61
+ expect(encodeRequestBody({ body: { amount: 42 }, bodyType: "json" })).toEqual({
62
+ body: JSON.stringify({ amount: 42 }),
63
+ bodyType: "jsonBody",
64
+ injectedHeaders: [],
65
+ });
66
+ });
67
+ it("rejects invalid JSON and bodyType inputs", () => {
68
+ expect(() => encodeRequestBody({ body: Uint8Array.from(PNG_BYTES) })).toThrow(/bodyType: "binary"/);
69
+ const circular = {};
70
+ circular.self = circular;
71
+ for (const body of [circular, 1n, () => undefined]) {
72
+ expect(() => encodeRequestBody({ body })).toThrow(RestApiValidationError);
73
+ }
74
+ for (const bodyType of [
75
+ "jsonBody",
76
+ "rawBody",
77
+ "formData",
78
+ "fileForm",
79
+ "binaryBody",
80
+ "formDataBase64",
81
+ ]) {
82
+ expect(() => encodeRequestBody({ body: {}, bodyType })).toThrow(new RegExp(`Unsupported bodyType ${JSON.stringify(bodyType)}`));
83
+ }
84
+ });
85
+ it("passes raw non-empty string bodies through unchanged", () => {
86
+ expect(encodeRequestBody({ body: "<note>hello</note>", bodyType: "raw" })).toEqual({
87
+ body: "<note>hello</note>",
88
+ bodyType: "rawBody",
89
+ injectedHeaders: [],
90
+ });
91
+ expect(() => encodeRequestBody({ body: "", bodyType: "raw" })).toThrow(RestApiValidationError);
92
+ expect(() => encodeRequestBody({ body: { value: "hello" }, bodyType: "raw" })).toThrow(RestApiValidationError);
93
+ });
94
+ it("encodes form-urlencoded bodies and injects Content-Type only when absent", () => {
95
+ expect(encodeRequestBody({
96
+ body: {
97
+ amount: 2000,
98
+ currency: "usd",
99
+ empty: [],
100
+ enabled: true,
101
+ optional: undefined,
102
+ "metadata[order_id]": "6735",
103
+ tag: ["vip", "repeat"],
104
+ },
105
+ bodyType: "formUrlencoded",
106
+ })).toEqual({
107
+ body: "amount=2000&currency=usd&enabled=true&metadata%5Border_id%5D=6735&tag=vip&tag=repeat",
108
+ bodyType: "rawBody",
109
+ injectedHeaders: [
110
+ { key: "Content-Type", value: "application/x-www-form-urlencoded" },
111
+ ],
112
+ });
113
+ expect(encodeRequestBody({
114
+ body: { amount: 2000 },
115
+ bodyType: "formUrlencoded",
116
+ headers: { "content-type": "application/custom-form" },
117
+ })).toEqual({
118
+ body: "amount=2000",
119
+ bodyType: "rawBody",
120
+ injectedHeaders: [],
121
+ });
122
+ });
123
+ it("rejects invalid form-urlencoded bodies", () => {
124
+ const invalidBodies = [
125
+ undefined,
126
+ [],
127
+ { "": "missing" },
128
+ { amount: Number.NaN },
129
+ { metadata: { orderId: "6735" } },
130
+ { empty: [] },
131
+ ];
132
+ for (const body of invalidBodies) {
133
+ expect(() => encodeRequestBody({ body, bodyType: "formUrlencoded" })).toThrow(RestApiValidationError);
134
+ }
135
+ expect(() => encodeRequestBody({
136
+ body: { metadata: { orderId: "6735" } },
137
+ bodyType: "formUrlencoded",
138
+ })).toThrow(/metadata\[order_id\]/);
139
+ });
140
+ it.each([
141
+ ["Uint8Array", Uint8Array.from(PNG_BYTES)],
142
+ ["ArrayBuffer", arrayBufferFrom(PNG_BYTES)],
143
+ ["DataView", new DataView(arrayBufferFrom([0, ...PNG_BYTES, 1]), 1, 4)],
144
+ ["subarray view", Uint8Array.from([0, ...PNG_BYTES, 1]).subarray(1, 5)],
145
+ ["Buffer", Buffer.from(PNG_BYTES)],
146
+ ])("base64-encodes exact bytes from %s", (_name, body) => {
147
+ expect(encodeRequestBody({ body, bodyType: "binary" })).toEqual({
148
+ body: PNG_BASE64,
149
+ bodyType: "binaryBody",
150
+ injectedHeaders: [
151
+ { key: "Content-Type", value: "application/octet-stream" },
152
+ ],
153
+ });
154
+ });
155
+ it("rejects invalid binary bodies and preserves caller Content-Type", () => {
156
+ expect(encodeRequestBody({
157
+ body: Uint8Array.from(PNG_BYTES),
158
+ bodyType: "binary",
159
+ headers: { "CONTENT-TYPE": "image/png" },
160
+ })).toEqual({
161
+ body: PNG_BASE64,
162
+ bodyType: "binaryBody",
163
+ injectedHeaders: [],
164
+ });
165
+ for (const body of [
166
+ new ArrayBuffer(0),
167
+ "not bytes",
168
+ new Uint8Array(MAX_BINARY_BODY_BYTES + 1),
169
+ ]) {
170
+ expect(() => encodeRequestBody({ body, bodyType: "binary" })).toThrow(RestApiValidationError);
171
+ }
172
+ });
173
+ it("keeps the binary request cap below the serialized agent request cap", () => {
174
+ expect(Math.ceil(MAX_BINARY_BODY_BYTES / 3) * 4).toBeLessThan(AGENT_REQUEST_CAP_BYTES);
175
+ });
176
+ it("redacts binary validation data for invalid request bodies", () => {
177
+ const binaryError = getRestApiValidationError(() => encodeRequestBody({
178
+ body: new ArrayBuffer(MAX_BINARY_BODY_BYTES + 1),
179
+ bodyType: "binary",
180
+ }));
181
+ expectBinaryDataRedacted(binaryError.details.data);
182
+ const multipartError = getRestApiValidationError(() => encodeRequestBody({
183
+ body: {
184
+ file: {
185
+ value: new Uint8Array(MAX_BINARY_BODY_BYTES + 1),
186
+ filename: "too-large.bin",
187
+ },
188
+ },
189
+ bodyType: "multipartForm",
190
+ }));
191
+ expectBinaryDataRedacted(multipartError.details.data);
192
+ const invalidPartError = getRestApiValidationError(() => encodeRequestBody({
193
+ body: {
194
+ file: {
195
+ contentType: "application/octet-stream",
196
+ filename: "too-large.bin",
197
+ value: Uint8Array.from(PNG_BYTES),
198
+ },
199
+ },
200
+ bodyType: "multipartForm",
201
+ }));
202
+ expect(invalidPartError.details.data).toEqual({
203
+ contentType: "application/octet-stream",
204
+ filename: "too-large.bin",
205
+ value: REDACTED_BINARY_RESPONSE_DATA,
206
+ });
207
+ });
208
+ it("encodes multipart primitive, string-file, and mixed binary file parts", () => {
209
+ expect(encodeRequestBody({
210
+ body: { active: true, amount: 42, note: "hello" },
211
+ bodyType: "multipartForm",
212
+ })).toEqual({
213
+ bodyType: "formData",
214
+ formData: [
215
+ { key: "active", value: "true" },
216
+ { key: "amount", value: "42" },
217
+ { key: "note", value: "hello" },
218
+ ],
219
+ injectedHeaders: [],
220
+ });
221
+ expect(encodeRequestBody({
222
+ body: {
223
+ empty: { value: "", filename: "empty.txt" },
224
+ file: {
225
+ value: "hello",
226
+ filename: "hello.txt",
227
+ contentType: undefined,
228
+ },
229
+ },
230
+ bodyType: "multipartForm",
231
+ })).toEqual({
232
+ bodyType: "formData",
233
+ formData: [
234
+ { key: "empty", value: "", file: { filename: "empty.txt" } },
235
+ { key: "file", value: "hello", file: { filename: "hello.txt" } },
236
+ ],
237
+ injectedHeaders: [],
238
+ });
239
+ expect(encodeRequestBody({
240
+ body: {
241
+ image: { value: Uint8Array.from(PNG_BYTES), filename: "b.png" },
242
+ note: "mixed",
243
+ textFile: { value: "cafe \u00e9", filename: "note.txt" },
244
+ },
245
+ bodyType: "multipartForm",
246
+ })).toEqual({
247
+ bodyType: "formDataBase64",
248
+ formData: [
249
+ { key: "image", value: PNG_BASE64, file: { filename: "b.png" } },
250
+ { key: "note", value: "mixed" },
251
+ {
252
+ key: "textFile",
253
+ value: Buffer.from("cafe \u00e9", "utf8").toString("base64"),
254
+ file: { filename: "note.txt" },
255
+ },
256
+ ],
257
+ injectedHeaders: [],
258
+ });
259
+ });
260
+ it("rejects malformed multipart bodies", () => {
261
+ expect(() => encodeRequestBody({
262
+ body: { file: "hello" },
263
+ bodyType: "multipartForm",
264
+ headers: { "Content-Type": "multipart/form-data" },
265
+ })).toThrow(/boundary/);
266
+ const invalidBodies = [
267
+ {},
268
+ { "": "missing" },
269
+ { file: Uint8Array.from(PNG_BYTES) },
270
+ {
271
+ file: {
272
+ contentType: "image/png",
273
+ filename: "b.png",
274
+ value: Uint8Array.from(PNG_BYTES),
275
+ },
276
+ },
277
+ { file: { value: "hello", filename: "" } },
278
+ {
279
+ file: {
280
+ value: new Uint8Array(MAX_BINARY_BODY_BYTES + 1),
281
+ filename: "too-large.bin",
282
+ },
283
+ },
284
+ ];
285
+ for (const body of invalidBodies) {
286
+ expect(() => encodeRequestBody({ body, bodyType: "multipartForm" })).toThrow(RestApiValidationError);
287
+ }
288
+ expect(() => encodeRequestBody({
289
+ body: { file: { value: "contents" } },
290
+ bodyType: "multipartForm",
291
+ })).toThrow(/missing required key: filename/);
292
+ expect(() => encodeRequestBody({
293
+ body: {
294
+ file: {
295
+ value: "contents",
296
+ filename: "contents.txt",
297
+ contentType: "text/plain",
298
+ },
299
+ },
300
+ bodyType: "multipartForm",
301
+ })).toThrow(/unexpected key: contentType/);
302
+ });
303
+ it("rejects multipart bodies whose total file-part bytes exceed the request budget", () => {
304
+ const partBytes = Math.floor(MAX_BINARY_BODY_BYTES / 2) + 1;
305
+ const first = "a".repeat(partBytes);
306
+ const second = "b".repeat(partBytes);
307
+ expect(() => encodeRequestBody({
308
+ body: {
309
+ first: { value: first, filename: "first.txt" },
310
+ second: { value: second, filename: "second.txt" },
311
+ },
312
+ bodyType: "multipartForm",
313
+ })).toThrow(/20 MiB/);
314
+ });
315
+ it("rejects raw and multipart field bodies that exceed the request budget", () => {
316
+ const tooLarge = "x".repeat(MAX_BINARY_BODY_BYTES + 1);
317
+ expect(() => encodeRequestBody({ body: tooLarge, bodyType: "raw" })).toThrow(/request bodies must be 20 MiB or smaller/);
318
+ expect(() => encodeRequestBody({
319
+ body: { csv: tooLarge },
320
+ bodyType: "multipartForm",
321
+ })).toThrow(/request bodies must be 20 MiB or smaller/);
322
+ });
323
+ });
324
+ //# sourceMappingURL=request-body.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-body.test.js","sourceRoot":"","sources":["../../../src/integrations/base/request-body.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rest-api-client-base.d.ts","sourceRoot":"","sources":["../../../src/integrations/base/rest-api-client-base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qDAAqD,CAAC;AACpF,OAAO,KAAK,EAAE,MAAM,IAAI,wBAAwB,EAAE,MAAM,yEAAyE,CAAC;AAGlI,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAG5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,wBAAwB,CAAC,CAAC;AAEtE,8BAAsB,iBAAkB,YAAW,qBAAqB;IACtE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;gBAEnC,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa;IAOlE;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC;cAO5D,iBAAiB,CAAC,KAAK,EACrC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,EACjC,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAC/B,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,OAAO,CAAC;CAsFpB"}
1
+ {"version":3,"file":"rest-api-client-base.d.ts","sourceRoot":"","sources":["../../../src/integrations/base/rest-api-client-base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qDAAqD,CAAC;AACpF,OAAO,KAAK,EAAE,MAAM,IAAI,wBAAwB,EAAE,MAAM,yEAAyE,CAAC;AAGlI,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAI5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,wBAAwB,CAAC,CAAC;AAEtE,8BAAsB,iBAAkB,YAAW,qBAAqB;IACtE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;gBAEnC,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa;IAOlE;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC;cAO5D,iBAAiB,CAAC,KAAK,EACrC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,EACjC,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAC/B,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,OAAO,CAAC;CAmGpB"}
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { RestApiValidationError } from "../../errors.js";
3
3
  import { decodeWorkerBinaryResponse } from "./decode-worker-binary-response.js";
4
+ import { encodeRequestBody } from "./request-body.js";
4
5
  import { REST_API_RESPONSE_TYPES } from "./types.js";
5
6
  export class RestApiClientBase {
6
7
  name;
@@ -62,11 +63,24 @@ export class RestApiClientBase {
62
63
  params,
63
64
  responseType,
64
65
  };
65
- if (options.body !== undefined) {
66
- request.body = JSON.stringify(options.body);
67
- request.bodyType = "jsonBody";
66
+ const bodyPatch = encodeRequestBody({
67
+ body: options.body,
68
+ bodyType: options.bodyType,
69
+ headers: options.headers,
70
+ });
71
+ if (bodyPatch.body !== undefined) {
72
+ request.body = bodyPatch.body;
68
73
  }
69
- const result = await this.executeQuery({ ...request }, undefined, metadata);
74
+ if (bodyPatch.formData !== undefined) {
75
+ request.formData = [...bodyPatch.formData];
76
+ }
77
+ if (bodyPatch.bodyType !== undefined) {
78
+ request.bodyType = bodyPatch.bodyType;
79
+ }
80
+ for (const { key, value } of bodyPatch.injectedHeaders) {
81
+ headers.push(this.createParam(key, value));
82
+ }
83
+ const result = await this.executeQuery(request, undefined, metadata);
70
84
  if (result === null || result === undefined) {
71
85
  throw new RestApiValidationError(`Integration query returned ${String(result)} for responseType "${responseType}" - expected a response value`, {
72
86
  zodError: new z.ZodError([
@@ -1 +1 @@
1
- {"version":3,"file":"rest-api-client-base.js","sourceRoot":"","sources":["../../../src/integrations/base/rest-api-client-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rest-api-client-base.js","sourceRoot":"","sources":["../../../src/integrations/base/rest-api-client-base.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,16 @@ import type { TraceMetadata } from "../registry.js";
3
3
  export type { TraceMetadata };
4
4
  export declare const REST_API_RESPONSE_TYPES: readonly ["binary", "json", "text"];
5
5
  export type RestApiResponseType = (typeof REST_API_RESPONSE_TYPES)[number];
6
+ export declare const REST_API_BODY_TYPES: readonly ["json", "raw", "formUrlencoded", "multipartForm", "binary"];
7
+ export type RestApiBodyType = (typeof REST_API_BODY_TYPES)[number];
8
+ export type BinaryBody = ArrayBuffer | ArrayBufferView;
9
+ export type MultipartFormValue = string | number | boolean | {
10
+ value: string | BinaryBody;
11
+ filename: string;
12
+ };
13
+ export type MultipartFormBody = Record<string, MultipartFormValue>;
14
+ export type FormUrlencodedValue = string | number | boolean | readonly (string | number | boolean)[];
15
+ export type FormUrlencodedBody = Record<string, FormUrlencodedValue>;
6
16
  export interface ApiRequestOptions<TBody = unknown> {
7
17
  /**
8
18
  * HTTP method for the request.
@@ -17,6 +27,17 @@ export interface ApiRequestOptions<TBody = unknown> {
17
27
  * Type is inferred from bodySchema parameter.
18
28
  */
19
29
  body?: TBody;
30
+ /**
31
+ * How the request body should be encoded. Defaults to `"json"`.
32
+ *
33
+ * Use `"raw"` for caller-encoded string bodies, `"formUrlencoded"` for
34
+ * `application/x-www-form-urlencoded` payloads, `"multipartForm"` for
35
+ * multipart form fields and file parts, and `"binary"` for byte payloads.
36
+ * Worker wire values such as `"jsonBody"`, `"rawBody"`, `"formData"`,
37
+ * `"fileForm"`, `"binaryBody"`, and `"formDataBase64"` are not public SDK
38
+ * `bodyType` values.
39
+ */
40
+ bodyType?: RestApiBodyType;
20
41
  /**
21
42
  * Optional query parameters
22
43
  */
@@ -51,16 +72,20 @@ export interface ApiRequestSchema<TBody = unknown, TResponse = unknown> {
51
72
  /**
52
73
  * Interface for integration clients that support generic API requests.
53
74
  *
54
- * Providing a response schema gives type-safe, validated results. Omitting
55
- * it returns the decoded response: `Uint8Array` for `responseType: "binary"`,
56
- * or `unknown` for `responseType: "text"`. JSON still requires a schema.
57
- * Object schemas only make sense for JSON-shaped results.
75
+ * Providing a response schema gives type-safe, validated results. Omitting it
76
+ * returns the decoded response: `Uint8Array` for `responseType: "binary"`, or
77
+ * `unknown` for `responseType: "text"`. JSON still requires a schema. Object
78
+ * schemas only make sense for JSON-shaped results.
79
+ *
80
+ * Request bodies default to JSON. Set `bodyType` to one of `"json"`, `"raw"`,
81
+ * `"formUrlencoded"`, `"multipartForm"`, or `"binary"` when the endpoint
82
+ * expects a different request encoding.
58
83
  */
59
84
  export interface SupportsApiRequest {
60
85
  /**
61
86
  * Execute a generic API request with type-safe validation.
62
87
  *
63
- * @param options - Request configuration including method, path, params, and body
88
+ * @param options - Request configuration including method, path, params, body, and bodyType
64
89
  * @param schema - Zod schemas for request body and response validation
65
90
  * @param metadata - Optional trace metadata for observability (label, description)
66
91
  * @returns Validated response data
@@ -88,6 +113,16 @@ export interface SupportsApiRequest {
88
113
  * { label: 'slack.postMessage', description: 'Post a message to #alerts' }
89
114
  * );
90
115
  * // result is typed as { ts: string; channel: string }
116
+ *
117
+ * await ctx.integrations.stripe.apiRequest(
118
+ * {
119
+ * method: 'POST',
120
+ * path: '/v1/charges',
121
+ * bodyType: 'formUrlencoded',
122
+ * body: { amount: 2000, currency: 'usd' },
123
+ * },
124
+ * { response: StripeChargeSchema }
125
+ * );
91
126
  * ```
92
127
  */
93
128
  apiRequest<TBody, TResponse>(options: ApiRequestOptions<TBody> & {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/integrations/base/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,eAAO,MAAM,uBAAuB,qCAAsC,CAAC;AAE3E,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E,MAAM,WAAW,iBAAiB,CAAC,KAAK,GAAG,OAAO;IAChD;;OAEG;IACH,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IAEzE;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,SAAS,GAAG,OAAO;IACpE;;;OAGG;IACH,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,UAAU,CAAC,KAAK,EAAE,SAAS,EACzB,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG;QAClC,YAAY,CAAC,EAAE,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;KACvD,EACD,MAAM,EAAE,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG;QAC3C,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;KAClC,EACD,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtB;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,CAAC,KAAK,EACd,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG;QAClC,YAAY,EAAE,QAAQ,CAAC;KACxB,EACD,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,EAC5C,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,UAAU,CAAC,KAAK,EACd,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG;QAClC,YAAY,EAAE,MAAM,CAAC;KACtB,EACD,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,EACzC,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/integrations/base/types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,9 @@
1
1
  export const REST_API_RESPONSE_TYPES = ["binary", "json", "text"];
2
+ export const REST_API_BODY_TYPES = [
3
+ "json",
4
+ "raw",
5
+ "formUrlencoded",
6
+ "multipartForm",
7
+ "binary",
8
+ ];
2
9
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/integrations/base/types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/integrations/base/types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAI3E,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,MAAM;IACN,KAAK;IACL,gBAAgB;IAChB,eAAe;IACf,QAAQ;CACA,CAAC"}
@@ -744,6 +744,24 @@ describe("resolveIntegrationDocumentation", () => {
744
744
  expect(docs).toContain('responseType: "binary"');
745
745
  expect(docs).not.toContain("does not support the `responseType`");
746
746
  });
747
+ it("documents request bodyType only for agents whose sdk-api supports it", async () => {
748
+ const docs = await resolveIntegrationDocumentation("restapiintegration", {
749
+ sdkVersion: "0.0.5",
750
+ });
751
+ expect(docs).toContain('responseType: "binary"');
752
+ expect(docs).toContain('bodyType: "formUrlencoded"');
753
+ expect(docs).toContain('bodyType: "multipartForm"');
754
+ expect(docs).toContain('bodyType: "binary"');
755
+ expect(docs).not.toContain("does not support the `bodyType`");
756
+ });
757
+ it("notes bodyType non-support before sdk-api request body support", async () => {
758
+ const docs = await resolveIntegrationDocumentation("restapiintegration", {
759
+ sdkVersion: "0.0.4",
760
+ });
761
+ expect(docs).toContain('responseType: "binary"');
762
+ expect(docs).toContain("does not support the `bodyType` option");
763
+ expect(docs).not.toContain('bodyType: "formUrlencoded"');
764
+ });
747
765
  it("notes non-support instead of documenting responseType on older agents", async () => {
748
766
  const docs = await resolveIntegrationDocumentation("restapiintegration", {
749
767
  sdkVersion: "0.0.2",
@@ -752,9 +770,10 @@ describe("resolveIntegrationDocumentation", () => {
752
770
  expect(docs).not.toContain('responseType: "text"');
753
771
  expect(docs).not.toContain('responseType: "binary"');
754
772
  });
755
- it("stays silent about responseType when the agent reports no sdk-api version", async () => {
773
+ it("stays silent about responseType and request bodyType when the agent reports no sdk-api version", async () => {
756
774
  const docs = await resolveIntegrationDocumentation("restapiintegration");
757
775
  expect(docs).not.toContain("responseType");
776
+ expect(docs).not.toContain("bodyType");
758
777
  });
759
778
  });
760
779
  it("blocks overlay paths outside the plugin directory", async () => {