@typespec/ts-http-runtime 0.3.5-alpha.20260311.2 → 0.3.6

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 (586) hide show
  1. package/dist/browser/client/clientHelpers.js +1 -1
  2. package/dist/browser/client/clientHelpers.js.map +1 -1
  3. package/dist/browser/client/common.d.ts +3 -2
  4. package/dist/browser/client/common.js.map +1 -1
  5. package/dist/browser/client/getClient.js +1 -1
  6. package/dist/browser/client/getClient.js.map +1 -1
  7. package/dist/browser/client/multipart.js +1 -1
  8. package/dist/browser/client/multipart.js.map +1 -1
  9. package/dist/browser/client/restError.js +5 -4
  10. package/dist/browser/client/restError.js.map +1 -1
  11. package/dist/browser/client/sendRequest.js +25 -14
  12. package/dist/browser/client/sendRequest.js.map +1 -1
  13. package/dist/browser/client/urlHelpers.js +9 -3
  14. package/dist/browser/client/urlHelpers.js.map +1 -1
  15. package/dist/browser/constants.js +1 -1
  16. package/dist/browser/constants.js.map +1 -1
  17. package/dist/browser/createPipelineFromOptions.d.ts +1 -1
  18. package/dist/browser/createPipelineFromOptions.js +2 -21
  19. package/dist/browser/createPipelineFromOptions.js.map +1 -1
  20. package/dist/browser/{defaultHttpClient.d.ts → defaultHttpClient-browser.d.mts} +1 -1
  21. package/dist/browser/{defaultHttpClient.js → defaultHttpClient-browser.mjs} +1 -1
  22. package/dist/browser/defaultHttpClient-browser.mjs.map +1 -0
  23. package/dist/browser/encoding.d.ts +13 -0
  24. package/dist/browser/encoding.js +19 -0
  25. package/dist/browser/encoding.js.map +1 -0
  26. package/dist/{esm/util/checkEnvironment.d.ts → browser/env-browser.d.mts} +21 -1
  27. package/dist/{esm/util/checkEnvironment.js → browser/env-browser.mjs} +26 -12
  28. package/dist/browser/env-browser.mjs.map +1 -0
  29. package/dist/browser/fetchHttpClient.d.ts +5 -0
  30. package/dist/browser/fetchHttpClient.js.map +1 -1
  31. package/dist/browser/formData-web.d.mts +9 -0
  32. package/dist/browser/formData-web.mjs +12 -0
  33. package/dist/browser/formData-web.mjs.map +1 -0
  34. package/dist/browser/httpHeaders.js +11 -1
  35. package/dist/browser/httpHeaders.js.map +1 -1
  36. package/dist/browser/index.d.ts +3 -14
  37. package/dist/browser/index.js +2 -2
  38. package/dist/browser/index.js.map +1 -1
  39. package/dist/browser/interfaces.d.ts +15 -14
  40. package/dist/browser/interfaces.js.map +1 -1
  41. package/dist/browser/logger/debug.js +3 -2
  42. package/dist/browser/logger/debug.js.map +1 -1
  43. package/dist/{react-native/logger/log.d.ts → browser/logger/log-web.d.mts} +1 -1
  44. package/dist/browser/logger/{log.js → log-web.mjs} +1 -1
  45. package/dist/browser/logger/log-web.mjs.map +1 -0
  46. package/dist/browser/logger/logger.js +2 -2
  47. package/dist/browser/logger/logger.js.map +1 -1
  48. package/dist/browser/pipelineRequest.js +1 -1
  49. package/dist/browser/pipelineRequest.js.map +1 -1
  50. package/dist/browser/policies/auth/basicAuthenticationPolicy.js +1 -1
  51. package/dist/browser/policies/auth/basicAuthenticationPolicy.js.map +1 -1
  52. package/dist/browser/policies/auth/checkInsecureConnection.js +3 -2
  53. package/dist/browser/policies/auth/checkInsecureConnection.js.map +1 -1
  54. package/dist/browser/policies/{decompressResponsePolicy.d.ts → decompressResponsePolicy-web.d.mts} +1 -1
  55. package/dist/browser/policies/{decompressResponsePolicy.js → decompressResponsePolicy-web.mjs} +1 -1
  56. package/dist/browser/policies/decompressResponsePolicy-web.mjs.map +1 -0
  57. package/dist/browser/policies/formDataPolicy.js +5 -12
  58. package/dist/browser/policies/formDataPolicy.js.map +1 -1
  59. package/dist/browser/policies/internal.d.ts +2 -2
  60. package/dist/browser/policies/internal.js +2 -2
  61. package/dist/browser/policies/internal.js.map +1 -1
  62. package/dist/browser/policies/multipartPolicy.js +7 -3
  63. package/dist/browser/policies/multipartPolicy.js.map +1 -1
  64. package/dist/browser/policies/platformPolicies-web.d.mts +10 -0
  65. package/dist/browser/policies/platformPolicies-web.mjs +12 -0
  66. package/dist/browser/policies/platformPolicies-web.mjs.map +1 -0
  67. package/dist/browser/policies/platformPolicies.d.ts +25 -0
  68. package/dist/browser/policies/platformPolicies.js +30 -0
  69. package/dist/browser/policies/platformPolicies.js.map +1 -0
  70. package/dist/browser/policies/proxyPolicy-web.d.mts +2 -0
  71. package/dist/{react-native/policies/proxyPolicy.js → browser/policies/proxyPolicy-web.mjs} +1 -1
  72. package/dist/browser/policies/proxyPolicy-web.mjs.map +1 -0
  73. package/dist/browser/policies/retryPolicy.js +4 -3
  74. package/dist/browser/policies/retryPolicy.js.map +1 -1
  75. package/dist/browser/restError.js +1 -1
  76. package/dist/browser/restError.js.map +1 -1
  77. package/dist/browser/types-browser.d.mts +19 -0
  78. package/dist/browser/{util/concat.js → types-browser.mjs} +2 -2
  79. package/dist/browser/types-browser.mjs.map +1 -0
  80. package/dist/browser/util/bytesEncoding-web.d.mts +2 -0
  81. package/dist/{react-native/util/bytesEncoding.js → browser/util/bytesEncoding-web.mjs} +1 -1
  82. package/dist/browser/util/bytesEncoding-web.mjs.map +1 -0
  83. package/dist/browser/util/bytesEncoding.common.d.ts +4 -4
  84. package/dist/browser/util/bytesEncoding.common.js +3 -4
  85. package/dist/browser/util/bytesEncoding.common.js.map +1 -1
  86. package/dist/browser/util/concat-browser.d.mts +16 -0
  87. package/dist/{esm/util/concat.common.js → browser/util/concat-browser.mjs} +4 -11
  88. package/dist/browser/util/concat-browser.mjs.map +1 -0
  89. package/dist/browser/util/inspect-web.d.mts +2 -0
  90. package/dist/{react-native/util/inspect.js → browser/util/inspect-web.mjs} +1 -1
  91. package/dist/browser/util/inspect-web.mjs.map +1 -0
  92. package/dist/browser/util/internal.d.ts +4 -4
  93. package/dist/browser/util/internal.js +4 -4
  94. package/dist/browser/util/internal.js.map +1 -1
  95. package/dist/browser/util/sanitizer.js +3 -3
  96. package/dist/browser/util/sanitizer.js.map +1 -1
  97. package/dist/browser/util/sha256-web.d.mts +2 -0
  98. package/dist/{react-native/util/sha256.js → browser/util/sha256-web.mjs} +1 -1
  99. package/dist/browser/util/sha256-web.mjs.map +1 -0
  100. package/dist/browser/util/sha256.common.js +1 -1
  101. package/dist/browser/util/sha256.common.js.map +1 -1
  102. package/dist/browser/util/typeGuards-browser.d.mts +14 -0
  103. package/dist/browser/util/typeGuards-browser.mjs +26 -0
  104. package/dist/browser/util/typeGuards-browser.mjs.map +1 -0
  105. package/dist/browser/util/typeGuards.d.ts +5 -4
  106. package/dist/browser/util/typeGuards.js +3 -9
  107. package/dist/browser/util/typeGuards.js.map +1 -1
  108. package/dist/browser/util/userAgent.d.ts +2 -0
  109. package/dist/browser/util/userAgent.js +2 -1
  110. package/dist/browser/util/userAgent.js.map +1 -1
  111. package/dist/browser/util/userAgentPlatform-browser.d.mts +37 -0
  112. package/dist/browser/util/{userAgentPlatform.js → userAgentPlatform-browser.mjs} +10 -11
  113. package/dist/browser/util/userAgentPlatform-browser.mjs.map +1 -0
  114. package/dist/browser/util/{uuidUtils.d.ts → uuidUtils-browser.d.mts} +1 -1
  115. package/dist/browser/util/{uuidUtils.js → uuidUtils-browser.mjs} +1 -1
  116. package/dist/browser/util/uuidUtils-browser.mjs.map +1 -0
  117. package/dist/browser/util/uuidUtils.common.js +1 -1
  118. package/dist/browser/util/uuidUtils.common.js.map +1 -1
  119. package/dist/commonjs/abort-controller/AbortError.js +1 -0
  120. package/dist/commonjs/abort-controller/AbortError.js.map +1 -1
  121. package/dist/commonjs/auth/credentials.js +1 -0
  122. package/dist/commonjs/auth/credentials.js.map +1 -1
  123. package/dist/commonjs/auth/oauth2Flows.js +1 -0
  124. package/dist/commonjs/auth/oauth2Flows.js.map +1 -1
  125. package/dist/commonjs/auth/schemes.js +1 -0
  126. package/dist/commonjs/auth/schemes.js.map +1 -1
  127. package/dist/commonjs/client/apiVersionPolicy.js +1 -0
  128. package/dist/commonjs/client/apiVersionPolicy.js.map +1 -1
  129. package/dist/commonjs/client/clientHelpers.js +3 -2
  130. package/dist/commonjs/client/clientHelpers.js.map +3 -3
  131. package/dist/commonjs/client/common.d.ts +3 -2
  132. package/dist/commonjs/client/common.js +1 -0
  133. package/dist/commonjs/client/common.js.map +2 -2
  134. package/dist/commonjs/client/getClient.js +4 -3
  135. package/dist/commonjs/client/getClient.js.map +3 -3
  136. package/dist/commonjs/client/multipart.js +1 -0
  137. package/dist/commonjs/client/multipart.js.map +3 -3
  138. package/dist/commonjs/client/operationOptionHelpers.js +1 -0
  139. package/dist/commonjs/client/operationOptionHelpers.js.map +1 -1
  140. package/dist/commonjs/client/restError.js +6 -4
  141. package/dist/commonjs/client/restError.js.map +3 -3
  142. package/dist/commonjs/client/sendRequest.js +39 -10
  143. package/dist/commonjs/client/sendRequest.js.map +3 -3
  144. package/dist/commonjs/client/urlHelpers.js +7 -3
  145. package/dist/commonjs/client/urlHelpers.js.map +3 -3
  146. package/dist/commonjs/constants.js +2 -1
  147. package/dist/commonjs/constants.js.map +2 -2
  148. package/dist/commonjs/createPipelineFromOptions.d.ts +1 -1
  149. package/dist/commonjs/createPipelineFromOptions.js +3 -19
  150. package/dist/commonjs/createPipelineFromOptions.js.map +3 -3
  151. package/dist/commonjs/defaultHttpClient.js +1 -0
  152. package/dist/commonjs/defaultHttpClient.js.map +1 -1
  153. package/dist/{browser/util/checkEnvironment.d.ts → commonjs/env.d.ts} +21 -1
  154. package/dist/commonjs/env.js +67 -0
  155. package/dist/commonjs/env.js.map +7 -0
  156. package/dist/commonjs/formData.d.ts +10 -0
  157. package/dist/commonjs/{logger/log.common.js → formData.js} +18 -18
  158. package/dist/commonjs/formData.js.map +7 -0
  159. package/dist/commonjs/httpHeaders.js +5 -1
  160. package/dist/commonjs/httpHeaders.js.map +3 -3
  161. package/dist/commonjs/index.d.ts +1 -12
  162. package/dist/commonjs/index.js +3 -2
  163. package/dist/commonjs/index.js.map +3 -3
  164. package/dist/commonjs/interfaces.d.ts +15 -14
  165. package/dist/commonjs/interfaces.js +1 -0
  166. package/dist/commonjs/interfaces.js.map +2 -2
  167. package/dist/commonjs/log.js +1 -0
  168. package/dist/commonjs/log.js.map +1 -1
  169. package/dist/commonjs/logger/debug.js +3 -1
  170. package/dist/commonjs/logger/debug.js.map +3 -3
  171. package/dist/commonjs/logger/internal.js +1 -0
  172. package/dist/commonjs/logger/internal.js.map +1 -1
  173. package/dist/commonjs/logger/log.js +1 -0
  174. package/dist/commonjs/logger/log.js.map +1 -1
  175. package/dist/commonjs/logger/logger.js +3 -1
  176. package/dist/commonjs/logger/logger.js.map +3 -3
  177. package/dist/commonjs/nodeHttpClient.js +4 -1
  178. package/dist/commonjs/nodeHttpClient.js.map +3 -3
  179. package/dist/commonjs/pipeline.js +1 -0
  180. package/dist/commonjs/pipeline.js.map +1 -1
  181. package/dist/commonjs/pipelineRequest.js +3 -2
  182. package/dist/commonjs/pipelineRequest.js.map +3 -3
  183. package/dist/commonjs/policies/agentPolicy.js +1 -0
  184. package/dist/commonjs/policies/agentPolicy.js.map +1 -1
  185. package/dist/commonjs/policies/auth/apiKeyAuthenticationPolicy.js +1 -0
  186. package/dist/commonjs/policies/auth/apiKeyAuthenticationPolicy.js.map +1 -1
  187. package/dist/commonjs/policies/auth/basicAuthenticationPolicy.js +1 -0
  188. package/dist/commonjs/policies/auth/basicAuthenticationPolicy.js.map +2 -2
  189. package/dist/commonjs/policies/auth/bearerAuthenticationPolicy.js +1 -0
  190. package/dist/commonjs/policies/auth/bearerAuthenticationPolicy.js.map +1 -1
  191. package/dist/commonjs/policies/auth/checkInsecureConnection.js +4 -2
  192. package/dist/commonjs/policies/auth/checkInsecureConnection.js.map +3 -3
  193. package/dist/commonjs/policies/auth/oauth2AuthenticationPolicy.js +1 -0
  194. package/dist/commonjs/policies/auth/oauth2AuthenticationPolicy.js.map +1 -1
  195. package/dist/commonjs/policies/decompressResponsePolicy.js +1 -0
  196. package/dist/commonjs/policies/decompressResponsePolicy.js.map +1 -1
  197. package/dist/commonjs/policies/defaultRetryPolicy.js +1 -0
  198. package/dist/commonjs/policies/defaultRetryPolicy.js.map +1 -1
  199. package/dist/commonjs/policies/exponentialRetryPolicy.js +1 -0
  200. package/dist/commonjs/policies/exponentialRetryPolicy.js.map +1 -1
  201. package/dist/commonjs/policies/formDataPolicy.js +5 -11
  202. package/dist/commonjs/policies/formDataPolicy.js.map +3 -3
  203. package/dist/commonjs/policies/internal.d.ts +1 -1
  204. package/dist/commonjs/policies/internal.js +8 -7
  205. package/dist/commonjs/policies/internal.js.map +3 -3
  206. package/dist/commonjs/policies/logPolicy.js +1 -0
  207. package/dist/commonjs/policies/logPolicy.js.map +1 -1
  208. package/dist/commonjs/policies/multipartPolicy.js +3 -2
  209. package/dist/commonjs/policies/multipartPolicy.js.map +3 -3
  210. package/dist/commonjs/policies/platformPolicies.d.ts +25 -0
  211. package/dist/commonjs/policies/platformPolicies.js +43 -0
  212. package/dist/commonjs/policies/platformPolicies.js.map +7 -0
  213. package/dist/commonjs/policies/proxyPolicy.js +3 -3
  214. package/dist/commonjs/policies/proxyPolicy.js.map +3 -3
  215. package/dist/commonjs/policies/redirectPolicy.js +1 -0
  216. package/dist/commonjs/policies/redirectPolicy.js.map +1 -1
  217. package/dist/commonjs/policies/retryPolicy.js +5 -3
  218. package/dist/commonjs/policies/retryPolicy.js.map +3 -3
  219. package/dist/commonjs/policies/systemErrorRetryPolicy.js +1 -0
  220. package/dist/commonjs/policies/systemErrorRetryPolicy.js.map +1 -1
  221. package/dist/commonjs/policies/throttlingRetryPolicy.js +1 -0
  222. package/dist/commonjs/policies/throttlingRetryPolicy.js.map +1 -1
  223. package/dist/commonjs/policies/tlsPolicy.js +1 -0
  224. package/dist/commonjs/policies/tlsPolicy.js.map +1 -1
  225. package/dist/commonjs/policies/userAgentPolicy.js +1 -0
  226. package/dist/commonjs/policies/userAgentPolicy.js.map +1 -1
  227. package/dist/commonjs/restError.js +1 -0
  228. package/dist/commonjs/restError.js.map +2 -2
  229. package/dist/commonjs/retryStrategies/exponentialRetryStrategy.js +1 -0
  230. package/dist/commonjs/retryStrategies/exponentialRetryStrategy.js.map +1 -1
  231. package/dist/commonjs/retryStrategies/retryStrategy.js +1 -0
  232. package/dist/commonjs/retryStrategies/retryStrategy.js.map +1 -1
  233. package/dist/commonjs/retryStrategies/throttlingRetryStrategy.js +1 -0
  234. package/dist/commonjs/retryStrategies/throttlingRetryStrategy.js.map +1 -1
  235. package/dist/commonjs/tsdoc-metadata.json +1 -1
  236. package/dist/commonjs/types.d.ts +19 -0
  237. package/dist/commonjs/types.js +16 -0
  238. package/dist/commonjs/types.js.map +7 -0
  239. package/dist/commonjs/util/bytesEncoding.js +1 -0
  240. package/dist/commonjs/util/bytesEncoding.js.map +1 -1
  241. package/dist/commonjs/util/concat.d.ts +1 -1
  242. package/dist/commonjs/util/concat.js +1 -0
  243. package/dist/commonjs/util/concat.js.map +3 -3
  244. package/dist/commonjs/util/delay.js +1 -0
  245. package/dist/commonjs/util/delay.js.map +1 -1
  246. package/dist/commonjs/util/error.js +1 -0
  247. package/dist/commonjs/util/error.js.map +1 -1
  248. package/dist/commonjs/util/helpers.js +1 -0
  249. package/dist/commonjs/util/helpers.js.map +1 -1
  250. package/dist/commonjs/util/inspect.js +1 -0
  251. package/dist/commonjs/util/inspect.js.map +1 -1
  252. package/dist/commonjs/util/internal.d.ts +1 -1
  253. package/dist/commonjs/util/internal.js +11 -10
  254. package/dist/commonjs/util/internal.js.map +3 -3
  255. package/dist/commonjs/util/object.js +1 -0
  256. package/dist/commonjs/util/object.js.map +1 -1
  257. package/dist/commonjs/util/random.js +1 -0
  258. package/dist/commonjs/util/random.js.map +1 -1
  259. package/dist/commonjs/util/sanitizer.js +4 -3
  260. package/dist/commonjs/util/sanitizer.js.map +3 -3
  261. package/dist/commonjs/util/sha256.js +1 -0
  262. package/dist/commonjs/util/sha256.js.map +1 -1
  263. package/dist/commonjs/util/typeGuards-node.d.ts +13 -0
  264. package/dist/commonjs/util/{inspect.common.js → typeGuards-node.js} +15 -6
  265. package/dist/commonjs/util/typeGuards-node.js.map +7 -0
  266. package/dist/commonjs/util/typeGuards.d.ts +5 -4
  267. package/dist/commonjs/util/typeGuards.js +6 -12
  268. package/dist/commonjs/util/typeGuards.js.map +3 -3
  269. package/dist/commonjs/util/userAgent.d.ts +2 -0
  270. package/dist/commonjs/util/userAgent.js +8 -5
  271. package/dist/commonjs/util/userAgent.js.map +3 -3
  272. package/dist/commonjs/util/userAgentPlatform.d.ts +8 -0
  273. package/dist/commonjs/util/userAgentPlatform.js +7 -7
  274. package/dist/commonjs/util/userAgentPlatform.js.map +3 -3
  275. package/dist/commonjs/util/uuidUtils.js +1 -0
  276. package/dist/commonjs/util/uuidUtils.js.map +1 -1
  277. package/dist/esm/client/clientHelpers.js.map +1 -1
  278. package/dist/esm/client/common.d.ts +3 -2
  279. package/dist/esm/client/common.js.map +1 -1
  280. package/dist/esm/client/getClient.js +1 -1
  281. package/dist/esm/client/getClient.js.map +1 -1
  282. package/dist/esm/client/multipart.js.map +1 -1
  283. package/dist/esm/client/restError.js +5 -4
  284. package/dist/esm/client/restError.js.map +1 -1
  285. package/dist/esm/client/sendRequest.js +25 -14
  286. package/dist/esm/client/sendRequest.js.map +1 -1
  287. package/dist/esm/client/urlHelpers.js +9 -3
  288. package/dist/esm/client/urlHelpers.js.map +1 -1
  289. package/dist/esm/constants.js +1 -1
  290. package/dist/esm/constants.js.map +1 -1
  291. package/dist/esm/createPipelineFromOptions.d.ts +1 -1
  292. package/dist/esm/createPipelineFromOptions.js +2 -21
  293. package/dist/esm/createPipelineFromOptions.js.map +1 -1
  294. package/dist/{react-native/util/checkEnvironment.d.ts → esm/env.d.ts} +21 -1
  295. package/dist/esm/env.js +48 -0
  296. package/dist/esm/env.js.map +1 -0
  297. package/dist/esm/formData.d.ts +10 -0
  298. package/dist/esm/formData.js +26 -0
  299. package/dist/esm/formData.js.map +1 -0
  300. package/dist/esm/httpHeaders.js +11 -1
  301. package/dist/esm/httpHeaders.js.map +1 -1
  302. package/dist/esm/index.d.ts +1 -12
  303. package/dist/esm/index.js.map +1 -1
  304. package/dist/esm/interfaces.d.ts +15 -14
  305. package/dist/esm/interfaces.js.map +1 -1
  306. package/dist/esm/logger/debug.js +2 -1
  307. package/dist/esm/logger/debug.js.map +1 -1
  308. package/dist/esm/logger/logger.js +2 -2
  309. package/dist/esm/logger/logger.js.map +1 -1
  310. package/dist/esm/nodeHttpClient.js +3 -1
  311. package/dist/esm/nodeHttpClient.js.map +1 -1
  312. package/dist/esm/pipelineRequest.js.map +1 -1
  313. package/dist/esm/policies/auth/basicAuthenticationPolicy.js.map +1 -1
  314. package/dist/esm/policies/auth/checkInsecureConnection.js +3 -2
  315. package/dist/esm/policies/auth/checkInsecureConnection.js.map +1 -1
  316. package/dist/esm/policies/formDataPolicy.js +4 -11
  317. package/dist/esm/policies/formDataPolicy.js.map +1 -1
  318. package/dist/esm/policies/internal.d.ts +1 -1
  319. package/dist/esm/policies/internal.js +1 -1
  320. package/dist/esm/policies/internal.js.map +1 -1
  321. package/dist/esm/policies/multipartPolicy.js +4 -0
  322. package/dist/esm/policies/multipartPolicy.js.map +1 -1
  323. package/dist/esm/policies/platformPolicies.d.ts +25 -0
  324. package/dist/esm/policies/platformPolicies.js +30 -0
  325. package/dist/esm/policies/platformPolicies.js.map +1 -0
  326. package/dist/esm/policies/proxyPolicy.js +2 -3
  327. package/dist/esm/policies/proxyPolicy.js.map +1 -1
  328. package/dist/esm/policies/retryPolicy.js +4 -3
  329. package/dist/esm/policies/retryPolicy.js.map +1 -1
  330. package/dist/esm/restError.js.map +1 -1
  331. package/dist/esm/types.d.ts +19 -0
  332. package/dist/esm/types.js +4 -0
  333. package/dist/esm/types.js.map +1 -0
  334. package/dist/esm/util/concat.d.ts +1 -1
  335. package/dist/esm/util/concat.js.map +1 -1
  336. package/dist/esm/util/internal.d.ts +1 -1
  337. package/dist/esm/util/internal.js +1 -1
  338. package/dist/esm/util/internal.js.map +1 -1
  339. package/dist/esm/util/sanitizer.js +3 -3
  340. package/dist/esm/util/sanitizer.js.map +1 -1
  341. package/dist/esm/util/typeGuards-node.d.ts +13 -0
  342. package/dist/esm/util/typeGuards-node.js +20 -0
  343. package/dist/esm/util/typeGuards-node.js.map +1 -0
  344. package/dist/esm/util/typeGuards.d.ts +5 -4
  345. package/dist/esm/util/typeGuards.js +3 -9
  346. package/dist/esm/util/typeGuards.js.map +1 -1
  347. package/dist/esm/util/userAgent.d.ts +2 -0
  348. package/dist/esm/util/userAgent.js +1 -0
  349. package/dist/esm/util/userAgent.js.map +1 -1
  350. package/dist/esm/util/userAgentPlatform.d.ts +8 -0
  351. package/dist/esm/util/userAgentPlatform.js +6 -7
  352. package/dist/esm/util/userAgentPlatform.js.map +1 -1
  353. package/dist/react-native/client/clientHelpers.js +1 -1
  354. package/dist/react-native/client/clientHelpers.js.map +1 -1
  355. package/dist/react-native/client/common.d.ts +3 -2
  356. package/dist/react-native/client/common.js.map +1 -1
  357. package/dist/react-native/client/getClient.js +1 -1
  358. package/dist/react-native/client/getClient.js.map +1 -1
  359. package/dist/react-native/client/multipart.js +1 -1
  360. package/dist/react-native/client/multipart.js.map +1 -1
  361. package/dist/react-native/client/restError.js +5 -4
  362. package/dist/react-native/client/restError.js.map +1 -1
  363. package/dist/react-native/client/sendRequest.js +25 -14
  364. package/dist/react-native/client/sendRequest.js.map +1 -1
  365. package/dist/react-native/client/urlHelpers.js +9 -3
  366. package/dist/react-native/client/urlHelpers.js.map +1 -1
  367. package/dist/react-native/constants.js +1 -1
  368. package/dist/react-native/constants.js.map +1 -1
  369. package/dist/react-native/createPipelineFromOptions.d.ts +1 -1
  370. package/dist/react-native/createPipelineFromOptions.js +2 -21
  371. package/dist/react-native/createPipelineFromOptions.js.map +1 -1
  372. package/dist/react-native/{defaultHttpClient.d.ts → defaultHttpClient-react-native.d.mts} +1 -1
  373. package/dist/react-native/{defaultHttpClient.js → defaultHttpClient-react-native.mjs} +1 -1
  374. package/dist/react-native/defaultHttpClient-react-native.mjs.map +1 -0
  375. package/dist/react-native/encoding-react-native.d.mts +21 -0
  376. package/dist/react-native/encoding-react-native.mjs +25 -0
  377. package/dist/react-native/encoding-react-native.mjs.map +1 -0
  378. package/dist/{commonjs/util/checkEnvironment.d.ts → react-native/env-react-native.d.mts} +21 -1
  379. package/dist/react-native/env-react-native.mjs +50 -0
  380. package/dist/react-native/env-react-native.mjs.map +1 -0
  381. package/dist/react-native/formData-web.d.mts +9 -0
  382. package/dist/react-native/formData-web.mjs +12 -0
  383. package/dist/react-native/formData-web.mjs.map +1 -0
  384. package/dist/react-native/httpHeaders.js +11 -1
  385. package/dist/react-native/httpHeaders.js.map +1 -1
  386. package/dist/react-native/index.d.ts +3 -14
  387. package/dist/react-native/index.js +2 -2
  388. package/dist/react-native/index.js.map +1 -1
  389. package/dist/react-native/interfaces.d.ts +15 -14
  390. package/dist/react-native/interfaces.js.map +1 -1
  391. package/dist/react-native/logger/debug.js +3 -2
  392. package/dist/react-native/logger/debug.js.map +1 -1
  393. package/dist/{browser/logger/log.d.ts → react-native/logger/log-web.d.mts} +1 -1
  394. package/dist/react-native/logger/{log.js → log-web.mjs} +1 -1
  395. package/dist/react-native/logger/log-web.mjs.map +1 -0
  396. package/dist/react-native/logger/logger.js +2 -2
  397. package/dist/react-native/logger/logger.js.map +1 -1
  398. package/dist/react-native/pipelineRequest.js +1 -1
  399. package/dist/react-native/pipelineRequest.js.map +1 -1
  400. package/dist/react-native/policies/auth/basicAuthenticationPolicy.js +1 -1
  401. package/dist/react-native/policies/auth/basicAuthenticationPolicy.js.map +1 -1
  402. package/dist/react-native/policies/auth/checkInsecureConnection.js +3 -2
  403. package/dist/react-native/policies/auth/checkInsecureConnection.js.map +1 -1
  404. package/dist/react-native/policies/decompressResponsePolicy-web.d.mts +8 -0
  405. package/dist/react-native/policies/decompressResponsePolicy-web.mjs +11 -0
  406. package/dist/react-native/policies/decompressResponsePolicy-web.mjs.map +1 -0
  407. package/dist/react-native/policies/formDataPolicy.js +5 -12
  408. package/dist/react-native/policies/formDataPolicy.js.map +1 -1
  409. package/dist/react-native/policies/internal.d.ts +2 -2
  410. package/dist/react-native/policies/internal.js +2 -2
  411. package/dist/react-native/policies/internal.js.map +1 -1
  412. package/dist/react-native/policies/multipartPolicy.js +7 -3
  413. package/dist/react-native/policies/multipartPolicy.js.map +1 -1
  414. package/dist/react-native/policies/platformPolicies-web.d.mts +10 -0
  415. package/dist/react-native/policies/platformPolicies-web.mjs +12 -0
  416. package/dist/react-native/policies/platformPolicies-web.mjs.map +1 -0
  417. package/dist/react-native/policies/platformPolicies.d.ts +25 -0
  418. package/dist/react-native/policies/platformPolicies.js +30 -0
  419. package/dist/react-native/policies/platformPolicies.js.map +1 -0
  420. package/dist/react-native/policies/proxyPolicy-web.d.mts +2 -0
  421. package/dist/{browser/policies/proxyPolicy.js → react-native/policies/proxyPolicy-web.mjs} +1 -1
  422. package/dist/react-native/policies/proxyPolicy-web.mjs.map +1 -0
  423. package/dist/react-native/policies/retryPolicy.js +4 -3
  424. package/dist/react-native/policies/retryPolicy.js.map +1 -1
  425. package/dist/react-native/restError.js +1 -1
  426. package/dist/react-native/restError.js.map +1 -1
  427. package/dist/react-native/types-react-native.d.mts +19 -0
  428. package/dist/react-native/types-react-native.mjs +4 -0
  429. package/dist/react-native/types-react-native.mjs.map +1 -0
  430. package/dist/react-native/util/bytesEncoding-web.d.mts +2 -0
  431. package/dist/{browser/util/bytesEncoding.js → react-native/util/bytesEncoding-web.mjs} +1 -1
  432. package/dist/react-native/util/bytesEncoding-web.mjs.map +1 -0
  433. package/dist/react-native/util/bytesEncoding.common.d.ts +4 -4
  434. package/dist/react-native/util/bytesEncoding.common.js +3 -4
  435. package/dist/react-native/util/bytesEncoding.common.js.map +1 -1
  436. package/dist/react-native/util/concat-react-native.d.mts +42 -0
  437. package/dist/react-native/util/concat-react-native.mjs +51 -0
  438. package/dist/react-native/util/concat-react-native.mjs.map +1 -0
  439. package/dist/react-native/util/inspect-web.d.mts +2 -0
  440. package/dist/{browser/util/inspect.js → react-native/util/inspect-web.mjs} +1 -1
  441. package/dist/react-native/util/inspect-web.mjs.map +1 -0
  442. package/dist/react-native/util/internal.d.ts +4 -4
  443. package/dist/react-native/util/internal.js +4 -4
  444. package/dist/react-native/util/internal.js.map +1 -1
  445. package/dist/react-native/util/sanitizer.js +3 -3
  446. package/dist/react-native/util/sanitizer.js.map +1 -1
  447. package/dist/react-native/util/sha256-web.d.mts +2 -0
  448. package/dist/{browser/util/sha256.js → react-native/util/sha256-web.mjs} +1 -1
  449. package/dist/react-native/util/sha256-web.mjs.map +1 -0
  450. package/dist/react-native/util/sha256.common.js +1 -1
  451. package/dist/react-native/util/sha256.common.js.map +1 -1
  452. package/dist/react-native/util/typeGuards-react-native.d.mts +16 -0
  453. package/dist/react-native/util/typeGuards-react-native.mjs +34 -0
  454. package/dist/react-native/util/typeGuards-react-native.mjs.map +1 -0
  455. package/dist/react-native/util/typeGuards.d.ts +5 -4
  456. package/dist/react-native/util/typeGuards.js +3 -9
  457. package/dist/react-native/util/typeGuards.js.map +1 -1
  458. package/dist/react-native/util/userAgent.d.ts +2 -0
  459. package/dist/react-native/util/userAgent.js +2 -1
  460. package/dist/react-native/util/userAgent.js.map +1 -1
  461. package/dist/react-native/util/{userAgentPlatform.d.ts → userAgentPlatform-react-native.d.mts} +1 -1
  462. package/dist/react-native/util/{userAgentPlatform.js → userAgentPlatform-react-native.mjs} +1 -1
  463. package/dist/react-native/util/userAgentPlatform-react-native.mjs.map +1 -0
  464. package/dist/react-native/util/uuidUtils-react-native.d.mts +2 -0
  465. package/dist/react-native/util/{uuidUtils.js → uuidUtils-react-native.mjs} +1 -1
  466. package/dist/react-native/util/uuidUtils-react-native.mjs.map +1 -0
  467. package/dist/react-native/util/uuidUtils.common.js +1 -1
  468. package/dist/react-native/util/uuidUtils.common.js.map +1 -1
  469. package/package.json +102 -14
  470. package/dist/browser/defaultHttpClient.js.map +0 -1
  471. package/dist/browser/logger/log.js.map +0 -1
  472. package/dist/browser/nodeHttpClient.d.ts +0 -9
  473. package/dist/browser/nodeHttpClient.js +0 -347
  474. package/dist/browser/nodeHttpClient.js.map +0 -1
  475. package/dist/browser/policies/decompressResponsePolicy.js.map +0 -1
  476. package/dist/browser/policies/proxyPolicy.d.ts +0 -2
  477. package/dist/browser/policies/proxyPolicy.js.map +0 -1
  478. package/dist/browser/util/bytesEncoding.d.ts +0 -2
  479. package/dist/browser/util/bytesEncoding.js.map +0 -1
  480. package/dist/browser/util/checkEnvironment.js +0 -41
  481. package/dist/browser/util/checkEnvironment.js.map +0 -1
  482. package/dist/browser/util/concat.common.d.ts +0 -17
  483. package/dist/browser/util/concat.common.js +0 -58
  484. package/dist/browser/util/concat.common.js.map +0 -1
  485. package/dist/browser/util/concat.d.ts +0 -2
  486. package/dist/browser/util/concat.js.map +0 -1
  487. package/dist/browser/util/inspect.d.ts +0 -2
  488. package/dist/browser/util/inspect.js.map +0 -1
  489. package/dist/browser/util/sha256.d.ts +0 -2
  490. package/dist/browser/util/sha256.js.map +0 -1
  491. package/dist/browser/util/userAgentPlatform.d.ts +0 -9
  492. package/dist/browser/util/userAgentPlatform.js.map +0 -1
  493. package/dist/browser/util/uuidUtils.js.map +0 -1
  494. package/dist/browser/xhrHttpClient.d.ts +0 -7
  495. package/dist/browser/xhrHttpClient.js +0 -174
  496. package/dist/browser/xhrHttpClient.js.map +0 -1
  497. package/dist/commonjs/fetchHttpClient.d.ts +0 -7
  498. package/dist/commonjs/fetchHttpClient.js +0 -237
  499. package/dist/commonjs/fetchHttpClient.js.map +0 -7
  500. package/dist/commonjs/logger/log.common.d.ts +0 -2
  501. package/dist/commonjs/logger/log.common.js.map +0 -7
  502. package/dist/commonjs/policies/proxyPolicy.common.d.ts +0 -19
  503. package/dist/commonjs/policies/proxyPolicy.common.js +0 -43
  504. package/dist/commonjs/policies/proxyPolicy.common.js.map +0 -7
  505. package/dist/commonjs/util/arrayBuffer.d.ts +0 -7
  506. package/dist/commonjs/util/arrayBuffer.js +0 -36
  507. package/dist/commonjs/util/arrayBuffer.js.map +0 -7
  508. package/dist/commonjs/util/bytesEncoding.common.d.ts +0 -61
  509. package/dist/commonjs/util/bytesEncoding.common.js +0 -105
  510. package/dist/commonjs/util/bytesEncoding.common.js.map +0 -7
  511. package/dist/commonjs/util/checkEnvironment.js +0 -45
  512. package/dist/commonjs/util/checkEnvironment.js.map +0 -7
  513. package/dist/commonjs/util/concat.common.d.ts +0 -17
  514. package/dist/commonjs/util/concat.common.js +0 -60
  515. package/dist/commonjs/util/concat.common.js.map +0 -7
  516. package/dist/commonjs/util/inspect.common.d.ts +0 -2
  517. package/dist/commonjs/util/inspect.common.js.map +0 -7
  518. package/dist/commonjs/util/sha256.common.d.ts +0 -14
  519. package/dist/commonjs/util/sha256.common.js +0 -69
  520. package/dist/commonjs/util/sha256.common.js.map +0 -7
  521. package/dist/commonjs/util/uuidUtils.common.d.ts +0 -13
  522. package/dist/commonjs/util/uuidUtils.common.js +0 -48
  523. package/dist/commonjs/util/uuidUtils.common.js.map +0 -7
  524. package/dist/commonjs/xhrHttpClient.d.ts +0 -7
  525. package/dist/commonjs/xhrHttpClient.js +0 -185
  526. package/dist/commonjs/xhrHttpClient.js.map +0 -7
  527. package/dist/esm/fetchHttpClient.d.ts +0 -7
  528. package/dist/esm/fetchHttpClient.js +0 -279
  529. package/dist/esm/fetchHttpClient.js.map +0 -1
  530. package/dist/esm/logger/log.common.d.ts +0 -2
  531. package/dist/esm/logger/log.common.js +0 -23
  532. package/dist/esm/logger/log.common.js.map +0 -1
  533. package/dist/esm/policies/proxyPolicy.common.d.ts +0 -19
  534. package/dist/esm/policies/proxyPolicy.common.js +0 -24
  535. package/dist/esm/policies/proxyPolicy.common.js.map +0 -1
  536. package/dist/esm/util/arrayBuffer.d.ts +0 -7
  537. package/dist/esm/util/arrayBuffer.js +0 -20
  538. package/dist/esm/util/arrayBuffer.js.map +0 -1
  539. package/dist/esm/util/bytesEncoding.common.d.ts +0 -61
  540. package/dist/esm/util/bytesEncoding.common.js +0 -110
  541. package/dist/esm/util/bytesEncoding.common.js.map +0 -1
  542. package/dist/esm/util/checkEnvironment.js.map +0 -1
  543. package/dist/esm/util/concat.common.d.ts +0 -17
  544. package/dist/esm/util/concat.common.js.map +0 -1
  545. package/dist/esm/util/inspect.common.d.ts +0 -2
  546. package/dist/esm/util/inspect.common.js +0 -4
  547. package/dist/esm/util/inspect.common.js.map +0 -1
  548. package/dist/esm/util/sha256.common.d.ts +0 -14
  549. package/dist/esm/util/sha256.common.js +0 -49
  550. package/dist/esm/util/sha256.common.js.map +0 -1
  551. package/dist/esm/util/uuidUtils.common.d.ts +0 -13
  552. package/dist/esm/util/uuidUtils.common.js +0 -40
  553. package/dist/esm/util/uuidUtils.common.js.map +0 -1
  554. package/dist/esm/xhrHttpClient.d.ts +0 -7
  555. package/dist/esm/xhrHttpClient.js +0 -174
  556. package/dist/esm/xhrHttpClient.js.map +0 -1
  557. package/dist/react-native/defaultHttpClient.js.map +0 -1
  558. package/dist/react-native/fetchHttpClient.d.ts +0 -7
  559. package/dist/react-native/fetchHttpClient.js +0 -279
  560. package/dist/react-native/fetchHttpClient.js.map +0 -1
  561. package/dist/react-native/logger/log.js.map +0 -1
  562. package/dist/react-native/nodeHttpClient.d.ts +0 -9
  563. package/dist/react-native/nodeHttpClient.js +0 -347
  564. package/dist/react-native/nodeHttpClient.js.map +0 -1
  565. package/dist/react-native/policies/decompressResponsePolicy.d.ts +0 -11
  566. package/dist/react-native/policies/decompressResponsePolicy.js +0 -23
  567. package/dist/react-native/policies/decompressResponsePolicy.js.map +0 -1
  568. package/dist/react-native/policies/proxyPolicy.d.ts +0 -2
  569. package/dist/react-native/policies/proxyPolicy.js.map +0 -1
  570. package/dist/react-native/util/bytesEncoding.d.ts +0 -2
  571. package/dist/react-native/util/bytesEncoding.js.map +0 -1
  572. package/dist/react-native/util/checkEnvironment.js +0 -41
  573. package/dist/react-native/util/checkEnvironment.js.map +0 -1
  574. package/dist/react-native/util/concat.common.d.ts +0 -17
  575. package/dist/react-native/util/concat.common.js +0 -58
  576. package/dist/react-native/util/concat.common.js.map +0 -1
  577. package/dist/react-native/util/concat.d.ts +0 -2
  578. package/dist/react-native/util/concat.js +0 -4
  579. package/dist/react-native/util/concat.js.map +0 -1
  580. package/dist/react-native/util/inspect.d.ts +0 -2
  581. package/dist/react-native/util/inspect.js.map +0 -1
  582. package/dist/react-native/util/sha256.d.ts +0 -2
  583. package/dist/react-native/util/sha256.js.map +0 -1
  584. package/dist/react-native/util/userAgentPlatform.js.map +0 -1
  585. package/dist/react-native/util/uuidUtils.d.ts +0 -2
  586. package/dist/react-native/util/uuidUtils.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/core/ts-http-runtime/src/policies/auth/oauth2AuthenticationPolicy.ts"],
