@azure/core-rest-pipeline 1.19.2-alpha.20250418.1 → 1.20.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 (433) hide show
  1. package/dist/browser/constants.js +1 -1
  2. package/dist/browser/constants.js.map +1 -1
  3. package/dist/browser/createPipelineFromOptions.js +2 -0
  4. package/dist/browser/createPipelineFromOptions.js.map +1 -1
  5. package/dist/browser/defaultHttpClient.d.ts +1 -1
  6. package/dist/browser/defaultHttpClient.js +21 -3
  7. package/dist/browser/defaultHttpClient.js.map +1 -0
  8. package/dist/browser/httpHeaders.js +2 -80
  9. package/dist/browser/httpHeaders.js.map +1 -1
  10. package/dist/browser/index.d.ts +1 -2
  11. package/dist/browser/index.js +1 -1
  12. package/dist/browser/index.js.map +1 -1
  13. package/dist/browser/interfaces.d.ts +11 -0
  14. package/dist/browser/interfaces.js.map +1 -1
  15. package/dist/browser/pipeline.js +2 -253
  16. package/dist/browser/pipeline.js.map +1 -1
  17. package/dist/browser/pipelineRequest.d.ts +11 -0
  18. package/dist/browser/pipelineRequest.js +5 -28
  19. package/dist/browser/pipelineRequest.js.map +1 -1
  20. package/dist/browser/policies/agentPolicy.js +3 -11
  21. package/dist/browser/policies/agentPolicy.js.map +1 -1
  22. package/dist/browser/policies/decompressResponsePolicy.d.ts +8 -4
  23. package/dist/browser/policies/decompressResponsePolicy.js +8 -7
  24. package/dist/browser/policies/decompressResponsePolicy.js.map +1 -0
  25. package/dist/browser/policies/defaultRetryPolicy.js +3 -12
  26. package/dist/browser/policies/defaultRetryPolicy.js.map +1 -1
  27. package/dist/browser/policies/exponentialRetryPolicy.js +3 -10
  28. package/dist/browser/policies/exponentialRetryPolicy.js.map +1 -1
  29. package/dist/browser/policies/formDataPolicy.js +3 -85
  30. package/dist/browser/policies/formDataPolicy.js.map +1 -1
  31. package/dist/browser/policies/logPolicy.js +3 -21
  32. package/dist/browser/policies/logPolicy.js.map +1 -1
  33. package/dist/browser/policies/multipartPolicy.js +12 -95
  34. package/dist/browser/policies/multipartPolicy.js.map +1 -1
  35. package/dist/browser/policies/proxyPolicy.d.ts +26 -2
  36. package/dist/browser/policies/proxyPolicy.js +26 -2
  37. package/dist/browser/policies/proxyPolicy.js.map +1 -0
  38. package/dist/browser/policies/redirectPolicy.js +3 -38
  39. package/dist/browser/policies/redirectPolicy.js.map +1 -1
  40. package/dist/browser/policies/retryPolicy.d.ts +59 -1
  41. package/dist/browser/policies/retryPolicy.js +5 -94
  42. package/dist/browser/policies/retryPolicy.js.map +1 -1
  43. package/dist/browser/policies/systemErrorRetryPolicy.js +3 -13
  44. package/dist/browser/policies/systemErrorRetryPolicy.js.map +1 -1
  45. package/dist/browser/policies/throttlingRetryPolicy.js +3 -11
  46. package/dist/browser/policies/throttlingRetryPolicy.js.map +1 -1
  47. package/dist/browser/policies/tlsPolicy.js +3 -11
  48. package/dist/browser/policies/tlsPolicy.js.map +1 -1
  49. package/dist/browser/policies/tracingPolicy.js +1 -1
  50. package/dist/browser/policies/tracingPolicy.js.map +1 -1
  51. package/dist/browser/policies/wrapAbortSignalLikePolicy.d.ts +10 -0
  52. package/dist/browser/policies/wrapAbortSignalLikePolicy.js +30 -0
  53. package/dist/browser/policies/wrapAbortSignalLikePolicy.js.map +1 -0
  54. package/dist/browser/restError.js +8 -27
  55. package/dist/browser/restError.js.map +1 -1
  56. package/dist/browser/util/file.d.ts +28 -2
  57. package/dist/browser/util/file.js +9 -4
  58. package/dist/browser/util/file.js.map +1 -1
  59. package/dist/browser/util/tokenCycler.js +1 -1
  60. package/dist/browser/util/tokenCycler.js.map +1 -1
  61. package/dist/browser/util/wrapAbortSignal.d.ts +12 -0
  62. package/dist/browser/util/wrapAbortSignal.js +31 -0
  63. package/dist/browser/util/wrapAbortSignal.js.map +1 -0
  64. package/dist/commonjs/constants.js +1 -1
  65. package/dist/commonjs/constants.js.map +1 -1
  66. package/dist/commonjs/createPipelineFromOptions.js +2 -0
  67. package/dist/commonjs/createPipelineFromOptions.js.map +1 -1
  68. package/dist/commonjs/defaultHttpClient.js +20 -2
  69. package/dist/commonjs/defaultHttpClient.js.map +1 -1
  70. package/dist/commonjs/httpHeaders.js +2 -80
  71. package/dist/commonjs/httpHeaders.js.map +1 -1
  72. package/dist/commonjs/index.d.ts +1 -2
  73. package/dist/commonjs/index.js.map +1 -1
  74. package/dist/commonjs/interfaces.d.ts +11 -0
  75. package/dist/commonjs/interfaces.js.map +1 -1
  76. package/dist/commonjs/pipeline.js +2 -253
  77. package/dist/commonjs/pipeline.js.map +1 -1
  78. package/dist/commonjs/pipelineRequest.d.ts +11 -0
  79. package/dist/commonjs/pipelineRequest.js +5 -28
  80. package/dist/commonjs/pipelineRequest.js.map +1 -1
  81. package/dist/commonjs/policies/agentPolicy.js +3 -11
  82. package/dist/commonjs/policies/agentPolicy.js.map +1 -1
  83. package/dist/commonjs/policies/decompressResponsePolicy.js +3 -11
  84. package/dist/commonjs/policies/decompressResponsePolicy.js.map +1 -1
  85. package/dist/commonjs/policies/defaultRetryPolicy.js +3 -12
  86. package/dist/commonjs/policies/defaultRetryPolicy.js.map +1 -1
  87. package/dist/commonjs/policies/exponentialRetryPolicy.js +3 -10
  88. package/dist/commonjs/policies/exponentialRetryPolicy.js.map +1 -1
  89. package/dist/commonjs/policies/formDataPolicy.js +3 -85
  90. package/dist/commonjs/policies/formDataPolicy.js.map +1 -1
  91. package/dist/commonjs/policies/logPolicy.js +3 -21
  92. package/dist/commonjs/policies/logPolicy.js.map +1 -1
  93. package/dist/commonjs/policies/multipartPolicy.js +12 -95
  94. package/dist/commonjs/policies/multipartPolicy.js.map +1 -1
  95. package/dist/commonjs/policies/proxyPolicy.d.ts +0 -6
  96. package/dist/commonjs/policies/proxyPolicy.js +5 -169
  97. package/dist/commonjs/policies/proxyPolicy.js.map +1 -1
  98. package/dist/commonjs/policies/redirectPolicy.js +3 -38
  99. package/dist/commonjs/policies/redirectPolicy.js.map +1 -1
  100. package/dist/commonjs/policies/retryPolicy.d.ts +59 -1
  101. package/dist/commonjs/policies/retryPolicy.js +5 -94
  102. package/dist/commonjs/policies/retryPolicy.js.map +1 -1
  103. package/dist/commonjs/policies/systemErrorRetryPolicy.js +3 -13
  104. package/dist/commonjs/policies/systemErrorRetryPolicy.js.map +1 -1
  105. package/dist/commonjs/policies/throttlingRetryPolicy.js +3 -11
  106. package/dist/commonjs/policies/throttlingRetryPolicy.js.map +1 -1
  107. package/dist/commonjs/policies/tlsPolicy.js +3 -11
  108. package/dist/commonjs/policies/tlsPolicy.js.map +1 -1
  109. package/dist/commonjs/policies/tracingPolicy.js +2 -2
  110. package/dist/commonjs/policies/tracingPolicy.js.map +1 -1
  111. package/dist/commonjs/policies/wrapAbortSignalLikePolicy.d.ts +10 -0
  112. package/dist/commonjs/policies/wrapAbortSignalLikePolicy.js +34 -0
  113. package/dist/commonjs/policies/wrapAbortSignalLikePolicy.js.map +1 -0
  114. package/dist/commonjs/restError.js +8 -27
  115. package/dist/commonjs/restError.js.map +1 -1
  116. package/dist/commonjs/tsdoc-metadata.json +1 -1
  117. package/dist/commonjs/util/file.d.ts +28 -2
  118. package/dist/commonjs/util/file.js +10 -4
  119. package/dist/commonjs/util/file.js.map +1 -1
  120. package/dist/commonjs/util/tokenCycler.js +2 -2
  121. package/dist/commonjs/util/tokenCycler.js.map +1 -1
  122. package/dist/commonjs/util/wrapAbortSignal.d.ts +12 -0
  123. package/dist/commonjs/util/wrapAbortSignal.js +34 -0
  124. package/dist/commonjs/util/wrapAbortSignal.js.map +1 -0
  125. package/dist/esm/constants.js +1 -1
  126. package/dist/esm/constants.js.map +1 -1
  127. package/dist/esm/createPipelineFromOptions.js +2 -0
  128. package/dist/esm/createPipelineFromOptions.js.map +1 -1
  129. package/dist/esm/defaultHttpClient.js +20 -2
  130. package/dist/esm/defaultHttpClient.js.map +1 -1
  131. package/dist/esm/httpHeaders.js +2 -80
  132. package/dist/esm/httpHeaders.js.map +1 -1
  133. package/dist/esm/index.d.ts +1 -2
  134. package/dist/esm/index.js +1 -1
  135. package/dist/esm/index.js.map +1 -1
  136. package/dist/esm/interfaces.d.ts +11 -0
  137. package/dist/esm/interfaces.js.map +1 -1
  138. package/dist/esm/pipeline.js +2 -253
  139. package/dist/esm/pipeline.js.map +1 -1
  140. package/dist/esm/pipelineRequest.d.ts +11 -0
  141. package/dist/esm/pipelineRequest.js +5 -28
  142. package/dist/esm/pipelineRequest.js.map +1 -1
  143. package/dist/esm/policies/agentPolicy.js +3 -11
  144. package/dist/esm/policies/agentPolicy.js.map +1 -1
  145. package/dist/esm/policies/decompressResponsePolicy.js +3 -11
  146. package/dist/esm/policies/decompressResponsePolicy.js.map +1 -1
  147. package/dist/esm/policies/defaultRetryPolicy.js +3 -12
  148. package/dist/esm/policies/defaultRetryPolicy.js.map +1 -1
  149. package/dist/esm/policies/exponentialRetryPolicy.js +3 -10
  150. package/dist/esm/policies/exponentialRetryPolicy.js.map +1 -1
  151. package/dist/esm/policies/formDataPolicy.js +3 -85
  152. package/dist/esm/policies/formDataPolicy.js.map +1 -1
  153. package/dist/esm/policies/logPolicy.js +3 -21
  154. package/dist/esm/policies/logPolicy.js.map +1 -1
  155. package/dist/esm/policies/multipartPolicy.js +12 -95
  156. package/dist/esm/policies/multipartPolicy.js.map +1 -1
  157. package/dist/esm/policies/proxyPolicy.d.ts +0 -6
  158. package/dist/esm/policies/proxyPolicy.js +4 -167
  159. package/dist/esm/policies/proxyPolicy.js.map +1 -1
  160. package/dist/esm/policies/redirectPolicy.js +3 -38
  161. package/dist/esm/policies/redirectPolicy.js.map +1 -1
  162. package/dist/esm/policies/retryPolicy.d.ts +59 -1
  163. package/dist/esm/policies/retryPolicy.js +5 -94
  164. package/dist/esm/policies/retryPolicy.js.map +1 -1
  165. package/dist/esm/policies/systemErrorRetryPolicy.js +3 -13
  166. package/dist/esm/policies/systemErrorRetryPolicy.js.map +1 -1
  167. package/dist/esm/policies/throttlingRetryPolicy.js +3 -11
  168. package/dist/esm/policies/throttlingRetryPolicy.js.map +1 -1
  169. package/dist/esm/policies/tlsPolicy.js +3 -11
  170. package/dist/esm/policies/tlsPolicy.js.map +1 -1
  171. package/dist/esm/policies/tracingPolicy.js +1 -1
  172. package/dist/esm/policies/tracingPolicy.js.map +1 -1
  173. package/dist/esm/policies/wrapAbortSignalLikePolicy.d.ts +10 -0
  174. package/dist/esm/policies/wrapAbortSignalLikePolicy.js +30 -0
  175. package/dist/esm/policies/wrapAbortSignalLikePolicy.js.map +1 -0
  176. package/dist/esm/restError.js +8 -27
  177. package/dist/esm/restError.js.map +1 -1
  178. package/dist/esm/util/file.d.ts +28 -2
  179. package/dist/esm/util/file.js +9 -4
  180. package/dist/esm/util/file.js.map +1 -1
  181. package/dist/esm/util/tokenCycler.js +1 -1
  182. package/dist/esm/util/tokenCycler.js.map +1 -1
  183. package/dist/esm/util/wrapAbortSignal.d.ts +12 -0
  184. package/dist/esm/util/wrapAbortSignal.js +31 -0
  185. package/dist/esm/util/wrapAbortSignal.js.map +1 -0
  186. package/dist/react-native/constants.js +1 -1
  187. package/dist/react-native/constants.js.map +1 -1
  188. package/dist/react-native/createPipelineFromOptions.js +2 -0
  189. package/dist/react-native/createPipelineFromOptions.js.map +1 -1
  190. package/dist/react-native/defaultHttpClient.d.ts +1 -1
  191. package/dist/react-native/defaultHttpClient.js +21 -3
  192. package/dist/react-native/defaultHttpClient.js.map +1 -0
  193. package/dist/react-native/httpHeaders.js +2 -80
  194. package/dist/react-native/httpHeaders.js.map +1 -1
  195. package/dist/react-native/index.d.ts +1 -2
  196. package/dist/react-native/index.js +1 -1
  197. package/dist/react-native/index.js.map +1 -1
  198. package/dist/react-native/interfaces.d.ts +11 -0
  199. package/dist/react-native/interfaces.js.map +1 -1
  200. package/dist/react-native/pipeline.js +2 -253
  201. package/dist/react-native/pipeline.js.map +1 -1
  202. package/dist/react-native/pipelineRequest.d.ts +11 -0
  203. package/dist/react-native/pipelineRequest.js +5 -28
  204. package/dist/react-native/pipelineRequest.js.map +1 -1
  205. package/dist/react-native/policies/agentPolicy.js +3 -11
  206. package/dist/react-native/policies/agentPolicy.js.map +1 -1
  207. package/dist/react-native/policies/decompressResponsePolicy.js +3 -11
  208. package/dist/react-native/policies/decompressResponsePolicy.js.map +1 -1
  209. package/dist/react-native/policies/defaultRetryPolicy.js +3 -12
  210. package/dist/react-native/policies/defaultRetryPolicy.js.map +1 -1
  211. package/dist/react-native/policies/exponentialRetryPolicy.js +3 -10
  212. package/dist/react-native/policies/exponentialRetryPolicy.js.map +1 -1
  213. package/dist/react-native/policies/formDataPolicy.js +3 -85
  214. package/dist/react-native/policies/formDataPolicy.js.map +1 -1
  215. package/dist/react-native/policies/logPolicy.js +3 -21
  216. package/dist/react-native/policies/logPolicy.js.map +1 -1
  217. package/dist/react-native/policies/multipartPolicy.js +12 -95
  218. package/dist/react-native/policies/multipartPolicy.js.map +1 -1
  219. package/dist/react-native/policies/proxyPolicy.d.ts +26 -2
  220. package/dist/react-native/policies/proxyPolicy.js +26 -2
  221. package/dist/react-native/policies/proxyPolicy.js.map +1 -0
  222. package/dist/react-native/policies/redirectPolicy.js +3 -38
  223. package/dist/react-native/policies/redirectPolicy.js.map +1 -1
  224. package/dist/react-native/policies/retryPolicy.d.ts +59 -1
  225. package/dist/react-native/policies/retryPolicy.js +5 -94
  226. package/dist/react-native/policies/retryPolicy.js.map +1 -1
  227. package/dist/react-native/policies/systemErrorRetryPolicy.js +3 -13
  228. package/dist/react-native/policies/systemErrorRetryPolicy.js.map +1 -1
  229. package/dist/react-native/policies/throttlingRetryPolicy.js +3 -11
  230. package/dist/react-native/policies/throttlingRetryPolicy.js.map +1 -1
  231. package/dist/react-native/policies/tlsPolicy.js +3 -11
  232. package/dist/react-native/policies/tlsPolicy.js.map +1 -1
  233. package/dist/react-native/policies/tracingPolicy.js +1 -1
  234. package/dist/react-native/policies/tracingPolicy.js.map +1 -1
  235. package/dist/react-native/policies/wrapAbortSignalLikePolicy.d.ts +10 -0
  236. package/dist/react-native/policies/wrapAbortSignalLikePolicy.js +30 -0
  237. package/dist/react-native/policies/wrapAbortSignalLikePolicy.js.map +1 -0
  238. package/dist/react-native/restError.js +8 -27
  239. package/dist/react-native/restError.js.map +1 -1
  240. package/dist/react-native/util/file.d.ts +28 -2
  241. package/dist/react-native/util/file.js +9 -4
  242. package/dist/react-native/util/file.js.map +1 -1
  243. package/dist/react-native/util/tokenCycler.js +1 -1
  244. package/dist/react-native/util/tokenCycler.js.map +1 -1
  245. package/dist/react-native/util/wrapAbortSignal.d.ts +12 -0
  246. package/dist/react-native/util/wrapAbortSignal.js +31 -0
  247. package/dist/react-native/util/wrapAbortSignal.js.map +1 -0
  248. package/package.json +5 -6
  249. package/dist/browser/accessTokenCache.d.ts +0 -40
  250. package/dist/browser/accessTokenCache.js +0 -32
  251. package/dist/browser/accessTokenCache.js.map +0 -1
  252. package/dist/browser/defaultHttpClient-browser.mjs.map +0 -1
  253. package/dist/browser/fetchHttpClient.d.ts +0 -7
  254. package/dist/browser/fetchHttpClient.js +0 -256
  255. package/dist/browser/fetchHttpClient.js.map +0 -1
  256. package/dist/browser/nodeHttpClient.d.ts +0 -9
  257. package/dist/browser/nodeHttpClient.js +0 -348
  258. package/dist/browser/nodeHttpClient.js.map +0 -1
  259. package/dist/browser/policies/decompressResponsePolicy-browser.mjs.map +0 -1
  260. package/dist/browser/policies/proxyPolicy-browser.mjs.map +0 -1
  261. package/dist/browser/policies/proxyPolicy.common.d.ts +0 -15
  262. package/dist/browser/policies/proxyPolicy.common.js +0 -24
  263. package/dist/browser/policies/proxyPolicy.common.js.map +0 -1
  264. package/dist/browser/retryStrategies/exponentialRetryStrategy.d.ts +0 -40
  265. package/dist/browser/retryStrategies/exponentialRetryStrategy.js +0 -64
  266. package/dist/browser/retryStrategies/exponentialRetryStrategy.js.map +0 -1
  267. package/dist/browser/retryStrategies/retryStrategy.d.ts +0 -61
  268. package/dist/browser/retryStrategies/retryStrategy.js +0 -4
  269. package/dist/browser/retryStrategies/retryStrategy.js.map +0 -1
  270. package/dist/browser/retryStrategies/throttlingRetryStrategy.d.ts +0 -9
  271. package/dist/browser/retryStrategies/throttlingRetryStrategy.js +0 -74
  272. package/dist/browser/retryStrategies/throttlingRetryStrategy.js.map +0 -1
  273. package/dist/browser/util/concat-browser.mjs.map +0 -1
  274. package/dist/browser/util/concat.common.d.ts +0 -18
  275. package/dist/browser/util/concat.common.js +0 -45
  276. package/dist/browser/util/concat.common.js.map +0 -1
  277. package/dist/browser/util/concat.d.ts +0 -2
  278. package/dist/browser/util/concat.js +0 -4
  279. package/dist/browser/util/helpers.d.ts +0 -21
  280. package/dist/browser/util/helpers.js +0 -58
  281. package/dist/browser/util/helpers.js.map +0 -1
  282. package/dist/browser/util/inspect-browser.mjs.map +0 -1
  283. package/dist/browser/util/inspect.common.d.ts +0 -2
  284. package/dist/browser/util/inspect.common.js +0 -4
  285. package/dist/browser/util/inspect.common.js.map +0 -1
  286. package/dist/browser/util/inspect.d.ts +0 -2
  287. package/dist/browser/util/inspect.js +0 -4
  288. package/dist/browser/util/sanitizer.d.ts +0 -30
  289. package/dist/browser/util/sanitizer.js +0 -139
  290. package/dist/browser/util/sanitizer.js.map +0 -1
  291. package/dist/browser/util/typeGuards.d.ts +0 -5
  292. package/dist/browser/util/typeGuards.js +0 -17
  293. package/dist/browser/util/typeGuards.js.map +0 -1
  294. package/dist/browser/xhrHttpClient.d.ts +0 -7
  295. package/dist/browser/xhrHttpClient.js +0 -167
  296. package/dist/browser/xhrHttpClient.js.map +0 -1
  297. package/dist/commonjs/accessTokenCache.d.ts +0 -40
  298. package/dist/commonjs/accessTokenCache.js +0 -36
  299. package/dist/commonjs/accessTokenCache.js.map +0 -1
  300. package/dist/commonjs/fetchHttpClient.d.ts +0 -7
  301. package/dist/commonjs/fetchHttpClient.js +0 -259
  302. package/dist/commonjs/fetchHttpClient.js.map +0 -1
  303. package/dist/commonjs/nodeHttpClient.d.ts +0 -9
  304. package/dist/commonjs/nodeHttpClient.js +0 -353
  305. package/dist/commonjs/nodeHttpClient.js.map +0 -1
  306. package/dist/commonjs/policies/proxyPolicy.common.d.ts +0 -15
  307. package/dist/commonjs/policies/proxyPolicy.common.js +0 -30
  308. package/dist/commonjs/policies/proxyPolicy.common.js.map +0 -1
  309. package/dist/commonjs/retryStrategies/exponentialRetryStrategy.d.ts +0 -40
  310. package/dist/commonjs/retryStrategies/exponentialRetryStrategy.js +0 -69
  311. package/dist/commonjs/retryStrategies/exponentialRetryStrategy.js.map +0 -1
  312. package/dist/commonjs/retryStrategies/retryStrategy.d.ts +0 -61
  313. package/dist/commonjs/retryStrategies/retryStrategy.js +0 -5
  314. package/dist/commonjs/retryStrategies/retryStrategy.js.map +0 -1
  315. package/dist/commonjs/retryStrategies/throttlingRetryStrategy.d.ts +0 -9
  316. package/dist/commonjs/retryStrategies/throttlingRetryStrategy.js +0 -78
  317. package/dist/commonjs/retryStrategies/throttlingRetryStrategy.js.map +0 -1
  318. package/dist/commonjs/util/concat.common.d.ts +0 -18
  319. package/dist/commonjs/util/concat.common.js +0 -48
  320. package/dist/commonjs/util/concat.common.js.map +0 -1
  321. package/dist/commonjs/util/concat.d.ts +0 -17
  322. package/dist/commonjs/util/concat.js +0 -91
  323. package/dist/commonjs/util/concat.js.map +0 -1
  324. package/dist/commonjs/util/helpers.d.ts +0 -21
  325. package/dist/commonjs/util/helpers.js +0 -62
  326. package/dist/commonjs/util/helpers.js.map +0 -1
  327. package/dist/commonjs/util/inspect.common.d.ts +0 -2
  328. package/dist/commonjs/util/inspect.common.js +0 -7
  329. package/dist/commonjs/util/inspect.common.js.map +0 -1
  330. package/dist/commonjs/util/inspect.d.ts +0 -2
  331. package/dist/commonjs/util/inspect.js +0 -8
  332. package/dist/commonjs/util/inspect.js.map +0 -1
  333. package/dist/commonjs/util/sanitizer.d.ts +0 -30
  334. package/dist/commonjs/util/sanitizer.js +0 -143
  335. package/dist/commonjs/util/sanitizer.js.map +0 -1
  336. package/dist/commonjs/util/typeGuards.d.ts +0 -5
  337. package/dist/commonjs/util/typeGuards.js +0 -23
  338. package/dist/commonjs/util/typeGuards.js.map +0 -1
  339. package/dist/commonjs/xhrHttpClient.d.ts +0 -7
  340. package/dist/commonjs/xhrHttpClient.js +0 -170
  341. package/dist/commonjs/xhrHttpClient.js.map +0 -1
  342. package/dist/esm/accessTokenCache.d.ts +0 -40
  343. package/dist/esm/accessTokenCache.js +0 -32
  344. package/dist/esm/accessTokenCache.js.map +0 -1
  345. package/dist/esm/fetchHttpClient.d.ts +0 -7
  346. package/dist/esm/fetchHttpClient.js +0 -256
  347. package/dist/esm/fetchHttpClient.js.map +0 -1
  348. package/dist/esm/nodeHttpClient.d.ts +0 -9
  349. package/dist/esm/nodeHttpClient.js +0 -348
  350. package/dist/esm/nodeHttpClient.js.map +0 -1
  351. package/dist/esm/policies/proxyPolicy.common.d.ts +0 -15
  352. package/dist/esm/policies/proxyPolicy.common.js +0 -24
  353. package/dist/esm/policies/proxyPolicy.common.js.map +0 -1
  354. package/dist/esm/retryStrategies/exponentialRetryStrategy.d.ts +0 -40
  355. package/dist/esm/retryStrategies/exponentialRetryStrategy.js +0 -64
  356. package/dist/esm/retryStrategies/exponentialRetryStrategy.js.map +0 -1
  357. package/dist/esm/retryStrategies/retryStrategy.d.ts +0 -61
  358. package/dist/esm/retryStrategies/retryStrategy.js +0 -4
  359. package/dist/esm/retryStrategies/retryStrategy.js.map +0 -1
  360. package/dist/esm/retryStrategies/throttlingRetryStrategy.d.ts +0 -9
  361. package/dist/esm/retryStrategies/throttlingRetryStrategy.js +0 -74
  362. package/dist/esm/retryStrategies/throttlingRetryStrategy.js.map +0 -1
  363. package/dist/esm/util/concat.common.d.ts +0 -18
  364. package/dist/esm/util/concat.common.js +0 -45
  365. package/dist/esm/util/concat.common.js.map +0 -1
  366. package/dist/esm/util/concat.d.ts +0 -17
  367. package/dist/esm/util/concat.js +0 -88
  368. package/dist/esm/util/concat.js.map +0 -1
  369. package/dist/esm/util/helpers.d.ts +0 -21
  370. package/dist/esm/util/helpers.js +0 -58
  371. package/dist/esm/util/helpers.js.map +0 -1
  372. package/dist/esm/util/inspect.common.d.ts +0 -2
  373. package/dist/esm/util/inspect.common.js +0 -4
  374. package/dist/esm/util/inspect.common.js.map +0 -1
  375. package/dist/esm/util/inspect.d.ts +0 -2
  376. package/dist/esm/util/inspect.js +0 -5
  377. package/dist/esm/util/inspect.js.map +0 -1
  378. package/dist/esm/util/sanitizer.d.ts +0 -30
  379. package/dist/esm/util/sanitizer.js +0 -139
  380. package/dist/esm/util/sanitizer.js.map +0 -1
  381. package/dist/esm/util/typeGuards.d.ts +0 -5
  382. package/dist/esm/util/typeGuards.js +0 -17
  383. package/dist/esm/util/typeGuards.js.map +0 -1
  384. package/dist/esm/xhrHttpClient.d.ts +0 -7
  385. package/dist/esm/xhrHttpClient.js +0 -167
  386. package/dist/esm/xhrHttpClient.js.map +0 -1
  387. package/dist/react-native/accessTokenCache.d.ts +0 -40
  388. package/dist/react-native/accessTokenCache.js +0 -32
  389. package/dist/react-native/accessTokenCache.js.map +0 -1
  390. package/dist/react-native/defaultHttpClient-react-native.mjs.map +0 -1
  391. package/dist/react-native/fetchHttpClient.d.ts +0 -7
  392. package/dist/react-native/fetchHttpClient.js +0 -256
  393. package/dist/react-native/fetchHttpClient.js.map +0 -1
  394. package/dist/react-native/nodeHttpClient.d.ts +0 -9
  395. package/dist/react-native/nodeHttpClient.js +0 -348
  396. package/dist/react-native/nodeHttpClient.js.map +0 -1
  397. package/dist/react-native/policies/proxyPolicy-react-native.mjs.map +0 -1
  398. package/dist/react-native/policies/proxyPolicy.common.d.ts +0 -15
  399. package/dist/react-native/policies/proxyPolicy.common.js +0 -24
  400. package/dist/react-native/policies/proxyPolicy.common.js.map +0 -1
  401. package/dist/react-native/retryStrategies/exponentialRetryStrategy.d.ts +0 -40
  402. package/dist/react-native/retryStrategies/exponentialRetryStrategy.js +0 -64
  403. package/dist/react-native/retryStrategies/exponentialRetryStrategy.js.map +0 -1
  404. package/dist/react-native/retryStrategies/retryStrategy.d.ts +0 -61
  405. package/dist/react-native/retryStrategies/retryStrategy.js +0 -4
  406. package/dist/react-native/retryStrategies/retryStrategy.js.map +0 -1
  407. package/dist/react-native/retryStrategies/throttlingRetryStrategy.d.ts +0 -9
  408. package/dist/react-native/retryStrategies/throttlingRetryStrategy.js +0 -74
  409. package/dist/react-native/retryStrategies/throttlingRetryStrategy.js.map +0 -1
  410. package/dist/react-native/util/concat-react-native.mjs.map +0 -1
  411. package/dist/react-native/util/concat.common.d.ts +0 -18
  412. package/dist/react-native/util/concat.common.js +0 -45
  413. package/dist/react-native/util/concat.common.js.map +0 -1
  414. package/dist/react-native/util/concat.d.ts +0 -2
  415. package/dist/react-native/util/concat.js +0 -4
  416. package/dist/react-native/util/helpers.d.ts +0 -21
  417. package/dist/react-native/util/helpers.js +0 -58
  418. package/dist/react-native/util/helpers.js.map +0 -1
  419. package/dist/react-native/util/inspect-react-native.mjs.map +0 -1
  420. package/dist/react-native/util/inspect.common.d.ts +0 -2
  421. package/dist/react-native/util/inspect.common.js +0 -4
  422. package/dist/react-native/util/inspect.common.js.map +0 -1
  423. package/dist/react-native/util/inspect.d.ts +0 -2
  424. package/dist/react-native/util/inspect.js +0 -4
  425. package/dist/react-native/util/sanitizer.d.ts +0 -30
  426. package/dist/react-native/util/sanitizer.js +0 -139
  427. package/dist/react-native/util/sanitizer.js.map +0 -1
  428. package/dist/react-native/util/typeGuards.d.ts +0 -5
  429. package/dist/react-native/util/typeGuards.js +0 -17
  430. package/dist/react-native/util/typeGuards.js.map +0 -1
  431. package/dist/react-native/xhrHttpClient.d.ts +0 -7
  432. package/dist/react-native/xhrHttpClient.js +0 -167
  433. package/dist/react-native/xhrHttpClient.js.map +0 -1
