@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.
- package/README.md +0 -4
- package/dist/browser/authorizeRequestOnClaimChallenge.d.ts +43 -0
- package/dist/browser/authorizeRequestOnClaimChallenge.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/authorizeRequestOnClaimChallenge.js +3 -3
- package/dist/browser/authorizeRequestOnClaimChallenge.js.map +1 -0
- package/dist/browser/authorizeRequestOnTenantChallenge.d.ts +8 -0
- package/dist/browser/authorizeRequestOnTenantChallenge.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/authorizeRequestOnTenantChallenge.js +5 -2
- package/dist/browser/authorizeRequestOnTenantChallenge.js.map +1 -0
- package/dist/browser/base64-browser.d.mts.map +1 -0
- package/dist/browser/base64-browser.mjs.map +1 -0
- package/dist/browser/base64.d.ts +29 -0
- package/{dist-esm/src/base64.browser.js → dist/browser/base64.js} +5 -1
- package/dist/browser/deserializationPolicy.d.ts +45 -0
- package/dist/browser/deserializationPolicy.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/deserializationPolicy.js +16 -19
- package/dist/browser/deserializationPolicy.js.map +1 -0
- package/dist/browser/httpClientCache.d.ts +3 -0
- package/dist/browser/httpClientCache.d.ts.map +1 -0
- package/dist/browser/index.d.ts +9 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +11 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/interfaceHelpers.d.ts +14 -0
- package/dist/browser/interfaceHelpers.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/interfaceHelpers.js +1 -1
- package/dist/browser/interfaceHelpers.js.map +1 -0
- package/dist/browser/interfaces.d.ts +664 -0
- package/dist/browser/interfaces.d.ts.map +1 -0
- package/dist/browser/log.d.ts +2 -0
- package/dist/browser/log.d.ts.map +1 -0
- package/dist/browser/operationHelpers.d.ts +14 -0
- package/dist/browser/operationHelpers.d.ts.map +1 -0
- package/dist/browser/operationHelpers.js.map +1 -0
- package/dist/browser/package.json +3 -0
- package/dist/browser/pipeline.d.ts +34 -0
- package/dist/browser/pipeline.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/pipeline.js +3 -3
- package/dist/browser/pipeline.js.map +1 -0
- package/dist/browser/serializationPolicy.d.ts +33 -0
- package/dist/browser/serializationPolicy.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/serializationPolicy.js +12 -14
- package/dist/browser/serializationPolicy.js.map +1 -0
- package/dist/browser/serializer.d.ts +31 -0
- package/dist/browser/serializer.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/serializer.js +25 -26
- package/dist/browser/serializer.js.map +1 -0
- package/dist/browser/serviceClient.d.ts +82 -0
- package/dist/browser/serviceClient.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/serviceClient.js +38 -14
- package/dist/browser/serviceClient.js.map +1 -0
- package/dist/browser/urlHelpers.d.ts +7 -0
- package/dist/browser/urlHelpers.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/urlHelpers.js +4 -6
- package/dist/browser/urlHelpers.js.map +1 -0
- package/dist/browser/utils.d.ts +37 -0
- package/dist/browser/utils.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/utils.js +23 -10
- package/dist/browser/utils.js.map +1 -0
- package/dist/commonjs/authorizeRequestOnClaimChallenge.d.ts +43 -0
- package/dist/commonjs/authorizeRequestOnClaimChallenge.d.ts.map +1 -0
- package/dist/commonjs/authorizeRequestOnClaimChallenge.js +74 -0
- package/dist/commonjs/authorizeRequestOnClaimChallenge.js.map +1 -0
- package/dist/commonjs/authorizeRequestOnTenantChallenge.d.ts +8 -0
- package/dist/commonjs/authorizeRequestOnTenantChallenge.d.ts.map +1 -0
- package/dist/commonjs/authorizeRequestOnTenantChallenge.js +106 -0
- package/dist/commonjs/authorizeRequestOnTenantChallenge.js.map +1 -0
- package/dist/commonjs/base64.d.ts +25 -0
- package/dist/commonjs/base64.d.ts.map +1 -0
- package/dist/commonjs/base64.js +43 -0
- package/dist/commonjs/base64.js.map +1 -0
- package/dist/commonjs/deserializationPolicy.d.ts +45 -0
- package/dist/commonjs/deserializationPolicy.d.ts.map +1 -0
- package/dist/commonjs/deserializationPolicy.js +232 -0
- package/dist/commonjs/deserializationPolicy.js.map +1 -0
- package/dist/commonjs/httpClientCache.d.ts +3 -0
- package/dist/commonjs/httpClientCache.d.ts.map +1 -0
- package/dist/commonjs/httpClientCache.js +15 -0
- package/dist/commonjs/httpClientCache.js.map +1 -0
- package/dist/commonjs/index.d.ts +9 -0
- package/dist/commonjs/index.d.ts.map +1 -0
- package/dist/commonjs/index.js +26 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/interfaceHelpers.d.ts +14 -0
- package/dist/commonjs/interfaceHelpers.d.ts.map +1 -0
- package/dist/commonjs/interfaceHelpers.js +44 -0
- package/dist/commonjs/interfaceHelpers.js.map +1 -0
- package/dist/commonjs/interfaces.d.ts +664 -0
- package/dist/commonjs/interfaces.d.ts.map +1 -0
- package/dist/commonjs/interfaces.js +14 -0
- package/dist/commonjs/interfaces.js.map +1 -0
- package/dist/commonjs/log.d.ts +2 -0
- package/dist/commonjs/log.d.ts.map +1 -0
- package/dist/commonjs/log.js +8 -0
- package/dist/commonjs/log.js.map +1 -0
- package/dist/commonjs/operationHelpers.d.ts +14 -0
- package/dist/commonjs/operationHelpers.d.ts.map +1 -0
- package/dist/commonjs/operationHelpers.js +99 -0
- package/dist/commonjs/operationHelpers.js.map +1 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/commonjs/pipeline.d.ts +34 -0
- package/dist/commonjs/pipeline.d.ts.map +1 -0
- package/dist/commonjs/pipeline.js +30 -0
- package/dist/commonjs/pipeline.js.map +1 -0
- package/dist/commonjs/serializationPolicy.d.ts +33 -0
- package/dist/commonjs/serializationPolicy.d.ts.map +1 -0
- package/dist/commonjs/serializationPolicy.js +157 -0
- package/dist/commonjs/serializationPolicy.js.map +1 -0
- package/dist/commonjs/serializer.d.ts +31 -0
- package/dist/commonjs/serializer.d.ts.map +1 -0
- package/dist/commonjs/serializer.js +926 -0
- package/dist/commonjs/serializer.js.map +1 -0
- package/dist/commonjs/serviceClient.d.ts +82 -0
- package/dist/commonjs/serviceClient.d.ts.map +1 -0
- package/dist/commonjs/serviceClient.js +177 -0
- package/dist/commonjs/serviceClient.js.map +1 -0
- package/dist/commonjs/tsdoc-metadata.json +11 -0
- package/dist/commonjs/urlHelpers.d.ts +7 -0
- package/dist/commonjs/urlHelpers.d.ts.map +1 -0
- package/dist/commonjs/urlHelpers.js +238 -0
- package/dist/commonjs/urlHelpers.js.map +1 -0
- package/dist/commonjs/utils.d.ts +37 -0
- package/dist/commonjs/utils.d.ts.map +1 -0
- package/dist/commonjs/utils.js +135 -0
- package/dist/commonjs/utils.js.map +1 -0
- package/dist/esm/authorizeRequestOnClaimChallenge.d.ts +43 -0
- package/dist/esm/authorizeRequestOnClaimChallenge.d.ts.map +1 -0
- package/dist/esm/authorizeRequestOnClaimChallenge.js +69 -0
- package/dist/esm/authorizeRequestOnClaimChallenge.js.map +1 -0
- package/dist/esm/authorizeRequestOnTenantChallenge.d.ts +8 -0
- package/dist/esm/authorizeRequestOnTenantChallenge.d.ts.map +1 -0
- package/dist/esm/authorizeRequestOnTenantChallenge.js +102 -0
- package/dist/esm/authorizeRequestOnTenantChallenge.js.map +1 -0
- package/dist/esm/base64.d.ts +25 -0
- package/dist/esm/base64.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/base64.js +0 -2
- package/dist/esm/base64.js.map +1 -0
- package/dist/esm/deserializationPolicy.d.ts +45 -0
- package/dist/esm/deserializationPolicy.d.ts.map +1 -0
- package/dist/esm/deserializationPolicy.js +228 -0
- package/dist/esm/deserializationPolicy.js.map +1 -0
- package/dist/esm/httpClientCache.d.ts +3 -0
- package/dist/esm/httpClientCache.d.ts.map +1 -0
- package/dist/esm/httpClientCache.js +11 -0
- package/dist/esm/httpClientCache.js.map +1 -0
- package/dist/esm/index.d.ts +9 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +11 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/interfaceHelpers.d.ts +14 -0
- package/dist/esm/interfaceHelpers.d.ts.map +1 -0
- package/dist/esm/interfaceHelpers.js +39 -0
- package/dist/esm/interfaceHelpers.js.map +1 -0
- package/dist/esm/interfaces.d.ts +664 -0
- package/dist/esm/interfaces.d.ts.map +1 -0
- package/dist/esm/interfaces.js +11 -0
- package/dist/esm/interfaces.js.map +1 -0
- package/dist/esm/log.d.ts +2 -0
- package/dist/esm/log.d.ts.map +1 -0
- package/dist/esm/log.js +5 -0
- package/dist/esm/log.js.map +1 -0
- package/dist/esm/operationHelpers.d.ts +14 -0
- package/dist/esm/operationHelpers.d.ts.map +1 -0
- package/dist/esm/operationHelpers.js +94 -0
- package/dist/esm/operationHelpers.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/pipeline.d.ts +34 -0
- package/dist/esm/pipeline.d.ts.map +1 -0
- package/dist/esm/pipeline.js +26 -0
- package/dist/esm/pipeline.js.map +1 -0
- package/dist/esm/serializationPolicy.d.ts +33 -0
- package/dist/esm/serializationPolicy.d.ts.map +1 -0
- package/dist/esm/serializationPolicy.js +151 -0
- package/dist/esm/serializationPolicy.js.map +1 -0
- package/dist/esm/serializer.d.ts +31 -0
- package/dist/esm/serializer.d.ts.map +1 -0
- package/dist/esm/serializer.js +921 -0
- package/dist/esm/serializer.js.map +1 -0
- package/dist/esm/serviceClient.d.ts +82 -0
- package/dist/esm/serviceClient.d.ts.map +1 -0
- package/dist/esm/serviceClient.js +173 -0
- package/dist/esm/serviceClient.js.map +1 -0
- package/dist/esm/urlHelpers.d.ts +7 -0
- package/dist/esm/urlHelpers.d.ts.map +1 -0
- package/dist/esm/urlHelpers.js +233 -0
- package/dist/esm/urlHelpers.js.map +1 -0
- package/dist/esm/utils.d.ts +37 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +128 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/react-native/authorizeRequestOnClaimChallenge.d.ts +43 -0
- package/dist/react-native/authorizeRequestOnClaimChallenge.d.ts.map +1 -0
- package/dist/react-native/authorizeRequestOnClaimChallenge.js +69 -0
- package/dist/react-native/authorizeRequestOnClaimChallenge.js.map +1 -0
- package/dist/react-native/authorizeRequestOnTenantChallenge.d.ts +8 -0
- package/dist/react-native/authorizeRequestOnTenantChallenge.d.ts.map +1 -0
- package/dist/react-native/authorizeRequestOnTenantChallenge.js +102 -0
- package/dist/react-native/authorizeRequestOnTenantChallenge.js.map +1 -0
- package/dist/react-native/base64.d.ts +25 -0
- package/dist/react-native/base64.d.ts.map +1 -0
- package/dist/react-native/base64.js +36 -0
- package/dist/react-native/base64.js.map +1 -0
- package/dist/react-native/deserializationPolicy.d.ts +45 -0
- package/dist/react-native/deserializationPolicy.d.ts.map +1 -0
- package/dist/react-native/deserializationPolicy.js +228 -0
- package/dist/react-native/deserializationPolicy.js.map +1 -0
- package/dist/react-native/httpClientCache.d.ts +3 -0
- package/dist/react-native/httpClientCache.d.ts.map +1 -0
- package/dist/react-native/httpClientCache.js +11 -0
- package/dist/react-native/httpClientCache.js.map +1 -0
- package/dist/react-native/index.d.ts +9 -0
- package/dist/react-native/index.d.ts.map +1 -0
- package/dist/react-native/index.js +11 -0
- package/dist/react-native/index.js.map +1 -0
- package/dist/react-native/interfaceHelpers.d.ts +14 -0
- package/dist/react-native/interfaceHelpers.d.ts.map +1 -0
- package/dist/react-native/interfaceHelpers.js +39 -0
- package/dist/react-native/interfaceHelpers.js.map +1 -0
- package/dist/react-native/interfaces.d.ts +664 -0
- package/dist/react-native/interfaces.d.ts.map +1 -0
- package/dist/react-native/interfaces.js +11 -0
- package/dist/react-native/interfaces.js.map +1 -0
- package/dist/react-native/log.d.ts +2 -0
- package/dist/react-native/log.d.ts.map +1 -0
- package/dist/react-native/log.js +5 -0
- package/dist/react-native/log.js.map +1 -0
- package/dist/react-native/operationHelpers.d.ts +14 -0
- package/dist/react-native/operationHelpers.d.ts.map +1 -0
- package/dist/react-native/operationHelpers.js +94 -0
- package/dist/react-native/operationHelpers.js.map +1 -0
- package/dist/react-native/package.json +3 -0
- package/dist/react-native/pipeline.d.ts +34 -0
- package/dist/react-native/pipeline.d.ts.map +1 -0
- package/dist/react-native/pipeline.js +26 -0
- package/dist/react-native/pipeline.js.map +1 -0
- package/dist/react-native/serializationPolicy.d.ts +33 -0
- package/dist/react-native/serializationPolicy.d.ts.map +1 -0
- package/dist/react-native/serializationPolicy.js +151 -0
- package/dist/react-native/serializationPolicy.js.map +1 -0
- package/dist/react-native/serializer.d.ts +31 -0
- package/dist/react-native/serializer.d.ts.map +1 -0
- package/dist/react-native/serializer.js +921 -0
- package/dist/react-native/serializer.js.map +1 -0
- package/dist/react-native/serviceClient.d.ts +82 -0
- package/dist/react-native/serviceClient.d.ts.map +1 -0
- package/dist/react-native/serviceClient.js +173 -0
- package/dist/react-native/serviceClient.js.map +1 -0
- package/dist/react-native/urlHelpers.d.ts +7 -0
- package/dist/react-native/urlHelpers.d.ts.map +1 -0
- package/dist/react-native/urlHelpers.js +233 -0
- package/dist/react-native/urlHelpers.js.map +1 -0
- package/dist/react-native/utils.d.ts +37 -0
- package/dist/react-native/utils.d.ts.map +1 -0
- package/dist/react-native/utils.js +128 -0
- package/dist/react-native/utils.js.map +1 -0
- package/package.json +74 -61
- package/dist/index.js +0 -2185
- package/dist/index.js.map +0 -1
- package/dist-esm/src/authorizeRequestOnClaimChallenge.js.map +0 -1
- package/dist-esm/src/authorizeRequestOnTenantChallenge.js.map +0 -1
- package/dist-esm/src/base64.browser.js.map +0 -1
- package/dist-esm/src/base64.js.map +0 -1
- package/dist-esm/src/deserializationPolicy.js.map +0 -1
- package/dist-esm/src/index.js +0 -11
- package/dist-esm/src/index.js.map +0 -1
- package/dist-esm/src/interfaceHelpers.js.map +0 -1
- package/dist-esm/src/operationHelpers.js.map +0 -1
- package/dist-esm/src/pipeline.js.map +0 -1
- package/dist-esm/src/serializationPolicy.js.map +0 -1
- package/dist-esm/src/serializer.js.map +0 -1
- package/dist-esm/src/serviceClient.js.map +0 -1
- package/dist-esm/src/urlHelpers.js.map +0 -1
- package/dist-esm/src/utils.js.map +0 -1
- /package/{dist-esm/src → dist/browser}/httpClientCache.js +0 -0
- /package/{dist-esm/src → dist/browser}/httpClientCache.js.map +0 -0
- /package/{dist-esm/src → dist/browser}/interfaces.js +0 -0
- /package/{dist-esm/src → dist/browser}/interfaces.js.map +0 -0
- /package/{dist-esm/src → dist/browser}/log.js +0 -0
- /package/{dist-esm/src → dist/browser}/log.js.map +0 -0
- /package/{dist-esm/src → dist/browser}/operationHelpers.js +0 -0
- /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) => (
|
|
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,
|
|
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) => (
|
|
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
|
|
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
|
-
|
|
18
|
-
const
|
|
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:
|
|
25
|
-
includeRoot:
|
|
26
|
-
xmlCharKey:
|
|
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
|
|
40
|
+
const operationSpec = operationInfo?.operationSpec;
|
|
42
41
|
if (operationSpec) {
|
|
43
|
-
if (!
|
|
42
|
+
if (!operationInfo?.operationResponseGetter) {
|
|
44
43
|
result = operationSpec.responses[parsedResponse.status];
|
|
45
44
|
}
|
|
46
45
|
else {
|
|
47
|
-
result = operationInfo
|
|
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
|
|
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
|
|
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
|
|
141
|
-
const initialErrorMessage =
|
|
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
|
-
|
|
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 @@
|
|
|
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"}
|
|
@@ -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"]}
|