@azure/core-client 1.8.0 → 1.8.1-alpha.20240223.2

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 (281) hide show
  1. package/README.md +0 -4
  2. package/dist/browser/authorizeRequestOnClaimChallenge.d.ts +43 -0
  3. package/dist/browser/authorizeRequestOnClaimChallenge.d.ts.map +1 -0
  4. package/{dist-esm/src → dist/browser}/authorizeRequestOnClaimChallenge.js +3 -3
  5. package/dist/browser/authorizeRequestOnClaimChallenge.js.map +1 -0
  6. package/dist/browser/authorizeRequestOnTenantChallenge.d.ts +8 -0
  7. package/dist/browser/authorizeRequestOnTenantChallenge.d.ts.map +1 -0
  8. package/{dist-esm/src → dist/browser}/authorizeRequestOnTenantChallenge.js +5 -2
  9. package/dist/browser/authorizeRequestOnTenantChallenge.js.map +1 -0
  10. package/dist/browser/base64-browser.d.mts.map +1 -0
  11. package/dist/browser/base64-browser.mjs.map +1 -0
  12. package/dist/browser/base64.d.ts +29 -0
  13. package/{dist-esm/src/base64.browser.js → dist/browser/base64.js} +5 -1
  14. package/dist/browser/deserializationPolicy.d.ts +45 -0
  15. package/dist/browser/deserializationPolicy.d.ts.map +1 -0
  16. package/{dist-esm/src → dist/browser}/deserializationPolicy.js +16 -19
  17. package/dist/browser/deserializationPolicy.js.map +1 -0
  18. package/dist/browser/httpClientCache.d.ts +3 -0
  19. package/dist/browser/httpClientCache.d.ts.map +1 -0
  20. package/dist/browser/index.d.ts +9 -0
  21. package/dist/browser/index.d.ts.map +1 -0
  22. package/dist/browser/index.js +11 -0
  23. package/dist/browser/index.js.map +1 -0
  24. package/dist/browser/interfaceHelpers.d.ts +14 -0
  25. package/dist/browser/interfaceHelpers.d.ts.map +1 -0
  26. package/{dist-esm/src → dist/browser}/interfaceHelpers.js +1 -1
  27. package/dist/browser/interfaceHelpers.js.map +1 -0
  28. package/dist/browser/interfaces.d.ts +664 -0
  29. package/dist/browser/interfaces.d.ts.map +1 -0
  30. package/dist/browser/log.d.ts +2 -0
  31. package/dist/browser/log.d.ts.map +1 -0
  32. package/dist/browser/operationHelpers.d.ts +14 -0
  33. package/dist/browser/operationHelpers.d.ts.map +1 -0
  34. package/dist/browser/operationHelpers.js.map +1 -0
  35. package/dist/browser/package.json +3 -0
  36. package/dist/browser/pipeline.d.ts +34 -0
  37. package/dist/browser/pipeline.d.ts.map +1 -0
  38. package/{dist-esm/src → dist/browser}/pipeline.js +3 -3
  39. package/dist/browser/pipeline.js.map +1 -0
  40. package/dist/browser/serializationPolicy.d.ts +33 -0
  41. package/dist/browser/serializationPolicy.d.ts.map +1 -0
  42. package/{dist-esm/src → dist/browser}/serializationPolicy.js +12 -14
  43. package/dist/browser/serializationPolicy.js.map +1 -0
  44. package/dist/browser/serializer.d.ts +31 -0
  45. package/dist/browser/serializer.d.ts.map +1 -0
  46. package/{dist-esm/src → dist/browser}/serializer.js +25 -26
  47. package/dist/browser/serializer.js.map +1 -0
  48. package/dist/browser/serviceClient.d.ts +82 -0
  49. package/dist/browser/serviceClient.d.ts.map +1 -0
  50. package/{dist-esm/src → dist/browser}/serviceClient.js +38 -14
  51. package/dist/browser/serviceClient.js.map +1 -0
  52. package/dist/browser/urlHelpers.d.ts +7 -0
  53. package/dist/browser/urlHelpers.d.ts.map +1 -0
  54. package/{dist-esm/src → dist/browser}/urlHelpers.js +4 -6
  55. package/dist/browser/urlHelpers.js.map +1 -0
  56. package/dist/browser/utils.d.ts +37 -0
  57. package/dist/browser/utils.d.ts.map +1 -0
  58. package/{dist-esm/src → dist/browser}/utils.js +23 -10
  59. package/dist/browser/utils.js.map +1 -0
  60. package/dist/commonjs/authorizeRequestOnClaimChallenge.d.ts +43 -0
  61. package/dist/commonjs/authorizeRequestOnClaimChallenge.d.ts.map +1 -0
  62. package/dist/commonjs/authorizeRequestOnClaimChallenge.js +74 -0
  63. package/dist/commonjs/authorizeRequestOnClaimChallenge.js.map +1 -0
  64. package/dist/commonjs/authorizeRequestOnTenantChallenge.d.ts +8 -0
  65. package/dist/commonjs/authorizeRequestOnTenantChallenge.d.ts.map +1 -0
  66. package/dist/commonjs/authorizeRequestOnTenantChallenge.js +106 -0
  67. package/dist/commonjs/authorizeRequestOnTenantChallenge.js.map +1 -0
  68. package/dist/commonjs/base64.d.ts +25 -0
  69. package/dist/commonjs/base64.d.ts.map +1 -0
  70. package/dist/commonjs/base64.js +43 -0
  71. package/dist/commonjs/base64.js.map +1 -0
  72. package/dist/commonjs/deserializationPolicy.d.ts +45 -0
  73. package/dist/commonjs/deserializationPolicy.d.ts.map +1 -0
  74. package/dist/commonjs/deserializationPolicy.js +232 -0
  75. package/dist/commonjs/deserializationPolicy.js.map +1 -0
  76. package/dist/commonjs/httpClientCache.d.ts +3 -0
  77. package/dist/commonjs/httpClientCache.d.ts.map +1 -0
  78. package/dist/commonjs/httpClientCache.js +15 -0
  79. package/dist/commonjs/httpClientCache.js.map +1 -0
  80. package/dist/commonjs/index.d.ts +9 -0
  81. package/dist/commonjs/index.d.ts.map +1 -0
  82. package/dist/commonjs/index.js +26 -0
  83. package/dist/commonjs/index.js.map +1 -0
  84. package/dist/commonjs/interfaceHelpers.d.ts +14 -0
  85. package/dist/commonjs/interfaceHelpers.d.ts.map +1 -0
  86. package/dist/commonjs/interfaceHelpers.js +44 -0
  87. package/dist/commonjs/interfaceHelpers.js.map +1 -0
  88. package/dist/commonjs/interfaces.d.ts +664 -0
  89. package/dist/commonjs/interfaces.d.ts.map +1 -0
  90. package/dist/commonjs/interfaces.js +14 -0
  91. package/dist/commonjs/interfaces.js.map +1 -0
  92. package/dist/commonjs/log.d.ts +2 -0
  93. package/dist/commonjs/log.d.ts.map +1 -0
  94. package/dist/commonjs/log.js +8 -0
  95. package/dist/commonjs/log.js.map +1 -0
  96. package/dist/commonjs/operationHelpers.d.ts +14 -0
  97. package/dist/commonjs/operationHelpers.d.ts.map +1 -0
  98. package/dist/commonjs/operationHelpers.js +99 -0
  99. package/dist/commonjs/operationHelpers.js.map +1 -0
  100. package/dist/commonjs/package.json +3 -0
  101. package/dist/commonjs/pipeline.d.ts +34 -0
  102. package/dist/commonjs/pipeline.d.ts.map +1 -0
  103. package/dist/commonjs/pipeline.js +30 -0
  104. package/dist/commonjs/pipeline.js.map +1 -0
  105. package/dist/commonjs/serializationPolicy.d.ts +33 -0
  106. package/dist/commonjs/serializationPolicy.d.ts.map +1 -0
  107. package/dist/commonjs/serializationPolicy.js +157 -0
  108. package/dist/commonjs/serializationPolicy.js.map +1 -0
  109. package/dist/commonjs/serializer.d.ts +31 -0
  110. package/dist/commonjs/serializer.d.ts.map +1 -0
  111. package/dist/commonjs/serializer.js +926 -0
  112. package/dist/commonjs/serializer.js.map +1 -0
  113. package/dist/commonjs/serviceClient.d.ts +82 -0
  114. package/dist/commonjs/serviceClient.d.ts.map +1 -0
  115. package/dist/commonjs/serviceClient.js +177 -0
  116. package/dist/commonjs/serviceClient.js.map +1 -0
  117. package/dist/commonjs/tsdoc-metadata.json +11 -0
  118. package/dist/commonjs/urlHelpers.d.ts +7 -0
  119. package/dist/commonjs/urlHelpers.d.ts.map +1 -0
  120. package/dist/commonjs/urlHelpers.js +238 -0
  121. package/dist/commonjs/urlHelpers.js.map +1 -0
  122. package/dist/commonjs/utils.d.ts +37 -0
  123. package/dist/commonjs/utils.d.ts.map +1 -0
  124. package/dist/commonjs/utils.js +135 -0
  125. package/dist/commonjs/utils.js.map +1 -0
  126. package/dist/esm/authorizeRequestOnClaimChallenge.d.ts +43 -0
  127. package/dist/esm/authorizeRequestOnClaimChallenge.d.ts.map +1 -0
  128. package/dist/esm/authorizeRequestOnClaimChallenge.js +69 -0
  129. package/dist/esm/authorizeRequestOnClaimChallenge.js.map +1 -0
  130. package/dist/esm/authorizeRequestOnTenantChallenge.d.ts +8 -0
  131. package/dist/esm/authorizeRequestOnTenantChallenge.d.ts.map +1 -0
  132. package/dist/esm/authorizeRequestOnTenantChallenge.js +102 -0
  133. package/dist/esm/authorizeRequestOnTenantChallenge.js.map +1 -0
  134. package/dist/esm/base64.d.ts +25 -0
  135. package/dist/esm/base64.d.ts.map +1 -0
  136. package/{dist-esm/src → dist/esm}/base64.js +0 -2
  137. package/dist/esm/base64.js.map +1 -0
  138. package/dist/esm/deserializationPolicy.d.ts +45 -0
  139. package/dist/esm/deserializationPolicy.d.ts.map +1 -0
  140. package/dist/esm/deserializationPolicy.js +228 -0
  141. package/dist/esm/deserializationPolicy.js.map +1 -0
  142. package/dist/esm/httpClientCache.d.ts +3 -0
  143. package/dist/esm/httpClientCache.d.ts.map +1 -0
  144. package/dist/esm/httpClientCache.js +11 -0
  145. package/dist/esm/httpClientCache.js.map +1 -0
  146. package/dist/esm/index.d.ts +9 -0
  147. package/dist/esm/index.d.ts.map +1 -0
  148. package/dist/esm/index.js +11 -0
  149. package/dist/esm/index.js.map +1 -0
  150. package/dist/esm/interfaceHelpers.d.ts +14 -0
  151. package/dist/esm/interfaceHelpers.d.ts.map +1 -0
  152. package/dist/esm/interfaceHelpers.js +39 -0
  153. package/dist/esm/interfaceHelpers.js.map +1 -0
  154. package/dist/esm/interfaces.d.ts +664 -0
  155. package/dist/esm/interfaces.d.ts.map +1 -0
  156. package/dist/esm/interfaces.js +11 -0
  157. package/dist/esm/interfaces.js.map +1 -0
  158. package/dist/esm/log.d.ts +2 -0
  159. package/dist/esm/log.d.ts.map +1 -0
  160. package/dist/esm/log.js +5 -0
  161. package/dist/esm/log.js.map +1 -0
  162. package/dist/esm/operationHelpers.d.ts +14 -0
  163. package/dist/esm/operationHelpers.d.ts.map +1 -0
  164. package/dist/esm/operationHelpers.js +94 -0
  165. package/dist/esm/operationHelpers.js.map +1 -0
  166. package/dist/esm/package.json +3 -0
  167. package/dist/esm/pipeline.d.ts +34 -0
  168. package/dist/esm/pipeline.d.ts.map +1 -0
  169. package/dist/esm/pipeline.js +26 -0
  170. package/dist/esm/pipeline.js.map +1 -0
  171. package/dist/esm/serializationPolicy.d.ts +33 -0
  172. package/dist/esm/serializationPolicy.d.ts.map +1 -0
  173. package/dist/esm/serializationPolicy.js +151 -0
  174. package/dist/esm/serializationPolicy.js.map +1 -0
  175. package/dist/esm/serializer.d.ts +31 -0
  176. package/dist/esm/serializer.d.ts.map +1 -0
  177. package/dist/esm/serializer.js +921 -0
  178. package/dist/esm/serializer.js.map +1 -0
  179. package/dist/esm/serviceClient.d.ts +82 -0
  180. package/dist/esm/serviceClient.d.ts.map +1 -0
  181. package/dist/esm/serviceClient.js +173 -0
  182. package/dist/esm/serviceClient.js.map +1 -0
  183. package/dist/esm/urlHelpers.d.ts +7 -0
  184. package/dist/esm/urlHelpers.d.ts.map +1 -0
  185. package/dist/esm/urlHelpers.js +233 -0
  186. package/dist/esm/urlHelpers.js.map +1 -0
  187. package/dist/esm/utils.d.ts +37 -0
  188. package/dist/esm/utils.d.ts.map +1 -0
  189. package/dist/esm/utils.js +128 -0
  190. package/dist/esm/utils.js.map +1 -0
  191. package/dist/react-native/authorizeRequestOnClaimChallenge.d.ts +43 -0
  192. package/dist/react-native/authorizeRequestOnClaimChallenge.d.ts.map +1 -0
  193. package/dist/react-native/authorizeRequestOnClaimChallenge.js +69 -0
  194. package/dist/react-native/authorizeRequestOnClaimChallenge.js.map +1 -0
  195. package/dist/react-native/authorizeRequestOnTenantChallenge.d.ts +8 -0
  196. package/dist/react-native/authorizeRequestOnTenantChallenge.d.ts.map +1 -0
  197. package/dist/react-native/authorizeRequestOnTenantChallenge.js +102 -0
  198. package/dist/react-native/authorizeRequestOnTenantChallenge.js.map +1 -0
  199. package/dist/react-native/base64.d.ts +25 -0
  200. package/dist/react-native/base64.d.ts.map +1 -0
  201. package/dist/react-native/base64.js +36 -0
  202. package/dist/react-native/base64.js.map +1 -0
  203. package/dist/react-native/deserializationPolicy.d.ts +45 -0
  204. package/dist/react-native/deserializationPolicy.d.ts.map +1 -0
  205. package/dist/react-native/deserializationPolicy.js +228 -0
  206. package/dist/react-native/deserializationPolicy.js.map +1 -0
  207. package/dist/react-native/httpClientCache.d.ts +3 -0
  208. package/dist/react-native/httpClientCache.d.ts.map +1 -0
  209. package/dist/react-native/httpClientCache.js +11 -0
  210. package/dist/react-native/httpClientCache.js.map +1 -0
  211. package/dist/react-native/index.d.ts +9 -0
  212. package/dist/react-native/index.d.ts.map +1 -0
  213. package/dist/react-native/index.js +11 -0
  214. package/dist/react-native/index.js.map +1 -0
  215. package/dist/react-native/interfaceHelpers.d.ts +14 -0
  216. package/dist/react-native/interfaceHelpers.d.ts.map +1 -0
  217. package/dist/react-native/interfaceHelpers.js +39 -0
  218. package/dist/react-native/interfaceHelpers.js.map +1 -0
  219. package/dist/react-native/interfaces.d.ts +664 -0
  220. package/dist/react-native/interfaces.d.ts.map +1 -0
  221. package/dist/react-native/interfaces.js +11 -0
  222. package/dist/react-native/interfaces.js.map +1 -0
  223. package/dist/react-native/log.d.ts +2 -0
  224. package/dist/react-native/log.d.ts.map +1 -0
  225. package/dist/react-native/log.js +5 -0
  226. package/dist/react-native/log.js.map +1 -0
  227. package/dist/react-native/operationHelpers.d.ts +14 -0
  228. package/dist/react-native/operationHelpers.d.ts.map +1 -0
  229. package/dist/react-native/operationHelpers.js +94 -0
  230. package/dist/react-native/operationHelpers.js.map +1 -0
  231. package/dist/react-native/package.json +3 -0
  232. package/dist/react-native/pipeline.d.ts +34 -0
  233. package/dist/react-native/pipeline.d.ts.map +1 -0
  234. package/dist/react-native/pipeline.js +26 -0
  235. package/dist/react-native/pipeline.js.map +1 -0
  236. package/dist/react-native/serializationPolicy.d.ts +33 -0
  237. package/dist/react-native/serializationPolicy.d.ts.map +1 -0
  238. package/dist/react-native/serializationPolicy.js +151 -0
  239. package/dist/react-native/serializationPolicy.js.map +1 -0
  240. package/dist/react-native/serializer.d.ts +31 -0
  241. package/dist/react-native/serializer.d.ts.map +1 -0
  242. package/dist/react-native/serializer.js +921 -0
  243. package/dist/react-native/serializer.js.map +1 -0
  244. package/dist/react-native/serviceClient.d.ts +82 -0
  245. package/dist/react-native/serviceClient.d.ts.map +1 -0
  246. package/dist/react-native/serviceClient.js +173 -0
  247. package/dist/react-native/serviceClient.js.map +1 -0
  248. package/dist/react-native/urlHelpers.d.ts +7 -0
  249. package/dist/react-native/urlHelpers.d.ts.map +1 -0
  250. package/dist/react-native/urlHelpers.js +233 -0
  251. package/dist/react-native/urlHelpers.js.map +1 -0
  252. package/dist/react-native/utils.d.ts +37 -0
  253. package/dist/react-native/utils.d.ts.map +1 -0
  254. package/dist/react-native/utils.js +128 -0
  255. package/dist/react-native/utils.js.map +1 -0
  256. package/package.json +74 -61
  257. package/dist/index.js +0 -2185
  258. package/dist/index.js.map +0 -1
  259. package/dist-esm/src/authorizeRequestOnClaimChallenge.js.map +0 -1
  260. package/dist-esm/src/authorizeRequestOnTenantChallenge.js.map +0 -1
  261. package/dist-esm/src/base64.browser.js.map +0 -1
  262. package/dist-esm/src/base64.js.map +0 -1
  263. package/dist-esm/src/deserializationPolicy.js.map +0 -1
  264. package/dist-esm/src/index.js +0 -11
  265. package/dist-esm/src/index.js.map +0 -1
  266. package/dist-esm/src/interfaceHelpers.js.map +0 -1
  267. package/dist-esm/src/operationHelpers.js.map +0 -1
  268. package/dist-esm/src/pipeline.js.map +0 -1
  269. package/dist-esm/src/serializationPolicy.js.map +0 -1
  270. package/dist-esm/src/serializer.js.map +0 -1
  271. package/dist-esm/src/serviceClient.js.map +0 -1
  272. package/dist-esm/src/urlHelpers.js.map +0 -1
  273. package/dist-esm/src/utils.js.map +0 -1
  274. /package/{dist-esm/src → dist/browser}/httpClientCache.js +0 -0
  275. /package/{dist-esm/src → dist/browser}/httpClientCache.js.map +0 -0
  276. /package/{dist-esm/src → dist/browser}/interfaces.js +0 -0
  277. /package/{dist-esm/src → dist/browser}/interfaces.js.map +0 -0
  278. /package/{dist-esm/src → dist/browser}/log.js +0 -0
  279. /package/{dist-esm/src → dist/browser}/log.js.map +0 -0
  280. /package/{dist-esm/src → dist/browser}/operationHelpers.js +0 -0
  281. /package/{types/latest → dist}/core-client.d.ts +0 -0
