@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,352 +1,344 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var nodeHttpClient_exports = {};
|
|
29
|
+
__export(nodeHttpClient_exports, {
|
|
30
|
+
createNodeHttpClient: () => createNodeHttpClient,
|
|
31
|
+
getBodyLength: () => getBodyLength
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(nodeHttpClient_exports);
|
|
34
|
+
var import_node_http = __toESM(require("node:http"));
|
|
35
|
+
var import_node_https = __toESM(require("node:https"));
|
|
36
|
+
var import_node_zlib = __toESM(require("node:zlib"));
|
|
37
|
+
var import_node_stream = require("node:stream");
|
|
38
|
+
var import_AbortError = require("./abort-controller/AbortError.js");
|
|
39
|
+
var import_httpHeaders = require("./httpHeaders.js");
|
|
40
|
+
var import_restError = require("./restError.js");
|
|
41
|
+
var import_log = require("./log.js");
|
|
42
|
+
var import_sanitizer = require("./util/sanitizer.js");
|
|
17
43
|
const DEFAULT_TLS_SETTINGS = {};
|
|
18
44
|
function isReadableStream(body) {
|
|
19
|
-
|
|
45
|
+
return body && typeof body.pipe === "function";
|
|
20
46
|
}
|
|
21
47
|
function isStreamComplete(stream) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
48
|
+
if (stream.readable === false) {
|
|
49
|
+
return Promise.resolve();
|
|
50
|
+
}
|
|
51
|
+
return new Promise((resolve) => {
|
|
52
|
+
const handler = () => {
|
|
53
|
+
resolve();
|
|
54
|
+
stream.removeListener("close", handler);
|
|
55
|
+
stream.removeListener("end", handler);
|
|
56
|
+
stream.removeListener("error", handler);
|
|
57
|
+
};
|
|
58
|
+
stream.on("close", handler);
|
|
59
|
+
stream.on("end", handler);
|
|
60
|
+
stream.on("error", handler);
|
|
61
|
+
});
|
|
36
62
|
}
|
|
37
63
|
function isArrayBuffer(body) {
|
|
38
|
-
|
|
64
|
+
return body && typeof body.byteLength === "number";
|
|
39
65
|
}
|
|
40
|
-
class ReportTransform extends
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
callback(e);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
constructor(progressCallback) {
|
|
56
|
-
super();
|
|
57
|
-
this.progressCallback = progressCallback;
|
|
66
|
+
class ReportTransform extends import_node_stream.Transform {
|
|
67
|
+
loadedBytes = 0;
|
|
68
|
+
progressCallback;
|
|
69
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
70
|
+
_transform(chunk, _encoding, callback) {
|
|
71
|
+
this.push(chunk);
|
|
72
|
+
this.loadedBytes += chunk.length;
|
|
73
|
+
try {
|
|
74
|
+
this.progressCallback({ loadedBytes: this.loadedBytes });
|
|
75
|
+
callback();
|
|
76
|
+
} catch (e) {
|
|
77
|
+
callback(e);
|
|
58
78
|
}
|
|
79
|
+
}
|
|
80
|
+
constructor(progressCallback) {
|
|
81
|
+
super();
|
|
82
|
+
this.progressCallback = progressCallback;
|
|
83
|
+
}
|
|
59
84
|
}
|
|
60
|
-
/**
|
|
61
|
-
* A HttpClient implementation that uses Node's "https" module to send HTTPS requests.
|
|
62
|
-
* @internal
|
|
63
|
-
*/
|
|
64
85
|
class NodeHttpClient {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
request.abortSignal.addEventListener("abort", abortListener);
|
|
86
|
+
cachedHttpAgent;
|
|
87
|
+
cachedHttpsAgents = /* @__PURE__ */ new WeakMap();
|
|
88
|
+
/**
|
|
89
|
+
* Makes a request over an underlying transport layer and returns the response.
|
|
90
|
+
* @param request - The request to be made.
|
|
91
|
+
*/
|
|
92
|
+
async sendRequest(request) {
|
|
93
|
+
const abortController = new AbortController();
|
|
94
|
+
let abortListener;
|
|
95
|
+
if (request.abortSignal) {
|
|
96
|
+
if (request.abortSignal.aborted) {
|
|
97
|
+
throw new import_AbortError.AbortError("The operation was aborted. Request has already been canceled.");
|
|
98
|
+
}
|
|
99
|
+
abortListener = (event) => {
|
|
100
|
+
if (event.type === "abort") {
|
|
101
|
+
abortController.abort();
|
|
84
102
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
const res = await this.makeRequest(request, abortController, body);
|
|
119
|
-
if (timeoutId !== undefined) {
|
|
120
|
-
clearTimeout(timeoutId);
|
|
121
|
-
}
|
|
122
|
-
const headers = getResponseHeaders(res);
|
|
123
|
-
const status = res.statusCode ?? 0;
|
|
124
|
-
const response = {
|
|
125
|
-
status,
|
|
126
|
-
headers,
|
|
127
|
-
request,
|
|
128
|
-
};
|
|
129
|
-
// Responses to HEAD must not have a body.
|
|
130
|
-
// If they do return a body, that body must be ignored.
|
|
131
|
-
if (request.method === "HEAD") {
|
|
132
|
-
// call resume() and not destroy() to avoid closing the socket
|
|
133
|
-
// and losing keep alive
|
|
134
|
-
res.resume();
|
|
135
|
-
return response;
|
|
136
|
-
}
|
|
137
|
-
responseStream = shouldDecompress ? getDecodedResponseStream(res, headers) : res;
|
|
138
|
-
const onDownloadProgress = request.onDownloadProgress;
|
|
139
|
-
if (onDownloadProgress) {
|
|
140
|
-
const downloadReportStream = new ReportTransform(onDownloadProgress);
|
|
141
|
-
downloadReportStream.on("error", (e) => {
|
|
142
|
-
log_js_1.logger.error("Error in download progress", e);
|
|
143
|
-
});
|
|
144
|
-
responseStream.pipe(downloadReportStream);
|
|
145
|
-
responseStream = downloadReportStream;
|
|
146
|
-
}
|
|
147
|
-
if (
|
|
148
|
-
// Value of POSITIVE_INFINITY in streamResponseStatusCodes is considered as any status code
|
|
149
|
-
request.streamResponseStatusCodes?.has(Number.POSITIVE_INFINITY) ||
|
|
150
|
-
request.streamResponseStatusCodes?.has(response.status)) {
|
|
151
|
-
response.readableStreamBody = responseStream;
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
response.bodyAsText = await streamToText(responseStream);
|
|
155
|
-
}
|
|
156
|
-
return response;
|
|
103
|
+
};
|
|
104
|
+
request.abortSignal.addEventListener("abort", abortListener);
|
|
105
|
+
}
|
|
106
|
+
let timeoutId;
|
|
107
|
+
if (request.timeout > 0) {
|
|
108
|
+
timeoutId = setTimeout(() => {
|
|
109
|
+
const sanitizer = new import_sanitizer.Sanitizer();
|
|
110
|
+
import_log.logger.info(`request to '${sanitizer.sanitizeUrl(request.url)}' timed out. canceling...`);
|
|
111
|
+
abortController.abort();
|
|
112
|
+
}, request.timeout);
|
|
113
|
+
}
|
|
114
|
+
const acceptEncoding = request.headers.get("Accept-Encoding");
|
|
115
|
+
const shouldDecompress = acceptEncoding?.includes("gzip") || acceptEncoding?.includes("deflate");
|
|
116
|
+
let body = typeof request.body === "function" ? request.body() : request.body;
|
|
117
|
+
if (body && !request.headers.has("Content-Length")) {
|
|
118
|
+
const bodyLength = getBodyLength(body);
|
|
119
|
+
if (bodyLength !== null) {
|
|
120
|
+
request.headers.set("Content-Length", bodyLength);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
let responseStream;
|
|
124
|
+
try {
|
|
125
|
+
if (body && request.onUploadProgress) {
|
|
126
|
+
const onUploadProgress = request.onUploadProgress;
|
|
127
|
+
const uploadReportStream = new ReportTransform(onUploadProgress);
|
|
128
|
+
uploadReportStream.on("error", (e) => {
|
|
129
|
+
import_log.logger.error("Error in upload progress", e);
|
|
130
|
+
});
|
|
131
|
+
if (isReadableStream(body)) {
|
|
132
|
+
body.pipe(uploadReportStream);
|
|
133
|
+
} else {
|
|
134
|
+
uploadReportStream.end(body);
|
|
157
135
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
136
|
+
body = uploadReportStream;
|
|
137
|
+
}
|
|
138
|
+
const res = await this.makeRequest(request, abortController, body);
|
|
139
|
+
if (timeoutId !== void 0) {
|
|
140
|
+
clearTimeout(timeoutId);
|
|
141
|
+
}
|
|
142
|
+
const headers = getResponseHeaders(res);
|
|
143
|
+
const status = res.statusCode ?? 0;
|
|
144
|
+
const response = {
|
|
145
|
+
status,
|
|
146
|
+
headers,
|
|
147
|
+
request
|
|
148
|
+
};
|
|
149
|
+
if (request.method === "HEAD") {
|
|
150
|
+
res.resume();
|
|
151
|
+
return response;
|
|
152
|
+
}
|
|
153
|
+
responseStream = shouldDecompress ? getDecodedResponseStream(res, headers) : res;
|
|
154
|
+
const onDownloadProgress = request.onDownloadProgress;
|
|
155
|
+
if (onDownloadProgress) {
|
|
156
|
+
const downloadReportStream = new ReportTransform(onDownloadProgress);
|
|
157
|
+
downloadReportStream.on("error", (e) => {
|
|
158
|
+
import_log.logger.error("Error in download progress", e);
|
|
159
|
+
});
|
|
160
|
+
responseStream.pipe(downloadReportStream);
|
|
161
|
+
responseStream = downloadReportStream;
|
|
162
|
+
}
|
|
163
|
+
if (
|
|
164
|
+
// Value of POSITIVE_INFINITY in streamResponseStatusCodes is considered as any status code
|
|
165
|
+
request.streamResponseStatusCodes?.has(Number.POSITIVE_INFINITY) || request.streamResponseStatusCodes?.has(response.status)
|
|
166
|
+
) {
|
|
167
|
+
response.readableStreamBody = responseStream;
|
|
168
|
+
} else {
|
|
169
|
+
response.bodyAsText = await streamToText(responseStream);
|
|
170
|
+
}
|
|
171
|
+
return response;
|
|
172
|
+
} finally {
|
|
173
|
+
if (request.abortSignal && abortListener) {
|
|
174
|
+
let uploadStreamDone = Promise.resolve();
|
|
175
|
+
if (isReadableStream(body)) {
|
|
176
|
+
uploadStreamDone = isStreamComplete(body);
|
|
180
177
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
const isInsecure = url.protocol !== "https:";
|
|
185
|
-
if (isInsecure && !request.allowInsecureConnection) {
|
|
186
|
-
throw new Error(`Cannot connect to ${request.url} while allowInsecureConnection is false.`);
|
|
178
|
+
let downloadStreamDone = Promise.resolve();
|
|
179
|
+
if (isReadableStream(responseStream)) {
|
|
180
|
+
downloadStreamDone = isStreamComplete(responseStream);
|
|
187
181
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
method: request.method,
|
|
195
|
-
headers: request.headers.toJSON({ preserveCase: true }),
|
|
196
|
-
...request.requestOverrides,
|
|
197
|
-
};
|
|
198
|
-
return new Promise((resolve, reject) => {
|
|
199
|
-
const req = isInsecure ? node_http_1.default.request(options, resolve) : node_https_1.default.request(options, resolve);
|
|
200
|
-
req.once("error", (err) => {
|
|
201
|
-
reject(new restError_js_1.RestError(err.message, { code: err.code ?? restError_js_1.RestError.REQUEST_SEND_ERROR, request }));
|
|
202
|
-
});
|
|
203
|
-
abortController.signal.addEventListener("abort", () => {
|
|
204
|
-
const abortError = new AbortError_js_1.AbortError("The operation was aborted. Rejecting from abort signal callback while making request.");
|
|
205
|
-
req.destroy(abortError);
|
|
206
|
-
reject(abortError);
|
|
207
|
-
});
|
|
208
|
-
if (body && isReadableStream(body)) {
|
|
209
|
-
body.pipe(req);
|
|
210
|
-
}
|
|
211
|
-
else if (body) {
|
|
212
|
-
if (typeof body === "string" || Buffer.isBuffer(body)) {
|
|
213
|
-
req.end(body);
|
|
214
|
-
}
|
|
215
|
-
else if (isArrayBuffer(body)) {
|
|
216
|
-
req.end(ArrayBuffer.isView(body) ? Buffer.from(body.buffer) : Buffer.from(body));
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
log_js_1.logger.error("Unrecognized body type", body);
|
|
220
|
-
reject(new restError_js_1.RestError("Unrecognized body type"));
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
// streams don't like "undefined" being passed as data
|
|
225
|
-
req.end();
|
|
226
|
-
}
|
|
182
|
+
Promise.all([uploadStreamDone, downloadStreamDone]).then(() => {
|
|
183
|
+
if (abortListener) {
|
|
184
|
+
request.abortSignal?.removeEventListener("abort", abortListener);
|
|
185
|
+
}
|
|
186
|
+
}).catch((e) => {
|
|
187
|
+
import_log.logger.warning("Error when cleaning up abortListener on httpRequest", e);
|
|
227
188
|
});
|
|
189
|
+
}
|
|
228
190
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
191
|
+
}
|
|
192
|
+
makeRequest(request, abortController, body) {
|
|
193
|
+
const url = new URL(request.url);
|
|
194
|
+
const isInsecure = url.protocol !== "https:";
|
|
195
|
+
if (isInsecure && !request.allowInsecureConnection) {
|
|
196
|
+
throw new Error(`Cannot connect to ${request.url} while allowInsecureConnection is false.`);
|
|
197
|
+
}
|
|
198
|
+
const agent = request.agent ?? this.getOrCreateAgent(request, isInsecure);
|
|
199
|
+
const options = {
|
|
200
|
+
agent,
|
|
201
|
+
hostname: url.hostname,
|
|
202
|
+
path: `${url.pathname}${url.search}`,
|
|
203
|
+
port: url.port,
|
|
204
|
+
method: request.method,
|
|
205
|
+
headers: request.headers.toJSON({ preserveCase: true }),
|
|
206
|
+
...request.requestOverrides
|
|
207
|
+
};
|
|
208
|
+
return new Promise((resolve, reject) => {
|
|
209
|
+
const req = isInsecure ? import_node_http.default.request(options, resolve) : import_node_https.default.request(options, resolve);
|
|
210
|
+
req.once("error", (err) => {
|
|
211
|
+
reject(
|
|
212
|
+
new import_restError.RestError(err.message, { code: err.code ?? import_restError.RestError.REQUEST_SEND_ERROR, request })
|
|
213
|
+
);
|
|
214
|
+
});
|
|
215
|
+
abortController.signal.addEventListener("abort", () => {
|
|
216
|
+
const abortError = new import_AbortError.AbortError(
|
|
217
|
+
"The operation was aborted. Rejecting from abort signal callback while making request."
|
|
218
|
+
);
|
|
219
|
+
req.destroy(abortError);
|
|
220
|
+
reject(abortError);
|
|
221
|
+
});
|
|
222
|
+
if (body && isReadableStream(body)) {
|
|
223
|
+
body.pipe(req);
|
|
224
|
+
} else if (body) {
|
|
225
|
+
if (typeof body === "string" || Buffer.isBuffer(body)) {
|
|
226
|
+
req.end(body);
|
|
227
|
+
} else if (isArrayBuffer(body)) {
|
|
228
|
+
req.end(ArrayBuffer.isView(body) ? Buffer.from(body.buffer) : Buffer.from(body));
|
|
229
|
+
} else {
|
|
230
|
+
import_log.logger.error("Unrecognized body type", body);
|
|
231
|
+
reject(new import_restError.RestError("Unrecognized body type"));
|
|
266
232
|
}
|
|
233
|
+
} else {
|
|
234
|
+
req.end();
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
getOrCreateAgent(request, isInsecure) {
|
|
239
|
+
const disableKeepAlive = request.disableKeepAlive;
|
|
240
|
+
if (isInsecure) {
|
|
241
|
+
if (disableKeepAlive) {
|
|
242
|
+
return import_node_http.default.globalAgent;
|
|
243
|
+
}
|
|
244
|
+
if (!this.cachedHttpAgent) {
|
|
245
|
+
this.cachedHttpAgent = new import_node_http.default.Agent({ keepAlive: true });
|
|
246
|
+
}
|
|
247
|
+
return this.cachedHttpAgent;
|
|
248
|
+
} else {
|
|
249
|
+
if (disableKeepAlive && !request.tlsSettings) {
|
|
250
|
+
return import_node_https.default.globalAgent;
|
|
251
|
+
}
|
|
252
|
+
const tlsSettings = request.tlsSettings ?? DEFAULT_TLS_SETTINGS;
|
|
253
|
+
let agent = this.cachedHttpsAgents.get(tlsSettings);
|
|
254
|
+
if (agent && agent.options.keepAlive === !disableKeepAlive) {
|
|
255
|
+
return agent;
|
|
256
|
+
}
|
|
257
|
+
import_log.logger.info("No cached TLS Agent exist, creating a new Agent");
|
|
258
|
+
agent = new import_node_https.default.Agent({
|
|
259
|
+
// keepAlive is true if disableKeepAlive is false.
|
|
260
|
+
keepAlive: !disableKeepAlive,
|
|
261
|
+
// Since we are spreading, if no tslSettings were provided, nothing is added to the agent options.
|
|
262
|
+
...tlsSettings
|
|
263
|
+
});
|
|
264
|
+
this.cachedHttpsAgents.set(tlsSettings, agent);
|
|
265
|
+
return agent;
|
|
267
266
|
}
|
|
267
|
+
}
|
|
268
268
|
}
|
|
269
269
|
function getResponseHeaders(res) {
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
headers.set(header, value);
|
|
280
|
-
}
|
|
270
|
+
const headers = (0, import_httpHeaders.createHttpHeaders)();
|
|
271
|
+
for (const header of Object.keys(res.headers)) {
|
|
272
|
+
const value = res.headers[header];
|
|
273
|
+
if (Array.isArray(value)) {
|
|
274
|
+
if (value.length > 0) {
|
|
275
|
+
headers.set(header, value[0]);
|
|
276
|
+
}
|
|
277
|
+
} else if (value) {
|
|
278
|
+
headers.set(header, value);
|
|
281
279
|
}
|
|
282
|
-
|
|
280
|
+
}
|
|
281
|
+
return headers;
|
|
283
282
|
}
|
|
284
283
|
function getDecodedResponseStream(stream, headers) {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
return stream;
|
|
284
|
+
const contentEncoding = headers.get("Content-Encoding");
|
|
285
|
+
if (contentEncoding === "gzip") {
|
|
286
|
+
const unzip = import_node_zlib.default.createGunzip();
|
|
287
|
+
stream.pipe(unzip);
|
|
288
|
+
return unzip;
|
|
289
|
+
} else if (contentEncoding === "deflate") {
|
|
290
|
+
const inflate = import_node_zlib.default.createInflate();
|
|
291
|
+
stream.pipe(inflate);
|
|
292
|
+
return inflate;
|
|
293
|
+
}
|
|
294
|
+
return stream;
|
|
297
295
|
}
|
|
298
296
|
function streamToText(stream) {
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
}
|
|
308
|
-
});
|
|
309
|
-
stream.on("end", () => {
|
|
310
|
-
resolve(Buffer.concat(buffer).toString("utf8"));
|
|
311
|
-
});
|
|
312
|
-
stream.on("error", (e) => {
|
|
313
|
-
if (e && e?.name === "AbortError") {
|
|
314
|
-
reject(e);
|
|
315
|
-
}
|
|
316
|
-
else {
|
|
317
|
-
reject(new restError_js_1.RestError(`Error reading response as text: ${e.message}`, {
|
|
318
|
-
code: restError_js_1.RestError.PARSE_ERROR,
|
|
319
|
-
}));
|
|
320
|
-
}
|
|
321
|
-
});
|
|
297
|
+
return new Promise((resolve, reject) => {
|
|
298
|
+
const buffer = [];
|
|
299
|
+
stream.on("data", (chunk) => {
|
|
300
|
+
if (Buffer.isBuffer(chunk)) {
|
|
301
|
+
buffer.push(chunk);
|
|
302
|
+
} else {
|
|
303
|
+
buffer.push(Buffer.from(chunk));
|
|
304
|
+
}
|
|
322
305
|
});
|
|
306
|
+
stream.on("end", () => {
|
|
307
|
+
resolve(Buffer.concat(buffer).toString("utf8"));
|
|
308
|
+
});
|
|
309
|
+
stream.on("error", (e) => {
|
|
310
|
+
if (e && e?.name === "AbortError") {
|
|
311
|
+
reject(e);
|
|
312
|
+
} else {
|
|
313
|
+
reject(
|
|
314
|
+
new import_restError.RestError(`Error reading response as text: ${e.message}`, {
|
|
315
|
+
code: import_restError.RestError.PARSE_ERROR
|
|
316
|
+
})
|
|
317
|
+
);
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
});
|
|
323
321
|
}
|
|
324
|
-
/** @internal */
|
|
325
322
|
function getBodyLength(body) {
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
return Buffer.from(body).length;
|
|
340
|
-
}
|
|
341
|
-
else {
|
|
342
|
-
return null;
|
|
343
|
-
}
|
|
323
|
+
if (!body) {
|
|
324
|
+
return 0;
|
|
325
|
+
} else if (Buffer.isBuffer(body)) {
|
|
326
|
+
return body.length;
|
|
327
|
+
} else if (isReadableStream(body)) {
|
|
328
|
+
return null;
|
|
329
|
+
} else if (isArrayBuffer(body)) {
|
|
330
|
+
return body.byteLength;
|
|
331
|
+
} else if (typeof body === "string") {
|
|
332
|
+
return Buffer.from(body).length;
|
|
333
|
+
} else {
|
|
334
|
+
return null;
|
|
335
|
+
}
|
|
344
336
|
}
|
|
345
|
-
/**
|
|
346
|
-
* Create a new HttpClient instance for the NodeJS environment.
|
|
347
|
-
* @internal
|
|
348
|
-
*/
|
|
349
337
|
function createNodeHttpClient() {
|
|
350
|
-
|
|
338
|
+
return new NodeHttpClient();
|
|
351
339
|
}
|
|
352
|
-
|
|
340
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
341
|
+
0 && (module.exports = {
|
|
342
|
+
createNodeHttpClient,
|
|
343
|
+
getBodyLength
|
|
344
|
+
});
|