@gcmdev/faxios 0.2.0 → 0.2.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.
Files changed (165) hide show
  1. package/LICENSE +8 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/lib/adapters/fetch-helpers.d.ts +1 -0
  5. package/dist/lib/adapters/fetch-helpers.d.ts.map +1 -0
  6. package/dist/lib/adapters/fetch.d.ts +1 -0
  7. package/dist/lib/adapters/fetch.d.ts.map +1 -0
  8. package/dist/lib/cancel/CanceledError.d.ts +1 -0
  9. package/dist/lib/cancel/CanceledError.d.ts.map +1 -0
  10. package/dist/lib/cancel/isCancel.d.ts +1 -0
  11. package/dist/lib/cancel/isCancel.d.ts.map +1 -0
  12. package/dist/lib/core/Faxios.d.ts +1 -0
  13. package/dist/lib/core/Faxios.d.ts.map +1 -0
  14. package/dist/lib/core/FaxiosError.d.ts +1 -0
  15. package/dist/lib/core/FaxiosError.d.ts.map +1 -0
  16. package/dist/lib/core/FaxiosHeaders.d.ts +1 -0
  17. package/dist/lib/core/FaxiosHeaders.d.ts.map +1 -0
  18. package/dist/lib/core/buildFullPath.d.ts +1 -0
  19. package/dist/lib/core/buildFullPath.d.ts.map +1 -0
  20. package/dist/lib/core/define.d.ts +17 -0
  21. package/dist/lib/core/define.d.ts.map +1 -0
  22. package/dist/lib/core/define.js.map +1 -1
  23. package/dist/lib/core/dispatchRequest.d.ts +1 -0
  24. package/dist/lib/core/dispatchRequest.d.ts.map +1 -0
  25. package/dist/lib/core/mergeConfig.d.ts +1 -0
  26. package/dist/lib/core/mergeConfig.d.ts.map +1 -0
  27. package/dist/lib/core/prepareRequest.d.ts +1 -0
  28. package/dist/lib/core/prepareRequest.d.ts.map +1 -0
  29. package/dist/lib/core/route.d.ts +9 -0
  30. package/dist/lib/core/route.d.ts.map +1 -0
  31. package/dist/lib/core/route.js.map +1 -1
  32. package/dist/lib/core/settle.d.ts +1 -0
  33. package/dist/lib/core/settle.d.ts.map +1 -0
  34. package/dist/lib/core/transformData.d.ts +1 -0
  35. package/dist/lib/core/transformData.d.ts.map +1 -0
  36. package/dist/lib/core/validateSchema.d.ts +1 -0
  37. package/dist/lib/core/validateSchema.d.ts.map +1 -0
  38. package/dist/lib/defaults/index.d.ts +1 -0
  39. package/dist/lib/defaults/index.d.ts.map +1 -0
  40. package/dist/lib/defaults/transitional.d.ts +1 -0
  41. package/dist/lib/defaults/transitional.d.ts.map +1 -0
  42. package/dist/lib/env/data.d.ts +2 -1
  43. package/dist/lib/env/data.d.ts.map +1 -0
  44. package/dist/lib/env/data.js +1 -1
  45. package/dist/lib/faxios.d.ts +21 -0
  46. package/dist/lib/faxios.d.ts.map +1 -0
  47. package/dist/lib/faxios.js.map +1 -1
  48. package/dist/lib/helpers/FaxiosURLSearchParams.d.ts +1 -0
  49. package/dist/lib/helpers/FaxiosURLSearchParams.d.ts.map +1 -0
  50. package/dist/lib/helpers/HttpStatusCode.d.ts +1 -0
  51. package/dist/lib/helpers/HttpStatusCode.d.ts.map +1 -0
  52. package/dist/lib/helpers/buildURL.d.ts +1 -0
  53. package/dist/lib/helpers/buildURL.d.ts.map +1 -0
  54. package/dist/lib/helpers/cloneConfig.d.ts +1 -0
  55. package/dist/lib/helpers/cloneConfig.d.ts.map +1 -0
  56. package/dist/lib/helpers/combineURLs.d.ts +1 -0
  57. package/dist/lib/helpers/combineURLs.d.ts.map +1 -0
  58. package/dist/lib/helpers/composeSignals.d.ts +1 -0
  59. package/dist/lib/helpers/composeSignals.d.ts.map +1 -0
  60. package/dist/lib/helpers/cookies.d.ts +1 -0
  61. package/dist/lib/helpers/cookies.d.ts.map +1 -0
  62. package/dist/lib/helpers/estimateDataURLDecodedBytes.d.ts +1 -0
  63. package/dist/lib/helpers/estimateDataURLDecodedBytes.d.ts.map +1 -0
  64. package/dist/lib/helpers/formDataToJSON.d.ts +1 -0
  65. package/dist/lib/helpers/formDataToJSON.d.ts.map +1 -0
  66. package/dist/lib/helpers/isAbsoluteURL.d.ts +1 -0
  67. package/dist/lib/helpers/isAbsoluteURL.d.ts.map +1 -0
  68. package/dist/lib/helpers/isFaxiosError.d.ts +1 -0
  69. package/dist/lib/helpers/isFaxiosError.d.ts.map +1 -0
  70. package/dist/lib/helpers/isURLSameOrigin.d.ts +1 -0
  71. package/dist/lib/helpers/isURLSameOrigin.d.ts.map +1 -0
  72. package/dist/lib/helpers/parseHeaders.d.ts +1 -0
  73. package/dist/lib/helpers/parseHeaders.d.ts.map +1 -0
  74. package/dist/lib/helpers/progressEventReducer.d.ts +1 -0
  75. package/dist/lib/helpers/progressEventReducer.d.ts.map +1 -0
  76. package/dist/lib/helpers/sanitizeHeaderValue.d.ts +1 -0
  77. package/dist/lib/helpers/sanitizeHeaderValue.d.ts.map +1 -0
  78. package/dist/lib/helpers/speedometer.d.ts +1 -0
  79. package/dist/lib/helpers/speedometer.d.ts.map +1 -0
  80. package/dist/lib/helpers/substitutePathParams.d.ts +1 -0
  81. package/dist/lib/helpers/substitutePathParams.d.ts.map +1 -0
  82. package/dist/lib/helpers/throttle.d.ts +1 -0
  83. package/dist/lib/helpers/throttle.d.ts.map +1 -0
  84. package/dist/lib/helpers/toFormData.d.ts +1 -0
  85. package/dist/lib/helpers/toFormData.d.ts.map +1 -0
  86. package/dist/lib/helpers/toURLEncodedForm.d.ts +1 -0
  87. package/dist/lib/helpers/toURLEncodedForm.d.ts.map +1 -0
  88. package/dist/lib/helpers/trackStream.d.ts +1 -0
  89. package/dist/lib/helpers/trackStream.d.ts.map +1 -0
  90. package/dist/lib/helpers/validator.d.ts +1 -0
  91. package/dist/lib/helpers/validator.d.ts.map +1 -0
  92. package/dist/lib/platform.d.ts +1 -0
  93. package/dist/lib/platform.d.ts.map +1 -0
  94. package/dist/lib/plugins/attempt.d.ts +1 -0
  95. package/dist/lib/plugins/attempt.d.ts.map +1 -0
  96. package/dist/lib/plugins/authBearer.d.ts +1 -0
  97. package/dist/lib/plugins/authBearer.d.ts.map +1 -0
  98. package/dist/lib/plugins/definePlugin.d.ts +1 -0
  99. package/dist/lib/plugins/definePlugin.d.ts.map +1 -0
  100. package/dist/lib/plugins/retry.d.ts +1 -0
  101. package/dist/lib/plugins/retry.d.ts.map +1 -0
  102. package/dist/lib/plugins/timing.d.ts +1 -0
  103. package/dist/lib/plugins/timing.d.ts.map +1 -0
  104. package/dist/lib/types/standard-schema.d.ts +1 -0
  105. package/dist/lib/types/standard-schema.d.ts.map +1 -0
  106. package/dist/lib/types.d.ts +12 -0
  107. package/dist/lib/types.d.ts.map +1 -0
  108. package/dist/lib/utils.d.ts +1 -0
  109. package/dist/lib/utils.d.ts.map +1 -0
  110. package/package.json +2 -1
  111. package/skills/configure-requests/SKILL.md +45 -3
  112. package/skills/configure-requests/references/plugins.md +17 -0
  113. package/src/index.ts +57 -0
  114. package/src/lib/adapters/fetch-helpers.ts +167 -0
  115. package/src/lib/adapters/fetch.ts +810 -0
  116. package/src/lib/cancel/CanceledError.ts +23 -0
  117. package/src/lib/cancel/isCancel.ts +10 -0
  118. package/src/lib/core/Faxios.ts +513 -0
  119. package/src/lib/core/FaxiosError.ts +283 -0
  120. package/src/lib/core/FaxiosHeaders.ts +529 -0
  121. package/src/lib/core/buildFullPath.ts +51 -0
  122. package/src/lib/core/define.ts +127 -0
  123. package/src/lib/core/dispatchRequest.ts +171 -0
  124. package/src/lib/core/mergeConfig.ts +175 -0
  125. package/src/lib/core/prepareRequest.ts +155 -0
  126. package/src/lib/core/route.ts +68 -0
  127. package/src/lib/core/settle.ts +20 -0
  128. package/src/lib/core/transformData.ts +23 -0
  129. package/src/lib/core/validateSchema.ts +53 -0
  130. package/src/lib/defaults/index.ts +221 -0
  131. package/src/lib/defaults/transitional.ts +9 -0
  132. package/src/lib/env/data.ts +1 -0
  133. package/src/lib/faxios.ts +306 -0
  134. package/src/lib/helpers/FaxiosURLSearchParams.ts +52 -0
  135. package/src/lib/helpers/HttpStatusCode.ts +77 -0
  136. package/src/lib/helpers/buildURL.ts +77 -0
  137. package/src/lib/helpers/cloneConfig.ts +23 -0
  138. package/src/lib/helpers/combineURLs.ts +11 -0
  139. package/src/lib/helpers/composeSignals.ts +74 -0
  140. package/src/lib/helpers/cookies.ts +68 -0
  141. package/src/lib/helpers/deprecatedMethod.ts +32 -0
  142. package/src/lib/helpers/estimateDataURLDecodedBytes.ts +95 -0
  143. package/src/lib/helpers/formDataToJSON.ts +122 -0
  144. package/src/lib/helpers/isAbsoluteURL.ts +13 -0
  145. package/src/lib/helpers/isFaxiosError.ts +19 -0
  146. package/src/lib/helpers/isURLSameOrigin.ts +16 -0
  147. package/src/lib/helpers/parseHeaders.ts +76 -0
  148. package/src/lib/helpers/progressEventReducer.ts +57 -0
  149. package/src/lib/helpers/sanitizeHeaderValue.ts +61 -0
  150. package/src/lib/helpers/speedometer.ts +55 -0
  151. package/src/lib/helpers/substitutePathParams.ts +13 -0
  152. package/src/lib/helpers/throttle.ts +45 -0
  153. package/src/lib/helpers/toFormData.ts +296 -0
  154. package/src/lib/helpers/toURLEncodedForm.ts +14 -0
  155. package/src/lib/helpers/trackStream.ts +123 -0
  156. package/src/lib/helpers/validator.ts +114 -0
  157. package/src/lib/platform.ts +44 -0
  158. package/src/lib/plugins/attempt.ts +3 -0
  159. package/src/lib/plugins/authBearer.ts +124 -0
  160. package/src/lib/plugins/definePlugin.ts +34 -0
  161. package/src/lib/plugins/retry.ts +245 -0
  162. package/src/lib/plugins/timing.ts +76 -0
  163. package/src/lib/types/standard-schema.ts +58 -0
  164. package/src/lib/types.ts +496 -0
  165. package/src/lib/utils.ts +932 -0
