@fern-api/venus-api-sdk 0.22.4-3-g76792b3 → 0.22.34

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 (305) hide show
  1. package/README.md +270 -0
  2. package/dist/cjs/BaseClient.d.ts +17 -4
  3. package/dist/cjs/BaseClient.js +59 -0
  4. package/dist/cjs/Client.d.ts +19 -16
  5. package/dist/cjs/Client.js +15 -50
  6. package/dist/cjs/api/resources/apiKeys/client/Client.d.ts +16 -17
  7. package/dist/cjs/api/resources/apiKeys/client/Client.js +41 -34
  8. package/dist/cjs/api/resources/apiKeys/client/create.js +1 -1
  9. package/dist/cjs/api/resources/apiKeys/client/getTokenMetadata.js +1 -1
  10. package/dist/cjs/api/resources/apiKeys/client/getTokensForOrganization.js +1 -1
  11. package/dist/cjs/api/resources/apiKeys/client/revokeToken.js +1 -1
  12. package/dist/cjs/api/resources/apiKeys/client/revokeTokenById.js +1 -1
  13. package/dist/cjs/api/resources/auth/client/Client.d.ts +69 -0
  14. package/dist/cjs/api/resources/auth/client/Client.js +295 -0
  15. package/dist/cjs/api/resources/auth/client/getAutopilotToken.d.ts +24 -0
  16. package/dist/cjs/api/resources/auth/client/getAutopilotToken.js +65 -0
  17. package/dist/cjs/api/resources/auth/client/getJwt.d.ts +24 -0
  18. package/dist/cjs/api/resources/auth/client/getJwt.js +65 -0
  19. package/dist/cjs/api/resources/auth/client/getOrgForGithubOwner.d.ts +19 -0
  20. package/dist/cjs/api/resources/auth/client/getOrgForGithubOwner.js +55 -0
  21. package/dist/cjs/api/resources/auth/client/index.d.ts +4 -0
  22. package/dist/cjs/api/resources/auth/client/index.js +43 -0
  23. package/dist/cjs/api/resources/auth/client/requests/GetAutopilotTokenRequest.d.ts +22 -0
  24. package/dist/cjs/api/resources/auth/client/requests/GetAutopilotTokenRequest.js +3 -0
  25. package/dist/cjs/api/resources/auth/client/requests/GetJwtRequest.d.ts +16 -0
  26. package/dist/cjs/api/resources/auth/client/requests/GetJwtRequest.js +3 -0
  27. package/dist/cjs/api/resources/auth/client/requests/index.d.ts +2 -0
  28. package/dist/cjs/api/resources/auth/client/requests/index.js +2 -0
  29. package/dist/cjs/api/resources/auth/index.d.ts +2 -0
  30. package/dist/cjs/api/resources/auth/index.js +18 -0
  31. package/dist/cjs/api/resources/auth/types/JwtResponse.d.ts +11 -0
  32. package/dist/cjs/api/resources/auth/types/JwtResponse.js +3 -0
  33. package/dist/cjs/api/resources/auth/types/index.d.ts +1 -0
  34. package/dist/cjs/api/resources/auth/types/index.js +17 -0
  35. package/dist/cjs/api/resources/index.d.ts +3 -0
  36. package/dist/cjs/api/resources/index.js +4 -1
  37. package/dist/cjs/api/resources/organization/client/Client.d.ts +37 -27
  38. package/dist/cjs/api/resources/organization/client/Client.js +152 -60
  39. package/dist/cjs/api/resources/organization/client/addUser.js +1 -1
  40. package/dist/cjs/api/resources/organization/client/create.js +1 -1
  41. package/dist/cjs/api/resources/organization/client/delete.js +1 -1
  42. package/dist/cjs/api/resources/organization/client/get.js +1 -1
  43. package/dist/cjs/api/resources/organization/client/getByPostmanTeamId.d.ts +24 -0
  44. package/dist/cjs/api/resources/organization/client/getByPostmanTeamId.js +65 -0
  45. package/dist/cjs/api/resources/organization/client/getMyOrganizationFromScopedToken.js +1 -1
  46. package/dist/cjs/api/resources/organization/client/getOrgIdsFromToken.js +1 -1
  47. package/dist/cjs/api/resources/organization/client/index.d.ts +1 -0
  48. package/dist/cjs/api/resources/organization/client/index.js +2 -1
  49. package/dist/cjs/api/resources/organization/client/inviteUser.js +1 -1
  50. package/dist/cjs/api/resources/organization/client/isMember.js +1 -1
  51. package/dist/cjs/api/resources/organization/client/removeUser.js +1 -1
  52. package/dist/cjs/api/resources/organization/client/requests/CreateOrganizationRequest.d.ts +8 -0
  53. package/dist/cjs/api/resources/organization/client/update.js +1 -1
  54. package/dist/cjs/api/resources/organization/types/Organization.d.ts +2 -0
  55. package/dist/cjs/api/resources/registry/client/Client.d.ts +12 -13
  56. package/dist/cjs/api/resources/registry/client/Client.js +28 -26
  57. package/dist/cjs/api/resources/registry/client/generateRegistryTokens.d.ts +6 -1
  58. package/dist/cjs/api/resources/registry/client/generateRegistryTokens.js +11 -1
  59. package/dist/cjs/api/resources/registry/client/hasRegistryPermission.js +1 -1
  60. package/dist/cjs/api/resources/registry/client/revokeToken.d.ts +6 -1
  61. package/dist/cjs/api/resources/registry/client/revokeToken.js +11 -1
  62. package/dist/cjs/api/resources/user/client/Client.d.ts +12 -13
  63. package/dist/cjs/api/resources/user/client/Client.js +27 -25
  64. package/dist/cjs/api/resources/user/client/getMyOrganizations.js +1 -1
  65. package/dist/cjs/api/resources/user/client/getMyself.js +1 -1
  66. package/dist/cjs/api/resources/user/client/linkAccounts.js +1 -1
  67. package/dist/cjs/auth/BearerAuthProvider.d.ts +20 -0
  68. package/dist/cjs/auth/BearerAuthProvider.js +76 -0
  69. package/dist/cjs/auth/index.d.ts +1 -0
  70. package/dist/cjs/auth/index.js +5 -0
  71. package/dist/cjs/core/auth/AuthProvider.d.ts +4 -1
  72. package/dist/cjs/core/auth/BearerToken.d.ts +3 -1
  73. package/dist/cjs/core/auth/BearerToken.js +7 -6
  74. package/dist/cjs/core/auth/NoOpAuthProvider.d.ts +5 -0
  75. package/dist/cjs/core/auth/NoOpAuthProvider.js +9 -0
  76. package/dist/cjs/core/auth/index.d.ts +1 -0
  77. package/dist/cjs/core/auth/index.js +3 -1
  78. package/dist/cjs/core/exports.d.ts +1 -0
  79. package/dist/cjs/core/exports.js +17 -0
  80. package/dist/cjs/core/fetcher/BinaryResponse.d.ts +6 -7
  81. package/dist/cjs/core/fetcher/EndpointSupplier.d.ts +2 -2
  82. package/dist/cjs/core/fetcher/Fetcher.d.ts +10 -4
  83. package/dist/cjs/core/fetcher/Fetcher.js +210 -10
  84. package/dist/cjs/core/fetcher/getRequestBody.d.ts +1 -1
  85. package/dist/cjs/core/fetcher/getRequestBody.js +4 -0
  86. package/dist/cjs/core/fetcher/getResponseBody.js +18 -4
  87. package/dist/cjs/core/fetcher/makeRequest.d.ts +1 -1
  88. package/dist/cjs/core/fetcher/makeRequest.js +0 -2
  89. package/dist/cjs/core/fetcher/requestWithRetries.js +0 -9
  90. package/dist/cjs/core/fetcher/signals.d.ts +1 -7
  91. package/dist/cjs/core/fetcher/signals.js +0 -12
  92. package/dist/cjs/core/headers.d.ts +2 -2
  93. package/dist/cjs/core/headers.js +6 -4
  94. package/dist/cjs/core/index.d.ts +1 -0
  95. package/dist/cjs/core/index.js +2 -1
  96. package/dist/cjs/core/logging/exports.d.ts +18 -0
  97. package/dist/cjs/core/logging/exports.js +45 -0
  98. package/dist/cjs/core/logging/index.d.ts +1 -0
  99. package/dist/cjs/core/logging/index.js +17 -0
  100. package/dist/cjs/core/logging/logger.d.ts +126 -0
  101. package/dist/cjs/core/logging/logger.js +144 -0
  102. package/dist/cjs/core/runtime/runtime.js +11 -10
  103. package/dist/cjs/core/schemas/Schema.d.ts +1 -0
  104. package/dist/cjs/core/schemas/Schema.js +1 -0
  105. package/dist/cjs/core/schemas/builders/object/object.js +34 -3
  106. package/dist/cjs/core/schemas/builders/primitives/index.d.ts +1 -0
  107. package/dist/cjs/core/schemas/builders/primitives/index.js +3 -1
  108. package/dist/cjs/core/schemas/builders/primitives/never.d.ts +2 -0
  109. package/dist/cjs/core/schemas/builders/primitives/never.js +14 -0
  110. package/dist/cjs/core/url/join.js +0 -1
  111. package/dist/cjs/exports.d.ts +1 -0
  112. package/dist/cjs/exports.js +17 -0
  113. package/dist/cjs/index.d.ts +1 -0
  114. package/dist/cjs/index.js +4 -0
  115. package/dist/cjs/serialization/resources/auth/client/getAutopilotToken.d.ts +10 -0
  116. package/dist/cjs/serialization/resources/auth/client/getAutopilotToken.js +66 -0
  117. package/dist/cjs/serialization/resources/auth/client/getJwt.d.ts +10 -0
  118. package/dist/cjs/serialization/resources/auth/client/getJwt.js +66 -0
  119. package/dist/cjs/serialization/resources/auth/client/getOrgForGithubOwner.d.ts +8 -0
  120. package/dist/cjs/serialization/resources/auth/client/getOrgForGithubOwner.js +6 -0
  121. package/dist/cjs/serialization/resources/auth/client/index.d.ts +4 -0
  122. package/dist/cjs/serialization/resources/auth/client/index.js +43 -0
  123. package/dist/cjs/serialization/resources/auth/client/requests/GetAutopilotTokenRequest.d.ts +11 -0
  124. package/dist/cjs/serialization/resources/auth/client/requests/GetAutopilotTokenRequest.js +43 -0
  125. package/dist/cjs/serialization/resources/auth/client/requests/GetJwtRequest.d.ts +10 -0
  126. package/dist/cjs/serialization/resources/auth/client/requests/GetJwtRequest.js +42 -0
  127. package/dist/cjs/serialization/resources/auth/client/requests/index.d.ts +2 -0
  128. package/dist/cjs/serialization/resources/auth/client/requests/index.js +7 -0
  129. package/dist/cjs/serialization/resources/auth/index.d.ts +2 -0
  130. package/dist/cjs/serialization/resources/auth/index.js +18 -0
  131. package/dist/cjs/serialization/resources/auth/types/JwtResponse.d.ts +10 -0
  132. package/dist/cjs/serialization/resources/auth/types/JwtResponse.js +42 -0
  133. package/dist/cjs/serialization/resources/auth/types/index.d.ts +1 -0
  134. package/dist/cjs/serialization/resources/auth/types/index.js +17 -0
  135. package/dist/cjs/serialization/resources/index.d.ts +3 -0
  136. package/dist/cjs/serialization/resources/index.js +4 -1
  137. package/dist/cjs/serialization/resources/organization/client/getByPostmanTeamId.d.ts +10 -0
  138. package/dist/cjs/serialization/resources/organization/client/getByPostmanTeamId.js +66 -0
  139. package/dist/cjs/serialization/resources/organization/client/index.d.ts +1 -0
  140. package/dist/cjs/serialization/resources/organization/client/index.js +2 -1
  141. package/dist/cjs/serialization/resources/organization/client/requests/CreateOrganizationRequest.d.ts +2 -0
  142. package/dist/cjs/serialization/resources/organization/client/requests/CreateOrganizationRequest.js +2 -0
  143. package/dist/cjs/serialization/resources/organization/types/Organization.d.ts +1 -0
  144. package/dist/cjs/serialization/resources/organization/types/Organization.js +1 -0
  145. package/dist/cjs/serialization/resources/registry/client/generateRegistryTokens.d.ts +4 -1
  146. package/dist/cjs/serialization/resources/registry/client/generateRegistryTokens.js +3 -0
  147. package/dist/cjs/serialization/resources/registry/client/revokeToken.d.ts +4 -1
  148. package/dist/cjs/serialization/resources/registry/client/revokeToken.js +3 -0
  149. package/dist/cjs/version.d.ts +1 -1
  150. package/dist/cjs/version.js +1 -1
  151. package/dist/esm/BaseClient.d.mts +17 -4
  152. package/dist/esm/BaseClient.mjs +24 -1
  153. package/dist/esm/Client.d.mts +19 -16
  154. package/dist/esm/Client.mjs +16 -18
  155. package/dist/esm/api/resources/apiKeys/client/Client.d.mts +16 -17
  156. package/dist/esm/api/resources/apiKeys/client/Client.mjs +40 -33
  157. package/dist/esm/api/resources/apiKeys/client/create.mjs +1 -1
  158. package/dist/esm/api/resources/apiKeys/client/getTokenMetadata.mjs +1 -1
  159. package/dist/esm/api/resources/apiKeys/client/getTokensForOrganization.mjs +1 -1
  160. package/dist/esm/api/resources/apiKeys/client/revokeToken.mjs +1 -1
  161. package/dist/esm/api/resources/apiKeys/client/revokeTokenById.mjs +1 -1
  162. package/dist/esm/api/resources/auth/client/Client.d.mts +69 -0
  163. package/dist/esm/api/resources/auth/client/Client.mjs +258 -0
  164. package/dist/esm/api/resources/auth/client/getAutopilotToken.d.mts +24 -0
  165. package/dist/esm/api/resources/auth/client/getAutopilotToken.mjs +29 -0
  166. package/dist/esm/api/resources/auth/client/getJwt.d.mts +24 -0
  167. package/dist/esm/api/resources/auth/client/getJwt.mjs +29 -0
  168. package/dist/esm/api/resources/auth/client/getOrgForGithubOwner.d.mts +19 -0
  169. package/dist/esm/api/resources/auth/client/getOrgForGithubOwner.mjs +19 -0
  170. package/dist/esm/api/resources/auth/client/index.d.mts +4 -0
  171. package/dist/esm/api/resources/auth/client/index.mjs +4 -0
  172. package/dist/esm/api/resources/auth/client/requests/GetAutopilotTokenRequest.d.mts +22 -0
  173. package/dist/esm/api/resources/auth/client/requests/GetAutopilotTokenRequest.mjs +2 -0
  174. package/dist/esm/api/resources/auth/client/requests/GetJwtRequest.d.mts +16 -0
  175. package/dist/esm/api/resources/auth/client/requests/GetJwtRequest.mjs +2 -0
  176. package/dist/esm/api/resources/auth/client/requests/index.d.mts +2 -0
  177. package/dist/esm/api/resources/auth/client/requests/index.mjs +1 -0
  178. package/dist/esm/api/resources/auth/index.d.mts +2 -0
  179. package/dist/esm/api/resources/auth/index.mjs +2 -0
  180. package/dist/esm/api/resources/auth/types/JwtResponse.d.mts +11 -0
  181. package/dist/esm/api/resources/auth/types/JwtResponse.mjs +2 -0
  182. package/dist/esm/api/resources/auth/types/index.d.mts +1 -0
  183. package/dist/esm/api/resources/auth/types/index.mjs +1 -0
  184. package/dist/esm/api/resources/index.d.mts +3 -0
  185. package/dist/esm/api/resources/index.mjs +3 -0
  186. package/dist/esm/api/resources/organization/client/Client.d.mts +37 -27
  187. package/dist/esm/api/resources/organization/client/Client.mjs +151 -59
  188. package/dist/esm/api/resources/organization/client/addUser.mjs +1 -1
  189. package/dist/esm/api/resources/organization/client/create.mjs +1 -1
  190. package/dist/esm/api/resources/organization/client/delete.mjs +1 -1
  191. package/dist/esm/api/resources/organization/client/get.mjs +1 -1
  192. package/dist/esm/api/resources/organization/client/getByPostmanTeamId.d.mts +24 -0
  193. package/dist/esm/api/resources/organization/client/getByPostmanTeamId.mjs +29 -0
  194. package/dist/esm/api/resources/organization/client/getMyOrganizationFromScopedToken.mjs +1 -1
  195. package/dist/esm/api/resources/organization/client/getOrgIdsFromToken.mjs +1 -1
  196. package/dist/esm/api/resources/organization/client/index.d.mts +1 -0
  197. package/dist/esm/api/resources/organization/client/index.mjs +1 -0
  198. package/dist/esm/api/resources/organization/client/inviteUser.mjs +1 -1
  199. package/dist/esm/api/resources/organization/client/isMember.mjs +1 -1
  200. package/dist/esm/api/resources/organization/client/removeUser.mjs +1 -1
  201. package/dist/esm/api/resources/organization/client/requests/CreateOrganizationRequest.d.mts +8 -0
  202. package/dist/esm/api/resources/organization/client/update.mjs +1 -1
  203. package/dist/esm/api/resources/organization/types/Organization.d.mts +2 -0
  204. package/dist/esm/api/resources/registry/client/Client.d.mts +12 -13
  205. package/dist/esm/api/resources/registry/client/Client.mjs +27 -25
  206. package/dist/esm/api/resources/registry/client/generateRegistryTokens.d.mts +6 -1
  207. package/dist/esm/api/resources/registry/client/generateRegistryTokens.mjs +11 -1
  208. package/dist/esm/api/resources/registry/client/hasRegistryPermission.mjs +1 -1
  209. package/dist/esm/api/resources/registry/client/revokeToken.d.mts +6 -1
  210. package/dist/esm/api/resources/registry/client/revokeToken.mjs +11 -1
  211. package/dist/esm/api/resources/user/client/Client.d.mts +12 -13
  212. package/dist/esm/api/resources/user/client/Client.mjs +26 -24
  213. package/dist/esm/api/resources/user/client/getMyOrganizations.mjs +1 -1
  214. package/dist/esm/api/resources/user/client/getMyself.mjs +1 -1
  215. package/dist/esm/api/resources/user/client/linkAccounts.mjs +1 -1
  216. package/dist/esm/auth/BearerAuthProvider.d.mts +20 -0
  217. package/dist/esm/auth/BearerAuthProvider.mjs +39 -0
  218. package/dist/esm/auth/index.d.mts +1 -0
  219. package/dist/esm/auth/index.mjs +1 -0
  220. package/dist/esm/core/auth/AuthProvider.d.mts +4 -1
  221. package/dist/esm/core/auth/BearerToken.d.mts +3 -1
  222. package/dist/esm/core/auth/BearerToken.mjs +7 -6
  223. package/dist/esm/core/auth/NoOpAuthProvider.d.mts +5 -0
  224. package/dist/esm/core/auth/NoOpAuthProvider.mjs +5 -0
  225. package/dist/esm/core/auth/index.d.mts +1 -0
  226. package/dist/esm/core/auth/index.mjs +1 -0
  227. package/dist/esm/core/exports.d.mts +1 -0
  228. package/dist/esm/core/exports.mjs +1 -0
  229. package/dist/esm/core/fetcher/BinaryResponse.d.mts +6 -7
  230. package/dist/esm/core/fetcher/EndpointSupplier.d.mts +2 -2
  231. package/dist/esm/core/fetcher/Fetcher.d.mts +10 -4
  232. package/dist/esm/core/fetcher/Fetcher.mjs +210 -10
  233. package/dist/esm/core/fetcher/getRequestBody.d.mts +1 -1
  234. package/dist/esm/core/fetcher/getRequestBody.mjs +4 -0
  235. package/dist/esm/core/fetcher/getResponseBody.mjs +18 -4
  236. package/dist/esm/core/fetcher/makeRequest.d.mts +1 -1
  237. package/dist/esm/core/fetcher/makeRequest.mjs +0 -2
  238. package/dist/esm/core/fetcher/requestWithRetries.mjs +0 -9
  239. package/dist/esm/core/fetcher/signals.d.mts +1 -7
  240. package/dist/esm/core/fetcher/signals.mjs +0 -12
  241. package/dist/esm/core/headers.d.mts +2 -2
  242. package/dist/esm/core/headers.mjs +6 -4
  243. package/dist/esm/core/index.d.mts +1 -0
  244. package/dist/esm/core/index.mjs +1 -0
  245. package/dist/esm/core/logging/exports.d.mts +18 -0
  246. package/dist/esm/core/logging/exports.mjs +9 -0
  247. package/dist/esm/core/logging/index.d.mts +1 -0
  248. package/dist/esm/core/logging/index.mjs +1 -0
  249. package/dist/esm/core/logging/logger.d.mts +126 -0
  250. package/dist/esm/core/logging/logger.mjs +138 -0
  251. package/dist/esm/core/runtime/runtime.mjs +11 -10
  252. package/dist/esm/core/schemas/Schema.d.mts +1 -0
  253. package/dist/esm/core/schemas/Schema.mjs +1 -0
  254. package/dist/esm/core/schemas/builders/object/object.mjs +34 -3
  255. package/dist/esm/core/schemas/builders/primitives/index.d.mts +1 -0
  256. package/dist/esm/core/schemas/builders/primitives/index.mjs +1 -0
  257. package/dist/esm/core/schemas/builders/primitives/never.d.mts +2 -0
  258. package/dist/esm/core/schemas/builders/primitives/never.mjs +11 -0
  259. package/dist/esm/core/url/join.mjs +0 -1
  260. package/dist/esm/exports.d.mts +1 -0
  261. package/dist/esm/exports.mjs +1 -0
  262. package/dist/esm/index.d.mts +1 -0
  263. package/dist/esm/index.mjs +1 -0
  264. package/dist/esm/serialization/resources/auth/client/getAutopilotToken.d.mts +10 -0
  265. package/dist/esm/serialization/resources/auth/client/getAutopilotToken.mjs +30 -0
  266. package/dist/esm/serialization/resources/auth/client/getJwt.d.mts +10 -0
  267. package/dist/esm/serialization/resources/auth/client/getJwt.mjs +30 -0
  268. package/dist/esm/serialization/resources/auth/client/getOrgForGithubOwner.d.mts +8 -0
  269. package/dist/esm/serialization/resources/auth/client/getOrgForGithubOwner.mjs +3 -0
  270. package/dist/esm/serialization/resources/auth/client/index.d.mts +4 -0
  271. package/dist/esm/serialization/resources/auth/client/index.mjs +4 -0
  272. package/dist/esm/serialization/resources/auth/client/requests/GetAutopilotTokenRequest.d.mts +11 -0
  273. package/dist/esm/serialization/resources/auth/client/requests/GetAutopilotTokenRequest.mjs +7 -0
  274. package/dist/esm/serialization/resources/auth/client/requests/GetJwtRequest.d.mts +10 -0
  275. package/dist/esm/serialization/resources/auth/client/requests/GetJwtRequest.mjs +6 -0
  276. package/dist/esm/serialization/resources/auth/client/requests/index.d.mts +2 -0
  277. package/dist/esm/serialization/resources/auth/client/requests/index.mjs +2 -0
  278. package/dist/esm/serialization/resources/auth/index.d.mts +2 -0
  279. package/dist/esm/serialization/resources/auth/index.mjs +2 -0
  280. package/dist/esm/serialization/resources/auth/types/JwtResponse.d.mts +10 -0
  281. package/dist/esm/serialization/resources/auth/types/JwtResponse.mjs +6 -0
  282. package/dist/esm/serialization/resources/auth/types/index.d.mts +1 -0
  283. package/dist/esm/serialization/resources/auth/types/index.mjs +1 -0
  284. package/dist/esm/serialization/resources/index.d.mts +3 -0
  285. package/dist/esm/serialization/resources/index.mjs +3 -0
  286. package/dist/esm/serialization/resources/organization/client/getByPostmanTeamId.d.mts +10 -0
  287. package/dist/esm/serialization/resources/organization/client/getByPostmanTeamId.mjs +30 -0
  288. package/dist/esm/serialization/resources/organization/client/index.d.mts +1 -0
  289. package/dist/esm/serialization/resources/organization/client/index.mjs +1 -0
  290. package/dist/esm/serialization/resources/organization/client/requests/CreateOrganizationRequest.d.mts +2 -0
  291. package/dist/esm/serialization/resources/organization/client/requests/CreateOrganizationRequest.mjs +2 -0
  292. package/dist/esm/serialization/resources/organization/types/Organization.d.mts +1 -0
  293. package/dist/esm/serialization/resources/organization/types/Organization.mjs +1 -0
  294. package/dist/esm/serialization/resources/registry/client/generateRegistryTokens.d.mts +4 -1
  295. package/dist/esm/serialization/resources/registry/client/generateRegistryTokens.mjs +3 -0
  296. package/dist/esm/serialization/resources/registry/client/revokeToken.d.mts +4 -1
  297. package/dist/esm/serialization/resources/registry/client/revokeToken.mjs +3 -0
  298. package/dist/esm/version.d.mts +1 -1
  299. package/dist/esm/version.mjs +1 -1
  300. package/package.json +8 -3
  301. package/reference.md +1369 -0
  302. package/dist/cjs/core/fetcher/ResponseWithBody.d.ts +0 -4
  303. package/dist/cjs/core/fetcher/ResponseWithBody.js +0 -6
  304. package/dist/esm/core/fetcher/ResponseWithBody.d.mts +0 -4
  305. package/dist/esm/core/fetcher/ResponseWithBody.mjs +0 -3
