@superblocksteam/sdk-api 0.0.12-body-types → 2.0.0-SNAPSHOT.1d540461e97d05b4

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 (134) hide show
  1. package/README.md +23 -0
  2. package/dist/errors.d.ts +28 -3
  3. package/dist/errors.d.ts.map +1 -1
  4. package/dist/errors.js +174 -38
  5. package/dist/errors.js.map +1 -1
  6. package/dist/errors.test.d.ts +2 -0
  7. package/dist/errors.test.d.ts.map +1 -0
  8. package/dist/errors.test.js +189 -0
  9. package/dist/errors.test.js.map +1 -0
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/integrations/anthropic/types.d.ts +1 -1
  14. package/dist/integrations/base/decode-worker-binary-response.d.ts.map +1 -1
  15. package/dist/integrations/base/decode-worker-binary-response.js +2 -5
  16. package/dist/integrations/base/decode-worker-binary-response.js.map +1 -1
  17. package/dist/integrations/base/index.d.ts +1 -1
  18. package/dist/integrations/base/index.d.ts.map +1 -1
  19. package/dist/integrations/base/request-body.d.ts +18 -10
  20. package/dist/integrations/base/request-body.d.ts.map +1 -1
  21. package/dist/integrations/base/request-body.js +110 -215
  22. package/dist/integrations/base/request-body.js.map +1 -1
  23. package/dist/integrations/base/request-body.test.js +288 -164
  24. package/dist/integrations/base/request-body.test.js.map +1 -1
  25. package/dist/integrations/base/rest-api-client-base.d.ts.map +1 -1
  26. package/dist/integrations/base/rest-api-client-base.js +13 -26
  27. package/dist/integrations/base/rest-api-client-base.js.map +1 -1
  28. package/dist/integrations/base/rest-api-integration-client.d.ts.map +1 -1
  29. package/dist/integrations/base/rest-api-integration-client.js +2 -5
  30. package/dist/integrations/base/rest-api-integration-client.js.map +1 -1
  31. package/dist/integrations/base/types.d.ts +0 -8
  32. package/dist/integrations/base/types.d.ts.map +1 -1
  33. package/dist/integrations/cosmosdb/client.d.ts.map +1 -1
  34. package/dist/integrations/cosmosdb/client.js +2 -5
  35. package/dist/integrations/cosmosdb/client.js.map +1 -1
  36. package/dist/integrations/documentation-resolver.test.js +35 -2
  37. package/dist/integrations/documentation-resolver.test.js.map +1 -1
  38. package/dist/integrations/documentation.test.js +10 -0
  39. package/dist/integrations/documentation.test.js.map +1 -1
  40. package/dist/integrations/dynamodb/client.d.ts +6 -2
  41. package/dist/integrations/dynamodb/client.d.ts.map +1 -1
  42. package/dist/integrations/dynamodb/client.js +85 -15
  43. package/dist/integrations/dynamodb/client.js.map +1 -1
  44. package/dist/integrations/dynamodb/client.test.d.ts +8 -0
  45. package/dist/integrations/dynamodb/client.test.d.ts.map +1 -0
  46. package/dist/integrations/dynamodb/client.test.js +198 -0
  47. package/dist/integrations/dynamodb/client.test.js.map +1 -0
  48. package/dist/integrations/dynamodb/index.d.ts +1 -1
  49. package/dist/integrations/dynamodb/index.d.ts.map +1 -1
  50. package/dist/integrations/dynamodb/index.js.map +1 -1
  51. package/dist/integrations/dynamodb/types.d.ts +27 -1
  52. package/dist/integrations/dynamodb/types.d.ts.map +1 -1
  53. package/dist/integrations/gcs/client.d.ts.map +1 -1
  54. package/dist/integrations/gcs/client.js +2 -5
  55. package/dist/integrations/gcs/client.js.map +1 -1
  56. package/dist/integrations/gsheets/client.d.ts.map +1 -1
  57. package/dist/integrations/gsheets/client.js +2 -5
  58. package/dist/integrations/gsheets/client.js.map +1 -1
  59. package/dist/integrations/index.d.ts +1 -1
  60. package/dist/integrations/index.d.ts.map +1 -1
  61. package/dist/integrations/index.js.map +1 -1
  62. package/dist/integrations/mongodb/client.d.ts.map +1 -1
  63. package/dist/integrations/mongodb/client.js +2 -5
  64. package/dist/integrations/mongodb/client.js.map +1 -1
  65. package/dist/integrations/restapiintegration/client.body-types.test.js +107 -25
  66. package/dist/integrations/restapiintegration/client.body-types.test.js.map +1 -1
  67. package/dist/integrations/restapiintegration/client.test.js +16 -0
  68. package/dist/integrations/restapiintegration/client.test.js.map +1 -1
  69. package/dist/integrations/s3/client.d.ts.map +1 -1
  70. package/dist/integrations/s3/client.js +2 -5
  71. package/dist/integrations/s3/client.js.map +1 -1
  72. package/dist/integrations/salesforce/client.d.ts.map +1 -1
  73. package/dist/integrations/salesforce/client.js +2 -5
  74. package/dist/integrations/salesforce/client.js.map +1 -1
  75. package/dist/integrations/slack/client.d.ts.map +1 -1
  76. package/dist/integrations/slack/client.js +4 -13
  77. package/dist/integrations/slack/client.js.map +1 -1
  78. package/dist/integrations/slack/client.test.js +2 -5
  79. package/dist/integrations/slack/client.test.js.map +1 -1
  80. package/dist/integrations/utils.d.ts +8 -3
  81. package/dist/integrations/utils.d.ts.map +1 -1
  82. package/dist/integrations/utils.js +42 -1
  83. package/dist/integrations/utils.js.map +1 -1
  84. package/dist/runtime/context.d.ts +6 -0
  85. package/dist/runtime/context.d.ts.map +1 -1
  86. package/dist/runtime/context.js +2 -1
  87. package/dist/runtime/context.js.map +1 -1
  88. package/dist/runtime/executor.d.ts +6 -0
  89. package/dist/runtime/executor.d.ts.map +1 -1
  90. package/dist/runtime/executor.js +1 -0
  91. package/dist/runtime/executor.js.map +1 -1
  92. package/dist/types.d.ts +10 -0
  93. package/dist/types.d.ts.map +1 -1
  94. package/package.json +6 -3
  95. package/src/errors.test.ts +257 -0
  96. package/src/errors.ts +200 -47
  97. package/src/index.ts +1 -0
  98. package/src/integrations/anthropic/README.md +12 -59
  99. package/src/integrations/anthropic/types.ts +1 -1
  100. package/src/integrations/base/decode-worker-binary-response.ts +5 -7
  101. package/src/integrations/base/index.ts +0 -5
  102. package/src/integrations/base/request-body.test.ts +328 -195
  103. package/src/integrations/base/request-body.ts +148 -328
  104. package/src/integrations/base/rest-api-client-base.ts +22 -31
  105. package/src/integrations/base/rest-api-integration-client.ts +8 -7
  106. package/src/integrations/base/types.ts +0 -18
  107. package/src/integrations/cosmosdb/client.ts +8 -7
  108. package/src/integrations/documentation-resolver.test.ts +43 -2
  109. package/src/integrations/documentation.test.ts +12 -0
  110. package/src/integrations/dynamodb/README.md +33 -12
  111. package/src/integrations/dynamodb/client.test.ts +254 -0
  112. package/src/integrations/dynamodb/client.ts +129 -23
  113. package/src/integrations/dynamodb/index.ts +5 -1
  114. package/src/integrations/dynamodb/types.ts +33 -1
  115. package/src/integrations/gcs/client.ts +8 -7
  116. package/src/integrations/gsheets/client.ts +8 -7
  117. package/src/integrations/index.ts +1 -0
  118. package/src/integrations/jira/README.md +0 -26
  119. package/src/integrations/jira/docs.manifest.json +10 -1
  120. package/src/integrations/jira/overlays/attachments-unsupported.md +3 -0
  121. package/src/integrations/jira/overlays/attachments.md +30 -0
  122. package/src/integrations/mongodb/client.ts +8 -7
  123. package/src/integrations/restapiintegration/client.body-types.test.ts +135 -26
  124. package/src/integrations/restapiintegration/client.test.ts +23 -0
  125. package/src/integrations/restapiintegration/docs.manifest.json +2 -2
  126. package/src/integrations/restapiintegration/overlays/request-body-types.md +26 -17
  127. package/src/integrations/s3/client.ts +8 -7
  128. package/src/integrations/salesforce/client.ts +9 -7
  129. package/src/integrations/slack/client.test.ts +2 -5
  130. package/src/integrations/slack/client.ts +13 -19
  131. package/src/integrations/utils.ts +51 -1
  132. package/src/runtime/context.ts +9 -0
  133. package/src/runtime/executor.ts +8 -0
  134. package/src/types.ts +11 -0
