@typespec/ts-http-runtime 0.3.5 → 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 (454) 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 +13 -10
  12. package/dist/browser/client/sendRequest.js.map +1 -1
  13. package/dist/browser/constants.js +1 -1
  14. package/dist/browser/constants.js.map +1 -1
  15. package/dist/browser/createPipelineFromOptions.d.ts +1 -1
  16. package/dist/browser/createPipelineFromOptions.js +2 -21
  17. package/dist/browser/createPipelineFromOptions.js.map +1 -1
  18. package/dist/browser/{defaultHttpClient.d.ts → defaultHttpClient-browser.d.mts} +1 -1
  19. package/dist/browser/{defaultHttpClient.js → defaultHttpClient-browser.mjs} +1 -1
  20. package/dist/browser/defaultHttpClient-browser.mjs.map +1 -0
  21. package/dist/browser/encoding.d.ts +13 -0
  22. package/dist/browser/encoding.js +19 -0
  23. package/dist/browser/encoding.js.map +1 -0
  24. package/dist/{commonjs/util/checkEnvironment.d.ts → browser/env-browser.d.mts} +21 -1
  25. package/dist/{esm/util/checkEnvironment.js → browser/env-browser.mjs} +26 -12
  26. package/dist/browser/env-browser.mjs.map +1 -0
  27. package/dist/browser/formData-web.d.mts +9 -0
  28. package/dist/browser/formData-web.mjs +12 -0
  29. package/dist/browser/formData-web.mjs.map +1 -0
  30. package/dist/browser/httpHeaders.js +11 -1
  31. package/dist/browser/httpHeaders.js.map +1 -1
  32. package/dist/browser/index.d.ts +3 -14
  33. package/dist/browser/index.js +2 -2
  34. package/dist/browser/index.js.map +1 -1
  35. package/dist/browser/interfaces.d.ts +15 -14
  36. package/dist/browser/interfaces.js.map +1 -1
  37. package/dist/browser/logger/debug.js +3 -2
  38. package/dist/browser/logger/debug.js.map +1 -1
  39. package/dist/{react-native/logger/log.d.ts → browser/logger/log-web.d.mts} +1 -1
  40. package/dist/browser/logger/{log.js → log-web.mjs} +1 -1
  41. package/dist/browser/logger/log-web.mjs.map +1 -0
  42. package/dist/browser/logger/logger.js +2 -2
  43. package/dist/browser/logger/logger.js.map +1 -1
  44. package/dist/browser/pipelineRequest.js +1 -1
  45. package/dist/browser/pipelineRequest.js.map +1 -1
  46. package/dist/browser/policies/auth/basicAuthenticationPolicy.js +1 -1
  47. package/dist/browser/policies/auth/basicAuthenticationPolicy.js.map +1 -1
  48. package/dist/browser/policies/auth/checkInsecureConnection.js +3 -2
  49. package/dist/browser/policies/auth/checkInsecureConnection.js.map +1 -1
  50. package/dist/browser/policies/{decompressResponsePolicy.d.ts → decompressResponsePolicy-web.d.mts} +1 -1
  51. package/dist/browser/policies/{decompressResponsePolicy.js → decompressResponsePolicy-web.mjs} +1 -1
  52. package/dist/browser/policies/decompressResponsePolicy-web.mjs.map +1 -0
  53. package/dist/browser/policies/formDataPolicy.js +5 -12
  54. package/dist/browser/policies/formDataPolicy.js.map +1 -1
  55. package/dist/browser/policies/internal.d.ts +2 -2
  56. package/dist/browser/policies/internal.js +2 -2
  57. package/dist/browser/policies/internal.js.map +1 -1
  58. package/dist/browser/policies/multipartPolicy.js +7 -3
  59. package/dist/browser/policies/multipartPolicy.js.map +1 -1
  60. package/dist/browser/policies/platformPolicies-web.d.mts +10 -0
  61. package/dist/browser/policies/platformPolicies-web.mjs +12 -0
  62. package/dist/browser/policies/platformPolicies-web.mjs.map +1 -0
  63. package/dist/browser/policies/platformPolicies.d.ts +25 -0
  64. package/dist/browser/policies/platformPolicies.js +30 -0
  65. package/dist/browser/policies/platformPolicies.js.map +1 -0
  66. package/dist/browser/policies/proxyPolicy-web.d.mts +2 -0
  67. package/dist/{react-native/policies/proxyPolicy.js → browser/policies/proxyPolicy-web.mjs} +1 -1
  68. package/dist/browser/policies/proxyPolicy-web.mjs.map +1 -0
  69. package/dist/browser/restError.js +1 -1
  70. package/dist/browser/restError.js.map +1 -1
  71. package/dist/browser/types-browser.d.mts +19 -0
  72. package/dist/browser/types-browser.mjs +4 -0
  73. package/dist/browser/types-browser.mjs.map +1 -0
  74. package/dist/browser/util/bytesEncoding-web.d.mts +2 -0
  75. package/dist/{react-native/util/bytesEncoding.js → browser/util/bytesEncoding-web.mjs} +1 -1
  76. package/dist/browser/util/bytesEncoding-web.mjs.map +1 -0
  77. package/dist/browser/util/bytesEncoding.common.d.ts +4 -4
  78. package/dist/browser/util/bytesEncoding.common.js +3 -4
  79. package/dist/browser/util/bytesEncoding.common.js.map +1 -1
  80. package/dist/browser/util/concat-browser.d.mts +16 -0
  81. package/dist/browser/util/{concat.js → concat-browser.mjs} +4 -11
  82. package/dist/browser/util/concat-browser.mjs.map +1 -0
  83. package/dist/browser/util/inspect-web.d.mts +2 -0
  84. package/dist/{react-native/util/inspect.js → browser/util/inspect-web.mjs} +1 -1
  85. package/dist/browser/util/inspect-web.mjs.map +1 -0
  86. package/dist/browser/util/internal.d.ts +4 -4
  87. package/dist/browser/util/internal.js +4 -4
  88. package/dist/browser/util/internal.js.map +1 -1
  89. package/dist/browser/util/sha256-web.d.mts +2 -0
  90. package/dist/{react-native/util/sha256.js → browser/util/sha256-web.mjs} +1 -1
  91. package/dist/browser/util/sha256-web.mjs.map +1 -0
  92. package/dist/browser/util/sha256.common.js +1 -1
  93. package/dist/browser/util/sha256.common.js.map +1 -1
  94. package/dist/browser/util/typeGuards-browser.d.mts +14 -0
  95. package/dist/browser/util/typeGuards-browser.mjs +26 -0
  96. package/dist/browser/util/typeGuards-browser.mjs.map +1 -0
  97. package/dist/browser/util/typeGuards.d.ts +5 -4
  98. package/dist/browser/util/typeGuards.js +4 -10
  99. package/dist/browser/util/typeGuards.js.map +1 -1
  100. package/dist/browser/util/userAgent.d.ts +2 -0
  101. package/dist/browser/util/userAgent.js +2 -1
  102. package/dist/browser/util/userAgent.js.map +1 -1
  103. package/dist/browser/util/{userAgentPlatform.d.ts → userAgentPlatform-browser.d.mts} +1 -1
  104. package/dist/browser/util/{userAgentPlatform.js → userAgentPlatform-browser.mjs} +1 -1
  105. package/dist/browser/util/userAgentPlatform-browser.mjs.map +1 -0
  106. package/dist/browser/util/{uuidUtils.d.ts → uuidUtils-browser.d.mts} +1 -1
  107. package/dist/browser/util/{uuidUtils.js → uuidUtils-browser.mjs} +1 -1
  108. package/dist/browser/util/uuidUtils-browser.mjs.map +1 -0
  109. package/dist/commonjs/client/clientHelpers.js +2 -2
  110. package/dist/commonjs/client/clientHelpers.js.map +2 -2
  111. package/dist/commonjs/client/common.d.ts +3 -2
  112. package/dist/commonjs/client/common.js.map +1 -1
  113. package/dist/commonjs/client/getClient.js +3 -3
  114. package/dist/commonjs/client/getClient.js.map +2 -2
  115. package/dist/commonjs/client/multipart.js.map +1 -1
  116. package/dist/commonjs/client/restError.js +5 -4
  117. package/dist/commonjs/client/restError.js.map +2 -2
  118. package/dist/commonjs/client/sendRequest.js +26 -8
  119. package/dist/commonjs/client/sendRequest.js.map +2 -2
  120. package/dist/commonjs/constants.js +1 -1
  121. package/dist/commonjs/constants.js.map +1 -1
  122. package/dist/commonjs/createPipelineFromOptions.d.ts +1 -1
  123. package/dist/commonjs/createPipelineFromOptions.js +2 -19
  124. package/dist/commonjs/createPipelineFromOptions.js.map +2 -2
  125. package/dist/{browser/util/checkEnvironment.d.ts → commonjs/env.d.ts} +21 -1
  126. package/dist/commonjs/env.js +67 -0
  127. package/dist/commonjs/env.js.map +7 -0
  128. package/dist/commonjs/formData.d.ts +10 -0
  129. package/dist/commonjs/{logger/log.common.js → formData.js} +18 -19
  130. package/dist/commonjs/formData.js.map +7 -0
  131. package/dist/commonjs/httpHeaders.js +4 -1
  132. package/dist/commonjs/httpHeaders.js.map +2 -2
  133. package/dist/commonjs/index.d.ts +1 -12
  134. package/dist/commonjs/index.js +2 -2
  135. package/dist/commonjs/index.js.map +2 -2
  136. package/dist/commonjs/interfaces.d.ts +15 -14
  137. package/dist/commonjs/interfaces.js.map +1 -1
  138. package/dist/commonjs/logger/debug.js +2 -1
  139. package/dist/commonjs/logger/debug.js.map +2 -2
  140. package/dist/commonjs/logger/logger.js +2 -1
  141. package/dist/commonjs/logger/logger.js.map +2 -2
  142. package/dist/commonjs/nodeHttpClient.js +3 -1
  143. package/dist/commonjs/nodeHttpClient.js.map +2 -2
  144. package/dist/commonjs/pipelineRequest.js +2 -2
  145. package/dist/commonjs/pipelineRequest.js.map +2 -2
  146. package/dist/commonjs/policies/auth/basicAuthenticationPolicy.js.map +1 -1
  147. package/dist/commonjs/policies/auth/checkInsecureConnection.js +3 -2
  148. package/dist/commonjs/policies/auth/checkInsecureConnection.js.map +2 -2
  149. package/dist/commonjs/policies/formDataPolicy.js +4 -11
  150. package/dist/commonjs/policies/formDataPolicy.js.map +2 -2
  151. package/dist/commonjs/policies/internal.d.ts +1 -1
  152. package/dist/commonjs/policies/internal.js +7 -7
  153. package/dist/commonjs/policies/internal.js.map +2 -2
  154. package/dist/commonjs/policies/multipartPolicy.js +2 -2
  155. package/dist/commonjs/policies/multipartPolicy.js.map +2 -2
  156. package/dist/commonjs/policies/platformPolicies.d.ts +25 -0
  157. package/dist/commonjs/policies/platformPolicies.js +43 -0
  158. package/dist/commonjs/policies/platformPolicies.js.map +7 -0
  159. package/dist/commonjs/restError.js.map +1 -1
  160. package/dist/commonjs/tsdoc-metadata.json +1 -1
  161. package/dist/commonjs/types.d.ts +19 -0
  162. package/dist/commonjs/types.js +16 -0
  163. package/dist/commonjs/types.js.map +7 -0
  164. package/dist/commonjs/util/concat.d.ts +1 -1
  165. package/dist/commonjs/util/concat.js.map +2 -2
  166. package/dist/commonjs/util/internal.d.ts +1 -1
  167. package/dist/commonjs/util/internal.js +10 -10
  168. package/dist/commonjs/util/internal.js.map +2 -2
  169. package/dist/commonjs/util/typeGuards-node.d.ts +13 -0
  170. package/dist/commonjs/util/{inspect.common.js → typeGuards-node.js} +15 -7
  171. package/dist/commonjs/util/typeGuards-node.js.map +7 -0
  172. package/dist/commonjs/util/typeGuards.d.ts +5 -4
  173. package/dist/commonjs/util/typeGuards.js +6 -13
  174. package/dist/commonjs/util/typeGuards.js.map +2 -2
  175. package/dist/commonjs/util/userAgent.d.ts +2 -0
  176. package/dist/commonjs/util/userAgent.js +7 -5
  177. package/dist/commonjs/util/userAgent.js.map +2 -2
  178. package/dist/esm/client/clientHelpers.js.map +1 -1
  179. package/dist/esm/client/common.d.ts +3 -2
  180. package/dist/esm/client/common.js.map +1 -1
  181. package/dist/esm/client/getClient.js +1 -1
  182. package/dist/esm/client/getClient.js.map +1 -1
  183. package/dist/esm/client/multipart.js.map +1 -1
  184. package/dist/esm/client/restError.js +5 -4
  185. package/dist/esm/client/restError.js.map +1 -1
  186. package/dist/esm/client/sendRequest.js +13 -10
  187. package/dist/esm/client/sendRequest.js.map +1 -1
  188. package/dist/esm/constants.js +1 -1
  189. package/dist/esm/constants.js.map +1 -1
  190. package/dist/esm/createPipelineFromOptions.d.ts +1 -1
  191. package/dist/esm/createPipelineFromOptions.js +2 -21
  192. package/dist/esm/createPipelineFromOptions.js.map +1 -1
  193. package/dist/{react-native/util/checkEnvironment.d.ts → esm/env.d.ts} +21 -1
  194. package/dist/esm/env.js +48 -0
  195. package/dist/esm/env.js.map +1 -0
  196. package/dist/esm/formData.d.ts +10 -0
  197. package/dist/esm/formData.js +26 -0
  198. package/dist/esm/formData.js.map +1 -0
  199. package/dist/esm/httpHeaders.js +11 -1
  200. package/dist/esm/httpHeaders.js.map +1 -1
  201. package/dist/esm/index.d.ts +1 -12
  202. package/dist/esm/index.js.map +1 -1
  203. package/dist/esm/interfaces.d.ts +15 -14
  204. package/dist/esm/interfaces.js.map +1 -1
  205. package/dist/esm/logger/debug.js +2 -1
  206. package/dist/esm/logger/debug.js.map +1 -1
  207. package/dist/esm/logger/logger.js +2 -2
  208. package/dist/esm/logger/logger.js.map +1 -1
  209. package/dist/esm/nodeHttpClient.js +3 -1
  210. package/dist/esm/nodeHttpClient.js.map +1 -1
  211. package/dist/esm/pipelineRequest.js.map +1 -1
  212. package/dist/esm/policies/auth/basicAuthenticationPolicy.js.map +1 -1
  213. package/dist/esm/policies/auth/checkInsecureConnection.js +3 -2
  214. package/dist/esm/policies/auth/checkInsecureConnection.js.map +1 -1
  215. package/dist/esm/policies/formDataPolicy.js +4 -11
  216. package/dist/esm/policies/formDataPolicy.js.map +1 -1
  217. package/dist/esm/policies/internal.d.ts +1 -1
  218. package/dist/esm/policies/internal.js +1 -1
  219. package/dist/esm/policies/internal.js.map +1 -1
  220. package/dist/esm/policies/multipartPolicy.js +4 -0
  221. package/dist/esm/policies/multipartPolicy.js.map +1 -1
  222. package/dist/esm/policies/platformPolicies.d.ts +25 -0
  223. package/dist/esm/policies/platformPolicies.js +30 -0
  224. package/dist/esm/policies/platformPolicies.js.map +1 -0
  225. package/dist/esm/restError.js.map +1 -1
  226. package/dist/esm/types.d.ts +19 -0
  227. package/dist/esm/types.js +4 -0
  228. package/dist/esm/types.js.map +1 -0
  229. package/dist/esm/util/concat.d.ts +1 -1
  230. package/dist/esm/util/concat.js.map +1 -1
  231. package/dist/esm/util/internal.d.ts +1 -1
  232. package/dist/esm/util/internal.js +1 -1
  233. package/dist/esm/util/internal.js.map +1 -1
  234. package/dist/esm/util/typeGuards-node.d.ts +13 -0
  235. package/dist/esm/util/typeGuards-node.js +20 -0
  236. package/dist/esm/util/typeGuards-node.js.map +1 -0
  237. package/dist/esm/util/typeGuards.d.ts +5 -4
  238. package/dist/esm/util/typeGuards.js +4 -10
  239. package/dist/esm/util/typeGuards.js.map +1 -1
  240. package/dist/esm/util/userAgent.d.ts +2 -0
  241. package/dist/esm/util/userAgent.js +1 -0
  242. package/dist/esm/util/userAgent.js.map +1 -1
  243. package/dist/react-native/client/clientHelpers.js +1 -1
  244. package/dist/react-native/client/clientHelpers.js.map +1 -1
  245. package/dist/react-native/client/common.d.ts +3 -2
  246. package/dist/react-native/client/common.js.map +1 -1
  247. package/dist/react-native/client/getClient.js +1 -1
  248. package/dist/react-native/client/getClient.js.map +1 -1
  249. package/dist/react-native/client/multipart.js +1 -1
  250. package/dist/react-native/client/multipart.js.map +1 -1
  251. package/dist/react-native/client/restError.js +5 -4
  252. package/dist/react-native/client/restError.js.map +1 -1
  253. package/dist/react-native/client/sendRequest.js +13 -10
  254. package/dist/react-native/client/sendRequest.js.map +1 -1
  255. package/dist/react-native/constants.js +1 -1
  256. package/dist/react-native/constants.js.map +1 -1
  257. package/dist/react-native/createPipelineFromOptions.d.ts +1 -1
  258. package/dist/react-native/createPipelineFromOptions.js +2 -21
  259. package/dist/react-native/createPipelineFromOptions.js.map +1 -1
  260. package/dist/react-native/{defaultHttpClient.d.ts → defaultHttpClient-react-native.d.mts} +1 -1
  261. package/dist/react-native/{defaultHttpClient.js → defaultHttpClient-react-native.mjs} +1 -1
  262. package/dist/react-native/defaultHttpClient-react-native.mjs.map +1 -0
  263. package/dist/react-native/encoding-react-native.d.mts +21 -0
  264. package/dist/react-native/encoding-react-native.mjs +25 -0
  265. package/dist/react-native/encoding-react-native.mjs.map +1 -0
  266. package/dist/{esm/util/checkEnvironment.d.ts → react-native/env-react-native.d.mts} +21 -1
  267. package/dist/react-native/env-react-native.mjs +50 -0
  268. package/dist/react-native/env-react-native.mjs.map +1 -0
  269. package/dist/react-native/formData-web.d.mts +9 -0
  270. package/dist/react-native/formData-web.mjs +12 -0
  271. package/dist/react-native/formData-web.mjs.map +1 -0
  272. package/dist/react-native/httpHeaders.js +11 -1
  273. package/dist/react-native/httpHeaders.js.map +1 -1
  274. package/dist/react-native/index.d.ts +3 -14
  275. package/dist/react-native/index.js +2 -2
  276. package/dist/react-native/index.js.map +1 -1
  277. package/dist/react-native/interfaces.d.ts +15 -14
  278. package/dist/react-native/interfaces.js.map +1 -1
  279. package/dist/react-native/logger/debug.js +3 -2
  280. package/dist/react-native/logger/debug.js.map +1 -1
  281. package/dist/{browser/logger/log.d.ts → react-native/logger/log-web.d.mts} +1 -1
  282. package/dist/react-native/logger/{log.js → log-web.mjs} +1 -1
  283. package/dist/react-native/logger/log-web.mjs.map +1 -0
  284. package/dist/react-native/logger/logger.js +2 -2
  285. package/dist/react-native/logger/logger.js.map +1 -1
  286. package/dist/react-native/pipelineRequest.js +1 -1
  287. package/dist/react-native/pipelineRequest.js.map +1 -1
  288. package/dist/react-native/policies/auth/basicAuthenticationPolicy.js +1 -1
  289. package/dist/react-native/policies/auth/basicAuthenticationPolicy.js.map +1 -1
  290. package/dist/react-native/policies/auth/checkInsecureConnection.js +3 -2
  291. package/dist/react-native/policies/auth/checkInsecureConnection.js.map +1 -1
  292. package/dist/react-native/policies/decompressResponsePolicy-web.d.mts +8 -0
  293. package/dist/react-native/policies/decompressResponsePolicy-web.mjs +11 -0
  294. package/dist/react-native/policies/decompressResponsePolicy-web.mjs.map +1 -0
  295. package/dist/react-native/policies/formDataPolicy.js +5 -12
  296. package/dist/react-native/policies/formDataPolicy.js.map +1 -1
  297. package/dist/react-native/policies/internal.d.ts +2 -2
  298. package/dist/react-native/policies/internal.js +2 -2
  299. package/dist/react-native/policies/internal.js.map +1 -1
  300. package/dist/react-native/policies/multipartPolicy.js +7 -3
  301. package/dist/react-native/policies/multipartPolicy.js.map +1 -1
  302. package/dist/react-native/policies/platformPolicies-web.d.mts +10 -0
  303. package/dist/react-native/policies/platformPolicies-web.mjs +12 -0
  304. package/dist/react-native/policies/platformPolicies-web.mjs.map +1 -0
  305. package/dist/react-native/policies/platformPolicies.d.ts +25 -0
  306. package/dist/react-native/policies/platformPolicies.js +30 -0
  307. package/dist/react-native/policies/platformPolicies.js.map +1 -0
  308. package/dist/react-native/policies/proxyPolicy-web.d.mts +2 -0
  309. package/dist/{browser/policies/proxyPolicy.js → react-native/policies/proxyPolicy-web.mjs} +1 -1
  310. package/dist/react-native/policies/proxyPolicy-web.mjs.map +1 -0
  311. package/dist/react-native/restError.js +1 -1
  312. package/dist/react-native/restError.js.map +1 -1
  313. package/dist/react-native/types-react-native.d.mts +19 -0
  314. package/dist/react-native/types-react-native.mjs +4 -0
  315. package/dist/react-native/types-react-native.mjs.map +1 -0
  316. package/dist/react-native/util/bytesEncoding-web.d.mts +2 -0
  317. package/dist/{browser/util/bytesEncoding.js → react-native/util/bytesEncoding-web.mjs} +1 -1
  318. package/dist/react-native/util/bytesEncoding-web.mjs.map +1 -0
  319. package/dist/react-native/util/bytesEncoding.common.d.ts +4 -4
  320. package/dist/react-native/util/bytesEncoding.common.js +3 -4
  321. package/dist/react-native/util/bytesEncoding.common.js.map +1 -1
  322. package/dist/react-native/util/{concat.d.ts → concat-react-native.d.mts} +10 -3
  323. package/dist/react-native/util/{concat.js → concat-react-native.mjs} +2 -2
  324. package/dist/react-native/util/concat-react-native.mjs.map +1 -0
  325. package/dist/react-native/util/inspect-web.d.mts +2 -0
  326. package/dist/{browser/util/inspect.js → react-native/util/inspect-web.mjs} +1 -1
  327. package/dist/react-native/util/inspect-web.mjs.map +1 -0
  328. package/dist/react-native/util/internal.d.ts +4 -4
  329. package/dist/react-native/util/internal.js +4 -4
  330. package/dist/react-native/util/internal.js.map +1 -1
  331. package/dist/react-native/util/sha256-web.d.mts +2 -0
  332. package/dist/{browser/util/sha256.js → react-native/util/sha256-web.mjs} +1 -1
  333. package/dist/react-native/util/sha256-web.mjs.map +1 -0
  334. package/dist/react-native/util/sha256.common.js +1 -1
  335. package/dist/react-native/util/sha256.common.js.map +1 -1
  336. package/dist/react-native/util/typeGuards-react-native.d.mts +16 -0
  337. package/dist/react-native/util/typeGuards-react-native.mjs +34 -0
  338. package/dist/react-native/util/typeGuards-react-native.mjs.map +1 -0
  339. package/dist/react-native/util/typeGuards.d.ts +5 -4
  340. package/dist/react-native/util/typeGuards.js +4 -10
  341. package/dist/react-native/util/typeGuards.js.map +1 -1
  342. package/dist/react-native/util/userAgent.d.ts +2 -0
  343. package/dist/react-native/util/userAgent.js +2 -1
  344. package/dist/react-native/util/userAgent.js.map +1 -1
  345. package/dist/react-native/util/{userAgentPlatform.d.ts → userAgentPlatform-react-native.d.mts} +1 -1
  346. package/dist/react-native/util/{userAgentPlatform.js → userAgentPlatform-react-native.mjs} +1 -1
  347. package/dist/react-native/util/userAgentPlatform-react-native.mjs.map +1 -0
  348. package/dist/react-native/util/uuidUtils-react-native.d.mts +2 -0
  349. package/dist/react-native/util/{uuidUtils.js → uuidUtils-react-native.mjs} +1 -1
  350. package/dist/react-native/util/uuidUtils-react-native.mjs.map +1 -0
  351. package/package.json +94 -8
  352. package/dist/browser/defaultHttpClient.js.map +0 -1
  353. package/dist/browser/logger/log.js.map +0 -1
  354. package/dist/browser/nodeHttpClient.d.ts +0 -9
  355. package/dist/browser/nodeHttpClient.js +0 -347
  356. package/dist/browser/nodeHttpClient.js.map +0 -1
  357. package/dist/browser/policies/decompressResponsePolicy.js.map +0 -1
  358. package/dist/browser/policies/proxyPolicy.d.ts +0 -2
  359. package/dist/browser/policies/proxyPolicy.js.map +0 -1
  360. package/dist/browser/util/bytesEncoding.d.ts +0 -2
  361. package/dist/browser/util/bytesEncoding.js.map +0 -1
  362. package/dist/browser/util/checkEnvironment.js +0 -41
  363. package/dist/browser/util/checkEnvironment.js.map +0 -1
  364. package/dist/browser/util/concat.d.ts +0 -17
  365. package/dist/browser/util/concat.js.map +0 -1
  366. package/dist/browser/util/inspect.d.ts +0 -2
  367. package/dist/browser/util/inspect.js.map +0 -1
  368. package/dist/browser/util/sha256.d.ts +0 -2
  369. package/dist/browser/util/sha256.js.map +0 -1
  370. package/dist/browser/util/userAgentPlatform.js.map +0 -1
  371. package/dist/browser/util/uuidUtils.js.map +0 -1
  372. package/dist/browser/xhrHttpClient.d.ts +0 -7
  373. package/dist/browser/xhrHttpClient.js +0 -174
  374. package/dist/browser/xhrHttpClient.js.map +0 -1
  375. package/dist/commonjs/fetchHttpClient.d.ts +0 -12
  376. package/dist/commonjs/fetchHttpClient.js +0 -238
  377. package/dist/commonjs/fetchHttpClient.js.map +0 -7
  378. package/dist/commonjs/logger/log.common.d.ts +0 -2
  379. package/dist/commonjs/logger/log.common.js.map +0 -7
  380. package/dist/commonjs/policies/proxyPolicy.common.d.ts +0 -19
  381. package/dist/commonjs/policies/proxyPolicy.common.js +0 -44
  382. package/dist/commonjs/policies/proxyPolicy.common.js.map +0 -7
  383. package/dist/commonjs/util/arrayBuffer.d.ts +0 -7
  384. package/dist/commonjs/util/arrayBuffer.js +0 -37
  385. package/dist/commonjs/util/arrayBuffer.js.map +0 -7
  386. package/dist/commonjs/util/bytesEncoding.common.d.ts +0 -61
  387. package/dist/commonjs/util/bytesEncoding.common.js +0 -106
  388. package/dist/commonjs/util/bytesEncoding.common.js.map +0 -7
  389. package/dist/commonjs/util/checkEnvironment.js +0 -46
  390. package/dist/commonjs/util/checkEnvironment.js.map +0 -7
  391. package/dist/commonjs/util/inspect.common.d.ts +0 -2
  392. package/dist/commonjs/util/inspect.common.js.map +0 -7
  393. package/dist/commonjs/util/sha256.common.d.ts +0 -14
  394. package/dist/commonjs/util/sha256.common.js +0 -70
  395. package/dist/commonjs/util/sha256.common.js.map +0 -7
  396. package/dist/commonjs/util/uuidUtils.common.d.ts +0 -13
  397. package/dist/commonjs/util/uuidUtils.common.js +0 -49
  398. package/dist/commonjs/util/uuidUtils.common.js.map +0 -7
  399. package/dist/commonjs/xhrHttpClient.d.ts +0 -7
  400. package/dist/commonjs/xhrHttpClient.js +0 -186
  401. package/dist/commonjs/xhrHttpClient.js.map +0 -7
  402. package/dist/esm/fetchHttpClient.d.ts +0 -12
  403. package/dist/esm/fetchHttpClient.js +0 -279
  404. package/dist/esm/fetchHttpClient.js.map +0 -1
  405. package/dist/esm/logger/log.common.d.ts +0 -2
  406. package/dist/esm/logger/log.common.js +0 -23
  407. package/dist/esm/logger/log.common.js.map +0 -1
  408. package/dist/esm/policies/proxyPolicy.common.d.ts +0 -19
  409. package/dist/esm/policies/proxyPolicy.common.js +0 -24
  410. package/dist/esm/policies/proxyPolicy.common.js.map +0 -1
  411. package/dist/esm/util/arrayBuffer.d.ts +0 -7
  412. package/dist/esm/util/arrayBuffer.js +0 -20
  413. package/dist/esm/util/arrayBuffer.js.map +0 -1
  414. package/dist/esm/util/bytesEncoding.common.d.ts +0 -61
  415. package/dist/esm/util/bytesEncoding.common.js +0 -110
  416. package/dist/esm/util/bytesEncoding.common.js.map +0 -1
  417. package/dist/esm/util/checkEnvironment.js.map +0 -1
  418. package/dist/esm/util/inspect.common.d.ts +0 -2
  419. package/dist/esm/util/inspect.common.js +0 -4
  420. package/dist/esm/util/inspect.common.js.map +0 -1
  421. package/dist/esm/util/sha256.common.d.ts +0 -14
  422. package/dist/esm/util/sha256.common.js +0 -49
  423. package/dist/esm/util/sha256.common.js.map +0 -1
  424. package/dist/esm/util/uuidUtils.common.d.ts +0 -13
  425. package/dist/esm/util/uuidUtils.common.js +0 -40
  426. package/dist/esm/util/uuidUtils.common.js.map +0 -1
  427. package/dist/esm/xhrHttpClient.d.ts +0 -7
  428. package/dist/esm/xhrHttpClient.js +0 -174
  429. package/dist/esm/xhrHttpClient.js.map +0 -1
  430. package/dist/react-native/defaultHttpClient.js.map +0 -1
  431. package/dist/react-native/fetchHttpClient.d.ts +0 -12
  432. package/dist/react-native/fetchHttpClient.js +0 -279
  433. package/dist/react-native/fetchHttpClient.js.map +0 -1
  434. package/dist/react-native/logger/log.js.map +0 -1
  435. package/dist/react-native/nodeHttpClient.d.ts +0 -9
  436. package/dist/react-native/nodeHttpClient.js +0 -347
  437. package/dist/react-native/nodeHttpClient.js.map +0 -1
  438. package/dist/react-native/policies/decompressResponsePolicy.d.ts +0 -11
  439. package/dist/react-native/policies/decompressResponsePolicy.js +0 -23
  440. package/dist/react-native/policies/decompressResponsePolicy.js.map +0 -1
  441. package/dist/react-native/policies/proxyPolicy.d.ts +0 -2
  442. package/dist/react-native/policies/proxyPolicy.js.map +0 -1
  443. package/dist/react-native/util/bytesEncoding.d.ts +0 -2
  444. package/dist/react-native/util/bytesEncoding.js.map +0 -1
  445. package/dist/react-native/util/checkEnvironment.js +0 -41
  446. package/dist/react-native/util/checkEnvironment.js.map +0 -1
  447. package/dist/react-native/util/concat.js.map +0 -1
  448. package/dist/react-native/util/inspect.d.ts +0 -2
  449. package/dist/react-native/util/inspect.js.map +0 -1
  450. package/dist/react-native/util/sha256.d.ts +0 -2
  451. package/dist/react-native/util/sha256.js.map +0 -1
  452. package/dist/react-native/util/userAgentPlatform.js.map +0 -1
  453. package/dist/react-native/util/uuidUtils.d.ts +0 -2
  454. package/dist/react-native/util/uuidUtils.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/client/getClient.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { HttpClient, HttpMethods } from \"../interfaces.js\";\nimport type { Pipeline } from \"../pipeline.js\";\nimport { createDefaultPipeline } from \"./clientHelpers.js\";\nimport type {\n Client,\n ClientOptions,\n HttpBrowserStreamResponse,\n HttpNodeStreamResponse,\n RequestParameters,\n ResourceMethods,\n StreamableMethod,\n} from \"./common.js\";\nimport { sendRequest } from \"./sendRequest.js\";\nimport { buildRequestUrl } from \"./urlHelpers.js\";\nimport { isNodeLike } from \"../util/checkEnvironment.js\";\n\n/**\n * Creates a client with a default pipeline\n * @param endpoint - Base endpoint for the client\n * @param credentials - Credentials to authenticate the requests\n * @param options - Client options\n */\nexport function getClient(endpoint: string, clientOptions: ClientOptions = {}): Client {\n const pipeline = clientOptions.pipeline ?? createDefaultPipeline(clientOptions);\n if (clientOptions.additionalPolicies?.length) {\n for (const { policy, position } of clientOptions.additionalPolicies) {\n // Sign happens after Retry and is commonly needed to occur\n // before policies that intercept post-retry.\n const afterPhase = position === \"perRetry\" ? \"Sign\" : undefined;\n pipeline.addPolicy(policy, {\n afterPhase,\n });\n }\n }\n\n const { allowInsecureConnection, httpClient } = clientOptions;\n const endpointUrl = clientOptions.endpoint ?? endpoint;\n const client = (path: string, ...args: Array<any>): ResourceMethods<StreamableMethod> => {\n const getUrl = (requestOptions: RequestParameters): string =>\n buildRequestUrl(endpointUrl, path, args, { allowInsecureConnection, ...requestOptions });\n\n return {\n get: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"GET\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n post: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"POST\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n put: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"PUT\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n patch: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"PATCH\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n delete: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"DELETE\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n head: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"HEAD\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n options: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"OPTIONS\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n trace: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"TRACE\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n };\n };\n\n return {\n path: client,\n pathUnchecked: client,\n pipeline,\n };\n}\n\nfunction buildOperation(\n method: HttpMethods,\n url: string,\n pipeline: Pipeline,\n options: RequestParameters,\n allowInsecureConnection?: boolean,\n httpClient?: HttpClient,\n): StreamableMethod {\n allowInsecureConnection = options.allowInsecureConnection ?? allowInsecureConnection;\n return {\n then: function (onFulfilled, onrejected) {\n return sendRequest(\n method,\n url,\n pipeline,\n { ...options, allowInsecureConnection },\n httpClient,\n ).then(onFulfilled, onrejected);\n },\n async asBrowserStream() {\n if (isNodeLike) {\n throw new Error(\n \"`asBrowserStream` is supported only in the browser environment. Use `asNodeStream` instead to obtain the response body stream. If you require a Web stream of the response in Node, consider using `Readable.toWeb` on the result of `asNodeStream`.\",\n );\n } else {\n return sendRequest(\n method,\n url,\n pipeline,\n { ...options, allowInsecureConnection, responseAsStream: true },\n httpClient,\n ) as Promise<HttpBrowserStreamResponse>;\n }\n },\n async asNodeStream() {\n if (isNodeLike) {\n return sendRequest(\n method,\n url,\n pipeline,\n { ...options, allowInsecureConnection, responseAsStream: true },\n httpClient,\n ) as Promise<HttpNodeStreamResponse>;\n } else {\n throw new Error(\n \"`isNodeStream` is not supported in the browser environment. Use `asBrowserStream` to obtain the response body stream.\",\n );\n }\n },\n };\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { HttpClient, HttpMethods } from \"../interfaces.js\";\nimport type { Pipeline } from \"../pipeline.js\";\nimport { createDefaultPipeline } from \"./clientHelpers.js\";\nimport type {\n Client,\n ClientOptions,\n HttpBrowserStreamResponse,\n HttpNodeStreamResponse,\n RequestParameters,\n ResourceMethods,\n StreamableMethod,\n} from \"./common.js\";\nimport { sendRequest } from \"./sendRequest.js\";\nimport { buildRequestUrl } from \"./urlHelpers.js\";\nimport { isNodeLike } from \"#platform/env\";\n\n/**\n * Creates a client with a default pipeline\n * @param endpoint - Base endpoint for the client\n * @param credentials - Credentials to authenticate the requests\n * @param options - Client options\n */\nexport function getClient(endpoint: string, clientOptions: ClientOptions = {}): Client {\n const pipeline = clientOptions.pipeline ?? createDefaultPipeline(clientOptions);\n if (clientOptions.additionalPolicies?.length) {\n for (const { policy, position } of clientOptions.additionalPolicies) {\n // Sign happens after Retry and is commonly needed to occur\n // before policies that intercept post-retry.\n const afterPhase = position === \"perRetry\" ? \"Sign\" : undefined;\n pipeline.addPolicy(policy, {\n afterPhase,\n });\n }\n }\n\n const { allowInsecureConnection, httpClient } = clientOptions;\n const endpointUrl = clientOptions.endpoint ?? endpoint;\n const client = (path: string, ...args: Array<any>): ResourceMethods<StreamableMethod> => {\n const getUrl = (requestOptions: RequestParameters): string =>\n buildRequestUrl(endpointUrl, path, args, { allowInsecureConnection, ...requestOptions });\n\n return {\n get: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"GET\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n post: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"POST\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n put: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"PUT\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n patch: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"PATCH\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n delete: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"DELETE\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n head: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"HEAD\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n options: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"OPTIONS\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n trace: (requestOptions: RequestParameters = {}): StreamableMethod => {\n return buildOperation(\n \"TRACE\",\n getUrl(requestOptions),\n pipeline,\n requestOptions,\n allowInsecureConnection,\n httpClient,\n );\n },\n };\n };\n\n return {\n path: client,\n pathUnchecked: client,\n pipeline,\n };\n}\n\nfunction buildOperation(\n method: HttpMethods,\n url: string,\n pipeline: Pipeline,\n options: RequestParameters,\n allowInsecureConnection?: boolean,\n httpClient?: HttpClient,\n): StreamableMethod {\n allowInsecureConnection = options.allowInsecureConnection ?? allowInsecureConnection;\n return {\n then: function (onFulfilled, onrejected) {\n return sendRequest(\n method,\n url,\n pipeline,\n { ...options, allowInsecureConnection },\n httpClient,\n ).then(onFulfilled, onrejected);\n },\n async asBrowserStream() {\n if (isNodeLike) {\n throw new Error(\n \"`asBrowserStream` is supported only in the browser environment. Use `asNodeStream` instead to obtain the response body stream. If you require a Web stream of the response in Node, consider using `Readable.toWeb` on the result of `asNodeStream`.\",\n );\n } else {\n return sendRequest(\n method,\n url,\n pipeline,\n { ...options, allowInsecureConnection, responseAsStream: true },\n httpClient,\n ) as Promise<HttpBrowserStreamResponse>;\n }\n },\n async asNodeStream() {\n if (isNodeLike) {\n return sendRequest(\n method,\n url,\n pipeline,\n { ...options, allowInsecureConnection, responseAsStream: true },\n httpClient,\n ) as Promise<HttpNodeStreamResponse>;\n } else {\n throw new Error(\n \"`isNodeStream` is not supported in the browser environment. Use `asBrowserStream` to obtain the response body stream.\",\n );\n }\n },\n };\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/client/multipart.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { BodyPart, MultipartRequestBody, RawHttpHeadersInput } from \"../interfaces.js\";\nimport { RestError } from \"../restError.js\";\nimport { createHttpHeaders } from \"../httpHeaders.js\";\nimport { stringToUint8Array } from \"../util/bytesEncoding.js\";\nimport { isBinaryBody } from \"../util/typeGuards.js\";\n\n/**\n * Describes a single part in a multipart body.\n */\nexport interface PartDescriptor {\n /**\n * Content type of this part. If set, this value will be used to set the Content-Type MIME header for this part, although explicitly\n * setting the Content-Type header in the headers bag will override this value. If set to `null`, no content type will be inferred from\n * the body field. Otherwise, the value of the Content-Type MIME header will be inferred based on the type of the body.\n */\n contentType?: string | null;\n\n /**\n * The disposition type of this part (for example, \"form-data\" for parts making up a multipart/form-data request). If set, this value\n * will be used to set the Content-Disposition MIME header for this part, in addition to the `name` and `filename` properties.\n * If the `name` or `filename` properties are set while `dispositionType` is left undefined, `dispositionType` will default to \"form-data\".\n *\n * Explicitly setting the Content-Disposition header in the headers bag will override this value.\n */\n dispositionType?: string;\n\n /**\n * The field name associated with this part. This value will be used to construct the Content-Disposition header,\n * along with the `dispositionType` and `filename` properties, if the header has not been set in the `headers` bag.\n */\n name?: string;\n\n /**\n * The file name of the content if it is a file. This value will be used to construct the Content-Disposition header,\n * along with the `dispositionType` and `name` properties, if the header has not been set in the `headers` bag.\n */\n filename?: string;\n\n /**\n * The multipart headers for this part of the multipart body. Values of the Content-Type and Content-Disposition headers set in the headers bag\n * will take precedence over those computed from the request body or the contentType, dispositionType, name, and filename fields on this object.\n */\n headers?: RawHttpHeadersInput;\n\n /**\n * The body of this part of the multipart request.\n */\n body?: unknown;\n}\n\ntype MultipartBodyType = BodyPart[\"body\"];\n\ntype HeaderValue = RawHttpHeadersInput[string];\n\n/**\n * Get value of a header in the part descriptor ignoring case\n */\nfunction getHeaderValue(descriptor: PartDescriptor, headerName: string): HeaderValue | undefined {\n if (descriptor.headers) {\n const actualHeaderName = Object.keys(descriptor.headers).find(\n (x) => x.toLowerCase() === headerName.toLowerCase(),\n );\n if (actualHeaderName) {\n return descriptor.headers[actualHeaderName];\n }\n }\n\n return undefined;\n}\n\nfunction getPartContentType(descriptor: PartDescriptor): HeaderValue | undefined {\n const contentTypeHeader = getHeaderValue(descriptor, \"content-type\");\n if (contentTypeHeader) {\n return contentTypeHeader;\n }\n\n // Special value of null means content type is to be omitted\n if (descriptor.contentType === null) {\n return undefined;\n }\n\n if (descriptor.contentType) {\n return descriptor.contentType;\n }\n\n const { body } = descriptor;\n\n if (body === null || body === undefined) {\n return undefined;\n }\n\n if (typeof body === \"string\" || typeof body === \"number\" || typeof body === \"boolean\") {\n return \"text/plain; charset=UTF-8\";\n }\n\n if (body instanceof Blob) {\n return body.type || \"application/octet-stream\";\n }\n\n if (isBinaryBody(body)) {\n return \"application/octet-stream\";\n }\n\n // arbitrary non-text object -> generic JSON content type by default. We will try to JSON.stringify the body.\n return \"application/json\";\n}\n\n/**\n * Enclose value in quotes and escape special characters, for use in the Content-Disposition header\n */\nfunction escapeDispositionField(value: string): string {\n return JSON.stringify(value);\n}\n\nfunction getContentDisposition(descriptor: PartDescriptor): HeaderValue | undefined {\n const contentDispositionHeader = getHeaderValue(descriptor, \"content-disposition\");\n if (contentDispositionHeader) {\n return contentDispositionHeader;\n }\n\n if (\n descriptor.dispositionType === undefined &&\n descriptor.name === undefined &&\n descriptor.filename === undefined\n ) {\n return undefined;\n }\n\n const dispositionType = descriptor.dispositionType ?? \"form-data\";\n\n let disposition = dispositionType;\n if (descriptor.name) {\n disposition += `; name=${escapeDispositionField(descriptor.name)}`;\n }\n\n let filename: string | undefined = undefined;\n if (descriptor.filename) {\n filename = descriptor.filename;\n } else if (typeof File !== \"undefined\" && descriptor.body instanceof File) {\n const filenameFromFile = descriptor.body.name;\n if (filenameFromFile !== \"\") {\n filename = filenameFromFile;\n }\n }\n\n if (filename) {\n disposition += `; filename=${escapeDispositionField(filename)}`;\n }\n\n return disposition;\n}\n\nfunction normalizeBody(body?: unknown, contentType?: HeaderValue): MultipartBodyType {\n if (body === undefined) {\n // zero-length body\n return new Uint8Array([]);\n }\n\n // binary and primitives should go straight on the wire regardless of content type\n if (isBinaryBody(body)) {\n return body;\n }\n if (typeof body === \"string\" || typeof body === \"number\" || typeof body === \"boolean\") {\n return stringToUint8Array(String(body), \"utf-8\");\n }\n\n // stringify objects for JSON-ish content types e.g. application/json, application/merge-patch+json, application/vnd.oci.manifest.v1+json, application.json; charset=UTF-8\n if (contentType && /application\\/(.+\\+)?json(;.+)?/i.test(String(contentType))) {\n return stringToUint8Array(JSON.stringify(body), \"utf-8\");\n }\n\n throw new RestError(`Unsupported body/content-type combination: ${body}, ${contentType}`);\n}\n\nexport function buildBodyPart(descriptor: PartDescriptor): BodyPart {\n const contentType = getPartContentType(descriptor);\n const contentDisposition = getContentDisposition(descriptor);\n const headers = createHttpHeaders(descriptor.headers ?? {});\n\n if (contentType) {\n headers.set(\"content-type\", contentType);\n }\n if (contentDisposition) {\n headers.set(\"content-disposition\", contentDisposition);\n }\n\n const body = normalizeBody(descriptor.body, contentType);\n\n return {\n headers,\n body,\n };\n}\n\nexport function buildMultipartBody(parts: PartDescriptor[]): MultipartRequestBody {\n return { parts: parts.map(buildBodyPart) };\n}\n"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { BodyPart, MultipartRequestBody, RawHttpHeadersInput } from \"../interfaces.js\";\nimport { RestError } from \"../restError.js\";\nimport { createHttpHeaders } from \"../httpHeaders.js\";\nimport { stringToUint8Array } from \"#platform/bytesEncoding\";\nimport { isBinaryBody } from \"../util/typeGuards.js\";\n\n/**\n * Describes a single part in a multipart body.\n */\nexport interface PartDescriptor {\n /**\n * Content type of this part. If set, this value will be used to set the Content-Type MIME header for this part, although explicitly\n * setting the Content-Type header in the headers bag will override this value. If set to `null`, no content type will be inferred from\n * the body field. Otherwise, the value of the Content-Type MIME header will be inferred based on the type of the body.\n */\n contentType?: string | null;\n\n /**\n * The disposition type of this part (for example, \"form-data\" for parts making up a multipart/form-data request). If set, this value\n * will be used to set the Content-Disposition MIME header for this part, in addition to the `name` and `filename` properties.\n * If the `name` or `filename` properties are set while `dispositionType` is left undefined, `dispositionType` will default to \"form-data\".\n *\n * Explicitly setting the Content-Disposition header in the headers bag will override this value.\n */\n dispositionType?: string;\n\n /**\n * The field name associated with this part. This value will be used to construct the Content-Disposition header,\n * along with the `dispositionType` and `filename` properties, if the header has not been set in the `headers` bag.\n */\n name?: string;\n\n /**\n * The file name of the content if it is a file. This value will be used to construct the Content-Disposition header,\n * along with the `dispositionType` and `name` properties, if the header has not been set in the `headers` bag.\n */\n filename?: string;\n\n /**\n * The multipart headers for this part of the multipart body. Values of the Content-Type and Content-Disposition headers set in the headers bag\n * will take precedence over those computed from the request body or the contentType, dispositionType, name, and filename fields on this object.\n */\n headers?: RawHttpHeadersInput;\n\n /**\n * The body of this part of the multipart request.\n */\n body?: unknown;\n}\n\ntype MultipartBodyType = BodyPart[\"body\"];\n\ntype HeaderValue = RawHttpHeadersInput[string];\n\n/**\n * Get value of a header in the part descriptor ignoring case\n */\nfunction getHeaderValue(descriptor: PartDescriptor, headerName: string): HeaderValue | undefined {\n if (descriptor.headers) {\n const actualHeaderName = Object.keys(descriptor.headers).find(\n (x) => x.toLowerCase() === headerName.toLowerCase(),\n );\n if (actualHeaderName) {\n return descriptor.headers[actualHeaderName];\n }\n }\n\n return undefined;\n}\n\nfunction getPartContentType(descriptor: PartDescriptor): HeaderValue | undefined {\n const contentTypeHeader = getHeaderValue(descriptor, \"content-type\");\n if (contentTypeHeader) {\n return contentTypeHeader;\n }\n\n // Special value of null means content type is to be omitted\n if (descriptor.contentType === null) {\n return undefined;\n }\n\n if (descriptor.contentType) {\n return descriptor.contentType;\n }\n\n const { body } = descriptor;\n\n if (body === null || body === undefined) {\n return undefined;\n }\n\n if (typeof body === \"string\" || typeof body === \"number\" || typeof body === \"boolean\") {\n return \"text/plain; charset=UTF-8\";\n }\n\n if (body instanceof Blob) {\n return body.type || \"application/octet-stream\";\n }\n\n if (isBinaryBody(body)) {\n return \"application/octet-stream\";\n }\n\n // arbitrary non-text object -> generic JSON content type by default. We will try to JSON.stringify the body.\n return \"application/json\";\n}\n\n/**\n * Enclose value in quotes and escape special characters, for use in the Content-Disposition header\n */\nfunction escapeDispositionField(value: string): string {\n return JSON.stringify(value);\n}\n\nfunction getContentDisposition(descriptor: PartDescriptor): HeaderValue | undefined {\n const contentDispositionHeader = getHeaderValue(descriptor, \"content-disposition\");\n if (contentDispositionHeader) {\n return contentDispositionHeader;\n }\n\n if (\n descriptor.dispositionType === undefined &&\n descriptor.name === undefined &&\n descriptor.filename === undefined\n ) {\n return undefined;\n }\n\n const dispositionType = descriptor.dispositionType ?? \"form-data\";\n\n let disposition = dispositionType;\n if (descriptor.name) {\n disposition += `; name=${escapeDispositionField(descriptor.name)}`;\n }\n\n let filename: string | undefined = undefined;\n if (descriptor.filename) {\n filename = descriptor.filename;\n } else if (typeof File !== \"undefined\" && descriptor.body instanceof File) {\n const filenameFromFile = descriptor.body.name;\n if (filenameFromFile !== \"\") {\n filename = filenameFromFile;\n }\n }\n\n if (filename) {\n disposition += `; filename=${escapeDispositionField(filename)}`;\n }\n\n return disposition;\n}\n\nfunction normalizeBody(body?: unknown, contentType?: HeaderValue): MultipartBodyType {\n if (body === undefined) {\n // zero-length body\n return new Uint8Array([]);\n }\n\n // binary and primitives should go straight on the wire regardless of content type\n if (isBinaryBody(body)) {\n return body;\n }\n if (typeof body === \"string\" || typeof body === \"number\" || typeof body === \"boolean\") {\n return stringToUint8Array(String(body), \"utf-8\");\n }\n\n // stringify objects for JSON-ish content types e.g. application/json, application/merge-patch+json, application/vnd.oci.manifest.v1+json, application.json; charset=UTF-8\n if (contentType && /application\\/(.+\\+)?json(;.+)?/i.test(String(contentType))) {\n return stringToUint8Array(JSON.stringify(body), \"utf-8\");\n }\n\n throw new RestError(`Unsupported body/content-type combination: ${body}, ${contentType}`);\n}\n\nexport function buildBodyPart(descriptor: PartDescriptor): BodyPart {\n const contentType = getPartContentType(descriptor);\n const contentDisposition = getContentDisposition(descriptor);\n const headers = createHttpHeaders(descriptor.headers ?? {});\n\n if (contentType) {\n headers.set(\"content-type\", contentType);\n }\n if (contentDisposition) {\n headers.set(\"content-disposition\", contentDisposition);\n }\n\n const body = normalizeBody(descriptor.body, contentType);\n\n return {\n headers,\n body,\n };\n}\n\nexport function buildMultipartBody(parts: PartDescriptor[]): MultipartRequestBody {\n return { parts: parts.map(buildBodyPart) };\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -33,11 +33,12 @@ function createRestError(messageOrResponse, response) {
33
33
  response: toPipelineResponse(resp)
34
34
  });