@@ -0,0 +1,39 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ import * as core from "../core/index.mjs";
12
+ const TOKEN_PARAM = "token";
13
+ export class BearerAuthProvider {
14
+ constructor(options) {
15
+ this.options = options;
16
+ }
17
+ static canCreate(options) {
18
+ return (options === null || options === void 0 ? void 0 : options[TOKEN_PARAM]) != null;
19
+ }
20
+ getAuthRequest() {
21
+ return __awaiter(this, arguments, void 0, function* ({ endpointMetadata, } = {}) {
22
+ const token = yield core.Supplier.get(this.options[TOKEN_PARAM]);
23
+ if (token == null) {
24
+ return { headers: {} };
25
+ }
26
+ return {
27
+ headers: { Authorization: `Bearer ${token}` },
28
+ };
29
+ });
30
+ }
31
+ }
32
+ (function (BearerAuthProvider) {
33
+ BearerAuthProvider.AUTH_SCHEME = "bearer";
34
+ BearerAuthProvider.AUTH_CONFIG_ERROR_MESSAGE = `Please provide '${TOKEN_PARAM}' when initializing the client`;
35
+ function createInstance(options) {
36
+ return new BearerAuthProvider(options);
37
+ }
38
+ BearerAuthProvider.createInstance = createInstance;
39
+ })(BearerAuthProvider || (BearerAuthProvider = {}));
@@ -0,0 +1 @@
1
+ export { BearerAuthProvider } from "./BearerAuthProvider.mjs";
@@ -0,0 +1 @@
1
+ export { BearerAuthProvider } from "./BearerAuthProvider.mjs";
@@ -1,4 +1,7 @@
1
+ import type { EndpointMetadata } from "../fetcher/EndpointMetadata.mjs";
1
2
  import type { AuthRequest } from "./AuthRequest.mjs";