package/README.md CHANGED
@@ -470,6 +470,29 @@ async run(ctx) {
470
470
  }
471
471
  ```
472
472
 
473
+ #### `ctx.dataTag`
474
+
475
+ The canonical key of the requested data tag that Superblocks validated for the
476
+ current execution, such as `"staging"` or `"production"`. This identifies which
477
+ integration configuration is in use; it is not proof of a user's environment
478
+ entitlement. Combine it with `ctx.user` checks for authorization, and do not
479
+ accept a data tag through API input.
480
+
481
+ ```typescript
482
+ async run(ctx) {
483
+ // Deny by default, including on older agents where dataTag is undefined.
484
+ if (ctx.dataTag !== "production") {
485
+ throw new Error("This API requires the production data tag");
486
+ }
487
+ // The data tag identifies the integration configuration. User access is
488
+ // checked independently.
489
+ assertPermissions(ctx.user.groups);
490
+ }
491
+ ```
492
+
493
+ On agents that predate `ctx.dataTag`, the value is `undefined`. Authorization
494
+ checks must explicitly deny access for missing or unrecognized tags.
495
+
473
496
  #### `ctx.user`
474
497
 
475
498
  User information extracted from the Superblocks JWT. This is the **secure, server-side** way to access the current user's identity in API implementations. Never pass user information from the frontend as API input — always use `ctx.user` instead.
package/dist/errors.d.ts CHANGED
@@ -1,16 +1,32 @@
1
1
  /**
2
2
  * Error classes for SDK runtime errors.
3
3
  */
4
- import type { z } from "zod";
4
+ import { z } from "zod";
5
5
  export declare const REDACTED_BINARY_RESPONSE_DATA: Readonly<{
6
6
  dataType: "binary";
7
7
  redacted: true;
8
8
  }>;
9
+ export declare function isBinaryData(value: unknown): value is ArrayBuffer | ArrayBufferView;
10
+ /**
11
+ * Returns a ZodError whose issues never expose binary bytes, so the
12
+ * returned error's own `.message` (JSON.stringify of the issues) is safe
13
+ * to embed in a caller-built error string. Callers must build their
14
+ * message from this return value, not the original `zodError` argument;
15
+ * `restApiValidationErrorFromZodError` does this for `RestApiValidationError`.
16
+ */
17
+ export declare function redactBinaryFromZodError(zodError: z.ZodError): z.ZodError;
9
18
  /**
10
19
  * Error thrown when REST API response or request body validation fails.
11
20
  *
12
- * Contains the complete Zod error object and the actual data that failed validation,
13
- * providing full context for debugging schema mismatches.
21
+ * Contains the actual data that failed validation (redacted when it
22
+ * contains binary) and a Zod error scrubbed of any binary `received`
23
+ * values, providing full context for debugging schema mismatches without
24
+ * leaking bytes into logs or telemetry via `details`.
25
+ *
26
+ * The constructor only scrubs `details`; a `message` built from the raw
27
+ * `ZodError` before construction still carries bytes. Build from a Zod
28
+ * failure through `restApiValidationErrorFromZodError` so `.message` is
29
+ * scrubbed too, not just `details.zodError`.
14
30
  */
15
31
  export declare class RestApiValidationError extends Error {
16
32
  readonly details: {
@@ -22,6 +38,15 @@ export declare class RestApiValidationError extends Error {
22
38
  zodError: z.ZodError;
23
39
  });
24
40
  }
41
+ /**
42
+ * Builds a `RestApiValidationError` from a Zod validation failure. Redacts
43
+ * `zodError` before composing `message`, so the thrown error's `message`
44
+ * can never carry bytes that `details.zodError` already scrubs. This is
45
+ * the only site that needs to reason about redaction order; every caller
46
+ * with a `ZodError` from a `safeParse` failure should use this instead of
47
+ * constructing `RestApiValidationError` directly.
48
+ */
49
+ export declare function restApiValidationErrorFromZodError(prefix: string, zodError: z.ZodError, data: unknown): RestApiValidationError;
25
50
  /**
26
51
  * Error thrown when query results fail schema validation.
27
52
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,eAAO,MAAM,6BAA6B;;;EAGxC,CAAC;AAsEH;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,OAAO,EAAE;QAChB,IAAI,EAAE,OAAO,CAAC;QACd,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC;KACtB,CAAC;gBAGA,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QACP,IAAI,EAAE,OAAO,CAAC;QACd,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC;KACtB;CAUJ;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;aAG3B,OAAO,EAAE;QACvB,wDAAwD;QACxD,QAAQ,EAAE,MAAM,CAAC;QACjB,sDAAsD;QACtD,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC9D,8CAA8C;QAC9C,GAAG,EAAE,OAAO,CAAC;KACd;gBARD,OAAO,EAAE,MAAM,EACC,OAAO,EAAE;QACvB,wDAAwD;QACxD,QAAQ,EAAE,MAAM,CAAC;QACjB,sDAAsD;QACtD,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC9D,8CAA8C;QAC9C,GAAG,EAAE,OAAO,CAAC;KACd;CAOJ;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,OAAO,CAAC,EAAE;QACxB,iCAAiC;QACjC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,4CAA4C;QAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,+CAA+C;QAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,gDAAgD;QAChD,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;QACtB,gDAAgD;QAChD,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB;gBAZD,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE;QACxB,iCAAiC;QACjC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,4CAA4C;QAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,+CAA+C;QAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,gDAAgD;QAChD,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;QACtB,gDAAgD;QAChD,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,YAAA;CAOJ"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,6BAA6B;;;EAGxC,CAAC;AAUH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,WAAW,GAAG,eAAe,CAExC;AAmFD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAEzE;AA0FD;;;;;;;;;;;;GAYG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,OAAO,EAAE;QAChB,IAAI,EAAE,OAAO,CAAC;QACd,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC;KACtB,CAAC;gBAGA,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QACP,IAAI,EAAE,OAAO,CAAC;QACd,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC;KACtB;CAUJ;AAED;;;;;;;GAOG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,CAAC,CAAC,QAAQ,EACpB,IAAI,EAAE,OAAO,GACZ,sBAAsB,CAMxB;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;aAG3B,OAAO,EAAE;QACvB,wDAAwD;QACxD,QAAQ,EAAE,MAAM,CAAC;QACjB,sDAAsD;QACtD,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC9D,8CAA8C;QAC9C,GAAG,EAAE,OAAO,CAAC;KACd;gBARD,OAAO,EAAE,MAAM,EACC,OAAO,EAAE;QACvB,wDAAwD;QACxD,QAAQ,EAAE,MAAM,CAAC;QACjB,sDAAsD;QACtD,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC9D,8CAA8C;QAC9C,GAAG,EAAE,OAAO,CAAC;KACd;CAOJ;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,OAAO,CAAC,EAAE;QACxB,iCAAiC;QACjC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,4CAA4C;QAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,+CAA+C;QAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,gDAAgD;QAChD,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;QACtB,gDAAgD;QAChD,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB;gBAZD,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE;QACxB,iCAAiC;QACjC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,4CAA4C;QAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,+CAA+C;QAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,gDAAgD;QAChD,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;QACtB,gDAAgD;QAChD,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,YAAA;CAOJ"}
package/dist/errors.js CHANGED
@@ -1,73 +1,194 @@
1
1
  /**
2
2
  * Error classes for SDK runtime errors.
3
3
  */
4
+ import { z } from "zod";
4
5
  export const REDACTED_BINARY_RESPONSE_DATA = Object.freeze({
5
6
  dataType: "binary",
6
7
  redacted: true,
7
8
  });
9
+ // Recursion guard for containsBinary/redactBinaryDeep: a cycle is caught by
10
+ // tracking visited objects, but a long non-cyclic chain has no other bound,
11
+ // so it would otherwise recurse until the real call stack overflows at a
12
+ // depth that varies by environment (e.g. the WASM sdk-api sandbox vs. Node).
13
+ // Cap at a fixed depth instead so the failure is deterministic and caught by
14
+ // the try/catch below rather than crashing the walk.
15
+ const MAX_BINARY_SCAN_DEPTH = 100;
16
+ export function isBinaryData(value) {
17
+ return value instanceof ArrayBuffer || ArrayBuffer.isView(value);
18
+ }
8
19
  function isWorkerBufferJson(data) {
9
- if (typeof data !== "object" || data === null) {
10
- return false;
11
- }
12
20
  if (!("data" in data) || !("type" in data)) {
13
21
  return false;
14
22
  }
15
23
  return data.type === "Buffer" && Array.isArray(data.data);
16
24
  }
17
- function isPlainRecord(data) {
18
- if (typeof data !== "object" || data === null || Array.isArray(data)) {
25
+ function containsBinary(data, seen, depth = 0) {
26
+ if (typeof data !== "object" || data === null)
19
27
  return false;
28
+ if (isBinaryData(data) || isWorkerBufferJson(data))
29
+ return true;
30
+ if (seen.has(data))
31
+ return false;
32
+ if (depth >= MAX_BINARY_SCAN_DEPTH) {
33
+ throw new RangeError(`binary scan exceeded depth ${MAX_BINARY_SCAN_DEPTH}`);
20
34
  }
21
- const prototype = Object.getPrototypeOf(data);
22
- return prototype === Object.prototype || prototype === null;
35
+ seen.add(data);
36
+ if (Array.isArray(data)) {
37
+ return data.some((item) => containsBinary(item, seen, depth + 1));
38
+ }
39
+ if (data instanceof Map) {
40
+ return ([...data.keys()].some((key) => containsBinary(key, seen, depth + 1)) ||
41
+ [...data.values()].some((value) => containsBinary(value, seen, depth + 1)));
42
+ }
43
+ if (data instanceof Set) {
44
+ return [...data.values()].some((value) => containsBinary(value, seen, depth + 1));
45
+ }
46
+ return Object.keys(data).some((key) => containsBinary(Reflect.get(data, key), seen, depth + 1));
23
47
  }
24
- function redactBinaryValidationData(data) {
25
- return redactBinaryValidationDataValue(data, new WeakMap());
48
+ // `invalid_literal` is the only issue whose `received` is the raw input
49
+ // (`unknown`); `invalid_type`/`invalid_enum_value` only ever carry a type
50
+ // name or a string|number enum member, never bytes. `invalid_union` nests a
51
+ // full ZodError per attempted branch. `custom` issues carry an arbitrary
52
+ // caller-defined `params` bag from `ctx.addIssue`, which a hand-written
53
+ // `bodySchema.superRefine()` can populate with anything, including bytes.
54
+ // Either can carry the same binary payloads `containsBinary` detects in
55
+ // `data`, so any message or zodError callers derive from an issue list must
56
+ // be scrubbed the same way.
57
+ function sanitizeZodIssue(issue) {
58
+ if (issue.code === z.ZodIssueCode.invalid_literal &&
59
+ safeContainsBinary(issue.received)) {
60
+ return { ...issue, received: REDACTED_BINARY_RESPONSE_DATA };
61
+ }
62
+ if (issue.code === z.ZodIssueCode.custom &&
63
+ issue.params !== undefined &&
64
+ safeContainsBinary(issue.params)) {
65
+ return { ...issue, params: REDACTED_BINARY_RESPONSE_DATA };
66
+ }
67
+ if (issue.code === z.ZodIssueCode.invalid_union) {
68
+ return {
69
+ ...issue,
70
+ unionErrors: issue.unionErrors.map(redactBinaryFromZodError),
71
+ };
72
+ }
73
+ if (issue.code === z.ZodIssueCode.invalid_arguments) {
74
+ return {
75
+ ...issue,
76
+ argumentsError: redactBinaryFromZodError(issue.argumentsError),
77
+ };
78
+ }
79
+ if (issue.code === z.ZodIssueCode.invalid_return_type) {
80
+ return {
81
+ ...issue,
82
+ returnTypeError: redactBinaryFromZodError(issue.returnTypeError),
83
+ };
84
+ }
85
+ return issue;
26
86
  }
27
- function redactBinaryValidationDataValue(data, seen) {
28
- if (data instanceof ArrayBuffer ||
29
- ArrayBuffer.isView(data) ||
30
- isWorkerBufferJson(data)) {
31
- return REDACTED_BINARY_RESPONSE_DATA;
87
+ /**
88
+ * Returns a ZodError whose issues never expose binary bytes, so the
89
+ * returned error's own `.message` (JSON.stringify of the issues) is safe
90
+ * to embed in a caller-built error string. Callers must build their
91
+ * message from this return value, not the original `zodError` argument;
92
+ * `restApiValidationErrorFromZodError` does this for `RestApiValidationError`.
93
+ */
94
+ export function redactBinaryFromZodError(zodError) {
95
+ return new z.ZodError(zodError.issues.map(sanitizeZodIssue));
96
+ }
97
+ // A walk that cannot finish (a throwing getter, an unusual structure) fails
98
+ // closed: treat it as binary so every caller redacts rather than risks
99
+ // leaking bytes. Shared by data and zodError redaction so both paths fail
100
+ // the same way.
101
+ function safeContainsBinary(data) {
102
+ try {
103
+ return containsBinary(data, new WeakSet());
32
104
  }
33
- if (typeof data !== "object" || data === null) {
105
+ catch {
106
+ return true;
107
+ }
108
+ }
109
+ // Binary can arrive at the top level (binary responses, binary request bodies)
110
+ // or nested inside a multipart body's { value, filename } parts. Only the
111
+ // binary leaf is replaced, not the whole payload, so sibling fields (e.g. a
112
+ // multipart part's `filename`, or an unrelated field in the same body) stay
113
+ // visible for debugging. `seen` maps each visited object to its output
114
+ // container, registered *before* that container is filled in, so a repeat
115
+ // reference to the same object - a second, non-cyclic pointer (one
116
+ // multipart part reused under two keys) or a genuine cycle's back-edge -
117
+ // always resolves to the redacted copy being built, never to the raw
118
+ // original. Only called once `redactBinaryValidationData` has confirmed the
119
+ // payload contains binary somewhere, so every container along the way is
120
+ // rebuilt; reference identity for the no-binary-anywhere case is handled by
121
+ // that caller instead.
122
+ function redactBinaryDeep(data, seen, depth) {
123
+ if (typeof data !== "object" || data === null)
34
124
  return data;
125
+ if (isBinaryData(data) || isWorkerBufferJson(data)) {
126
+ return REDACTED_BINARY_RESPONSE_DATA;
35
127
  }
36
- if (seen.has(data)) {
128
+ if (seen.has(data))
37
129
  return seen.get(data);
130
+ if (depth >= MAX_BINARY_SCAN_DEPTH) {
131
+ throw new RangeError(`binary scan exceeded depth ${MAX_BINARY_SCAN_DEPTH}`);
38
132
  }
39
133
  if (Array.isArray(data)) {
40
- const redactedItems = [];
41
- seen.set(data, redactedItems);
42
- let changed = false;
134
+ const next = [];
135
+ seen.set(data, next);
43
136
  for (const item of data) {
44
- const redactedItem = redactBinaryValidationDataValue(item, seen);
45
- changed ||= redactedItem !== item;
46
- redactedItems.push(redactedItem);
137
+ next.push(redactBinaryDeep(item, seen, depth + 1));
47
138
  }
48
- return changed ? redactedItems : data;
139
+ return next;
49
140
  }
50
- if (!isPlainRecord(data)) {
51
- return data;
141
+ if (data instanceof Map) {
142
+ const next = new Map();
143
+ seen.set(data, next);
144
+ for (const [key, value] of data) {
145
+ next.set(redactBinaryDeep(key, seen, depth + 1), redactBinaryDeep(value, seen, depth + 1));
146
+ }
147
+ return next;
148
+ }
149
+ if (data instanceof Set) {
150
+ const next = new Set();
151
+ seen.set(data, next);
152
+ for (const value of data) {
153
+ next.add(redactBinaryDeep(value, seen, depth + 1));
154
+ }
155
+ return next;
52
156
  }
53
- const redactedRecord = Object.getPrototypeOf(data) === null ? Object.create(null) : {};
54
- seen.set(data, redactedRecord);
55
- let changed = false;
56
- for (const [key, value] of Object.entries(data)) {
57
- const redactedValue = redactBinaryValidationDataValue(value, seen);
58
- changed ||= redactedValue !== value;
59
- redactedRecord[key] = redactedValue;
157
+ const next = {};
158
+ seen.set(data, next);
159
+ for (const key of Object.keys(data)) {
160
+ next[key] = redactBinaryDeep(Reflect.get(data, key), seen, depth + 1);
60
161
  }
61
- if (changed) {
62
- return redactedRecord;
162
+ return next;
163
+ }
164
+ // A walk that cannot finish (a throwing getter, an unusual structure, or a
165
+ // depth-capped chain) fails closed: redact the whole payload rather than
166
+ // risk leaking bytes from a partially-completed walk. The `containsBinary`
167
+ // check runs first so a payload with no binary anywhere - including a
168
+ // circular one - comes back as the exact same object, matching how the rest
169
+ // of this module treats data with nothing to redact.
170
+ function redactBinaryValidationData(data) {
171
+ try {
172
+ if (!containsBinary(data, new WeakSet()))
173
+ return data;
174
+ return redactBinaryDeep(data, new Map(), 0);
175
+ }
176
+ catch {
177
+ return REDACTED_BINARY_RESPONSE_DATA;
63
178
  }
64
- return data;
65
179
  }
66
180
  /**
67
181
  * Error thrown when REST API response or request body validation fails.
68
182
  *
69
- * Contains the complete Zod error object and the actual data that failed validation,
70
- * providing full context for debugging schema mismatches.
183
+ * Contains the actual data that failed validation (redacted when it
184
+ * contains binary) and a Zod error scrubbed of any binary `received`
185
+ * values, providing full context for debugging schema mismatches without
186
+ * leaking bytes into logs or telemetry via `details`.
187
+ *
188
+ * The constructor only scrubs `details`; a `message` built from the raw
189
+ * `ZodError` before construction still carries bytes. Build from a Zod
190
+ * failure through `restApiValidationErrorFromZodError` so `.message` is
191
+ * scrubbed too, not just `details.zodError`.
71
192
  */
72
193
  export class RestApiValidationError extends Error {
73
194
  details;
@@ -76,11 +197,26 @@ export class RestApiValidationError extends Error {
76
197
  this.name = "RestApiValidationError";
77
198
  this.details = {
78
199
  data: redactBinaryValidationData(details.data),
79
- zodError: details.zodError,
200
+ zodError: redactBinaryFromZodError(details.zodError),
80
201
  };
81
202
  Object.setPrototypeOf(this, RestApiValidationError.prototype);
82
203
  }
83
204
  }
205
+ /**
206
+ * Builds a `RestApiValidationError` from a Zod validation failure. Redacts
207
+ * `zodError` before composing `message`, so the thrown error's `message`
208
+ * can never carry bytes that `details.zodError` already scrubs. This is
209
+ * the only site that needs to reason about redaction order; every caller
210
+ * with a `ZodError` from a `safeParse` failure should use this instead of
211
+ * constructing `RestApiValidationError` directly.
212
+ */
213
+ export function restApiValidationErrorFromZodError(prefix, zodError, data) {
214
+ const sanitized = redactBinaryFromZodError(zodError);
215
+ return new RestApiValidationError(`${prefix}: ${sanitized.message}`, {
216
+ zodError: sanitized,
217
+ data,
218
+ });
219
+ }
84
220
  /**
85
221
  * Error thrown when query results fail schema validation.
86
222
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=errors.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../src/errors.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,189 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { z } from "zod";
3
+ import { REDACTED_BINARY_RESPONSE_DATA, RestApiValidationError, redactBinaryFromZodError, } from "./errors.js";
4
+ function validationErrorFor(data) {
5
+ return new RestApiValidationError("validation failed", {
6
+ data,
7
+ zodError: new z.ZodError([]),
8
+ });
9
+ }
10
+ describe("RestApiValidationError", () => {
11
+ it("keeps non-binary data and redacts only the binary leaf", () => {
12
+ expect(validationErrorFor({ amount: 1 }).details.data).toEqual({
13
+ amount: 1,
14
+ });
15
+ const bytes = Uint8Array.from([1, 2, 3]);
16
+ expect(validationErrorFor(bytes).details.data).toBe(REDACTED_BINARY_RESPONSE_DATA);
17
+ expect(validationErrorFor({ file: bytes }).details.data).toEqual({
18
+ file: REDACTED_BINARY_RESPONSE_DATA,
19
+ });
20
+ expect(validationErrorFor([bytes.buffer]).details.data).toEqual([
21
+ REDACTED_BINARY_RESPONSE_DATA,
22
+ ]);
23
+ expect(validationErrorFor({ type: "Buffer", data: [1, 2, 3] }).details.data).toBe(REDACTED_BINARY_RESPONSE_DATA);
24
+ expect(validationErrorFor({
25
+ attachment: { value: new DataView(bytes.buffer), filename: "a.png" },
26
+ note: "hello",
27
+ }).details.data).toEqual({
28
+ attachment: { value: REDACTED_BINARY_RESPONSE_DATA, filename: "a.png" },
29
+ note: "hello",
30
+ });
31
+ });
32
+ it("redacts binary nested inside Map and Set values and keys, keeping siblings", () => {
33
+ const bytes = Uint8Array.from([1, 2, 3]);
34
+ expect(validationErrorFor(new Map([["file", bytes]])).details.data).toEqual(new Map([["file", REDACTED_BINARY_RESPONSE_DATA]]));
35
+ expect(validationErrorFor(new Map([[bytes, "file"]])).details.data).toEqual(new Map([[REDACTED_BINARY_RESPONSE_DATA, "file"]]));
36
+ expect(validationErrorFor(new Set([bytes])).details.data).toEqual(new Set([REDACTED_BINARY_RESPONSE_DATA]));
37
+ expect(validationErrorFor({
38
+ attachments: new Set([{ value: bytes, filename: "a.png" }]),
39
+ }).details.data).toEqual({
40
+ attachments: new Set([
41
+ { value: REDACTED_BINARY_RESPONSE_DATA, filename: "a.png" },
42
+ ]),
43
+ });
44
+ });
45
+ it("keeps circular non-binary data", () => {
46
+ const circular = { amount: 1 };
47
+ circular.self = circular;
48
+ expect(validationErrorFor(circular).details.data).toBe(circular);
49
+ });
50
+ it("redacts binary reached through a second, non-cyclic reference to the same object", () => {
51
+ const bytes = Uint8Array.from([1, 2, 3]);
52
+ const part = { value: bytes, filename: "a.png" };
53
+ const data = { first: part, second: part };
54
+ const result = validationErrorFor(data).details.data;
55
+ expect(result.first).toEqual({
56
+ value: REDACTED_BINARY_RESPONSE_DATA,
57
+ filename: "a.png",
58
+ });
59
+ expect(result.second).toEqual({
60
+ value: REDACTED_BINARY_RESPONSE_DATA,
61
+ filename: "a.png",
62
+ });
63
+ expect(result.second).toBe(result.first);
64
+ });
65
+ it("redacts binary reachable through a self-cycle's back-edge", () => {
66
+ const bytes = Uint8Array.from([1, 2, 3]);
67
+ const data = { bytes };
68
+ data.self = data;
69
+ const result = validationErrorFor(data).details.data;
70
+ expect(result.bytes).toBe(REDACTED_BINARY_RESPONSE_DATA);
71
+ expect(result.self).toBe(result);
72
+ expect(result.self.bytes).toBe(REDACTED_BINARY_RESPONSE_DATA);
73
+ });
74
+ it("redacts binary reachable through a mutual two-object cycle's back-edge", () => {
75
+ const bytes = Uint8Array.from([1, 2, 3]);
76
+ const a = {};
77
+ const b = { bytes, a };
78
+ a.b = b;
79
+ const result = validationErrorFor(a).details.data;
80
+ expect(result.b.bytes).toBe(REDACTED_BINARY_RESPONSE_DATA);
81
+ expect(result.b.a).toBe(result);
82
+ expect(result.b.a.b).toBe(result.b);
83
+ });
84
+ it("fails closed when the binary walk cannot finish", () => {
85
+ const throwingGetter = {
86
+ get secret() {
87
+ throw new Error("getter boom");
88
+ },
89
+ };
90
+ expect(validationErrorFor(throwingGetter).details.data).toBe(REDACTED_BINARY_RESPONSE_DATA);
91
+ });
92
+ it("fails closed when nesting exceeds the binary scan depth cap", () => {
93
+ let deep = { leaf: true };
94
+ for (let i = 0; i < 200; i++) {
95
+ deep = { child: deep };
96
+ }
97
+ expect(validationErrorFor(deep).details.data).toBe(REDACTED_BINARY_RESPONSE_DATA);
98
+ });
99
+ });
100
+ describe("redactBinaryFromZodError", () => {
101
+ it("redacts binary `received` values from invalid_literal issues", () => {
102
+ const bytes = Uint8Array.from([137, 80, 78, 71]);
103
+ const { error } = z.object({ v: z.literal("none") }).safeParse({
104
+ v: bytes,
105
+ });
106
+ const sanitized = redactBinaryFromZodError(error);
107
+ expect(error.message).toContain("137");
108
+ expect(sanitized.message).not.toContain("137");
109
+ expect(sanitized.issues[0]).toMatchObject({
110
+ code: "invalid_literal",
111
+ received: REDACTED_BINARY_RESPONSE_DATA,
112
+ });
113
+ });
114
+ it("redacts binary nested inside invalid_union branch errors", () => {
115
+ const bytes = Uint8Array.from([137, 80, 78, 71]);
116
+ const schema = z.union([z.literal("none"), z.literal("all")]);
117
+ const { error } = schema.safeParse(bytes);
118
+ const sanitized = redactBinaryFromZodError(error);
119
+ expect(sanitized.message).not.toContain("137");
120
+ });
121
+ it("leaves non-binary issues untouched", () => {
122
+ const { error } = z
123
+ .object({ v: z.literal("none") })
124
+ .safeParse({ v: "other" });
125
+ const sanitized = redactBinaryFromZodError(error);
126
+ expect(sanitized.issues).toEqual(error.issues);
127
+ });
128
+ it("fails closed when the invalid_literal received value cannot be walked", () => {
129
+ const throwingGetter = {
130
+ get secret() {
131
+ throw new Error("getter boom");
132
+ },
133
+ };
134
+ const { error } = z.object({ v: z.literal("none") }).safeParse({
135
+ v: throwingGetter,
136
+ });
137
+ const sanitized = redactBinaryFromZodError(error);
138
+ expect(sanitized.issues[0]).toMatchObject({
139
+ code: "invalid_literal",
140
+ received: REDACTED_BINARY_RESPONSE_DATA,
141
+ });
142
+ });
143
+ it("redacts binary carried in a custom issue's params", () => {
144
+ const bytes = Uint8Array.from([137, 80, 78, 71]);
145
+ const schema = z.string().superRefine((_value, ctx) => {
146
+ ctx.addIssue({
147
+ code: z.ZodIssueCode.custom,
148
+ message: "rejected",
149
+ params: { offendingBytes: bytes },
150
+ });
151
+ });
152
+ const { error } = schema.safeParse("anything");
153
+ const sanitized = redactBinaryFromZodError(error);
154
+ expect(sanitized.issues[0]).toMatchObject({
155
+ code: "custom",
156
+ params: REDACTED_BINARY_RESPONSE_DATA,
157
+ });
158
+ });
159
+ it("leaves non-binary custom issue params untouched", () => {
160
+ const schema = z.string().superRefine((_value, ctx) => {
161
+ ctx.addIssue({
162
+ code: z.ZodIssueCode.custom,
163
+ message: "rejected",
164
+ params: { reason: "too short" },
165
+ });
166
+ });
167
+ const { error } = schema.safeParse("anything");
168
+ const sanitized = redactBinaryFromZodError(error);
169
+ expect(sanitized.issues[0]).toMatchObject({
170
+ code: "custom",
171
+ params: { reason: "too short" },
172
+ });
173
+ });
174
+ });
175
+ describe("RestApiValidationError zodError redaction", () => {
176
+ it("scrubs binary from details.zodError even when the caller does not pre-sanitize it", () => {
177
+ const bytes = Uint8Array.from([137, 80, 78, 71]);
178
+ const { error } = z.object({ v: z.literal("none") }).safeParse({
179
+ v: bytes,
180
+ });
181
+ const validationError = new RestApiValidationError("validation failed", {
182
+ data: bytes,
183
+ zodError: error,
184
+ });
185
+ expect(validationError.details.data).toBe(REDACTED_BINARY_RESPONSE_DATA);
186
+ expect(JSON.stringify(validationError.details.zodError.issues)).not.toContain("137");
187
+ });
188
+ });
189
+ //# sourceMappingURL=errors.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../src/errors.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -95,7 +95,7 @@ export type { TwilioClient } from "./integrations/twilio/index.js";
95
95
  export type { ZendeskClient } from "./integrations/zendesk/index.js";
96
96
  export type { ZoomClient } from "./integrations/zoom/index.js";
97
97
  export type { GraphQLClient } from "./integrations/graphql/index.js";
98
- export type { DynamoDBClient, DynamoDBAttributeValue, } from "./integrations/dynamodb/index.js";
98
+ export type { DynamoDBClient, DynamoDBAttributeValue, DynamoDBScanOptions, } from "./integrations/dynamodb/index.js";
99
99
  export type { CosmosDBClient } from "./integrations/cosmosdb/index.js";
100
100
  export type { SalesforceClient, SalesforceCrudAction, SalesforceBulkAction, } from "./integrations/salesforce/index.js";
101
101
  export type { S3Client } from "./integrations/s3/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}