35
35
  }
36
- function toPipelineResponse(response) {
36
+ function toPipelineResponse(errorResponse) {
37
37
  return {
38
- headers: (0, import_httpHeaders.createHttpHeaders)(response.headers),
39
- request: response.request,
40
- status: statusCodeToNumber(response.status) ?? -1
38
+ headers: (0, import_httpHeaders.createHttpHeaders)(errorResponse.headers),
39
+ request: errorResponse.request,
40
+ status: statusCodeToNumber(errorResponse.status) ?? -1,
41
+ ...typeof errorResponse.body === "string" ? { bodyAsText: errorResponse.body } : {}
41
42
  };
42
43
  }
43
44
  function statusCodeToNumber(statusCode) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/client/restError.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PipelineResponse } from \"../interfaces.js\";\nimport { RestError } from \"../restError.js\";\nimport { createHttpHeaders } from \"../httpHeaders.js\";\nimport type { PathUncheckedResponse } from \"./common.js\";\n\n/**\n * Creates a rest error from a PathUnchecked response\n */\nexport function createRestError(response: PathUncheckedResponse): RestError;\n/**\n * Creates a rest error from an error message and a PathUnchecked response\n */\nexport function createRestError(message: string, response: PathUncheckedResponse): RestError;\nexport function createRestError(\n messageOrResponse: string | PathUncheckedResponse,\n response?: PathUncheckedResponse,\n): RestError {\n const resp = typeof messageOrResponse === \"string\" ? response! : messageOrResponse;\n const internalError = resp.body?.error ?? resp.body;\n const message =\n typeof messageOrResponse === \"string\"\n ? messageOrResponse\n : (internalError?.message ?? `Unexpected status code: ${resp.status}`);\n return new RestError(message, {\n statusCode: statusCodeToNumber(resp.status),\n code: internalError?.code,\n request: resp.request,\n response: toPipelineResponse(resp),\n });\n}\n\nfunction toPipelineResponse(response: PathUncheckedResponse): PipelineResponse {\n return {\n headers: createHttpHeaders(response.headers),\n request: response.request,\n status: statusCodeToNumber(response.status) ?? -1,\n };\n}\n\nfunction statusCodeToNumber(statusCode: string): number | undefined {\n const status = Number.parseInt(statusCode);\n\n return Number.isNaN(status) ? undefined : status;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,uBAA0B;AAC1B,yBAAkC;AAW3B,SAAS,gBACd,mBACA,UACW;AACX,QAAM,OAAO,OAAO,sBAAsB,WAAW,WAAY;AACjE,QAAM,gBAAgB,KAAK,MAAM,SAAS,KAAK;AAC/C,QAAM,UACJ,OAAO,sBAAsB,WACzB,oBACC,eAAe,WAAW,2BAA2B,KAAK,MAAM;AACvE,SAAO,IAAI,2BAAU,SAAS;AAAA,IAC5B,YAAY,mBAAmB,KAAK,MAAM;AAAA,IAC1C,MAAM,eAAe;AAAA,IACrB,SAAS,KAAK;AAAA,IACd,UAAU,mBAAmB,IAAI;AAAA,EACnC,CAAC;AACH;AAEA,SAAS,mBAAmB,UAAmD;AAC7E,SAAO;AAAA,IACL,aAAS,sCAAkB,SAAS,OAAO;AAAA,IAC3C,SAAS,SAAS;AAAA,IAClB,QAAQ,mBAAmB,SAAS,MAAM,KAAK;AAAA,EACjD;AACF;AAEA,SAAS,mBAAmB,YAAwC;AAClE,QAAM,SAAS,OAAO,SAAS,UAAU;AAEzC,SAAO,OAAO,MAAM,MAAM,IAAI,SAAY;AAC5C;",
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PipelineResponse } from \"../interfaces.js\";\nimport { RestError } from \"../restError.js\";\nimport { createHttpHeaders } from \"../httpHeaders.js\";\nimport type { PathUncheckedResponse } from \"./common.js\";\n\n/**\n * Creates a rest error from a PathUnchecked response\n */\nexport function createRestError(response: PathUncheckedResponse): RestError;\n/**\n * Creates a rest error from an error message and a PathUnchecked response\n */\nexport function createRestError(message: string, response: PathUncheckedResponse): RestError;\nexport function createRestError(\n messageOrResponse: string | PathUncheckedResponse,\n response?: PathUncheckedResponse,\n): RestError {\n const resp = typeof messageOrResponse === \"string\" ? response! : messageOrResponse;\n const internalError = resp.body?.error ?? resp.body;\n const message =\n typeof messageOrResponse === \"string\"\n ? messageOrResponse\n : (internalError?.message ?? `Unexpected status code: ${resp.status}`);\n return new RestError(message, {\n statusCode: statusCodeToNumber(resp.status),\n code: internalError?.code,\n request: resp.request,\n response: toPipelineResponse(resp),\n });\n}\n\nfunction toPipelineResponse(errorResponse: PathUncheckedResponse): PipelineResponse {\n return {\n headers: createHttpHeaders(errorResponse.headers),\n request: errorResponse.request,\n status: statusCodeToNumber(errorResponse.status) ?? -1,\n ...(typeof errorResponse.body === \"string\" ? { bodyAsText: errorResponse.body } : {}),\n };\n}\n\nfunction statusCodeToNumber(statusCode: string): number | undefined {\n const status = Number.parseInt(statusCode);\n\n return Number.isNaN(status) ? undefined : status;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,uBAA0B;AAC1B,yBAAkC;AAW3B,SAAS,gBACd,mBACA,UACW;AACX,QAAM,OAAO,OAAO,sBAAsB,WAAW,WAAY;AACjE,QAAM,gBAAgB,KAAK,MAAM,SAAS,KAAK;AAC/C,QAAM,UACJ,OAAO,sBAAsB,WACzB,oBACC,eAAe,WAAW,2BAA2B,KAAK,MAAM;AACvE,SAAO,IAAI,2BAAU,SAAS;AAAA,IAC5B,YAAY,mBAAmB,KAAK,MAAM;AAAA,IAC1C,MAAM,eAAe;AAAA,IACrB,SAAS,KAAK;AAAA,IACd,UAAU,mBAAmB,IAAI;AAAA,EACnC,CAAC;AACH;AAEA,SAAS,mBAAmB,eAAwD;AAClF,SAAO;AAAA,IACL,aAAS,sCAAkB,cAAc,OAAO;AAAA,IAChD,SAAS,cAAc;AAAA,IACvB,QAAQ,mBAAmB,cAAc,MAAM,KAAK;AAAA,IACpD,GAAI,OAAO,cAAc,SAAS,WAAW,EAAE,YAAY,cAAc,KAAK,IAAI,CAAC;AAAA,EACrF;AACF;AAEA,SAAS,mBAAmB,YAAwC;AAClE,QAAM,SAAS,OAAO,SAAS,UAAU;AAEzC,SAAO,OAAO,MAAM,MAAM,IAAI,SAAY;AAC5C;",
6
6
  "names": []