3
+ "sources": ["../../../../src/policies/auth/oauth2AuthenticationPolicy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OAuth2Flow } from \"../../auth/oauth2Flows.js\";\nimport type { OAuth2TokenCredential } from \"../../auth/credentials.js\";\nimport type { AuthScheme } from \"../../auth/schemes.js\";\nimport type { PipelineRequest, PipelineResponse, SendRequest } from \"../../interfaces.js\";\nimport type { PipelinePolicy } from \"../../pipeline.js\";\nimport { ensureSecureConnection } from \"./checkInsecureConnection.js\";\n\n/**\n * Name of the OAuth2 Authentication Policy\n */\nexport const oauth2AuthenticationPolicyName = \"oauth2AuthenticationPolicy\";\n\n/**\n * Options for configuring the OAuth2 authentication policy\n */\nexport interface OAuth2AuthenticationPolicyOptions<TFlows extends OAuth2Flow> {\n /**\n * The OAuth2TokenCredential implementation that can supply the bearer token.\n */\n credential: OAuth2TokenCredential<TFlows>;\n /**\n * Optional authentication schemes to use. If not provided, schemes from the request will be used.\n */\n authSchemes?: AuthScheme[];\n /**\n * Allows for connecting to HTTP endpoints instead of enforcing HTTPS.\n * CAUTION: Never use this option in production.\n */\n allowInsecureConnection?: boolean;\n}\n\n/**\n * Gets a pipeline policy that adds authorization header from OAuth2 schemes\n */\nexport function oauth2AuthenticationPolicy<TFlows extends OAuth2Flow>(\n options: OAuth2AuthenticationPolicyOptions<TFlows>,\n): PipelinePolicy {\n return {\n name: oauth2AuthenticationPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n // Ensure allowInsecureConnection is explicitly set when sending request to non-https URLs\n ensureSecureConnection(request, options);\n\n const scheme = (request.authSchemes ?? options.authSchemes)?.find((x) => x.kind === \"oauth2\");\n\n // Skip adding authentication header if no OAuth2 authentication scheme is found\n if (!scheme) {\n return next(request);\n }\n const token = await options.credential.getOAuth2Token(scheme.flows as TFlows[], {\n abortSignal: request.abortSignal,\n });\n request.headers.set(\"Authorization\", `Bearer ${token}`);\n return next(request);\n },\n };\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,qCAAuC;AAKhC,MAAM,iCAAiC;AAwBvC,SAAS,2BACd,SACgB;AAChB,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,YAAY,SAA0B,MAA8C;AAExF,iEAAuB,SAAS,OAAO;AAEvC,YAAM,UAAU,QAAQ,eAAe,QAAQ,cAAc,KAAK,CAAC,MAAM,EAAE,SAAS,QAAQ;AAG5F,UAAI,CAAC,QAAQ;AACX,eAAO,KAAK,OAAO;AAAA,MACrB;AACA,YAAM,QAAQ,MAAM,QAAQ,WAAW,eAAe,OAAO,OAAmB;AAAA,QAC9E,aAAa,QAAQ;AAAA,MACvB,CAAC;AACD,cAAQ,QAAQ,IAAI,iBAAiB,UAAU,KAAK,EAAE;AACtD,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,EACF;AACF;",
6
6
  "names": []
@@ -38,3 +38,4 @@ function decompressResponsePolicy() {
38
38
  decompressResponsePolicy,
39
39
  decompressResponsePolicyName
40
40
  });
