@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/ts-http-runtime",
3
- "version": "0.3.5",
3
+ "version": "0.3.6",
4
4
  "description": "Isomorphic client library for making HTTP requests in node.js and browser.",
5
5
  "sdk-type": "client",
6
6
  "type": "module",
@@ -8,6 +8,87 @@
8
8
  "types": "./dist/commonjs/index.d.ts",
9
9
  "browser": "./dist/browser/index.js",
10
10
  "react-native": "./dist/react-native/index.js",
11
+ "imports": {
12
+ "#platform/types": {
13
+ "browser": "./src/types-browser.mts",
14
+ "react-native": "./src/types-react-native.mts",
15
+ "default": "./src/types.ts"
16
+ },
17
+ "#platform/env": {
18
+ "browser": "./src/env-browser.mts",
19
+ "react-native": "./src/env-react-native.mts",
20
+ "default": "./src/env.ts"
21
+ },
22
+ "#platform/encoding": {
23
+ "react-native": "./src/encoding-react-native.mts",
24
+ "default": "./src/encoding.ts"
25
+ },
26
+ "#platform/httpClient": {
27
+ "browser": "./src/defaultHttpClient-browser.mts",
28
+ "react-native": "./src/defaultHttpClient-react-native.mts",
29
+ "default": "./src/defaultHttpClient.ts"
30
+ },
31
+ "#platform/formData": {
32
+ "browser": "./src/formData-web.mts",
33
+ "react-native": "./src/formData-web.mts",
34
+ "default": "./src/formData.ts"
35
+ },
36
+ "#platform/log": {
37
+ "browser": "./src/logger/log-web.mts",
38
+ "react-native": "./src/logger/log-web.mts",
39
+ "default": "./src/logger/log.ts"
40
+ },
41
+ "#platform/decompress": {
42
+ "browser": "./src/policies/decompressResponsePolicy-web.mts",
43
+ "react-native": "./src/policies/decompressResponsePolicy-web.mts",
44
+ "default": "./src/policies/decompressResponsePolicy.ts"
45
+ },
46
+ "#platform/proxy": {
47
+ "browser": "./src/policies/proxyPolicy-web.mts",
48
+ "react-native": "./src/policies/proxyPolicy-web.mts",
49
+ "default": "./src/policies/proxyPolicy.ts"
50
+ },
51
+ "#platform/bytesEncoding": {
52
+ "browser": "./src/util/bytesEncoding-web.mts",
53
+ "react-native": "./src/util/bytesEncoding-web.mts",
54
+ "default": "./src/util/bytesEncoding.ts"
55
+ },
56
+ "#platform/concat": {
57
+ "browser": "./src/util/concat-browser.mts",
58
+ "react-native": "./src/util/concat-react-native.mts",
59
+ "default": "./src/util/concat.ts"
60
+ },
61
+ "#platform/inspect": {
62
+ "browser": "./src/util/inspect-web.mts",
63
+ "react-native": "./src/util/inspect-web.mts",
64
+ "default": "./src/util/inspect.ts"
65
+ },
66
+ "#platform/sha256": {
67
+ "browser": "./src/util/sha256-web.mts",
68
+ "react-native": "./src/util/sha256-web.mts",
69
+ "default": "./src/util/sha256.ts"
70
+ },
71
+ "#platform/userAgent": {
72
+ "browser": "./src/util/userAgentPlatform-browser.mts",
73
+ "react-native": "./src/util/userAgentPlatform-react-native.mts",
74
+ "default": "./src/util/userAgentPlatform.ts"
75
+ },
76
+ "#platform/uuid": {
77
+ "browser": "./src/util/uuidUtils-browser.mts",
78
+ "react-native": "./src/util/uuidUtils-react-native.mts",
79
+ "default": "./src/util/uuidUtils.ts"
80
+ },
81
+ "#platform/typeGuards": {
82
+ "browser": "./src/util/typeGuards-browser.mts",
83
+ "react-native": "./src/util/typeGuards-react-native.mts",
84
+ "default": "./src/util/typeGuards-node.ts"
85
+ },
86
+ "#platform/policies": {
87
+ "browser": "./src/policies/platformPolicies-web.mts",
88
+ "react-native": "./src/policies/platformPolicies-web.mts",
89
+ "default": "./src/policies/platformPolicies.ts"
90
+ }
91
+ },
11
92
  "exports": {
12
93
  "./package.json": "./package.json",
13
94
  ".": {
@@ -89,7 +170,11 @@
89
170
  "LICENSE",
90
171
  "README.md"
91
172
  ],
92
- "repository": "github:Azure/azure-sdk-for-js",
173
+ "repository": {
174
+ "type": "git",
175
+ "url": "git+https://github.com/Azure/azure-sdk-for-js",
176
+ "directory": "sdk/core/ts-http-runtime"
177
+ },
93
178
  "keywords": [
94
179
  "azure",
95
180
  "cloud"
@@ -102,7 +187,7 @@
102
187
  "engines": {
103
188
  "node": ">=20.0.0"
104
189
  },
105
- "homepage": "https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/ts-http-runtime/",
190
+ "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/core/ts-http-runtime/README.md",
106
191
  "sideEffects": false,
107
192
  "prettier": "@azure/eslint-plugin-azure-sdk/prettier.json",
108
193
  "//metadata": {
@@ -134,7 +219,7 @@
134
219
  "@vitest/coverage-istanbul": "^4.1.2",
135
220
  "cross-env": "^10.1.0",
136
221
  "eslint": "^9.39.1",
137
- "playwright": "^1.58.2",
222
+ "playwright": "^1.60.0",
138
223
  "prettier": "^3.6.2",
139
224
  "react-native": "^0.84.1",
140
225
  "rimraf": "^6.1.0",
@@ -150,16 +235,17 @@
150
235
  "build": "npm run clean && dev-tool run build-package && dev-tool run extract-api",
151
236
  "build:samples": "echo Skipped.",
152
237
  "check-format": "prettier --list-different --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.{ts,cts,mts}\" \"test/**/*.{ts,cts,mts}\" \"*.{js,cjs,mjs,json}\"",
153
- "clean": "rimraf --glob dist dist-* temp types *.tgz *.log",
238
+ "clean": "rimraf --glob dist temp *.tsbuildinfo *.tgz coverage test-results.*",
154
239
  "execute:samples": "echo skipped",
155
240
  "extract-api": "dev-tool run build-package && dev-tool run extract-api",
156
241
  "format": "prettier --write --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.{ts,cts,mts}\" \"test/**/*.{ts,cts,mts}\" \"*.{js,cjs,mjs,json}\"",
157
242
  "lint": "eslint package.json src test",
158
243
  "lint:fix": "eslint package.json src test --fix --fix-type [problem,suggestion]",
159
244
  "pack": "pnpm pack 2>&1",
160
- "test": "npm run test:node && npm run test:browser",
161
- "test:browser": "npm run clean && dev-tool run build-package && dev-tool run build-test && dev-tool run test:vitest --no-test-proxy --browser",
162
- "test:node": "dev-tool run build-test --no-browser-test && dev-tool run test:vitest --no-test-proxy",
245
+ "test": "tsc -b --noEmit && npm run test:node && npm run test:browser && npm run test:react-native",
246
+ "test:browser": "dev-tool run test:vitest --no-test-proxy --browser",
247
+ "test:node": "dev-tool run test:vitest --no-test-proxy",
248
+ "test:react-native": "dev-tool run test:vitest --no-test-proxy --browser -- -c vitest.react-native.config.ts",
163
249
  "update-snippets": "dev-tool run update-snippets"
164
250
  }
165
251
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaultHttpClient.js","sourceRoot":"","sources":["../../src/defaultHttpClient.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,qBAAqB,EAAE,CAAC;AACjC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { HttpClient } from \"./interfaces.js\";\nimport { createFetchHttpClient } from \"./fetchHttpClient.js\";\n\n/**\n * Create the correct HttpClient for the current environment.\n */\nexport function createDefaultHttpClient(): HttpClient {\n return createFetchHttpClient();\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/logger/log.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport { log } from \"./log.common.js\";\n"]}
@@ -1,9 +0,0 @@
1
- import type { HttpClient, RequestBodyType } from "./interfaces.js";
2
- /** @internal */
3
- export declare function getBodyLength(body: RequestBodyType): number | null;
4
- /**
5
- * Create a new HttpClient instance for the NodeJS environment.
6
- * @internal
7
- */
8
- export declare function createNodeHttpClient(): HttpClient;
9
- //# sourceMappingURL=nodeHttpClient.d.ts.map
@@ -1,347 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- import http from "node:http";
4
- import https from "node:https";
5
- import zlib from "node:zlib";
6
- import { Transform } from "node:stream";
7
- import { AbortError } from "./abort-controller/AbortError.js";
8
- import { createHttpHeaders } from "./httpHeaders.js";
9
- import { RestError } from "./restError.js";
10
- import { logger } from "./log.js";
11
- import { Sanitizer } from "./util/sanitizer.js";
12
- const DEFAULT_TLS_SETTINGS = {};
13
- function isReadableStream(body) {
14
- return body && typeof body.pipe === "function";
15
- }
16
- function isStreamComplete(stream) {
17
- if (stream.readable === false) {
18
- return Promise.resolve();
19
- }
20
- return new Promise((resolve) => {
21
- const handler = () => {
22
- resolve();
23
- stream.removeListener("close", handler);
24
- stream.removeListener("end", handler);
25
- stream.removeListener("error", handler);
26
- };
27
- stream.on("close", handler);
28
- stream.on("end", handler);
29
- stream.on("error", handler);
30
- });
31
- }
32
- function isArrayBuffer(body) {
33
- return body && typeof body.byteLength === "number";
34
- }
35
- class ReportTransform extends Transform {
36
- loadedBytes = 0;
37
- progressCallback;
38
- // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
39
- _transform(chunk, _encoding, callback) {
40
- this.push(chunk);
41
- this.loadedBytes += chunk.length;
42
- try {
43
- this.progressCallback({ loadedBytes: this.loadedBytes });
44
- callback();
45
- }
46
- catch (e) {
47
- callback(e);
48
- }
49
- }
50
- constructor(progressCallback) {
51
- super();
52
- this.progressCallback = progressCallback;
53
- }
54
- }
55
- /**
56
- * A HttpClient implementation that uses Node's "https" module to send HTTPS requests.
57
- * @internal
58
- */
59
- class NodeHttpClient {
60
- cachedHttpAgent;
61
- cachedHttpsAgents = new WeakMap();
62
- /**
63
- * Makes a request over an underlying transport layer and returns the response.
64
- * @param request - The request to be made.
65
- */
66
- async sendRequest(request) {
67
- const abortController = new AbortController();
68
- let abortListener;
69
- if (request.abortSignal) {
70
- if (request.abortSignal.aborted) {
71
- throw new AbortError("The operation was aborted. Request has already been canceled.");
72
- }
73
- abortListener = (event) => {
74
- if (event.type === "abort") {
75
- abortController.abort();
76
- }
77
- };
78
- request.abortSignal.addEventListener("abort", abortListener);
79
- }
80
- let timeoutId;
81
- if (request.timeout > 0) {
82
- timeoutId = setTimeout(() => {
83
- const sanitizer = new Sanitizer();
84
- logger.info(`request to '${sanitizer.sanitizeUrl(request.url)}' timed out. canceling...`);
85
- abortController.abort();
86
- }, request.timeout);
87
- }
88
- const acceptEncoding = request.headers.get("Accept-Encoding");
89
- const shouldDecompress = acceptEncoding?.includes("gzip") || acceptEncoding?.includes("deflate");
90
- let body = typeof request.body === "function" ? request.body() : request.body;
91
- if (body && !request.headers.has("Content-Length")) {
92
- const bodyLength = getBodyLength(body);
93
- if (bodyLength !== null) {
94
- request.headers.set("Content-Length", bodyLength);
95
- }
96
- }
97
- let responseStream;
98
- try {
99
- if (body && request.onUploadProgress) {
100
- const onUploadProgress = request.onUploadProgress;
101
- const uploadReportStream = new ReportTransform(onUploadProgress);
102
- uploadReportStream.on("error", (e) => {
103
- logger.error("Error in upload progress", e);
104
- });
105
- if (isReadableStream(body)) {
106
- body.pipe(uploadReportStream);
107
- }
108
- else {
109
- uploadReportStream.end(body);
110
- }
111
- body = uploadReportStream;
112
- }
113
- const res = await this.makeRequest(request, abortController, body);
114
- if (timeoutId !== undefined) {
115
- clearTimeout(timeoutId);
116
- }
117
- const headers = getResponseHeaders(res);
118
- const status = res.statusCode ?? 0;
119
- const response = {
120
- status,
121
- headers,
122
- request,
123
- };
124
- // Responses to HEAD must not have a body.
125
- // If they do return a body, that body must be ignored.
126
- if (request.method === "HEAD") {
127
- // call resume() and not destroy() to avoid closing the socket
128
- // and losing keep alive
129
- res.resume();
130
- return response;
131
- }
132
- responseStream = shouldDecompress ? getDecodedResponseStream(res, headers) : res;
133
- const onDownloadProgress = request.onDownloadProgress;
134
- if (onDownloadProgress) {
135
- const downloadReportStream = new ReportTransform(onDownloadProgress);
136
- downloadReportStream.on("error", (e) => {
137
- logger.error("Error in download progress", e);
138
- });
139
- responseStream.pipe(downloadReportStream);
140
- responseStream = downloadReportStream;
141
- }
142
- if (
143
- // Value of POSITIVE_INFINITY in streamResponseStatusCodes is considered as any status code
144
- request.streamResponseStatusCodes?.has(Number.POSITIVE_INFINITY) ||
145
- request.streamResponseStatusCodes?.has(response.status)) {
146
- response.readableStreamBody = responseStream;
147
- }
148
- else {
149
- response.bodyAsText = await streamToText(responseStream);
150
- }
151
- return response;
152
- }
153
- finally {
154
- // clean up event listener
155
- if (request.abortSignal && abortListener) {
156
- let uploadStreamDone = Promise.resolve();
157
- if (isReadableStream(body)) {
158
- uploadStreamDone = isStreamComplete(body);
159
- }
160
- let downloadStreamDone = Promise.resolve();
161
- if (isReadableStream(responseStream)) {
162
- downloadStreamDone = isStreamComplete(responseStream);
163
- }
164
- Promise.all([uploadStreamDone, downloadStreamDone])
165
- .then(() => {
166
- // eslint-disable-next-line promise/always-return
167
- if (abortListener) {
168
- request.abortSignal?.removeEventListener("abort", abortListener);
169
- }
170
- })
171
- .catch((e) => {
172
- logger.warning("Error when cleaning up abortListener on httpRequest", e);
173
- });
174
- }
175
- }
176
- }
177
- makeRequest(request, abortController, body) {
178
- const url = new URL(request.url);
179
- const isInsecure = url.protocol !== "https:";
180
- if (isInsecure && !request.allowInsecureConnection) {
181
- throw new Error(`Cannot connect to ${request.url} while allowInsecureConnection is false.`);
182
- }
183
- const agent = request.agent ?? this.getOrCreateAgent(request, isInsecure);
184
- const options = {
185
- agent,
186
- hostname: url.hostname,
187
- path: `${url.pathname}${url.search}`,
188
- port: url.port,
189
- method: request.method,
190
- headers: request.headers.toJSON({ preserveCase: true }),
191
- ...request.requestOverrides,
192
- };
193
- return new Promise((resolve, reject) => {
194
- const req = isInsecure ? http.request(options, resolve) : https.request(options, resolve);
195
- req.once("error", (err) => {
196
- reject(new RestError(err.message, { code: err.code ?? RestError.REQUEST_SEND_ERROR, request }));
197
- });
198
- abortController.signal.addEventListener("abort", () => {
199
- const abortError = new AbortError("The operation was aborted. Rejecting from abort signal callback while making request.");
200
- req.destroy(abortError);
201
- reject(abortError);
202
- });
203
- if (body && isReadableStream(body)) {
204
- body.pipe(req);
205
- }
206
- else if (body) {
207
- if (typeof body === "string" || Buffer.isBuffer(body)) {
208
- req.end(body);
209
- }
210
- else if (isArrayBuffer(body)) {
211
- req.end(ArrayBuffer.isView(body) ? Buffer.from(body.buffer) : Buffer.from(body));
212
- }
213
- else {
214
- logger.error("Unrecognized body type", body);
215
- reject(new RestError("Unrecognized body type"));
216
- }
217
- }
218
- else {
219
- // streams don't like "undefined" being passed as data
220
- req.end();
221
- }
222
- });
223
- }
224
- getOrCreateAgent(request, isInsecure) {
225
- const disableKeepAlive = request.disableKeepAlive;
226
- // Handle Insecure requests first
227
- if (isInsecure) {
228
- if (disableKeepAlive) {
229
- // keepAlive:false is the default so we don't need a custom Agent
230
- return http.globalAgent;
231
- }
232
- if (!this.cachedHttpAgent) {
233
- // If there is no cached agent create a new one and cache it.
234
- this.cachedHttpAgent = new http.Agent({ keepAlive: true });
235
- }
236
- return this.cachedHttpAgent;
237
- }
238
- else {
239
- if (disableKeepAlive && !request.tlsSettings) {
240
- // When there are no tlsSettings and keepAlive is false
241
- // we don't need a custom agent
242
- return https.globalAgent;
243
- }
244
- // We use the tlsSettings to index cached clients
245
- const tlsSettings = request.tlsSettings ?? DEFAULT_TLS_SETTINGS;
246
- // Get the cached agent or create a new one with the
247
- // provided values for keepAlive and tlsSettings
248
- let agent = this.cachedHttpsAgents.get(tlsSettings);
249
- if (agent && agent.options.keepAlive === !disableKeepAlive) {
250
- return agent;
251
- }
252
- logger.info("No cached TLS Agent exist, creating a new Agent");
253
- agent = new https.Agent({
254
- // keepAlive is true if disableKeepAlive is false.
255
- keepAlive: !disableKeepAlive,
256
- // Since we are spreading, if no tslSettings were provided, nothing is added to the agent options.
257
- ...tlsSettings,
258
- });
259
- this.cachedHttpsAgents.set(tlsSettings, agent);
260
- return agent;
261
- }
262
- }
263
- }
264
- function getResponseHeaders(res) {
265
- const headers = createHttpHeaders();
266
- for (const header of Object.keys(res.headers)) {
267
- const value = res.headers[header];
268
- if (Array.isArray(value)) {
269
- if (value.length > 0) {
270
- headers.set(header, value[0]);
271
- }
272
- }
273
- else if (value) {
274
- headers.set(header, value);
275
- }
276
- }
277
- return headers;
278
- }
279
- function getDecodedResponseStream(stream, headers) {
280
- const contentEncoding = headers.get("Content-Encoding");
281
- if (contentEncoding === "gzip") {
282
- const unzip = zlib.createGunzip();
283
- stream.pipe(unzip);
284
- return unzip;
285
- }
286
- else if (contentEncoding === "deflate") {
287
- const inflate = zlib.createInflate();
288
- stream.pipe(inflate);
289
- return inflate;
290
- }
291
- return stream;
292
- }
293
- function streamToText(stream) {
294
- return new Promise((resolve, reject) => {
295
- const buffer = [];
296
- stream.on("data", (chunk) => {
297
- if (Buffer.isBuffer(chunk)) {
298
- buffer.push(chunk);
299
- }
300
- else {
301
- buffer.push(Buffer.from(chunk));
302
- }
303
- });
304
- stream.on("end", () => {
305
- resolve(Buffer.concat(buffer).toString("utf8"));
306
- });
307
- stream.on("error", (e) => {
308
- if (e && e?.name === "AbortError") {
309
- reject(e);
310
- }
311
- else {
312
- reject(new RestError(`Error reading response as text: ${e.message}`, {
313
- code: RestError.PARSE_ERROR,
314
- }));
315
- }
316
- });
317
- });
318
- }
319
- /** @internal */
320
- export function getBodyLength(body) {
321
- if (!body) {
322
- return 0;
323
- }
324
- else if (Buffer.isBuffer(body)) {
325
- return body.length;
326
- }
327
- else if (isReadableStream(body)) {
328
- return null;
329
- }
330
- else if (isArrayBuffer(body)) {
331
- return body.byteLength;
332
- }
333
- else if (typeof body === "string") {
334
- return Buffer.from(body).length;
335
- }
336
- else {
337
- return null;
338
- }
339
- }
340
- /**
341
- * Create a new HttpClient instance for the NodeJS environment.
342
- * @internal
343
- */
344
- export function createNodeHttpClient() {
345
- return new NodeHttpClient();
346
- }
347
- //# sourceMappingURL=nodeHttpClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nodeHttpClient.js","sourceRoot":"","sources":["../../src/nodeHttpClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport http from \"node:http\";\nimport https from \"node:https\";\nimport zlib from \"node:zlib\";\nimport { Transform } from \"node:stream\";\nimport { AbortError } from \"./abort-controller/AbortError.js\";\nimport type {\n HttpClient,\n HttpHeaders,\n PipelineRequest,\n PipelineResponse,\n RequestBodyType,\n TlsSettings,\n TransferProgressEvent,\n} from \"./interfaces.js\";\nimport { createHttpHeaders } from \"./httpHeaders.js\";\nimport { RestError } from \"./restError.js\";\nimport type { IncomingMessage } from \"node:http\";\nimport { logger } from \"./log.js\";\nimport { Sanitizer } from \"./util/sanitizer.js\";\n\nconst DEFAULT_TLS_SETTINGS = {};\n\nfunction isReadableStream(body: any): body is NodeJS.ReadableStream {\n return body && typeof body.pipe === \"function\";\n}\n\nfunction isStreamComplete(stream: NodeJS.ReadableStream): Promise<void> {\n if (stream.readable === false) {\n return Promise.resolve();\n }\n\n return new Promise((resolve) => {\n const handler = (): void => {\n resolve();\n stream.removeListener(\"close\", handler);\n stream.removeListener(\"end\", handler);\n stream.removeListener(\"error\", handler);\n };\n\n stream.on(\"close\", handler);\n stream.on(\"end\", handler);\n stream.on(\"error\", handler);\n });\n}\n\nfunction isArrayBuffer(body: any): body is ArrayBuffer | ArrayBufferView {\n return body && typeof body.byteLength === \"number\";\n}\n\nclass ReportTransform extends Transform {\n private loadedBytes = 0;\n private progressCallback: (progress: TransferProgressEvent) => void;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n _transform(chunk: string | Buffer, _encoding: string, callback: Function): void {\n this.push(chunk);\n this.loadedBytes += chunk.length;\n try {\n this.progressCallback({ loadedBytes: this.loadedBytes });\n callback();\n } catch (e: any) {\n callback(e);\n }\n }\n\n constructor(progressCallback: (progress: TransferProgressEvent) => void) {\n super();\n this.progressCallback = progressCallback;\n }\n}\n\n/**\n * A HttpClient implementation that uses Node's \"https\" module to send HTTPS requests.\n * @internal\n */\nclass NodeHttpClient implements HttpClient {\n private cachedHttpAgent?: http.Agent;\n private cachedHttpsAgents: WeakMap<TlsSettings, https.Agent> = new WeakMap();\n\n /**\n * Makes a request over an underlying transport layer and returns the response.\n * @param request - The request to be made.\n */\n public async sendRequest(request: PipelineRequest): Promise<PipelineResponse> {\n const abortController = new AbortController();\n let abortListener: ((event: any) => void) | undefined;\n if (request.abortSignal) {\n if (request.abortSignal.aborted) {\n throw new AbortError(\"The operation was aborted. Request has already been canceled.\");\n }\n\n abortListener = (event: Event) => {\n if (event.type === \"abort\") {\n abortController.abort();\n }\n };\n request.abortSignal.addEventListener(\"abort\", abortListener);\n }\n\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n if (request.timeout > 0) {\n timeoutId = setTimeout(() => {\n const sanitizer = new Sanitizer();\n logger.info(`request to '${sanitizer.sanitizeUrl(request.url)}' timed out. canceling...`);\n abortController.abort();\n }, request.timeout);\n }\n\n const acceptEncoding = request.headers.get(\"Accept-Encoding\");\n const shouldDecompress =\n acceptEncoding?.includes(\"gzip\") || acceptEncoding?.includes(\"deflate\");\n\n let body = typeof request.body === \"function\" ? request.body() : request.body;\n if (body && !request.headers.has(\"Content-Length\")) {\n const bodyLength = getBodyLength(body);\n if (bodyLength !== null) {\n request.headers.set(\"Content-Length\", bodyLength);\n }\n }\n\n let responseStream: NodeJS.ReadableStream | undefined;\n try {\n if (body && request.onUploadProgress) {\n const onUploadProgress = request.onUploadProgress;\n const uploadReportStream = new ReportTransform(onUploadProgress);\n uploadReportStream.on(\"error\", (e) => {\n logger.error(\"Error in upload progress\", e);\n });\n if (isReadableStream(body)) {\n body.pipe(uploadReportStream);\n } else {\n uploadReportStream.end(body);\n }\n\n body = uploadReportStream;\n }\n\n const res = await this.makeRequest(request, abortController, body);\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId);\n }\n\n const headers = getResponseHeaders(res);\n\n const status = res.statusCode ?? 0;\n const response: PipelineResponse = {\n status,\n headers,\n request,\n };\n\n // Responses to HEAD must not have a body.\n // If they do return a body, that body must be ignored.\n if (request.method === \"HEAD\") {\n // call resume() and not destroy() to avoid closing the socket\n // and losing keep alive\n res.resume();\n return response;\n }\n\n responseStream = shouldDecompress ? getDecodedResponseStream(res, headers) : res;\n\n const onDownloadProgress = request.onDownloadProgress;\n if (onDownloadProgress) {\n const downloadReportStream = new ReportTransform(onDownloadProgress);\n downloadReportStream.on(\"error\", (e) => {\n logger.error(\"Error in download progress\", e);\n });\n responseStream.pipe(downloadReportStream);\n responseStream = downloadReportStream;\n }\n\n if (\n // Value of POSITIVE_INFINITY in streamResponseStatusCodes is considered as any status code\n request.streamResponseStatusCodes?.has(Number.POSITIVE_INFINITY) ||\n request.streamResponseStatusCodes?.has(response.status)\n ) {\n response.readableStreamBody = responseStream;\n } else {\n response.bodyAsText = await streamToText(responseStream);\n }\n\n return response;\n } finally {\n // clean up event listener\n if (request.abortSignal && abortListener) {\n let uploadStreamDone = Promise.resolve();\n if (isReadableStream(body)) {\n uploadStreamDone = isStreamComplete(body);\n }\n let downloadStreamDone = Promise.resolve();\n if (isReadableStream(responseStream)) {\n downloadStreamDone = isStreamComplete(responseStream);\n }\n Promise.all([uploadStreamDone, downloadStreamDone])\n .then(() => {\n // eslint-disable-next-line promise/always-return\n if (abortListener) {\n request.abortSignal?.removeEventListener(\"abort\", abortListener);\n }\n })\n .catch((e) => {\n logger.warning(\"Error when cleaning up abortListener on httpRequest\", e);\n });\n }\n }\n }\n\n private makeRequest(\n request: PipelineRequest,\n abortController: AbortController,\n body?: RequestBodyType,\n ): Promise<http.IncomingMessage> {\n const url = new URL(request.url);\n\n const isInsecure = url.protocol !== \"https:\";\n\n if (isInsecure && !request.allowInsecureConnection) {\n throw new Error(`Cannot connect to ${request.url} while allowInsecureConnection is false.`);\n }\n\n const agent = (request.agent as http.Agent) ?? this.getOrCreateAgent(request, isInsecure);\n const options: http.RequestOptions = {\n agent,\n hostname: url.hostname,\n path: `${url.pathname}${url.search}`,\n port: url.port,\n method: request.method,\n headers: request.headers.toJSON({ preserveCase: true }),\n ...request.requestOverrides,\n };\n\n return new Promise<http.IncomingMessage>((resolve, reject) => {\n const req = isInsecure ? http.request(options, resolve) : https.request(options, resolve);\n\n req.once(\"error\", (err: Error & { code?: string }) => {\n reject(\n new RestError(err.message, { code: err.code ?? RestError.REQUEST_SEND_ERROR, request }),\n );\n });\n\n abortController.signal.addEventListener(\"abort\", () => {\n const abortError = new AbortError(\n \"The operation was aborted. Rejecting from abort signal callback while making request.\",\n );\n req.destroy(abortError);\n reject(abortError);\n });\n if (body && isReadableStream(body)) {\n body.pipe(req);\n } else if (body) {\n if (typeof body === \"string\" || Buffer.isBuffer(body)) {\n req.end(body);\n } else if (isArrayBuffer(body)) {\n req.end(ArrayBuffer.isView(body) ? Buffer.from(body.buffer) : Buffer.from(body));\n } else {\n logger.error(\"Unrecognized body type\", body);\n reject(new RestError(\"Unrecognized body type\"));\n }\n } else {\n // streams don't like \"undefined\" being passed as data\n req.end();\n }\n });\n }\n\n private getOrCreateAgent(request: PipelineRequest, isInsecure: boolean): http.Agent {\n const disableKeepAlive = request.disableKeepAlive;\n\n // Handle Insecure requests first\n if (isInsecure) {\n if (disableKeepAlive) {\n // keepAlive:false is the default so we don't need a custom Agent\n return http.globalAgent;\n }\n\n if (!this.cachedHttpAgent) {\n // If there is no cached agent create a new one and cache it.\n this.cachedHttpAgent = new http.Agent({ keepAlive: true });\n }\n return this.cachedHttpAgent;\n } else {\n if (disableKeepAlive && !request.tlsSettings) {\n // When there are no tlsSettings and keepAlive is false\n // we don't need a custom agent\n return https.globalAgent;\n }\n\n // We use the tlsSettings to index cached clients\n const tlsSettings = request.tlsSettings ?? DEFAULT_TLS_SETTINGS;\n\n // Get the cached agent or create a new one with the\n // provided values for keepAlive and tlsSettings\n let agent = this.cachedHttpsAgents.get(tlsSettings);\n\n if (agent && agent.options.keepAlive === !disableKeepAlive) {\n return agent;\n }\n\n logger.info(\"No cached TLS Agent exist, creating a new Agent\");\n agent = new https.Agent({\n // keepAlive is true if disableKeepAlive is false.\n keepAlive: !disableKeepAlive,\n // Since we are spreading, if no tslSettings were provided, nothing is added to the agent options.\n ...tlsSettings,\n });\n\n this.cachedHttpsAgents.set(tlsSettings, agent);\n return agent;\n }\n }\n}\n\nfunction getResponseHeaders(res: IncomingMessage): HttpHeaders {\n const headers = createHttpHeaders();\n for (const header of Object.keys(res.headers)) {\n const value = res.headers[header];\n if (Array.isArray(value)) {\n if (value.length > 0) {\n headers.set(header, value[0]);\n }\n } else if (value) {\n headers.set(header, value);\n }\n }\n return headers;\n}\n\nfunction getDecodedResponseStream(\n stream: IncomingMessage,\n headers: HttpHeaders,\n): NodeJS.ReadableStream {\n const contentEncoding = headers.get(\"Content-Encoding\");\n if (contentEncoding === \"gzip\") {\n const unzip = zlib.createGunzip();\n stream.pipe(unzip);\n return unzip;\n } else if (contentEncoding === \"deflate\") {\n const inflate = zlib.createInflate();\n stream.pipe(inflate);\n return inflate;\n }\n\n return stream;\n}\n\nfunction streamToText(stream: NodeJS.ReadableStream): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n const buffer: Buffer[] = [];\n\n stream.on(\"data\", (chunk) => {\n if (Buffer.isBuffer(chunk)) {\n buffer.push(chunk);\n } else {\n buffer.push(Buffer.from(chunk));\n }\n });\n stream.on(\"end\", () => {\n resolve(Buffer.concat(buffer).toString(\"utf8\"));\n });\n stream.on(\"error\", (e) => {\n if (e && e?.name === \"AbortError\") {\n reject(e);\n } else {\n reject(\n new RestError(`Error reading response as text: ${e.message}`, {\n code: RestError.PARSE_ERROR,\n }),\n );\n }\n });\n });\n}\n\n/** @internal */\nexport function getBodyLength(body: RequestBodyType): number | null {\n if (!body) {\n return 0;\n } else if (Buffer.isBuffer(body)) {\n return body.length;\n } else if (isReadableStream(body)) {\n return null;\n } else if (isArrayBuffer(body)) {\n return body.byteLength;\n } else if (typeof body === \"string\") {\n return Buffer.from(body).length;\n } else {\n return null;\n }\n}\n\n/**\n * Create a new HttpClient instance for the NodeJS environment.\n * @internal\n */\nexport function createNodeHttpClient(): HttpClient {\n return new NodeHttpClient();\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"decompressResponsePolicy.js","sourceRoot":"","sources":["../../../src/policies/decompressResponsePolicy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAQlC,MAAM,CAAC,MAAM,4BAA4B,GAAG,0BAA0B,CAAC;AAEvE;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;AACtF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/*\n * NOTE: When moving this file, please update \"browser\" section in package.json\n */\n\nimport type { PipelinePolicy } from \"../pipeline.js\";\n\nexport const decompressResponsePolicyName = \"decompressResponsePolicy\";\n\n/**\n * decompressResponsePolicy is not supported in the browser and attempting\n * to use it will raise an error.\n */\nexport function decompressResponsePolicy(): PipelinePolicy {\n throw new Error(\"decompressResponsePolicy is not supported in browser environment\");\n}\n"]}
@@ -1,2 +0,0 @@
1
- export * from "./proxyPolicy.common.js";
2
- //# sourceMappingURL=proxyPolicy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxyPolicy.js","sourceRoot":"","sources":["../../../src/policies/proxyPolicy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,cAAc,yBAAyB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport * from \"./proxyPolicy.common.js\";\n"]}
@@ -1,2 +0,0 @@
1
- export * from "./bytesEncoding.common.js";
2
- //# sourceMappingURL=bytesEncoding.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bytesEncoding.js","sourceRoot":"","sources":["../../../src/util/bytesEncoding.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,cAAc,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport * from \"./bytesEncoding.common.js\";\n"]}
@@ -1,41 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- /**
4
- * A constant that indicates whether the environment the code is running is a Web Browser.
5
- */
6
- // eslint-disable-next-line @azure/azure-sdk/ts-no-window
7
- export const isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
8
- /**
9
- * A constant that indicates whether the environment the code is running is a Web Worker.
10
- */
11
- export const isWebWorker = typeof self === "object" &&
12
- typeof self?.importScripts === "function" &&
13
- (self.constructor?.name === "DedicatedWorkerGlobalScope" ||
14
- self.constructor?.name === "ServiceWorkerGlobalScope" ||
15
- self.constructor?.name === "SharedWorkerGlobalScope");
16
- /**
17
- * A constant that indicates whether the environment the code is running is Deno.
18
- */
19
- export const isDeno = typeof Deno !== "undefined" &&
20
- typeof Deno.version !== "undefined" &&
21
- typeof Deno.version.deno !== "undefined";
22
- /**
23
- * A constant that indicates whether the environment the code is running is Bun.sh.
24
- */
25
- export const isBun = typeof Bun !== "undefined" && typeof Bun.version !== "undefined";
26
- /**
27
- * A constant that indicates whether the environment the code is running is a Node.js compatible environment.
28
- */
29
- export const isNodeLike = typeof globalThis.process !== "undefined" &&
30
- Boolean(globalThis.process.version) &&
31
- Boolean(globalThis.process.versions?.node);
32
- /**
33
- * A constant that indicates whether the environment the code is running is Node.JS.
34
- */
35
- export const isNodeRuntime = isNodeLike && !isBun && !isDeno;
36
- /**
37
- * A constant that indicates whether the environment the code is running is in React-Native.
38
- */
39
- // https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Core/setUpNavigator.js
40
- export const isReactNative = typeof navigator !== "undefined" && navigator?.product === "ReactNative";
41
- //# sourceMappingURL=checkEnvironment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkEnvironment.js","sourceRoot":"","sources":["../../../src/util/checkEnvironment.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAmClC;;GAEG;AACH,yDAAyD;AACzD,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW,CAAC;AAEjG;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GACtB,OAAO,IAAI,KAAK,QAAQ;IACxB,OAAO,IAAI,EAAE,aAAa,KAAK,UAAU;IACzC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,KAAK,4BAA4B;QACtD,IAAI,CAAC,WAAW,EAAE,IAAI,KAAK,0BAA0B;QACrD,IAAI,CAAC,WAAW,EAAE,IAAI,KAAK,yBAAyB,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GACjB,OAAO,IAAI,KAAK,WAAW;IAC3B,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW;IACnC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,WAAW,CAAC;AAEtF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GACrB,OAAO,UAAU,CAAC,OAAO,KAAK,WAAW;IACzC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC;AAE7D;;GAEG;AACH,4GAA4G;AAC5G,MAAM,CAAC,MAAM,aAAa,GACxB,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE,OAAO,KAAK,aAAa,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\ninterface Window {\n document: unknown;\n}\n\ninterface DedicatedWorkerGlobalScope {\n constructor: {\n name: string;\n };\n\n importScripts: (...paths: string[]) => void;\n}\n\ninterface Navigator {\n product: string;\n}\n\ninterface DenoGlobal {\n version: {\n deno: string;\n };\n}\n\ninterface BunGlobal {\n version: string;\n}\n\n// eslint-disable-next-line @azure/azure-sdk/ts-no-window\ndeclare const window: Window;\ndeclare const self: DedicatedWorkerGlobalScope;\ndeclare const Deno: DenoGlobal;\ndeclare const Bun: BunGlobal;\ndeclare const navigator: Navigator;\n\n/**\n * A constant that indicates whether the environment the code is running is a Web Browser.\n */\n// eslint-disable-next-line @azure/azure-sdk/ts-no-window\nexport const isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\";\n\n/**\n * A constant that indicates whether the environment the code is running is a Web Worker.\n */\nexport const isWebWorker =\n typeof self === \"object\" &&\n typeof self?.importScripts === \"function\" &&\n (self.constructor?.name === \"DedicatedWorkerGlobalScope\" ||\n self.constructor?.name === \"ServiceWorkerGlobalScope\" ||\n self.constructor?.name === \"SharedWorkerGlobalScope\");\n\n/**\n * A constant that indicates whether the environment the code is running is Deno.\n */\nexport const isDeno =\n typeof Deno !== \"undefined\" &&\n typeof Deno.version !== \"undefined\" &&\n typeof Deno.version.deno !== \"undefined\";\n\n/**\n * A constant that indicates whether the environment the code is running is Bun.sh.\n */\nexport const isBun = typeof Bun !== \"undefined\" && typeof Bun.version !== \"undefined\";\n\n/**\n * A constant that indicates whether the environment the code is running is a Node.js compatible environment.\n */\nexport const isNodeLike =\n typeof globalThis.process !== \"undefined\" &&\n Boolean(globalThis.process.version) &&\n Boolean(globalThis.process.versions?.node);\n\n/**\n * A constant that indicates whether the environment the code is running is Node.JS.\n */\nexport const isNodeRuntime = isNodeLike && !isBun && !isDeno;\n\n/**\n * A constant that indicates whether the environment the code is running is in React-Native.\n */\n// https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Core/setUpNavigator.js\nexport const isReactNative =\n typeof navigator !== \"undefined\" && navigator?.product === \"ReactNative\";\n"]}