7
7
  }
@@ -94,20 +94,36 @@ function buildPipelineRequest(method, url, options = {}) {
94
94
  "content-type": requestContentType
95
95
  }
96
96
  });
97
- return (0, import_pipelineRequest.createPipelineRequest)({
97
+ const {
98
+ allowInsecureConnection,
99
+ abortSignal,
100
+ onUploadProgress,
101
+ onDownloadProgress,
102
+ timeout,
103
+ responseAsStream,
104
+ url: _url,
105
+ method: _method,
106
+ body: _body,
107
+ multipartBody: _multiBody,
108
+ headers: _headers,
109
+ ...rest
110
+ } = options;
111
+ const request = (0, import_pipelineRequest.createPipelineRequest)({
98
112
  url,
99
113
  method,
100
114
  body,
101
115
  multipartBody,
102
116
  headers,
103
- allowInsecureConnection: options.allowInsecureConnection,
104
- abortSignal: options.abortSignal,
105
- onUploadProgress: options.onUploadProgress,
106
- onDownloadProgress: options.onDownloadProgress,
107
- timeout: options.timeout,
117
+ allowInsecureConnection,
118
+ abortSignal,
119
+ onUploadProgress,
120
+ onDownloadProgress,
121
+ timeout,
108
122
  enableBrowserStreams: true,
109
- streamResponseStatusCodes: options.responseAsStream ? /* @__PURE__ */ new Set([Number.POSITIVE_INFINITY]) : void 0
123
+ streamResponseStatusCodes: responseAsStream ? /* @__PURE__ */ new Set([Number.POSITIVE_INFINITY]) : void 0
110
124
  });
125
+ Object.assign(request, rest);
126
+ return request;
111
127
  }
112
128
  function getRequestBody(body, contentType = "") {
113
129
  if (body === void 0) {
@@ -126,7 +142,9 @@ function getRequestBody(body, contentType = "") {
126
142
  return { body };
127
143
  }
128
144
  if (ArrayBuffer.isView(body)) {
129
- return { body: body instanceof Uint8Array ? body : JSON.stringify(body) };
145
+ return {
146
+ body: body instanceof Uint8Array ? body : JSON.stringify(body)
147
+ };
130
148
  }
131
149
  const firstType = contentType.split(";")[0];
132
150
  switch (firstType) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/client/sendRequest.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n HttpClient,\n HttpMethods,\n MultipartRequestBody,\n PipelineRequest,\n PipelineResponse,\n RequestBodyType,\n} from \"../interfaces.js\";\nimport { isRestError, RestError } from \"../restError.js\";\nimport type { Pipeline } from \"../pipeline.js\";\nimport { createHttpHeaders } from \"../httpHeaders.js\";\nimport { createPipelineRequest } from \"../pipelineRequest.js\";\nimport { getCachedDefaultHttpsClient } from \"./clientHelpers.js\";\nimport { isBlob, isReadableStream } from \"../util/typeGuards.js\";\nimport type { HttpResponse, RequestParameters } from \"./common.js\";\nimport type { PartDescriptor } from \"./multipart.js\";\nimport { buildMultipartBody } from \"./multipart.js\";\n\n/**\n * Helper function to send request used by the client\n * @param method - method to use to send the request\n * @param url - url to send the request to\n * @param pipeline - pipeline with the policies to run when sending the request\n * @param options - request options\n * @param customHttpClient - a custom HttpClient to use when making the request\n * @returns returns and HttpResponse\n */\nexport async function sendRequest(\n method: HttpMethods,\n url: string,\n pipeline: Pipeline,\n options: InternalRequestParameters = {},\n customHttpClient?: HttpClient,\n): Promise<HttpResponse> {\n const httpClient = customHttpClient ?? getCachedDefaultHttpsClient();\n const request = buildPipelineRequest(method, url, options);\n\n try {\n const response = await pipeline.sendRequest(httpClient, request);\n const headers = response.headers.toJSON();\n const stream = response.readableStreamBody ?? response.browserStreamBody;\n const parsedBody =\n options.responseAsStream || stream !== undefined ? undefined : getResponseBody(response);\n const body = stream ?? parsedBody;\n\n if (options?.onResponse) {\n options.onResponse({ ...response, request, rawHeaders: headers, parsedBody });\n }\n\n return {\n request,\n headers,\n status: `${response.status}`,\n body,\n };\n } catch (e: unknown) {\n if (isRestError(e) && e.response && options.onResponse) {\n const { response } = e;\n const rawHeaders = response.headers.toJSON();\n // UNBRANDED DIFFERENCE: onResponse callback does not have a second __legacyError property\n options?.onResponse({ ...response, request, rawHeaders }, e);\n }\n\n throw e;\n }\n}\n\n/**\n * Function to determine the request content type\n * @param options - request options InternalRequestParameters\n * @returns returns the content-type\n */\nfunction getRequestContentType(options: InternalRequestParameters = {}): string | undefined {\n if (options.contentType) {\n return options.contentType;\n }\n const headerContentType = options.headers?.[\"content-type\"];\n if (typeof headerContentType === \"string\") {\n return headerContentType;\n }\n return getContentType(options.body);\n}\n\n/**\n * Function to determine the content-type of a body\n * this is used if an explicit content-type is not provided\n * @param body - body in the request\n * @returns returns the content-type\n */\nfunction getContentType(body: any): string | undefined {\n if (body === undefined) {\n return undefined;\n }\n\n if (ArrayBuffer.isView(body)) {\n return \"application/octet-stream\";\n }\n\n if (isBlob(body) && body.type) {\n return body.type;\n }\n\n if (typeof body === \"string\") {\n try {\n JSON.parse(body);\n return \"application/json\";\n } catch (error: any) {\n // If we fail to parse the body, it is not json\n return undefined;\n }\n }\n // By default return json\n return \"application/json\";\n}\n\nexport interface InternalRequestParameters extends RequestParameters {\n responseAsStream?: boolean;\n}\n\nfunction buildPipelineRequest(\n method: HttpMethods,\n url: string,\n options: InternalRequestParameters = {},\n): PipelineRequest {\n const requestContentType = getRequestContentType(options);\n const { body, multipartBody } = getRequestBody(options.body, requestContentType);\n\n const headers = createHttpHeaders({\n ...(options.headers ? options.headers : {}),\n accept: options.accept ?? options.headers?.accept ?? \"application/json\",\n ...(requestContentType && {\n \"content-type\": requestContentType,\n }),\n });\n\n return createPipelineRequest({\n url,\n method,\n body,\n multipartBody,\n headers,\n allowInsecureConnection: options.allowInsecureConnection,\n abortSignal: options.abortSignal,\n onUploadProgress: options.onUploadProgress,\n onDownloadProgress: options.onDownloadProgress,\n timeout: options.timeout,\n enableBrowserStreams: true,\n streamResponseStatusCodes: options.responseAsStream\n ? new Set([Number.POSITIVE_INFINITY])\n : undefined,\n });\n}\n\ninterface RequestBody {\n body?: RequestBodyType;\n multipartBody?: MultipartRequestBody;\n}\n\n/**\n * Prepares the body before sending the request\n */\nexport function getRequestBody(body?: unknown, contentType: string = \"\"): RequestBody {\n if (body === undefined) {\n return { body: undefined };\n }\n\n if (typeof FormData !== \"undefined\" && body instanceof FormData) {\n return { body };\n }\n\n if (isBlob(body)) {\n return { body };\n }\n\n if (isReadableStream(body)) {\n return { body };\n }\n\n if (typeof body === \"function\") {\n return { body: body as RequestBodyType };\n }\n\n if (ArrayBuffer.isView(body)) {\n return { body: body instanceof Uint8Array ? body : JSON.stringify(body) };\n }\n\n const firstType = contentType.split(\";\")[0];\n\n switch (firstType) {\n case \"application/json\":\n return { body: JSON.stringify(body) };\n case \"multipart/form-data\":\n if (Array.isArray(body)) {\n return { multipartBody: buildMultipartBody(body as PartDescriptor[]) };\n }\n return { body: JSON.stringify(body) };\n case \"text/plain\":\n return { body: String(body) };\n default:\n if (typeof body === \"string\") {\n return { body };\n }\n return { body: JSON.stringify(body) };\n }\n}\n\n/**\n * Prepares the response body\n */\nfunction getResponseBody(response: PipelineResponse): RequestBodyType | undefined {\n // Set the default response type\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n const firstType = contentType.split(\";\")[0];\n const bodyToParse = response.bodyAsText ?? \"\";\n\n if (firstType === \"text/plain\") {\n return String(bodyToParse);\n }\n // Default to \"application/json\" and fallback to string;\n try {\n return bodyToParse ? JSON.parse(bodyToParse) : undefined;\n } catch (error: any) {\n // If we were supposed to get a JSON object and failed to\n // parse, throw a parse error\n if (firstType === \"application/json\") {\n throw createParseError(response, error);\n }\n\n // We are not sure how to handle the response so we return it as\n // plain text.\n return String(bodyToParse);\n }\n}\n\nfunction createParseError(response: PipelineResponse, err: any): RestError {\n const msg = `Error \"${err}\" occurred while parsing the response body - ${response.bodyAsText}.`;\n const errCode = err.code ?? RestError.PARSE_ERROR;\n return new RestError(msg, {\n code: errCode,\n statusCode: response.status,\n request: response.request,\n response: response,\n });\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n HttpClient,\n HttpMethods,\n MultipartRequestBody,\n PipelineRequest,\n PipelineResponse,\n RequestBodyType,\n} from \"../interfaces.js\";\nimport { isRestError, RestError } from \"../restError.js\";\nimport type { Pipeline } from \"../pipeline.js\";\nimport { createHttpHeaders } from \"../httpHeaders.js\";\nimport { createPipelineRequest } from \"../pipelineRequest.js\";\nimport { getCachedDefaultHttpsClient } from \"./clientHelpers.js\";\nimport { isBlob, isReadableStream } from \"../util/typeGuards.js\";\nimport type { HttpResponse, RequestParameters } from \"./common.js\";\nimport type { PartDescriptor } from \"./multipart.js\";\nimport { buildMultipartBody } from \"./multipart.js\";\n\n/**\n * Helper function to send request used by the client\n * @param method - method to use to send the request\n * @param url - url to send the request to\n * @param pipeline - pipeline with the policies to run when sending the request\n * @param options - request options\n * @param customHttpClient - a custom HttpClient to use when making the request\n * @returns returns and HttpResponse\n */\nexport async function sendRequest(\n method: HttpMethods,\n url: string,\n pipeline: Pipeline,\n options: InternalRequestParameters = {},\n customHttpClient?: HttpClient,\n): Promise<HttpResponse> {\n const httpClient = customHttpClient ?? getCachedDefaultHttpsClient();\n const request = buildPipelineRequest(method, url, options);\n\n try {\n const response = await pipeline.sendRequest(httpClient, request);\n const headers = response.headers.toJSON();\n const stream = response.readableStreamBody ?? response.browserStreamBody;\n const parsedBody =\n options.responseAsStream || stream !== undefined ? undefined : getResponseBody(response);\n const body = stream ?? parsedBody;\n\n if (options?.onResponse) {\n options.onResponse({ ...response, request, rawHeaders: headers, parsedBody });\n }\n\n return {\n request,\n headers,\n status: `${response.status}`,\n body,\n };\n } catch (e: unknown) {\n if (isRestError(e) && e.response && options.onResponse) {\n const { response } = e;\n const rawHeaders = response.headers.toJSON();\n // UNBRANDED DIFFERENCE: onResponse callback does not have a second __legacyError property\n options?.onResponse({ ...response, request, rawHeaders }, e);\n }\n\n throw e;\n }\n}\n\n/**\n * Function to determine the request content type\n * @param options - request options InternalRequestParameters\n * @returns returns the content-type\n */\nfunction getRequestContentType(options: InternalRequestParameters = {}): string | undefined {\n if (options.contentType) {\n return options.contentType;\n }\n const headerContentType = options.headers?.[\"content-type\"];\n if (typeof headerContentType === \"string\") {\n return headerContentType;\n }\n return getContentType(options.body);\n}\n\n/**\n * Function to determine the content-type of a body\n * this is used if an explicit content-type is not provided\n * @param body - body in the request\n * @returns returns the content-type\n */\nfunction getContentType(body: any): string | undefined {\n if (body === undefined) {\n return undefined;\n }\n\n if (ArrayBuffer.isView(body)) {\n return \"application/octet-stream\";\n }\n\n if (isBlob(body) && body.type) {\n return body.type;\n }\n\n if (typeof body === \"string\") {\n try {\n JSON.parse(body);\n return \"application/json\";\n } catch (error: any) {\n // If we fail to parse the body, it is not json\n return undefined;\n }\n }\n // By default return json\n return \"application/json\";\n}\n\nexport interface InternalRequestParameters extends RequestParameters {\n responseAsStream?: boolean;\n}\n\nfunction buildPipelineRequest(\n method: HttpMethods,\n url: string,\n options: InternalRequestParameters = {},\n): PipelineRequest {\n const requestContentType = getRequestContentType(options);\n const { body, multipartBody } = getRequestBody(options.body, requestContentType);\n\n const headers = createHttpHeaders({\n ...(options.headers ? options.headers : {}),\n accept: options.accept ?? options.headers?.accept ?? \"application/json\",\n ...(requestContentType && {\n \"content-type\": requestContentType,\n }),\n });\n\n const {\n allowInsecureConnection,\n abortSignal,\n onUploadProgress,\n onDownloadProgress,\n timeout,\n responseAsStream,\n url: _url,\n method: _method,\n body: _body,\n multipartBody: _multiBody,\n headers: _headers,\n ...rest\n } = options as InternalRequestParameters & {\n url: string;\n method: string;\n multipartBody: unknown;\n };\n\n const request = createPipelineRequest({\n url,\n method,\n body,\n multipartBody,\n headers,\n allowInsecureConnection,\n abortSignal,\n onUploadProgress,\n onDownloadProgress,\n timeout,\n enableBrowserStreams: true,\n streamResponseStatusCodes: responseAsStream ? new Set([Number.POSITIVE_INFINITY]) : undefined,\n });\n\n Object.assign(request, rest);\n return request;\n}\n\ninterface RequestBody {\n body?: RequestBodyType;\n multipartBody?: MultipartRequestBody;\n}\n\n/**\n * Prepares the body before sending the request\n */\nexport function getRequestBody(body?: unknown, contentType: string = \"\"): RequestBody {\n if (body === undefined) {\n return { body: undefined };\n }\n\n if (typeof FormData !== \"undefined\" && body instanceof FormData) {\n return { body };\n }\n\n if (isBlob(body)) {\n return { body };\n }\n\n if (isReadableStream(body)) {\n return { body };\n }\n\n if (typeof body === \"function\") {\n return { body: body as RequestBodyType };\n }\n\n if (ArrayBuffer.isView(body)) {\n return {\n body: body instanceof Uint8Array ? body : JSON.stringify(body),\n };\n }\n\n const firstType = contentType.split(\";\")[0];\n\n switch (firstType) {\n case \"application/json\":\n return { body: JSON.stringify(body) };\n case \"multipart/form-data\":\n if (Array.isArray(body)) {\n return { multipartBody: buildMultipartBody(body as unknown as PartDescriptor[]) };\n }\n return { body: JSON.stringify(body) };\n case \"text/plain\":\n return { body: String(body) };\n default:\n if (typeof body === \"string\") {\n return { body };\n }\n return { body: JSON.stringify(body) };\n }\n}\n\n/**\n * Prepares the response body\n */\nfunction getResponseBody(response: PipelineResponse): RequestBodyType | undefined {\n // Set the default response type\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n const firstType = contentType.split(\";\")[0];\n const bodyToParse = response.bodyAsText ?? \"\";\n\n if (firstType === \"text/plain\") {\n return String(bodyToParse);\n }\n // Default to \"application/json\" and fallback to string;\n try {\n return bodyToParse ? JSON.parse(bodyToParse) : undefined;\n } catch (error: any) {\n // If we were supposed to get a JSON object and failed to\n // parse, throw a parse error\n if (firstType === \"application/json\") {\n throw createParseError(response, error);\n }\n\n // We are not sure how to handle the response so we return it as\n // plain text.\n return String(bodyToParse);\n }\n}\n\nfunction createParseError(response: PipelineResponse, err: any): RestError {\n const msg = `Error \"${err}\" occurred while parsing the response body - ${response.bodyAsText}.`;\n const errCode = err.code ?? RestError.PARSE_ERROR;\n return new RestError(msg, {\n code: errCode,\n statusCode: response.status,\n request: response.request,\n response: response,\n });\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -21,7 +21,7 @@ __export(constants_exports, {
21
21
  SDK_VERSION: () => SDK_VERSION
22
22
  });