@@ -6,3 +6,4 @@
6
6
  */
7
7
  declare function throttle(fn: (...args: Array<unknown>) => void, freq: number): [(...args: Array<unknown>) => void, () => void];
8
8
  export default throttle;
9
+ //# sourceMappingURL=throttle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/throttle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,iBAAS,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,MAAM,IAAI,CAAC,CAoCtH;AAED,eAAe,QAAQ,CAAC"}
@@ -24,3 +24,4 @@ export declare const DEFAULT_FORM_DATA_MAX_DEPTH = 100;
24
24
  */
25
25
  declare function toFormData(obj: unknown, formData?: GenericFormData | null, options?: Record<string, unknown>): GenericFormData;
26
26
  export default toFormData;
27
+ //# sourceMappingURL=toFormData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toFormData.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/toFormData.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAA6C,oBAAoB;AAK9F,eAAO,MAAM,2BAA2B,MAAM,CAAC;AA2D/C;;;;;;;;;;;;IAYI;AAEJ;;;;;;;;GAQG;AACH,iBAAS,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CA0MvH;AAED,eAAe,UAAU,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import type { GenericFormData } from "../types.js";
2
2
  export default function toURLEncodedForm(data: unknown, options?: Record<string, unknown>): GenericFormData;
3
+ //# sourceMappingURL=toURLEncodedForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toURLEncodedForm.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/toURLEncodedForm.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB;AAGnD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,mBAOxF"}
@@ -1 +1,2 @@
1
1
  export declare const trackStream: (stream: unknown, chunkSize: number | undefined, onProgress?: ((bytes: number) => void) | null, onFinish?: ((err?: unknown) => void) | null) => unknown;