package/README.md CHANGED
@@ -35,10 +35,6 @@ This method is used to create a `Pipeline` instance that is customized with extr
35
35
 
36
36
  The method `createSerializer` creates a `Serializer` that is used to do the bulk of the work transforming data when making a request or processing a response. Given a corpus of `Mapper`s and the appropriate `OperationSpec` it can manufacture an HTTP request object from a user provided input or convert an HTTP response object into a user-friendly form.
37
37
 
38
- ## Examples
39
-
40
- Examples can be found in the [samples](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/core/core-client/samples) folder.
41
-
42
38
  ## Next steps
43
39
 
44
40
  You can build and run the tests locally by executing `rushx test`. Explore the [test](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/core/core-client/test) folder to see advanced usage and behavior of the public classes.
@@ -0,0 +1,43 @@
1
+ import { AuthorizeRequestOnChallengeOptions } from "@azure/core-rest-pipeline";
2
+ /**
3
+ * Converts: `Bearer a="b", c="d", Bearer d="e", f="g"`.
4
+ * Into: `[ { a: 'b', c: 'd' }, { d: 'e', f: 'g' } ]`.
5
+ *
6
+ * @internal
7
+ */
8
+ export declare function parseCAEChallenge(challenges: string): any[];
9
+ /**
10
+ * CAE Challenge structure
11
+ */
12
+ export interface CAEChallenge {
13
+ scope: string;
14
+ claims: string;
15
+ }
16
+ /**
17
+ * This function can be used as a callback for the `bearerTokenAuthenticationPolicy` of `@azure/core-rest-pipeline`, to support CAE challenges:
18
+ * [Continuous Access Evaluation](https://docs.microsoft.com/azure/active-directory/conditional-access/concept-continuous-access-evaluation).
19
+ *
20
+ * Call the `bearerTokenAuthenticationPolicy` with the following options:
21
+ *
22
+ * ```ts
23
+ * import { bearerTokenAuthenticationPolicy } from "@azure/core-rest-pipeline";
24
+ * import { authorizeRequestOnClaimChallenge } from "@azure/core-client";
25
+ *
26
+ * const bearerTokenAuthenticationPolicy = bearerTokenAuthenticationPolicy({
27
+ * authorizeRequestOnChallenge: authorizeRequestOnClaimChallenge
28
+ * });
29
+ * ```
30
+ *
31
+ * Once provided, the `bearerTokenAuthenticationPolicy` policy will internally handle Continuous Access Evaluation (CAE) challenges.
32
+ * When it can't complete a challenge it will return the 401 (unauthorized) response from ARM.
33
+ *
34
+ * Example challenge with claims:
35
+ *
36
+ * ```
37
+ * Bearer authorization_uri="https://login.windows-ppe.net/", error="invalid_token",
38
+ * error_description="User session has been revoked",
39
+ * claims="eyJhY2Nlc3NfdG9rZW4iOnsibmJmIjp7ImVzc2VudGlhbCI6dHJ1ZSwgInZhbHVlIjoiMTYwMzc0MjgwMCJ9fX0="
40
+ * ```
41
+ */
42
+ export declare function authorizeRequestOnClaimChallenge(onChallengeOptions: AuthorizeRequestOnChallengeOptions): Promise<boolean>;
43
+ //# sourceMappingURL=authorizeRequestOnClaimChallenge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorizeRequestOnClaimChallenge.d.ts","sourceRoot":"","sources":["../../src/authorizeRequestOnClaimChallenge.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kCAAkC,EAAE,MAAM,2BAA2B,CAAC;AAI/E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,EAAE,CAU3D;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,gCAAgC,CACpD,kBAAkB,EAAE,kCAAkC,GACrD,OAAO,CAAC,OAAO,CAAC,CAkClB"}
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- import { logger as coreClientLogger } from "./log";
4
- import { decodeStringToString } from "./base64";
3
+ import { logger as coreClientLogger } from "./log.js";
4
+ import { decodeStringToString } from "./base64.js";
5
5
  /**
6
6
  * Converts: `Bearer a="b", c="d", Bearer d="e", f="g"`.
7
7
  * Into: `[ { a: 'b', c: 'd' }, { d: 'e', f: 'g' } ]`.
@@ -14,7 +14,7 @@ export function parseCAEChallenge(challenges) {
14
14
  const challengeParts = `${challenge.trim()}, `.split('", ').filter((x) => x);
15
15
  const keyValuePairs = challengeParts.map((keyValue) => (([key, value]) => ({ [key]: value }))(keyValue.trim().split('="')));
16
16
  // Key-value pairs to plain object:
17
- return keyValuePairs.reduce((a, b) => (Object.assign(Object.assign({}, a), b)), {});
17
+ return keyValuePairs.reduce((a, b) => ({ ...a, ...b }), {});
18
18
  });
19
19
  }
20
20
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorizeRequestOnClaimChallenge.js","sourceRoot":"","sources":["../../src/authorizeRequestOnClaimChallenge.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,MAAM,gBAAgB,GAAG,KAAK,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACtF,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QACxC,MAAM,cAAc,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpD,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CACpE,CAAC;QACF,mCAAmC;QACnC,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,kBAAsD;IAEtD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC;IAChD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,IAAI,gBAAgB,CAAC;IAE7D,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CACT,kHAAkH,CACnH,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,UAAU,GAAmB,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAEtE,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACzD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CACT,iIAAiI,CAClI,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,cAAc,CACzD,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EACxD;QACE,MAAM,EAAE,oBAAoB,CAAC,eAAe,CAAC,MAAM,CAAC;KACrD,CACF,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IACvF,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AuthorizeRequestOnChallengeOptions } from \"@azure/core-rest-pipeline\";\nimport { logger as coreClientLogger } from \"./log.js\";\nimport { decodeStringToString } from \"./base64.js\";\n\n/**\n * Converts: `Bearer a=\"b\", c=\"d\", Bearer d=\"e\", f=\"g\"`.\n * Into: `[ { a: 'b', c: 'd' }, { d: 'e', f: 'g' } ]`.\n *\n * @internal\n */\nexport function parseCAEChallenge(challenges: string): any[] {\n const bearerChallenges = `, ${challenges.trim()}`.split(\", Bearer \").filter((x) => x);\n return bearerChallenges.map((challenge) => {\n const challengeParts = `${challenge.trim()}, `.split('\", ').filter((x) => x);\n const keyValuePairs = challengeParts.map((keyValue) =>\n (([key, value]) => ({ [key]: value }))(keyValue.trim().split('=\"')),\n );\n // Key-value pairs to plain object:\n return keyValuePairs.reduce((a, b) => ({ ...a, ...b }), {});\n });\n}\n\n/**\n * CAE Challenge structure\n */\nexport interface CAEChallenge {\n scope: string;\n claims: string;\n}\n\n/**\n * This function can be used as a callback for the `bearerTokenAuthenticationPolicy` of `@azure/core-rest-pipeline`, to support CAE challenges:\n * [Continuous Access Evaluation](https://docs.microsoft.com/azure/active-directory/conditional-access/concept-continuous-access-evaluation).\n *\n * Call the `bearerTokenAuthenticationPolicy` with the following options:\n *\n * ```ts\n * import { bearerTokenAuthenticationPolicy } from \"@azure/core-rest-pipeline\";\n * import { authorizeRequestOnClaimChallenge } from \"@azure/core-client\";\n *\n * const bearerTokenAuthenticationPolicy = bearerTokenAuthenticationPolicy({\n * authorizeRequestOnChallenge: authorizeRequestOnClaimChallenge\n * });\n * ```\n *\n * Once provided, the `bearerTokenAuthenticationPolicy` policy will internally handle Continuous Access Evaluation (CAE) challenges.\n * When it can't complete a challenge it will return the 401 (unauthorized) response from ARM.\n *\n * Example challenge with claims:\n *\n * ```\n * Bearer authorization_uri=\"https://login.windows-ppe.net/\", error=\"invalid_token\",\n * error_description=\"User session has been revoked\",\n * claims=\"eyJhY2Nlc3NfdG9rZW4iOnsibmJmIjp7ImVzc2VudGlhbCI6dHJ1ZSwgInZhbHVlIjoiMTYwMzc0MjgwMCJ9fX0=\"\n * ```\n */\nexport async function authorizeRequestOnClaimChallenge(\n onChallengeOptions: AuthorizeRequestOnChallengeOptions,\n): Promise<boolean> {\n const { scopes, response } = onChallengeOptions;\n const logger = onChallengeOptions.logger || coreClientLogger;\n\n const challenge = response.headers.get(\"WWW-Authenticate\");\n if (!challenge) {\n logger.info(\n `The WWW-Authenticate header was missing. Failed to perform the Continuous Access Evaluation authentication flow.`,\n );\n return false;\n }\n const challenges: CAEChallenge[] = parseCAEChallenge(challenge) || [];\n\n const parsedChallenge = challenges.find((x) => x.claims);\n if (!parsedChallenge) {\n logger.info(\n `The WWW-Authenticate header was missing the necessary \"claims\" to perform the Continuous Access Evaluation authentication flow.`,\n );\n return false;\n }\n\n const accessToken = await onChallengeOptions.getAccessToken(\n parsedChallenge.scope ? [parsedChallenge.scope] : scopes,\n {\n claims: decodeStringToString(parsedChallenge.claims),\n },\n );\n\n if (!accessToken) {\n return false;\n }\n\n onChallengeOptions.request.headers.set(\"Authorization\", `Bearer ${accessToken.token}`);\n return true;\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { AuthorizeRequestOnChallengeOptions } from "@azure/core-rest-pipeline";
2
+ /**
3
+ * Defines a callback to handle auth challenge for Storage APIs.
4
+ * This implements the bearer challenge process described here: https://docs.microsoft.com/rest/api/storageservices/authorize-with-azure-active-directory#bearer-challenge
5
+ * Handling has specific features for storage that departs to the general AAD challenge docs.
6
+ **/
7
+ export declare const authorizeRequestOnTenantChallenge: (challengeOptions: AuthorizeRequestOnChallengeOptions) => Promise<boolean>;
8
+ //# sourceMappingURL=authorizeRequestOnTenantChallenge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorizeRequestOnTenantChallenge.d.ts","sourceRoot":"","sources":["../../src/authorizeRequestOnTenantChallenge.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kCAAkC,EAGnC,MAAM,2BAA2B,CAAC;AAoBnC;;;;IAII;AACJ,eAAO,MAAM,iCAAiC,EAAE,CAC9C,gBAAgB,EAAE,kCAAkC,KACjD,OAAO,CAAC,OAAO,CAuBnB,CAAC"}
@@ -27,7 +27,10 @@ export const authorizeRequestOnTenantChallenge = async (challengeOptions) => {
27
27
  const challengeInfo = parseChallenge(challenge);
28
28
  const challengeScopes = buildScopes(challengeOptions, challengeInfo);
29
29
  const tenantId = extractTenantId(challengeInfo);
30
- const accessToken = await challengeOptions.getAccessToken(challengeScopes, Object.assign(Object.assign({}, requestOptions), { tenantId }));
30
+ const accessToken = await challengeOptions.getAccessToken(challengeScopes, {
31
+ ...requestOptions,
32
+ tenantId,
33
+ });
31
34
  if (!accessToken) {
32
35
  return false;
33
36
  }
@@ -82,7 +85,7 @@ function parseChallenge(challenge) {
82
85
  const challengeParts = `${bearerChallenge.trim()} `.split(" ").filter((x) => x);
83
86
  const keyValuePairs = challengeParts.map((keyValue) => (([key, value]) => ({ [key]: value }))(keyValue.trim().split("=")));
84
87
  // Key-value pairs to plain object:
85
- return keyValuePairs.reduce((a, b) => (Object.assign(Object.assign({}, a), b)), {});
88
+ return keyValuePairs.reduce((a, b) => ({ ...a, ...b }), {});
86
89
  }
87
90
  /**
88
91
  * Extracts the options form a Pipeline Request for later re-use
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorizeRequestOnTenantChallenge.js","sourceRoot":"","sources":["../../src/authorizeRequestOnTenantChallenge.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n AuthorizeRequestOnChallengeOptions,\n PipelineRequest,\n PipelineResponse,\n} from \"@azure/core-rest-pipeline\";\n\nimport { GetTokenOptions } from \"@azure/core-auth\";\n\n/**\n * A set of constants used internally when processing requests.\n */\nconst Constants = {\n DefaultScope: \"/.default\",\n /**\n * Defines constants for use with HTTP headers.\n */\n HeaderConstants: {\n /**\n * The Authorization header.\n */\n AUTHORIZATION: \"authorization\",\n },\n};\n\n/**\n * Defines a callback to handle auth challenge for Storage APIs.\n * This implements the bearer challenge process described here: https://docs.microsoft.com/rest/api/storageservices/authorize-with-azure-active-directory#bearer-challenge\n * Handling has specific features for storage that departs to the general AAD challenge docs.\n **/\nexport const authorizeRequestOnTenantChallenge: (\n challengeOptions: AuthorizeRequestOnChallengeOptions,\n) => Promise<boolean> = async (challengeOptions) => {\n const requestOptions = requestToOptions(challengeOptions.request);\n const challenge = getChallenge(challengeOptions.response);\n if (challenge) {\n const challengeInfo: Challenge = parseChallenge(challenge);\n const challengeScopes = buildScopes(challengeOptions, challengeInfo);\n const tenantId = extractTenantId(challengeInfo);\n const accessToken = await challengeOptions.getAccessToken(challengeScopes, {\n ...requestOptions,\n tenantId,\n });\n\n if (!accessToken) {\n return false;\n }\n\n challengeOptions.request.headers.set(\n Constants.HeaderConstants.AUTHORIZATION,\n `Bearer ${accessToken.token}`,\n );\n return true;\n }\n return false;\n};\n\n/**\n * Extracts the tenant id from the challenge information\n * The tenant id is contained in the authorization_uri as the first\n * path part.\n */\nfunction extractTenantId(challengeInfo: Challenge): string {\n const parsedAuthUri = new URL(challengeInfo.authorization_uri);\n const pathSegments = parsedAuthUri.pathname.split(\"/\");\n const tenantId = pathSegments[1];\n\n return tenantId;\n}\n\n/**\n * Builds the authentication scopes based on the information that comes in the\n * challenge information. Scopes url is present in the resource_id, if it is empty\n * we keep using the original scopes.\n */\nfunction buildScopes(\n challengeOptions: AuthorizeRequestOnChallengeOptions,\n challengeInfo: Challenge,\n): string[] {\n if (!challengeInfo.resource_uri) {\n return challengeOptions.scopes;\n }\n\n const challengeScopes = new URL(challengeInfo.resource_uri);\n challengeScopes.pathname = Constants.DefaultScope;\n return [challengeScopes.toString()];\n}\n\n/**\n * We will retrieve the challenge only if the response status code was 401,\n * and if the response contained the header \"WWW-Authenticate\" with a non-empty value.\n */\nfunction getChallenge(response: PipelineResponse): string | undefined {\n const challenge = response.headers.get(\"WWW-Authenticate\");\n if (response.status === 401 && challenge) {\n return challenge;\n }\n return;\n}\n\n/**\n * Challenge structure\n */\ninterface Challenge {\n authorization_uri: string;\n resource_uri?: string;\n}\n\n/**\n * Converts: `Bearer a=\"b\" c=\"d\"`.\n * Into: `[ { a: 'b', c: 'd' }]`.\n *\n * @internal\n */\nfunction parseChallenge(challenge: string): Challenge {\n const bearerChallenge = challenge.slice(\"Bearer \".length);\n const challengeParts = `${bearerChallenge.trim()} `.split(\" \").filter((x) => x);\n const keyValuePairs = challengeParts.map((keyValue) =>\n (([key, value]) => ({ [key]: value }))(keyValue.trim().split(\"=\")),\n );\n // Key-value pairs to plain object:\n return keyValuePairs.reduce((a, b) => ({ ...a, ...b }), {} as Challenge);\n}\n\n/**\n * Extracts the options form a Pipeline Request for later re-use\n */\nfunction requestToOptions(request: PipelineRequest): GetTokenOptions {\n return {\n abortSignal: request.abortSignal,\n requestOptions: {\n timeout: request.timeout,\n },\n tracingOptions: request.tracingOptions,\n };\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64-browser.d.mts","sourceRoot":"","sources":["../../src/base64-browser.mts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,CAAC;IAEb,SAAS,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,SAAS,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACtC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAMzD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAOtD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64-browser.mjs","sourceRoot":"","sources":["../../src/base64-browser.mts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAQlC;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\ndeclare global {\n // stub these out for the browser\n function btoa(input: string): string;\n function atob(input: string): string;\n}\n\n/**\n * Encodes a string in base64 format.\n * @param value - the string to encode\n * @internal\n */\nexport function encodeString(value: string): string {\n return btoa(value);\n}\n\n/**\n * Encodes a byte array in base64 format.\n * @param value - the Uint8Aray to encode\n * @internal\n */\nexport function encodeByteArray(value: Uint8Array): string {\n let str = \"\";\n for (let i = 0; i < value.length; i++) {\n str += String.fromCharCode(value[i]);\n }\n return btoa(str);\n}\n\n/**\n * Decodes a base64 string into a byte array.\n * @param value - the base64 string to decode\n * @internal\n */\nexport function decodeString(value: string): Uint8Array {\n const byteString = atob(value);\n const arr = new Uint8Array(byteString.length);\n for (let i = 0; i < byteString.length; i++) {\n arr[i] = byteString.charCodeAt(i);\n }\n return arr;\n}\n\n/**\n * Decodes a base64 string into a string.\n * @param value - the base64 string to decode\n * @internal\n */\nexport function decodeStringToString(value: string): string {\n return atob(value);\n}\n"]}
@@ -0,0 +1,29 @@
1
+ declare global {
2
+ function btoa(input: string): string;
3
+ function atob(input: string): string;
4
+ }
5
+ /**
6
+ * Encodes a string in base64 format.
7
+ * @param value - the string to encode
8
+ * @internal
9
+ */
10
+ export declare function encodeString(value: string): string;
11
+ /**
12
+ * Encodes a byte array in base64 format.
13
+ * @param value - the Uint8Aray to encode
14
+ * @internal
15
+ */
16
+ export declare function encodeByteArray(value: Uint8Array): string;
17
+ /**
18
+ * Decodes a base64 string into a byte array.
19
+ * @param value - the base64 string to decode
20
+ * @internal
21
+ */
22
+ export declare function decodeString(value: string): Uint8Array;
23
+ /**
24
+ * Decodes a base64 string into a string.
25
+ * @param value - the base64 string to decode
26
+ * @internal
27
+ */
28
+ export declare function decodeStringToString(value: string): string;
29
+ //# sourceMappingURL=base64-browser.d.mts.map
@@ -3,6 +3,7 @@
3
3
  /**
4
4
  * Encodes a string in base64 format.
5
5
  * @param value - the string to encode
6
+ * @internal
6
7
  */
7
8
  export function encodeString(value) {
8
9
  return btoa(value);
@@ -10,6 +11,7 @@ export function encodeString(value) {
10
11
  /**
11
12
  * Encodes a byte array in base64 format.
12
13
  * @param value - the Uint8Aray to encode
14
+ * @internal
13
15
  */
14
16
  export function encodeByteArray(value) {
15
17
  let str = "";
@@ -21,6 +23,7 @@ export function encodeByteArray(value) {
21
23
  /**
22
24
  * Decodes a base64 string into a byte array.
23
25
  * @param value - the base64 string to decode
26
+ * @internal
24
27
  */
25
28
  export function decodeString(value) {
26
29
  const byteString = atob(value);
@@ -33,8 +36,9 @@ export function decodeString(value) {
33
36
  /**
34
37
  * Decodes a base64 string into a string.
35
38
  * @param value - the base64 string to decode
39
+ * @internal
36
40
  */
37
41
  export function decodeStringToString(value) {
38
42
  return atob(value);
39
43
  }
40
- //# sourceMappingURL=base64.browser.js.map
44
+ //# sourceMappingURL=base64-browser.mjs.map
@@ -0,0 +1,45 @@
1
+ import { SerializerOptions, XmlOptions } from "./interfaces.js";
2
+ import { PipelinePolicy } from "@azure/core-rest-pipeline";
3
+ /**
4
+ * The programmatic identifier of the deserializationPolicy.
5
+ */
6
+ export declare const deserializationPolicyName = "deserializationPolicy";
7
+ /**
8
+ * Options to configure API response deserialization.
9
+ */
10
+ export interface DeserializationPolicyOptions {
11
+ /**
12
+ * Configures the expected content types for the deserialization of
13
+ * JSON and XML response bodies.
14
+ */
15
+ expectedContentTypes?: DeserializationContentTypes;
16
+ /**
17
+ * A function that is able to parse XML. Required for XML support.
18
+ */
19
+ parseXML?: (str: string, opts?: XmlOptions) => Promise<any>;
20
+ /**
21
+ * Configures behavior of xml parser and builder.
22
+ */
23
+ serializerOptions?: SerializerOptions;
24
+ }
25
+ /**
26
+ * The content-types that will indicate that an operation response should be deserialized in a
27
+ * particular way.
28
+ */
29
+ export interface DeserializationContentTypes {
30
+ /**
31
+ * The content-types that indicate that an operation response should be deserialized as JSON.
32
+ * Defaults to [ "application/json", "text/json" ].
33
+ */
34
+ json?: string[];
35
+ /**
36
+ * The content-types that indicate that an operation response should be deserialized as XML.
37
+ * Defaults to [ "application/xml", "application/atom+xml" ].
38
+ */
39
+ xml?: string[];
40
+ }
41
+ /**
42
+ * This policy handles parsing out responses according to OperationSpecs on the request.
43
+ */
44
+ export declare function deserializationPolicy(options?: DeserializationPolicyOptions): PipelinePolicy;
45
+ //# sourceMappingURL=deserializationPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deserializationPolicy.d.ts","sourceRoot":"","sources":["../../src/deserializationPolicy.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,iBAAiB,EAEjB,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,cAAc,EAKf,MAAM,2BAA2B,CAAC;AAOnC;;GAEG;AACH,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;IAEnD;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAE5D;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,4BAAiC,GAAG,cAAc,CA0BhG"}
@@ -1,9 +1,9 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- import { XML_CHARKEY, } from "./interfaces";
3
+ import { XML_CHARKEY, } from "./interfaces.js";
4
4
  import { RestError, } from "@azure/core-rest-pipeline";
5
- import { MapperTypeNames } from "./serializer";
6
- import { getOperationRequestInfo } from "./operationHelpers";
5
+ import { MapperTypeNames } from "./serializer.js";
6
+ import { getOperationRequestInfo } from "./operationHelpers.js";
7
7
  const defaultJsonContentTypes = ["application/json", "text/json"];
8
8
  const defaultXmlContentTypes = ["application/xml", "application/atom+xml"];
9
9
  /**
@@ -14,16 +14,15 @@ export const deserializationPolicyName = "deserializationPolicy";
14
14
  * This policy handles parsing out responses according to OperationSpecs on the request.
15
15
  */
16
16
  export function deserializationPolicy(options = {}) {
17
- var _a, _b, _c, _d, _e, _f, _g;
18
- const jsonContentTypes = (_b = (_a = options.expectedContentTypes) === null || _a === void 0 ? void 0 : _a.json) !== null && _b !== void 0 ? _b : defaultJsonContentTypes;
19
- const xmlContentTypes = (_d = (_c = options.expectedContentTypes) === null || _c === void 0 ? void 0 : _c.xml) !== null && _d !== void 0 ? _d : defaultXmlContentTypes;
17
+ const jsonContentTypes = options.expectedContentTypes?.json ?? defaultJsonContentTypes;
18
+ const xmlContentTypes = options.expectedContentTypes?.xml ?? defaultXmlContentTypes;
20
19
  const parseXML = options.parseXML;
21
20
  const serializerOptions = options.serializerOptions;
22
21
  const updatedOptions = {
23
22
  xml: {
24
- rootName: (_e = serializerOptions === null || serializerOptions === void 0 ? void 0 : serializerOptions.xml.rootName) !== null && _e !== void 0 ? _e : "",
25
- includeRoot: (_f = serializerOptions === null || serializerOptions === void 0 ? void 0 : serializerOptions.xml.includeRoot) !== null && _f !== void 0 ? _f : false,
26
- xmlCharKey: (_g = serializerOptions === null || serializerOptions === void 0 ? void 0 : serializerOptions.xml.xmlCharKey) !== null && _g !== void 0 ? _g : XML_CHARKEY,
23
+ rootName: serializerOptions?.xml.rootName ?? "",
24
+ includeRoot: serializerOptions?.xml.includeRoot ?? false,
25
+ xmlCharKey: serializerOptions?.xml.xmlCharKey ?? XML_CHARKEY,
27
26
  },
28
27
  };
29
28
  return {
@@ -38,13 +37,13 @@ function getOperationResponseMap(parsedResponse) {
38
37
  let result;
39
38
  const request = parsedResponse.request;
40
39
  const operationInfo = getOperationRequestInfo(request);
41
- const operationSpec = operationInfo === null || operationInfo === void 0 ? void 0 : operationInfo.operationSpec;
40
+ const operationSpec = operationInfo?.operationSpec;
42
41
  if (operationSpec) {
43
- if (!(operationInfo === null || operationInfo === void 0 ? void 0 : operationInfo.operationResponseGetter)) {
42
+ if (!operationInfo?.operationResponseGetter) {
44
43
  result = operationSpec.responses[parsedResponse.status];
45
44
  }
46
45
  else {
47
- result = operationInfo === null || operationInfo === void 0 ? void 0 : operationInfo.operationResponseGetter(operationSpec, parsedResponse);
46
+ result = operationInfo?.operationResponseGetter(operationSpec, parsedResponse);
48
47
  }
49
48
  }
50
49
  return result;
@@ -52,7 +51,7 @@ function getOperationResponseMap(parsedResponse) {
52
51
  function shouldDeserializeResponse(parsedResponse) {
53
52
  const request = parsedResponse.request;
54
53
  const operationInfo = getOperationRequestInfo(request);
55
- const shouldDeserialize = operationInfo === null || operationInfo === void 0 ? void 0 : operationInfo.shouldDeserialize;
54
+ const shouldDeserialize = operationInfo?.shouldDeserialize;
56
55
  let result;
57
56
  if (shouldDeserialize === undefined) {
58
57
  result = true;
@@ -71,7 +70,7 @@ async function deserializeResponseBody(jsonContentTypes, xmlContentTypes, respon
71
70
  return parsedResponse;
72
71
  }
73
72
  const operationInfo = getOperationRequestInfo(parsedResponse.request);
74
- const operationSpec = operationInfo === null || operationInfo === void 0 ? void 0 : operationInfo.operationSpec;
73
+ const operationSpec = operationInfo?.operationSpec;
75
74
  if (!operationSpec || !operationSpec.responses) {
76
75
  return parsedResponse;
77
76
  }
@@ -122,7 +121,6 @@ function isOperationSpecEmpty(operationSpec) {
122
121
  (expectedStatusCodes.length === 1 && expectedStatusCodes[0] === "default"));
123
122
  }
124
123
  function handleErrorResponse(parsedResponse, operationSpec, responseSpec, options) {
125
- var _a;
126
124
  const isSuccessByStatus = 200 <= parsedResponse.status && parsedResponse.status < 300;
127
125
  const isExpectedStatusCode = isOperationSpecEmpty(operationSpec)
128
126
  ? isSuccessByStatus
@@ -137,8 +135,8 @@ function handleErrorResponse(parsedResponse, operationSpec, responseSpec, option
137
135
  return { error: null, shouldReturnResponse: false };
138
136
  }
139
137
  }
140
- const errorResponseSpec = responseSpec !== null && responseSpec !== void 0 ? responseSpec : operationSpec.responses.default;
141
- const initialErrorMessage = ((_a = parsedResponse.request.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(parsedResponse.status))
138
+ const errorResponseSpec = responseSpec ?? operationSpec.responses.default;
139
+ const initialErrorMessage = parsedResponse.request.streamResponseStatusCodes?.has(parsedResponse.status)
142
140
  ? `Unexpected status code: ${parsedResponse.status}`
143
141
  : parsedResponse.bodyAsText;
144
142
  const error = new RestError(initialErrorMessage, {
@@ -191,8 +189,7 @@ function handleErrorResponse(parsedResponse, operationSpec, responseSpec, option
191
189
  return { error, shouldReturnResponse: false };
192
190
  }
193
191
  async function parse(jsonContentTypes, xmlContentTypes, operationResponse, opts, parseXML) {
194
- var _a;
195
- if (!((_a = operationResponse.request.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(operationResponse.status)) &&
192
+ if (!operationResponse.request.streamResponseStatusCodes?.has(operationResponse.status) &&
196
193
  operationResponse.bodyAsText) {
197
194
  const text = operationResponse.bodyAsText;
198
195
  const contentType = operationResponse.headers.get("Content-Type") || "";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deserializationPolicy.js","sourceRoot":"","sources":["../../src/deserializationPolicy.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n FullOperationResponse,\n OperationRequest,\n OperationResponseMap,\n OperationSpec,\n RequiredSerializerOptions,\n SerializerOptions,\n XML_CHARKEY,\n XmlOptions,\n} from \"./interfaces.js\";\nimport {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n RestError,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { MapperTypeNames } from \"./serializer.js\";\nimport { getOperationRequestInfo } from \"./operationHelpers.js\";\n\nconst defaultJsonContentTypes = [\"application/json\", \"text/json\"];\nconst defaultXmlContentTypes = [\"application/xml\", \"application/atom+xml\"];\n\n/**\n * The programmatic identifier of the deserializationPolicy.\n */\nexport const deserializationPolicyName = \"deserializationPolicy\";\n\n/**\n * Options to configure API response deserialization.\n */\nexport interface DeserializationPolicyOptions {\n /**\n * Configures the expected content types for the deserialization of\n * JSON and XML response bodies.\n */\n expectedContentTypes?: DeserializationContentTypes;\n\n /**\n * A function that is able to parse XML. Required for XML support.\n */\n parseXML?: (str: string, opts?: XmlOptions) => Promise<any>;\n\n /**\n * Configures behavior of xml parser and builder.\n */\n serializerOptions?: SerializerOptions;\n}\n\n/**\n * The content-types that will indicate that an operation response should be deserialized in a\n * particular way.\n */\nexport interface DeserializationContentTypes {\n /**\n * The content-types that indicate that an operation response should be deserialized as JSON.\n * Defaults to [ \"application/json\", \"text/json\" ].\n */\n json?: string[];\n\n /**\n * The content-types that indicate that an operation response should be deserialized as XML.\n * Defaults to [ \"application/xml\", \"application/atom+xml\" ].\n */\n xml?: string[];\n}\n\n/**\n * This policy handles parsing out responses according to OperationSpecs on the request.\n */\nexport function deserializationPolicy(options: DeserializationPolicyOptions = {}): PipelinePolicy {\n const jsonContentTypes = options.expectedContentTypes?.json ?? defaultJsonContentTypes;\n const xmlContentTypes = options.expectedContentTypes?.xml ?? defaultXmlContentTypes;\n const parseXML = options.parseXML;\n const serializerOptions = options.serializerOptions;\n const updatedOptions: RequiredSerializerOptions = {\n xml: {\n rootName: serializerOptions?.xml.rootName ?? \"\",\n includeRoot: serializerOptions?.xml.includeRoot ?? false,\n xmlCharKey: serializerOptions?.xml.xmlCharKey ?? XML_CHARKEY,\n },\n };\n\n return {\n name: deserializationPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n const response = await next(request);\n return deserializeResponseBody(\n jsonContentTypes,\n xmlContentTypes,\n response,\n updatedOptions,\n parseXML,\n );\n },\n };\n}\n\nfunction getOperationResponseMap(\n parsedResponse: PipelineResponse,\n): undefined | OperationResponseMap {\n let result: OperationResponseMap | undefined;\n const request: OperationRequest = parsedResponse.request;\n const operationInfo = getOperationRequestInfo(request);\n const operationSpec = operationInfo?.operationSpec;\n if (operationSpec) {\n if (!operationInfo?.operationResponseGetter) {\n result = operationSpec.responses[parsedResponse.status];\n } else {\n result = operationInfo?.operationResponseGetter(operationSpec, parsedResponse);\n }\n }\n return result;\n}\n\nfunction shouldDeserializeResponse(parsedResponse: PipelineResponse): boolean {\n const request: OperationRequest = parsedResponse.request;\n const operationInfo = getOperationRequestInfo(request);\n const shouldDeserialize = operationInfo?.shouldDeserialize;\n let result: boolean;\n if (shouldDeserialize === undefined) {\n result = true;\n } else if (typeof shouldDeserialize === \"boolean\") {\n result = shouldDeserialize;\n } else {\n result = shouldDeserialize(parsedResponse);\n }\n return result;\n}\n\nasync function deserializeResponseBody(\n jsonContentTypes: string[],\n xmlContentTypes: string[],\n response: PipelineResponse,\n options: RequiredSerializerOptions,\n parseXML?: (str: string, opts?: XmlOptions) => Promise<any>,\n): Promise<PipelineResponse> {\n const parsedResponse = await parse(\n jsonContentTypes,\n xmlContentTypes,\n response,\n options,\n parseXML,\n );\n if (!shouldDeserializeResponse(parsedResponse)) {\n return parsedResponse;\n }\n\n const operationInfo = getOperationRequestInfo(parsedResponse.request);\n const operationSpec = operationInfo?.operationSpec;\n if (!operationSpec || !operationSpec.responses) {\n return parsedResponse;\n }\n\n const responseSpec = getOperationResponseMap(parsedResponse);\n const { error, shouldReturnResponse } = handleErrorResponse(\n parsedResponse,\n operationSpec,\n responseSpec,\n options,\n );\n if (error) {\n throw error;\n } else if (shouldReturnResponse) {\n return parsedResponse;\n }\n\n // An operation response spec does exist for current status code, so\n // use it to deserialize the response.\n if (responseSpec) {\n if (responseSpec.bodyMapper) {\n let valueToDeserialize: any = parsedResponse.parsedBody;\n if (operationSpec.isXML && responseSpec.bodyMapper.type.name === MapperTypeNames.Sequence) {\n valueToDeserialize =\n typeof valueToDeserialize === \"object\"\n ? valueToDeserialize[responseSpec.bodyMapper.xmlElementName!]\n : [];\n }\n try {\n parsedResponse.parsedBody = operationSpec.serializer.deserialize(\n responseSpec.bodyMapper,\n valueToDeserialize,\n \"operationRes.parsedBody\",\n options,\n );\n } catch (deserializeError: any) {\n const restError = new RestError(\n `Error ${deserializeError} occurred in deserializing the responseBody - ${parsedResponse.bodyAsText}`,\n {\n statusCode: parsedResponse.status,\n request: parsedResponse.request,\n response: parsedResponse,\n },\n );\n throw restError;\n }\n } else if (operationSpec.httpMethod === \"HEAD\") {\n // head methods never have a body, but we return a boolean to indicate presence/absence of the resource\n parsedResponse.parsedBody = response.status >= 200 && response.status < 300;\n }\n\n if (responseSpec.headersMapper) {\n parsedResponse.parsedHeaders = operationSpec.serializer.deserialize(\n responseSpec.headersMapper,\n parsedResponse.headers.toJSON(),\n \"operationRes.parsedHeaders\",\n { xml: {}, ignoreUnknownProperties: true },\n );\n }\n }\n\n return parsedResponse;\n}\n\nfunction isOperationSpecEmpty(operationSpec: OperationSpec): boolean {\n const expectedStatusCodes = Object.keys(operationSpec.responses);\n return (\n expectedStatusCodes.length === 0 ||\n (expectedStatusCodes.length === 1 && expectedStatusCodes[0] === \"default\")\n );\n}\n\nfunction handleErrorResponse(\n parsedResponse: FullOperationResponse,\n operationSpec: OperationSpec,\n responseSpec: OperationResponseMap | undefined,\n options: RequiredSerializerOptions,\n): { error: RestError | null; shouldReturnResponse: boolean } {\n const isSuccessByStatus = 200 <= parsedResponse.status && parsedResponse.status < 300;\n const isExpectedStatusCode: boolean = isOperationSpecEmpty(operationSpec)\n ? isSuccessByStatus\n : !!responseSpec;\n\n if (isExpectedStatusCode) {\n if (responseSpec) {\n if (!responseSpec.isError) {\n return { error: null, shouldReturnResponse: false };\n }\n } else {\n return { error: null, shouldReturnResponse: false };\n }\n }\n\n const errorResponseSpec = responseSpec ?? operationSpec.responses.default;\n\n const initialErrorMessage = parsedResponse.request.streamResponseStatusCodes?.has(\n parsedResponse.status,\n )\n ? `Unexpected status code: ${parsedResponse.status}`\n : (parsedResponse.bodyAsText as string);\n\n const error = new RestError(initialErrorMessage, {\n statusCode: parsedResponse.status,\n request: parsedResponse.request,\n response: parsedResponse,\n });\n\n // If the item failed but there's no error spec or default spec to deserialize the error,\n // we should fail so we just throw the parsed response\n if (!errorResponseSpec) {\n throw error;\n }\n\n const defaultBodyMapper = errorResponseSpec.bodyMapper;\n const defaultHeadersMapper = errorResponseSpec.headersMapper;\n\n try {\n // If error response has a body, try to deserialize it using default body mapper.\n // Then try to extract error code & message from it\n if (parsedResponse.parsedBody) {\n const parsedBody = parsedResponse.parsedBody;\n let deserializedError;\n\n if (defaultBodyMapper) {\n let valueToDeserialize: any = parsedBody;\n if (operationSpec.isXML && defaultBodyMapper.type.name === MapperTypeNames.Sequence) {\n valueToDeserialize = [];\n const elementName = defaultBodyMapper.xmlElementName;\n if (typeof parsedBody === \"object\" && elementName) {\n valueToDeserialize = parsedBody[elementName];\n }\n }\n deserializedError = operationSpec.serializer.deserialize(\n defaultBodyMapper,\n valueToDeserialize,\n \"error.response.parsedBody\",\n options,\n );\n }\n\n const internalError: any = parsedBody.error || deserializedError || parsedBody;\n error.code = internalError.code;\n if (internalError.message) {\n error.message = internalError.message;\n }\n\n if (defaultBodyMapper) {\n (error.response! as FullOperationResponse).parsedBody = deserializedError;\n }\n }\n\n // If error response has headers, try to deserialize it using default header mapper\n if (parsedResponse.headers && defaultHeadersMapper) {\n (error.response! as FullOperationResponse).parsedHeaders =\n operationSpec.serializer.deserialize(\n defaultHeadersMapper,\n parsedResponse.headers.toJSON(),\n \"operationRes.parsedHeaders\",\n );\n }\n } catch (defaultError: any) {\n error.message = `Error \"${defaultError.message}\" occurred in deserializing the responseBody - \"${parsedResponse.bodyAsText}\" for the default response.`;\n }\n\n return { error, shouldReturnResponse: false };\n}\n\nasync function parse(\n jsonContentTypes: string[],\n xmlContentTypes: string[],\n operationResponse: FullOperationResponse,\n opts: RequiredSerializerOptions,\n parseXML?: (str: string, opts?: XmlOptions) => Promise<any>,\n): Promise<FullOperationResponse> {\n if (\n !operationResponse.request.streamResponseStatusCodes?.has(operationResponse.status) &&\n operationResponse.bodyAsText\n ) {\n const text = operationResponse.bodyAsText;\n const contentType: string = operationResponse.headers.get(\"Content-Type\") || \"\";\n const contentComponents: string[] = !contentType\n ? []\n : contentType.split(\";\").map((component) => component.toLowerCase());\n\n try {\n if (\n contentComponents.length === 0 ||\n contentComponents.some((component) => jsonContentTypes.indexOf(component) !== -1)\n ) {\n operationResponse.parsedBody = JSON.parse(text);\n return operationResponse;\n } else if (contentComponents.some((component) => xmlContentTypes.indexOf(component) !== -1)) {\n if (!parseXML) {\n throw new Error(\"Parsing XML not supported.\");\n }\n const body = await parseXML(text, opts.xml);\n operationResponse.parsedBody = body;\n return operationResponse;\n }\n } catch (err: any) {\n const msg = `Error \"${err}\" occurred while parsing the response body - ${operationResponse.bodyAsText}.`;\n const errCode = err.code || RestError.PARSE_ERROR;\n const e = new RestError(msg, {\n code: errCode,\n statusCode: operationResponse.status,\n request: operationResponse.request,\n response: operationResponse,\n });\n throw e;\n }\n }\n\n return operationResponse;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import { HttpClient } from "@azure/core-rest-pipeline";
2
+ export declare function getCachedDefaultHttpClient(): HttpClient;
3
+ //# sourceMappingURL=httpClientCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpClientCache.d.ts","sourceRoot":"","sources":["../../src/httpClientCache.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAA2B,MAAM,2BAA2B,CAAC;AAIhF,wBAAgB,0BAA0B,IAAI,UAAU,CAMvD"}
@@ -0,0 +1,9 @@
1
+ export { createSerializer, MapperTypeNames } from "./serializer.js";
2
+ export { ServiceClient, ServiceClientOptions } from "./serviceClient.js";
3
+ export { createClientPipeline, InternalClientPipelineOptions } from "./pipeline.js";
4
+ export { OperationSpec, OperationArguments, OperationOptions, OperationResponseMap, OperationParameter, OperationQueryParameter, OperationURLParameter, Serializer, BaseMapper, Mapper, MapperType, SimpleMapperType, EnumMapper, EnumMapperType, SequenceMapper, SequenceMapperType, DictionaryMapper, DictionaryMapperType, CompositeMapper, CompositeMapperType, MapperConstraints, OperationRequest, OperationRequestOptions, OperationRequestInfo, QueryCollectionFormat, ParameterPath, FullOperationResponse, PolymorphicDiscriminator, SpanConfig, XML_ATTRKEY, XML_CHARKEY, XmlOptions, SerializerOptions, RawResponseCallback, CommonClientOptions, AdditionalPolicyConfig, } from "./interfaces.js";
5
+ export { deserializationPolicy, deserializationPolicyName, DeserializationPolicyOptions, DeserializationContentTypes, } from "./deserializationPolicy.js";
6
+ export { serializationPolicy, serializationPolicyName, SerializationPolicyOptions, } from "./serializationPolicy.js";
7
+ export { authorizeRequestOnClaimChallenge } from "./authorizeRequestOnClaimChallenge.js";
8
+ export { authorizeRequestOnTenantChallenge } from "./authorizeRequestOnTenantChallenge.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC"}
@@ -0,0 +1,11 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ export { createSerializer, MapperTypeNames } from "./serializer.js";
4
+ export { ServiceClient } from "./serviceClient.js";
5
+ export { createClientPipeline } from "./pipeline.js";
6
+ export { XML_ATTRKEY, XML_CHARKEY, } from "./interfaces.js";
7
+ export { deserializationPolicy, deserializationPolicyName, } from "./deserializationPolicy.js";
8
+ export { serializationPolicy, serializationPolicyName, } from "./serializationPolicy.js";
9
+ export { authorizeRequestOnClaimChallenge } from "./authorizeRequestOnClaimChallenge.js";
10
+ export { authorizeRequestOnTenantChallenge } from "./authorizeRequestOnTenantChallenge.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAwB,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAiC,MAAM,eAAe,CAAC;AACpF,OAAO,EA8BL,WAAW,EACX,WAAW,GAMZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EACrB,yBAAyB,GAG1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GAExB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport { createSerializer, MapperTypeNames } from \"./serializer.js\";\nexport { ServiceClient, ServiceClientOptions } from \"./serviceClient.js\";\nexport { createClientPipeline, InternalClientPipelineOptions } from \"./pipeline.js\";\nexport {\n OperationSpec,\n OperationArguments,\n OperationOptions,\n OperationResponseMap,\n OperationParameter,\n OperationQueryParameter,\n OperationURLParameter,\n Serializer,\n BaseMapper,\n Mapper,\n MapperType,\n SimpleMapperType,\n EnumMapper,\n EnumMapperType,\n SequenceMapper,\n SequenceMapperType,\n DictionaryMapper,\n DictionaryMapperType,\n CompositeMapper,\n CompositeMapperType,\n MapperConstraints,\n OperationRequest,\n OperationRequestOptions,\n OperationRequestInfo,\n QueryCollectionFormat,\n ParameterPath,\n FullOperationResponse,\n PolymorphicDiscriminator,\n SpanConfig,\n XML_ATTRKEY,\n XML_CHARKEY,\n XmlOptions,\n SerializerOptions,\n RawResponseCallback,\n CommonClientOptions,\n AdditionalPolicyConfig,\n} from \"./interfaces.js\";\nexport {\n deserializationPolicy,\n deserializationPolicyName,\n DeserializationPolicyOptions,\n DeserializationContentTypes,\n} from \"./deserializationPolicy.js\";\nexport {\n serializationPolicy,\n serializationPolicyName,\n SerializationPolicyOptions,\n} from \"./serializationPolicy.js\";\nexport { authorizeRequestOnClaimChallenge } from \"./authorizeRequestOnClaimChallenge.js\";\nexport { authorizeRequestOnTenantChallenge } from \"./authorizeRequestOnTenantChallenge.js\";\n"]}
@@ -0,0 +1,14 @@
1
+ import { OperationParameter, OperationSpec } from "./interfaces.js";
2
+ /**
3
+ * Gets the list of status codes for streaming responses.
4
+ * @internal
5
+ */
6
+ export declare function getStreamingResponseStatusCodes(operationSpec: OperationSpec): Set<number>;
7
+ /**
8
+ * Get the path to this parameter's value as a dotted string (a.b.c).
9
+ * @param parameter - The parameter to get the path string for.
10
+ * @returns The path to this parameter's value as a dotted string.
11
+ * @internal
12
+ */
13
+ export declare function getPathStringFromParameter(parameter: OperationParameter): string;
14
+ //# sourceMappingURL=interfaceHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaceHelpers.d.ts","sourceRoot":"","sources":["../../src/interfaceHelpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGpE;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAYzF;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,CAWhF"}
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- import { MapperTypeNames } from "./serializer";
3
+ import { MapperTypeNames } from "./serializer.js";
4
4
  /**
5
5
  * Gets the list of status codes for streaming responses.
6
6
  * @internal
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaceHelpers.js","sourceRoot":"","sources":["../../src/interfaceHelpers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAAC,aAA4B;IAC1E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,UAAU,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;QACjD,MAAM,iBAAiB,GAAG,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC9D,IACE,iBAAiB,CAAC,UAAU;YAC5B,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,MAAM,EACjE,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,SAA6B;IACtE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5C,IAAI,MAAc,CAAC;IACnB,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,GAAG,aAAa,CAAC;IACzB,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,MAAM,CAAC,cAAe,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { OperationParameter, OperationSpec } from \"./interfaces.js\";\nimport { MapperTypeNames } from \"./serializer.js\";\n\n/**\n * Gets the list of status codes for streaming responses.\n * @internal\n */\nexport function getStreamingResponseStatusCodes(operationSpec: OperationSpec): Set<number> {\n const result = new Set<number>();\n for (const statusCode in operationSpec.responses) {\n const operationResponse = operationSpec.responses[statusCode];\n if (\n operationResponse.bodyMapper &&\n operationResponse.bodyMapper.type.name === MapperTypeNames.Stream\n ) {\n result.add(Number(statusCode));\n }\n }\n return result;\n}\n\n/**\n * Get the path to this parameter's value as a dotted string (a.b.c).\n * @param parameter - The parameter to get the path string for.\n * @returns The path to this parameter's value as a dotted string.\n * @internal\n */\nexport function getPathStringFromParameter(parameter: OperationParameter): string {\n const { parameterPath, mapper } = parameter;\n let result: string;\n if (typeof parameterPath === \"string\") {\n result = parameterPath;\n } else if (Array.isArray(parameterPath)) {\n result = parameterPath.join(\".\");\n } else {\n result = mapper.serializedName!;\n }\n return result;\n}\n"]}