@typespec/ts-http-runtime 0.3.4-alpha.20260227.2 → 0.3.4
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/dist/browser/client/sendRequest.d.ts +10 -1
- package/dist/browser/client/sendRequest.js +8 -2
- package/dist/browser/client/sendRequest.js.map +1 -1
- package/dist/browser/defaultHttpClient.d.ts +1 -1
- package/dist/browser/defaultHttpClient.js +1 -1
- package/dist/browser/defaultHttpClient.js.map +1 -0
- package/dist/browser/index.d.ts +2 -2
- package/dist/browser/index.js +0 -2
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/logger/log.d.ts +1 -1
- package/dist/browser/logger/log.js +1 -1
- package/dist/browser/logger/log.js.map +1 -0
- package/dist/browser/pipelineRequest.d.ts +1 -1
- package/dist/browser/pipelineRequest.js.map +1 -1
- package/dist/browser/policies/decompressResponsePolicy.d.ts +3 -2
- package/dist/browser/policies/decompressResponsePolicy.js +1 -4
- package/dist/browser/policies/decompressResponsePolicy.js.map +1 -0
- package/dist/browser/policies/internal.d.ts +7 -7
- package/dist/browser/policies/internal.js +2 -2
- package/dist/browser/policies/internal.js.map +1 -1
- package/dist/browser/policies/proxyPolicy.common.d.ts +7 -3
- package/dist/browser/policies/proxyPolicy.common.js +2 -2
- package/dist/browser/policies/proxyPolicy.common.js.map +1 -1
- package/dist/browser/policies/proxyPolicy.d.ts +1 -1
- package/dist/browser/policies/proxyPolicy.js +1 -1
- package/dist/browser/policies/proxyPolicy.js.map +1 -0
- package/dist/browser/policies/redirectPolicy.d.ts +7 -0
- package/dist/browser/policies/redirectPolicy.js +13 -4
- package/dist/browser/policies/redirectPolicy.js.map +1 -1
- package/dist/browser/util/bytesEncoding.d.ts +1 -1
- package/dist/browser/util/bytesEncoding.js +1 -1
- package/dist/browser/util/bytesEncoding.js.map +1 -0
- package/dist/browser/util/concat.common.d.ts +1 -2
- package/dist/browser/util/concat.common.js.map +1 -1
- package/dist/browser/util/concat.d.ts +1 -1
- package/dist/browser/util/concat.js +1 -1
- package/dist/browser/util/concat.js.map +1 -0
- package/dist/browser/util/inspect.d.ts +1 -1
- package/dist/browser/util/inspect.js +1 -1
- package/dist/browser/util/inspect.js.map +1 -0
- package/dist/browser/util/sha256.d.ts +1 -1
- package/dist/browser/util/sha256.js +1 -1
- package/dist/browser/util/sha256.js.map +1 -0
- package/dist/browser/util/userAgentPlatform.d.ts +1 -1
- package/dist/browser/util/userAgentPlatform.js +1 -1
- package/dist/browser/util/userAgentPlatform.js.map +1 -0
- package/dist/browser/util/uuidUtils.d.ts +1 -1
- package/dist/browser/util/uuidUtils.js +1 -1
- package/dist/browser/util/uuidUtils.js.map +1 -0
- package/dist/commonjs/abort-controller/AbortError.js +30 -40
- package/dist/commonjs/abort-controller/AbortError.js.map +7 -1
- package/dist/commonjs/auth/credentials.js +36 -25
- package/dist/commonjs/auth/credentials.js.map +7 -1
- package/dist/commonjs/auth/oauth2Flows.js +15 -5
- package/dist/commonjs/auth/oauth2Flows.js.map +7 -1
- package/dist/commonjs/auth/schemes.js +15 -5
- package/dist/commonjs/auth/schemes.js.map +7 -1
- package/dist/commonjs/client/apiVersionPolicy.js +39 -25
- package/dist/commonjs/client/apiVersionPolicy.js.map +7 -1
- package/dist/commonjs/client/clientHelpers.js +62 -39
- package/dist/commonjs/client/clientHelpers.js.map +7 -1
- package/dist/commonjs/client/common.js +15 -5
- package/dist/commonjs/client/common.js.map +7 -1
- package/dist/commonjs/client/getClient.js +170 -82
- package/dist/commonjs/client/getClient.js.map +7 -1
- package/dist/commonjs/client/multipart.js +119 -110
- package/dist/commonjs/client/multipart.js.map +7 -1
- package/dist/commonjs/client/operationOptionHelpers.js +36 -21
- package/dist/commonjs/client/operationOptionHelpers.js.map +7 -1
- package/dist/commonjs/client/restError.js +44 -26
- package/dist/commonjs/client/restError.js.map +7 -1
- package/dist/commonjs/client/sendRequest.d.ts +10 -1
- package/dist/commonjs/client/sendRequest.js +150 -164
- package/dist/commonjs/client/sendRequest.js.map +7 -1
- package/dist/commonjs/client/urlHelpers.js +124 -131
- package/dist/commonjs/client/urlHelpers.js.map +7 -1
- package/dist/commonjs/constants.js +30 -8
- package/dist/commonjs/constants.js.map +7 -1
- package/dist/commonjs/createPipelineFromOptions.js +56 -45
- package/dist/commonjs/createPipelineFromOptions.js.map +7 -1
- package/dist/commonjs/defaultHttpClient.js +28 -11
- package/dist/commonjs/defaultHttpClient.js.map +7 -1
- package/dist/commonjs/fetchHttpClient.js +211 -256
- package/dist/commonjs/fetchHttpClient.js.map +7 -1
- package/dist/commonjs/httpHeaders.js +97 -82
- package/dist/commonjs/httpHeaders.js.map +7 -1
- package/dist/commonjs/index.d.ts +2 -2
- package/dist/commonjs/index.js +67 -36
- package/dist/commonjs/index.js.map +7 -1
- package/dist/commonjs/interfaces.js +15 -5
- package/dist/commonjs/interfaces.js.map +7 -1
- package/dist/commonjs/log.js +28 -8
- package/dist/commonjs/log.js.map +7 -1
- package/dist/commonjs/logger/debug.js +150 -155
- package/dist/commonjs/logger/debug.js.map +7 -1
- package/dist/commonjs/logger/internal.js +27 -8
- package/dist/commonjs/logger/internal.js.map +7 -1
- package/dist/commonjs/logger/log.common.js +39 -23
- package/dist/commonjs/logger/log.common.js.map +7 -1
- package/dist/commonjs/logger/log.js +40 -11
- package/dist/commonjs/logger/log.js.map +7 -1
- package/dist/commonjs/logger/logger.js +120 -110
- package/dist/commonjs/logger/logger.js.map +7 -1
- package/dist/commonjs/nodeHttpClient.js +313 -321
- package/dist/commonjs/nodeHttpClient.js.map +7 -1
- package/dist/commonjs/pipeline.js +190 -247
- package/dist/commonjs/pipeline.js.map +7 -1
- package/dist/commonjs/pipelineRequest.d.ts +1 -1
- package/dist/commonjs/pipelineRequest.js +69 -54
- package/dist/commonjs/pipelineRequest.js.map +7 -1
- package/dist/commonjs/policies/agentPolicy.js +38 -24
- package/dist/commonjs/policies/agentPolicy.js.map +7 -1
- package/dist/commonjs/policies/auth/apiKeyAuthenticationPolicy.js +45 -32
- package/dist/commonjs/policies/auth/apiKeyAuthenticationPolicy.js.map +7 -1
- package/dist/commonjs/policies/auth/basicAuthenticationPolicy.js +50 -32
- package/dist/commonjs/policies/auth/basicAuthenticationPolicy.js.map +7 -1
- package/dist/commonjs/policies/auth/bearerAuthenticationPolicy.js +47 -32
- package/dist/commonjs/policies/auth/bearerAuthenticationPolicy.js.map +7 -1
- package/dist/commonjs/policies/auth/checkInsecureConnection.js +47 -44
- package/dist/commonjs/policies/auth/checkInsecureConnection.js.map +7 -1
- package/dist/commonjs/policies/auth/oauth2AuthenticationPolicy.js +45 -32
- package/dist/commonjs/policies/auth/oauth2AuthenticationPolicy.js.map +7 -1
- package/dist/commonjs/policies/decompressResponsePolicy.js +38 -25
- package/dist/commonjs/policies/decompressResponsePolicy.js.map +7 -1
- package/dist/commonjs/policies/defaultRetryPolicy.js +39 -27
- package/dist/commonjs/policies/defaultRetryPolicy.js.map +7 -1
- package/dist/commonjs/policies/exponentialRetryPolicy.js +43 -26
- package/dist/commonjs/policies/exponentialRetryPolicy.js.map +7 -1
- package/dist/commonjs/policies/formDataPolicy.js +101 -90
- package/dist/commonjs/policies/formDataPolicy.js.map +7 -1
- package/dist/commonjs/policies/internal.d.ts +7 -7
- package/dist/commonjs/policies/internal.js +94 -48
- package/dist/commonjs/policies/internal.js.map +7 -1
- package/dist/commonjs/policies/logPolicy.js +49 -35
- package/dist/commonjs/policies/logPolicy.js.map +7 -1
- package/dist/commonjs/policies/multipartPolicy.js +117 -99
- package/dist/commonjs/policies/multipartPolicy.js.map +7 -1
- package/dist/commonjs/policies/proxyPolicy.common.d.ts +7 -3
- package/dist/commonjs/policies/proxyPolicy.common.js +38 -25
- package/dist/commonjs/policies/proxyPolicy.common.js.map +7 -1
- package/dist/commonjs/policies/proxyPolicy.js +160 -171
- package/dist/commonjs/policies/proxyPolicy.js.map +7 -1
- package/dist/commonjs/policies/redirectPolicy.d.ts +7 -0
- package/dist/commonjs/policies/redirectPolicy.js +62 -51
- package/dist/commonjs/policies/redirectPolicy.js.map +7 -1
- package/dist/commonjs/policies/retryPolicy.js +123 -105
- package/dist/commonjs/policies/retryPolicy.js.map +7 -1
- package/dist/commonjs/policies/systemErrorRetryPolicy.js +46 -31
- package/dist/commonjs/policies/systemErrorRetryPolicy.js.map +7 -1
- package/dist/commonjs/policies/throttlingRetryPolicy.js +38 -30
- package/dist/commonjs/policies/throttlingRetryPolicy.js.map +7 -1
- package/dist/commonjs/policies/tlsPolicy.js +38 -24
- package/dist/commonjs/policies/tlsPolicy.js.map +7 -1
- package/dist/commonjs/policies/userAgentPolicy.js +41 -28
- package/dist/commonjs/policies/userAgentPolicy.js.map +7 -1
- package/dist/commonjs/restError.js +93 -90
- package/dist/commonjs/restError.js.map +7 -1
- package/dist/commonjs/retryStrategies/exponentialRetryStrategy.js +63 -62
- package/dist/commonjs/retryStrategies/exponentialRetryStrategy.js.map +7 -1
- package/dist/commonjs/retryStrategies/retryStrategy.js +15 -5
- package/dist/commonjs/retryStrategies/retryStrategy.js.map +7 -1
- package/dist/commonjs/retryStrategies/throttlingRetryStrategy.js +58 -69
- package/dist/commonjs/retryStrategies/throttlingRetryStrategy.js.map +7 -1
- package/dist/commonjs/util/arrayBuffer.js +34 -21
- package/dist/commonjs/util/arrayBuffer.js.map +7 -1
- package/dist/commonjs/util/bytesEncoding.common.js +83 -100
- package/dist/commonjs/util/bytesEncoding.common.js.map +7 -1
- package/dist/commonjs/util/bytesEncoding.js +30 -21
- package/dist/commonjs/util/bytesEncoding.js.map +7 -1
- package/dist/commonjs/util/checkEnvironment.js +45 -44
- package/dist/commonjs/util/checkEnvironment.js.map +7 -1
- package/dist/commonjs/util/concat.common.d.ts +1 -2
- package/dist/commonjs/util/concat.common.js +51 -52
- package/dist/commonjs/util/concat.common.js.map +7 -1
- package/dist/commonjs/util/concat.js +70 -61
- package/dist/commonjs/util/concat.js.map +7 -1
- package/dist/commonjs/util/delay.js +31 -21
- package/dist/commonjs/util/delay.js.map +7 -1
- package/dist/commonjs/util/error.js +33 -17
- package/dist/commonjs/util/error.js.map +7 -1
- package/dist/commonjs/util/helpers.js +65 -57
- package/dist/commonjs/util/helpers.js.map +7 -1
- package/dist/commonjs/util/inspect.common.js +27 -7
- package/dist/commonjs/util/inspect.common.js.map +7 -1
- package/dist/commonjs/util/inspect.js +28 -8
- package/dist/commonjs/util/inspect.js.map +7 -1
- package/dist/commonjs/util/internal.js +67 -32
- package/dist/commonjs/util/internal.js.map +7 -1
- package/dist/commonjs/util/object.js +27 -15
- package/dist/commonjs/util/object.js.map +7 -1
- package/dist/commonjs/util/random.js +30 -22
- package/dist/commonjs/util/random.js.map +7 -1
- package/dist/commonjs/util/sanitizer.js +157 -148
- package/dist/commonjs/util/sanitizer.js.map +7 -1
- package/dist/commonjs/util/sha256.common.js +61 -45
- package/dist/commonjs/util/sha256.common.js.map +7 -1
- package/dist/commonjs/util/sha256.js +32 -22
- package/dist/commonjs/util/sha256.js.map +7 -1
- package/dist/commonjs/util/typeGuards.js +41 -21
- package/dist/commonjs/util/typeGuards.js.map +7 -1
- package/dist/commonjs/util/userAgent.js +43 -28
- package/dist/commonjs/util/userAgent.js.map +7 -1
- package/dist/commonjs/util/userAgentPlatform.js +51 -29
- package/dist/commonjs/util/userAgentPlatform.js.map +7 -1
- package/dist/commonjs/util/uuidUtils.common.js +43 -39
- package/dist/commonjs/util/uuidUtils.common.js.map +7 -1
- package/dist/commonjs/util/uuidUtils.js +27 -12
- package/dist/commonjs/util/uuidUtils.js.map +7 -1
- package/dist/commonjs/xhrHttpClient.js +171 -163
- package/dist/commonjs/xhrHttpClient.js.map +7 -1
- package/dist/esm/client/sendRequest.d.ts +10 -1
- package/dist/esm/client/sendRequest.js +8 -2
- package/dist/esm/client/sendRequest.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +0 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/pipelineRequest.d.ts +1 -1
- package/dist/esm/pipelineRequest.js.map +1 -1
- package/dist/esm/policies/internal.d.ts +7 -7
- package/dist/esm/policies/internal.js +2 -2
- package/dist/esm/policies/internal.js.map +1 -1
- package/dist/esm/policies/proxyPolicy.common.d.ts +7 -3
- package/dist/esm/policies/proxyPolicy.common.js +2 -2
- package/dist/esm/policies/proxyPolicy.common.js.map +1 -1
- package/dist/esm/policies/redirectPolicy.d.ts +7 -0
- package/dist/esm/policies/redirectPolicy.js +13 -4
- package/dist/esm/policies/redirectPolicy.js.map +1 -1
- package/dist/esm/util/concat.common.d.ts +1 -2
- package/dist/esm/util/concat.common.js.map +1 -1
- package/dist/react-native/client/sendRequest.d.ts +10 -1
- package/dist/react-native/client/sendRequest.js +8 -2
- package/dist/react-native/client/sendRequest.js.map +1 -1
- package/dist/react-native/defaultHttpClient.d.ts +1 -1
- package/dist/react-native/defaultHttpClient.js +1 -1
- package/dist/react-native/defaultHttpClient.js.map +1 -0
- package/dist/react-native/index.d.ts +2 -2
- package/dist/react-native/index.js +0 -2
- package/dist/react-native/index.js.map +1 -1
- package/dist/react-native/logger/log.d.ts +1 -1
- package/dist/react-native/logger/log.js +1 -1
- package/dist/react-native/logger/log.js.map +1 -0
- package/dist/react-native/pipelineRequest.d.ts +1 -1
- package/dist/react-native/pipelineRequest.js.map +1 -1
- package/dist/react-native/policies/internal.d.ts +7 -7
- package/dist/react-native/policies/internal.js +2 -2
- package/dist/react-native/policies/internal.js.map +1 -1
- package/dist/react-native/policies/proxyPolicy.common.d.ts +7 -3
- package/dist/react-native/policies/proxyPolicy.common.js +2 -2
- package/dist/react-native/policies/proxyPolicy.common.js.map +1 -1
- package/dist/react-native/policies/proxyPolicy.d.ts +1 -1
- package/dist/react-native/policies/proxyPolicy.js +1 -1
- package/dist/react-native/policies/proxyPolicy.js.map +1 -0
- package/dist/react-native/policies/redirectPolicy.d.ts +7 -0
- package/dist/react-native/policies/redirectPolicy.js +13 -4
- package/dist/react-native/policies/redirectPolicy.js.map +1 -1
- package/dist/react-native/util/bytesEncoding.d.ts +1 -1
- package/dist/react-native/util/bytesEncoding.js +1 -1
- package/dist/react-native/util/bytesEncoding.js.map +1 -0
- package/dist/react-native/util/concat.common.d.ts +1 -2
- package/dist/react-native/util/concat.common.js.map +1 -1
- package/dist/react-native/util/concat.d.ts +1 -1
- package/dist/react-native/util/concat.js +1 -1
- package/dist/react-native/util/concat.js.map +1 -0
- package/dist/react-native/util/inspect.d.ts +1 -1
- package/dist/react-native/util/inspect.js +1 -1
- package/dist/react-native/util/inspect.js.map +1 -0
- package/dist/react-native/util/sha256.d.ts +1 -1
- package/dist/react-native/util/sha256.js +1 -1
- package/dist/react-native/util/sha256.js.map +1 -0
- package/dist/react-native/util/userAgentPlatform.d.ts +1 -1
- package/dist/react-native/util/userAgentPlatform.js +1 -1
- package/dist/react-native/util/userAgentPlatform.js.map +1 -0
- package/dist/react-native/util/uuidUtils.d.ts +1 -1
- package/dist/react-native/util/uuidUtils.js +1 -1
- package/dist/react-native/util/uuidUtils.js.map +1 -0
- package/package.json +1 -21
- package/dist/browser/defaultHttpClient-browser.mjs.map +0 -1
- package/dist/browser/logger/log-browser.mjs.map +0 -1
- package/dist/browser/policies/decompressResponsePolicy-browser.mjs.map +0 -1
- package/dist/browser/policies/proxyPolicy-browser.mjs.map +0 -1
- package/dist/browser/util/bytesEncoding-browser.mjs.map +0 -1
- package/dist/browser/util/concat-browser.mjs.map +0 -1
- package/dist/browser/util/inspect-browser.mjs.map +0 -1
- package/dist/browser/util/sha256-browser.mjs.map +0 -1
- package/dist/browser/util/userAgentPlatform-browser.mjs.map +0 -1
- package/dist/browser/util/uuidUtils-browser.mjs.map +0 -1
- package/dist/react-native/defaultHttpClient-react-native.mjs.map +0 -1
- package/dist/react-native/logger/log-react-native.mjs.map +0 -1
- package/dist/react-native/policies/proxyPolicy-react-native.mjs.map +0 -1
- package/dist/react-native/util/bytesEncoding-react-native.mjs.map +0 -1
- package/dist/react-native/util/concat-react-native.mjs.map +0 -1
- package/dist/react-native/util/inspect-react-native.mjs.map +0 -1
- package/dist/react-native/util/sha256-react-native.mjs.map +0 -1
- package/dist/react-native/util/userAgentPlatform-react-native.mjs.map +0 -1
- package/dist/react-native/util/uuidUtils-react-native.mjs.map +0 -1
|
@@ -1,159 +1,168 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var sanitizer_exports = {};
|
|
19
|
+
__export(sanitizer_exports, {
|
|
20
|
+
Sanitizer: () => Sanitizer
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(sanitizer_exports);
|
|
23
|
+
var import_object = require("./object.js");
|
|
7
24
|
const RedactedString = "REDACTED";
|
|
8
|
-
// Make sure this list is up-to-date with the one under core/logger/Readme#Keyconcepts
|
|
9
25
|
const defaultAllowedHeaderNames = [
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
26
|
+
"x-ms-client-request-id",
|
|
27
|
+
"x-ms-return-client-request-id",
|
|
28
|
+
"x-ms-useragent",
|
|
29
|
+
"x-ms-correlation-request-id",
|
|
30
|
+
"x-ms-request-id",
|
|
31
|
+
"client-request-id",
|
|
32
|
+
"ms-cv",
|
|
33
|
+
"return-client-request-id",
|
|
34
|
+
"traceparent",
|
|
35
|
+
"Access-Control-Allow-Credentials",
|
|
36
|
+
"Access-Control-Allow-Headers",
|
|
37
|
+
"Access-Control-Allow-Methods",
|
|
38
|
+
"Access-Control-Allow-Origin",
|
|
39
|
+
"Access-Control-Expose-Headers",
|
|
40
|
+
"Access-Control-Max-Age",
|
|
41
|
+
"Access-Control-Request-Headers",
|
|
42
|
+
"Access-Control-Request-Method",
|
|
43
|
+
"Origin",
|
|
44
|
+
"Accept",
|
|
45
|
+
"Accept-Encoding",
|
|
46
|
+
"Cache-Control",
|
|
47
|
+
"Connection",
|
|
48
|
+
"Content-Length",
|
|
49
|
+
"Content-Type",
|
|
50
|
+
"Date",
|
|
51
|
+
"ETag",
|
|
52
|
+
"Expires",
|
|
53
|
+
"If-Match",
|
|
54
|
+
"If-Modified-Since",
|
|
55
|
+
"If-None-Match",
|
|
56
|
+
"If-Unmodified-Since",
|
|
57
|
+
"Last-Modified",
|
|
58
|
+
"Pragma",
|
|
59
|
+
"Request-Id",
|
|
60
|
+
"Retry-After",
|
|
61
|
+
"Server",
|
|
62
|
+
"Transfer-Encoding",
|
|
63
|
+
"User-Agent",
|
|
64
|
+
"WWW-Authenticate"
|
|
49
65
|
];
|
|
50
66
|
const defaultAllowedQueryParameters = ["api-version"];
|
|
51
|
-
/**
|
|
52
|
-
* A utility class to sanitize objects for logging.
|
|
53
|
-
*/
|
|
54
67
|
class Sanitizer {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
else if (key === "url") {
|
|
83
|
-
return this.sanitizeUrl(value);
|
|
84
|
-
}
|
|
85
|
-
else if (key === "query") {
|
|
86
|
-
return this.sanitizeQuery(value);
|
|
87
|
-
}
|
|
88
|
-
else if (key === "body") {
|
|
89
|
-
// Don't log the request body
|
|
90
|
-
return undefined;
|
|
91
|
-
}
|
|
92
|
-
else if (key === "response") {
|
|
93
|
-
// Don't log response again
|
|
94
|
-
return undefined;
|
|
95
|
-
}
|
|
96
|
-
else if (key === "operationSpec") {
|
|
97
|
-
// When using sendOperationRequest, the request carries a massive
|
|
98
|
-
// field with the autorest spec. No need to log it.
|
|
99
|
-
return undefined;
|
|
100
|
-
}
|
|
101
|
-
else if (Array.isArray(value) || (0, object_js_1.isObject)(value)) {
|
|
102
|
-
if (seen.has(value)) {
|
|
103
|
-
return "[Circular]";
|
|
104
|
-
}
|
|
105
|
-
seen.add(value);
|
|
106
|
-
}
|
|
107
|
-
return value;
|
|
108
|
-
}, 2);
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Sanitizes a URL for logging.
|
|
112
|
-
* @param value - The URL to sanitize
|
|
113
|
-
* @returns - The sanitized URL as a string
|
|
114
|
-
*/
|
|
115
|
-
sanitizeUrl(value) {
|
|
116
|
-
if (typeof value !== "string" || value === null || value === "") {
|
|
117
|
-
return value;
|
|
118
|
-
}
|
|
119
|
-
const url = new URL(value);
|
|
120
|
-
if (!url.search) {
|
|
121
|
-
return value;
|
|
68
|
+
allowedHeaderNames;
|
|
69
|
+
allowedQueryParameters;
|
|
70
|
+
constructor({
|
|
71
|
+
additionalAllowedHeaderNames: allowedHeaderNames = [],
|
|
72
|
+
additionalAllowedQueryParameters: allowedQueryParameters = []
|
|
73
|
+
} = {}) {
|
|
74
|
+
allowedHeaderNames = defaultAllowedHeaderNames.concat(allowedHeaderNames);
|
|
75
|
+
allowedQueryParameters = defaultAllowedQueryParameters.concat(allowedQueryParameters);
|
|
76
|
+
this.allowedHeaderNames = new Set(allowedHeaderNames.map((n) => n.toLowerCase()));
|
|
77
|
+
this.allowedQueryParameters = new Set(allowedQueryParameters.map((p) => p.toLowerCase()));
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Sanitizes an object for logging.
|
|
81
|
+
* @param obj - The object to sanitize
|
|
82
|
+
* @returns - The sanitized object as a string
|
|
83
|
+
*/
|
|
84
|
+
sanitize(obj) {
|
|
85
|
+
const seen = /* @__PURE__ */ new Set();
|
|
86
|
+
return JSON.stringify(
|
|
87
|
+
obj,
|
|
88
|
+
(key, value) => {
|
|
89
|
+
if (value instanceof Error) {
|
|
90
|
+
return {
|
|
91
|
+
...value,
|
|
92
|
+
name: value.name,
|
|
93
|
+
message: value.message
|
|
94
|
+
};
|
|
122
95
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
96
|
+
if (key === "headers") {
|
|
97
|
+
return this.sanitizeHeaders(value);
|
|
98
|
+
} else if (key === "url") {
|
|
99
|
+
return this.sanitizeUrl(value);
|
|
100
|
+
} else if (key === "query") {
|
|
101
|
+
return this.sanitizeQuery(value);
|
|
102
|
+
} else if (key === "body") {
|
|
103
|
+
return void 0;
|
|
104
|
+
} else if (key === "response") {
|
|
105
|
+
return void 0;
|
|
106
|
+
} else if (key === "operationSpec") {
|
|
107
|
+
return void 0;
|
|
108
|
+
} else if (Array.isArray(value) || (0, import_object.isObject)(value)) {
|
|
109
|
+
if (seen.has(value)) {
|
|
110
|
+
return "[Circular]";
|
|
111
|
+
}
|
|
112
|
+
seen.add(value);
|
|
127
113
|
}
|
|
128
|
-
return
|
|
114
|
+
return value;
|
|
115
|
+
},
|
|
116
|
+
2
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Sanitizes a URL for logging.
|
|
121
|
+
* @param value - The URL to sanitize
|
|
122
|
+
* @returns - The sanitized URL as a string
|
|
123
|
+
*/
|
|
124
|
+
sanitizeUrl(value) {
|
|
125
|
+
if (typeof value !== "string" || value === null || value === "") {
|
|
126
|
+
return value;
|
|
129
127
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if (this.allowedHeaderNames.has(key.toLowerCase())) {
|
|
134
|
-
sanitized[key] = obj[key];
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
sanitized[key] = RedactedString;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
return sanitized;
|
|
128
|
+
const url = new URL(value);
|
|
129
|
+
if (!url.search) {
|
|
130
|
+
return value;
|
|
141
131
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
132
|
+
for (const [key] of url.searchParams) {
|
|
133
|
+
if (!this.allowedQueryParameters.has(key.toLowerCase())) {
|
|
134
|
+
url.searchParams.set(key, RedactedString);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return url.toString();
|
|
138
|
+
}
|
|
139
|
+
sanitizeHeaders(obj) {
|
|
140
|
+
const sanitized = {};
|
|
141
|
+
for (const key of Object.keys(obj)) {
|
|
142
|
+
if (this.allowedHeaderNames.has(key.toLowerCase())) {
|
|
143
|
+
sanitized[key] = obj[key];
|
|
144
|
+
} else {
|
|
145
|
+
sanitized[key] = RedactedString;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return sanitized;
|
|
149
|
+
}
|
|
150
|
+
sanitizeQuery(value) {
|
|
151
|
+
if (typeof value !== "object" || value === null) {
|
|
152
|
+
return value;
|
|
153
|
+
}
|
|
154
|
+
const sanitized = {};
|
|
155
|
+
for (const k of Object.keys(value)) {
|
|
156
|
+
if (this.allowedQueryParameters.has(k.toLowerCase())) {
|
|
157
|
+
sanitized[k] = value[k];
|
|
158
|
+
} else {
|
|
159
|
+
sanitized[k] = RedactedString;
|
|
160
|
+
}
|
|
156
161
|
}
|
|
162
|
+
return sanitized;
|
|
163
|
+
}
|
|
157
164
|
}
|
|
158
|
-
|
|
159
|
-
|
|
165
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
166
|
+
0 && (module.exports = {
|
|
167
|
+
Sanitizer
|
|
168
|
+
});
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["/mnt/vss/_work/1/s/sdk/core/ts-http-runtime/src/util/sanitizer.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { type UnknownObject, isObject } from \"./object.js\";\n\n/**\n * Sanitizer options\n */\nexport interface SanitizerOptions {\n /**\n * Header names whose values will be logged when logging is enabled.\n * Defaults include a list of well-known safe headers. Any headers\n * specified in this field will be added to that list. Any other values will\n * be written to logs as \"REDACTED\".\n */\n additionalAllowedHeaderNames?: string[];\n\n /**\n * Query string names whose values will be logged when logging is enabled. By default no\n * query string values are logged.\n */\n additionalAllowedQueryParameters?: string[];\n}\n\nconst RedactedString = \"REDACTED\";\n\n// Make sure this list is up-to-date with the one under core/logger/Readme#Keyconcepts\nconst defaultAllowedHeaderNames = [\n \"x-ms-client-request-id\",\n \"x-ms-return-client-request-id\",\n \"x-ms-useragent\",\n \"x-ms-correlation-request-id\",\n \"x-ms-request-id\",\n \"client-request-id\",\n \"ms-cv\",\n \"return-client-request-id\",\n \"traceparent\",\n\n \"Access-Control-Allow-Credentials\",\n \"Access-Control-Allow-Headers\",\n \"Access-Control-Allow-Methods\",\n \"Access-Control-Allow-Origin\",\n \"Access-Control-Expose-Headers\",\n \"Access-Control-Max-Age\",\n \"Access-Control-Request-Headers\",\n \"Access-Control-Request-Method\",\n \"Origin\",\n\n \"Accept\",\n \"Accept-Encoding\",\n \"Cache-Control\",\n \"Connection\",\n \"Content-Length\",\n \"Content-Type\",\n \"Date\",\n \"ETag\",\n \"Expires\",\n \"If-Match\",\n \"If-Modified-Since\",\n \"If-None-Match\",\n \"If-Unmodified-Since\",\n \"Last-Modified\",\n \"Pragma\",\n \"Request-Id\",\n \"Retry-After\",\n \"Server\",\n \"Transfer-Encoding\",\n \"User-Agent\",\n \"WWW-Authenticate\",\n];\n\nconst defaultAllowedQueryParameters: string[] = [\"api-version\"];\n\n/**\n * A utility class to sanitize objects for logging.\n */\nexport class Sanitizer {\n private allowedHeaderNames: Set<string>;\n private allowedQueryParameters: Set<string>;\n\n constructor({\n additionalAllowedHeaderNames: allowedHeaderNames = [],\n additionalAllowedQueryParameters: allowedQueryParameters = [],\n }: SanitizerOptions = {}) {\n allowedHeaderNames = defaultAllowedHeaderNames.concat(allowedHeaderNames);\n allowedQueryParameters = defaultAllowedQueryParameters.concat(allowedQueryParameters);\n\n this.allowedHeaderNames = new Set(allowedHeaderNames.map((n) => n.toLowerCase()));\n this.allowedQueryParameters = new Set(allowedQueryParameters.map((p) => p.toLowerCase()));\n }\n\n /**\n * Sanitizes an object for logging.\n * @param obj - The object to sanitize\n * @returns - The sanitized object as a string\n */\n public sanitize(obj: unknown): string {\n const seen = new Set<unknown>();\n return JSON.stringify(\n obj,\n (key: string, value: unknown) => {\n // Ensure Errors include their interesting non-enumerable members\n if (value instanceof Error) {\n return {\n ...value,\n name: value.name,\n message: value.message,\n };\n }\n\n if (key === \"headers\") {\n return this.sanitizeHeaders(value as UnknownObject);\n } else if (key === \"url\") {\n return this.sanitizeUrl(value as string);\n } else if (key === \"query\") {\n return this.sanitizeQuery(value as UnknownObject);\n } else if (key === \"body\") {\n // Don't log the request body\n return undefined;\n } else if (key === \"response\") {\n // Don't log response again\n return undefined;\n } else if (key === \"operationSpec\") {\n // When using sendOperationRequest, the request carries a massive\n // field with the autorest spec. No need to log it.\n return undefined;\n } else if (Array.isArray(value) || isObject(value)) {\n if (seen.has(value)) {\n return \"[Circular]\";\n }\n seen.add(value);\n }\n\n return value;\n },\n 2,\n );\n }\n\n /**\n * Sanitizes a URL for logging.\n * @param value - The URL to sanitize\n * @returns - The sanitized URL as a string\n */\n public sanitizeUrl(value: string): string {\n if (typeof value !== \"string\" || value === null || value === \"\") {\n return value;\n }\n\n const url = new URL(value);\n\n if (!url.search) {\n return value;\n }\n\n for (const [key] of url.searchParams) {\n if (!this.allowedQueryParameters.has(key.toLowerCase())) {\n url.searchParams.set(key, RedactedString);\n }\n }\n\n return url.toString();\n }\n\n private sanitizeHeaders(obj: UnknownObject): UnknownObject {\n const sanitized: UnknownObject = {};\n for (const key of Object.keys(obj)) {\n if (this.allowedHeaderNames.has(key.toLowerCase())) {\n sanitized[key] = obj[key];\n } else {\n sanitized[key] = RedactedString;\n }\n }\n return sanitized;\n }\n\n private sanitizeQuery(value: UnknownObject): UnknownObject {\n if (typeof value !== \"object\" || value === null) {\n return value;\n }\n\n const sanitized: UnknownObject = {};\n\n for (const k of Object.keys(value)) {\n if (this.allowedQueryParameters.has(k.toLowerCase())) {\n sanitized[k] = value[k];\n } else {\n sanitized[k] = RedactedString;\n }\n }\n\n return sanitized;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,53 +1,69 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var sha256_common_exports = {};
|
|
19
|
+
__export(sha256_common_exports, {
|
|
20
|
+
computeSha256Hash: () => computeSha256Hash,
|
|
21
|
+
computeSha256Hmac: () => computeSha256Hmac
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(sha256_common_exports);
|
|
24
|
+
var import_bytesEncoding = require("./bytesEncoding.js");
|
|
8
25
|
let subtleCrypto;
|
|
9
|
-
/**
|
|
10
|
-
* Returns a cached reference to the Web API crypto.subtle object.
|
|
11
|
-
* @internal
|
|
12
|
-
*/
|
|
13
26
|
function getCrypto() {
|
|
14
|
-
|
|
15
|
-
return subtleCrypto;
|
|
16
|
-
}
|
|
17
|
-
if (!self.crypto || !self.crypto.subtle) {
|
|
18
|
-
throw new Error("Your browser environment does not support cryptography functions.");
|
|
19
|
-
}
|
|
20
|
-
subtleCrypto = self.crypto.subtle;
|
|
27
|
+
if (subtleCrypto) {
|
|
21
28
|
return subtleCrypto;
|
|
29
|
+
}
|
|
30
|
+
if (!self.crypto || !self.crypto.subtle) {
|
|
31
|
+
throw new Error("Your browser environment does not support cryptography functions.");
|
|
32
|
+
}
|
|
33
|
+
subtleCrypto = self.crypto.subtle;
|
|
34
|
+
return subtleCrypto;
|
|
22
35
|
}
|
|
23
|
-
/**
|
|
24
|
-
* Generates a SHA-256 HMAC signature.
|
|
25
|
-
* @param key - The HMAC key represented as a base64 string, used to generate the cryptographic HMAC hash.
|
|
26
|
-
* @param stringToSign - The data to be signed.
|
|
27
|
-
* @param encoding - The textual encoding to use for the returned HMAC digest.
|
|
28
|
-
*/
|
|
29
36
|
async function computeSha256Hmac(key, stringToSign, encoding) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
const crypto = getCrypto();
|
|
38
|
+
const keyBytes = (0, import_bytesEncoding.stringToUint8Array)(key, "base64");
|
|
39
|
+
const stringToSignBytes = (0, import_bytesEncoding.stringToUint8Array)(stringToSign, "utf-8");
|
|
40
|
+
const cryptoKey = await crypto.importKey(
|
|
41
|
+
"raw",
|
|
42
|
+
keyBytes,
|
|
43
|
+
{
|
|
44
|
+
name: "HMAC",
|
|
45
|
+
hash: { name: "SHA-256" }
|
|
46
|
+
},
|
|
47
|
+
false,
|
|
48
|
+
["sign"]
|
|
49
|
+
);
|
|
50
|
+
const signature = await crypto.sign(
|
|
51
|
+
{
|
|
52
|
+
name: "HMAC",
|
|
53
|
+
hash: { name: "SHA-256" }
|
|
54
|
+
},
|
|
55
|
+
cryptoKey,
|
|
56
|
+
stringToSignBytes
|
|
57
|
+
);
|
|
58
|
+
return (0, import_bytesEncoding.uint8ArrayToString)(new Uint8Array(signature), encoding);
|
|
42
59
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Generates a SHA-256 hash.
|
|
45
|
-
* @param content - The data to be included in the hash.
|
|
46
|
-
* @param encoding - The textual encoding to use for the returned hash.
|
|
47
|
-
*/
|
|
48
60
|
async function computeSha256Hash(content, encoding) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
61
|
+
const contentBytes = (0, import_bytesEncoding.stringToUint8Array)(content, "utf-8");
|
|
62
|
+
const digest = await getCrypto().digest({ name: "SHA-256" }, contentBytes);
|
|
63
|
+
return (0, import_bytesEncoding.uint8ArrayToString)(new Uint8Array(digest), encoding);
|
|
52
64
|
}
|
|
53
|
-
|
|
65
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
66
|
+
0 && (module.exports = {
|
|
67
|
+
computeSha256Hash,
|
|
68
|
+
computeSha256Hmac
|
|
69
|
+
});
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["/mnt/vss/_work/1/s/sdk/core/ts-http-runtime/src/util/sha256.common.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { stringToUint8Array, uint8ArrayToString } from \"./bytesEncoding.js\";\n\n// stubs for browser self.crypto\ninterface JsonWebKey {}\ninterface CryptoKey {}\ntype KeyUsage =\n | \"decrypt\"\n | \"deriveBits\"\n | \"deriveKey\"\n | \"encrypt\"\n | \"sign\"\n | \"unwrapKey\"\n | \"verify\"\n | \"wrapKey\";\ninterface Algorithm {\n name: string;\n}\ninterface SubtleCrypto {\n importKey(\n format: string,\n keyData: JsonWebKey,\n algorithm: HmacImportParams,\n extractable: boolean,\n usage: KeyUsage[],\n ): Promise<CryptoKey>;\n sign(\n algorithm: HmacImportParams,\n key: CryptoKey,\n data: ArrayBufferView | ArrayBuffer,\n ): Promise<ArrayBuffer>;\n digest(algorithm: Algorithm, data: ArrayBufferView | ArrayBuffer): Promise<ArrayBuffer>;\n}\ninterface Crypto {\n readonly subtle: SubtleCrypto;\n getRandomValues<T extends ArrayBufferView | null>(array: T): T;\n}\ndeclare const self: {\n crypto: Crypto;\n};\ninterface HmacImportParams {\n name: string;\n hash: Algorithm;\n length?: number;\n}\n\nlet subtleCrypto: SubtleCrypto | undefined;\n\n/**\n * Returns a cached reference to the Web API crypto.subtle object.\n * @internal\n */\nfunction getCrypto(): SubtleCrypto {\n if (subtleCrypto) {\n return subtleCrypto;\n }\n\n if (!self.crypto || !self.crypto.subtle) {\n throw new Error(\"Your browser environment does not support cryptography functions.\");\n }\n\n subtleCrypto = self.crypto.subtle;\n return subtleCrypto;\n}\n\n/**\n * Generates a SHA-256 HMAC signature.\n * @param key - The HMAC key represented as a base64 string, used to generate the cryptographic HMAC hash.\n * @param stringToSign - The data to be signed.\n * @param encoding - The textual encoding to use for the returned HMAC digest.\n */\nexport async function computeSha256Hmac(\n key: string,\n stringToSign: string,\n encoding: \"base64\" | \"hex\",\n): Promise<string> {\n const crypto = getCrypto();\n const keyBytes = stringToUint8Array(key, \"base64\");\n const stringToSignBytes = stringToUint8Array(stringToSign, \"utf-8\");\n\n const cryptoKey = await crypto.importKey(\n \"raw\",\n keyBytes,\n {\n name: \"HMAC\",\n hash: { name: \"SHA-256\" },\n },\n false,\n [\"sign\"],\n );\n const signature = await crypto.sign(\n {\n name: \"HMAC\",\n hash: { name: \"SHA-256\" },\n },\n cryptoKey,\n stringToSignBytes,\n );\n\n return uint8ArrayToString(new Uint8Array(signature), encoding);\n}\n\n/**\n * Generates a SHA-256 hash.\n * @param content - The data to be included in the hash.\n * @param encoding - The textual encoding to use for the returned hash.\n */\nexport async function computeSha256Hash(\n content: string,\n encoding: \"base64\" | \"hex\",\n): Promise<string> {\n const contentBytes = stringToUint8Array(content, \"utf-8\");\n const digest = await getCrypto().digest({ name: \"SHA-256\" }, contentBytes);\n\n return uint8ArrayToString(new Uint8Array(digest), encoding);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,2BAAuD;AA6CvD,IAAI;AAMJ,SAAS,YAA0B;AACjC,MAAI,cAAc;AAChB,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,KAAK,UAAU,CAAC,KAAK,OAAO,QAAQ;AACvC,UAAM,IAAI,MAAM,mEAAmE;AAAA,EACrF;AAEA,iBAAe,KAAK,OAAO;AAC3B,SAAO;AACT;AAQA,eAAsB,kBACpB,KACA,cACA,UACiB;AACjB,QAAM,SAAS,UAAU;AACzB,QAAM,eAAW,yCAAmB,KAAK,QAAQ;AACjD,QAAM,wBAAoB,yCAAmB,cAAc,OAAO;AAElE,QAAM,YAAY,MAAM,OAAO;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM,EAAE,MAAM,UAAU;AAAA,IAC1B;AAAA,IACA;AAAA,IACA,CAAC,MAAM;AAAA,EACT;AACA,QAAM,YAAY,MAAM,OAAO;AAAA,IAC7B;AAAA,MACE,MAAM;AAAA,MACN,MAAM,EAAE,MAAM,UAAU;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,aAAO,yCAAmB,IAAI,WAAW,SAAS,GAAG,QAAQ;AAC/D;AAOA,eAAsB,kBACpB,SACA,UACiB;AACjB,QAAM,mBAAe,yCAAmB,SAAS,OAAO;AACxD,QAAM,SAAS,MAAM,UAAU,EAAE,OAAO,EAAE,MAAM,UAAU,GAAG,YAAY;AAEzE,aAAO,yCAAmB,IAAI,WAAW,MAAM,GAAG,QAAQ;AAC5D;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,26 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var sha256_exports = {};
|
|
19
|
+
__export(sha256_exports, {
|
|
20
|
+
computeSha256Hash: () => computeSha256Hash,
|
|
21
|
+
computeSha256Hmac: () => computeSha256Hmac
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(sha256_exports);
|
|
24
|
+
var import_node_crypto = require("node:crypto");
|
|
14
25
|
async function computeSha256Hmac(key, stringToSign, encoding) {
|
|
15
|
-
|
|
16
|
-
|
|
26
|
+
const decodedKey = Buffer.from(key, "base64");
|
|
27
|
+
return (0, import_node_crypto.createHmac)("sha256", decodedKey).update(stringToSign).digest(encoding);
|
|
17
28
|
}
|
|
18
|
-
/**
|
|
19
|
-
* Generates a SHA-256 hash.
|
|
20
|
-
* @param content - The data to be included in the hash.
|
|
21
|
-
* @param encoding - The textual encoding to use for the returned hash.
|
|
22
|
-
*/
|
|
23
29
|
async function computeSha256Hash(content, encoding) {
|
|
24
|
-
|
|
30
|
+
return (0, import_node_crypto.createHash)("sha256").update(content).digest(encoding);
|
|
25
31
|
}
|
|
26
|
-
|
|
32
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
33
|
+
0 && (module.exports = {
|
|
34
|
+
computeSha256Hash,
|
|
35
|
+
computeSha256Hmac
|
|
36
|
+
});
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["/mnt/vss/_work/1/s/sdk/core/ts-http-runtime/src/util/sha256.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createHash, createHmac } from \"node:crypto\";\n\n/**\n * Generates a SHA-256 HMAC signature.\n * @param key - The HMAC key represented as a base64 string, used to generate the cryptographic HMAC hash.\n * @param stringToSign - The data to be signed.\n * @param encoding - The textual encoding to use for the returned HMAC digest.\n */\nexport async function computeSha256Hmac(\n key: string,\n stringToSign: string,\n encoding: \"base64\" | \"hex\",\n): Promise<string> {\n const decodedKey = Buffer.from(key, \"base64\");\n\n return createHmac(\"sha256\", decodedKey).update(stringToSign).digest(encoding);\n}\n\n/**\n * Generates a SHA-256 hash.\n * @param content - The data to be included in the hash.\n * @param encoding - The textual encoding to use for the returned hash.\n */\nexport async function computeSha256Hash(\n content: string,\n encoding: \"base64\" | \"hex\",\n): Promise<string> {\n return createHash(\"sha256\").update(content).digest(encoding);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,yBAAuC;AAQvC,eAAsB,kBACpB,KACA,cACA,UACiB;AACjB,QAAM,aAAa,OAAO,KAAK,KAAK,QAAQ;AAE5C,aAAO,+BAAW,UAAU,UAAU,EAAE,OAAO,YAAY,EAAE,OAAO,QAAQ;AAC9E;AAOA,eAAsB,kBACpB,SACA,UACiB;AACjB,aAAO,+BAAW,QAAQ,EAAE,OAAO,OAAO,EAAE,OAAO,QAAQ;AAC7D;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|