2
+ //# sourceMappingURL=trackStream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackStream.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/trackStream.ts"],"names":[],"mappings":"AA6EA,eAAO,MAAM,WAAW,GAAI,QAAQ,OAAO,EAAE,WAAW,MAAM,GAAG,SAAS,EAAE,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,KAAG,OA6CxK,CAAC"}
@@ -14,3 +14,4 @@ declare const _default: {
14
14
  validators: Record<string, ValidatorFn | undefined>;
15
15
  };
16
16
  export default _default;
17
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/validator.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,CAAC;AAmE7F;;;;;;;;GAQG;AAEH,iBAAS,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,EAAE,YAAY,EAAE,OAAO,GAAG,IAAI,CA0BrH;;;;;AAED,wBAGE"}
@@ -20,3 +20,4 @@ declare const _default: {
20
20
  origin: string;
21
21
  };
22
22
  export default _default;
23
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/lib/platform.ts"],"names":[],"mappings":"AAEA,OAAO,qBAAqB,2CAA2C;;;;;;;;6BAQhD,MAAM;6BACN,KAAK,CAAC,OAAO,CAAC,KAAK,MAAM;;;;;;;kBAJtB,MAAM;oBAAc,MAAM;;;;AAuBpD,wBAaE"}
@@ -1 +1,2 @@
1
1
  export declare const RETRY_ATTEMPT: unique symbol;
2
+ //# sourceMappingURL=attempt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attempt.d.ts","sourceRoot":"","sources":["../../../src/lib/plugins/attempt.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,EAAE,OAAO,MAAuC,CAAC"}
@@ -28,3 +28,4 @@ export type AuthBearerOptions = {
28
28
  export declare function authBearer(getToken: () => string | Promise<string>, options?: AuthBearerOptions): FaxiosPlugin<{
29
29
  provides: AuthBearerCapability;
30
30
  }>;
31
+ //# sourceMappingURL=authBearer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authBearer.d.ts","sourceRoot":"","sources":["../../../src/lib/plugins/authBearer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAA+B,oBAAoB;AAI7E,gEAAgE;AAChE,MAAM,MAAM,oBAAoB,GAAG;IAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;KAAE,CAAC;CAAE,CAAC;AAEnF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,6FAA6F;IAC7F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iGAAiG;IACjG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC;AA6DF;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,GAAE,iBAAsB,GAAG,YAAY,CAAC;IAAE,QAAQ,EAAE,oBAAoB,CAAC;CAAE,CAAC,CA6BvJ"}
@@ -19,3 +19,4 @@ export declare function definePlugin<TProvides = {}, TOptions = {}, TCapabilitie
19
19
  options: Slot<TOptions>;
20
20
  }>;
21
21
  export {};