2
3
  export interface AuthProvider {
3
- getAuthRequest(): Promise<AuthRequest>;
4
+ getAuthRequest(arg?: {
5
+ endpointMetadata?: EndpointMetadata;
6
+ }): Promise<AuthRequest>;
4
7
  }
@@ -1,5 +1,7 @@
1
1
  export type BearerToken = string;
2
+ declare function toAuthorizationHeader(token: string | undefined): string | undefined;
2
3
  export declare const BearerToken: {
3
- toAuthorizationHeader: (token: BearerToken | undefined) => string | undefined;
4
+ toAuthorizationHeader: typeof toAuthorizationHeader;
4
5
  fromAuthorizationHeader: (header: string) => BearerToken;
5
6
  };
7
+ export {};
@@ -1,11 +1,12 @@
1
1
  const BEARER_AUTH_HEADER_PREFIX = /^Bearer /i;
2
+ function toAuthorizationHeader(token) {
3
+ if (token == null) {
4
+ return undefined;
5
+ }
6
+ return `Bearer ${token}`;
7
+ }
2
8
  export const BearerToken = {
3
- toAuthorizationHeader: (token) => {
4
- if (token == null) {
5
- return undefined;
6
- }
7
- return `Bearer ${token}`;
8
- },
9
+ toAuthorizationHeader: toAuthorizationHeader,
9
10
  fromAuthorizationHeader: (header) => {
10
11
  return header.replace(BEARER_AUTH_HEADER_PREFIX, "").trim();
11
12
  },
@@ -0,0 +1,5 @@
1
+ import type { AuthProvider } from "./AuthProvider.mjs";
2
+ import type { AuthRequest } from "./AuthRequest.mjs";
3
+ export declare class NoOpAuthProvider implements AuthProvider {
4
+ getAuthRequest(): Promise<AuthRequest>;
5
+ }
@@ -0,0 +1,5 @@
1
+ export class NoOpAuthProvider {
2
+ getAuthRequest() {
3
+ return Promise.resolve({ headers: {} });
4
+ }
5
+ }
@@ -2,3 +2,4 @@ export type { AuthProvider } from "./AuthProvider.mjs";
2
2
  export type { AuthRequest } from "./AuthRequest.mjs";
3
3
  export { BasicAuth } from "./BasicAuth.mjs";
4
4
  export { BearerToken } from "./BearerToken.mjs";
5
+ export { NoOpAuthProvider } from "./NoOpAuthProvider.mjs";
@@ -1,2 +1,3 @@
1
1
  export { BasicAuth } from "./BasicAuth.mjs";
2
2
  export { BearerToken } from "./BearerToken.mjs";
3
+ export { NoOpAuthProvider } from "./NoOpAuthProvider.mjs";
@@ -0,0 +1 @@
1
+ export * from "./logging/exports.mjs";
@@ -0,0 +1 @@
1
+ export * from "./logging/exports.mjs";
@@ -1,20 +1,19 @@
1
- import type { ResponseWithBody } from "./ResponseWithBody.mjs";
2
1
  export type BinaryResponse = {
3
2
  /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */
4
- bodyUsed: boolean;
3
+ bodyUsed: Response["bodyUsed"];
5
4
  /**
6
5
  * Returns a ReadableStream of the response body.
7
6
  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/body)
8
7
  */
9
- stream: () => ReadableStream<Uint8Array>;
8
+ stream: () => Response["body"];
10
9
  /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */
11
- arrayBuffer: () => Promise<ArrayBuffer>;
10
+ arrayBuffer: () => ReturnType<Response["arrayBuffer"]>;
12
11
  /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */
13
- blob: () => Promise<Blob>;
12
+ blob: () => ReturnType<Response["blob"]>;
14
13
  /**
15
14
  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bytes)
16
15
  * Some versions of the Fetch API may not support this method.
17
16
  */
18
- bytes?(): Promise<Uint8Array>;
17
+ bytes?(): ReturnType<Response["bytes"]>;
19
18
  };
20
- export declare function getBinaryResponse(response: ResponseWithBody): BinaryResponse;
19
+ export declare function getBinaryResponse(response: Response): BinaryResponse;
@@ -1,12 +1,12 @@
1
1
  import type { EndpointMetadata } from "./EndpointMetadata.mjs";
2
2
  import type { Supplier } from "./Supplier.mjs";
3
3
  type EndpointSupplierFn<T> = (arg: {
4
- endpointMetadata: EndpointMetadata;
4
+ endpointMetadata?: EndpointMetadata;
5
5
  }) => T | Promise<T>;
6
6
  export type EndpointSupplier<T> = Supplier<T> | EndpointSupplierFn<T>;
7
7
  export declare const EndpointSupplier: {
8
8
  get: <T>(supplier: EndpointSupplier<T>, arg: {
9
- endpointMetadata: EndpointMetadata;
9
+ endpointMetadata?: EndpointMetadata;
10
10
  }) => Promise<T>;
11
11
  };
12
12
  export {};
@@ -1,25 +1,27 @@
1
+ import { type LogConfig, type Logger } from "../logging/logger.mjs";
1
2
  import type { APIResponse } from "./APIResponse.mjs";
2
3
  import type { EndpointMetadata } from "./EndpointMetadata.mjs";
3
- import { EndpointSupplier } from "./EndpointSupplier.mjs";
4
4
  export type FetchFunction = <R = unknown>(args: Fetcher.Args) => Promise<APIResponse<R, Fetcher.Error>>;
5
5
  export declare namespace Fetcher {
6
6
  interface Args {
7
7
  url: string;
8
8
  method: string;
9
9
  contentType?: string;
10
- headers?: Record<string, string | EndpointSupplier<string | null | undefined> | null | undefined>;
10
+ headers?: Record<string, unknown>;
11
11
  queryParameters?: Record<string, unknown>;
12
12
  body?: unknown;
13
13
  timeoutMs?: number;
14
14
  maxRetries?: number;
15
15
  withCredentials?: boolean;
16
16
  abortSignal?: AbortSignal;
17
- requestType?: "json" | "file" | "bytes";
17
+ requestType?: "json" | "file" | "bytes" | "form" | "other";
18
18
  responseType?: "json" | "blob" | "sse" | "streaming" | "text" | "arrayBuffer" | "binary-response";
19
19
  duplex?: "half";
20
20
  endpointMetadata?: EndpointMetadata;
21
+ fetchFn?: typeof fetch;
22
+ logging?: LogConfig | Logger;
21
23
  }
22
- type Error = FailedStatusCodeError | NonJsonError | TimeoutError | UnknownError;
24
+ type Error = FailedStatusCodeError | NonJsonError | BodyIsNullError | TimeoutError | UnknownError;
23
25
  interface FailedStatusCodeError {
24
26
  reason: "status-code";
25
27
  statusCode: number;
@@ -30,6 +32,10 @@ export declare namespace Fetcher {
30
32
  statusCode: number;
31
33
  rawBody: string;
32
34
  }
35
+ interface BodyIsNullError {
36
+ reason: "body-is-null";
37
+ statusCode: number;
38
+ }
33
39
  interface TimeoutError {
34
40
  reason: "timeout";
35
41
  }
@@ -8,21 +8,159 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { toJson } from "../json.mjs";
11
+ import { createLogger } from "../logging/logger.mjs";
11
12
  import { createRequestUrl } from "./createRequestUrl.mjs";
12
13
  import { EndpointSupplier } from "./EndpointSupplier.mjs";
13
14
  import { getErrorResponseBody } from "./getErrorResponseBody.mjs";
14
15
  import { getFetchFn } from "./getFetchFn.mjs";
15
16
  import { getRequestBody } from "./getRequestBody.mjs";
16
17
  import { getResponseBody } from "./getResponseBody.mjs";
18
+ import { Headers } from "./Headers.mjs";
17
19
  import { makeRequest } from "./makeRequest.mjs";
18
20
  import { abortRawResponse, toRawResponse, unknownRawResponse } from "./RawResponse.mjs";
19
21
  import { requestWithRetries } from "./requestWithRetries.mjs";
22
+ const SENSITIVE_HEADERS = new Set([
23
+ "authorization",
24
+ "www-authenticate",
25
+ "x-api-key",
26
+ "api-key",
27
+ "apikey",
28
+ "x-api-token",
29
+ "x-auth-token",
30
+ "auth-token",
31
+ "cookie",
32
+ "set-cookie",
33
+ "proxy-authorization",
34
+ "proxy-authenticate",
35
+ "x-csrf-token",
36
+ "x-xsrf-token",
37
+ "x-session-token",
38
+ "x-access-token",
39
+ ]);
40
+ function redactHeaders(headers) {
41
+ const filtered = {};
42
+ for (const [key, value] of headers instanceof Headers ? headers.entries() : Object.entries(headers)) {
43
+ if (SENSITIVE_HEADERS.has(key.toLowerCase())) {
44
+ filtered[key] = "[REDACTED]";
45
+ }
46
+ else {
47
+ filtered[key] = value;
48
+ }
49
+ }
50
+ return filtered;
51
+ }
52
+ const SENSITIVE_QUERY_PARAMS = new Set([
53
+ "api_key",
54
+ "api-key",
55
+ "apikey",
56
+ "token",
57
+ "access_token",
58
+ "access-token",
59
+ "auth_token",
60
+ "auth-token",
61
+ "password",
62
+ "passwd",
63
+ "secret",
64
+ "api_secret",
65
+ "api-secret",
66
+ "apisecret",
67
+ "key",
68
+ "session",
69
+ "session_id",
70
+ "session-id",
71
+ ]);
72
+ function redactQueryParameters(queryParameters) {
73
+ if (queryParameters == null) {
74
+ return queryParameters;
75
+ }
76
+ const redacted = {};
77
+ for (const [key, value] of Object.entries(queryParameters)) {
78
+ if (SENSITIVE_QUERY_PARAMS.has(key.toLowerCase())) {
79
+ redacted[key] = "[REDACTED]";
80
+ }
81
+ else {
82
+ redacted[key] = value;
83
+ }
84
+ }
85
+ return redacted;
86
+ }
87
+ function redactUrl(url) {
88
+ const protocolIndex = url.indexOf("://");
89
+ if (protocolIndex === -1)
90
+ return url;
91
+ const afterProtocol = protocolIndex + 3;
92
+ // Find the first delimiter that marks the end of the authority section
93
+ const pathStart = url.indexOf("/", afterProtocol);
94
+ let queryStart = url.indexOf("?", afterProtocol);
95
+ let fragmentStart = url.indexOf("#", afterProtocol);
96
+ const firstDelimiter = Math.min(pathStart === -1 ? url.length : pathStart, queryStart === -1 ? url.length : queryStart, fragmentStart === -1 ? url.length : fragmentStart);
97
+ // Find the LAST @ before the delimiter (handles multiple @ in credentials)
98
+ let atIndex = -1;
99
+ for (let i = afterProtocol; i < firstDelimiter; i++) {
100
+ if (url[i] === "@") {
101
+ atIndex = i;
102
+ }
103
+ }
104
+ if (atIndex !== -1) {
105
+ url = `${url.slice(0, afterProtocol)}[REDACTED]@${url.slice(atIndex + 1)}`;
106
+ }
107
+ // Recalculate queryStart since url might have changed
108
+ queryStart = url.indexOf("?");
109
+ if (queryStart === -1)
110
+ return url;
111
+ fragmentStart = url.indexOf("#", queryStart);
112
+ const queryEnd = fragmentStart !== -1 ? fragmentStart : url.length;
113
+ const queryString = url.slice(queryStart + 1, queryEnd);
114
+ if (queryString.length === 0)
115
+ return url;
116
+ // FAST PATH: Quick check if any sensitive keywords present
117
+ // Using indexOf is faster than regex for simple substring matching
118
+ const lower = queryString.toLowerCase();
119
+ const hasSensitive = lower.includes("token") ||
120
+ lower.includes("key") ||
121
+ lower.includes("password") ||
122
+ lower.includes("passwd") ||
123
+ lower.includes("secret") ||
124
+ lower.includes("session") ||
125
+ lower.includes("auth");
126
+ if (!hasSensitive) {
127
+ return url;
128
+ }
129
+ // SLOW PATH: Parse and redact
130
+ const redactedParams = [];
131
+ const params = queryString.split("&");
132
+ for (const param of params) {
133
+ const equalIndex = param.indexOf("=");
134
+ if (equalIndex === -1) {
135
+ redactedParams.push(param);
136
+ continue;
137
+ }
138
+ const key = param.slice(0, equalIndex);
139
+ let shouldRedact = SENSITIVE_QUERY_PARAMS.has(key.toLowerCase());
140
+ if (!shouldRedact && key.includes("%")) {
141
+ try {
142
+ const decodedKey = decodeURIComponent(key);
143
+ shouldRedact = SENSITIVE_QUERY_PARAMS.has(decodedKey.toLowerCase());
144
+ }
145
+ catch (_a) { }
146
+ }
147
+ redactedParams.push(shouldRedact ? `${key}=[REDACTED]` : param);
148
+ }
149
+ return url.slice(0, queryStart + 1) + redactedParams.join("&") + url.slice(queryEnd);
150
+ }
20
151
  function getHeaders(args) {
21
152
  return __awaiter(this, void 0, void 0, function* () {
22
153
  var _a;
23
- const newHeaders = {};
154
+ const newHeaders = new Headers();
155
+ newHeaders.set("Accept", args.responseType === "json"
156
+ ? "application/json"
157
+ : args.responseType === "text"
158
+ ? "text/plain"
159
+ : args.responseType === "sse"
160
+ ? "text/event-stream"
161
+ : "*/*");
24
162
  if (args.body !== undefined && args.contentType != null) {
25
- newHeaders["Content-Type"] = args.contentType;
163
+ newHeaders.set("Content-Type", args.contentType);
26
164
  }
27
165
  if (args.headers == null) {
28
166
  return newHeaders;
@@ -30,39 +168,70 @@ function getHeaders(args) {
30
168
  for (const [key, value] of Object.entries(args.headers)) {
31
169
  const result = yield EndpointSupplier.get(value, { endpointMetadata: (_a = args.endpointMetadata) !== null && _a !== void 0 ? _a : {} });
32
170
  if (typeof result === "string") {
33
- newHeaders[key] = result;
171
+ newHeaders.set(key, result);
34
172
  continue;
35
173
  }
36
174
  if (result == null) {
37
175
  continue;
38
176
  }
39
- newHeaders[key] = `${result}`;
177
+ newHeaders.set(key, `${result}`);
40
178
  }
41
179
  return newHeaders;
42
180
  });
43
181
  }
44
182
  export function fetcherImpl(args) {
45
183
  return __awaiter(this, void 0, void 0, function* () {
46
- var _a;
184
+ var _a, _b, _c;
47
185
  const url = createRequestUrl(args.url, args.queryParameters);
48
186
  const requestBody = yield getRequestBody({
49
187
  body: args.body,
50
- type: args.requestType === "json" ? "json" : "other",
188
+ type: (_a = args.requestType) !== null && _a !== void 0 ? _a : "other",
51
189
  });
52
- const fetchFn = yield getFetchFn();
190
+ const fetchFn = (_b = args.fetchFn) !== null && _b !== void 0 ? _b : (yield getFetchFn());
191
+ const headers = yield getHeaders(args);
192
+ const logger = createLogger(args.logging);
193
+ if (logger.isDebug()) {
194
+ const metadata = {
195
+ method: args.method,
196
+ url: redactUrl(url),
197
+ headers: redactHeaders(headers),
198
+ queryParameters: redactQueryParameters(args.queryParameters),
199
+ hasBody: requestBody != null,
200
+ };
201
+ logger.debug("Making HTTP request", metadata);
202
+ }
53
203
  try {
54
204
  const response = yield requestWithRetries(() => __awaiter(this, void 0, void 0, function* () {
55
- return makeRequest(fetchFn, url, args.method, yield getHeaders(args), requestBody, args.timeoutMs, args.abortSignal, args.withCredentials, args.duplex);
205
+ return makeRequest(fetchFn, url, args.method, headers, requestBody, args.timeoutMs, args.abortSignal, args.withCredentials, args.duplex);
56
206
  }), args.maxRetries);
57
207
  if (response.status >= 200 && response.status < 400) {
208
+ if (logger.isDebug()) {
209
+ const metadata = {
210
+ method: args.method,
211
+ url: redactUrl(url),
212
+ statusCode: response.status,
213
+ responseHeaders: redactHeaders(response.headers),
214
+ };
215
+ logger.debug("HTTP request succeeded", metadata);
216
+ }
217
+ const body = yield getResponseBody(response, args.responseType);
58
218
  return {
59
219
  ok: true,
60
- body: (yield getResponseBody(response, args.responseType)),
220
+ body: body,
61
221
  headers: response.headers,
62
222
  rawResponse: toRawResponse(response),
63
223
  };
64
224
  }
65
225
  else {
226
+ if (logger.isError()) {
227
+ const metadata = {
228
+ method: args.method,
229
+ url: redactUrl(url),
230
+ statusCode: response.status,
231
+ responseHeaders: redactHeaders(Object.fromEntries(response.headers.entries())),
232
+ };
233
+ logger.error("HTTP request failed with error status", metadata);
234
+ }
66
235
  return {
67
236
  ok: false,
68
237
  error: {
@@ -75,7 +244,14 @@ export function fetcherImpl(args) {
75
244
  }
76
245
  }
77
246
  catch (error) {
78
- if ((_a = args.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) {
247
+ if ((_c = args.abortSignal) === null || _c === void 0 ? void 0 : _c.aborted) {
248
+ if (logger.isError()) {
249
+ const metadata = {
250
+ method: args.method,
251
+ url: redactUrl(url),
252
+ };
253
+ logger.error("HTTP request was aborted", metadata);
254
+ }
79
255
  return {
80
256
  ok: false,
81
257
  error: {
@@ -86,6 +262,14 @@ export function fetcherImpl(args) {
86
262
  };
87
263
  }
88
264
  else if (error instanceof Error && error.name === "AbortError") {
265
+ if (logger.isError()) {
266
+ const metadata = {
267
+ method: args.method,
268
+ url: redactUrl(url),
269
+ timeoutMs: args.timeoutMs,
270
+ };
271
+ logger.error("HTTP request timed out", metadata);
272
+ }
89
273
  return {
90
274
  ok: false,
91
275
  error: {
@@ -95,6 +279,14 @@ export function fetcherImpl(args) {
95
279
  };
96
280
  }
97
281
  else if (error instanceof Error) {
282
+ if (logger.isError()) {
283
+ const metadata = {
284
+ method: args.method,
285
+ url: redactUrl(url),
286
+ errorMessage: error.message,
287
+ };
288
+ logger.error("HTTP request failed with error", metadata);
289
+ }
98
290
  return {
99
291
  ok: false,
100
292
  error: {
@@ -104,6 +296,14 @@ export function fetcherImpl(args) {
104
296
  rawResponse: unknownRawResponse,
105
297
  };
106
298
  }
299
+ if (logger.isError()) {
300
+ const metadata = {
301
+ method: args.method,
302
+ url: redactUrl(url),
303
+ error: toJson(error),
304
+ };
305
+ logger.error("HTTP request failed with unknown error", metadata);
306
+ }
107
307
  return {
108
308
  ok: false,
109
309
  error: {
@@ -1,7 +1,7 @@
1
1
  export declare namespace GetRequestBody {
2
2
  interface Args {
3
3
  body: unknown;
4
- type: "json" | "file" | "bytes" | "other";
4
+ type: "json" | "file" | "bytes" | "form" | "other";
5
5
  }
6
6
  }
7
7
  export declare function getRequestBody({ body, type }: GetRequestBody.Args): Promise<BodyInit | undefined>;
@@ -8,8 +8,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { toJson } from "../json.mjs";
11
+ import { toQueryString } from "../url/qs.mjs";
11
12
  export function getRequestBody(_a) {
12
13
  return __awaiter(this, arguments, void 0, function* ({ body, type }) {
14
+ if (type === "form") {
15
+ return toQueryString(body, { arrayFormat: "repeat", encode: true });
16
+ }
13
17
  if (type.includes("json")) {
14
18
  return toJson(body);
15
19
  }
@@ -9,12 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { fromJson } from "../json.mjs";
11
11
  import { getBinaryResponse } from "./BinaryResponse.mjs";
12
- import { isResponseWithBody } from "./ResponseWithBody.mjs";
13
12
  export function getResponseBody(response, responseType) {
14
13
  return __awaiter(this, void 0, void 0, function* () {
15
- if (!isResponseWithBody(response)) {
16
- return undefined;
17
- }
18
14
  switch (responseType) {
19
15
  case "binary-response":
20
16
  return getBinaryResponse(response);
@@ -23,8 +19,26 @@ export function getResponseBody(response, responseType) {
23
19
  case "arrayBuffer":
24
20
  return yield response.arrayBuffer();
25
21
  case "sse":
22
+ if (response.body == null) {
23
+ return {
24
+ ok: false,
25
+ error: {
26
+ reason: "body-is-null",
27
+ statusCode: response.status,
28
+ },
29
+ };
30
+ }
26
31
  return response.body;
27
32
  case "streaming":
33
+ if (response.body == null) {
34
+ return {
35
+ ok: false,
36
+ error: {
37
+ reason: "body-is-null",
38
+ statusCode: response.status,
39
+ },
40
+ };
41
+ }
28
42
  return response.body;
29
43
  case "text":
30
44
  return yield response.text();
@@ -1 +1 @@
1
- export declare const makeRequest: (fetchFn: (url: string, init: RequestInit) => Promise<Response>, url: string, method: string, headers: Record<string, string>, requestBody: BodyInit | undefined, timeoutMs?: number, abortSignal?: AbortSignal, withCredentials?: boolean, duplex?: "half") => Promise<Response>;
1
+ export declare const makeRequest: (fetchFn: (url: string, init: RequestInit) => Promise<Response>, url: string, method: string, headers: Headers | Record<string, string>, requestBody: BodyInit | undefined, timeoutMs?: number, abortSignal?: AbortSignal, withCredentials?: boolean, duplex?: "half") => Promise<Response>;
@@ -10,14 +10,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import { anySignal, getTimeoutSignal } from "./signals.mjs";
11
11
  export const makeRequest = (fetchFn, url, method, headers, requestBody, timeoutMs, abortSignal, withCredentials, duplex) => __awaiter(void 0, void 0, void 0, function* () {
12
12
  const signals = [];
13
- // Add timeout signal
14
13
  let timeoutAbortId;
15
14
  if (timeoutMs != null) {
16
15
  const { signal, abortId } = getTimeoutSignal(timeoutMs);
17
16
  timeoutAbortId = abortId;
18
17
  signals.push(signal);
19
18
  }
20
- // Add arbitrary signal
21
19
  if (abortSignal != null) {
22
20
  signals.push(abortSignal);
23
21
  }
@@ -12,25 +12,20 @@ const MAX_RETRY_DELAY = 60000; // in milliseconds
12
12
  const DEFAULT_MAX_RETRIES = 2;
13
13
  const JITTER_FACTOR = 0.2; // 20% random jitter
14
14
  function addPositiveJitter(delay) {
15
- // Generate a random value between 0 and +JITTER_FACTOR
16
15
  const jitterMultiplier = 1 + Math.random() * JITTER_FACTOR;
17
16
  return delay * jitterMultiplier;
18
17
  }
19
18
  function addSymmetricJitter(delay) {
20
- // Generate a random value in a JITTER_FACTOR-sized percentage range around delay
21
19
  const jitterMultiplier = 1 + (Math.random() - 0.5) * JITTER_FACTOR;
22
20
  return delay * jitterMultiplier;
23
21
  }
24
22
  function getRetryDelayFromHeaders(response, retryAttempt) {
25
- // Check for Retry-After header first (RFC 7231), with no jitter
26
23
  const retryAfter = response.headers.get("Retry-After");
27
24
  if (retryAfter) {
28
- // Parse as number of seconds...
29
25
  const retryAfterSeconds = parseInt(retryAfter, 10);
30
26
  if (!Number.isNaN(retryAfterSeconds) && retryAfterSeconds > 0) {
31
27
  return Math.min(retryAfterSeconds * 1000, MAX_RETRY_DELAY);
32
28
  }
33
- // ...or as an HTTP date; both are valid
34
29
  const retryAfterDate = new Date(retryAfter);
35
30
  if (!Number.isNaN(retryAfterDate.getTime())) {
36
31
  const delay = retryAfterDate.getTime() - Date.now();
@@ -39,19 +34,16 @@ function getRetryDelayFromHeaders(response, retryAttempt) {
39
34
  }
40
35
  }
41
36
  }
42
- // Then check for industry-standard X-RateLimit-Reset header, with positive jitter
43
37
  const rateLimitReset = response.headers.get("X-RateLimit-Reset");
44
38
  if (rateLimitReset) {
45
39
  const resetTime = parseInt(rateLimitReset, 10);
46
40
  if (!Number.isNaN(resetTime)) {
47
- // Assume Unix timestamp in epoch seconds
48
41
  const delay = resetTime * 1000 - Date.now();
49
42
  if (delay > 0) {
50
43
  return addPositiveJitter(Math.min(delay, MAX_RETRY_DELAY));
51
44
  }
52
45
  }
53
46
  }
54
- // Fall back to exponential backoff, with symmetric jitter
55
47
  return addSymmetricJitter(Math.min(INITIAL_RETRY_DELAY * Math.pow(2, retryAttempt), MAX_RETRY_DELAY));
56
48
  }
57
49
  export function requestWithRetries(requestFn_1) {
@@ -59,7 +51,6 @@ export function requestWithRetries(requestFn_1) {
59
51
  let response = yield requestFn();
60
52
  for (let i = 0; i < maxRetries; ++i) {
61
53
  if ([408, 429].includes(response.status) || response.status >= 500) {
62
- // Get delay with appropriate jitter applied
63
54
  const delay = getRetryDelayFromHeaders(response, i);
64
55
  yield new Promise((resolve) => setTimeout(resolve, delay));
65
56
  response = yield requestFn();
@@ -1,11 +1,5 @@
1
1
  export declare function getTimeoutSignal(timeoutMs: number): {
2
2
  signal: AbortSignal;
3
- abortId: NodeJS.Timeout;
3
+ abortId: ReturnType<typeof setTimeout>;
4
4
  };
5
- /**
6
- * Returns an abort signal that is getting aborted when
7
- * at least one of the specified abort signals is aborted.
8
- *
9
- * Requires at least node.js 18.
10
- */
11
5
  export declare function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal;