@tapra/sdk 0.0.0-stage → 0.1.0

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 (398) hide show
  1. package/README.md +41 -3
  2. package/dist/lib/index.d.ts +3 -0
  3. package/dist/lib/index.js +5 -0
  4. package/dist/lib/index.js.map +1 -0
  5. package/dist/lib/realtime.d.ts +99 -0
  6. package/dist/lib/realtime.js +230 -0
  7. package/dist/lib/realtime.js.map +1 -0
  8. package/dist/src/BaseClient.d.ts +57 -0
  9. package/dist/src/BaseClient.js +37 -0
  10. package/dist/src/BaseClient.js.map +1 -0
  11. package/dist/src/Client.d.ts +41 -0
  12. package/dist/src/Client.js +61 -0
  13. package/dist/src/Client.js.map +1 -0
  14. package/dist/src/api/errors/BadRequestError.d.ts +7 -0
  15. package/dist/src/api/errors/BadRequestError.js +18 -0
  16. package/dist/src/api/errors/BadRequestError.js.map +1 -0
  17. package/dist/src/api/errors/ContentTooLargeError.d.ts +7 -0
  18. package/dist/src/api/errors/ContentTooLargeError.js +18 -0
  19. package/dist/src/api/errors/ContentTooLargeError.js.map +1 -0
  20. package/dist/src/api/errors/ForbiddenError.d.ts +7 -0
  21. package/dist/src/api/errors/ForbiddenError.js +18 -0
  22. package/dist/src/api/errors/ForbiddenError.js.map +1 -0
  23. package/dist/src/api/errors/InternalServerError.d.ts +7 -0
  24. package/dist/src/api/errors/InternalServerError.js +18 -0
  25. package/dist/src/api/errors/InternalServerError.js.map +1 -0
  26. package/dist/src/api/errors/PaymentRequiredError.d.ts +7 -0
  27. package/dist/src/api/errors/PaymentRequiredError.js +18 -0
  28. package/dist/src/api/errors/PaymentRequiredError.js.map +1 -0
  29. package/dist/src/api/errors/ServiceUnavailableError.d.ts +7 -0
  30. package/dist/src/api/errors/ServiceUnavailableError.js +18 -0
  31. package/dist/src/api/errors/ServiceUnavailableError.js.map +1 -0
  32. package/dist/src/api/errors/TooManyRequestsError.d.ts +7 -0
  33. package/dist/src/api/errors/TooManyRequestsError.js +18 -0
  34. package/dist/src/api/errors/TooManyRequestsError.js.map +1 -0
  35. package/dist/src/api/errors/UnauthorizedError.d.ts +7 -0
  36. package/dist/src/api/errors/UnauthorizedError.js +18 -0
  37. package/dist/src/api/errors/UnauthorizedError.js.map +1 -0
  38. package/dist/src/api/errors/index.d.ts +8 -0
  39. package/dist/src/api/errors/index.js +9 -0
  40. package/dist/src/api/errors/index.js.map +1 -0
  41. package/dist/src/api/index.d.ts +3 -0
  42. package/dist/src/api/index.js +4 -0
  43. package/dist/src/api/index.js.map +1 -0
  44. package/dist/src/api/resources/diarization/client/Client.d.ts +40 -0
  45. package/dist/src/api/resources/diarization/client/Client.js +97 -0
  46. package/dist/src/api/resources/diarization/client/Client.js.map +1 -0
  47. package/dist/src/api/resources/diarization/client/index.d.ts +1 -0
  48. package/dist/src/api/resources/diarization/client/index.js +2 -0
  49. package/dist/src/api/resources/diarization/client/index.js.map +1 -0
  50. package/dist/src/api/resources/diarization/client/requests/DiarizationRequest.d.ts +11 -0
  51. package/dist/src/api/resources/diarization/client/requests/DiarizationRequest.js +3 -0
  52. package/dist/src/api/resources/diarization/client/requests/DiarizationRequest.js.map +1 -0
  53. package/dist/src/api/resources/diarization/client/requests/index.d.ts +1 -0
  54. package/dist/src/api/resources/diarization/client/requests/index.js +2 -0
  55. package/dist/src/api/resources/diarization/client/requests/index.js.map +1 -0
  56. package/dist/src/api/resources/diarization/exports.d.ts +2 -0
  57. package/dist/src/api/resources/diarization/exports.js +4 -0
  58. package/dist/src/api/resources/diarization/exports.js.map +1 -0
  59. package/dist/src/api/resources/diarization/index.d.ts +1 -0
  60. package/dist/src/api/resources/diarization/index.js +2 -0
  61. package/dist/src/api/resources/diarization/index.js.map +1 -0
  62. package/dist/src/api/resources/index.d.ts +11 -0
  63. package/dist/src/api/resources/index.js +12 -0
  64. package/dist/src/api/resources/index.js.map +1 -0
  65. package/dist/src/api/resources/models/client/Client.d.ts +27 -0
  66. package/dist/src/api/resources/models/client/Client.js +56 -0
  67. package/dist/src/api/resources/models/client/Client.js.map +1 -0
  68. package/dist/src/api/resources/models/client/index.d.ts +1 -0
  69. package/dist/src/api/resources/models/client/index.js +2 -0
  70. package/dist/src/api/resources/models/client/index.js.map +1 -0
  71. package/dist/src/api/resources/models/exports.d.ts +2 -0
  72. package/dist/src/api/resources/models/exports.js +4 -0
  73. package/dist/src/api/resources/models/exports.js.map +1 -0
  74. package/dist/src/api/resources/models/index.d.ts +1 -0
  75. package/dist/src/api/resources/models/index.js +2 -0
  76. package/dist/src/api/resources/models/index.js.map +1 -0
  77. package/dist/src/api/resources/script/client/Client.d.ts +47 -0
  78. package/dist/src/api/resources/script/client/Client.js +99 -0
  79. package/dist/src/api/resources/script/client/Client.js.map +1 -0
  80. package/dist/src/api/resources/script/client/index.d.ts +1 -0
  81. package/dist/src/api/resources/script/client/index.js +2 -0
  82. package/dist/src/api/resources/script/client/index.js.map +1 -0
  83. package/dist/src/api/resources/script/client/requests/ConversionRequest.d.ts +26 -0
  84. package/dist/src/api/resources/script/client/requests/ConversionRequest.js +10 -0
  85. package/dist/src/api/resources/script/client/requests/ConversionRequest.js.map +1 -0
  86. package/dist/src/api/resources/script/client/requests/index.d.ts +1 -0
  87. package/dist/src/api/resources/script/client/requests/index.js +2 -0
  88. package/dist/src/api/resources/script/client/requests/index.js.map +1 -0
  89. package/dist/src/api/resources/script/exports.d.ts +2 -0
  90. package/dist/src/api/resources/script/exports.js +4 -0
  91. package/dist/src/api/resources/script/exports.js.map +1 -0
  92. package/dist/src/api/resources/script/index.d.ts +1 -0
  93. package/dist/src/api/resources/script/index.js +2 -0
  94. package/dist/src/api/resources/script/index.js.map +1 -0
  95. package/dist/src/api/resources/speech/client/Client.d.ts +43 -0
  96. package/dist/src/api/resources/speech/client/Client.js +145 -0
  97. package/dist/src/api/resources/speech/client/Client.js.map +1 -0
  98. package/dist/src/api/resources/speech/client/index.d.ts +1 -0
  99. package/dist/src/api/resources/speech/client/index.js +2 -0
  100. package/dist/src/api/resources/speech/client/index.js.map +1 -0
  101. package/dist/src/api/resources/speech/client/requests/SpeechRequest.d.ts +56 -0
  102. package/dist/src/api/resources/speech/client/requests/SpeechRequest.js +23 -0
  103. package/dist/src/api/resources/speech/client/requests/SpeechRequest.js.map +1 -0
  104. package/dist/src/api/resources/speech/client/requests/index.d.ts +1 -0
  105. package/dist/src/api/resources/speech/client/requests/index.js +2 -0
  106. package/dist/src/api/resources/speech/client/requests/index.js.map +1 -0
  107. package/dist/src/api/resources/speech/exports.d.ts +2 -0
  108. package/dist/src/api/resources/speech/exports.js +4 -0
  109. package/dist/src/api/resources/speech/exports.js.map +1 -0
  110. package/dist/src/api/resources/speech/index.d.ts +1 -0
  111. package/dist/src/api/resources/speech/index.js +2 -0
  112. package/dist/src/api/resources/speech/index.js.map +1 -0
  113. package/dist/src/api/resources/transcriptions/client/Client.d.ts +40 -0
  114. package/dist/src/api/resources/transcriptions/client/Client.js +118 -0
  115. package/dist/src/api/resources/transcriptions/client/Client.js.map +1 -0
  116. package/dist/src/api/resources/transcriptions/client/index.d.ts +1 -0
  117. package/dist/src/api/resources/transcriptions/client/index.js +2 -0
  118. package/dist/src/api/resources/transcriptions/client/index.js.map +1 -0
  119. package/dist/src/api/resources/transcriptions/client/requests/TranscriptionRequest.d.ts +32 -0
  120. package/dist/src/api/resources/transcriptions/client/requests/TranscriptionRequest.js +10 -0
  121. package/dist/src/api/resources/transcriptions/client/requests/TranscriptionRequest.js.map +1 -0
  122. package/dist/src/api/resources/transcriptions/client/requests/index.d.ts +1 -0
  123. package/dist/src/api/resources/transcriptions/client/requests/index.js +2 -0
  124. package/dist/src/api/resources/transcriptions/client/requests/index.js.map +1 -0
  125. package/dist/src/api/resources/transcriptions/exports.d.ts +2 -0
  126. package/dist/src/api/resources/transcriptions/exports.js +4 -0
  127. package/dist/src/api/resources/transcriptions/exports.js.map +1 -0
  128. package/dist/src/api/resources/transcriptions/index.d.ts +1 -0
  129. package/dist/src/api/resources/transcriptions/index.js +2 -0
  130. package/dist/src/api/resources/transcriptions/index.js.map +1 -0
  131. package/dist/src/api/resources/translations/client/Client.d.ts +57 -0
  132. package/dist/src/api/resources/translations/client/Client.js +208 -0
  133. package/dist/src/api/resources/translations/client/Client.js.map +1 -0
  134. package/dist/src/api/resources/translations/client/index.d.ts +1 -0
  135. package/dist/src/api/resources/translations/client/index.js +2 -0
  136. package/dist/src/api/resources/translations/client/index.js.map +1 -0
  137. package/dist/src/api/resources/translations/client/requests/CreateTranslationsRequest.d.ts +26 -0
  138. package/dist/src/api/resources/translations/client/requests/CreateTranslationsRequest.js +11 -0
  139. package/dist/src/api/resources/translations/client/requests/CreateTranslationsRequest.js.map +1 -0
  140. package/dist/src/api/resources/translations/client/requests/CreateTranslationsStreamRequest.d.ts +26 -0
  141. package/dist/src/api/resources/translations/client/requests/CreateTranslationsStreamRequest.js +11 -0
  142. package/dist/src/api/resources/translations/client/requests/CreateTranslationsStreamRequest.js.map +1 -0
  143. package/dist/src/api/resources/translations/client/requests/index.d.ts +2 -0
  144. package/dist/src/api/resources/translations/client/requests/index.js +3 -0
  145. package/dist/src/api/resources/translations/client/requests/index.js.map +1 -0
  146. package/dist/src/api/resources/translations/exports.d.ts +2 -0
  147. package/dist/src/api/resources/translations/exports.js +4 -0
  148. package/dist/src/api/resources/translations/exports.js.map +1 -0
  149. package/dist/src/api/resources/translations/index.d.ts +1 -0
  150. package/dist/src/api/resources/translations/index.js +2 -0
  151. package/dist/src/api/resources/translations/index.js.map +1 -0
  152. package/dist/src/api/types/Conversion.d.ts +18 -0
  153. package/dist/src/api/types/Conversion.js +9 -0
  154. package/dist/src/api/types/Conversion.js.map +1 -0
  155. package/dist/src/api/types/Diarization.d.ts +12 -0
  156. package/dist/src/api/types/Diarization.js +3 -0
  157. package/dist/src/api/types/Diarization.js.map +1 -0
  158. package/dist/src/api/types/ErrorObject.d.ts +18 -0
  159. package/dist/src/api/types/ErrorObject.js +16 -0
  160. package/dist/src/api/types/ErrorObject.js.map +1 -0
  161. package/dist/src/api/types/Error_.d.ts +6 -0
  162. package/dist/src/api/types/Error_.js +3 -0
  163. package/dist/src/api/types/Error_.js.map +1 -0
  164. package/dist/src/api/types/Model.d.ts +17 -0
  165. package/dist/src/api/types/Model.js +11 -0
  166. package/dist/src/api/types/Model.js.map +1 -0
  167. package/dist/src/api/types/ModelList.d.ts +13 -0
  168. package/dist/src/api/types/ModelList.js +8 -0
  169. package/dist/src/api/types/ModelList.js.map +1 -0
  170. package/dist/src/api/types/RealtimeClientMessage.d.ts +13 -0
  171. package/dist/src/api/types/RealtimeClientMessage.js +9 -0
  172. package/dist/src/api/types/RealtimeClientMessage.js.map +1 -0
  173. package/dist/src/api/types/RealtimeEvent.d.ts +39 -0
  174. package/dist/src/api/types/RealtimeEvent.js +13 -0
  175. package/dist/src/api/types/RealtimeEvent.js.map +1 -0
  176. package/dist/src/api/types/Segment.d.ts +10 -0
  177. package/dist/src/api/types/Segment.js +3 -0
  178. package/dist/src/api/types/Segment.js.map +1 -0
  179. package/dist/src/api/types/Speaker.d.ts +9 -0
  180. package/dist/src/api/types/Speaker.js +3 -0
  181. package/dist/src/api/types/Speaker.js.map +1 -0
  182. package/dist/src/api/types/SpeakerTurn.d.ts +7 -0
  183. package/dist/src/api/types/SpeakerTurn.js +3 -0
  184. package/dist/src/api/types/SpeakerTurn.js.map +1 -0
  185. package/dist/src/api/types/Speech.d.ts +25 -0
  186. package/dist/src/api/types/Speech.js +8 -0
  187. package/dist/src/api/types/Speech.js.map +1 -0
  188. package/dist/src/api/types/Transcription.d.ts +21 -0
  189. package/dist/src/api/types/Transcription.js +3 -0
  190. package/dist/src/api/types/Transcription.js.map +1 -0
  191. package/dist/src/api/types/Translation.d.ts +16 -0
  192. package/dist/src/api/types/Translation.js +3 -0
  193. package/dist/src/api/types/Translation.js.map +1 -0
  194. package/dist/src/api/types/TranslationLanguage.d.ts +8 -0
  195. package/dist/src/api/types/TranslationLanguage.js +3 -0
  196. package/dist/src/api/types/TranslationLanguage.js.map +1 -0
  197. package/dist/src/api/types/TranslationLanguageList.d.ts +14 -0
  198. package/dist/src/api/types/TranslationLanguageList.js +8 -0
  199. package/dist/src/api/types/TranslationLanguageList.js.map +1 -0
  200. package/dist/src/api/types/TranslationRequest.d.ts +22 -0
  201. package/dist/src/api/types/TranslationRequest.js +11 -0
  202. package/dist/src/api/types/TranslationRequest.js.map +1 -0
  203. package/dist/src/api/types/TranslationStreamEvent.d.ts +19 -0
  204. package/dist/src/api/types/TranslationStreamEvent.js +11 -0
  205. package/dist/src/api/types/TranslationStreamEvent.js.map +1 -0
  206. package/dist/src/api/types/Usage.d.ts +8 -0
  207. package/dist/src/api/types/Usage.js +3 -0
  208. package/dist/src/api/types/Usage.js.map +1 -0
  209. package/dist/src/api/types/Word.d.ts +9 -0
  210. package/dist/src/api/types/Word.js +3 -0
  211. package/dist/src/api/types/Word.js.map +1 -0
  212. package/dist/src/api/types/index.d.ts +20 -0
  213. package/dist/src/api/types/index.js +21 -0
  214. package/dist/src/api/types/index.js.map +1 -0
  215. package/dist/src/auth/BearerAuthProvider.d.ts +20 -0
  216. package/dist/src/auth/BearerAuthProvider.js +34 -0
  217. package/dist/src/auth/BearerAuthProvider.js.map +1 -0
  218. package/dist/src/auth/index.d.ts +1 -0
  219. package/dist/src/auth/index.js +2 -0
  220. package/dist/src/auth/index.js.map +1 -0
  221. package/dist/src/core/auth/AuthProvider.d.ts +8 -0
  222. package/dist/src/core/auth/AuthProvider.js +7 -0
  223. package/dist/src/core/auth/AuthProvider.js.map +1 -0
  224. package/dist/src/core/auth/AuthRequest.d.ts +9 -0
  225. package/dist/src/core/auth/AuthRequest.js +2 -0
  226. package/dist/src/core/auth/AuthRequest.js.map +1 -0
  227. package/dist/src/core/auth/BasicAuth.d.ts +8 -0
  228. package/dist/src/core/auth/BasicAuth.js +30 -0
  229. package/dist/src/core/auth/BasicAuth.js.map +1 -0
  230. package/dist/src/core/auth/BearerToken.d.ts +7 -0
  231. package/dist/src/core/auth/BearerToken.js +14 -0
  232. package/dist/src/core/auth/BearerToken.js.map +1 -0
  233. package/dist/src/core/auth/NoOpAuthProvider.d.ts +5 -0
  234. package/dist/src/core/auth/NoOpAuthProvider.js +6 -0
  235. package/dist/src/core/auth/NoOpAuthProvider.js.map +1 -0
  236. package/dist/src/core/auth/index.d.ts +5 -0
  237. package/dist/src/core/auth/index.js +5 -0
  238. package/dist/src/core/auth/index.js.map +1 -0
  239. package/dist/src/core/base64.d.ts +2 -0
  240. package/dist/src/core/base64.js +23 -0
  241. package/dist/src/core/base64.js.map +1 -0
  242. package/dist/src/core/exports.d.ts +2 -0
  243. package/dist/src/core/exports.js +3 -0
  244. package/dist/src/core/exports.js.map +1 -0
  245. package/dist/src/core/fetcher/APIResponse.d.ts +20 -0
  246. package/dist/src/core/fetcher/APIResponse.js +2 -0
  247. package/dist/src/core/fetcher/APIResponse.js.map +1 -0
  248. package/dist/src/core/fetcher/BinaryResponse.d.ts +19 -0
  249. package/dist/src/core/fetcher/BinaryResponse.js +15 -0
  250. package/dist/src/core/fetcher/BinaryResponse.js.map +1 -0
  251. package/dist/src/core/fetcher/EndpointMetadata.d.ts +13 -0
  252. package/dist/src/core/fetcher/EndpointMetadata.js +2 -0
  253. package/dist/src/core/fetcher/EndpointMetadata.js.map +1 -0
  254. package/dist/src/core/fetcher/EndpointSupplier.d.ts +12 -0
  255. package/dist/src/core/fetcher/EndpointSupplier.js +11 -0
  256. package/dist/src/core/fetcher/EndpointSupplier.js.map +1 -0
  257. package/dist/src/core/fetcher/Fetcher.d.ts +56 -0
  258. package/dist/src/core/fetcher/Fetcher.js +224 -0
  259. package/dist/src/core/fetcher/Fetcher.js.map +1 -0
  260. package/dist/src/core/fetcher/Headers.d.ts +2 -0
  261. package/dist/src/core/fetcher/Headers.js +84 -0
  262. package/dist/src/core/fetcher/Headers.js.map +1 -0
  263. package/dist/src/core/fetcher/HttpResponsePromise.d.ts +58 -0
  264. package/dist/src/core/fetcher/HttpResponsePromise.js +91 -0
  265. package/dist/src/core/fetcher/HttpResponsePromise.js.map +1 -0
  266. package/dist/src/core/fetcher/RawResponse.d.ts +29 -0
  267. package/dist/src/core/fetcher/RawResponse.js +41 -0
  268. package/dist/src/core/fetcher/RawResponse.js.map +1 -0
  269. package/dist/src/core/fetcher/Supplier.d.ts +4 -0
  270. package/dist/src/core/fetcher/Supplier.js +11 -0
  271. package/dist/src/core/fetcher/Supplier.js.map +1 -0
  272. package/dist/src/core/fetcher/createRequestUrl.d.ts +1 -0
  273. package/dist/src/core/fetcher/createRequestUrl.js +6 -0
  274. package/dist/src/core/fetcher/createRequestUrl.js.map +1 -0
  275. package/dist/src/core/fetcher/getErrorResponseBody.d.ts +1 -0
  276. package/dist/src/core/fetcher/getErrorResponseBody.js +31 -0
  277. package/dist/src/core/fetcher/getErrorResponseBody.js.map +1 -0
  278. package/dist/src/core/fetcher/getFetchFn.d.ts +1 -0
  279. package/dist/src/core/fetcher/getFetchFn.js +4 -0
  280. package/dist/src/core/fetcher/getFetchFn.js.map +1 -0
  281. package/dist/src/core/fetcher/getHeader.d.ts +1 -0
  282. package/dist/src/core/fetcher/getHeader.js +9 -0
  283. package/dist/src/core/fetcher/getHeader.js.map +1 -0
  284. package/dist/src/core/fetcher/getRequestBody.d.ts +7 -0
  285. package/dist/src/core/fetcher/getRequestBody.js +14 -0
  286. package/dist/src/core/fetcher/getRequestBody.js.map +1 -0
  287. package/dist/src/core/fetcher/getResponseBody.d.ts +1 -0
  288. package/dist/src/core/fetcher/getResponseBody.js +67 -0
  289. package/dist/src/core/fetcher/getResponseBody.js.map +1 -0
  290. package/dist/src/core/fetcher/index.d.ts +13 -0
  291. package/dist/src/core/fetcher/index.js +8 -0
  292. package/dist/src/core/fetcher/index.js.map +1 -0
  293. package/dist/src/core/fetcher/makePassthroughRequest.d.ts +49 -0
  294. package/dist/src/core/fetcher/makePassthroughRequest.js +142 -0
  295. package/dist/src/core/fetcher/makePassthroughRequest.js.map +1 -0
  296. package/dist/src/core/fetcher/makeRequest.d.ts +6 -0
  297. package/dist/src/core/fetcher/makeRequest.js +54 -0
  298. package/dist/src/core/fetcher/makeRequest.js.map +1 -0
  299. package/dist/src/core/fetcher/redactUrl.d.ts +2 -0
  300. package/dist/src/core/fetcher/redactUrl.js +85 -0
  301. package/dist/src/core/fetcher/redactUrl.js.map +1 -0
  302. package/dist/src/core/fetcher/requestWithRetries.d.ts +1 -0
  303. package/dist/src/core/fetcher/requestWithRetries.js +57 -0
  304. package/dist/src/core/fetcher/requestWithRetries.js.map +1 -0
  305. package/dist/src/core/fetcher/signals.d.ts +5 -0
  306. package/dist/src/core/fetcher/signals.js +29 -0
  307. package/dist/src/core/fetcher/signals.js.map +1 -0
  308. package/dist/src/core/file/exports.d.ts +1 -0
  309. package/dist/src/core/file/exports.js +2 -0
  310. package/dist/src/core/file/exports.js.map +1 -0
  311. package/dist/src/core/file/file.d.ts +10 -0
  312. package/dist/src/core/file/file.js +169 -0
  313. package/dist/src/core/file/file.js.map +1 -0
  314. package/dist/src/core/file/index.d.ts +2 -0
  315. package/dist/src/core/file/index.js +3 -0
  316. package/dist/src/core/file/index.js.map +1 -0
  317. package/dist/src/core/file/types.d.ts +66 -0
  318. package/dist/src/core/file/types.js +2 -0
  319. package/dist/src/core/file/types.js.map +1 -0
  320. package/dist/src/core/form-data-utils/FormDataWrapper.d.ts +15 -0
  321. package/dist/src/core/form-data-utils/FormDataWrapper.js +109 -0
  322. package/dist/src/core/form-data-utils/FormDataWrapper.js.map +1 -0
  323. package/dist/src/core/form-data-utils/encodeAsFormParameter.d.ts +1 -0
  324. package/dist/src/core/form-data-utils/encodeAsFormParameter.js +10 -0
  325. package/dist/src/core/form-data-utils/encodeAsFormParameter.js.map +1 -0
  326. package/dist/src/core/form-data-utils/index.d.ts +2 -0
  327. package/dist/src/core/form-data-utils/index.js +3 -0
  328. package/dist/src/core/form-data-utils/index.js.map +1 -0
  329. package/dist/src/core/headers.d.ts +2 -0
  330. package/dist/src/core/headers.js +28 -0
  331. package/dist/src/core/headers.js.map +1 -0
  332. package/dist/src/core/index.d.ts +9 -0
  333. package/dist/src/core/index.js +10 -0
  334. package/dist/src/core/index.js.map +1 -0
  335. package/dist/src/core/json.d.ts +15 -0
  336. package/dist/src/core/json.js +20 -0
  337. package/dist/src/core/json.js.map +1 -0
  338. package/dist/src/core/logging/exports.d.ts +18 -0
  339. package/dist/src/core/logging/exports.js +10 -0
  340. package/dist/src/core/logging/exports.js.map +1 -0
  341. package/dist/src/core/logging/index.d.ts +1 -0
  342. package/dist/src/core/logging/index.js +2 -0
  343. package/dist/src/core/logging/index.js.map +1 -0
  344. package/dist/src/core/logging/logger.d.ts +126 -0
  345. package/dist/src/core/logging/logger.js +141 -0
  346. package/dist/src/core/logging/logger.js.map +1 -0
  347. package/dist/src/core/requestBody.d.ts +12 -0
  348. package/dist/src/core/requestBody.js +24 -0
  349. package/dist/src/core/requestBody.js.map +1 -0
  350. package/dist/src/core/runtime/index.d.ts +1 -0
  351. package/dist/src/core/runtime/index.js +2 -0
  352. package/dist/src/core/runtime/index.js.map +1 -0
  353. package/dist/src/core/runtime/runtime.d.ts +28 -0
  354. package/dist/src/core/runtime/runtime.js +172 -0
  355. package/dist/src/core/runtime/runtime.js.map +1 -0
  356. package/dist/src/core/stream/Stream.d.ts +100 -0
  357. package/dist/src/core/stream/Stream.js +427 -0
  358. package/dist/src/core/stream/Stream.js.map +1 -0
  359. package/dist/src/core/stream/index.d.ts +2 -0
  360. package/dist/src/core/stream/index.js +2 -0
  361. package/dist/src/core/stream/index.js.map +1 -0
  362. package/dist/src/core/url/QueryStringBuilder.d.ts +47 -0
  363. package/dist/src/core/url/QueryStringBuilder.js +79 -0
  364. package/dist/src/core/url/QueryStringBuilder.js.map +1 -0
  365. package/dist/src/core/url/encodePathParam.d.ts +1 -0
  366. package/dist/src/core/url/encodePathParam.js +19 -0
  367. package/dist/src/core/url/encodePathParam.js.map +1 -0
  368. package/dist/src/core/url/index.d.ts +4 -0
  369. package/dist/src/core/url/index.js +5 -0
  370. package/dist/src/core/url/index.js.map +1 -0
  371. package/dist/src/core/url/join.d.ts +1 -0
  372. package/dist/src/core/url/join.js +66 -0
  373. package/dist/src/core/url/join.js.map +1 -0
  374. package/dist/src/core/url/qs.d.ts +7 -0
  375. package/dist/src/core/url/qs.js +77 -0
  376. package/dist/src/core/url/qs.js.map +1 -0
  377. package/dist/src/environments.d.ts +4 -0
  378. package/dist/src/environments.js +5 -0
  379. package/dist/src/environments.js.map +1 -0
  380. package/dist/src/errors/TapraError.d.ts +15 -0
  381. package/dist/src/errors/TapraError.js +39 -0
  382. package/dist/src/errors/TapraError.js.map +1 -0
  383. package/dist/src/errors/TapraTimeoutError.d.ts +6 -0
  384. package/dist/src/errors/TapraTimeoutError.js +16 -0
  385. package/dist/src/errors/TapraTimeoutError.js.map +1 -0
  386. package/dist/src/errors/handleNonStatusCodeError.d.ts +2 -0
  387. package/dist/src/errors/handleNonStatusCodeError.js +33 -0
  388. package/dist/src/errors/handleNonStatusCodeError.js.map +1 -0
  389. package/dist/src/errors/index.d.ts +2 -0
  390. package/dist/src/errors/index.js +3 -0
  391. package/dist/src/errors/index.js.map +1 -0
  392. package/dist/src/exports.d.ts +1 -0
  393. package/dist/src/exports.js +2 -0
  394. package/dist/src/exports.js.map +1 -0
  395. package/dist/src/index.d.ts +6 -0
  396. package/dist/src/index.js +6 -0
  397. package/dist/src/index.js.map +1 -0
  398. package/package.json +30 -6
@@ -0,0 +1,9 @@
1
+ export function getHeader(headers, header) {
2
+ for (const [headerKey, headerValue] of Object.entries(headers)) {
3
+ if (headerKey.toLowerCase() === header.toLowerCase()) {
4
+ return headerValue;
5
+ }
6
+ }
7
+ return undefined;
8
+ }
9
+ //# sourceMappingURL=getHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getHeader.js","sourceRoot":"","sources":["../../../../src/core/fetcher/getHeader.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,OAA4B,EAAE,MAAc;IAClE,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YACnD,OAAO,WAAW,CAAC;QACvB,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare namespace GetRequestBody {
2
+ interface Args {
3
+ body: unknown;
4
+ type: "json" | "file" | "bytes" | "form" | "other";
5
+ }
6
+ }
7
+ export declare function getRequestBody({ body, type }: GetRequestBody.Args): Promise<BodyInit | undefined>;
@@ -0,0 +1,14 @@
1
+ import { toJson } from "../json.js";
2
+ import { toQueryString } from "../url/qs.js";
3
+ export async function getRequestBody({ body, type }) {
4
+ if (type === "form") {
5
+ return toQueryString(body, { arrayFormat: "repeat", encode: true });
6
+ }
7
+ if (type.includes("json")) {
8
+ return toJson(body);
9
+ }
10
+ else {
11
+ return body;
12
+ }
13
+ }
14
+ //# sourceMappingURL=getRequestBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRequestBody.js","sourceRoot":"","sources":["../../../../src/core/fetcher/getRequestBody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAS7C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAuB;IACpE,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;SAAM,CAAC;QACJ,OAAO,IAAgB,CAAC;IAC5B,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function getResponseBody(response: Response, responseType?: string): Promise<unknown>;
@@ -0,0 +1,67 @@
1
+ import { fromJson } from "../json.js";
2
+ import { getBinaryResponse } from "./BinaryResponse.js";
3
+ // Pins the upstream Response so undici's FinalizationRegistry can't GC it and cancel the body stream.
4
+ function retainResponse(target, response) {
5
+ Object.defineProperty(target, "__fern_response_ref", {
6
+ value: response,
7
+ enumerable: false,
8
+ configurable: true,
9
+ writable: false,
10
+ });
11
+ }
12
+ export async function getResponseBody(response, responseType) {
13
+ switch (responseType) {
14
+ case "binary-response":
15
+ return getBinaryResponse(response);
16
+ case "blob":
17
+ return await response.blob();
18
+ case "arrayBuffer":
19
+ return await response.arrayBuffer();
20
+ case "sse":
21
+ if (response.body == null) {
22
+ return {
23
+ ok: false,
24
+ error: {
25
+ reason: "body-is-null",
26
+ statusCode: response.status,
27
+ },
28
+ };
29
+ }
30
+ retainResponse(response.body, response);
31
+ return response.body;
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
+ }
42
+ retainResponse(response.body, response);
43
+ return response.body;
44
+ case "text":
45
+ return await response.text();
46
+ }
47
+ // if responseType is "json" or not specified, try to parse as JSON
48
+ const text = await response.text();
49
+ if (text.length > 0) {
50
+ try {
51
+ const responseBody = fromJson(text);
52
+ return responseBody;
53
+ }
54
+ catch (_err) {
55
+ return {
56
+ ok: false,
57
+ error: {
58
+ reason: "non-json",
59
+ statusCode: response.status,
60
+ rawBody: text,
61
+ },
62
+ };
63
+ }
64
+ }
65
+ return undefined;
66
+ }
67
+ //# sourceMappingURL=getResponseBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getResponseBody.js","sourceRoot":"","sources":["../../../../src/core/fetcher/getResponseBody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,sGAAsG;AACtG,SAAS,cAAc,CAAC,MAAc,EAAE,QAAkB;IACtD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,qBAAqB,EAAE;QACjD,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,KAAK;KAClB,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAkB,EAAE,YAAqB;IAC3E,QAAQ,YAAY,EAAE,CAAC;QACnB,KAAK,iBAAiB;YAClB,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACvC,KAAK,MAAM;YACP,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjC,KAAK,aAAa;YACd,OAAO,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QACxC,KAAK,KAAK;YACN,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,OAAO;oBACH,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE;wBACH,MAAM,EAAE,cAAc;wBACtB,UAAU,EAAE,QAAQ,CAAC,MAAM;qBAC9B;iBACJ,CAAC;YACN,CAAC;YACD,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC,IAAI,CAAC;QACzB,KAAK,WAAW;YACZ,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,OAAO;oBACH,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE;wBACH,MAAM,EAAE,cAAc;wBACtB,UAAU,EAAE,QAAQ,CAAC,MAAM;qBAC9B;iBACJ,CAAC;YACN,CAAC;YAED,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC,IAAI,CAAC;QAEzB,KAAK,MAAM;YACP,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,mEAAmE;IACnE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,YAAY,CAAC;QACxB,CAAC;QAAC,OAAO,IAAI,EAAE,CAAC;YACZ,OAAO;gBACH,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACH,MAAM,EAAE,UAAU;oBAClB,UAAU,EAAE,QAAQ,CAAC,MAAM;oBAC3B,OAAO,EAAE,IAAI;iBAChB;aACJ,CAAC;QACN,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type { APIResponse } from "./APIResponse.js";
2
+ export type { BinaryResponse } from "./BinaryResponse.js";
3
+ export type { EndpointMetadata } from "./EndpointMetadata.js";
4
+ export { EndpointSupplier } from "./EndpointSupplier.js";
5
+ export type { Fetcher, FetchFunction } from "./Fetcher.js";
6
+ export { fetcher } from "./Fetcher.js";
7
+ export { getHeader } from "./getHeader.js";
8
+ export { HttpResponsePromise } from "./HttpResponsePromise.js";
9
+ export type { PassthroughRequest } from "./makePassthroughRequest.js";
10
+ export { makePassthroughRequest } from "./makePassthroughRequest.js";
11
+ export type { RawResponse, WithRawResponse } from "./RawResponse.js";
12
+ export { abortRawResponse, toRawResponse, unknownRawResponse } from "./RawResponse.js";
13
+ export { Supplier } from "./Supplier.js";
@@ -0,0 +1,8 @@
1
+ export { EndpointSupplier } from "./EndpointSupplier.js";
2
+ export { fetcher } from "./Fetcher.js";
3
+ export { getHeader } from "./getHeader.js";
4
+ export { HttpResponsePromise } from "./HttpResponsePromise.js";
5
+ export { makePassthroughRequest } from "./makePassthroughRequest.js";
6
+ export { abortRawResponse, toRawResponse, unknownRawResponse } from "./RawResponse.js";
7
+ export { Supplier } from "./Supplier.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/fetcher/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { type LogConfig, type Logger } from "../logging/logger.js";
2
+ import { Supplier } from "./Supplier.js";
3
+ export declare namespace PassthroughRequest {
4
+ /**
5
+ * Per-request options that can override the SDK client defaults.
6
+ */
7
+ interface RequestOptions {
8
+ /** Override the default timeout for this request (in seconds). */
9
+ timeoutInSeconds?: number;
10
+ /** Override the default number of retries for this request. */
11
+ maxRetries?: number;
12
+ /** Additional headers to include in this request. */
13
+ headers?: Record<string, string>;
14
+ /** Abort signal for this request. */
15
+ abortSignal?: AbortSignal;
16
+ }
17
+ /**
18
+ * SDK client configuration used by the passthrough fetch method.
19
+ */
20
+ interface ClientOptions {
21
+ /** The base URL or environment for the client. */
22
+ environment?: Supplier<string>;
23
+ /** Override the base URL. */
24
+ baseUrl?: Supplier<string>;
25
+ /** Default headers to include in requests. */
26
+ headers?: Record<string, unknown>;
27
+ /** Default maximum time to wait for a response in seconds. */
28
+ timeoutInSeconds?: number;
29
+ /** Default number of times to retry the request. Defaults to 2. */
30
+ maxRetries?: number;
31
+ /** A custom fetch function. */
32
+ fetch?: typeof fetch;
33
+ /** Logging configuration. */
34
+ logging?: LogConfig | Logger;
35
+ /** A function that returns auth headers. */
36
+ getAuthHeaders?: () => Promise<Record<string, string>>;
37
+ }
38
+ }
39
+ /**
40
+ * Makes a passthrough HTTP request using the SDK's configuration (auth, retry, logging, etc.)
41
+ * while mimicking the standard `fetch` API.
42
+ *
43
+ * @param input - The URL, path, or Request object. If a relative path, it will be resolved against the configured base URL.
44
+ * @param init - Standard RequestInit options (method, headers, body, signal, etc.)
45
+ * @param clientOptions - SDK client options (auth, default headers, logging, etc.)
46
+ * @param requestOptions - Per-request overrides (timeout, retries, extra headers, abort signal).
47
+ * @returns A standard Response object.
48
+ */
49
+ export declare function makePassthroughRequest(input: Request | string | URL, init: RequestInit | undefined, clientOptions: PassthroughRequest.ClientOptions, requestOptions?: PassthroughRequest.RequestOptions): Promise<Response>;
@@ -0,0 +1,142 @@
1
+ import { createLogger } from "../logging/logger.js";
2
+ import { join } from "../url/join.js";
3
+ import { EndpointSupplier } from "./EndpointSupplier.js";
4
+ import { getFetchFn } from "./getFetchFn.js";
5
+ import { makeRequest } from "./makeRequest.js";
6
+ import { redactUrl } from "./redactUrl.js";
7
+ import { requestWithRetries } from "./requestWithRetries.js";
8
+ import { Supplier } from "./Supplier.js";
9
+ /**
10
+ * Makes a passthrough HTTP request using the SDK's configuration (auth, retry, logging, etc.)
11
+ * while mimicking the standard `fetch` API.
12
+ *
13
+ * @param input - The URL, path, or Request object. If a relative path, it will be resolved against the configured base URL.
14
+ * @param init - Standard RequestInit options (method, headers, body, signal, etc.)
15
+ * @param clientOptions - SDK client options (auth, default headers, logging, etc.)
16
+ * @param requestOptions - Per-request overrides (timeout, retries, extra headers, abort signal).
17
+ * @returns A standard Response object.
18
+ */
19
+ export async function makePassthroughRequest(input, init, clientOptions, requestOptions) {
20
+ const logger = createLogger(clientOptions.logging);
21
+ // Extract URL and default init properties from Request object if provided
22
+ let url;
23
+ let effectiveInit = init;
24
+ if (input instanceof Request) {
25
+ url = input.url;
26
+ // If no explicit init provided, extract properties from the Request object
27
+ if (init == null) {
28
+ effectiveInit = {
29
+ method: input.method,
30
+ headers: Object.fromEntries(input.headers.entries()),
31
+ body: input.body,
32
+ signal: input.signal,
33
+ credentials: input.credentials,
34
+ cache: input.cache,
35
+ redirect: input.redirect,
36
+ referrer: input.referrer,
37
+ integrity: input.integrity,
38
+ mode: input.mode,
39
+ };
40
+ }
41
+ }
42
+ else {
43
+ url = input instanceof URL ? input.toString() : input;
44
+ }
45
+ // Resolve the base URL
46
+ const baseUrl = (clientOptions.baseUrl != null ? await Supplier.get(clientOptions.baseUrl) : undefined) ??
47
+ (clientOptions.environment != null ? await Supplier.get(clientOptions.environment) : undefined);
48
+ // Determine the full URL
49
+ let fullUrl;
50
+ if (url.startsWith("http://") || url.startsWith("https://")) {
51
+ fullUrl = url;
52
+ }
53
+ else if (baseUrl != null) {
54
+ fullUrl = join(baseUrl, url);
55
+ }
56
+ else {
57
+ fullUrl = url;
58
+ }
59
+ // Merge headers: SDK default headers -> auth headers -> user-provided headers
60
+ const mergedHeaders = {};
61
+ // Apply SDK default headers (resolve suppliers)
62
+ if (clientOptions.headers != null) {
63
+ for (const [key, value] of Object.entries(clientOptions.headers)) {
64
+ const resolved = await EndpointSupplier.get(value, { endpointMetadata: {} });
65
+ if (resolved != null) {
66
+ mergedHeaders[key.toLowerCase()] = `${resolved}`;
67
+ }
68
+ }
69
+ }
70
+ // Apply auth headers, but only when the resolved URL targets the configured base URL.
71
+ // This prevents the SDK's credentials from leaking to an unrelated host when a caller
72
+ // passes an absolute cross-origin URL into the passthrough fetch escape hatch.
73
+ if (clientOptions.getAuthHeaders != null && targetsBaseUrl(fullUrl, baseUrl)) {
74
+ const authHeaders = await clientOptions.getAuthHeaders();
75
+ for (const [key, value] of Object.entries(authHeaders)) {
76
+ mergedHeaders[key.toLowerCase()] = value;
77
+ }
78
+ }
79
+ // Apply user-provided headers from init
80
+ if (effectiveInit?.headers != null) {
81
+ const initHeaders = effectiveInit.headers instanceof Headers
82
+ ? Object.fromEntries(effectiveInit.headers.entries())
83
+ : Array.isArray(effectiveInit.headers)
84
+ ? Object.fromEntries(effectiveInit.headers)
85
+ : effectiveInit.headers;
86
+ for (const [key, value] of Object.entries(initHeaders)) {
87
+ if (value != null) {
88
+ mergedHeaders[key.toLowerCase()] = value;
89
+ }
90
+ }
91
+ }
92
+ // Apply per-request option headers (highest priority)
93
+ if (requestOptions?.headers != null) {
94
+ for (const [key, value] of Object.entries(requestOptions.headers)) {
95
+ mergedHeaders[key.toLowerCase()] = value;
96
+ }
97
+ }
98
+ const method = effectiveInit?.method ?? "GET";
99
+ const body = effectiveInit?.body;
100
+ const timeoutInSeconds = requestOptions?.timeoutInSeconds ?? clientOptions.timeoutInSeconds;
101
+ const timeoutMs = timeoutInSeconds != null ? timeoutInSeconds * 1000 : undefined;
102
+ const maxRetries = requestOptions?.maxRetries ?? clientOptions.maxRetries;
103
+ const abortSignal = requestOptions?.abortSignal ?? effectiveInit?.signal ?? undefined;
104
+ const fetchFn = clientOptions.fetch ?? (await getFetchFn());
105
+ if (logger.isDebug()) {
106
+ logger.debug("Making passthrough HTTP request", {
107
+ method,
108
+ url: redactUrl(fullUrl),
109
+ hasBody: body != null,
110
+ });
111
+ }
112
+ const response = await requestWithRetries(async () => makeRequest(fetchFn, fullUrl, method, mergedHeaders, body ?? undefined, timeoutMs, abortSignal, effectiveInit?.credentials === "include", undefined, // duplex
113
+ false), maxRetries);
114
+ if (logger.isDebug()) {
115
+ logger.debug("Passthrough HTTP request completed", {
116
+ method,
117
+ url: redactUrl(fullUrl),
118
+ statusCode: response.status,
119
+ });
120
+ }
121
+ return response;
122
+ }
123
+ /**
124
+ * Returns true when the resolved request URL points at the same origin as the
125
+ * configured base URL. Relative paths are always joined onto the base URL, so
126
+ * they resolve to the base origin and return true. Absolute URLs only match when
127
+ * their origin equals the base origin. When there is no base URL to compare
128
+ * against, or either value is not a parseable absolute URL, this returns false so
129
+ * auth headers are not attached.
130
+ */
131
+ function targetsBaseUrl(fullUrl, baseUrl) {
132
+ if (baseUrl == null) {
133
+ return false;
134
+ }
135
+ try {
136
+ return new URL(fullUrl).origin === new URL(baseUrl).origin;
137
+ }
138
+ catch {
139
+ return false;
140
+ }
141
+ }
142
+ //# sourceMappingURL=makePassthroughRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makePassthroughRequest.js","sourceRoot":"","sources":["../../../../src/core/fetcher/makePassthroughRequest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function isCacheNoStoreSupported(): boolean;
2
+ /**
3
+ * Reset the cached result of `isCacheNoStoreSupported`. Exposed for testing only.
4
+ */
5
+ export declare function resetCacheNoStoreSupported(): void;
6
+ 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", disableCache?: boolean) => Promise<Response>;
@@ -0,0 +1,54 @@
1
+ import { anySignal, getTimeoutSignal } from "./signals.js";
2
+ /**
3
+ * Cached result of checking whether the current runtime supports
4
+ * the `cache` option in `Request`. Some runtimes (e.g. Cloudflare Workers)
5
+ * throw a TypeError when this option is used.
6
+ */
7
+ let _cacheNoStoreSupported;
8
+ export function isCacheNoStoreSupported() {
9
+ if (_cacheNoStoreSupported != null) {
10
+ return _cacheNoStoreSupported;
11
+ }
12
+ try {
13
+ new Request("http://localhost", { cache: "no-store" });
14
+ _cacheNoStoreSupported = true;
15
+ }
16
+ catch {
17
+ _cacheNoStoreSupported = false;
18
+ }
19
+ return _cacheNoStoreSupported;
20
+ }
21
+ /**
22
+ * Reset the cached result of `isCacheNoStoreSupported`. Exposed for testing only.
23
+ */
24
+ export function resetCacheNoStoreSupported() {
25
+ _cacheNoStoreSupported = undefined;
26
+ }
27
+ export const makeRequest = async (fetchFn, url, method, headers, requestBody, timeoutMs, abortSignal, withCredentials, duplex, disableCache) => {
28
+ const signals = [];
29
+ let timeoutAbortId;
30
+ if (timeoutMs != null) {
31
+ const { signal, abortId } = getTimeoutSignal(timeoutMs);
32
+ timeoutAbortId = abortId;
33
+ signals.push(signal);
34
+ }
35
+ if (abortSignal != null) {
36
+ signals.push(abortSignal);
37
+ }
38
+ const newSignals = anySignal(signals);
39
+ const response = await fetchFn(url, {
40
+ method: method,
41
+ headers,
42
+ body: requestBody,
43
+ signal: newSignals,
44
+ credentials: withCredentials ? "include" : undefined,
45
+ // @ts-ignore
46
+ duplex,
47
+ ...(disableCache && isCacheNoStoreSupported() ? { cache: "no-store" } : {}),
48
+ });
49
+ if (timeoutAbortId != null) {
50
+ clearTimeout(timeoutAbortId);
51
+ }
52
+ return response;
53
+ };
54
+ //# sourceMappingURL=makeRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeRequest.js","sourceRoot":"","sources":["../../../../src/core/fetcher/makeRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE3D;;;;GAIG;AACH,IAAI,sBAA2C,CAAC;AAChD,MAAM,UAAU,uBAAuB;IACnC,IAAI,sBAAsB,IAAI,IAAI,EAAE,CAAC;QACjC,OAAO,sBAAsB,CAAC;IAClC,CAAC;IACD,IAAI,CAAC;QACD,IAAI,OAAO,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QACvD,sBAAsB,GAAG,IAAI,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACL,sBAAsB,GAAG,KAAK,CAAC;IACnC,CAAC;IACD,OAAO,sBAAsB,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B;IACtC,sBAAsB,GAAG,SAAS,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC5B,OAA8D,EAC9D,GAAW,EACX,MAAc,EACd,OAAyC,EACzC,WAAiC,EACjC,SAAkB,EAClB,WAAyB,EACzB,eAAyB,EACzB,MAAe,EACf,YAAsB,EACL,EAAE;IACnB,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,IAAI,cAAyD,CAAC;IAC9D,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACpB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACxD,cAAc,GAAG,OAAO,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO;QACP,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,UAAU;QAClB,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACpD,aAAa;QACb,MAAM;QACN,GAAG,CAAC,YAAY,IAAI,uBAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9F,CAAC,CAAC;IAEH,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;QACzB,YAAY,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const SENSITIVE_QUERY_PARAMS: Set<string>;
2
+ export declare function redactUrl(url: string): string;
@@ -0,0 +1,85 @@
1
+ export const SENSITIVE_QUERY_PARAMS = new Set([
2
+ "api_key",
3
+ "api-key",
4
+ "apikey",
5
+ "token",
6
+ "access_token",
7
+ "access-token",
8
+ "auth_token",
9
+ "auth-token",
10
+ "password",
11
+ "passwd",
12
+ "secret",
13
+ "api_secret",
14
+ "api-secret",
15
+ "apisecret",
16
+ "key",
17
+ "session",
18
+ "session_id",
19
+ "session-id",
20
+ ]);
21
+ export function redactUrl(url) {
22
+ const protocolIndex = url.indexOf("://");
23
+ if (protocolIndex === -1)
24
+ return url;
25
+ const afterProtocol = protocolIndex + 3;
26
+ // Find the first delimiter that marks the end of the authority section
27
+ const pathStart = url.indexOf("/", afterProtocol);
28
+ let queryStart = url.indexOf("?", afterProtocol);
29
+ let fragmentStart = url.indexOf("#", afterProtocol);
30
+ const firstDelimiter = Math.min(pathStart === -1 ? url.length : pathStart, queryStart === -1 ? url.length : queryStart, fragmentStart === -1 ? url.length : fragmentStart);
31
+ // Find the LAST @ before the delimiter (handles multiple @ in credentials)
32
+ let atIndex = -1;
33
+ for (let i = afterProtocol; i < firstDelimiter; i++) {
34
+ if (url[i] === "@") {
35
+ atIndex = i;
36
+ }
37
+ }
38
+ if (atIndex !== -1) {
39
+ url = `${url.slice(0, afterProtocol)}[REDACTED]@${url.slice(atIndex + 1)}`;
40
+ }
41
+ // Recalculate queryStart since url might have changed
42
+ queryStart = url.indexOf("?");
43
+ if (queryStart === -1)
44
+ return url;
45
+ fragmentStart = url.indexOf("#", queryStart);
46
+ const queryEnd = fragmentStart !== -1 ? fragmentStart : url.length;
47
+ const queryString = url.slice(queryStart + 1, queryEnd);
48
+ if (queryString.length === 0)
49
+ return url;
50
+ // FAST PATH: Quick check if any sensitive keywords present
51
+ // Using indexOf is faster than regex for simple substring matching
52
+ const lower = queryString.toLowerCase();
53
+ const hasSensitive = lower.includes("token") ||
54
+ lower.includes("key") ||
55
+ lower.includes("password") ||
56
+ lower.includes("passwd") ||
57
+ lower.includes("secret") ||
58
+ lower.includes("session") ||
59
+ lower.includes("auth");
60
+ if (!hasSensitive) {
61
+ return url;
62
+ }
63
+ // SLOW PATH: Parse and redact
64
+ const redactedParams = [];
65
+ const params = queryString.split("&");
66
+ for (const param of params) {
67
+ const equalIndex = param.indexOf("=");
68
+ if (equalIndex === -1) {
69
+ redactedParams.push(param);
70
+ continue;
71
+ }
72
+ const key = param.slice(0, equalIndex);
73
+ let shouldRedact = SENSITIVE_QUERY_PARAMS.has(key.toLowerCase());
74
+ if (!shouldRedact && key.includes("%")) {
75
+ try {
76
+ const decodedKey = decodeURIComponent(key);
77
+ shouldRedact = SENSITIVE_QUERY_PARAMS.has(decodedKey.toLowerCase());
78
+ }
79
+ catch { }
80
+ }
81
+ redactedParams.push(shouldRedact ? `${key}=[REDACTED]` : param);
82
+ }
83
+ return url.slice(0, queryStart + 1) + redactedParams.join("&") + url.slice(queryEnd);
84
+ }
85
+ //# sourceMappingURL=redactUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redactUrl.js","sourceRoot":"","sources":["../../../../src/core/fetcher/redactUrl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function requestWithRetries(requestFn: () => Promise<Response>, maxRetries?: number): Promise<Response>;
@@ -0,0 +1,57 @@
1
+ const INITIAL_RETRY_DELAY = 1000; // in milliseconds
2
+ const MAX_RETRY_DELAY = 60000; // in milliseconds
3
+ const DEFAULT_MAX_RETRIES = 2;
4
+ const JITTER_FACTOR = 0.2; // 20% random jitter
5
+ function isRetryableStatusCode(statusCode) {
6
+ return [408, 429].includes(statusCode) || statusCode >= 500;
7
+ }
8
+ function addPositiveJitter(delay) {
9
+ const jitterMultiplier = 1 + Math.random() * JITTER_FACTOR;
10
+ return delay * jitterMultiplier;
11
+ }
12
+ function addSymmetricJitter(delay) {
13
+ const jitterMultiplier = 1 + (Math.random() - 0.5) * JITTER_FACTOR;
14
+ return delay * jitterMultiplier;
15
+ }
16
+ function getRetryDelayFromHeaders(response, retryAttempt) {
17
+ const retryAfter = response.headers.get("Retry-After");
18
+ if (retryAfter) {
19
+ const retryAfterSeconds = parseInt(retryAfter, 10);
20
+ if (!Number.isNaN(retryAfterSeconds) && retryAfterSeconds > 0) {
21
+ return Math.min(retryAfterSeconds * 1000, MAX_RETRY_DELAY);
22
+ }
23
+ const retryAfterDate = new Date(retryAfter);
24
+ if (!Number.isNaN(retryAfterDate.getTime())) {
25
+ const delay = retryAfterDate.getTime() - Date.now();
26
+ if (delay > 0) {
27
+ return Math.min(Math.max(delay, 0), MAX_RETRY_DELAY);
28
+ }
29
+ }
30
+ }
31
+ const rateLimitReset = response.headers.get("X-RateLimit-Reset");
32
+ if (rateLimitReset) {
33
+ const resetTime = parseInt(rateLimitReset, 10);
34
+ if (!Number.isNaN(resetTime)) {
35
+ const delay = resetTime * 1000 - Date.now();
36
+ if (delay > 0) {
37
+ return addPositiveJitter(Math.min(delay, MAX_RETRY_DELAY));
38
+ }
39
+ }
40
+ }
41
+ return addSymmetricJitter(Math.min(INITIAL_RETRY_DELAY * 2 ** retryAttempt, MAX_RETRY_DELAY));
42
+ }
43
+ export async function requestWithRetries(requestFn, maxRetries = DEFAULT_MAX_RETRIES) {
44
+ let response = await requestFn();
45
+ for (let i = 0; i < maxRetries; ++i) {
46
+ if (isRetryableStatusCode(response.status)) {
47
+ const delay = getRetryDelayFromHeaders(response, i);
48
+ await new Promise((resolve) => setTimeout(resolve, delay));
49
+ response = await requestFn();
50
+ }
51
+ else {
52
+ break;
53
+ }
54
+ }
55
+ return response;
56
+ }
57
+ //# sourceMappingURL=requestWithRetries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestWithRetries.js","sourceRoot":"","sources":["../../../../src/core/fetcher/requestWithRetries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function getTimeoutSignal(timeoutMs: number): {
2
+ signal: AbortSignal;
3
+ abortId: ReturnType<typeof setTimeout>;
4
+ };
5
+ export declare function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal;
@@ -0,0 +1,29 @@
1
+ const TIMEOUT = "timeout";
2
+ export function getTimeoutSignal(timeoutMs) {
3
+ const controller = new AbortController();
4
+ const abortId = setTimeout(() => controller.abort(TIMEOUT), timeoutMs);
5
+ return { signal: controller.signal, abortId };
6
+ }
7
+ export function anySignal(...args) {
8
+ const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args);
9
+ const controller = new AbortController();
10
+ for (const signal of signals) {
11
+ if (signal.aborted) {
12
+ controller.abort(signal?.reason);
13
+ return controller.signal;
14
+ }
15
+ signal.addEventListener("abort", () => controller.abort(signal?.reason), {
16
+ signal: controller.signal,
17
+ });
18
+ // Re-check after adding listener: the signal may have aborted
19
+ // between the initial `signal.aborted` check and the `addEventListener`
20
+ // call above. If it did, the abort event was already dispatched and
21
+ // the listener will never fire — we must manually abort.
22
+ if (signal.aborted) {
23
+ controller.abort(signal?.reason);
24
+ return controller.signal;
25
+ }
26
+ }
27
+ return controller.signal;
28
+ }
29
+ //# sourceMappingURL=signals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.js","sourceRoot":"","sources":["../../../../src/core/fetcher/signals.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG,SAAS,CAAC;AAE1B,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAC9C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;IACvE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAG,IAAqC;IAC9D,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAkB,CAAC;IAEhG,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IAEzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,UAAU,CAAC,KAAK,CAAE,MAAc,EAAE,MAAM,CAAC,CAAC;YAC1C,OAAO,UAAU,CAAC,MAAM,CAAC;QAC7B,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAE,MAAc,EAAE,MAAM,CAAC,EAAE;YAC9E,MAAM,EAAE,UAAU,CAAC,MAAM;SAC5B,CAAC,CAAC;QAEH,8DAA8D;QAC9D,wEAAwE;QACxE,oEAAoE;QACpE,yDAAyD;QACzD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,UAAU,CAAC,KAAK,CAAE,MAAc,EAAE,MAAM,CAAC,CAAC;YAC1C,OAAO,UAAU,CAAC,MAAM,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,CAAC;AAC7B,CAAC"}
@@ -0,0 +1 @@
1
+ export type { Uploadable } from "./types.js";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=exports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exports.js","sourceRoot":"","sources":["../../../../src/core/file/exports.ts"],"names":[],"mappings":""}