23
23
  module.exports = __toCommonJS(constants_exports);
24
- const SDK_VERSION = "0.3.5";
24
+ const SDK_VERSION = "0.3.6";
25
25
  const DEFAULT_RETRY_POLICY_COUNT = 3;
26
26
  // Annotate the CommonJS export names for ESM import in node:
27
27
  0 && (module.exports = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const SDK_VERSION: string = \"0.3.5\";\n\nexport const DEFAULT_RETRY_POLICY_COUNT = 3;\n"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const SDK_VERSION: string = \"0.3.6\";\n\nexport const DEFAULT_RETRY_POLICY_COUNT = 3;\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,cAAsB;AAE5B,MAAM,6BAA6B;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { type LogPolicyOptions } from "./policies/logPolicy.js";
2
2
  import { type Pipeline } from "./pipeline.js";
3
3
  import type { Agent, PipelineRetryOptions, ProxySettings, TlsSettings } from "./interfaces.js";
4
- import { type RedirectPolicyOptions } from "./policies/redirectPolicy.js";
4
+ import type { RedirectPolicyOptions } from "./policies/redirectPolicy.js";
5
5
  import { type UserAgentPolicyOptions } from "./policies/userAgentPolicy.js";
6
6
  /**
7
7
  * Defines options that are used to configure the HTTP pipeline for
@@ -22,35 +22,18 @@ __export(createPipelineFromOptions_exports, {
22
22
  module.exports = __toCommonJS(createPipelineFromOptions_exports);
23
23
  var import_logPolicy = require("./policies/logPolicy.js");
24
24
  var import_pipeline = require("./pipeline.js");
25
- var import_redirectPolicy = require("./policies/redirectPolicy.js");
26
25
  var import_userAgentPolicy = require("./policies/userAgentPolicy.js");
27
- var import_decompressResponsePolicy = require("./policies/decompressResponsePolicy.js");
28
26
  var import_defaultRetryPolicy = require("./policies/defaultRetryPolicy.js");
29
27
  var import_formDataPolicy = require("./policies/formDataPolicy.js");
30
- var import_checkEnvironment = require("./util/checkEnvironment.js");
31
- var import_proxyPolicy = require("./policies/proxyPolicy.js");
32
- var import_agentPolicy = require("./policies/agentPolicy.js");
33
- var import_tlsPolicy = require("./policies/tlsPolicy.js");
28
+ var import_policies = require("./policies/platformPolicies.js");
34
29
  var import_multipartPolicy = require("./policies/multipartPolicy.js");
35
30
  function createPipelineFromOptions(options) {
36
31
  const pipeline = (0, import_pipeline.createEmptyPipeline)();
37
- if (import_checkEnvironment.isNodeLike) {
38
- if (options.agent) {
39
- pipeline.addPolicy((0, import_agentPolicy.agentPolicy)(options.agent));
40
- }
41
- if (options.tlsOptions) {
42
- pipeline.addPolicy((0, import_tlsPolicy.tlsPolicy)(options.tlsOptions));
43
- }
44
- pipeline.addPolicy((0, import_proxyPolicy.proxyPolicy)(options.proxyOptions));
45
- pipeline.addPolicy((0, import_decompressResponsePolicy.decompressResponsePolicy)());
46
- }
32
+ (0, import_policies.addPlatformPolicies)(pipeline, options);
47
33
  pipeline.addPolicy((0, import_formDataPolicy.formDataPolicy)(), { beforePolicies: [import_multipartPolicy.multipartPolicyName] });
48
34
  pipeline.addPolicy((0, import_userAgentPolicy.userAgentPolicy)(options.userAgentOptions));
49
35
  pipeline.addPolicy((0, import_multipartPolicy.multipartPolicy)(), { afterPhase: "Deserialize" });
50
36
  pipeline.addPolicy((0, import_defaultRetryPolicy.defaultRetryPolicy)(options.retryOptions), { phase: "Retry" });
51
- if (import_checkEnvironment.isNodeLike) {
52
- pipeline.addPolicy((0, import_redirectPolicy.redirectPolicy)(options.redirectOptions), { afterPhase: "Retry" });
53
- }
54
37
  pipeline.addPolicy((0, import_logPolicy.logPolicy)(options.loggingOptions), { afterPhase: "Sign" });
55
38
  return pipeline;
56
39
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createPipelineFromOptions.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { type LogPolicyOptions, logPolicy } from \"./policies/logPolicy.js\";\nimport { type Pipeline, createEmptyPipeline } from \"./pipeline.js\";\nimport type { Agent, PipelineRetryOptions, ProxySettings, TlsSettings } from \"./interfaces.js\";\nimport { type RedirectPolicyOptions, redirectPolicy } from \"./policies/redirectPolicy.js\";\nimport { type UserAgentPolicyOptions, userAgentPolicy } from \"./policies/userAgentPolicy.js\";\nimport { decompressResponsePolicy } from \"./policies/decompressResponsePolicy.js\";\nimport { defaultRetryPolicy } from \"./policies/defaultRetryPolicy.js\";\nimport { formDataPolicy } from \"./policies/formDataPolicy.js\";\nimport { isNodeLike } from \"./util/checkEnvironment.js\";\nimport { proxyPolicy } from \"./policies/proxyPolicy.js\";\nimport { agentPolicy } from \"./policies/agentPolicy.js\";\nimport { tlsPolicy } from \"./policies/tlsPolicy.js\";\nimport { multipartPolicy, multipartPolicyName } from \"./policies/multipartPolicy.js\";\n\n/**\n * Defines options that are used to configure the HTTP pipeline for\n * an SDK client.\n */\nexport interface PipelineOptions {\n /**\n * Options that control how to retry failed requests.\n */\n retryOptions?: PipelineRetryOptions;\n\n /**\n * Options to configure a proxy for outgoing requests.\n */\n proxyOptions?: ProxySettings;\n\n /** Options for configuring Agent instance for outgoing requests */\n agent?: Agent;\n\n /** Options for configuring TLS authentication */\n tlsOptions?: TlsSettings;\n\n /**\n * Options for how redirect responses are handled.\n */\n redirectOptions?: RedirectPolicyOptions;\n\n /**\n * Options for adding user agent details to outgoing requests.\n */\n userAgentOptions?: UserAgentPolicyOptions;\n\n /**\n * Options for setting common telemetry and tracing info to outgoing requests.\n */\n telemetryOptions?: TelemetryOptions;\n}\n\n/**\n * Defines options that are used to configure common telemetry and tracing info\n */\nexport interface TelemetryOptions {\n /**\n * The name of the header to pass the request ID to.\n */\n clientRequestIdHeaderName?: string;\n}\n\n/**\n * Defines options that are used to configure internal options of\n * the HTTP pipeline for an SDK client.\n */\nexport interface InternalPipelineOptions extends PipelineOptions {\n /**\n * Options to configure request/response logging.\n */\n loggingOptions?: LogPolicyOptions;\n}\n\n/**\n * Create a new pipeline with a default set of customizable policies.\n * @param options - Options to configure a custom pipeline.\n */\nexport function createPipelineFromOptions(options: InternalPipelineOptions): Pipeline {\n const pipeline = createEmptyPipeline();\n\n if (isNodeLike) {\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 }\n\n pipeline.addPolicy(formDataPolicy(), { beforePolicies: [multipartPolicyName] });\n pipeline.addPolicy(userAgentPolicy(options.userAgentOptions));\n // The multipart policy is added after policies with no phase, so that\n // policies can be added between it and formDataPolicy to modify\n // properties (e.g., making the boundary constant in recorded tests).\n pipeline.addPolicy(multipartPolicy(), { afterPhase: \"Deserialize\" });\n pipeline.addPolicy(defaultRetryPolicy(options.retryOptions), { phase: \"Retry\" });\n if (isNodeLike) {\n // Both XHR and Fetch expect to handle redirects automatically,\n // so only include this policy when we're in Node.\n pipeline.addPolicy(redirectPolicy(options.redirectOptions), { afterPhase: \"Retry\" });\n }\n pipeline.addPolicy(logPolicy(options.loggingOptions), { afterPhase: \"Sign\" });\n\n return pipeline;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,uBAAiD;AACjD,sBAAmD;AAEnD,4BAA2D;AAC3D,6BAA6D;AAC7D,sCAAyC;AACzC,gCAAmC;AACnC,4BAA+B;AAC/B,8BAA2B;AAC3B,yBAA4B;AAC5B,yBAA4B;AAC5B,uBAA0B;AAC1B,6BAAqD;AAgE9C,SAAS,0BAA0B,SAA4C;AACpF,QAAM,eAAW,qCAAoB;AAErC,MAAI,oCAAY;AACd,QAAI,QAAQ,OAAO;AACjB,eAAS,cAAU,gCAAY,QAAQ,KAAK,CAAC;AAAA,IAC/C;AACA,QAAI,QAAQ,YAAY;AACtB,eAAS,cAAU,4BAAU,QAAQ,UAAU,CAAC;AAAA,IAClD;AACA,aAAS,cAAU,gCAAY,QAAQ,YAAY,CAAC;AACpD,aAAS,cAAU,0DAAyB,CAAC;AAAA,EAC/C;AAEA,WAAS,cAAU,sCAAe,GAAG,EAAE,gBAAgB,CAAC,0CAAmB,EAAE,CAAC;AAC9E,WAAS,cAAU,wCAAgB,QAAQ,gBAAgB,CAAC;AAI5D,WAAS,cAAU,wCAAgB,GAAG,EAAE,YAAY,cAAc,CAAC;AACnE,WAAS,cAAU,8CAAmB,QAAQ,YAAY,GAAG,EAAE,OAAO,QAAQ,CAAC;AAC/E,MAAI,oCAAY;AAGd,aAAS,cAAU,sCAAe,QAAQ,eAAe,GAAG,EAAE,YAAY,QAAQ,CAAC;AAAA,EACrF;AACA,WAAS,cAAU,4BAAU,QAAQ,cAAc,GAAG,EAAE,YAAY,OAAO,CAAC;AAE5E,SAAO;AACT;",
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { type LogPolicyOptions, logPolicy } from \"./policies/logPolicy.js\";\nimport { type Pipeline, createEmptyPipeline } from \"./pipeline.js\";\nimport type { Agent, PipelineRetryOptions, ProxySettings, TlsSettings } from \"./interfaces.js\";\nimport type { RedirectPolicyOptions } from \"./policies/redirectPolicy.js\";\nimport { type UserAgentPolicyOptions, userAgentPolicy } from \"./policies/userAgentPolicy.js\";\nimport { defaultRetryPolicy } from \"./policies/defaultRetryPolicy.js\";\nimport { formDataPolicy } from \"./policies/formDataPolicy.js\";\nimport { addPlatformPolicies } from \"#platform/policies\";\nimport { multipartPolicy, multipartPolicyName } from \"./policies/multipartPolicy.js\";\n\n/**\n * Defines options that are used to configure the HTTP pipeline for\n * an SDK client.\n */\nexport interface PipelineOptions {\n /**\n * Options that control how to retry failed requests.\n */\n retryOptions?: PipelineRetryOptions;\n\n /**\n * Options to configure a proxy for outgoing requests.\n */\n proxyOptions?: ProxySettings;\n\n /** Options for configuring Agent instance for outgoing requests */\n agent?: Agent;\n\n /** Options for configuring TLS authentication */\n tlsOptions?: TlsSettings;\n\n /**\n * Options for how redirect responses are handled.\n */\n redirectOptions?: RedirectPolicyOptions;\n\n /**\n * Options for adding user agent details to outgoing requests.\n */\n userAgentOptions?: UserAgentPolicyOptions;\n\n /**\n * Options for setting common telemetry and tracing info to outgoing requests.\n */\n telemetryOptions?: TelemetryOptions;\n}\n\n/**\n * Defines options that are used to configure common telemetry and tracing info\n */\nexport interface TelemetryOptions {\n /**\n * The name of the header to pass the request ID to.\n */\n clientRequestIdHeaderName?: string;\n}\n\n/**\n * Defines options that are used to configure internal options of\n * the HTTP pipeline for an SDK client.\n */\nexport interface InternalPipelineOptions extends PipelineOptions {\n /**\n * Options to configure request/response logging.\n */\n loggingOptions?: LogPolicyOptions;\n}\n\n/**\n * Create a new pipeline with a default set of customizable policies.\n * @param options - Options to configure a custom pipeline.\n */\nexport function createPipelineFromOptions(options: InternalPipelineOptions): Pipeline {\n const pipeline = createEmptyPipeline();\n\n addPlatformPolicies(pipeline, options);\n\n pipeline.addPolicy(formDataPolicy(), { beforePolicies: [multipartPolicyName] });\n pipeline.addPolicy(userAgentPolicy(options.userAgentOptions));\n // The multipart policy is added after policies with no phase, so that\n // policies can be added between it and formDataPolicy to modify\n // properties (e.g., making the boundary constant in recorded tests).\n pipeline.addPolicy(multipartPolicy(), { afterPhase: \"Deserialize\" });\n pipeline.addPolicy(defaultRetryPolicy(options.retryOptions), { phase: \"Retry\" });\n pipeline.addPolicy(logPolicy(options.loggingOptions), { afterPhase: \"Sign\" });\n\n return pipeline;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,uBAAiD;AACjD,sBAAmD;AAGnD,6BAA6D;AAC7D,gCAAmC;AACnC,4BAA+B;AAC/B,sBAAoC;AACpC,6BAAqD;AAgE9C,SAAS,0BAA0B,SAA4C;AACpF,QAAM,eAAW,qCAAoB;AAErC,2CAAoB,UAAU,OAAO;AAErC,WAAS,cAAU,sCAAe,GAAG,EAAE,gBAAgB,CAAC,0CAAmB,EAAE,CAAC;AAC9E,WAAS,cAAU,wCAAgB,QAAQ,gBAAgB,CAAC;AAI5D,WAAS,cAAU,wCAAgB,GAAG,EAAE,YAAY,cAAc,CAAC;AACnE,WAAS,cAAU,8CAAmB,QAAQ,YAAY,GAAG,EAAE,OAAO,QAAQ,CAAC;AAC/E,WAAS,cAAU,4BAAU,QAAQ,cAAc,GAAG,EAAE,YAAY,OAAO,CAAC;AAE5E,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,23 @@
1
+ declare global {
2
+ namespace NodeJS {
3
+ interface ProcessVersions {
4
+ bun?: string;
5
+ deno?: string;
6
+ }
7
+ }
8
+ }
9
+ /**
10
+ * Returns the value of the specified environment variable.
11
+ *
12
+ * @internal
13
+ */
14
+ export declare function getEnvironmentVariable(name: string): string | undefined;
15
+ /**
16
+ * Emits a Node.js process warning.
17
+ *
18
+ * @internal
19
+ */
20
+ export declare function emitNodeWarning(warning: string): void;
1
21
  /**
2
22
  * A constant that indicates whether the environment the code is running is a Web Browser.
3
23
  */
@@ -26,4 +46,4 @@ export declare const isNodeRuntime: boolean;
26
46
  * A constant that indicates whether the environment the code is running is in React-Native.
27
47
  */
28
48
  export declare const isReactNative: boolean;
29
- //# sourceMappingURL=checkEnvironment.d.ts.map
49
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1,67 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var env_exports = {};
29
+ __export(env_exports, {
30
+ emitNodeWarning: () => emitNodeWarning,
31
+ getEnvironmentVariable: () => getEnvironmentVariable,
32
+ isBrowser: () => isBrowser,
33
+ isBun: () => isBun,
34
+ isDeno: () => isDeno,
35
+ isNodeLike: () => isNodeLike,
36
+ isNodeRuntime: () => isNodeRuntime,
37
+ isReactNative: () => isReactNative,
38
+ isWebWorker: () => isWebWorker
39
+ });
40
+ module.exports = __toCommonJS(env_exports);
41
+ var import_node_process = __toESM(require("node:process"));
42
+ function getEnvironmentVariable(name) {
43
+ return import_node_process.default.env[name];
44
+ }
45
+ function emitNodeWarning(warning) {
46
+ import_node_process.default.emitWarning(warning);
47
+ }
48
+ const isBrowser = false;
49
+ const isWebWorker = false;
50
+ const isDeno = typeof import_node_process.default.versions.deno === "string" && import_node_process.default.versions.deno.length > 0;
51
+ const isBun = typeof import_node_process.default.versions.bun === "string" && import_node_process.default.versions.bun.length > 0;
52
+ const isNodeLike = true;
53
+ const isNodeRuntime = !isBun && !isDeno;
54
+ const isReactNative = false;
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ emitNodeWarning,
58
+ getEnvironmentVariable,
59
+ isBrowser,
60
+ isBun,
61
+ isDeno,
62
+ isNodeLike,
63
+ isNodeRuntime,
64
+ isReactNative,
65
+ isWebWorker
66
+ });
67
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/env.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport process from \"node:process\";\n\ndeclare global {\n // Bun and Deno set process.versions with their runtime identifier\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface ProcessVersions {\n bun?: string;\n deno?: string;\n }\n }\n}\n\n/**\n * Returns the value of the specified environment variable.\n *\n * @internal\n */\nexport function getEnvironmentVariable(name: string): string | undefined {\n return process.env[name];\n}\n\n/**\n * Emits a Node.js process warning.\n *\n * @internal\n */\nexport function emitNodeWarning(warning: string): void {\n process.emitWarning(warning);\n}\n\n/**\n * A constant that indicates whether the environment the code is running is a Web Browser.\n */\nexport const isBrowser: boolean = false;\n\n/**\n * A constant that indicates whether the environment the code is running is a Web Worker.\n */\nexport const isWebWorker: boolean = false;\n\n/**\n * A constant that indicates whether the environment the code is running is Deno.\n */\nexport const isDeno = typeof process.versions.deno === \"string\" && process.versions.deno.length > 0;\n\n/**\n * A constant that indicates whether the environment the code is running is Bun.sh.\n */\nexport const isBun = typeof process.versions.bun === \"string\" && process.versions.bun.length > 0;\n\n/**\n * A constant that indicates whether the environment the code is running is a Node.js compatible environment.\n */\nexport const isNodeLike: boolean = true;\n\n/**\n * A constant that indicates whether the environment the code is running is Node.JS.\n */\nexport const isNodeRuntime = !isBun && !isDeno;\n\n/**\n * A constant that indicates whether the environment the code is running is in React-Native.\n */\nexport const isReactNative: boolean = false;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAAoB;AAkBb,SAAS,uBAAuB,MAAkC;AACvE,SAAO,oBAAAA,QAAQ,IAAI,IAAI;AACzB;AAOO,SAAS,gBAAgB,SAAuB;AACrD,sBAAAA,QAAQ,YAAY,OAAO;AAC7B;AAKO,MAAM,YAAqB;AAK3B,MAAM,cAAuB;AAK7B,MAAM,SAAS,OAAO,oBAAAA,QAAQ,SAAS,SAAS,YAAY,oBAAAA,QAAQ,SAAS,KAAK,SAAS;AAK3F,MAAM,QAAQ,OAAO,oBAAAA,QAAQ,SAAS,QAAQ,YAAY,oBAAAA,QAAQ,SAAS,IAAI,SAAS;AAKxF,MAAM,aAAsB;AAK5B,MAAM,gBAAgB,CAAC,SAAS,CAAC;AAKjC,MAAM,gBAAyB;",
6
+ "names": ["process"]
7
+ }
@@ -0,0 +1,10 @@
1
+ import type { FormDataMap } from "./interfaces.js";
2
+ /**
3
+ * If the request body is a native FormData, convert it to our FormDataMap
4
+ * representation and clear the body. Node.js's HTTP stack doesn't handle
5
+ * FormData natively, so the pipeline must serialize it later.
6
+ *
7
+ * @internal
8
+ */
9
+ export declare function convertBodyToFormDataMap(body: unknown): FormDataMap | undefined;
10
+ //# sourceMappingURL=formData.d.ts.map
@@ -15,29 +15,28 @@ var __copyProps = (to, from, except, desc) => {
15
15
  return to;
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var log_common_exports = {};
19
- __export(log_common_exports, {
20
- log: () => log
18
+ var formData_exports = {};
19
+ __export(formData_exports, {
20
+ convertBodyToFormDataMap: () => convertBodyToFormDataMap
21
21
  });
22
- module.exports = __toCommonJS(log_common_exports);
23
- function log(...args) {
24
- if (args.length > 0) {
25
- const firstArg = String(args[0]);
26
- if (firstArg.includes(":error")) {
27
- console.error(...args);
28
- } else if (firstArg.includes(":warning")) {
29
- console.warn(...args);
30
- } else if (firstArg.includes(":info")) {
31
- console.info(...args);
32
- } else if (firstArg.includes(":verbose")) {
33
- console.debug(...args);
34
- } else {
35
- console.debug(...args);
22
+ module.exports = __toCommonJS(formData_exports);
23
+ function convertBodyToFormDataMap(body) {
24
+ if (typeof FormData !== "undefined" && body instanceof FormData) {
25
+ const formDataMap = {};
26
+ for (const [key, value] of body.entries()) {
27
+ const existing = formDataMap[key];
28
+ if (Array.isArray(existing)) {
29
+ existing.push(value);
30
+ } else {
31
+ formDataMap[key] = existing !== void 0 ? [existing, value] : [value];
32
+ }
36
33
  }
34
+ return formDataMap;
37
35
  }
36
+ return void 0;
38
37
  }
39
38
  // Annotate the CommonJS export names for ESM import in node:
40
39
  0 && (module.exports = {
41
- log
40
+ convertBodyToFormDataMap
42
41
  });
43
- //# sourceMappingURL=log.common.js.map
42
+ //# sourceMappingURL=formData.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/formData.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { FormDataMap } from \"./interfaces.js\";\n\n/**\n * If the request body is a native FormData, convert it to our FormDataMap\n * representation and clear the body. Node.js's HTTP stack doesn't handle\n * FormData natively, so the pipeline must serialize it later.\n *\n * @internal\n */\nexport function convertBodyToFormDataMap(body: unknown): FormDataMap | undefined {\n if (typeof FormData !== \"undefined\" && body instanceof FormData) {\n const formDataMap: FormDataMap = {};\n for (const [key, value] of body.entries()) {\n const existing = formDataMap[key];\n if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n formDataMap[key] = existing !== undefined ? [existing, value] : [value];\n }\n }\n return formDataMap;\n }\n return undefined;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAYO,SAAS,yBAAyB,MAAwC;AAC/E,MAAI,OAAO,aAAa,eAAe,gBAAgB,UAAU;AAC/D,UAAM,cAA2B,CAAC;AAClC,eAAW,CAAC,KAAK,KAAK,KAAK,KAAK,QAAQ,GAAG;AACzC,YAAM,WAAW,YAAY,GAAG;AAChC,UAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,iBAAS,KAAK,KAAK;AAAA,MACrB,OAAO;AACL,oBAAY,GAAG,IAAI,aAAa,SAAY,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK;AAAA,MACxE;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -23,6 +23,9 @@ module.exports = __toCommonJS(httpHeaders_exports);
23
23
  function normalizeName(name) {
24
24
  return name.toLowerCase();
25
25
  }
26
+ function normalizeValue(value) {
27
+ return String(value).trim().replace(/[\r\n]/g, "");
28
+ }
26
29
  function* headerIterator(map) {
27
30
  for (const entry of map.values()) {
28
31
  yield [entry.name, entry.value];
@@ -45,7 +48,7 @@ class HttpHeadersImpl {
45
48
  * @param value - The value of the header to set.
46
49
  */
47
50
  set(name, value) {
48
- this._headersMap.set(normalizeName(name), { name, value: String(value).trim() });
51
+ this._headersMap.set(normalizeName(name), { name, value: normalizeValue(value) });
49
52
  }
50
53
  /**
51
54
  * Get the header value for the provided header name, or undefined if no header exists in this
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/httpHeaders.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { HttpHeaders, RawHttpHeaders, RawHttpHeadersInput } from \"./interfaces.js\";\n\ninterface HeaderEntry {\n name: string;\n value: string;\n}\n\nfunction normalizeName(name: string): string {\n return name.toLowerCase();\n}\n\nfunction* headerIterator(map: Map<string, HeaderEntry>): IterableIterator<[string, string]> {\n for (const entry of map.values()) {\n yield [entry.name, entry.value];\n }\n}\n\nclass HttpHeadersImpl implements HttpHeaders {\n private readonly _headersMap: Map<string, HeaderEntry>;\n\n constructor(rawHeaders?: RawHttpHeaders | RawHttpHeadersInput) {\n this._headersMap = new Map<string, HeaderEntry>();\n if (rawHeaders) {\n for (const headerName of Object.keys(rawHeaders)) {\n this.set(headerName, rawHeaders[headerName]);\n }\n }\n }\n\n /**\n * Set a header in this collection with the provided name and value. The name is\n * case-insensitive.\n * @param name - The name of the header to set. This value is case-insensitive.\n * @param value - The value of the header to set.\n */\n public set(name: string, value: string | number | boolean): void {\n this._headersMap.set(normalizeName(name), { name, value: String(value).trim() });\n }\n\n /**\n * Get the header value for the provided header name, or undefined if no header exists in this\n * collection with the provided name.\n * @param name - The name of the header. This value is case-insensitive.\n */\n public get(name: string): string | undefined {\n return this._headersMap.get(normalizeName(name))?.value;\n }\n\n /**\n * Get whether or not this header collection contains a header entry for the provided header name.\n * @param name - The name of the header to set. This value is case-insensitive.\n */\n public has(name: string): boolean {\n return this._headersMap.has(normalizeName(name));\n }\n\n /**\n * Remove the header with the provided headerName.\n * @param name - The name of the header to remove.\n */\n public delete(name: string): void {\n this._headersMap.delete(normalizeName(name));\n }\n\n /**\n * Get the JSON object representation of this HTTP header collection.\n */\n public toJSON(options: { preserveCase?: boolean } = {}): RawHttpHeaders {\n const result: RawHttpHeaders = {};\n if (options.preserveCase) {\n for (const entry of this._headersMap.values()) {\n result[entry.name] = entry.value;\n }\n } else {\n for (const [normalizedName, entry] of this._headersMap) {\n result[normalizedName] = entry.value;\n }\n }\n\n return result;\n }\n\n /**\n * Get the string representation of this HTTP header collection.\n */\n public toString(): string {\n return JSON.stringify(this.toJSON({ preserveCase: true }));\n }\n\n /**\n * Iterate over tuples of header [name, value] pairs.\n */\n [Symbol.iterator](): Iterator<[string, string]> {\n return headerIterator(this._headersMap);\n }\n}\n\n/**\n * Creates an object that satisfies the `HttpHeaders` interface.\n * @param rawHeaders - A simple object representing initial headers\n */\nexport function createHttpHeaders(rawHeaders?: RawHttpHeadersInput): HttpHeaders {\n return new HttpHeadersImpl(rawHeaders);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,SAAS,cAAc,MAAsB;AAC3C,SAAO,KAAK,YAAY;AAC1B;AAEA,UAAU,eAAe,KAAmE;AAC1F,aAAW,SAAS,IAAI,OAAO,GAAG;AAChC,UAAM,CAAC,MAAM,MAAM,MAAM,KAAK;AAAA,EAChC;AACF;AAEA,MAAM,gBAAuC;AAAA,EAC1B;AAAA,EAEjB,YAAY,YAAmD;AAC7D,SAAK,cAAc,oBAAI,IAAyB;AAChD,QAAI,YAAY;AACd,iBAAW,cAAc,OAAO,KAAK,UAAU,GAAG;AAChD,aAAK,IAAI,YAAY,WAAW,UAAU,CAAC;AAAA,MAC7C;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,IAAI,MAAc,OAAwC;AAC/D,SAAK,YAAY,IAAI,cAAc,IAAI,GAAG,EAAE,MAAM,OAAO,OAAO,KAAK,EAAE,KAAK,EAAE,CAAC;AAAA,EACjF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,IAAI,MAAkC;AAC3C,WAAO,KAAK,YAAY,IAAI,cAAc,IAAI,CAAC,GAAG;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,IAAI,MAAuB;AAChC,WAAO,KAAK,YAAY,IAAI,cAAc,IAAI,CAAC;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,OAAO,MAAoB;AAChC,SAAK,YAAY,OAAO,cAAc,IAAI,CAAC;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA,EAKO,OAAO,UAAsC,CAAC,GAAmB;AACtE,UAAM,SAAyB,CAAC;AAChC,QAAI,QAAQ,cAAc;AACxB,iBAAW,SAAS,KAAK,YAAY,OAAO,GAAG;AAC7C,eAAO,MAAM,IAAI,IAAI,MAAM;AAAA,MAC7B;AAAA,IACF,OAAO;AACL,iBAAW,CAAC,gBAAgB,KAAK,KAAK,KAAK,aAAa;AACtD,eAAO,cAAc,IAAI,MAAM;AAAA,MACjC;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKO,WAAmB;AACxB,WAAO,KAAK,UAAU,KAAK,OAAO,EAAE,cAAc,KAAK,CAAC,CAAC;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA,EAKA,CAAC,OAAO,QAAQ,IAAgC;AAC9C,WAAO,eAAe,KAAK,WAAW;AAAA,EACxC;AACF;AAMO,SAAS,kBAAkB,YAA+C;AAC/E,SAAO,IAAI,gBAAgB,UAAU;AACvC;",
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { HttpHeaders, RawHttpHeaders, RawHttpHeadersInput } from \"./interfaces.js\";\n\ninterface HeaderEntry {\n name: string;\n value: string;\n}\n\nfunction normalizeName(name: string): string {\n return name.toLowerCase();\n}\n\n/**\n * Removes CR and LF characters from a header value to prevent obs-fold\n * (line folding) sequences, as forbidden by RFC 7230 \u00A73.2.4.\n * @param value - The header value to sanitize.\n */\nfunction normalizeValue(value: string | number | boolean): string {\n return String(value)\n .trim()\n .replace(/[\\r\\n]/g, \"\");\n}\n\nfunction* headerIterator(map: Map<string, HeaderEntry>): IterableIterator<[string, string]> {\n for (const entry of map.values()) {\n yield [entry.name, entry.value];\n }\n}\n\nclass HttpHeadersImpl implements HttpHeaders {\n private readonly _headersMap: Map<string, HeaderEntry>;\n\n constructor(rawHeaders?: RawHttpHeaders | RawHttpHeadersInput) {\n this._headersMap = new Map<string, HeaderEntry>();\n if (rawHeaders) {\n for (const headerName of Object.keys(rawHeaders)) {\n this.set(headerName, rawHeaders[headerName]);\n }\n }\n }\n\n /**\n * Set a header in this collection with the provided name and value. The name is\n * case-insensitive.\n * @param name - The name of the header to set. This value is case-insensitive.\n * @param value - The value of the header to set.\n */\n public set(name: string, value: string | number | boolean): void {\n this._headersMap.set(normalizeName(name), { name, value: normalizeValue(value) });\n }\n\n /**\n * Get the header value for the provided header name, or undefined if no header exists in this\n * collection with the provided name.\n * @param name - The name of the header. This value is case-insensitive.\n */\n public get(name: string): string | undefined {\n return this._headersMap.get(normalizeName(name))?.value;\n }\n\n /**\n * Get whether or not this header collection contains a header entry for the provided header name.\n * @param name - The name of the header to set. This value is case-insensitive.\n */\n public has(name: string): boolean {\n return this._headersMap.has(normalizeName(name));\n }\n\n /**\n * Remove the header with the provided headerName.\n * @param name - The name of the header to remove.\n */\n public delete(name: string): void {\n this._headersMap.delete(normalizeName(name));\n }\n\n /**\n * Get the JSON object representation of this HTTP header collection.\n */\n public toJSON(options: { preserveCase?: boolean } = {}): RawHttpHeaders {\n const result: RawHttpHeaders = {};\n if (options.preserveCase) {\n for (const entry of this._headersMap.values()) {\n result[entry.name] = entry.value;\n }\n } else {\n for (const [normalizedName, entry] of this._headersMap) {\n result[normalizedName] = entry.value;\n }\n }\n\n return result;\n }\n\n /**\n * Get the string representation of this HTTP header collection.\n */\n public toString(): string {\n return JSON.stringify(this.toJSON({ preserveCase: true }));\n }\n\n /**\n * Iterate over tuples of header [name, value] pairs.\n */\n [Symbol.iterator](): Iterator<[string, string]> {\n return headerIterator(this._headersMap);\n }\n}\n\n/**\n * Creates an object that satisfies the `HttpHeaders` interface.\n * @param rawHeaders - A simple object representing initial headers\n */\nexport function createHttpHeaders(rawHeaders?: RawHttpHeadersInput): HttpHeaders {\n return new HttpHeadersImpl(rawHeaders);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,SAAS,cAAc,MAAsB;AAC3C,SAAO,KAAK,YAAY;AAC1B;AAOA,SAAS,eAAe,OAA0C;AAChE,SAAO,OAAO,KAAK,EAChB,KAAK,EACL,QAAQ,WAAW,EAAE;AAC1B;AAEA,UAAU,eAAe,KAAmE;AAC1F,aAAW,SAAS,IAAI,OAAO,GAAG;AAChC,UAAM,CAAC,MAAM,MAAM,MAAM,KAAK;AAAA,EAChC;AACF;AAEA,MAAM,gBAAuC;AAAA,EAC1B;AAAA,EAEjB,YAAY,YAAmD;AAC7D,SAAK,cAAc,oBAAI,IAAyB;AAChD,QAAI,YAAY;AACd,iBAAW,cAAc,OAAO,KAAK,UAAU,GAAG;AAChD,aAAK,IAAI,YAAY,WAAW,UAAU,CAAC;AAAA,MAC7C;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,IAAI,MAAc,OAAwC;AAC/D,SAAK,YAAY,IAAI,cAAc,IAAI,GAAG,EAAE,MAAM,OAAO,eAAe,KAAK,EAAE,CAAC;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,IAAI,MAAkC;AAC3C,WAAO,KAAK,YAAY,IAAI,cAAc,IAAI,CAAC,GAAG;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,IAAI,MAAuB;AAChC,WAAO,KAAK,YAAY,IAAI,cAAc,IAAI,CAAC;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,OAAO,MAAoB;AAChC,SAAK,YAAY,OAAO,cAAc,IAAI,CAAC;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA,EAKO,OAAO,UAAsC,CAAC,GAAmB;AACtE,UAAM,SAAyB,CAAC;AAChC,QAAI,QAAQ,cAAc;AACxB,iBAAW,SAAS,KAAK,YAAY,OAAO,GAAG;AAC7C,eAAO,MAAM,IAAI,IAAI,MAAM;AAAA,MAC7B;AAAA,IACF,OAAO;AACL,iBAAW,CAAC,gBAAgB,KAAK,KAAK,KAAK,aAAa;AACtD,eAAO,cAAc,IAAI,MAAM;AAAA,MACjC;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKO,WAAmB;AACxB,WAAO,KAAK,UAAU,KAAK,OAAO,EAAE,cAAc,KAAK,CAAC,CAAC;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA,EAKA,CAAC,OAAO,QAAQ,IAAgC;AAC9C,WAAO,eAAe,KAAK,WAAW;AAAA,EACxC;AACF;AAMO,SAAS,kBAAkB,YAA+C;AAC/E,SAAO,IAAI,gBAAgB,UAAU;AACvC;",
6
6
  "names": []
7
7
  }
@@ -1,16 +1,5 @@
1
- declare global {
2
- interface FormData {
3
- }
4
- interface Blob {
5
- }
6
- interface File {
7
- }
8
- interface ReadableStream<R = any> {
9
- }
10
- interface TransformStream<I = any, O = any> {
11
- }
12
- }
13
1
  export { AbortError } from "./abort-controller/AbortError.js";
2
+ export type { NodeReadableStream, NodeBuffer, WebReadableStream } from "./types.js";
14
3
  export { createClientLogger, getLogLevel, setLogLevel, TypeSpecRuntimeLogger, type Debugger, type TypeSpecRuntimeClientLogger, type TypeSpecRuntimeLogLevel, } from "./logger/logger.js";
15
4
  export type { BodyPart, FormDataValue, RawHttpHeaders, KeyObject, PxfObject, HttpClient, PipelineRequest, PipelineResponse, SendRequest, TlsSettings, Agent, RequestBodyType, FormDataMap, HttpHeaders, HttpMethods, MultipartRequestBody, TransferProgressEvent, ProxySettings, RawHttpHeadersInput, PipelineRetryOptions, } from "./interfaces.js";
16
5
  export { createHttpHeaders } from "./httpHeaders.js";