41
+ //# sourceMappingURL=decompressResponsePolicy.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/core/ts-http-runtime/src/policies/decompressResponsePolicy.ts"],
3
+ "sources": ["../../../src/policies/decompressResponsePolicy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PipelineRequest, PipelineResponse, SendRequest } from \"../interfaces.js\";\nimport type { PipelinePolicy } from \"../pipeline.js\";\n\n/**\n * The programmatic identifier of the decompressResponsePolicy.\n */\nexport const decompressResponsePolicyName = \"decompressResponsePolicy\";\n\n/**\n * A policy to enable response decompression according to Accept-Encoding header\n * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding\n */\nexport function decompressResponsePolicy(): PipelinePolicy {\n return {\n name: decompressResponsePolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n // HEAD requests have no body\n if (request.method !== \"HEAD\") {\n request.headers.set(\"Accept-Encoding\", \"gzip,deflate\");\n }\n return next(request);\n },\n };\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,+BAA+B;AAMrC,SAAS,2BAA2C;AACzD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,YAAY,SAA0B,MAA8C;AAExF,UAAI,QAAQ,WAAW,QAAQ;AAC7B,gBAAQ,QAAQ,IAAI,mBAAmB,cAAc;AAAA,MACvD;AACA,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,EACF;AACF;",
6
6
  "names": []
@@ -39,3 +39,4 @@ function defaultRetryPolicy(options = {}) {
39
39
  defaultRetryPolicy,
40
40
  defaultRetryPolicyName
41
41
  });
42
+ //# sourceMappingURL=defaultRetryPolicy.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/core/ts-http-runtime/src/policies/defaultRetryPolicy.ts"],
3
+ "sources": ["../../../src/policies/defaultRetryPolicy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PipelineRetryOptions } from \"../interfaces.js\";\nimport type { PipelinePolicy } from \"../pipeline.js\";\nimport { exponentialRetryStrategy } from \"../retryStrategies/exponentialRetryStrategy.js\";\nimport { throttlingRetryStrategy } from \"../retryStrategies/throttlingRetryStrategy.js\";\nimport { retryPolicy } from \"./retryPolicy.js\";\nimport { DEFAULT_RETRY_POLICY_COUNT } from \"../constants.js\";\n\n/**\n * Name of the {@link defaultRetryPolicy}\n */\nexport const defaultRetryPolicyName = \"defaultRetryPolicy\";\n\n/**\n * Options that control how to retry failed requests.\n */\nexport interface DefaultRetryPolicyOptions extends PipelineRetryOptions {}\n\n/**\n * A policy that retries according to three strategies:\n * - When the server sends a 429 response with a Retry-After header.\n * - When there are errors in the underlying transport layer (e.g. DNS lookup failures).\n * - Or otherwise if the outgoing request fails, it will retry with an exponentially increasing delay.\n */\nexport function defaultRetryPolicy(options: DefaultRetryPolicyOptions = {}): PipelinePolicy {\n return {\n name: defaultRetryPolicyName,\n sendRequest: retryPolicy([throttlingRetryStrategy(), exponentialRetryStrategy(options)], {\n maxRetries: options.maxRetries ?? DEFAULT_RETRY_POLICY_COUNT,\n }).sendRequest,\n };\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,sCAAyC;AACzC,qCAAwC;AACxC,yBAA4B;AAC5B,uBAA2C;AAKpC,MAAM,yBAAyB;AAa/B,SAAS,mBAAmB,UAAqC,CAAC,GAAmB;AAC1F,SAAO;AAAA,IACL,MAAM;AAAA,IACN,iBAAa,gCAAY,KAAC,wDAAwB,OAAG,0DAAyB,OAAO,CAAC,GAAG;AAAA,MACvF,YAAY,QAAQ,cAAc;AAAA,IACpC,CAAC,EAAE;AAAA,EACL;AACF;",
6
6
  "names": []
@@ -43,3 +43,4 @@ function exponentialRetryPolicy(options = {}) {
43
43
  exponentialRetryPolicy,
44
44
  exponentialRetryPolicyName
45
45
  });