22
+ //# sourceMappingURL=definePlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definePlugin.d.ts","sourceRoot":"","sources":["../../../src/lib/plugins/definePlugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB;AAGlE,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;AAGvD,KAAK,oBAAoB,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,GACnF,IAAI,CAAC,aAAa,CAAC,GACnB,IAAI,CAAC;KAAG,CAAC,IAAI,MAAM,aAAa,IAAI,CAAC,SAAS,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;CAAG,CAAC,CAAC;AAErG;;;;;GAKG;AAEH,wBAAgB,YAAY,CAAC,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,aAAa,GAAG,SAAS,EAAE,MAAM,EAAE;IAC7F,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,CAAC,CAAC;IAC3F,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;CACvD,GAAG,YAAY,CAAC;IACf,QAAQ,EAAE,oBAAoB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACzD,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;CACzB,CAAC,CAGD"}
@@ -63,3 +63,4 @@ export type RetryRequestOptions = {
63
63
  export declare function retry(options?: RetryOptions): FaxiosPlugin<{
64
64
  options: RetryRequestOptions;
65
65
  }>;
66
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/lib/plugins/retry.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAiB,YAAY,EAAwE,MAAM,EAAE,oBAAoB;AAgD7I,MAAM,MAAM,YAAY,GAAG;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACvD;;;OAGG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC;IAC/D,4GAA4G;IAC5G,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF,iGAAiG;AACjG,MAAM,MAAM,mBAAmB,GAAG;IAAE,KAAK,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC;CAAE,CAAC;AAkGpE;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,YAAY,CAAC;IAAE,OAAO,EAAE,mBAAmB,CAAC;CAAE,CAAC,CAiCjG"}
@@ -29,3 +29,4 @@ export type TimingEvent = {
29
29
  * reporting a success, its error rejects the request.
30
30
  */
31
31
  export declare function timing(onTiming: (event: TimingEvent) => void): FaxiosPlugin;
32
+ //# sourceMappingURL=timing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../../src/lib/plugins/timing.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,YAAY,EAAE,oBAAoB;AAK/D;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAAE,GAAG;IAAE,MAAM,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;CAAE,CAAC,CAAC;AAsBvF;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,YAAY,CAuB3E"}
@@ -35,3 +35,4 @@ export declare namespace StandardSchemaV1 {
35
35
  type InferInput<Schema extends StandardSchemaV1> = NonNullable<Schema["~standard"]["types"]>["input"];
36
36
  type InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema["~standard"]["types"]>["output"];
37
37
  }
38
+ //# sourceMappingURL=standard-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-schema.d.ts","sourceRoot":"","sources":["../../../src/lib/types/standard-schema.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAIH,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IAC/D,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC7D;AAED,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC,UAAU,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QAC7C,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,QAAQ,CAAC,QAAQ,EAAE,CACjB,KAAK,EAAE,OAAO,KACX,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;KAC/C;IAED,UAAU,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QAC7C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB;IAED,KAAK,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC;IAE5D,UAAU,aAAa,CAAC,MAAM;QAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;KAC7B;IAED,UAAU,aAAa;QACrB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;KACvC;IAED,UAAU,KAAK;QACb,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,EACV,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC,GACxC,SAAS,CAAC;KACf;IAED,UAAU,WAAW;QACnB,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;KAC3B;IAED,KAAK,UAAU,CAAC,MAAM,SAAS,gBAAgB,IAAI,WAAW,CAC5D,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAC7B,CAAC,OAAO,CAAC,CAAC;IAEX,KAAK,WAAW,CAAC,MAAM,SAAS,gBAAgB,IAAI,WAAW,CAC7D,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAC7B,CAAC,QAAQ,CAAC,CAAC;CACb"}
@@ -176,7 +176,18 @@ export interface FaxiosRequestConfig<D = unknown> {
176
176
  responseSchema?: StandardSchemaV1;
177
177
  requestSchema?: StandardSchemaV1;
178
178
  paramsSchema?: StandardSchemaV1;
179
+ /**
180
+ * Values for `{key}` placeholders in `url` (braces, not `:key`). Only own properties count.
181
+ * Each value goes through `String()` then `encodeURIComponent`. A placeholder whose key is
182
+ * missing, or whose value is `null` or `undefined`, rejects with `ERR_BAD_OPTION_VALUE`. Keys
183
+ * with no matching placeholder are ignored. Without `pathParams`, placeholders are sent literally.
184
+ */
179
185
  pathParams?: Record<string, unknown>;
186
+ /**
187
+ * Standard Schema that validates `pathParams` before substitution; its output replaces
188
+ * `pathParams`. Requires `pathParams`, or the request rejects with `ERR_BAD_OPTION_VALUE`.
189
+ * A validation failure, or output that isn't a plain object, rejects with `ERR_BAD_PATH_PARAMS_SCHEMA`.
190
+ */
180
191
  pathParamsSchema?: StandardSchemaV1<unknown, Record<string, unknown>>;
181
192
  }
182
193
  export type SchemaConfig<O, D = unknown> = FaxiosRequestConfig<D> & {
@@ -296,3 +307,4 @@ export type FaxiosPluginArgument<TRequires = unknown, TProvides = unknown, TOpti
296
307
  provides?: TProvides;
297
308
  };
298
309
  export {};
310
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
@@ -141,3 +141,4 @@ declare const _default: {
141
141
  isSafeIterable: (thing: unknown) => boolean;
142
142
  };
143
143
  export default _default;
144
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gcmdev/faxios",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Promise based, web-standard fetch HTTP client for the browser, Node.js, Deno and Bun",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -44,6 +44,7 @@
44
44
  "homepage": "https://adrianbrowning.github.io/faxios/",
45
45
  "files": [
46
46
  "dist/",
47
+ "src/**/*.ts",
47
48
  "skills/configure-requests"
48
49
  ],
49
50
  "scripts": {
@@ -13,7 +13,7 @@ metadata:
13
13
  generating Axios APIs that faxios removed or never verified.
14
14
  type: core
15
15
  library: '@gcmdev/faxios'
16
- library_version: '0.2.0'
16
+ library_version: '0.2.1'
17
17
  sources:
18
18
  - src/index.ts
19
19
  - src/lib/faxios.ts
@@ -22,6 +22,8 @@ sources:
22
22
  - src/lib/core/buildFullPath.ts
23
23
  - src/lib/core/dispatchRequest.ts
24
24
  - src/lib/core/FaxiosError.ts
25
+ - src/lib/core/define.ts
26
+ - src/lib/core/route.ts
25
27
  - src/lib/types.ts
26
28
  - src/lib/adapters/fetch.ts
27
29
  - src/lib/helpers/composeSignals.ts
@@ -70,7 +72,7 @@ const { data, status } = await api.get<{ id: number; name: string }>("/users/1")
70
72
  - `get`, `delete`, `head`, `options` take `(url, config?)`.
71
73
  - `post`, `put`, `patch`, `query` take `(url, data?, config?)`. `query` sends the HTTP QUERY method.
72
74
  - `postForm`, `putForm`, `patchForm` send `multipart/form-data`.
73
- - `api.getUri(config)` returns the URL faxios would request, without sending anything.
75
+ - `api.getUri(config)` builds the URL from `baseURL`, `url` and `params` without sending anything. It doesn't substitute `pathParams`, so `{key}` placeholders stay as written.
74
76
 
75
77
  Path and query parameters:
76
78
 
@@ -87,6 +89,21 @@ const res = await faxios.get("https://api.example.com/users/{id}/posts", {
87
89
  `pathParams` values are `encodeURIComponent`-encoded. A missing or `null` value rejects with
88
90
  `ERR_BAD_OPTION_VALUE`.
89
91
 
92
+ Binary downloads need `responseType`, and a type argument because `data` is `unknown`:
93
+
94
+ ```ts
95
+ import faxios from "@gcmdev/faxios";
96
+
97
+ const { data } = await faxios.get<ArrayBuffer>("https://example.com/report.zip", {
98
+ responseType: "arraybuffer",
99
+ maxContentLength: 50 * 1024 * 1024, // the body is buffered; cap it for untrusted servers
100
+ });
101
+ console.log(data.byteLength);
102
+ ```
103
+
104
+ Unset `responseType` reads the body as text, then JSON-parses it if it parses. `"text"` skips the
105
+ JSON parse; `"blob"`, `"formdata"` and `"stream"` (a `ReadableStream`) are also supported.
106
+
90
107
  ### Merge defaults the way faxios does
91
108
 
92
109
  `faxios.create(config)` merges `config` over the parent's defaults with `mergeConfig`:
@@ -134,7 +151,29 @@ catch (error) {
134
151
  `ERR_BAD_RESPONSE_SCHEMA`, `error.response.data` is the body the schema rejected. Schemas run
135
152
  inside dispatch, so middleware sees the unvalidated config before `next(ctx)`.
136
153
  - For reusable typed endpoints, use `api.define(method, url, config)` or `api.route(url, config)`
137
- rather than wrapping calls by hand.
154
+ rather than wrapping calls by hand. They return plain functions with no `.use()`
155
+ (`api.define(...).use(...)` is a TypeError), so put middleware on the instance and call
156
+ `define()`/`route()` on the value `.use()` returned. Middleware added later still runs (the
157
+ endpoint calls `api.request()` each time), but only that value types plugin options.
158
+ `pathParams` is accepted only when `pathParamsSchema` is set.
159
+
160
+ ```ts
161
+ import faxios from "@gcmdev/faxios";
162
+ import { z } from "zod";
163
+
164
+ const api = faxios
165
+ .create({ baseURL: "https://api.example.com" })
166
+ .use(async (ctx, next) => next(ctx));
167
+ const getUser = api.define("get", "/users/{id}", {
168
+ pathParamsSchema: z.object({ id: z.string() }),
169
+ responseSchema: z.object({ name: z.string() }),
170
+ });
171
+ const { data } = await getUser({ pathParams: { id: "123" } });
172
+ console.log(data.name);
173
+ ```
174
+
175
+ - With a plugin such as `retry()`, see "Define endpoints on a plugin instance" in
176
+ [references/plugins.md](references/plugins.md).
138
177
 
139
178
  ### Cancel requests and apply timeouts
140
179
 
@@ -319,6 +358,9 @@ export only. Instances from `create()` do not have them; import them by name ins
319
358
  progress through fetch; do not promise it there.
320
359
  9. **MEDIUM: Retrying POST by accident or by assumption.** The retry plugin skips POST and PATCH
321
360
  unless they are listed in `methods`; a custom `retryOn` cannot override that.
361
+ 10. **MEDIUM: Downloading a binary body without `responseType`.** The bytes are decoded as UTF-8
362
+ text and come back corrupted. Set `responseType: "arraybuffer"` and type the call with
363
+ `get<ArrayBuffer>`. Source: `src/lib/adapters/fetch.ts`.
322
364
 
323
365
  ## Completion
324
366
 
@@ -27,6 +27,23 @@ Check: `faxios.get("/health", { retry: false })` on the default export (or any i
27
27
  `retry()` installed) is a type error. Use the value `.use()` returned. The option defaults and
28
28
  ordering rules are in the SKILL.md "Use the built-in plugins from their subpaths" section.
29
29
 
30
+ ## Define endpoints on a plugin instance
31
+
32
+ `define()` and `route()` return plain functions with no `.use()`. Install plugins first and call
33
+ `define()` on the value `.use()` returned, so the endpoint's per-call config types `retry`:
34
+
35
+ ```ts
36
+ import faxios from "@gcmdev/faxios";
37
+ import { retry } from "@gcmdev/faxios/plugins/retry";
38
+ import { z } from "zod";
39
+
40
+ const api = faxios.create({ baseURL: "https://tags.tiqcdn.com" }).use(retry());
41
+ const getDistro = api.define("get", "/utag/{account}/{profile}/prod/distro.zip", {
42
+ pathParamsSchema: z.object({ account: z.string(), profile: z.string() }),
43
+ });
44
+ await getDistro({ pathParams: { account: "acme", profile: "main" }, retry: { attempts: 2 } });
45
+ ```
46
+
30
47
  ## Build a plugin with `definePlugin`
31
48
 
32
49
  `definePlugin` comes from `@gcmdev/faxios/plugins`. It returns the same object and only changes the
package/src/index.ts ADDED
@@ -0,0 +1,57 @@
1
+ // @ts-self-types="./index.d.ts"
2
+ /* eslint-disable no-barrel-files/no-barrel-files */
3
+ import faxios from "./lib/faxios.ts";
4
+ import type { FaxiosInstance, FaxiosStatic } from "./lib/faxios.ts";
5
+ import type { CreateFaxiosDefaults } from "./lib/types.ts";
6
+
7
+ // Static re-exports so the emitted .d.ts references source modules.
8
+ // zshy rewrites .ts -> .js for static import/export, but NOT for inline
9
+ // import() type expressions (ImportTypeNode). Destructuring these off the
10
+ // runtime instance forced TS to emit the broken inline `import("./x.ts")` form.
11
+ export { default as Faxios } from "./lib/core/Faxios.ts";
12
+ export { default as FaxiosError, isSchemaValidationError } from "./lib/core/FaxiosError.ts";
13
+ export type { SchemaValidationError } from "./lib/core/FaxiosError.ts";
14
+ export { default as CanceledError, default as Cancel } from "./lib/cancel/CanceledError.ts";
15
+ export { default as isCancel } from "./lib/cancel/isCancel.ts";
16
+ export { default as isFaxiosError } from "./lib/helpers/isFaxiosError.ts";
17
+ export { default as toFormData } from "./lib/helpers/toFormData.ts";
18
+ export { default as FaxiosHeaders } from "./lib/core/FaxiosHeaders.ts";
19
+ export { default as HttpStatusCode } from "./lib/helpers/HttpStatusCode.ts";
20
+ export { default as mergeConfig } from "./lib/core/mergeConfig.ts";
21
+ export { VERSION } from "./lib/env/data.ts";
22
+
23
+ export type { FaxiosInstance, FaxiosStatic } from "./lib/faxios.ts";
24
+ export type { StandardSchemaV1 } from "./lib/types/standard-schema.ts";
25
+ export type { BasePerCallConfig, DefineConfig, DefinedEndpoint, FaxiosLike, PerCallConfig } from "./lib/core/define.ts";
26
+ export type { RouteConfig, RouteMethodConfig, RouteBuilder } from "./lib/core/route.ts";
27
+
28
+ export type {
29
+ FaxiosRequestConfig,
30
+ InternalFaxiosRequestConfig,
31
+ FaxiosResponse,
32
+ FaxiosRequestHeaders,
33
+ FaxiosResponseHeadersLike,
34
+ FaxiosHeaderValue,
35
+ Method,
36
+ ResponseType,
37
+ GenericHTMLFormElement,
38
+ RawFaxiosRequestConfig,
39
+ FaxiosPromise,
40
+ CreateFaxiosDefaults,
41
+ FaxiosConfigHeaders,
42
+ RawFaxiosRequestHeaders,
43
+ HeadersDefaults,
44
+ FaxiosContext,
45
+ FaxiosNext,
46
+ FaxiosMiddleware,
47
+ FaxiosPlugin
48
+ } from "./lib/types.ts";
49
+
50
+ // Instance-synthesized members (no 1:1 source module). Types are self-contained
51
+ // (all/formToJSON) or annotated with statically imported types (create), so no
52
+ // inline import() is emitted. Runtime values are the same references as on the instance.
53
+ export const all: FaxiosStatic["all"] = faxios.all;
54
+ export const formToJSON: FaxiosStatic["formToJSON"] = faxios.formToJSON;
55
+ export const create: (instanceConfig?: CreateFaxiosDefaults) => FaxiosInstance = faxios.create;
56
+
57
+ export { faxios as default };
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+
3
+ import FaxiosError from "../core/FaxiosError.js";
4
+ import type FaxiosHeaders from "../core/FaxiosHeaders.js";
5
+ import type {
6
+ InternalFaxiosRequestConfig,
7
+ FaxiosRequestHeaders,
8
+ FaxiosResponse
9
+ } from "../types.js";
10
+ import utils from "../utils.js";
11
+
12
+ export type ComposedSignal = AbortSignal & { unsubscribe?: () => void; };
13
+ export type PendingBodyErrorRef = { value: (FaxiosError & { request?: unknown; }) | null; };
14
+
15
+ const _textEncoder: TextEncoder | undefined =
16
+ typeof globalThis.TextEncoder === "function" ? new globalThis.TextEncoder() : undefined;
17
+
18
+ // ponytail: exported for unit testing only — not part of public API
19
+ export const checkDeclaredContentLength = (
20
+ responseHeaders: FaxiosHeaders,
21
+ hasMaxContentLength: boolean,
22
+ maxContentLength: number,
23
+ config: InternalFaxiosRequestConfig,
24
+ request: unknown
25
+ ): void => {
26
+ if (!hasMaxContentLength) return;
27
+ const declaredLength = utils.toFiniteNumber(
28
+ (responseHeaders.getContentLength as () => unknown)()
29
+ );
30
+ if (declaredLength != null && declaredLength > maxContentLength) {
31
+ throw new FaxiosError(
32
+ "maxContentLength size of " + maxContentLength + " exceeded",
33
+ FaxiosError.ERR_BAD_RESPONSE,
34
+ config,
35
+ request
36
+ );
37
+ }
38
+ };
39
+
40
+ // ponytail: exported for unit testing only — not part of public API
41
+ export const checkMaterializedSize = (
42
+ responseData: unknown,
43
+ hasMaxContentLength: boolean,
44
+ maxContentLength: number,
45
+ isStreamResponse: boolean,
46
+ supportsResponseStream: boolean,
47
+ config: InternalFaxiosRequestConfig,
48
+ request: unknown
49
+ ): void => {
50
+ if (!hasMaxContentLength || supportsResponseStream || isStreamResponse) return;
51
+ if (responseData == null) return;
52
+ let materializedSize: number | undefined;
53
+ const rd = responseData as Record<string, unknown>;
54
+ if (typeof rd["byteLength"] === "number") {
55
+ materializedSize = rd["byteLength"];
56
+ }
57
+ else if (typeof rd["size"] === "number") {
58
+ materializedSize = rd["size"];
59
+ }
60
+ else if (typeof responseData === "string") {
61
+ materializedSize = _textEncoder
62
+ ? _textEncoder.encode(responseData).byteLength
63
+ : responseData.length;
64
+ }
65
+ if (typeof materializedSize === "number" && materializedSize > maxContentLength) {
66
+ throw new FaxiosError(
67
+ "maxContentLength size of " + maxContentLength + " exceeded",
68
+ FaxiosError.ERR_BAD_RESPONSE,
69
+ config,
70
+ request
71
+ );
72
+ }
73
+ };
74
+
75
+ // ponytail: exported for unit testing only — not part of public API
76
+ export const handleFetchCaughtError = (
77
+ err: unknown,
78
+ composedSignal: ComposedSignal | undefined,
79
+ pendingBodyErrorRef: PendingBodyErrorRef,
80
+ config: InternalFaxiosRequestConfig,
81
+ request: unknown
82
+ ): never => {
83
+ // Safari can surface fetch aborts as a DOMException-like object whose
84
+ // branded getters throw. Prefer our composed signal reason before reading
85
+ // the caught error, preserving timeout vs cancellation semantics.
86
+ if (
87
+ composedSignal &&
88
+ composedSignal.aborted &&
89
+ composedSignal.reason instanceof FaxiosError
90
+ ) {
91
+ const canceledError = composedSignal.reason;
92
+ canceledError.config = config;
93
+ request && (canceledError.request = request);
94
+ err !== canceledError && (canceledError.cause = err as Error);
95
+ throw canceledError;
96
+ }
97
+
98
+ // Surface a maxBodyLength violation we raised while the request body was
99
+ // being streamed. Matching by identity keeps the error deterministic across
100
+ // runtimes and avoids prototype-pollution reads.
101
+ if (pendingBodyErrorRef.value) {
102
+ const _pbe = pendingBodyErrorRef.value;
103
+ request && !_pbe.request && (_pbe.request = request);
104
+ throw _pbe;
105
+ }
106
+
107
+ // Re-throw FaxiosErrors we raised synchronously without re-wrapping them.
108
+ if (err instanceof FaxiosError) {
109
+ request && !err.request && (err.request = request);
110
+ throw err;
111
+ }
112
+
113
+ const _err = err as Record<string, unknown> & Error;
114
+ if (
115
+ _err.name === "TypeError" &&
116
+ /Load failed|fetch/i.test(_err.message)
117
+ ) {
118
+ throw Object.assign(
119
+ new FaxiosError(
120
+ "Network Error",
121
+ FaxiosError.ERR_NETWORK,
122
+ config,
123
+ request,
124
+ _err["response"] as FaxiosResponse | undefined
125
+ ),
126
+ {
127
+ cause: _err["cause"] || _err,
128
+ }
129
+ );
130
+ }
131
+
132
+ throw FaxiosError.from(
133
+ _err,
134
+ _err["code"] as string | undefined,
135
+ config,
136
+ request,
137
+ _err["response"] as FaxiosResponse | undefined
138
+ );
139
+ };
140
+
141
+ // ponytail: exported for unit testing only — not part of public API
142
+ export const cleanFormDataContentType = (
143
+ data: unknown,
144
+ headers: FaxiosRequestHeaders
145
+ ): void => {
146
+ if (utils.isFormData(data)) {
147
+ const contentType = headers.getContentType() as string | null | undefined;
148
+ if (
149
+ contentType &&
150
+ /^multipart\/form-data/i.test(contentType) &&
151
+ !/boundary=/i.test(contentType)
152
+ ) {
153
+ headers.delete("content-type");
154
+ }
155
+ }
156
+ };
157
+
158
+ // ponytail: exported for unit testing only — not part of public API
159
+ export const encodeBodyIfNeeded = (
160
+ data: unknown,
161
+ headers: Record<string, unknown>,
162
+ encode: (str: string) => Promise<Uint8Array> | Uint8Array
163
+ ): Promise<unknown> | unknown => {
164
+ if (!utils.isString(data) || utils.findKey(headers, "content-type")) return data;
165
+ // ponytail: skip await when TextEncoder is sync (avoids microtask hop on every string body)
166
+ return encode(data as string);
167
+ };