@@ -1,259 +0,0 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT License.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.createFetchHttpClient = createFetchHttpClient;
6
- const abort_controller_1 = require("@azure/abort-controller");
7
- const restError_js_1 = require("./restError.js");
8
- const httpHeaders_js_1 = require("./httpHeaders.js");
9
- const typeGuards_js_1 = require("./util/typeGuards.js");
10
- /**
11
- * Checks if the body is a Blob or Blob-like
12
- */
13
- function isBlob(body) {
14
- // File objects count as a type of Blob, so we want to use instanceof explicitly
15
- return (typeof Blob === "function" || typeof Blob === "object") && body instanceof Blob;
16
- }
17
- /**
18
- * A HttpClient implementation that uses window.fetch to send HTTP requests.
19
- * @internal
20
- */
21
- class FetchHttpClient {
22
- /**
23
- * Makes a request over an underlying transport layer and returns the response.
24
- * @param request - The request to be made.
25
- */
26
- async sendRequest(request) {
27
- const url = new URL(request.url);
28
- const isInsecure = url.protocol !== "https:";
29
- if (isInsecure && !request.allowInsecureConnection) {
30
- throw new Error(`Cannot connect to ${request.url} while allowInsecureConnection is false.`);
31
- }
32
- if (request.proxySettings) {
33
- throw new Error("HTTP proxy is not supported in browser environment");
34
- }
35
- try {
36
- return await makeRequest(request);
37
- }
38
- catch (e) {
39
- throw getError(e, request);
40
- }
41
- }
42
- }
43
- /**
44
- * Sends a request
45
- */
46
- async function makeRequest(request) {
47
- const { abortController, abortControllerCleanup } = setupAbortSignal(request);
48
- try {
49
- const headers = buildFetchHeaders(request.headers);
50
- const { streaming, body: requestBody } = buildRequestBody(request);
51
- const requestInit = Object.assign(Object.assign({ body: requestBody, method: request.method, headers: headers, signal: abortController.signal }, ("credentials" in Request.prototype
52
- ? { credentials: request.withCredentials ? "include" : "same-origin" }
53
- : {})), ("cache" in Request.prototype ? { cache: "no-store" } : {}));
54
- // According to https://fetch.spec.whatwg.org/#fetch-method,
55
- // init.duplex must be set when body is a ReadableStream object.
56
- // currently "half" is the only valid value.
57
- if (streaming) {
58
- requestInit.duplex = "half";
59
- }
60
- /**
61
- * Developers of the future:
62
- * Do not set redirect: "manual" as part
63
- * of request options.
64
- * It will not work as you expect.
65
- */
66
- const response = await fetch(request.url, requestInit);
67
- // If we're uploading a blob, we need to fire the progress event manually
68
- if (isBlob(request.body) && request.onUploadProgress) {
69
- request.onUploadProgress({ loadedBytes: request.body.size });
70
- }
71
- return buildPipelineResponse(response, request, abortControllerCleanup);
72
- }
73
- catch (e) {
74
- abortControllerCleanup === null || abortControllerCleanup === void 0 ? void 0 : abortControllerCleanup();
75
- throw e;
76
- }
77
- }
78
- /**
79
- * Creates a pipeline response from a Fetch response;
80
- */
81
- async function buildPipelineResponse(httpResponse, request, abortControllerCleanup) {
82
- var _a, _b;
83
- const headers = buildPipelineHeaders(httpResponse);
84
- const response = {
85
- request,
86
- headers,
87
- status: httpResponse.status,
88
- };
89
- const bodyStream = (0, typeGuards_js_1.isWebReadableStream)(httpResponse.body)
90
- ? buildBodyStream(httpResponse.body, {
91
- onProgress: request.onDownloadProgress,
92
- onEnd: abortControllerCleanup,
93
- })
94
- : httpResponse.body;
95
- if (
96
- // Value of POSITIVE_INFINITY in streamResponseStatusCodes is considered as any status code
97
- ((_a = request.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(Number.POSITIVE_INFINITY)) ||
98
- ((_b = request.streamResponseStatusCodes) === null || _b === void 0 ? void 0 : _b.has(response.status))) {
99
- if (request.enableBrowserStreams) {
100
- response.browserStreamBody = bodyStream !== null && bodyStream !== void 0 ? bodyStream : undefined;
101
- }
102
- else {
103
- const responseStream = new Response(bodyStream);
104
- response.blobBody = responseStream.blob();
105
- abortControllerCleanup === null || abortControllerCleanup === void 0 ? void 0 : abortControllerCleanup();
106
- }
107
- }
108
- else {
109
- const responseStream = new Response(bodyStream);
110
- response.bodyAsText = await responseStream.text();
111
- abortControllerCleanup === null || abortControllerCleanup === void 0 ? void 0 : abortControllerCleanup();
112
- }
113
- return response;
114
- }
115
- function setupAbortSignal(request) {
116
- const abortController = new AbortController();
117
- // Cleanup function
118
- let abortControllerCleanup;
119
- /**
120
- * Attach an abort listener to the request
121
- */
122
- let abortListener;
123
- if (request.abortSignal) {
124
- if (request.abortSignal.aborted) {
125
- throw new abort_controller_1.AbortError("The operation was aborted. Request has already been canceled.");
126
- }
127
- abortListener = (event) => {
128
- if (event.type === "abort") {
129
- abortController.abort();
130
- }
131
- };
132
- request.abortSignal.addEventListener("abort", abortListener);
133
- abortControllerCleanup = () => {
134
- var _a;
135
- if (abortListener) {
136
- (_a = request.abortSignal) === null || _a === void 0 ? void 0 : _a.removeEventListener("abort", abortListener);
137
- }
138
- };
139
- }
140
- // If a timeout was passed, call the abort signal once the time elapses
141
- if (request.timeout > 0) {
142
- setTimeout(() => {
143
- abortController.abort();
144
- }, request.timeout);
145
- }
146
- return { abortController, abortControllerCleanup };
147
- }
148
- /**
149
- * Gets the specific error
150
- */
151
- // eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters
152
- function getError(e, request) {
153
- var _a;
154
- if (e && (e === null || e === void 0 ? void 0 : e.name) === "AbortError") {
155
- return e;
156
- }
157
- else {
158
- return new restError_js_1.RestError(`Error sending request: ${e.message}`, {
159
- code: (_a = e === null || e === void 0 ? void 0 : e.code) !== null && _a !== void 0 ? _a : restError_js_1.RestError.REQUEST_SEND_ERROR,
160
- request,
161
- });
162
- }
163
- }
164
- /**
165
- * Converts PipelineRequest headers to Fetch headers
166
- */
167
- function buildFetchHeaders(pipelineHeaders) {
168
- const headers = new Headers();
169
- for (const [name, value] of pipelineHeaders) {
170
- headers.append(name, value);
171
- }
172
- return headers;
173
- }
174
- function buildPipelineHeaders(httpResponse) {
175
- const responseHeaders = (0, httpHeaders_js_1.createHttpHeaders)();
176
- for (const [name, value] of httpResponse.headers) {
177
- responseHeaders.set(name, value);
178
- }
179
- return responseHeaders;
180
- }
181
- function buildRequestBody(request) {
182
- const body = typeof request.body === "function" ? request.body() : request.body;
183
- if ((0, typeGuards_js_1.isNodeReadableStream)(body)) {
184
- throw new Error("Node streams are not supported in browser environment.");
185
- }
186
- return (0, typeGuards_js_1.isWebReadableStream)(body)
187
- ? { streaming: true, body: buildBodyStream(body, { onProgress: request.onUploadProgress }) }
188
- : { streaming: false, body };
189
- }
190
- /**
191
- * Reads the request/response original stream and stream it through a new
192
- * ReadableStream, this is done to be able to report progress in a way that
193
- * all modern browsers support. TransformStreams would be an alternative,
194
- * however they are not yet supported by all browsers i.e Firefox
195
- */
196
- function buildBodyStream(readableStream, options = {}) {
197
- let loadedBytes = 0;
198
- const { onProgress, onEnd } = options;
199
- // If the current browser supports pipeThrough we use a TransformStream
200
- // to report progress
201
- if (isTransformStreamSupported(readableStream)) {
202
- return readableStream.pipeThrough(new TransformStream({
203
- transform(chunk, controller) {
204
- if (chunk === null) {
205
- controller.terminate();
206
- return;
207
- }
208
- controller.enqueue(chunk);
209
- loadedBytes += chunk.length;
210
- if (onProgress) {
211
- onProgress({ loadedBytes });
212
- }
213
- },
214
- flush() {
215
- onEnd === null || onEnd === void 0 ? void 0 : onEnd();
216
- },
217
- }));
218
- }
219
- else {
220
- // If we can't use transform streams, wrap the original stream in a new readable stream
221
- // and use pull to enqueue each chunk and report progress.
222
- const reader = readableStream.getReader();
223
- return new ReadableStream({
224
- async pull(controller) {
225
- var _a;
226
- const { done, value } = await reader.read();
227
- // When no more data needs to be consumed, break the reading
228
- if (done || !value) {
229
- onEnd === null || onEnd === void 0 ? void 0 : onEnd();
230
- // Close the stream
231
- controller.close();
232
- reader.releaseLock();
233
- return;
234
- }
235
- loadedBytes += (_a = value === null || value === void 0 ? void 0 : value.length) !== null && _a !== void 0 ? _a : 0;
236
- // Enqueue the next data chunk into our target stream
237
- controller.enqueue(value);
238
- if (onProgress) {
239
- onProgress({ loadedBytes });
240
- }
241
- },
242
- cancel(reason) {
243
- onEnd === null || onEnd === void 0 ? void 0 : onEnd();
244
- return reader.cancel(reason);
245
- },
246
- });
247
- }
248
- }
249
- /**
250
- * Create a new HttpClient instance for the browser environment.
251
- * @internal
252
- */
253
- function createFetchHttpClient() {
254
- return new FetchHttpClient();
255
- }
256
- function isTransformStreamSupported(readableStream) {
257
- return readableStream.pipeThrough !== undefined && self.TransformStream !== undefined;
258
- }
259
- //# sourceMappingURL=fetchHttpClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetchHttpClient.js","sourceRoot":"","sources":["../../src/fetchHttpClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AbortError } from \"@azure/abort-controller\";\nimport type {\n HttpClient,\n HttpHeaders as PipelineHeaders,\n PipelineRequest,\n PipelineResponse,\n TransferProgressEvent,\n} from \"./interfaces.js\";\nimport { RestError } from \"./restError.js\";\nimport { createHttpHeaders } from \"./httpHeaders.js\";\nimport { isNodeReadableStream, isWebReadableStream } from \"./util/typeGuards.js\";\n\n/**\n * Checks if the body is a Blob or Blob-like\n */\nfunction isBlob(body: unknown): body is Blob {\n // File objects count as a type of Blob, so we want to use instanceof explicitly\n return (typeof Blob === \"function\" || typeof Blob === \"object\") && body instanceof Blob;\n}\n\n/**\n * A HttpClient implementation that uses window.fetch to send HTTP requests.\n * @internal\n */\nclass FetchHttpClient implements HttpClient {\n /**\n * Makes a request over an underlying transport layer and returns the response.\n * @param request - The request to be made.\n */\n public async sendRequest(request: PipelineRequest): Promise<PipelineResponse> {\n const url = new URL(request.url);\n const isInsecure = url.protocol !== \"https:\";\n\n if (isInsecure && !request.allowInsecureConnection) {\n throw new Error(`Cannot connect to ${request.url} while allowInsecureConnection is false.`);\n }\n\n if (request.proxySettings) {\n throw new Error(\"HTTP proxy is not supported in browser environment\");\n }\n\n try {\n return await makeRequest(request);\n } catch (e: any) {\n throw getError(e, request);\n }\n }\n}\n\n/**\n * Sends a request\n */\nasync function makeRequest(request: PipelineRequest): Promise<PipelineResponse> {\n const { abortController, abortControllerCleanup } = setupAbortSignal(request);\n try {\n const headers = buildFetchHeaders(request.headers);\n const { streaming, body: requestBody } = buildRequestBody(request);\n const requestInit: RequestInit = {\n body: requestBody,\n method: request.method,\n headers: headers,\n signal: abortController.signal,\n // Cloudflare doesn't implement the full Fetch API spec\n // because of some of it doesn't make sense in the edge.\n // See https://github.com/cloudflare/workerd/issues/902\n ...(\"credentials\" in Request.prototype\n ? { credentials: request.withCredentials ? \"include\" : \"same-origin\" }\n : {}),\n ...(\"cache\" in Request.prototype ? { cache: \"no-store\" } : {}),\n };\n\n // According to https://fetch.spec.whatwg.org/#fetch-method,\n // init.duplex must be set when body is a ReadableStream object.\n // currently \"half\" is the only valid value.\n if (streaming) {\n (requestInit as any).duplex = \"half\";\n }\n /**\n * Developers of the future:\n * Do not set redirect: \"manual\" as part\n * of request options.\n * It will not work as you expect.\n */\n const response = await fetch(request.url, requestInit);\n // If we're uploading a blob, we need to fire the progress event manually\n if (isBlob(request.body) && request.onUploadProgress) {\n request.onUploadProgress({ loadedBytes: request.body.size });\n }\n return buildPipelineResponse(response, request, abortControllerCleanup);\n } catch (e) {\n abortControllerCleanup?.();\n throw e;\n }\n}\n\n/**\n * Creates a pipeline response from a Fetch response;\n */\nasync function buildPipelineResponse(\n httpResponse: Response,\n request: PipelineRequest,\n abortControllerCleanup?: () => void,\n): Promise<PipelineResponse> {\n const headers = buildPipelineHeaders(httpResponse);\n const response: PipelineResponse = {\n request,\n headers,\n status: httpResponse.status,\n };\n\n const bodyStream = isWebReadableStream(httpResponse.body)\n ? buildBodyStream(httpResponse.body, {\n onProgress: request.onDownloadProgress,\n onEnd: abortControllerCleanup,\n })\n : httpResponse.body;\n\n if (\n // Value of POSITIVE_INFINITY in streamResponseStatusCodes is considered as any status code\n request.streamResponseStatusCodes?.has(Number.POSITIVE_INFINITY) ||\n request.streamResponseStatusCodes?.has(response.status)\n ) {\n if (request.enableBrowserStreams) {\n response.browserStreamBody = bodyStream ?? undefined;\n } else {\n const responseStream = new Response(bodyStream);\n response.blobBody = responseStream.blob();\n abortControllerCleanup?.();\n }\n } else {\n const responseStream = new Response(bodyStream);\n\n response.bodyAsText = await responseStream.text();\n abortControllerCleanup?.();\n }\n\n return response;\n}\n\nfunction setupAbortSignal(request: PipelineRequest): {\n abortController: AbortController;\n abortControllerCleanup: (() => void) | undefined;\n} {\n const abortController = new AbortController();\n\n // Cleanup function\n let abortControllerCleanup: (() => void) | undefined;\n\n /**\n * Attach an abort listener to the request\n */\n let abortListener: ((event: any) => void) | undefined;\n if (request.abortSignal) {\n if (request.abortSignal.aborted) {\n throw new AbortError(\"The operation was aborted. Request has already been canceled.\");\n }\n\n abortListener = (event: Event) => {\n if (event.type === \"abort\") {\n abortController.abort();\n }\n };\n request.abortSignal.addEventListener(\"abort\", abortListener);\n abortControllerCleanup = () => {\n if (abortListener) {\n request.abortSignal?.removeEventListener(\"abort\", abortListener);\n }\n };\n }\n\n // If a timeout was passed, call the abort signal once the time elapses\n if (request.timeout > 0) {\n setTimeout(() => {\n abortController.abort();\n }, request.timeout);\n }\n\n return { abortController, abortControllerCleanup };\n}\n\n/**\n * Gets the specific error\n */\n// eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters\nfunction getError(e: RestError, request: PipelineRequest): RestError {\n if (e && e?.name === \"AbortError\") {\n return e;\n } else {\n return new RestError(`Error sending request: ${e.message}`, {\n code: e?.code ?? RestError.REQUEST_SEND_ERROR,\n request,\n });\n }\n}\n\n/**\n * Converts PipelineRequest headers to Fetch headers\n */\nfunction buildFetchHeaders(pipelineHeaders: PipelineHeaders): Headers {\n const headers = new Headers();\n for (const [name, value] of pipelineHeaders) {\n headers.append(name, value);\n }\n\n return headers;\n}\n\nfunction buildPipelineHeaders(httpResponse: Response): PipelineHeaders {\n const responseHeaders = createHttpHeaders();\n for (const [name, value] of httpResponse.headers) {\n responseHeaders.set(name, value);\n }\n\n return responseHeaders;\n}\n\ninterface BuildRequestBodyResponse {\n body:\n | string\n | Blob\n | ReadableStream<Uint8Array>\n | ArrayBuffer\n | ArrayBufferView\n | FormData\n | null\n | undefined;\n streaming: boolean;\n}\n\nfunction buildRequestBody(request: PipelineRequest): BuildRequestBodyResponse {\n const body = typeof request.body === \"function\" ? request.body() : request.body;\n if (isNodeReadableStream(body)) {\n throw new Error(\"Node streams are not supported in browser environment.\");\n }\n\n return isWebReadableStream(body)\n ? { streaming: true, body: buildBodyStream(body, { onProgress: request.onUploadProgress }) }\n : { streaming: false, body };\n}\n\n/**\n * Reads the request/response original stream and stream it through a new\n * ReadableStream, this is done to be able to report progress in a way that\n * all modern browsers support. TransformStreams would be an alternative,\n * however they are not yet supported by all browsers i.e Firefox\n */\nfunction buildBodyStream(\n readableStream: ReadableStream<Uint8Array>,\n options: { onProgress?: (progress: TransferProgressEvent) => void; onEnd?: () => void } = {},\n): ReadableStream<Uint8Array> {\n let loadedBytes = 0;\n const { onProgress, onEnd } = options;\n\n // If the current browser supports pipeThrough we use a TransformStream\n // to report progress\n if (isTransformStreamSupported(readableStream)) {\n return readableStream.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n if (chunk === null) {\n controller.terminate();\n return;\n }\n\n controller.enqueue(chunk);\n loadedBytes += chunk.length;\n if (onProgress) {\n onProgress({ loadedBytes });\n }\n },\n flush() {\n onEnd?.();\n },\n }),\n );\n } else {\n // If we can't use transform streams, wrap the original stream in a new readable stream\n // and use pull to enqueue each chunk and report progress.\n const reader = readableStream.getReader();\n return new ReadableStream({\n async pull(controller) {\n const { done, value } = await reader.read();\n // When no more data needs to be consumed, break the reading\n if (done || !value) {\n onEnd?.();\n // Close the stream\n controller.close();\n reader.releaseLock();\n return;\n }\n\n loadedBytes += value?.length ?? 0;\n\n // Enqueue the next data chunk into our target stream\n controller.enqueue(value);\n\n if (onProgress) {\n onProgress({ loadedBytes });\n }\n },\n cancel(reason?: string) {\n onEnd?.();\n return reader.cancel(reason);\n },\n });\n }\n}\n\n/**\n * Create a new HttpClient instance for the browser environment.\n * @internal\n */\nexport function createFetchHttpClient(): HttpClient {\n return new FetchHttpClient();\n}\n\nfunction isTransformStreamSupported(readableStream: ReadableStream): boolean {\n return readableStream.pipeThrough !== undefined && self.TransformStream !== undefined;\n}\n"]}
@@ -1,9 +0,0 @@
1
- import type { HttpClient, RequestBodyType } from "./interfaces.js";
2
- /** @internal */
3
- export declare function getBodyLength(body: RequestBodyType): number | null;
4
- /**
5
- * Create a new HttpClient instance for the NodeJS environment.
6
- * @internal
7
- */
8
- export declare function createNodeHttpClient(): HttpClient;
9
- //# sourceMappingURL=nodeHttpClient.d.ts.map
@@ -1,353 +0,0 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT License.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.getBodyLength = getBodyLength;
6
- exports.createNodeHttpClient = createNodeHttpClient;
7
- const tslib_1 = require("tslib");
8
- const http = tslib_1.__importStar(require("node:http"));
9
- const https = tslib_1.__importStar(require("node:https"));
10
- const zlib = tslib_1.__importStar(require("node:zlib"));
11
- const node_stream_1 = require("node:stream");
12
- const abort_controller_1 = require("@azure/abort-controller");
13
- const httpHeaders_js_1 = require("./httpHeaders.js");
14
- const restError_js_1 = require("./restError.js");
15
- const log_js_1 = require("./log.js");
16
- const sanitizer_js_1 = require("./util/sanitizer.js");
17
- const DEFAULT_TLS_SETTINGS = {};
18
- function isReadableStream(body) {
19
- return body && typeof body.pipe === "function";
20
- }
21
- function isStreamComplete(stream) {
22
- if (stream.readable === false) {
23
- return Promise.resolve();
24
- }
25
- return new Promise((resolve) => {
26
- const handler = () => {
27
- resolve();
28
- stream.removeListener("close", handler);
29
- stream.removeListener("end", handler);
30
- stream.removeListener("error", handler);
31
- };
32
- stream.on("close", handler);
33
- stream.on("end", handler);
34
- stream.on("error", handler);
35
- });
36
- }
37
- function isArrayBuffer(body) {
38
- return body && typeof body.byteLength === "number";
39
- }
40
- class ReportTransform extends node_stream_1.Transform {
41
- // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
42
- _transform(chunk, _encoding, callback) {
43
- this.push(chunk);
44
- this.loadedBytes += chunk.length;
45
- try {
46
- this.progressCallback({ loadedBytes: this.loadedBytes });
47
- callback();
48
- }
49
- catch (e) {
50
- callback(e);
51
- }
52
- }
53
- constructor(progressCallback) {
54
- super();
55
- this.loadedBytes = 0;
56
- this.progressCallback = progressCallback;
57
- }
58
- }
59
- /**
60
- * A HttpClient implementation that uses Node's "https" module to send HTTPS requests.
61
- * @internal
62
- */
63
- class NodeHttpClient {
64
- constructor() {
65
- this.cachedHttpsAgents = new WeakMap();
66
- }
67
- /**
68
- * Makes a request over an underlying transport layer and returns the response.
69
- * @param request - The request to be made.
70
- */
71
- async sendRequest(request) {
72
- var _a, _b, _c;
73
- const abortController = new AbortController();
74
- let abortListener;
75
- if (request.abortSignal) {
76
- if (request.abortSignal.aborted) {
77
- throw new abort_controller_1.AbortError("The operation was aborted. Request has already been canceled.");
78
- }
79
- abortListener = (event) => {
80
- if (event.type === "abort") {
81
- abortController.abort();
82
- }
83
- };
84
- request.abortSignal.addEventListener("abort", abortListener);
85
- }
86
- let timeoutId;
87
- if (request.timeout > 0) {
88
- timeoutId = setTimeout(() => {
89
- const sanitizer = new sanitizer_js_1.Sanitizer();
90
- log_js_1.logger.info(`request to '${sanitizer.sanitizeUrl(request.url)}' timed out. canceling...`);
91
- abortController.abort();
92
- }, request.timeout);
93
- }
94
- const acceptEncoding = request.headers.get("Accept-Encoding");
95
- const shouldDecompress = (acceptEncoding === null || acceptEncoding === void 0 ? void 0 : acceptEncoding.includes("gzip")) || (acceptEncoding === null || acceptEncoding === void 0 ? void 0 : acceptEncoding.includes("deflate"));
96
- let body = typeof request.body === "function" ? request.body() : request.body;
97
- if (body && !request.headers.has("Content-Length")) {
98
- const bodyLength = getBodyLength(body);
99
- if (bodyLength !== null) {
100
- request.headers.set("Content-Length", bodyLength);
101
- }
102
- }
103
- let responseStream;
104
- try {
105
- if (body && request.onUploadProgress) {
106
- const onUploadProgress = request.onUploadProgress;
107
- const uploadReportStream = new ReportTransform(onUploadProgress);
108
- uploadReportStream.on("error", (e) => {
109
- log_js_1.logger.error("Error in upload progress", e);
110
- });
111
- if (isReadableStream(body)) {
112
- body.pipe(uploadReportStream);
113
- }
114
- else {
115
- uploadReportStream.end(body);
116
- }
117
- body = uploadReportStream;
118
- }
119
- const res = await this.makeRequest(request, abortController, body);
120
- if (timeoutId !== undefined) {
121
- clearTimeout(timeoutId);
122
- }
123
- const headers = getResponseHeaders(res);
124
- const status = (_a = res.statusCode) !== null && _a !== void 0 ? _a : 0;
125
- const response = {
126
- status,
127
- headers,
128
- request,
129
- };
130
- // Responses to HEAD must not have a body.
131
- // If they do return a body, that body must be ignored.
132
- if (request.method === "HEAD") {
133
- // call resume() and not destroy() to avoid closing the socket
134
- // and losing keep alive
135
- res.resume();
136
- return response;
137
- }
138
- responseStream = shouldDecompress ? getDecodedResponseStream(res, headers) : res;
139
- const onDownloadProgress = request.onDownloadProgress;
140
- if (onDownloadProgress) {
141
- const downloadReportStream = new ReportTransform(onDownloadProgress);
142
- downloadReportStream.on("error", (e) => {
143
- log_js_1.logger.error("Error in download progress", e);
144
- });
145
- responseStream.pipe(downloadReportStream);
146
- responseStream = downloadReportStream;
147
- }
148
- if (
149
- // Value of POSITIVE_INFINITY in streamResponseStatusCodes is considered as any status code
150
- ((_b = request.streamResponseStatusCodes) === null || _b === void 0 ? void 0 : _b.has(Number.POSITIVE_INFINITY)) ||
151
- ((_c = request.streamResponseStatusCodes) === null || _c === void 0 ? void 0 : _c.has(response.status))) {
152
- response.readableStreamBody = responseStream;
153
- }
154
- else {
155
- response.bodyAsText = await streamToText(responseStream);
156
- }
157
- return response;
158
- }
159
- finally {
160
- // clean up event listener
161
- if (request.abortSignal && abortListener) {
162
- let uploadStreamDone = Promise.resolve();
163
- if (isReadableStream(body)) {
164
- uploadStreamDone = isStreamComplete(body);
165
- }
166
- let downloadStreamDone = Promise.resolve();
167
- if (isReadableStream(responseStream)) {
168
- downloadStreamDone = isStreamComplete(responseStream);
169
- }
170
- Promise.all([uploadStreamDone, downloadStreamDone])
171
- .then(() => {
172
- var _a;
173
- // eslint-disable-next-line promise/always-return
174
- if (abortListener) {
175
- (_a = request.abortSignal) === null || _a === void 0 ? void 0 : _a.removeEventListener("abort", abortListener);
176
- }
177
- })
178
- .catch((e) => {
179
- log_js_1.logger.warning("Error when cleaning up abortListener on httpRequest", e);
180
- });
181
- }
182
- }
183
- }
184
- makeRequest(request, abortController, body) {
185
- var _a;
186
- const url = new URL(request.url);
187
- const isInsecure = url.protocol !== "https:";
188
- if (isInsecure && !request.allowInsecureConnection) {
189
- throw new Error(`Cannot connect to ${request.url} while allowInsecureConnection is false.`);
190
- }
191
- const agent = (_a = request.agent) !== null && _a !== void 0 ? _a : this.getOrCreateAgent(request, isInsecure);
192
- const options = {
193
- agent,
194
- hostname: url.hostname,
195
- path: `${url.pathname}${url.search}`,
196
- port: url.port,
197
- method: request.method,
198
- headers: request.headers.toJSON({ preserveCase: true }),
199
- };
200
- return new Promise((resolve, reject) => {
201
- const req = isInsecure ? http.request(options, resolve) : https.request(options, resolve);
202
- req.once("error", (err) => {
203
- var _a;
204
- reject(new restError_js_1.RestError(err.message, { code: (_a = err.code) !== null && _a !== void 0 ? _a : restError_js_1.RestError.REQUEST_SEND_ERROR, request }));
205
- });
206
- abortController.signal.addEventListener("abort", () => {
207
- const abortError = new abort_controller_1.AbortError("The operation was aborted. Rejecting from abort signal callback while making request.");
208
- req.destroy(abortError);
209
- reject(abortError);
210
- });
211
- if (body && isReadableStream(body)) {
212
- body.pipe(req);
213
- }
214
- else if (body) {
215
- if (typeof body === "string" || Buffer.isBuffer(body)) {
216
- req.end(body);
217
- }
218
- else if (isArrayBuffer(body)) {
219
- req.end(ArrayBuffer.isView(body) ? Buffer.from(body.buffer) : Buffer.from(body));
220
- }
221
- else {
222
- log_js_1.logger.error("Unrecognized body type", body);
223
- reject(new restError_js_1.RestError("Unrecognized body type"));
224
- }
225
- }
226
- else {
227
- // streams don't like "undefined" being passed as data
228
- req.end();
229
- }
230
- });
231
- }
232
- getOrCreateAgent(request, isInsecure) {
233
- var _a;
234
- const disableKeepAlive = request.disableKeepAlive;
235
- // Handle Insecure requests first
236
- if (isInsecure) {
237
- if (disableKeepAlive) {
238
- // keepAlive:false is the default so we don't need a custom Agent
239
- return http.globalAgent;
240
- }
241
- if (!this.cachedHttpAgent) {
242
- // If there is no cached agent create a new one and cache it.
243
- this.cachedHttpAgent = new http.Agent({ keepAlive: true });
244
- }
245
- return this.cachedHttpAgent;
246
- }
247
- else {
248
- if (disableKeepAlive && !request.tlsSettings) {
249
- // When there are no tlsSettings and keepAlive is false
250
- // we don't need a custom agent
251
- return https.globalAgent;
252
- }
253
- // We use the tlsSettings to index cached clients
254
- const tlsSettings = (_a = request.tlsSettings) !== null && _a !== void 0 ? _a : DEFAULT_TLS_SETTINGS;
255
- // Get the cached agent or create a new one with the
256
- // provided values for keepAlive and tlsSettings
257
- let agent = this.cachedHttpsAgents.get(tlsSettings);
258
- if (agent && agent.options.keepAlive === !disableKeepAlive) {
259
- return agent;
260
- }
261
- log_js_1.logger.info("No cached TLS Agent exist, creating a new Agent");
262
- agent = new https.Agent(Object.assign({
263
- // keepAlive is true if disableKeepAlive is false.
264
- keepAlive: !disableKeepAlive }, tlsSettings));
265
- this.cachedHttpsAgents.set(tlsSettings, agent);
266
- return agent;
267
- }
268
- }
269
- }
270
- function getResponseHeaders(res) {
271
- const headers = (0, httpHeaders_js_1.createHttpHeaders)();
272
- for (const header of Object.keys(res.headers)) {
273
- const value = res.headers[header];
274
- if (Array.isArray(value)) {
275
- if (value.length > 0) {
276
- headers.set(header, value[0]);
277
- }
278
- }
279
- else if (value) {
280
- headers.set(header, value);
281
- }
282
- }
283
- return headers;
284
- }
285
- function getDecodedResponseStream(stream, headers) {
286
- const contentEncoding = headers.get("Content-Encoding");
287
- if (contentEncoding === "gzip") {
288
- const unzip = zlib.createGunzip();
289
- stream.pipe(unzip);
290
- return unzip;
291
- }
292
- else if (contentEncoding === "deflate") {
293
- const inflate = zlib.createInflate();
294
- stream.pipe(inflate);
295
- return inflate;
296
- }
297
- return stream;
298
- }
299
- function streamToText(stream) {
300
- return new Promise((resolve, reject) => {
301
- const buffer = [];
302
- stream.on("data", (chunk) => {
303
- if (Buffer.isBuffer(chunk)) {
304
- buffer.push(chunk);
305
- }
306
- else {
307
- buffer.push(Buffer.from(chunk));
308
- }
309
- });
310
- stream.on("end", () => {
311
- resolve(Buffer.concat(buffer).toString("utf8"));
312
- });
313
- stream.on("error", (e) => {
314
- if (e && (e === null || e === void 0 ? void 0 : e.name) === "AbortError") {
315
- reject(e);
316
- }
317
- else {
318
- reject(new restError_js_1.RestError(`Error reading response as text: ${e.message}`, {
319
- code: restError_js_1.RestError.PARSE_ERROR,
320
- }));
321
- }
322
- });
323
- });
324
- }
325
- /** @internal */
326
- function getBodyLength(body) {
327
- if (!body) {
328
- return 0;
329
- }
330
- else if (Buffer.isBuffer(body)) {
331
- return body.length;
332
- }
333
- else if (isReadableStream(body)) {
334
- return null;
335
- }
336
- else if (isArrayBuffer(body)) {
337
- return body.byteLength;
338
- }
339
- else if (typeof body === "string") {
340
- return Buffer.from(body).length;
341
- }
342
- else {
343
- return null;
344
- }
345
- }
346
- /**
347
- * Create a new HttpClient instance for the NodeJS environment.
348
- * @internal
349
- */
350
- function createNodeHttpClient() {
351
- return new NodeHttpClient();
352
- }
353
- //# sourceMappingURL=nodeHttpClient.js.map