46
+ //# sourceMappingURL=exponentialRetryPolicy.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/core/ts-http-runtime/src/policies/exponentialRetryPolicy.ts"],
3
+ "sources": ["../../../src/policies/exponentialRetryPolicy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PipelinePolicy } from \"../pipeline.js\";\nimport { exponentialRetryStrategy } from \"../retryStrategies/exponentialRetryStrategy.js\";\nimport { retryPolicy } from \"./retryPolicy.js\";\nimport { DEFAULT_RETRY_POLICY_COUNT } from \"../constants.js\";\n\n/**\n * The programmatic identifier of the exponentialRetryPolicy.\n */\nexport const exponentialRetryPolicyName = \"exponentialRetryPolicy\";\n\n/**\n * Options that control how to retry failed requests.\n */\nexport interface ExponentialRetryPolicyOptions {\n /**\n * The maximum number of retry attempts. Defaults to 3.\n */\n maxRetries?: number;\n\n /**\n * The amount of delay in milliseconds between retry attempts. Defaults to 1000\n * (1 second.) The delay increases exponentially with each retry up to a maximum\n * specified by maxRetryDelayInMs.\n */\n retryDelayInMs?: number;\n\n /**\n * The maximum delay in milliseconds allowed before retrying an operation. Defaults\n * to 64000 (64 seconds).\n */\n maxRetryDelayInMs?: number;\n}\n\n/**\n * A policy that attempts to retry requests while introducing an exponentially increasing delay.\n * @param options - Options that configure retry logic.\n */\nexport function exponentialRetryPolicy(\n options: ExponentialRetryPolicyOptions = {},\n): PipelinePolicy {\n return retryPolicy(\n [\n exponentialRetryStrategy({\n ...options,\n ignoreSystemErrors: true,\n }),\n ],\n {\n maxRetries: options.maxRetries ?? DEFAULT_RETRY_POLICY_COUNT,\n },\n );\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,sCAAyC;AACzC,yBAA4B;AAC5B,uBAA2C;AAKpC,MAAM,6BAA6B;AA6BnC,SAAS,uBACd,UAAyC,CAAC,GAC1B;AAChB,aAAO;AAAA,IACL;AAAA,UACE,0DAAyB;AAAA,QACvB,GAAG;AAAA,QACH,oBAAoB;AAAA,MACtB,CAAC;AAAA,IACH;AAAA,IACA;AAAA,MACE,YAAY,QAAQ,cAAc;AAAA,IACpC;AAAA,EACF;AACF;",
6
6
  "names": []
@@ -22,23 +22,16 @@ __export(formDataPolicy_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(formDataPolicy_exports);
24
24
  var import_bytesEncoding = require("../util/bytesEncoding.js");
25
- var import_checkEnvironment = require("../util/checkEnvironment.js");
25
+ var import_formData = require("../formData.js");
26
26
  var import_httpHeaders = require("../httpHeaders.js");
27
27
  const formDataPolicyName = "formDataPolicy";
28
- function formDataToFormDataMap(formData) {
29
- const formDataMap = {};
30
- for (const [key, value] of formData.entries()) {
31
- formDataMap[key] ??= [];
32
- formDataMap[key].push(value);
33
- }
34
- return formDataMap;
35
- }
36
28
  function formDataPolicy() {
37
29
  return {
38
30
  name: formDataPolicyName,
39
31
  async sendRequest(request, next) {
40
- if (import_checkEnvironment.isNodeLike && typeof FormData !== "undefined" && request.body instanceof FormData) {
41
- request.formData = formDataToFormDataMap(request.body);
32
+ const converted = (0, import_formData.convertBodyToFormDataMap)(request.body);
33
+ if (converted) {
34
+ request.formData = converted;
42
35
  request.body = void 0;
43
36
  }
44
37
  if (request.formData) {
@@ -109,3 +102,4 @@ async function prepareFormData(formData, request) {
109
102
  formDataPolicy,
110
103
  formDataPolicyName
111
104
  });
105
+ //# sourceMappingURL=formDataPolicy.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/core/ts-http-runtime/src/policies/formDataPolicy.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { stringToUint8Array } from \"../util/bytesEncoding.js\";\nimport { isNodeLike } from \"../util/checkEnvironment.js\";\nimport { createHttpHeaders } from \"../httpHeaders.js\";\nimport type {\n BodyPart,\n FormDataMap,\n FormDataValue,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"../interfaces.js\";\nimport type { PipelinePolicy } from \"../pipeline.js\";\n\n/**\n * The programmatic identifier of the formDataPolicy.\n */\nexport const formDataPolicyName = \"formDataPolicy\";\n\nfunction formDataToFormDataMap(formData: FormData): FormDataMap {\n const formDataMap: FormDataMap = {};\n for (const [key, value] of formData.entries()) {\n formDataMap[key] ??= [];\n (formDataMap[key] as FormDataValue[]).push(value);\n }\n return formDataMap;\n}\n\n/**\n * A policy that encodes FormData on the request into the body.\n */\nexport function formDataPolicy(): PipelinePolicy {\n return {\n name: formDataPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n if (isNodeLike && typeof FormData !== \"undefined\" && request.body instanceof FormData) {\n request.formData = formDataToFormDataMap(request.body);\n request.body = undefined;\n }\n\n if (request.formData) {\n const contentType = request.headers.get(\"Content-Type\");\n if (contentType && contentType.indexOf(\"application/x-www-form-urlencoded\") !== -1) {\n request.body = wwwFormUrlEncode(request.formData);\n } else {\n await prepareFormData(request.formData, request);\n }\n\n request.formData = undefined;\n }\n return next(request);\n },\n };\n}\n\nfunction wwwFormUrlEncode(formData: FormDataMap): string {\n const urlSearchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(formData)) {\n if (Array.isArray(value)) {\n for (const subValue of value) {\n urlSearchParams.append(key, subValue.toString());\n }\n } else {\n urlSearchParams.append(key, value.toString());\n }\n }\n return urlSearchParams.toString();\n}\n\nasync function prepareFormData(formData: FormDataMap, request: PipelineRequest): Promise<void> {\n // validate content type (multipart/form-data)\n const contentType = request.headers.get(\"Content-Type\");\n if (contentType && !contentType.startsWith(\"multipart/form-data\")) {\n // content type is specified and is not multipart/form-data. Exit.\n return;\n }\n\n request.headers.set(\"Content-Type\", contentType ?? \"multipart/form-data\");\n\n // set body to MultipartRequestBody using content from FormDataMap\n const parts: BodyPart[] = [];\n\n for (const [fieldName, values] of Object.entries(formData)) {\n for (const value of Array.isArray(values) ? values : [values]) {\n if (typeof value === \"string\") {\n parts.push({\n headers: createHttpHeaders({\n \"Content-Disposition\": `form-data; name=\"${fieldName}\"`,\n }),\n body: stringToUint8Array(value, \"utf-8\"),\n });\n } else if (value === undefined || value === null || typeof value !== \"object\") {\n throw new Error(\n `Unexpected value for key ${fieldName}: ${value}. Value should be serialized to string first.`,\n );\n } else {\n // using || instead of ?? here since if value.name is empty we should create a file name\n const fileName = (value as File).name || \"blob\";\n const headers = createHttpHeaders();\n headers.set(\n \"Content-Disposition\",\n `form-data; name=\"${fieldName}\"; filename=\"${fileName}\"`,\n );\n\n // again, || is used since an empty value.type means the content type is unset\n headers.set(\"Content-Type\", value.type || \"application/octet-stream\");\n\n parts.push({\n headers,\n body: value,\n });\n }\n }\n }\n request.multipartBody = { parts };\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,2BAAmC;AACnC,8BAA2B;AAC3B,yBAAkC;AAc3B,MAAM,qBAAqB;AAElC,SAAS,sBAAsB,UAAiC;AAC9D,QAAM,cAA2B,CAAC;AAClC,aAAW,CAAC,KAAK,KAAK,KAAK,SAAS,QAAQ,GAAG;AAC7C,gBAAY,GAAG,MAAM,CAAC;AACtB,IAAC,YAAY,GAAG,EAAsB,KAAK,KAAK;AAAA,EAClD;AACA,SAAO;AACT;AAKO,SAAS,iBAAiC;AAC/C,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,YAAY,SAA0B,MAA8C;AACxF,UAAI,sCAAc,OAAO,aAAa,eAAe,QAAQ,gBAAgB,UAAU;AACrF,gBAAQ,WAAW,sBAAsB,QAAQ,IAAI;AACrD,gBAAQ,OAAO;AAAA,MACjB;AAEA,UAAI,QAAQ,UAAU;AACpB,cAAM,cAAc,QAAQ,QAAQ,IAAI,cAAc;AACtD,YAAI,eAAe,YAAY,QAAQ,mCAAmC,MAAM,IAAI;AAClF,kBAAQ,OAAO,iBAAiB,QAAQ,QAAQ;AAAA,QAClD,OAAO;AACL,gBAAM,gBAAgB,QAAQ,UAAU,OAAO;AAAA,QACjD;AAEA,gBAAQ,WAAW;AAAA,MACrB;AACA,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,UAA+B;AACvD,QAAM,kBAAkB,IAAI,gBAAgB;AAC5C,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,QAAQ,GAAG;AACnD,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,iBAAW,YAAY,OAAO;AAC5B,wBAAgB,OAAO,KAAK,SAAS,SAAS,CAAC;AAAA,MACjD;AAAA,IACF,OAAO;AACL,sBAAgB,OAAO,KAAK,MAAM,SAAS,CAAC;AAAA,IAC9C;AAAA,EACF;AACA,SAAO,gBAAgB,SAAS;AAClC;AAEA,eAAe,gBAAgB,UAAuB,SAAyC;AAE7F,QAAM,cAAc,QAAQ,QAAQ,IAAI,cAAc;AACtD,MAAI,eAAe,CAAC,YAAY,WAAW,qBAAqB,GAAG;AAEjE;AAAA,EACF;AAEA,UAAQ,QAAQ,IAAI,gBAAgB,eAAe,qBAAqB;AAGxE,QAAM,QAAoB,CAAC;AAE3B,aAAW,CAAC,WAAW,MAAM,KAAK,OAAO,QAAQ,QAAQ,GAAG;AAC1D,eAAW,SAAS,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG;AAC7D,UAAI,OAAO,UAAU,UAAU;AAC7B,cAAM,KAAK;AAAA,UACT,aAAS,sCAAkB;AAAA,YACzB,uBAAuB,oBAAoB,SAAS;AAAA,UACtD,CAAC;AAAA,UACD,UAAM,yCAAmB,OAAO,OAAO;AAAA,QACzC,CAAC;AAAA,MACH,WAAW,UAAU,UAAa,UAAU,QAAQ,OAAO,UAAU,UAAU;AAC7E,cAAM,IAAI;AAAA,UACR,4BAA4B,SAAS,KAAK,KAAK;AAAA,QACjD;AAAA,MACF,OAAO;AAEL,cAAM,WAAY,MAAe,QAAQ;AACzC,cAAM,cAAU,sCAAkB;AAClC,gBAAQ;AAAA,UACN;AAAA,UACA,oBAAoB,SAAS,gBAAgB,QAAQ;AAAA,QACvD;AAGA,gBAAQ,IAAI,gBAAgB,MAAM,QAAQ,0BAA0B;AAEpE,cAAM,KAAK;AAAA,UACT;AAAA,UACA,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACA,UAAQ,gBAAgB,EAAE,MAAM;AAClC;",
3
+ "sources": ["../../../src/policies/formDataPolicy.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { stringToUint8Array } from \"#platform/bytesEncoding\";\nimport { convertBodyToFormDataMap } from \"#platform/formData\";\nimport { createHttpHeaders } from \"../httpHeaders.js\";\nimport type {\n BodyPart,\n FormDataMap,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"../interfaces.js\";\nimport type { PipelinePolicy } from \"../pipeline.js\";\n\n/**\n * The programmatic identifier of the formDataPolicy.\n */\nexport const formDataPolicyName = \"formDataPolicy\";\n\n/**\n * A policy that encodes FormData on the request into the body.\n */\nexport function formDataPolicy(): PipelinePolicy {\n return {\n name: formDataPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n const converted = convertBodyToFormDataMap(request.body);\n if (converted) {\n request.formData = converted;\n request.body = undefined;\n }\n\n if (request.formData) {\n const contentType = request.headers.get(\"Content-Type\");\n if (contentType && contentType.indexOf(\"application/x-www-form-urlencoded\") !== -1) {\n request.body = wwwFormUrlEncode(request.formData);\n } else {\n await prepareFormData(request.formData, request);\n }\n\n request.formData = undefined;\n }\n return next(request);\n },\n };\n}\n\nfunction wwwFormUrlEncode(formData: FormDataMap): string {\n const urlSearchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(formData)) {\n if (Array.isArray(value)) {\n for (const subValue of value) {\n urlSearchParams.append(key, subValue.toString());\n }\n } else {\n urlSearchParams.append(key, value.toString());\n }\n }\n return urlSearchParams.toString();\n}\n\nasync function prepareFormData(formData: FormDataMap, request: PipelineRequest): Promise<void> {\n // validate content type (multipart/form-data)\n const contentType = request.headers.get(\"Content-Type\");\n if (contentType && !contentType.startsWith(\"multipart/form-data\")) {\n // content type is specified and is not multipart/form-data. Exit.\n return;\n }\n\n request.headers.set(\"Content-Type\", contentType ?? \"multipart/form-data\");\n\n // set body to MultipartRequestBody using content from FormDataMap\n const parts: BodyPart[] = [];\n\n for (const [fieldName, values] of Object.entries(formData)) {\n for (const value of Array.isArray(values) ? values : [values]) {\n if (typeof value === \"string\") {\n parts.push({\n headers: createHttpHeaders({\n \"Content-Disposition\": `form-data; name=\"${fieldName}\"`,\n }),\n body: stringToUint8Array(value, \"utf-8\"),\n });\n } else if (value === undefined || value === null || typeof value !== \"object\") {\n throw new Error(\n `Unexpected value for key ${fieldName}: ${value}. Value should be serialized to string first.`,\n );\n } else {\n // using || instead of ?? here since if value.name is empty we should create a file name\n const fileName = (value as File).name || \"blob\";\n const headers = createHttpHeaders();\n headers.set(\n \"Content-Disposition\",\n `form-data; name=\"${fieldName}\"; filename=\"${fileName}\"`,\n );\n\n // again, || is used since an empty value.type means the content type is unset\n headers.set(\"Content-Type\", value.type || \"application/octet-stream\");\n\n parts.push({\n headers,\n body: value,\n });\n }\n }\n }\n request.multipartBody = { parts };\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,2BAAmC;AACnC,sBAAyC;AACzC,yBAAkC;AAa3B,MAAM,qBAAqB;AAK3B,SAAS,iBAAiC;AAC/C,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,YAAY,SAA0B,MAA8C;AACxF,YAAM,gBAAY,0CAAyB,QAAQ,IAAI;AACvD,UAAI,WAAW;AACb,gBAAQ,WAAW;AACnB,gBAAQ,OAAO;AAAA,MACjB;AAEA,UAAI,QAAQ,UAAU;AACpB,cAAM,cAAc,QAAQ,QAAQ,IAAI,cAAc;AACtD,YAAI,eAAe,YAAY,QAAQ,mCAAmC,MAAM,IAAI;AAClF,kBAAQ,OAAO,iBAAiB,QAAQ,QAAQ;AAAA,QAClD,OAAO;AACL,gBAAM,gBAAgB,QAAQ,UAAU,OAAO;AAAA,QACjD;AAEA,gBAAQ,WAAW;AAAA,MACrB;AACA,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,UAA+B;AACvD,QAAM,kBAAkB,IAAI,gBAAgB;AAC5C,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,QAAQ,GAAG;AACnD,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,iBAAW,YAAY,OAAO;AAC5B,wBAAgB,OAAO,KAAK,SAAS,SAAS,CAAC;AAAA,MACjD;AAAA,IACF,OAAO;AACL,sBAAgB,OAAO,KAAK,MAAM,SAAS,CAAC;AAAA,IAC9C;AAAA,EACF;AACA,SAAO,gBAAgB,SAAS;AAClC;AAEA,eAAe,gBAAgB,UAAuB,SAAyC;AAE7F,QAAM,cAAc,QAAQ,QAAQ,IAAI,cAAc;AACtD,MAAI,eAAe,CAAC,YAAY,WAAW,qBAAqB,GAAG;AAEjE;AAAA,EACF;AAEA,UAAQ,QAAQ,IAAI,gBAAgB,eAAe,qBAAqB;AAGxE,QAAM,QAAoB,CAAC;AAE3B,aAAW,CAAC,WAAW,MAAM,KAAK,OAAO,QAAQ,QAAQ,GAAG;AAC1D,eAAW,SAAS,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG;AAC7D,UAAI,OAAO,UAAU,UAAU;AAC7B,cAAM,KAAK;AAAA,UACT,aAAS,sCAAkB;AAAA,YACzB,uBAAuB,oBAAoB,SAAS;AAAA,UACtD,CAAC;AAAA,UACD,UAAM,yCAAmB,OAAO,OAAO;AAAA,QACzC,CAAC;AAAA,MACH,WAAW,UAAU,UAAa,UAAU,QAAQ,OAAO,UAAU,UAAU;AAC7E,cAAM,IAAI;AAAA,UACR,4BAA4B,SAAS,KAAK,KAAK;AAAA,QACjD;AAAA,MACF,OAAO;AAEL,cAAM,WAAY,MAAe,QAAQ;AACzC,cAAM,cAAU,sCAAkB;AAClC,gBAAQ;AAAA,UACN;AAAA,UACA,oBAAoB,SAAS,gBAAgB,QAAQ;AAAA,QACvD;AAGA,gBAAQ,IAAI,gBAAgB,MAAM,QAAQ,0BAA0B;AAEpE,cAAM,KAAK;AAAA,UACT;AAAA,UACA,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACA,UAAQ,gBAAgB,EAAE,MAAM;AAClC;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,5 @@
1
1
  export { agentPolicy, agentPolicyName } from "./agentPolicy.js";
2
- export { decompressResponsePolicy, decompressResponsePolicyName, } from "./decompressResponsePolicy.js";
2
+ export { decompressResponsePolicy, decompressResponsePolicyName } from "./decompressResponsePolicy.js";
3
3
  export { defaultRetryPolicy, defaultRetryPolicyName, type DefaultRetryPolicyOptions, } from "./defaultRetryPolicy.js";
4
4
  export { exponentialRetryPolicy, exponentialRetryPolicyName, type ExponentialRetryPolicyOptions, } from "./exponentialRetryPolicy.js";
5
5
  export { retryPolicy, type RetryPolicyOptions } from "./retryPolicy.js";
@@ -19,21 +19,21 @@ var internal_exports = {};
19
19
  __export(internal_exports, {
20
20
  agentPolicy: () => import_agentPolicy.agentPolicy,
21
21
  agentPolicyName: () => import_agentPolicy.agentPolicyName,
22
- decompressResponsePolicy: () => import_decompressResponsePolicy.decompressResponsePolicy,
23
- decompressResponsePolicyName: () => import_decompressResponsePolicy.decompressResponsePolicyName,
22
+ decompressResponsePolicy: () => import_decompress.decompressResponsePolicy,
23
+ decompressResponsePolicyName: () => import_decompress.decompressResponsePolicyName,
24
24
  defaultRetryPolicy: () => import_defaultRetryPolicy.defaultRetryPolicy,
25
25
  defaultRetryPolicyName: () => import_defaultRetryPolicy.defaultRetryPolicyName,
26
26
  exponentialRetryPolicy: () => import_exponentialRetryPolicy.exponentialRetryPolicy,
27
27
  exponentialRetryPolicyName: () => import_exponentialRetryPolicy.exponentialRetryPolicyName,
28
28
  formDataPolicy: () => import_formDataPolicy.formDataPolicy,
29
29
  formDataPolicyName: () => import_formDataPolicy.formDataPolicyName,
30
- getDefaultProxySettings: () => import_proxyPolicy.getDefaultProxySettings,
30
+ getDefaultProxySettings: () => import_proxy.getDefaultProxySettings,
31
31
  logPolicy: () => import_logPolicy.logPolicy,
32
32
  logPolicyName: () => import_logPolicy.logPolicyName,
33
33
  multipartPolicy: () => import_multipartPolicy.multipartPolicy,
34
34
  multipartPolicyName: () => import_multipartPolicy.multipartPolicyName,
35
- proxyPolicy: () => import_proxyPolicy.proxyPolicy,
36
- proxyPolicyName: () => import_proxyPolicy.proxyPolicyName,
35
+ proxyPolicy: () => import_proxy.proxyPolicy,
36
+ proxyPolicyName: () => import_proxy.proxyPolicyName,
37
37
  redirectPolicy: () => import_redirectPolicy.redirectPolicy,
38
38
  redirectPolicyName: () => import_redirectPolicy.redirectPolicyName,
39
39
  retryPolicy: () => import_retryPolicy.retryPolicy,
@@ -48,7 +48,7 @@ __export(internal_exports, {
48
48
  });
49
49
  module.exports = __toCommonJS(internal_exports);
50
50
  var import_agentPolicy = require("./agentPolicy.js");
51
- var import_decompressResponsePolicy = require("./decompressResponsePolicy.js");
51
+ var import_decompress = require("./decompressResponsePolicy.js");
52
52
  var import_defaultRetryPolicy = require("./defaultRetryPolicy.js");
53
53
  var import_exponentialRetryPolicy = require("./exponentialRetryPolicy.js");
54
54
  var import_retryPolicy = require("./retryPolicy.js");
@@ -57,7 +57,7 @@ var import_throttlingRetryPolicy = require("./throttlingRetryPolicy.js");
57
57
  var import_formDataPolicy = require("./formDataPolicy.js");
58
58
  var import_logPolicy = require("./logPolicy.js");
59
59
  var import_multipartPolicy = require("./multipartPolicy.js");
60
- var import_proxyPolicy = require("./proxyPolicy.js");
60
+ var import_proxy = require("./proxyPolicy.js");
61
61
  var import_redirectPolicy = require("./redirectPolicy.js");
62
62
  var import_tlsPolicy = require("./tlsPolicy.js");
63
63
  var import_userAgentPolicy = require("./userAgentPolicy.js");
@@ -92,3 +92,4 @@ var import_userAgentPolicy = require("./userAgentPolicy.js");
92
92
  userAgentPolicy,
93
93
  userAgentPolicyName
94
94
  });
95
+ //# sourceMappingURL=internal.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/core/ts-http-runtime/src/policies/internal.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport { agentPolicy, agentPolicyName } from \"./agentPolicy.js\";\nexport {\n decompressResponsePolicy,\n decompressResponsePolicyName,\n} from \"./decompressResponsePolicy.js\";\nexport {\n defaultRetryPolicy,\n defaultRetryPolicyName,\n type DefaultRetryPolicyOptions,\n} from \"./defaultRetryPolicy.js\";\nexport {\n exponentialRetryPolicy,\n exponentialRetryPolicyName,\n type ExponentialRetryPolicyOptions,\n} from \"./exponentialRetryPolicy.js\";\nexport { retryPolicy, type RetryPolicyOptions } from \"./retryPolicy.js\";\nexport type {\n RetryInformation,\n RetryModifiers,\n RetryStrategy,\n} from \"../retryStrategies/retryStrategy.js\";\nexport { systemErrorRetryPolicy, systemErrorRetryPolicyName } from \"./systemErrorRetryPolicy.js\";\nexport { throttlingRetryPolicy, throttlingRetryPolicyName } from \"./throttlingRetryPolicy.js\";\nexport { formDataPolicy, formDataPolicyName } from \"./formDataPolicy.js\";\nexport { logPolicy, logPolicyName, type LogPolicyOptions } from \"./logPolicy.js\";\nexport { multipartPolicy, multipartPolicyName } from \"./multipartPolicy.js\";\nexport { proxyPolicy, proxyPolicyName, getDefaultProxySettings } from \"./proxyPolicy.js\";\nexport {\n redirectPolicy,\n redirectPolicyName,\n type RedirectPolicyOptions,\n} from \"./redirectPolicy.js\";\nexport { tlsPolicy, tlsPolicyName } from \"./tlsPolicy.js\";\nexport {\n userAgentPolicy,\n userAgentPolicyName,\n type UserAgentPolicyOptions,\n} from \"./userAgentPolicy.js\";\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,yBAA6C;AAC7C,sCAGO;AACP,gCAIO;AACP,oCAIO;AACP,yBAAqD;AAMrD,oCAAmE;AACnE,mCAAiE;AACjE,4BAAmD;AACnD,uBAAgE;AAChE,6BAAqD;AACrD,yBAAsE;AACtE,4BAIO;AACP,uBAAyC;AACzC,6BAIO;",
3
+ "sources": ["../../../src/policies/internal.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport { agentPolicy, agentPolicyName } from \"./agentPolicy.js\";\nexport { decompressResponsePolicy, decompressResponsePolicyName } from \"#platform/decompress\";\nexport {\n defaultRetryPolicy,\n defaultRetryPolicyName,\n type DefaultRetryPolicyOptions,\n} from \"./defaultRetryPolicy.js\";\nexport {\n exponentialRetryPolicy,\n exponentialRetryPolicyName,\n type ExponentialRetryPolicyOptions,\n} from \"./exponentialRetryPolicy.js\";\nexport { retryPolicy, type RetryPolicyOptions } from \"./retryPolicy.js\";\nexport type {\n RetryInformation,\n RetryModifiers,\n RetryStrategy,\n} from \"../retryStrategies/retryStrategy.js\";\nexport { systemErrorRetryPolicy, systemErrorRetryPolicyName } from \"./systemErrorRetryPolicy.js\";\nexport { throttlingRetryPolicy, throttlingRetryPolicyName } from \"./throttlingRetryPolicy.js\";\nexport { formDataPolicy, formDataPolicyName } from \"./formDataPolicy.js\";\nexport { logPolicy, logPolicyName, type LogPolicyOptions } from \"./logPolicy.js\";\nexport { multipartPolicy, multipartPolicyName } from \"./multipartPolicy.js\";\nexport { proxyPolicy, proxyPolicyName, getDefaultProxySettings } from \"#platform/proxy\";\nexport {\n redirectPolicy,\n redirectPolicyName,\n type RedirectPolicyOptions,\n} from \"./redirectPolicy.js\";\nexport { tlsPolicy, tlsPolicyName } from \"./tlsPolicy.js\";\nexport {\n userAgentPolicy,\n userAgentPolicyName,\n type UserAgentPolicyOptions,\n} from \"./userAgentPolicy.js\";\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,yBAA6C;AAC7C,wBAAuE;AACvE,gCAIO;AACP,oCAIO;AACP,yBAAqD;AAMrD,oCAAmE;AACnE,mCAAiE;AACjE,4BAAmD;AACnD,uBAAgE;AAChE,6BAAqD;AACrD,mBAAsE;AACtE,4BAIO;AACP,uBAAyC;AACzC,6BAIO;",
6
6
  "names": []
7
7
  }
@@ -49,3 +49,4 @@ function logPolicy(options = {}) {
49
49
  logPolicy,
50
50
  logPolicyName
51
51
  });
52
+ //# sourceMappingURL=logPolicy.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/core/ts-http-runtime/src/policies/logPolicy.ts"],
3
+ "sources": ["../../../src/policies/logPolicy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Debugger } from \"../logger/logger.js\";\nimport type { PipelineRequest, PipelineResponse, SendRequest } from \"../interfaces.js\";\nimport type { PipelinePolicy } from \"../pipeline.js\";\nimport { logger as coreLogger } from \"../log.js\";\nimport { Sanitizer } from \"../util/sanitizer.js\";\n\n/**\n * The programmatic identifier of the logPolicy.\n */\nexport const logPolicyName = \"logPolicy\";\n\n/**\n * Options to configure the logPolicy.\n */\nexport interface LogPolicyOptions {\n /**\n * Header names whose values will be logged when logging is enabled.\n * Defaults include a list of well-known safe headers. Any headers\n * specified in this field will be added to that list. Any other values will\n * be written to logs as \"REDACTED\".\n */\n additionalAllowedHeaderNames?: string[];\n\n /**\n * Query string names whose values will be logged when logging is enabled. By default no\n * query string values are logged.\n */\n additionalAllowedQueryParameters?: string[];\n\n /**\n * The log function to use for writing pipeline logs.\n * Defaults to core-http's built-in logger.\n * Compatible with the `debug` library.\n */\n logger?: Debugger;\n}\n\n/**\n * A policy that logs all requests and responses.\n * @param options - Options to configure logPolicy.\n */\nexport function logPolicy(options: LogPolicyOptions = {}): PipelinePolicy {\n const logger = options.logger ?? coreLogger.info;\n const sanitizer = new Sanitizer({\n additionalAllowedHeaderNames: options.additionalAllowedHeaderNames,\n additionalAllowedQueryParameters: options.additionalAllowedQueryParameters,\n });\n return {\n name: logPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n if (!logger.enabled) {\n return next(request);\n }\n\n logger(`Request: ${sanitizer.sanitize(request)}`);\n\n const response = await next(request);\n\n logger(`Response status code: ${response.status}`);\n logger(`Headers: ${sanitizer.sanitize(response.headers)}`);\n\n return response;\n },\n };\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,iBAAqC;AACrC,uBAA0B;AAKnB,MAAM,gBAAgB;AAgCtB,SAAS,UAAU,UAA4B,CAAC,GAAmB;AACxE,QAAM,SAAS,QAAQ,UAAU,WAAAA,OAAW;AAC5C,QAAM,YAAY,IAAI,2BAAU;AAAA,IAC9B,8BAA8B,QAAQ;AAAA,IACtC,kCAAkC,QAAQ;AAAA,EAC5C,CAAC;AACD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,YAAY,SAA0B,MAA8C;AACxF,UAAI,CAAC,OAAO,SAAS;AACnB,eAAO,KAAK,OAAO;AAAA,MACrB;AAEA,aAAO,YAAY,UAAU,SAAS,OAAO,CAAC,EAAE;AAEhD,YAAM,WAAW,MAAM,KAAK,OAAO;AAEnC,aAAO,yBAAyB,SAAS,MAAM,EAAE;AACjD,aAAO,YAAY,UAAU,SAAS,SAAS,OAAO,CAAC,EAAE;AAEzD,aAAO;AAAA,IACT;AAAA,EACF;AACF;",
6
6
  "names": ["coreLogger"]
@@ -23,10 +23,10 @@ __export(multipartPolicy_exports, {
23
23
  module.exports = __toCommonJS(multipartPolicy_exports);
24
24
  var import_bytesEncoding = require("../util/bytesEncoding.js");
25
25
  var import_typeGuards = require("../util/typeGuards.js");
26
- var import_uuidUtils = require("../util/uuidUtils.js");
26
+ var import_uuid = require("../util/uuidUtils.js");
27
27
  var import_concat = require("../util/concat.js");
28
28
  function generateBoundary() {
29
- return `----AzSDKFormBoundary${(0, import_uuidUtils.randomUUID)()}`;
29
+ return `----AzSDKFormBoundary${(0, import_uuid.randomUUID)()}`;
30
30
  }
31
31
  function encodeHeaders(headers) {
32
32
  let result = "";
@@ -131,3 +131,4 @@ function multipartPolicy() {
131
131
  multipartPolicy,
132
132
  multipartPolicyName
133
133
  });
134
+ //# sourceMappingURL=multipartPolicy.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/core/ts-http-runtime/src/policies/multipartPolicy.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { BodyPart, HttpHeaders, PipelineRequest, PipelineResponse } from \"../interfaces.js\";\nimport type { PipelinePolicy } from \"../pipeline.js\";\nimport { stringToUint8Array } from \"../util/bytesEncoding.js\";\nimport { isBlob } from \"../util/typeGuards.js\";\nimport { randomUUID } from \"../util/uuidUtils.js\";\nimport { concat } from \"../util/concat.js\";\n\nfunction generateBoundary(): string {\n return `----AzSDKFormBoundary${randomUUID()}`;\n}\n\nfunction encodeHeaders(headers: HttpHeaders): string {\n let result = \"\";\n for (const [key, value] of headers) {\n result += `${key}: ${value}\\r\\n`;\n }\n return result;\n}\n\nfunction getLength(\n source:\n | (() => ReadableStream<Uint8Array>)\n | (() => NodeJS.ReadableStream)\n | Uint8Array\n | Blob\n | ReadableStream\n | NodeJS.ReadableStream,\n): number | undefined {\n if (source instanceof Uint8Array) {\n return source.byteLength;\n } else if (isBlob(source)) {\n // if was created using createFile then -1 means we have an unknown size\n return source.size === -1 ? undefined : source.size;\n } else {\n return undefined;\n }\n}\n\nfunction getTotalLength(\n sources: (\n | (() => ReadableStream<Uint8Array>)\n | (() => NodeJS.ReadableStream)\n | Uint8Array\n | Blob\n | ReadableStream\n | NodeJS.ReadableStream\n )[],\n): number | undefined {\n let total = 0;\n for (const source of sources) {\n const partLength = getLength(source);\n if (partLength === undefined) {\n return undefined;\n } else {\n total += partLength;\n }\n }\n return total;\n}\n\nasync function buildRequestBody(\n request: PipelineRequest,\n parts: BodyPart[],\n boundary: string,\n): Promise<void> {\n const sources = [\n stringToUint8Array(`--${boundary}`, \"utf-8\"),\n ...parts.flatMap((part) => [\n stringToUint8Array(\"\\r\\n\", \"utf-8\"),\n stringToUint8Array(encodeHeaders(part.headers), \"utf-8\"),\n stringToUint8Array(\"\\r\\n\", \"utf-8\"),\n part.body,\n stringToUint8Array(`\\r\\n--${boundary}`, \"utf-8\"),\n ]),\n stringToUint8Array(\"--\\r\\n\\r\\n\", \"utf-8\"),\n ];\n\n const contentLength = getTotalLength(sources);\n if (contentLength) {\n request.headers.set(\"Content-Length\", contentLength);\n }\n\n request.body = await concat(sources);\n}\n\n/**\n * Name of multipart policy\n */\nexport const multipartPolicyName = \"multipartPolicy\";\n\nconst maxBoundaryLength = 70;\nconst validBoundaryCharacters = new Set(\n `abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'()+,-./:=?`,\n);\n\nfunction assertValidBoundary(boundary: string): void {\n if (boundary.length > maxBoundaryLength) {\n throw new Error(`Multipart boundary \"${boundary}\" exceeds maximum length of 70 characters`);\n }\n\n if (Array.from(boundary).some((x) => !validBoundaryCharacters.has(x))) {\n throw new Error(`Multipart boundary \"${boundary}\" contains invalid characters`);\n }\n}\n\n/**\n * Pipeline policy for multipart requests\n */\nexport function multipartPolicy(): PipelinePolicy {\n return {\n name: multipartPolicyName,\n async sendRequest(request, next): Promise<PipelineResponse> {\n if (!request.multipartBody) {\n return next(request);\n }\n\n if (request.body) {\n throw new Error(\"multipartBody and regular body cannot be set at the same time\");\n }\n\n let boundary = request.multipartBody.boundary;\n\n const contentTypeHeader = request.headers.get(\"Content-Type\") ?? \"multipart/mixed\";\n const parsedHeader = contentTypeHeader.match(/^(multipart\\/[^ ;]+)(?:; *boundary=(.+))?$/);\n if (!parsedHeader) {\n throw new Error(\n `Got multipart request body, but content-type header was not multipart: ${contentTypeHeader}`,\n );\n }\n\n const [, contentType, parsedBoundary] = parsedHeader;\n if (parsedBoundary && boundary && parsedBoundary !== boundary) {\n throw new Error(\n `Multipart boundary was specified as ${parsedBoundary} in the header, but got ${boundary} in the request body`,\n );\n }\n\n boundary ??= parsedBoundary;\n if (boundary) {\n assertValidBoundary(boundary);\n } else {\n boundary = generateBoundary();\n }\n request.headers.set(\"Content-Type\", `${contentType}; boundary=${boundary}`);\n await buildRequestBody(request, request.multipartBody.parts, boundary);\n\n request.multipartBody = undefined;\n\n return next(request);\n },\n };\n}\n"],
5
- "mappings": "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",
3
+ "sources": ["../../../src/policies/multipartPolicy.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { BodyPart, HttpHeaders, PipelineRequest, PipelineResponse } from \"../interfaces.js\";\nimport type { PipelinePolicy } from \"../pipeline.js\";\nimport type { NodeReadableStream, WebReadableStream } from \"#platform/types\";\nimport { stringToUint8Array } from \"#platform/bytesEncoding\";\nimport { isBlob } from \"../util/typeGuards.js\";\nimport { randomUUID } from \"#platform/uuid\";\nimport { concat } from \"#platform/concat\";\n\nfunction generateBoundary(): string {\n return `----AzSDKFormBoundary${randomUUID()}`;\n}\n\nfunction encodeHeaders(headers: HttpHeaders): string {\n let result = \"\";\n for (const [key, value] of headers) {\n result += `${key}: ${value}\\r\\n`;\n }\n return result;\n}\n\nfunction getLength(\n source:\n | (() => WebReadableStream<Uint8Array>)\n | (() => NodeReadableStream)\n | Uint8Array\n | Blob\n | WebReadableStream\n | NodeReadableStream,\n): number | undefined {\n if (source instanceof Uint8Array) {\n return source.byteLength;\n } else if (isBlob(source)) {\n // if was created using createFile then -1 means we have an unknown size\n return source.size === -1 ? undefined : source.size;\n } else {\n return undefined;\n }\n}\n\nfunction getTotalLength(\n sources: (\n | (() => WebReadableStream<Uint8Array>)\n | (() => NodeReadableStream)\n | Uint8Array\n | Blob\n | WebReadableStream\n | NodeReadableStream\n )[],\n): number | undefined {\n let total = 0;\n for (const source of sources) {\n const partLength = getLength(source);\n if (partLength === undefined) {\n return undefined;\n } else {\n total += partLength;\n }\n }\n return total;\n}\n\nasync function buildRequestBody(\n request: PipelineRequest,\n parts: BodyPart[],\n boundary: string,\n): Promise<void> {\n const sources = [\n stringToUint8Array(`--${boundary}`, \"utf-8\"),\n ...parts.flatMap((part) => [\n stringToUint8Array(\"\\r\\n\", \"utf-8\"),\n stringToUint8Array(encodeHeaders(part.headers), \"utf-8\"),\n stringToUint8Array(\"\\r\\n\", \"utf-8\"),\n part.body,\n stringToUint8Array(`\\r\\n--${boundary}`, \"utf-8\"),\n ]),\n stringToUint8Array(\"--\\r\\n\\r\\n\", \"utf-8\"),\n ];\n\n const contentLength = getTotalLength(sources);\n if (contentLength) {\n request.headers.set(\"Content-Length\", contentLength);\n }\n\n // The public BodyPart.body type uses Uint8Array (= Uint8Array<ArrayBufferLike>) for\n // backward compatibility. Internally, concat requires Uint8Array<ArrayBuffer> to ensure\n // SharedArrayBuffer-backed arrays don't flow into Blob construction. In practice, HTTP\n // request bodies are always ArrayBuffer-backed, so this narrowing is safe.\n request.body = await concat(sources as Parameters<typeof concat>[0]);\n}\n\n/**\n * Name of multipart policy\n */\nexport const multipartPolicyName = \"multipartPolicy\";\n\nconst maxBoundaryLength = 70;\nconst validBoundaryCharacters = new Set(\n `abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'()+,-./:=?`,\n);\n\nfunction assertValidBoundary(boundary: string): void {\n if (boundary.length > maxBoundaryLength) {\n throw new Error(`Multipart boundary \"${boundary}\" exceeds maximum length of 70 characters`);\n }\n\n if (Array.from(boundary).some((x) => !validBoundaryCharacters.has(x))) {\n throw new Error(`Multipart boundary \"${boundary}\" contains invalid characters`);\n }\n}\n\n/**\n * Pipeline policy for multipart requests\n */\nexport function multipartPolicy(): PipelinePolicy {\n return {\n name: multipartPolicyName,\n async sendRequest(request, next): Promise<PipelineResponse> {\n if (!request.multipartBody) {\n return next(request);\n }\n\n if (request.body) {\n throw new Error(\"multipartBody and regular body cannot be set at the same time\");\n }\n\n let boundary = request.multipartBody.boundary;\n\n const contentTypeHeader = request.headers.get(\"Content-Type\") ?? \"multipart/mixed\";\n const parsedHeader = contentTypeHeader.match(/^(multipart\\/[^ ;]+)(?:; *boundary=(.+))?$/);\n if (!parsedHeader) {\n throw new Error(\n `Got multipart request body, but content-type header was not multipart: ${contentTypeHeader}`,\n );\n }\n\n const [, contentType, parsedBoundary] = parsedHeader;\n if (parsedBoundary && boundary && parsedBoundary !== boundary) {\n throw new Error(\n `Multipart boundary was specified as ${parsedBoundary} in the header, but got ${boundary} in the request body`,\n );\n }\n\n boundary ??= parsedBoundary;\n if (boundary) {\n assertValidBoundary(boundary);\n } else {\n boundary = generateBoundary();\n }\n request.headers.set(\"Content-Type\", `${contentType}; boundary=${boundary}`);\n await buildRequestBody(request, request.multipartBody.parts, boundary);\n\n request.multipartBody = undefined;\n\n return next(request);\n },\n };\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,25 @@
1
+ import type { Pipeline } from "../pipeline.js";
2
+ import type { Agent, ProxySettings, TlsSettings } from "../interfaces.js";
3
+ import type { RedirectPolicyOptions } from "./redirectPolicy.js";
4
+ /**
5
+ * Options for configuring platform-specific pipeline policies.
6
+ *
7
+ * @internal
8
+ */
9
+ export interface PlatformPoliciesOptions {
10
+ agent?: Agent;
11
+ tlsOptions?: TlsSettings;
12
+ proxyOptions?: ProxySettings;
13
+ redirectOptions?: RedirectPolicyOptions;
14
+ }
15
+ /**
16
+ * Add platform-specific policies to the pipeline.
17
+ *
18
+ * On Node.js, this adds agent, TLS, proxy, decompression, and redirect
19
+ * policies. On browser and React Native these concerns are handled
20
+ * natively by the runtime, so this is a no-op.
21
+ *
22
+ * @internal
23
+ */
24
+ export declare function addPlatformPolicies(pipeline: Pipeline, options: PlatformPoliciesOptions): void;
25
+ //# sourceMappingURL=platformPolicies.d.ts.map
@@ -0,0 +1,43 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var platformPolicies_exports = {};
19
+ __export(platformPolicies_exports, {
20
+ addPlatformPolicies: () => addPlatformPolicies
21
+ });
22
+ module.exports = __toCommonJS(platformPolicies_exports);
23
+ var import_agentPolicy = require("./agentPolicy.js");
24
+ var import_tlsPolicy = require("./tlsPolicy.js");
25
+ var import_proxy = require("./proxyPolicy.js");
26
+ var import_decompress = require("./decompressResponsePolicy.js");
27
+ var import_redirectPolicy = require("./redirectPolicy.js");
28
+ function addPlatformPolicies(pipeline, options) {
29
+ if (options.agent) {
30
+ pipeline.addPolicy((0, import_agentPolicy.agentPolicy)(options.agent));
31
+ }
32
+ if (options.tlsOptions) {
33
+ pipeline.addPolicy((0, import_tlsPolicy.tlsPolicy)(options.tlsOptions));
34
+ }
35
+ pipeline.addPolicy((0, import_proxy.proxyPolicy)(options.proxyOptions));
36
+ pipeline.addPolicy((0, import_decompress.decompressResponsePolicy)());
37
+ pipeline.addPolicy((0, import_redirectPolicy.redirectPolicy)(options.redirectOptions), { afterPhase: "Retry" });
38
+ }
39
+ // Annotate the CommonJS export names for ESM import in node:
40
+ 0 && (module.exports = {
41
+ addPlatformPolicies
42
+ });
43
+ //# sourceMappingURL=platformPolicies.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/policies/platformPolicies.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Pipeline } from \"../pipeline.js\";\nimport type { Agent, ProxySettings, TlsSettings } from \"../interfaces.js\";\nimport type { RedirectPolicyOptions } from \"./redirectPolicy.js\";\nimport { agentPolicy } from \"./agentPolicy.js\";\nimport { tlsPolicy } from \"./tlsPolicy.js\";\nimport { proxyPolicy } from \"#platform/proxy\";\nimport { decompressResponsePolicy } from \"#platform/decompress\";\nimport { redirectPolicy } from \"./redirectPolicy.js\";\n\n/**\n * Options for configuring platform-specific pipeline policies.\n *\n * @internal\n */\nexport interface PlatformPoliciesOptions {\n agent?: Agent;\n tlsOptions?: TlsSettings;\n proxyOptions?: ProxySettings;\n redirectOptions?: RedirectPolicyOptions;\n}\n\n/**\n * Add platform-specific policies to the pipeline.\n *\n * On Node.js, this adds agent, TLS, proxy, decompression, and redirect\n * policies. On browser and React Native these concerns are handled\n * natively by the runtime, so this is a no-op.\n *\n * @internal\n */\nexport function addPlatformPolicies(pipeline: Pipeline, options: PlatformPoliciesOptions): void {\n if (options.agent) {\n pipeline.addPolicy(agentPolicy(options.agent));\n }\n if (options.tlsOptions) {\n pipeline.addPolicy(tlsPolicy(options.tlsOptions));\n }\n pipeline.addPolicy(proxyPolicy(options.proxyOptions));\n pipeline.addPolicy(decompressResponsePolicy());\n // Both XHR and Fetch expect to handle redirects automatically,\n // so this only takes effect on Node.\n pipeline.addPolicy(redirectPolicy(options.redirectOptions), { afterPhase: \"Retry\" });\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAA4B;AAC5B,uBAA0B;AAC1B,mBAA4B;AAC5B,wBAAyC;AACzC,4BAA+B;AAuBxB,SAAS,oBAAoB,UAAoB,SAAwC;AAC9F,MAAI,QAAQ,OAAO;AACjB,aAAS,cAAU,gCAAY,QAAQ,KAAK,CAAC;AAAA,EAC/C;AACA,MAAI,QAAQ,YAAY;AACtB,aAAS,cAAU,4BAAU,QAAQ,UAAU,CAAC;AAAA,EAClD;AACA,WAAS,cAAU,0BAAY,QAAQ,YAAY,CAAC;AACpD,WAAS,cAAU,4CAAyB,CAAC;AAG7C,WAAS,cAAU,sCAAe,QAAQ,eAAe,GAAG,EAAE,YAAY,QAAQ,CAAC;AACrF;",
6
+ "names": []
7
+ }
@@ -136,15 +136,14 @@ function setProxyAgentOnRequest(request, cachedAgents, proxyUrl) {
136
136
  "TLS settings are not supported in combination with custom Proxy, certificates provided to the client will be ignored."
137
137
  );
138
138
  }
139
- const headers = request.headers.toJSON();
140
139
  if (isInsecure) {
141
140
  if (!cachedAgents.httpProxyAgent) {
142
- cachedAgents.httpProxyAgent = new import_http_proxy_agent.HttpProxyAgent(proxyUrl, { headers });
141
+ cachedAgents.httpProxyAgent = new import_http_proxy_agent.HttpProxyAgent(proxyUrl);
143
142
  }
144
143
  request.agent = cachedAgents.httpProxyAgent;
145
144
  } else {
146
145
  if (!cachedAgents.httpsProxyAgent) {
147
- cachedAgents.httpsProxyAgent = new import_https_proxy_agent.HttpsProxyAgent(proxyUrl, { headers });
146
+ cachedAgents.httpsProxyAgent = new import_https_proxy_agent.HttpsProxyAgent(proxyUrl);
148
147
  }
149
148
  request.agent = cachedAgents.httpsProxyAgent;
150
149
  }
@@ -183,3 +182,4 @@ function proxyPolicy(proxySettings, options) {
183
182
  proxyPolicy,
184
183
  proxyPolicyName
185
184
  });
185
+ //# sourceMappingURL=proxyPolicy.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/core/ts-http-runtime/src/policies/proxyPolicy.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type * as http from \"http\";\nimport type * as https from \"https\";\nimport { HttpsProxyAgent } from \"https-proxy-agent\";\nimport { HttpProxyAgent } from \"http-proxy-agent\";\nimport type {\n PipelineRequest,\n PipelineResponse,\n ProxySettings,\n SendRequest,\n} from \"../interfaces.js\";\nimport type { PipelinePolicy } from \"../pipeline.js\";\nimport { logger } from \"../log.js\";\n\nconst HTTPS_PROXY = \"HTTPS_PROXY\";\nconst HTTP_PROXY = \"HTTP_PROXY\";\nconst ALL_PROXY = \"ALL_PROXY\";\nconst NO_PROXY = \"NO_PROXY\";\n\n/**\n * The programmatic identifier of the proxyPolicy.\n */\nexport const proxyPolicyName = \"proxyPolicy\";\n\n/**\n * Stores the patterns specified in NO_PROXY environment variable.\n * @internal\n */\nexport const globalNoProxyList: string[] = [];\nlet noProxyListLoaded: boolean = false;\n\n/** A cache of whether a host should bypass the proxy. */\nconst globalBypassedMap: Map<string, boolean> = new Map();\n\nfunction getEnvironmentValue(name: string): string | undefined {\n if (process.env[name]) {\n return process.env[name];\n } else if (process.env[name.toLowerCase()]) {\n return process.env[name.toLowerCase()];\n }\n return undefined;\n}\n\nfunction loadEnvironmentProxyValue(): string | undefined {\n if (!process) {\n return undefined;\n }\n\n const httpsProxy = getEnvironmentValue(HTTPS_PROXY);\n const allProxy = getEnvironmentValue(ALL_PROXY);\n const httpProxy = getEnvironmentValue(HTTP_PROXY);\n\n return httpsProxy || allProxy || httpProxy;\n}\n\n/**\n * Check whether the host of a given `uri` matches any pattern in the no proxy list.\n * If there's a match, any request sent to the same host shouldn't have the proxy settings set.\n * This implementation is a port of https://github.com/Azure/azure-sdk-for-net/blob/8cca811371159e527159c7eb65602477898683e2/sdk/core/Azure.Core/src/Pipeline/Internal/HttpEnvironmentProxy.cs#L210\n */\nfunction isBypassed(\n uri: string,\n noProxyList: string[],\n bypassedMap?: Map<string, boolean>,\n): boolean | undefined {\n if (noProxyList.length === 0) {\n return false;\n }\n const host = new URL(uri).hostname;\n if (bypassedMap?.has(host)) {\n return bypassedMap.get(host);\n }\n let isBypassedFlag = false;\n for (const pattern of noProxyList) {\n if (pattern[0] === \".\") {\n // This should match either domain it self or any subdomain or host\n // .foo.com will match foo.com it self or *.foo.com\n if (host.endsWith(pattern)) {\n isBypassedFlag = true;\n } else {\n if (host.length === pattern.length - 1 && host === pattern.slice(1)) {\n isBypassedFlag = true;\n }\n }\n } else {\n if (host === pattern) {\n isBypassedFlag = true;\n }\n }\n }\n bypassedMap?.set(host, isBypassedFlag);\n return isBypassedFlag;\n}\n\nexport function loadNoProxy(): string[] {\n const noProxy = getEnvironmentValue(NO_PROXY);\n noProxyListLoaded = true;\n if (noProxy) {\n return noProxy\n .split(\",\")\n .map((item) => item.trim())\n .filter((item) => item.length);\n }\n\n return [];\n}\n\n/**\n * This method converts a proxy url into `ProxySettings` for use with ProxyPolicy.\n * If no argument is given, it attempts to parse a proxy URL from the environment\n * variables `HTTPS_PROXY` or `HTTP_PROXY`.\n * @param proxyUrl - The url of the proxy to use. May contain authentication information.\n * @deprecated - Internally this method is no longer necessary when setting proxy information.\n */\nexport function getDefaultProxySettings(proxyUrl?: string): ProxySettings | undefined {\n if (!proxyUrl) {\n proxyUrl = loadEnvironmentProxyValue();\n if (!proxyUrl) {\n return undefined;\n }\n }\n\n const parsedUrl = new URL(proxyUrl);\n const schema = parsedUrl.protocol ? parsedUrl.protocol + \"//\" : \"\";\n return {\n host: schema + parsedUrl.hostname,\n port: Number.parseInt(parsedUrl.port || \"80\"),\n username: parsedUrl.username,\n password: parsedUrl.password,\n };\n}\n\n/**\n * This method attempts to parse a proxy URL from the environment\n * variables `HTTPS_PROXY` or `HTTP_PROXY`.\n */\nfunction getDefaultProxySettingsInternal(): URL | undefined {\n const envProxy = loadEnvironmentProxyValue();\n return envProxy ? new URL(envProxy) : undefined;\n}\n\nfunction getUrlFromProxySettings(settings: ProxySettings): URL {\n let parsedProxyUrl: URL;\n try {\n parsedProxyUrl = new URL(settings.host);\n } catch {\n throw new Error(\n `Expecting a valid host string in proxy settings, but found \"${settings.host}\".`,\n );\n }\n\n parsedProxyUrl.port = String(settings.port);\n if (settings.username) {\n parsedProxyUrl.username = settings.username;\n }\n if (settings.password) {\n parsedProxyUrl.password = settings.password;\n }\n\n return parsedProxyUrl;\n}\n\nfunction setProxyAgentOnRequest(\n request: PipelineRequest,\n cachedAgents: CachedAgents,\n proxyUrl: URL,\n): void {\n // Custom Agent should take precedence so if one is present\n // we should skip to avoid overwriting it.\n if (request.agent) {\n return;\n }\n\n const url = new URL(request.url);\n\n const isInsecure = url.protocol !== \"https:\";\n\n if (request.tlsSettings) {\n logger.warning(\n \"TLS settings are not supported in combination with custom Proxy, certificates provided to the client will be ignored.\",\n );\n }\n\n const headers = request.headers.toJSON();\n\n if (isInsecure) {\n if (!cachedAgents.httpProxyAgent) {\n cachedAgents.httpProxyAgent = new HttpProxyAgent(proxyUrl, { headers });\n }\n request.agent = cachedAgents.httpProxyAgent;\n } else {\n if (!cachedAgents.httpsProxyAgent) {\n cachedAgents.httpsProxyAgent = new HttpsProxyAgent(proxyUrl, { headers });\n }\n request.agent = cachedAgents.httpsProxyAgent;\n }\n}\n\ninterface CachedAgents {\n httpsProxyAgent?: https.Agent;\n httpProxyAgent?: http.Agent;\n}\n\n/**\n * A policy that allows one to apply proxy settings to all requests.\n * If not passed static settings, they will be retrieved from the HTTPS_PROXY\n * or HTTP_PROXY environment variables.\n * @param proxySettings - ProxySettings to use on each request.\n * @param options - additional settings, for example, custom NO_PROXY patterns\n */\nexport function proxyPolicy(\n proxySettings?: ProxySettings,\n options?: {\n /** a list of patterns to override those loaded from NO_PROXY environment variable. */\n customNoProxyList?: string[];\n },\n): PipelinePolicy {\n if (!noProxyListLoaded) {\n globalNoProxyList.push(...loadNoProxy());\n }\n\n const defaultProxy = proxySettings\n ? getUrlFromProxySettings(proxySettings)\n : getDefaultProxySettingsInternal();\n\n const cachedAgents: CachedAgents = {};\n\n return {\n name: proxyPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n if (\n !request.proxySettings &&\n defaultProxy &&\n !isBypassed(\n request.url,\n options?.customNoProxyList ?? globalNoProxyList,\n options?.customNoProxyList ? undefined : globalBypassedMap,\n )\n ) {\n setProxyAgentOnRequest(request, cachedAgents, defaultProxy);\n } else if (request.proxySettings) {\n setProxyAgentOnRequest(\n request,\n cachedAgents,\n getUrlFromProxySettings(request.proxySettings),\n );\n }\n return next(request);\n },\n };\n}\n"],
5
- "mappings": "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",
3
+ "sources": ["../../../src/policies/proxyPolicy.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type * as http from \"http\";\nimport type * as https from \"https\";\nimport { HttpsProxyAgent } from \"https-proxy-agent\";\nimport { HttpProxyAgent } from \"http-proxy-agent\";\nimport type {\n PipelineRequest,\n PipelineResponse,\n ProxySettings,\n SendRequest,\n} from \"../interfaces.js\";\nimport type { PipelinePolicy } from \"../pipeline.js\";\nimport { logger } from \"../log.js\";\n\nconst HTTPS_PROXY = \"HTTPS_PROXY\";\nconst HTTP_PROXY = \"HTTP_PROXY\";\nconst ALL_PROXY = \"ALL_PROXY\";\nconst NO_PROXY = \"NO_PROXY\";\n\n/**\n * The programmatic identifier of the proxyPolicy.\n */\nexport const proxyPolicyName = \"proxyPolicy\";\n\n/**\n * Stores the patterns specified in NO_PROXY environment variable.\n * @internal\n */\nexport const globalNoProxyList: string[] = [];\nlet noProxyListLoaded: boolean = false;\n\n/** A cache of whether a host should bypass the proxy. */\nconst globalBypassedMap: Map<string, boolean> = new Map();\n\nfunction getEnvironmentValue(name: string): string | undefined {\n if (process.env[name]) {\n return process.env[name];\n } else if (process.env[name.toLowerCase()]) {\n return process.env[name.toLowerCase()];\n }\n return undefined;\n}\n\nfunction loadEnvironmentProxyValue(): string | undefined {\n if (!process) {\n return undefined;\n }\n\n const httpsProxy = getEnvironmentValue(HTTPS_PROXY);\n const allProxy = getEnvironmentValue(ALL_PROXY);\n const httpProxy = getEnvironmentValue(HTTP_PROXY);\n\n return httpsProxy || allProxy || httpProxy;\n}\n\n/**\n * Check whether the host of a given `uri` matches any pattern in the no proxy list.\n * If there's a match, any request sent to the same host shouldn't have the proxy settings set.\n * This implementation is a port of https://github.com/Azure/azure-sdk-for-net/blob/8cca811371159e527159c7eb65602477898683e2/sdk/core/Azure.Core/src/Pipeline/Internal/HttpEnvironmentProxy.cs#L210\n */\nfunction isBypassed(\n uri: string,\n noProxyList: string[],\n bypassedMap?: Map<string, boolean>,\n): boolean | undefined {\n if (noProxyList.length === 0) {\n return false;\n }\n const host = new URL(uri).hostname;\n if (bypassedMap?.has(host)) {\n return bypassedMap.get(host);\n }\n let isBypassedFlag = false;\n for (const pattern of noProxyList) {\n if (pattern[0] === \".\") {\n // This should match either domain it self or any subdomain or host\n // .foo.com will match foo.com it self or *.foo.com\n if (host.endsWith(pattern)) {\n isBypassedFlag = true;\n } else {\n if (host.length === pattern.length - 1 && host === pattern.slice(1)) {\n isBypassedFlag = true;\n }\n }\n } else {\n if (host === pattern) {\n isBypassedFlag = true;\n }\n }\n }\n bypassedMap?.set(host, isBypassedFlag);\n return isBypassedFlag;\n}\n\nexport function loadNoProxy(): string[] {\n const noProxy = getEnvironmentValue(NO_PROXY);\n noProxyListLoaded = true;\n if (noProxy) {\n return noProxy\n .split(\",\")\n .map((item) => item.trim())\n .filter((item) => item.length);\n }\n\n return [];\n}\n\n/**\n * This method converts a proxy url into `ProxySettings` for use with ProxyPolicy.\n * If no argument is given, it attempts to parse a proxy URL from the environment\n * variables `HTTPS_PROXY` or `HTTP_PROXY`.\n * @param proxyUrl - The url of the proxy to use. May contain authentication information.\n * @deprecated - Internally this method is no longer necessary when setting proxy information.\n */\nexport function getDefaultProxySettings(proxyUrl?: string): ProxySettings | undefined {\n if (!proxyUrl) {\n proxyUrl = loadEnvironmentProxyValue();\n if (!proxyUrl) {\n return undefined;\n }\n }\n\n const parsedUrl = new URL(proxyUrl);\n const schema = parsedUrl.protocol ? parsedUrl.protocol + \"//\" : \"\";\n return {\n host: schema + parsedUrl.hostname,\n port: Number.parseInt(parsedUrl.port || \"80\"),\n username: parsedUrl.username,\n password: parsedUrl.password,\n };\n}\n\n/**\n * This method attempts to parse a proxy URL from the environment\n * variables `HTTPS_PROXY` or `HTTP_PROXY`.\n */\nfunction getDefaultProxySettingsInternal(): URL | undefined {\n const envProxy = loadEnvironmentProxyValue();\n return envProxy ? new URL(envProxy) : undefined;\n}\n\nfunction getUrlFromProxySettings(settings: ProxySettings): URL {\n let parsedProxyUrl: URL;\n try {\n parsedProxyUrl = new URL(settings.host);\n } catch {\n throw new Error(\n `Expecting a valid host string in proxy settings, but found \"${settings.host}\".`,\n );\n }\n\n parsedProxyUrl.port = String(settings.port);\n if (settings.username) {\n parsedProxyUrl.username = settings.username;\n }\n if (settings.password) {\n parsedProxyUrl.password = settings.password;\n }\n\n return parsedProxyUrl;\n}\n\nfunction setProxyAgentOnRequest(\n request: PipelineRequest,\n cachedAgents: CachedAgents,\n proxyUrl: URL,\n): void {\n // Custom Agent should take precedence so if one is present\n // we should skip to avoid overwriting it.\n if (request.agent) {\n return;\n }\n\n const url = new URL(request.url);\n\n const isInsecure = url.protocol !== \"https:\";\n\n if (request.tlsSettings) {\n logger.warning(\n \"TLS settings are not supported in combination with custom Proxy, certificates provided to the client will be ignored.\",\n );\n }\n\n if (isInsecure) {\n if (!cachedAgents.httpProxyAgent) {\n cachedAgents.httpProxyAgent = new HttpProxyAgent(proxyUrl);\n }\n request.agent = cachedAgents.httpProxyAgent;\n } else {\n if (!cachedAgents.httpsProxyAgent) {\n cachedAgents.httpsProxyAgent = new HttpsProxyAgent(proxyUrl);\n }\n request.agent = cachedAgents.httpsProxyAgent;\n }\n}\n\ninterface CachedAgents {\n httpsProxyAgent?: https.Agent;\n httpProxyAgent?: http.Agent;\n}\n\n/**\n * A policy that allows one to apply proxy settings to all requests.\n * If not passed static settings, they will be retrieved from the HTTPS_PROXY\n * or HTTP_PROXY environment variables.\n * @param proxySettings - ProxySettings to use on each request.\n * @param options - additional settings, for example, custom NO_PROXY patterns\n */\nexport function proxyPolicy(\n proxySettings?: ProxySettings,\n options?: {\n /** a list of patterns to override those loaded from NO_PROXY environment variable. */\n customNoProxyList?: string[];\n },\n): PipelinePolicy {\n if (!noProxyListLoaded) {\n globalNoProxyList.push(...loadNoProxy());\n }\n\n const defaultProxy = proxySettings\n ? getUrlFromProxySettings(proxySettings)\n : getDefaultProxySettingsInternal();\n\n const cachedAgents: CachedAgents = {};\n\n return {\n name: proxyPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n if (\n !request.proxySettings &&\n defaultProxy &&\n !isBypassed(\n request.url,\n options?.customNoProxyList ?? globalNoProxyList,\n options?.customNoProxyList ? undefined : globalBypassedMap,\n )\n ) {\n setProxyAgentOnRequest(request, cachedAgents, defaultProxy);\n } else if (request.proxySettings) {\n setProxyAgentOnRequest(\n request,\n cachedAgents,\n getUrlFromProxySettings(request.proxySettings),\n );\n }\n return next(request);\n },\n };\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -65,3 +65,4 @@ async function handleRedirect(next, response, maxRetries, allowCrossOriginRedire
65
65
  redirectPolicy,
66
66
  redirectPolicyName
67
67
  });
68
+ //# sourceMappingURL=redirectPolicy.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/core/ts-http-runtime/src/policies/redirectPolicy.ts"],
3
+ "sources": ["../../../src/policies/redirectPolicy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PipelineRequest, PipelineResponse, SendRequest } from \"../interfaces.js\";\nimport type { PipelinePolicy } from \"../pipeline.js\";\nimport { logger } from \"../log.js\";\n\n/**\n * The programmatic identifier of the redirectPolicy.\n */\nexport const redirectPolicyName = \"redirectPolicy\";\n\n/**\n * Methods that are allowed to follow redirects 301 and 302\n */\nconst allowedRedirect = [\"GET\", \"HEAD\"];\n\n/**\n * Options for how redirect responses are handled.\n */\nexport interface RedirectPolicyOptions {\n /**\n * The maximum number of times the redirect URL will be tried before\n * failing. Defaults to 20.\n */\n maxRetries?: number;\n /**\n * Whether to follow redirects to a different origin (scheme + host + port).\n * When false (the default), cross-origin redirects are not followed and the\n * redirect response is returned directly to the caller.\n * Defaults to false.\n */\n allowCrossOriginRedirects?: boolean;\n}\n\n/**\n * A policy to follow Location headers from the server in order\n * to support server-side redirection.\n * In the browser, this policy is not used.\n * @param options - Options to control policy behavior.\n */\nexport function redirectPolicy(options: RedirectPolicyOptions = {}): PipelinePolicy {\n const { maxRetries = 20, allowCrossOriginRedirects = false } = options;\n return {\n name: redirectPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n const response = await next(request);\n return handleRedirect(next, response, maxRetries, allowCrossOriginRedirects);\n },\n };\n}\n\nasync function handleRedirect(\n next: SendRequest,\n response: PipelineResponse,\n maxRetries: number,\n allowCrossOriginRedirects: boolean,\n currentRetries: number = 0,\n): Promise<PipelineResponse> {\n const { request, status, headers } = response;\n const locationHeader = headers.get(\"location\");\n if (\n locationHeader &&\n (status === 300 ||\n (status === 301 && allowedRedirect.includes(request.method)) ||\n (status === 302 && allowedRedirect.includes(request.method)) ||\n (status === 303 && request.method === \"POST\") ||\n status === 307) &&\n currentRetries < maxRetries\n ) {\n const url = new URL(locationHeader, request.url);\n\n // Only follow redirects to the same origin by default.\n if (!allowCrossOriginRedirects) {\n const originalUrl = new URL(request.url);\n if (url.origin !== originalUrl.origin) {\n logger.verbose(\n `Skipping cross-origin redirect from ${originalUrl.origin} to ${url.origin}.`,\n );\n return response;\n }\n }\n\n request.url = url.toString();\n\n // POST request with Status code 303 should be converted into a\n // redirected GET request if the redirect url is present in the location header\n if (status === 303) {\n request.method = \"GET\";\n request.headers.delete(\"Content-Length\");\n delete request.body;\n }\n\n request.headers.delete(\"Authorization\");\n\n const res = await next(request);\n return handleRedirect(next, res, maxRetries, allowCrossOriginRedirects, currentRetries + 1);\n }\n\n return response;\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,iBAAuB;AAKhB,MAAM,qBAAqB;AAKlC,MAAM,kBAAkB,CAAC,OAAO,MAAM;AA0B/B,SAAS,eAAe,UAAiC,CAAC,GAAmB;AAClF,QAAM,EAAE,aAAa,IAAI,4BAA4B,MAAM,IAAI;AAC/D,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,YAAY,SAA0B,MAA8C;AACxF,YAAM,WAAW,MAAM,KAAK,OAAO;AACnC,aAAO,eAAe,MAAM,UAAU,YAAY,yBAAyB;AAAA,IAC7E;AAAA,EACF;AACF;AAEA,eAAe,eACb,MACA,UACA,YACA,2BACA,iBAAyB,GACE;AAC3B,QAAM,EAAE,SAAS,QAAQ,QAAQ,IAAI;AACrC,QAAM,iBAAiB,QAAQ,IAAI,UAAU;AAC7C,MACE,mBACC,WAAW,OACT,WAAW,OAAO,gBAAgB,SAAS,QAAQ,MAAM,KACzD,WAAW,OAAO,gBAAgB,SAAS,QAAQ,MAAM,KACzD,WAAW,OAAO,QAAQ,WAAW,UACtC,WAAW,QACb,iBAAiB,YACjB;AACA,UAAM,MAAM,IAAI,IAAI,gBAAgB,QAAQ,GAAG;AAG/C,QAAI,CAAC,2BAA2B;AAC9B,YAAM,cAAc,IAAI,IAAI,QAAQ,GAAG;AACvC,UAAI,IAAI,WAAW,YAAY,QAAQ;AACrC,0BAAO;AAAA,UACL,uCAAuC,YAAY,MAAM,OAAO,IAAI,MAAM;AAAA,QAC5E;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAEA,YAAQ,MAAM,IAAI,SAAS;AAI3B,QAAI,WAAW,KAAK;AAClB,cAAQ,SAAS;AACjB,cAAQ,QAAQ,OAAO,gBAAgB;AACvC,aAAO,QAAQ;AAAA,IACjB;AAEA,YAAQ,QAAQ,OAAO,eAAe;AAEtC,UAAM,MAAM,MAAM,KAAK,OAAO;AAC9B,WAAO,eAAe,MAAM,KAAK,YAAY,2BAA2B,iBAAiB,CAAC;AAAA,EAC5F;AAEA,SAAO;AACT;",
6
6
  "names": []
@@ -21,6 +21,7 @@ __export(retryPolicy_exports, {
21
21
  });
22
22
  module.exports = __toCommonJS(retryPolicy_exports);
23
23
  var import_helpers = require("../util/helpers.js");
24
+ var import_restError = require("../restError.js");
24
25
  var import_AbortError = require("../abort-controller/AbortError.js");
25
26
  var import_logger = require("../logger/logger.js");
26
27
  var import_constants = require("../constants.js");
@@ -44,11 +45,11 @@ function retryPolicy(strategies, options = { maxRetries: import_constants.DEFAUL
44
45
  logger.info(`Retry ${retryCount}: Received a response from request`, request.requestId);
45
46
  } catch (e) {
46
47
  logger.error(`Retry ${retryCount}: Received an error from request`, request.requestId);
47
- responseError = e;
48
- if (!e || responseError.name !== "RestError") {
48
+ if (!(0, import_restError.isRestError)(e)) {
49
49
  throw e;
50
50
  }
51
- response = responseError.response;
51
+ responseError = e;
52
+ response = e.response;
52
53
  }
53
54
  if (request.abortSignal?.aborted) {
54
55
  logger.error(`Retry ${retryCount}: Request aborted.`);
@@ -123,3 +124,4 @@ function retryPolicy(strategies, options = { maxRetries: import_constants.DEFAUL
123
124
  0 && (module.exports = {
124
125
  retryPolicy
125
126
  });
127
+ //# sourceMappingURL=retryPolicy.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/core/ts-http-runtime/src/policies/retryPolicy.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PipelineRequest, PipelineResponse, SendRequest } from \"../interfaces.js\";\nimport type { PipelinePolicy } from \"../pipeline.js\";\nimport { delay } from \"../util/helpers.js\";\nimport type { RetryStrategy } from \"../retryStrategies/retryStrategy.js\";\nimport type { RestError } from \"../restError.js\";\nimport { AbortError } from \"../abort-controller/AbortError.js\";\nimport type { TypeSpecRuntimeLogger } from \"../logger/logger.js\";\nimport { createClientLogger } from \"../logger/logger.js\";\nimport { DEFAULT_RETRY_POLICY_COUNT } from \"../constants.js\";\n\nconst retryPolicyLogger = createClientLogger(\"ts-http-runtime retryPolicy\");\n\n/**\n * The programmatic identifier of the retryPolicy.\n */\nconst retryPolicyName = \"retryPolicy\";\n\n/**\n * Options to the {@link retryPolicy}\n */\nexport interface RetryPolicyOptions {\n /**\n * Maximum number of retries. If not specified, it will limit to 3 retries.\n */\n maxRetries?: number;\n /**\n * Logger. If it's not provided, a default logger is used.\n */\n logger?: TypeSpecRuntimeLogger;\n}\n\n/**\n * retryPolicy is a generic policy to enable retrying requests when certain conditions are met\n */\nexport function retryPolicy(\n strategies: RetryStrategy[],\n options: RetryPolicyOptions = { maxRetries: DEFAULT_RETRY_POLICY_COUNT },\n): PipelinePolicy {\n const logger = options.logger || retryPolicyLogger;\n return {\n name: retryPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n let response: PipelineResponse | undefined;\n let responseError: RestError | undefined;\n let retryCount = -1;\n\n retryRequest: while (true) {\n retryCount += 1;\n response = undefined;\n responseError = undefined;\n\n try {\n logger.info(`Retry ${retryCount}: Attempting to send request`, request.requestId);\n response = await next(request);\n logger.info(`Retry ${retryCount}: Received a response from request`, request.requestId);\n } catch (e: any) {\n logger.error(`Retry ${retryCount}: Received an error from request`, request.requestId);\n\n // RestErrors are valid targets for the retry strategies.\n // If none of the retry strategies can work with them, they will be thrown later in this policy.\n // If the received error is not a RestError, it is immediately thrown.\n responseError = e as RestError;\n if (!e || responseError.name !== \"RestError\") {\n throw e;\n }\n\n response = responseError.response;\n }\n\n if (request.abortSignal?.aborted) {\n logger.error(`Retry ${retryCount}: Request aborted.`);\n const abortError = new AbortError();\n throw abortError;\n }\n\n if (retryCount >= (options.maxRetries ?? DEFAULT_RETRY_POLICY_COUNT)) {\n logger.info(\n `Retry ${retryCount}: Maximum retries reached. Returning the last received response, or throwing the last received error.`,\n );\n if (responseError) {\n throw responseError;\n } else if (response) {\n return response;\n } else {\n throw new Error(\"Maximum retries reached with no response or error to throw\");\n }\n }\n\n logger.info(`Retry ${retryCount}: Processing ${strategies.length} retry strategies.`);\n\n strategiesLoop: for (const strategy of strategies) {\n const strategyLogger = strategy.logger || logger;\n strategyLogger.info(`Retry ${retryCount}: Processing retry strategy ${strategy.name}.`);\n\n const modifiers = strategy.retry({\n retryCount,\n response,\n responseError,\n });\n\n if (modifiers.skipStrategy) {\n strategyLogger.info(`Retry ${retryCount}: Skipped.`);\n continue strategiesLoop;\n }\n\n const { errorToThrow, retryAfterInMs, redirectTo } = modifiers;\n\n if (errorToThrow) {\n strategyLogger.error(\n `Retry ${retryCount}: Retry strategy ${strategy.name} throws error:`,\n errorToThrow,\n );\n throw errorToThrow;\n }\n\n if (retryAfterInMs || retryAfterInMs === 0) {\n strategyLogger.info(\n `Retry ${retryCount}: Retry strategy ${strategy.name} retries after ${retryAfterInMs}`,\n );\n await delay(retryAfterInMs, undefined, { abortSignal: request.abortSignal });\n continue retryRequest;\n }\n\n if (redirectTo) {\n strategyLogger.info(\n `Retry ${retryCount}: Retry strategy ${strategy.name} redirects to ${redirectTo}`,\n );\n request.url = redirectTo;\n continue retryRequest;\n }\n }\n\n if (responseError) {\n logger.info(\n `None of the retry strategies could work with the received error. Throwing it.`,\n );\n throw responseError;\n }\n if (response) {\n logger.info(\n `None of the retry strategies could work with the received response. Returning it.`,\n );\n return response;\n }\n\n // If all the retries skip and there's no response,\n // we're still in the retry loop, so a new request will be sent\n // until `maxRetries` is reached.\n }\n },\n };\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,qBAAsB;AAGtB,wBAA2B;AAE3B,oBAAmC;AACnC,uBAA2C;AAE3C,MAAM,wBAAoB,kCAAmB,6BAA6B;AAK1E,MAAM,kBAAkB;AAmBjB,SAAS,YACd,YACA,UAA8B,EAAE,YAAY,4CAA2B,GACvD;AAChB,QAAM,SAAS,QAAQ,UAAU;AACjC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,YAAY,SAA0B,MAA8C;AACxF,UAAI;AACJ,UAAI;AACJ,UAAI,aAAa;AAEjB,mBAAc,QAAO,MAAM;AACzB,sBAAc;AACd,mBAAW;AACX,wBAAgB;AAEhB,YAAI;AACF,iBAAO,KAAK,SAAS,UAAU,gCAAgC,QAAQ,SAAS;AAChF,qBAAW,MAAM,KAAK,OAAO;AAC7B,iBAAO,KAAK,SAAS,UAAU,sCAAsC,QAAQ,SAAS;AAAA,QACxF,SAAS,GAAQ;AACf,iBAAO,MAAM,SAAS,UAAU,oCAAoC,QAAQ,SAAS;AAKrF,0BAAgB;AAChB,cAAI,CAAC,KAAK,cAAc,SAAS,aAAa;AAC5C,kBAAM;AAAA,UACR;AAEA,qBAAW,cAAc;AAAA,QAC3B;AAEA,YAAI,QAAQ,aAAa,SAAS;AAChC,iBAAO,MAAM,SAAS,UAAU,oBAAoB;AACpD,gBAAM,aAAa,IAAI,6BAAW;AAClC,gBAAM;AAAA,QACR;AAEA,YAAI,eAAe,QAAQ,cAAc,8CAA6B;AACpE,iBAAO;AAAA,YACL,SAAS,UAAU;AAAA,UACrB;AACA,cAAI,eAAe;AACjB,kBAAM;AAAA,UACR,WAAW,UAAU;AACnB,mBAAO;AAAA,UACT,OAAO;AACL,kBAAM,IAAI,MAAM,4DAA4D;AAAA,UAC9E;AAAA,QACF;AAEA,eAAO,KAAK,SAAS,UAAU,gBAAgB,WAAW,MAAM,oBAAoB;AAEpF,uBAAgB,YAAW,YAAY,YAAY;AACjD,gBAAM,iBAAiB,SAAS,UAAU;AAC1C,yBAAe,KAAK,SAAS,UAAU,+BAA+B,SAAS,IAAI,GAAG;AAEtF,gBAAM,YAAY,SAAS,MAAM;AAAA,YAC/B;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC;AAED,cAAI,UAAU,cAAc;AAC1B,2BAAe,KAAK,SAAS,UAAU,YAAY;AACnD,qBAAS;AAAA,UACX;AAEA,gBAAM,EAAE,cAAc,gBAAgB,WAAW,IAAI;AAErD,cAAI,cAAc;AAChB,2BAAe;AAAA,cACb,SAAS,UAAU,oBAAoB,SAAS,IAAI;AAAA,cACpD;AAAA,YACF;AACA,kBAAM;AAAA,UACR;AAEA,cAAI,kBAAkB,mBAAmB,GAAG;AAC1C,2BAAe;AAAA,cACb,SAAS,UAAU,oBAAoB,SAAS,IAAI,kBAAkB,cAAc;AAAA,YACtF;AACA,sBAAM,sBAAM,gBAAgB,QAAW,EAAE,aAAa,QAAQ,YAAY,CAAC;AAC3E,qBAAS;AAAA,UACX;AAEA,cAAI,YAAY;AACd,2BAAe;AAAA,cACb,SAAS,UAAU,oBAAoB,SAAS,IAAI,iBAAiB,UAAU;AAAA,YACjF;AACA,oBAAQ,MAAM;AACd,qBAAS;AAAA,UACX;AAAA,QACF;AAEA,YAAI,eAAe;AACjB,iBAAO;AAAA,YACL;AAAA,UACF;AACA,gBAAM;AAAA,QACR;AACA,YAAI,UAAU;AACZ,iBAAO;AAAA,YACL;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAAA,MAKF;AAAA,IACF;AAAA,EACF;AACF;",
3
+ "sources": ["../../../src/policies/retryPolicy.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PipelineRequest, PipelineResponse, SendRequest } from \"../interfaces.js\";\nimport type { PipelinePolicy } from \"../pipeline.js\";\nimport { delay } from \"../util/helpers.js\";\nimport type { RetryStrategy } from \"../retryStrategies/retryStrategy.js\";\nimport type { RestError } from \"../restError.js\";\nimport { isRestError } from \"../restError.js\";\nimport { AbortError } from \"../abort-controller/AbortError.js\";\nimport type { TypeSpecRuntimeLogger } from \"../logger/logger.js\";\nimport { createClientLogger } from \"../logger/logger.js\";\nimport { DEFAULT_RETRY_POLICY_COUNT } from \"../constants.js\";\n\nconst retryPolicyLogger = createClientLogger(\"ts-http-runtime retryPolicy\");\n\n/**\n * The programmatic identifier of the retryPolicy.\n */\nconst retryPolicyName = \"retryPolicy\";\n\n/**\n * Options to the {@link retryPolicy}\n */\nexport interface RetryPolicyOptions {\n /**\n * Maximum number of retries. If not specified, it will limit to 3 retries.\n */\n maxRetries?: number;\n /**\n * Logger. If it's not provided, a default logger is used.\n */\n logger?: TypeSpecRuntimeLogger;\n}\n\n/**\n * retryPolicy is a generic policy to enable retrying requests when certain conditions are met\n */\nexport function retryPolicy(\n strategies: RetryStrategy[],\n options: RetryPolicyOptions = { maxRetries: DEFAULT_RETRY_POLICY_COUNT },\n): PipelinePolicy {\n const logger = options.logger || retryPolicyLogger;\n return {\n name: retryPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n let response: PipelineResponse | undefined;\n let responseError: RestError | undefined;\n let retryCount = -1;\n\n retryRequest: while (true) {\n retryCount += 1;\n response = undefined;\n responseError = undefined;\n\n try {\n logger.info(`Retry ${retryCount}: Attempting to send request`, request.requestId);\n response = await next(request);\n logger.info(`Retry ${retryCount}: Received a response from request`, request.requestId);\n } catch (e) {\n logger.error(`Retry ${retryCount}: Received an error from request`, request.requestId);\n\n // RestErrors are valid targets for the retry strategies.\n // If none of the retry strategies can work with them, they will be thrown later in this policy.\n // If the received error is not a RestError, it is immediately thrown.\n if (!isRestError(e)) {\n throw e;\n }\n\n responseError = e;\n response = e.response;\n }\n\n if (request.abortSignal?.aborted) {\n logger.error(`Retry ${retryCount}: Request aborted.`);\n const abortError = new AbortError();\n throw abortError;\n }\n\n if (retryCount >= (options.maxRetries ?? DEFAULT_RETRY_POLICY_COUNT)) {\n logger.info(\n `Retry ${retryCount}: Maximum retries reached. Returning the last received response, or throwing the last received error.`,\n );\n if (responseError) {\n throw responseError;\n } else if (response) {\n return response;\n } else {\n throw new Error(\"Maximum retries reached with no response or error to throw\");\n }\n }\n\n logger.info(`Retry ${retryCount}: Processing ${strategies.length} retry strategies.`);\n\n strategiesLoop: for (const strategy of strategies) {\n const strategyLogger = strategy.logger || logger;\n strategyLogger.info(`Retry ${retryCount}: Processing retry strategy ${strategy.name}.`);\n\n const modifiers = strategy.retry({\n retryCount,\n response,\n responseError,\n });\n\n if (modifiers.skipStrategy) {\n strategyLogger.info(`Retry ${retryCount}: Skipped.`);\n continue strategiesLoop;\n }\n\n const { errorToThrow, retryAfterInMs, redirectTo } = modifiers;\n\n if (errorToThrow) {\n strategyLogger.error(\n `Retry ${retryCount}: Retry strategy ${strategy.name} throws error:`,\n errorToThrow,\n );\n throw errorToThrow;\n }\n\n if (retryAfterInMs || retryAfterInMs === 0) {\n strategyLogger.info(\n `Retry ${retryCount}: Retry strategy ${strategy.name} retries after ${retryAfterInMs}`,\n );\n await delay(retryAfterInMs, undefined, { abortSignal: request.abortSignal });\n continue retryRequest;\n }\n\n if (redirectTo) {\n strategyLogger.info(\n `Retry ${retryCount}: Retry strategy ${strategy.name} redirects to ${redirectTo}`,\n );\n request.url = redirectTo;\n continue retryRequest;\n }\n }\n\n if (responseError) {\n logger.info(\n `None of the retry strategies could work with the received error. Throwing it.`,\n );\n throw responseError;\n }\n if (response) {\n logger.info(\n `None of the retry strategies could work with the received response. Returning it.`,\n );\n return response;\n }\n\n // If all the retries skip and there's no response,\n // we're still in the retry loop, so a new request will be sent\n // until `maxRetries` is reached.\n }\n },\n };\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,qBAAsB;AAGtB,uBAA4B;AAC5B,wBAA2B;AAE3B,oBAAmC;AACnC,uBAA2C;AAE3C,MAAM,wBAAoB,kCAAmB,6BAA6B;AAK1E,MAAM,kBAAkB;AAmBjB,SAAS,YACd,YACA,UAA8B,EAAE,YAAY,4CAA2B,GACvD;AAChB,QAAM,SAAS,QAAQ,UAAU;AACjC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,YAAY,SAA0B,MAA8C;AACxF,UAAI;AACJ,UAAI;AACJ,UAAI,aAAa;AAEjB,mBAAc,QAAO,MAAM;AACzB,sBAAc;AACd,mBAAW;AACX,wBAAgB;AAEhB,YAAI;AACF,iBAAO,KAAK,SAAS,UAAU,gCAAgC,QAAQ,SAAS;AAChF,qBAAW,MAAM,KAAK,OAAO;AAC7B,iBAAO,KAAK,SAAS,UAAU,sCAAsC,QAAQ,SAAS;AAAA,QACxF,SAAS,GAAG;AACV,iBAAO,MAAM,SAAS,UAAU,oCAAoC,QAAQ,SAAS;AAKrF,cAAI,KAAC,8BAAY,CAAC,GAAG;AACnB,kBAAM;AAAA,UACR;AAEA,0BAAgB;AAChB,qBAAW,EAAE;AAAA,QACf;AAEA,YAAI,QAAQ,aAAa,SAAS;AAChC,iBAAO,MAAM,SAAS,UAAU,oBAAoB;AACpD,gBAAM,aAAa,IAAI,6BAAW;AAClC,gBAAM;AAAA,QACR;AAEA,YAAI,eAAe,QAAQ,cAAc,8CAA6B;AACpE,iBAAO;AAAA,YACL,SAAS,UAAU;AAAA,UACrB;AACA,cAAI,eAAe;AACjB,kBAAM;AAAA,UACR,WAAW,UAAU;AACnB,mBAAO;AAAA,UACT,OAAO;AACL,kBAAM,IAAI,MAAM,4DAA4D;AAAA,UAC9E;AAAA,QACF;AAEA,eAAO,KAAK,SAAS,UAAU,gBAAgB,WAAW,MAAM,oBAAoB;AAEpF,uBAAgB,YAAW,YAAY,YAAY;AACjD,gBAAM,iBAAiB,SAAS,UAAU;AAC1C,yBAAe,KAAK,SAAS,UAAU,+BAA+B,SAAS,IAAI,GAAG;AAEtF,gBAAM,YAAY,SAAS,MAAM;AAAA,YAC/B;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC;AAED,cAAI,UAAU,cAAc;AAC1B,2BAAe,KAAK,SAAS,UAAU,YAAY;AACnD,qBAAS;AAAA,UACX;AAEA,gBAAM,EAAE,cAAc,gBAAgB,WAAW,IAAI;AAErD,cAAI,cAAc;AAChB,2BAAe;AAAA,cACb,SAAS,UAAU,oBAAoB,SAAS,IAAI;AAAA,cACpD;AAAA,YACF;AACA,kBAAM;AAAA,UACR;AAEA,cAAI,kBAAkB,mBAAmB,GAAG;AAC1C,2BAAe;AAAA,cACb,SAAS,UAAU,oBAAoB,SAAS,IAAI,kBAAkB,cAAc;AAAA,YACtF;AACA,sBAAM,sBAAM,gBAAgB,QAAW,EAAE,aAAa,QAAQ,YAAY,CAAC;AAC3E,qBAAS;AAAA,UACX;AAEA,cAAI,YAAY;AACd,2BAAe;AAAA,cACb,SAAS,UAAU,oBAAoB,SAAS,IAAI,iBAAiB,UAAU;AAAA,YACjF;AACA,oBAAQ,MAAM;AACd,qBAAS;AAAA,UACX;AAAA,QACF;AAEA,YAAI,eAAe;AACjB,iBAAO;AAAA,YACL;AAAA,UACF;AACA,gBAAM;AAAA,QACR;AACA,YAAI,UAAU;AACZ,iBAAO;AAAA,YACL;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAAA,MAKF;AAAA,IACF;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -46,3 +46,4 @@ function systemErrorRetryPolicy(options = {}) {
46
46
  systemErrorRetryPolicy,
47
47
  systemErrorRetryPolicyName
48
48
  });
49
+ //# sourceMappingURL=systemErrorRetryPolicy.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/core/ts-http-runtime/src/policies/systemErrorRetryPolicy.ts"],
3
+ "sources": ["../../../src/policies/systemErrorRetryPolicy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PipelinePolicy } from \"../pipeline.js\";\nimport { exponentialRetryStrategy } from \"../retryStrategies/exponentialRetryStrategy.js\";\nimport { retryPolicy } from \"./retryPolicy.js\";\nimport { DEFAULT_RETRY_POLICY_COUNT } from \"../constants.js\";\n\n/**\n * Name of the {@link systemErrorRetryPolicy}\n */\nexport const systemErrorRetryPolicyName = \"systemErrorRetryPolicy\";\n\n/**\n * Options that control how to retry failed requests.\n */\nexport interface SystemErrorRetryPolicyOptions {\n /**\n * The maximum number of retry attempts. Defaults to 3.\n */\n maxRetries?: number;\n\n /**\n * The amount of delay in milliseconds between retry attempts. Defaults to 1000\n * (1 second.) The delay increases exponentially with each retry up to a maximum\n * specified by maxRetryDelayInMs.\n */\n retryDelayInMs?: number;\n\n /**\n * The maximum delay in milliseconds allowed before retrying an operation. Defaults\n * to 64000 (64 seconds).\n */\n maxRetryDelayInMs?: number;\n}\n\n/**\n * A retry policy that specifically seeks to handle errors in the\n * underlying transport layer (e.g. DNS lookup failures) rather than\n * retryable error codes from the server itself.\n * @param options - Options that customize the policy.\n */\nexport function systemErrorRetryPolicy(\n options: SystemErrorRetryPolicyOptions = {},\n): PipelinePolicy {\n return {\n name: systemErrorRetryPolicyName,\n sendRequest: retryPolicy(\n [\n exponentialRetryStrategy({\n ...options,\n ignoreHttpStatusCodes: true,\n }),\n ],\n {\n maxRetries: options.maxRetries ?? DEFAULT_RETRY_POLICY_COUNT,\n },\n ).sendRequest,\n };\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,sCAAyC;AACzC,yBAA4B;AAC5B,uBAA2C;AAKpC,MAAM,6BAA6B;AA+BnC,SAAS,uBACd,UAAyC,CAAC,GAC1B;AAChB,SAAO;AAAA,IACL,MAAM;AAAA,IACN,iBAAa;AAAA,MACX;AAAA,YACE,0DAAyB;AAAA,UACvB,GAAG;AAAA,UACH,uBAAuB;AAAA,QACzB,CAAC;AAAA,MACH;AAAA,MACA;AAAA,QACE,YAAY,QAAQ,cAAc;AAAA,MACpC;AAAA,IACF,EAAE;AAAA,EACJ;AACF;",
6
6
  "names": []
@@ -38,3 +38,4 @@ function throttlingRetryPolicy(options = {}) {
38
38
  throttlingRetryPolicy,
39
39
  throttlingRetryPolicyName
40
40
  });
41
+ //# sourceMappingURL=throttlingRetryPolicy.js.map